Viewing By Month : November 2004 / Main
November 30, 2004
Plum Public Beta Announced
Adam and David Churvis over at Productivity Enhancements have released the public beta of Plum, a RAD tool for developing ColdFusion based applications.

Plum stands for "Practical Lightweight Universal Methodology", and consists of an IDE, code generators, a stored procedure builder, unit test generators, an application framework, and a development methodology all rolled up into a neat package.

A release date for Plum hasn't yet been announced. Perhaps the most shocking feature of Plum, though, is its price: It's free! Adam and David decided to release the tool for free. The IDE is ad supported via a small, non-intrusive (240x120) ad in the lower left-hand corner of the IDE. Of course if you find Plum useful, you can purchase a license key for $79.95 that will disable the advertisements entirely. They are also offering unlimited telephone support (to supplement the free online support) for $495 per developer.

November 17, 2004
ColdFusion 6.0 to 6.1 Upgrade Gotcha
Recently, I upgraded the last of the CFMX 6.0 systems here at my company to CFMX 6.1. I ran into a small problem after the upgrade where the ODBC Server and ODBC Agent services, used by ColdFusion to allow connections to ODBC datasources would not start. I had run into this before, but I couldn't quite remember what the issue was (one more reason for documenting your installs and upgrades).

To make a long story short, ColdFusion was installed on the D drive of this machine, which was the root of the problem. Apparently, when you install/upgrade CFMX on a drive other than C (Windows), the .ini files used by the two services in question get incorrect drive/directory references.

The solution for the problem is to do a search and replace all instances of:

C:\Program Files\Merant\

with

D:\CFusionMX

in the directory D:\CFusionMX\db\slserver52 and all of its subdirectories. This assumes your install is on the D drive.

More information can be found in Macroemdia Technote 18800.

November 15, 2004
Recipe for Disaster
Last week, I was updating our disaster recovery plan for our public website and ran into an interesting "problem" with recovering ColdFusion. As part of our planning, we regularly go off-site to our disaster recovery provider's facility and bring up various systems as if we had to recover from a real disaster.

In my case, after the network and operating systems were in place, it was my job to bring our public website back up. This consisted mainly of installing anc configuring Apache and ColdFusion, then restoring the actual code from tape. The Apache install wen't smoothly. ColdFusion, however, threw me for a loop. We have media disks that are part of our disaster recovery packages, and mine had Apache, CF MX 6.1 and the new updater as well as a recent copy of our httpd.conf file, a CAR file containing the CF server config, and third party database drivers.

When I went to actually install CF, the installer threw up an error saying that I needed MDAC 2.6 SP2 or later in order to complete the install. Apparently, a fully patched OS doesn't contain the latest MDAC. The simple solution would have been to just go out to Microsoft's Data Site and download the latest MDAC driver. Problem was, we had no Internet circuit. We had brought it down a few hours prior to simulate a loss of our eVPN with our main campus. There were no other Internet connections available to us at that point!

In the end, we ended up running over to a coworker's appartment and downloading the driver to a USB flash drive. Once I had that, I had CF installed and configured in about 20 minutes, and the site restored from backup in about another 30 minutes.

The moral of the story here is that if you are planning a disaster recovery plan for CF, you need to include the latest MDAC in your media, as it isn't included with the CF install!

November 9, 2004
Firefox 1.0 Goes Gold
It's official, Firefox 1.0 is now available for download. If you haven't tried Firefox yet, you really should. It's tabbed browsing and RSS integration features alone make it worth the switch from IE. That, and it's just more secure.

The site is pretty busy today, so there are several mirrors that you can try if you can't get if from mozilla.org:

Win32 Mirror
Linux, Mac, Win32, and SRC mirror

You should note that if you are using an older version of Firefox with extensions, chances are that many of those extensions won't work until they are upgraded for the 1.0 version.

November 8, 2004
More Thoughts on Design Patterns In ColdFusion
I've been getting asked quite a bit lately about using Design Patterns in ColdFusion. It seems that a lot more people are reading up on them, but are often having a more difficult time figuring out both how and when to actually implement them within their ColdFusion applications.

I think it's important for developers to approach the use of design patterns not from a "which patterns can I use in my application", or "I want to use the strategy pattern in an application" approach, but rather from a solid architectural approach. That is, I think it's more productive for developers to first model their application, then look for patterns that help solve problems within that model. Of course in order to do this, you first need a good understanding of what the most common design patterns are, and how they can be used in an application. One of the biggest pitfalls to avoid up front, though, is simply learning a pattern and then doing the equivalent of a copy/paste into your applications. Patterns are not absolute, and a pattern that fits well in one situation may not fit the same way into all of your applications. The only way to really understand design patterns, and how to apply them in your applications comes through study and experience.

So, where does this leave us as ColdFusion developers? Most of the design pattern literature out there deals with implementing design patterns in languages such as C/C++, or Java, or sometimes even pseudo-code. That's ok if you understand those languages, especially if you are able to make the connection between how it's done in another language, and how that maps to ColdFusion and CFCs.

If you read the ColdFusion Developers Journal, you may have noticed that design patterns are being discussed in more and more articles. What i would suggest doing if you are interested in incorporating design patterns into your ColdFusion development is to purchase one of the popular design pattern books, and use it as a guide when reading some of the various ColdFusion specific design pattern articles. I think that taking this approach will allow a lot of ColdFusion developers, with no experience with other languages to make the most of the information that's out there, and to ease their way into the world of design patterns.

To get you started, here's an excerpt from the book Design Patterns: Elements of Reusable Object Oriented Software. This book, by the so called "Gang of Four" is considered the seminal work on software design patterns. The excerpt (chapter 1) is hosted on Macromedia's site and introduces Design Patterns and lists out some of the more common one's you are likely to encounter.

Once you have the introduction to design patterns out of the way, here are some of the ColdFusion design pattern articles worth taking a look at:

Template Method Pattern
Iterator Pattern
Strategy Pattern
Composite Pattern
More on Composition
More on Polymorphism
Singleton Pattern
Creational Patterns
Facade Pattern
Data Transfer Hash Pattern

If you couple these with one or more of the following books, I think you'll have a good starting point:

Headfirst Design Patterns
Design Patterns: Elements of Reusable Object Oriented Software (Gang of Four)
Design Patterns Explained: A New Perspective on Object-Oriented Design

I'd definitely like to see more design pattern articles focused on ColdFusion. If you would too, why not drop the ColdFusion Developers Journal editor, Simon Horwith, an email over at simon(at)horwith(dot)com and let him know you would like to see more coverage in the magazine.

November 7, 2004
Thoughts on Event Gateways
Now that Evet Gateways have officially gotten more coverage (ala MAX), we in the ColdFusion community need to start thinking about the possibilities they open. By piecing together everything we heard at MAX surrounding gateways, we know that Blackstone is going to ship with several included gateways:

  • Lotus Sametime Gateway (IM)
  • Jabber/XMPP Gateway (IM)
  • Directory Watcher Gateway(Looks for new additions to a file system directory)
  • SMS Gateawy (for sending/receiving SMS text messages)
  • Asynchronous CFML Gateway (for multi-threaded CFML invocations)

Beyond these gateways, it would be fairly simple (provided you know a little Java) to create additional gateways for communicating with all sorts of additional technologies via protocols other than HTTP. Considering the possibilities, this means you (or a third party) could write a telnet gateway, a gateway for connecting to a messaging service such as JMS (Sean Corfield has already mentioned he's worked on this for an internal project) or MQ Series, or a gateway for communicating with the X10 protocol. The list goes on and on. Themain point here is that the possibilities are limitless.

This also opens up a potential new revenue stream for companies wanting to produce and support commercial gateway add-ons for ColdFusion. So, if you don't know Java but need a gateway for a particular application, chances are that a solution would be available from either an open-source or commercial provider.

The coolest thing about gateways, though, is that you only need to know Java if you want to write your own. To use and existing gateway, you only need to know ColdFusion as all gateways are implemented via CFCs.

What uses for Event Gateways are you thinking about?

November 4, 2004
Blackstone Sneak
I didn't get a chance to blog this yesterday because my wireless connection in the auditorium wouldn't stay up. That, and the demo machine blue screened, so Damon Cooper had to basically just tell us what the sneak would have been, rather than demoing it. Nothing really new here, except I think this may have been the first time that anyone mentioned that the new gateway funcitonality would include an Instant Messaging gateway that included support for Lotus Sametime this interests me because my company uses Sametime).


MAX 2004 Wrap Up
MAX 2004 is winding down with only a few hours left to go. Time for a little reflection and some thoughts for next year.

Macromedia consistently puts on one of the best conferences I've been to. While it's true that some things go more smoothly than others, and that the choice of location has a lot to do with how things run, all in all, MAX is and always has been a well run event. Hats off to everyone at Macromedia who makes MAX the event that it is.

Now, on to a few suggestions. The only real "complaint" I have about the sessions is that the higher level sessions still tend to be to general. From talking with people at the conference, it seems that people want even more "advanced" content that helps them understand the concepts and gives them practical advice on how to apply it. For example, the Hal Helms session on OO ColdFusion was a great introduction to OO development for ColdFusion developers, but I think a lot of attendees were then ready for a follow-up session on applying those ideas and principals. They needed concrete examples, maybe a sample application that they could walk through with a presenter to get more indepth experience with the concepts.

This leans me into my next suggestion - include even more interactive Birds of a Feather sessions for people interested in different topics within CF and let the learning and knowledge sharing happen at a more organic level. Do a BOF for CFCs, a BOF for reporting, a BOF for Mach-II, etc. All Macromedia needs to do is provide a room, and maybe a projector, and the rest will happen spontaneously. Steve Rittler has more on this on his blog.

Next suggestion is to leave a little more time between sessions. Scheduling them back to back doesn't leave people enough time to make it from one session to the next withoug being disruptive often times.

Not sure where MAX is going to be next year, but it's looking like they are considering a West coast city. I think that's a great idea and would love to see MAX in a city like San Diego, San Francisco, Portland, or Seattle.

I made some really good connections at this year's MAX and look forward to keeping in touch throughout the year. Hopefully, I'll see many of you again next year!

November 3, 2004
Still More Sneaks - Dreamweaver
Dreamweaver:

  • Template driven design using XML/XSL
  • Binding with XSL stylesheets
  • Code Toolbar ala Homesite
  • Drag and drop XML/XLS, including repeating regions
  • Code collapse ala Homesite (4 years ago ;-)
  • New zoom tool. Marquee selection allows marquee and zoom ala Fireworks


More Sneaks
New customer facing knowledge base on the way from Macromedia.

Problem is that both internal and external "customers" have a hard time finding things and sifting through content on macromedia.com.

What's coming:

  • RSS feeds for almost everything -product tech notes, forums threads, etc.
  • Guided search by specific topic types, starting with dev center content or technotes. More types to follow. Category based results - activity, symptom, product version, environment, etc. Also lists best bets in a highlighted area. Recognizes abbreviations such as UI, etc.


Steve Rittler Blogging from MAX
He isn't being aggregated over at MAX Bloggers, but you might want to check out Steve's Blog. He's got a lot of good info coming out of the conference.


MAX Sneaks
Coming live from sneaks, connection willing...

Breeze Live

  • Conference call calls you as opposed to you calling into the conference call

Fireworks

  • Improvements to vector path tool
  • Automated text layer on text creation
  • Simple, instant red-eye removal
  • More Save As Options


Hal Helms on Object Oriented ColdFusion
Sitting in on Hal Helms's Object Oriented ColdFusion session right now. I had heard great things about it and wanted to see what all of the buzz was about.

If you haven't heard Hal speak before, he's an excellent speaker, presenter, and speaker (as well as an acomplished programmer). Much of what Hal is saying rings true for me. Things like 70-90% of an applications cost are in long term maintenance. Applications that often start off well written become messy after multiple additions and revisions at a later point. His contention is that object orientation can help with these problems.

This session is more about OO fundamentals, and Hal does a great job of taking those concepts and explaining them in simple terms.

I'd love to see do a follow on next year (or at a subsequent conference) where he takes these concepts and shows how to develop with them in CF (I know he has training classes on this, but I think an intro would work well in a conference format).

If you get a chance to see Hal speak at MAX (or any other time), it's worth checking out.


Keynote Day 2 - Communication
Macromedia's push with Breeze: Meetings without travel, presentations without meetings, training without delays.

Live demo linking Don Norman (Nielsen's Norman Group) from Amsterdam with the conference in New Orleans. Audio quality is good. Camera (video conf) not too bad. Don spent most of his time talking about design and how the browser has set us back about 10 years in that area. Lots of good info on design stuff (which you can read in his book). The main point he makes is that Breeze and Flex and Flash make things possible today that really are set to take things to the next level.

Experience, experience, experience.

US Army using Breeze in the field for forward deployed SATCOM. Ma


Keynote Day 2 - eLearning
More from Tom Hale on eLearning initiatives...

In the beginning, eLearning was focused on developing skills and competencies. Now it's shifting more toward criticalknowledge transfer and information broadcast.

Various tools to do this, Breeze and Captivate (formerly Robodemo). Silke Fleischer goes on to dispell the commonly held misconception that Captivate is just for making software demos.

Silke demonstrated in real time how quickly you can put together an eLearning app. It definitely *looks* easy to use. The app wasn't a simple demo, it was more of a simulation. The simulation showed the user (Tom) how to insert a Flash movie into PowerPoint. It had audio instructions, and scored his compliance with instructions. This is just a small example of what you can do with Captivate.

Macromedia is pushing Breezr for Informational content and Captivate for Instructional content.


Keynote Day 2 - Tom Hale Chimes In
Tom Hale on various productivity topics:

Web publishing challenges: frustrating backlog of requests, out of date, overgrown, and unused content.

CMS is traditional solution. Enterprise solutions are too expensive and take too long to implement.

Macromedia's solution here started with Contribute. As Contribute use grew (at a faster rate than Dreamweaver), organizations needed a better way to scale and administer. Enter the Macromedia Web Publishing System. It consists of Contribute (content contributers), Dreamweaver/Flash/Fireworks (designers and developers), and administrative tools that tie it all together.

University of Rochester Medical Center as a case study. 25,000 pages and hundreds of contributors. Publishing workflow reduced from days/weeks to hours.

System is fully extensible and can easily integrate with other Macromedia technologies, including ColdFusion.

Publishing system makes use of web services - web services based notification system is a central part of the system.


Keynote Day 2 - Mobile Mobile Mobile
Macromedia continues to push the mobile experience during the day 2 keynote. Main points are:

  • mobile is bigger than the web and will grow at a much more rapid rate.
  • Mobile companies already understand how to bill for services, something lacking on the internet.
  • Kids growing up with mobile technology will soon be entering the workforce. This will represent a fundamental shift in technology expectations and how technology is used by that group.
  • Current mobile experience "sucks". This is Macromedia's opportunity. Get Flash onto mobile devices. Flash has more to offer for the experience on mobile devices than Java.
  • New mobile developer program, link on macromedia.com. Contest, newsletter, training, etc.
  • Verification program for certifying mobile apps
  • FlashCast CDK
  • Current opportunities are mainly in Japan, but Europe is growing quickly. The rest of Asia is also poised. The US is way way behind (as in not even on the map behind).


MAX Keynote Number 2
Since I was able to jack onto someone's wi-fi again today inside the general session, I'll try to blog it live as it unfolds (connection willing). Stay tuned again...


More From Last Night's CFC Birds of a Feather
One of the highlights of last night's CFC Birds of a Feather session was a tool demo by Tom Schreck. His tool, CFC Power Tools, is a code gen tool for creating database tabels, associated CFCs, and CRUD forms that all tie together. It does a whole lot more as well. Tom has some good documentation on the features/functionality on his site.

One of the most impressive parts of the tool, besides the overall feature/functionality is the UI. It's a beauty.

November 2, 2004
CFC Birds of a Feather
It's about 9:45pm here in New Orleans, and we're smack dab in the middle of Ray Camden's CFC Birds of a Feather. All in all, about 30 people turned up for the informal discussion on all things CFC. Some good discussion going on here from how and why to get started with CFCs to much more advanced topics.

General themes among those who are just starting are generally among the "why should I use them", "what are the benefits", etc.

We were going to Breeze Live the preso, but we didn't get to Ed in time to get the account all set up. So, we broadcast audio only via a Flashcom app that Steve Rittler wrote. Unfortunately, we only had one person on the other line, but it was an interesting hack nonetheless.

Paul Kenny and I had an interesting side discussion on CFCUnit. If you aren't using CFCUnit for unit testing your CFCs, you should be. Check it out!

We're also tlaking about code gen tools for CFCs and who's working on what. Seems people would like to see some tools for this. I mentioned we (we=Adam Crump) has a CFC Bean generator for Dreamweaver, and he's looking to port it for Eclipse. Also looking to extend it to generate tests for CFCUnit. People also want UML to CFC to UML generators. Some good dialogue here.


CNN, Get a Clue!
I commented earlier today on why Fox News sucks so much. Well now I get to slam CNN as well. After the 2000 election fiasco, we don't want projections reported as final results, which CNN did before putting up a breaking news alert to say that the results they were showing were only projections. Blah to you CNN!


Spread The Word - MAX Karaoke
So, tomorrow night (Wed), after the MAX special event, a growing group of us are planning a full on take-over of the Cat's Meow over at 701 Bourbon Street on the corner of St. Peter Street (across from Pat O'Briens).

If you haven't been there yet, Cat's Meow is a karaoke bar. Even if you think you don't like karaoke, this place is a blast. We're planning to head over after the special event. Spread the word and hope to see you there!


Even More Reason Why Fox News Sucks
Ha - I was just on the Fox News web site, and on their interactive map, they had already called 3 states for Bush, even though the results weren't in for those states yet. Checking back 10 minutes later, they had cleared the data from the map. Go Fox News!


Building for Scalability
I'm about to present Building for Scalability, the presentation I'm giving three times at MAX. If you aren't already signed up to attend, feel free to drop in as it's a general session, and shouldn't be "sold out".

This session is more a discussion of how we as architects and developers need to plan for scalability in our applications. As the session description says, "Throwing hardware at an application does not make it scalable. Indeed, scalability must be part of every aspect of application design and development. In this session you will learn exactly how applications must be built from the ground up for scalability."

My session discusses designing for scalability, and presents strategies as well as techniques that apply to web application development in general, and ColdFusion application development specifically. The discussion focuses more on planning and testing than it does on actual coding. If you have a chance to stop by, I'd love to discuss how to scalability in the context of your ColdFusion applications!


New ColdFusion Administrator Design for Blackstone
Not sure if anyone noticed or not during the keynote, but ColdFusion "Blackstone" was sporting a totally redesigned Administrator. They didn't show much, just the main page and one of the gateway screens, but it look's much more modern and clean than the previous administrator, which was starting to show its age a bit ;-)


Malestrom (Next Generation Flash Player)
Mike Downey, Flash Technical Product Manager is giving a sneak peek of the next generation Flash player.

  • Dramatic performance improvements
  • Bitmap caching of vector graphics (cacheAsBitmap)
  • cacheAsBitmap works with components to improve performance (like big accordian panes)
  • New graphical capabilities. Pixel level control via graphic effects - Bevel, Drop Shadow, Blur (in and out), Convolution, Glow, Color Matrix, etc. All controllable at runtime. Can be applied to any movie clip.
  • New text rendering engine (Saffron). Precise control over anti-aliasing.
  • New Flash Video codec. Among the best in the industry. Still support old codec as well. Demo images are pretty impressive contrasting old and new. New capabilities made possible including video alpha channel at runtime (very, very impressive). Makes it possible to see through items in video as well.


Blackstone Features at Keynote
Ben Forta and Tim Buntel are up on stage demoing various features in Blackstone. Here's a stream of consciousness of what we're seeing:

  1. Flash forms with built in validation, new controls such as a tabbed control. All done using CFML.
  2. cfdocument tag for preserving printing and formatting of pages. Can output in FlashPaper, PDF, and HTML
  3. Report designer showing how to design reports for new cfreport tag. Very similar to other report designers you might be used to ala Crystal, Access, Actuate, etc. The big difference is that it has lots of CF specific functionality built in such as binding with cfquery data. Can output in FlashPaper, PDF, and HTML.
  4. Event Gateways. Allow CF to work beyond the web. You interface with gateways using CFCs. CF ships with several included gateways including SMS (comes with a cell phone aggregator for testing). You could also use gateways to interface with IM, JMS, etc. There's a demo gateway to allow you to SMS Blackstone to get updates before your next session, get your schedule, and more.


Flex/Blackstone App Predicts Election Results
Kerry wins the 2004 MAX election 54 to 42 percent. The point of this post isn't political. What's interesting is that the "election" took place real-time during the keynote via SMS messaging. Participants were told to text their vote to a number given on the screen. A RIA built using Flex on the front end and Blackstone on the backend tallied the results real-time and reported them graphically on the screen. It was pretty cool to watch the graphs update in real-time as the votes came in.

More interesting was a demo given a little later where they were able to show the breakout, by state, of how people voted. This was based on an area code lookup of the captured phone numbers from the SMS voting.

The actual SMS work was handled by a new feature in Blackstone called the SMS Gateway. More on gateways later.


More Companies Using Flash
Not big news, but it lends more credibility to the value of Flash for Rich Internet Apps. IBM, Microsoft, CNet, Amazon.com, and Salesforce.com are all using Flash in various ways on their websites.


AS2Unit - Unit Testing for Rich Internet Applications
Although not entirely new, the team over at iteration::two has released a unit testing framework for ActionScript 2.0 called AS2Unit. The framework is available for free, and the project is currently looking for additional support from the community to help grow the project.

Update: Lance Linder points out that a 2nd unit testing framework (and more) is also available, as2lib.


Interesting Attendance Statistics
No official attendance count yet, but here are some interesting stats of the attendee makeup:

Education & Government = 35%
Big corporations =54%
ColdFusion users = 60%
Dreamweaver users = 90%


Live From The MAX Keynote
If the wireless connection here holds, I'll be blogging updates live from the MAX 2004 Keynote. Stay tuned...

November 1, 2004
ColdFusion Community Suite
If you're at MAX and looking for a great place to hang out with other ColdFusion developers in between sessions, or after hours, then get yourself over to the ColdFusion Community Suite, hosted by Michael and Judith Dinowitz of House of Fusion. The community suite is free for all, and can be found at:

Hampton Inn (Across from Hall E of the convention center)
Room 213
Opens 9am


MAX Attendee? You're now a Blackstone Beta Tester!
After picking up my official registration packet this morning, I went through the materials to see what goodies Macromedia had included this year. To my surprise, there was a nicely packaged CD labeled "The Future of ColdFusion - Blackstone Beta 2". So, it looks like all MAX attendees now have a copy of the Blackstone beta code.

It's going to be interesting to watch the reactions as people realize what they've gotten access to. I'm hoping to see a lot of excitement and energy around Blackstone at MAX this year. Expect me to blog a lot more about Blackstone over the next several days as more of what was previously covered under NDA becomes public.

Update: After actually opening the package, it looks like your access to the beta program requires you to first login to the Macromedia beta site and enter your email address (used to register for the conference). You are then given an access code to activate the beta. So, Blackstone beta 2 is not a completely open beta, but you do get to be a part of it!

That said, I'm guessing everything Blackstone is still NDA other than what Macromedia has already publicly released, and what will be demo'd at the general sessions and sneak peek sessions.


Dinner at Acme Oyster House
This post is a little late, but after arriving on Friday night, I headed over to the Acme Oyster House to get my fill of fresh oysters. Living in Phoenix, we just don't get many decent fresh oysters.

Acme Oyster House is nothing fancy, and they don't take reservations (I waited in line for about a half hour for a table to open up). What they do do, however, is oysters. I had a dozen on the half-shell, and then a combination oyster/shrimp fry. Mmmm, mmmm, good.

If you want to get really close to the action, sit at the marble bar, where the guys behind the counter shuck oysters with speed and skill for all to watch.