The Dopefly Tech Blog

« The Dopefly Tech Blog Main page

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

posted under category: General on November 1, 2006 by Nathan

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!

(Discuss with Disqus!)

The browser wars are back!

posted under category: Browsers on October 23, 2006 by Nathan

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.

(Discuss with Disqus!)

Phoenix CFUG, Nov 1 - Regular Expressions *Updated Dates

posted under category: ColdFusion on October 17, 2006 by Nathan

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.

(Discuss with Disqus!)

Is it time to sell out to Google?

posted under category: General on October 11, 2006 by Nathan

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...

(Discuss with Disqus!)

IE layout problems fixed

posted under category: Standards on October 4, 2006 by Nathan

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.

(Discuss with Disqus!)

My -cheap- HTPC project: budget is spiraling

posted under category: General on October 2, 2006 by Nathan

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...

The GQ PC has an AMD "Geode" processor. Yeah, I hadn't heard of it either, but it's for low-power, low-heat applications, so it's fine. 1.4 GHz or so. I tried out the Linspire Linux OS that came standard, and let me tell you, Linspire is garbage - I installed Ubuntu (dapper). I had a simple TV card ($40) that I thought would work, and I would use that 1.4 GHz to compress TV to MPEG on-the-fly. Well, it turns out, there are no linux drivers. Ok, so I buy a Hauppague 150 card, with a remote ($90). The S-Video connector on the 150 is only video-in, so I buy a cheap nVidia card ($50) to get video out because I know it's well supported on Linux.

Now I try to install MythTV. The Debian library for Dapper only has MythTV 0.18, and MySql 5.0. Those are incompatible. I downgrade MySQL to 4.0. MythTV has other problems, I manually upgrade to MythTV 0.20 and re-upgrade MySql to 5.0.

Sigh. It works. Kind of.

I get no sound in MythTV. Also, there's a blue border on top of my TV screen. I try to ignore it. I use VLC to check the TV signal, it works great, as does the sound. I'm starting to figure out how Linux works, but I'm not sure why they chose to do it this way. MythTV is recording sound, but can't play it back. It's not muted, it's not the volume. Hey, maybe if I install the remote, I can turn the volume up (sounds nice, right?).

IVTV (the IR remote driver) is a mess, their entire model is crap. I'm sure they put a lot of work into it, but it just doesn't work. I can't use the latest version of the remote driver because Dapper's kernel is a couple micro-versions back.

Originally, I thought MythTV would do a lot more. Turns out, it doesn't do hardly anything. It connects a few disparate systems and drivers, and ultimately is just calling other applications via the command line. I'm having less faith in it.

So now I can watch TV without sound, or record it and watch it later in VLC with sound. My remote doesn't work, and there's still a blue border around the top of the screen.

I figured this was a good time to give up. I've got all the parts, and certainly enough horsepower to run Windows, so I install Windows Media Center Edition ($no comment). It's great. It works. I install the drivers and I'm watching TV in minutes. It sucks that Windows works so much better.

But, now, the remote doesn't work. It controls the tv card's native software, which is pretty lame compared to the Win MCE TV software. Now the remote will let me rewind & pause TV, etc, but not change channels and control MCE, and after a couple minutes of working, it quits, every time. Why doesn't it work? Apparently MCE can only use MCE remotes. Period. Sigh.

MCE remotes are another $40+, so I talked Alanda (my wife) into getting a lower-end Logitech Harmony remote ($90). It's on its way as I write this, so I hope it will eliminate at least some of my 7 remote controls. Otherwise, Windows Media Center is chugging away, recording all the important shows (like Lost and JoJo's Circus).

I have some high hopes for it still. I couldn't get the new remote interface to uTorrent working, but I'll keep up on that as they release new beta versions. I'm thinking of getting Democracy running to manage video podcasts, but I'm not convinced that ther are any worth watching on TV. I also need to buy a skype phone handset ($50?) so it feels like a telephone. I think that will make it a lot easier to use. Then I need a bigger HDD ($100). And a DVD drive ($30). And... (forever).

Grand total so far? Over $500 and climbing.At least it's been gradual, and it's a fun hobby, and a real learning experience. That's what I keep telling my wife.

(Discuss with Disqus!)

I told you I would do it...

posted under category: General on October 1, 2006 by Nathan

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.

(Discuss with Disqus!)

Firefox Extensions I Use

posted under category: Browsers on September 28, 2006 by Nathan

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...

  • Platypus - WYSIWYG editing of other people's sites. Delete and move parts of pages until the site works how you like. Fix sites with awful background colors. Then use Greasemonkey...
  • Greasemonkey - Save scripts (like those generated by Platypus) to re-modify a site every time you visit it. Google for greasemonkey scripts to see what you can do.
  • Web Developer Toolbar - The single most useful tool for any and every web developer. An obvious required must have. If you make web sites, you need this, period.
  • Gmail Space - This XUL application lets you use your Gmail account to store and transfer files.
  • FireBug - Great tool for inspecting and debugging HTML and javascript, and tracking AJAX requests.
  • Live HTTP Headers - Lets you watch raw HTTP headers - very valuable for debugging things like caching, cookies and load balancers
  • Google Notebook - I use it for sharing bookmarks between systems (I don't want to snyc bookmarks) and noting them, as well as jotting down some ideas when I want to finish the thought somewhere else.
  • ErrorZilla - On HTTP errors, this gives you options to check the google cache, ping the server and so on.
Bonus! Here's some extensions that I like and have, but leave disabled.
  • Reveal - Makes surfing and using tabs more visual. Also eats your memory.
  • CSSViewer - When you turn it on, it attractively shows all the CSS properties for whatever you put your mouse over. Disabled because I hardly ever used it.
  • ScreenGrab - Makes an image of your entire web page. Disabled because I don't use it very often.

(Discuss with Disqus!)

Thoughts on calling ColdFusion from the command line

posted under category: ColdFusion on September 18, 2006 by Nathan

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.

(Discuss with Disqus!)

Interactive Sites is hiring!

posted under category: General on September 15, 2006 by Nathan

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.

(Discuss with Disqus!)

It's at the bottom...

posted under category: General on August 29, 2006 by Nathan

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)

(Discuss with Disqus!)

New Project: WinInfo for CF

posted under category: Free Code For You on August 24, 2006 by Nathan

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.

(Discuss with Disqus!)

The Router Restart App

posted under category: Free Code For You on August 24, 2006 by Nathan

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.

(Discuss with Disqus!)

Flash Cookies (literally)

posted under category: General on August 24, 2006 by Nathan

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.

(Discuss with Disqus!)

How to rebuild a destroyed database with Reactor

posted under category: Free Code For You on August 13, 2006 by Nathan

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.

(Discuss with Disqus!)

Quick Fusebox 5 lexicons for ColdSpring and Reactor

posted under category: Fusebox on August 11, 2006 by Nathan

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.

(Discuss with Disqus!)

That was quick: cfthread and cfjoin tags

posted under category: ColdFusion on July 21, 2006 by Nathan

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.

(Discuss with Disqus!)

Installing Ubuntu is very, very fun

posted under category: General on July 11, 2006 by Nathan

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.

(Discuss with Disqus!)

Eclipse Callisto out now!

posted under category: General on June 30, 2006 by Nathan

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 :)

(Discuss with Disqus!)

When is Eclipse 3.2 Coming Out?

posted under category: CFEclipse on June 17, 2006 by Nathan

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.

(Discuss with Disqus!)

Fusebox 5 Beta 2

posted under category: ColdFusion on June 15, 2006 by Nathan

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?

(Discuss with Disqus!)

Model Glue 2 - First Public Beta

posted under category: ColdFusion on June 15, 2006 by Nathan

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.

(Discuss with Disqus!)

CF on Wheels 0.5 Released

posted under category: ColdFusion on June 14, 2006 by Nathan

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.

(Discuss with Disqus!)

The AZCFUG CF Coding Contest (Last Night)

posted under category: ColdFusion on May 25, 2006 by Nathan

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!!

Update: conceded, not the same as forfeited, I used the wrong word, thx Sean.

(Discuss with Disqus!)

Searching for javascript frameworks, day 2

posted under category: General on May 11, 2006 by Nathan

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.

(Discuss with Disqus!)

Choosing a javascript framework

posted under category: General on May 10, 2006 by Nathan

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.

(Discuss with Disqus!)

Add Mark Drew to the list of CF podcasters

posted under category: ColdFusion on May 2, 2006 by Nathan

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.

(Discuss with Disqus!)

Fusebox + Model-Glue = ?

posted under category: ColdFusion on April 26, 2006 by Nathan

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.

(Discuss with Disqus!)

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

posted under category: ColdFusion on April 21, 2006 by Nathan

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.

As a last note, watch out for API changes - It's alpha software, mostly stable, but constantly changing. If you lock yourself into the API (things like createRecord), there's a good chance it will change (the naming conventions for records, specifically, are changing).

(Discuss with Disqus!)

Visual Studio express editions are free forever

posted under category: dotnet on April 20, 2006 by Nathan

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.

(Discuss with Disqus!)

Use the Java regular expression engine in ColdFusion

posted under category: ColdFusion on April 7, 2006 by Nathan

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

(Discuss with Disqus!)

Using Eclipse working sets to increase your productivity

posted under category: CFEclipse on March 31, 2006 by Nathan

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.

(Discuss with Disqus!)

Eclipse WTP bonus feature - Web Services Explorer

posted under category: CFEclipse on March 27, 2006 by Nathan

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.

(Discuss with Disqus!)

How the CF community should engineer a scaffolding replacement

posted under category: General on March 17, 2006 by Nathan

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...

We need to make a way to include the most popular form validation techniques, be it qForms, cfform default validation, custom server-side validation, validation based on the ORM, or any combination of the above. The template page will control where validation messages appear (if inline).

[Table Metadata]
We all have (or should have) metadata on most of our tables - who created this and when, is it deleted, etc. You don't want that info printed out on the form, and you shouldn't have to delete it from the generated code every time you make a form. This would be a fairly simple system of checking which fields shouldnt' show up.

An attractive, easy-on-the-eyes administrator to manage everything on a global level, manage the generation of 'scaffolds', manage a scaffold on an individual level, and manage each and every form field, including displaying, default values, linking selects, form field types, etc. Yes, this is very granular. You will have to drill down a ways to find these details, but if we don't put it in, nobody will be happy.

[Client Ready]
Imagine if we had a client-ready, somewhat dumbed-down interface. Your CMS users could make their own forms based on a generic table. This may be a side-project, but a useful one, nonetheless.

Re-generating a scaffold shouldn't overrwrite everything if any changes have been made to it. We should consider partial regeneration where possible.

[Rediculously Easy]
It needs be easy to set up and create the first few forms. Easy as dropping the files in a folder and hitting it in your browser. Perhaps a quick setup page and a tour mode that turns on helpful tips for your first few times through. We have to tout the real WOW factor.

[Recognize Changes]
Something I know Reactor does, if a table changes, it modifies all the CFCs it has created for said table. New fields should be added instantly to forms.

[Special Data Rules]
Everybody's database has special rules. For instance, deleting a record sometimes means changing a deleted bit flag. This change has to be reflected on the item list. Changes of this sort should be considered and many will likely be adapted as an administrative option.

[Framework integration]
Many developers using this product need framework support. As such, framework code needs to be generated and inserted into the correct and logical place. Of course, options would exist to prevent tampering with your configuration files. In these cases, developers should be presented with framework-specific code that they can insert into their files manually.

[Framework reliance]
To Be Determined. The administration tools should be built to harness a framework, and use of frameworks should be implicitly preferred wherever we go. I have no preferences, personally. I may like to stick it in model-glue just for giggles (thanks Ray Camden).

I have a feeling I'm biting off more than anyone can chew. This stuff is totally open for public ridicule/flames/corrections/additions/praises. Leave comments!

(Discuss with Disqus!)

Scaffolding: a true wow factor device

posted under category: ColdFusion on March 16, 2006 by Nathan

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.

(Discuss with Disqus!)

Rethinking the State of Frameworks

posted under category: ColdFusion on March 15, 2006 by Nathan

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!

(Discuss with Disqus!)

The State of Object Oriented Programming in ColdFusion

posted under category: ColdFusion on March 13, 2006 by Nathan

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...

We are in the beginnings of the maturing phase
Maturity is our goal (ok, it should be). I have a hard time defining OOP's maturity in the CF field, but I think there are a few signs of it coming.

The CF.Objective() conference is one clear indicator. This is a new conference this year for CF OOP developers. This is a sure sign that things are changing and OOP in ColdFusion is becoming much more "real."

Frameworks, as another point, are increasingly object oriented. Even the traditional Fusebox framework now has full support for an OOP lifestyle, and the Fusebox 5 framework is being rebuild using CFCs (though the procedural circuit/fuse paradigm will likely not change). Mach II was an early OO framework for CF, introducing events, and (mostly) forcing OOP style code to implement it. Model-Glue is a newer framework that promises to bend OOP into a format traditional CF developer will understand and adopt. Then we have supporters, such as Coldspring, a high quality object factory and Reactor, ARF! and Transfer, ORMs to manage your data interaction. There are far too many others for me to mention. The framework camp, while seemingly crowded, is greatly helping to shape the way we write our programs.

It should be noted that these frameworks are all open source and community supported. This is another sign of the CF community at large growing and maturing.

Where are we going?
Prediction #1. In the near future we will see a lot more frameworks being tied together. There has been talk about "auto wiring" of frameworks. I see a lot of promise in this area. Model-Glue 2.0 is called "Unity," one guess as to why.

Prediction #2. You, as an average joe developer, are going to use a framework. There's no way around it. You will be assimilated, if you haven't been already. I'm not saying you'll convert to Fusebox or Model-Glue, but take a look at Coldspring or Reactor, or many of the others not in the mainline scope of frameworks that we are accustomed to. If you don't like any, chances are you may have to make your own.

Where are we lacking?
There's no definitive "If you're going to do it, do it this way." If I want to use objects to run my data access layer, do I just make some DAOs? How do I implement them? Should I use gateways? These answers are out there, and they need to be formalized, standardized and presented to the average developer.

There's a visible gap (literally), in the framework scene. In Ruby on Rails, they call this "scaffolding." It's what takes your database model and instantly transforms it into a working (though basic) application. They have it. We need it.

How do we get there? TODO: tasks for the community
*Create well organized learning resources, remembering that there are wildly different classes of CF developers. These resources should be able to reliably turn Barney Fife into a polymorphic professional. Wiki it and we will come.

*Successful scaffolding, easy or not, something to make nice and simple looking forms out of DB tables (or reactor DAO metadata). Now that my CRUD typing is fairly automated (with various generators or frameworks), the forms for these should be too. Only an open source project could cover enough angles to make this useful for everyone (like an option to use cfform, flash form, qform, auto-generated or custom validation, etc. etc. etc. - there are too many options for a single-developer project).

*Combine the popular frameworks to create the uber-framework for CF (please don't use that as the name). Say "this is the standard way to make enterprise CF apps." If not literally packaging them together, there should be a 2-step process (think ant) to get them all installed and working together.

The killer app
I've been thinking about this for a few days. The "uber-framework" may consist of Model-Glue, Coldspring, Reactor, a scaffolding project, and a W3C standards-based CSS framework, (like Mollio from FarCry), or equivalents for any of these you may like. This is everything you need to create truly rapid applications. Edit 2 or 3 config files and you can have a fully working, usable web application with very basic display and edit functionality, plus it looks nice and naturally validates XHTML.

From there, take the Model-Glue 2.0 ("Unity", in development) idea of included applications and insert an app much like a plugin to this 5-minute web site. Paste the files (like blogCFC or Lighthouse, I can see Ray Camden being the instant king of this, not to mention hosting these apps on, paste the include code into your Model-Glue config file and href a link to the new app on your navigation bar. Instant plugin, instantly working. Do it 2 or 3 times and you have a full and usable web site.

Most sites that used to take 16 hours to make, now take 30 minutes. This would bring about true and simple code reuse for object oriented programming. Most of our development time would now be writing reusable, pluggable applications and finding new ways to apply them to the framework.

The CF community is coming into something big. Can you feel it? CF has a really good shot at owning the word "rapid" in "rapid application development". These are exciting times.

I appreciate all your comments - let me know what I may have left out.

(Discuss with Disqus!)

So happy with stuff I find on

posted under category: General on March 6, 2006 by Nathan

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!

(Discuss with Disqus!)

CFEclipse presentation online

posted under category: CFEclipse on February 28, 2006 by Nathan

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)

(Discuss with Disqus!)

CFEclipse, Zero To Hero: Please Wait...

posted under category: CFEclipse on February 27, 2006 by Nathan

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.

(Discuss with Disqus!)

My CFEclipse Snippets

posted under category: CFEclipse on February 23, 2006 by Nathan

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!

(Discuss with Disqus!)

Zero to Hero, Links from the presentation

posted under category: CFEclipse on February 23, 2006 by Nathan

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

(Discuss with Disqus!)

Could have been better...

posted under category: CFEclipse on February 23, 2006 by Nathan

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.

(Discuss with Disqus!)

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

posted under category: CFEclipse on February 22, 2006 by Nathan

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.

(Discuss with Disqus!)

Coming tonight? Important downloads...

posted under category: CFEclipse on February 22, 2006 by Nathan

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.

(Discuss with Disqus!)

This week, come see CFEclipse at the AZCFUG!

posted under category: CFEclipse on February 20, 2006 by Nathan

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!

(Discuss with Disqus!) : Write a how-to, be famous

posted under category: CFEclipse on February 16, 2006 by Nathan

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.

(Discuss with Disqus!)

1st Page 2006 released. Pigs sprouting wings.

posted under category: General on January 20, 2006 by Nathan

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?

(Discuss with Disqus!)

10 reasons why I don't blog more

posted under category: General on January 20, 2006 by Nathan

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)

(Discuss with Disqus!)
Nathan is a software developer at The Boeing Company in Charleston, SC. He is essentially a big programming nerd. Really, you could say that makes him a nerd among nerds. Aside from making software for the web, he plays with tech toys and likes to think about programming's big picture while speaking at conferences and generally impressing people with massive nerdiness and straight-faced sarcastic humor. Nathan got his programming start writing batch files in DOS. It should go without saying, but these thought and opinions have nothing to do with Boeing in any way.
This blog is also available as an RSS 2.0 feed. Click your heels together and click here to contact Nathan.