cf.Objective Custom Tags Presentation

I had the high honor and great opportunity to speak at the most recent cf.Objective() conference.

If you haven't ever been to this conference, I would highly recommend it. This was the sixth year of the conference (my third) and it was fantastic all around. The other presentations were universally good (if not great). As always, I learned a lot - both in the presentations themselves and in conversations with other speakers and attendees.

For my part, I gave a presentation title "Don't Forget About Custom Tags", attempting to convince people that custom tags are still relevant and a great tool to have in your toolbox (and one which should be used frequently).

I zipped up the presentation (PowerPoint file and code) for anyone interested in seeing it.

I felt a bit more nervous than I expected, so I felt a little flat, but hopefully people enjoyed the presentation and I will get the opportunity again (I'll find out the answer to the first when I get the chance to read the reviews).

Thanks and congratulations to all of those responsible for putting on another great conference!

English-Friendly Interval Calculation

I am working on a small program to digest and store RSS feeds (in part using Ray Camden's nice RSS.cfc). One thing I ran into is that I want to be able to specify how frequently feeds should get updated. It seems obvious that I should have an argument for this in the init() method of my CFC. What I don't want, however, is to either limit myself to one interval (days, for example) or to have multiple arguments just for the interval.

Moreover, I really want to be able to specify the interval in a human-readable format. So, I created a UDF (implemented as a method in my CFC) to make date calculations based on a readable string indicating the interval.

Here are some examples of intervals that it will calculate:

  • daily
  • annually
  • every day
  • every other minute
  • every 3rd quarter
  • every fourth year
  • every other Saturday
  • 4th Saturday
  • three weeks
  • 2 months, 2 days, 11 minutes
  • - every second Sunday

Most of these should be pretty obvious, but the last two might require a touch of explanation. The UDF will accept a comma delimited list, in which case it will apply all of the intervals to the date given.

If the interval starts with a "-" then it will subtract the interval given. The subtraction will only apply to the entire interval, not to single items in the list.

[More]

I'm Speaking at cf.Objective() this year!

It is hard to believe, but I have been accepted to speak at cf.Objective() this year. I have been to this conference twice before and I loved it both times. The presentations were great and so were the hallway and dinner conversations. It seemed like I was learning something all the time.

I am honored and humbled (ok, intimidated) to be among the speakers at cf.Objective() 2011. They recently announced the schedule and it is well, awesome! Seriously, go take a look. I'll wait.

[More]

Easiest Way to get RSS Query?

I was working with some RSS feeds recently and ran into a few challenges. The first was a "connection failure" error from one RSS feed - even though it loaded up correctly in the browser. Another one yielded the error "An error occured while Parsing an XML document. Content is not allowed in prolog." when I tried to parse the XML.

Fortunately, both of these problems turned out pretty easy to solve.

[More]

Christian Ready presents on HTML5

The Tulsa CFUG is proud to host a Connect presentation by Christian Ready on ColdFusion Security tomorrow (September 28, 2010) at 12:30 PM central.

The details on are the Tulsa CFUG meetings page.

[More]

Jason Dean Presents on ColdFusion Security

The Tulsa CFUG is proud to host a Connect presentation by Jason Dean on ColdFusion Security today (August 31, 2010) at 12:30 PM central.

The details on are the Tulsa CFUG meetings page.

Every time I read Jason's blog entries on security, I find it frightening to see just how much I still have to learn on the subject. I'm excited to learn more today.

If you are in the Tulsa area, we would love to see you on location where you can pick up some swag and talk to other local ColdFusion programmers. Otherwise, feel free to watch on line.

A big "Thank you" to Jason for graciously accepting the invitation to present to our little group.

Meeting URL

Another Fun Framework

With all of the ColdFusion frameworks that have been released this year, this feels a little like "me to". The fact of the matter, however, is that this framework has been in development for a few years and is being used on a dozens of sites. Moreover, it is different from other ColdFusion frameworks in some pretty significant ways.

The framework doesn't have a name yet. I have been calling it "AFF" ("Another Fun Framework" or "Anti-Frameworks Framework") so far, but it needs a better name pretty soon. I'm open to suggestions, of course.

I wasn't sure how to approach my first blog entry on the framework, so I decided to just answer the questions that I normally ask when I see a framework.

[More]

Barney Boisvert presents on CFGroovy

The Tulsa CFUG is proud to host a Connect presentation by Barney Boisvert on CFGroovy tomorrow (May 25, 2010).

The details on are the Tulsa CFUG meetings page.

If you are in the Tulsa area, we would love to see you on location where you can pick up some swag and talk to other local ColdFusion programmers. Otherwise, feel free to watch on line.

A big "Thank you" to Barney for graciously accepting the invitation to present to our little group.

"Set IIS Root" ColdFusion Builder Extension is Gold

Several months ago, I posted my first ColdFusion extension. It allows me to switch the web root on IIS to any folder in ColdFusion Builder. Since my primary development machine is Windows XP, this has proven pretty handy.

In the intervening months, I have found that I have used this several times a day. In that time, I haven't needed to change the underlying code at all. So, I am going to go ahead and call it a full 1.0 version.

[More]

Dynamically Adding Methods to a CFC

When ColdFusion 9 came out, I found that FileMgr.cfc would not work on it. For one function, I had directly copied the DirectoryList UDF by Ray Camden. This allowed me to use cfdirectory recursively in CFMX (the "recurse" attribute not being available natively until ColdFusion 7).

This worked great until ColdFusion 9 came out. ColdFusion 9 added a built in function named (you guessed it!), DirectoryList. As a result, the FileMgr.cfc threw an error whenever it was instantiated on the code attempting to create a DirectoryList method. The problem here is that I have a lot of external code using that method, so renaming it would be a bit difficult. I would have to track down and change code in several different sites on several different servers. Not only that, but as FileMgr.cfc is publicly available code, everyone using it would have to do the same. Needless to say, this isn't a desirable outcome.

Fortunately, ColdFusion makes it easy for me to maintain my API and still avoid the error telling me that I can't have a function named "DirectoryList". The surprising thing about this is how easy it is.

[More]

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.