<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MacdougalMedia &#187; jQuery</title>
	<atom:link href="http://macdougalmedia.com/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://macdougalmedia.com</link>
	<description>by Scott Macdougal Weaver</description>
	<lastBuildDate>Tue, 18 May 2010 10:56:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CheckBoxer for Google Chrome</title>
		<link>http://macdougalmedia.com/2010/04/13/checkboxer-for-google-chrome/</link>
		<comments>http://macdougalmedia.com/2010/04/13/checkboxer-for-google-chrome/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 07:38:37 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=185</guid>
		<description><![CDATA[CheckBoxer is an extension I wrote for Google Chrome. Based on the CheckBoxMate plugin for Firefox by nrlz, it does ... well.. exactly the same thing: you draw a rectangle around the check boxes you want to toggle on or off. Magic.
Here it is in action:

As you can see, it has selected all of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://macdougalmedia.com/wp-content/uploads/2010/04/checkboxer.png"><img class="size-full wp-image-186 alignleft" style="margin-left: 0px; margin-right: 4px;" title="CheckBoxer" src="http://macdougalmedia.com/wp-content/uploads/2010/04/checkboxer.png" alt="CheckBoxer extension for Google Chrome" width="48" height="48" /></a>CheckBoxer is an extension I wrote for Google Chrome. Based on the CheckBoxMate plugin for Firefox by nrlz, it does ... well.. exactly the same thing: you draw a rectangle around the check boxes you want to toggle on or off. Magic.</p>
<p>Here it is in action:</p>
<p><a href="http://macdougalmedia.com/wp-content/uploads/2010/04/screenshot1-crop.png"><img class="alignnone size-full wp-image-189" title="CheckBoxer in action!" src="http://macdougalmedia.com/wp-content/uploads/2010/04/screenshot1-crop.png" alt="CheckBoxer in action!" width="403" height="39" /></a></p>
<p>As you can see, it has selected all of the check boxes within the selected area. No need to hold any other buttons as it only works when you've dragged over the starting checkbox.</p>
<p><a title="CheckBoxer" href="https://chrome.google.com/extensions/detail/hbcmphdngimjobnagjpaeckfeokalnce" target="_blank">Click here</a> to check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2010/04/13/checkboxer-for-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use jQuery to Tally Forms</title>
		<link>http://macdougalmedia.com/2009/12/11/use-jquery-to-tally-forms/</link>
		<comments>http://macdougalmedia.com/2009/12/11/use-jquery-to-tally-forms/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 23:41:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=136</guid>
		<description><![CDATA[
Recently, I had the task of creating a simple form to be submitted to a specific department member here on campus. I felt this was a great opportunity to utilize jQuery and to see just how simple I could make adding new fields, since I wanted the form to be somewhat dynamic (adding/removing of inputs [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://macdougalmedia.com/wp-content/uploads/2009/12/travel_expenses.png"><img class="size-full wp-image-148 alignnone" title="Travel Expenses" src="http://macdougalmedia.com/wp-content/uploads/2009/12/travel_expenses.png" alt="Travel Expenses" width="616" height="245" /></a></p>
<p>Recently, I had the task of creating a simple form to be submitted to a specific department member here on campus. I felt this was a great opportunity to utilize jQuery and to see just how simple I could make adding new fields, since I wanted the form to be somewhat dynamic (adding/removing of inputs and such).</p>
<p>After trying a few methods here and there, I was able to utilize a few jQuery functions and a nice plugin (<a title="jQuery Format Currency" href="http://code.google.com/p/jquery-formatcurrency/" target="_blank">jquery-formatcurrency</a>) to make everything work as desired.</p>
<p>Here is what I came up with:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> total <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.currency'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		total <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.add'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>obj<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			total <span style="color: #339933;">+=</span> $<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.subtract'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>obj<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			total <span style="color: #339933;">-=</span> $<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#total'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>total<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.currency'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">formatCurrency</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>symbol<span style="color: #339933;">:</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>What's neat about this method is that it handles everything on the blur (loss of focus) of any element with the 'currency' class applied. That means it won't do anything to the field while a person is typing in it -- annoying for some people -- it waits until the user moves on to the next field or away from the field altogether.</p>
<p>The really cool part of what happens first is the mathematical operation. Notice the similarity between the following methods:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.add'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>obj<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	total <span style="color: #339933;">+=</span> $<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.subtract'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>obj<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	total <span style="color: #339933;">-=</span> $<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The first method looks at all elements with the 'add' class applied. The <strong>.each</strong> jQuery function cycles through each matched element and feeds two variables to the attached function: an incremented index and the object reference itself. This makes a tally extremely simple as jQuery will automagically cycle through all the elements you want to either add or subtract based on what class you have applied. The same applies to both classes and, of course, can be extended if you want to do more complex mathematics or formatting to your fields.</p>
<p>After these methods run, the <em>total</em> variable now holds the correct sum for all fields properly classed either 'add' or 'subtract.' This can now be applied to the input field with an id of 'total':</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#total'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>total<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This will set the 'total' input field's value to the sum of the fields.</p>
<p>Lastly, it will format all fields to currency using the <em>formatCurrency </em>function:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.currency'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">formatCurrency</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>symbol<span style="color: #339933;">:</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Notice I specify here that I do not want any currency symbol (e.g. '$') as I specify that outside the field itself to display to the user.</p>
<p>Again, all of this happens every time a field gets updated and loses focus. So yes, it's magic.</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2009/12/11/use-jquery-to-tally-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SweetDate.org</title>
		<link>http://macdougalmedia.com/2009/07/07/sweetdate-org/</link>
		<comments>http://macdougalmedia.com/2009/07/07/sweetdate-org/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 19:45:16 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=103</guid>
		<description><![CDATA[


Language:
PHP w/ Smarty


Database:
MySQL


Javascript:
jQuery



Sweet Date is a very straight-forward dating service web site. People sign up, browse and find people that interest them, and they can either send them an instant message or they can send them a message using the site's built-in mailing system.
As far as the look goes, I chose blue because I think [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_104" class="wp-caption alignleft" style="width: 260px"><a href="http://sweetdate.org"><img class="size-full wp-image-104" title="Sweet Date" src="http://macdougalmedia.com/wp-content/uploads/2009/07/portfolio_sweetdate.png" alt="Sweet Date" width="250" height="250" /></a><p class="wp-caption-text">Sweet Date</p></div>
<table style="margin-bottom:15px;" border="0">
<tbody>
<tr>
<td>Language:</td>
<td>PHP w/ Smarty</td>
</tr>
<tr>
<td>Database:</td>
<td>MySQL</td>
</tr>
<tr>
<td>Javascript:</td>
<td>jQuery</td>
</tr>
</tbody>
</table>
<p><a title="Sweet Date" href="http://sweetdate.org" target="_blank">Sweet Date</a> is a very straight-forward dating service web site. People sign up, browse and find people that interest them, and they can either send them an instant message or they can send them a message using the site's built-in mailing system.</p>
<p>As far as the look goes, I chose blue because I think it looks great and because I thought I'd try adhering to some standards for emotional targetting this time (e.g. <a title="Color Wheel Pro: Color Meaning" href="http://www.color-wheel-pro.com/color-meaning.html" target="_blank">Color Wheel Pro / Blue</a>). Additionally, I'm taking my time with the feel of the site as I don't want it to have a "thrown-together" appearance. Instead, I want people to know intuitively how to use the web site and where to go if they need help.</p>
<p>The reason I'm able to pay attention to these elements is because I'm using Smarty Templating Engine again, which makes development go a lot faster. Now I can focus on jQuery and Photoshop.</p>
<p>While I'm very aware that dating web sites are a dime-a-dozen these days, I've always wanted to build one for several reasons:</p>
<ol>
<li>Ads pay reasonably well</li>
<li>The structure is reasonably simple</li>
<li>I need more large-scale web sites on my resume</li>
</ol>
<p>Although at the moment, the web site is currently being built, the basic frame is in place with the look &amp; feel largely intact. Once registration is open, feel free to open an account but the site will be largely in beta until I feel it is relatively complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2009/07/07/sweetdate-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sitdiary.net</title>
		<link>http://macdougalmedia.com/2009/06/30/sitdiary-net/</link>
		<comments>http://macdougalmedia.com/2009/06/30/sitdiary-net/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 15:27:50 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=54</guid>
		<description><![CDATA[


Language:
PHP w/ Smarty Templates


Database:
MySQL


Javascript:
jQuery



Sitdiary started back in 2001 as a very simple idea: I wanted other people to be able to post blog entries about anything they wanted. What started as a small idea soon grew into a user-base of over 250,000, where at its peak had over 100 users online at any given time.
Time [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_52" class="wp-caption alignleft" style="width: 260px"><a href="http://www.sitdiary.net" target="_blank"><img class="size-full wp-image-52" title="Sitdiary" src="http://macdougalmedia.com/wp-content/uploads/2009/06/portfolio_sitdiary.png" alt="Sitdiary" width="250" height="250" /></a><p class="wp-caption-text">Sitdiary</p></div>
<table style="margin-bottom:15px;" border="0">
<tbody>
<tr>
<td>Language:</td>
<td>PHP w/ Smarty Templates</td>
</tr>
<tr>
<td>Database:</td>
<td>MySQL</td>
</tr>
<tr>
<td>Javascript:</td>
<td>jQuery</td>
</tr>
</tbody>
</table>
<p><a title="Sitdiary" href="http://www.sitdiary.net" target="_blank">Sitdiary</a> started back in 2001 as a very simple idea: I wanted other people to be able to post blog entries about anything they wanted. What started as a small idea soon grew into a user-base of over 250,000, where at its peak had over 100 users online at any given time.</p>
<p>Time after time, the bandwidth wasn't enough for this "small" site and I was forced to continuously upgrade on a monthly basis. At one point, the cost became more than I could handle and that's when the popularity of the site started to take a downward turn.</p>
<p>As the site would be out of commission for days at a time, the user base soon dwindled down to around 50,000 and all of a sudden, bandwidth wasn't too much of an issue.<span id="more-54"></span></p>
<p>Of course, if I knew then what I know now, I would have done quite a few things differently. For one, I would've chosen a catchier name. Secondly, I would've added some serious caching to this site to reduce overall demand on files <em>and</em> database. Thirdly, I wouldn't have built the database in such a fashion. When I started building Sitdiary, I figured the best way to build the database would be to give each user their own tables for: entries (posts), comments and friends. While this might work well for a few thousand users, the method quickly degrades over time as it is an unnecessary waste of space. Fourthly, I would have added a payment plan for the really dedicated users to help pay for the bandwidth costs.</p>
<p>Since then, I've upgraded the database to a more standardized format and after testing the speed before and after, I can tell you that the standardized format is significantly faster. I've also added page caching using Smarty.</p>
<p>Overall, I'm glad Sitdiary is still running despite its bumpy and uncertain past.</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2009/06/30/sitdiary-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BillManager.org</title>
		<link>http://macdougalmedia.com/2009/06/29/billmanager-org/</link>
		<comments>http://macdougalmedia.com/2009/06/29/billmanager-org/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 06:31:44 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=48</guid>
		<description><![CDATA[


Language:
PHP


Database:
MySQL


Javascript:
jQuery



Bill Manager was initially built as a way to remind me to pay my own bills, but as I talked to other people I found that they were interested in such a service -- especially for free.
On top of reminders, the site also features a few informational articles, a series of tips on financial responsibility [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_49" class="wp-caption alignleft" style="width: 260px"><a href="http://www.billmanager.org"><img class="size-full wp-image-49" title="Bill Manager" src="http://macdougalmedia.com/wp-content/uploads/2009/06/portfolio_billmanager.png" alt="Bill Manager" width="250" height="250" /></a><p class="wp-caption-text">Bill Manager</p></div>
<table style="margin-bottom:15px;" border="0">
<tbody>
<tr>
<td>Language:</td>
<td>PHP</td>
</tr>
<tr>
<td>Database:</td>
<td>MySQL</td>
</tr>
<tr>
<td>Javascript:</td>
<td>jQuery</td>
</tr>
</tbody>
</table>
<p><a title="Bill Manager" href="http://www.billmanager.org" target="_blank">Bill Manager</a> was initially built as a way to remind me to pay my own bills, but as I talked to other people I found that they were interested in such a service -- especially for free.</p>
<p>On top of reminders, the site also features a few informational articles, a series of tips on financial responsibility and calculators.</p>
<p>Currently, the site is still going an upgrade to facilitate multiple users but should be up shortly.</p>
<p>It should be noted that since this site was created, several others have popped up on the 'bill manager' search that do pretty much the same thing. This is no surprise, but I'm in the process of coming up with a killer feature to set it apart (if only temporarily).</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2009/06/29/billmanager-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TheWeightLossTracker.com</title>
		<link>http://macdougalmedia.com/2009/06/29/theweightlosstracker-com/</link>
		<comments>http://macdougalmedia.com/2009/06/29/theweightlosstracker-com/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 06:08:38 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=42</guid>
		<description><![CDATA[


Language:
PHP


Database:
MySQL


Javascript:
jQuery



The Weight Loss Tracker is exactly as its name implies: a weight loss tracker.
Users create an account and enter their weight loss goal and starting weight. Immediately, they can begin logging their weight on a daily basis. This way, they can see their progress over time.
Additionally, the site provides code that will allow the user [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_40" class="wp-caption alignleft" style="width: 260px"><a href="http://www.theweightlosstracker.com"><img class="size-full wp-image-40" title="The Weight Loss Tracker" src="http://macdougalmedia.com/wp-content/uploads/2009/06/portfolio_weightlosstracker.png" alt="The Weight Loss Tracker" width="250" height="250" /></a><p class="wp-caption-text">The Weight Loss Tracker</p></div>
<table style="margin-bottom:15px;" border="0">
<tbody>
<tr>
<td>Language:</td>
<td>PHP</td>
</tr>
<tr>
<td>Database:</td>
<td>MySQL</td>
</tr>
<tr>
<td>Javascript:</td>
<td>jQuery</td>
</tr>
</tbody>
</table>
<p><a title="The Weight Loss Tracker" href="http://www.theweightlosstracker.com" target="_blank">The Weight Loss Tracker</a> is exactly as its name implies: a weight loss tracker.</p>
<p>Users create an account and enter their weight loss goal and starting weight. Immediately, they can begin logging their weight on a daily basis. This way, they can see their progress over time.</p>
<p>Additionally, the site provides code that will allow the user to display a graphical ticker displaying their progress on their way to their weight loss goal.</p>
<p>This site was the result of a personal challenge I gave to myself: to create a simple, fully functioning website (with code documentation!) within ten hours. And actually I completed the site in about seven (7) hours and spent the rest of the time making the code and documentation prettier.</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2009/06/29/theweightlosstracker-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogflare.com</title>
		<link>http://macdougalmedia.com/2009/06/29/blogflare-com/</link>
		<comments>http://macdougalmedia.com/2009/06/29/blogflare-com/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 05:44:22 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://macdougalmedia.com/?p=28</guid>
		<description><![CDATA[


Language:
PHP


Database:
MySQL


Javascript:
jQuery



Blogflare.com, started in 2007, was made to allow blogs of all varieties to be ranked according to traffic and several other factors. In addition, they receive free traffic and better search engine rankings as a result.
The biggest challenge for a site like this is the ongoing calculation of traffic statistics. Version 1.0 of the website [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_27" class="wp-caption alignleft" style="width: 260px"><a href="http://blogflare.com" target="_blank"><img class="size-full wp-image-27" title="Blogflare.com" src="http://macdougalmedia.com/wp-content/uploads/2009/06/portfolio_blogflare.png" alt="Blogflare.com" width="250" height="250" /></a><p class="wp-caption-text">Blogflare.com</p></div>
<table style="margin-bottom:15px;" border="0">
<tbody>
<tr>
<td>Language:</td>
<td>PHP</td>
</tr>
<tr>
<td>Database:</td>
<td>MySQL</td>
</tr>
<tr>
<td>Javascript:</td>
<td>jQuery</td>
</tr>
</tbody>
</table>
<p><a title="Blogflare.com" href="http://www.blogflare.com" target="_self">Blogflare.com</a>, started in 2007, was made to allow blogs of all varieties to be ranked according to traffic and several other factors. In addition, they receive free traffic and better search engine rankings as a result.</p>
<p>The biggest challenge for a site like this is the ongoing calculation of traffic statistics. Version 1.0 of the website calculated statistics every hour on the hour, which seemed efficient at the time but drained resources, especially on a shared hosting environment.</p>
<p>Version 2.0 of the website changed things up a bit. After testing, I found it was best to calculate ranks every 5-10 minutes to keep the data load small and the impact on performance minimal during the update. The reason for this is that data isn't allowed to grow too large before being reset in that five minute window.</p>
<p>Of course, I've toyed with the idea of spacing the updates 30 seconds to one minute apart but at that point, the updates become noticeable.</p>
]]></content:encoded>
			<wfw:commentRss>http://macdougalmedia.com/2009/06/29/blogflare-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
