The Dopefly Tech Blog

Join Nathan Strutz as he shoots the breeze on techie geeky web dev stuff.


AZCFUG - Dates moved again - now it's November 6!

posted under category: General on November 1, 2006 at 1:00 am by MrNate

The October AZCFUG meeting is now on Monday, November 6th. We had a booking problem with the Tempe UAT main presentation room.

The subject is still regular expressions, the presenter is still yours truly, and the CFUG is still giving away our last copy of ColdFusion MX 7 Professional (or it's monetary weight in Adobe software!). It looks like we may be be raffling tickets to drum up revenue (still waiting for that corporate sponsorship), so bring a few bucks to make sure you get into the drawing.

If you're in Arizona and want to learn (or better your knowledge of) regular expressions, this is your chance. If you like nearly free Adobe software, show up and buy a lot of raffle tickets. If you want to get ahead, make connections, etc., show up and hang out! See ya there!


The browser wars are back!

posted under category: Browsers on October 23, 2006 at 1:00 am by MrNate

This weekend I installed IE7 at home, and it's good. A lot better. I'm really happy to see the better CSS support, tabs, the RSS integration and the same quickness that IE6 had. The standards support alone makes me want to install it everywhere and tell people to upgrade.

Today, I installed Firefox 2 (unofficially released). I've got to say, they're doing a lot more to make me happy. Things like google suggest in the search bar, spell checking (even while I type this), and RSS enhancements (yes, I've sold out to Google reader) are just so polished and sweet.

The way I see it, Microsoft had to seriously catch up after years of stalled work on the IE front, and they've done a great job. However, Mozilla has been busy making things easy and bringing out the little things that just bring a smile to my face.

I'm Really glad to see this battle continue. For me, so far, I'm keeping with Firefox.


Phoenix CFUG, Nov 1 - Regular Expressions *Updated Dates

posted under category: ColdFusion on October 17, 2006 at 1:00 am by MrNate

This month (late by a week, so next month) for the AZCFUG, I will be doing an intro to regular expressions, taking you from the very easy stuff to the hard stuff, and explaining everything along the way. If you come, expect to learn! Then, expect to hang out, as we hit up Aunt Chilada's for some drinks. Our group manager, Alan Rother, is making sure we have handouts for everyone. You will take something away from this presentation, be it my charming wit, a regular expression cheat sheet, or maybe, just maybe, something bigger (more in a bit).

Some of the questions we'll be answering are:

What are regular expressions?
Where would I use them?
How do I validate a form with them?
How can they speed up my development?
Why would I, and how do I backreference?
What is lookaround?
On a scale of 1-10, how much better do regular expressioins make the world?

Last, (this is the part you're waiting for) Alan mentioned that because this is probably the last AZCFUG of the year, we're giving a copy of ColdFusion MX 7 Standard Edition. That's free, folks, a $1,300 value. You just have to be present and be luckier than the rest of the crowd to win.

Mark it on your calendars, Wednesday, November 1st, 2006 - Nathan Strutz on Regular Expressions at the UAT in Tempe, AZ.

* I asked Alan about moving it to Nov. 1, and that should work. He just needs to check with the UAT, but that should be easy.


Is it time to sell out to Google?

posted under category: General on October 11, 2006 at 1:00 am by MrNate

I don't mean for my daily searching. I mean for all of my typical work (minus programming). Exactly how wrong is it to completely sell out?

Today, Google released Google Docs, which basically googlized Writely and strengthened their link to Google Spreadsheets. I've been using both for a while, for personal, portable docs, and you can tell that things are really starting to get exciting. Without expending too much brainpower, anyone can see where they're going.

Google Docs and Google Spreadsheets are the cornerstone of their office offering. Combine that with GMail and Google Calendar, whose integration with each other is becoming completely awesome, and you've got 90% of the typical use for most office suites.

Of course, no one's office is the same as any others. Some of them offer presentation software, some drawing software, some note taking, most have basic web site tools. Open Office has a mathematical equasion tool. Microsoft has a diagaraming app and a project management app. Corel has a photo editor. KDE's KOffice has all of this, plus dedicated charting and reporting tools. Google has mapping and searching built in.

I think that Google's office is almost completely viable in this space. What's missing? What's coming next? Other than the possibility of a new tool here or there, I'd say it's obvious what's next. Packaging. Google Office Suite is coming soon. It's already so close. They only need a central launching point for their tools. I can see many opportunities for central launching points, such as the google personalized homepage, gmail, search results pages, etc. The google talk desktop app would be my personal favorite.

Very soon now we'll start seeing "Web 2.0"-style companies switching to Google as their central document repository and dealing with customers and clients through the Google Office.

Next step? The Google Hosted Office Solution! Stay tuned...


Work with Fusebox? Get your opinions in for the Eclipse plugin!

posted under category: Fusebox on October 9, 2006 at 1:00 am by MrNate

If you work with Fusebox and would like to have an Eclipse plugin that helps you out in your development, Mark Drew is asking for your help on dreaming up features for a new version of his Fusebox Eclipse plugin. Leave a comment on Mark's blog with your wish list of what you think a Fusebox IDE can do.


IE layout problems fixed

posted under category: Standards on October 4, 2006 at 1:00 am by MrNate

If you saw this site in the last couple days with IE6, you saw the box model problem they always talk about. I liberally use padding in my stylesheets. Padding, of course, is the space between the border of an area and the content within that area. When you specify a width and a padding size, you are supposed to subtract the width of that padding (on each side), and your margins and borders to get the size of your area. However, IE6 doesn't really abide by this law.

It's a fairly simple fix, thankfully.

div#content {
padding:0 25px;
html>body div#content {

The more specific html>body rule overrides the cascading width for browsers who know how to obey rules.


My -cheap- HTPC project: budget is spiraling

posted under category: General on October 2, 2006 at 1:00 am by MrNate

So I had this grand idea a few months ago, to build a home theater PC. You know, a DVR/PVR to record TV, and if it doesn't record, I can have it hit the torrents and download the episodes, have skype running as our long-distance phone, hold my 20+ GB of music and play it whenever I want, let my kids use it to play disney/pbskids/nickjr sites and other kids games, and download video podcasts. The best part was this was only going to cost a couple hundred bucks, thanks to a Fry's GQ cheap PC ($200), a simple memory upgrade ($40) and MythTV on Linux ($0).

Well, here's my story so far...

(more on this subject) (9 comments)

I told you I would do it...

posted under category: General on October 1, 2006 at 1:00 am by MrNate

Thanks to Bryan and Michael of the ColdFusion Podcast and their 2 minute dissertation on the ownership of this blog (which was really funny), I have redesigned Dopefly to include my name in much more obvious places, and increased the font and layout sizes enough for it to be visible from space.

That wasn't the only reason. I was looking for a way to get more horizontal space in here as well, and was getting bored of the old dusty feel. I think I still have some problems. Alanda's tablet makes the background look "puke pink," and there's a display problem with IE (isn't there always) on the top nav.

Overall, I would call this a great success for CSS and included display (header & footer) files. This whole change wasn't more than a handful of hours.

Please comment if anyone has other display issues with the site. Complaints about it being too wide are valid, as are color scheme gripes and so on. Thanks all.


Firefox Extensions I Use

posted under category: Browsers on September 28, 2006 at 1:00 am by MrNate

I'm a huge Firefox fan, by the way. Here's a rundown of all the extensions I use at work for my day-to-day work. The reason for posting this is actually to be a reference for my co-workers, who never can remember the name of "that one cool extension Nate had".

  • DOM Inspector - Install firefox in advanced mode to get this
  • Adblock - Essential for any browsing. I don't block everything, just the annoying ones. Innocent and helpful ads (google) or ads on sites I like always get to stay.
  • HTML Validator - Leave it off when you're not using it, as it can slow you down. Shows you live when pages validate and when you view source, why they don't.
  • ColorZilla - Perfect for grabbing colors. SO nice to have when working on HTML & CSS.
  • MeasureIT - Good for troubleshooting broken float and table designs. I wish it would remember boxes inbetween uses and allow changing box sizes after you draw it.
  • IE Tab - See what you're looking at in IE without searching for the blue -e- shortcut that you've probably deleted. Caveat: won't log you in if you're in a password-protected area.
  • BugMeNot - Skip logins for sites that you don't care about. New version automatically keeps trying until it finds a login that works.
  • Tabbrowser Preferences - Not sure if I still need this since Firefox 1.5, but it tweaks the tabs to work just the way I like.
Lots more after the jump...

(more on this subject) (1 comment)

Thoughts on calling ColdFusion from the command line

posted under category: ColdFusion on September 18, 2006 at 1:00 am by MrNate

One of my favorite bloggers, Sean Corfield, wrote that he wanted to see a way to invoke ColdFusion from the command line. A day or so later, Ashwin Mathew wrote how to do just that using cURL. It basically just hits your CFC path using the url invoking syntax (?method=myFunction&arg1=abc).

This doesn't really satisfy me.

It forces you to expose CFCs in your webroot, forces you to have them access=remote, and has the potential to force network access, especially if your site is using host headers or if you are accessing it via a public domain name.

It seems to me, a cleaner way to do this would be to invoke your cfc via an event gateway, and, because there is no command-line event gateway type (yet), I'm thinking a socket gateway may just be the way to go. Think about it, it's local, won't require network or dns access, connects directly and can send/receive feedback inline. Of course, telneting to it is cumbersome, so a simple jar or script that you could call seems logical. Depending on the implementation, you could even allow it access to any cfc or cfm on the system. Calling syntax would be something like:

java -jar CFCLISocket.jar com.mysite.myapp.myobject.mymethod(abc)

Simplify that through a shell script or batch file to make your life easier.

The Java behind it would make a socket connection to on a specified port and send the code you want to evaluate as a string to the event listener.

A slightly cleaner way to do this would have to be through a custom gateway specifically written for command-line invoking. It would execute the same, but the jar to invoke would be even easier to write (and potentially safer).

The best imaginable way would still have to be real actual support written into the CF server. I imagine this would be like php, where you can execute a php page straight from the CLI. Nice feature, steal it!

Of course, all of this is theoretical. Big help, I know, for those of you out there looking for an immediate solution.


Interactive Sites is hiring!

posted under category: General on September 15, 2006 at 1:00 am by MrNate

Interactive Sites, my employer, is hiring ColdFusion developers. We have at least a couple positions open, possibly more. We have a lot of exciting new projects coming up and are quickly finding ourselves in need of more CF programmers. If you live in the Phoenix area, or anywhere in the US, and want to check out what we have to offer, drop your resume into the form here:

As a quick summary of what it's like working here over the past year, I can say what's cool. Snacks and beverages are provided (anything you want), it's a very casual environment and you can wear what you like. We typically have music playing in the main area, monthly birthday parties, Christmas decoration competitions. The engineering dept goes to lunch together most days (for those that want to eat out, so it's not everybody most of the time), and that really builds friendships and teamwork. We have intellectual conversations about practically anything, my favorites are subjects like the USB RAID array, making millions of dollars with simple web apps, finding new ways to automate everything and replacing our former employees with shell scripts.

If you like the programming scene, love playing with CF, making web sites, and coming up with new ways to solve new problems, send us your resume!

If you write CF in a dull environment and are bored or underpaid, you owe it to yourself to see what it's like here.

If you live in Alaska (like I did), or anywhere cold, wet or humid, you should really think about this opening.

PS, Here's the official opening.


It's at the bottom...

posted under category: General on August 29, 2006 at 1:00 am by MrNate

A comment on this week's ColdFusion Weekly vaguely mentions my blog's lack of an about pod. Well, Matt, Peter, my about pod is at the bottom of this blog's main page. Also, on the bottom right, just below the sand dune, or whatever that is, is my name.

Actually, I was just happy to hear my project mentioned. Thanks guys, I love the show.

Incidentally, I got a mention of my Reactor reverse-engineering disaster scenario project on The Coldfusion Podcast. It's just cool to be known, sort of like cheers. They didn't use my name either, though, so I'm starting to get the hint.

Now you've got me planning on a design update for Dopefly. Stay tuned, folks.

PS, Strutz is pronounced like "struts." ;o)


Flash Cookies (literally)

posted under category: General on August 24, 2006 at 1:00 am by MrNate

Happy birthday, Flash. 10 years already. Here's a picture I snapped from my Nokia before I scarfed this little puppy down.

Flash Cookie
Speaking of little puppies, our little beagle puppy, Zorro, is back living with us after a few years off. It feels sort of like the cosby show.

(1 comment)

The Router Restart App

posted under category: Free Code For You on August 24, 2006 at 1:00 am by MrNate

My wireless router, a Netgear WGR614v5 with 802.11g (for Alanda's tablet), has a problem now and then getting disconnected from the Motorola cable modem. She mentioned this yesterday, so I decided to do something about it. We were outside, so I put SharpDevelop on her tablet and made a little app that checks to see if the network connection is up, and if not, do a ip release/renew on the router.

If you don't know SharpDevelop, it's an open source visual studio for .NET programming. I wrote the tool in c# and it should run if you have .NET 2.0 installed. Feel free to download my code - chances are good that it won't match your network configuration, but it should be a good starting point, especially if you have a similar router.

The result in making this is that my lovely wife doesn't have to reboot the router by hand anymore, now she can just double-click on this little utility.

Sometimes programming really pays off in those small ways that make you feel good.

Click here to download my router restarter source and program, no warranty, no license.


New Project: WinInfo for CF

posted under category: Free Code For You on August 24, 2006 at 1:00 am by MrNate

Here's something I've been kicking around for a few weeks. I know this won't work for everyone, but bear with me.

Wouldn't it be nice if you could get to windows information from ColdFusion that you normally wouldn't easily be able to get from Java? Things like the disk space available, the count of, and even the names of all the folders and files beneathe a given folder? Well, I'm not sure that I thought so either, but nevertheless, I made a tool to let me do just that.

WinInfo is a hybrid .NET 2.0 c# command-line application, executed from a CFC. Download WinInfo pre-alpha 1 to see what I mean (it's fast and stable, but the name calls may change, and I'll probably add more). Just change the winInfoExePath to the executable in the CFC and you should be in business.

If anyone actually finds this genuinely useful, leave a comment and let me know that I should spend more time on this project. If anyone has ideas of what needs to be added (like network diagnostics, etc.), again, leave a comment. Thanks.


How to rebuild a destroyed database with Reactor

posted under category: Free Code For You on August 13, 2006 at 1:00 am by MrNate

If your shared development database server happens to have a permenant multiple drive failure like ours did on Friday, and if the project you're working on hadn't been added to the backups yet, and if you're smart enough to be using Reactor to manage your database abstraction and/or be your ORM service of choice, you just may be in luck!

One of the great things about Reactor is it creates metadata objects on all the tables it touches. The typical appliation for this feature is usually code generation, like scaffolding and such. Easy, cross-platform database information is really useful, especially in open-source software where you don't know what the target platform will be.

Now, the first thing you should do in a disaster situation like I described, as soon as you realize you're screwed, back up your reactor files, specifically those in the reactor projects file. In fact, just back up the whole reactor folder because those files are version-specific.

Next, change your reactor.xml file to be in production mode. Production mode will keep it from attempting to introspect your database. If it can't find the table, it will throw an error, so let's switch the mode. While you're in there, make sure you point to the correct dsn - if the existing server is still down, make a new DSN on an empty database and point the reactor.xml file to it.

Finally, you'll need to build a tool to loop through the tables Reactor knows about and write the create table scripts. Here, you can have mine (it works with sql server 2000 +. Feel free to modify it, then buy, sell or trade it for goods on the open market. It's better than gold, in a pinch. Just don't hold me accountable if anything bad happens.

(1 comment)

Quick Fusebox 5 lexicons for ColdSpring and Reactor

posted under category: Fusebox on August 11, 2006 at 1:00 am by MrNate

With a little time on a spare project (or spare time on a little project? it's 2:am), I hammered out some really quickie basic lexicon tags for Coldspring and Reactor.

Download my quick ColdSpring lexicon
Consists of an instantiate tag (call in your appinit), and a get tag (call from anywhere). Hers's a quick sample:

<circuit xmlns:cs="coldspring/">
<cs:initialize beanDefinitionFile="#expandPath('/config/ColdSpring.xml')#"/>
<cs:get bean="GenericCollection" returnvariable="variables.myCollection"/>

Download my quick Reactor lexicon
Consists of an initialize tag and a tags to do all the basic functions. Here's a quick sample:

<circuit xmlns:reactor="reactor/">
<reactor:initialize configuration="#expandPath('/config/Reactor.xml')#"/>
<reactor:record alias="User" returnvariable="variables.userRecord" />
<reactor:gateway alias="User" returnvariable="variables.userGateway" />

I realize they're fairly one-dimensional, not really working together in any way, but they're nice shortcut tags and a good starting place that I hope will help others.

UPDATE: 8/14/06 1:p - Qasim Rasheed, who knows a fair amount more about ColdSpring than I, made an update to the ColdSpring tags. I have updated the zip file, so feel free to download again. Now it supports multiple factories and sending the default properties on creation.


That was quick: cfthread and cfjoin tags

posted under category: ColdFusion on July 21, 2006 at 1:00 am by MrNate

Today on Damon Cooper's Blog, you can read about the new tags from the CF engineering master Rupesh Kumar that give you simple, easy and effective threading control straight from CF. No more messing with event gateways, trying to execute applications from the file system or make 0-second http requests back to CF, now you can do it inline.

What's amazing is New Atlanta just announced these tags for the upcomming Blue Dragon 7.0 a little over a week ago at CFUnited.

Yeah, maybe it's blatantly ripping it off, but the tags are not from Adobe, they're just Rupesh's side project because he thought it was cool. Personally I hope they do make it back into the core of CFMX 8. It's a great idea whose time has come, and I'm glad someone thought of it.


Installing Ubuntu is very, very fun

posted under category: General on July 11, 2006 at 1:00 am by MrNate

So I installed Ubuntu last night onto my newish $150 PC. The plan is to make the cheapest DVR possible. I've been planning this for a while and haven't been motivated until just recently.

Anyways, the Ubuntu installation process. First off, if you put the CD in on Windows, it will tell you about Ubuntu and allow you to install some of the Windows open source software it carries on the disk - things like Firefox and OpenOffice. That's nice.

Once you boot from the CD, it loads Linux, just like a Linux live CD. It gives you the full Gnome shell, applications and games you can run and so on, with an icon on the desktop labeled "Install." Double click and it starts the easiest install process I have ever witnessed, plus all the while, you can play solitaire or surf the web while the installation finishes up in the background.

If you follow down my path, check out Automatix to get you a good head-start on the software you need.

Now as soon as I figure out my video drivers and install MythTV, I'll be set.


Eclipse Callisto out now!

posted under category: General on June 30, 2006 at 1:00 am by MrNate

For those of you who use Eclipse (which should be everyone by now, for one reason or another), The Eclipse Callisto project is out!

Callisto is the simultaneous release of 10 major Eclipse projects, including the Eclipse Platform 3.2 (required for the latest beta of CFEclipse) and Java Development Tools, The Eclipse Web Tools Platform (HTML, Javascript, CSS, XML and more), the Data Tools Platform (making Eclipse a strong database developer tool) and a whole lot more.

Download it now at the Eclipse Callisto Page.

p.s., Digg my story, then add me as a friend :)


When is Eclipse 3.2 Coming Out?

posted under category: CFEclipse on June 17, 2006 at 1:00 am by MrNate

June 30th is the projected date. But it's not just the new version of Eclipse.

The Eclipse 3.2 release is part of something bigger, the Eclipse Callisto simultaneous release project (more info).

On, or near, June 30th, the Eclipse Foundation will be releasing almost all of their projects at the same time. This is why, if you haven't noticed, Eclipse 3.2 has been stuck on RC7 for two weeks.

RC7, by the way, is usually 99.99% of the final release, so feel free to get it so you can test out the latest CFEclipse nightly build, and the Callisto RC4 projects at the same time.


Fusebox 5 Beta 2

posted under category: ColdFusion on June 15, 2006 at 1:00 am by MrNate

Still within 24 hours of CFWheels and Model-Glue betas comes the Fusebox 5 beta 2. I do a fair amount of Fusebox 4.1 work, so I am personally vested in this framework.

Of interest in this version is the new CFC calling syntax, a new <appinit> tag, and new, hopefully not too confusing, modes (development, production, development-full-load, development-circuit-load), plus a strong handful of bug fixes, general updates and performance improvements.

Now, if we could just get new a beta of Mach-II before the end of my work day today, that would pretty much round everything out, wouldn't it?


Model Glue 2 - First Public Beta

posted under category: ColdFusion on June 15, 2006 at 1:00 am by MrNate

Joe Rinehart just released the first Model-Glue 2 public beta. I think I had to subconsciously shut down part of my brain to cope with the video he released a couple days ago. Amazing. I have been waiting on this release for a long time, and I can't wait to start playing with it. Thanks, Joe!

So, as we all go into framework sugar-shock in the coming weeks, probably leading into the CFUnited conference, prepare to be overwhelmed. I will make sure to post my experiences here, and I hope you all have that special place of your own.

One word of warning though, the download is over 10MB, and over 30MB when decompressed. One has to wonder, so let's take a quick look. As a quick reminder, Model-Glue 2 includes everything you loved from the first one, plus ColdSpring, plus Reactor, plus new features like scaffolding. Each framework has a hefty amount of documentation and sample projects. Over 3600 files in over 300 folders. And most of that is due to Reactor, specifically the Reactor documentation. Looks like there's a few files too many, which is probably just a full export from the Reactor SVN server. I won't complain about too much documentation.


CF on Wheels 0.5 Released

posted under category: ColdFusion on June 14, 2006 at 1:00 am by MrNate

Rob Cameron just released CFWheels 0.5. Take a look at it, it's really coming together. I knew it was coming eventually, and now here it is: Rob has put in some Ruby on Rails style scaffolding. That's a lot of work, good job, man! Fascinatingly, the whole thing really looks similar to CFoW's older cousin, RoR, but the instant-admin thing makes it 10 times easier and nicer.

One thing that really strikes me is that his documentation is the best I've ever seen for a CF framework. Screencasts, pdf downloads (read the "Building your first app"one), and an online help file. Others could really learn from this. (don't point at me - hey, if anybody gets me a copy of Captivate or Camtasia, I'd love to do them for everybody :)

Another thing Rob is pimpin' is called Hadron. It's like yum or apt-get on linux systems, but for CF. It keeps your frameworks and other 3rd party packages up to date. Interesting stuff, though I can't say I'd love to use it without a gui.


The AZCFUG CF Coding Contest (Last Night)

posted under category: ColdFusion on May 25, 2006 at 1:00 am by MrNate

The week-long AZCFUG coding contest ended last night. It didn't create a lot of buzz, so we just had 3 submissions. They were: an AJAX chat client, an employment listing, and, well, mine.

I went kind of overboard. I rewrote the site using Fusebox 5, Coldspring and Reactor. I fixed a couple security issues and made some admin tools for managing content.

In the end, Sean won on points (judged on UI, coding style and usefulness), but, the nice guy he is, conceeded, saying "I would just feel bad if I beat Nate". They added an effort column to my scoresheet and multiplied by 100. So, long story short, I won! The prize? The Adobe Web Bundle.

I put a heck of a lot of work into the site, but it went quickly. About 16 hours (my wife will say otherwise). You can see it here, and make sure to try out the admin area (i've disabled the admin security). You can play with the content and email template editors, it's ok.

Thanks everybody for voting for me! You're too kind! I reeeeeally wanted to win :) Thanks!!

(more on this subject) (1 comment)

Searching for javascript frameworks, day 2

posted under category: General on May 11, 2006 at 1:00 am by MrNate

I've had a lot of good responses from yesterday's question about Javascript frameworks, and the search continues. Here's what I'm still considering:

Prototype is popular, more than I thought, especally with Scriptaculous. Sounds like a winning combo, but it can be a big download.

The new Adobe Spry seems quite cool, very promising, and, since I'm still choosing, would be an awesome thing to get into at the ground floor (it was released yesterday). One negative is that Spry is an "AJAX Framework," not necessarily javascript and not big on effects, but those Flex-style layouts are just great.

MooFX got big props, from the few people who use it. It requires their "prototype lite", which sounds like a cool deal and a smaller download. Looking at the samples, the syntax doesn't seem as obvious as Scriptaculous.


Choosing a javascript framework

posted under category: General on May 10, 2006 at 1:00 am by MrNate

I've been thinking about choosing a javascript framework for a few weeks now, and, having no experience using any, so I was hoping for suggestions.

Frameworks on my radar are Prototype, Dojo, Scriptaculous, MochiKit, and I've briefly hit up the frameworks page on the Ajax Patterns wiki, but have become pretty completely overwhelmed.

Does anyone actually use OSS JS Frameworks? For all of my projects, so far, I have always built my own from scratch, but I'd love to build on the work that a lot of others have already put in.


Add Mark Drew to the list of CF podcasters

posted under category: ColdFusion on May 2, 2006 at 1:00 am by MrNate

You may remember Mark Drew as the lead developer from the CFEclipse project. Well, he's probably one of the busiest CF developers out there, as he's just started a video podcast, pefect for your 5g iPod (ok, perfect for mine), or just for you to watch in iTunes. His first episode is his presentation on Model-Glue and Reactor.

Clicking around the CFEclipse site, I also noticed, very under the radar, Rob Rohan has got his own podcast rolling out. Not necessarily so CF related though.

Ok, so we've got Mike Kruger with his occasional CF Muse, Hal and Jeff with Out Loud, Bryan and Michael with the every-other-week Coldfusion Podcast, Matt and Peter with the Coldfusion Weekly, then Mark and Rob with their own podcasts.

Ok, I have too much to listen to, and these are just the CF related ones. This doesn't include any other java and dotnet programming podcasts, lost podcasts, general tech and video game podcasts, and half of these are video feeds. I'm really enjoying this.

(1 comment)

Fusebox + Model-Glue = ?

posted under category: ColdFusion on April 26, 2006 at 1:00 am by MrNate

Sean Corfield mentioned this entry from his blog on the Fusebox 5 dev mailing list. I had read over the entry the other day when he posted it, but I'm still only grasping the relevance of it.

Putting the extensible in XML, it almost looks like Sean is calling Model-Glue THROUGH Fusebox5. Now, how exactly does that work? Ahh, it's the beauty of those lexicons - they're more than meets the eye, apparently.


The ColdFusion Reactor - If you don't know about it, pay attention!

posted under category: ColdFusion on April 21, 2006 at 1:00 am by MrNate

There's been some buzz around the community, but it's still on the down-low. It's an open source project that's getting people excited. It's Reactor, by Doug Hughes. Reactor is an ORM framework (Object Relational Mapper), meaning it transcodes your relational database into objects for you to use in your CF programming. Or, to state it another way, IT WRITES YOUR SQL CODE FOR YOU. (How can I be more clear?)

What? Oh that sounds like auto-generated code - Run for the hills! No, Reactor is different. It's better. The objects it writes let you do what you want with them, and its XSLT code generation gives you even greater control. Furthermore, it takes advantage of best practices for data access layers. While the internals may seem complicated, the API is simple and robust. Most developers will be able to pick it up in a few minutes.

Using it is simple. Describe the data relations you want to use in the Reactor xml config file using the very obvious hasOne and hasMany tags, instantiate the ReactorFactory object and ask it to create your gateway, objects, and so on. Save() this, delete() that, all in a day's work for Reactor.

One thing I'm starting to see is people using Reactor as the entire model layer of their MVC applications. In a large-scale app, it probably can't be your entire model layer, but it can do most of the work.

Doug is an absolutely fantastic coder, and he's doing a seriously great job on this. Really, truly, very, good. Thank you Doug!

Intrigued? Your next step should be to download Reactor, or check out the source (svn://, go through the samples and docs, then read Brian Rinaldi's great getting started guide. After that, join the mailing list, get involved, talk about it with your homies.

(more on this subject) (2 comments)

Visual Studio express editions are free forever

posted under category: dotnet on April 20, 2006 at 1:00 am by MrNate

Microsoft's Visual Studio Express editions are now free forever. Previously, they were free for a year.

Apparently, Microsoft is going after the amateur developer community. This is good news on a couple levels for us. First, because SQL Server Express is a great tool, and can be deployed on a site for free. I'm having trouble finding the license or limitations for it, but it's my understanding that it has a 4GB size limit and a 1 CPU usage limit, and is missing a couple other features. Otherwise, it's still SQL Server 2005, which is pretty popular with the CF community. - BTW, they also just launched a lighter and free-er version of their SQL manager tools.

The second great reason, something I've been a proponent of, is it's a great opportunity to learn a new programming language, and a new web application framework and structure. I say this over and over, but I really mean it. It was learning VBScript (with ASP classic) that transformed me from an ok CF coder into a great CF coder (btw - I came from the HTML jockey side, so CF was an obviously perfect choice for me).

Anyways, I'm not advocating ditching CF for .NET. It's really not worth it. But it is cool to be able to write a couple desktop apps here and there, and learning more puts more tools in your toolbox.

(1 comment)

Use the Java regular expression engine in ColdFusion

posted under category: ColdFusion on April 7, 2006 at 1:00 am by MrNate

This is somewhat old news, but I've been using it lately, and figured I'd put a little reminder out here. Whenever you are trying to create a regular expression in ColdFusion and are having trouble with it, or if you're trying to use an advanced feature that just doesn't work (like lookbehind), remember that there IS a solution.

Here's a hint. Remember, CF is Java! Here's how to exploit the wonders of java.lang.String:

<cfset str = "This is my string!">
#str.matches("^.+$")#, displays YES
#str.replaceAll("\W","")#, displays Thisismystring
<cfdump var="#str.split("\W")#"/>, dumps an array of words

Everything you can do with a String can be found a the Java 1.4.2 API docs. (1.4.2 and not 1.5 because CFMX 6 & 7 support does not currently extend past 1.4.2)

Don't know enough about regular expressions? Learn more from the ColdFusion LiveDocs "Using Regular Expressions" pages, and also from


Using Eclipse working sets to increase your productivity

posted under category: CFEclipse on March 31, 2006 at 1:00 am by MrNate

I mentioned working sets on my Zero To Hero presentation, but here's a googlable rundown of this amazing feature that ships with Eclipse. Thanks to Rob W for asking about it on the Eclipse Users list.

How will it make me more productive?
There are a few great advantages of using the working set feature. Mental organization for one. Like, if I say, "I want to work on the security feature of my site." Well if I make a set for everything that interacts with my security, I can select the set and go straight to work with all the relevant files in view.

The other great use for working sets is the searching. [ctrl] + h brings up the (extended) search window. Right at the bottom you can select a working set to search in. This is great if you want to search a number of projects at once but not others, or if you want to search certain ungrouped subfolders.

How do you make a working set?
In the navigator view (the common one with all your projects), click the down arrow on the top right corner. The top option should be "select working set." A box will pop up and show you a list of your sets (currently empty).

Click on the "New..." button and make a Resource working set - resource means physical files & folders. Give it a name on the next screen and select the projects / folders / files you wan to include in this set. When you're finished, you can select that working set from the list window. If you hit cancel, it won't save your set!

When you hit ok, your navigator will switch to viewing your chosen working set. Hit the down arrow again to deselect your set and go back to the normal navigator view.


Eclipse WTP bonus feature - Web Services Explorer

posted under category: CFEclipse on March 27, 2006 at 1:00 am by MrNate

Something I just found today and felt the need to share with everyone, it's the web services explorer tool that comes with the Eclipse WTP. Wow, I've been looking for one of these (well, many others exist, but this is great, it's built into my favorite IDE, and it's free).

So, how do you get to it? Go to the Run menu and hit "Launch the Web Services Explorer." This runs a JSP container on a random local port. Make use of the icons on the top right (I will mostly be using the WSDL page).

It's weird that I spend most of my days in this program and I'm still finding cool, new stuff. Plus some people look at me like an expert. In reality, I'm figuring this all out as I go, just like you.


How the CF community should engineer a scaffolding replacement

posted under category: General on March 17, 2006 at 1:00 am by MrNate

This is me scratching down some notes for my theoretical scaffolding project, a mechanism that takes a database model and turns it into a set of forms and records pages.

We need to pre-generate forms give the flexibility to modify. Forms dynamically created on request would not be so easily customizable.

Do we marry the scaffolding framework to an ORM such as Reactor, or do we have it create the necessary DAOs itself? In the effort of not duplicating any work that has already been done, and to not render any pre-installed data access layer useless. Our project should have tie-ins to the various ORM frameworks and require that one exists. It should, however be possible to extend the framework to use any custom data model layers, and to force it to manually map to a cfc/function. To summarize - this tool is not a SQL generator - there are plenty of those elsewhere.

[Reading Fields]
Where does the data come from? If we are going to force the use of an ORM like Reactor or ARF, we may be able to read metadata out of those objects. It would be safer than reading it out of the database, in case the ORM uses aliases to certain tables. Creating autowiring to all of the major ORMs has a huge possible headache factor.

The product should ship with a few templates, Flash forms, plain CFForms, plain HTML forms, etc, a few of each. Each template should probably contain named field templates. The idea here is the rendered template is as close to a form that you actually want to use as possible. The less modifying on the end-result, the better.

Furthermore, the item list page should have a few templates to choose from to complete the round-trip process. Again, we should include a few with the framework.

More after the jump...

(more on this subject) (8 comments)

Scaffolding: a true wow factor device

posted under category: ColdFusion on March 16, 2006 at 1:00 am by MrNate

I've been thinking about frameworks a lot lately, if you couldn't tell. Something that really struck a nerve in my original post, for me, was Ruby on Rails' Scaffolding. The idea is pretty simple. In 1 line of code, a developer can spit out a form page that simply and easily matches up with a database table. It creates, in the background, an entire CRUD application, just like that.

I would venture to say that this is the driving force for RoR. It's popular because it greatly eases the prototyping phase, and gets developers a good start on creating their real web site. Scaffolding is why people say "wow" when they look at Ruby.

Now let's talk ColdFusion. We have got, pretty well, everything short of this one scaffolding area, at least as far as the public domain open source framework community. Why is that?

There are a few answers. For starters, we're afraid of scaffolding. We have it in our heads that we build enterprise applications, and scaffolding (as well as automated data abstraction layers, some frameworks, etc) take the enterprise performance and stability away from us. Maybe it will. Maybe we won't trust the code it can create.

Another reason is just simply that no one has done it right yet. Either it hasn't been open source, or it just looked and felt wrong or unusable, or it couldn't be customized right, or whatever. Nobody has done it right. Not yet. Any attempts have been and killed off for lack of interest.

I suppose this is where my call to action would sit, so without further ado... It's time, ladies and gents, to embrace automatic form and site generation, though in an obviously more CF way. We can do it better. We can put the Rapid back in RAD.

So, 2 things to ponder... how do we do it, and what do we call it?

More on this subject later.


Rethinking the State of Frameworks

posted under category: ColdFusion on March 15, 2006 at 1:00 am by MrNate

A couple of responses to my recent entry about the state of OOP in CF:

Ryan Guill had a good response about the need for us to become better programmers before we marry ourselves to any frameworks, which is a valid point. The comments further his point that we don't want people working on frameworks unless those people know why they are doing it. This is always a valid question: what problem are you trying to solve by using a framework? The same principal works for design patterns, language and development platform choices, development tools and so on.

Sean Corfield has some great input about some of my points. The all-in-one framework one, in particular, he says is just a bad idea. Truthfully, I can see it both ways.

There's a lot of frameworks, and we shouldn't discourage the use of any that do their jobs well. Saying that one is the only one to use would discourage others in thinking for themselves and making informed choices.

On the other hand, how many conversations have we had in the last year on various lists about "which framework should I use?" It would be nice to solve this for once. I personally know developers who don't choose to use one because it's not clear when and where to use which framework. Sometimes even I fall into this category. Something as simple as a chart that lays out the frameworks, where they all fit in and how to tie them together would be so, so useful. I've got an idea for this, I'll keep you posted.

I concede that there is no one-size-fits-all framework, but there are a lot of folks out there still scratching their heads.

I'll continue on this subject later - thanks, everyone for your feedback, both in comments and in blogs. I'm enjoying the discussion!


The State of Object Oriented Programming in ColdFusion

posted under category: ColdFusion on March 13, 2006 at 1:00 am by MrNate

We are nearing the end of the basic adapting phase
CFMX is 4 years old. Most developers have upgraded, at least to 6.0. It should be noted that CFMX 6.1 (a free upgrade from 6.0) should be the required minimum for true OOP in CF. Most developers working on 6.0+ have created or used at least one CFC (ColdFusion Component, CF's basic object type), for one reason or another.

We are deep into the learning phase
More developers are wrapping their heads around Objects. We're all starting to wake up to this programming model, but it's still new to us. We lack a truly definitive "do it this way" OOP discussions have, largely, turned from "who cares" or "why oo" into "How". The "Why" questions are now learning opportunities, such as "Why should I do it your way," and "why do you do it that way."

We can't get out of this phase until we have enough training material out there, and until the community, at large, reads it and begins to really think in objects. There's a chance we'll never get out of this phase. Thinking back to my first CF training class, there may be no way to truly graduate this phase, although Java has done a remarkable job - new developers expect the learning curve, while most new CF developers don't know exactly what they're getting into.

Lots more after the jump...

(more on this subject) (12 comments)

So happy with stuff I find on

posted under category: General on March 6, 2006 at 1:00 am by MrNate

Anytime I need some kind of utility, I know can find it at I know I can't be the only one with this experience, but you've got to agree, there's just no equal. And the level of quality on some of the projects hosted there is just astounding.

Today I needed an FTP to local file synching tool. I could build it myself over the next 4 hours, or use someone elses (that probably will work better), so I found a few, all under $40, but I'm cheap. Then it hit me, duh, sourceforge. So, one quick search nets me FullSync, a very simple app that does one thing, and does it good. Works like a charm.

Of course it's not the first time. How could I forget the day I stumbled upon CDEX, FileZilla, Azureusor WinMerge? I bet I've got 50 of these stories.

The open source community in general are some of the nicest folks I know of in the whole world. Thanks open-sourcers. You're the best!

(1 comment)

CFEclipse, Zero To Hero now on Google Videos

posted under category: CFEclipse on March 1, 2006 at 1:00 am by MrNate

Just a quick note to say that my rebroadcast presentation screencast is available on google videos, under a quick video search for CFEclipse.

Another good resource I found was a slew of CFE related videos on YouTube. Enjoy!


CFEclipse presentation online

posted under category: CFEclipse on February 28, 2006 at 1:00 am by MrNate

Updated! Please try the mirror, as the bandwidth in the office here is really hurting!

Watch the flash presentation online Thanks to NeedAEngine, where you go when you need an engine. (also, wmv medium download, wmv low download)

Click to start the screencast: Zero to Hero in 60 minutes - the presentation so good, it takes 75 minutes to watch.

No promises on the audio, I know it started out ok, but seems to kinda waver near the middle. Then I spilled a huge glass of water on my keyboard... anyway, this is the redo from the CFUG meeting last week for all of those who couldn't attend in person, or were out of town/mind/etc.

Downloadable Versions (right-click to download)
Direct link flash (97mb)
WMV Medium Quality (57MB)
WMV Low Quality (16MB)


CFEclipse, Zero To Hero: Please Wait...

posted under category: CFEclipse on February 27, 2006 at 1:00 am by MrNate

I know a lot of people are waiting on the re-recorded CFEclipse talk I had the other day, and I'm sorry to keep you waiting. I know, I know, I promised last Thursday. I just forgot my USB drive at home today, so it won't be up at least until this evening.

I should have 2 downloads. one a 97MB flash movie, and one a 15MB extremely low quality WMV movie. I'll keep experimenting with Camtasia to see if I can make it a little more comfortable to you folks, and make one Quicktime download as well.


Could have been better...

posted under category: CFEclipse on February 23, 2006 at 1:00 am by MrNate

Thanks to all who showed up to the meeting tonight, in person and virtually. We had some technical difficulties, to say the least :(

For starters, our room was booked up, so we got sent upstairs into an awkward room, out of the way. Then, we had some bandwidth issues. Maybe it was all saturated by the folks who were using our usual conference room. The audio & video were kind of sporadic, we lost a few minutes in the middle, then it completely quit near the end. Finally, I suck at using Breeze, but it was my first time.

On the positive side, we'll be rerecording it, probably tomorrow (Thursday), this time without the technical distractions. I hope all of you got at least something good out of it. Stay tuned for the snippets and links I promised.


Zero to Hero, Links from the presentation

posted under category: CFEclipse on February 23, 2006 at 1:00 am by MrNate

Here are the promised links to all of the various plugins I talked about or showed off during my presentation.

Web Tools Platform

Fusebox Plugin


XPath Explorer web site


Spikefu Filesystem Plugin


Fusebox 3 for CFE




Microsoft JDBC Drivr Download
jTDS alternative JDBC driver:

Flex Builder

(1 comment)

My CFEclipse Snippets

posted under category: CFEclipse on February 23, 2006 at 1:00 am by MrNate

The coolest thing that I demo'd for CFEclipse last night was probably the snippets. These things can be killer if you know how to use them. They are a serious WOW feature. So, without further ado:

Nathan's CFEclipse Snippets

Download them, unzip them, and put them in your snippets folder. The default location is in your workspace plugins CFEclipse folder. As an example, here's where mine is:

C:\Documents and Settings\Nathan\workspace\.metadata\.plugins\com.rohanclan.cfml\snippets\

Watch out for that file, it keeps the key shortcuts. If you already have one, just merge mine into yours when you copy the folders, it's just a simple text file.

Most of my snippets have a shortcut key. Follow them by [ctrl]+[shift]+[period] (on windows, sorry, don't know the mac combo) to insert the snippet. Here's some of my favorites:

fun = cffunction tags
arg = cfargument
q = cfquery
r = cfreturn
d = cfdump
a = cfabort
p = cfparam
getset = getter and setter functions
todo = a todo comment

Provide feedback in the comments!


Coming tonight? Important downloads...

posted under category: CFEclipse on February 22, 2006 at 1:00 am by MrNate

I put this up on the CFUG list, but not everybody reads that...

John (our CFUG manager) had a good thought this morning. If you're planning on coming to my CFUG presentation tonight and you plan on setting up CFEclipse along with me, you'll want to download Eclipse before we get there. The UAT's bandwidth is notoriously flaky, usually slow, so do yourself and all of us a favor by downloading the Eclipse SDK to your notebooks early.

It's incredibly simple to do. Just click the large text in the middle of the page, "Download now: Eclipse SDK 3.1.2". It's about 103 MB.
The fastest way is actually to hit the torrents, right next to that link, there's really good ratios there.

Also, make sure you have Java. I recommend installing the latest JDK (, but it will work if you already have a 1.4 version (*cough* but 1.5 is faster *cough*).

One last thing, to really tax your bandwidth, download the WTP all-in-one package. This one is not required, but I recommend it. Here's how you get it, go to, click the 1.0 link, and find the all-in-one SDK. The all-in-one is a huge time saver, but it's 183 MB. If you already have Eclipse running, you can add the update address to your install manager, instructions here:
If you can't, for any reason, download all of these, don't sweat it, we're planning on burning it all to a CD that we'll share with anyone who needs it.

If you're not installing along with us, again, don't sweat it, I promise it will still be educational and entertaining (edutational?), and won't be all about downloading and installing the entire internet.

(1 comment)

CFEclipse, Zero to Hero in 60 Minutes - Watch it Live

posted under category: CFEclipse on February 22, 2006 at 1:00 am by MrNate

Here's more popularity than I expected. If you're part of the CF Online Meetup Group, you can RSVP and show up for my presentation remotely via Breeze. Sorry for the short notice, but this is kinda surprising.

This is actually a huge surprise to me. I came back from lunch to have my coworkers tell me that tonight had just become way more popular. Those Adobe guys do talk to each other, and now, through a couple of back channels, it's going to be out there for all of you to see.

Naturally, we'll be recording it, so if you miss it tonight, you can watch it tomorrow. You can look here, or on the meetup group web site for the link to the recorded breezo.

One more thing, the WST all-in-one I mentioned in my last post, apparently it includes ALL of the Eclipse SDK and the WST. This means, you only need to download that 185MB file (and Java) to be ready for tonight.


This week, come see CFEclipse at the AZCFUG!

posted under category: CFEclipse on February 20, 2006 at 1:00 am by MrNate

I'm presenting CFEclipse to the AZ CFUG this Wednesday, Feb 22! Please come, show up, attend, and be present for my first CFUG presentation ever!

What will we be talking about? The original title is CFEclipse Tips & Tricks, but I think, really, it will be more like CFEclipse: Zero to Hero in 60 Minutes. I'll start with the most basic parts of Eclipse, show you how to get everything set up and then get into all the cool stuff you may have been hearing about. We'll be testing out the cutting (and sometimes bleeding) edge release of CFEclipse and cover all the plugins you need to turn Eclipse into the best tool for almost any job. We'll talk about how it compares to HomeSite+ (and CF Studio), and Dreamweaver, what it's better at and what it's worse at.

What should I bring? Bring questions and frustrations you may have had, and we'll talk about them and try to sort things out. Feel free to bring your notebook (if you have one) and set up your own Eclipse environment along with me.

What will I get? A very strong grasp on the Eclipse platform, and how you, as a developer, can leverage it. You also may win some prizes, there's always a giveaway for neat schwag like Macromedia/Adobe branded t-shirts, pens, mice, etc., or some quality reading material.

Where Is It?
University of Advancing Tech
2625 W Baseline Rd, Tempe, AZ - google map

I hope to see every CF developer in the valley there. Bring your friends!

(5 comments) : Write a how-to, be famous

posted under category: CFEclipse on February 16, 2006 at 1:00 am by MrNate

Surfing around this morning reminds me of the CFEclipse User Docs page, which is supposed to be full of how-to's written by you, the CFEclipse user. I'll lay the blame directly at myself for not getting you guys involved earlier.

So, now, I'd like to open up the CFEclipse How-To's section to the community. If you can think of an article to write, please write one! There's only 1 sample up there now, and there's no real format. You can include screenshots and pictures, and talk about any Eclipse or CFEclipse related tips or topics you can think of.

Here's the rundown:

  • Has to be Eclipse or CFEclipse related
  • Has to be helpful (aka, how to open a file from a project = not useful, how to open a file from windows explorer = useful)
  • Has to be more than a sentence or two. If it's less, I may put it on a small collected tips page
  • Will include your name and a link to your web site or another site you want linked
  • Send your documents to me, using my contact form, directly to one of my many email addresses (with _nospam_'s removed), or send it to one of the CFEclipse mailing lists, (users list, contributors list)
  • Submit early, submit often, we need your help!

Ok, honestly, there's not a big gain for you, I was thinking of giving away free copies of CFEclipse, but come on, it's open source.

This is a standing offer, and you can keep submitting articles until you're old and gray.

PS, by submitting, you are allowing the CFEclipse crew to fix spelling, grammar and inaccuracies if functionality changes.


10 reasons why I don't blog more

posted under category: General on January 20, 2006 at 1:00 am by MrNate

10. Getting tired of my blog admin - I made the app myself, and cheaped out on administrative features, now I don't really want to use it
9. Long list of important things, and blogging is about #18
8. Holidays and family keeping me busy
7. Already blogged almost everything for Fusebox and CFEclipse I could think of
6. The only thing I want to blog about is a certain company who fired my wife for Christmas, but they appear to not like their name out in the open and have angry lawyers
5. Busy at work, JB is killing me - I enjoy it and all, but I'm busy
4. It's more fun writing my new blog software than using the old
3. It's more fun writing software than blogging, and I've been playing in c# (if you hadn't noticed)
2. 2 hours of commuting every day, taking time away from the wife & kids - awake time goes to mostly to them
1. Call of Duty 2 (pc version)


1st Page 2006 released. Pigs sprouting wings.

posted under category: General on January 20, 2006 at 1:00 am by MrNate

6 years and no releases, and finally Eversoft releases 1st Page 2006. It's the same, free HTML editor it's always been, just newer with a lot of cool stuff.

Take a look at the features list on this one. Specifically the CSS and cross-browser help it gives you. Yep, it looks mighty familiar. Ladies and gentlemen, it's nearly a free version of Dreamweaver. It's got scripting support for all our favorite languages, and looks like even some tools lost in transition from HomeSIte.

Of course I'm not switching from my much loved Eclipse, but I do plan on giving this a shot, I could use a free HomeSite/CF Studio replacement in my tool library, couldn't you?

Nathan is a co-manager for the Phoenix CFUG (AZCFUG) and a ColdFusion application developer for an aerospace company in the Phoenix East valley (Mesa). Aside from doing ColdFusion applications, Nathan enjoys playing with servers, hacking with a variety of other programming languages and managing his home theater PC. Nathan got his programming start writing batch files in DOS.
This blog is also available as an RSS 2.0 feed. Click your heels together and click here to email Nathan.