[Looking for Charlie's main web site?]

I'm speaking on CF Meetup at noon US EDT today: on using and securing RDS in CF Editors

Note: This blog post is from 2008. 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.
Today at noon (US EDT) I'll be speaking on the CF Meetup, about using RDS in Eclipse, DW, and HSStudio, as well as security issues, including changes in CF8 that may make it more acceptable to use in more environments. I think many will be surprised by what they can do via RDS in all the editors.

I announced both of today's meetup sessions yesterday, as I do each week, but I don't bother with all the details of each talk so as not to overwhelm my readers here. I give the link to the talk's event page on the meetup site and let interested readers go view them there.

Since this is my talk, I thought my readers may benefit from a more detailed clarification of my talk today, thus this entry. Here are the details:

Leveraging RDS in Eclipse, Dreamweaver, and Homesite+/CF Studio: It's more secure and more useful than you may think

Are you using the RDS-enabled features in Eclipse, Dreamweaver, or HomeSite+/CF Studio? If not, you could be missing out on a lot of increased productivity, from the query building tools it enables, to the component browsing tools, to enabling file access across the web, and more.

Perhaps it's been disabled on your server, or people may argue that it's insecure. If you could be shown how it could be secured, might you (or your admin) reconsider it? I think it?s a tragedy how many developers suffer without leveraging RDS, certainly on their own machines, and even on shared servers.

Whether you think RDS evil or a blessing, or are unaware of what it enables in your favorite CFML editor, and whether you use CF 8 or earlier, there may be more to RDS than you realize. And there are solutions to security concerns, especially in CF8 but even beforehand.

In this talk, frequent CFUG speaker Charlie Arehart will show you all the ways that RDS can be used to make you more productive in Eclipse, Dreamweaver, or HomeSite+. He'll also address (and in some cases resolve) common security concerns, especially the multi-user RDS security available in CF 8 (and CF 4 and 5), as well as how to enable it if it's been disabled (assuming you have the right to make configuration changes, of course).

Join us online at noon. Anyone's welcome. No preregistration required (though you may want to consider it: see below.)

About the CF Meetup

In case you've missed it, the CF Meetup is an online CF user group I run. I try to have weekly meetings, with speakers all over the world. FWIW, this is only the 2nd talk I've done of the 40 talks done so far, and the first this year. Anyone's welcome to attend.

While the descriptions of meetings are held on the meetup.com site (a commercial service to help groups meet up with each other), the actual meeting is held online at http://experts.acrobat.com/cfmeetup/. Anyone may join in on the meetings. Just log in as guest (everyone should, even registered members of the group.)

If you'd like to receive email notification of the meetings, as well as have access to other resources (to give ratings, take part in polls, participate in the mailing list/forums), you can join the group at no cost, again at coldfusionmeetup.com (which redirects to our group's site on the meetup site, http://coldfusion.meetup.com/17/.)

Finally, all meetings are recorded, and the recording URL will be posted after the meeting at http://recordings.coldfusionmeetup.com.

Tools and Resources for CFers, Part 3: Blogging Tools

Note: This blog post is from 2008. 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.
As some may know, I keep a list of over 700 tools and resources of interest to CFers, broken into more than 100 categories. I've decided to start offering each category here as a blog entry. Again, to see the list of all categories, see Part 1 of this series.

Today I'll jump from the resources section of the list to the tools section. It's just coincidental (well, alphabetical) that the first items in each list is about blogging (Part 2 was on CF-oriented blog aggregators.)

This entry is about CFML-based blogging tools, both downloadable and hosted.

Blogging Tools

The following are blogging tools (tools for creating a blog) that are written in CFML. Of course, you can find blogging tools written in many other languages that you may choose to use on your site (as well as hosted solutions, where the code platform doesn't matter to you). I don't want to try to keep here a list of all such CMSes, so this focuses on those that are written in CFML and that you can download. I list, after that, hosted solutions written in CFML.

  • 1ssBlog, open source, from Ed Tabara
  • AVBlog, open source, from Andrea Veggiani
  • BlogCFC, open source, from Ray Camden
  • BlogCFM, open source, from Rick Root
  • CFBloggy, open source, from John Ramon (see also his blog)
  • Fuseblog, open source, from James Husum (not updated in some time)
  • KoldKast, free for download, and also available as a fee-based hosted solution, from Rick Smith
  • MachBlog, a blogging package from Matt Woodward and Peter Farrell, and based on Mach-ii
  • Mango, "a sweet ColdFusion blog engine" from Laura Arguello of asfusion
  • See also Brian Rinaldi's Open Source CF list of blog tools
  • I welcome additions/corrections/feedback.

There are also a few blogging solutions that, while written in CFML, are not available for download but instead are available as hosted solutions:

  • Blog-City, fee-based hosted solution
  • BlogFusion, free and fee-based hosted solutions, from Jake McKee
  • CFBlog, free hosted solution for the CF community, powered by BlogFusion
  • InstantSpot, free hosted solution, from Aaron Lynch and Dave Shuck
  • KoldKast, free for download, and also available as a fee-based hosted solution, from Rick Smith
  • I welcome additions/corrections/feedback.
Besides the tools above used to create blogs, here are some that can help with creating blog entries:
  • Amazoner, a tool to help a blogger easily recommend books that they like, using their Amazon associate ID
  • LiveWriter, a desktop application from Microsoft that makes it easy to publish rich content to your blog
  • Post2Blog, an alternative to LiveWriter
  • I welcome additions/corrections/feedback.

Additions/Corrections

This is a perpetual work in progress. I definitely welcome additions or corrections to this list. If you have any to offer, you can leave them here as a comment on this blog entry and I'll move them to the list on the site.

BTW, before you offer an update here, please do check the category on the real list. I won't be coming back here to update these blog entries to sync them if I add new items to the real list.

About this series

This entry is part of an ongoing series, sharing each of the 100+ categories and the tools and resources I (and others) have identified. They're designed to answer the questions we hear, like , "does anyone know of tools or resources to help with ...?"

Someone may ask why I'm blogging each of these categories, when they're available online anyway. It's just that, through aggregation and feeds, blogs present a way to reach a wider (and new) audience who may not otherwise come across the list of tools and resources. This also widens the pool of eyes for possible updates to the list. I want it to be as accurate and up to date as possible. I may in the future offer an RSS feed of any updates made to the list.

Otherwise, I hope people will get great value out of the lists, here or on the tools and resources page.

Tools and Resources for CFers, Part 2: CFML Blog Aggregators (and bloggers)

Note: This blog post is from 2008. 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.
As some may know, I keep a list of over 700 tools and resources of interest to CFers, broken into more than 100 categories. I've decided to start offering each category here as a blog entry. Again, to see the list of all categories, see Part 1 of this series.

Tools and Resources for CFers, Part 2: CFML Blog Aggregators (and bloggers)

There are literally hundreds of CFML blogs. Some are popular and known by most, while some less popular ones may well offer some hidden gem. Rather than try to list them all here, and indeed rather than you having to read them all, the following aggregators focus on CF-oriented blogs.

Some blogs are in all the aggregators, but it's worth keeping an eye on more than one. I provide as well a link to the list of all CFML blogs that each aggregator follows. This way, you can find out all the folks who blog about CF.

You can always find the latest version of the list above at the official site, in the category CFML Blog Aggregators (and bloggers)

Again, if you're looking for a list of all CF bloggers, note that there is no one list, but again each of the aggregators above offers a list of the blogs that they aggregate, and I've offered the links to those lists above.

Additions/Corrections

This is a perpetual work in progress. I definitely welcome additions or corrections to this list. If you have any to offer, you can leave them here as a comment on this blog entry and I'll move them to the list on the site.

BTW, before you offer an update here, please do check the category on the real list. I won't be coming back here to update these blog entries to sync them if I add new items to the real list.

About this series

This entry is part of an ongoing series, sharing each of the 100+ categories and the tools and resources I (and others) have identified. They're designed to answer the questions we hear, like , "does anyone know of tools or resources to help with ...?"

Someone may ask why I'm blogging each of these categories, when they're available online anyway. It's just that, through aggregation and feeds, blogs present a way to reach a wider (and new) audience who may not otherwise come across the list of tools and resources. This also widens the pool of eyes for possible updates to the list. I want it to be as accurate and up to date as possible. I may in the future offer an RSS feed of any updates made to the list.

Otherwise, I hope people will get great value out of the lists, here or on the tools and resources page.

Want to create simple installers for Windows, for free (built-in to Windows)?

Note: This blog post is from 2008. 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 have need to create a simplified installer (on Windows, for Windows), it turns out there's a built-in feature in Windows, called IEXPRESS, that does this for you.

It lets you package a set of files into an EXE which when run will show customized text prompts at the start and end, let the user pick the directory into which to extract, run a selected command at the start or end, and even optionally show a license they must agree to.

It turns out it's a feature that was implemented as part of the IE 6 Administration Kit (thus the IE part of the IExpress name), but I just tried it on Vista (with only IE 7 installed) and it worked just fine. Pretty nifty.

For more, see this blog entry at the awesome "Confessions of a Freeware Junkie" site. He also links there to a MS page that discusses the tool in more detail.

Tools and Resources for CFers, Part 1: Now over 100 categories

Note: This blog post is from 2008. 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.
As some may know, I keep a list of tools and resources of interest to CFers, to help you answer the questions, "what tools/resources exist to help with ...?" I started it several years ago but update it constantly, and it now has over 700 tools and resources in over 100 categories. I've decided to start offering each category as a blog entry. Below, first, are the 100+categories, to give you a heads up of what's coming.

The Categories

I've split the list into Resources and Tools. Sometimes it's not clear how best to categories some subjects, such as CFML Frameworks, CFML Engine Alternatives, Monitoring Tools/Services, Testing Tools/Services, Time Tracking/Invoicing Tools/Services, and Web Site Design Repositories, to name a few.

Again, I'll be offering here a blog entry on each of the lists as part of this series.

I definitely want to hear of any possible editions or changes. Otherwise, I hope people will get great value out of the lists.

PS Of course, don't miss Brian Rinaldi's excellent list of open source CFML products and projects. I don't limit mine to just things written in CFML (nor indeed just open source), and of course I show more than just tools but also resources. For those interested, I discuss the differences, and indeed how I link to his list often from within mine, in a section of my list. They complement, rather than compete with, each other.

Revisiting CF/Java integration

Note: This blog post is from 2008. 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.
On a mailing list, someone asked about running/integrating Servlets, JSPs, Struts, and EJBs in CF. This is one of those topics that was discussed a lot when CFMX came out, but those who didn't switch at the time may have missed out.

I thought I'd share here my answer to his question (pointing out several resources for him to learn more), in the hope that it may help others also who may only now be considering such integration.

Since he was already familiar with running JSPs on CF, but some readers here may not be, I'll start with just a quick point about that, then I'll offer what I replied to him.

CF and Java Integration

It may be important to clarify that technically, it was CF 4.51 that first afforded the option to integrate with Java (including EJBs). Though CF then wasn't built upon Java, you could point to a JVM in the CF Admin and various CF tags and functions afforded some Java integration.

CFMX 6, however, was not only only built upon Java but the Enterprise (and Developer) edition specifically added the ability to run JSPs and servlets directly within CF. More than that, there's some significant integration possible.

In the case of JSPs, you could just drop them into the same code directory with your CFML templates. Servlets take a little more work, as explained in my reply to the gent's email, below. He had been reading a JSP/servlet book and wanted to know how to run the latter, especially, on CF, as well as how to integrate with the Struts framework:

I hope I can help and I think you'll find I have good news.

You mention looking at a book on JSPs and servlets, and you ask how to implement them (and JSPs) in CF. Of course, that book won't help with that--but neither really will the CFML Reference (or a site like CFQuickdocs), if you may have looked that. You need to look at the ColdFusion Developers Guide in the CF docs (http://livedocs.adobe.com/coldfusion/8/htmldocs/Part_4_CF_DevGuide_1.html), or any CF books out there. The CF manual has a chapter specifically on this topic: Integrating J2EE and Java Elements in CFML Applications.

For instance, that chapter clarifies that to run a servlet called HelloWorldServlet, you put the servlet .java or .class file in the [CFserver]/WEB-INF/classes directory and refer to the servlet with the URL /servlet/HelloWorldServlet. It also discusses sharing data between CFML and such JSPs/servlets. You can even use JSP custom tag libraries directly within CFML, and lots more. And yes, the docs show (briefly) how to enable EJBs and call them from CFML.

That said, the coverage in the docs may leave one wanting more, so you may want to consider other resources that discuss it more. There was at least one book focused on that, Reality Macromedia ColdFusion MX: J2EE Integration. There were also lots of talks and articles back in the 2002 timeframe, when this stuff really took off with CFMX (though Java integration was added back in CF 4.51, which added a means in the CF Admin to point to a JVM that CF would work with.)

For instance, I did lots of presentations on CF/Java integration (as did others, of course). If you visit http://carehart.org/presentations/, and search for java, jsp, or servlet filters.

Doing Struts is not discussed in the CF docs, but there was at least one DevCenter article that discussed it specifically: Streamlining Application Development Using Struts in ColdFusion MX.

It's interesting to see these recent questions about things that came out with CF 6--many shops either didn't move from 4/5 right away, or did but didn't take advantage of the new features. Folks in that position will then not have necessarily followed all the resources (books, technotes, blog entries, user group talks) that came out back then.

This is one of the reasons I keep saying that any topic on the CF Meetup is welcomed. Not everyone needs only to learn new stuff, many need to learn what may seem "old" stuff. It's also the reason why I keep pointing to articles and talks I did in the way past. :-)

Though he didn't ask about it, of course also since CF 6 you 've been able to deploy CFML as a J2EE (or Java EE) web application/WAR or enterprise application EAR. That feature has improved from 6, to 6.1, to 7 (and of course is still possible in 8).

Certainly, if you're a shop that has any Java folks--and especially if there's some strong desire to lean that way, and CF is still seen mistakenly as a proprietary island--it's important to be able to convey to them that your CFML app can be deployed as a pure J2EE web app (WAR/EAR), which is a form they'd expect.

I think all this would be a topic worth my packing together for an upcoming CF meetup session. Until then, again, anyone interested in the topics can see the resources mentioned above that I and others have written.

Some of my FusionAuthority Quarterly Update Tip Columns now available online

Note: This blog post is from 2008. 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.
Some may know that I'm a regular contributor to the FusionAuthority Quarterly Update. Besides occasionally writing feature pieces, I have a tips column on the back page(s) of every issue. I'd like to point out here that the fine folks behind the magazine (Michael and Judith Dinowitz) have released the first couple of tips as PDFs, available online for free:

http://www.fusionauthority.com/tipical-charlie/

And that's not a typo. I called it "*Tip*ical Charlie" as a play on words. The titles of the articles in those first two issues were:

  • Text File Processing (PDF)
  • How Can I Call Thee (CFC)? Let Me Count the Ways! (PDF)

Enjoy, and do keep in mind that this tips column is intended to benefit newcomers as well as more experienced folks. The rest of the FAQU articles do tend to be more intermediate/advanced.

You can also find the titles for all my other FAQU articles (indeed all I've contributed to any magazine) on my articles page, and you can find the titles of other FAQU articles by other authors on the FAQU site.

Want the whole FAQU issue(s) in PDF form?

But some will want more than just my tips articles in PDF form. Here's good news: if you've not noticed, you can also get complete back issues (also in PDF form) for 7.95 per issue, and in fact the first issue is offered for free.

I suspect that as time passes, we'll see more of my tips and indeed complete issues released for free. Thanks to all the folks behind the FAQU.

Bug with Query of Query: using LIKE incorrectly finds records with null values

Note: This blog post is from 2008. 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.
Someone reported on a mailing list that they'd noticed a mistake in the results of a Query or Query operation when using a LIKE. It finds a record whose value for the column is null, which is of course wrong (that doesn't match the LIKE pattern--indeed a null never equals or doesn't equal anything).

The problem can be worked around by adding "and column is not null", but it really surprised me (and him, obviously) to discover the bug. Maybe someone else has written of it before.

But I tested it in 8.01 and can confirm it's still an issue. While I've recommended that he file it as a bug, I wanted to share it here until it's resolved. Hope this may help someone. (If we're missing something, feel free to comment.)

Here's some code you can run which uses the example app database that comes with CF. See the comments for what's wrong:

<CFQUERY NAME="demoq" DATASOURCE="cfdocexamples">
   select * from employees
</CFQUERY>

<!--- note that by default, all records in the example employees table have values in all columns --->

<cfdump var="#demoq#" label="before insert">

<!--- insert a record with only one column (causing the others to be null)
--->

<CFQUERY NAME="insert" DATASOURCE="cfdocexamples" >
   insert into employees (firstname) values ('charlie')
</CFQUERY>

<CFQUERY NAME="test2" DATASOURCE="cfdocexamples">
   select * from employees
</CFQUERY>

<cfdump var="#test2#" label="after insert">

<!--- do a Q of Q of that query, for a column which would have a null for that last added records, so you'd expect it not to find it --->

<cfquery dbtype="query" name="test3">
   select * from test2
   where department like 'Sales%'
</cfquery>

<!--- that record with the null value still shows up! --->
<cfdump var="#test3#" label="dump of Q of Q">

Again, the problem is that the record with the null value still shows up in the Q of Q result, and it definitely should not. A solution for now is that if you change the Where clause to "department is not null and department like 'Sales%'", then it properly does not show the null-valued record(s) anymore.

(If anyone plays with this on their own code, note as well that Q of Q is case-sensitive, so no records would be found at all if you mistakenly used 'sales%' rather than 'Sales%', above.)

Anyone know where I can find a recorded presentation about ...?

Note: This blog post is from 2008. 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.
I saw a question on a CF list today, where someone was asking whether anyone knew of a recorded presentation about a particular topic. That made me think it might be time to remind the community of my UGTV site:

http://www.carehart.org/ugtv/

There you can find over 200 recorded presentations from nearly 150 presenters, totaling 220+ hours of video, all for free, and searchable, with RSS feeds, including RSS feeds based on your search criteria.

New recordings are being added all the time. Indeed, I've been thinking also of starting to publish a weekly summary of submissions here on my blog, for those who don't think to get the RSS feed.

Bloggers: validate your feed on new entries, or you and your readers could suffer. Here's how

Note: This blog post is from 2008. 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.
Have you ever found (as a blogger or as a reader of a blog's feed) that sometimes it seems the feed just seems to stop working? It could be that it's become invalid. Here's a tip.

Bloggers: you really should validate your feed on every new submission. You never know when some special character you used (or copy/pasted from elsewhere) might make your feed invalid.

In this entry, I propose a couple of possible solutions, either that you may find or that you can easily add to your own blog.

Validating your feed. Does your blogging tool do it?

I imagine some blogging tools may even offer this as a feature. It's easy enough to validate one's feed with a tool like http://feedvalidator.org/. You can easily validate your own by adding your URL with http://feedvalidator.org/check.cgi?url=yoururl. (Technically, the value of yoururl should be URLEncoded.)

Validating it yourself on each new entry

If your blogging tool doesn't do that validation for you, here's another thought: you could easily do it yourself. Here's code I use to check the feed whenever a new entry is made. It looks at the validation result and sends me an email if it fails, which has saved my bacon a couple of times:

<cfhttp url="http://feedvalidator.org/check.cgi?url=#urlencodedformat("http://carehart.org/blog/client/rss.cfm?mode=full")#" resolveurl="Yes">

<div id="content">

<cfif cfhttp.filecontent does not contain "congratulations">
   <cfmail to="myemailaddress" from="myemailaddress" subject="Your Blog's RSS feed has failed" type="HTML">
      <p><a href="http://feedvalidator.org/check.cgi?url=#urlencodedformat("http://carehart.org/blog/client/rss.cfm?mode=full")#">http://feedvalidator.org/check.cgi?url=#urlencodedformat("http://carehart.org/blog/client/rss.cfm?mode=full")#</a></p>
#cfhttp.filecontent#
   </cfmail>
   <cfoutput>
      <h4>Validation Failed</h4>
      For http://carehart.org/blog/client/rss.cfm?mode=full. Email sent to myemailaddress.
      <p><a href="http://feedvalidator.org/check.cgi?url=#urlencodedformat("http://carehart.org/blog/client/rss.cfm?mode=full")#">http://feedvalidator.org/check.cgi?url=#urlencodedformat("http://carehart.org/blog/client/rss.cfm?mode=full")#</a></p>
   </cfoutput>
<cfelse>
   <cfoutput>
      <h4>Validation passed.</h4>
      For http://carehart.org/blog/client/rss.cfm?mode=full passed.
   </cfoutput>
</cfif>
</div>

Of course, you could just drop that code into your blogging code if you're comfortable doing that.

Using your blog tool's Ping feature

But if you don't want to edit your blogging code, you could do this just as easily with your blogging tool's ping feature, if it offers one. These are more typically used to provide one or more URLs which the blogging tool will call when you offer a new entry, such as to notify blog aggregators of your new entry (rather than waiting for them to come back to find your entry eventually).

You could use that same feature have it go to a URL on your own site that runs the code above. That's what I do.

Is there a service doing this already?

I suppose someone could set up a service to do this, letting you pass in the URL and email addresses. For now, I'm not in a position to do that on my own server for others. One would need to be careful not to let this be abused in any way. I also imagine it could get used by a lot of folks.

I kind of wonder why some free service hasn't yet been created to do this. Surely someone could find a way to monetize it. :-)

Anyone know of such a tool?

Anyway, there's the idea and the code above, if it may help.

PS: This is more than just for bloggers

BTW, this applies to more than just blogs. Anything where you add items that offer an RSS feed to read them, this would make sense, such as podcasts, news items, and more.

In fact, I've been meaning to write this entry for a long time, and was actually motivated when I came across some failing OPML for one of the CF blog aggregators today. I dropped a note to the owner, letting him know that someone had slipped in a bad character when they'd entered a new feed to him. I suggested he could benefit from this idea (as would others), and that I'd blog about it. There you have it.

More Entries

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