Just a small warning to folks using trusted cache on their production ColdFusion sites. If you have it enabled, hit a particular file, and then delete it, ColdFusion will still serve the file up. That isn't too surprising I suppose, but you may not be aware of it. While I bet most of you know that, I bet a lot of you may make the mistake I made.
Instead of clearing the entire Trusted Cache, I always use the newer folder option, see here:
This feature (which you can get via a ColdFusion Admin extension for older servers) lets you clear just one folder from the trusted cache. It is a kinder, gentler version of the "Nuke Everything From Orbit" button that clears the entire cache.
Except when I used this - it didn't work. It took me a few seconds (ok, minutes) to figure out why. The code behind this button gets all the files from the folder and clears them from trusted cache. Since the file I wanted to clear was deleted, it didn't work. The API for clearing the cache only supports files, not folders. (It should support both I'd say.) Obvious, right?
Today (or round about today), the ColdFusion docs published a new guide, the CFML Developer Security Guide (PDF) by the amazing Pete Freitag. This is a great companion to the lockdown guide (pdf) also written by Pete. Both should be considered required reading.
Last year's ColdFusion Summit was an incredible event, and this year will hopefully be even better. Want to speak? Now is your chance to submit a topic idea (and see what other people are submitting as well) - just go to http://cfsummit.cfml.us/, login, and submit your topic.
Hope to see you there!
A reader asked me a simple Ajax-y type question this morning and I thought I'd turn it into a simple blog post. We've all done, or at least seen, related selects before. That widget where you select something in one drop down and it drives the data in the second drop down. What he was asking is how you would support being able to select multiple items in the first drop down. Here is an example of that. Before I go on, let me say that while the back end of this is built in ColdFusion, it absolutely does not matter what back end you use. Oh, and please do not ask me to build you a PHP version! ;)
Some of you may have older bookmarks for the ColdFusion docs. Previously these old bookmarks auto-forwarded to the right address, but I believe that forwarding is no longer working. If you don't have the right URL bookmarked, here it is: https://wikidocs.adobe.com/wiki/display/coldfusionen/Home. Also, don't forget my recent blog post where I showed you how to download ColdFusion docs as well.
As a quick aside before I begin, multiple people were involved in this research. I thank them all at the end, but I wanted to be sure folks know this was definitely something I got a lot of help on.
Earlier this week a user reported an odd issue to me. He was using CFHTTP to hit the Google Places API and noticed that code he had in ColdFusion 10 worked, but in ColdFusion 11 the same code returned a 404 error. I was able to quickly confirm the issue and began my investigation.
For a demo that didn't happen, I wrote a quick example of using passwords with cfzip in ColdFusion 11. The idea behind the demo was that the user had asked for a set of files (in this case, a hard coded folder of kitten pictures - because - kittens). The password will be randomly selected, used in the zip operation, and then given to the user. The code is rather simple, so let's look at the complete template and then I'll break it down a bit.
I'm still using Brackets as my primary editor, but as I use CFBuilder more and more I run into things that I think may be helpful to others. Today - it is adding JSHint support. I'm a huge fan of JSHint so I did a quick Google to see if there was an Eclipse plugin for it.
Just as an FYI, note that you can download ColdFusion documentation here: Downloads. The main download is a rar file of the most recent updates. At the time of this blog post the archive was created April 30, 2014. The ColdFusion team will update this archive from time to time so that edits to the wiki are reflected.