Rob Gonda's Blog

Back from Cannes

Wow, it was a great trip. Just got back from Cannes, so sorry if someone wrote and I haven't got back to them; in fact, I have about 580 new emails to go through in the next couple of days. I flew directly to D.C., just in time for CFUnited. My Flex class is tomorrow and it's going to be fun ...

I'll post some pictures soon; Nice, Antibes, Cannes, and beautiful cities...

so anyways, good to be back ... Hope to see many familiar faces this week.

Attending Cannes Lions 2007

Cannes Lions is the largest advertising even in the planet, capturing 11,000 visitors from 75 countries and this year I get to go -- so excited! Is anyone from the community making it over there? Go figure, the official site is ColdFusion based :)
Then I'll be flying to CFUnited the very same day I come back, fun-times.

Flex Intensive Course Preview

I'm presenting a really small preview for my Flex Intensive CFUnited pre-conference class tomorrow at the CF Meetup. It will be at 12:30 and you can access here. The presentation will cover basics of Flex, why you would want to learn it, show you the huge amount of topics I will cover, and some Q&A... so it will be 1/2h tops, thus you can easily connect during your lunch time and check if you're interested in attending.

I'll post my slides tomorrow after the presso.


I'm at CFUnited's Homepage

CFUnited posted a small video summary of some of last year's random interviews and I'm featured in the first slot :) ... so check me out at CFUnited and try to make it this year to say hi ... The conference has improved every year and promises to do so this year again.

BTW, if you have any interest in Flex, don't forget my pre-conference 8h intensive Flex class, for all levels.

Cairngorm 101 presentation and files

I presented a session on Cairngorm last week at CF.Objective() and explained all its elements, design patterns, event flow, levels of abstraction, and walked-through steps on a simple example.

You can find my slides and examples -- MVC1.001, 002, and 003 -- and each adds a little more functionality. MVC1.001 just displays a form, 002 adds a click event, fire an event, traps is in the controller, executes a command, updates the model, and 003 also uses a business delegate and a service locator. To run the files simply extract in a folder, open flex builder, import a project, and point to the MVCX folder. I did not include the Cairngorm source files, so depending on your preference, either copy them into your project, or add the SWC to your classpath library. You can download the latest version from labs. Just in case, right click the project, click properties, Flex Build Path, Library Path, click Add SWC, and point to the cairngorm.swv binary that you downloaded from labs.

Here's an overview of the differences in the examples so your can follow along:

* Cairngorm MVC with views only
* No events, commands, model, VO
* Main file loads service, controller, and viewlet

General flow:
* Main shell loads business, control, and view
* View displays login box

* MVC1.001 plus
* Cairngorm MVC with model, view, controller
* No business delegate or service locator
* Main file loads service, controller, and layout view
* Added LoginCommand, and LoginEvent
* Control registers event
* Added Login model in model locator
* Model implements state
* View contains view stack binded to state
* Command immediately approves login attempt and update model

General flow:
* Main shell loads business, control, and view
* View displays layout with view stack
* View stack is bound to the model and displays login box by default
* User clicks login button and triggers loginUser()
* Function creates a LoginVO to hold the login data
* Function creates a LoginEvent and passes the LoginVO
* Function dispatches the event
* Controller traps the event and executes the LoginCommand
* Command updates the login model and workflow state in model
* Viewstack is bound to workflow stats and update view

* MVC1.002 plus
* Cairngorm MVC with model, view, controller, business delegate, and service locator
* Added LoginDelegate
* Services.mxml contains RPC, but it's commented out for demo purposes

General flow:
* Main shell loads business, control, and view
* View displays layout with view stack
* View stack is bound to the model and displays login box by default
* User clicks login button and triggers loginUser()
* Function creates a LoginVO to hold the login data
* Function creates a LoginEvent and passes the LoginVO
* Function dispatches the event
* Controller traps the event and execute the LoginCommand
* Command initializes the LoginDeletate to talk to the server
* LoginDelegate gets the loginService from the service locator (commented for demo purposes)
* LoginCommand invokes thes login function in the LoginDelegate
* LoginDelegate invokes the login function in the loginService (commented for demo purposes)
* LoginDeletate calls the loginResult which randomly logs the user in (only for demo purposes)
* Service call returns and calls the onResult function in the command
* Command updates the login model and workflow state in model
* Viewstack is bound to workflow stats and update view

I'll explain all this and much, much, much more in my 8h Flex Intensive for ColdFusion Developers at CFUnited.

ColdFusion 8 Presentation in Florida

Reminder: Adobe's Scorpio Spring Tour is coming to town today, so don't miss it! This is your one chance to catch the official pre-release demo of all the cool new features coming up with ColdFusion 8. Among the features to be presented tonight, you may expect to see: [source]

  1. Built in AJAX widgets. Create AJAX windows, auto complete forms, calendar popups, grids, WYSIWYG editors, and much more. All using simple ColdFusion based tags and generating industry standard solutions such as Prototype and Yahoo User Interface Javascript.
  2. Native JSON support. ColdFusion components now know if they are called by a web browser and will return JSON formated data automatically. You can also create JSON packets directly or consume them and turn them into native ColdFusion objects.
  3. .NET (and Java!) integration. Pull in .NET objects and use them like native ColdFusion objects. Combine .NET and Java on the same page if you like. Easily the best web based middleware solution.
  4. Microsoft Exchange integration. Love it or hate it, most organizations use Exchange religiously. Now you can read and update email, calendars, tasks and much more. No change to the Exchange server is required.
  5. Flash based presentation builder. Combine HTML, Audio, Flash Movies, Images, and CFCharts to create spiffy flash based presentations on the fly. Just wrap your existing pages in CFPRESENTATION and you are on your way.
  6. Full PDF integration. Create, combine, update, and interact with PDF files using CFPDF and CFPDFFORM tags.
  7. Native image manipulation functions. Blur, sharpen, draw, rotate, stream to browser, and much much more. This finally brings ColdFusion's image support in line with PHP and other frameworks while keeping it so simple that even I could use it.
  8. Across the board enhancements. Improvements in security, speed, Flash Forms, Report Builder, and more.
  9. Administration API. Now you can access, audit, and snapshot all the information the server knows about itself. No longer is ColdFusion a black box. Audit long running processes, most frequently run queries, and bottle necks. SnapShot the server before making your change or doing a reset so that you can analyze potential problems later.
So if you're local, I will see you there.

cf.objective() 2007 in two weeks

CF.Objective() is coming up. Like I said last time, the speakers lineup is amazing, it's less expensive than most conferences, and you will get tons of advanced topics: Ajax, ColdSpring, Transfer, Flex ... Some brand new Scorpio news ... hope to see you there.
I will be speaking on Flex and the Cairngorm micro-architecture ... fun stuff.

btw, Mark said he will finish my Transfer composite keys support by then, so this post makes is official! :) I can't wait.

Flex Intensive Course

Extra, extra, read all about it! Flex Wizard in a miracle cure! I'll be teaching a full day pre-conference class June the 25th, at the CFUnited Conference. Last year I taught an Ajax Intensive class, which turned out to be very successful... The feedback I received was: more code, more code! so this year, it's mostly hands-on! You'll be coding in no time.

This full day hands-on Flex course that require no previous Flex experience. The class promises to be fun, energetic, and saturated with information, examples, and code. It will focus not only on Flex architecture, but also teach you to organize your ColdFusion code in such fashion that you can reuse your business layer across any front-end, including Html, Ajax, Flash, or Flex.


  • Flex Builder Environment
  • Flex Built-in Components
  • Basics
    • Event System
    • Data binding
  • ActionScript 3.0
  • Remote Calls: HTTP Services, Web Services, AMF3 / Remoting
    • Organizing your ColdFusion Service Layer
    • Flexible Messaging Architecture
    • Error Handling
    • Logging
  • Flex Data Services
  • Cairngorm Microarchitecture
    • Basics / Request Flow
    • Design Patterns
    • Analogy with ColdFusion Frameworks
  • Debugging
    • Within Flex
    • Monitoring HTTP / AMF Traffic
  • Documentation
  • Automated Deployment using ANT

p.s. if you're still wondering about the first line of this post, it's a quote from Tommy, by The Who.

Most Advanced ColdFusion Conference To Date

I was checking the sessions listed for CF.Objective() 2007, and let me tell you, it can't get better than that. Seriously, check it out ... it's the best content, best speakers, and best price.... hope to see you all there.

If you have to choose between CFUnited and CFObjective, CFUnited will probably have more attendees, thus better networking, but CFObjective definitely has more advanced topics, and it's cheaper ... tough choice indeed, so try to make them both, but if money is an issue, CFObjective is a must.

Spring Break Conference Presentations

Last week I spoke at the Spring <br /> Conference in Ohio. The sessions went pretty well, especially because I didn't bore to sleep the people that attended design patterns. The reviews were excellent - and funny -. I got a couple simply saying 'follow the white rabbit'. Anyways, I want to thank OU for the facilities and putting together a full day conference, 7 tracks, 20 speakers, hands-on classes, and only charge $35 cover.

Find below the slides for my sessions.

Software Design Patterns and Best Practices

In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. Proper architecture is the key for a successful application and design patterns describe simply best practices. The session will demystify them and show you they are nothing but a common vocabulary for expressing simple solutions for common problems.

[download slides]

Robust Ajax Architecture

Ajax was the top buzzword in 2006 and now it seems like it has become the norm in every site. The key to a successful site, Ajax or not, relies or proper architecture and following best practices. This session will get you up to speed with Ajax development, leveraging JavaScript libraries, and building MVC architectures and Ajax design patterns to reuse your existing code.

[download slides]

More Entries

This blog is running version 5.9.003. Contact Blog Owner