<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7103391</id><updated>2011-08-05T06:39:37.418-05:00</updated><category term='t-sql optimization'/><title type='text'>ColdFusion Purists</title><subtitle type='html'>To be a purist, is to have standards, and strive to perfect and master your skills.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default?start-index=101&amp;max-results=100'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>129</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7103391.post-7899609400130325260</id><published>2010-07-01T15:28:00.000-05:00</published><updated>2010-07-01T15:28:39.147-05:00</updated><title type='text'>Train and Drive</title><content type='html'>I have recentally been re-hired at my previous job. Great company, good people. We really get a long very well in our IT Department. &lt;br /&gt;&lt;br /&gt;But what I want to talk about today, is how to light the fire of drive/ambition in your fellow worker's.&lt;br /&gt;&lt;br /&gt;I have been recently put in charge of our training program, basically me, every friday, doing a presentation on different web/it/coldfusion topics.&lt;br /&gt;&lt;br /&gt;This is really something I could fall in love with. :)&lt;br /&gt;&lt;br /&gt;I love the idea of helping others, pursue their dreams to improve their skills and master their craft. &lt;br /&gt;&lt;br /&gt;But why do so few people have the drive?&lt;br /&gt;&lt;br /&gt;Yes, I hear the complaint, that many just don't have the time to train. &lt;br /&gt;&lt;br /&gt;But do we also have the time to become stagnant in our knowledge and skills?&lt;br /&gt;&lt;br /&gt;No matter how good or bad I may be. I am always driven to improve myself, to always learn, I have piles of books at work at home. I always read a variety of blogs. &lt;br /&gt;&lt;br /&gt;I want to be able to get everyone on board, to master the basics, then they can go their own way, in terms of different methodologies, frameworks and techniques...&lt;br /&gt;&lt;br /&gt;I want to learn so much, to take what I know, learn what's wrong with it and why, and then make it better. &lt;br /&gt;&lt;br /&gt;When I do code, I want to make sure that it won't be something that embarrasses me in the future, looking back. &lt;br /&gt;&lt;br /&gt;Too often, I have had to be the person who cleaned up other people's code, so that has really driven me to clean up my own code. &lt;br /&gt;&lt;br /&gt;I have no authority to order people to learn, or to want to learn. But I want them to want to learn, to show me they know what I want to teach, then we can focus on more advanced topics. &lt;br /&gt;&lt;br /&gt;But without mastery of the basics, variable scoping, good sql queries, clean, readable code, good planning, project management, etc.&lt;br /&gt;&lt;br /&gt;How can we even try, to push on to topics...&lt;br /&gt;&lt;br /&gt;For those of you who have that drive? How does it feel to you?&lt;br /&gt;&lt;br /&gt;When I was a newbie programmer, I kept expecting help from others, but that really never comes, it really is up to each of us individually to push ourselves as far as we want to go.&lt;br /&gt;&lt;br /&gt;So where do you all want to go?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-7899609400130325260?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/7899609400130325260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2010/07/train-and-drive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7899609400130325260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7899609400130325260'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2010/07/train-and-drive.html' title='Train and Drive'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-2101850295135355323</id><published>2010-06-17T15:45:00.002-05:00</published><updated>2010-06-17T15:54:42.310-05:00</updated><title type='text'>Do we matter?</title><content type='html'>Lately I went to this job interview for Chandler, Arizona, a good company, paid well, paid for my trip.&lt;br /&gt;&lt;br /&gt;But when I go there, I get the feeling of being a cog, just learn the system, fix the bugs do the tasks.&lt;br /&gt;&lt;br /&gt;But I look at their site, and it is poorly designed. &lt;br /&gt;&lt;br /&gt;The code is well done, but seems overly complex for the actual needs of the site. &lt;br /&gt;&lt;br /&gt;And the usability and design seemed rather atrocious. But being the concerned and helpful person, I wanted to help inform the people, so we can release a solid, reliable and usable site. Instead, I was told I should just focus on my job.&lt;br /&gt;&lt;br /&gt;And to me that is a turn-off. &lt;br /&gt;&lt;br /&gt;I know my opinion won't always be right, or always taken, but I am an experienced professional, not just some cog to do some typing.&lt;br /&gt;&lt;br /&gt;I am the kind of programmer, and person, that wants to make my company/department the best it can be. &lt;br /&gt;&lt;br /&gt;I will never be a cog employee, I will be a team uplifting, let's become the best we can be employee.&lt;br /&gt;&lt;br /&gt;Yet I had to turn down that fulltime job, to go back, and mostly just get a good part time job, with a company I trust to listen to me.&lt;br /&gt;&lt;br /&gt;Why is it so hard to be just listened to?&lt;br /&gt;&lt;br /&gt;Isn't it a better company when we're all working together, on each part of what makes us the best, towards same goals?&lt;br /&gt;&lt;br /&gt;During the plane ride to Arizona, I was reading the book by Joel Spolsky, Smart People Get Things Done. Really great book about hiring great programmers, of which I hope to be one. &lt;br /&gt;&lt;br /&gt;I wanted to know what kind of company I want to work for, and what kind of employee I should be to get that kind of job.&lt;br /&gt;&lt;br /&gt;I have no problem working my butt off, but it has to be for a company that wants and respects me, and wants me to help them be the best.&lt;br /&gt;&lt;br /&gt;That's just me...&lt;br /&gt;&lt;br /&gt;Craig M. Rosenblum&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-2101850295135355323?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/2101850295135355323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2010/06/do-we-matter.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/2101850295135355323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/2101850295135355323'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2010/06/do-we-matter.html' title='Do we matter?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-4238490467400472796</id><published>2010-02-15T01:19:00.000-06:00</published><updated>2010-02-15T01:32:19.609-06:00</updated><title type='text'>ColdFusion needs a rebirth</title><content type='html'>I have had a lot of struggles with getting a job in coldfusion, I have a part time one now.&lt;br /&gt;&lt;br /&gt;But I really love the language, working with it, learning what more I can do.&lt;br /&gt;&lt;br /&gt;But I keep re-reading about the death of CFDJ, and it really get's to my heart, yes they didn't always&lt;br /&gt;do things very wisely, and their site really sucked with video ads.&lt;br /&gt;&lt;br /&gt;But it was really nice to have a print magazine, i can collect, review, and re-read...&lt;br /&gt;&lt;br /&gt;Now it feels like their is no printed history of coldfusion...&lt;br /&gt;&lt;br /&gt;And I keep reading on Stackoverflow.com how many people think coldfusion is dead, and doesn't need to be learned or used.&lt;br /&gt;&lt;br /&gt;To me that's utter bullocks.&lt;br /&gt;&lt;br /&gt;But they are right about 1 thing, how we package coldfusion is pretty horrible.&lt;br /&gt;&lt;br /&gt;How we make this as a server product, instead of a language product, makes it a horrible bite to get people into coldfusion.&lt;br /&gt;&lt;br /&gt;I think we need a totally rethink of how it is sold, advertised, packaged, and discussed in the community.&lt;br /&gt;&lt;br /&gt;Also we need a new approach to education and mentoring, because if people are writing horrible applications, it doesn't make us look good.&lt;br /&gt;&lt;br /&gt;Also we so seem to focus on the niche aspects of coldfusion, that so many people/programmers/companies barely have the grasps of the basics.&lt;br /&gt;&lt;br /&gt;The Basics:&lt;br /&gt;&lt;br /&gt;1. Project Management - Tracking assignments, due dates, priorities&lt;br /&gt;&lt;br /&gt;2. Planning - Planning your assignments, making sure they are clear, and identify obstacles to clarity, so that everyone know's exactly what is going to be delivered.&lt;br /&gt;&lt;br /&gt;3. Source Control - Use something to control revisions of your code and database changes.&lt;br /&gt;&lt;br /&gt;4. Back Ups - Always take backups of code, and database, gives you the ability to restore in case of hard drive or hardware problems&lt;br /&gt;&lt;br /&gt;5. Error/Bug Tracking - Making sure bugs are tracked, not just ignored in the cfadministrator.&lt;br /&gt;&lt;br /&gt;6. Looking at the log files from web server/database server/coldfusion server, regularly to see if users are having problems.&lt;br /&gt;&lt;br /&gt;Joel Spolsky called this his 12 step test.http://www.joelonsoftware.com/articles/fog0000000043.html&lt;br /&gt;&lt;br /&gt;But what percentage of coldfusion users, actually pass more than 1 of this checklist, I'd bet it's a lot lower than most advanced programmers think.&lt;br /&gt;&lt;br /&gt;And this is what has frustrated me, for the last several years, when people focus on what is the fads or trends, rather than the basics, which yet again get overlooked, unused, unmentioned, and companies creating bad cf apps or code, and make us look bad. &lt;br /&gt;&lt;br /&gt;We should be seriously focused on generating great coldfusion programmers, that get fully trained and mentored to be great programmers, no matter what language they use...&lt;br /&gt;&lt;br /&gt;We should have a far better documentation pages, that hatefully always force frame usage, that is so annoying. Does anyone actually do any usability testing on actual users?&lt;br /&gt;&lt;br /&gt;Does anyone at Adobe care about their end users?&lt;br /&gt;&lt;br /&gt;Or is coldfusion just a stepping stone for you to move on to better languages?&lt;br /&gt;&lt;br /&gt;I can't get over my love for coldfusion......and I want to help if I can improve it.&lt;br /&gt;&lt;br /&gt;I am so sick of all the skepticism, it is time for leadership...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-4238490467400472796?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/4238490467400472796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2010/02/coldfusion-needs-rebirth.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/4238490467400472796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/4238490467400472796'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2010/02/coldfusion-needs-rebirth.html' title='ColdFusion needs a rebirth'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-7248099928444097118</id><published>2008-04-24T13:41:00.002-05:00</published><updated>2008-04-24T13:44:28.093-05:00</updated><title type='text'>What have I been up to?</title><content type='html'>During my time of looking for coldfusion work, I have also had my right leg broken. &lt;br /&gt;&lt;br /&gt;But since I have had a lot of off time, I have been learning, studying and playing with apache, mysql and php. I am even practing and playing with Drupal, a php content management system. &lt;br /&gt;&lt;br /&gt;I still love coldfusion, but php is very nice as well. I just prefer not to do anything object oriented.&lt;br /&gt;&lt;br /&gt;This blog used to be very important to me, just not sure if where I want to go, is where coldfusion is going.&lt;br /&gt;&lt;br /&gt;I would love to see what new things coldfusion 8 can do.&lt;br /&gt;&lt;br /&gt;Hope you all are doing well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-7248099928444097118?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/7248099928444097118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2008/04/what-have-i-been-up-to.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7248099928444097118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7248099928444097118'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2008/04/what-have-i-been-up-to.html' title='What have I been up to?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-7021673693816248272</id><published>2007-04-13T16:39:00.000-05:00</published><updated>2007-04-13T16:44:33.857-05:00</updated><title type='text'>Hal Helms gets it right...</title><content type='html'>First off, I love long philosophical discussion such as this.&lt;br /&gt;&lt;br /&gt;To me this is a sign of realizing that we don't need to be like other programming languages, to be a a solid application language.&lt;br /&gt;&lt;br /&gt;And that's what I like, we're here to innovate, drive the market with what is our strength rapid-application development. &lt;br /&gt;&lt;br /&gt;Now that does not mean in anyway we can't learn from other languages to improve our programming ideas and methods, but that should not be in an attempt to make us just a clone or copy, we have to stick to what we're about.&lt;br /&gt;&lt;br /&gt;If you really want to code in Java, go ahead and do so, just stop trying to make coldfusion into java programming.&lt;br /&gt;&lt;br /&gt;I feel we do have a lot to learn as an industry, to improve our training, to create common standards that we all learn from, then as we get more experience, develop our own way's and style's.&lt;br /&gt;&lt;br /&gt;To me, I think this is a first good step to common sense, and focusing on what we're about, not trying to mold coldfusion into java which it's not.&lt;br /&gt;&lt;br /&gt;Think about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-7021673693816248272?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.fusionauthority.com/Views/4649-A-New-Vision-for-ColdFusion.htm' title='Hal Helms gets it right...'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/7021673693816248272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/04/hal-helms-gets-it-right.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7021673693816248272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7021673693816248272'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/04/hal-helms-gets-it-right.html' title='Hal Helms gets it right...'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-6423423283258090933</id><published>2007-03-28T10:11:00.001-05:00</published><updated>2007-03-28T10:11:20.397-05:00</updated><title type='text'>In pursuit of excellence</title><content type='html'>The road to this field, can take us from many directions, but in the end it is our own drive to be the best, that gets us there.&lt;br /&gt;&lt;br /&gt;For me this road started in 1996, when I worked for a local isp as a tech support person, sadly it was not a very well run isp, but that is what gave me the opportunities for growth I sought. &lt;br /&gt;&lt;br /&gt;I worked my way up from Tech Support, to Webmaster, to Hostmaster, and mainly it was because I was bored of just answering calls, trying to solve customer's problems, when my employer didn't care about the customer's just getting them off the phone as soon as possible.&lt;br /&gt;&lt;br /&gt;So I started to read about HTML, Javascript, then I heard of coldfusion. I had gotten some training in setting up IIS, but to do actual web programming really intrigued me. I already had made my mark, by taking all our piles of  training material, to create a html based step-by-step problem solving intranet. &lt;br /&gt;&lt;br /&gt;I am a person who wants change, to desires for things to always improve, and life is not always like that, but sometimes you have to create your own opportunities.&lt;br /&gt;&lt;br /&gt;So I started to bug the web design/development department of the isp, asking questions, what's a cfoutput, what's a cfquery...&lt;br /&gt;&lt;br /&gt;Playing with access databases, eventually in time working my way up to SQL Server...and over time, my knowledge, skills and experiences kept expanding, but that's not what I want this post to be about.&lt;br /&gt;&lt;br /&gt;I think that I had some weird expectations, that I would reach some level of skill/experience, where i could work for a good company that recognized my potential, offered training, and that I would have chances to grow with them.&lt;br /&gt;&lt;br /&gt;But that may be the reality for some, but mostly a fantasy...&lt;br /&gt;&lt;br /&gt;A lot of us have to work for shlocky companies, that slowly change, don't really care, just do the work, and that can really hurt our desire to do our job, if we're always the janitors of the web.&lt;br /&gt;&lt;br /&gt;Which is not what I had signed up for.&lt;br /&gt;&lt;br /&gt;For me, I want to be the best, not so much for the recognition of others, but to find something I can do with my life that I am proud of.&lt;br /&gt;&lt;br /&gt;Success, Excellence, I feel is really a mental attitude, do you really care about your craft, even when other's don't?&lt;br /&gt;&lt;br /&gt;Do you do what's right even if no one else agree's with you?&lt;br /&gt;&lt;br /&gt;Can you stand to be alone in a crowd, and stand by what you believe in, even if no one agree's with you?&lt;br /&gt;&lt;br /&gt;I've been reading a lot of Jeff Atwood's Coding Horror Blog, and DailyWTF, because they show where we and others screw up in our programming, and perhaps give us clues as to how to improve ourselves...&lt;br /&gt;&lt;br /&gt;I think what kind of upset's me now, is a big lack of vision and clarity about where coldfusion is going?&lt;br /&gt;&lt;br /&gt;I just don't feel that after this many changes of owners, anyone has a clear vision of what does coldfusion mean, what is it's future, and what is good for both industry and company..&lt;br /&gt;&lt;br /&gt;I mean, for me, i focus on the core values of coldfusion programming: performance, documentation, commenting, variables, sql queries, project management.&lt;br /&gt;&lt;br /&gt;But i just don't see much discussion on those topics anymore, instead it's what the trends are on, which are cool, but have we as an industry shown that as coldfusion programmer's we've mastered those basic core values?&lt;br /&gt;&lt;br /&gt;I don't believe that is so....&lt;br /&gt;&lt;br /&gt;Until we're Coldfusion Professional Programmer's, where when people pick both the language and the people to program in it, they will know they will get solid quality, that plans for long term as well as take cares of the short term..&lt;br /&gt;&lt;br /&gt;Just my thoughts...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-6423423283258090933?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/6423423283258090933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/03/in-pursuit-of-excellence.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/6423423283258090933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/6423423283258090933'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/03/in-pursuit-of-excellence.html' title='In pursuit of excellence'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-3226722436566863597</id><published>2007-02-16T12:35:00.000-06:00</published><updated>2007-02-16T12:45:38.613-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='t-sql optimization'/><title type='text'>SQL Server Bind Variables</title><content type='html'>Lately I have been looking for new ways to improve the performance/scalability of my t-sql code. I had remembered that with ORACLE and using cfqueryparam, took advantage of ORACLE's bind variables functionality.&lt;br /&gt;&lt;br /&gt;Basically a bind variable, means it treats the queries the same, in terms of performance/explanation plans, even though certain variables are different.&lt;br /&gt;&lt;br /&gt;Now while cfqueryparam is always a good practice for preventing sql injection and protecting, I was not aware of how to do bind variables for SQL Server, until now.&lt;br /&gt;&lt;br /&gt;sp_executesql&lt;br /&gt;&lt;br /&gt;is a very powerful but limited dynamic sql building tool.&lt;br /&gt;&lt;br /&gt;execute sp_executesql&lt;br /&gt;          N'select * from pubs.dbo.employee where job_lvl = @level',&lt;br /&gt;          N'@level tinyint',&lt;br /&gt;          @level = 35&lt;br /&gt;&lt;br /&gt;Above is an example from http://doc.ddart.net/mssql/sql70/sp_ea-ez_4.htm&lt;br /&gt;&lt;br /&gt;Notice how N is in front of each line, that is to force it to be nvarchar, because the stored procedure accepts only nvarchar, even though the fields in your table may just be int, varchar etc.&lt;br /&gt;&lt;br /&gt;Secondly this allows 3 parameters&lt;br /&gt;&lt;br /&gt;first parameter is the sql query&lt;br /&gt;second parameter is the declaration of any incoming parameters&lt;br /&gt;third parameter is the setting of those parameters&lt;br /&gt;&lt;br /&gt;The problem is that if you have multiple incoming parameters, they all have to be declared on one line. The Sql query can be multiple lines but itself consists of the first slot in this stored procedure.&lt;br /&gt;&lt;br /&gt;So if you want to not use up memory by caching a query, this is one way to improve performance, by taking advantage of the bind variables, capability.&lt;br /&gt;&lt;br /&gt;BTW, if you want more tips on t-sql query optimization, I recommend that you check out this article.&lt;br /&gt;&lt;br /&gt;http://www.sql-server-performance.com/transact_sql.asp&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-3226722436566863597?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/3226722436566863597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/02/sql-server-bind-variables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/3226722436566863597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/3226722436566863597'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/02/sql-server-bind-variables.html' title='SQL Server Bind Variables'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-2077478636785224524</id><published>2007-01-30T10:03:00.000-06:00</published><updated>2007-01-30T10:08:11.569-06:00</updated><title type='text'>IE7 Breaks Relative URLS</title><content type='html'>My own company's site has had huge problems lately because we did not include base href tags at the correct spot in all our code.&lt;br /&gt;&lt;br /&gt;How many of you are noticing bad links, bad images, bad forms, that just do not work in IE7.&lt;br /&gt;&lt;br /&gt;Especially if you have a page that has search engine friendly url's.&lt;br /&gt;&lt;br /&gt;Well in order for those to work you must have the BASE Tag in a specific spot.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;BASE Element--Internet Explorer 7 strictly enforces the BASE element rule, as documented in the HTML 4.01 standard. We no longer allow BASE tags outside of the HEAD of the document. The standard specifies that the base element must appear within the head of the document, before any elements that refer to an external source. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Which means every coldfusion page has to have a base href in it. Which can be a tad difficult, if you have different development, production, testing or q&amp;a servers.&lt;br /&gt;&lt;br /&gt;It kind of makes me wonder if this was a necessary for IE7 feature. Or if any of you have had other IE7 issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-2077478636785224524?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/2077478636785224524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/01/ie7-breaks-relative-urls.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/2077478636785224524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/2077478636785224524'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/01/ie7-breaks-relative-urls.html' title='IE7 Breaks Relative URLS'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-7634066191944886098</id><published>2007-01-24T12:14:00.000-06:00</published><updated>2007-01-24T12:19:50.487-06:00</updated><title type='text'>Communicating your ideas</title><content type='html'>Rather fascinating post at 37signals, about The Curse of Knowledge. What is interesting, is that it points out that the more you know about a topic, the less likely you are able to communicate it.&lt;br /&gt;&lt;br /&gt;And this comes home to me, in the many times, working on projects, and not always able to communicate what I plan to do, what my logic steps are, in a way that others will understand.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;People tend to think that having a great idea is enough, and they think the communication part will come naturally. We are in deep denial about the difficulty of getting a thought out of our own heads and into the heads of others. It’s just not true that, “If you think it, it will stick”.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is so true, because what good is our great ideas, if we can not explain them, communicate them or persuade others that they have value?&lt;br /&gt;&lt;br /&gt;What tools or methods do you use to help communicate or persuade your ideas?&lt;br /&gt;&lt;br /&gt;Flowcharts, Wireframes, Project Specs?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-7634066191944886098?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.37signals.com/svn/posts/213-the-curse-of-knowledge' title='Communicating your ideas'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/7634066191944886098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/01/communicating-your-ideas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7634066191944886098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/7634066191944886098'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/01/communicating-your-ideas.html' title='Communicating your ideas'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-1352001096254981418</id><published>2007-01-19T08:58:00.000-06:00</published><updated>2007-01-19T09:12:19.859-06:00</updated><title type='text'>Tools I love and use</title><content type='html'>Textpad has to be my number one tool, although I am willing to migrate to a newer text-editor. It just is easy for me to search/replace thru many folders/drivers, regular expressions, macro programming.&lt;br /&gt;&lt;br /&gt;Compare-It, is a file comparing tool. Let's say you have a code on development server and code on production, and you need to see what's different. Or I have also used it to compare stored procedures, after saving them as text files. Just a very nice file comparer.&lt;br /&gt;&lt;br /&gt;I use Firefox as my web browser, but I use many extensions to help me test code, such as the Web Developer Extension, Extended Statusbar, Firebug to debug javascript errors, IETab to view a new tab as if IE was inside firefox,  ServerSwitcher is a great extension that allows you to view a web page on dev or production, then switch back and forth.&lt;br /&gt;&lt;br /&gt;I recentally got the &lt;a href="http://tredosoft.com/Multiple_IE"&gt;Multi-IE&lt;/a&gt; Package, that installs multiple versions of IE on your pc, each in it's own folders.&lt;br /&gt;&lt;br /&gt;For database querying, I use a great query tool called &lt;a href="http://www.querytool.com/"&gt;Advanced Query Tool&lt;/a&gt;, I like it because it makes it easier to design, visualize queries, test them, on each database server you have.&lt;br /&gt;&lt;br /&gt;I have been playing with this SQL Server Monitoring Tool, called &lt;a href="http://www.sqlstripes.com/"&gt;SQL Stripes&lt;/a&gt;, which is a freeware/shareware &lt;br /&gt;that provides a powerful console for managing multiple servers running Microsoft SQL Server ™&lt;br /&gt;&lt;br /&gt;I also love this trial version of &lt;a href="http://www.toadsoft.com/toadsqlserver/toad_sqlserver.htm"&gt;Toad for SQL Server&lt;/a&gt;, it has a very powerful, sql tuning component. Basically, you give it a query that you think could be re-written for better performance, and it will try re-writing that query many times, until it has the sql query version, that provides the best solution. I can't yet afford this tool, but it is a very wonderful tool for improving performance of your sql queries.&lt;br /&gt;&lt;br /&gt;For FTPing, I use &lt;a href="http://filezilla.sourceforge.net/"&gt;FileZilla&lt;/a&gt;, it just is a very easy to use, and open source costs, make it a very nice and powerful ftp client.&lt;br /&gt;&lt;br /&gt;There are a lot of nice tools out there, what are your favorites?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-1352001096254981418?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/1352001096254981418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/01/tools-i-love-and-use.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/1352001096254981418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/1352001096254981418'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/01/tools-i-love-and-use.html' title='Tools I love and use'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-6406206038283277608</id><published>2007-01-18T09:39:00.000-06:00</published><updated>2007-01-18T09:51:58.569-06:00</updated><title type='text'>Coding Inside and Out</title><content type='html'>Steve Jobs really makes sense in this quoted interview on Jeff Atwood's Coding Horror. He really identifies that Microsoft may be great financial company, but their products are third rate. They are third-rate because they have no thought about taste, style or culture in their design process.&lt;br /&gt;&lt;br /&gt;And here's Jeff Atwood's comment, that really sinks the hole in one for me.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;At Apple, taste and culture are designed into every product from day one.&lt;/b&gt; Nothing is released until it looks as good on the outside as it works on the inside.&lt;/blockquote&gt;&lt;br /&gt;That is so blindingly true, look at the ipod, maybe it doesn't have every feature that other mp3 players have, but it is so easy to use, and it is so intuitive.&lt;br /&gt;&lt;br /&gt;And part of the cause of the not thinking about taste and culture, is short-term thinking.&lt;br /&gt;&lt;br /&gt;Here's another comment by Jeff Atwood, that makes this clearer, and I do hope you read his blog posting, it is well worth it.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; Jobs is dead on with his criticism. But the problem is much deeper than Microsoft; it extends to the entire PC industry. &lt;b&gt;In the PC world, taste and culture are rarely considered, and if they are, it's always as an afterthought.&lt;/b&gt; Ship it first, make it look good later. If you &lt;i&gt;ever&lt;/i&gt; do.&lt;/blockquote&gt;Isn't it time for us to wake up smell the roses, see the huge consequences of not caring about the quality of our applications, other than ship it fast, ship it now!&lt;br /&gt;&lt;br /&gt;I mean it's obvious that Google has a similar strategy, 37signals.com, all the really good companies, care about the long term.&lt;br /&gt;&lt;br /&gt;It's even in 37signals, philosophy, to release fast, but release with less features.&lt;br /&gt;&lt;br /&gt;Or like how Google has a very simple page for their front page. which is so attractive in fulfilling our basic needs to search the internet.&lt;br /&gt;&lt;br /&gt;Where are the people who really care about their applications, more than just when their creating it, or having to fix some one else's code.&lt;br /&gt;&lt;br /&gt;I think I am personally sick to death of always having to fix someone else's code, or that it is so horribly complex and undocumented, that it takes forever to figure out what does what.&lt;br /&gt;&lt;br /&gt;I think it's time for us application programmers to take a stand, we're not just monkey's on type-writers, we care for our apps, we want them to be the best, inside and outside.&lt;br /&gt;&lt;br /&gt;I mean, they say your just a coldfusion programmer, so that is supposed to mean, don't care about the database, don't care about the design, interface or usability of their apps.&lt;br /&gt;&lt;br /&gt;Just create it, and create it now..&lt;br /&gt;&lt;br /&gt;And let someone else try to fix what bugs you introduce...&lt;br /&gt;&lt;br /&gt;I know I am a tad cynical, but I also have hope, and would love to hear from anyone else who cares too...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-6406206038283277608?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codinghorror.com/blog/archives/000769.html' title='Coding Inside and Out'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/6406206038283277608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/01/coding-inside-and-out.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/6406206038283277608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/6406206038283277608'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/01/coding-inside-and-out.html' title='Coding Inside and Out'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-116904879900523113</id><published>2007-01-17T09:40:00.000-06:00</published><updated>2007-01-17T09:46:41.343-06:00</updated><title type='text'>Do small companies/departments need structure?</title><content type='html'>This has been a question that has been hitting me home. Some companies think that because they are small, they don't need to spend any time or energy being organized/structured.&lt;br /&gt;&lt;br /&gt;By structured/organized technically I mean:&lt;br /&gt;&lt;br /&gt;1. Bug Tracking System - That helps developers kill all bugs, which incites them to create less bugs.&lt;br /&gt;&lt;br /&gt;2. Project Management System - can be excel, notepad, anything that helps developers manage their time, and managers set priorities, due dates and manage that.&lt;br /&gt;&lt;br /&gt;3. Documentation of Code Logic/Business Rules - So that if lead developer dies, and he/she had it all in their head, how in the world would the next lead developer figure out the code/logic and business rules?&lt;br /&gt;&lt;br /&gt;4. Common Coding Styles - Including page naming, commenting, indenting. And have this written to train new members, and remind old.&lt;br /&gt;&lt;br /&gt;5. Set, Record and aim for Technical Goals not related to specific projects but affect overall success of developers. IT Architecture, Scalability, Updating ColdFusion, Updating databases, Security, etc. Do you just create more code, or do you also work on improving the environmment, universe the code resides?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Maybe the size of the company can dictate the complexity or depth you go to provide solutions to your main needs, but to not provide them sounds like something that should be on the DailyWTF.com&lt;br /&gt;&lt;br /&gt;How do you explain the importance of organization/structure to those who think small companies don't need them?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-116904879900523113?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/116904879900523113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2007/01/do-small-companiesdepartments-need.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/116904879900523113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/116904879900523113'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2007/01/do-small-companiesdepartments-need.html' title='Do small companies/departments need structure?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115798637101657488</id><published>2006-09-11T09:52:00.000-05:00</published><updated>2006-09-11T09:52:51.543-05:00</updated><title type='text'>OT: 9-11 Also My Birthday</title><content type='html'>I am always sad this day, and probably will be for the rest of my life.&lt;br /&gt;&lt;br /&gt;All i ask for is that we rememeber all the lives and blood that have been spent to protect and fight for our country.&lt;br /&gt;&lt;br /&gt;I think now of two people that mean a lot to me...&lt;br /&gt;&lt;br /&gt;Todd Beamer, of Flight 93, who said the words that sparked our nation, "Let's Roll"&lt;br /&gt;&lt;br /&gt;And Nathan Hale, first american spy, who said, "I only regret that I have but one life to lose for my country. "&lt;br /&gt;&lt;br /&gt;It means to me that there are still american heroes, and that if we can unify and find ways to work together, we can be a great nation again...&lt;br /&gt;&lt;br /&gt;But today is not about politics, it is about recognizing the sacrifice of life, love and liberty that others have made, and that we should honor their deaths..&lt;br /&gt;&lt;br /&gt;Thank you...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115798637101657488?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115798637101657488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/09/ot-9-11-also-my-birthday.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115798637101657488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115798637101657488'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/09/ot-9-11-also-my-birthday.html' title='OT: 9-11 Also My Birthday'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115325209403647340</id><published>2006-07-18T14:44:00.000-05:00</published><updated>2006-07-18T14:48:14.446-05:00</updated><title type='text'>OT: I stand by Israel and America</title><content type='html'>It is time that we got rid of all those jerks who are constantly getting away with killing in Israel and worldwide.&lt;br /&gt;&lt;br /&gt;Btw, in case you didn't know I am jewish, but I am American first, and on this day I am proud of Israel for doing what America rarely has the guts to do.&lt;br /&gt;&lt;br /&gt;Stand up for the lives and rights of our family and loved ones.&lt;br /&gt;&lt;br /&gt;Like when we bombed Nagasaki or Hiroshimo, neither a pleasant experience. But when it was discovered that for us to manually take down those cities would cost us hundreds of thousands of our men's lives we chose for the attackers/evil people to die before us.&lt;br /&gt;&lt;br /&gt;I stand by Israel and any who has to defend themselves against evil that kills them and their families daily.&lt;br /&gt;&lt;br /&gt;I am a proud american this day, to know there are nations out there, who know and does what it takes to defeat evil!&lt;br /&gt;&lt;br /&gt;Because this is a holy war of evil people!&lt;br /&gt;&lt;br /&gt;They must be defeated, and if it's a choice of us dead vs them dead, I always choose them dead.&lt;br /&gt;&lt;br /&gt;God Bless America and Israel!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115325209403647340?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115325209403647340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/07/ot-i-stand-by-israel-and-america.html#comment-form' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115325209403647340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115325209403647340'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/07/ot-i-stand-by-israel-and-america.html' title='OT: I stand by Israel and America'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115254093523409301</id><published>2006-07-10T09:06:00.000-05:00</published><updated>2006-07-10T09:15:42.380-05:00</updated><title type='text'>How are we really taking advantage of code reusability?</title><content type='html'>This is something we always wanted, and now we have the tools to take advantage of it, but yet, the way companies are structured, there's no interest in having a universal library of coding modules.&lt;br /&gt;&lt;br /&gt;I mean we like cflib.org, it feels a niche, but we need something a step up, where we can share full coding modules. &lt;br /&gt;&lt;br /&gt;And this is also part of the difference between coders and designers, designers can show web designs and portfolio's, what can we really show?&lt;br /&gt;&lt;br /&gt;So to fulfill two needs, our community should create a new type of modulare code sharing. &lt;br /&gt;&lt;br /&gt;Here are my simplistic ideas for the structure of this code sharing community.&lt;br /&gt;&lt;br /&gt;People would submit code, and put it into a category, registered members would review, and rate the code.&lt;br /&gt;&lt;br /&gt;The code submitted should be framework neutral, something that could be used in almost any method. That of course could change as the amount code modules were available.&lt;br /&gt;&lt;br /&gt;You can view the code, download the code, test the code, except code that is database specific, or File IO Specific.&lt;br /&gt;&lt;br /&gt;Also other members can try to compete against the same code goal, and see if they can write it better in any of the following ways:&lt;br /&gt;&lt;br /&gt;1. Clearer Documentation&lt;br /&gt;2. Scalible to different levels of needs&lt;br /&gt;3. Can it be done in less lines of functionality&lt;br /&gt;4. Is there a version of it, in each of the popular frameworks of the times?&lt;br /&gt;&lt;br /&gt;Etc. Keep it simple at first, but competition would provide coding examples of what good code was, and make good code available to beginners, or those who want to deliver products/services faster.&lt;br /&gt;&lt;br /&gt;Rapid Application Development&lt;br /&gt;&lt;br /&gt;There would also be a Dreamweaver Extension or Webservice, where you can browse, view, or download modules as you had a need for it.&lt;br /&gt;&lt;br /&gt;I just had the idea, does this interest people?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115254093523409301?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115254093523409301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/07/how-are-we-really-taking-advantage-of.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115254093523409301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115254093523409301'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/07/how-are-we-really-taking-advantage-of.html' title='How are we really taking advantage of code reusability?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115254002731241643</id><published>2006-07-10T08:55:00.000-05:00</published><updated>2006-07-10T09:00:28.466-05:00</updated><title type='text'>What do you expect to be at new cf jobs?</title><content type='html'>I mean as we get more experienced, we have certain expectations of the way the development environment is setup. And each of us may slightly vary on that list, or what solutions.&lt;br /&gt;&lt;br /&gt;When I start a new job, I expect:&lt;br /&gt;&lt;br /&gt;1. Source Control&lt;br /&gt;2. Coding Style Documentation or at least an example&lt;br /&gt;3. Development Life Cycle, of where we do code from development to production&lt;br /&gt;4. Project Management Process/System: So I know how to correctly manage my time, especially since there usually is a lot of multi-tasking.&lt;br /&gt;5. Am I working alone or as part of a team, and how is the division of labor of that team organized?&lt;br /&gt;6. What kind of training or training support is there?&lt;br /&gt;7. What is the architecture of the code and database?&lt;br /&gt;&lt;br /&gt;That's my basic list, what is your list?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115254002731241643?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115254002731241643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/07/what-do-you-expect-to-be-at-new-cf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115254002731241643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115254002731241643'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/07/what-do-you-expect-to-be-at-new-cf.html' title='What do you expect to be at new cf jobs?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115221951297236012</id><published>2006-07-06T15:58:00.000-05:00</published><updated>2006-07-06T15:58:33.580-05:00</updated><title type='text'>Where's the beef?</title><content type='html'>Well here's the thing, when i start off at a new company, I usually have to bring my bag own set of standard needs as a developer. And it's hard to find the solutions that fit every company.&lt;br /&gt;&lt;br /&gt;1. What source control to use, and will it be cheap and work with many different ide's?&lt;br /&gt;&lt;br /&gt;2. What kind of project management process or system aka How do we manage our time and priorities so that work that should be getting done is getting done.&lt;br /&gt;&lt;br /&gt;3. What's our development environment? Do we have a dev server, production server, perhaps even a testing or qa server? And do each have seperate web and database servers?&lt;br /&gt;&lt;br /&gt;4. What database are we using, is it well designed, what tools do i need to help make sure it's being used correctly and is well maintained. Are they using any maintenance plans, is there any diagrams of the database structure or ERD's?&lt;br /&gt;&lt;br /&gt;5. What kind of coding style/framework are we using, what's the naming conventions, I want all of this info right away, so that the work I do, can fit in, with the best practices of cfml and the practices that this company wants it's way of doing things?&lt;br /&gt;&lt;br /&gt;6. What tools/software do i need to download to have an elite developer's station? What OS? What DB Tools..&lt;br /&gt;&lt;br /&gt;7. What kind of training plan is there or should we have?&lt;br /&gt;&lt;br /&gt;I mean that's my point, there is no universal starting point or standards for the above question.&lt;br /&gt;&lt;br /&gt;Every place I go, there is a mass discussion as to how what I consider bare minimum requirements. Why worry about what framework, if we don't have hte basics covered first?&lt;br /&gt;&lt;br /&gt;That is my current blog point..&lt;br /&gt;&lt;br /&gt;Think about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115221951297236012?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115221951297236012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/07/wheres-beef.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115221951297236012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115221951297236012'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/07/wheres-beef.html' title='Where&apos;s the beef?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115221522079636091</id><published>2006-07-06T14:46:00.001-05:00</published><updated>2006-07-06T14:47:01.026-05:00</updated><title type='text'>Framework Evangelism</title><content type='html'>This is what irritates me about coldfusion, i love to code. But if i don't code the way everyone else does, that somehow makes me a crappy coder. &lt;br /&gt;&lt;br /&gt;If your happy with the way you work, so be it.&lt;br /&gt;&lt;br /&gt;But we have to think more than just short term.&lt;br /&gt;&lt;br /&gt;What if you died, and no one using your specific method was available for hire, and had to hire any variation of a coldfusion developer, how easy is it to take off from where you were to make changes, understandable.&lt;br /&gt;&lt;br /&gt;But instead of seeing that as a practical need, you see that somehow as an attack on your favorite framework.&lt;br /&gt;&lt;br /&gt;And honestly it really is irritating, the constant insinuations, the evangelization, join us, be with the good coders. &lt;br /&gt;&lt;br /&gt;Because if your not with us, your against us.&lt;br /&gt;&lt;br /&gt;That is totally purille.&lt;br /&gt;&lt;br /&gt;I am not here out to defame or destroy the way you code..&lt;br /&gt;&lt;br /&gt;But like with any method, even how you vacuum your home, there are pros and cons of every method of doing anything. And i try to bring up a few things, not because i want to hurt, insult or destroy your framework or methodology, but because I want to bring it to your attention as something to think about.&lt;br /&gt;&lt;br /&gt;Is it so hard to admit that your framework or method of choice has flaws?&lt;br /&gt;&lt;br /&gt;I know i try to always improve how I do things, make sure I understand the short term and long term costs of the way I do things.&lt;br /&gt;&lt;br /&gt;All I ever wanted was to stop coldfusion from producing bad code, but you just can't believe that the way to do that may not be your way. And I am not saying my way is 100% perfect, there is no such thing.&lt;br /&gt;&lt;br /&gt;Let's grow up a tad, and stop pushing X framework as the solution of all problems...&lt;br /&gt;&lt;br /&gt;I may disagree with you,, but I don't hate you for disagreeing with me. &lt;br /&gt;&lt;br /&gt;But it seems the more i try to participate in helping this industry grow as a blogger.&lt;br /&gt;&lt;br /&gt;The more i get hate mail or the wrongful assumption i am trying to hurt or destroy someone's framework.&lt;br /&gt;&lt;br /&gt;I honestly do not see OO or Java as the way to be the best coders, that's my humble opinion. It may work for you, and htat's fine I am not trying to persuade you one way or the other.&lt;br /&gt;&lt;br /&gt;I was only trying to have a logical discussion.&lt;br /&gt;&lt;br /&gt;But instead I get comments like, well you've not used OO or OOP, so your obviously a low quality programmer.&lt;br /&gt;&lt;br /&gt;Is that what Hal Helms and Steve Nelson and other greats really had in mind when they had these ideas for improving coldfusion, that it's our way or the highway?&lt;br /&gt;&lt;br /&gt;Where are all the nice people in coldfusion?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115221522079636091?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115221522079636091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/07/framework-evangelism_06.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115221522079636091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115221522079636091'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/07/framework-evangelism_06.html' title='Framework Evangelism'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115167263700055412</id><published>2006-06-30T07:48:00.000-05:00</published><updated>2006-06-30T08:03:57.333-05:00</updated><title type='text'>Being Mr. Clean</title><content type='html'>I'd like to share some of my experiences as a coder in the Mr. Clean role, where've i've had thru the last 3+ years, been the person cleaning up the code for other people.&lt;br /&gt;&lt;br /&gt;And maybe it's having to do that constantly, that has made more my focus on the basics, rather than soem advanced cf programming.&lt;br /&gt;&lt;br /&gt;So i'd like to share some of my systematic approaches I have to improving the code.&lt;br /&gt;&lt;br /&gt;1. Documentation&lt;br /&gt;&lt;br /&gt;Commenting is essential as more programmers are aware of, but when you have a lot of coldfusion files and applications, it's time to step up and document your applications as well. &lt;br /&gt;&lt;br /&gt;And this doesn't have to be something highly complex. &lt;br /&gt;&lt;br /&gt;For example if your a dba, you'd create a Entity Relationship Diagram as both document and reference material.&lt;br /&gt;&lt;br /&gt;As a coder create an Informational Architechture of your Applications&lt;br /&gt;&lt;br /&gt;Pick an Application on your site.&lt;br /&gt;&lt;br /&gt;A. What files/folders does it contain&lt;br /&gt;B. What custom tags/includes/cffunctions does it use&lt;br /&gt;C. What datasource/databases does it use?&lt;br /&gt;D. Any kind of major current problems going on with it?&lt;br /&gt;E. And if you have the information, perhaps a small history would be nice as well.&lt;br /&gt;&lt;br /&gt;This is all about my belief in the importance of preparing for the worst, and also providing training information, for either a peer, a successor, your manager, etc.&lt;br /&gt;&lt;br /&gt;2. Source Control&lt;br /&gt;&lt;br /&gt;This may sound sad or amusing, but not every company has source control in place, or knows what one is easiest to use and deploy. Or what ones can be cheap to try out and cause the least problems&lt;br /&gt;&lt;br /&gt;This takes time and trying different ones out. &lt;br /&gt;&lt;br /&gt;3. Pick and Document a Method/Framework&lt;br /&gt;&lt;br /&gt;It doesn't matter to me what method you pick, but document as much of it as possible, what naming conventions your gonna use, coding styles, working in any kind of teamwork styles etc.&lt;br /&gt;&lt;br /&gt;Even if your using the most known framework in cf world, each company tends to have it's own unique flair for how they implement it. So document it, for your posterity's sake.&lt;br /&gt;&lt;br /&gt;4. Know and Train to be expert on all levels of application development.&lt;br /&gt;&lt;br /&gt;Where you may start out by being a part of a team, using methods like fusebox where you only have to code in certain aspects of coldfusion application development, in the end, if someone leaves, or you move on, you may not always have the option of just coding in what you've done so far.&lt;br /&gt;&lt;br /&gt;So I still believe that training in all aspects are important, good coding styles, using your variables/incoming data, parsing/manipulating strings/data, interaction with databases in writing great sql, basic layout and design.&lt;br /&gt;&lt;br /&gt;I am not claiming to be an expert, I just suggest it's wise in the long haul to know as much as possible.&lt;br /&gt;&lt;br /&gt;Now of course, it may not always be easy to implement all of these ideas, right away at full 100%, so you need to find small things, small incremental ways, so that you're gradually becoming the full rounded, long term thinking/planning developer.&lt;br /&gt;&lt;br /&gt;I hope someday where I can stop having to go to places and be Mr. Clean, and just write good code.&lt;br /&gt;&lt;br /&gt;Thank you.&lt;br /&gt;&lt;br /&gt;P.S. Happy Forth of July&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115167263700055412?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115167263700055412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/06/being-mr-clean.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115167263700055412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115167263700055412'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/06/being-mr-clean.html' title='Being Mr. Clean'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115149465917963505</id><published>2006-06-28T06:20:00.000-05:00</published><updated>2006-06-28T06:37:39.630-05:00</updated><title type='text'>How did you get your ColdFusion Training?</title><content type='html'>After a lot of the comments back and forth, I am kind of curious to here some comments on the different ways and methods that we all got trained to learn to use coldfusion. &lt;br /&gt;&lt;br /&gt;I myself, learned by bothering the web development team, when I was a tech support person, to learn how to do everything from html, javascript and coldfusion.&lt;br /&gt;&lt;br /&gt;I was always a person who wanted to learn more, do more. &lt;br /&gt;&lt;br /&gt;No one was offering any training, classes, books. &lt;br /&gt;&lt;br /&gt;But on my own I had started off by getting an Instant HTML book, then just started to play with html, javascript etc.&lt;br /&gt;&lt;br /&gt;As for training companies provide, in my personal job experience:&lt;br /&gt;&lt;br /&gt;1. I have been to exactly 1 ColdFusion Conference, CFNorth, loved it tremendously, but the company wouldn't pay to go a second time. Most of the companies I worked for did not seem willing to spend money on training, other than to maybe buy a book for you, and that was if you were lucky.&lt;br /&gt;&lt;br /&gt;2. I also went to a free Allaire Spectra Demonstration in Minneapolis, where I saw Raymond Camden for the first time. Not because I really was into Spectra, but because it was free and it was any kind of coldfusion training that i could actually hear other developers from.&lt;br /&gt;&lt;br /&gt;3. And this was before the days I even heard there was a CFUG, but I really did like the early days of the CFUG. I even was lucky enough to present a few times.&lt;br /&gt;&lt;br /&gt;4. But most of my training was either me buying books on my own, learning on my own. I just asked a lot of questions.&lt;br /&gt;&lt;br /&gt;5. Eventually I got the opportunity to help train others at 1 company, and I tremendously enjoyed that, not because I want to shove my preconceived notions down someone's throat, but really because I want to help other people have to go thru the painful process of learning that I and many others had to go thru. The CF Developer's Guidebook is awesome both for learning to get certified, but to also help know what are all the aspects of cf to master.&lt;br /&gt;&lt;br /&gt;6. But as I get exposed more to different jobs, companies, it just became obvious to me that companies didn't really want to help train you. They wanted you to be trained in how ever many programming languages and methods, but didn't want to take the time or money to help you really master it.&lt;br /&gt;&lt;br /&gt;7. And I've done a lot of job interviews, it would be very shaming that I would see all these web shops, that just didn't care about the quality of their code, yet I would have to try to get those jobs because sometimes that's all there was.&lt;br /&gt;&lt;br /&gt;8. So because of that, I started to write my first articles, and I posted thme on defusion.com, they are still there. &lt;br /&gt;&lt;br /&gt;I mean I even created this blog, because I want to both learn more, share more, hopefully to bring the quality of our industry as high as it gets.&lt;br /&gt;&lt;br /&gt;But it really upsets and insults me all the negative comemnts I get. Like that because I don't agree with them, or didn't have the same experiences as them, that I am somehow not a good programmer.&lt;br /&gt;&lt;br /&gt;I mean we are all shaped by our experiences, and none of us exactly have the same ones, can't we respect that out of each other?&lt;br /&gt;&lt;br /&gt;I really hope you can see past your biases, to our common desires and dreams for coldfusion to be the best it can be, and that we as an industry can shine...&lt;br /&gt;&lt;br /&gt;I am no Ben Forta, Charlie Arehart, I am just a ColdFusion Developer who loves ColdFusion, I just want to both be the best, and help us all as i can be the best.&lt;br /&gt;&lt;br /&gt;So tell us all what kind of training experiences you had, I really would like to hear.&lt;br /&gt;&lt;br /&gt;Thank you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115149465917963505?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115149465917963505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/06/how-did-you-get-your-coldfusion.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115149465917963505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115149465917963505'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/06/how-did-you-get-your-coldfusion.html' title='How did you get your ColdFusion Training?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-115141581549255360</id><published>2006-06-27T08:31:00.000-05:00</published><updated>2006-06-27T08:43:35.750-05:00</updated><title type='text'>Are we going down a healthy path of ColdFusion?</title><content type='html'>Lately all i hear is eclipse, java, .net, code reuse, database introspection, and I find it rather irritating, I mean honestly have we as an industry really proven that we create stable, usable applications?&lt;br /&gt;&lt;br /&gt;Maybe that's why I care less about what the trends are, because I see us more focus on what's new than doing ColdFusion at higher level's of quality.&lt;br /&gt;&lt;br /&gt;I've had a lot of job interviews with many different companies, but what strikes me is this drive to new technology, without even been to the point of creating good code.&lt;br /&gt;&lt;br /&gt;I think we've lost track of the lessons we should have learned with the dot-bomb. &lt;br /&gt;&lt;br /&gt;Here are some of the lessons I learned:&lt;br /&gt;&lt;br /&gt;1. There has to be solid financial stability, could care less for IPO's, porsche's but just to have a job I can keep, and be at for 10-20 years would be really ncie for a change.&lt;br /&gt;&lt;br /&gt;2. The end of all these schlock shops that just churn out code, that 1-2 years later embarrasses or destroy's their reputation, because it was crappy coding.&lt;br /&gt;&lt;br /&gt;3. New Trends/Fads are fun, but are no replacement for solid standards, good work ethics, and giving a damn about the applications you sell/provide or service.&lt;br /&gt;&lt;br /&gt;4. The end of Short Term Planning/Thinking, I mean sure there are things we have to get done in the short term, but why keep self-destructing by avoiding what is essential to being a top knotch language...&lt;br /&gt;&lt;br /&gt;Maybe that is why I am a fan of Charlier Arehart and a few others out htere, that try to help us create better code and applications....&lt;br /&gt;&lt;br /&gt;Maybe that's why I could care less about OO, Fusebox, MachII, ColdReactor, ColdSpring.. Because are we really as a whole industry really turning out applications like we should be, something to be proud of, that lasts, instead of having to always re-write everything in 2-3 years because we didn't give a crap...&lt;br /&gt;&lt;br /&gt;Maybe that's why I use to go to CFUG meetings and read the CFDJ....&lt;br /&gt;&lt;br /&gt;Instead I get, have you done an enterprise application, focus on inane details instead of am I proud of the code I create, do I give a hoot that 5-15 years later it is still reasonably easy to read, scalable, can be easily fixed or changed...&lt;br /&gt;&lt;br /&gt;I love programming in ColdFusion, just not sure where I fit in an industry that cares more about having/creating the next dot-com explosion when we really know it's just gonna blow in our faces again...&lt;br /&gt;&lt;br /&gt;Just think about it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-115141581549255360?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/115141581549255360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/06/are-we-going-down-healthy-path-of.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115141581549255360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/115141581549255360'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/06/are-we-going-down-healthy-path-of.html' title='Are we going down a healthy path of ColdFusion?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114796554766271175</id><published>2006-05-18T10:19:00.000-05:00</published><updated>2006-05-18T10:19:07.780-05:00</updated><title type='text'>From Fluff to Functional:Dotcom Titles Evolve</title><content type='html'>I am completely frustrated with the whole mass confusion that exists as part of the IT/Web Job Search...&lt;br /&gt;&lt;br /&gt;I want to open a discussion between recruiters, job seekers and big resume sites, to help clear this confusion up...&lt;br/&gt;&lt;br/&gt;&lt;a href="http://technology.monster.com/articles/dotcomtitle/"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/technology/From_Fluff_to_Functional:Dotcom_Titles_Evolve"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114796554766271175?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114796554766271175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/05/from-fluff-to-functionaldotcom-titles.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114796554766271175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114796554766271175'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/05/from-fluff-to-functionaldotcom-titles.html' title='From Fluff to Functional:Dotcom Titles Evolve'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114616556038987046</id><published>2006-04-27T14:15:00.000-05:00</published><updated>2006-04-27T14:19:20.406-05:00</updated><title type='text'>Dealing with non-standard boolean values</title><content type='html'>I am have worked with how Access and other sources deliver non-standard variances of boolean variables.&lt;br /&gt;&lt;br /&gt;After all when you update/insert to the database, all you want is a 1 or 0. &lt;br /&gt;&lt;br /&gt;So I created this udf to help speed that process up.&lt;br /&gt;&lt;br /&gt;&amp;lt;cfset one = "false"&amp;gt;&lt;br /&gt;&amp;lt;cfset two = "0"&amp;gt;&lt;br /&gt;&amp;lt;cfset new_one = 0&amp;gt;&lt;br /&gt;&amp;lt;cfset new_two = 0&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;b&amp;gt;default values:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;cfoutput&amp;gt;&lt;br /&gt;one = #one#&amp;lt;br&amp;gt;&lt;br /&gt;two = #two#&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfscript&amp;gt;&lt;br /&gt; function booleanize(value) {&lt;br /&gt;  if (not isboolean(value)) {&lt;br /&gt;   value = replacenocase(value,'on',1);&lt;br /&gt;   value = replacenocase(value,'off',0);&lt;br /&gt;  }&lt;br /&gt;  if (yesnoformat(value) eq 'Yes') {&lt;br /&gt;   value = 1;&lt;br /&gt;  }&lt;br /&gt;  if (yesnoformat(value) eq 'No') {&lt;br /&gt;   value = 0;&lt;br /&gt;  }&lt;br /&gt;  return value;&lt;br /&gt; }&lt;br /&gt;&amp;lt;/cfscript&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;cfoutput&amp;gt;&lt;br /&gt;&amp;lt;b&amp;gt;New Values:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;one = #booleanize(one)#&amp;lt;br&amp;gt;&lt;br /&gt;two = #booleanize(two)#&amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;/cfoutput&amp;gt;&lt;br /&gt;&lt;br /&gt;This includes the udf as well as the test example. &lt;br /&gt;&lt;br /&gt;I know it sounds simple, but this is easier than having to adjust your code logic for every checkbox, access on/off or true/false value.&lt;br /&gt;&lt;br /&gt;Think about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114616556038987046?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114616556038987046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/04/dealing-with-non-standard-boolean.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114616556038987046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114616556038987046'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/04/dealing-with-non-standard-boolean.html' title='Dealing with non-standard boolean values'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114613784849597928</id><published>2006-04-27T06:37:00.000-05:00</published><updated>2006-04-27T06:37:29.210-05:00</updated><title type='text'>FEMA needs to be scrapped, senators say</title><content type='html'>Instead of fixing the problem, they want create a new organization in the same image. Ah but here is the punchline, they want to do this, 5 weeks before the Hurrican Season.&lt;br /&gt;&lt;br /&gt;Amazing stupidity...&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.chron.com/disp/story.mpl/front/3823000.html"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/technology/"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114613784849597928?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114613784849597928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/04/fema-needs-to-be-scrapped-senators-say.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114613784849597928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114613784849597928'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/04/fema-needs-to-be-scrapped-senators-say.html' title='FEMA needs to be scrapped, senators say'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114441939043206066</id><published>2006-04-07T09:05:00.000-05:00</published><updated>2006-04-07T09:16:30.503-05:00</updated><title type='text'>Why SQL programming is so important to a CF Developer?</title><content type='html'>Right now I am listening to the &lt;a href="http://www.coldfusionpodcast.com/node/54"&gt;ColdFusion Podcast&lt;/a&gt;, and I have to strongly agree with them, on the importance of learning to write correct and scalable sql code.&lt;br /&gt;&lt;br /&gt;There are many different databases, and most cfers, start with access, which is great for beginners or very low traffic sites.&lt;br /&gt;&lt;br /&gt;However if you want to build something that has to be able to handle lots of transactions.&lt;br /&gt;&lt;br /&gt;Now the first part is to understand what causes blocks of performance?&lt;br /&gt;&lt;br /&gt;Well for first off, any time you interact with the database with a cfquery or cfstoredproc, you are creating seperate blocks of memory, that need to be processed.&lt;br /&gt;&lt;br /&gt;So how many cfqueries and correctly written queries is what really matters.&lt;br /&gt;&lt;br /&gt;When you write the queries, identify the columns of data that you want to bring back. And Only have those columns in your select statement. In addition, having the columns in the correct order, as they are created in the tables, helps for performance...&lt;br /&gt;&lt;br /&gt;Learn your table structures, make queries that work with the grain of their structure instead of warping it, making it go thru extra processing just because you were too lazy to put things in the correct order....&lt;br /&gt;&lt;br /&gt;Now if it is just one table in the query, there are limits to what more you can do, to improve performance...&lt;br /&gt;&lt;br /&gt;But with joins, you can take the query from the cfquery to a view or stored procedure. Views are usually the easiest, to create, from within sql enterprise manager.&lt;br /&gt;&lt;br /&gt;Now when you run the page you can identify the performances of each cfquery, and over time you will get a hang for what query is causing problems or not...&lt;br /&gt;&lt;br /&gt;For example if you are looping and doing a cfquery within that loop. That is actually causing a performance problem. The better approach is to combine the top query with the query in the loop, so that it is one connection with the server instead of looping.&lt;br /&gt;&lt;br /&gt;Part of the problem is having the right tools and using them correctly...&lt;br /&gt;&lt;br /&gt;But this all that i have time to discuss, please ask any questions. I'd be glad to help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114441939043206066?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114441939043206066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/04/why-sql-programming-is-so-important-to.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114441939043206066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114441939043206066'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/04/why-sql-programming-is-so-important-to.html' title='Why SQL programming is so important to a CF Developer?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114417145914356364</id><published>2006-04-04T12:17:00.000-05:00</published><updated>2006-04-04T12:24:19.180-05:00</updated><title type='text'>Charlie Arehart: A Pragmatic CFer</title><content type='html'>I know it's sad he's leaving Blue Dragon, and I know it feels like he's leaving. He isn't. &lt;br /&gt;&lt;br /&gt;But perhaps this is our time, to give thanks and respect to one of the true leaders of our community.&lt;br /&gt;&lt;br /&gt;I can still remember reading some of his first articles in cfdj, and I was really impressed, because to me, I wanted to learn more, do more, and be as efficient as possible.&lt;br /&gt;&lt;br /&gt;To me, he seemed, how can I help people from any level of experience in cfml, program faster, easier and more efficiently.&lt;br /&gt;&lt;br /&gt;From his tips about CF Studio and Homesite, to his different articles on developing.&lt;br /&gt;&lt;br /&gt;I mean we all knew synax of Cf, but putting it together in a professional and efficient manner isn't something that we had the ability to take classes on.&lt;br /&gt;&lt;br /&gt;So in bits and pieces, he is the guy that gave you that extra depth, made things faster for you to develop.&lt;br /&gt;&lt;br /&gt;Gave you some undocumented features and knowledge of how CFML works.&lt;br /&gt;&lt;br /&gt;I think that is is because of cf writers and programmers like Charlie Arehart, are the reason I wanted to blog and become a writer.&lt;br /&gt;&lt;br /&gt;Remember your committment to the cf community is not just about how many articles or books, it's about your passionate committment to the craft of programming in cfml.&lt;br /&gt;&lt;br /&gt;Thank you Charlie.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114417145914356364?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114417145914356364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/04/charlie-arehart-pragmatic-cfer.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114417145914356364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114417145914356364'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/04/charlie-arehart-pragmatic-cfer.html' title='Charlie Arehart: A Pragmatic CFer'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114404589030382007</id><published>2006-04-03T01:10:00.000-05:00</published><updated>2006-04-03T07:50:58.060-05:00</updated><title type='text'>Textpad: Still the best coding tool</title><content type='html'>It is still amazing, after 10 years, I still use textpad for my code editing. There are many reasons why it is superior to any ide.&lt;br /&gt;&lt;br /&gt;    * the ability to maintain block indents&lt;br /&gt;    * automatic code indentation (see indent style)&lt;br /&gt;    * regular expression based search and replace, including multiline regex&lt;br /&gt;    * Macro recording feature to facilitate complex text transformations and data processing.&lt;br /&gt;          o Macro feature supports multiple regex searches (and replacements) within a macro&lt;br /&gt;    * syntax highlighting (extendable to many different languages)&lt;br /&gt;    * ability to call external programs (such as Java compilers)&lt;br /&gt;    * large file support&lt;br /&gt;    * support for editing multiple files, with tabbed document selection&lt;br /&gt;    * block select mode&lt;br /&gt;    * synchronized scrolling of multiple files&lt;br /&gt;&lt;br /&gt;Pure and simple it is the best text editor, at least so for me.&lt;br /&gt;&lt;br /&gt;The interface is customizable, it has clip libraries so you can have snippets, auto commands etc.&lt;br /&gt;&lt;br /&gt;But where it excels is the speedy file/folder search which can be enhanced by using Regular Expressions.&lt;br /&gt;&lt;br /&gt;Why a text editor vs an IDE?&lt;br /&gt;&lt;br /&gt;Well i believe in something called feature over-creep, where the at some point the application fulfilled all the core needs, but because they wanted to keep making money, they added more and more features, that probably would be best as a seperate application...&lt;br /&gt;&lt;br /&gt;Do we really need an application that does everything? Or the best application for each specific need?&lt;br /&gt;&lt;br /&gt;I guess it depends on your style, old school vs new school...&lt;br /&gt;&lt;br /&gt;I'd rather have a fast and powerful editor, then something that did so many things i really could care less for. And look at how the memory requires of each is quite different...&lt;br /&gt;&lt;br /&gt;What are the favorite old school software you still love to use?&lt;br /&gt;&lt;br /&gt;Here is a few of my favorite's:&lt;br /&gt;&lt;br /&gt;1. Namewiz - Batch file renamer for renaming digital photo files and any other files, according to masks or however you format it. &lt;br /&gt;You can get NameWiz &lt;a href="http://www.softbytelabs.com/us/nw/"&gt;here&lt;/a&gt;.&lt;br /&gt;2. Eyedropper - a system tray color grabber http://eyedropper.inetia.com/&lt;br /&gt;3. IrfanView - greatest image viewer ever&lt;br /&gt;4. Freenote - a notes system that i used to create all my notes for every task/project. It stays right in the system tray, ready when you need it. Get it &lt;a href="http://mps.firstonline.dk/#Freenote"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That's enough for now...Please add your favorites as a comment...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114404589030382007?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114404589030382007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/04/textpad-still-best-coding-tool.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114404589030382007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114404589030382007'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/04/textpad-still-best-coding-tool.html' title='Textpad: Still the best coding tool'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114364337092757646</id><published>2006-03-29T08:35:00.000-06:00</published><updated>2006-03-29T08:42:50.943-06:00</updated><title type='text'>I think I am getting OO</title><content type='html'>After that's all the cf blogs talk about lately, and so I am kind of slowly but surely getting on to that path.&lt;br /&gt;&lt;br /&gt;To me it's all about better architecture for applications. I kind of like the idea of Model-View Controller, it was the methodology that was taught in that Fusebox Class I took..&lt;br /&gt;&lt;br /&gt;It honestly was very interesting, if you work in team environments.&lt;br /&gt;&lt;br /&gt;My big pet peeves was, the parsing fusebox has to do, to enable mvc. Now I admit I am still new to MVC and OO. &lt;br /&gt;&lt;br /&gt;And that was my big problem with the whole process, was the whole setup process, how it affects performance, having to do all the parsing to enable MVC.&lt;br /&gt;&lt;br /&gt;Secondly, how can we tell if we're going too far into OO, aka focusing more on the architechture then speed of delivery.&lt;br /&gt;&lt;br /&gt;I think it would be nice to get some opportunity to learn and practice more MVC/OO.&lt;br /&gt;&lt;br /&gt;And get my hands dirty in Ajax.&lt;br /&gt;&lt;br /&gt;But until then, I will focus on my basics.&lt;br /&gt;&lt;br /&gt;Project Management, Scalability, Documentation, Performance, Best Practices.&lt;br /&gt;&lt;br /&gt;One of the ideas, I had posted a long time ago, was to have some kind of global code repository, like cflib, but it would be full applications, not tags. The purpose of this is to share code, review code, to see who writes what kind of application, in what way, that is both optimal and scalable.&lt;br /&gt;&lt;br /&gt;Other than that, let's keep bring the bar up on CFML being the language to program in. We should be both coders and scientists...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114364337092757646?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114364337092757646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/03/i-think-i-am-getting-oo.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114364337092757646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114364337092757646'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/03/i-think-i-am-getting-oo.html' title='I think I am getting OO'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114348585957260626</id><published>2006-03-27T12:52:00.000-06:00</published><updated>2006-03-27T12:57:39.586-06:00</updated><title type='text'>Does Documentation Methodology Exist?</title><content type='html'>This is something I have been thinking about for the last 2-3 years, I see situation where companies have created a lot of wonderful applications.&lt;br /&gt;&lt;br /&gt;However there is no documentation as to what those applications are, what code, databases, tables, servers.&lt;br /&gt;&lt;br /&gt;I know this is a part of the argument about coldfusion developers not being computer scientists, and perhap's we're not..&lt;br /&gt;&lt;br /&gt;But how come there isn't some research or tools on this?&lt;br /&gt;&lt;br /&gt;Am i the only one concerned with the overwhelming lack of documentation methodologies?&lt;br /&gt;&lt;br /&gt;I mean, currently i am on contract, and we don't have documentation of our applications, and we want to create that, but don't have a clear method as how to extract that information and put it into an updatable and digestable format.&lt;br /&gt;&lt;br /&gt;There's no list of applications, there's no manual or bibliography of coding style's etc. They have good people here, but how can we put it together...&lt;br /&gt;&lt;br /&gt;I mean we like many people, don't have the time and energy to browse by hand every aspect of the sites, and then also browse thru the code, databases, structures etc.&lt;br /&gt;&lt;br /&gt;There must be a means, to extract that information and present it in a digestable format.&lt;br /&gt;&lt;br /&gt;Have any of you seen tools like this?&lt;br /&gt;&lt;br /&gt;Does a documentation metholodgy exist?&lt;br /&gt;&lt;br /&gt;Or does all that matter is that we put comments in our code?&lt;br /&gt;&lt;br /&gt;This just personaly irritates me, because we all want to get to this higher level of professionalism, as an industry, but do we cover all the bases that includes?&lt;br /&gt;&lt;br /&gt;Just a question.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114348585957260626?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114348585957260626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/03/does-documentation-methodology-exist.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114348585957260626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114348585957260626'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/03/does-documentation-methodology-exist.html' title='Does Documentation Methodology Exist?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114295231275198103</id><published>2006-03-21T08:34:00.000-06:00</published><updated>2006-03-21T08:45:26.076-06:00</updated><title type='text'>The Importance of Solid Project Management</title><content type='html'>First off, i am listening to the latest ColdFusion Podcast, about project management &lt;a href="http://www.coldfusionpodcast.com/"&gt;here&lt;/a&gt;. And I enjoy hearing about how developers battle/deal with clients about managing the projects.&lt;br /&gt;&lt;br /&gt;Honestly it all starts with preparation, if you don't have a solid project management process and system, that can handle almost every situation...&lt;br /&gt;&lt;br /&gt;And when you skip the process, you'll only be causing your own problems.&lt;br /&gt;&lt;br /&gt;I stick by the process I helped to create at Rockler, it's simple and solid, but adapt it towards your own needs.&lt;br /&gt;&lt;br /&gt;Then make sure everyone is on board for it, if not, it's just gonna self-destruct.&lt;br /&gt;&lt;br /&gt;1. Project Request - Whether you are working with a boss, client or another department, the crust of all failures of projects start with the request. This has to be as fully detailed as possible. &lt;br /&gt;&lt;br /&gt;It pays to define your specs as to what information you want from them. Because if they want to save time and energy and stress, the more information they provide the more accurate a picture of the project you'll have.&lt;br /&gt;&lt;br /&gt;2. Project Plan - Now you take that request and figure out how to display what your idea of how to execute the plan out. You can not jump to any conclusions, you do not assume anything.&lt;br /&gt;&lt;br /&gt;3. Project Review - This is the process of reviewing the plans to make sure that the requester agrees and approves of exactly the full details of your project plan, if not, then go over step by step, what needs to be changed in your project plan, until it matches 100% what they need and want. If they sign off on the project, then no changes can be allowed. This is their time to add features, or change look and feel etc. Here you can do the prototyping, wireframing etc. Whatever it takes to show the flow of the application. Also this is the time you develop a functional testing checklist, so how will you know if each step of the application is a success or not a success. The more work you work with clients to do this, the more accurate your project will do.&lt;br /&gt;&lt;br /&gt;4. Project Coding/Developing - Now you start to actual taking the plan, and step by step execute your plan, no variations allowed. And the more you document any variations. &lt;br /&gt;&lt;br /&gt;5. Testing - Use a test server, to test the applications, without making it available to public, use your functional testing checklist...&lt;br /&gt;&lt;br /&gt;6. Deployment - Make sure you have a plan for this especially when you have different database, coding, graphics, files etc. More complexity demands solid planning and scheduling...&lt;br /&gt;&lt;br /&gt;Now no system is perfect, and all of them get refined to the style of your project management...&lt;br /&gt;&lt;br /&gt;But it all depends on how many project errors you have....&lt;br /&gt;&lt;br /&gt;Use your project horror stories to improve yourself, learn from your mistakes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114295231275198103?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114295231275198103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/03/importance-of-solid-project-management.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114295231275198103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114295231275198103'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/03/importance-of-solid-project-management.html' title='The Importance of Solid Project Management'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114254443944096448</id><published>2006-03-16T15:02:00.000-06:00</published><updated>2006-03-16T15:27:37.503-06:00</updated><title type='text'>More thoughts on frameworks</title><content type='html'>There have been a lot interesting blog posts back and forth about frameworks, java integration. &lt;br /&gt;&lt;br /&gt;I don't want to bring up the huge framework flamewars, I just want to ask a few questions, and postulate a few answers..&lt;br /&gt;&lt;br /&gt;Frameworks in all honesty, are our attempt as cfers, to finally deploy some computer science concepts into coldfusion. Being that the huge majority of cfer's did not go thru any computer science training.&lt;br /&gt;&lt;br /&gt;Being as that may be, we each thru our own experiences, and needs we have developed. We have our own set of ideas what we need from a coldfusion development environment..&lt;br /&gt;&lt;br /&gt;And it is that development that enables us to deliver good applications...&lt;br /&gt;&lt;br /&gt;And that's half the problem, we don't know which com sci concepts to put within coldfusion coding methods. Do we use OO, do we use scaffolding, rails, beans, etc. &lt;br /&gt;&lt;br /&gt;Now when I personnally saw that CFML was on a java platform, my thought wasn't how can i code my cfml in java syntax.&lt;br /&gt;&lt;br /&gt;My thought was, oh nice, now i can use some java functions/modules, that can do more things that what cfml has built in to it.&lt;br /&gt;&lt;br /&gt;I can remember some image manipulation tag I had to use in the 1990's to resize images, and that if it had been java based it would have been much smoother, more options, etc.&lt;br /&gt;&lt;br /&gt;Each has it's strength, so let's maximize what each can do, to create the best applications...&lt;br /&gt;&lt;br /&gt;But each person on the chain of development to production, has different needs.&lt;br /&gt;&lt;br /&gt;Manager Needs&lt;br /&gt;1. Documentation of Applications&lt;br /&gt;2. Documentation of Databases&lt;br /&gt;3. Project Management System&lt;br /&gt;4. Source Control&lt;br /&gt;5. Coding Standards - How do we want our company/department to code, so that we know how to train and read code.&lt;br /&gt;6. Disaster Recovery Plan - If any one on team dies or leaves, what information do I need to have to make it easy for the replacement to more easily take up from them.&lt;br /&gt;7. Training Plan - How to track the training levels of different personnel, what books, classes, budget etc.&lt;br /&gt;8. Code Review Process - To help developers identify bad applications, so they can improve both app and themselves..&lt;br /&gt;9. Deployment Process - To move applications from development to production environments.&lt;br /&gt;&lt;br /&gt;Developer/Coder Needs&lt;br /&gt;1. My favorite editing/ide tool&lt;br /&gt;2. My favorite db tool or standard db tools&lt;br /&gt;3. Source Control Tool&lt;br /&gt;4. Bookshelves for all my books&lt;br /&gt;5. A copy of the coding standards&lt;br /&gt;6. Constant Training/Reading&lt;br /&gt;7. Code Reviewing&lt;br /&gt;8. My collection of misc tools&lt;br /&gt;9. Browser Testing - if your applications are possibly for multiple browsers&lt;br /&gt;10. How can i build a good application, that can be easily fixed, repaired or modified?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End User Needs&lt;br /&gt;1. Usability&lt;br /&gt;2. Scalability&lt;br /&gt;3. Error Catching &amp; Reporting&lt;br /&gt;&lt;br /&gt;I mean the lists could go on, there are probably things I missed...&lt;br /&gt;&lt;br /&gt;Frameworks I feel is a misleading term, I prefer to call it architechture..&lt;br /&gt;&lt;br /&gt;Your creating a coding architecture plan, based on that architecture, applications should be both created and used in a certain way.&lt;br /&gt;&lt;br /&gt;But you see there is a difference between coding in a certain way, and how you deliver that application to an end user.&lt;br /&gt;&lt;br /&gt;So where this is leading to, is some kind of checklist of asking certain questions to determine what kind of framework do you need.&lt;br /&gt;&lt;br /&gt;Here are some of my questions, I'd Ask:&lt;br /&gt;&lt;br /&gt;1. Are developers working as a team or as individuals?&lt;br /&gt;2. Do you have different people doing, design, database, logic?&lt;br /&gt;3. What level of learning curve do you want form a framework?&lt;br /&gt;4. What are the skill level of your developers?&lt;br /&gt;5. Are you coding in other languages?&lt;br /&gt;&lt;br /&gt;I mean  each has their strengths's and weaknesses.&lt;br /&gt;&lt;br /&gt;So then the big question is what goals do you want to accomplish by adhering to a specific framework...&lt;br /&gt;&lt;br /&gt;And in choosing a framework, go by what's best for you and your developers, not just because what your peer or industry uses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114254443944096448?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114254443944096448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/03/more-thoughts-on-frameworks.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114254443944096448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114254443944096448'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/03/more-thoughts-on-frameworks.html' title='More thoughts on frameworks'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114175976038878576</id><published>2006-03-07T13:28:00.000-06:00</published><updated>2006-03-07T13:29:20.396-06:00</updated><title type='text'>Hal Helms - OOP Training in MPLS after cfobjective</title><content type='html'>Hal Helms will be teaching his Designing and Developing OO&lt;br /&gt;Applications with CFCs class in Minneapolis March 13-17.&lt;br /&gt;&lt;br /&gt;http://www.halhelms.com/index.cfm?fuseaction=training.cfcsDetails&lt;br /&gt;&lt;br /&gt;This class will be offered at:&lt;br /&gt;&lt;br /&gt;Faegre &amp; Benson, LLP.&lt;br /&gt;21st Floor&lt;br /&gt;90 South 7th St.&lt;br /&gt;Minneapolis, MN&lt;br /&gt;&lt;br /&gt;There are 4 slots available and the price is $2,495.00 per student&lt;br /&gt;or $2,195.00 if all 4 slots are filled&lt;br /&gt;&lt;br /&gt;Let me know if you're interested - feel free to call me at&lt;br /&gt;612-986-5077.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Nathan Miller&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114175976038878576?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114175976038878576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/03/hal-helms-oop-training-in-mpls-after.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114175976038878576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114175976038878576'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/03/hal-helms-oop-training-in-mpls-after.html' title='Hal Helms - OOP Training in MPLS after cfobjective'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114139508535896243</id><published>2006-03-03T08:05:00.000-06:00</published><updated>2006-03-03T08:11:25.373-06:00</updated><title type='text'>What is a Site Bible, and why are they important?</title><content type='html'>Well for a number of years, I have been in the position of trying to go from a system of absolutely no documentation, to a system of documentation...&lt;br /&gt;&lt;br /&gt;I honestly can't remember where I heard of this idea, but basically a Site Bible, is just a 3-ring binder, lists all your server info, datasources, databases, applications, personnel..&lt;br /&gt;&lt;br /&gt;Basically if you died, who would know where anything was, and what anything did?&lt;br /&gt;&lt;br /&gt;What is your development environment, and if your the one who set it up, what if you died, how would any new people know how to use it?&lt;br /&gt;&lt;br /&gt;Some people have tried web-based solutions, but I tend to having printed copies of everything, secure of course, on-site.&lt;br /&gt;&lt;br /&gt;I mean in the history of ColdFusion, it's not known for encouraging people to document their servers, databases, and etc. Because most cfer's do not come from a computer science background...&lt;br /&gt;&lt;br /&gt;But all that aside, what if your whole team died, and they hired a new crew, do we all care so little for the work we've done,that we refuse to hand it off as good as we made it?&lt;br /&gt;&lt;br /&gt;Also I am curious to see what other companies, people have used as their documentation process...&lt;br /&gt;&lt;br /&gt;Site Bible's are also a good place to store emergency procedures, phone numbers, anything you need if online or servers go bad...&lt;br /&gt;&lt;br /&gt;Think About It!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114139508535896243?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114139508535896243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/03/what-is-site-bible-and-why-are-they.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114139508535896243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114139508535896243'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/03/what-is-site-bible-and-why-are-they.html' title='What is a Site Bible, and why are they important?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-114010026467063559</id><published>2006-02-16T08:03:00.000-06:00</published><updated>2006-02-16T08:31:04.730-06:00</updated><title type='text'>Some thoughts on Frameworks</title><content type='html'>Frameworks is the big question of our decade, which to use, what's the best for what kind of development environment I am in. I find these are all valid and important questions.&lt;br /&gt;&lt;br /&gt;I find that I have some reasonable concerns on frameworks, and although I have them, I am not trying to say that frameworks are bad or evil. I just don't think we're at the highest level of quality yet.&lt;br /&gt;&lt;br /&gt;Here are a few of my needs for a framework:&lt;br /&gt;&lt;br /&gt;1. Works well in individual or team environments&lt;br /&gt;2. Is not visible to the end user, end users see each web page as a seperate page and application.&lt;br /&gt;3. Eliminate any and all processing that is needed for a framework to run, so that each application is just loading it's own functional needs.&lt;br /&gt;4. Each application can be stand-alone or part of a whole application farm, and if different frameworks are used for different applications, that they can seamlessly work together.&lt;br /&gt;5. Clean and Easy to read so that non-framework users can just as easily read,add or modify that application.&lt;br /&gt;&lt;br /&gt;Now, I know as we keep upgrading and adding new frameworks, we are going to eventually be at this point, I can feel it in my blood. (I hope) But let's discuss, the where's and why's of each need, so even if you disagree with me, at least you can understand what i say, and perhaps why I say.&lt;br /&gt;&lt;br /&gt;Need 1: Works well in individual or team environments&lt;br /&gt;&lt;br /&gt;Face it, not all of us work in big shops, and sometimes whole websites, applications are written by 1-2 people, not necesarily working together. &lt;br /&gt;&lt;br /&gt;So we need to find a framework with ways that works well with both. And of course it is nicer and more learning involved in a team environment, but reality is not always on our side.&lt;br /&gt;&lt;br /&gt;Need 2: Framework invisible to End User&lt;br /&gt;&lt;br /&gt;I totaly admit that I am a Jacob Nielsen, usability fan. And honestly as great as the framework applications may be in maintainability and stability, it bites in terms of usability to the end user. Frameworks are very important to us as coders, but let us not forget that it's our end users that need to be able use these applications, whether they be for Intranets or Ecommerce Portals. &lt;br /&gt;&lt;br /&gt;People do enjoy bookmarking sites, and to help them we need to have readable bookmarks. And I admit that non-framework sites don't always have this well done either. But there are ways to make it seamless.&lt;br /&gt;&lt;br /&gt;For example which is easier to read?&lt;br /&gt;&lt;br /&gt;1. http://www.mysite.com?index.cfm?fuse=shopping.cart&lt;br /&gt;&lt;br /&gt;2. http://www.mysite.com/shopping_cart.cfm&lt;br /&gt;&lt;br /&gt;I know some claim that most people don't read the web page links or don't really bookmark them. But how many of are willing to take that chance? Read more about this here at &lt;a href="http://www.useit.com/alertbox/990530_comments.html"&gt;Useit.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And btw, there are ways to make this streamlined, for example creating shopping_cart.cfm that just has the correct includes to your x-framework specific code. But then it's all invisible to the end user, which is a good thing.&lt;br /&gt;&lt;br /&gt;Need 3: Eliminating Unecessary Processing&lt;br /&gt;&lt;br /&gt;As part of setting up each aspect of the framework, it takes some processing per page, to help it both setup, and recall which applications to load. I think this an honest balancing act, that needs further tweaking. Perhaps the big question is what processing should be done for the framework on every page, and what processing should let the application code itself do. I think this is something for open discussion on the blogs. &lt;br /&gt;&lt;br /&gt;Need 4: Stand-Alone Applications - Frameworks and Non-frameworks have to be able to work together.&lt;br /&gt;&lt;br /&gt;One of my personal pet peeves, is that working for X Company and they outsourced some code, and this one application was done in fusebox, while 100% of our other code was all done in normal cfml code. &lt;br /&gt;&lt;br /&gt;Simply there has to be a way so that your framework can easily be worked along side with other frameworks, or easily translated if necessary. &lt;br /&gt;&lt;br /&gt;Maybe this is just a fantasy, like having Randy Moss on my fantasy football team. But honestly sometimes we are forced to take in applications made in different frameworks, and yet they're all for the same website. So we have to somehow find a way to integrate them, so they can work well together, and not make it too difficult for anyone following us, and seeing code for a website, done in many different methods/frameworks.&lt;br /&gt;&lt;br /&gt;Need 5: Easy to read and modify&lt;br /&gt;&lt;br /&gt;You created this beautiful application, in the most hotly used framework, everyone you chat with loves this application especially in the framework you did it in.&lt;br /&gt;&lt;br /&gt;However when you turn it in for your client, they look at you, and say something like...&lt;br /&gt;&lt;br /&gt;"What framework is that? We don't use that framework, so it's going to be hard in the future to be able to read/modify that application, especially since we didn't ask you to create it in X Framework......"&lt;br /&gt;&lt;br /&gt;They're not saying the framework is bad, or evil, just if we do things in frameworks, they have to be easy to read and modify by other people who are completely unfamiliar with that framework.&lt;br /&gt;&lt;br /&gt;Is this realistic perhaps not, is it needed, heck yeah.&lt;br /&gt;&lt;br /&gt;Maybe I am just sharing some of my pet peeves from my years as an ColdFusion Developer, but I feel these are real needs and hopefully set some goals for future framework development and upgrades.&lt;br /&gt;&lt;br /&gt;Thank you very much...&lt;br /&gt;&lt;br /&gt;P.S. A Happy and Belated Valentines Day....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-114010026467063559?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/114010026467063559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/02/some-thoughts-on-frameworks.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114010026467063559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/114010026467063559'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/02/some-thoughts-on-frameworks.html' title='Some thoughts on Frameworks'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-113630962805657867</id><published>2006-01-03T11:14:00.000-06:00</published><updated>2006-01-03T11:33:48.113-06:00</updated><title type='text'>Marketing Theory: Pros and Cons</title><content type='html'>One of the main issues of consternation these last few years, has been my didactic arguments over the values of Marketng Theory, and it's areas of weakness.&lt;br /&gt;&lt;br /&gt;One of the issues that had really consterned me, at one of my previous positions, is how they seemed to be out of touch with their customers. And as I am reading different MBA books these days, it seems to me there is a clear confrontation between the two different perspectives.&lt;br /&gt;&lt;br /&gt;Marketing Theory indicates that, the best way to make decisions regardin promotions, packaging and sales was thru segmenting the prospective/current customers into their different demographics and analyze how the best path to encourage new and repeat sales.&lt;br /&gt;&lt;br /&gt;However there are several holes in that theory, that will become obvious as I continue to tell my story.&lt;br /&gt;&lt;br /&gt;Company X, continued to look for new sales and promotions to advertise, based partially on inventory, to indicate which items we needed to get rid of, and partially on finding the next hot new item, that our customer would want.&lt;br /&gt;&lt;br /&gt;However, basing our promotions on those two sounds well, but what if your customers, have certain expectations of the online/offline store inventories that are not being met.&lt;br /&gt;&lt;br /&gt;For example, when you go to a Paint Store and they sold lots of nice varying colors, but none of the basic colors were in stock, nor were there any brushes. For each industry there are some basic items, that customers expect you to keep in stock. Because they don't always visit the online/offline stores for new items or what's on sale. Sometimes they need a paint brush, and if your a paint store, and they don't find what they would naturally expect you to carry, why would they come to you again?&lt;br /&gt;&lt;br /&gt;I am not saying to not analyze your customer base, what products hot n not, shape your promotions on inventory. But if you don't plan to cover the bare essentials a customer expects you to have what's the point?&lt;br /&gt;&lt;br /&gt;You can have the highest sales, but still be losing repeat customers. Because although they may have bought during a sale, why would they come back again, unless you had what they needed and expected from your type of retail industry.&lt;br /&gt;&lt;br /&gt;And yet, Company X, would rather not be in contact with the customers directly, to hear what they thought. It's not easy, and this isn't simply about blaming, but how we as an ecommerce/retail industry can make sure we're delivering good service, products and even more importantly a good experience.&lt;br /&gt;&lt;br /&gt;Mark Hurst, of GoodExperience.com, has been one of mailing lists, I read weekly/monthly, he has been a fount of common sense, and good advice. He talks and re-emphasizes the importance of delivering a good experience to the customer. &lt;br /&gt;&lt;br /&gt;It sounds complicated but it's not. &lt;br /&gt;&lt;br /&gt;You have to really understand your customer, to help provide them what they want. You can suggest new things, trends and changes in products and services. But if you aren't deliverying what they'd expect on a daily basis, very well, why would they bother with you?&lt;br /&gt;&lt;br /&gt;This reminds me of an earlier experience I had in Company Y. I was working in a Mail Order Department of a Video Game Used/New Buy/Seller. They had 1 central warehouse at their headquarters. Other departments if they had a connection to the upper management, got priority in inventory.&lt;br /&gt;&lt;br /&gt;Let's say I took an order on Tueday.&lt;br /&gt;&lt;br /&gt;I am waiting for the order to ship, but the last item in inventory was taken by someone in another department on Friday, even though I had already an anxious customer awaiting their order.&lt;br /&gt;&lt;br /&gt;Inventory is a very key aspect of ecommerce, if not managed wisely, it will manage you. &lt;br /&gt;&lt;br /&gt;For example, imagine making a huge online/offline promotion of a new product, only to find out weeks later, that inventory is out of stock, or didn't place any orders or enough orders for supply.&lt;br /&gt;&lt;br /&gt;If ecommerce is gonna become a stable industry, we must become a well-oiled industry of best practices...&lt;br /&gt;&lt;br /&gt;Well that's been what's on my mind...&lt;br /&gt;&lt;br /&gt;Think about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-113630962805657867?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/113630962805657867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2006/01/marketing-theory-pros-and-cons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113630962805657867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113630962805657867'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2006/01/marketing-theory-pros-and-cons.html' title='Marketing Theory: Pros and Cons'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-113578216613936845</id><published>2005-12-28T08:58:00.000-06:00</published><updated>2005-12-28T09:02:46.150-06:00</updated><title type='text'>Oy, Managing Each Day</title><content type='html'>I was reading this interesting blog post on Ray Camden's Blog. About how he has his own ways of managing his projects and tasks. Mainly because his memory is going, bonkers.&lt;br /&gt;&lt;br /&gt;I had my own comment about that, because mine has been going, the more I got into web programming. &lt;br /&gt;&lt;br /&gt;The more I find that you get into deep programming/analysis/logic, your solutions come more from subconscious processes, the conscious ones.&lt;br /&gt;&lt;br /&gt;But my reason for the post today, is to find out what kind of daily processes each of us uses to help keep track, moving forward, getting things done each day.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;I use to create a new daily task sheet to print and put on my monitor clipboard to help me remind what i needed to get done and worked on each day.&lt;br /&gt;&lt;br /&gt;Are we all getting older, or does programming change our brains?&lt;br /&gt;&lt;br /&gt;Just curious :)&lt;br /&gt;&lt;br /&gt;Happy Holidays and New Years to all of you and your loving families!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-113578216613936845?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ray.camdenfamily.com/index.cfm/2005/12/26/Ask-a-Jedi-Keeping-it-Together' title='Oy, Managing Each Day'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/113578216613936845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/12/oy-managing-each-day.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113578216613936845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113578216613936845'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/12/oy-managing-each-day.html' title='Oy, Managing Each Day'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-113561091745564192</id><published>2005-12-26T09:22:00.000-06:00</published><updated>2005-12-26T09:28:37.466-06:00</updated><title type='text'>Seven Stages of Expertise: My Thoughts</title><content type='html'>I have to admit this is something that has been on my mind. Seeing how different levels of technical and professional expertise change.&lt;br /&gt;&lt;br /&gt;There is a maturation process, and that probably isn't well defined, how one person goes from one stage to another. Which probably is what interests me.&lt;br /&gt;&lt;br /&gt;It really depends on what intrigues you, learning more about what factors can lead/dislead to project success, and what factors help mature both the process and people ina  project.&lt;br /&gt;&lt;br /&gt;I find that both are very important, but in the end, in any industry it really comes down to the people and the skills can they deploy towards goals that matters.&lt;br /&gt;&lt;br /&gt;But let's ask an interesting question, what has helped in your maturation process? If you can talk to yourself in the past as a Stage 1 Expert, what would you tell yourself to help avoid the bumps and skids of the learning process and curve.&lt;br /&gt;&lt;br /&gt;Thank you&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-113561091745564192?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.waysys.com/ws_content_al_sse.html' title='Seven Stages of Expertise: My Thoughts'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/113561091745564192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/12/seven-stages-of-expertise-my-thoughts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113561091745564192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113561091745564192'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/12/seven-stages-of-expertise-my-thoughts.html' title='Seven Stages of Expertise: My Thoughts'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-113018175598187178</id><published>2005-10-24T14:07:00.000-05:00</published><updated>2005-10-24T14:22:35.996-05:00</updated><title type='text'>The Importance of Architecture</title><content type='html'>Now having completed a really good class on the Intro to Fusebox as taught by Jared, at the MCTC in downtown minneapolis...&lt;br /&gt;&lt;br /&gt;I hear that a few of my previous readers and comments expect to be go all google eyes and say how wrong I was and all that. &lt;br /&gt;&lt;br /&gt;Well in a sense I was wrong. I really see the importance of having a common architecture to speed up development and the working with teams or individually.&lt;br /&gt;&lt;br /&gt;And I also see how usefull it can be to seperate the presentation layer, I can dig it's usefullness. But to me that really depends if you code alone or not.&lt;br /&gt;&lt;br /&gt;I still have a lot to learn about Fusebox, I find parts of it fascinating, but other parts not so impressive.&lt;br /&gt;&lt;br /&gt;This is not a knock on architecture's, fusebox is obviously a step in the right direction, as great as procedural programming style is, it doesn't really comprehed the long term approach that well. But neither can our focus on architecture get in the way of completing tasks. &lt;br /&gt;&lt;br /&gt;I see it as a need of balance, to find the approach that covers the butt in both directions...&lt;br /&gt;&lt;br /&gt;1. I really still hate how all the apps refer back to index.cfm I am sure the url variables can be made search-engine compliant, but I am more honestly concerned about the lack of bookmarkability, to help customers know what page they are at. &lt;br /&gt;&lt;br /&gt;I understand why all actions go to the same page, because it has a lot of processing to do, to enable all the custom architecture that fusebox has, and any additional methodologies it want's to have working with in, such as Model View Controller. MVC, is kind of cool to be honest.&lt;br /&gt;&lt;br /&gt;But i believe that if we can hide what page we are by creating physical pages for each public fuseactions, that calls the appropriate fuseaction with a few lines of code, which will do alot to make the fusebox pages much more user friendly. Easier to remember, and bookmark.&lt;br /&gt;&lt;br /&gt;2. Fusebox can be a real bitch to work with if all your other applications are done without a specific architecture or methodology. It really does make it harder to figure out without having worked within fusebox, to translate fusebox apps to non-fusebox methodology. &lt;br /&gt;&lt;br /&gt;3. The setup for each fusebox has to be improved and simplified, let's enjoy the architecture without having to each of us create lots of folders, subfolders etc... I honestly found the setup part hard to do, and I can't imagine having to re-create the whole fusebox for each seperate app that exists for the same website. Unless I am missing something, which is possible, after all it was only 2 days of class.&lt;br /&gt;&lt;br /&gt;Now for things I am knock down impressed by:&lt;br /&gt;&lt;br /&gt;1. I really enjoy working with a solid architecture, it has all teh core values I've always wanted, documentation, coding style, naming conventions, teamwork, workflow, and I want to do a lot more proto-typing, and really get into smoother projects.&lt;br /&gt;&lt;br /&gt;2. I kind of am hooked into MVC, still have a lot more to learn and I want to play with it more...&lt;br /&gt;&lt;br /&gt;3. I like the idea of a parser of fusebox apps into a much more optimized app, makes complete sense. I am kind of curious to how that exactly works...&lt;br /&gt;&lt;br /&gt;4. I want to learn and master FLiP, project management has always been something I am interested in, because it makes development that much smoother. I may be interested in getting certified in Project Management. So I need to find some good places to learn and master Project Management.&lt;br /&gt;&lt;br /&gt;Is fusebox perfect? Of course not, no architecture is. But it's a step on the road of  evolution of web development/software engineering.&lt;br /&gt;&lt;br /&gt;Thank you, and I hope to hear any thoughts you have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-113018175598187178?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/113018175598187178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/importance-of-architecture.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113018175598187178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/113018175598187178'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/importance-of-architecture.html' title='The Importance of Architecture'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112990583308811572</id><published>2005-10-21T09:38:00.000-05:00</published><updated>2005-10-21T09:43:53.093-05:00</updated><title type='text'>Good Morning Fuseboxers!</title><content type='html'>Well here I am Day 2, still alive. I am liking FLiP, and I just need practice prototyping, as I have never done any of that. However I strongly agree in not coding until all plans meet the approval of the client.&lt;br /&gt;&lt;br /&gt;I completely hate wasting time and energy re-doing applications because:&lt;br /&gt;&lt;br /&gt;1. client either did not know what they wanted&lt;br /&gt;2. didn't know how to communicate their wants&lt;br /&gt;3. They couldn't make up their mind as to what they wanted..&lt;br /&gt;&lt;br /&gt;Fusebox i believe is a step in the right direction, but i agree i have to fully use it to really get my feet wet before i can say use/not-use.&lt;br /&gt;&lt;br /&gt;However the setup for each app is a pain, but I am more than willing to give it a try.&lt;br /&gt;&lt;br /&gt;Here are this morning's class notes...&lt;br /&gt;&lt;br /&gt;----------------- Friday Morning - Day 2 Class Notes ------------&lt;br /&gt;FLiP - has nothing to do with fusebox....software engineering lifecycle process...&lt;br /&gt;&lt;br /&gt;FLiP - Fusebox LIfecycle Process&lt;br /&gt;&lt;br /&gt;70% fail to meet their objectives&lt;br /&gt;-budget, timeline, feature set&lt;br /&gt;&lt;br /&gt;-fail to plan, plan to fail&lt;br /&gt;&lt;br /&gt;1. Wireframe - Set diagrams&lt;br /&gt; a.storyboards&lt;br /&gt;2. Prototypes &amp; Devnotes&lt;br /&gt; a. Prototype is a fully html ui generated for each page/step - Full as if the application existed. Static HTML Version&lt;br /&gt; b. Devnotes helps communicate what's done/missings for each prototyping&lt;br /&gt;3. Code Planning&lt;br /&gt; a. skilled application architect defines the fusedocs... fuses, fuseactions&lt;br /&gt;4. Coding&lt;br /&gt; a. write independent fuses, team or pair-coding&lt;br /&gt;5. Unit Testing&lt;br /&gt;6. Deployment &amp; Integration&lt;br /&gt;&lt;br /&gt;Design Interface First, then let the interface indicate the database design/queries&lt;br /&gt;Then fusebox interfaces/controlls the two. and the interaction of..&lt;br /&gt;&lt;br /&gt;Mail Reading Application&lt;br /&gt;-Home Page with login interface underneath it &lt;br /&gt;--Post to List based email messages interfaces&lt;br /&gt;--- Link back to previous step&lt;br /&gt;--Read Email Messages&lt;br /&gt;--- Link back to previous step&lt;br /&gt;&lt;br /&gt;P.S. Here is a really funny tie-in with the Minnesota Vikings. Denny Green is one of my favorite Business/NFL Books talked about "Plan your work and work your plan".&lt;br /&gt;&lt;br /&gt;Planning is really essential, and sometimes under-looked by real small web shops.&lt;br /&gt;&lt;br /&gt;More to come....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112990583308811572?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112990583308811572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/good-morning-fuseboxers.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112990583308811572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112990583308811572'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/good-morning-fuseboxers.html' title='Good Morning Fuseboxers!'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112984576355010917</id><published>2005-10-20T17:00:00.000-05:00</published><updated>2005-10-20T17:02:43.556-05:00</updated><title type='text'>Last Fusebox Update of the Day</title><content type='html'>We discussed a went thru the whole abstraction, mvc actual usage etc...&lt;br /&gt;&lt;br /&gt;I need to read the Book by Jeff Peters Fusebox 4 &amp; FLiP&lt;br /&gt;&lt;br /&gt;You guys should have been here...&lt;br /&gt;&lt;br /&gt;---------------Evening Class Notes ----------------------&lt;br /&gt;Long argument about long vs tiny urls, I thinks i've hit a hot-button...&lt;br /&gt;&lt;br /&gt;xfa = exit fuse actions, actions by which we exit&lt;br /&gt;&lt;br /&gt;This brings up the question of what really makes a good framework?&lt;br /&gt;1. Invisible and usability to the end user - They have no need to know what framework we use, except for what page they are at, and how to get to where they want to go.&lt;br /&gt;2. Easy Setup &amp; Install - Each time you create an application, if you have several hours just spent on setup, it makes no sense. What's better is a simpler or pre-packaged installer, so you can spend time planning &amp; developing and not just more configuration.&lt;br /&gt;3. Simplified workflow either working individually or on teams&lt;br /&gt;&lt;br /&gt;Now abstraction has some interesting features, but if your not familiar with the framework and abstraction, it can be painful trying track down where variables and data are populated and created.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112984576355010917?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112984576355010917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/last-fusebox-update-of-day.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112984576355010917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112984576355010917'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/last-fusebox-update-of-day.html' title='Last Fusebox Update of the Day'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112984034140131671</id><published>2005-10-20T15:27:00.000-05:00</published><updated>2005-10-20T15:32:21.410-05:00</updated><title type='text'>Afternoon Fusebox Class Update</title><content type='html'>So far, it's been rather educational. We're on the same path of wanting long term great applications, but there are some serious thoughts made into fusebox. I still feel it has major work to get to where it will both be more usable and scalable from the end-user perspective. &lt;br /&gt;&lt;br /&gt;However also, there is a lot of setup involved as a new fuseboxer to create each application, if that can be simplified or automated that would really help.&lt;br /&gt;&lt;br /&gt;However what this class is introducing me to, is the real necessity for frameworks or methodologies in coldfusion...&lt;br /&gt;&lt;br /&gt;Jared is damn smart, I may ask a lot of stupid questions, because I want to get a full understand, and having only worked on 1 fusebox application, in terms of incorporating it in an existing non-fusebox application, it can be difficult to grasp.&lt;br /&gt;&lt;br /&gt;I find that fusebox can be a great doorway to learning more of frameworks and getting more polish into your professional skill set.&lt;br /&gt;&lt;br /&gt;I find that very vital...&lt;br /&gt;&lt;br /&gt;Here are my afternoon class notes for my fellow classmates in MCTC. And we had a great lunch at Davanni's oh man that was filling.&lt;br /&gt;&lt;br /&gt;------------------------Afternoon Class Notes --------------------------------&lt;br /&gt;Installed CFMX 7&lt;br /&gt;Installed Dreamweaver 8 YUCK!&lt;br /&gt;&lt;br /&gt;SkeletalMVC&lt;br /&gt;-Controller - xml files, configuration of all fuse actions????&lt;br /&gt;-Model - CFM Files&lt;br /&gt;-parsed - parses xmls and compiles directives and cfml template and executes&lt;br /&gt;-plugins -fusebox plugins cfm templates, referrenced from the xml file&lt;br /&gt;-view -interface files, form tags, table tags&lt;br /&gt;&lt;br /&gt;-Controller Circuit main.prodlist&lt;br /&gt;-Model query select * from tblProds - getallprodsqry.cfm&lt;br /&gt;-View -/include dsp_prodlist.cfm Include layout.main.cfm name=body&lt;br /&gt;&lt;br /&gt;layout.cfm looks like this&lt;br /&gt;&lt;cfoutput&gt;#body#&lt;/cfoutput&gt;&lt;br /&gt;&lt;br /&gt;Saves whole app to the parsed folder -- Worth investigating&lt;br /&gt;&lt;br /&gt;For each fusebox application, you have to reconfigure, drop skeletalMVC folder/files&lt;br /&gt;&lt;br /&gt;precedenceFormOrUrl either do form or url grabbing...which takes precedence...&lt;br /&gt;password - force fusebox to reload a file in the parsed folder&lt;br /&gt;mode - development vs production&lt;br /&gt;&lt;br /&gt;globalfuseactions&lt;br /&gt;-preprocess&lt;br /&gt;-postprocess&lt;br /&gt;&lt;br /&gt;This is the configuration file fusebox.xml.cfm&lt;br /&gt;&lt;br /&gt;Each application would get it's own configuration file.&lt;br /&gt;&lt;br /&gt;enumerate what does that mean?&lt;br /&gt;&lt;br /&gt;structkeyexists(variables,"dateTime")&lt;br /&gt;-a symantic improvement&lt;br /&gt;&lt;br /&gt;page contest&lt;br /&gt;&lt;br /&gt;scope prioritization, scope variable searching...&lt;br /&gt;&lt;br /&gt;page context level for each variable scope&lt;br /&gt;&lt;br /&gt;&lt;cfdump var="#getPageContext().getBuiltinScopes()#"&gt;&lt;br /&gt;&lt;br /&gt;1. Plan it out&lt;br /&gt;2. Create model&lt;br /&gt;3. Create views&lt;br /&gt;4. Create XML behind two&lt;br /&gt;&lt;br /&gt;Nifty circuit aliases, to reference functionality in different parts of the application&lt;br /&gt;&lt;br /&gt;circuit access="public" vs access="internal"&lt;br /&gt;&lt;br /&gt;internal mode is kind of interesting...&lt;br /&gt;&lt;br /&gt;circuit.fuseactionname&lt;br /&gt;&lt;br /&gt;Fusebox can be fun to play with, I am not sure about it's scalability or index.cfm?fuseaction issue, how it appears the developer does matter, and I am fine with that. If the two main issues are dealt with i am fine.&lt;br /&gt;&lt;br /&gt;I am curious about the process of the compiling into parsed files...&lt;br /&gt;&lt;br /&gt;Why not have the database do it's parsing of content and then in a stored procedure get the call of what content to display. Point being why not have the database do all the work instead of having coldfusion do it.&lt;br /&gt;&lt;br /&gt;Controller gets the request and passes the work on to model then displays results via view.&lt;br /&gt;&lt;br /&gt;use fusebox tags rarely unless necessary...&lt;br /&gt;&lt;br /&gt;I think it is realistically possible to hide the links that go to the same page, either thru javascript, or we can have a link page creation process...&lt;br /&gt;&lt;br /&gt;Where we loop thru each fuseaction and create a physical file for each that actually calls the fuseaction,but how does that deal with form or action pages. Unless it was done via a cfinclude.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112984034140131671?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112984034140131671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/afternoon-fusebox-class-update.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112984034140131671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112984034140131671'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/afternoon-fusebox-class-update.html' title='Afternoon Fusebox Class Update'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112982116605568027</id><published>2005-10-20T10:07:00.000-05:00</published><updated>2005-10-20T10:12:46.063-05:00</updated><title type='text'>Update FuseBox Class</title><content type='html'>I am actually quite impressed with the way Jared Rypka-Hauer of Continuum Media Group LLC are presenting this class.&lt;br /&gt;&lt;br /&gt;There may be some things that I disagree with :)&lt;br /&gt;&lt;br /&gt;But there is a solid agreement I feel we all have and that is to code ColdFusion Applications that are good for the long term. &lt;br /&gt;&lt;br /&gt;If I die, how easy is it to fix, repair or modify the application(s) I created?&lt;br /&gt;&lt;br /&gt;Well here are the notes from class so far. &lt;br /&gt;&lt;br /&gt;Thanks for listening....&lt;br /&gt;&lt;br /&gt;Frameworks? in general, what they are, what they provide&lt;br /&gt;-What core code, actual files, pre-defined functionality. Procedural Framework&lt;br /&gt;-Why&lt;br /&gt;-When All the time...&lt;br /&gt;-Metholodogy how to use the framework, built around the framework&lt;br /&gt;&lt;br /&gt;Always see \index.cfm?fuseaction=guestbook.showform&lt;br /&gt;&lt;br /&gt;guestbook is the circuit a collection of functions/actions&lt;br /&gt;showform is the fuse that indicates what action to take&lt;br /&gt;&lt;br /&gt;Hooks - plugins, pre-built actions, referenceable&lt;br /&gt;&lt;br /&gt;Framework Definition&lt;br /&gt;1. Sources&lt;br /&gt;2. Methodology&lt;br /&gt;3. Save Time&lt;br /&gt;4. Communicate&lt;br /&gt;&lt;br /&gt;MVC - Low Level to High Level. High Level Architecture Design Pattern.&lt;br /&gt;&lt;br /&gt;Model&lt;br /&gt;-Queries&lt;br /&gt;-Logins&lt;br /&gt;-File Access&lt;br /&gt;-Webservice&lt;br /&gt;-CFHTTP&lt;br /&gt;&lt;br /&gt;View &lt;br /&gt;-CFM Templates - "PODS"&lt;br /&gt;-Navigational Includes&lt;br /&gt;-Logo Header&lt;br /&gt;-Date&lt;br /&gt;-Content&lt;br /&gt;&lt;br /&gt;Controller&lt;br /&gt;-Send Messages To Model&lt;br /&gt;-Getting or sending Data&lt;br /&gt;-Gets Data --&gt; View&lt;br /&gt;-Sends Data &lt;--- View&lt;br /&gt;&lt;br /&gt;96% of stats are made up on the spot&lt;br /&gt;&lt;br /&gt;Very streamlined makes you more efficient, that is reasonable and understandable.&lt;br /&gt;&lt;br /&gt;The way you think matters as much as the way you work....&lt;br /&gt;&lt;br /&gt;Implicit Invocation - Clean The Kitchen - Not requires a lot of description&lt;br /&gt;-One high level command to many tasks&lt;br /&gt;-Main.home - main circuit home fuseaction&lt;br /&gt;-More of a global command to refer an implied set of tasks&lt;br /&gt;&lt;br /&gt;Mach II - Implicit Invocation&lt;br /&gt;&lt;br /&gt;OO vs Procedural&lt;br /&gt;&lt;br /&gt;-object orientated&lt;br /&gt;--Defining Entities&lt;br /&gt;---Real World Object like user, blog entry, shopping cart&lt;br /&gt;--What should those entities do?&lt;br /&gt;--Should user object talk to database or just be a container&lt;br /&gt;--Encapsulate - it know only it knows&lt;br /&gt;--Inheritance yuck!!!!&lt;br /&gt;--Data Centric&lt;br /&gt;--Defining Representation&lt;br /&gt;--Each object has a specific role and defining them can be better for long term development, &lt;br /&gt;---okay that makes sense, now how do i figure how to translate what they're saying...&lt;br /&gt;&lt;br /&gt;-Procedural&lt;br /&gt;---Do this do this do this, logical&lt;br /&gt;---Tasks vs from point a to point b&lt;br /&gt;&lt;br /&gt;ColdSpring, Carton - Persistant Storage Mechanism&lt;br /&gt;&lt;br /&gt;Instance Variables&lt;br /&gt;&lt;br /&gt;Gateway Objects&lt;br /&gt;DAO's&lt;br /&gt;&lt;br /&gt;P.S. I am finding that my understanding of OO vs Procedural may be incorrect. While I do honestly see there is no standard for long term thinking in procedural programming, it is easier to think and put my head around it.&lt;br /&gt;&lt;br /&gt;I think that would be a worthy goal, to find a middle place...&lt;br /&gt;&lt;br /&gt;Thanks...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112982116605568027?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112982116605568027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/update-fusebox-class.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112982116605568027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112982116605568027'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/update-fusebox-class.html' title='Update FuseBox Class'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112981516019564497</id><published>2005-10-20T08:27:00.000-05:00</published><updated>2005-10-20T08:32:40.200-05:00</updated><title type='text'>Let Fuseboxing Commence</title><content type='html'>Here i am, where is the alcohol or anesthetist to immunize me to this training...&lt;br /&gt;&lt;br /&gt;Lol, just kidding...&lt;br /&gt;&lt;br /&gt;Here I am a beautiful Minneapolis Morning, downtown, beautiful day.&lt;br /&gt;&lt;br /&gt;A bit chilly outside, I have met Jared, Gary and a few other brave CFers that have decided to come down to MCTC and learn fusebox. &lt;br /&gt;&lt;br /&gt;I am actually interested in learning, I am willing to give it an open shot, for 2 specific honest reasons...&lt;br /&gt;&lt;br /&gt;1. If CF Shops are only hiring CF developers based on them knowing fusebox, then i have to adapt, i need a job like everyone else does.&lt;br /&gt;2. I am curious about FLiP, as many of you know I am interested in developing better practices and life cycles to improve the quality and flow of work. &lt;br /&gt;&lt;br /&gt;It does look interesting...&lt;br /&gt;&lt;br /&gt;More to come...&lt;br /&gt;&lt;br /&gt;The funny thing is when Jared came in with a CafePress box, I thought it was from that custom t-shirt site, and lol, I asked if the price of admission came with a free t-shirt...&lt;br /&gt;&lt;br /&gt;Oh well I am trying to make the most of this...&lt;br /&gt;&lt;br /&gt;I really do enjoy programming in ColdFusion, and I do want to be the best as I can be. Ever since I saw a few of the greats of the early CFUG...&lt;br /&gt;&lt;br /&gt;What drives you to CF?&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112981516019564497?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.web-relevant.com/web-relevant/index.cfm?fuseaction=main.course&amp;courseId=1' title='Let Fuseboxing Commence'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112981516019564497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/let-fuseboxing-commence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112981516019564497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112981516019564497'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/let-fuseboxing-commence.html' title='Let Fuseboxing Commence'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112908280719322621</id><published>2005-10-11T20:39:00.000-05:00</published><updated>2005-10-11T21:06:47.223-05:00</updated><title type='text'>Framework Translation/Conversion</title><content type='html'>Now as I get closer to when I take this Fusebox class, and I keep hearing really interesting and different posts on frameworks, methodologies, I am kind of seeing a change what my real concerns with different coding methodologies instead of just my core emotions...&lt;br /&gt;&lt;br /&gt;Really the problem was that we all code from different situations. Some of us code solo, some of us do agile partner coding, some of us do team coding, we all do it in different ways.&lt;br /&gt;&lt;br /&gt;So then the bigger concern is how can the different situations work together well...&lt;br /&gt;&lt;br /&gt;I think there should be a form of etiquette to help us work together better...&lt;br /&gt;&lt;br /&gt;For example if your a web shoppe, your coding methodology should adapt itself to whatever coding methodology the client's code is in. Unless your the only people doing codework for them.&lt;br /&gt;&lt;br /&gt;However most of the time, fore big companies, lots of different web shops have done code for them. So to all have different applications, created completely differently makes sense.&lt;br /&gt;&lt;br /&gt;Sure you can introduce new methodologies or frameworks to your client but if they're not signed off on the latest method/framework then stick to their style.&lt;br /&gt;&lt;br /&gt;We all like to code in different ways, or experiment but why are we experimenting with them at our clients expense?&lt;br /&gt;&lt;br /&gt;Above are experiences I have seen at different client companies I have worked at. Where the outsourced code would be done in fusebox or cfc's and 99% of our code was still standard CFML. &lt;br /&gt;&lt;br /&gt;Either then all code should be converted to X framework/metholodogy.&lt;br /&gt;&lt;br /&gt;For example, at one company our checkout ecommerce code was outsourced to a web shop, and the result was a CFC and application that interfaced with that CFC. I am sure it was very interesting, but none of the rest of our site's code was in a CFC, and are CFC's always the best way to go?&lt;br /&gt;&lt;br /&gt;We really need a multi-part solution:&lt;br /&gt;&lt;br /&gt;1. What framework/metholodogy consisteny should we use for our clients? Do we use our favorites or use the clients? What if the people that work at the clients dislike your methodology? &lt;br /&gt;2. When is a good time to introduce methodologies to clients? And when is it not a good tme?&lt;br /&gt;3. Which kind of frameworks are best for which kind of applications? Surely there is a performance guideline both in terms of ease of setup, scalability, modularity, there has to be a measuring stick so we know which tool for which problem. &lt;br /&gt;&lt;br /&gt;Because acting in the dark like we are isn't very healthy.&lt;br /&gt;&lt;br /&gt;I want honest conversation, honest questions, I am here to help us be a better industry. If you just want to flame, please go elsewhere...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112908280719322621?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112908280719322621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/framework-translationconversion.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112908280719322621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112908280719322621'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/framework-translationconversion.html' title='Framework Translation/Conversion'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112896383730494944</id><published>2005-10-10T11:52:00.000-05:00</published><updated>2005-10-10T12:03:57.310-05:00</updated><title type='text'>Intro To Fusebox</title><content type='html'>Well the day has finally come, I need and am going to take the intro fusebox class. It's not like I don't want to learn anything new, i just want to learn things that make me a better coder. &lt;br /&gt;&lt;br /&gt;In this case it's more about getting skills that will get me a job.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.web-relevant.com/web-relevant/index.cfm?fuseaction=main.course&amp;courseId=1"&gt;Intro To Fusebox&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I don't hate fusebox, as much as not really want to use it, because 100% of the time i'm a solo coder, working on hte full application. &lt;br /&gt;&lt;br /&gt;I also don't like having all applications go thru a central app, which over time can tend to get bloated. That's how these things can get...&lt;br /&gt;&lt;br /&gt;However there are some real pluses to fusebox, that I bet most of you thought i'd never say as long as I was alive...&lt;br /&gt;&lt;br /&gt;1. Modularity - This is to be commended, and modularity used correctly, for maximum performance. &lt;br /&gt;2. Teamwork Oriented Framework - I commend any method that helps new coders and old coders work together to create better products.&lt;br /&gt;3. Standards, standards - I may not agree with all the standards of fusebox, but getting coders to stick to a standard instead of making one up, every week, is to be commeneded. This is a major problem in our industry.&lt;br /&gt;&lt;br /&gt;Now as for OOP, I really don't care if other people use any model of thinking as long as it produces results, but then as long as i can produce results,why does it matter how i think of programming?&lt;br /&gt;&lt;br /&gt;I have done plenty of javascript programming in my career, it is object oriented, and I can usually get done what i need to get done, without being a hardcore OOP.&lt;br /&gt;&lt;br /&gt;For me the highest goal is creating solid applications we can be proud of, and not have to fix, upgrade because it wasn't done the right way the first time..&lt;br /&gt;&lt;br /&gt;I also feel it's important we think about the posterity, if we died, how easy would it be for other people to fix, learn, change, any of the applications I created. &lt;br /&gt;&lt;br /&gt;But when lots of people use lots of different ways, it creates havoc for other people who may have to change/alter their code.&lt;br /&gt;&lt;br /&gt;Instead of making this a holy crusade for whichever framework or methodology or thinking process, we should concern ourselves with creating great applications, solid standards for our industry, and finding ways we can work together, instead of fighting..&lt;br /&gt;&lt;br /&gt;I know i've had my share of flaming, but I'm done with that, let's move on, let's make ColdFusion the best web industry it can be...&lt;br /&gt;&lt;br /&gt;I've been reading a lot of interesting stuff on fusebox, oop, and i no longer care about the flame wars, I just want to get a job, learn to master my craft. &lt;br /&gt;&lt;br /&gt;And just keep moving forward...&lt;br /&gt;&lt;br /&gt;Does anyone care to share their thoughts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112896383730494944?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.web-relevant.com/web-relevant/index.cfm?fuseaction=main.course&amp;courseId=1' title='Intro To Fusebox'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112896383730494944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/10/intro-to-fusebox.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112896383730494944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112896383730494944'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/10/intro-to-fusebox.html' title='Intro To Fusebox'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-112067170751824276</id><published>2005-07-06T12:37:00.000-05:00</published><updated>2005-07-06T12:41:47.523-05:00</updated><title type='text'>From Coder to Manager of Coders</title><content type='html'>It's amazing to be on a different side or perspective, but I still feel that the core ideas I always stood by, are even more important now.&lt;br /&gt;&lt;br /&gt;1. Having documented and used Coding Standards&lt;br /&gt;2. Using a Project Management Process &amp; Intranet&lt;br /&gt;3. Helping others and myself train to become even better.&lt;br /&gt;4. Managing costs at different levels of growth.&lt;br /&gt;&lt;br /&gt;There is much more to do, and think about, that I never realized when I was just a coder.&lt;br /&gt;&lt;br /&gt;What others have you, have made the transition, and what sites, books, articles have helped you do it wisely and professionally?&lt;br /&gt;&lt;br /&gt;Thank You.&lt;br /&gt;&lt;br /&gt;Craig M. Rosenblum&lt;br /&gt;-Technical Director&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-112067170751824276?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/112067170751824276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/07/from-coder-to-manager-of-coders.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112067170751824276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/112067170751824276'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/07/from-coder-to-manager-of-coders.html' title='From Coder to Manager of Coders'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111998620216727395</id><published>2005-06-28T13:46:00.000-05:00</published><updated>2005-06-28T14:16:42.176-05:00</updated><title type='text'>How I create an application</title><content type='html'>I know we each have our own styles and methods, but let me share the methods I use to create an application.&lt;br /&gt;&lt;br /&gt;I'll put it into a checklist, because that's how I can make sure i got everything done in the right way and order.&lt;br /&gt;&lt;br /&gt;1. Project Details: I really need to have as much information on a project as possible, because I don't want to waste time and energy on code, only to find out, it was nothing like what the client/end-user wanted. So get the details, ask as many questions as possible.&lt;br /&gt;&lt;br /&gt;2. Project Plan: As you get into more complicated projects it really helps to plan everything out. There is a saying that sounds corny but really works in the real world. "Plan to Work, Work to Plan". The project plan can be simple to complex, but the more effort you put into it, for the simpler projects, the more prepared you'll be for the complex ones. This can involve using a ms word template, notebook paper, flow charts, wireframes, etc. &lt;br /&gt;&lt;br /&gt;The other benefit is that if you store this plan you can refer to it, for future changes to this application, so you can a better idea of the thinking behind each project.&lt;br /&gt;&lt;br /&gt;3. Dev Enviornment: Where am I saving the files to? What folders, server etc. And how  can i test and debug the application? Do I have access to cfadmin for easy debug? Make sure your setup so, you can go to coding.&lt;br /&gt;&lt;br /&gt;4. Comment Header: Basically name, description, author, manager of this project/application. Include version number, dates/times, more details is better. Because not all the time you'd be working on new applications, there is always new changes/fixes/features to be done to existing applications. So prepare the way by having a detailed comment header.&lt;br /&gt;&lt;br /&gt;5. Comment out what each section of the application will be. Before I code each section, I create sectional comments to help indicate what code needs to belong where, to make sure I know where to put each code, and i describe what each section does, and I use indents as they would be when I add the code beneath them.&lt;br /&gt;&lt;br /&gt;6. Now I work on incoming and outcoming variables. Over my experience in issues with scoped variables, and isdefined or parameterexists, I have my own system and naming system to help me control and simplify incoming data.&lt;br /&gt;&lt;br /&gt;I always create a cfparam for any possible variable, and name it like local_first_name. Even though the form field may be form.first_name.&lt;br /&gt;&lt;br /&gt;Then I have default blank values for all of them, unless they need to have a special value. &lt;br /&gt;&lt;br /&gt;Now I no longer have to check for the existance of variables, and then there values, now i only check for values.&lt;br /&gt;&lt;br /&gt;In the past you had to do&lt;br /&gt;&lt;br /&gt;cfif isdefiend("form.first_name")&lt;br /&gt;   cfif form.first_name eq "Craig"&lt;br /&gt;       xyz&lt;br /&gt;   /cfif&lt;br /&gt;/cfif&lt;br /&gt;&lt;br /&gt;Now I can do&lt;br /&gt;&lt;br /&gt;cfif local_first_name eq "Craig"&lt;br /&gt;   xyz&lt;br /&gt;/cfif&lt;br /&gt;&lt;br /&gt;Now before I can use these local_ variables, I still have to populate them.&lt;br /&gt;&lt;br /&gt;And this is where I can get into more specific control of scope priorities.&lt;br /&gt;&lt;br /&gt;I can say that I want an url variable, to pass value more than i want a session variable to pass the value.&lt;br /&gt;&lt;br /&gt;The reason for this extra detail into scopes, is because if they have the same name, they can be over-written without you being aware of it. (Because at some time I had this horrible application that variable named clk, that was being populated by a bunch of different scopes with no scope specificity or prioritization.)&lt;br /&gt;&lt;br /&gt;So we have a cfparam variables all populated, if you use additional variables, please add them to the top section with all the cfparams. &lt;br /&gt;&lt;br /&gt;7. Logic, now i go over all the logic that I have to go thru, what kinds of conditions, simple or complex. If simple I stick to using CFSWITCH &amp; CFCASE because they are faster than cfif, but if it is complex, i stick to CFIF.&lt;br /&gt;&lt;br /&gt;8. Queries / SQL Code, here is where I go thru a similar checklist.&lt;br /&gt;&lt;br /&gt;    A. Use a sql tool to generate the data, you'll need for each query, and then put it into the order you want. Select * is a definite NO NO. It is better for performance and scalability if you stick to what fields you want from what tables. &lt;br /&gt;&lt;br /&gt;    B. Once I have the data for each query I want, then I convert it into the dynamic queries, and use datatype validation via CFQUERYPARAM and CFPARAM to make sure data sent to databases is exactly what we want. CFPARAM has an additional but not well used paramater called type, so that as you copy from different scoped variables to the local_ one or whatever naming convention you use, then you can make sure it's the right type. In addition CFQUERYPARAM also has a CFSQLTYPE to make sure of data type. You should at least use one way of data type validation, for security sake.&lt;br /&gt;&lt;br /&gt;    C. Performance Analysis, I look at the CFQUERIES in debug info, for times that are over 250 milliseconds. I verify that each query is only bringing the data in terms of fields and rows that I need. I make sure there is no looping of a cfquery because that is very bad for performance, and there are other faster ways to grab data. I look for queries that should be converted into VIEWS, if they are multi-table joins or complex sql code, then they are open to being converted. &lt;br /&gt;&lt;br /&gt;9. Error Proofing, no matter how hard we work, there will always be errors, so now I double check my variables, logic, queries, then look for areas that might crash, and then i put CFTRY/CFCATCH. Make sure that there is a custom error page, to re-direct to, to make sure the user feels we are professional in how we handle our errors. I'd rather spend the time proofing and preparing, then having to explain an error to them that cost them a lot of money. &lt;br /&gt;&lt;br /&gt;10. Functional Checklist, now I start looking at all the project details to come up with a checklist of how to determine if this application does everything that it is supposed to do. &lt;br /&gt;&lt;br /&gt;Once you feel you did everything right, then hand it off to someone else who has not seen the code, and have them go thru the functional checklist. Become expert in helping others break applications, because if you get that knack during development, you'll develop the instincts and skills to prevent repeating mistakes.&lt;br /&gt;&lt;br /&gt;11. Schedule the release of the application to production after it has been approved.&lt;br /&gt;&lt;br /&gt;How do you create your applications?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I always make sure I have as much details about a project as possible. I don't want to repeat the experiences of wasting time and energy, only to find out I was no-where near where the end-user wanted me to be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111998620216727395?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111998620216727395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/how-i-create-application.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111998620216727395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111998620216727395'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/how-i-create-application.html' title='How I create an application'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111996939320487061</id><published>2005-06-28T09:15:00.000-05:00</published><updated>2005-06-28T09:36:33.223-05:00</updated><title type='text'>Coldfusion Basics</title><content type='html'>I've been working on a new job possibility, and been meeting people who are new to Coldfusion and Coding, and it intrigues me. Reminds me of the struggle we all go thru in teaching ourselves to code.&lt;br /&gt;&lt;br /&gt;So I really like to go over, on the basics, maybe it's boring, but I personally finally  , we focus so much on the cool stuff, that we may not master the basics.&lt;br /&gt;&lt;br /&gt;If you know me by now, i find it really important to make sure each application is scalible. Meaning, I don't want to have to re-write an application, because I didn't take the time and effort to write the SQL and logic code to be fast.&lt;br /&gt;&lt;br /&gt;I know we can be lazy at times, but that's why we need to maintain the core basic disciplines.&lt;br /&gt;&lt;br /&gt;1. Take pride in your code, and make sure it won't go back and bite you because you did not give everything you had to make sure the quality is high. To our end users, the application layout and functionality are most important, but in the real end in terms of long term costs, the quality of the code is just as important.&lt;br /&gt;&lt;br /&gt;2. Commenting, whatever system your company uses, more is better.  Remember if you died, how would anyone know what exactly you did, and how to change or fix it?&lt;br /&gt;&lt;br /&gt;3. Indenting, for other coders it's really important to be able to read the code, in case they have to change or fix it.&lt;br /&gt;&lt;br /&gt;4. CFSWITCH vs CFIF, if the comparrison value is simple, then use CFSWITCH, because cfswitch executes faster. But only for simple values, keep using cfif for complex logic.&lt;br /&gt;&lt;br /&gt;5. SQL Code, even if this application is only meant to be for a low-traffic site, what if they suddenly get a huge bend in traffic, but it keeps crashing the server? That is exactly why you have to write the SQL Code for scalability. &lt;br /&gt;&lt;br /&gt;6. Modularity, I know as the lines of code grow, we want to split it up, so it doesn't get too out of hand. In the old days of coldfusion there were not as many ways to break up your code, and that has changed so much. The key thing to think about is how it effects performance and whether it takes up more to setup than necessary.&lt;br /&gt;&lt;br /&gt;That's it guys, and feel free to send me any cold fusion question, I would love to help others learn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111996939320487061?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111996939320487061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/coldfusion-basics.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111996939320487061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111996939320487061'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/coldfusion-basics.html' title='Coldfusion Basics'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111954102181232057</id><published>2005-06-23T10:23:00.000-05:00</published><updated>2005-06-23T10:37:01.826-05:00</updated><title type='text'>Search Engine &amp; User Readiness</title><content type='html'>As we deliver more and more rich flash experiences, we must consider how our browser experiences affect the users.&lt;br /&gt;&lt;br /&gt;I remember when I was working with one company, and all they're folder names, file names, did not make sense.&lt;br /&gt;&lt;br /&gt;And why do they matter to end users?&lt;br /&gt;&lt;br /&gt;To help them remember where they are, and what part of the site they are on, and to help clue them as to the informational architecture of the site.&lt;br /&gt;&lt;br /&gt;For example with Ablecommerce, the shopping cart part of the site was in a folder named ecom7, and the file names were really not understandable.&lt;br /&gt;&lt;br /&gt;This does mattter, because if the customer can understand the folder structures, then it makes them easier to navigate.&lt;br /&gt;&lt;br /&gt;Now we go into flash applications, where whole web sites, can be in one url. Which is perfectly fine. &lt;br /&gt;&lt;br /&gt;Then here's the question: &lt;br /&gt;&lt;br /&gt;How do we help visitors bookmark, a specific part of the flash site? I mean an article, content, advertising? If we have an intensively content heavy site, we do not want to force people to go thru 10 steps to get to the page they were originally looking for.&lt;br /&gt;&lt;br /&gt;I would like to hear from Flash people, how they deal with these kinds of issues.&lt;br /&gt;&lt;br /&gt;Thanks, and please comment, so we all can learn from each other...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111954102181232057?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111954102181232057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/search-engine-user-readiness.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111954102181232057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111954102181232057'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/search-engine-user-readiness.html' title='Search Engine &amp; User Readiness'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111869799392326621</id><published>2005-06-13T16:24:00.000-05:00</published><updated>2005-06-13T16:26:33.930-05:00</updated><title type='text'>OT: Michael Jackson found not guilty</title><content type='html'>I really don't know what to say about this, except I felt certain he was guilty.&lt;br /&gt;&lt;br /&gt;It's sad, I can't be sure he's innocent, and that he's somehow bought the jury, or that the prosecution screwed up so much.&lt;br /&gt;&lt;br /&gt;But since I don't know all the details, it's really hard to be sure.&lt;br /&gt;&lt;br /&gt;I really hope MJ gets some therapy, because he's got a new lease on life, it'd be good, to make sure he stays clean and doesn't provoke any future problems.&lt;br /&gt;&lt;br /&gt;I wish the best for him, and please stay clean.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111869799392326621?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111869799392326621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/ot-michael-jackson-found-not-guilty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111869799392326621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111869799392326621'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/ot-michael-jackson-found-not-guilty.html' title='OT: Michael Jackson found not guilty'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111869680342732937</id><published>2005-06-13T15:54:00.000-05:00</published><updated>2005-06-13T16:06:43.433-05:00</updated><title type='text'>Why CF can be a scary ride sometimes..</title><content type='html'>I've been reading a post by Mark Kruger on &lt;a href="http://blog.mxconsulting.com/index.cfm?mode=entry&amp;entry=5C620687-BC96-52F7-611F271C755A1CEA"&gt;Coldfusion Panic - why CF coders scare easily&lt;/a&gt;, in there he talks about how easily CF coders get scared when big changes happen. &lt;br /&gt;&lt;br /&gt;This is something so poignant at a time, when we've got the Adobe/Macromedia merger happening. &lt;br /&gt;&lt;br /&gt;We all remember the change from Home Studio/Cold Fusion Studio to Dreamweaver, and how the lessening of support for the older IDE's. &lt;br /&gt;&lt;br /&gt;Face it, we are very empassioned in our interest in Cold Fusion.&lt;br /&gt;&lt;br /&gt;We all have things we love to do in coldfusion, that we like to do a certain way, and that really is natural and okay. Even if we sometimes disagree sometime. &lt;br /&gt;&lt;br /&gt;For example, I am of the minority that use a text-editor, &lt;A href="http://www.textpad.com"&gt;textpad&lt;/a&gt; instead of Dreamweaver of Home Site Studio. It really doesn't matter, and there should be no need to push our choices on others.&lt;br /&gt;&lt;br /&gt;I started my path to Cold Fusion, working as a Tech Support for an ISP, being bored, so I worked my way up to Webmaster and Hostmaster. But even that did not challenge me enough, so I kept asking questions of the nice web gurus in the web department.&lt;br /&gt;&lt;br /&gt;I had to teach myself, which has it's good and bad parts. &lt;br /&gt;&lt;br /&gt;And I've done good coding and bad coding, but it's so hard to know what is the right way of doing things or the wrong thing, during my earlier times, because there was no training, no leading by example, other than the few articles of CFDJ.&lt;br /&gt;&lt;br /&gt;But like many technical skills, it takes experience to shape us, and then as we learn more and more, we become driven to become better and better, learn new things, keep our minds challenged.&lt;br /&gt;&lt;br /&gt;There really are so many interesting and exciting things we can do with Cold Fusion; from working with Flash, PDF's, CFC's, Webservices, UDF's and more.&lt;br /&gt;&lt;br /&gt;And we must keep growing, and that growth can be both exciting and frightening at times.&lt;br /&gt;&lt;br /&gt;I know there's part of me that likes the old non-gui, non-rich internet days, but we must move on and not backwards.&lt;br /&gt;&lt;br /&gt;I guess that's what makes me a purist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111869680342732937?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111869680342732937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/why-cf-can-be-scary-ride-sometimes.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111869680342732937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111869680342732937'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/why-cf-can-be-scary-ride-sometimes.html' title='Why CF can be a scary ride sometimes..'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111776849628444082</id><published>2005-06-02T21:47:00.000-05:00</published><updated>2005-06-02T22:15:35.196-05:00</updated><title type='text'>Why are so many down on ColdFusion?</title><content type='html'>I've been reading Mark Kruger's post about &lt;a href="http://mkruger.cfwebtools.com/index.cfm?mode=entry&amp;entry=3F03BE89-9B0A-9BAC-6283EBE4124F0682"&gt;Coldfusion and its undeserved Bad Rap - is it I?&lt;/a&gt;. While it's a great post, about why it's so easy to do ColdFusion wrong, we're still focusing on the wrong things.&lt;br /&gt;&lt;br /&gt;The problem with coldfusion code, is not coldfusion's fault, it's the coders fault.&lt;br /&gt;&lt;br /&gt;So let's stop putting the blame on the language, and more on the coders.&lt;br /&gt;&lt;br /&gt;I'm not saying coldfusion is the language to solve every problem, but it has it's strengths and weaknesses like any other language.&lt;br /&gt;&lt;br /&gt;But for 90% of most web applications, Coldfusion is one of the top 2 solutions for it.&lt;br /&gt;&lt;br /&gt;Let's explain why ColdFusion is one of the top 2, and let's be realistic.&lt;br /&gt;&lt;br /&gt;1. ColdFusion coders are much cheaper and faster than java/main frame coders, simply because it's a markup language, easy to use, but hard to master. &lt;br /&gt;&lt;br /&gt;2. Now that ColdFusion is now a java application it is much more stable, than it ever was.&lt;br /&gt;&lt;br /&gt;What was the slogan of ColdFusion when we just got started?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rapid Application Development&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So that means speedy development of applications, if we code it right.&lt;br /&gt;&lt;br /&gt;So let's stop downplaying ColdFusion because it's not OO-enough, java enough, framework friendly enough, that is 1% of what ColdFusion was created for.&lt;br /&gt;&lt;br /&gt;Rapid Development of Applications, using good and reasonable standards of coding. If a framework helps improve ease of coding, while not interfering with scalability and performance, than by all means use it.&lt;br /&gt;&lt;br /&gt;Think about it from a client's end. Does it really matter if you use the latest standard? Only if it's a good standard that delivers scalible code.&lt;br /&gt;&lt;br /&gt;I know I really repeat that point, because I don't feel like many people really get that. And instead of worrying about quality code delivering for high performance, they worry about the latest framework, oo/mvc, cfcs.&lt;br /&gt;&lt;br /&gt;Let's talk about CFC's. First of all, I am glad they are a part of the ColdFusion language set, but they were only specificially designed for webservice usage, and instead we get tons of people using them for regular applications, when they're not an improvement in performance.&lt;br /&gt;&lt;br /&gt;I know it's a cool way of coding applications, but SO WHAT?&lt;br /&gt;&lt;br /&gt;What's more important? The coolness of the coding style, or delivering applications that don't crash the server? Or causes endless errors?&lt;br /&gt;&lt;br /&gt;If CFC's are proven to be of at least equal performance as cfincludes, then I'll be happy to use them, until them, they are a waste of time and energy.&lt;br /&gt;&lt;br /&gt;I remember, when I was working for a previous job, and an outsourced company was hired to create a checkout process, and instead of using normal coding methodology, they did it as a CFC.&lt;br /&gt;&lt;br /&gt;Are they BLEEPING Serious? CFC's are specifically just for web service usage, and instead you wasted weeks and money which I'd eventually have to re-do, because it wasn't scalible.&lt;br /&gt;&lt;br /&gt;And don't give me this crap, oh you haven't worked on an enterprise application, of course I have. Maybe it's not in huge teams, but I've been working with top national companie's, being the main coder, having to clean up everyone else's code.&lt;br /&gt;&lt;br /&gt;You can call it my nickname, Mr. Clean. I am the one who has to clean up everyone else's code. &lt;br /&gt;&lt;br /&gt;And I am sick and tired of everyone else caring more about using the latest gui, methodology or standard, than producing scalible, quality code.&lt;br /&gt;&lt;br /&gt;I've been forced to clean up fusebox code too. Because we needed an application, like 100% of ours, had to be Search Engine Friendly, so we had to waste more time and money re-doing it, into a regular application.&lt;br /&gt;&lt;br /&gt;I understand the need for a framework and methodology, and fusebox has brought a lot of good ideas, but really when you look at the app from a customer's point of view, it's really not user friendly.&lt;br /&gt;&lt;br /&gt;And it's not really coder friendly.&lt;br /&gt;&lt;br /&gt;Unless you are that group of people who are fuseboxers and only work on 1 part of an application.&lt;br /&gt;&lt;br /&gt;I know i am of the rare ones, that work on a full application, and that has a lot of benefits. &lt;br /&gt;&lt;br /&gt;I get a much better idea of what everything is supposed to do, I am a much more complete and thorough coder, than if i were a fusebox coder.&lt;br /&gt;&lt;br /&gt;I do forms, html, tables, css, javascript, dhtml, sql statements, I do it all.&lt;br /&gt;&lt;br /&gt;But I am tired of being angry, I just want more people to get a grasp of common sense. &lt;br /&gt;&lt;br /&gt;Of course, since I am not flouting what the popular bloggers say, so more people will hate me, but that's my due I guess for being different.&lt;br /&gt;&lt;br /&gt;Be well.&lt;br /&gt;&lt;br /&gt;Long live ColdFusion!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111776849628444082?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111776849628444082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/why-are-so-many-down-on-coldfusion.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111776849628444082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111776849628444082'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/why-are-so-many-down-on-coldfusion.html' title='Why are so many down on ColdFusion?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111773878845481983</id><published>2005-06-02T13:50:00.000-05:00</published><updated>2005-06-02T13:59:48.460-05:00</updated><title type='text'>OT: Just bought the NewsRadio DVD</title><content type='html'>When NewsRadio was on TV, I really enjoyed it. In a way it was a scope into the Dilbert  -like culture of corporate jobs. It was a great, laughing experience, introducing us into a cast of great comic experience. &lt;br /&gt;&lt;br /&gt;But it also had it's sad moments when Phil Hartmann, passed away.&lt;br /&gt;&lt;br /&gt;But it shows us the natural good and bad times of job cultures, which is both amusing and sad at times.&lt;br /&gt;&lt;br /&gt;I just saw the DVD at the Target, and I was just possessed to buy it. &lt;br /&gt;&lt;br /&gt;For some of these type of shows, we tend to identify with certain characters.&lt;br /&gt;&lt;br /&gt;I myself, tend to identify with Matthew or the Gilligan type.&lt;br /&gt;&lt;br /&gt;Who do you identify with? What are you favorite TV Shows of all time?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111773878845481983?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111773878845481983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/06/ot-just-bought-newsradio-dvd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111773878845481983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111773878845481983'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/06/ot-just-bought-newsradio-dvd.html' title='OT: Just bought the NewsRadio DVD'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111752531122054760</id><published>2005-05-31T02:09:00.000-05:00</published><updated>2005-05-31T02:41:51.226-05:00</updated><title type='text'>Starting the process of experience delivery</title><content type='html'>I recentally talked about my own personal change from merely creating scalible applications, towards a new thinking, that of delivering a good experience.&lt;br /&gt;&lt;br /&gt;It sounds rather simple, but in actuality, takes a lot of effort to learn a whole new approach.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are the steps, I have subtly followed, and now hope to work with others to find the best standard.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Identify your true end user&lt;br /&gt;&lt;br /&gt;There may be some struggle to help to identify who your end user is. Sometimes your boss thinks they are, and sometimes it's the hidden end user.&lt;br /&gt;&lt;br /&gt;So you have to really examine who will be using the application you create&lt;br /&gt;&lt;br /&gt;2. Identify the goals/objectives of your end users&lt;br /&gt;&lt;br /&gt;Now, this sounds so complex, but in reality, most people, depending on the demographics of your end users, will have very simple goals or objectives.&lt;br /&gt;&lt;br /&gt;Let's be clear hear, in my mind there are two really great, not perfect, sites that deliver great experiences. Amazon.com and Google.com, and why are they still so great? Because both sites, make it easy to find what you are looking, and don't get in the way of what you are really after. Sounds simple doesn't it?&lt;br /&gt;&lt;br /&gt;Let's show you how they do their magic.&lt;br /&gt;&lt;br /&gt;Amazon.com - Most people come there for either a specific product, or to browse, and amazon.com is designed for either in mind. They occassionally have advertizing for new departments or promotions, and that can sometimes get annoying but most of the time, it's easy to use.&lt;br /&gt;&lt;br /&gt;Google.com - Sticks by a very simple interface, that focuses on you searching and even more importantly finding what you are looking for. They do not let, design get in the way of usability.&lt;br /&gt;&lt;br /&gt;So, how do we carry this over to your own site?&lt;br /&gt;&lt;br /&gt;I tend to generalize most sites into 2 types:&lt;br /&gt;&lt;br /&gt;1. Ecommerce&lt;br /&gt;2. Content&lt;br /&gt;&lt;br /&gt;There may be more types, but they're not where the money is so far. I am not saying other types aren't important, but these are the main two types i know of, where there is a lot of confusion.&lt;br /&gt;&lt;br /&gt;3. Avoding confusion between your/bosses goals and your end users goals&lt;br /&gt;&lt;br /&gt;It's so easy to change the navigation, add new tools, or add more promos. &lt;br /&gt;&lt;br /&gt;And this is behind the sad, bad mentality of the dot-com era, that new visitors will keep coming, and you don't have to do anything to get repeat customers.&lt;br /&gt;&lt;br /&gt;So if you are in any doubt, look at how your competitors up and down the food chain, make it easy for the custoemrs to fulfill their goals.&lt;br /&gt;&lt;br /&gt;And when you think your designing the site for your own needs, that's where you can really go down the tube, and you just have created a site no one would visit or use, other than yourself. &lt;br /&gt;&lt;br /&gt;That's enough for now, more to come...Please share your own thoughts and ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111752531122054760?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111752531122054760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/05/starting-process-of-experience.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111752531122054760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111752531122054760'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/05/starting-process-of-experience.html' title='Starting the process of experience delivery'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111728411931697121</id><published>2005-05-28T07:26:00.000-05:00</published><updated>2005-05-28T07:41:59.323-05:00</updated><title type='text'>Delivering on Experience</title><content type='html'>As time goes on, and I get more experience, and hopefully wiser, I tend to see application building in a new way. Not in terms of just mastering the craft of delivering scalible applications, but in terms of delivering good experience to the end user.&lt;br /&gt;&lt;br /&gt;And it is this new passion of mine, to deliver good experience, that really makes the technology not as important, that the good experience is delivered on.&lt;br /&gt;&lt;br /&gt;This is part of the new trend that I call, Technology Transparent. This is the idea that in the eyes of the end user, it really does not matter what programming language, what server, what coding methodology. &lt;br /&gt;&lt;br /&gt;What matters it the good experience. What matters is the kind of questions, end users tend to ask or demand of the applications we create.&lt;br /&gt;&lt;br /&gt;Here is a list of some of those questions:&lt;br /&gt;&lt;br /&gt;1. How easy is it to use this application?&lt;br /&gt;2. Is there any kind of support or help system for this?&lt;br /&gt;3. How do I train my fellow workers or other users on this?&lt;br /&gt;4. Is this anything like the previous X application we used? If not, that will require more time for training.&lt;br /&gt;5. Will this application stay up 24/7?&lt;br /&gt;6. What kind of security systems do we have, and how hard are they to learn?&lt;br /&gt;&lt;br /&gt;This is just like the kind of questions people ask when they switch operating systems, because people are being asked to transfer their paradigm of how they previously did whatever work they did, to a new application.&lt;br /&gt;&lt;br /&gt;The learning curve has to be taken into consideration, we can no longer just build the application, and since it was easy for us to figure out how to use it, it must be easy for the end users.&lt;br /&gt;&lt;br /&gt;In honesty, it's time for us to shift our awarenes of what we do, instead of being coders and designers, we really are Experience Deliverers.&lt;br /&gt;&lt;br /&gt;Because everything we do is what the end user experiences in their ease or lack of ease in their use of the applications.&lt;br /&gt;&lt;br /&gt;Let's take a for example, on how user experiences have to shift/adapt frequentally when they change what applications they use.&lt;br /&gt;&lt;br /&gt;I remember back in the day, using Wordstar 2000, it was heavily dependent on using odd command combinations, and it took lots of training to learn how to bold, italic, postscript, whatever it is we wanted to do with it.&lt;br /&gt;&lt;br /&gt;And now look at MS Word 2000, all graphical icons, and lots of tools, toolbars. That is a huge transformation of experiential paradigm. How can we imagine that people can constantly adjust their paradigms to understand how different applications work.&lt;br /&gt;&lt;br /&gt;So from the end user's perspetive, they are getting new/changed/updated applications, but are constantly have to change how they work with them. Because the way applications are created, it's not kept in mind, how it changes the users way of working with it.&lt;br /&gt;&lt;br /&gt;Instead of seeing how end users work with their current applications, and make the experience seamless with it, we're constantly changing the wheel, re-inventing the wheel, based on what we feel the experience should be, rather than what the customer really needs.&lt;br /&gt;&lt;br /&gt;This goes to the reason we are doing this, I mean we all love creating interesting and wonderful applications, but what good are we doing, if the customers constantly have to re-learn how to use their applications.&lt;br /&gt;&lt;br /&gt;So these are my thoughts, and it has driven me to create a new personal motto.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Experience First, Technology Transparent&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Because in the end, what really matters to the end user, the technology or the experience?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111728411931697121?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111728411931697121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/05/delivering-on-experience.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111728411931697121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111728411931697121'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/05/delivering-on-experience.html' title='Delivering on Experience'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111713549409112947</id><published>2005-05-26T13:56:00.000-05:00</published><updated>2005-05-26T14:24:56.546-05:00</updated><title type='text'>Managing Data in it's Scope and Validation</title><content type='html'>When it comes down to it, 99% of the time, we're processing, analyzing, tweaking to get data into both the datatype, and validity. However as time goes by, we learn different tricks to help prevent the common errors we had of the past: SQL Hacking, User Error, Scope Error and a few more I'll remember as I go on.&lt;br /&gt;&lt;br /&gt;In my own preparations of the application, I think about what kind of data is coming, and what priorities different scopes have, and what kind of validation measures i have to stand by. So to help me, I've come up with means of setting that all up, to reduce the number of data errors.&lt;br /&gt;&lt;br /&gt;I always use cfparam using a new name for the scope of the application itself. I simply create a cfparam of local_variablename, to help make sure that I have absolute control of what scope priority.&lt;br /&gt;&lt;br /&gt;For example, in the past I can remember using the same variable name for url, form and local, and there was a lot of confusion as to which one was populating the variable in the application.&lt;br /&gt;&lt;br /&gt;So let's say you have a variable called movie_id, first i determine what kind of datatype is that going to be? Most likely with id as past of the name, it's going to be a number. So i type in like this.&lt;br /&gt;&lt;br /&gt;1. cfparam name=local_movie_id default=0 type=mumeric&lt;br /&gt;&lt;br /&gt;2. What possible locations for data do I have?&lt;br /&gt;&lt;br /&gt;cfif isdefined("url.movie_id") cfset local_movie_id = url.id&lt;br /&gt;cfif isdefined("form.movie_id") cfset local_movie_id = form.movie_id&lt;br /&gt;&lt;br /&gt;now i could re-arrange the above, into which source i want to come from.&lt;br /&gt;&lt;br /&gt;3. Simplify the checking of incoming data&lt;br /&gt;&lt;br /&gt;cfif local_movie_id then take action, else ignore and show error of no data sent from previous page.&lt;br /&gt;&lt;br /&gt;4. Why is this better?&lt;br /&gt;&lt;br /&gt;Because instead of multiple if's, checking each possible scope for it's existance and then having repetitions of the same exact actions, it's much easier to just have  one if statement. Was the data passed, if so take action, otherwise error. &lt;br /&gt;&lt;br /&gt;It's much easier to read, you just have to do the setup.&lt;br /&gt;&lt;br /&gt;5. Use cfqueryparam&lt;br /&gt;&lt;br /&gt;Now for different databases, cfqueryparam can improve performance, it depends if it has the feature called BIND Variables, which it treats the queries with different where values, etc to be the same, which means it caches the query and just changes what results come back. &lt;br /&gt;&lt;br /&gt;The other major reason I always use it, unless i have to cache the query in other means, is for it's data validation.&lt;br /&gt;&lt;br /&gt;I really don't care how simple or complex an application is, I always make sure the datatype is validated before being sent to the database. It makes a great practice, and makes sure you don't waste time, having to go back to fix your code after you thought you were done.&lt;br /&gt;&lt;br /&gt;Now, maybe 99% of the time it never happens, or it's just some maladjusted user, playing with url variables, but you have to protect your database against that.&lt;br /&gt;&lt;br /&gt;Now that we've made sure the data, is in the right datatype and is validated, what things can we do to make it more organizable and efficient?&lt;br /&gt;&lt;br /&gt;It really depends on the complexity of the data and how many different ways you need to organize it.&lt;br /&gt;&lt;br /&gt;I tend to like creating fake queries or as we call them, query of queries, because it makes it much easier to do all kinds of whacky where's/sorting/order by etc. They are really easy to set up...&lt;br /&gt;&lt;br /&gt;1. First you create the query&lt;br /&gt;&lt;br /&gt;cfset myQuery = QueryNew("first, last, address, city, state, zipcode, email, acct_balance")&lt;br /&gt;&lt;br /&gt;2. Then you want to populate the data, and this is where it can get really fun. &lt;br /&gt;&lt;br /&gt;Such as if you have this datafeed or report that is a file in a .csv format, you can convert it into a query of queries. I have done this quite a few times, and a lot of fun. &lt;br /&gt;&lt;br /&gt;Or it can be a structure object being sent as an application, url or form variable, that you just need to turn into some kind of report.&lt;br /&gt;&lt;br /&gt;Wherever the source is, it's going to be in the form of a looping mechanism to add row by row to the query object, called myQuery.&lt;br /&gt;&lt;br /&gt;cfloop however your data is getting imported&lt;br /&gt;&lt;br /&gt;cfset temp = QueryAddRow(myQuery)&lt;br /&gt;cfset temp = querysetcell(myQuery, first, "#firstname#")&lt;br /&gt;cfset temp = querysetcell(myQuery, last, "#lastname#")&lt;br /&gt;&lt;br /&gt;the basic syntax is cfset temp = querysetcell(queryname, field, value)&lt;br /&gt;&lt;br /&gt;/cfloop&lt;br /&gt;&lt;br /&gt;Now you've created this query object, now you can play with it to help produce the results you want. And remember, depending on what variety of reports or results, to only grab the data once, unless you update the datasource frequentally. &lt;br /&gt;&lt;br /&gt;Now we get into report generation, first what kind of data and in what order do you want?&lt;br /&gt;&lt;br /&gt;For example, if you wanted the names, email of those who had a big account balance of over $100, you can do something like this:&lt;br /&gt;&lt;br /&gt;cfquery name=bigbadclients dbtype="QUERY"&lt;br /&gt;select first, last, email&lt;br /&gt;from myQuery&lt;br /&gt;where acct_balance &gt; 100&lt;br /&gt;/cfquery&lt;br /&gt;&lt;br /&gt;Then you can do your normal cfoutput's, laying the data into table structures. OR for example you can export it into a csv or excel file.&lt;br /&gt;&lt;br /&gt;Now you are starting to see, that once you have a handle on the best ways to handle data, you can do anything you want with them.&lt;br /&gt;&lt;br /&gt;Have fun with your data, and share any of your best tips here at ColdFusion Purists.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111713549409112947?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111713549409112947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/05/managing-data-in-its-scope-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111713549409112947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111713549409112947'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/05/managing-data-in-its-scope-and.html' title='Managing Data in it&apos;s Scope and Validation'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111697707870170265</id><published>2005-05-24T18:09:00.000-05:00</published><updated>2005-05-24T18:24:38.706-05:00</updated><title type='text'>Developing the Right Habits</title><content type='html'>I was reading Cameron Childress's blog on &lt;a href="http://www.sumoc.com/blog/index.cfm?mode=entry&amp;entry=107B29B6-5004-2066-B7969AC291C6D236"&gt;Building the Perfect Application&lt;/a&gt;. He talks about how people still fight over whether coding with Select * being a good thing vs a bad thing.&lt;br /&gt;&lt;br /&gt;If you want to be a good/great coder you can't simply do the laziest habits in coding, you have to develop the habit of creating applications building skills.&lt;br /&gt;&lt;br /&gt;I know these aren't exactly fun or hip or cool, but they make sure we make less mistakes, and don't have to re-code our work for a number of reasons.&lt;br /&gt;&lt;br /&gt;Solid Disciplines to Prevent Future Re-Coding:&lt;br /&gt;&lt;br /&gt;1. I always plan out my projects using either a word template or flow chart or both. &lt;br /&gt;&lt;br /&gt;2. I plan out what incoming/outgoing variables so i make sure that each step of the application has the data it needs passed or sent.&lt;br /&gt;&lt;br /&gt;3. I even go so far as to create all the commented sections of each application with all the needed indents.&lt;br /&gt;&lt;br /&gt;4. Writing SQL Statements, I know we're all in a hustle to get the project done as fast as possible, but if we build the right habits, we'll still have speed, but have created more scalible and error-proof applications.&lt;br /&gt;&lt;br /&gt;5. I create a funcitonal testing checklist, that i use to identify what areas as possible causes for errors, and create the traps around them, and the right locations. We can't catch ever error, but the more effort you do in preparing for them, the better you look.&lt;br /&gt;&lt;br /&gt;In conclusion, the more effort you put into creating the right habits to create scalible and error-proof code, the less times, you'll have to come back later and re-write it. I mean, how many times have you had to re-write yours or other people's code either because of scalability/page loadings or bad handling of user/technical errors?&lt;br /&gt;&lt;br /&gt;I have done it many times, and that's why I developed my own set of habits, to prevent, predict and fix problems.&lt;br /&gt;&lt;br /&gt;"DO IT THE RIGHT WAY THE FIRST TIME."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111697707870170265?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111697707870170265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/05/developing-right-habits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111697707870170265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111697707870170265'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/05/developing-right-habits.html' title='Developing the Right Habits'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-111661142309969726</id><published>2005-05-20T12:12:00.000-05:00</published><updated>2005-05-20T12:50:23.140-05:00</updated><title type='text'>Adapting Your Framework</title><content type='html'>In the last couple of months, I have been doing a lot of thinking about frameworks. They certainly are very important, and each has it's strengths and weaknesses. But are we choosing our frameworks for the right reasons?&lt;br /&gt;&lt;br /&gt;One of my favorite football coaches of all time, Bud Grant, wrote one time of adapting your strategies/tactics to match the strengths/weaknesses of your team. "Make the Playbook Fit the Players". &lt;br /&gt;&lt;br /&gt;For example, if you have a lot of great running backs, you don't try to force your team to be a passing team, and vice versa.&lt;br /&gt;&lt;br /&gt;Now how does this go towards picking a framework?&lt;br /&gt;&lt;br /&gt;Because we can't simply pick one, and assume it will solve all our problems, because there are always changing factors to the team that helps to create/update/fix the applications.&lt;br /&gt;&lt;br /&gt;Because a framework has two end-users, the coders who work with it, to hopefully churn out high quality applications, and the end users who use the applications, hoping for high usability, efficiency and scalability.&lt;br /&gt;&lt;br /&gt;Each has a different need, so what we really need is an Adaptive Framework/Metholodogy that adapts as both ends change.&lt;br /&gt;&lt;br /&gt;What things does an Adaptive Framework need?&lt;br /&gt;&lt;br /&gt;1. Easy to read code - Each company should pick it's own style, but document that style.&lt;br /&gt;&lt;br /&gt;     A. Naming Conventions - for filenames, folders, variables, it has to be well documented and referenced to in each root application. So that 5-10 years from now, someone can come in and reasonably easily read your code.&lt;br /&gt;&lt;br /&gt;     B. Indenting - Adding to the elements that make code more easy to read. This takes a lot of time, to develop as a skill/discipline, but it pays off, in making the code much more easy to read.&lt;br /&gt;&lt;br /&gt;     C. Comments - No one is a mind reader, and as applications get more and more complicated, the need comes for more comments not less. &lt;br /&gt;&lt;br /&gt;     D. Documenting Applications - As your sites/applications get more comprehensive it really becomes important to document every aspect, so in if anything happens to you, someone can easily pick up from where you left. &lt;br /&gt;&lt;br /&gt;2. Making applications easier for end users&lt;br /&gt;&lt;br /&gt;    A. Each application must be a seperate file name, instead of all applications coming to one file name. This makes it easier for bookmarking, and that makes it more likely to be visited again.&lt;br /&gt;&lt;br /&gt;    B. Search Engine Friendly - Take the long view, and prepare your applications for maximum popularity, meta-tags, description, keywords, page titles. &lt;br /&gt;&lt;br /&gt;    C. Usability - Making sure the end user can use the application, and that any need for help/guidance is made available.&lt;br /&gt;&lt;br /&gt;    D. Handling Errors - All applications sometimes have errors, either caused by the application or the user or some other fluke, but by being prepared for this, you present a more professional image to the customer.&lt;br /&gt;&lt;br /&gt;3. Improve Ease of Coding in teams/solo - It is obvious now that each company has a different setup for who and how many people do application coding, so we must prepare and adapt our framework to each, so that we make it smooth and comfortable for both.&lt;br /&gt;&lt;br /&gt;   A. In dealing with teams, it's highly important to divide the work according to each persons's strengths, however that has a couple negative side-effects: &lt;br /&gt;&lt;br /&gt;         1. People will never learn or get the opportunity to learn/practice in their non-strengths&lt;br /&gt;         2. People will not get a whole overview of the applications they work on&lt;br /&gt;         3. People will get burned out, only working in their strengths&lt;br /&gt;&lt;br /&gt;       So we must adapt, and perhaps provide job rotation, different people changing what part of an application they will work on.&lt;br /&gt;&lt;br /&gt;    B. However working by yourself has it's own strengths/weaknesses. While you do tend to get a stronger understanding of the application as a whole, and do tend to explore all skill ranges, your doing it alone, and may not learn new ways of coding, and you may not get better without others to learn from, share and compete with. &lt;br /&gt;&lt;br /&gt;    C. Companies can no longer afford not to have a training plan, this can be cheap to expensive, but this industry needs to adapt to the technology, and instead of constantly hiring different people for different technologies, it's cheaper and gets better employer longevity by having a training plan.&lt;br /&gt;&lt;br /&gt;       Simply since most of us in our field are self-taught, as I am, training was never really available, in an official outlet. &lt;br /&gt;&lt;br /&gt;       So a training plan can be having 1 lunch a week, where a different coder/developer shares a technique; rotate sending developers to different conventions to pick up and enhance skill sets; sign up for local classes; encourage study groups for certification testing.&lt;br /&gt;&lt;br /&gt;       You hired a coder to do a job, but that job cosntantly changes, you already paid an investment into that employee, why waste that money by not providing training to make them more valuable to you. Most people I know would love to be trained rather than get some kind of IPO or other benefit like in the 1990's.&lt;br /&gt;&lt;br /&gt;     D. Project Management - This is a must, you must prevent wasting time and money on projects that are not clearly requested/planned. We've all been burned, so plan out every step of the project ahead of time, in written/typed however you like it. &lt;br /&gt;&lt;br /&gt;     E. Planning applications for scalability in the long term - How many of us want to keep re-writing the same application over and over? Not me. I'd rather get it right the first time. And this involves knowing when to use the right coding method for the application. &lt;br /&gt;&lt;br /&gt;Well this is enough of a good starting point, so let me know what you think.&lt;br /&gt;&lt;br /&gt;Thank you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-111661142309969726?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/111661142309969726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/05/adapting-your-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111661142309969726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/111661142309969726'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/05/adapting-your-framework.html' title='Adapting Your Framework'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-110610705485725911</id><published>2005-01-18T21:42:00.000-06:00</published><updated>2005-01-18T21:57:34.856-06:00</updated><title type='text'>Overemphasis on OO and Modularity</title><content type='html'>As I have seen more and more in our industry, the call for modularity has surpassed the original intent. In far past, too many applications were to huge, hard to read, and were using similar code, that could have been re-used, and save some time.&lt;br /&gt;&lt;br /&gt;There is a lot of common sense involved with code re-usability:&lt;br /&gt;&lt;br /&gt;1. Making sure we don't waste time in writing the same codee&lt;br /&gt;2. Making sure that long applications are broken up into more readable applications&lt;br /&gt;&lt;br /&gt;But I feel we've finally gone way over the edge, by these simple but needed changes in how we code, way too far into OO-land.&lt;br /&gt;&lt;br /&gt;I feel there are times when OO can be useful, but not when you are coding coldfusion applications 99% of the time.&lt;br /&gt;&lt;br /&gt;Coldfusion is a very powerful language for  creating web applications, but is most know for it's speed of concept to results, Rapid Application Development. So that means there has to be a logical path from a to b, and that's the end of the application.&lt;br /&gt;&lt;br /&gt;We are getting invested into things that may be interesting but are inhibiting our speed of delivery. &lt;br /&gt;&lt;br /&gt;Simply said, Object Orientation, requires thinking in non-logical ways, that make it hard to work with and hard to communicate about.&lt;br /&gt;&lt;br /&gt;What happened to plain old english logic?&lt;br /&gt;&lt;br /&gt;I felt this when I had taken my first java class, I could figure out how eventually to do whatever i wanted, but no one would talk in a logical manner.&lt;br /&gt;&lt;br /&gt;If I wanted to X, what things do I need to do X. A Simple Question, but because of object orientation, there was no way to logically describe the problem and solution.&lt;br /&gt;&lt;br /&gt;Object Orientaton sounds really fascinating, but experiences like really a waste of time. &lt;br /&gt;&lt;br /&gt;I have no problem finding new ways to both improve the quality of the code, and improve the speed of delivery, but I have never believed OO was the path to do that.&lt;br /&gt;&lt;br /&gt;I am sure there can be a more logical approach to working with Java, without having to use OO language.&lt;br /&gt;&lt;br /&gt;I mean, I've worked in javascript, which has methods and objects, but I've had no problem doing what I needed to get done, because it's coders use logic.&lt;br /&gt;&lt;br /&gt;This goes along with CFC as well. Which were originally meant to be used for web services only, which is fine. But now everyone wants to use them for non-webservice related projects?&lt;br /&gt;&lt;br /&gt;Doesn't anyone have a clue how to code for scalability? It's interesting and new ways of doing things, but they are not always the best ways.&lt;br /&gt;&lt;br /&gt;We have to use our common sense.&lt;br /&gt;&lt;br /&gt;So what things can we do to improve coding quality?&lt;br /&gt;&lt;br /&gt;Start with the basics:&lt;br /&gt;&lt;br /&gt;1. Commenting&lt;br /&gt;2. Code Readability including good indenting&lt;br /&gt;3. Use a Project Management Process to avoid coding mistakes&lt;br /&gt;4. Documentation&lt;br /&gt;5. Learning from Mistakes&lt;br /&gt;&lt;br /&gt;My Motto - "Doing it the right way the first time"&lt;br /&gt;&lt;br /&gt;Understand how to code for best performance, and code as if each application will be serving millions of users consistantly.&lt;br /&gt;&lt;br /&gt;Understand how to write the best sql statements to get the data you want, but write it for performance. Use stored procedures, dts packages, all the functionality to  move cf scheduled events into the database, so the web server can just focus on serving pages.&lt;br /&gt;&lt;br /&gt;There are so many ways that we fail every day to just do the core, and all of us are into whatever the current fad is.&lt;br /&gt;&lt;br /&gt;If there are other ways to be better coders, I am sure eager to know. I do not assume I know it all. But I do try to know what works, and what is a waste of time.&lt;br /&gt;&lt;br /&gt;Coldfusion is about speedily creating great applicationss, so are you?&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-110610705485725911?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/110610705485725911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/01/overemphasis-on-oo-and-modularity.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110610705485725911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110610705485725911'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/01/overemphasis-on-oo-and-modularity.html' title='Overemphasis on OO and Modularity'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-110608541642611822</id><published>2005-01-18T15:31:00.000-06:00</published><updated>2005-01-18T15:56:56.426-06:00</updated><title type='text'>Job Hunting: A fun and educating  experience</title><content type='html'>As the trend in this economy has been of constant flux of jobs, it has taken some learning to know how to deal in this new economy. &lt;br /&gt;&lt;br /&gt;I hope to share the lessons and skills I have learned in dealing with this, and I hope to hear other people's experiences as well..&lt;br /&gt;&lt;br /&gt;First off, there is never enough sites to store your resume, the key I have found is to identify which sites, are the future employer's actually using themselves??&lt;br /&gt;&lt;br /&gt;I use Monster, Dice, Yahoo Hotjobs, and Careerbuilder, most of all. They all have all key features that make them different and yet the same.&lt;br /&gt;&lt;br /&gt;1. The daily search email can be very useful, to automate the process of finding a job, or finding an employer. But the hard part is to identify, what keywords to use. Such as  do you use coldfusion or cold fusion, which do employers use, and what should you use.&lt;br /&gt;&lt;br /&gt;2. Job Titles, ooooh aah. It's weird that each company may have it's own job title, that do different things. Such as a webmaster in 1 company may be the developer, but in other, just handles maintenance of the web site and handles emails. It's so unnecessarily confusing, especially when looking for jobs, what job title, best describes what your employer wants to hire you at?&lt;br /&gt;&lt;br /&gt;3. Constantly revise your resume. I am never satisfied with descriptions of what I have done. &lt;br /&gt;&lt;br /&gt;4. Documentation or Profiling of work, this is one of the hard areas to provide. All employers want it, but won't allow us to provide  it. Because all code is usualy propietary, so how can we prove what we know? Well I actually discussed this with a recruiter who wasn't sure how to handle this, and my answer is testing sites or services, such as brainbench or other sites that you can get an account for, and use to test potential employees. What else can we do?&lt;br /&gt;&lt;br /&gt;5. Dealng with recruiters, this has been the most difficult experience. Such as 25 recruiters asking you regarding the same exact job. Or recruiters posting job ads, but with no actual job, just so that they can get you in their database. Also every recruiter besides having recieved an email of our web-based resume, want a word one as well. And there is no easy way to convert it to word, and still look good and on   1 page. There has to be a better way to both meet the needs of the job searchers and employers to have all the information they absolutely  have to have...&lt;br /&gt;&lt;br /&gt;It's just frustrating sometimes dealing with all the barriers to a job. After all we have similar goals, I want a job, they want to hire someone, so how can we meet in the middle and work out these problems.&lt;br /&gt;&lt;br /&gt;Part of this has to deal with the experiences we had during and after the dot-com bomb. Companies can not simply exist without clear ways to earn and keep money. &lt;br /&gt;&lt;br /&gt;We need to be paying people  meritiously...and re-think how promotion and demotion works. &lt;br /&gt;&lt;br /&gt;Good luck to everyone who is looking and hiring...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-110608541642611822?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/110608541642611822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2005/01/job-hunting-fun-and-educating.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110608541642611822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110608541642611822'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2005/01/job-hunting-fun-and-educating.html' title='Job Hunting: A fun and educating  experience'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-110451585919834718</id><published>2004-12-31T11:41:00.000-06:00</published><updated>2004-12-31T11:57:39.196-06:00</updated><title type='text'>Right Direction or OverComplexification?</title><content type='html'>As the years have gone by, there has been this definite feeling that we are going in the wrong way, in terms of Macromedia Coldfusion.&lt;br /&gt;&lt;br /&gt;Both in how we have standards for developing, and in what we focus on.&lt;br /&gt;&lt;br /&gt;One article, I remember reading last year on InternetRetailer.com, is that ecommerce retailers have been too focused on what is the correct technology to use. Then they get hooked into bells and whistles rather than what is cost efficient to bring the core results they need.&lt;br /&gt;&lt;br /&gt;If I remember correctly, I may be misquoting.&lt;br /&gt;&lt;br /&gt;"They should focus more on the ROI goals/results, less on what technology they use to get there."&lt;br /&gt;&lt;br /&gt;To me this can also apply to how we use/develop ColdFusion.&lt;br /&gt;&lt;br /&gt;I have always seen Coldfusion as a tool to rapidly develop web applications. But over time it has become 20-30 different things to different people. But we have lost that touch with our core, and we still haven't resolved issues of ColdFusion Development...&lt;br /&gt;&lt;br /&gt;Here's what we should be focusing on.&lt;br /&gt;&lt;br /&gt;1. Built-in tools/addons for Standardized Project Management - As CF Developers we are rarely familiar with Project Mgmt, and it's lack makes us look less professional, then developers of other languages. &lt;br /&gt;2. We need a web-based workflow/source-control system, that is standardized to help remote &amp; local workers, work on different parts of the same project. &lt;br /&gt;3. We need a universally accepted standard of coding style. We may all have variations of this, but we need something as a starting point. &lt;br /&gt;4. We need an automatic documentation system, that forces us to document each component of each application.&lt;br /&gt;&lt;br /&gt;We may each have our personal favorites, but that doesn't prevent us from needing a universal style for all cf developers.&lt;br /&gt;&lt;br /&gt;As long someone's coding style doesn't make it unreadable to someone else, who may not be a follower of that style.&lt;br /&gt;&lt;br /&gt;Face it, if the code isn't readable, how the heck can we improve/fix code?&lt;br /&gt;&lt;br /&gt;We must plan for obsolescence and the worse-case scenarios, because it's very sad and frustrating to always be fixing fires.&lt;br /&gt;&lt;br /&gt;I think it's time, that we have our top leaders in our community and in Macromedia, create a ColdFusion Standards Group. &lt;br /&gt;&lt;br /&gt;The goal would be to create standards in coding, project management, workflow, source control, in a way that can be easily understood and used by everyone.&lt;br /&gt;&lt;br /&gt;I am not pitching any methodology over any other. As long as that methodology can release code that is readable by others, who are not of that methodology.&lt;br /&gt;&lt;br /&gt;Once we have standards, then we need tools to help us more easily follow that standards.&lt;br /&gt;&lt;br /&gt;This is something i have been considering for a while. At first, I thought this could be an add-on to Dreamweaver/Studio. But now I feel for performance and security, it must be a web-based add-on, to IIS/CFMX Web Server.&lt;br /&gt;&lt;br /&gt;What do you think?&lt;br /&gt;&lt;br /&gt;What is your right direction? And does it make it easier to right code, or for others to read your code, and does it make it faster for you to write code?&lt;br /&gt;&lt;br /&gt;Efficiency is one of the keywords for ColdFusion, it's very easy and fast, if you know what you are doing....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-110451585919834718?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/110451585919834718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/12/right-direction-or-overcomplexificatio.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110451585919834718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110451585919834718'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/12/right-direction-or-overcomplexificatio.html' title='Right Direction or OverComplexification?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-110088837315175607</id><published>2004-11-19T13:10:00.000-06:00</published><updated>2004-11-19T12:19:33.150-06:00</updated><title type='text'>Working towards Standards</title><content type='html'>I keep experiencing these differences of standards, I come to a job, I want to either work with the already existing standards, or to help work to come up with a new one.&lt;br /&gt;&lt;br /&gt;It's a political/technical battle all rolled up into one.&lt;br /&gt;&lt;br /&gt;There are those workers, who are so busy that don't have time to discuss or work on standards, those who want standards but not sure what kind, those who have a specific standard set they are used to.&lt;br /&gt;&lt;br /&gt;I am not a proponent of a specific standard, as long as it's mutually easy to use/remember and helps prevent mistakes being made as a team or individual.&lt;br /&gt;&lt;br /&gt;That's goal isn't it, we learn from the mistakes of the past, so like the Boy/Girl Scouts we prepare, prepare and prepare to make sure those mistakes never repeat.&lt;br /&gt;&lt;br /&gt;All of this is about the mistake making, learning process.&lt;br /&gt;&lt;br /&gt;From Project Mgmt to Coding Standards.&lt;br /&gt;&lt;br /&gt;I keep remembering Hal Helm's article on Methodology in CFDJ. On one hand it is important to have a documented and easy to understand standard/methodology, but he is distasteful of there being different ones out there, that aren't a popular/commonly used standard/methodology. &lt;br /&gt;&lt;br /&gt;Maybe that's why I get so caught up in the Fusebox/Blackbox/Mach-II arguments. Not that they don't have vital things to be used or learned from, but I have no interest in pushing a certain methodology.&lt;br /&gt;&lt;br /&gt;I think we need a fresh new approach to standards and methodologies, that instead of labeling a standard/methodology, but lists each element of good standards/methodologies, and let's everyone pick from the menu on the list, in their own unique priority. &lt;br /&gt;&lt;br /&gt;That's the key, we're not all in the same coding environments, so we need to have an open standards approach, of including all ideas, and then each of us can freely pick what things are most important in our own situation.&lt;br /&gt;&lt;br /&gt;What kind of key things are important to you, if you had a list of elements for an Open Standards System?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-110088837315175607?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/110088837315175607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/11/working-towards-standards.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110088837315175607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/110088837315175607'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/11/working-towards-standards.html' title='Working towards Standards'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109769965786919645</id><published>2004-10-13T15:00:00.000-05:00</published><updated>2004-10-14T06:01:00.566-05:00</updated><title type='text'>Why have a Project Management System?</title><content type='html'>During my earlier days, I would always wonder, why make a hassle by having a complicated, time-wasting project mgmt system. Just assign me the task, and I'll write notes, and it will get done. Well after 5+ years of experience, I have realized as boring as Project Management, it's really about preventing wasting of time and energy.&lt;br /&gt;&lt;br /&gt;As I have learned, as I get more experience, is that being a good coder, is more than just writing good code. It means, mastering all the elements of a web development environment.&lt;br /&gt;&lt;br /&gt;But today, we're talking about Project Management, or as I like to call it: &lt;br /&gt;&lt;br /&gt;If you were psychic knew exactly what the client wanted, didn't have to waste time by asking any questions, and can just take a few minutes to generate immediate results.&lt;br /&gt;&lt;br /&gt;Often, we are experiencing the matador/bull symptom, of seeing an attractive red cape to attack, but not seeing the matador's blade behind it.&lt;br /&gt;&lt;br /&gt;This is where those who do not like anal retentive details, of what managing their assignments, are structured so that they are focusing the correct amount of time, on the correct elements that lead to a complete project that meets needs.&lt;br /&gt;&lt;br /&gt;Let's analyze that last statement, "A Complete Project that meets needs."&lt;br /&gt;&lt;br /&gt;First off, how do we make sure we really know what their needs are?&lt;br /&gt;&lt;br /&gt;Secondly, since the person/people who have these needs are usually not the people fulfilling those needs. How can we make sure that we can meet those needs in the way the client wants?&lt;br /&gt;&lt;br /&gt;Thirdly, about half-of-us, have to deal with feature-it-us, where in the middle of the project, someone wants to add new features that were NOT a part of the original discussion, and the rest of us are do not have to face it. &lt;br /&gt;&lt;br /&gt;Where being Bulls, we just want to kill the matador, or bounce him around at least, we do not want to dance around, or try for Bull gymnastics. Just to keep focused on our goals, and get there....&lt;br /&gt;&lt;br /&gt;Where as Matadors, just have needs, that they use the cape and blade to communicate with, not always clearly, and not always decisively.&lt;br /&gt;&lt;br /&gt;So we as Bulls and Matadors must come together to work out a way to solve our mutual problems.&lt;br /&gt;&lt;br /&gt;The problems are:&lt;br /&gt;&lt;br /&gt;1. What the heck is this application, this isn't want I wanted.&lt;br /&gt;2. Hey I definitely said red here, blue here, and lots of green over here.&lt;br /&gt;3. I spent days, weeks of sleepless nights on this project, and you still aren't satisfied?&lt;br /&gt;&lt;br /&gt;So how do we solve this problem?&lt;br /&gt;&lt;br /&gt;1. You must have a clear and precise idea of what the project is, what the logic flow is like, maybe have some drawings of what the pages look like. What colors will be used, etc. Imagine the coder doing the work, is deaf, blind and dumb, and that you have to use all your senses to completely describe this project.&lt;br /&gt;&lt;br /&gt;2. Then as a coder, you have to plan step by step, in detailed fashion, how you plan to execute this project. The client went to all the work to detail out their request, now you must explain how you plan to do the work. I usually ask myself questions, to help fill this out, such as: What kind of graphics need to be created/changed, What database changes need to be done, What form processing or logic flow changes are needed, and how will I know. Use flow charts, diagrams, the more details, the easier it will be to follow your plan.&lt;br /&gt;&lt;br /&gt;3. Now client and coder sit down, and review the Project Plan, to make sure the coder's idea of the project are the same as the client's. And then you can go over how long each step will take. What priority this project has over any other work that needs to be done. Then the client either approves or disapproves the Project Plan. If approved, start coding/executing the plan, if disapproved, then must re-start Project Plan to fill any missing spaces, or to clear up any miscommunication.&lt;br /&gt;&lt;br /&gt;4. If approved start executing the project plan.&lt;br /&gt;&lt;br /&gt;5. Debugging, at this point, as you iron out the bugs, create a functional testing checklist- A list of items that help the average joe, know whether the changes done were accurately done. Coders know code, but end-users know whether they were able to balance their checkbook or not. So help your code testing, by identifying what functionality this new project adds/changes, and how to test the success/failure of that change/addition.&lt;br /&gt;&lt;br /&gt;6. Functional Testing, preferrably, the client or a fellow coder, or anyone who has not looked at or worked on the application. You want someone with a clear mindset evaluate the success of your new application. You repeat steps 4,5,6 until all functional testing, says GO!&lt;br /&gt;&lt;br /&gt;7. Deploy Mechanism, we each have different development/production environments, but it pays to have a system/person that deploys the code to the right servers at the right time. Remember to turn Trusted Cache off, to make the code active.&lt;br /&gt;&lt;br /&gt;8. Test Again on Production, using the Functional Testing Checklist, to make sure that everything works as smoothly on production, as it did on development.&lt;br /&gt;&lt;br /&gt;Then document all of this, so you can organize, prioritize, and learn from each project. I mean, wouldn't it be nice, if you were working on the same project as you did 6 months ago, to have that documentation available to help remind you of what work was last done on that application?&lt;br /&gt;&lt;br /&gt;Remember this isn't about being Anal Retentive, it's about avoiding communication mistakes.&lt;br /&gt;&lt;br /&gt;What kind of miscommunication mistakes have you experienced? Or do you hate Project Management? Please comment. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109769965786919645?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109769965786919645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/10/why-have-project-management-system.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109769965786919645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109769965786919645'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/10/why-have-project-management-system.html' title='Why have a Project Management System?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109764335270589136</id><published>2004-10-12T23:28:00.000-05:00</published><updated>2004-10-12T23:55:52.706-05:00</updated><title type='text'>SQL Turbocharging</title><content type='html'>To really make your pages fly, depends on a lot of different things, such as indexing, table relationships, and good sql statements.&lt;br /&gt;&lt;br /&gt;Normally we have two starting points, whether you are creating a table from scratch or whether you are working on existing code.&lt;br /&gt;&lt;br /&gt;Let's say you are working with an existing database, and that you want the queries for this specific application to work fast.&lt;br /&gt;&lt;br /&gt;First thing, you have to consider is the freshness of data needs. How fresh does the data have to be? This information, can help shape the coldfusion side of your queries, whether you use caching or not.&lt;br /&gt;&lt;br /&gt;Second thing, is the control of the datetype enforcement of incoming variables to be applied to your query. For security it always pays to enforce the specific data type, either by using cfqueryparam, or other means.&lt;br /&gt;&lt;br /&gt;Third thing, what is the logic of the data you are grabbing, are you looping from 1 query to another query? This is ALWAYS a bad practice for performance. &lt;br /&gt;&lt;br /&gt;One of the hardest things I learned, is that you should combine the two queries, instead of doing the looping. But it will take patience and practice to formulate the query so as to return the same data.&lt;br /&gt;&lt;br /&gt;Remember each ODBC/JDBC connection to the database adds a hit of time,threads and performance. Less queries is always better.&lt;br /&gt;&lt;br /&gt;Now you have this query, now we want to make sure the tables are prepared to deliver the best results.&lt;br /&gt;&lt;br /&gt;I always start by making sure tables have a primary key that is also clustered.&lt;br /&gt;&lt;br /&gt;You can run the below script to get a list of tables, with primary keys, and whether or not they are clustered or not.&lt;br /&gt;&lt;br /&gt;select i.table_name, cu.column_name, tc.constraint_name, case objectproperty(object_id(i.table_name), 'tablehasclustindex') when 0 then 'no' when 1 then 'yes' end as [has clustered index]&lt;br /&gt;from information_schema.table_constraints tc&lt;br /&gt;inner join information_schema.constraint_column_usage as cu on tc.constraint_name = cu.constraint_name&lt;br /&gt;full outer join information_schema.tables i on tc.table_name = i.table_name&lt;br /&gt;where objectproperty(object_id(i.table_name), 'isusertable') = 1&lt;br /&gt;order by i.table_name asc, [has clustered index]&lt;br /&gt;&lt;br /&gt;It's a great script for documenting the indexes of all tables in your database. &lt;br /&gt;&lt;br /&gt;Now that the tables have primary keys that are clustered, then you look at additional indexes, to make sure the joins are indexed.&lt;br /&gt;&lt;br /&gt;For example if you are always WHEREING against a username, but it's not the primary key, then you'd want to make sure it is indexed. Now only the primary key should be clustered, it also does pay to use a easy to understand name of each index.&lt;br /&gt;&lt;br /&gt;Once all tables have indexes, that are using in your joining queries, then it is time to start creating relationships.&lt;br /&gt;&lt;br /&gt;Creating Relationships in SQL Server can be a painful process, but also a great tool to help improve performance. &lt;br /&gt;&lt;br /&gt;You start by specifying a relationship that has no referrential integrity. Referrential Integrity means whether it is strict in making sure that when table 1 is updated, table 2 has to be updated right after. You should consult with a dba, if you want to make sure you are making the right decision for the type of relationship.&lt;br /&gt;&lt;br /&gt;But I always start out with a non-enforcing relationship, because that takes less effort in maintenance, and can cause less problems.&lt;br /&gt;&lt;br /&gt;Now you don't want to create 5 billion relationships, but you want to look through all the main queries of your applications, for what joins that are commonly used.&lt;br /&gt;&lt;br /&gt;So now your tables have primary keys, that are clustered, and have indexes for joined queries, and have relationships with joined tables.&lt;br /&gt;&lt;br /&gt;The Database is now setup to deliver speedier data. &lt;br /&gt;&lt;br /&gt;Now it is up to how you query that database.&lt;br /&gt;&lt;br /&gt;SQL Server is different from Oracle, in that your from statement, the order of tables in it, can help/hinder performance. &lt;br /&gt;&lt;br /&gt;In SQL Server 2000, the big thing is your where clauses and your joins.&lt;br /&gt;&lt;br /&gt;This is where we take out the SQL Query Analyzer, turn on Show Explanation Plan, grab a sample query, and looking step by step.&lt;br /&gt;&lt;br /&gt;An explanation plan is a powerful and graphical way of looking of how SQL Server plans to deliver the data you requested. I start out by looking for anything that takes more than 20% in resources, I look for table scans, or any sign, that a query isn't performing the way I want to.&lt;br /&gt;&lt;br /&gt;Let's say you have two tables, Table A has 100,000 records, and Table B has 200 records. Now obviously if you have to do a join, you don't want to scan thru all 100,000 records from Table A, just to get 2 matching records from Table B? &lt;br /&gt;&lt;br /&gt;You have to play with the joins, trying subqueries, or in statements, or exists, to create the query that delivers the right data, without unnecessary data scanning.&lt;br /&gt;&lt;br /&gt;It pays to think about what kind of data and how much data you need first, then create the query to grab that data...&lt;br /&gt;&lt;br /&gt;This is one thing that takes experience, and even I, still have a lot more to learn.&lt;br /&gt;&lt;br /&gt;I hope this has helped by putting together all the main ingredients to improving performance. &lt;br /&gt;&lt;br /&gt;After all, what's the point of creating a nice web application, if it can't load for the user, or it keeps crashing your site?&lt;br /&gt;&lt;br /&gt;Later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109764335270589136?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109764335270589136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/10/sql-turbocharging.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109764335270589136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109764335270589136'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/10/sql-turbocharging.html' title='SQL Turbocharging'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109717128226381044</id><published>2004-10-07T13:30:00.000-05:00</published><updated>2004-10-07T12:48:02.263-05:00</updated><title type='text'>Managing Sql Server Database</title><content type='html'>Have been learning from Ibrahim Hafidh of Imagetrend, all about profiling, writing better sql. The goal being to both better monitor sql server, and to help identify areas of improvements.&lt;br /&gt;&lt;br /&gt;I have been testing out this sweet trial version of Embarcadero Performance Analyst, which for $5000+ is a very sweet, web-based sql performance analyzer. &lt;br /&gt;&lt;br /&gt;However, since I wanted to come up with a more practical aka cheaper solution. &lt;br /&gt;&lt;br /&gt;Ibrahim and my fellow workers, were learning all about working with SQL Profiler, especially in watching the duration profile, in actually being able to see sql statements that were being run thru sql server. Which is a very powerful tool. &lt;br /&gt;&lt;br /&gt;It makes me feel stupid sometimes, seeing all these built-in tools, and not realizing how easy it is to use. &lt;br /&gt;&lt;br /&gt;Well starting with this morning, I am sql profiling, reviewing queries to be worked on, if only i could figure out how to identify what coldfusion page, that query came from. That would really help.&lt;br /&gt;&lt;br /&gt;Also I have been playing with Information Schema today, to help identify what tables do/don't have primary key's and of those, which are clustered indexes.&lt;br /&gt;&lt;br /&gt;Face it, if you have a lot of tables to review, it helps to know and prioritize which ones need the most work.&lt;br /&gt;&lt;br /&gt;http://www.extremeexperts.com/SQL/Scripts/TableHasClusteredIndex.aspx&lt;br /&gt;&lt;br /&gt;I modified the above script, actually combining it with another one. Perhaps this already existed, but it's still a nice tool, at least for my own sake.&lt;br /&gt;&lt;br /&gt;select i.table_name, cu.column_name, tc.constraint_name, case&lt;br /&gt;objectproperty(object_id(i.table_name), 'tablehasclustindex')  when 0 then&lt;br /&gt;'no'  when 1 then 'yes'  end as [has clustered index]&lt;br /&gt;from information_schema.table_constraints tc&lt;br /&gt;	inner join information_schema.constraint_column_usage as cu on&lt;br /&gt;tc.constraint_name = cu.constraint_name&lt;br /&gt;	full outer join information_schema.tables i on tc.table_name =&lt;br /&gt;i.table_name&lt;br /&gt;where objectproperty(object_id(i.table_name), 'isusertable') = 1&lt;br /&gt;order by i.table_name asc, [has clustered index]&lt;br /&gt;&lt;br /&gt;Run this in SQL Query Analyzer, and see how surprised you are/aren't on how well you created/modeled/optimized your tables.&lt;br /&gt;&lt;br /&gt;I have been working with SQL Server 2000 for about 2 years, and the more I learn, the more I realize I have yet to learn.&lt;br /&gt;&lt;br /&gt;Also I would like to strongly recommend Ken England's book on Microsoft SQL Server 2000 Performance, Optimization and Tuning Handbook. He's the really first guy, to present high level information, from a first person perspective, that is easy to read and understand. He's a great teacher...&lt;br /&gt;&lt;br /&gt;For most coders, you could care less what the issue is with the table design/structure. What matters for you, is delivering the right data, for the best performance.&lt;br /&gt;&lt;br /&gt;Here's where Ken England's book comes in handy. He explains, that when you look at Explanation Plans, what makes the explanation plan pick the correct indexes, for joins, scans, depends on the selectivity of the index. &lt;br /&gt;&lt;br /&gt;Part of this, as far as I can figure requires that:&lt;br /&gt;&lt;br /&gt;1. You have a primary key that is clustered&lt;br /&gt;2. Any fields that you use to do joins, where's need to be indexed. &lt;br /&gt;3. It helps to define relationships between tables, that you join against frequentally.&lt;br /&gt;&lt;br /&gt;Here is his formula for determining the selectivity of an index, to be used for the Query Optimizer in your sql statements.&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;selectivity = (the nmber of rows returned / the count of rows in the table) * 100&lt;br /&gt;&lt;br /&gt;if 5,000 of the rows in our 100,000-row table were returned, the selectivity of our query would be:&lt;br /&gt;&lt;br /&gt;selectivity = (5000 / 100000) * 100 = 5%&lt;br /&gt;&lt;br /&gt;if 90,000 of the rows in our 100,000-row table were returned, the selectivity of our query would be:&lt;br /&gt;&lt;br /&gt;selectivity = (90000 / 100000) * 100 = 90%&lt;br /&gt;&lt;br /&gt;the more selective a query the fewer rows returened and the more likely that an index will be chosen by the query optimizer.&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;So basically our goal as coders, is to help make it easy for sql query optimizer to deliver our data with the best performance.&lt;br /&gt;&lt;br /&gt;I myself, still have to play around with this more to get my head, which is going to take time...&lt;br /&gt;&lt;br /&gt;What kind of things have you learned to optimize your queries performance?&lt;br /&gt;&lt;br /&gt;Thanks...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109717128226381044?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109717128226381044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/10/managing-sql-server-database.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109717128226381044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109717128226381044'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/10/managing-sql-server-database.html' title='Managing Sql Server Database'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109707082622399589</id><published>2004-10-06T08:53:00.000-05:00</published><updated>2004-10-06T08:53:46.223-05:00</updated><title type='text'>Is XML the Answer?</title><content type='html'>What an interesting idea, something I've been waiting to hear about for a long time. Xml has some definite uses, but it's not the solution for everything.&lt;br /&gt;&lt;br /&gt;I have had some thoughts about using SQL Server to generate xml-formatted data, and then use  IE's data island to display recordsets that are just too huge to manage in cfquery.&lt;br /&gt;&lt;br /&gt;But I have subconsciously realized, that would not be a real solution, that if you have a page bringing too much fresh data, that you need alternatives.&lt;br /&gt;&lt;br /&gt;This is all apart of my philosophy of using what works for me. Or in shorter form, if it works, use it.&lt;br /&gt;&lt;br /&gt;But this also goes towards the idea that every programming paradigm, is the solution for all problems.&lt;br /&gt;&lt;br /&gt;I like the fact that he's willing to dump a programming paradigm, if it doesn't get the job done...&lt;br /&gt;&lt;br /&gt;I am not saying to drop oo, different methodologies, only to be replaced by another trend/fad of what to do...&lt;br /&gt;&lt;br /&gt;Stick with what you know, but don't be afraid to realize that no solution solves every problems....&lt;br /&gt;&lt;br /&gt;Common Sense, isn't always that common...&lt;br /&gt;&lt;br /&gt;Have a good day everyone...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109707082622399589?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sqlservercentral.com/columnists/dpeterson/isxmltheanswer.asp' title='Is XML the Answer?'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109707082622399589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/10/is-xml-answer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109707082622399589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109707082622399589'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/10/is-xml-answer.html' title='Is XML the Answer?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109698017868811460</id><published>2004-10-05T07:32:00.000-05:00</published><updated>2004-10-05T07:42:58.686-05:00</updated><title type='text'>Balanced SQL</title><content type='html'>As I been going thru pages upon pages of cf code with sql statements, I realize how important it is to balance the needs of the end-user against scalability.&lt;br /&gt;&lt;br /&gt;As much as we create these incredible applications, sometimes we go over the edge in demanding too much from sql, code to deliver what should not be delivered.&lt;br /&gt;&lt;br /&gt;Have you had that experience, of reading someone else's code, and thinking, what the heck is this supposed to do?&lt;br /&gt;&lt;br /&gt;Or why did they do it that way?&lt;br /&gt;&lt;br /&gt;Or the, I want tons of fresh data, with no issues for performance?&lt;br /&gt;&lt;br /&gt;There's a give and take, of what we can deliver...&lt;br /&gt;&lt;br /&gt;I mean if it's an application, with only 1 end-user, that's quite a different scalability challenge, then discover tons of users using this archaic application.&lt;br /&gt;&lt;br /&gt;It's both fascinating and frustating, how much we have to learn, to be really good coders. &lt;br /&gt;&lt;br /&gt;We think that being a good coder, is knowing the syntax, using the latest methodology, reading the latest books.&lt;br /&gt;&lt;br /&gt;They are but a tip of the iceberg....&lt;br /&gt;&lt;br /&gt;So my message of today, is really plan for how many users will use your application, and plan for the far future.&lt;br /&gt;&lt;br /&gt;It's a simple phrase.&lt;br /&gt;&lt;br /&gt;Think Longterm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109698017868811460?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109698017868811460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/10/balanced-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109698017868811460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109698017868811460'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/10/balanced-sql.html' title='Balanced SQL'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109651930136371438</id><published>2004-09-29T23:21:00.000-05:00</published><updated>2004-09-29T23:41:41.363-05:00</updated><title type='text'>Rush, Rush, Code, Code</title><content type='html'>I've been reading Joel Spolsky's book Joel On Software based on his blog, http://www.joelonsoftware.com. It's quite a compelling book, because it has a lot more details to help get us to a higher level of productivity, efficiency and organization....&lt;br /&gt;&lt;br /&gt;In most of my recent jobs, I've been in the position of having to clean up code, SQL for both performance and easy to understand, read and use.&lt;br /&gt;&lt;br /&gt;This book is great, because I can learn what else I need to know.&lt;br /&gt;&lt;br /&gt;After having read Rand's post on &lt;a href="http://www.randsinrepose.com/archives/2003/08/05/incrementalists_completionists.html"&gt;Incrementalists &amp; Completionists&lt;/a&gt;, this helped me understand, why I am so driven to reach such a high level organization/productivity. &lt;br /&gt;&lt;br /&gt;Each of us is shaped by the tasks, paths, and choices we make, and I have no less been shaped by mine.&lt;br /&gt;&lt;br /&gt;The point of this, is that unless we get a better understanding, we'll end up being burned out and frustrated. &lt;br /&gt;&lt;br /&gt;Because in my experiences, I was so driven to get to this high plateau that and if we didn't all work together to get there, in a short period of time, I'd get frustrated and burned out.&lt;br /&gt;&lt;br /&gt;So I have realized I have to pick and choose, and incrementally over time, improve the quality of the site, code.&lt;br /&gt;&lt;br /&gt;Joel On Software is a really great written book and blog. &lt;br /&gt;&lt;br /&gt;The book covers topics from Writing Specs, Bug Tracking, Managing Developers, and as they say, much much more.&lt;br /&gt;&lt;br /&gt;I think I'd love to learn about other people's experiences, about cleaning up after other people's code. &lt;br /&gt;&lt;br /&gt;Then there's my additional experience of being the one to introduce Project Management, Source Control, Scalable Code to each company.&lt;br /&gt;&lt;br /&gt;As Joel Spolsky says, for our industry there is no developer/software management/project management bible, that helps companies start out on top, in stead of having to spend too much time cleaning up code.&lt;br /&gt;&lt;br /&gt;For me the goals, most in my mind are:&lt;br /&gt;&lt;br /&gt;1. How can I make sure that the site never goes down anymore.&lt;br /&gt;2. That bugs are recorded and assigned to be fixed, instead of always creating new features/fixes that may introduce it's own set of bugs.&lt;br /&gt;3. How can I help the creation of a project mgmt process that will be easy to learn and manage, and yet still make sure we make no communication/project mistakes.&lt;br /&gt;4. How can I encourage my fellow developers to stick to using our project mgmt intranet etc...&lt;br /&gt;&lt;br /&gt;Now that I am working on a coding team, I see how important a good methodology is. It's half fadish psychology and half setting standards that will actually be followed. &lt;br /&gt;&lt;br /&gt;I mean no offense to fusebox, mach-2 users, I do approve of anyone that uses a standards and works to release quality products.&lt;br /&gt;&lt;br /&gt;It does help not having to re-invent the wheel all the time. Or making sure that I bring all the stuff from the previous job to the next one, to help them learn project management, bug tracking, best practices...&lt;br /&gt;&lt;br /&gt;I think what'd be nice if we as an industry can create a &lt;strong&gt;best practice repository&lt;/strong&gt;, that can be reviewed, approved, and then made available...&lt;br /&gt;&lt;br /&gt;That's it for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109651930136371438?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109651930136371438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/09/rush-rush-code-code.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109651930136371438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109651930136371438'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/09/rush-rush-code-code.html' title='Rush, Rush, Code, Code'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109564973060966632</id><published>2004-09-19T21:40:00.002-05:00</published><updated>2004-09-19T22:08:50.610-05:00</updated><title type='text'>Index Tuning Wizard - Man's Best Friend</title><content type='html'>Index Tuning Wizard is a handy tool for any ole Mr. Clean Project. Basically it is a great tool to improve the performance of your databases.&lt;br /&gt;&lt;br /&gt;First off, there is only 1 way to access it via Query Analyzer, I believe the option is not available easily, otherwise.&lt;br /&gt;&lt;br /&gt;My method of running it, is to pick a slow running coldfusion page, and look for queries taking more than 100 ms.&lt;br /&gt;&lt;br /&gt;Then you plop it into query analyzer, and make sure you enable Show Execution Plan, for additional information.&lt;br /&gt;&lt;br /&gt;Then you click on Query, then Index Tuning Wizard. This is where the options are simple but the consequences can be great.&lt;br /&gt;&lt;br /&gt;First of all, make sure you make up a backup, and that the site is down, not creating any more database interactions while you make these changes.&lt;br /&gt;&lt;br /&gt;Also if you are working on big tables, the actual process of automatically selecting and adding indexes can take much longer, so be prepared to give it the time and resources it needs.&lt;br /&gt;&lt;br /&gt;Then I start with the medium level of index seeking, and i keep checked 'Keep Current Indexes', so that it doesn't drop anything.&lt;br /&gt;&lt;br /&gt;Then it will take it's time to come up with indexes, and just be patient, and let it happen, and then you have some additional choices.&lt;br /&gt;&lt;br /&gt;Such as whether you have a dev sql server, you may want to save the scripts it creates to take action to then be run on dev, after your production database is up to snuff.&lt;br /&gt;&lt;br /&gt;All of this is what I just did for my current job, this Saturday. To help improve performance.&lt;br /&gt;&lt;br /&gt;All Of what I try to teach is to help any of us, have a stable and scalible platform of database,coding, and standards.&lt;br /&gt;&lt;br /&gt;Maybe this is boring, because it isn't the hip or trendy xml, java, but how relevent is it to pursue that, if your platform for your sites, isn't great.&lt;br /&gt;&lt;br /&gt;Cover your bases, and make sure you are optimal before you explore anything non-related to coldfusion's main purpose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109564973060966632?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109564973060966632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/09/index-tuning-wizard-mans-best-friend_19.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109564973060966632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109564973060966632'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/09/index-tuning-wizard-mans-best-friend_19.html' title='Index Tuning Wizard - Man&apos;s Best Friend'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109456052976887295</id><published>2004-09-07T07:26:00.000-05:00</published><updated>2004-09-07T07:35:29.766-05:00</updated><title type='text'>Error Proofing Your Code</title><content type='html'>The best way to start error-proofing your code is by following these steps:&lt;br /&gt;&lt;br /&gt;1. Identify every incoming piece of data, and document it and it's datatype&lt;br /&gt;2. Identify any possible conflict issue between different scopes of data either incoming or created by the application.&lt;br /&gt;3. Then document each section of your app, with the above information, so you can tackle your app 1 step at a time.&lt;br /&gt;&lt;br /&gt;Now that you have the documentation, now comes the setup.&lt;br /&gt;&lt;br /&gt;First of all, in my personal style and attempt to prevent scope creep, I came up with my own variable naming scope.&lt;br /&gt;&lt;br /&gt;For any application, at the top of the page i create a list of variables that are going to be used within the app, as well as incoming data.&lt;br /&gt;&lt;br /&gt;!-- global variables --&lt;br /&gt;cfparam name="local_firstname" default=""&lt;br /&gt;cfparam name="local_lastname" default=""&lt;br /&gt;cfparam name="local_price" default="0.00" scale="2"&lt;br /&gt;&lt;br /&gt;Then i move all cfparams through out the application, to the top of the app, for easier sorting and eliminating duplicates.&lt;br /&gt;&lt;br /&gt;Now then comes the population from wherever your datasource is: url, form, query, cgi, file, client, cookie or local.&lt;br /&gt;&lt;br /&gt;Then you put a cfoutput surrounding the whole form, then you have created an error proof form.&lt;br /&gt;&lt;br /&gt;Let me explain.&lt;br /&gt;&lt;br /&gt;By having a default values for every form element, you make sure that the form can be used either for an edit content or add content piece. Which really speeds up the process of creating forms.&lt;br /&gt;&lt;br /&gt;Now all of this is part of my philosophy of preventing errors from occuring in the first place, rather than trying to catch for them.&lt;br /&gt;&lt;br /&gt;I'll walk thru a section of an app, and try to identify places it can fail, and do what i can to prevent it.&lt;br /&gt;&lt;br /&gt;More to come...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109456052976887295?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109456052976887295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/09/error-proofing-your-code.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109456052976887295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109456052976887295'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/09/error-proofing-your-code.html' title='Error Proofing Your Code'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109398846730770434</id><published>2004-08-31T16:33:00.000-05:00</published><updated>2004-08-31T16:41:07.306-05:00</updated><title type='text'>Creating a solid Development Environment</title><content type='html'>Well here I am, I finally got a new job, in fact today is my first day!&lt;br /&gt;&lt;br /&gt;I am pretty excited to be at where I am.&lt;br /&gt;&lt;br /&gt;So I get to be part of a company that wants to grow, and this is their first time having more than 1 developer in-house.&lt;br /&gt;&lt;br /&gt;So we have to basically take what they have and help take us to the next step in terms of the old-standards:&lt;br /&gt;&lt;br /&gt;1. Project Management System - To avoid all the old waste of time, communication errors, and to basically make sure we turn out a product that won't bite us in the butt 2-3 weeks after completion.&lt;br /&gt;2. Source Control System - It's surprising how many people still don't know what it is. But it's still needed, and there is plenty of growth in this niche need to have new features and functionality. But my current favorite is QVCS by Qumasoft.com, nice product for a great price.&lt;br /&gt;3. Project Management Intranet - I have created 2-3 of these, and basically you can either do it on paper, or on excel or create an intranet. It comes from the need to document, prioritize and improve communication&lt;br /&gt;4. Coding Standards Documented - There has to be a common grounds, however different the styles are, but once it's determined, you need to document it, so that the next new person, has a much easier starting point.&lt;br /&gt;5. Site Bible - One of my ideas, but have never seen well implemented, including by me. Basically imagine if everyone in your development and it died, what information would you need to hand to a brand new team? It's the binder that you put all your documentation from servers, to applications.&lt;br /&gt;&lt;br /&gt;What else does a good development enviroment need?&lt;br /&gt;&lt;br /&gt;What new or old things do you have that I missed, or could use?&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109398846730770434?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109398846730770434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/creating-solid-development-environment.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109398846730770434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109398846730770434'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/creating-solid-development-environment.html' title='Creating a solid Development Environment'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109337925501204035</id><published>2004-08-24T15:15:00.000-05:00</published><updated>2004-08-24T15:27:35.013-05:00</updated><title type='text'>The importance of meticulousness</title><content type='html'>It sounds like a boring topic, but this is what it takes to be real good. As I get older and older, I realize the difference between those who are the best, and those who are not. It's not a matter of talent, but a matter of meticulousness.&lt;br /&gt;&lt;br /&gt;Or better put, those who dedicate themselves to being the best, to mastering their craft, will do better in the long run against people who are more talented, but less driven.&lt;br /&gt;&lt;br /&gt;That inner drive is something that has taken me a long time to learn, and is part of all our maturation process.&lt;br /&gt;&lt;br /&gt;Today has been a good day, I just had job interview at a nice company, and I was again reminded how important craftsmanship is over talent.&lt;br /&gt;&lt;br /&gt;It may sound contra-trendy, but it makes sense.&lt;br /&gt;&lt;br /&gt;Bill Gates, Donald Trump, Steve Jobs, Red McCombs, may have some talent or genius, but their success is more do to their drive and persistence.&lt;br /&gt;&lt;br /&gt;In each of my jobs and careers, and I have had many of both, especially at my old age of 41. People my age, have had to deal with the change in job culture, instead of people having jobs lasting 20-40 years, staying at the same company, retiring with great pensions, we have to deal with changing jobs frequentally to keep moving up the ladder.&lt;br /&gt;&lt;br /&gt;I don' t know if that's because of the transformation from an industrial age to an information  age.&lt;br /&gt;&lt;br /&gt;So times and people change, sometimes for the better sometimes not. The key in my mind is what can we learn from it, how can we improve where we are.&lt;br /&gt;&lt;br /&gt;I think one thing I do, that I'd like to pass on, is that I use mental imagery of craftsmanship and persistence, when I am in doubt.&lt;br /&gt;&lt;br /&gt;I think about ancient japanese swordsmiths, perfecting their sword over however many months and years it took to create a beautiful and efficient weapon. They had a lot of pride in their work, and since their name, reputation and life depended on it. They would live or die by their work.&lt;br /&gt;&lt;br /&gt;I also think of at times, of my father, as a pediatric dentist for 30-40 years, dealing with whiny kids, who demanded perfect care on their teeth, to create a better and healthier future. Imagine the patience and dedication it takes to be the best, because only the best is acceptable to him...&lt;br /&gt;&lt;br /&gt;What kind of images motivate you to stay or move towards the best?&lt;br /&gt;&lt;br /&gt;What motivates you, who are your idols of craftsmanship?&lt;br /&gt;&lt;br /&gt;What books do you read to remember your best work?&lt;br /&gt;&lt;br /&gt;Thank you.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109337925501204035?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109337925501204035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/importance-of-meticulousness.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109337925501204035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109337925501204035'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/importance-of-meticulousness.html' title='The importance of meticulousness'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109287907532485604</id><published>2004-08-18T20:27:00.000-05:00</published><updated>2004-08-18T20:31:15.323-05:00</updated><title type='text'>OT:Barry Ween Custom Desktop</title><content type='html'>&lt;a href="http://64.239.129.220/assets/users3/crosenblum/desktop/gallery-msg-1092878758-2.jpg"&gt;&lt;img alt="Barry Ween Custom Desktop" src="http://64.239.129.220/assets/users3/crosenblum/desktop/gallery-msg-1092878758-2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I go slightly mad, with the job hunting, I have created this little homage to Barry Ween, a comic created by artist/writer Judd Winick.&lt;br /&gt;&lt;br /&gt;It's just something for fun.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109287907532485604?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://crosenblum-desktop.buzznet.com/user/' title='OT:Barry Ween Custom Desktop'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109287907532485604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/otbarry-ween-custom-desktop.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109287907532485604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109287907532485604'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/otbarry-ween-custom-desktop.html' title='OT:Barry Ween Custom Desktop'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109251226844674267</id><published>2004-08-14T14:37:00.000-05:00</published><updated>2004-08-14T14:37:48.446-05:00</updated><title type='text'>OT: 2004 Hall of Fame Photos</title><content type='html'>&lt;a href="http://crosenblum-halloffame.buzznet.com/user/"&gt;&lt;img src="http://64.239.129.219/assets/users3/crosenblum/halloffame/gallery-msg-1092511847-2.jpg" border="0" alt="Carl Eller's Acceptance Speech" width="300" height="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://crosenblum-halloffame.buzznet.com/user/"&gt;Carl Eller's Acceptance Speech&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well finally after lots of computer problems, I managed to organize all my photos, and post some of my best on the photoblog.&lt;br /&gt;&lt;br /&gt;Please check them out and let me know what you think.&lt;br /&gt;&lt;br /&gt;It was a very touching experience, to see someone finally rewarded for decades of hard work.&lt;br /&gt;&lt;br /&gt;A good work ethic does pay off, but sometimes it takes patience...&lt;br /&gt;&lt;br /&gt;If you like I have a screen saver all the photos and some nice football music, I can email to anyone who asks...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109251226844674267?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://crosenblum-halloffame.buzznet.com/user/' title='OT: 2004 Hall of Fame Photos'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109251226844674267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/ot-2004-hall-of-fame-photos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109251226844674267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109251226844674267'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/ot-2004-hall-of-fame-photos.html' title='OT: 2004 Hall of Fame Photos'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109224199781962691</id><published>2004-08-11T11:22:00.000-05:00</published><updated>2004-08-11T11:33:17.820-05:00</updated><title type='text'>Coding Horror Stories</title><content type='html'>If you want to hear and share some of your coding horror stories, now is that time. Both for humor and the sad realization of what it really takes to develop quality applications.&lt;br /&gt;&lt;br /&gt;In a way this is very funny for me, because my technical personality sort of emulates my personality I developed in working in Fast Food. I was the Prep God, make sure everything is setup correctly, and perfectly, for the afternoon/evening shifts.&lt;br /&gt;&lt;br /&gt;And here I am, Mr. Clean, always having to clean up after other people's work.&lt;br /&gt;&lt;br /&gt;It's because of spending most of my coding career cleaning up, that I have gradually become a stickler for standards.&lt;br /&gt;&lt;br /&gt;I remember one of my job hunting jigs, at this downtown saint paul firm, seemed a bit raw or at the edge, but there are all types of people/personalities/companies in this niche.&lt;br /&gt;&lt;br /&gt;Anywho, then they started to show me some of their code.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No Indenting&lt;/li&gt;&lt;li&gt;No Comments&lt;/li&gt;&lt;li&gt;No Logical Structure&lt;/li&gt;&lt;li&gt;No clue what the code did, or what steps it took to get there&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;At that time, I was still somewhat of a beginner, and I wasn't sure how to address their lack of quality. After all, I wanted a job, but I didn't want to work for idiots.&lt;/p&gt;&lt;p&gt;One of my jobs was a nightmare in terms of communication. At the time I was at a web shoppe, who had a legal firm as a client. &lt;/p&gt;&lt;p&gt;Legal firms are very tough, this one was particularly indecisive.&lt;/p&gt;&lt;p&gt;They wanted us to create a multiple-approval layer of content approval. It sounds professional, but in reality, it made them sound very indecisive, and just added unnecessary complexity to the content management application.&lt;/p&gt;&lt;p&gt;It also made them show that they had serious trust issues with their own personnel. But that's legal firms.&lt;/p&gt;&lt;p&gt;Another time, I was working on a severely modified version of AbleCommerce, which is sounds like a really good starting point for an Ecommerce Application. But most pre-built applications, usually end up to be badly written, badly documented, badly coded applications. &lt;/p&gt;&lt;p&gt;They did their job, but made it very difficult to fix or improve upon them.&lt;/p&gt;&lt;p&gt;Especially since the company that modified it, was using coding standards picked up from ColdFusion 2 coding.&lt;/p&gt;&lt;p&gt;So you can imagine all the extra pound signs, that still ring in as a nightmare in my mind.&lt;/p&gt;&lt;p&gt;What kind of horror stories do you have? What kind of coding mistakes piss you off, or just plain drive you insane, please share your stories...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109224199781962691?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109224199781962691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/coding-horror-stories.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109224199781962691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109224199781962691'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/coding-horror-stories.html' title='Coding Horror Stories'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109202744347427082</id><published>2004-08-08T23:57:00.000-05:00</published><updated>2004-08-08T23:57:23.473-05:00</updated><title type='text'>OT: Carl Eller is enshrined in the Hall of Fame - Pro Football Hall of Fame</title><content type='html'>&lt;a href="http://www.profootballhof.com/hall/release.jsp?release_id=1250"&gt;Carl Eller is enshrined in the Hall of Fame - Pro Football Hall of Fame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well this weekend, I was honorably invited by Carl Eller to witness his enshrinement to the Pro Football Hall of Fame.&lt;br /&gt;&lt;br /&gt;From 1998-2001, we ran a site called Carl Eller's Viking News, which didn't turn out that profitable, but was an amazing experience.&lt;br /&gt;&lt;br /&gt;From the first 1998 Mankato Training Camp, where I saw #18 Randy Moss, as he was interviewed by Carl Eller, and to meeting Red McCombs for the first time.&lt;br /&gt;&lt;br /&gt;To helping John Randle, Cris Carter in jest help sign their autographs...&lt;br /&gt;&lt;br /&gt;My father and I arrived, in Canton Ohio, Friday afternoon. But the amazing experience of the Hall of Fame didn't start till Saturday morning.&lt;br /&gt;&lt;br /&gt;We woke early at 6:15 am to go to the Enshrine Parade, and we were escorted by the police motorcycles and cars with blazing sirens on our way to the Parade. The parade lasted over 3 hours in freezing weather, 15 different high school marching bands, all kinds of floats, former Hall of Famers, and all kinds of local celebrities.&lt;br /&gt;&lt;br /&gt;Quite an experience.&lt;br /&gt;&lt;br /&gt;Then Saturday Night was the mind-blowing Enshrinee Dinner, which started off with a cocktail party outside, you can see all the celebrities/fans/sponsors schmoozing. &lt;br /&gt;&lt;br /&gt;At the dinner, we shared our table with former Viking WR Frank Gilliam, who retired in 1977.  While our room was hosted by former hall of famer, Mel Renfro.&lt;br /&gt;&lt;br /&gt;After which we went into the huge stadium, as we watch different speakers/presenters.&lt;br /&gt;&lt;br /&gt;Paul Tagliabue, then the TV/Radio Awards, a lot of really funny jokes, that can not be said in public. &lt;br /&gt;&lt;br /&gt;Then the former hall of famers, helped our four Enshrinees with their new Golden Hall of Fame Jackets...&lt;br /&gt;&lt;br /&gt;It was real dark inside, and there was like the lighted area, like a fashion walkway/catwalk.&lt;br /&gt;&lt;br /&gt;Then on Sunday, another Police Escorted Ride, in our buses to the Hall of Fame. There were so many people there, that they had 3 huge banquets, Gold, Silver and Bronze. With 3 huge tents of food and drinks. I am not even sure I even recognized some of what I had.&lt;br /&gt;&lt;br /&gt;Then we went to Fawcette Stadium, where were bloodly lucky to be on the ground floor way near the front.&lt;br /&gt;&lt;br /&gt;I saw quite a few former Vikings, such as former Hall of Famer, Vikings Coach Bud Grant, former player Chuck Foreman RB, former player Bob Lurtsema and a bit more.&lt;br /&gt;&lt;br /&gt;But the stadium was really dominated by Bronco's fans.&lt;br /&gt;&lt;br /&gt;After hearing Regis Eller, introduce his father Carl Eller, then hear his amazing and really emotional speech. Then we heard part of Bob Browne Jr's introduction of his father, the heat had gotten to me, so we had to leave.&lt;br /&gt;&lt;br /&gt;I am glad to be back to Minnesota, and thanking my lucky stars for such an honor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109202744347427082?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.profootballhof.com/hall/release.jsp?release_id=1250' title='OT: Carl Eller is enshrined in the Hall of Fame - Pro Football Hall of Fame'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109202744347427082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/ot-carl-eller-is-enshrined-in-hall-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109202744347427082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109202744347427082'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/ot-carl-eller-is-enshrined-in-hall-of.html' title='OT: Carl Eller is enshrined in the Hall of Fame - Pro Football Hall of Fame'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109175726044436807</id><published>2004-08-05T20:43:00.000-05:00</published><updated>2004-08-05T20:54:20.446-05:00</updated><title type='text'>Site Search Bookmarklet</title><content type='html'>In the last couple of days, I've been playing with &lt;a href="http://www.bookmarklets.com/"&gt;Bookmarklets&lt;/a&gt;, as ways to enhance my browsing experience.&lt;br /&gt;&lt;br /&gt;One of the cool things, I have found is ways to search for things on your current page, and present that in IE's sidebar.&lt;br /&gt;&lt;br /&gt;So that instead of replacing the current page, you can use put content in the sidebar.&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:q = quot;quot; + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (!q) q = prompt(quot;You didn't select any text.  Enter a search phrase:quot;, quot;quot;); if (q!=null)  var newloc=(quot;http://www.google.com/search?num=100&amp;q=site:quot; + escape(location.hostname) + quot; \quot;quot; + escape(q.replace(/\quot;/g,quot;quot;)) + quot;\quot;quot;).replace(/ /g, quot;+quot;); _search=open(newloc,'_search'); void 0"&gt;Site Search&lt;/a&gt; Bookmarklet - Just drag to your links toolbar.&lt;br /&gt;&lt;br /&gt;The way this works, you select some text on a webpage, until it is highlighted, then click on this bookmarklet on your links toolbar, and google will search that site for that highlighted text.&lt;br /&gt;Neat, huh?&lt;br /&gt;&lt;br /&gt;My next project is to detect an rss feed on a webpage, and display the transformed version of that rss/xml feed in the ie side panel...&lt;br /&gt;&lt;br /&gt;Tell me what you think.&lt;br /&gt;Have fun!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109175726044436807?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109175726044436807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/site-search-bookmarklet.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109175726044436807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109175726044436807'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/site-search-bookmarklet.html' title='Site Search Bookmarklet'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109174099234273182</id><published>2004-08-05T16:23:00.000-05:00</published><updated>2004-08-05T16:23:12.343-05:00</updated><title type='text'>Applying CF Best Practices</title><content type='html'>&lt;a href="http://clearsoftware.net/client/index.cfm?mode=entry&amp;amp;entry=2F7BE408-A480-2E86-D3B2E2A525BE689F"&gt;clearsoftware.net - joe rinehart on CF and more&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is my attempt to show how to apply Joe Rinehart's Best Practices list...&lt;br /&gt;&lt;br /&gt;1. Never trust user input&lt;br /&gt;&lt;br /&gt;I always have my own version of a local variable name, that can not be overwritten without my consent. This is both good for security and data type validation, but makes it easy for form displays. &lt;br /&gt;&lt;br /&gt;Because when I create my forms to edit/add content, I always create the edit form, with cfoutput surrounding my local variables.&lt;br /&gt;&lt;br /&gt;But when you use cfparam to pre-define your local variables, then it really makes it easy to use the same code from editing content to adding content.&lt;br /&gt;&lt;br /&gt;2. cfqueryparam or caching and data type validation&lt;br /&gt;&lt;br /&gt;The benefits vary somewhat based on what database you are using. In Oracle, cfqueryparam also allows you to take advantage of Bind Variables, to improve performance. &lt;br /&gt;&lt;br /&gt;Using it with SQL Server just allows you to use it's datatype validation methods.&lt;br /&gt;&lt;br /&gt;And you can use cfqueryparam in where, select, anywhere where there is dynmamic variables affecting the sql code.&lt;br /&gt;&lt;br /&gt;Remember cfqueryparam isn't needed if you the dynamic part isn't being controlled or sent by a user. Although it is a good practice.&lt;br /&gt;&lt;br /&gt;You have to evaluate which caching method benefits you most, based on whether it's frequentally changing data, or frequentally needed data.&lt;br /&gt;&lt;br /&gt;3. Coding for Portability&lt;br /&gt;&lt;br /&gt;This is in general a good idea, to use variables, to hold data that changes based on what server you are on, and store them in your application scope, in the application.cfm file.&lt;br /&gt;&lt;br /&gt;It does get to be a pain to have change hundreds of files, if your datasource or folder structure changes.&lt;br /&gt;&lt;br /&gt;4. Code Formatting&lt;br /&gt;&lt;br /&gt;Please use the same syntax of commenting, like some older coders put their comments to the right of the commands, and some above the commands. Stick to one style.&lt;br /&gt;&lt;br /&gt;This also includes indenting, which is my favorite easy way of following the logic flow of an application...&lt;br /&gt;&lt;br /&gt;5. Use existing public code&lt;br /&gt;&lt;br /&gt;Well there are a lot of resources out the cflib.org of udf's, custom tags, all kinds of ways to do a specific task. &lt;br /&gt;&lt;br /&gt;Try looking around, and seeing if a free piece of code can do what you want, before you try creating from scratch.&lt;br /&gt;&lt;br /&gt;6. Variable Scoping&lt;br /&gt;&lt;br /&gt;I've written enough to explain the importance of variable scoping. It really comes down to being careful to make sure the variables hold the data you want them to.&lt;br /&gt;&lt;br /&gt;I always use cfparam to create a local variable, which then i can logically pass url, query, form, file, cookie, client data.&lt;br /&gt;&lt;br /&gt;The key is control what data gets into what variable.&lt;br /&gt;&lt;br /&gt;8. Performance Matters&lt;br /&gt;&lt;br /&gt;CFMX has really advanced it's debugging information, it shows allt he includes that your application calls, and makes it easy to identify bottlenecks.&lt;br /&gt;&lt;br /&gt;If an include takes more than 250 mx, then it bolds/reddens that debug info, to show you to be aware of this includes performance issues.&lt;br /&gt;&lt;br /&gt;Take care of your queries, logic flow, keep an eye how much processing power it takes to do your job. &lt;br /&gt;&lt;br /&gt;ALWAYS LOOK FOR FASTER WAYS TO GET THE SAME DATA RESULTS YOU WANT!!&lt;br /&gt;&lt;br /&gt;In conclusion.&lt;br /&gt;&lt;br /&gt;Best Practices are always evolving, because all of us want to learn from our and other's mistakes so that we can do a professional job.&lt;br /&gt;&lt;br /&gt;Because none of us want to go back to a project we thought we completed, only to find out it crashed the site, or didn't work, or had x number of errors.&lt;br /&gt;&lt;br /&gt;The more thorough and precise in our coding, the better we will get in the long haul..&lt;br /&gt;&lt;br /&gt;What best practices do you use, that are not in the list? What practices do you think make sense or no sense?&lt;br /&gt;&lt;br /&gt;Please comment and let us know!&lt;br /&gt;&lt;br /&gt;Thanks..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109174099234273182?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://clearsoftware.net/client/index.cfm?mode=entry&amp;entry=2F7BE408-A480-2E86-D3B2E2A525BE689F' title='Applying CF Best Practices'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109174099234273182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/applying-cf-best-practices.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109174099234273182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109174099234273182'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/applying-cf-best-practices.html' title='Applying CF Best Practices'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109164868429463636</id><published>2004-08-04T14:44:00.000-05:00</published><updated>2004-08-04T14:44:44.293-05:00</updated><title type='text'>Stored procedures applied per situation</title><content type='html'>&lt;a href="http://weblogs.asp.net/fbouma/archive/2003/11/18/38178.aspx"&gt;Stored procedures are bad, m'kay?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It really depends on your situation, in terms of stored procedures vs no stored procedures.&lt;br /&gt;&lt;br /&gt;1. Is this for an intranet, extranet or internet site?&lt;br /&gt;2. How many different records are you planning to pump thru the procedure?&lt;br /&gt;3. How many different logic flows, looping would you need?&lt;br /&gt;&lt;br /&gt;I do agree that stored procedures aren't the solution for everything, and perhaps there was this drive towards stored procedures as a solution for bad coldfusion/sql programming, to help produce great results in reasonable performance.&lt;br /&gt;&lt;br /&gt;It just depends on your needs.&lt;br /&gt;&lt;br /&gt;If it's a 1-time query, then you don't need to save it as a stored procedure, unless for example, it's for a monthly/yearly report, in that case you would save it, so that you won't have to redo it, the next time you need it.&lt;br /&gt;&lt;br /&gt;The real issue is whether you pay attention to how your queries affect both the load on coldfusion and sql server, but how it affects the load time of your visitors/users.&lt;br /&gt;&lt;br /&gt;Sidenote: There seems to be two major opinionated camps, those that think sticking to best practices and reasonable coding standards is a great idea, and those that think it's not that important or even a waste of time.&lt;br /&gt;&lt;br /&gt;I know that I and a few other bloggers, really recycle those standards and best practices and standards. And I'll acknowledge discussing them isn't hip or cool, but it's really out of a desire to encourage everyone to perfect their craft.&lt;br /&gt;&lt;br /&gt;Because when you release crappy code, that isn't documented, or crashes after it's taken from Access to SQL Server, or any number of the experiences I and thousands of coders have experienced in cleaning up after other people's work.&lt;br /&gt;&lt;br /&gt;It's just a pain in the butt, it makes you look bad, and it makes us waste time trying to do the job you should have done...&lt;br /&gt;&lt;br /&gt;Maybe we should start sharing some of our horror stories...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109164868429463636?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.asp.net/fbouma/archive/2003/11/18/38178.aspx' title='Stored procedures applied per situation'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109164868429463636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/stored-procedures-applied-per.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109164868429463636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109164868429463636'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/stored-procedures-applied-per.html' title='Stored procedures applied per situation'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109162949558496174</id><published>2004-08-04T09:24:00.000-05:00</published><updated>2004-08-04T09:24:55.583-05:00</updated><title type='text'>clearsoftware.net - joe rinehart on CF and more</title><content type='html'>&lt;a href="http://clearsoftware.net/client/index.cfm?mode=entry&amp;amp;entry=29F48DDC-A480-2E86-D437C0AD3658CD05"&gt;clearsoftware.net - joe rinehart on CF and more&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A very nice re-introduction of Coldfusion's Forgotten Best Practices.&lt;br /&gt;&lt;br /&gt;I know it's one of my favorite topics, to hone into our cultural mindset the importance, of sticking to the best coding/programming practices.&lt;br /&gt;&lt;br /&gt;So that we can demonstrate that we are great coders, and that coldfusion is a great platform.&lt;br /&gt;&lt;br /&gt;How about this, who are your favorite coders, or favorite applications you like to code or, some website program you did, that you are proud of?&lt;br /&gt;&lt;br /&gt;Let's share our glory moments while we can!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109162949558496174?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://clearsoftware.net/client/index.cfm?mode=entry&amp;entry=29F48DDC-A480-2E86-D437C0AD3658CD05' title='clearsoftware.net - joe rinehart on CF and more'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109162949558496174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/clearsoftwarenet-joe-rinehart-on-cf.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109162949558496174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109162949558496174'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/clearsoftwarenet-joe-rinehart-on-cf.html' title='clearsoftware.net - joe rinehart on CF and more'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109158950037037043</id><published>2004-08-03T22:18:00.000-05:00</published><updated>2004-08-03T22:18:20.370-05:00</updated><title type='text'>Forta.com - Blog</title><content type='html'>&lt;a href="http://www.forta.com/blog/index.cfm?mode=e&amp;amp;entry=1266"&gt;Forta.com - Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a great starting point, but I feel sometimes, that it's not really a logical argument that is being presented back and forth.&lt;br /&gt;&lt;br /&gt;After all, once someone is sold on a particular technology, it's like a religion trying to discuss alternatives.&lt;br /&gt;&lt;br /&gt;Don't take me wrong, this is a great starting point...&lt;br /&gt;&lt;br /&gt;But what I'd really like to see is a comparrison of top sites in the same niche industry comparing head to head, in terms of sales, how long the servers stay up, how many times they had to reboot, anything else we can use as a fact, to prove that coldfusion is the more profitable and more stable solution.&lt;br /&gt;&lt;br /&gt;I believe that this is part of the a new trend of trying to prove things by example, rather than just explaining why coldfusion beats java, asp, asp.net, php etc....&lt;br /&gt;&lt;br /&gt;I'd love to hear examples of top sites that compete, like a cf vs php or cf vs asp.net etc...Bring up your favorite/top cf sites...&lt;br /&gt;&lt;br /&gt;Let's show coldfusion competes in the real world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109158950037037043?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.forta.com/blog/index.cfm?mode=e&amp;entry=1266' title='Forta.com - Blog'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109158950037037043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/fortacom-blog.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109158950037037043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109158950037037043'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/fortacom-blog.html' title='Forta.com - Blog'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109154824791863989</id><published>2004-08-03T10:36:00.000-05:00</published><updated>2004-08-03T10:50:47.920-05:00</updated><title type='text'>Query Bottlenecks</title><content type='html'>One of the biggest barriers to scalability and long-term performance is how we logically grab the flow of data from the database.&lt;br /&gt;&lt;br /&gt;So I am creating a list of things to not do, and to do.&lt;br /&gt;&lt;br /&gt;1. Do not loop thru cfquery, because each cfquery creates a seperate jdbc/odbc connection which takes additinal memory/processing power etc.  So look at the different queries and see if you can combine them.&lt;br /&gt;&lt;br /&gt;But it depends on the relationships, if for example you have two queries and the second is looped over by the first one, perhaps you can do a join.&lt;br /&gt;&lt;br /&gt;Remember the power of group by in the cfoutput statements....&lt;br /&gt;&lt;br /&gt;&lt;cfoutput name="query" group="field1"&gt;&lt;br /&gt;  &lt;!--- header level of data ---&gt;&lt;br /&gt;  &lt;cfoutput&gt;&lt;br /&gt;  &lt;!--- detail level of data ---&gt;&lt;br /&gt;  &lt;/cfoutput&gt;&lt;br /&gt;&lt;/cfoutput&gt;&lt;br /&gt;&lt;br /&gt;You can use this technique, based on the join you use, to combine the queries and still get the same results.&lt;br /&gt;&lt;br /&gt;Remember the issue is to reduce the number of cfqueries, as much as possible.&lt;br /&gt;&lt;br /&gt;2. Do not ever, ever do select *. It's always best as a standard and for performance, to specify in the correct order, the exact field you need for your query.&lt;br /&gt;&lt;br /&gt;For example if you have a table of 40 fields, and you run a query that needs only five, think of how much wasted memory/cpu, you are using improper coding.&lt;br /&gt;&lt;br /&gt;If coldfusion is going to be the best language, then we have to always code for longterm, scalable performance, even if it takes us longer to type in.&lt;br /&gt;&lt;br /&gt;So once you have performance nailed down, then it is a matter of improving upon it.&lt;br /&gt;&lt;br /&gt;1. Such as moving complicated, highly used joined queries into views or stored procedures.&lt;br /&gt;2. Review the performance of the page, by debugging, look at the cfincludes and cfqueries for those that take too long.&lt;br /&gt;3. Learn all about caching, when and where.&lt;br /&gt;&lt;br /&gt;Cachedwithin, Cachedafter, or cfqueryparam&lt;br /&gt;&lt;br /&gt;CFQUERYPARAM is a very powerful tool, both to help validate incoming url/form data to a specific data type. Which is great for preventing cross-scripting, and errors.&lt;br /&gt;&lt;br /&gt;For oracle databases, it actually improves performance, because of something called bind-variables. Basically if you have 1 query running dozens of times, but just a different value in the where clause, then bind-variables, allow the database to treat the queries as the same query, which caches it and improves performance.&lt;br /&gt;&lt;br /&gt;In the end, query bottlenecks, are caused by poor planning, and poor coding. These can be overcome, and they should be overcome.&lt;br /&gt;&lt;br /&gt;Coldfusion has so much potential to be the most scalible web development language/server, if we code that way.&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109154824791863989?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109154824791863989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/query-bottlenecks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109154824791863989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109154824791863989'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/query-bottlenecks.html' title='Query Bottlenecks'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109145906002901772</id><published>2004-08-02T10:04:00.000-05:00</published><updated>2004-08-02T10:04:20.030-05:00</updated><title type='text'>Cracking into ColdFusion - SitePoint ColdFusion Blog</title><content type='html'>&lt;a href="http://www.sitepoint.com/blog-post-view.php?id=185113"&gt;Cracking into ColdFusion - SitePoint ColdFusion Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I find this extremely fastinating, because who knows what special needs we have, that we need to roll our own versions of cfml tags?&lt;br /&gt;&lt;br /&gt;Like for me, example, I'd love to roll a version of cfdump that is printable, besides all that beautiful dhtml.&lt;br /&gt;&lt;br /&gt;I find it can take coding to a different path, to add things we'd all wish for.&lt;br /&gt;&lt;br /&gt;I mean once you have a stable platform, that is scalible and delivers on it's goods. Then it's a matter of customizing it towards your specific needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109145906002901772?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sitepoint.com/blog-post-view.php?id=185113' title='Cracking into ColdFusion - SitePoint ColdFusion Blog'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109145906002901772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/08/cracking-into-coldfusion-sitepoint.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109145906002901772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109145906002901772'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/08/cracking-into-coldfusion-sitepoint.html' title='Cracking into ColdFusion - SitePoint ColdFusion Blog'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109119685070095121</id><published>2004-07-30T09:02:00.000-05:00</published><updated>2004-07-30T09:14:10.700-05:00</updated><title type='text'>Blogging and Ecommerce....</title><content type='html'>One of the things I have been researching, while on the job hunt, is the profitability trends and technologies for blogging.&lt;br /&gt;&lt;br /&gt;It seems there are room for growth in profitability, such as the major recommendation of putting Google AdSense on your blog. But that seemed to be lackluster, not quite enough.&lt;br /&gt;&lt;br /&gt;For starters, there are major technical limitations to a blog, especially if you have one of the free ones, no coldfusion, asp, php, jsp or .net support, just straight html,css and javascript.&lt;br /&gt;&lt;br /&gt;But it seems empty that there are no tools or means to integrate a shopping cart, or to browse the categories of recommended products.&lt;br /&gt;&lt;br /&gt;There simply is no data connection, or way to integrate some higher technology, unless you try to do javascript converted content, but that doesn't always reach all your customers.&lt;br /&gt;&lt;br /&gt;I for example, use blogger/blogspot because it is free. But that is also gives me a set of possible Blogger Tags to add functionality to my blog.&lt;br /&gt;&lt;br /&gt;Ecommerce sounds so many times, like a magic wand of big cash flowing in, but it isn't. It's a process of merely trading products/services for money that could be used to buy other products/services.&lt;br /&gt;&lt;br /&gt;We could try to implement XML Databinding to allow browsing of categories of products, but that is only supported in IE, and has issues with the data being from a different domain as the site being displayed at.&lt;br /&gt;&lt;br /&gt;In addition, bloggers can't create seperate blank pages, that you can do programming on. You just write a blog, edit the template, and that's about it.&lt;br /&gt;&lt;br /&gt;You could deliver content in javascript via coldfusion, put together a database of products, and then deliver the content as needed to help visitors browse? But how do you get them to browse, there is no seperate browsing page. Do you do a popup? No, people find them annoying.&lt;br /&gt;&lt;br /&gt;So there you have this driving need to make more money with your blog, but the technology and usability limits are very tough to break...&lt;br /&gt;&lt;br /&gt;Do we need a new standard of blogging? To add more functionality?&lt;br /&gt;&lt;br /&gt;After all if blogs make money, maybe as more than just an affiliate, think of how that will grow the blogging industry, if people can sell securely their products. &lt;br /&gt;&lt;br /&gt;Or even if you are just an amazon affiliate, if you can organize all your recommended books/products whatever into a browseable categories?&lt;br /&gt;&lt;br /&gt;I think it's time for some innovation...&lt;br /&gt;&lt;br /&gt;What do you think?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109119685070095121?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109119685070095121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/blogging-and-ecommerce.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109119685070095121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109119685070095121'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/blogging-and-ecommerce.html' title='Blogging and Ecommerce....'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109110219187227861</id><published>2004-07-29T06:35:00.000-05:00</published><updated>2004-07-29T06:56:31.873-05:00</updated><title type='text'>Must have site search features</title><content type='html'>After reading the latest news from InternetRetailer, about how Tower Records increased conversion rates by changing site search, from Endecca to Mercado Software. I had to see it for myself.&lt;br /&gt;&lt;br /&gt;I had to see if the relevence was good, the interface was clean, to see if it could find what I was looking for.&lt;br /&gt;&lt;br /&gt;Now I may not be a big music hound, but I did remember April Lavigne.&lt;br /&gt;&lt;br /&gt;Now it occured to me, that most recent search software should have spelling correction, right? Wrong!&lt;br /&gt;&lt;br /&gt;I typed in &lt;a href="http://www.towerrecords.com/Music/Default.aspx?search_in=music&amp;oft=lavine&amp;amp;urlid=37403fbdf973b67a4a1f&amp;free_text=lavine&amp;amp;"&gt;Lavine&lt;/a&gt;, thinking, okay this new search would be able to recognize my miss-spelling and find April Lavigne, well I was wrong.&lt;br /&gt;&lt;br /&gt;This led me to think, not so much to blame a particulare site search software, but to identify what kind of features does a site search really need?&lt;br /&gt;&lt;br /&gt;1. It needs to know how to interpret search query requests to bring the relevent results.&lt;br /&gt;2. Then it needs to provide an interface to search/browse/sort thru those results&lt;br /&gt;&lt;br /&gt;Sounds simple right?&lt;br /&gt;&lt;br /&gt;Well let's for example show you what it took Celebros, a very nice site search company from Israel, to create spelling corrections.&lt;br /&gt;&lt;br /&gt;Basically they had to go thru every piece of data, every title, category, to hopefully provide clue that if a customer typed x they really meant y.&lt;br /&gt;&lt;br /&gt;That took days and weeks to come up with spelling corrections, related searches, categorization etc...&lt;br /&gt;&lt;br /&gt;But it still failed thru no fault of their own.&lt;br /&gt;&lt;br /&gt;It's a failure of an assumption, that the customers really know the product data, or that they can easily figure out what to say to get what results they want....&lt;br /&gt;&lt;br /&gt;Before you can create an efficient and profitable site search, you have to understand the customer, not the client, but the people who are going to query your site search....&lt;br /&gt;&lt;br /&gt;Most customers tend to divide into&amp;nbsp;three or more searching categories:&lt;br /&gt;&lt;br /&gt;1. Looking for something specific&lt;br /&gt;2. Just browsing, surfing&lt;br /&gt;3. Researching to Buy&lt;br /&gt;&lt;br /&gt;Each has different needs, and you have to create a solution that meets all their needs.&lt;br /&gt;&lt;br /&gt;Then you need to realize you can create your own cheaper&amp;nbsp;solution using whatever database you have. Whether it be SQL Server 2000's Full-Text Searching, Verity, Oracle SQL Statements.&lt;br /&gt;&lt;br /&gt;The key is how to create good experiences when you fail to deliver relevent results, I mean, they may be relevent to the people who work at your company, but not to the customer.&lt;br /&gt;&lt;br /&gt;So then there is two approachs, do you spend lots of time or money trying to create a data set, that will fix any search queries?&lt;br /&gt;&lt;br /&gt;Or do you try your best, then watch the Conversion Rates, and hope things grow....&lt;br /&gt;&lt;br /&gt;At first any new search solution for your site, will show improvements, especially if it's an experience change...&lt;br /&gt;&lt;br /&gt;I mean, people can adapt to the worst site search, and even being offered two choices will choose the old one, just because they are more used to it.&lt;br /&gt;&lt;br /&gt;So my theory is that you need an adaptive/learning site search, that immediately gives a good experience to the customer, as much as possible, such as offerng a discount/promotion for failing to get good search results or even a live chat link to help not lose this customer, and make sure they can find what they are looking for....&lt;br /&gt;&lt;br /&gt;Then you need to get feedback from customer and from your site search programming to identify what types of search failures are occuring, and then to inform your site search/merchandising team to tweak the site search data, to provide the correct results, for the search query the customer used...&lt;br /&gt;&lt;br /&gt;Then over time, you'll have a more liquid and more human site search...&lt;br /&gt;&lt;br /&gt;It's either that or calling the boy scout to go visit the customer and bring them across the street to your store?&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109110219187227861?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.internetretailer.com/dailyNews.asp?id=12457' title='Must have site search features'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109110219187227861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/must-have-site-search-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109110219187227861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109110219187227861'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/must-have-site-search-features.html' title='Must have site search features'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109094585257578522</id><published>2004-07-27T11:08:00.000-05:00</published><updated>2004-07-27T11:30:52.576-05:00</updated><title type='text'>Learning Site Search</title><content type='html'>One of my covert projects I was working on, was a Learning Site Search. The concept being that to help the search engine learn as it goes, rather than trying to force it to have all the answers at first. &lt;br /&gt;&lt;br /&gt;Let's face it, most site searches are not going to be perfect. They can get somewhat close, but only after months of working on the data, and still it will have problems. &lt;br /&gt;&lt;br /&gt;1. To create a good site search, you have to know what the customers want, and how they'll phrase their searches &lt;br /&gt;2. You have to know how to identify when the customer is not getting the results they want. &lt;br /&gt;&lt;br /&gt;I wanted this site search, to have some unusual features, that helped it be more usable and better marketing. &lt;br /&gt;&lt;br /&gt;First the site search would be based on SQL Server 2000's Full-Text Indexing, which I was very comfortable with. &lt;br /&gt;&lt;br /&gt;Then there would be the toolbars/configuration of that search to help a customer modify the search, such as going from page to page, highlighting keywords, etc. &lt;br /&gt;&lt;br /&gt;Now my first objective, was to relevancy, I had decided, that after looking at the research on site search usability, that most customers' really do not look past the 2nd page. I mean how many of us have that much time to waste, looking for something that's hard to find or isn't organized well? &lt;br /&gt;&lt;br /&gt;Then I decided to have 20 results per page, so that no matter what search result, the focus of the merchandising team was on helping to make those two pages the most relevant of results. &lt;br /&gt;&lt;br /&gt;After having worked with other search firms, such as Celebros, for which they have some very nice features, such as spell replacement. I wanted to add that feature to this search, but considering that with a product line of 38400, it would be pretty hard to pre-determine all spelling corrections, synonyms, etc. &lt;br /&gt;&lt;br /&gt;So this is the backbone of the Learning Site Search, the need for two forms of feedback. One set of feedback has to be from the customers, to help identify keywords that don't get proper results. Then the second has to be from internal programming identifying when we get too many results, or irrelevant results. &lt;br /&gt;&lt;br /&gt;So we now have a site search that after being notified either by customer or internal programming when a keyword is returning bad results. Then there has to be a way to configure or customize the results. &lt;br /&gt;&lt;br /&gt;I created several different tables. &lt;br /&gt;&lt;br /&gt;Synonyms - What if this keyword in a different way of saying it, gets the better results, so show the original word, but use this substitute to get the better results. &lt;br /&gt;Spelling - To show the original word, and use the correction to substitute it. &lt;br /&gt;Rank Drop Off - This is a new feature, I remember reading where after rank % between each record gets too high, it just becomes too irrelevant. So that for example for x keyword, any result below 30% was of no value,then we could stop showing results 30% or below. It makes it easier to have us show only the most RELEVANT results. &lt;br /&gt;Rank Multipliers - I am searching thru 2 different tables in a total of 3 different ways, so to provide another way to customize results, we can dynamically change the priority of which table, which method via these dynamic rank multipliers. &lt;br /&gt;Keyword Status - To help identify which keywords have which problems, including a space for comments by Merchandising Team. &lt;br /&gt;&lt;br /&gt;Now Full-Text Indexing has a built-in rank counting field, to determine the density of a keyword in certain fields, and in addition I was searching 3 different methods. What I needed next was to convert to a percentage mode of ranking. &lt;br /&gt;&lt;br /&gt;So after complex querying, I grabbed the top ranking result item, and then divided, following results by that, giving me a 100-0% results in percentage. Which then prepares for my rank drop off needs. &lt;br /&gt;&lt;br /&gt;Now back to feedback methods, we did not want to ask for comments for customers, but just to click on 1-4 links to help us identify if this result was incorrect in any way... &lt;br /&gt;&lt;br /&gt;Now all that's setup, then it's just a matter of testing it, against your previous search. &lt;br /&gt;&lt;br /&gt;Now this will grow in data, as it gets customized. But remember, this will learn, and grow, and require less effort over time. &lt;br /&gt;&lt;br /&gt;Good luck... &lt;br /&gt;&lt;br /&gt;P.S. As you may know, I am currently looking for work, I would love to be able to help you with your site search, to be more profitable and to be more relevant. Being a coder does not prevent you from identifying with your customers. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109094585257578522?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109094585257578522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/learning-site-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109094585257578522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109094585257578522'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/learning-site-search.html' title='Learning Site Search'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-109027104231309866</id><published>2004-07-19T15:49:00.000-05:00</published><updated>2004-07-19T16:04:02.313-05:00</updated><title type='text'>Time to move on...</title><content type='html'>Well time changes, and we all change, so I just lost my job, for all those firm cfpurists haters, can go hip-hip hurray... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Well here we are start of a brand new week, life brings you struggle sometimes.... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;I am not saying I am mistake free, that I am perfect, nor do I think that there exists such people. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;We all try, I wasn't really happy, they weren't really happy, so ce sera, time to move on.... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;I already have ideas for some business products I want to create... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Even though I had issues with the company I worked for, I still love the ecommerce industry. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;There are always great challenges in both getting visitors to purchase something and then make sure you can fulfill them, and perhaps get repeat customers... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Month after month, I read all about all this need for huge web analytics software, to analyze tons of logs, for personalization and segmentation. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;But when I've seen articles written by people who've implemented such methods, they are not getting what they want out of it.... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;I really feel the whole industry needs a new approach on how to point customer a to the great products that the customer is really looking for. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;But instead what happens, those people who deal with the different parts of their multi-channel company, each channel's marketing people decide what navigation, what categories, what search, what tools, what help, and rarely is there any synchronization or common sense. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Then come the usability geeks, or anyone who has some common sense, see that there is issues with customers satisfaction in finding things. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;It's just too easy to forget why we have each channel..... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;b&gt;To help the customer find the product...&lt;/b&gt; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;But if each channel does things differently, how likely are those multi-channel customers to be confused??? &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Well anyways, last night as I was reading Christopher Rowley's, The Founder, a short sci-fi book. I felt inspired or envisioned to create a new product. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Basically a two-fold product: &lt;br /&gt;&amp;nbsp; &lt;br /&gt;1. To identify when and where, as fast as possible, the customer is not finding what they are looking for. &lt;br /&gt;2. To create ways to help immediately, and friendly help the customer. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;It's not quite well thought out yet... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;And I have some other ideas as well... &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Basically I want to find a way to create some cheap tools that get rid of the need for these unrealistically expensive tools like coremetrics. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;I mean, really, it's nice to hack the data, but the data is not the customer, and you are not responding to what their needs are but to your delayed perceptions of them. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Anyways that's my thoughts... &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-109027104231309866?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/109027104231309866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/time-to-move-on.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109027104231309866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/109027104231309866'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/time-to-move-on.html' title='Time to move on...'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108975564023256215</id><published>2004-07-13T16:48:00.000-05:00</published><updated>2004-07-13T16:54:00.233-05:00</updated><title type='text'>Managing your Deployments</title><content type='html'>Currently, where I work, we have a source control system, with a dev, staging and two production environments.&lt;br /&gt;&lt;br /&gt;Which can be a godsend in terms of rollback reliability, but can become pains in the rear, for deployment of projects that are affected by each other...&lt;br /&gt;&lt;br /&gt;I think we need a new way of thinking about deployments, or have more usable tools to do what people call builds.&lt;br /&gt;&lt;br /&gt;There has to be several parts.&lt;br /&gt;&lt;br /&gt;1. The ability to remotely turn trusted caching on/off at a certain date/time&lt;br /&gt;2. The ability to associate a group of files from different folders as a build to be ftped/deployed to any of a number of servers, that is equiped to de-build it upon receipt.&lt;br /&gt;3. Then turn trusted caching on/off for all deployed servers, then to wait 10-15 minutes, then the code is deployed and caching can be turned back on.&lt;br /&gt;&lt;br /&gt;I personally am frustrated with this situation, and am looking for ideas/solutions.&lt;br /&gt;&lt;br /&gt;The hardest one is the ability to turn on/off trusted cache on multiple servers at a set scheduled date/time, without someone having to manually go into CF Admin and do that.&lt;br /&gt;&lt;br /&gt;What if you had 10, 20 or 40 servers that you had to deploy new code for?&lt;br /&gt;&lt;br /&gt;Isn't it amazing?&lt;br /&gt;&lt;br /&gt;Well sometimes innovation comes out of need?&lt;br /&gt;&lt;br /&gt;What kind of needs do you feel are unmet?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108975564023256215?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108975564023256215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/managing-your-deployments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108975564023256215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108975564023256215'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/managing-your-deployments.html' title='Managing your Deployments'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108930761847066890</id><published>2004-07-08T12:26:00.000-05:00</published><updated>2004-07-08T12:26:58.470-05:00</updated><title type='text'>Bring me Blackstone!</title><content type='html'>&lt;a href="http://www.macromedia.com/devnet/mx/coldfusion/articles/blackstone.html"&gt;Macromedia - Developer Center : The Blackstone Tour Report&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have to admit, I'm rather excited to see this, any news is good news.&lt;br /&gt;&lt;br /&gt;I also love how Ben Forta says:&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;"Is Macromedia committed to ColdFusion?" "Is ColdFusion dead?", and so on. Threads like this have been popping up for years now. So, just to make things perfectly clear, here are some facts (as presented to the groups):&lt;br /&gt;&lt;br /&gt;There continues to be plenty of ColdFusion development going on. Google today reports millions more CFML pages than it did a year ago. That's good news, especially when taken in context. After all, most ColdFusion deployment is within organizations (intranets, extranets, portals, and so forth); areas that Google never even sees. &lt;br /&gt;Macromedia continues to sell lots of ColdFusion. Sales are solid and have been for a while. That's a very positive sign indeed, especially for a product that is rapidly approaching its 10th birthday. &lt;br /&gt;Lots of developers are using ColdFusion MX, the latest version of ColdFusion. When polling attendees at user groups, over half had upgraded to ColdFusion MX (including MX 6.1). That's good too. &lt;br /&gt;Macromedia continues to be very committed to ColdFusion. ColdFusion MX (and the massive financial and resource investment that went into that release) is a testament to that. Then on top of the solid foundation and architecture of ColdFusion MX, we already have thousands of man hours invested into the development and testing of Blackstone, and we’re not even in the beta cycle yet. &lt;br /&gt;To borrow (and slightly adapt) a quote: "Rumors of its demise have been greatly exaggerated."&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Way to go Ben, that's the way to tell it to them.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108930761847066890?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.macromedia.com/devnet/mx/coldfusion/articles/blackstone.html' title='Bring me Blackstone!'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108930761847066890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/bring-me-blackstone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108930761847066890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108930761847066890'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/bring-me-blackstone.html' title='Bring me Blackstone!'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108923567386613827</id><published>2004-07-07T16:21:00.000-05:00</published><updated>2004-07-07T16:27:53.866-05:00</updated><title type='text'>What does the customer really want?</title><content type='html'>It starts with who is your customer?&lt;br /&gt;&lt;br /&gt;Who are you developing it for?&lt;br /&gt;&lt;br /&gt;Sometimes it can get confusing, between what your boss(s) want and the client wants.&lt;br /&gt;&lt;br /&gt;I keep reiterating this, because it's still obvious that we have issues in the industry with communications.&lt;br /&gt;&lt;br /&gt;Maybe there should be a committe, of designers/developers to help standardize the industry, in terms of training, salary, tiers of skill level, certification, and all the professional skills we develop  with time.&lt;br /&gt;&lt;br /&gt;It's just the sad part of being self-taught, we just miss some things, because we never had the opportunity to learn them, or be aware that we did not know we needed them..&lt;br /&gt;&lt;br /&gt;If we webbers, are more geek or nerd, that does not highlight us for having great communication or planning skills.&lt;br /&gt;&lt;br /&gt;I keep thinking about that old Simpsons/Child Rant, on a road trip, "Are we there yet?"&lt;br /&gt;&lt;br /&gt;And yet, I think where do we want to be as an industry in the next 5-10 years?&lt;br /&gt;&lt;br /&gt;Is the real change going to be technilogical, or in ourselves, and the demands for what skills we have to have to keep our job.&lt;br /&gt;&lt;br /&gt;What does it take to keep your job?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108923567386613827?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108923567386613827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/07/what-does-customer-really-want.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108923567386613827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108923567386613827'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/07/what-does-customer-really-want.html' title='What does the customer really want?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108861028870721711</id><published>2004-06-30T10:31:00.000-05:00</published><updated>2004-06-30T10:44:48.706-05:00</updated><title type='text'>Search and Learn</title><content type='html'>My big project this summer, is the revision of my companies, site-search. We have over the last two years, tried external solutions. But it really turns out that we have a unique data mix and categorization mixture, so it makes it really hard to have an automatic fix.&lt;br /&gt;&lt;br /&gt;So while my boss is out to France, for his yearly vacation, I will working on Search Revision No. 4&lt;br /&gt;&lt;br /&gt;What will be unique about this version?&lt;br /&gt;&lt;br /&gt;It will be a learning search.&lt;br /&gt;&lt;br /&gt;The way I look at it, you can either spend months creating/adjusting/tweaking data, spelling corrections, synonyms beforehand, or you can do it gradually over time.&lt;br /&gt;&lt;br /&gt;My bible of search from Nielsen Normal Group E-Commerce User Experience on Search, I keep hoping for a 2004 version. &lt;br /&gt;&lt;br /&gt;I have two goals, make it easy for us to gradually improve the search, and improve the usability of the interface to deliver what the customers want, not just what we think they want.&lt;br /&gt;&lt;br /&gt;When you communicate with someone, there are two parts, sender and receiver, but when you are searching for someone, it becomes a bit more difficult to really understand each other.&lt;br /&gt;&lt;br /&gt;When we adapt to a new situation or interface over time,we create a mental paradigm of how to do things in this interface/world/universe.&lt;br /&gt;&lt;br /&gt;Like I know that if I type X, I'll get the Y results, I was really after.&lt;br /&gt;&lt;br /&gt;So to make this learning search really work, we'll have to get direct/indirect feedback from our search users, our Magellan wanna-bes. Searching for the fountain of woodworking.&lt;br /&gt;&lt;br /&gt;For direct, I have to find a way to get direct/indirect feedback from customers, when there is:&lt;br /&gt;&lt;br /&gt;Too Much Results&lt;br /&gt;Too Few Results&lt;br /&gt;Bad Results&lt;br /&gt;Misspelled Keywords&lt;br /&gt;&lt;br /&gt;On one hand, how likely are customers going to be helpful in improving the search? If their core needs of finding what they are looking for, is not met???&lt;br /&gt;&lt;br /&gt;So I have to provide the direct feedback tool, as long as that information is only available internally.&lt;br /&gt;&lt;br /&gt;But I also have to identify indirect feedback, based on the results themselves.&lt;br /&gt;&lt;br /&gt;My goal in terms of results is two pages of extremely relevant results. Because reports show that people are not willing to scroll thru more than 3 pages before they get frustrated.&lt;br /&gt;&lt;br /&gt;So I can measure indirectly based on how many records the FullText Query returns, as well how many pages, but after that it gets a bit shady as to how to measure bad results.&lt;br /&gt;&lt;br /&gt;Now beyond the measuring, into adjusting results.&lt;br /&gt;&lt;br /&gt;Once I have some adjusted data, such as changing the rank multipliers that change the value I place on the data I am searching. I am searching thru 2 different tables, 3 different ways totally. So I have a dynamic field that can be adjusted to say table 1 is more important for keyword X's results, then table 3 is.&lt;br /&gt;&lt;br /&gt;In addition, I check for synonyms, misspelled words, to replace what the current keyword is to help fix it for the customer.&lt;br /&gt;&lt;br /&gt;So this is not quite a simple project.&lt;br /&gt;&lt;br /&gt;Perhaps this can be even called an Enterprise Project??&lt;br /&gt;&lt;br /&gt;Well more to come later, on this challenge of the lifetime...&lt;br /&gt;&lt;br /&gt;Later :)&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108861028870721711?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108861028870721711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/search-and-learn.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108861028870721711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108861028870721711'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/search-and-learn.html' title='Search and Learn'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108809258840595025</id><published>2004-06-24T10:56:00.000-05:00</published><updated>2004-06-24T10:56:28.406-05:00</updated><title type='text'>Frameworks: The Good, Bad and the Ugly</title><content type='html'>&lt;a href="http://www.medlogs.com/dave/001797.html"&gt;D.Ross.Blog: Frameworks, Methodologies&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's get this conversation out in the open.&lt;br /&gt;&lt;br /&gt;Let's take some quotes from my infamous comments...&lt;br /&gt;&lt;br /&gt;"That's my point, I am sure it is a good methodology, and I am all for improving our standards of coding to make ColdFusion is the solution for the web applications.&lt;br /&gt;&lt;br /&gt;However, no methodology should sacrifice core values of performance and usability.&lt;br /&gt;&lt;br /&gt;I understand for example, how it helps to have a common methodology for a team. &lt;br /&gt;&lt;br /&gt;I am not here because I like slamming methodologies, I just want to make sure we are choosing methodologies for the right reason.&lt;br /&gt;&lt;br /&gt;Because no matter how a methodology improves our coding standards/skills, it doesn't matter as long as it's coded to be the most efficient in performance and usable to the clients."&lt;br /&gt;&lt;br /&gt;My point is that several-fold:&lt;br /&gt;&lt;br /&gt;1. We should not just jump to a framework because everyone else does, or because it's a trend or fad. It must be because it fulfills the needs we have as a team/coder and because it delivers on our core values.&lt;br /&gt;&lt;br /&gt;2. I don't care if it's the most elegant framework in the world, but if it takes away from the core values, then it's really not yet a good framework.&lt;br /&gt;&lt;br /&gt;Here are my core values, and I hope they are similar to yours:&lt;br /&gt;&lt;br /&gt;1. Performance and Scalibility: As my web apps get used by more and more people, I have to make sure that the web app is built for handling that, by using the most EFFICIENT/FASTEST LOADING  ways of delivering functionality/content or whatever.&lt;br /&gt;&lt;br /&gt;2. Url Usability: It sounds trivial, but it's actually a very important subtle thing. People like to be able to bookmark, or understand what page they are at. The old fusebox method of having all apps be on one page with different url variables, just doesn't cut it. Especially in the day of trying to do search engine optimization. &lt;br /&gt;&lt;br /&gt;I do know it can do the seo friendly urls, but it should be on seperate pages. Which can be fusebox if you like that just includes the fusebox code. But we need to go a products page or a shopping cart page. There needs to be a visible difference in the address bar between pages.&lt;br /&gt;&lt;br /&gt;3. The framework should be built to be easy to understand for people who don't even use that framework.&lt;br /&gt;&lt;br /&gt;Point-in-case, at work we have several fusebox apps, that we don't even bother trying to fix because it's so convoluted trying to find where the actual code is and what not.&lt;br /&gt;&lt;br /&gt;Now, I do approve of frameworks, as long as they are done right.&lt;br /&gt;&lt;br /&gt;Of course it is much better than going blindly with no standards or no framework....&lt;br /&gt;&lt;br /&gt;But we have to evaluate what is a good framework and what is a bad framework.&lt;br /&gt;&lt;br /&gt;There are plenty of innovations that fusebox and other frameworks have brough to the cf world, that I like.&lt;br /&gt;&lt;br /&gt;Like the idea of wireframing your apps, I still want to play with that as a great way of planning out your app logic.&lt;br /&gt;&lt;br /&gt;I have not yet played with mach-ii. I am honestly a late adapter, probably always will be.&lt;br /&gt;&lt;br /&gt;And maybe I still think that a good web app, is 1-3 pages with 5-10 cfincludes...&lt;br /&gt;&lt;br /&gt;And because my code is commented, indented, planned, easy to read and understand, then I don't have to worry about dying, and having someone try to figure out what the heck my code is trying to do.&lt;br /&gt;&lt;br /&gt;Unless coldfusion has changed so much that the speed differences are a lot different than they used to be, then I'll be glad to change my mind.&lt;br /&gt;&lt;br /&gt;As long as the reuse method is the most EFFICIENT/RELIABLE way.&lt;br /&gt;&lt;br /&gt;And as a nice as cfc's are, they are not it, nor are cfmodules or cffunctions or cfscripts.&lt;br /&gt;&lt;br /&gt;CFINCLUDES are still the fastest gun in the REUSE West...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108809258840595025?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.medlogs.com/dave/001797.html' title='Frameworks: The Good, Bad and the Ugly'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108809258840595025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/frameworks-good-bad-and-ugly.html#comment-form' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108809258840595025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108809258840595025'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/frameworks-good-bad-and-ugly.html' title='Frameworks: The Good, Bad and the Ugly'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108801832478247478</id><published>2004-06-23T14:03:00.000-05:00</published><updated>2004-06-23T14:18:44.783-05:00</updated><title type='text'>Think Longterm</title><content type='html'>One of the things that is hard to grasp as a newbie, is the importance of thinking longterm.&lt;br /&gt;&lt;br /&gt;Because it takes a while to understand the importance of:&lt;br /&gt;&lt;br /&gt;1. Commenting&lt;br /&gt;2. Planning&lt;br /&gt;3. Project Management&lt;br /&gt;4. Error Proofing&lt;br /&gt;5. Testing&lt;br /&gt;&lt;br /&gt;There is probably more to the list, but most newbies, think if the app works, that's all that matters.&lt;br /&gt;&lt;br /&gt;And I was the exact same way, give me a goal, and I couldn't wait to code.&lt;br /&gt;&lt;br /&gt;But then begin the painful lessons:&lt;br /&gt;&lt;br /&gt;1. This isn't exactly what I had asked for.&lt;br /&gt;2. I have to change something in your code.&lt;br /&gt;3. I get too many errors on this app, did you error proof it?&lt;br /&gt;4. This application, 1 out of 100 gets the job done, what's happening 99% of the other times? Did you test it?&lt;br /&gt;&lt;br /&gt;The reason why, I and other classicists/old schoolers/purists emphasize these things so much, is because you are dead on aiming for a hungry bull just ready to rip you to pieces.&lt;br /&gt;&lt;br /&gt;We all make mistakes, and that's okay as long as we learn from them.&lt;br /&gt;&lt;br /&gt;And to help you prevent them from the long haul, you need to take a different approach to your coding.&lt;br /&gt;&lt;br /&gt;Take pride in your work, knowing that it is going to do it's thing for a long time 5-20 years, who knows??&lt;br /&gt;&lt;br /&gt;However then make sure the app/project will last that long by following the methods that help make sure you get there.&lt;br /&gt;&lt;br /&gt;Let's briefly go over these top-notch methods:&lt;br /&gt;&lt;br /&gt;1. Commenting, Elyse over at Anticlue has a nice article on commenting, &lt;a href="http://www.anticlue.net/archives/000275.htm"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But simply said, commenting can be simple or complex, but the more details you put in there, the easier it will be to fix/repair in the future. &lt;br /&gt;&lt;br /&gt;Which is the whole purpose, put in the details now, to make it easy for you later.&lt;br /&gt;&lt;br /&gt;Also it's much more important, if people besides yourself are going to look at your code.  Take pride in your code, make it look nice, neat and indented.&lt;br /&gt;&lt;br /&gt;2. Planning, I can't say enough about planning. Planning is both the skills you develop to architech the project/app, but it's also making sure you have a clear/written and documented vision of your project.&lt;br /&gt;&lt;br /&gt;3. Project Managmeent, it sounds like a pain in the ass, but really it's godsend. Because this prevents communication mistakes.&lt;br /&gt;&lt;br /&gt;I don't know how many times, it's happened to me, where I thought I knew exactly what the client/customer/boss wanted for the project, only when I started coding, they said, "What the heck is this? This isn't what I wanted?"&lt;br /&gt;&lt;br /&gt;Isn't that a pain???&lt;br /&gt;&lt;br /&gt;So learn from this, use a simple-to-complex project management system to prevent communication mistakes, as well as not wasting anyones time until everyone knows what everyone else wants and will get done.&lt;br /&gt;&lt;br /&gt;4. Error-Proofing, this is one of my concepts, if someone else came up with it before me, I apologize. Error Proofing simply means preparing your code to handle any possible error.&lt;br /&gt;&lt;br /&gt;This means what copy/app changes you want to happen based on what kind of error.&lt;br /&gt;&lt;br /&gt;Also this can mean some cool looking error reporting, Qforms has some interesting ideas on form error handling.&lt;br /&gt;&lt;br /&gt;Also it means, knowing your incoming data, protecting your datatypes. If your app depends on results from a query, what if you get no data one time? How does your app handle it?&lt;br /&gt;&lt;br /&gt;5. Testing, this is one the that my current boss is a master of. You give him an app, and he will break it into smithereens. :) &lt;br /&gt;&lt;br /&gt;Which is both funny and a good thing, because it takes a lot of work to do testing, and prepare your code.&lt;br /&gt;&lt;br /&gt;You gotta lose your ego, come up with a testing system, that always changes and evolves, and make sure your code is really PERFECT, before it gets public.&lt;br /&gt;&lt;br /&gt;That's all for now.&lt;br /&gt;&lt;br /&gt;Remember think longterm, do you really want to have to fix some crappy app, you did 2-3 years ago, but was written so horribly no english person can read it?&lt;br /&gt;&lt;br /&gt;I don't think so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108801832478247478?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108801832478247478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/think-longterm.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108801832478247478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108801832478247478'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/think-longterm.html' title='Think Longterm'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108794004091043169</id><published>2004-06-22T16:34:00.000-05:00</published><updated>2004-06-22T16:34:00.910-05:00</updated><title type='text'>Ensuring CF As an E-Commerce Platform</title><content type='html'>&lt;a href="http://www.sys-con.com/story/?storyid=45341&amp;amp;DE=1"&gt;ColdFusion Developer's Journal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well here it is, my first official CFDJ article, if this is well received, I would love to write as much as I can.&lt;br /&gt;&lt;br /&gt;I know this may sound weird, but I've waited a long time to be worthy enough, or ready enough. I'm just happy to be able to give something back.&lt;br /&gt;&lt;br /&gt;Anyways enough of my blutherings.&lt;br /&gt;&lt;br /&gt;Feel free to check it out at the link at the top, and give me your bloody honest opinion.&lt;br /&gt;&lt;br /&gt;Thank you everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108794004091043169?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sys-con.com/story/?storyid=45341&amp;DE=1' title='Ensuring CF As an E-Commerce Platform'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108794004091043169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/ensuring-cf-as-e-commerce-platform.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108794004091043169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108794004091043169'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/ensuring-cf-as-e-commerce-platform.html' title='Ensuring CF As an E-Commerce Platform'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108793020384289392</id><published>2004-06-22T13:50:00.000-05:00</published><updated>2004-06-22T13:50:03.843-05:00</updated><title type='text'>Macromedia MXNA Aggregator in Flash</title><content type='html'>&lt;a href="http://www.azcfug.org/"&gt;Phoenix ColdFusion UserGroup: Welcome to the Phoenix ColdFusion UserGroup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I know I may have come across as an acerbic anti-flash person. But when I see something cool, and it makes sense and is usable. I gotta get behind the bandwagon.&lt;br /&gt;&lt;br /&gt;It may sound simple but something like this on the right side of the Arizona CFUG site, just rocks my boat.&lt;br /&gt;&lt;br /&gt;It's perfect, especially when any of my posts show up :)&lt;br /&gt;&lt;br /&gt;Another flash integration of the MXNA Aggregator, that I am just beginning to drool over.&lt;br /&gt;&lt;br /&gt;http://www.markme.com/mesh/archives/004255.cfm&lt;br /&gt;&lt;br /&gt;This interface is very nice, although I still miss the ability to right-click and open into a new window. It still is a very beautiful application.&lt;br /&gt;&lt;br /&gt;DROOOL!&lt;br /&gt;&lt;br /&gt;:}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108793020384289392?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.azcfug.org/' title='Macromedia MXNA Aggregator in Flash'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108793020384289392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/macromedia-mxna-aggregator-in-flash.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108793020384289392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108793020384289392'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/macromedia-mxna-aggregator-in-flash.html' title='Macromedia MXNA Aggregator in Flash'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108792715616402237</id><published>2004-06-22T12:59:00.000-05:00</published><updated>2004-06-22T12:59:16.163-05:00</updated><title type='text'>ExpertsExchange.com - A Good way to share learning</title><content type='html'>&lt;a href="http://www.experts-exchange.com/Web/WebDevSoftware/ColdFusion/"&gt;ColdFusion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The reason I really like this community q&amp;a site, is because there is so much knowledge and experience that we can share and learn from.&lt;br /&gt;&lt;br /&gt;I don't claim to know it all, but I would like to learn it all, or as much as humanly possible.&lt;br /&gt;&lt;br /&gt;Next time you have a problem or puzzle, or just want to fill some time helping other cfers, checkout ExpertsExchange.com&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108792715616402237?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.experts-exchange.com/Web/WebDevSoftware/ColdFusion/' title='ExpertsExchange.com - A Good way to share learning'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108792715616402237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/expertsexchangecom-good-way-to-share.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108792715616402237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108792715616402237'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/expertsexchangecom-good-way-to-share.html' title='ExpertsExchange.com - A Good way to share learning'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-10879192922860236</id><published>2004-06-22T10:36:00.000-05:00</published><updated>2004-06-22T10:48:12.286-05:00</updated><title type='text'>What's on your bookshelves?</title><content type='html'>It turns out that most of us, are trained by book knowledge, that and experience of course.&lt;br /&gt;&lt;br /&gt;So I come to you today, to share what's on my book-shelves, and curious to here what you have on yours?&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0078824389/carlellersultima" target="_blank"&gt;Oracle PL/SQL Tips and Techniques&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/1556228147/carlellersultima" target="_blank"&gt;Learn SQL Server 2000 Administration&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0201615762/carlellersultima" target="_blank"&gt;The Guru's Guide to Transact-SQL&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0201700468/carlellersultima" target="_blank"&gt;The Guru's Guide to SQL Server Stored Procedures, XML and HTML&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0789724499/carlellersultima" target="_blank"&gt;SQL Server 2000 Programming&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/1874416508/carlellersultima" target="_blank"&gt;Instant SQL Programming&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0201353415/carlellersultima" target="_blank"&gt;Visual DHTML for the world wide web&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0672324717/carlellersultima" target="_blank"&gt;XML in 10 Minutes&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0672316633/carlellersultima" target="_blank"&gt;SQL Server 7.0 in 10 Minutes&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0672325675/carlellersultima" target="_blank"&gt;SQL in 10 Minutes&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/1572319224/carlellersultima" target="_blank"&gt;Stupid Web Tricks&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0201874849/carlellersultima" target="_blank"&gt;Community Building on the Web&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/156205810X/carlellersultima" target="_blank"&gt;Designing Web Usability&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/073571102X/carlellersultima" target="_blank"&gt;Homepage Usability&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0471197858/carlellersultima" target="_blank"&gt;Website Automation Toolkit&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0764536516/carlellersultima" target="_blank"&gt;XSLT for Dummies&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;It is still sort of amazing the value of the printed word, as a means of communication and education.&lt;br /&gt;&lt;br /&gt;Each of these books is sort of a step on a giant ladder, as we progress thru our skill-sets and our gradual shifts of paradigms.&lt;br /&gt;&lt;br /&gt;Even to this day, I like to read &gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0471197858/carlellersultima" target="_blank"&gt;Website Automation Toolkit&lt;/a&gt;, because it was written before content management systems or backoffices, really existed. So here was this Paul Helsinki, who had writted for the Web Techniques Magazine, had come up with a couple different concepts of using perl to create a content/site management system.&lt;br /&gt;&lt;br /&gt;I still get some new ideas, or refresh my concepts when I read a good old book like this.&lt;br /&gt;&lt;br /&gt;Of course, I really got my web start, using the Instant HTML Book by WROX, a well-used book of mine,as a HTML reference.&lt;br /&gt;&lt;br /&gt;In a way it is very pleasant to look back and see where we were, as long as we do not get too proud or egotistical about it.&lt;br /&gt;&lt;br /&gt;Have a good day everyone!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-10879192922860236?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/10879192922860236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/whats-on-your-bookshelves.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/10879192922860236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/10879192922860236'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/whats-on-your-bookshelves.html' title='What&apos;s on your bookshelves?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108782800767004197</id><published>2004-06-21T09:15:00.000-05:00</published><updated>2004-06-21T09:26:47.670-05:00</updated><title type='text'>How do you train yourself?</title><content type='html'>For me my path to coldfusion, was half a drive to know more, learn more, be more.&lt;br /&gt;&lt;br /&gt;I was working at a Tech Support job for a local ISP. Getting that rapid burn out we all get after time, and wanted to learn more.&lt;br /&gt;&lt;br /&gt;For example, I saw a need for an intranet that held all the massively disorganized information, on helping customers. So I started to learn javascript, html, especially from my favorite html book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1861000766/carlellersultima"&gt;Instant HTML&lt;/a&gt; - Programmer's Reference by Steven Wright.&lt;br /&gt;&lt;br /&gt;I pushed myself to find out how to create a framed interface, (yes, I know frames suck, but can be a good solution for intranets.)&lt;br /&gt;&lt;br /&gt;Anyways I self-taught myself, html, javascript.&lt;br /&gt;&lt;br /&gt;And as that went on, I became the webmaster, hostmaster and what not.&lt;br /&gt;&lt;br /&gt;But I was never settling for whatever I currently knew, I always wanted to know, learn and master more.&lt;br /&gt;&lt;br /&gt;So I was always bothering the web developer, at the ISP's web department to learn more, to learn, what the heck is coldfusion, etc....&lt;br /&gt;&lt;br /&gt;And with time,grew to master more and more of my skills.&lt;br /&gt;&lt;br /&gt;But as I have gotten older, I have seen how so many (apparently, but not confirmed) people were trained by their companies, or were sent on conferences by their companies. &lt;br /&gt;&lt;br /&gt;I just have always wondered, what it took to get more education, the support of even half-way from companies.&lt;br /&gt;&lt;br /&gt;Also I wonder what all of your learning paths are like?&lt;br /&gt;&lt;br /&gt;I realize things have changed since the dot-com bomb, but if we're all to get better, and there really is no formalized training system, how can we improve other than thru conferences?&lt;br /&gt;&lt;br /&gt;Especially if we're all so self-taught, that must inhibit our real awareness of each other's work in terms of quantity and quality.&lt;br /&gt;&lt;br /&gt;That's my thought of the day...&lt;br /&gt;&lt;br /&gt;How do you train yourself?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108782800767004197?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108782800767004197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/how-do-you-train-yourself.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108782800767004197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108782800767004197'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/how-do-you-train-yourself.html' title='How do you train yourself?'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108750870364778564</id><published>2004-06-17T16:24:00.000-05:00</published><updated>2004-06-17T16:45:03.646-05:00</updated><title type='text'>Plurals, where's my plurals??</title><content type='html'>Well yesterday and today of all things, I am working on re-thinking my companies site search functionality.&lt;br /&gt;&lt;br /&gt;For which we are using SQL Server 2000's fulltext capability, I have been exploring and tweaking for the last 2 years. I thoroughly enjoy attempting to configure it right.&lt;br /&gt;&lt;br /&gt;There are so many ways to go wrong.&lt;br /&gt;&lt;br /&gt;Such as:&lt;br /&gt;&lt;br /&gt;1. What are the customer's looking for? &lt;br /&gt;2. Where's the data that's most likely to have the best pointer to the correct results?&lt;br /&gt;3. How do I display results, and tools, and aids, to help the customer in case of difficulties, or just to make sure the search is usable.&lt;br /&gt;&lt;br /&gt;My two search bibles, which I will never part even in death, are:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nngroup.com/reports/ecommerce/search.html"&gt;E-Commerce User Experience&lt;/a&gt;, Search Section/Chapter written by &lt;a href="http://www.nngroup.com/"&gt;Nielsen Norman Group&lt;/a&gt; for which we know the most about the author, Jakob Nielsen, Usability Guru.&lt;br /&gt;&lt;br /&gt;Then there is this color pdf from Cognetics, on Search Interfaces for Information Portals.&lt;br /&gt;&lt;br /&gt;Also I still love Kristoffer Bohmann's article on &lt;a href="http://www.bohmann.dk/articles/effective_search_results.html"&gt;Effective Search Results&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this deadly art of search design/development, we few mortals must dare to solve two main riddles.&lt;br /&gt;&lt;br /&gt;1. How the heck can i find what the customer is looking for??&lt;br /&gt;2. How should I display the results back.&lt;br /&gt;&lt;br /&gt;Well yesterday to today, I've been working on question or battle #1.&lt;br /&gt;&lt;br /&gt;Figuring out how to hack the data.&lt;br /&gt;&lt;br /&gt;In our case we are searching 3 different ways, and then pre-determining the rank multiplier value for each, as well as a new feature I am adding called Rank Drop Off.&lt;br /&gt;&lt;br /&gt;Rank Drop Off means, I got too much wanking results, and who's really going browse thru 30 pages of results. So to help eliminate the flock from the schlock, on the fly I determine the ranking percentages, and then drop off, anything below a certain percentage. &lt;br /&gt;&lt;br /&gt;Now of the results, that come back, I am want to make sure no duplicates occur. Unfortunately we have product groupings that have the same title, (another item on my wishlist for cleanup), so I created a sql view to help give me only unique, active and searchable product groupings.&lt;br /&gt;&lt;br /&gt;I also have to grab the top rank value of the first row, and use that to on the fly calculate a percentage of that ranking value for all the rest of the records.&lt;br /&gt;&lt;br /&gt;I had to bring out my trusty rusty handy dandy &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0201615762/carlellersultima"&gt;The Guru's Guide to Transact-SQL&lt;/a&gt;, to look up joins, subqueries, all that funky stuff. That we in the Blue's Clues sql training class have learned.&lt;br /&gt;&lt;br /&gt;So day later, I have all the layout, design, different modes, and yet I can not counter the PLURALS!!!&lt;br /&gt;&lt;br /&gt;OH OH OH!!!&lt;br /&gt;&lt;br /&gt;It could be the end of world, for us, stay tuned, as we find out what happened to the DEADLY PLURALS!!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anyways, I can't get the freaking plurals to work.&lt;br /&gt;&lt;br /&gt;I say table, hoping to get table and tables back.&lt;br /&gt;&lt;br /&gt;freetexttable (product_groupings, title, '#filter#',80)&lt;br /&gt;&lt;br /&gt;I have tried putting it in quotes, adding an * before and after.&lt;br /&gt;&lt;br /&gt;I know there is an inflectional mode if you use a different method other than freetexttable, but freetextable has the rankings I need.&lt;br /&gt;&lt;br /&gt;Plus there is just too much data, to hand-code a synonym or plurals table.&lt;br /&gt;&lt;br /&gt;Do you oh wise wizards of Blue's Clues, have any ideas or suggestions.&lt;br /&gt;&lt;br /&gt;That is beside the old "Jump off a cliff, Craig!".&lt;br /&gt;&lt;br /&gt;Which is in my employment contract to not do, on thursdays! Especially in summer.&lt;br /&gt;&lt;br /&gt;Anyways, that's my brain in a jar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108750870364778564?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108750870364778564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/plurals-wheres-my-plurals.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108750870364778564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108750870364778564'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/plurals-wheres-my-plurals.html' title='Plurals, where&apos;s my plurals??'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7103391.post-108741966249230699</id><published>2004-06-16T16:01:00.000-05:00</published><updated>2004-06-16T16:01:02.493-05:00</updated><title type='text'>Coldfusion does not do Ecommerce Well???</title><content type='html'>&lt;a href="http://www.forta.com/blog/index.cfm?mode=e&amp;amp;entry=1107"&gt;Forta.com - Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Go down near the end of the page, and you'll see the comment by Ben Forta on ecommerce.&lt;br /&gt;&lt;br /&gt;I work for an ecommerce site, so hearing that ColdFusion is not a good solutions, really just hit me through the roof.&lt;br /&gt;&lt;br /&gt;To make it easy, here's the Ben Forta quote:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Craig, the e-commerce space has never been where CF does well. Sure, it did ok there in the .COM era, but that was an exception, not the rule. Most of CF development happens on intranets and extranets and portals, internal stuff, and that is what CF is best at.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;How can I deal with this? Can Ben Forta be wrong, or have we as coders just not persuaded the world that we can create stable, profitable ecommerce sites?&lt;br /&gt;&lt;br /&gt;Perhaps, if you understood my personal work situation a little bit, that may add to your understanding.&lt;br /&gt;&lt;br /&gt;For the last two years, I have been working for an ecommerce company. From day one, my job has been to clean up the horrible coding that was put in place, by a company using a packaged ecommerce system.&lt;br /&gt;&lt;br /&gt;Every day, for the last year, I have been fighting with my boss, to help finish the cleaning process, to both clean up the code, database, files, folders everything.&lt;br /&gt;&lt;br /&gt;Only each year, we never get it done, and he keeps coming up with reasons, why any other technology would automatically solve all our problems.&lt;br /&gt;&lt;br /&gt;So here I am, trying to fight for my sanity, and wonder what can I do?&lt;br /&gt;&lt;br /&gt;I am not a quitter, so every day, I work on different ways to improve the quality and stability, just so we can cleanly add new features and functionality.&lt;br /&gt;&lt;br /&gt;And the funny thing is, each year, my boss finds a new technology, tries to get bids for pricing and either the prices are way out of our reach, or they really are not good solutions. &lt;br /&gt;&lt;br /&gt;In other words, when you have a complicated site, it's unrealistic to just buy a package, and expect to easily deploy all your custom needs and features.&lt;br /&gt;&lt;br /&gt;Also, it was way more expensive than coldfusion was.&lt;br /&gt;&lt;br /&gt;So that adds to my relief and frustration, trying to save my job, trying to do the right thing no matter what.&lt;br /&gt;&lt;br /&gt;And then this year, we decided to finish the clean up work, but instead of asking me to help finish it up, or to hire some desperately needed additional personnel, he decides to outsource all the final cleanup work. &lt;br /&gt;&lt;br /&gt;Now during all this time, I have been starting my process of writing my first CFDJ article, hopefully to come out in june. All about why coldfusion is a great solution for ecommerce.&lt;br /&gt;&lt;br /&gt;I get more and more fired up, I had presumed, that the reason coldfusion was so down-trodded upon, was that we really hadn't done good work. &lt;br /&gt;&lt;br /&gt;I mean the kind of good work, that doesn't require you to come back a week later, and fix all the errors, you never fixed in the first time.&lt;br /&gt;&lt;br /&gt;Have we as an industry done really good, high quality work??&lt;br /&gt;&lt;br /&gt;Really??&lt;br /&gt;&lt;br /&gt;I mean I still hear of people, that do not see the need to comment their code, or think worrying about performance is lame.&lt;br /&gt;&lt;br /&gt;So here I am, my boss just left for 3 weeks in France like he usually does every year. Summer is a our slow time, which is the perfect time to finish cleaning up the code, and totally revamping our ecommerce coding, database and all.&lt;br /&gt;&lt;br /&gt;But instead, it's much more important that he goes to France.&lt;br /&gt;&lt;br /&gt;Anyways, I don't mean to get on his case.&lt;br /&gt;&lt;br /&gt;But I am on fire here, and wanting to show and prove why coldfusion is a great answer for Ecommerce.&lt;br /&gt;&lt;br /&gt;But if Ben Forta doesn't believe it's good for Ecommerce, what am I to do?&lt;br /&gt;&lt;br /&gt;That's why I get upset about all this flash, oo, java talk, because I am not sure, that as cfer's we've really mastered the basics?&lt;br /&gt;&lt;br /&gt;I mean, are the customers happy with the work you did, has it improved their profitability,because you did it, or it was done in ColdFusion?&lt;br /&gt;&lt;br /&gt;My point of all this, is that this is a fight, not some hoping things work out right.&lt;br /&gt;&lt;br /&gt;I am dedicating this blog to prove to the world that ColdFusion is a great solution for speedy, stable and profitable ecommerce sites.&lt;br /&gt;&lt;br /&gt;But that means, that we all, have to be coding at higher levels of quality.&lt;br /&gt;&lt;br /&gt;Commenting&lt;br /&gt;Documentation&lt;br /&gt;Project Management&lt;br /&gt;Correct SQL Coding Stability and Performance&lt;br /&gt;Bug Tracking&lt;br /&gt;Error Proofing&lt;br /&gt;&lt;br /&gt;Whatever it takes to prove that Coldfusion is not dead, nor dying.&lt;br /&gt;&lt;br /&gt;That's my humble freaking opinion.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7103391-108741966249230699?l=cfpurists.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.forta.com/blog/index.cfm?mode=e&amp;entry=1107' title='Coldfusion does not do Ecommerce Well???'/><link rel='replies' type='application/atom+xml' href='http://cfpurists.blogspot.com/feeds/108741966249230699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cfpurists.blogspot.com/2004/06/coldfusion-does-not-do-ecommerce-well.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108741966249230699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7103391/posts/default/108741966249230699'/><link rel='alternate' type='text/html' href='http://cfpurists.blogspot.com/2004/06/coldfusion-does-not-do-ecommerce-well.html' title='Coldfusion does not do Ecommerce Well???'/><author><name>Craig</name><uri>http://www.blogger.com/profile/09043662038744908409</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry></feed>
