<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Two Nine Media :: The Personal Studio of Joe Gautreau</title>
			<link>http://www.twoninemedia.com/blog/index.cfm</link>
			<description>The blog/website of Two Nine Media, the personal studio of Joe Gautreau.  Here you will find samples of my work, with scattered things about my family and life.  Enjoy!</description>
			<language>en-us</language>
			<pubDate>Sat, 19 May 2012 10:32:43 -0400</pubDate>
			<lastBuildDate>Wed, 06 May 2009 15:16:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>joe@twoninemedia.com</managingEditor>
			<webMaster>joe@twoninemedia.com</webMaster>
			
			
			
			
			
			<item>
				<title>ColdFusion is NOT dead, it&apos;s just NOT marketed well!</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2009/5/6/ColdFusion-is-NOT-dead-its-just-NOT-marketed-well</link>
				<description>
				
				&lt;p&gt;&quot;ColdFusion is pretty much a dying language,&quot; said the customer service rep for a very popular hosting company, which I will name later.
&lt;/p&gt;
&lt;p&gt;
Alright, enough of this!  I know this has been a touchy point for ColdFusion developers for years, from the days of Allaire, to the purchase by Macromedia in 2001 which everyone thought would be CF&apos;s demise, to the purchase by Adobe in 2005 which we hoped would push CF to new heights in the coding world, but hasn&apos;t really came to pass as of yet.
&lt;/p&gt;
&lt;p&gt;
In thinking this through, I have come up with a theory as to why CF after 10 plus years is still, a &quot;dying&quot; language...
&lt;/p&gt;
&lt;p&gt;
So how did this come to pass?
&lt;/p&gt;
&lt;p&gt;
A buddy of mine here at work recently called GoDaddy.com in regards to their hosting package, which currently offers CFMX7.  He asked the rep if they had any plans in the works to upgrade to CF8.  His response was &quot;hold on a minute, let me check on that for you...,&quot; a couple minutes later he comes back on the line... &quot;I just talked to our developers and they say that ColdFusion is &apos;pretty much a dying language&apos; and we have no plans to upgrade at this time.&quot;
&lt;/p&gt;
&lt;p&gt;
This coming from one of the biggest hosting providers in the world doesn&apos;t sit well with making me feel any better about the future of CF.
&lt;/p&gt;
&lt;p&gt;
So, here is my theory.  I think CF is awesome, I think it offers so much to the developer, it is easy to use and program in, it is very robust, BUT it&apos;s one drawback, the PRICE TAG!
&lt;/p&gt;
&lt;p&gt;
Listed at $7,499.00 by &lt;a href=&quot;http://www.adobe.com/products/coldfusion/buy/&quot; target=&quot;_blank&quot;&gt;Adobe&lt;/a&gt; for the Enterprise Edition of CF doesn&apos;t exactly make CF an attractive option for going the route of CF.  Why would ANY company want to pay $7,500.00 bucks just to set the stage for a developer to write and deploy code, when there are FREE alternatives, namely, PHP, JAVA, ASP, etc...
&lt;/p&gt;
&lt;p&gt;
This is our livelihood, CF is how we get paid, you would think that Adobe would make CF a more attractive alternative to it&apos;s competing languages.  If Adobe make purchasing CF something that was NOT a financial burden, then more companies would use it.  If more companies used CF, more CF jobs would be created.  When more CF jobs are created, our futures become more secure, pay goes up and Adobe shines.
&lt;/p&gt;
&lt;p&gt;
Maybe my perception is off, but this is just my perception of this whole situation.  What do you think?
&lt;/p&gt;
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 06 May 2009 15:16:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2009/5/6/ColdFusion-is-NOT-dead-its-just-NOT-marketed-well</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>SQL - Update Query Using Sub Queries Update Value</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2009/3/23/SQL--Update-Query-Using-Sub-Queries-Update-Value</link>
				<description>
				
				I like to post anything SQL that is &quot;new&quot; to me that perhaps I didn&apos;t know before or don&apos;t remember doing.  Today was one such occasion.

I was challenged with the task of updating a table full of reading data for for our district&apos;s 3rd-5th graders.  The data was comprised of a record per student per testing cycle, and was used for the purpose of tracking reading fluency.  I have a second table which holds a score matrix letting me know per grade, per testing cycle what the low and high grades should be to determine if a student is above average, below average or at average.

This was something that I had to do as a &quot;one time event&quot; to about 7000 plus records.  I decided that I could run a bunch of queries per reading cycle per grade to do this, but that seemed cheesy to me.  I wanted to do it all in one fell swoop.  Here is what worked for me.

&lt;code&gt;
UPDATE dataTable
SET dataTable.atAboveBelow =
CASE
WHEN dataTable.readingScore &lt; (SELECT belowAvg FROM scoreMatrix where gradeLevel = dataTable.gradeLevel AND testWindow = dataTable.testWindow) THEN -1
WHEN dataTable.readingScore &gt; (SELECT aboveAvg FROM scoreMatrix where gradeLevel = dataTable.gradeLevel AND testWindow = dataTable.testWindow) THEN 1
ELSE 0
END
&lt;/code&gt;
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>SQL</category>				
				
				<pubDate>Mon, 23 Mar 2009 16:00:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2009/3/23/SQL--Update-Query-Using-Sub-Queries-Update-Value</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Case Study: Healy Murphy Center Redesign</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2009/1/13/Case-Study-Healy-Murphy-Center-Redesign</link>
				<description>
				
				&lt;center&gt;&lt;img src=&quot;http://www.twoninemedia.com/blog/images/blogImages/hmBannerRedesign.jpg&quot; border=&quot;0&quot;&gt;&lt;/center&gt;
&lt;p&gt;
&lt;strong&gt;The Healy Murphy Center&lt;/strong&gt; provides compassionate service to youth-in-crisis by focusing on individualized education in a non-traditional setting, early childhood development and essential support services.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Two Nine Media&lt;/strong&gt; was called upon to redesign the existing design which had become a bit dated and obsolete, for an upcoming capital campaign and a fresh look.  You can check out the new look here - &lt;a href=&quot;http://www.healymurphy.org&quot; target=&quot;_blank&quot;&gt;http://www.healymurphy.org&lt;/a&gt;.&lt;/p&gt;

&lt;strong&gt;Services Provided:&lt;/strong&gt; Web Design &amp; Development, Hosting
				
				</description>
						
				
				<category>Portfolio</category>				
				
				<category>General</category>				
				
				<category>Clients</category>				
				
				<category>Design</category>				
				
				<pubDate>Tue, 13 Jan 2009 03:31:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2009/1/13/Case-Study-Healy-Murphy-Center-Redesign</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Comparing the Match Percentage of Two Strings</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/7/23/ColdFusion-Comparing-the-Match-Percentage-of-Two-Strings</link>
				<description>
				
				Today at work, my boss asked me to check into &quot;Fuzzy Match&quot; capabilities in ColdFusion for a project we&apos;re working on here at work.  Basically we want to compare two strings and find out what is the percentage of match between the two.  For example does string one match string two with 70% accuracy or better?

So after a couple Google searches I came upon a partial solution.  All signs pointed to the fact that I would have to use the Levenshtein distance formula which calculates the number of replacements, insertions or deletions necessary to match string one exactly up to string two.

I happened across a ColdFusion UDF written by Nicholas Zograpos which uses the Levenshtein formula to do this computation and passes back the number of characters needed to change string one into string two.  You can find the UDF &lt;a href=&quot;http://www.cflib.org/index.cfm?event=page.udfbyid&amp;udfid=1067&quot; target=_blank&quot;&gt;here&lt;/a&gt;.

I put this UDF at the top of my CFC.

&lt;code&gt;
&lt;cfscript&gt;
/**
* Computes the Levenshtein distance between two strings.
*
* @param s      First string. (Required)
* @param t      Second string. (Required)
* @return Returns a number.
* @author Nicholas Zographos (nicholas@nezen.net)
* @version 1, March 15, 2004
*/
function levDistance(s,t) {
    var d = ArrayNew(2);
    var i = 1;
    var j = 1;
    var s_i = &quot;A&quot;;
    var t_j = &quot;A&quot;;
    var cost = 0;
    
    var n = len(s)+1;
    var m = len(t)+1;
    
    d[n][m]=0;
    
    if (n is 1) {
        return m;
    }
    
    if (m is 1) {
        return n;
    }
    
     for (i = 1; i lte n; i=i+1) {
d[i][1] = i-1;
}

for (j = 1; j lte m; j=j+1) {
d[1][j] = j-1;
}
    
    for (i = 2; i lte n; i=i+1) {
s_i = Mid(s,i-1,1);

     for (j = 2; j lte m; j=j+1) {
    t_j = Mid(t,j-1,1);

        if (s_i is t_j) {
cost = 0;
}
else {
cost = 1;
}
        d[i][j] = min(d[i-1][j]+1, d[i][j-1]+1);
        d[i][j] = min(d[i][j], d[i-1][j-1] + cost);
}
}
    
return d[n][m];
}
&lt;/cfscript&gt;
&lt;/code&gt;

Next, I created a function of my own inside of my CFC which calls the levDistance function passing in two strings, it then divides the result by the length of the string we want to match against (stringTwo) and multiplies by 100 which gives the percentage of error between the two strings in numeric format.  Finally I compare the error percentage with my threshold or my max error percentage I am willing to allow, passing the user back a true/false based on the result.

You&apos;ll find my function below.

&lt;code&gt;
&lt;cffunction name=&quot;stringCompare&quot; access=&quot;public&quot; returnType=&quot;boolean&quot; output=&quot;false&quot;&gt;
    &lt;cfargument type=&quot;any&quot; name=&quot;stringOne&quot; default=&quot;&quot; required=&quot;yes&quot;&gt;
    &lt;cfargument type=&quot;any&quot; name=&quot;stringTwo&quot; default=&quot;&quot; required=&quot;yes&quot;&gt;

    &lt;cfset var result = true /&gt;
    &lt;cfset var threshold = 30 /&gt;&lt;!---This means that we are only allowing for a 30% error rate, 70% match in essence.---&gt;
    &lt;cfset var stringCompare = levDistance(trim(arguments.stringOne),trim(arguments.stringTwo))/len(trim(arguments.stringTwo))*100 /&gt;

    &lt;!---Comparing the result.---&gt;
    &lt;cfif stringCompare GT threshold&gt;
        &lt;cfset result = false /&gt;
    &lt;/cfif&gt;

    &lt;cfreturn result&gt;
&lt;/cffunction&gt;
&lt;/code&gt;

Finally, one last bit of code.  How to call the function from the view.

&lt;code&gt;
    &lt;cfset st1 = &quot;How are you doing?&quot; /&gt;
    &lt;cfset st2 = &quot;How are ya doing?&quot; /&gt;

    #myObj.stringCompare(stringOne=st1,stringTwo=st2)#
&lt;/code&gt;

You can play with the percentage numbers as needed to fit your situation.  This really helped me in a problem I faced, hopefully it will do the same for you!
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 23 Jul 2008 17:25:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/7/23/ColdFusion-Comparing-the-Match-Percentage-of-Two-Strings</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>SQL 101 - Counts By Location and Grade</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/7/9/SQL-101--Counts-By-Location-and-Grade</link>
				<description>
				
				&lt;div style=&quot;float: right; padding: 5px;&quot;&gt;&lt;img src=&quot;http://www.twoninemedia.com/gallery/sql/queryResult.jpg&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;strong&gt;&lt;center&gt;The Desired Result&lt;/center&gt;&lt;/strong&gt;&lt;/div&gt;

The other day at work there was a need for a report that our reporting system was having trouble putting out.  So the fix was to write it ourselves.  It&apos;s not too complex and for some it may be quite elementary, but here it is none-the-less.

Being that I work for a school district there was a need for a report by campus and grade level of the number of students that fell into a certain category.  So for the sake of this report we want a count of all active students based on their campus and their grade level.

Below is the stripped down version of how this was accomplished.

&lt;code&gt;
SELECT Campus, Grade, COUNT(studentID) AS StudentCount
FROM ourStudentTable
WHERE studentStatus = &apos;A&apos;
GROUP BY Campus, Grade
ORDER BY Campus
&lt;/code&gt;

Hopefully this helps!
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>SQL</category>				
				
				<pubDate>Wed, 09 Jul 2008 12:35:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/7/9/SQL-101--Counts-By-Location-and-Grade</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>SQL - Using Sub Queries As Joining Tables</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/7/1/SQL--Using-Sub-Queries-As-Joining-Tables</link>
				<description>
				
				Today at work I faced a dilemma.  I was tasked with developing a function in which a parent could be notified when their child has an absence or a tardy in one of their classes (I work for a school district).  It involved touching 3 different tables including one twice.  The three types of tables are as follows, an attendance details table which we&apos;ll call &lt;strong&gt;AttendanceDetail&lt;/strong&gt;, a parent/student table which ties parents with students which we&apos;ll call &lt;strong&gt;ParentStudent&lt;/strong&gt;, and finally a notify parent when an absence occurs table which we&apos;ll call &lt;strong&gt;AttendanceNotification&lt;/strong&gt;.

So here is the short of how the process works.  Daily a routine will run checking to see if a student whose parent requested a notification upon an attendance event had missed a class and/or was tardy to class.  Sounds simple enough huh?  Well it wasn&apos;t as easy as first thought.

My first query was as follows...

&lt;code&gt;
SELECT an.studentID, ps.studentFirstName, ps.studentLastName, ad.absence_date
FROM AttendanceNotification an
INNER JOIN ParentStudent ps ON ps.studentID = an.studentID
INNER JOIN AttendanceDetail ad ON ad.studentID = an.studentID
WHERE an.notify = 1 AND ps.status = &apos;A&apos;
&lt;/code&gt;

Basically this query grabs all prior absence events for a student where they are active and the parent needs to be notified of the last absence event.  So we have a bunch of unwanted events here, we just need the most recent event.

Simple enough we&apos;ll just add a couple things to our query and we&apos;ll be good to go right?  Not so fast.  So I added a MAX() function to the absence date which would give me the most recent absence and I grouped by the studentID which would only give me one record back per student and I ended up with the following.

&lt;code&gt;
SELECT an.studentID, ps.studentFirstName, ps.studentLastName, MAX(ad.absence_date) AS absenceDate
FROM AttendanceNotification an
INNER JOIN ParentStudent ps ON ps.studentID = an.studentID
INNER JOIN AttendanceDetail ad ON ad.studentID = an.studentID
WHERE an.notify = 1 AND ps.status = &apos;A&apos;
GROUP BY an.studentID, ps.studentFirstname, ps.studentLastname
&lt;/code&gt;

Well, the problems began to start, I needed to be able to show the parent what the absence event detail was.  Did their student have a tardy?  An unexcused absence?  A doctors appointment?  You get the point.  My first thought was to just add it into the SELECT statement for the above query, but then I had to include them in my GROUP BY clause which caused more than one record per student to be returned. I then thought about trying to wrap them in a MAX function, that didn&apos;t work, they needed an aggregate function to be included in my SELECT criteria and not in my GROUP BY, I was at a loss.

Then I got an idea, I wondered if I could JOIN on a sub query.  I had never tried it before, but it worked perfectly!  I thought I&apos;d share it with you just in case you ever ran across a similar problem.

The final query does an INNER JOIN from the &lt;strong&gt;AttemdanceDetail&lt;/strong&gt; table to the previous result set or sub query.  Now we&apos;re able to get detailed absence info yet only the most recent record.  Here is the final query.

&lt;code&gt;
SELECT
	a.studentID,
	a.studentFirstName,
	a.studentLastName,
	a.absenceDate,
	CASE WHEN ltrim(rtrim(adII.am_office_abs)) IS NULL THEN ltrim(rtrim(adII.am_teacher_abs)) ELSE ltrim(rtrim(adII.am_office_abs)) END AS am,
	CASE WHEN ltrim(rtrim(adII.pm_office_abs)) IS NULL THEN ltrim(rtrim(adII.pm_teacher_abs)) ELSE ltrim(rtrim(adII.pm_office_abs)) END AS pm
FROM AttendanceDetail adII
INNER JOIN
(SELECT an.studentID, ps.studentFirstName, ps.studentLastName, MAX(ad.absence_date) AS absenceDate
FROM AttendanceNotification an
INNER JOIN ParentStudent ps ON ps.studentID = an.studentID
INNER JOIN AttendanceDetail ad ON ad.studentID = an.studentID
WHERE an.notify = 1 AND ps.status = &apos;A&apos;
GROUP BY an.studentID, ps.studentFirstname, ps.studentLastname) a
ON a.studentID = adII.studentID AND a.absenceDate = adII.absence_date
&lt;/code&gt;

Perhaps there is a better way to do this, I just don&apos;t know how, but this worked so I ran with it.
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>SQL</category>				
				
				<pubDate>Tue, 01 Jul 2008 16:45:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/7/1/SQL--Using-Sub-Queries-As-Joining-Tables</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>CFUnited: My Recap</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/6/24/CFUnited-My-Recap</link>
				<description>
				
				CFUnited 2008 was a great experience for me personally, I presented as a speaker for the first time which was a great experience and challenge, as well as learned a great deal of things that I would like to put into practice in my own development environment.

I wanted to put a quick post out there to go over some of the highlights that I was able to take away learning wise for others to see as well as a constant reminder to myself.  So, what did I personally learn?

&lt;ul&gt;
	&lt;li&gt;In his own words, Ray Camden will be using tables for layout until someone stops him...  Should&apos;ve come to my session Ray!&lt;/li&gt;
	&lt;li&gt;I want to start using CFToolTip more for my end-users benefit.&lt;/li&gt;
	&lt;li&gt;There is a cool Event Validator at RiaForge that Mark Drew referenced, I would like to check into that when I get the time.&lt;/li&gt;
	&lt;li&gt;From Hal Helms session, leave functions open for extention, closed for changes.  Keeping things simple&lt;/li&gt;
	&lt;li&gt;Just because MVC is used, doesn&apos;t mean I&apos;m doing OO.  I can still be doing procedural code in an MVC format.&lt;/li&gt;
	&lt;li&gt;Get  book called Design Patterns by Gang of Four&lt;/li&gt;
	&lt;li&gt;Find the things that are constantly changing in my applications and encapsulate them.&lt;/li&gt;
	&lt;li&gt;Good OO is all about abstraction.&lt;/li&gt;
	&lt;li&gt;Pass objects to be persisted.&lt;/li&gt;
	&lt;li&gt;From Chris Scott&apos;s session, keep ColdSpring simple - getBeans/setBeans&lt;/li&gt;
	&lt;li&gt;Increase the JVM default on the CF Server.&lt;/li&gt;
	&lt;li&gt;Increase the minimum memory on the CF Server.&lt;/li&gt;
	&lt;li&gt;Turn on trusted cache in production.&lt;/li&gt;
	&lt;li&gt;Cache queries used often in applications.&lt;/li&gt;
	&lt;li&gt;Read the CF8 performance brief.&lt;/li&gt;
	&lt;li&gt;Use SQL Server performance monitoring tools to profile, trace, look at execution plans and their costs, run database reports to see which queries are putting loads on the server.&lt;/li&gt;
	&lt;li&gt;If session is not available, reject the form submission, because it means they didn&apos;t come from your form.&lt;/li&gt;
	&lt;li&gt;From Joe&apos;s advanced Model-Glue session... you can use the include tags to include entire applications into your Model-Glue app.&lt;/li&gt;
	&lt;li&gt;Prefix event handlers.&lt;/li&gt;
	&lt;li&gt;Controllers should be as thin as possible.&lt;/li&gt;
	&lt;li&gt;Use views for common joins, filtering, etc... when dealing with larger queries.&lt;/li&gt;
	&lt;li&gt;Index all fields searched on in my SQL tables for fast searching and less load on the database.  A good example of this is looking for pizza in the phone book, but searching every page of the book from A-Z.  With indexing you don&apos;t need to search from A-Z simply jump to &apos;Pizza&apos;.&lt;/li&gt;
	&lt;li&gt;SQL views can be about 75% faster than CF for complex queries.&lt;/li&gt;
	&lt;li&gt;Stored procedures can be about 90% faster than CF.&lt;/li&gt;
	&lt;li&gt;Use cfQueryParams for security as well as not making the SQL Server re-write execution plans everytime a query is run.&lt;/li&gt;
	&lt;li&gt;Be careful about how you index your tables, you could do more damage than good if it&apos;s not done right.&lt;/li&gt;
&lt;/ul&gt;

That was my quick recap of what I learned.  Overall the venue was great, I loved the fact that the conference was in downtown DC instead of Bethesda, the hotel was awesome and close to the conference.  Another great job by the CFUnited team.  I hope to return in 2009.
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<category>CFUnited 2008</category>				
				
				<category>SQL</category>				
				
				<pubDate>Tue, 24 Jun 2008 11:35:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/6/24/CFUnited-My-Recap</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>CFUnited: The Power Of CSS</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/6/23/CFUnited-The-Power-Of-CSS</link>
				<description>
				
				&lt;a name=&quot;0&quot;&gt;&lt;/a&gt;
&lt;p&gt;
	I told those in my sessions that I would be posting my presentation from &lt;a href=&quot;http://www.cfunited.com&quot; target=&quot;_blank&quot;&gt;CFUnited 2008&lt;/a&gt; so here is the online version as well as a zip file for download.  By the way... this has turned out to be my longest blog post ever!
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://twoninemedia.com/gallery/powerofcss/ThePowerOfCSS.zip&quot;&gt;Click here to download the zip file of the presentation with the Harvard example included.&lt;/a&gt;  So, let&apos;s get started!
&lt;/p&gt;
&lt;p&gt;
	Many developers don&apos;t know it, but table-based website layouts can slow down load times by over &lt;strong style=&quot;color: red;&quot;&gt;30%&lt;/strong&gt;!  Why?  Because they are burdened down with tables which isn&apos;t as efficient as CSS-based layouts.
&lt;/p&gt;
&lt;h3&gt;Quick Disclaimer&lt;/h3&gt;
&lt;p&gt;
	Tables are &lt;strong style=&quot;color: red;&quot;&gt;&lt;u&gt;not bad&lt;/u&gt;&lt;/strong&gt;!  Actually tables are very useful and beneficial, when used in their proper place.  In fact, they can look good too, when styled with CSS.
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;What is their proper place?&lt;/strong&gt;  Tabular data display.
&lt;/p&gt;
	As a matter of fact... &lt;a href=&quot;http://www.w3.org&quot; target=&quot;_blank&quot;&gt;www.w3.org&lt;/a&gt; recommends the following.  &lt;strong&gt;Tables should not be used purely as a means to layout document content&lt;/strong&gt; as this may present problems when rendering to non-visual media. Additionally, when used with graphics, these tables may force users to scroll horizontally to view a table designed on a system with a larger display.  &lt;strong&gt;To minimize these problems, authors should use style sheets to control layout&lt;/strong&gt; rather than tables.
&lt;/p&gt;
&lt;h3&gt;Let&apos;s Take A Look At The Benefits&lt;/h3&gt;
&lt;p&gt;
	&lt;ol&gt;
    	&lt;li&gt;&lt;a href=&quot;#1&quot;&gt;Beauty - It&apos;s more than just skin deep.&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#2&quot;&gt;Accessibility&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#3&quot;&gt;Search Engine Optimization&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#4&quot;&gt;Size - Put HTML on a diet.&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#5&quot;&gt;Speed&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#6&quot;&gt;Flexibility - My personal favorite.&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#7&quot;&gt;Proof of Concept - The Harvard University Example&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;1&quot;&gt;Benefit 1: Beauty&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	My personal motto is this... &quot;&lt;strong&gt;If the solution is not beautiful, then it&apos;s wrong!&lt;/strong&gt;&quot;  CSS is the right solution.  Beauty isn&apos;t always on the surface.  With CSS the beauty is not only without but within.  Knowing that you didn&apos;t take the cheesy, easy way out is beauty in itself.  Someone may never know but you get the satisfaction within knowing you did it right!
&lt;/p&gt;
&lt;p&gt;
	&quot;&lt;strong&gt;A lazy developer, is a bad developer.&lt;/strong&gt;&quot;  If you don&apos;t want to take the time to properly learn CSS it amounts to nothing more than laziness.  Sure, table-based layouts are easy, but they are not right.  Integrity is what you do when no one is watching.  Do the right thing, not the easy thing!
&lt;/p&gt;
&lt;p&gt;
	CSS also has many outwardly beautiful characteristics.  Such as building roll-over menus, and fly-out menus, without using bulky pieces of JavaScript and numerous images.
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;#0&quot;&gt;Back to Top&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;2&quot;&gt;Benefit 2: Accessibility&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	CSS separates document structure from presentation.  Sort of MVC in a design kind of way.
&lt;/p&gt;
&lt;p&gt;
	People with disabilities use alternative browsers such as screen readers, mobile phones, speech output browsers, braille browsers and text browsers.  &lt;strong&gt;Using alternate browsing methods on table-based web sites can prove to be a painful experience.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
	Table-based layouts often are &quot;broken&quot; in some browsers.
&lt;/p&gt;
&lt;p&gt;
	CSS-based layouts allow the display of main content first while the graphics load afterwards.
&lt;/p&gt;
&lt;p&gt;
	Graphic intense sites or those that employ elements that prove inaccessible to disabled users can put CSS to good work by placing all these elements at the bottom of the source code. This way, normal browsers will render the layout properly for normal users, letting them enjoy the visuals while alternate browsers will easily render the simplified, informational content to disabled users.
&lt;/p&gt;
&lt;p&gt;
	CSS can be used to load different styles based on the screen type, when using tables this is nearly impossible to do cleanly.
&lt;/p&gt;
&lt;p&gt;
	There is a more consistent cross-browser experience when using CSS.
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;#0&quot;&gt;Back to Top&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;3&quot;&gt;Benefit 3: Search Engine Optimization&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	Search engines spiders are lethargic, they don&apos;t parse through tons of HTML code to get the indexed code, in doing so this reduces the spiders results.
&lt;/p&gt;
&lt;p&gt;
	Cleaner, more light-weight code produces better SEO rankings.
&lt;/p&gt;
&lt;p&gt;
	Search engines such as Google, Yahoo and MSN love light-weighted web pages where content is more visible than code.
&lt;/p&gt;
&lt;p&gt;
	The better text to code ratio on your web pages, the better your SEO chances are.  More content less HTML.  With tables extra, bulky HTML is created that decreases SEO chances.
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;#0&quot;&gt;Back to Top&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;4&quot;&gt;Benefit 4: Size - Less Is More&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	Put HTML on a diet.  CSS-based layouts are generally smaller than their table-based counterparts.  The bulky HTML code filled with markup is not necessary when using CSS.
&lt;/p&gt;
&lt;p&gt;
	When CSS is used properly, websites can often use fewer images and little if any JavaScript.
&lt;/p&gt;
&lt;p&gt;
	CSS-based layouts can decrease HTML file size by over &lt;strong style=&quot;color: red;&quot;&gt;40%&lt;/strong&gt; in comparison to table-based layouts.
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;#0&quot;&gt;Back to Top&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;5&quot;&gt;Benefit 5: Speed&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	CSS-based layouts download faster than table-based layouts.  Browsers read through tables &lt;strong style=&quot;color: red;&quot;&gt;TWICE&lt;/strong&gt; before dumping it&apos;s contents.  The first iteration is to read the table structure, the second to read the content.
&lt;/p&gt;
&lt;p&gt;
	When using CSS the browser stores a copy of the CSS file upon it&apos;s first load, tables must be parsed and loaded with each page load.
&lt;/p&gt;
&lt;p&gt;
	CSS-based layouts have an average of &lt;strong style=&quot;color: red;&quot;&gt;50%&lt;/strong&gt; faster load times than that of table-based layouts.
&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;#0&quot;&gt;Back to Top&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;6&quot;&gt;Benefit 6: Flexibility&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	The ability to use one HTML document, and generate an unlimited amount of different layouts.  A good demonstration of how this is done can be found at &lt;a href=&quot;http://www.cssZenGarden.com&quot; target=&quot;_blank&quot;&gt;www.cssZenGarden.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
	Create JavaScript like navigations with pure CSS.
&lt;/p&gt;
&lt;p&gt;
	Redesigns become much easier saving time and labor.  All changes can be done in one file, instead of going to multiple files to make repetitive changes.
&lt;/p&gt;
&lt;p&gt;
	With a table-based layout you are locked into a layout, whereas with CSS you are not!
&lt;/p&gt;
&lt;p&gt;
	The ability to manage the order in which items are downloaded (ie: content prior to images).
&lt;/p&gt;
&lt;center&gt;&lt;img src=&quot;http://twoninemedia.com/gallery/powerofcss/flexibility.jpg&quot; width=&quot;575&quot; height=&quot;370&quot;&gt;&lt;br&gt;&lt;strong&gt;A Quick Example...  One codebase, multiple look-n-feel&apos;s.&lt;/strong&gt;&lt;/center&gt;
&lt;p&gt;
	&lt;a href=&quot;#0&quot;&gt;Back to Top&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;7&quot;&gt;Proof of Concept - The Harvard University Example&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;
	So what better way is there to show this concept of using CSS rather than tables to layout your website than by using a real-life example.  Que the music... Enter Harvard University (Circa Mar. 2008).  The have a nice looking website as you can see below, but scroll down and we&apos;ll see if we can&apos;t make website run a bit better.
&lt;/p&gt;
&lt;center&gt;&lt;img src=&quot;http://twoninemedia.com/gallery/powerofcss/harvardSite.jpg&quot; width=&quot;575&quot; height=&quot;687&quot;&gt;&lt;/center&gt;
&lt;p&gt;
	So, what we are going to do, is take this website, and take it through the &quot;CSS Machine&quot; and see how it improves.
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Step 1:&lt;/strong&gt; Create a local working copy of the Harvard University website from &lt;a href=&quot;http://www.harvard.edu&quot; target=&quot;_blank&quot;&gt;www.harvard.edu&lt;/a&gt;, by saving the HTML, cleaning it up and removing contents, manually downloading a local copy of all images used on the site, change all links to reference pound signs, and voila, we have a local running copy of Harvard University&apos;s website tables and all.  &lt;a href=&quot;http://twoninemedia.com/gallery/powerofcss/harvardTables/index.html&quot; target=&quot;_blank&quot;&gt;Click here to view the original Harvard University website with tables.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Step 2:&lt;/strong&gt; Get the specs on the original website.
    &lt;ul&gt;
    	&lt;li&gt;15 Tables&lt;/li&gt;
        &lt;li&gt;25KB Page Size (Not large, but we can condense it even more)&lt;/li&gt;
        &lt;li&gt;372 Lines of Code&lt;/li&gt;
        &lt;li&gt;73 Objects/Files&lt;/li&gt;
        &lt;li&gt;Javascript Rollovers&lt;/li&gt;
        &lt;li&gt;Images used as links (Bad for SEO)
    &lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Step 3:&lt;/strong&gt; Develop a CSS template that fits the Harvard University look-n-feel.
&lt;p&gt;
	&lt;strong&gt;Step 4:&lt;/strong&gt; Section by section begin to plug in content, redo the navigation with pure CSS (no Javascript), etc...  All the while validating the CSS and XHTML every step of the way.
&lt;/p&gt;
&lt;p&gt;
	We now have a complete redesign of the Harvard University website.  The look-n-feel didn&apos;t change, but what we did change was the nuts-n-bolts of the website.  We modified how it was built, and presented from within.  &lt;a href=&quot;http://twoninemedia.com/gallery/powerofcss/harvardCSS/index.html&quot; target=&quot;_blank&quot;&gt;Click here to view the all new table-LESS Harvard University website built using pure CSS for layout.&lt;/a&gt;
&lt;/p&gt;
&lt;h4&gt;Side-By-Side Comparision&lt;/h4&gt;
&lt;p&gt;
	So now let us put the two layouts side-by-side to see if this &quot;theory&quot; of doing away with tables for layout can be substantiated.
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Speed Differences:&lt;/strong&gt;
    &lt;br&gt;
    &lt;img src=&quot;http://twoninemedia.com/gallery/powerofcss/speedTests.jpg&quot; width=&quot;575&quot; height=&quot;194&quot; style=&quot;padding: 5px 0px;&quot;&gt;
    &lt;br&gt;
    All speed tests were run 5 times for each version of the website and the average was taken.  The tests from &lt;a href=&quot;http://www.WebSiteOptimization.com&quot; target=&quot;_blank&quot;&gt;WebSiteOptimization.com&lt;/a&gt; were not used in the overall average calculations due to the fact that their calculations were based off of a size-based formula, not an actual test.
&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Final Comparison:&lt;/strong&gt;
    &lt;br&gt;
    &lt;img src=&quot;http://twoninemedia.com/gallery/powerofcss/finalComparison.jpg&quot; width=&quot;575&quot; height=&quot;211&quot; style=&quot;padding: 5px 0px;&quot;&gt;
&lt;/p&gt;
&lt;h4&gt;So, What Did We Accomplish?&lt;/h4&gt;
&lt;p&gt;
	&lt;ul&gt;
    	&lt;li&gt;We trimmed some fat to the tune of 48%&lt;/li&gt;
        &lt;li&gt;We increased our load times by over 50%&lt;/li&gt;
        &lt;li&gt;We made it prettier on inside&lt;/li&gt;
        &lt;li&gt;We made it much more flexible for future alterations&lt;/li&gt;
        &lt;li&gt;We made it more accessible&lt;/li&gt;
        &lt;li&gt;We made it more SEO friendly&lt;/li&gt;
    &lt;/ul&gt;
&lt;/p&gt;
&lt;h3&gt;Wrap&lt;/h3&gt;
&lt;p&gt;
	I really hope you enjoyed this blog post.  I have become a very strong proponent of using CSS when developing websites because of the many benefits above.  I was asked by a couple of folks if I had taken these findings to &lt;strong&gt;Harvard University&lt;/strong&gt; to see if perhaps they may be interested in change.  The answer is no!  Maybe they&apos;ll come across this blog post and make the change for themselves.  Thanks for reading!
&lt;/p&gt;
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>CSS</category>				
				
				<category>General</category>				
				
				<category>CFUnited 2008</category>				
				
				<pubDate>Mon, 23 Jun 2008 17:40:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/6/23/CFUnited-The-Power-Of-CSS</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>CFUnited: Off To Washington D.C.</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/6/16/CFUnited-Off-To-Washington-DC</link>
				<description>
				
				Well, tomorrow morning bright an early I leave for Washington D.C. for a ColdFusion conference at which I&apos;ll be speaking on &quot;The Power of CSS&quot;.  I am excited and nervous all at the same time.  Wondering if my presentation will be valuable, sufficient and timely, but excited about things I may learn and all that goes with experience of taking a trip.

I&apos;ll be blogging daily about the conference and the trip, posting pictures and musings about the things I experience on a daily basis while I am there.

Today, my wife LeeAnn has been running about trying to get some last minute things together before I leave.  I&apos;m going to miss LeeAnn and the kids while I&apos;m gone, but it will work out for good.  The kids have already been asking if I was going to bring them back t-shirts like I did last time.

I picked up a new lens for my camera while I am there, which I will blog about shortly, it&apos;s an Nikon 18-200mm VR Nikkor lens which gives me great range when I am out exploring D.C. so I am looking forward to getting some great shots with it.

Well, here goes nothin&apos;.  Stay tuned for more...
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>CSS</category>				
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<category>Photography</category>				
				
				<category>CFUnited 2008</category>				
				
				<pubDate>Mon, 16 Jun 2008 16:59:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/6/16/CFUnited-Off-To-Washington-DC</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Case Study: Just The Facks</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/5/31/Case-Study-Just-The-Facks</link>
				<description>
				
				&lt;center&gt;&lt;img src=&quot;http://www.twoninemedia.com/blog/images/blogImages/jtfBanner.jpg&quot; border=&quot;0&quot;&gt;&lt;/center&gt;
&lt;p&gt;
Based in Albany, New York, &lt;strong&gt;Just The Facks&lt;/strong&gt; is an &quot;EASY&quot; To Use Internet Home Inspection Reporting System, for home inspectors as well as home owners.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Two Nine Media&lt;/strong&gt; came in to develop a web presence for this agency enabling them to spread their message of peace of mind, residual income, ease of use and more, to the home inspection industry.
&lt;/p&gt;
&lt;strong&gt;Services Provided:&lt;/strong&gt; Web Design &amp; Development
				
				</description>
						
				
				<category>Portfolio</category>				
				
				<category>Clients</category>				
				
				<pubDate>Sat, 31 May 2008 05:46:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/5/31/Case-Study-Just-The-Facks</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>SQL Dynamic Date Range</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/2/1/SQL-Dynamic-Date-Range</link>
				<description>
				
				I work for a school district here in Texas and today an issue arose.  We needed to run a nightly SQL job which pulls students from our Student Information System and dumps them into some tables we use for a local application.  Problem is while we have about 22,000 active students our total student table has over 55,000 records in it, some from prior years.

The initial reaction was to hard-code the school year start and end dates into the system, but then if our DBA leaves, or we forget what kind of lame hack we put in place we have problems next school year.

I had done this previously in ColdFusion, but today I decided to do a SQL version of it.  It will take the current day and decides what the current school year start and end dates are based on the current day, so we&apos;re always pulling current data only no matter what year it may be.

&lt;code&gt;
DECLARE @startDate datetime
DECLARE @endDate datetime

SET @startDate = cast(&apos;7/1/&apos; + cast(datePart(&quot;yyyy&quot;,getDate()) AS varchar) AS datetime)
SET @endDate = cast(&apos;6/30/&apos; + cast(datePart(&quot;yyyy&quot;,getDate()) AS varchar) AS datetime)

SET @startDate = CASE WHEN cast(@startDate AS datetime) &gt; getDate() THEN cast(dateAdd(&quot;yyyy&quot;,-1,@startDate) AS datetime) ELSE cast(@startDate AS datetime) END
SET @endDate = CASE WHEN cast(@endDate AS datetime) &lt; getDate() THEN cast(dateAdd(&quot;yyyy&quot;,1,@endDate) AS datetime) ELSE cast(@endDate AS datetime) END

SELECT @startDate AS startDate, @endDate AS endDate
&lt;/code&gt;

The end result is 7/1/2007 as the startDate and 6/30/2008 for the endDate.  It works perfect for us, and I hope it works for you.
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<category>SQL</category>				
				
				<pubDate>Fri, 01 Feb 2008 18:31:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/2/1/SQL-Dynamic-Date-Range</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Patterns From Around The House</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2008/1/11/Patterns-From-Around-The-House</link>
				<description>
				
				So earlier tonight I was messing around with my &lt;a href=&quot;http://www.twoninemedia.com/blog/index.cfm/2006/12/27/nikonD50&quot;&gt;camera&lt;/a&gt; and decided to try to take pictures of different patterns that I could find in my room.  I found a couple things that turned out half way interesting.  A box of crayons, the ironing board cover and LeeAnn&apos;s bible cover.

Have a look...

&lt;center&gt;
&lt;img src=&quot;http://www.twoninemedia.com/gallery/patterns/patterns1.jpg&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;strong&gt;Box of Crayons&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;img src=&quot;http://www.twoninemedia.com/gallery/patterns/patterns2.jpg&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;strong&gt;Ironing Board Cover&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;img src=&quot;http://www.twoninemedia.com/gallery/patterns/patterns3.jpg&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;strong&gt;LeeAnn&apos;s Bible Cover&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;/center&gt;
				
				</description>
						
				
				<category>General</category>				
				
				<category>Photography</category>				
				
				<pubDate>Fri, 11 Jan 2008 04:38:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2008/1/11/Patterns-From-Around-The-House</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>I&apos;m Speechless!</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2007/11/30/Im-Speechless</link>
				<description>
				
				&lt;p&gt;
The title says it all, so I&apos;ll write about it instead.  I found out yesterday from Liz at &lt;a href=&quot;http://www.teratech.com/&quot; target=&quot;_blank&quot;&gt;Teratech&lt;/a&gt; that I was picked by the &lt;a href=&quot;http://www.teratech.com/&quot; target=&quot;_blank&quot;&gt;Teratech&lt;/a&gt; team to be one of the speakers at &lt;a href=&quot;http://cfunited.com/&quot; target=&quot;_blank&quot;&gt;CFUnited 2008&lt;/a&gt; in Washington D.C.
&lt;/p&gt;
&lt;p&gt;
I am honored, nervous, and humbled to be chosen to speak at this awesome event.  I feel that there are many people out there who are far better than me, but I look forward with a nervous excitement to this opportunity!
&lt;/p&gt;
&lt;p&gt;
I will be speaking on &lt;a href=&quot;http://cfunited.com/go/topics/2008#topic-1491&quot; target=&quot;_blank&quot;&gt;The Power of CSS&lt;/a&gt;, including tabled layouts vs. css layouts and why CSS is a far better solution for web development.  I have blogged in the past about the speed differences of the two which you can see &lt;a href=&quot;http://www.twoninemedia.com/blog/index.cfm/2007/4/19/TabledLayoutsvsCSSLayouts&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.  If you are going to &lt;a href=&quot;http://cfunited.com/&quot; target=&quot;_blank&quot;&gt;CFUnited&lt;/a&gt;, I look forward to seeing you there!  If not, you can register &lt;a href=&quot;https://secure.teratech.com/cfunited08/register.cfm&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;, don&apos;t forget today is the last day for the special early bird rate!
&lt;/p&gt;
&lt;p&gt;
See you in D.C. :)
&lt;/p&gt;
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>CSS</category>				
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<category>CFUnited 2008</category>				
				
				<pubDate>Fri, 30 Nov 2007 03:09:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2007/11/30/Im-Speechless</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Web Project Idea - What do you think?</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2007/11/17/Web-Project-Idea--What-do-you-think</link>
				<description>
				
				The other day I came up with an idea for a new web application.  It would be a FREE service to users for keeping track of their personal inventory, via notes, costs, dates, pictures and video of things in their home or possession.

This idea was sprung because recently my sister had her home catch on fire and everything in her house was damaged by the fire, she didn&apos;t have her personal possessions written down ahead of time, but if she would have she wouldn&apos;t have had to spend days digging through fire damaged items to report her assets to the insurance company.  Furthermore if you write down your belongings on a piece of paper in your home, or even store them on your personal home computer that has a chance of burning as well, thus the idea of creating a web-based solution to the problem.  You can access it from anywhere, with different file download options, even use this app for other personal inventory items, such as a vehicle, business, etc...

Once all of your household items are in the system, it&apos;s easy to add a new asset to your collection as you purchase them.  You&apos;ll be able to enter the place you purchased it, notes, the cost the date purchased, which is all important information for the insurance company when determining your check for losses.

What do you think?

I have recently posted this idea to &lt;a href=&quot;http://www.ideablob.com/u/jgautreau/754-Develop-A-Personal-Inventory-&quot; target=&quot;_blank&quot;&gt;IdeaBlob.com&lt;/a&gt; which you can vote for by clicking on this link - &lt;a href=&quot;http://www.ideablob.com/u/jgautreau/754-Develop-A-Personal-Inventory-&quot; target=&quot;_blank&quot;&gt;http://www.ideablob.com/u/jgautreau/754-Develop-A-Personal-Inventory-&lt;/a&gt;, by voting on my idea you give me a chance to win $10,000 so I can begin the development of it.
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<pubDate>Sat, 17 Nov 2007 15:52:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2007/11/17/Web-Project-Idea--What-do-you-think</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Web Development - How do you approach it?</title>
				<link>http://www.twoninemedia.com/blog/index.cfm/2007/11/15/Web-Development-How-do-you-approach-it</link>
				<description>
				
				&lt;p&gt;
I work for a school district, and I am the first developer they have every had.  So I&apos;ve been developing web apps for them for about six months now using &lt;strong&gt;ColdFusion&lt;/strong&gt; with &lt;strong&gt;Model-Glue&lt;/strong&gt; and &lt;strong&gt;SQL&lt;/strong&gt;, all authentication is done through Active Directory.
&lt;/p&gt;
&lt;p&gt;
Lately I started thinking about the future and how to best do development.  When I was hired they had a list of projects they needed done, and they needed to be done yesterday.  So I began coding, coding, coding.  No design docs, not project scope docs, no database diagrams, nothing of the sort.
&lt;/p&gt;
&lt;p&gt;
My first thought was to slow down and start a process for each project thrown my way.  It may be more tedious, time-consuming and boring, but I really think long-term, a well laid out play with an approval process up front lends itself to successful projects.
&lt;/p&gt;
&lt;p&gt;
I am a big fan of the Interface-Driven approach to web development, but I wanted to get some feedback from the community...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What methods/steps do you employ when taking on a project?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Do you build out pieces and release them or wait till the project is complete?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;What type of documentation is used and why?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;What have you found most beneficial to you in your experience with this?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Thanks in advance for your input!
&lt;/p&gt;
				
				</description>
						
				
				<category>Goog Feed</category>				
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<category>SQL</category>				
				
				<pubDate>Thu, 15 Nov 2007 17:49:00 -0400</pubDate>
				<guid>http://www.twoninemedia.com/blog/index.cfm/2007/11/15/Web-Development-How-do-you-approach-it</guid>
				
			</item>
			
		 	
			</channel></rss>
