[Looking for Charlie's main web site?]

"Hidden Gems in ColdFusion 2018", a multi-part series on the Adobe Portal

Over the past few weeks I have been begun posting a multi-part series of blog entries on Hidden Gems in CF2018. This is being posted on the Adobe CF portal, rather than here (by my choice).

It's basically presenting the same info I've been offering in my talk of the same name, such as at conferences like CF Summit and CFCamp last year, and that I will at the CF Summit East 2019 in DC in April. Of course, in blog form I can elaborate things a little more.

So far I have done the following parts:

[....Continue Reading....]

Easily finding cached versions of a site/page when it's down or gone

Have you ever had a web site "go dark" on you? or found that a given page on a site somehow disappeared? Maybe it's only temporary (there may even be a "we're down" message, though the site or server may just fail to respond at all), or maybe the failure of the page or site will be permanent.

The good news is that there are at least two easy ways that you may well still be able to see that content you may be missing: the Google cache (to at least see the last version which Google may have cached), and the internet archive "wayback machine", which often lets you see YEARS back in the history of a page or entire site, including one that may be long-gone.

In this post I share tips (and gotchas) on using both tools.

They aren't GUARANTEED to have the page you're looking for, but I find that they do about 99% of the time I try them (and I use them a lot, because I'm often mining gold in old blog posts or articles which have gone away across many sites I have visited).

[Updated June 9 in a variety of ways, mostly minor, but with some additions in the "trip down memory lane" discussion.)

[....Continue Reading....]

My upcoming presentations for spring/summer 2017: some on CF, some on other topics

I'm going to be speaking several times in the coming weeks and months (on several topics, some on ColdFusion and/or CFML, some on generic topics applying to any server, and one on SQL Server 2016 SP1 specifically). I thought I ought to post that fact here (I have often failed to think to do that here over the years).

I offer below first the events at which I'll be speaking, and then the preso titles and descriptions for any readers interested. (As an update, I was informed on 5/16/17 that I'd been selected to speak at NCDevCon. While it's not in "spring/summer" per the subject above, I've added it to the info below.)

[....Continue Reading....]

I'll be speaking at the Adobe ColdFusion Summit in Vegas, Oct 10-11. See you there!

Many have been asking if I'd be speaking again at this year's Adobe ColdFusion Summit, in Last Vegas (Oct 10-11). I will indeed!

(There was some challenge in getting all the speakers posted until just last week, so though I had known I was speaking for months, I held off announcing it until I could point to the link.)

I'll be presenting (as I do for each release) my "Hidden Gems In ColdFusion 2016" See the description via the links above. It should be as classically useful as ever, whether for those either new to or experienced with CF 2016.

I certainly do appreciate the conference team selecting me again to be a speaker. I've spoken at each of the 3 so far, the first in 2013.

The conference is always a great time (and has gotten larger and better each year, by most accounts). And Vegas is of course a great location (though honestly I barely leave the venue the whole time). Then there are all the great attendees, and sponsor booths, as well as nearly the entire CF team on hand, and of course lots of useful information shared from all the presenters.

If you'll be attending, I hope to see you there! And if you're still considering it, see the Why attend? page and other links offered there. Finally, note that the "early bird" price has been extended to August 31. See the Pricing page.

I'll be speaking at dev.Objective() conference, June 15-17. See you there!

I'll be speaking at next week's dev.Objective() Conference, in Minneapolis (June 15-17). The conference is always a great time, in a great location, with great people, and lots of useful information shared, and I appreciate the conference team selecting me again to be a speaker. If you'll be attending, I hope to see you.

[....Continue Reading....]

CF10 Hidden Gem: New method to obtain ColdFusion instance name via CFML code

Note: This blog post is from 2012. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
One of the many hidden gems in CF10 is that there's a new way to programmatically obtain the current instance name. In CF 6-9, we had to call a method in a JRun class. In CF10, they've added a new method in the Admin API.

The quick answer is that there's a getInstanceName method in the runtime.cfc of the Admin API. And yes, any user can execute this code. They do not need to BE an admin. You can use this in production code. For more, see below.

If that's enough to get you going, have at it. For more info, read on.

[....Continue Reading....]

Slides available for my two recent talks: Hidden gems in CF10 & About ColdFusion 10 on Tomcat

Note: This blog post is from 2012. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
If you're interested in checking out the slides for my two most recent talks, they are now available online:

These were offered recently at cf.objective() and the SOTR/CF10 European Tour events, as I had announced a couple of weeks ago.

These are just PDFs of the slides for now, no recordings. But as those who have seen me talk before know, I tend to offer a lot of detail in my slides, so that they do stand well alone (against the modern fashion of slides that are mostly just pictures).

Sure, I could do more pictures and offer slide notes. It's not that you can't teach an old dog new tricks, just that it takes a lot more patience! :-) I may modify these presentations that way, in fact, for future presentations of them. In fact, I will be blogging shortly about the next planned presentation of them for the Adobe CF 10 Developer Week coming up in June.

BTW, apologies to any folks from the two events who had looked for the PDF for the Tomcat talk previously. Somehow I had failed to offer a link to the PDF on the presentations page, even though I was updating and uploading new variations of it both before and after the events. Darn.

New for CF9 (and 9.0.1): a query timeout that may really work, with a caveat

Note: This blog post is from 2010. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
This is a very interesting change in CF9 (and 9.0.1), which has slipped under the radar for the most part it seems.

Did you know there is now a setting in the DSN page of the CF Admin (for most of the Adobe-provided DB drivers) which allows you to set a maximum timeout for queries against that DSN?

It's a new feature enabled for the DataDirect drivers, as updated in CF 9. (You will not see it if you use an "other" datasource type, such as when using a downloaded JDBC driver that you implement on CF.)

The caveat? This timeout is ONLY settable there in the DSN definition, not in CFQUERY (or CFSTOREDPROC) itself, which is a shame. The existing TIMEOUT attribute for those (CF10 added it for CFSTOREDPROC) is not the same and generally does not work. Still, the value of this even at the DSN level is too important to ignore for some challenges. More on that (and some other thoughts) in a moment.

[....Continue Reading....]

I'll be speaking at CFinNC, doing "Hidden Gems in CFBuilder"

Note: This blog post is from 2009. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
CFinNC - Carolina ColdFusion / Flex / Air Conference - Oct 17-18, 2009For those attending the awesome free CFInNC conference this coming weekend in Raleigh NC, I'll be speaking on "Hidden Gems in CFBuilder". See the description there for more.

I mentioned last week that I was starting my "Hidden Gems in CF9" series of blog entries, and I'll eventually do a class based on that. In the meantime, I will also soon start sharing some of these CFBuilder hidden gems here as well.

So if you're coming to CFinNC, please look me up and say hello. And if you're not yet planning to attend but live within a few hours driving distance (I'll be driving the 5 hours from Atlanta), you should definitely consider it. There will ba a lot of great speakers and content, as well as community and festivities, all for free.

Help spread the word, online or by grabbing a flyer to put up at your workplace. It's not too late!

Hidden Gem in CF9: controlling Application.cfm/cfc lookup order

Note: This blog post is from 2009. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
It's that time again, time for me to start sharing hidden gems in CF9. In this first offering, I'll point out an interesting option now available in the CF Admin that lets you control how far up the drive CF searches for Application.cfm/cfc files. It's not quite as obvious as it seems, nor is it well documented. One of the options may even surprise you. More on the feature in a moment.

About the hidden gems series

With CF9 out and final, I'm excited to start identifying the interesting little bits and bobs which you may not have heard much about. Some will know I've done this going back to one of my first articles in the CFDJ from Feb 2000, on "Hidden Gems in 4.01".

Over the course of the next few weeks, I'll share various things that you may have missed, whether in the CF Admin, the language, the docs, or otherwise.

Hidden Gem 1: Controlling Application.cfm/cfc Lookup Order in Admin

If you've not noticed it, there is now a setting in the CF9 Admin for controlling how far above the current directory CF will look for Application.cfm/cfc if not found in the current directory. This is a server-wide setting (found on the Settings page).

How application file searching works by default

As you should know, if CF doesn't find an Application.cfm (or Application.cfc, since CF 7) in the current folder where a request starts, CF searches up to the parent, then the grandparent, trying to find one (and since CF 7 if it finds an Application.cfc it chooses that over an Application.cfm).

What many don't know is that by default ColdFusion has always searched all the way to the system root (the drive root). It doesn't stop at the webroot, which could lead to both security and possibly performance issues. This can now be changed using this setting.

To change this, find the Settings page which is the first link in the options on the left (see the arrow pointing to it in the image above). This new setting is about 2/3 the way down this page of settings (which is getting quite long!)

The options available in CF9

As the screenshot above shows, you can now change things to choose either of these alternative search behaviors:

  • Default order
  • Until webroot
  • In webroot

As I said at the outset, things are not quite as obvious as they may seem. OK, the first is: it maintains the default behavior of searching to the system root, such as c:\.

The second does what some have wished: makes CF stop searching when it reaches the webroot. (The third option may make you think that this second option means search until the webroot but do not search in the webroot. That's NOT what it means.)

Before explaining that, let me point out as well that changing this setting is immediate. No restart of CF 9 is required.

The surprising "in webroot" option

So what then is the deal with the third option, "in webroot"? It may surprise you (as it did me, at first). What it does is tell CF to search either in the current directory (as they all do) or if not found, search ONLY in the webroot. It DOES NOT search the directories between the current directory and the webroot. Interesting. (To be clear, it does not mean "don't look in the current directory but only in the webroot". It still takes affect only if there is no Application.cfc/cfm in the current directory where a request starts.)

Why might one use this third option? Well, if they know that their server code directories are setup in such a way that the Application.cfc/cfm file is either in the directory of templates it should apply to, or if not there it's only in the webroot, then this option would suit them.

I can see it potentially causing confusion if folks don't know about the change in behavior and wonder, "why isn't my Application.cfc/cfm file (in an intermediary directory) running?"

Also, the fact that this is a system-wide feature means that all your apps on your entire server must accept the behavior specified here.

No documentation on this feature

Another source of confusion is the fact that there's no documentation explaining this feature. It's mentioned only in passing in the online help of the Administrator, without explanation of the meaning of the options. It's not mentioned at all in the docs, either the "Configuring and Administrating CF" manual or the "Developing Applications" manual. That's a real shame and I hope it will change in the next release.

In the meantime, I hope that this entry will help. Sorry that it was a long one, but again it's just not a trivial feature. It is indeed a hidden gem, and look for more to come from me soon.

(I've provided a zip here that can help you demonstrate things. Unzip it into a web root and run the nested /testdir/testsubdir/test.cfm, and observe that whichever Application.cfm runs reports where it was found. You can rename the various Application.cfm files to xApplication.cfm to observe the impact of CF's search order, and as you change the Admin settings. You'll also want to copy one of the Application.cfm files to a direcory above your webroot to test that, too. The content is identical in all of them.

Of course, beware when unzipping the file that you don't overwrite any Application.cfm that you already have in your webroot. Also, beware that if you have an Application.cfc file in that webroot, it would take precedence over the Application.cfm file.

Finally, to find the zip file, see the link appearing just below this blog entry.)

Copyright ©2019 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting