<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Jason Leveille's Blog</title>
	<atom:link href="http://jasonleveille.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jasonleveille.com</link>
	<description>Beauty's where you find it</description>
	<pubDate>Thu, 17 Jul 2008 02:04:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Importance of Managing Complexity</title>
		<link>http://jasonleveille.com/2008/07/importance-of-managing-complexity/</link>
		<comments>http://jasonleveille.com/2008/07/importance-of-managing-complexity/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 02:04:23 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[Quotes]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=56</guid>
		<description><![CDATA[Another great quote from Code Complete:
Managing complexity is the most important technical topic in software development.  In my view, it&#8217;s so important that Software&#8217;s Primary Technical Imperative has to be managing complexity &#8230; Once you understand that all other technical goals in software are secondary to managing complexity, many design considerations become straightforward.Code Complete Second [...]]]></description>
			<content:encoded><![CDATA[<p>Another great quote from Code Complete:</p>
<blockquote><p>Managing complexity is the most important technical topic in software development.  In my view, it&#8217;s so important that Software&#8217;s Primary Technical Imperative has to be <em>managing complexity</em> &#8230; Once you understand that all other technical goals in software are secondary to managing complexity, many design considerations become straightforward.<br />Code Complete Second Edition - Steve McConnell (Chapter 5.2 Key Design Concepts)</p></blockquote>
<p>It all comes back to maintainability of your codebase.  This is something that I am constantly trying to get better at.  Typically the majority of time spent in a web application is post initial production deployment.  I would advocate that extra time up front to make those smart decisions will only mean quicker response times when bug fix and feature requests are coming in.  The quicker response times are a direct result of managing complexity up front.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/importance-of-managing-complexity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adoption of Coding Standards</title>
		<link>http://jasonleveille.com/2008/07/adoption-of-coding-standards/</link>
		<comments>http://jasonleveille.com/2008/07/adoption-of-coding-standards/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 13:54:52 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=54</guid>
		<description><![CDATA[I completely embrace the idea of coding standards, and for a long time I&#8217;ve used my own.  This morning I have decided that from now on I will be following the coding standards set fourth by the Zend Framework.
http://framework.zend.com/manual/en/coding-standard.html
This is a decision I don&#8217;t make lightly, and one that I have been toying with [...]]]></description>
			<content:encoded><![CDATA[<p>I completely embrace the idea of coding standards, and for a long time I&#8217;ve used my own.  This morning I have decided that from now on I will be following the coding standards set fourth by the Zend Framework.</p>
<p><a href="http://framework.zend.com/manual/en/coding-standard.html">http://framework.zend.com/manual/en/coding-standard.html</a></p>
<p>This is a decision I don&#8217;t make lightly, and one that I have been toying with for a long time.  Do you have a particular set of standards you follow?</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/adoption-of-coding-standards/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Design Is a Wicked Problem</title>
		<link>http://jasonleveille.com/2008/07/design-is-a-wicked-problem/</link>
		<comments>http://jasonleveille.com/2008/07/design-is-a-wicked-problem/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 19:29:14 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[Quotes]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=53</guid>
		<description><![CDATA[Horst Rittel and Melvin Webber defined a &#8220;wicked&#8221; problem as one that could be clearly defined only by solving it, or by solving part of it (1973).  The paradox implies, essentially, that you have to &#8220;solve&#8221; the problem once in order to clearly define it and then solve it again to create a solution that [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Horst Rittel and Melvin Webber defined a &#8220;wicked&#8221; problem as one that could be clearly defined only by solving it, or by solving part of it (1973).  The paradox implies, essentially, that you have to &#8220;solve&#8221; the problem once in order to clearly define it and then solve it again to create a solution that works.  This process has been motherhood and apple pie in software development for decades (Peters and Tripp 1976) &#8230; a dramatic example of such a wicked problem was the design of the original Tacoma Narrows bridge &#8230; This is a good example of a wicked problem because, until the bridge collapsed, its engineers didn&#8217;t know that aerodynamics needed to be considered to such an extent.  Only by building the bridge (solving the problem) could they learn about the additional consideration in the problem that allowed them to build another bridge that still stands.<br />
<strong>Code Complete Second Edition</strong> - Steve McConnell (Chapter 5.1 Design Challenges)</p></blockquote>
<p>Perhaps because I am a Mainer I keyed in on this content.  It&#8217;s wicked good!  At any rate, I like the example that McConnell uses to illustrate a wicked problem.  Imagine though that the bridge had not collapsed, and instead only violently swayed in the wind.  Would the engineers have taken down the bridge and started over, or would they have <del>monkey patched</del> <ins>tried to extend</ins> a flawed design?  Would the bridge have been easy to &#8220;fix&#8221;, or would the fixes only have introduced more potential for disaster.  It&#8217;s interesting to think of software in this regard.  It&#8217;s impossible to design software today that addresses every issue of tomorrow.  If the software is written in a cohesive, organized, thoughtful way though, it should be easier to <del>monkey patch</del> <ins>extend</ins>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/design-is-a-wicked-problem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When do you program?</title>
		<link>http://jasonleveille.com/2008/07/when-do-you-program/</link>
		<comments>http://jasonleveille.com/2008/07/when-do-you-program/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 19:19:42 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=52</guid>
		<description><![CDATA[More and more as of late I have been finding that I do most of my programming at work (as I should), and most of my reading at home.  At any given time I am reading 3 or 4 books, and trying to keep up with numerous blogs.  I have such a backlog of things [...]]]></description>
			<content:encoded><![CDATA[<p>More and more as of late I have been finding that I do most of my programming at work (as I should), and most of my reading at home.  At any given time I am reading 3 or 4 books, and trying to keep up with numerous blogs.  I have such a backlog of things I want to read that programming at home is often not an option.  Not to mention the fact that my family is growing (a 2 yr. old and another on the way).  So, I don&#8217;t hunch over at my keyboard into the wee hours of the morning like I used to.  So, when do you program?</p>
<h3>Currently Reading</h3>
<p>Just in case you are curious, I am currently reading:</p>
<ul>
<li><a href="http://www.cc2e.com/">Code Complete 2nd Edition</a> (Loving every minute of it)</li>
<li><a href="http://jspro.org/">Pro JavaScript Techniques</a> (Great book)</li>
<li>Stephen King - Firestarter (Just finished Bag of Bones 2 nights ago)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/when-do-you-program/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL Replace Rocks</title>
		<link>http://jasonleveille.com/2008/07/mysql-replace-rocks/</link>
		<comments>http://jasonleveille.com/2008/07/mysql-replace-rocks/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 20:12:49 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=51</guid>
		<description><![CDATA[We have a client who is having issues with character encoding.  They recently had a massive content migration and along with the migration came numerous character issues.  They moved from a character set of iso-8859-1 to UTF-8, and with multiple content editors copying/pasting from many different resources (pdf&#8217;s, Word, Web Pages, etc) they now have [...]]]></description>
			<content:encoded><![CDATA[<p>We have a client who is having issues with <a href="http://en.wikipedia.org/wiki/Character_encoding">character encoding</a>.  They recently had a massive content migration and along with the migration came numerous character issues.  They moved from a character set of <a href="http://en.wikipedia.org/wiki/Iso-8859-1">iso-8859-1</a> to <a href="http://en.wikipedia.org/wiki/Utf8">UTF-8</a>, and with multiple content editors copying/pasting from many different resources (pdf&#8217;s, Word, Web Pages, etc) they now have some cleanup to do.  We were recently asked if we could provide a report on all the pages where certain characters resided.  No problem.  We ran some <abbr title="Structured Query Language">SQL</abbr> queries (most content resides in the database thankfully) that looked similar to the following:</p>
<pre>SELECT p.id, p.title FROM `pages` p WHERE
p.content REGEXP '(Â|Å|Ã)';</pre>
<p>In the case of the above query, we&#8217;re just taking advantage of <a href="http://dev.mysql.com/doc/refman/5.0/en/regexp.html">MySQL&#8217;s native REGEXP operator</a> to check for the existence of any of the three characters (simplified for illustration) in a content block.  After running our <abbr title="Structured Query Language">SQL</abbr> statement we quickly realized that the work necessary to clean this up would likely amount to at least a few weeks for our client.  With an additional few hours of work (after backing things up and testing, testing, testing) we were able to provide a solution that will take a matter of minutes to implement (if the client chooses to hire us to do so).  Here is an abbreviated version of what we came up with:</p>
<pre>UPDATE `pages` p SET p.content = replace(p.content,'Ã¢â‚¬Â','');
UPDATE `pages` p SET p.content = replace(p.content,'Ã¢â‚¬Å\“','');
UPDATE `pages` p SET p.content = replace(p.content,'¢â‚','');
UPDATE `pages` p SET p.content = replace(p.content,'¬Â','');
UPDATE `pages` p SET p.content = replace(p.content,'Â','');
UPDATE `pages` p SET p.content = replace(p.content,'¬Å\“','');
UPDATE `pages` p SET p.content = replace(p.content,'Å\“','');
UPDATE `pages` p SET p.content = replace(p.content,'Å','');
UPDATE `pages` p SET p.content = replace(p.content,'Ã','');
UPDATE `pages` p SET p.content = replace(p.content,'Å','');
UPDATE `pages` p SET p.content = replace(p.content,'¬','');</pre>
<h3>Conclusion</h3>
<p>There isn&#8217;t anything earth shattering here.  These are simple queries, but they illustrate the inherent abilities of the technology employed with our client&#8217;s application.  These inherent abilities, if known, have the potential to save dozens of hours.  In the case of the above example, I truly believe we will likely save our client at least 30 man hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/mysql-replace-rocks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How do you market your jobs?</title>
		<link>http://jasonleveille.com/2008/07/how-do-you-market-your-jobs/</link>
		<comments>http://jasonleveille.com/2008/07/how-do-you-market-your-jobs/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 16:36:27 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=49</guid>
		<description><![CDATA[On the way into work today I saw someone wearing a Yellow chicken suit in front of a Red Lobster restaurant.  In and of itself that isn&#8217;t much for news, however I almost went off the road when I saw the sign they were holding:
Top Frederick (as in Frederick, Maryland, USA) company looking for Senior [...]]]></description>
			<content:encoded><![CDATA[<p>On the way into work today I saw someone wearing a <a href="http://www.costumehub.com/Adults-Men-NoveltyFunny-Adult_Yellow_Chicken_-costumes/UI96-9096">Yellow chicken suit</a> in front of a <a href="http://www.redlobster.com/">Red Lobster</a> restaurant.  In and of itself that isn&#8217;t much for news, however I almost went off the road when I saw the sign they were holding:</p>
<blockquote><p>Top Frederick (as in Frederick, Maryland, USA) company looking for Senior Programmer &#8230;</p></blockquote>
<p>I really, really wish I carried a camera in my car.  How Senior is the person they are looking for I wonder?  Senior in High School?  I have a sense of humor, and this company was probably trying to appear casual and cool, but this just seems strange to me.</p>
<p><a href="http://www.costumehub.com/Adults-Men-NoveltyFunny-Adult_Yellow_Chicken_-costumes/UI96-9096"><img class="size-full wp-image-50" title="Yellow Chicken Suit" src="http://jasonleveille.com/wp-content/uploads/2008/07/03-0903_3.jpg" alt="" width="275" height="380" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/how-do-you-market-your-jobs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8 Long Years with Atrial Fibrillation</title>
		<link>http://jasonleveille.com/2008/07/goodbye-atrial-fibrillation/</link>
		<comments>http://jasonleveille.com/2008/07/goodbye-atrial-fibrillation/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 12:26:38 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=48</guid>
		<description><![CDATA[Tomorrow I&#8217;m having heart surgery!!  It&#8217;s really more of a procedure than a surgery, but it does involve doctors going into my heart and making some burns around my Pulmonary veins.  For 8 years now I have lived with Atrial Fibrillation, and tomorrow this procedure will hopefully be the start of a life without AF.  [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow I&#8217;m having heart surgery!!  It&#8217;s really more of a procedure than a surgery, but it does involve doctors going into my heart and making some burns around my <a href="http://en.wikipedia.org/wiki/Pulmonary_vein">Pulmonary veins</a>.  For 8 years now I have lived with <a href="http://en.wikipedia.org/wiki/Atrial_fibrillation">Atrial Fibrillation</a>, and tomorrow this procedure will hopefully be the start of a life without <abbr title="Atrial Fibrillation">AF</abbr>.  For me anyways, when I&#8217;m having an episode I get tired, winded, light headed, and weak.  I have found over the years that certain things tend to precipitate an episode, include: drinking beer (damn), staying up late (damn), unhealthy eating habits, drinking coffee before bed (damn), and allowing myself to get dehydrated.  Also, laying on my left side at night tends to cause problems.  When an episode does start it can last anywhere from 1 - 24 hours.  Just this morning I came off the tail end of a near 24 hour episode.  I only recently found out that exercise can cause my heart to go back into normal sinus rhythm.  So, a light jog/brisk walk this morning did the trick.</p>
<p>So, goodbye <abbr title="Atrial Fibrillation">AF</abbr>.  You have been a pain in my ass and you will not be missed.</p>
<p><strong>Update</strong>: The surgery went well.  From what I&#8217;ve been told I was very hard to control on the operating table and had to be restrained.  At one point I sat up during the procedure and knocked my  head against one of the overhead devices.  There were 281 different burns made around my Pulmonary veins, and evidently I am a rarity, as I have 5 veins instead of the typical 4 (go me)!  I think the total time I was on the table was around 5 hours.  After my recovery period I was pretty sick due to the dose of anesthesia needed to keep me under.  Currenty I&#8217;m taking 5 different drugs, 2 of which are blood thinners.  I hate medication.  Lisa was awesome of course and is taking great care of me.  Her mom came into town to watch Cameron.  We&#8217;re so lucky to have her.  Anyway, my healing phase is 3 months, after which I hope to be drug free and free of <abbr title="Atrial Fibrillation">AF</abbr>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/goodbye-atrial-fibrillation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Your Style-Guide is your Client&#8217;s API</title>
		<link>http://jasonleveille.com/2008/07/your-style-guide-is-your-clients-api/</link>
		<comments>http://jasonleveille.com/2008/07/your-style-guide-is-your-clients-api/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 20:39:58 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[(X)HTML]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=44</guid>
		<description><![CDATA[In my opinion, an API should be many things.  Perhaps the most important thing it should be is easy to use.  If it isn&#8217;t easy to use (because documentation is poor, naming in inconsistent, or because it&#8217;s just not well thought out or organized) than it will likely only lead to frustration.  [...]]]></description>
			<content:encoded><![CDATA[<p>In my opinion, an <abbr title="application programmer's interface">API</abbr> should be many things.  Perhaps the most important thing it should be is easy to use.  If it isn&#8217;t easy to use (because documentation is poor, naming in inconsistent, or because it&#8217;s just not well thought out or organized) than it will likely only lead to frustration.  Not only will it be difficult to develop on a poorly thought-out API, but it will be incredibly difficult to maintain and extend an application built on this poor <abbr title="application programmer's interface">API</abbr>.  I&#8217;ve been thinking a lot about style guides recently, and the troubles  clients often have when they can&#8217;t effectively use the site styles we (developers/designers) have put together for their project. With that in mind I wanted to talk about how <strong>your style-guide is your client&#8217;s <abbr title="application programmer's interface">API</abbr></strong>.  You are the programmer/developer/frontendguy/whatever.  You have put together an incredible application that allows the client to create and maintain pages (complete with enough Ajax to sink a ship).  Now you hand the application over to the client, and they need to begin the process of populating content.</p>
<p><span id="more-44"></span></p>
<h2>The Client Needs Your Guidance</h2>
<p>In most cases the client needs your guidance.  If you want a consistent look for headers, lists, paragraphs, etc, than at a minimum you need to train the client in the use of your styles.  If you want to reduce the amount of support requests you get, you should probably even include a style-guide.
</p>
<blockquote><p>As a sidenote, we are strongly considering including a developer docs directory in each site we build that includes a styleguide, as well as other relevant documentation.  Putting client documentation under version control, in a protected directory, accessible via a URL is in our near future I think/hope.</p></blockquote>
<p>Unfortunately it seems that this part of a project is often overlooked. </p>
<h2>Stay Responsible</h2>
<p>Developers tend to focus heavily on functionality and usability.  These are important topics that need attention.  I would argue that if you are giving a client a tool, and the tool is beautiful, and the tool is easy to use, you still have work to do.  Clients want to be able to manage content, and most of the time that content is managed through a <a href="http://en.wikipedia.org/wiki/WYSIWYG">WYSIWYG</a> editor (for instance in <a href="http://tinymce.moxiecode.com/">TinyMCE</a> or <a href="http://www.fckeditor.net/">fckEditor</a>). The client needs to know how to properly use the tool, and it&#8217;s your job to deliver a responsible <abbr title="application programmer's interface">interface</abbr>.  When I say &quot;use the tool&quot; I&#8217;m really referring to the implementation of your styles, and not the ability to, for example, make text bold. Here&#8217;s an example of what I consider irresponsible<abbr title="application programmer's interface">:</abbr></p>
<pre class="html" name="code">	&lt;div id=&quot;content&quot;&gt;
		&lt;div class=&quot;contentMainHeader&quot;&gt;My Header&lt;/div&gt;
		&lt;div class=&quot;contentBody&quot;&gt;Content Here&lt;/div&gt;
	&lt;/div&gt;</pre>
<p>This type of implementation is irresponsible in a lot of ways.  As far as the client goes, this markup introduces unnecessary complexity. It has been my experience that little things like this cause clients to bail on your intended style. This is the point where you usually start finding font tags and other craziness in content added by the client (might I recommend <a href="http://htmlpurifier.org/">htmlPurifier</a> if you really want things clean).  Here is an example of what I would consider responsible:</p>
<pre class="html" name="code">
	&lt;div id=&quot;content&quot;&gt;
		&lt;h2&gt;My Header&lt;/h2&gt;
		&lt;p&gt;Content Here&lt;/p&gt;
	&lt;/div&gt;
</pre>
<p>Forgetting about the fact that our content now has more semantic meaning, your client should have an easier time populating content. Most clients understand the concept of a header and have an easier time with its application. As for the paragraph, both <a href="http://tinymce.moxiecode.com/">TinyMCE</a> and <a href="http://www.fckeditor.net/">fckEditor</a> are going to create a paragraph by default (unless line breaks are not converted to paragraphs). In my experience this simple responsible markup can save a lot of time in support requests. In my experience the simple decision to use <abbr title="Hypertext Markup Language">html</abbr> tags as they were intended to be used can have a big payoff.</p>
<h2>In Conclusion</h2>
<p>Use markup responsibly and you will reap the benefits in many places. Your clients will be happier. Search engines will be happier. Your developers will be happier because they don&#8217;t need to wade through messy <abbr title="Hypertext Markup Language">html</abbr>. Remember, html tags are your friends and they have a purpose. Before you decide to create a class for everything under the sun, think about that tag you should be using, and scrap the unnecessary classes.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/07/your-style-guide-is-your-clients-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery is an ultimate time saver</title>
		<link>http://jasonleveille.com/2008/06/jquery-time-saver/</link>
		<comments>http://jasonleveille.com/2008/06/jquery-time-saver/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 17:30:37 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=47</guid>
		<description><![CDATA[jQuery took what would have been a 4 - 6 hour job ordeal and turned it into 10 minutes of pure enjoyment.  Read on.
One of our clients at work has a site which is maintained with Dreamweaver (DW) templates and Contribute. If there is anything I have learned about this combination, especially DW templates, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jquery.com">jQuery</a> took what would have been a 4 - 6 hour <del datetime="2008-06-27T17:34:38+00:00">job</del> ordeal and turned it into 10 minutes of pure enjoyment.  Read on.</p>
<p>One of our clients at work has a site which is maintained with <a href="http://www.adobe.com/products/dreamweaver/">Dreamweaver</a> (<abbr title="Dreamweaver">DW</abbr>) <a href="http://www.smartwebby.com/web_site_design/dreamweaver_template.asp">templates</a> and <a href="http://www.adobe.com/products/contribute/">Contribute</a>. If there is anything I have learned about this combination, especially <abbr title="Dreamweaver">DW</abbr> templates, it&#8217;s that updating templates/libraries and pushing those updates to pages can become increasingly painful as a site grows. This particular client insisted on the template/Contribute route, and at the time we couldn&#8217;t make a solid argument about why they should not pursue this solution to content management (we now have that argument). We are on a maintenance contract with this client and once per week we have requests to update content. Because I did the initial setup, and because I have the most experience with <abbr title="Dreamweaver">DW</abbr>, this job falls on my plate. Here&#8217;s the rough flow of data management / updates. </p>
<ul>
<li>We get a request to update the xxx section based on the yyy template.</li>
<li>We checkout the xxx section pages, and the yyy template. Some sections have 100+ pages. In total this site has ~600 pages.
<ul>
<li>With each page checkout, <abbr title="Dreamweaver">DW</abbr> performs a check to see if the page is already checked out.</li>
<li><abbr title="Dreamweaver">DW</abbr> checks the page out.</li>
<li><abbr title="Dreamweaver">DW</abbr> updates a lock file indicating that the pages is currently checked out.</li>
</ul>
</li>
<li>Templates/Libraries are updated and changes are pushed out to files.</li>
<li>Files get checked back in (and locks are removed, etc)</li>
</ul>
<p>This process is time consuming, slow at best, and very frustrating.  Now I would normally be working on other tasks while files are being checked in/out, however that&#8217;s not the point.  This whole workflow makes we want to vomit.</p>
<p>Today we had a request to add a footer to each page in the site, where previously there had been no footer. That&#8217;s an update for every template file, and every page in the site. You might be thinking, why didn&#8217;t you initially add markup for an empty footer, or at least add an include that pointed to an empty file? We didn&#8217;t, but that is a good idea. Instead, I took what would have amounted to 4 - 6 hours worth of mindless, brain numbing work (believe it or not, it would have taken 4 - 6 hours), and instead implemented a javascript/php include solution. This took about 10 minutes. Here is the markup.</p>
<pre class="javascript" name="code">
$.get(&quot;/assets/php/includes/footer.inc.php&quot;, function(data){
   $(&quot;#wrap&quot;).after(data);
});
</pre>
<p>As you can see, I created a footer include file, used <a href="http://jquery.com/">jQuery</a>&#8217;s <a href="http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype">get</a> method to retrieve the contents, and inserted those contents after the main wrapper div.  I chose to pull the contents of the footer from an include file in order to make future updates of that content more manageable.  I wouldn&#8217;t want a future developer pecking around in the JavaScript just to update the footer.  That would be just plain wrong.</p>
<h2>Conclusion</h2>
<p>In the world of web development implementation typically isn&#8217;t the issue.  Figuring out the proper solution usually takes more time.  What I&#8217;ve done here isn&#8217;t rocket science, but it did save me hours of time, while not sacrificing future application maintenance.  I can live with that.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/06/jquery-time-saver/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visualizing the Commit History of Eclipse</title>
		<link>http://jasonleveille.com/2008/06/visualizing-the-commit-history-of-eclipse/</link>
		<comments>http://jasonleveille.com/2008/06/visualizing-the-commit-history-of-eclipse/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 13:02:29 +0000</pubDate>
		<dc:creator>leveille</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://jasonleveille.com/?p=46</guid>
		<description><![CDATA[How cool is this?  A tool to visualize the commit history of a software project.  The project in this case is the Eclipse IDE.

code_swarm - Eclipse (short ver.) from Michael Ogawa on Vimeo.
 
]]></description>
			<content:encoded><![CDATA[<p>How cool is this?  A tool to visualize the commit history of a software project.  The project in this case is the <a href="http://www.eclipse.org/">Eclipse IDE</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.vimeo.com/moogaloop.swf?clip_id=1130828&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://www.vimeo.com/moogaloop.swf?clip_id=1130828&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowfullscreen="true" allowscriptaccess="always"></embed></object><br />
<a href="http://www.vimeo.com/1130828?pg=embed&amp;sec=1130828">code_swarm - Eclipse (short ver.)</a> from <a href="http://www.vimeo.com/michaelogawa?pg=embed&amp;sec=1130828">Michael Ogawa</a> on <a href="http://vimeo.com?pg=embed&amp;sec=1130828">Vimeo</a>.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://jasonleveille.com/2008/06/visualizing-the-commit-history-of-eclipse/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
