How to migrate from one database to another

I am a fan of most all Database platforms. I have used MSSQL 7/2000/2005, IBM UDB, Oracle 8/9i/10g, MySql 4/5 and PostgreSQL 7.3/8.1 in production. When working in multiple database platforms, there inevitably comes the need to port a database from one platform to another.

Rather than spend my days mapping and transforming a database schema, I use SQL Script Builder. SQL Script Builder is a tool that generates SQL scripts of a database and the data for 5 officially supported platforms:

  • MySql
  • MS SQL
  • Oracle
  • Pervasive
  • PostgreSQL

The last time I blogged about this tool it lacked proper key management. Newer versions have support for:


Mach-II 1.5 Application Skeleton

I've put together an application skeleton for Mach-II 1.5 applications. This application skeleton is a nice way to get a Mach-II application up and running quickly. Neil Middleton, Peter Farrell, Matt Williams and Erik Meier each contributed in some way and Neil Middleton was kind enough to create an ANT task to automate the process

The code has been contributed to the Mach-II group and should be available on the official site soon.

About this skeleton:

  • Shows best practice for integrating with ColdSpring using the ColdSpringProperty.xml
  • Will detect if you have ColdSpring installed correctly. If you do not, it will nag you.
  • Shows how to use the subroutine feature of Mach-II 1.5 (thanks for the suggestion Neil)
  • Shows a sample Listener and xml configuration
  • Shows a sample Filter and xml configuration
  • Shows a sample Plugin and xml configuration
  • Has an ANT task for rapidly creating new applications (thanks again Neil)
  • Points to correct Mach-II 1.5 DTD references


CFObjective() Refactoring in ColdFusion from Procedural to OO Presentation

I presented twice at the CFObjective() conference on Refactoring in ColdFusion from Procedural to OO. I love giving this presentation because it is the culmination of many many hours of practice and research expended when I made the transition from procedural programmer to OO programmer.

The basic premise of the presentation is how to take a pragmatic approach to refactoring. Rather than feeling the need to completely rewrite your application to achieve a good OO architecture ( Managers never like this idea), I offer a reasonable, incremental approach on moving pieces and part of your application at a time.

In the presentation, there are a handful of slides with guidelines and high-level talking points about migrating to OO and move right into the code samples. The code samples show common procedural structures and then a comparible Object Oriented structure. This compare/contract method helps programmers understand how to move toward common software patterns in their applications.

If you missed the presentation, and were not at one of the user group presentations I gave last month, you can still get in on the action by showing up at CFUnited. I've also included the slides and code samples in a zip. You can download it from the Features Pod on the right hand side of the page, or better yet, from the Flagrantly Cool

Looking for the best MySQL IDE on the market

I've been doing a lot of work with MySQL lately. A lot more than I ever have. As a normal fan of open source software, I am pleased to have such a feature rich database at my disposal. I do have one small problem that bothers me, however...

The various IDEs I have tried are really far behind the mark. I do not feel as productive when working on MySQL as I do when working on MSSQL. Rarely do I heap praise on Microsoft, but man do they know how to design and deliver an IDE.

To start off with, I tried the MySQL administration tool. I found it very clunky and upsetting to work with. I then found SQLyog, which is a lot more refined, but isn't quite there yet. I like how fast the editor performs but there are still moments with SQLYog confuses me. Favorite past times we share include obfuscating the values of Bit Columns in the Table Data Tab and Randomly Deleting Views.

Thusly, I am on the lookout for a top quality MySQL database administration tool. If you know of something applicable that you like to use, please share it with me in comments below. I run both Windows and Mac computers so only products with solutions for both platforms will be considered.

How to recover a deleted file in Eclipse

Today I accidentally deleted a file in Eclipse. I didn't even know I did it until I ran my code. I am not even sure how I deleted it. My best guess is the current focus was on the project explorer and some strange key combo sent the file to the netherworld.

Eclipse, as you probably know, does not use the Windows 'recycling bin'. As luck would have it, the file was long, complex, just freshly debugged and not yet in version control.

I was able to recover the file by using the Restore from Local History option located in the context menu inside the project navigator.

"What?!?! I thought that only worked for files, not directories..." , you might say. I thought the same thing. Thankfully Eclipse is smart enough to know that when humans are behind the keyboard, expect the unexpected.


Great use of CFGrid and CF8 at

One of my good friends, Rama Marupilla, showed me a recent project where he used CFGrid to make a searchable, filterable restaurant locater. Have a look at

This page is a great illustration about how the power of ColdFusion 8, in the hands of a great developer, can enable powerful and relevant functionality.

Great Job Rama, thanks for sharing!

Frameworks, Generators and Understanding How and Why

Reading the always informative blog at, I came across a thought provoking paragraph that bears repeating. ( ) If you answer the question "How?" first, people tend not to ask "Why?" for quite some time. On the flip side, you will have people doing their parts rather quickly thus producing enormous amount of code to fix when the design problems become evident. The problem with formal coding techniques is the human generated code (thus cut/paste errors) without the ultimate understanding how it will be used and very little testing done while writing the code.


Make awesome forms in Record Time

Have you heard about Uni-Form? Go look at it now. Isn't that a very nice, functional and compelling HTML form? It is also xHTML valid and accessible! Uni-Form is quite possibly the nicest looking form markup out there.

Matt Quackenbush, also Kalendar Team Member, developed and released a set of custom tags that produce the Uni-Form structure. Build awesome, functional forms fast!

Thanks for your work Matt! My forms, and my fingers Thank You.

Automate Your Work. Do More With Less. Go Home Earlier. Jim Priest @ TACFUG Tonight

Do you dread testing your applications? Do you get bored typing 'asdasd' in the First Name field of your forms? Have you ever accidentally forgot to test functionality in your application only to have it all go down in flames when you launch to production?

While that has never happened to me, (looks around shifty), there are ways to reduce testing effort while gaining test coverage through automation.

The Triangle's own Jim Priest will give a talk tonight about Selenium. You need to be there.

As an added bonus, Jim will also give an encore presentation on ANT.

RSVP for the meeting at

Meeting Details:
Location: Pstrat /
Time: 6:30pm
Food: Pizza / drinks

TACFUG and RDAUG are also looking for a new meeting spot. If you have meeting space available in the RTP area, please let us know.

Silverlight ups the Ante - Flex still rules

On October 24th, Rob Zelt presented Silverlight to the Raleigh Durham Adobe User Group. I blogged about this on and promised to keep an open mind.

Silverlight is an impressive piece of technology in its own right. I was impressed by a number of features in the technology. A number of misconceptions I held were dispelled and I throughly enjoyed the presentation.