ColdFusion MX Resource List for Database Driven Web Apps

Recently I had a need to compile a broad, and up to date list of ColdFusion MX resources to help get started building database driven web applications, so I'll share that here. I'm not including recent resources such as ARF! and ColdFusion on Wheels because while I think they are fantastic projects they reside on the advanced end of the developer's spectrum.

Resources on

Building Your First ColdFusion MX Database-Driven Web Application (Demo)
  • Part 1 Create a new ColdFusion site in Dreamweaver MX 2004
  • Part 2 Use the new ColdFusion MX 7 extensions for Dreamweaver to create a new ColdFusion data source.
  • Part 3 Retrieve records from a database and display them in an HTML table.
  • Part 4 Create a basic master/detail page with dynamic data.
  • Part 5 Create a ColdFusion component to make data reusable and more flexible.
  • Part 6 Add a new function to the CFC for parameter-driven queries.

Other Resources

Macromedia Devnet Article on CFEclipse by Rob Rohan

Today, the Macromedia Developers Center published what I believe is the first article by Rob Rohan on -- what else? -- CFEclipse. The article is a great resource for anyone not already familiar with the CFEclipse project since it covers Introduction, History, Features, and how to pitch in on this Open Source project backed by Macromedia. Many of you in the ColdFusion Community know that Rob is a founder of the project that began almost two years ago.

CFEclipse for ColdFusion Developers

BlogCFC Tip: Integrate new pages into blog layout.

If you're using BlogCFC, here's how you can create new website content that integrates very well with the Blog theme and layout.

For example, using stats.cfm as a model, you can first build a generic template used to horizontally build out the website content. It looks like this:

view plain print about
1[cfsetting enablecfoutputonly=true>
2[cfprocessingdirective pageencoding="utf-8">
3<br/><br/>[cfmodule template="tags/layout.cfm" title="SAMPLE">
4    [cfoutput>
8    [/cfoutput>
10[cfsetting enablecfoutputonly=false>

Say you want to create a Contact Me page, then use the generic template and build a contact form. Save the file as contact.cfm right next the blog's index.cfm, and create a navigation link to it on the main blog view, like mine under the banner image.

view plain print about
1[cfsetting enablecfoutputonly=true>
2[cfprocessingdirective pageencoding="utf-8">
3<br/><br/>[cfmodule template="tags/layout.cfm" title="Contact Me">
4    [cfoutput>
5    <div class="date">Contact / <a href="index.cfm">Main</a></div>
6    <div class="body">
7        <h1>Contact Me</h1>
8        [cfif not isdefined("form.message")>
10            <p style="font-size: 11px;">Please use the form below to contact me. All fields are
11            required, otherwise I will not be able to respond to you.</p><br/><br/>            [cfform name="contactform" action="/blog/contact.cfm" method="post" >
12            <table>
13                <tr><td>Name: </td><td>[cfinput name="name" id="name" type="text" required="Yes"></td></tr>
14                <tr><td>Email Address: </td><td>[cfinput name="email" id="email" required="Yes" type="text" validate="email" message="Please provide a valid email address"></td></tr>
15                <tr><td>Subject: </td><td>[cfinput name="subject" id="subject" type="text" required="Yes"></td></tr>
16                <tr><td>Message: </td><td>[cftextarea name="message" rows="5" cols="36" required="Yes"/></td></tr>
17                <tr><td colspan="2">[cfinput name="submit" id="submit" value="Send Message!" type="submit"></td></tr>
18            </table>    
19            [/cfform>
20        [cfelse>    
21            [cftry>
22            [cfmail from="" to="" replyto="#trim(" subject="Blog Contact Form: #form.subject#">
25Subject: #form.subject#
26Date: #dateformat(now(),"ddd, mmmm dd, yyyy")#
27Time: #timeformat(now(),"h:mm:sstt")#
28Message: <br/><br/>#form.message#
29            [/cfmail>
30            [cfcatch>[/cfcatch>
31            [/cftry>
32            <p style="font-size: 11px;">
33                Thanks! The message has been sent.
34            </p>
35        [/cfif>
36    </div>
38    [/cfoutput>
40[cfsetting enablecfoutputonly=false>

You can continue adding related content this way to broaden the website.

Configuring the Oracle 10g Database Driver for ColdFusion MX

Oracle has recently released Oracle 10g Express Edition (XE), a free edition of their database server. While Macromedia supports connections to Oracle 10g from ColdFusion MX 7.01 using the built-in JDBC drivers that ship with ColdFusion, this version of Oracle is not officially supported with earlier versions including ColdFusion MX 7 or ColdFusion MX 6.x.

If you would like to connect an earlier version of ColdFusion MX to Oracle 10g, or would like to try an alternate driver if you're already using CFMX 7.01, then here is how to configure the 10g JDBC driver provided by Oracle for use with ColdFusion. This driver is often refered to as the Oracle Thin Client. Sometimes driver behavior varies between two vendors, so its often very helpful to try alternate driver versions.


Developer's API Enhancement Request for Stop & Shop Grocery Store

To the Stop&Shop Website Architect or Website Project Manager:

I would like to access my shopping history. I know that Stop&Shop maintains my history via my Stop&Shop card number in order to tabulate accumulated savings, etc...; however, I would like to be able to review my purchase history to look for trends regarding the products I buy, such as dollars spent per unit time, dollars spent per product category, frequently purchased products, favorite products, and so on.

While it would be fantastic if Stop&Shop provided a web portal where I could analyze my shopping history, I realize that is a very tall order. A short term solution that would benefit many technologically adapted customers would be availablility of shopping history in an XML format, requiring authentication/login to maintain privacy. A nice idea would be to be able to login to the website and have a simple rss feed referencing each monetary transaction (total purchase) where the contents of a transaction item would contain transaction details including individual products and quantities as well as price, vendor/SKU, and total cost, method of payment, etc... Not only would this help costomers analyze shopping history, but they would be able to build wish lists or favorite product lists for future shopping excursions.

Stop&Shop could also publish a Developer's API describing how to access the data in different formats so that web application developers could build their own portals to help Stop&Shop customers better understand their shopping habits and plan for their next shopping requirements.

[VAdministration] or [Java bean field] errors occur when using CFMX 7 on JVM 1.5

ColdFusion MX 7 and 7.01 ship with JVM version as the default JVM. If you are installing the WAR or EAR option of ColdFusion on an existing version of of JRun, then you may not be using this 'default' JVM since JRun permits you to choose a pre-installed JVM when initally instaling JRun4.

If you are using Sun JVM 1.5 in either Server Configuration, Multiserver Config, or J2EE Config then you may encounter a variety of errors that occur regarding the Verity K2 Search Server. Verity K2 ships with ColdFusion MX 7/7.01 and the encyrption libraries don't work with JVM 1.5, and that JVM version is not supported for use with ColdFusion MX 7/7.01.


Recent Comments Pod: New pod for BlogCFC 4.0

Attached is a zip of a new recentComments.cfm template to use as a pod for Ray Camden's new BlogCFC 4.0. This version uses his custom tag scopecache to cache the generated html from each pod, so here's how to add a pod that will display the last few comments in the side bar, and will be refreshed upon a new comment entry or comment deletion.

[More] now using BlogCFC 4.0

With some effort, I migrated TalkingTree from BlogCFC 3.5.2 to 4.0 beta, complete with new look. Ok, so today Ray released the final 4.0 version, so I missed the boat on that one ;-). I've given up the Aura skin in favor of something lighter on the graphics and easier to maintain.

Migrating blog versions was slightly challenging since the BlogCFC 4.0 kit comes with a migration tool for verion 3.8, and there were some changes to the tables between 3.5 and 3.8 so I had to figure those out. Specifically, I had to alter tblBlogEntries to add a column for allowcomments, add the tblBlogTrackBacks, add the tblBlogSearchStats, add the tblBlogSubscribe table and then adjust it coz it was missing a blog column, plus a few other small tweaks.

I also integrated my webcam view and HTTP referers view into the blog using a stripped-out stats.cfm page as template.

Creating the new skin was the most time consuming part since I was having lots of trouble with MSIE and CSS. In every case Firefox worked like a champ while editing the stylesheet, but MSIE wouldn't display the style as I expected it to. There's still a couple issues when viewing with MSIE, but the two browser views are largely the same.

I also had to reintegrate Google Adsense with a smaller size since I couldn't force the 728x90 leaderboard into a smaller space, and I didn't like the way the 468x60 leaderboard displayed, so I used two 234x60's instead and put them in table to force a little horizontal balance.

The final work to be done on the new blog set up was integrating Site Meter stats and the Technorati claim code.

I like many of the new features of BlogCFC 4.0, including real support for podcasting via RSS 2.0 and enclosures, automated pings, better search stats, unsubscribe comment features, disallow comments, and printing support.

Good stuff.

Renderings of Concord Center and the Hartwell House

Photo gallery from an early morning in Concord including Concord Center, the Unitarian Church, The Colonial Inn, and the Hartwell House in nearby Lexington. These are renderings of Concord taken with a Canon EOS D20 and enhanced with Adobe Photoshop CS 2 to give them a hand drawn ink and watercolor feeling.

I'm still learning about printing techniques, but I've already learned how to upscale photos so that I can make larger prints without significantly reducing image quality. Just for fun, I ordered the first rendering of Concord Center in a 20" x 30" size from Shutterfly. The upscaling and posterizing enhancments caused the filesize to increase from about 11MB to 61MB, and Flickr won't accept files that large, so I had to use Shutterfly. Photos of that size are done in matte paper only, although it looked more like semi-gloss to me. Aside from the glossyish paper, the photo came out great at that size. I'd like to do a custom print on watercolor paper on a professional printer and then matte and frame it for my home.

These photos were taken during a 1 day workshop of personal instruction from Bill Claybrook of New River Photography. It was just Bill and I, so the workshop was definitely worth it just for the personal attention alone. Bill and I made our paces through Concord Center on a Saturday morning, and then at the Hartwell House on Battle Road on the way to Lexington. Then we spent a few hours at Bill's house where he showed me his techniques for printing, and then we went back on the road for more photography at the Shaker Village in Harvard, MA. Oddly, Bill's primary occupation is a Linux industry analyst and currently works for Novell, maker of Suse Linux. His articles can be found on the web including at Linux World Magazine on

My other photo galleries of Concord, MA:
- Autumn in Concord, MA
- Snow Storm in Concord, MA
- Concord on Forth of July

Renderings of the Wayside Inn, Grist Mill, and Mary-Martha Chapel

This photo gallery taken on a recent fall morning when I spent a couple hours in Sudbury at the Wayside Inn. First popularized by Longfellow's book after the Civil War, and then further developed by Henry Ford in the early 20th century.

Wayside Inn
Formerly known as Howe's Tavern starting in 1716, the Taven was renamed after Henry Longfellow published a book of poems in 1863 about the Tavern. Longellows book is called "Tales of a wayside inn".

Grist Mill
Henry Ford's Grist Mill, near the Wayside Inn in Sudbury, MA.

Martha-Mary Chapel
In 1923, Cora Lemon sold the Inn to automobile manufacturer Henry Ford, and Ford built the Martha-Mary Chapel on the site in 1940, just across the street from the Wayside Inn.

Previous Entries / More Entries