ColdFusion Recursive Functions

Recursion is defined as a method calling itself.

A long time ago, in a land far, far away, I was studying Computer Science, taking courses to lead to certifications in Object Oriented Programming. Back then I was introducedto the concept of recursion, which sounded very fascinating, but I never thought I would have a practical use for it. Times have changed, for me.

[More]

Steve Bryant on DataMgr

So, I just got home from the monthly Nashville ColdFusion User Group meeting, and I have to say that I'm looking forward to watching the Breezo (Connecto?) again of Steve Bryant's presentation on DataMgr. This lightweight utility seems like it can actually do some heavy lifting with some of your basic database interaction, handling all of your basic CRUD and a whole lot more. Has some very nice, built-in functionality for handling things like automatic data truncation when inserting to a column of a smaller size (but only if you ask it to), rewriting a batch of records to reflect new sort orders (like when re-ordering display orders), and quite a few other things.

[More]

The State of Cutter

Well, it's been a busy year already. I've been working on the largest code rollout in the history of our company. 250+ templates in all. I'm thankful that we hired another senior developer in Andy Matthews, a great guy whom I already knew from our Nashville ColdFusion User Group. Although the initial project was in support of a new project relating to statistical usage reporting, encompassing user and session management, we have also begun a full scale rewrite of our session and application initialization. No small task with our system, and something that will be further enhanced in the coming year as we finalize our migration from ColdFusion MX 6.1 to 7.

[More]

Ben Forta is coming to Nashville

So, Aaron told me about some exciting news from Adobe today. On May 9th, Ben Forta, ColdFusion Evangelist at Adobe and tech author extraordinaire, will be giving a special pre-release peak into Adobe's upcoming release of the newest version of ColdFusion, codenamed 'Scorpio'.

[More]

Beginner SQL Tricks: NULL Value Defaults

OK, I'm not a beginner with SQL. After 7 years of hammering away at web apps I've picked up a little bit here and there. But I also try to remember how difficult it was for me to wrap my head around certain things that didn't necessarily have to do with programming logic. Things like design, layout, and database calls.

[More]

Developer Persona: Cutter

Per Tim's suggestion:

  • 37 Years Old
  • Lives in Nashville, Tennessee
  • Former Army
  • Drives a 2006 Chevy Cobalt
  • Rents an apartment, while working towards a house
  • Married to SuperWife, Teresa, with 5 year old Diva Girl daughter, Savannah
  • Likes to read Stephen King, Tony Hillerman, murder mystery thriller mayhem and things that go bump in the night. Gets to read fiction maybe twice a year.
  • Battlestar (with the wife), Smallville (with the daughter), Heroes (for me)
  • Loves to sing, misses fronting 'The Band'
  • Favorite Book: To Kill A Mockingbird
  • Favorite Musician: Jimi Hendrix
  • Loves movies, but rarely goes to the theater
  • Listens (and sings) to everything from Nickelback to Nat King Cole, with strong leaning towards classic rock and the blues
  • Captain and Coke

It's here

CFEclipse 1.3 Released

But, you already knew that. (Sorry I'm late to the party, I've been busy studying for my exam, etc.) The suspense was killing everyone, it seems, on what all of the mysterious banners were that popped up on several key blogs (including mine? Now how did that happen?) Then came 'the hunt', that cool programmer's puzzler leading to the video. Finally Version 1.3 of CFEclipse is out of beta and available for download.

Over the coming weeks Mark and the crew will be putting out some info on the new features of CFEclipse. Most of the changes aren't very evident to those who've been on the beta, but one of the immediate enhancements I noted was the template introspection when I began to reference variables I had previously defined. Nice time saver. What goodies have the rest of you spotted?

The entire CFEclipse crew has been hard at work over the last year knocking off the bugs that had been reported, doing some fine tuning, plus cranking out a new site (which is still a work in progress). Truly great stuff from Mark Drew and everyone else on the CFEclipse project. So A) donate to their various 'conference' donation setups, and B) buy them lots of drinks at said conferences. Last I checked Mark was heading off for a well deserved trip to the pub. Someone buy that man a JD and Coke.

CFMX7 and Apache 2.2.4

So, in my infinite wisdom, and much to the dismay of my wife, I decided to replace my server with a new (used) one. A slightly more powerful machine that a friend of mine was going to put on FreeCycle (Thanks Patti!), I thought it was perfect to go ahead and make some changes to my dev environment. I want to begin using Subversion, plus I figured I would go ahead and switch to CF on top of Apache (since IIS Sucks!), not to mention setting up CF on the multiserver install. Hey, why not.

Stephen Collins has a fine document called the ACME guide (for the uninitiated) that thoroughly covers setting up a basic, free development environment: Apache, ColdFusion, MySQL, (CF)Eclipse. I thought this would be a good place to start, but didn't realize that Apache had upgraded their server before AcidLabs could update the ACME guide. Whoops! ColdFusion install completes but Apache won't restart!

[More]

Making The View: Part 7

OK, so let's get interesting. We've covered creating a base template in XHTML, properly divided our display declarations from our content by using Cascading Style Sheets, and pinpointed some areas within the base template which should be dynamic. Finally, in our previous tutorial, we brought all of this together in a reusable template, which we demonstrated by using it as a custom tag. Now we're going to really start having some fun, by redefining our view within some frameworks. Now, I'm no expert. There are probably a few dozen ways to properly handle the view within the different frameworks, so any other suggestions are welcome as always. We're going to start off with Model Glue:Unity, while I catch up on the changes to Mach II and Fusebox.

[More]

ColdFusion Mail Spool Lock

Recently I've seen posts on both the CF-Talk list at House of Fusion and the Adobe ColdFusion Forum about a lock on the CF Mail Spool. At some point messages in the spool recycle over and over, without processing out to the mail server or going in to the undelivered folder.

I was working for a small regional internet service provider when I began working as a ColdFusion developer. We hosted around six hundred corporate sites, most of which used the <cfmail> tag in some form of form processing or another. This was back in the days of ColdFusion 4.0, and was when I first encountered this issue, and I've seen it several times since.

Basically what happens is the ColdFusion server loses it's connection to the mail server momentarily. Typically you'll see an error in your ColdFusion mail.log file that will state that the connection to your mail server failed at some point. When this happens there is a file lock on a .cfmail file in the spool that was being processed at the time the failure occurred. The connection comes back, but the file lock seems to cause a continual loop on the spool, which disallows the flow of files from the spool to the mail server. It often goes unnoticed until a client calls in to complain that they haven't recieved any leads from their site.

The issue is really easy to get around, but does require you to take down ColdFusion services for a moment so that the file lock is released. Here is a general outline of what you should do.

  1. Stop ColdFusion services
  2. Cut and paste all .cfmail files from the spool folder into a temporary folder.
  3. Restart ColdFusion services
  4. Verify the mail server connection in the ColdFusion Administrator
  5. Drag .cfmail files from the temp folder back into the spool folder at about 200 messages at a time, waiting for all messages to process out of the spool before moving to the next batch.

That's it. Pretty easy to handle. Your greatest hurdle is convincing a shared hosting provider that this needs to be done, but if they watch the spool folder and notice the same messages re-enter the spool repeatedly, without dropping to the undelivered folder, then it is a solid indicator that this is what has occured. All files leave the spool and show up five, ten, even fifteen minutes later. I have now worked for two separate hosting companies running everything from ColdFusion 4 through 7, and have seen it occur on each version at one time or another. Hope this helps someone!

Previous Entries / More Entries