Skip to main content


Showing posts from 2004

Hal Helms Newsletters - OO Primer

If you're new to OO or want to solidify what you already know (or *think* you already know ...), you're going to want to check out Hal Helms' latest series of newsletters:
Hal has a real gift to explaining OO concepts in a way that makes them very easy to understand and is very passionate about getting people to start thinking in OO, so his latest two newsletters (and the upcoming ones he's hinted at) should be considered "must read" materials for CFers looking to make the transition to OO. And that should be each and every one of you!
I'm going to be covering an intro to OO thinking, principles, etc. at our February CFUG meeting as well so I should have some thoughts over the next month or so. This will be a good way for me to get started on the series of OO blog entries/articles I have planned for the new year.
I hereby declare 2005 to be "the year of OO" for all CFers! :-)

Server Migration

If you're reading this, you're hitting my new dedicated server. The migration wasn't too bad, although I did change the blog database from SQL Server 2000 to MySQL 4.1.7 which was semi-challenging.

ere's the steps I took to migrate from SQL Server to MySQL:

Ran the MySQL script that comes with Ray Camden's blog software to create the database

Downloaded and installed MySQL ODBC driver for Windows on my Windows laptop that I have SQL Server Enterprise Manager installed on

Created a user in MySQL to use for the migration

Created ODBC datasource to the MySQL database

Got an error about the authentication method when I tried to connect via the ODBC driver; this is related to the new password hashing mechanism in MySQL 4.1.

Went to the MySQL command line and reset the user's password to the old hash method:SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');You have to do this if you want to connect via ODBC!

Created the ODBC con…

Exercises in Design Patterns

I had a really eloquent version of this post all worked out, but for some reason it choked when I submitted it, so this will be a less eloquent, abbreviated version.
Apologies that I've been in a cave lately. I've had the typical end-of-the-year project pileup to dig out from under, but in the course of working feverishly on some of these projects, I've taken the opportunity to take a much closer look at some design patterns, specifically in my case DAOs and how to use them better and more effectively.

I've been using DAOs in Mach-II projects for quite some time now, and although it's been working great I realized I've been using them a bit prescriptively without *really* digging down deep and understanding all the surrounding issues, gotchas, and possibilities. So I've been reading, researching, and reading some more over the past few weeks and I'm starting to have some revelatory insights on some things.
The purpose of this post isn't to…

J2EE's Growing Pains

Given the discussion some of us in the CF community have been having lately about the affect alternative CFML engines have on CF as a whole, I thought this article about what's going on in the J2EE world these days was pretty interesting:Alternative Frameworks: Bad for J2EE ... or Good?On one front, the commoditization of things like app servers may lead to the big J2EE players to abandon their commercial offerings if they're no longer profitable. (I don't agree with this argument at all, but it's one that's frequently made.)On another front, many in the Java world are challenging the complexities of J2EE and coming up with alternative frameworks such as Spring (dev framework) and Hibernate (persistence framework). These alternatives are more lightweight and easier to use than their heavier counterparts, but some argue that it starts to water down the standards.On the CF side of the world, these arguments are very analogous to the situation with Macro…

BlueDragon 6.2 Beta Released

More great news from the folks at New Atlanta: the BlueDragon 6.2 Beta is now available! The big new feature in this version is the .NET integration, which means CFML pages can be natively processed by .NET.
You've heard me say this before, but I think this is pretty important. Yes, we all love ColdFusion, but ColdFusion's ability to play well with J2EE and .NET is what's going to keep it going. Choice is a great thing, and New Atlanta is offering this up in spades with this release of BlueDragon.
I'll also reiterate that they have a FREE (yes, FREE) version of BlueDragon that you can use in production environments, so no more "but it's free!" excuses for using other technologies!

XSLT Presentation at DFW CFUG

It was great to see so many folks at the Dallas-Fort Worth ColdFusion User Group meeting last night! Here's my presentation (PDF below), as well as the supporting XML, XSL, and CF files. Feel free to email me if you have any questions or comments.

Download this file

ColdFusion/Java Hybrid Application - Proof of Concept

I completed a very simple real estate listing application that I think serves as a decent proof of concept for combining ColdFusion and Java within the Mach-II framework. If you're interested you can download the zip file here.

Overall this was a really interesting exercise, and I sent the link out to the Mach-II list on Topica, so I'll be curious to see what others think. The Java code is far from stellar since my Java's pretty rusty at this point, and I only spent about a day on the whole thing, so while it's not spectacular, it works and was fun to put together. Quite honestly I ran into fewer issues than I thought I would.
The natural break point in my mind between Java and CF in a Mach-II application is that the Listeners need to stay as CFCs. Once you start monkeying with those you're looking at modifying the Mach-II framework code, which I wanted to avoid. The bean objects and the DAOs and Gateways all seem to work fairly well in Java. Not being ab…

ColdFusion/Java Hybrid Applications

I'm in the middle of working through building a hybrid CF/Java application within the Mach-II framework. My motivation for doing this is that there have started to be some rumblings at my company that we may be moving to Java as a company-wide standard, and since I'm in the middle of modifying an existing application and have a bunch of new ones on deck, I thought this was a good opportunity to investigate some integration possibilities. I'll post what I find here. So far so good--I have the bean CFCs converted and am doing my first DAO now.

Defending ColdFusion Against Java

Ben Forta has some great thoughts on defending ColdFusion against Java in his blog today:
I think the major point (in my mind at least) is that when people posit this as an either/or proposition, there's obviously a misunderstanding of the relationship between CF and Java (and fundamentally what CF is, for that matter). Great ammo if you're in one of these arguments.

Interesting OO Article

Hal Helms has an article in the latest MXDJ entitled "An OO Approach to War." He's referring specifically to the card game, not the current geopolitical mess perpetrated by Our Fearless Leader(tm). It's an interesting read and falls in line (as usual) with much of what I always preach--learn OO if you don't know it. It will make your life and your programs better!

BlueDragon for .NET Preview Available

More good news for CFML--New Atlanta just announced that a technology preview of BlueDragon for .NET is available. Now not only can CFML applications be deployed on J2EE servers, but CFML can run natively in .NET as well. I'm particularly interested to check out the integration between some of the nice .NET controls (e.g. the calendar control) and CFML. At any rate, I think this is another great thing New Atlanta has done for CFML. Removing barriers to its use and allowing for interactivity with the other giants of the application server world gives us as CFML developers a lot more options.

PHP 5: Evolutionary or Revolutionary?

The July 2004 issue of Linux World contains an article entitled "PHP 5: Evolutionary or Revolutionary?" Since I've built several applications in PHP, I was curious to see what has changed and whether or not it truly is revolutionary. The leap from PHP 3 was indeed a large one and with it came huge performance and stability improvements. The other thing this got me thinking about is whether or not their "revolutionary" features are revolutionary in comparison to my technology of choice, ColdFusion.

According to NetCraft, PHP is now installed on over 15 million domains, so it's by no means the little-known scripting language it once was. It's especially popular amongst the open-source crowd, and it's more or less the technology of choice if you're doing web development on Linux with MySQL. I actually like PHP--it's quite powerful, has an impressive library of functions built in, and is pretty quick to develop with. I definitely don…

Getting Back Into Music

Well, I finally broke down and bought a pretty cool m-audio MIDI controller tonight. This all started when I got asked to sub on a gig for my friend's band by starlight and I realized I didn't even own a decent keyboard anymore. Being a full-fledged geek now I decided to go the MIDI controller and software synth route, which should be pretty sweet once I get the B4 and Elektrik Piano sounds from Native Instruments. AMAZING sounds and with the controller I got you can pretty much do anything with these sounds. Who needs tons of gear to lug around? The controller and my PowerBook are all I need!

BlueDragon 6.1 Released!

The other cool announcement at CFUN was that BlueDragon 6.1 has officially been released. You're probably getting sick of me talking about it, but it's an alternative CFML engine, it's virtually 100% CFMX compatible, and they have a version that you can use free in production. I think making CFML less proprietary is a great, great thing, so check it out when you have a chance!
So how does BD compare in pricing. I agree that the less proprietary, the better. ASP (in my opinion) is only the size it is because the server engine is built into the Windows servers.
Posted by Jake @ 4/17/07 3:04 PM

Well, the free version is of course free (yes, that's free for production), and it's really only lacking a few features that most people don't need (e.g. ability to include JSPs in your CFML pages, some of the tags New Atlanta added to the language like cfforward, cfimage, etc.). The JX version has great Java interoperability and a few nice new tags added by n…

CFUN 6: XSLT for Data Manipulation

April Fleming (of the Department of Defense I believe) gave this presentation, and I was glad (albeit a bit surprised) to see a packed house for this session. She had some really good tips for those unfamiliar with XSLT and I got the sense that a lot of people left the session anxious to try this stuff out on their own.

For those of you not aware, XSLT provides an extremely powerful and flexible way to manipulate XML data, not only by taking the data and transforming it into the data structure you actually want, but XSLT can be used to transform data for display on CFML pages as well. I'm working on a project right now that uses a lot of XML data, and even though I had worked a bit with XSLT before, I was reminded through this project of just how powerful (and fast!) working with XSLT really is.
Although the information April presented was great, I was a bit surprised that she was using Microsoft's XML Parser as opposed to using the tools built into CFMX (BlueDragon…

CFUN 2: Deploying CFML on J2EE - Opportunities and Challenges

This session was given by Charlie Arehart of New Atlanta, makers of Blue Dragon, which if you aren't aware is an alternative engine for running CFML. It's largely CFMX compatible and they have an extremely capable free version for use in production (YES, YOU READ THAT RIGHT!!), so you really should check it out. I tested the betas of both the free and JX versions pretty extensively, and the folks from New Atlanta offered fantastic support throughout the beta. The final version was announced at CFUN so go download it! (It runs on Windows, Linux, and Mac OS X, and they also have a J2EE version.)

Although I had investigated and done some experimentation with deploying CFML apps on J2EE before, Charlie's talk reminded me why I need to revisit this experimentation and probably put it into practice. First and foremost, if your company is mandating that you need to move to J2EE (or .NET for that matter--there will soon be a version of BlueDragon that will allow for CF…

CFUN 1: Forta on Blackstone

I wound up with a HUGE document when I summarized most of the sessions I attended at CFUN, so rather than having one large post that no one will read, I'll have several large posts that no one will read! ;-) Some very cool stuff about Blackstone was covered by Ben Forta at CFUN this year, so read on for more ...

nce it sounds like we aren't going to be doing the Breeze presentation of Ben Forta's Blackstone (CF 7) tour on 7/8, I thought I'd take a moment and summarize the new features he revealed today at his keynote presentation. Some were things we already knew about but he gave a lot more detail, and one item was revealed for the first time at CFUN and won't be discussed during the rest of his UG tour (although he specifically said we were allowed to spread the word). I know there were a couple of other guys from our UG at CFUN so I'm sure they or I will be happy to discuss more details at our next meeting. (I also ran into a couple of folks from…

CFUN 04: If You Weren't Here, You Shoulda Been!

CFUN 04 ended today and as usual it was a FANTASTIC conference. I'm really invigorated after hearing so many great presentations and interacting with so many other passionate CFers. I'll post more later about specific sessions, but I took tons of notes and I'm happy to share those as well as information/thoughts about the conference and the topics covered. If you didn't make it this year, you absolutely need to make plans now to go next year. The conference jumped from about 350 people last year to about 570 this year, but it still had a nice small, tightly-knit feeling and everyone was extremely willing to talk and share ideas (as well as free beer--thanks Room 140!). This is by far the most CF information you can get in one weekend and the best place to network with other CFers. I can't recommend it enough!

Mach-II Site #4 Goes Live

The fourth site I've done with Mach-II just went live. It's the revamp of the Girl Tech web site, and it will be managed both through a Mach II based interface as well as Macromedia Contribute. My skills with Mach-II get better with every project, and the more I use the framework, the more impressed I am with it. My next project is a multi-lingual site that will use Mach-II, so that should put a new wrinkle in things. I'll post any lessons learned/gotchas here!

BlueDragon Release Getting Closer ...

I haven't had time to post about this in a while, but the release of BlueDragon is getting nearer by the day. I was very happy with Beta 3, and although RC1 had a couple of issues that didn't exist in Beta 3, the folks at New Atlanta are VERY committed to making BlueDragon great. When the CIO personally e-mails and offers to call you and do a remote desktop session with you to figure out a bug you've discovered, that's what I call good customer support!

I've been porting a Java application that I sold to a couple of companies over to ColdFusion and Mach II and I decided this was a great oppotunity to put BlueDragon through its paces since Beta 3 added the support for CFCs that was required for Mach II to run. I've been building this applicaiton on a Mac since BlueDragon works very well on OS X, and other than a bug with defaulting CFCs string args to "" (this has been fixed in RC2 which should come out any day now), it's been running perf…

Bad Project Management

I just realized that with everything going on I haven't updated the blog in a LONG time, so I'll just do a rapid-fire list of what's been happening the last month or so. Lots of various contract gigs coming in, I'm finishing up class #7 on my MSCIS degree at the University of Phoenix (this puts me officially one class past the half-way point!), and next week I'm at i2 Planet, i2's annual supply chain software conference. Specifically concerning my outside gigs I've been doing lately, in combination with my project management course I'm finishing up, I thought this made for a good opportunity to discuss bad project management.

On the programming side of my world, I've actually been finishing up some "Classic ASP" projects, which annoys me to no end. I don't mind the extra work, but I really, really, really despise Classic ASP for a host of reasons. There's still demand out there for it and since it's all I did for a co…

BlueDragon 6.1 Beta 3

It's here! Today I got an e-mail from New Atlanta informing me that they had refreshed Beta 3 of BlueDragon, which as I posted here before is an alternative CFML server. It installed on Mac OS 10.3.2 without a hitch and Mach-II seems to run perfectly. Best of all, it's FREE for production use!
There are some differences of course between BlueDragon and Macromedia's ColdFusion, but from what I've read the differences are minimal. The new version even supports CFCs and XML, but before diving in head-first you're definitely going to want to check the CFML Compatibility Guide to make sure there aren't any specific features of your current or future applications that would cause problems.
The main thing I want to emphasize is that this can only be a good thing for ColdFusion as a language. Having multiple server implementations will make the language stronger in my opinion, and the other big point here is that New Atlanta's standard version of BlueDragon is…

Mach-II Page Comes Up Blank

Another quick tip--if you have a Mach-II site and all your pages come up blank but you don't see any errors, chances are your mappings for your views are bad. The issue of course is if Mach-II can't find the views, it can't display the exception view either. Another quick response from Mossie on the Mach-II forum. Thanks!
Just FYI, this is bug 28646 in the Macromedia bugbase and Ben Edwards and I will be figuring out a solution to this in due course (perhaps for Mach II 2.0 if we don't make another release between 1.0.10 and Q1 2005).
Posted by Sean Corfield @ 4/17/07 3:04 PM

BlueDragon 6.1

I'm VERY excited at the prospects for the next BlueDragon release. BlueDragon is a CFML engine that soon will be largely CFMX compatible, but it will run on the Mac and a production version is available FOR FREE!

Not only does this mean that I can potentially run a supported version of a CFML engine on the Mac, but we may very soon have an excellent alternative for the constant argument we all hear against CF: "Why would I use CF when ASP | .NET | PHP | JSP | Perl | etc. is free?" As CF programmers we all know that the small cost of CF server is a drop in the bucket compared to the huge benefits and savings on development time, but many companies look only at the price tag. I am keeping my fingers crossed that soon we can talk benefits AND price where needed.
The free-for-production version is supposed to be largely CFMX compatible. The only things missing are (again supposedly--nothing is definite yet) basically related to JSP/J2EE support and a more limited …

Mach-II Site Crossing

I just launched, my second Mach-II site for Radica Games, but after I moved the application from the test directory into the production directory, the Radica site and the Skannerz site started calling each other's "stuff," creating a big disaster.
Bottom line: make SURE you have "cache web server paths" turned OFF in the CF Administrator if you're running more than one Mach-II site on a server. Thanks to Mossie on the Mach-II Forum on for pointing this out as the likely culprit.
We run CFMX Enterprise on JRUN and I am not able to locate the "Cache Web Server Path" setting in my admin. Could you post which version of CFMX you are using and what section this setting is located within. Thank you, Ali Daniali
Posted by Ali Daniali @ 4/17/07 3:04 PM
Hi Ali--I'm poking around on a couple of servers and I don't see it on my J2EE installation of CFMX Enterprise either, so it must not be a setting you can mess…

Java Revisited

In quite an interesting turn of events this week, a Java application I wrote two years ago so impressed the company to which it was being presented that they want to buy it. Since this application also represented more or less the last line of Java code I've written before switching to a position where I do ColdFusion full time, I decided I better invest in the latest Java books and see what I need to do to update the application to modern Java standards. The results were actually an extremely pleasant surprise.

Java has changed quite a bit since I was last using it regularly, particularly in the arena of Java web application programming. Most notably is the addition of the the JSP Standard Tag Library (JSTL), which was designed in order to take a lot of common tasks that used to be a headache in JSP and encapsulate them into easy-to-use tags. (Sounding familiar?) I'm also pretty interested in the JSTL because you can now use Java tag libraries in ColdFusion, so I wa…

Further Clarification: Mach-II in a Shared Hosting Environment

A few more details came to light from a discussion on the Fusebox Forums, and thanks to Sean Corfield as usual for clarifying things.
To summarize, what the MACHII_APP_KEY variable does is sets the key in the Application scope struct that stores the data. In my case the issue I was seeing related to MACHII_APP_KEY was because I had installed the sample applications from the Mach-II site, and apparently others on my server had done the same thing, because unless I explicitly changed MACHII_APP_KEY to something other than the default (which just gets the path dynamically), it was apparently attempting to tap into someone else's key. Specifically I was seeing errors related to the application not being able to find MachII.framework.* CFCs, even though my copy of the Mach-II no longer has the default MachII.* calls anywhere in it.
The long and short of all of this is that in a shared environment you need to be careful about how you name your directories in your Mach-II appl…

Mach-II in Shared Hosting Environments

It was bound to happen sooner or later--my next side project with Mach-II is going to live in a shared hosting environment, so I decided to do some preliminary work getting things up and running before the project really gets rolling. Up until this point I've been doing Mach-II work for i2 on dedicated servers, so I haven't had to worry about how CFMX finds the CFCs.

I personally felt that my hosting account with HostMySite was a little limiting (no ability to create my own mappings, for example, although they're happy to do it for you), so since my account with them was coming up for renewal anyway, I decided to try CrystalTech since I'd heard so many other CF developers say they were happy with them.
Please note that I'm a big fan of HostMySite in general--they have great tech support and I will continue to heartily recommend them to clients; I personally just wanted to try something different and liked the idea that CrystalTech let me set up my own mappi…

Mach-II Presentation

Here's the presentation I gave at the Dallas-Fort Worth ColdFusion User Group meeting last night, in either Keynote or PowerPoint format. If you look it over and have any questions, please feel free to send me an e-mail.

Download this file

Two Mach-II Projects Down, Many To Go ...

After completing two relatively involved projects using the Mach-II Framework, I'm even more impressed with it than I was initially. Many, many of the old headaches that usually accompany large projects simply no longer exist in Mach-II projects, and maintenance is a breeze. I just had to add quite a bit of back-end administrator functionality to the Radica Games site and it went more quickly and more smoothly than practically any project I've worked on.
I also just completed a rebuild of the i2 Careers site in Mach-II. This eliminated an expensive outside contract (and I mean EXPENSIVE ...), and required a fair amount of functionality to be built in a short amount of time (what's new?), so it was probably a little ambitious of me to take this on as my second Mach-II project. I'm either brave or stupid depending who you ask, so I boldly charged ahead with it, and everything came together without a single hitch. This project probably had a fair amount of shifti…