The miscellaneous ramblings and thoughts of Dan G. Switzer, II

ColdFusion v7.01 Updater Released...

Not that this isn't already being blogged about a bazillion times already, but Macromedia has released the ColdFusion v7.01 updater, previously codenamed "Merrimack", today. The key updates are:

  • RTF output format for the cfreport tag
  • Support for ActionScript functions in the cfform tag
  • Support for ActionScript events in Macromedia Flash forms, including onLoad, onFocus, and onBlur
  • Java CFCProxy support, for calling CFCs directly from Java in Enterprise Edition
  • Tag attribute addition and enhancements for the cfdocument tag, and other tags
  • New CFML functions, including decryptBinary, EncryptBinary, GetLocalHostIP, and IsLocalHost (for preliminary IPv6 support)
  • SMS Gateway character set and data encoding enhancements
  • New platform support, including the following:
    • Windows 2003 Service Pack 1
    • Red Hat Linux AS 3.0 and 4.0
    • SuSE Linux Enterprise Server 8 and 9
    • AIX 5L v5.1, v5.2, and v5.3
    • IBM WebSphere Application Server (WAS) Newtork Deploy (ND)
    • Oracle Application Server 10g
    • Some basic support for IPv6
    • A full OS X installer, with an installation experience similar to that on Windows
    • Oracle 10g RDBMS support (Note: 10g Real Application Clusters (RAC) are not supported with the Updater.)
  • Updated internal technology, including the following:
    • Axis version 1.2.1+
    • JRun Updater 5+ hot fixes
    • Verity 5.5 Patch Level 21
    • Other key internal OEM technology updates and fixes

For more information, see the following links:


Barney Boisvert's ColdFusion/OO Primer...

Still trying to wrap your head around OO concepts and to integrate them with ColdFusion? Take a look at Barney Boisvert's blog entry Designing an OO Backend.

David Ross Announces ColdSprings v0.2.0 and ColdSpringsAOP...

Dave Ross has announced ColdSpring v0.2.0 and ColdSpringAOP. I'm a little behind on this announcement.

There's no real information on ColdSpringAOP, but they're supposed to unveil the whole thing this Thursday at the Frameworks Conference. Hopefully they'll also blog the contents of the presentation for those of us who can't attend the conference.

Doug Hughes' ColdFusion API for Inline Dynamic DB Abstraction...

Doug Hughes blogged today about an interesting new API he's working on for inline dynamic database abstraction. The current name of the project is Reaction, but it appears as though he may rename the project.

In a nutshell, this API creates Beans, Gateways, DOAs and Transfer Objects for you on-the-fly. Here's a quick snippet from Doug's post:

<cfset myDb = CreateObject("Component", "reaction.reactionFactory").init("scratch", "mssql", "/scratch/data", "development") />

The init method of the ReactionFactory accepts these arguments:

DSN - This is the name of the ColdFusion DSN which will be used to access the database.
DbType - This as a string indicating the type of database which is being accessed. Currently the only option is "mssql" for Microsoft SQL server. More will be added in the future.
GenerationPath - This the mapping you created to the directory where code will be generated.
Mode - This controls the generation behavior of Reaction. Options are always, development and production. Always causes objects to always be regenerated. Development causes objects to be regenerated if the database structure has changed. Production causes objects to never be regenerated unless they don't exist on disk.

The ReactionFactory currently has four public methods (in addition to init):

createBean(name) - This creates a bean object. More on this in a second.
createGateway(name) - This creates a gateway object.
createDao(name) - This creates a data access object.
createTo(name) - This creates a transfer object.

For each of these methods, the name argument is the name of the table in the database. For the most part, I believe developers will be using the createBean() and createGateway() methods more than the others.

Beans are quite cool. They're not quite exactly your traditional beans. They have load(), save() and delete() methods.


Customize CFMX's 7 CFCHART Features Using WebCharts3D Designer

I've been playing around with CFMX 7's CFCHART tag quite a bit lately. I've been trying to decide if I can get it to do all the things I want it to do. While it's certainly a nice tag, there are certain aspects of the tag I don't like. Fortunately, with some work you can customize the CFCHART functionality quite a bit. You can even design your own style sheets for use with the WebCharts3D engine that Macromedia licensed for use with CFXM 7.

The biggest obstacle is that Macromedia hasn't done a great job describing how to use the WebCharts3D designer and how those features map up to the internal CFMX syntax. There are a lot of differences in nomenclature between the two, and this makes it a bit of a pain to try to map what attributes of the CFCHART series of tags map up to the internal WebCharts3D XML style sheet.

After playing around with CFCHART for a few days, I found the best way to really learn the capabilities of what you can do w/CFCHART was to use the WebCharts3D v5.0 Enterprise Edition designer. In your CFusionMX7\charting folder you'll find a batch file called "webcharts.bat" Run this file to load the WebCharts3D designer.


The Regex Coach - Interactive Regular Expression Builder

Looking for help building Regular Expressions? The Regex Coach looks like a very promising tool for doing just that. The program is designed to specifically mimic the Perl RegEx Engine, but it should be helpful for other languages as well (like Java, Python, PHP, etc) that use Perl-like syntax. I came across this useful looking tool in a message that came across CF-Talk recently.

Upgrade to Firefox v1.07 Immediately - Severe Security Hole Found

For all of you running Firefox, you really should upgrade your version immediately. The Washington Post has reported a severe security hole that can allow a malicious hacker to take control of your PC.

Upgrade to Firefox v1.07 now by downloading it from the Firefox Product page.

Updating Symantec AntiVirus Definitions On An Hourly Basis

My boss wanted to make sure that on one of our servers we were updating our Symantec Anti-Virus definitions on an hourly basis. By default the Symantec Anti-Virus Client will only allow you to do a LiveUpdate once per day. Fortunately, there's a command line tool called VPDN_LU.exe which you can run to do silent updates.

Here are the command line options for the VPDN_LU.exe tool:

Filter out definitions updates
Filter out new AntiVirus definitions updates
Retrieve definitions and product updates in silent mode.


Running CFMX 6.1 and CFMX 7 Simultaneously Under IIS 6

Ever wanted ColdFusion MX 6.1 and 7.0 running simultaneously under IIS 6? I've always wondered how difficult this would be to set up (without using JRun) but had never tried configuring a server this way before.

Last week though, I was building a new Windows 2003 Server as a development server at my house. I decided I really wanted to get both CFMX 6.1 and CFMX 7.0 running simultaneously so I could easily test code in both versions of the language, without having to toggle the services off and on. Turns out it's not so difficult—all you need to do is configure different "Web Sites" for each version of ColdFusion you want to run. In the below example I use a different ports to differentiate the version of ColdFusion.

  1. Create two new Web Sites in IIS—one for the ColdFusion MX 6.1 Administrator and one for your development. Label both of these sites to indicate that they're running CFMX 6.1.
  2. Install ColdFusion MX 6.1. Make sure to install use the standard non-J2EE/JRun install. If you want to install using JRun, that's fine, but these directions may not work. You should be able to configure multiple CFMX instances in JRun though.
  3. After installation has completed, restart the server if prompted to reboot.
  4. Create a new Web Sites in IIS for the ColdFusion MX 7.0 Administrator. This should be a different directory from your CFMX 6.1 Administrator Web Site. This is to make sure you can administrate both versions of ColdFusion. Don't run this on a port/IP address being used by any of your other web sites.
  5. Create another new Web Site. This one should point to root directory of the development web site you created in step 1. Make sure to use a description that indicates this site is running CFMX 7. If you want to create this web site on the same IP address as the CFMX 6.1 dev server, make sure to specify a port other than 80. If you don't want to use an alternative port, then set this set up on another IP address.
  6. Install ColdFusion MX 7.0. Once again, make sure to install CFMX in the standard non-J2EE/JRun install (this is the first option.) Install the site under IIS 6, but this time specify that the site should be installed on only the ColdFusion MX 7 Administrator site you create—do not install on all servers.
  7. Once installation is complete, restart the server if prompted to reboot.
  8. Test you Administration sites to make sure that you're getting the correct version of ColdFusion MX to load for each administration site. The version number of ColdFusion (pulled from the Server.ColdFusion scope) should be shown on the screen.
  9. Open up the "Internet Information Services (IIS) Manager".
  10. Open up your CFMX 7 development web site properties, by right-clicking on web site and choosing "Properties."
  11. Go to the "Home Directory" tab.
  12. Click on the "Configuration" tab.
  13. Under "Application extensions" click on the "Executable Path" column heading to sort by path. The CFMX ISAPI filter should be at or near the top of the list. By default, this site should be mapped to the CFMX 6.1 installation. To change this site to use CFMX 7, double-click on each entry for invoking the jrun_iis6.dll file and change the path to the CFMX 7 directory. If you installed both versions of ColdFusion to the default location (or to the same drive,) you can just go through and change the "CFusionMX\" to "CFusionMX7\". You should have entries for this DLL for the following extensions: cfc, cfm, cfml, jsp, and jws.
  14. Under the "Wildcard application maps (order of implementation)" section, double-click on this entry and point the "jrun_iis6_wildcard.dll" to it's CFMX 7 version. Like in the above example, by default you should be able to change the path from "..\CFusionMX\" to "..\CFusionMX7\".
  15. Click on "Start > Run" and type "iisreset /restart" and then press [ENTER]. This will ensure that IIS is restarted and all of your changes are registered.
  16. In your development web sites's root folder, create a file with the following command: <cfdump var="#server#" /> and save the file.
  17. Run the template you create above in both your CFMX 6.1 web site and the CFMX 7.0 web site. If everything went as planned, it should show different versions of ColdFusion being reported.
  18. Now you can just switch between IP address or ports (depending on how you configured your development web sites) to switch back and forth between versions of CFMX 6.1.

Our New Patio

Ok, it's been busy the past couple of weeks and I have hadn't much time to post—especially when it comes to personal matters. Anyway, I wanted to post some pictures of the new patio I just had installed. I'm in the process of putting down new sod in some areas of the yard and I'm hoping that we be finished up tomorrow.

Jenn & I are extremely happy with DeMatteo Patio's work. Tim did a great job. All of our neighbors have come over to say how good the patio looks. Even the guys laying the sod have commented on how nice of a job the guys did on the patio (and they do patio work themselves.)

Anyway, on to the pictures! The next project I'm hoping to get down before the end of the year is to get the house painted. I was going to try to do it in the spring, but I decided to wait until fall and until the patio was built. We're hoping the patio will help cut down on the mud and dirt the dogs get into (their used to be flower beds along the back of the house—or should I say mud pits.)


Photo Album Updated!

The photo album has been updated!

The following photo albums have been added:

The Steelers Kick-Ass: Steelers 34 / Titans 7

That is all...

Programmatically Reading ColdFusion's Mail "Spool Interval" Setting

I was working on some code today and needed to determine what the value of the "Spool Interval" was in the CF Administrator. After playing around for a few minutes, this is what I came up with. This code uses non-documented functionality, but I've tested the code under CFMX 6.1 and CFMX 7 and it seems to work fine. Obviously, if Macromedia changes internal workings of ColdFusion, this code may break in the future.

<!---// create a reference to the CF ServiceFactory //--->

<!---// get the mail spool service //--->
<cfset oMailSpool = oFactory.getMailSpoolService()>
<!---// get the mail spool interval schedule in seconds //--->
<cfset iSpoolInterval = (oMailSpool.getSchedule() / 1000)>