Wow, the things you forget over time. You start to work in a certain environment for so long that you take on bad habits by example of the work you are associated with. Trouble, with a capital 'T'.
Case in point. I was contracted out for a very small job, a friend of my company's Technology Director wanted to put a football pool on his website. Very straight forward, even for a guy like me who has little to no interest in sports. He sent in a hand drawn diagram of what he wanted each screen to look like, and exact instructions on the function of each page.
Easy. Simple. No brainer. So, I quoted him 4 hours of work. I wrote it in Model-Glue: Unity to play and learn, knocked it out over 2 days in about 8 hours (giving for learning curve), and had it fully functional on my server for testing. It worked great, and the client was getting a little more than he asked for in the process.
But then you have to deploy to production. Client's server environment. And this client was with a shared hosting facility. After three hours, and countless phone calls, they finally had all of the cf mappings set up correctly. This was necessary, since their site was not the webroot. I hit the page, and BAM!, error. My flawless little app was not functioning as intended, at all.
At first I thought it might have something to do with folder and file permissions. No dice. I was seeking advice left and right. Finally I asked Ray Camden for his thoughts, and he says "Look at case sensitivity."
Well, it was a Linux server. But, the majority of the pathing code was written by Model-Glue, so I was a little stumped.
With my version of MySQL, all table names are lower case, but queries can reference them without case sensitivity. In their version of MySQL, case sensitivity is queen (and a bitch at that), and can cause you great heartache.
You see, Model-Glue and Reactor autogenerate many files from your scaffolds and the Reactor.xml file, and use the same case sensitivity as that of your scaffolds and object setups. I had to recompile the site, page by page, with an adjusted config files, and then re-customize my display templates, plus rename a few thing within my Controller.cfc file.
So, in hind sight, I probably could have just changed the table names to the same case sensitivity as I had used in my files, but I just adjusted all of the files anyway. My overall point is this, always watch your case sensitivity. You may know, from the beginning, where and on what your application will be deployed, but what happens if your client decides to switch hosts the following year? Nightmare, with only yourself to blame. Be case sensitive to everything: paths, db tables and column names, CFC methods and arguments. Everything. You will save yourself a lot of trouble in the long run.