Site Update...

Yes, I'm still alive!!! :-)

I've had to ditch my old site design, at least for the moment, to try to correct a problem with the site. Assuming the problem has been addressed now, I'll be looking to post more in the upcoming weeks. I've got a large backlog of things to share!

How I got started in ColdFusion... place holder...

I missed the "how I got started in ColdFusion" flurry on 8/1/2011. Unfortunately, I've got some personal issues to deal with right now that are taking up all of my free time, and that don't lend themselves to introspection. It's a long story, and I have talked about it on Facebook, Twitter and Google+. I don't mean to be cryptic. I just don't want to get into the whole story right now, but you can see the beginnings of it here:

There's more... but that can wait.

I will tell the story of how I got started in ColdFusion later in the month, once the dust (and mold) have settled.

I am a fanatic of The Event! Help us get a season 2!!!

If you follow my Twitter stream, you probably already know that I'm a big fan of The Event. In fact, I haven't been tweeting about much else these days. No, I haven't lost my marbles... in fact, things are good these days. However, I am near-fanatical about this show and I want people to know it!

I am tweeting about it a lot these days for one very, very important reason: It's very possible the show will be canceled at the end of the season, and I want to do whatever I can to make sure that doesn't happen!!! We should know in mid May its fate.

It's not a perfect show. It has some flaws. Some of the episodes seem like they could use another draft before they go to air. Since I sold a story to Star Trek: Deep Space Nine way back... wow, fifteen years ago (a story for another time)... I sometimes get the "I could have written a better episode than this" feeling. That's, in my case, a good sign, because I haven't had that feeling when I'm watching a show since Star Trek: TNG was on... and I was as much into that show as I am into The Event.

It's a roller coaster! It's pretty much a cross between 24, Lost, V, Flash Forward and The 4400 (from what I am told... I haven't caught up with that show yet). I was initially intrigued by its combination of action, suspense, science fiction and serialized storytelling that I was very excited when it was announced and was a fan, even before it started. Once it aired, it didn't disappoint, though I did understand some people that were a bit confused by the pilot and how it was told in a very non-linear way... not the best for a casual viewer that may not be fully paying attention. I'll save you from going into a long explanation of the story, as there are other websites that can give you detailed synopses of each episode, such as Wormhole Riders, but we pretty much now know what the Event is, and that it's coming soon (probably the season finale).

SPOILER ALERT!!! If you don't want to be spoiled, don't read on.

At this point (episode 1.17 - five more episodes left in the season), we pretty much know that "the event" is the mass arrival of 2.5 billion humanoid aliens that have superior technology, have infiltrated every level of society, and are hellbent on the "winnowing" mass-extinction of many or even most of the humans on this planet. These aliens, or as what was suggested in one episode "guardian angels", have visited Earth for thousands of years, and are now coming here to day. They want Earth for themselves. Their sun is starting to go supernova, and will be uninhabitable within the next year, so they have to move. We also know that Sean Walker is an outsider, but has been accepted by a tribe of "sentinels" who have also been around for thousands of years to protect us from the angels/aliens, and see him as humanity's best hope for survival. His girlfriend, Leila, at the start of the show, has discovered that she is half human, half alien, and that her father is one of them.

If you haven't gotten into the show, or gave up on it early on... I do suggest you try the two minute replays if you can't watch all of the episodes in their entirety. If you have Hulu Plus, you can watch all 17 episodes with your subscription. If not, the last five are available on Hulu and If you're outside of the US, I'm not sure what might be available. I know has episodes on its site for Canadian viewers, but I'm not sure about the rest of the world (please comment if you have info). I have seen download sites on the web... but I'm not condoning that. They are available for purchase on and ITunes, as well as the Zune marketplace and I'm sure other places and on demand for many cable systems.

Anyway... so why all the twittering, facebooking and whatnot? Well, the show hasn't done all that well in the ratings. It started strong, but with stiff competition in the schedule, a network that took the show off the air for three months and is having major problems throughout its schedule, and a big budget, the show is in jeopardy of cancellation, and it would be a tragedy if that were to happen. I'm not podcasting these days because my podcast studio has been disassembled, and it's difficult to do the show without it, and I'm pretty busy these days at the office, so I'm taking a break from any open source projects, but what I CAN do is help do what I can to help fans of the show be heard, get people watching the show when it's aired (especially if you're a Nielsen family!!!), talk about it to friends and get them into the show! What's more, I'm trying to do whatever I can do to help rally fans to get the word to NBC Universal to not cancel this show. WE WANT A SEASON 2!!! If it's removed from the NBC schedule, my hope is that they will move the show to one of its sister channels, such as Syfy or USA Network, or bring it back as a mid-season replacement. That might be a good alternative because the show suffered from pre-emptions and that long hiatus. Law & Order: LA, which also went through a long hiatus, has suffered a similar problem in the ratings since its return, and that, and lackluster ratings from the network in general, will help NBC give this show another season. Shows like 24, which has a lot in common with The Event, had a very similar lackluster season 1 but were strong in subsequent seasons, and I am hoping that will be a factor in bringing back the show.

To that end, I have set up a new blog & website at, where I will keep links, theories, episode info and whatever I can find about The Event. Check out my Other Websites page, where I have links to every website, Twitter account and Facebook page I can find devoted to the show. I have also created a new Twitter account devoted just to this site, called @TheEventFanatic. If you're interested in the show, I have moved most of my The Event specific activity to that account, though I still post some on my main @coofuushun account from time to time.

Also, I want to publicize another website that has been created to help fans of the show know what they can do to save the show. It's called There, you'll find things you can do to help this show.

Thanks for reading!

End of Another Era: Changes at the ColdFusion Helm

It was announced on Friday night that there are big changes taking place at the helm of the ColdFusion and ColdFusion Builder product teams. As part of the recent change where ColdFusion has been moved from the Platform business unit to the Print and Publishing business unit. Adam Lehman announced the news in this blog post. As part of this, their positions are moving to be a part of that business unit, and will be stationed in Bangalore, while Adam and Alison are moving on to other opportunities within Adobe.

Disclosure:  I got a briefing on this news before it was announced earlier on Friday. Though no longer an Adobe user group manager, Adobe Community Professional or Adobe Community Champion, I have joined the new ColdFusion Customer Advisory Board. As I understand it, they want criticism from the advisory board, and I intend on giving it where appropriate. I will speak my mind.

I consider Adam a friend, and without hesitation, I can say that Adam has done an awesome job as the Adobe ColdFusion and ColdFusion Builder product manager. His vision is something that's going to be difficult to replace. When Jason Delmore, Adam's predecessor, was laid off in the "great layoff of 2008", I thought Adam was the logical choice to succeed Jason. When I heard later that Adam was succeeding Jason, I knew ColdFusion was in good hands.

However, unlike when Adam took over, I can't help but be nervous over who Adam's successor will be. I will say, in retrospect, that it's not the first time that I have been nervous about who'd be steering the ColdFusion ship. I remember when Tim Buntel left Adobe, pre-ColdFusion 8, I was nervous then, too. After some time, it was announced that Jason Delmore would take over for Tim. I didn't know who Jason was, or how he would do in that role, but he turned out being a great product manager for ColdFusion. Things worked out well then, and I am hopeful they will work out well now.

That said, all three of these past product managers, Tim, Jason and Adam, had one thing in common: A passion for ColdFusion. No one can credibly argue that Adam Lehman is not passionate for ColdFusion. He's one of the most passionate people I know in the ColdFusion community. I think he ran ColdFusion like it was his baby, and as John Mason said on his post on the subject, I am sorry to see, like Jason before him, that Adam will not get a chance to manage ColdFusion through the "X" release.

As passionate as Adam is for Adobe ColdFusion, that passion has gotten him in trouble at times. A lot of people saw his opinions as severely biased, and I saw his words twisted, dissected, and watch him be ripped a new one, particularly by anti-ColdFusion/CFML and anti-Adobe ColdFusion types. I, personally, would be concerned if he WASN'T a self-admitted Adobe fanboi. I want to see that passion from the ColdFusion champion, at least privately.

While I have been impressed with the work done by the ColdFusion/ColdFusion Builder engineering team, in my dealings with them on prereleases and in my former ACP (and now CAB) capacity, none of them have ever seemed like they could represent ColdFusion well in a non-engineering capacity. I'm not trying to be critical of the team, but they each come from a Java background, from what I have seen, and not from a ColdFusion background. India has never seemed to be, from what I have seen, a market where ColdFusion is very popular. I'm not saying that there isn't someone in India that could take the product management over and do ColdFusion (and ColdFusion Builder) justice. I'm saying that this is a definite risk in this change.

I'm not exactly sure why the change is needed in the first place. Why is it necessary for the product manager and product marketing manager to be stationed in India, exactly? Is this a managerial preference? A cultural difference in business units? A cost cutting measure? I am sure this will be explained better, as to why this change is necessary, but it's not clear to me right now. I'm sure closeness to the engineering team has something to do with it, but it seemed like some spin control.

Here's a reason why this is risky: There have been issues with ColdFusion and Adobe support. I know Adam has addressed much of this during his tenure, but how is an India-based product manager going to be able to do the same? There is a 10 1/2 hour difference between Bangalore and New York City, and 7 1/2 difference between Bangalore and LA, so how much face time will someone based out of Bangalore have with someone in DC or NYC? Won't that hurt the product? The customer relationships?

For products like Captivate, RoboHelp and even Acrobat, it's probably not important where the team is located, because those are desktop applications, and the customers are users of those desktop applications. ColdFusion is a server product, and its customers are using ColdFusion to make other applications, and its users develop in its language. As such, the relationship between the product manager and its user community is very tight, and I have to think that putting the manager in Bangalore will have an adverse affect on those relationships.

Another reason why I am concerned about ColdFusion X has nothing to do with Adam leaving. Adam says in his post: "ColdFusion X (Link) will have a release cycle that's a bit longer than usual. Quite simply, we are working on some BIG features for ColdFusion X that just couldn't fit within our previous development timelines."

That sounds like we're going to have something incredible once we get ColdFusion X, but when will that be? What happens until then, and how will ColdFusion be affected by the longer release cycle? I want to see ColdFusion continue to evolve in the marketplace. In a rapidly changing marketplace, a long release could be fatal to ColdFusion. Unfortunately, while CF X is being developed, the competitors will be releasing, probably multiple releases, and these releases will take momentum away from Adobe ColdFusion and potentially make ColdFusion less relevant. I wish the big release could be bundled into one or more smaller releases, rather than one big release we have to wait a long time for. A similar release schedule was between MX and MX 7 was ColdFusion MX 6.1. I'd like to see a ColdFusion 9.1 before ColdFusion X. Then, there's also the risk of running into development problems, further delaying its release. I don't want to see version "X" become ColdFusion's Windows Vista, or worse, Duke Nukem Forever.

I think it's healthy to have concerns in this situation, and I do have some concerns over that and more. That said, here's the bottom line: Do *I* think this means anything negative for Adobe ColdFusion  as a viable product? It's often been said that opinions are like a-holes - that everyone's got one. I think this news will be viewed as something negative in places where the opinions and the a-holes intersect. :-) I expect many will use this news as an excuse to make another attempt to drown ColdFusion in a sea of dogmatic anti-CF diarrhea and give ColdFusion a good case of hemorrhoids. Personally, I feel like it's time for me to apply Preparation H and shrink the swelling, while giving those naysayers a healthy dose of Immodium. :-) ColdFusion is not going away, and seeing a bigger investment at a higher level is a good thing for ColdFusion.

I have concerns, and I think talking about those concerns will help to highlight them and help them get dealt with. That means speaking my mind, not staying quiet, as I have done here.

In fact, I have a lot to say, and have had for months now, and I finally have the time and wherewithal to say some of them. I hope I can get it all out.

UPDATE: In fact, there's one more point I want to bring up. Why announce this now??? I don't understand the timing of the announcement. Is there a reason to announce this now vs. after their replacements have been found? And why on a Friday night??? It seems to me that there's no rush in making this announcement, and, to my knowledge, no one outside of Adobe knew about the change until Friday, though I could be wrong. That's troubling. I would think some of their key customers would have some concerns over this decision.

End of an era: I've stepped down as an Adobe User Group Manager

It's been a long, long, long run... but it's time to end it.

At Tuesday's Cleveland CFUG meeting, I officially stepped down as an Adobe User Group manager. Dan Vega, my long time co-manager, has taken over the group. Mike Cooper, the AUG manager, has also decided to step down to spend more time with his family. Andrew Maurer, the Cleveland AUG co-manager, becomes the co-manager of a combined group. I will no longer serve in any official capacity within the group, though I will remain involved, advise, and contribute as time allows.


OO ColdFusion Presentation Today on ColdFusion Meetup!

This is a late post, but I wanted to mention that I'll be presenting my Common Sense Approach to Object Oriented ColdFusion, 2010 Edition presentation in a few hours to the ColdFusion Meetup, 12pm Eastern (UTC/GMT-4) today. This is a slightly refined version to the one I presented in April at the CFObjective conference.

Watch Live Here

After the presentation, you'll find the recording posted here. I'll update this post after the fact with the direct URL.

Also, I'll finally be making the code from the CFObjective/Meetup for public view for the first time following the presentation, as well as post it on RIAForge and Github. One of the sample applications is the most extensive LightFront example posted to date, so this presentation should also show you a little bit on the framework as well. In that sample, there's also an "old school" version, as well as an unfinished Mach-ii/ColdSpring version that I'll continue to work on (but there's enough there to show the stark differences between a typical OO CF application and a simpler OO LightFront one).

I'll also be releasing a new version of LightFront (0.4.5) today as well.

UPDATE: The recording of the presentation can be found here:

Note: It went a bit long... 1:53:02

The code I show and the slide deck in the presentation is available via Subversion here.

To download a zip file, which has the code, PDF and PowerPoint of the presentation all in one, just go here:

LightFront - New Video Series - Getting Started with LightFront

I am starting a new series of videos that will also be carried on the CFConversations feed for my new LightFront. This first video is a Getting Started. In just a few minutes, I'll leisurely set up a LightFront skeleton application, and I'll spend the rest of the video showing you the Model, View and Controller within the skeleton.

LightFront even gets easier than this! I'll save that for the next video!

Update: Some people are reporting issues seeing the entire screen on this video. If you are seeing the same thing, you can view the video here by opening up a window.

Click here to view the video

LightFront 0.4.4 has been released, and... my CFObjective talk...

I've FINALLY released LightFront version 0.4.4. With this version, despite the version number, I am officially deeming this version of LightFront production ready.

Why did it take so long? I've spent a number of months on building a LightFront application, and I had to get that application out the door before I could spend time updating the framework.

That is both a detriment and a blessing. Sean Corfield's FW/1 framework, which started out very similar to LightFront, has been developing a big following, and that just proves that the lightweight framework idea we both had at about the same time had something. However, there's been a lot of work going on with FW/1, and LightFront's been quiet.

It really hasn't been quiet, though. As I said, I've been out there, using LightFront, and I've figured out lots of ways to use the framework and learned ways to be more flexible. While doing that, I also discovered something rather important about Object Oriented ColdFusion that fits right into LightFront. I also figured out some of the potential pitfalls you could run into while using the framework that all revolve around trying to work around the simplicity and trying to be "too clever", trying to do too much. This really had nothing to do with LightFront, but instead dealt with my own pitfalls with the model - the OO.

I'm not going to go into it more right now... this is just a teaser!

As FW/1 has built a following, it's also started to diverge from the direction LightFront is going. Both frameworks are still quite similar, but I definitely do see big differences in how we deal with views, and LightFront's push towards greater flexibility, especially with existing applications, over opinionated software development. The philosophy's different. I've made a career being able to make things work that other people couldn't, or couldn't as easily, so my tendency is to figure out a way how to do something instead of saying that's not how you do something and leave it at that. Rather than giving an opinion, LightFront gives you a chance to form your own software opinions using the framework. That's not, in any way, a slam on FW/1 or trying to say that LightFront is better. It's just different.

Although it's production ready, the documentation and how-tos need a lot of work, and the meetup I did several months back could have been a lot better. My hope is that my schedule will continue to be light enough so I can start making some strides toward building the docs and making some screencasts, and doing another meetup or two.

There are a few people using LightFront, too, besides me. Unfortunately, they aren't bloggers, so you probably won't hear much out of them, at least for now. However, they are very enthusiastic about LightFront, just like I am, and see its potential.

I think LightFront's turning out to be the framework I wanted, but I've got to spend more time showing that to you.

To those who have asked, yes, I am doing a presentation on my Object Oriented ColdFusion talk on the meetup soon. Unfortunately, thanks to scheduling conflicts, it won't be until June. With that, there is a new sample app that has been written three ways: One that shows spaghetti code, one that's a Mach-ii/ColdSpring version, and one that's a LightFront version. I've got a little bit of cleanup left on that, now that 0.4.4 is out, and I'll post the code once it's cleaned up. However, here's that presentation:

Vote for me to speak/open mike podcast at CFUnited!

I'm hoping to do a CFConversations Open Mike at CFUnited this year... but I need your help to get on the schedule.

I'll be at CFUnited regardless (well, hopefully; I'm planning to be there), but I'd like to have a big audience for one of the podcasts.

You can vote for the open mike here:

I've sent in a total of four topics, including one on LightFront, that could all use your vote:

  1. CFConversations Open Mike
  2. Improving Website Performance in the Browser
  3. LightFront - The CFML Framework that you don't need to be a rocket scientist to use!
  4. Object Oriented CFML: 2010 Edition

RE: CFConversations - I probably won't get another podcast out until March, as I'm pretty swamped with work right now until the end of the month, but I've got a few episodes coming, including a few guest interviewers, and two that are already recorded. I have to hit it hard in March, as CF Hour() is about to lap CFConversations. :( I'm all about healthy competition. :)

Speaking at CFObjective 2010!!!

Following my friend, Dan Vega's post about speaking at cf.Objective() 2010, I, too, am announcing that I am speaking at cf.Objective() this year.

You may remember that my topic last year was "What to Do When OO Fails You in ColdFusion", something that was a bit of a controversial topic... or at least a controversial title. This year, you may be surprised that my topic is "The Common Sense Approach to Object Oriented ColdFusion, 2010 Edition".

Have I changed my tune? Nope, not really. I've just taken a look at the subject in a different way, and I'll talk about how many of the issues that were a problem in the past have been addressed or have workarounds in CF9, and try to explain it better than I did last year. Although a lot of people enjoyed my presentation (which I was going to do on a CFMeetup, but it never worked out), there were some negative comments that I wanted to address in a new version, that I also didn't get to do on the Meetup which I was going to call "Object Influenced ColdFusion". Anyway, it should be an interesting talk, and I hope if you are planning to attend, you'll make my presentation.

A lot of my talk will fall in nicely with Dan's talk, as I'll be talking about CF9 a lot in my talk.

I should point out that this is not scheduled to be the only session on what I like to call, "Pragmatic OO in ColdFusion". In fact, there is a similar session scheduled. Since that person hasn't announced his session yet, I'll hold off talking about it here, but we're going to work on making sure we don't repeat ourselves too much. We're looking at it the issues from different perspectives, such as issues vs. technique.

Change a comment in an SVN log (or fixing a malformed SVN log file after changing a comment)

This post falls into the category of "self-reminders".

Several months back, I ran into an issue with a corrupt Subversion log entry while trying to update the comments in a log. I found this post then on what the problem was, and how to fix it:

svn: malformed file recovery

Back up for a minute... Why corrupt? How would that happen in the first place?

OK... let's say you post a comment when doing a commit, and you realize after committing that your comment was pertaining to the wrong fix, or you didn't make a comment and needed to, or did but you left something off. You can try to do this through your SVN GUI or maybe command line, but I've seen times where that change didn't work. You try to go into the repository manually, and you find where the logs are located, you find the revision and comment, change it, and... voila! Corrupt! You do a sanity check and discover that manual edit was the cause of the corruption. So, now what?

Let's take you through just that. Learn from my mistake!

Simply put, finding the revision comment in the log is easy enough to fix, assuming you have access to where the repository is stored (as opposed to access to the repository). Just go into your actual repository. You should find a "db" folder, then a revprops folder, and then a 0 folder and finally a file for the revision you want to change. On Windows, you should have something like this:

C:\{where my repositories are stored}\{repo name}\db\revprops\0\{revision number}

Assuming your comment hasn't been changed yet (it won't matter below), open that file, and you'll find the comment at line 12 that you want to change and change it.

Thought that was easy? Nope, not quite. Save the file, and then try to browse your repository log. You should now get a malformed file error message. If you had this before, you're probably snickering, as you're no farther ahead.

Now, go back to that revision number file that contains the log comment. See line 11? That should say V, then a space, and finally a number. That number is significant. That represents the number of characters in line 12. Count the number of characters on line 12 and replace the number on line 11. Save the file and try browsing the log again... problem fixed.

I thought this mental reminder would help others as much or more as it'll help me!

CF8 Cumulative Hotfix 4 is out... and LightFront continues...

It's been a while since my last blog post, so I thought I'd kill two birds with one stone, so to speak, as this post has two subjects. I'm terrible about blogging! :) I figured I could get this one out quickly so here goes!

Subject #1: LightFront development continues...

My last posting was on LightFront back in October. Don't take that to mean nothing has been going on with LightFront... it just means I've been too busy these days to blog much! LightFront has received a lot of updates since that post, and I even did a presentation on it for the CFMeetup: That was back around version 0.4.0. I now have 0.4.3 in a branch, which is fully functional and feature complete (for 0.4.3, not for everything that will go into 1.0.0), but example 2 hasn't been brought up to speed yet. I hope to get to that in the next couple of weeks after I complete a project that's taking all of my bandwidth these days. 0.4.3 brings in full support for the model with the new initService() and initComponent() functions, as well as the new callAction() that will replace callEvent() in the next release, and loadAction(), which allows you to load an action into the request scope instead of outputting it directly. It's a great leap in the framework, despite the version sounding like it's a point release. If you've been using LightFront, make sure to start using callAction() instead of callEvent(), as callEvent() will be deprecated in 0.4.4 and removed in 0.5. This is in reaction to Joe Reinhart's comment in the previous blog entry, and I do agree that "event" portrays LightFront as an event-driven framework, which implies implicit invocation. There's nothing implicit about LightFront, and that's because you call your actions directly (explicit invocation). If you're looking at LightFront for the first time, use 0.4.3, which you can get at RIAForge (see link above).

Subject #2: A new CF 8 cumulative hotfix is out...

A mystery still present in the Adobe CF space is how word gets out on hotfixes and security updates, which don't always get the publicity they need to get them out into the public. Though I'm a registered CF8 user, I never get any emails from Adobe on these, and I wish that would change.

I got word of this one in, of all places, a Google alert. I thought I'd pass it on.

Adobe has just released cumulative hotfix #4 for ColdFusion 8.0.1. You can find more information about it here:

LightFront: The incredibly simple & approachable MVC Framework for ColdFusion

I'm finally blogging here about my new MVC framework, which I call LightFront. I first published it on RIAForge on August 31st, and I finally made the project publicly available on RIAForge on October 1st, with updates almost every day since.

I'm not at MAX this year (sorry no CFConversations episodes from MAX this year), and it's been a bit difficult for me to get out a podcast at the moment (a logistics/timing/personal issue... not worth discussing here, but I have two episodes almost out the door), so I thought it was time to post a blog entry about LightFront here.

First, here's where you can find it, and find out about it (beyond what I have said below):

LightFront is an MVC framework for ColdFusion. What, another one? Yes, another one. This one's a little different than the rest, although it's a close relative to one of them.

LightFront is short for Lightweight Front-controller. Unlike most of the CF frameworks out there, it uses only one CFC, and it's just a little bit above 200 lines, so it's straightforward enough most of you reading this with a CF background can look at the core and understand what's going on.

It's conventions based. If you follow conventions, you only have to set three settings in your Application.cfc. That said, there are some conventions that can easily be overridden with another setting. Need to put your views in the /includes/ folder (and subfolders) instead of the default /view/ folder? No problem - that's just an additional setting:

view plain print about
1lfs.viewDirectory = "/includes/";

There are some optional settings, too, but I'll get to that below.

Your controller is all defined in CFCs. You don't need an XML file. As previously stated, all of your settings are defined in your getSettingsForLightFront() function in Application.cfc as a structure. There are no additional XML files to config or define your events... do that in your CFCs.

That's if you use CFC-based controllers. The folder has to exist, but you don't need them to make LightFront work. LightFront has a unique feature. You can also use switch-based controllers, a la Fusebox 2 and 3. It can take a switch file from an old Fusebox app and it will work in LightFront. That's not to say LightFront is 100% Fusebox compatible, and I don't intend on making it that way, but I think we can offer an easier update path on old Fusebox 2/3 sites than even Fusebox/FuseNG can. It does make it a lot easier for a team who wants to move into CFC-based apps to gradually transition into that architecture while at the same time still maintain legacy Fusebox-ian style applications. There are a couple of additional settings to add if you have a Fuseboxian switch/circuit to add to LightFront, similar to how you define circuits in Fusebox, but it's very simple to do.

LightFront is also easy to make work with legacy applications that use no framework at all. Let's say you have an application that has index.cfm, aboutus.cfm, contactus.cfm at the root. No problem. Create a view/home mapping and point it to your root. then, you will be able to call /view/home/aboutus.cfm as displayView("home.aboutus") or displayView("home/aboutus").

That is a double benefit. Let's say you have a site which has a number of static or mostly static pages. You don't need a switch or a CFC controller if you follow simple conventions. If you want to call a static /view/home/aboutus.cfm directly as an event, no problem. As long as all home events are direct calls to view pages and don't use a home.cfc controller or a home switch file, you're fine. Your URL would be ?/do=home.aboutus. LightFront will automatically check for the existence of a home controller. If it doesn't find one, it will try to call /view/home/aboutus.cfm and it will display that as the event. This is also great for prototyping a site, too. You can also define pre-events and post-events, should you need to call events before and after each url called event (they only run once per request).

You can also map assignments from one event class to another (help.contactus goes to home.contactus), change event names (do) and delimiters (.), change naming conventions of the CFCs, and a few other things.

The closest currently supported framework that I know of in ColdFusion to LightFront is FW/1. In fact, Sean beat me to the punch to release FW/1 over LightFront by a few days. I had to go back and see if LightFront was worth it at all to complete, and stopped working on it for a few weeks. After a lot of reflection and some deep analysis of the two frameworks, I decided just before CFUnited that LightFront would continue. FW/1 is very similar, but it doesn't support legacy applications quite as easily as LightFront does, it's more conventions based than LightFront and less flexible in how you code (some would say "more opinionated"), and it ties into ColdSpring or Lightwire and the services layer. I intentionally decided not to do this. It's not that I disagree with using dependency injection/inversion of control or a simple bean factory, or in the idea of a services layer (all my apps have them). It was a conscious decision for LightFront to be a controller framework - nothing more and nothing less. The same can be said for ORMs - LightFront doesn't care whether you use them or not. It's up to you. LightFront only cares about being the controller. In fact, FW/1 and LightFront have so much in common that I could see them merging at some point if that's what people want, or they could travel separate paths. I'm open to either possibility.

Where I see LightFront going depends on what developers that use the framework want. As the first developer to use the framework :-), my thought is if people want what the big frameworks have, those things would go in via a plug-in architecture. Perhaps that would continue to be in the controller folder, or a plugins folder... I don't know. That said, it's fairly simple to build a controller CFC that functions like a filter or add a controller CFC that handles caching, and building those things directly into the framework adds greater complexity to the framework - something I am dead set against. I want to keep LightFront approachable, easy to learn and easy to use.

In fact, one of my goals in making LightFront was to make a simple framework for people to use. I wanted something that didn't require a CS degree or 10 years of CF experience to understand. LightFront should be a framework you can teach any developer the basics in 30 minutes or less you have to learn three functions:

  • callEvent()
  • displayView()
  • relocate()

That, and a few helpful settings changes, are all a developer needs to know.

If you can keep things simple enough for a junior developer to both be productive AND build good code, LightFront will succeed in its main objective.

Anyway, I hope you take a look at the framework, join the Google group and help shape the new framework. And now, back to CFConversations!

Want a stripped down Eclipse? A 64-bit Eclipse? Get it here...

Since I was first introduced to Eclipse about 3 1/2 years ago (via CFEclipse), I've had a love/hate relationship with it.

I've loved the power it gives you, particularly in most of CFEclipse (though it's also but I've found myself going back to other IDEs and editors. I've always found Eclipse to be slow, bloated and often buggy. Mind you, those are often the fault of the plugins I use, but that's always been a sore spot.

Eclipse just is a pig. Well, that's what I thought, but I'll get back to that in a minute.

I never know... WHICH version of Eclipse should I run? I've tried the J2EE version, but that's the biggest one, and as a CF developer, installs a lot of plugins that I don't use, and although some of those I may use or use occasionally, many of those plugins I'll never use. The Java version in the past gave me problems, but that was a couple of versions back. I've thought of running the PHP version, but... I don't use PHP much, so that's not a great match. Classic? Yeah, but that installs all the source code, and I don't see myself in the immediate future needing that. I've tried the newer interactive builds like YOXOS, Pulse and I even tried MyEclipse once (trial). I've tried standalones of Flex Builder (now Flash Builder), and now ColdFusion Builder. I thought maybe CFBuilder would be the ticket - but... well, it's a beta, and even that's not been the best experience.

I have wanted a stripped down Eclipse - one that had only the plugins that I installed, and nothing more. I've looked, but hadn't found it.

Recently, I've been running a Vista 64-bit edition, and have just converted my laptop (as of last night) to Windows 7 64-bit to take advantage of all the RAM I could throw at it. Strangely, I searched, but could only find a 64-bit for Linux. Surely, I thought, there HAD to be a Windows 64-bit.

That's where these two journeys meet each other.

Thanks to a reply on a list that I belong to (thanks, Andrew), I've found both (for Galileo - Version 3.5 - the latest at the time of writing) here:

YES, there IS a Windows 64-bit version of Eclipse. It doesn't seem to exist as a package, but it definitely exists. Mac lovers? There's a 64-bit OSX version, too.

The category for the one that's stripped down, with no extra extensions is called: Platform Runtime Binary. You'll find that about half way down the page.

Now, that said, you'll have to download and install the plugins you want... but that's just it... install Eclipse as small as you need to, and don't add stuff you don't need. In previous versions of Eclipse, this would have been a major pain, but Galileo will include the dependencies you need.

Anyway, it was a MAJOR find when I found both the 64-bit Windows Eclipse AND the stripped down Eclipse all in one! I thought I should share it... since it took ME so long to find it.

Kudos to Andrew Scott for the tip that helped me solve two problems at once!

UPDATE 1: Get the latest downloads here:

That page will always have a link to latest and greatest. For example, the June 11th build is linked today, but when 3.5.1 comes out, and newer releases as they come out, you'll find the links here. You'll also find early Eclipse 3.6 builds as well as the 3.4 (Ganymede) builds.

UPDATE 2: Eclipse 3.5.1 came out late last week so the latest and greatest can be found at:

(I'll update this post with more links later, if you need them...)

Having problems installing a new instance of ColdFusion 8 or 9 on J2EE with JRun?

Like many of you, I have been testing out CF9, and I ran into a problem that I thought I'd share that's not CF9 at all, but... well, here it goes.

I usually install my CF locally as a J2EE install, as that gives me compatibility with back at the office and more flexibility (my long overdue multiple instance blog post will have to wait, but this is related).

I need to keep running and supporting ColdFusion 8.0.1, so rather than messy double installs, I installed CF9 as an EAR file. Initially, I had some successes, but when I had to uninstall everything and start from scratch on an unrelated issue that I won't get into here, I couldn't install CF9 as an instance. It kept failing on deletion of folders, like this example:

There was a problem Message: The specified directory attribute V:\JRun4\servers\cfusion\SERVER-INF\temp\cfusion-war-tmp\{UUID here}\cfusion.ear\cfusion.war\WEB-INF\cfusion\temp_zip cannot be deleted. Detail: You may not have permissions to delete this directory. The exception occurred during a cfdirectory action="delete".

It was not a permissions issue. I bumped up CF8 to run as an Admin on the notebook. Same result. It also wasn't CF9. Although I hadn't replicated it before, I since replicated it twice on a CF8 EAR file.

I will backtrack to say this is on an HP laptop, running XP SP3 with an effective 3GB RAM from 4GB (after running Physical Address Extension).

After reporting the issue to Adobe, and trying many variations on the install, a couple of guys from the CF development team asked me to turn off my Antivirus - eTrustITM - to see if it would work. I wanted to go further, so I turned off: Firewall (XP standard security), eTrustITM antivirus AND PestPatrol, and try installing until I could find a culprit.

Turning on each of them and not the other two resulted in good installs for each. That told me it wasn't one of them, but a combination of two or more of them was the problem.

It was the combination of eTrustITM - antivirus, AND PestPatrol that caused the problem. Turning those two on and leaving the firewall off caused the failure again.

Anyway, I bid you a cautionary tale - if you try running a similar J2EE JRun install and try to make a new instance... beware that you should turn off both antivirus and anti-spyware program before doing so. I hope it helps someone out there. And thanks to the Adobe team who were able to steer me in the right direction!

An SVN Server Commit Gotcha... Why can't I commit? Check case sensitivity!

My friend Dan Vega has become a blogging machine lately, and he keeps telling me that I need to blog some of the many pearls of wisdom I've collected. This one's bit me now twice, so it's time to blog it.

I have been doing a lot of work in recent months with Subversion, setting up two Subversion servers in different environments, both on Windows.

I ran into several issues setting up one of those servers. There is a TON of content I have on that - I could probably teach a course of setting up Subversion on a Windows server at this point... but I do suck at blogging, specifically finishing a blog post before it goes stale... so I'll keep my posts short and let out what I've learned as I have time (not often, including now!).

With that, here is my first Subversion blog post of what I think will be many to come... Even though you might set up Subversion on a Windows server, beware of case sensitivity. Yes, that's right... it's case sensitive.

In one of the installations I've recently completed, we're using the SVN server as a service rather than Apache. Why is the subject of a future blog entry, so let's keep that out of it for this one.

When you point to a repo that uses the SVN server and you have commit rights on the repository, make sure you use the correct URL and that includes case.

In other words, if your repository is called ProjectX, and you point to:


You will have no trouble grabbing updates to your working copy, but when you commit, it will fail, and you'll get a notification like so:

8/23/2009 - 12:21:04 AM
Command              : Commit
Error                : Commit failed (details follow):
Error                : Authorization failed
Finished!            : 
1 kBytes transferred in 0 minute(s) and 13 second(s)

The correct URL would be:


To change the URL, you have to relocate the working copy to the correct URL. Your Subversion client will object, warning that you may corrupt your working copy. Ignore the warnings, and proceed. Once you have relocated the working copy, you should have no trouble performing a commit to the Subversion repository.

A colleague of mine had this occur about a month and a half ago, just after that Subversion server was set up. Tonight... I had the same issue, though it took me a while to realize what I had my colleague change the first time. It was my first commit to this repository in some time, so I hadn't noticed my error until now.

If you are using Apache, you won't be able to update or commit, so it becomes pretty obvious when you first try to set up your working copy that you entered the wrong URL. The SVN server is a little more subtle, and it won't become obvious until you try to commit.

As they say, fool me once, shame on you... but I was fooled twice, and I should have remembered this one a lot sooner than I did tonight! :-) I hope this helps someone out there.

About to leave for CFUnited

I am about to leave for CFUnited... I just wanted to just send out a quick post.

It's been a while since I've released a CFConversations episode, just due to me being insanely busy on a bunch of things. There hasn't been any time for a podcast, but I'll be trying to get some out this week, including ones recorded at the conference.

I'll be hosting a day 1 open mike round table podcast scheduled for 5:30 on Wednesday, and CFConversations will be situated in the Legolas room throughout the conference, interviewing and podcasting away. Anyone who's at the conference can attend the open mike session, to listen and/or participate, and I'll be looking to schedule interviews throughout the conference.

That's all I have time for right now, but for more, see here:

The ColdFusion and Flex Tours come to Cleveland this Wednesday!

On Wednesday, June 17th, join us for what will be the biggest Adobe user group event in Cleveland history! All of the official Adobe groups: The Cleveland ColdFusion User Group, the Cleveland Flex User Group, the Cleveland Adobe User Group and the Cleveland InDesign User Group join forces for this big, big, BIG... SOOOOO BIGGG event that you'll want to be there!

The ColdFusion 9 and Flex 4 tours are here! Adam Lehman of Adobe, who was featured on CFConversations this week, will be our speaker for this event.

If you're in or near the Cleveland area, join us! It's at 6pm, and at the offices of:

Dealer Tire, LLC 3711 Chester Avenue Cleveland, OH 44114

There will be food, beverages, and prizes, along with swag!

If you are planning to attend, it's imperative that you RSVP on the Cleveland CFUG website.

If you're not in the area, check out your user group website for more information about a tour date in your area.

The new me at cf.Objective()

A lot of people have asked me to upload a pic, and thanks to O?uz Demirkap?, I've got one:

UPDATE: I forgot to say that on my last weigh-in on Wednesday (at the gym located in the hotel), I weighed a super unofficial 279.8 lbs. That makes my current weight loss total at 98.7 lbs!

UPDATE 2: I am back from cf.Objective, and weighed in today (5/17) at 278 lbs. That means I have now lost over 100 pounds! 100.5, to be exact. Here's another pic:

At cf.Objective(), and I'm no longer CF_Heavy...

I arrived in Minneapolis this afternoon, and am waiting for the fun to begin for CFObjective. My presentation is on Friday, What to Do When OO Fails You in ColdFusion. It should be interesting, and I'm looking forward to presenting it.

If you are reading this on my Blog, you'll see that I've finally got the last couple of kinks out of the new design, and I've just uploaded it. I found the Notepad theme at Skinpress. I made several mods to it, including the background from the main column is completely different, a few font differences and many of the icons are different as well.

Weight loss update: As of last Sunday, I have lost a total of 94 pounds since June, and 51 of that since the surgery on 2/27. I'm probably down even more as I write this, but until I get on the scale, I won't know for sure.

With that, I am retiring the CF_Heavy name of this blog. I may STILL be heavy, although a lot less heavy, and you will see that those days will soon be over. It no longer seems appropriate, and I will discard that just like I have the clothes that used to fit me only a few months ago that are now WAY too big.

UPDATE: I've finally uploaded a pic, which you can see here.

More Entries