[Looking for Charlie's main web site?]

Simplifying the captcha graphic in Lyla Captcha (and BlogCFC)

Wish you could simplify your captcha's? If you use Peter Farrell's Lyla Captcha, as I do because it's embedded in Ray's BlogCFC, I'll show a few quick changes you can make that will make them much easier for your users to read.

Sound counter-intuitive? Aren't captcha's supposed to be difficult to read, to hamper spammers? In my last entry, I made a call for simplifying captchas and why they aren't all bad. As a blog owner who uses them to weed out the random spambots who would otherwise clog my comments and feedback mechanisms, I like captchas, and I'm grateful for the work Peter's done.

That said, I have to admit that as I've encountered them in the blogs of others, I've grown a tad weary of their complexity. They require the user to type several characters and have several swirly ovals, random lines, and a wavy background. Frankly they're quite hard to read, and it would be a shame to lose commenters for that reason.

hard captcha

Again, the intent is to make it hard for some spammer to scan the captcha request somehow and figure out what's being requested so as to automate around it. Fair enough, but as I said in my last entry I'm really not that concerned about protecting my site from determined break-ins. I'm not a bank. I just want to keep out the automated pests.

With just a couple of changes to Lyla's captcha.xml file, you'll have a much simplified captcha, if you want one.

hard captcha

Lyla is highly customizable

On a lark, I decided to try to find out if Lyla might just be modifiable to dial down the intensity. Turns out it is, by simple changes in the lyla captcha.xml file, as documented in this PDF. Thanks again, Peter! :-)

After a few simple tweaks, I reduced my captcha to just asking for 3 characters, all lowercase, without all the swirly ovals, lines, and wavy background.

Changing Lyla's captcha.xml

In BlogCFC, the captcha.xml file is located in blog\client\includes (or just \includes if you've installed the blog client directory as your webroot.)

To effect the change I wanted, I ended up with the following values for the following entries. Again, see the docs for more info:

<config name="randStrType" value="alphaLcase"/>
<config name="randStrLen" value="3"/>
<config name="fontColor" value="dark"/>
<config name="backgroundColor" value="light"/>
<config name="useGradientBackground" value="false"/>
<config name="backgroundColorUseCyclic" value="false"/>
<config name="useOvals" value="false"/>
<config name="useBackgroundLines" value="false"/>
<config name="useForegroundLines" value="false"/>

You can change them to suit your taste. Note that if you do change the randStrLen, the value selected represents the "average" length of the string that users will be asked to enter, and may vary by +/- 1 from that.

Make the changes, and check 'em out for yourself. Note that with Ray's BlogCFC, you need to reinitialize the blog (add ?reinit=1 to your blog URL) to see the changes. What I did was had one browser page open to do that, and another sitting on a blog comment form. After running the reinit, I could then just reload the comment page to see the impact. (If there's a still-simpler way to test changes to the captcha.xml, let me know.)

If you don't use BlogCFC, then you have to re-instantiate the captcha object after making changes to the XML file. If you've stored it in a shared scope (like application), you need to run some code that reloads it. Of course, restarting ColdFusion will also reload the CFC in whatever scope you stored it in.


Making these changes won't solve the accessibility problems some have with captchas, and it certainly could increase the risk of a determined spammer more easily breaking your captcha. As I said in the last entry, I doubt that's a real concern for most of us. If it proves to be so, then you can dial the intensity back up.

I just want to keep from annoying my readers, and I hope others will consider these changes to keep from annoying us all. :-)

PS: I do realize that one could skip the captcha graphic entirely and just go to prompting the user for a random string. That may just a bit "too" easy for a spambot to get around. To each his own.

Thanking Peter

One last note: while Peter certainly appreciates your kind comments (and do share them, as I'm sure many don't bother), those who REALLY appreciate his work should note that he gratefully accepts contributions by way of his Amazon Wishlist or you may may make a donation with PayPal, using his address, pjf@maestropublishing.com.

Captchas: making them simpler, and dialing down the angst against them

Most by now understand what captchas are. Some love 'em, some hate 'em. I want to dial down the rhetoric some with this perspective: as a blog owner fighting frequent spam in comments and trackbacks, captchas (in some form, not necessarily a graphic) have their place to keep out spambots, and they can indeed be simplified (even the graphics ones) and at no loss of benefit. My bottom line: I don't use them as a double-key deadbolt lock to keep out intruders, I just use them as a screendoor to keep out random pests.

If you use Peter Farrell's Lyla Captcha, which I use because it's embedded in Ray's BlogCFC, in the next entry I'll show a few quick changes you could make in the Lyla captcha.xml file to make them much easier to read, going from this
hard captcha
to this
simple captcha.

Before that, I just want to expand on those thoughts above on the general angst against captcha's, and why I think it's ok to make them easier to read.

The Haters

I realize that some have gone to great lengths to decry captchas primarily because they are not "accessible" (to those using screenreaders), though audio ones help solve that.

Others simply hate them because they're too darned difficult to read. I've surely seen that, even in the ones created by default in Lyla (thus my next entry on addressing that).

Now, while most use a graphic that a user must read, it's not the only approach. As the previous link discusses, other approaches include simpler approaches like asking the reader to add some numbers or answer a question (that only a human could reasonably do).

But the other complaint is that they give those who use them a false sense of security, because they can be easily broken, even the graphic ones.

But my Blog is Not a Bank

Here's the thing: my blog is not a bank. While the difficulty in breaking a captcha may be important to a bank or commercial site trying to use them for authentication, I just want to make it hard for an automated spambot to post crap in my blog comments and trackback forms. If you have any similar king of input form on a publicly accessible site, you may suffer similar problems.

I really can't believe anyone would go to the lengths of scanning and breaking the captcha on my site (random as it is) to get a crap spam comment into my lil' ol' blog. And some of the comments are just nonsense; it's not like they're trying to drive traffic to another site or something--so the popularity of my (or your) site isn't the issue. It's just the annoyance factor (both to me as I get notified of comments and to readers who would have to sift through them if I didn't delete them as I do now).

Having made the case for why a simpler captcha may suffice for some purposes, in the next entry I'll show how to control the degree of difficulty in reading them for captchas built using Lyla Captcha.

Need to know how long your ColdFusionMX instance has been up?

If you've ever needed to know how long your CFMX instance has been running, did you know there's an incredibly simple solution? It's not really obvious, and in fact it may not work on trial editions of ColdFusion (for reasons explained below), but it's worked on the Enterprise and Developer editions that I and others have tested it.

Some may have noticed that there is a server.coldfusion.expiration variable (one of many read-only variables in the server scope, within the coldfusion structure). According to the docs, it's supposed to represent the date on which a trial edition of CFMX will expire.

But some have found (and I've confirmed) that on non-trial editions it instead reports the time that the server started. Try it youself:


It'll be a date, but is it in the future? or the past? Assuming it's the past, and you're not running on a trial edition, then it's likely the time your server had started. If you could restart your server and test again, you'll know for sure. :-)

Better formatting of the result

Now, if you want to easily determine how long the server has been up, just use the datediff function to report how many minutes there are between the time reported and the current time:

Now, that number will be in the thousands after only one day. If you just want to better format the number of minutes, you could use the numberformat function which (without any formatstring) simply adds commas where they would be appropriate:

<cfset uptime = datediff("n",server.coldfusion.expiration,now())>

But even better, you could use one of the nifty functions available at the cflib.org that could help present the result minutes in terms of days, hours, and minutes (duration()). Assuming you included the latter in your page, you could then output the value as:

<!--- assuming you have included or pasted the duration UDF --->

<cfset uptime = duration(server.coldfusion.expiration,now())><br>
<cfoutput>#uptime.days# Day(s) #uptime.hours# Hour(s) #uptime.minutes# Minute(s)
<br>Server started on #dateformat(server.coldfusion.expiration)# at #timeformat(server.coldfusion.expiration)#

I may put together a UDF to submit to the cflib to pull all this together, and which also checks if indeed the server being checked is a trial edition, etc. But I'll look forward to hearing people's feedback first.

Other options

Of course, it's worth pointing out that there are of course many tools that will monitor a server's uptime by watching it externally. It may also be possible to ask the operating system to report how long a given process or service has been running. I'll leave that for others to investigate.

Finally, I'll point out that there is indeed a tag in the Adobe Developers Exchange, CF_UpTimeMonger, that purports to help detect server uptime and says it works even for CF 4 and CF5. I have not explored it.

Tool for converting your HTML/CFML (or ASP.NET, PHP, JSP, or XML) for display in browser

Have you ever been annoyed when some web form (feedback page, blog comment field, or webforum) fails to properly convert your CFML or HTML so that it's displayed? Does it just disappear? Many know the solution is to convert the tag brackets to their equivalent character entities, > and <), but it's a hassle to do that manually! Last year I wrote about a free web-based tool in another blog of mine, tipicalcharlie.com, and as the challenge came up today on a CF list, I thought I'd point it out here:

http://www.tipicalcharlie.com/convert_markup_for_display.htm (Update: tipicalcharlie domain is no more, but page recovered using Archive.org.)

Note that this is not a tool you need to download and install; it's a hosted tool, just a simple but useful web form that converts whatever code you paste! You can then just copy the result and paste it into your desired form. Enjoy!

Don't miss out on the many powers of the Google Toolbar (some hidden buttons, some new context menu

Here's a blog entry from another site on a topic that I think some of you may enjoy very much:

"Don't miss out on the many powers of the Google Toolbar (some hidden buttons, some new context menu options, and more)"

http://www.tipicalcharlie.com/google_toolbar_1.htm (Update: tipicalcharlie domain is no more, but page recovered using Archive.org.)

Now, if you look closely at the URL, you'll see it's got my name in it. :-) And indeed, it's mine. I started the blog long before this one and in it I share all manner of tips related to computing (not CF-specifically).

I'm always torn about whether to post some topics here or there. I try not to cross-post much at all (and not even to blogs of other folks) unless it's something that I think you might really appreciate and otherwise miss. Such is the case here.

If you like the stuff there (see the categories, as there may be past entries you'd not want to miss), be sure to signup to receive new entries by email (as you can do here), or add it to your RSS reader of course. Not everyone uses them yet. Indeed, see the entry I did there on how to get notification by email of new entries from any blogger who may not offer their own email subscription feature.

(Update: Sadly, squeet (a tool to send RSS feeds by email) is no more. But there are other alternatives, that I track in a category of my CF411 site: http://www.cf411.com/rss_email.)

I-Spry 8: Spry 1.3 Released: Here's my take on what's new

Exactly one month after releasing Spry 1.2, the Adobe Spry team has responded to user feedback and also slipped in some new features in a new 1.3 preview release.

As part of my ongoing series on Spry, here's my take on what's new. The primary new feature set is "Spry Effects, for introducing animations and color effects to your pages." While it may sound like just eye candy, there are some useful things. More on that below.

There is also an interesting new 2-selects related demo (more below) and various new features to existing things, like new methods to manipulate the accordion, fixes to various aspects of the Ajax (SpryData.js) functionality, as well as support for new setup/finish callbacks for the effects. See the site/docs for more on those. Here, I want to highlight the 2-selects related demo and a brief discussion of the effects.

Nifty 2-selects related demo

One thing that's easily missed (not highlighted anywhere) which may appeal especially to CF developers is a new 2-selects-related demo, though they call it a "master detail" demo instead. It shows how to make 2 selects relates data between 2 datasets. The code is remarkably easy, as explained in the one paragraph there and shown in the few lines of code which you can see doing a "view source" there. Again, this is the beauty of Spry: those few lines of code in the browser are indeed all that you need to write, and all that the browser needs to execute.

For those new to Spry, note that the data can come from any file of XML data or template that generates it, as requested in a line of Javascript (the only javascript code you need to write on the page):

I'll also remind those new to Spry to check out all the entries in this series on Spry, as well as my Spry Compendium of resources to help get you started.

The new effect library

The Spry Effects are the following:

  • Appear/Fade Makes an element appear or fade away
  • Highlight Flashes a color as the background of an element
  • BlindUp/BlindDown Simulates a window blind, up or down, where the contents of the affected elements stay in place
  • SlideUp/SlideDown Simulates a window blind, where the contents of the affected element scroll accordingly
  • Grow/Shrink Increases/reduces the size of the element
  • Shake Moves the element slightly to the left, then to the right, repeatedly
  • Squish Reduces the element to its top-left corner and disappears

Some will find more value in various aspects than others. Let's keep in mind that the focus for Spry is on non-technical HTML developers, to ease access to not just Ajax-style development but also the DHTML-based (CSS, Javascript, and HTML) visual components that often go along with those. A key point is that these changes in screen appearance happen without a browser refresh. An interesting point they make is the following:

As with previously-released Spry datasets and their accompanying widgets, we designed Spry effects to be easy to implement on the page while letting the framework do the real work. No new tags or strange syntaxes are required. Designers with a rudimentary understanding of JavaScript can easily implement any of these effects. More advanced users can combine base effects to create more complex and sophisticated effects.

The following shows an example of a basic effect :

onClick="Spry.Effect.AppearFade('target',{duration: 1000,from: 0,to: 100, toggle: true;});"

You can apply an effect to almost any page element, and the code is easy to understand and edit. With the trio of Spry framework features--datasets, widgets, and effects--Adobe hopes to provide designers and developers the tools they need to easily create Ajax-enabled pages.

Why Is Adobe Re-inventing the wheel on effects? Why not just use an existing library?

Sure, there are other libraries that do more, but at least Adobe is working to add more and more. In fact, some may wonder why they are bothering to create their own when there are those other packages. They now specifically address the question of why they don't just integrate with some existing library, like Scriptaculous, and instead are using them as a model while keeping focused on their own vision.

All that said, I could even see CFML folks taking ready advantage of things like the blind, shrink/grow, slide, and squish, such as to add online help on a page that appears and disappears. Again, sure, if you know how to do CSS and/or javascript yourself, you can do it yourself.

I must admit that when shown on this combo page, I'm left wondering how the slide and blind differ from each other (and even the accordion). :-) If you view the demo that works with images instead, the difference becomes more apparent.

The effects are enabled in a new .js file (SpryEffects.js), but beyond that and 3 others it's still quite a light-weight framework.

Other Comments

Note that they indicate in the readme that they've removed the docs from the download, and they are available now only online. Still, it seems most of it has just moved to an articles directory, and there are of course still the reamdme, changelog, and other HTML files in the download.

Finally, they do clarify (frequently) that this is pre-release software, so jump on board and be a part of making it happen--but have patience that things will change as they learn and evolve the product.

Using the Flex Builder CF Wizard when deploying on a remote server

If you try to use the Flex Builder CF Wizard, you may get tripped up by trying to deploy the resulting SWF (with its communication back to the CF Server) on a remote box (where that CF Server would live). It's easy enough to do, but it may fail to work, if you're not careful about how you configure things while running the wizard, to indicate that remote server URL. It was causing quite a bit of consternation for some, and finally Ken Reiss has observed the solution and blogged about it:


I just think this is something that others may trip over in the future and not find readily, so I want to point it out to those that I can.

Using SeeFusion and FusionReactor with BlueDragon

Folks often ask me whether I know if BlueDragon can run either of the two performance analysis tools, SeeFusion and FusionReactor. The answer is a qualified "yes". They will run (currently) on the J2EE edition of BlueDragon, but not the standalone editons, BlueDragon Server and Server JX.

Both SeeFusion and FusionReactor are based on an underlying java-based mechanism called Servlet filters. On the surface, it might seem that things should work since the standalone versions of BD are built atop ServletExec (just as CFMX standard and enterprise standalone editions are built atop JRun).

Sadly, the edition of ServletExec that New Atlanta chose to bundle under BD (a choice made a few years ago) does not support servlet filters. ServletExec itself has indeed supported servlet filters for a few years; it's just that New Atlanta never had any motivation to update the version that was underlying BlueDragon. Who knows if that may change in the upcoming BD 7.

The good news is that it seems you can indeed use both SeeFusion and FR with BD/J2EE. I've previously done the former, and my reading of the FR docs for now suggest it would work fine. The installer guide for FR has a section on "manually installing FR", and where it discusses the directories to be updated for working with Tomcat and Jboss, it's really the same info that would apply to BlueDragon deployed on those servers (or any like them). (I've tried it tonight and hit a snag, and the guys from FR are working with me to get through it. I'll update with a comment here whatever I find.)

Finally, of course, BD.NET doesn't support servlet filters at all, so you can't use SeeFusion or FusionReactor on that product.

Flex 2 / CF Presentation by Ben Forta, now online

If you're looking for yet another avenue of introduction to Flex and its intergration with CF, particularly a free one-hour Breeze session, check out the recording of BEn's presentation from a couple weeks ago:


On that page, select ColdFusion or Flex from the product list on the right, and on the resulting page, don't be thrown off by the title, "Government: Building Rich Internet Applications". It's of value to all viewers.

As Ben is wont to do, he avoids being powerpoint-centric and jumps right into some generic Flex demos first, and then 20 minutes into it starts to really talk about Flex/CF integration. There's about 5 minutes of discussion after that and then he jumps into code-centric demos, showing the CF-related integration in some flex code and in the Flex Builder, including the wizard. By about 45 minutes he instead starts coding Flex/CF integration manually within the builder, which some may find compelling. There is Q&A throughout (which as always in Breezo's is a bit of a struggle, torn between answering questions and staying on topic) and a lot of Q & A at the end, which many may especially enjoy.

Determining Your JDBC Driver Version: Pick from 3 ways

Following onto my 2 previous entries related to updating JDBC drivers in CFMX 6 and 7, some readers may appreciate a little more help on the matter of determining just what version of the drivers they do now have installed.

This news has been shared in various blog entries over the past couple of years. I'd like to reprise them here for your edification. Just pay close attention to whether you mean to have them look at CFMX or CFMX 7. They each point to a directory such as C:\CFusionMX\lib or C:\CFusionMX7\lib. Make sure you use the value appropriate to your configuration:

Hope that helps someone as much as it did me.

More charting power in CFMX 7 than you may have thought (old news to some, new to others)

Did you know there's a nifty Chart Designer built into CFMX 7? While Webcharts has sat under CFMX's charting since 6.0, this designer tool is newly available in CF7 only, as the webcharts.bat file in the cfusionmx7/charting subdirectory. It allows you to create still more useful and attractive charts than are built into CFCHART, and then you can leverage them using CFCHART. For those who've followed CF7 closely, this is old news, but for those who are still getting up to speed in CF7, it may be quite newsworthy.

I'd like to point you below to a few references to learn more. First, here's a screenshot of what the tool looks like:

And here are some of the resources to help guide you, from blog entries to articles to the docs to podcasts. I'd also like to thank Dale Fraser of the CFAussie mailing list whose note today first clued me into this stuff. Enjoy:

Note as well that there is a pdf in that charting directory, a 35 page Designer User's Guide. And pay special attention to the available options in the designer under file>setup, in particular the 2 tabs, designer and server.

There is a more complete (125 page) WebChart Developer's Guide.

Finally, some other useful CF charting tips are available in a blog that was devoted to the subject, http://cfchart.blogspot.com/ . Though he only made entries June and July 2005, it's worth a look.

More on the new SpyAttributes feature of the"new" 3.5 JDBC drivers for CFMX

In my last entry, I mentioned briefly the new "JDBC Spy" feature that's available in the new 3.5 JDBC drivers for CFMX. I want to point out some more info for those interested in investigating the Spy feature further.

First, notice that there is a site at the DataDirect site (from whom Adobe purchases the JDBC drivers):


It discusses some additional attributes. And still more useful info is offered at another page on their site:


This actually shows what the log of info would look like, if you want to decide first if its info is worth the bother setting up.

This other page also talks about ways to turn the spy logging on and off at runtime, using Java method calls. Perhaps someone with more familiarity with the underlying Java classes for these drivers can translate the code there into something we can use in CFML. (It's late, and I don't have the energy.)

As such, be aware that the spy feature could generate a lot of data, so you may want to consider creating two datasource for each DB you may want to monitor. Either rename them to enable whichever you want to be in effect, or change if your code lets you specify a DSN via a variable, you can change the value to the "spying" version when you need it.

I did test and determined that also you can just add/remove the connection string from the end of the JDBC URL (see the technote for more), and immediately the logging stopped against the datasource. As a trick, I stuck the connectionstring value into the "description" field of the datasource definition, to keep it readily accessible if I wanted to add it back. (See my previous entry for a warning about putting it into the ConnectionString field instead.)

Finally, I should clarify that this Spy feature is not to be confused with the much older (and more powerful) p6Spy project, which has gone from open source to commercial to kind of stagnant. It still has great use, and in fact has a useful related SQL Profiler that's worth looking at. Still more at http://www.p6spy.com/, and maybe I'll write more about it later.

Did you see the 3.5 JDBC update for CFMX 6.1 and 7: Anyone tried it? Seen the new features it adds

Had you noticed the JDBC updater at http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=42dcb10a? It applies updates to both the Merant DataDirect and Sequelink (ODBC) drivers.

I have a few questions/observations for others who have run it or may consider it, and they apply to 7.02 and 6.1 users, such as whether you need to apply it manually and about the various new features it adds, like integrated NT authentication for SQL Server, and a new JDBC Spy feature for any DBMS? More on them in a moment.

Do you need to update this for 7.02? 6.1?

First, do you need to apply the update manually if you're running 7.02, or even one of the later cumulative hotfixes (CHFs)? It doesn't say specifically. While it may seem we should presume it was included in 7.02, I think we should not. Some features it adds (below) are not in the C:\CFusionMX7\lib\macromedia_drivers.jar (whose date is also from 2004, at least on my 7.02 install.)

(UPDATE: In fact, it appears that the updated drivers were NOT in fact included in 7.02, or any CHF. First, as mentioned in the comments below a discussion on the Adobe Forums confirmed that these drivers were NOT included in 7.02. Also, note that CHF 1 for 7.02 lists the link for the driver updates as something you need to do yourself, under "additional information". There's also no mention of the JDBC drivers in the technotes for 7.02 CHF's 2 or 3, so it seems safe to conclude that 7.02 users do need to apply the update individually to get the updated JDBC drivers.

But better still, if you have 7.02 installed and wonder what version you have, you can find out for yourself. Check out this later entry of mine which helps you determine what version of the DB drivers you are indeed now running.)

As for 6.1, it's not clear but do we need to apply it if we have the latest 6.1 updater (6,1,0,83762 )? Again that build's macromedia_drivers.jar also lacks some of the files added by this updater, so I would assume so. I applied the update to my CFMX 6.1 updater release including also the important updating of the Sequelink ODBC Server as indicated in the technote. Don't miss that, if you're running on 6.1 (not needed on 7). After restarting, things are working.

Warning for those with 6.1 and 5 installed

I should note that I did find that my CF5 server (also running on this same dev box) suddenly, and for the first time ever since this box was created a few months ago, started raging with a persistent 55% cpu utilization for ntconsolejava.exe. I certainly would have assumed that the problem was in my CFMX 6.1 services, but by process of elimination it was the stopping of "ColdFusion Management Repository Server" (from CF5) that did the trick. That runs a JRun instance in the CF5 server.

I can't see how this would be connected, but I point it out in case it happens to others. I don't know what to do about it. I may just stop my CF5 server until I ever need it. I suppose I could also just set the management service to manual. I don't recall what the mgt service did in CF5. A quick review of the docs shows it had to do with archiving and admin reporting.

New Features in the Update Driver

But perhaps more important, as for the features it adds, did anyone notice the "sql server nt authentication" it enables? It seems that would solve a useful problem, but I could not get it to work. I followed all the steps including extracting the DLL (it's in the zip) and creating an "other" datasource type with the provided "authenticationmethod" in the JDBC URL. Has it worked for anyone?

Note also the interesting new spy feature, which can provide some useful diagnostics (think SQL Profiler, but for any DB and all the info tracked in a log file on the CF server). I was able to get it working successfully with a SQL Server database (using the "other datasource type" as explained in the technote), but when I tried to add it to an odbc dsn against an Access DB, using the connection string approach listed, nothing happened (no spy log created, until I used the "other datasource approach).

Note as well that the updates offer various fixes for SQL Server, Oracle, and Informix. It's also an update that pure JRun 4 users can/should run. I will point out that one blogger has found a change in behavior regarding multiple statements on a single SQL line: http://www.feed-squirrel.com/blog/index.cfm/2006/6/8/CREATE-TABLE-from-CF-7.

See the technote (linked at the top here) to learn more. I've also opened a question in the Adobe forums with this same info: http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?catid=143&threadid=1180864&enterthread=y, as I can't assume as many people read my blog as will read that.

I'll be curious to hear (here or there) what others have experienced and what they think of these new features.

I should warn that the technote indicates a couple of times that you should not try to put these new connection string values into the "connection string" field of a DSN, instead creating an "other" datasource type and providing them on the JDBC URL for that DSN. When I made the mistake, I found that I could not query any ODBC datasources nor could I even start the CFMX Admin or get debugging on any page. All complained that the "DataSource service is not available.". I found no neo-query.bak to recover from, so was quite stuck. A careful analysis of the new-query file found that inappropriate CRLF character codes had made their way into the file (As 0a and 0d values that made for bad xml). I removed them (not trivial to do correctly) to get things back in order, so FOREWARNED IS FOREARMED.

News of the week

In case folks have missed it, and as I alluded to in a previous post, a couple of folks are doing us all a nice service and putting together a nice update of the week's news in the CFML community.

First is Andy Allan's weekly summary of top news from the blogs, and you can find the latest each week at:


Second is Ryan Hartwich's summary of the top news (blogs or not). For now, there is no place listing all his posts of that sort, but the latest is here:


Finally, there are also the podcasts (and their sites) that I mentioned in my earlier blog entry. I won't point these out each month, but I do want to bump up their visibility. These guys are all doing us a great service. Thanks.

Like what you're seeing? Sign up to receive all posts by email.

Folks, did you know that you can easily sign up to receive an email whenever I post a new blog entry? It's a feature that Ray's nifty BlogCFC makes quite simple. Just see the "subscribe pod" on the right toolbar.

I'm surprised how many other blogs don't offer such an option, instead relying on folks to understand RSS. As I talked about in an earlier entry on watching the RSS feeds of the CF news aggregators, not everyone is quite yet versed in using RSS readers. I have been thinking about creating a new entry as a plea to other bloggers, but that's for another time.

And it may seem rudimentary that I should point out that this subscription option exists, but I've had a few people comment that they're "surprised to come and find out how many blog entries I've posted" since they last visited. If they signed up for the subscription feature, they'd get them delivered to their door...er, inbox.

Come on in, the water's fine. :-) I won't use the subscription for any purpose other than notifications about the blog. Promise.

Check out SeeFusion 4, now available, with new Flash Interface

Some of us have been hearing about or seen previews of SeeFusion 4, with its nifty new Flash-based interface. Well, it's now available in production. Check it out at http://www.seefusion.com/.

More on each of the following new features is available at the what's new page:

  • Flex 2 rich user interface, including real-time charting
  • Active monitoring rules
  • Enhanced database logging, including user-defined event logging
  • Stack trace filtering
  • Debug output filtering by IP Address
  • Streaming running requests
  • Improved trace() method

More important, check out the live demo at:


Note the comments about firewalls and then click the "live demo" icon to see the new Flash-based interface running against a live server at SeeFusion HQ.

Finally, I'll add that, yes, I'm well aware of FusionReactor, and the fact that it's had a Flash-based interface for a long time. Be that as it may, I've always had a soft spot for SeeFusion and the guys at WebApper.

I also really appreciate that they offer a free trial that does not expire after x days (FR stops after 10 days). Instead, an unlicensed edition of SF runs for the first two hours after CFMX (or BD/J2EE) has been started, and then is stops. Honestly, I fear that some use it that way and never pay. If is solves problems for you, I hope your conscience will lead you to do the right thing. :-)

I won't belabor here what all the tool can do for you. Check out the site and its many pages and screenshots (and that live demo) to learn more.

Using DWMX? Wish you had CF Studio or HomeSite+? You do, for free!

Though I've been trying to spread this word for years, I still find people don't realize it. If you were a fan of CF Studio, while it's no longer available, you will find that HomeSite+ is effectively the same tool. And it's FREE--as long as you have a license for Dreamweaver MX or Studio MX.

You can't download it, nor can you buy it. (You can by HomeSite, but that's not the same as HomeSite+.) You'll find HS+ as an installer file on the DWMX CD, but not on the installer menu (though that's been addressed finally in DWMX 8).

For more details, see an article I did for Fusion Authority back in 2004 (which points at yet another article I did in the CFDJ in 2003:


Keepin' up on what's happening in the CF world - Part 4: Weekly Summaries

In my previous three entries, I've discussed how someone can keep up with the news of the CF world by leveraging blogs and blog aggregators. In this final installment, I want to point out a few resources that do all the work for you to keep up with a weekly update of what's going on in the CF world. One is a summary of the top CF blog entries (in that author's opinion), another is a summary of CF news (again, another author's opinion), and finally I want to point you to a couple of podcasts that include a focused summary of the news each edition.

Andy Allan's weekly blog summary

First, let me point out the nifty new weekly summary of top blog entries as determined by CF developer, Andy Allan, of the Scottish CFUG. His "roundup" of the CF blogosphere is just one of his regular blog postings, but he has demarked them by a category of "Blog Round Up", so you can keep an eye on just those particular new entries (if that's all you care to see) by watching the URL:


As I noted in part 2 of this series, you can set up your browser to bookmark this URL in a way to make it easy to visit frequently.

Better still, as we discussed in part 3, you can leverage an RSS feed instead and Andy also offers such a feed for these "roundup" entries:


I first blogged about Andy's new service at http://carehart.org/blog/client/index.cfm/2006/7/21/andy_allens_weekly_cf_blog_roundup.

Ryan Hartwich's Weekly CF News Review for FusionAuthority

Now, where Andy is picking out the top blog entries, another take is Ryan Hartwich's new "News Brief", on the FusionAuthority site. So far, he has offered these two:



While there is no single page that keeps track of new entries to just the News Brief, it may be worth noting that for now you can use the following page that tracks all "news" items on the FA site, including the News Brief:


Sadly, it's not even presented in chronological order (for now), so you kind of have to wade through its contents to see what's new. Judith has told me that they are looking to address this challenge (of tracking what new entries are made in the News Brief and other article series), so look for that in the future.

Listen to the News: CF Podcasts with a News Focus

Finally, another outlet for CF news may appeal to those who just don't have time to read web pages, RSS readers, or emails. Of the several nifty CF-related podcasts, two in particular try to highlight the latest news each edition.



Note as well that each of them also list the points they raise, including links, on a page for each podcast, which can itself be another avenue for keeping up on the week's news.

And a Summary of the Podcast (Summaries)!

OK, this may be getting a little too "meta", but for those who would like to keep tabs on what the CF podcasts are talking about, Charlie Griefer is offering another "meta" resource on FusionAuthority, in his somewhat regular podcast reviews. A couple of the latest entries (at this time) are:



And, as with the News Brief discussed above, there is no one page that lists just new entries to the Podcast Reviews, but they are listed along with hundreds of other "news" pages (going back to 1999) on the page: http://www.fusionauthority.com/Reviews/.

CF Open Source Updates

Oh, let me share one more. I'm sorry I forgot it initially. Brian Rinaldi is now keeping a weekly update on the OpenSource part of the CF World. Here is the latest:


If he offers me a URL that lists them as they're updated, I'll offer that here.

OK, that's it. I hope you got some value from these 4 parts on "keepin' up on what's happening in the CF world".

Keepin' up on what's happening in the CF world - Part 3: Leveraging the RSS Feeds

In my two previous entries, I've been discussing how someone interested in keeping up with the news of the CF world can leverage the two popular Adobe-community blog aggregators. The last focused on browsing them, and this will focus on using their available RSS feeds.

Even if you don't know anything more about RSS than how to spell it, follow along. I'll share something that can help you leverage it from Email, to get your daily (or even hourly) dose of CF news delivered to your inbox. Finally, in the next and final part, I'll point out a couple ways to save you even that bother, with folks who have so kindly gathered up the latest news of the week.

The previous two entries were on the aggregators and browsing them.

While going to the sites to browse the latest news is one way to keep up, it's certainly not the most efficient. New entries are constantly being added, and all you need to do is go away for a few hours and there are several new entries. And what if you're gone for days?

Getting the RSS Feeds Instead

A still better solution to that problem is to get the posts delivered to you as they are discovered (added by the bloggers whose blogs are being aggregated). This is possible by using what's called the RSS feed (Really Simple Syndication). You don't need to understand much about them to take advantage of them. Indeed, I won't get into any detail here as others have covered the topic well.

Just know that it's an XML stream of data that's updates whenever a new entry is made, and some program can be set on your computer to watch that stream and take note of any such updates. RSS feeds are offered on both many blogs, and in fact it's the RSS feeds that these aggregators watch. Well, the aggregators themselves also offer RSS feeds of all the data they aggregate.

Recall in the first entry of this series, I shared with you the two URLs that you could use to keep en eye on the CFML-related entries that the aggregators detected.

Well, the corresponding URLs for the RSS feeds watching those entries at the two aggregators are, respectively: http://www.fullasagoog.com/xml/ColdFusionMX.xml

http://weblogs.macromedia.com/mxna/xml/rss.cfm?query=byCategory&languages=1&categoryId=1 If you're familiar with what to do with those URLs, take them and run with them. Otherwise, I'll explain in a moment how you can take advantage of them, even to get notified by email of the changes detected in the feeds.

Before that, though, let me point out that the MXNA feed URL can be generated for different characteristics, including particular languages (I've given the English one above) and even to watch the feed for a particular string. Visit the MXNA site to generate your own desired RSS feed URL.

Further, note that MXNA also offers a mechanism called "smart categories", which tries to be even more discerning about what gets delivered as related to a given category. The CFML feed for that would be: http://weblogs.macromedia.com/mxna/xml/rss.cfm?query=bySmartCategory&languages=1&smartCategoryId=1&smartCategoryKey=D0382F3A-9D2B-69E8-C7BC317066FA1CC2

I know how to spell RSS, but that's about it. I prefer Email

As helpful as an RSS feed is for those familiar with using RSS readers (or using email programs that know how to process them such as Firebird and Outlook 2007), what about those who don't use any of those yet? You can still get your constant drip of CFML goodness without having to visit the page every day or hour, and without having an RSS reader or email program that knows how to process such feeds.

On another blog of mine, I wrote about a couple of free services (Squeet, Feedblitz) that allow you to give them an RSS feed and they'll email you when new entries are posted to the feed. You can even control whether it's immediate or only a daily digest. Nifty. Learn more about that at my tipicalcharlie.com site (for generic, non-CF tips):

http://www.tipicalcharlie.com/blog_email_notification_by_squeet.htm ((Update: tipicalcharlie domain is no more, but page recovered using Archive.org.))

(Update: Sadly, squeet (a tool to send RSS feeds by email) is no more. But there are other alternatives, that I track in a category of my CF411 site: http://www.cf411.com/rss_email.)

And finally, for those who just can't keep up with a constant or even daily flow of the latest and greatest news, in my next entry I'll point out a couple of great resources that instead give you the news on a weekly basis.

Keepin' up on what's happening in the CF world - Part 2: Browsing the Aggregators Regularly

In my previous entry, I started a multi-part series on keeping up with what's happening in the CF world. In this entry, I want to introduce a couple topics related to keeping an eye on those two aggregators I mentioned, FullAsAGoog and MXNA, by way of browsing them.

Of course, there are still better ways, including leveraging their RSS feeds, which I'll cover in the next entry. But for those who still prefer good ol' web pages, here are a couple tips that may help. These tips aren't unique to watching the aggregators, of course, and for some they may be old school. But I see plenty of folks who don't leverage them so it seemed worth mentioning.

We all know that having the URLs to the aggregator's CF category listings (as mentioned before) we can easily bookmark the pages to go visit whenever we want. But since these are pages that you may well want to visit frequently than most, you can take advantage of a couple of browser features to make them even more readily accessible.

Keeping an Eye on the Aggregators--by Quick Links

First, did you realize that both IE and Firefox have a unique toolbar-based list of favorites/bookmarks that you can see all the time? Many never bother to change them or pay attention. Here's how to use them in each browser.

In IE, when adding a favorite, you just want to put it in the special "Links" folder. Using the Favorites>Add to Favorites menu option, use the "create in" option to point to the "Links" folder. Then it will appear in the top IE toolbar area. Other things in there by default are "Windows Marketplace" and "Windows Media". You can remove them if you want, to make more room. If you don't see these links at all, make sure you've enabled View>Toolbars>Links. And if you can't see the entry/entries you just added, you may need to move the new entry around in the Links folder. Use Favorites>Organize Favorites, expanding the Links folder and moving the newly added entry up in the list of links.

In Firefox, there is a similar set of "toolbar bookmarks" that appear at the top of the screen. To add something to it, use Bookmarks>Bookmark This Page (or hit Ctrl-D) and then choose "create in" and point to "Bookmarks Toolbar". Other default items in there include "Customize Links" and "Free Hotmail". Again, if you don't see it at all, make sure that View>Toolbars>Bookmarks Toolbar is enabled. And as with IE, you may want to move the entries around in that list (or even delete some you'll never use), using Bookmarks>Manage Bookmarks and expanding the "Bookmarks Toolbar" folder to arrange things.

Keeping an Eye on the Aggregators--Making One of Them Your HomePage

One other trick to consider is that you think you just ALWAYS want to see one of the aggregator pages by default, you may know that you can set one of them up to be the "home page" for your browser. Then it appears each time you open the browser.

In IE, you do that with Tools>Internet Options>General>HomePage>Address and enter the desired URL.

In Firefox it's Tools>Options>General>Home Page>Location.

Honestly, I don't do it in either browser. For one thing, I want the browser to open as fast as possible and so just choose "use blank page" in both.

But better still, I keep my eye on the submissions using another approach, one that I'm sure many readers here know about and wonder why I'm not promoting. I will, in the next entry on leveraging the RSS feeds. If you don't know what that's about, I'll help you, even if you don't know what an RSS Reader is and don't want to install one! :-) That's coming up next.

Copyright ©2017 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