<?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>Robert Accettura&#039;s Fun With Wordage &#187; jquery</title>
	<atom:link href="http://robert.accettura.com/blog/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://robert.accettura.com</link>
	<description>Robert Accettura&#039;s Personal Blog on Web Development and Tech</description>
	<lastBuildDate>Thu, 09 Feb 2012 01:43:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://robert.accettura.com/?pushpress=hub'/>
<cloud domain='robert.accettura.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>localStorage With Cookie Fallback</title>
		<link>http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/</link>
		<comments>http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 15:58:04 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=7163</guid>
		<description><![CDATA[I mentioned the other day that localStorage can be used as an alternative for cookies. The benefit is that localStorage doesn&#8217;t sent it&#8217;s data back on every request to the server like a cookie. Headers are uncompressed in http making &#8230; <a href="http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://robert.accettura.com/blog/2012/01/13/privacy-issues-behind-localstorage/">mentioned the other day</a> that <code>localStorage</code> can be used as an alternative for cookies. The benefit is that  <code>localStorage</code> doesn&#8217;t sent it&#8217;s data back on every request to the server like a cookie.  Headers are uncompressed in http making that very costly.  However not every web browser out there supports <code>localStorage</code>.  Most however do.</p>
<p>Here&#8217;s an example based on <a href="http://www.jquery.com/">jQuery</a> and <a href="http://archive.plugins.jquery.com/project/Cookie">jQuery.cookie</a>.  It&#8217;s designed to turn objects into JSON and store the JSON representation.  On retrieval it restores the object. This doesn&#8217;t handle things like expiring cookies (it simply defaults to 365 days).  I just had this around from an old project with these very specific requirements and figured I&#8217;d post it as-is in case it can help anyone and to demonstrate.  This isn&#8217;t ideal for reuse, but for someone playing with the idea, maybe it will motivate <img src='http://robert.accettura.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</p>
<pre>

function storeData(type, obj){
    var data = jQuery.toJSON(obj);

    // If using a modern browser, lets use localStorage and avoid the overhead
    // of a cookie
    if(typeof localStorage != 'undefined' &amp;&amp; localStorage !== null){
        localStorage[type] = data;
    }

    // Otherwise we need to store data in a cookie, not quite so eloquent.
    else {
        jQuery.cookie(type, data, { expires: 365, path: '/' });
    }
}

function loadStoredData(type){
     var data;

    // If using localStorage, retrieve from there
    if(typeof localStorage != 'undefined' &amp;&amp; localStorage !== null){
        data = localStorage[type];
    }

    // Otherwise we have to use cookie based storage
    else {
        data = jQuery.cookie(type);
    }

    // If we have data, lets turn it into an object, otherwise return false
    if(data){
        return jQuery.secureEvalJSON(data);
    }
    return false;
}
</pre>
<p>Pretty simple right?  It&#8217;s still a key/value API.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=7163#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2012/01/1349b36.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2012/01/17/localstorage-with-cookie-fallback/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery And Checkbox Values</title>
		<link>http://robert.accettura.com/blog/2012/01/02/jquery-and-checkbox-values/</link>
		<comments>http://robert.accettura.com/blog/2012/01/02/jquery-and-checkbox-values/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 02:33:09 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=6958</guid>
		<description><![CDATA[I rarely use checkboxes and radio buttons. Perhaps because of that I forgot this little rookie error. For the intents and purposes below assume the following HTML: &#60;p&#62; &#60;label for=&#34;checkbox1&#34;&#62;Checkbox 1&#60;/label&#62; &#60;input type=&#34;checkbox&#34; id=&#34;checkbox1&#34; checked=&#34;checked&#34;/&#62; &#60;/p&#62; &#60;p&#62; &#60;label for=&#34;checkbox2&#34;&#62;Checkbox 2&#60;/label&#62; &#8230; <a href="http://robert.accettura.com/blog/2012/01/02/jquery-and-checkbox-values/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I rarely use checkboxes and radio buttons.  Perhaps because of that I forgot this little rookie error.  </p>
<p>For the intents and purposes below assume the following HTML:</p>
<pre>

&lt;p&gt;
&lt;label for=&quot;checkbox1&quot;&gt;Checkbox 1&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; id=&quot;checkbox1&quot; checked=&quot;checked&quot;/&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;label for=&quot;checkbox2&quot;&gt;Checkbox 2&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; id=&quot;checkbox2&quot;/&gt;
&lt;/p&gt;
</pre>
<p>You wouldn&#8217;t really expect it, but both of these return &#8220;on&#8221; when you get the <code>val()</code>:</p>
<pre>

$('#checkbox1').val(); // returns &quot;on&quot;
$('#checkbox2').val(); // returns &quot;on&quot;
</pre>
<p>Now say you flipped them by unchecking checkbox1 and checking checkbox2.  Same thing:</p>
<pre>

$('#checkbox1').val(); // returns &quot;on&quot;
$('#checkbox2').val(); // returns &quot;on&quot;
</pre>
<p>Now reload the page, so one is checked and two is not checked.  Try again this time using <code>.attr('checked');</code>.  That also doesn&#8217;t work, but that makes sense.  jQuery 1.6&#8242;s release notes even explain it:</p>
<blockquote cite="http://blog.jquery.com/2011/05/03/jquery-16-released/"><p>
Before jQuery 1.6, .attr(&#8220;checked&#8221;) returned the Boolean property value (true) but as of jQuery 1.6 it returns the actual value of the attribute (an empty string), which doesn’t change when the user clicks the checkbox to change its state
</p></blockquote>
<p>The best way I&#8217;ve found to get a checkbox value is to use the <code>is()</code> method:</p>
<pre>

$('#checkbox1').is(':checked') // returns true
</pre>
<p>As to why <code>val()</code> doesn&#8217;t check the type of node and do this for me automatically?  I&#8217;m not entirely sure. I&#8217;m assuming backwards compatibility.   I suspect I&#8217;m not the only one who keeps forgetting this little caveat.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=6958#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2012/01/27e9661.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2012/01/02/jquery-and-checkbox-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012 Presidential Candidate Websites</title>
		<link>http://robert.accettura.com/blog/2011/09/01/2012-presidential-candidate-websites/</link>
		<comments>http://robert.accettura.com/blog/2011/09/01/2012-presidential-candidate-websites/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 00:07:37 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Around The Web]]></category>
		<category><![CDATA[akamai]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[barack obama]]></category>
		<category><![CDATA[campaign 2012]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=6044</guid>
		<description><![CDATA[Back in 2008 I did a special segment in my &#8220;Secrets In Websites&#8221; series for the 2008 Presidential Elections. It was quite popular (almost crashed the server). I decided to do it again, but slightly revised for 2012. My observations/conclusions/insights &#8230; <a href="http://robert.accettura.com/blog/2011/09/01/2012-presidential-candidate-websites/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Back in 2008 I did a special segment in my &#8220;Secrets In Websites&#8221; series for the <a href="http://robert.accettura.com/blog/2008/01/11/secrets-in-websites-ii/2/">2008 Presidential Elections</a>.  It was quite popular (almost crashed the server).  I decided to do it again, but slightly revised for 2012.</p>
<p><span id="more-6044"></span>My observations/conclusions/insights (if you can call it that) can be found after the raw data.</p>
<div style="background-color: #FFFFD1; border: 2px dashed #FFF100; padding: 8px 15px;">
<strong>Disclaimer:</strong><em> If you post a comment that&#8217;s beyond the technical scope of this post, it will be deleted</em>.  This isn&#8217;t a politics site, and I don&#8217;t have the patience or time for it.  My blog, my rules.  No exceptions.</p>
<p>This is just a list of data I collected as <a href="#datacollection">described</a> at the bottom of the page and empirical observations.  This site is <strong>not</strong> an endorsement for or against any candidate or party by myself or my employer.
</div>
<style type="text/css"> .dataTable th { text-align: left; } </style>
<h3>Backend</h3>
<table class="dataTable">
<tr class="tableHeader">
<th>Candidate</th>
<th>Server/OS</th>
<th>CMS</th>
<th>Host</th>
<th>CDN</th>
</tr>
<tr>
<th><a href="http://www.barackobama.com/">Barack Obama (D)</a></th>
<td>Apache on Unknown</td>
<td>Unknown</td>
<td><a href="http://www.level3.com/content">Level3 (CDN)</a></td>
<td>Google CDN, Level3 (footprint.net for assets.bostatic.com)</td>
</tr>
<tr>
<th><a href="http://www.michelebachmann.com/">Michele Bachmann (R)</a></th>
<td>Apache on Unknown</td>
<td>WordPress</td>
<td><a href="http://www.smartechcorp.net">Smartech</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.hermancain.com/">Herman Cain (R)</a></th>
<td>Apache on Unknown</td>
<td>WordPress</td>
<td><a href="http://www.godaddy.com">GoDaddy</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.newt.org/">Newt Gingrich (R)</a></th>
<td>Apache on Unknown</td>
<td>Drupal</td>
<td><a href="http://www.smartechcorp.net">Smartech</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.jon2012.com/">Jon Huntsman, Jr. (R)</a></th>
<td>Apache on Unknown</td>
<td>Drupal</td>
<td><a href="http://www.rackspace.com/cloud/">Rackspace Cloud</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.garyjohnson2012.com/">Gary Johnson (R)</a></th>
<td>Apache on Unknown</td>
<td>WordPress</td>
<td><a href="http://mediatemple.net/">Media Temple</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://fredkarger.com/">Fred Karger (R)</a></th>
<td>Apache on Unknown</td>
<td>Drupal</td>
<td><a href="http://www.slicehost.com">Slicehost</a> / <a href="http://www.rackspace.com/cloud">Rackspace Cloud</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.andymartinforpresident.com/">Andy Martin (R}</a></th>
<td>Apache on Unknown</td>
<td>Appears to be static files</td>
<td><a href="http://www.godaddy.com">GoDaddy</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.mccotter2012.com/">Thaddeus McCotter (R)</a></th>
<td>Apache on Unknown</td>
<td>WordPress</td>
<td><a href="http://www.rackspace.com">Rackspace</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://jimmymcmillan.org/">Jimmy McMillan (R)</a></th>
<td>Nginx / Varnish</td>
<td>Trellix Site Builder</td>
<td><a href="http://www.ipowerweb.com/">IPOWERWEB</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.roymoore2012.com/">Roy Moore (R)</a></th>
<td>Nginx / Varnish, Apache</td>
<td>Unknown</td>
<td><a href="http://www.ipowerweb.com/">IPOWERWEB</a></td>
<td>Cotendo</td>
</tr>
<tr>
<th><a href="http://www.ronpaul2012.com/">Ron Paul (R)</a></th>
<td>Apache on Unix</td>
<td>WordPress</td>
<td><a href="http://www.racksapce.com">Rackspace</a></td>
<td>Rackspace Cloud Files (Akamai)</td>
</tr>
<tr>
<th><a href="http://www.rickperry.org">Rick Perry (R)</a></th>
<td>Apache on Unknown</td>
<td>WordPress</td>
<td><a href="http://www.slicehost.com">Slicehost</a> / <a href="http://www.rackspace.com/cloud">Rackspace Cloud</a></td>
<td>Google CDN</td>
</tr>
<tr>
<th><a href="http://www.buddyroemer.com/">Buddy Roemer (R)</a></th>
<td>Apache on Unknown</td>
<td>WordPress</td>
<td><a href="http://www.smartechcorp.net">Smartech</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.mittromney.com">Mitt Romney (R)</a></th>
<td>Nginx, Varnish on Unknown</td>
<td>Drupal</td>
<td><a href="http://https://aws.amazon.com/ec2/">Amazon Cloud</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://www.ricksantorum.com">Rick Santorum (R)</a></th>
<td>Apache on Ubuntu</td>
<td>Drupal</td>
<td><a href="http://www.slicehost.com">Slicehost</a> / <a href="http://www.rackspace.com/cloud">Rackspace Cloud</a></td>
<td>No</td>
</tr>
<tr>
<th><a href="http://jonathontheimpalerforpresident2008.blogspot.com/">Jonathon Sharkey (R)</a></th>
<td>GSE (Google)</td>
<td>Blogspot</td>
<td>Google</td>
<td>Google Hosted</td>
</tr>
<tr>
<th><a href="http://www.timpawlenty.com/">Tim Pawlenty (R)</a></th>
<td>Varnish/Apache on Red Hat</td>
<td>Drupal</td>
<td><a href="http://www.rackspace.com/">Rackspace</a> via Freedom First PAC</td>
<td>No</td>
</tr>
</table>
<h3>Frontend</h3>
<table class="dataTable">
<tr class="tableHeader">
<th>Candidate</th>
<th>Markup</th>
<th># Validation Errors</th>
<th>Layout</th>
<th>Charset</th>
<th>HTTP Compression</th>
</tr>
<tr>
<th>Barack Obama (D)</th>
<td>HTML5</td>
<td>72 Errors, 4 warning(s)</td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~75%)</td>
</tr>
<tr>
<th>Michele Bachmann (R)</th>
<td>HTML5</td>
<td>27 Errors, 5 warning(s) </td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~65%)</td>
</tr>
<tr>
<th>Herman Cain (R)</th>
<td>HTML5</td>
<td>24 Errors, 2 warning(s)</td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Newt Gingrich (R)</th>
<td>XHTML 1.0</td>
<td>14 Errors, 3 warning(s) </td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Jon Huntsman, Jr. (R)</th>
<td>XHTML 1.0</td>
<td>364 Errors</td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~75%)</td>
</tr>
<tr>
<th>Gary Johnson (R)</th>
<td>HTML5</td>
<td>15 Errors, 1 warning(s)</td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Fred Karger (R)</th>
<td>XHTML 1.0</td>
<td>6 Errors, 6 warning(s)</td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~76%)</td>
</tr>
<tr>
<th>Andy Martin (R)</th>
<td>No Doctype</td>
<td>45 Errors, 2 warning(s) as HTML4 Trans</td>
<td>Table</td>
<td>windows-1252</td>
<td>No</td>
</tr>
<tr>
<th>Thaddeus McCotter (R)</th>
<td>HTML5</td>
<td>50 Errors, 2 warning(s) </td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Jimmy McMillan (R)</th>
<td>No Doctype</td>
<td>27 Errors, 10 warning(s) </td>
<td>Table</td>
<td>iso-8859-1</td>
<td>Yes (~88%)</td>
</tr>
<tr>
<th>Roy Moore (R)*</th>
<td>XHTML 1.0</td>
<td>3 Errors, 6 warning(s) </td>
<td>Flash, Tables</td>
<td>UTF-8</td>
<td>Yes (~65%)</td>
</tr>
<tr>
<th>Ron Paul (R)</th>
<td>XHTML 1.0 Strict</td>
<td>34 Errors, 19 warning(s) </td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Rick Perry (R)</th>
<td>HTML5</td>
<td>6 Errors, 3 warning(s)</td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~73%)</td>
</tr>
<tr>
<th>Buddy Roemer (R)</th>
<td>XHTML 1.0</td>
<td>23 Errors, 7 warning(s)</td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Mitt Romney (R)</th>
<td>XHTML 1.0 Strict</td>
<td>5 Errors, 4 warning(s) </td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~77%)</td>
</tr>
<tr>
<th>Rick Santorum (R)</th>
<td>XHTML 1.0 Strict</td>
<td>22 Errors</td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~74%)</td>
</tr>
<tr>
<th>Jonathon Sharkey (R)</th>
<td>XHTML 1.0 Strict</td>
<td>158 Errors, 199 warning(s) </td>
<td>CSS</td>
<td>UTF-8</td>
<td>No</td>
</tr>
<tr>
<th>Tim Pawlenty ®</th>
<td>XHTML 1.0 Strict</td>
<td>42 Errors</td>
<td>CSS</td>
<td>UTF-8</td>
<td>Yes (~83%)</td>
</tr>
</table>
<h3>Frontend (cont)</h3>
<table class="dataTable">
<tr class="tableHeader">
<th>Candidate</th>
<th>apple-touch-icon</th>
<th>Syndication Format</th>
<th>Framework/Libraries</th>
<th>Social Networks</th>
<th>Analytics</th>
<th>Misc.</th>
</tr>
<tr>
<th>Barack Obama (D)</th>
<td>Yes</td>
<td>RSS 2.0</td>
<td>jQuery</td>
<td>Facebook, Twitter, YouTube</td>
<td>Google Analytics</td>
<td>Chrome IE Frame, Viewport Meta tags</td>
</tr>
<tr>
<th>Michele Bachmann (R)</th>
<td>No</td>
<td>Feedburner/RSS2</td>
<td>jQuery,Yahoo Base CSS, SWFObject</td>
<td>Facebook, Twitter, YouTube, Flickr</td>
<td>Google Analytics</td>
<td>FB OpenGraph, lots of WordPress Plugins</td>
</tr>
<tr>
<th>Herman Cain (R)</th>
<td>No</td>
<td>No</td>
<td>jQuery</td>
<td>Facebook, TWitter</td>
<td>Google Analytics</td>
<td>ShareThis, Some WordPress Plugins</td>
</tr>
<tr>
<th>Newt Gingrich (R)</th>
<td>No</td>
<td>RSS</td>
<td>jQuery</td>
<td>Facebook, Twitter, YouTube</td>
<td>Google Analytics, Omniture</td>
<td>Has separate mobile site. Short domain.</td>
</tr>
<tr>
<th>Jon Huntsman, Jr. (R)</th>
<td>No</td>
<td>RSS 2.0</td>
<td>jQuery</td>
<td>Facebook, Twitter, YouTube, Vimeo</td>
<td>Google Analytics</td>
<td>ShareThis</td>
</tr>
<tr>
<th>Gary Johnson (R)</th>
<td>No</td>
<td>RSS 2.0</td>
<td>jQuery</td>
<td>Facebook, Twitter, Google+, Flickr, LinkedIn, YouTube</td>
<td>Google Analytics, KISSmetrics</td>
<td>Web Fonts</td>
</tr>
<tr>
<th>Fred Karger (R)</th>
<td>No</td>
<td>RSS</td>
<td>jQuery</td>
<td>Facebook, Twitter, Flickr, YouTube</td>
<td>Google Analytics</td>
<td>NetBoots Powered</td>
</tr>
<tr>
<th>Andy Martin (R)</th>
<td>No</td>
<td>Atom/RSS via Blogspot blog</td>
<td>No</td>
<td>Facebook, Twitter</td>
<td>-</td>
<td>Font tag</td>
</tr>
<tr>
<th>Thaddeus McCotter (R)</th>
<td>No</td>
<td>RSS 2.0</td>
<td>jQuery, jQuery UI</td>
<td>Facebook, Twitter, YouTube</td>
<td>Google Analytics, Chartbeat</td>
<td>Multilingual (xili-language powered)</td>
</tr>
<tr>
<th>Jimmy McMillan (R)</th>
<td>No</td>
<td>No</td>
<td>-</td>
<td>-</td>
<td>Hit Counter by Digits</td>
<td>The rent is too damn high</td>
</tr>
<tr>
<th>Roy Moore (R)</th>
<td>No</td>
<td>No</td>
<td>SwfObject</td>
<td>Facebook, YouTube</td>
<td>Google Analytics</td>
<td>iframed flash site. Likely to prevent spidering / caching content.</td>
</tr>
<tr>
<th>Ron Paul (R)</th>
<td>No</td>
<td>RSS 2.0</td>
<td>jQuery</td>
<td>Twitter, Facebook, YouTube</td>
<td>Google Analytics, Chartbeat</td>
<td>W3 Total Cache</td>
</tr>
<tr>
<th>Rick Perry (R)</th>
<td>Yes</td>
<td>RSS  2.0</td>
<td>html5 boilerplate/modernizr, jQuery</td>
<td>Facebook, Twitter</td>
<td>ChartBeat, Google Analytics</td>
<td><code>@media print</code></td>
</tr>
<tr>
<th>Buddy Roemer (R)</th>
<td>No</td>
<td>RSS (via FeedBurner)</td>
<td>jQuery</td>
<td>Facebook, Twitter, YouTube</td>
<td>Google Analytics</td>
<td>All in One SEO Pack</td>
</tr>
<tr>
<th>Mitt Romney (R)</th>
<td>Yes</td>
<td>RSS 2.0</td>
<td>jQuery, Typekit, Gigya</td>
<td>Facebook, Twitter, YouTube, Flickr</td>
<td>Google Analytics, Omniture, Lotame, NewRelic, Compete, Clickable</td>
<td>Analytics!</td>
</tr>
<tr>
<th>Rick Santorum (R)</th>
<td>No</td>
<td>RSS</td>
<td>jQuery, TypeKit</td>
<td>Facebook YouTube, Twitter, Flickr</td>
<td>Google Analytics</td>
<td>That Google bomb is still working wonders on his name</td>
</tr>
<tr>
<th>Jonathon Sharkey (R)</th>
<td>No</td>
<td>Atom/RSS 2.0</td>
<td>-</td>
<td>-</td>
<td>Google</td>
<td>Doesn&#8217;t own a .com?</td>
</tr>
<tr>
<th>Tim Pawlenty (R)</th>
<td>No</td>
<td>No</td>
<td>jQuery</td>
<td>Twitter, YouTube, Flickr, Facebook</td>
<td>GoSquared, ChartBeat, DoubleClick Floodlight, Google Analytics</td>
<td>Ended campaign</td>
</tr>
</table>
<h3>Observations</h3>
<p>I retooled this for 2012 based on how web development and the internet has changed as well as the data that&#8217;s available.  The most noteworthy thing is that EVERY campaign uses open source.  Perhaps it&#8217;s saving money in this economy?  Windows Server isn&#8217;t free after all.  Most use it extensively.  Regardless who wins, that candidate would be very hypocritical to support the (unlikely regardless) &#8220;<a href="http://www.slate.com/id/2130798/">open source is communism</a>&#8221; mantra.  If this isn&#8217;t proof that open source is as mainstream as ever in America, I don&#8217;t know what is.  Apache is a huge winner.  So is jQuery, WordPress, Drupal, even Nginx and Varnish made a showing (they weren&#8217;t even on the radar in 2008).</p>
<p>Lots of websites are using the HTML5 doctype now.  That doesn&#8217;t mean they are using HTML5, but many are moving in that direction.  Web Fonts were spotted.  Tables were very rare.</p>
<p>Shockingly, CDN usage and HTTP compression were pretty rare.  Given Google will host popular javascript frameworks (jQuery for example), if you can&#8217;t afford the CPU to gzip data you could let Google host it for free.  Lots of cloud hosting though.</p>
<p>Between popular CMS&#8217;s, and popular plugins/modules for those CMS&#8217;s, there&#8217;s little diversity in these sites this time around.  It was obvious last time, it&#8217;s much more obvious this time.  Mono-culture has set in regarding the technicals of these sites.</p>
<p>One thing that really stood out is the amount of analytics on each site.  This election is really a data war.  Knowing as much as possible about voters and the candidates base.  Clearly this is an escalation from 2008.  There is also a proliferation of real-time analytics usage this time around.  Data is everything in the business world, it&#8217;s becoming that way in campaign websites as well.</p>
<h3>Misc Notes</h3>
<p><strong id="datacollection">Data collection method:</strong> The data for this blog post was mostly done on the evening of August 30, 2011 and August 31, 2011 by myself. The character set was however Firefox 6.0 interprets the page. HTML validation was checked by submitting to the W3C validator. All other analysis was done by eye and using tools like cURL. Some things were a little bit of a judgment call, such as CSS layout. I didn’t generally penalize if a table was used, it depends how it was used, and the context. I viewed source on all of them, and spent some time looking around while collecting data. I didn’t view every page on every site, since that would drive me insane. The data is based on the homepage of the site however I did make a brief attempt to hunt for feeds since some only include a link on a &#8220;news&#8221; page. If I couldn&#8217;t find it quick enough, it doesn&#8217;t exist.</p>
<p><strong>Secrets In Websites III?:</strong> Yes there will likely be a third installment. I don&#8217;t know when, I don&#8217;t know what will be included.  I do have some ideas and notes. It takes time to put these together, and I&#8217;m not exactly drowning in free time these days.</p>
<p><small>* Roy Moore&#8217;s website is Flash in an iframe.  For purposes of this analysis I&#8217;m using the page containing the flash object.</small>
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=6044#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2011/09/6b39183.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2011/09/01/2012-presidential-candidate-websites/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Browser Detection In JavaScript Libraries</title>
		<link>http://robert.accettura.com/blog/2009/11/30/browser-detection-in-javascript-libraries/</link>
		<comments>http://robert.accettura.com/blog/2009/11/30/browser-detection-in-javascript-libraries/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 02:00:14 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[firefox 3.6]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[prototypejs]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=3084</guid>
		<description><![CDATA[I was curious what browser detection in various JS libraries look like. While we always try to avoid doing browser detection, it&#8217;s sometimes a necessary evil. Here&#8217;s what I found. jQuery jQuery looks something like this in syntax: if($.browser.msie) { &#8230; <a href="http://robert.accettura.com/blog/2009/11/30/browser-detection-in-javascript-libraries/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was curious what browser detection in various JS libraries look like.  While we always try to avoid doing browser detection, it&#8217;s sometimes a necessary evil.  Here&#8217;s what I found.</p>
<p><span id="more-3084"></span></p>
<h3>jQuery</h3>
<p><a href="http://www.jquery.org">jQuery</a> looks something like this in syntax:</p>
<pre>
if($.browser.msie) {
  // do something IE specific
}
</pre>
<p>Here&#8217;s how it&#8217;s actually <a href="http://github.com/jquery/jquery/blob/master/src/core.js#L506">implemented</a>:</p>
<pre>
browser: {
  version: (/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/.exec(userAgent) || [0,'0'])[1],
  safari: /webkit/.test( userAgent ),
  opera: /opera/.test( userAgent ),
  msie: /msie/.test( userAgent ) &amp;amp;&amp;amp; !/opera/.test( userAgent ),
  mozilla: /mozilla/.test( userAgent ) &amp;amp;&amp;amp; !/(compatible|webkit)/.test( userAgent )
}
</pre>
<p>jQuery takes a pretty simple user-agent parsing approach.  All jQuery supports (though deprecated officially) is the rendering engine, and version.   Noteworthy is that &#8220;<code>safari</code>&#8221; is used as opposed to &#8220;<code>webkit</code>&#8220;.  This is important in the case of Google Chrome etc. which you would detect using the poorly named &#8220;<code>safari</code>&#8220;.  No support for detecting mobile browsers, though that could be added pretty easily.</p>
<p>jQuery is pretty bare bones, but the tightest of the implementations.  It&#8217;s also the only one I&#8217;m aware of that has deprecated this functionality.  The one thing I occasionally miss is OS detection (helpful when Linux lacks a few things like good Flash support).  I supplement it with:</p>
<pre>
var jQbrowser = navigator.userAgent.toLowerCase();
jQuery.os = {
  mac: /mac/.test(jQbrowser),
  win: /win/.test(jQbrowser),
  linux: /linux/.test(jQbrowser)
};
</pre>
<p>Then use it like this:</p>
<pre>
if($.os.linux) {
  // do something for Linux
}
</pre>
<h3>MooTools</h3>
<p><a href="http://mootools.net/">MooTools</a> syntax looks something like this:</p>
<pre>
if(Browser.Engine.trident) {
  // do something IE specific
}
</pre>
<p>It also supports a few other attributes such as <code>Platform</code>, <code>Browser.Features.xpath</code> (XPath supported?) <code>Browser.Features.xhr</code> (xmlHttpRequest supported?), and <code>Browser.Plugins.Flash.version</code> (Flash version).</p>
<p>Here&#8217;s how the core of it is <a href="http://github.com/mootools/mootools-core/blob/master/Source/Core/Browser.js#L29">implemented</a> (I&#8217;m omitting the extras):</p>
<pre>
var Browser = $merge({

  Engine: {name: 'unknown', version: 0},

  Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},

  Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)},

  Plugins: {},

  Engines: {

    presto: function(){
      return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925));
    },

    trident: function(){
      return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? ((document.querySelectorAll) ? 6 : 5) : 4);
    },

    webkit: function(){
      return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419);
    },

    gecko: function(){
      return (!document.getBoxObjectFor &amp;amp;&amp;amp; window.mozInnerScreenX == null) ? false : ((document.getElementsByClassName) ? 19 : 18);
    }

  }

}, Browser || {});
</pre>
<p>MooTools choose feature detection rather than User Agent sniffing.   This approach takes care of the problem with spoofed request headers, but is failtastic when using an <a href="http://ejohn.org/blog/the-getboxobjectfor-apocalypse/">unsupported method</a>.  MooTools users need to <a href="http://mootools.net/blog/2009/11/02/upgrade-mootools/">upgrade</a> ASAP.   This will be problematic with the upcoming Firefox 3.6 release.</p>
<h3>Prototype.js</h3>
<p><a href="http://www.prototypejs.org/">Prototype&#8217;s</a> syntax looks something like this:</p>
<pre>
if(Prototype.Browser.IE){
  // do something IE specific
}
</pre>
<p>Here is what the <a href="http://github.com/sstephenson/prototype/blob/master/src/prototype.js#L12">implementation</a> looks like:</p>
<pre>
  Browser: (function(){
    var ua = navigator.userAgent;
    // Opera (at least) 8.x+ has &quot;Opera&quot; as a [[Class]] of `window.opera`
    // This is a safer inference than plain boolean type conversion of `window.opera`
    var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
    return {
      IE: !!window.attachEvent &amp;amp;&amp;amp; !isOpera,
      Opera: isOpera,
      WebKit: ua.indexOf('AppleWebKit/') &amp;gt; -1,
      Gecko: ua.indexOf('Gecko') &amp;gt; -1 &amp;amp;&amp;amp; ua.indexOf('KHTML') === -1,
      MobileSafari: /Apple.*Mobile.*Safari/.test(ua)
    }
  })(),
</pre>
<p>It&#8217;s pretty similar (though not identical) to jQuery with the most notable exception being the addition of MobileSafari and object detection for IE.</p>
<h3>YUI</h3>
<p>The syntax in the <a href="http://developer.yahoo.com/yui/">YUI</a> world is like this:</p>
<pre>
if (Y.UA.ie &amp;gt; 0) {
  // do something IE specific
}
</pre>
<p>The <a href="http://github.com/yui/yui3/blob/master/src/yui/js/yui-ua.js">implementation</a> is the longest I&#8217;ve seen:</p>
<pre>
ua = nav &amp;amp;&amp;amp; nav.userAgent,
if (ua) {

  if ((/windows|win32/i).test(ua)) {
    o.os = 'windows';
  } else if ((/macintosh/i).test(ua)) {
    o.os = 'macintosh';
  }

  // Modern KHTML browsers should qualify as Safari X-Grade
  if ((/KHTML/).test(ua)) {
    o.webkit=1;
  }
  // Modern WebKit browsers are at least X-Grade
  m=ua.match(/AppleWebKit\/([^\s]*)/);
  if (m&amp;amp;&amp;amp;m[1]) {
    o.webkit=numberfy(m[1]);

    // Mobile browser check
    if (/ Mobile\//.test(ua)) {
      o.mobile = &quot;Apple&quot;; // iPhone or iPod Touch
    } else {
      m=ua.match(/NokiaN[^\/]*|Android \d\.\d|webOS\/\d\.\d/);
      if (m) {
        o.mobile = m[0]; // Nokia N-series, Android, webOS, ex: NokiaN95
      }
    }

    m=ua.match(/AdobeAIR\/([^\s]*)/);
    if (m) {
      o.air = m[0]; // Adobe AIR 1.0 or better
    }

  }

  if (!o.webkit) { // not webkit
    // @todo check Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1316; fi; U; ssr)
    m=ua.match(/Opera[\s\/]([^\s]*)/);
    if (m&amp;amp;&amp;amp;m[1]) {
      o.opera=numberfy(m[1]);
      m=ua.match(/Opera Mini[^;]*/);
      if (m) {
        o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316
      }
    } else { // not opera or webkit
      m=ua.match(/MSIE\s([^;]*)/);
      if (m&amp;amp;&amp;amp;m[1]) {
        o.ie=numberfy(m[1]);
      } else { // not opera, webkit, or ie
        m=ua.match(/Gecko\/([^\s]*)/);
        if (m) {
          o.gecko=1; // Gecko detected, look for revision
          m=ua.match(/rv:([^\s\)]*)/);
          if (m&amp;amp;&amp;amp;m[1]) {
            o.gecko=numberfy(m[1]);
          }
        }
      }
    }
  }
}
</pre>
<p>This seems a little excessive, especially for UA parsing, though the detection of <code>AdobeAIR</code> and <code>Opera Mini</code> is a nice touch.  The code being well commented is nice though.</p>
<h3>Conclusion</h3>
<p>So there you have it.  Unlike many of those websites that don&#8217;t use a library, these JS code bases don&#8217;t rely on <code>document.all</code> and/or <code>window.xmlHttpRequest</code><sup>[1]</sup> to do it all.</p>
<p><small id="footnote-1">1.  For those wondering xhr is to tell IE7+ from previous IE versions.</small>
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=3084#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2009/12/1706f19.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2009/11/30/browser-detection-in-javascript-libraries/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WhiteHouse.gov Goes Open Source</title>
		<link>http://robert.accettura.com/blog/2009/10/25/whitehouse-gov-goes-open-source/</link>
		<comments>http://robert.accettura.com/blog/2009/10/25/whitehouse-gov-goes-open-source/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 17:21:22 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[barack obama]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[whitehouse]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=3015</guid>
		<description><![CDATA[I noted in January that WhiteHouse.gov relaunched for the Obama administration using a closed source infrastructure (it was using ASP.NET on IIS 6.0) running a proprietary CMS. It has now relaunched using open source Drupal. Also interesting is that it&#8217;s &#8230; <a href="http://robert.accettura.com/blog/2009/10/25/whitehouse-gov-goes-open-source/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://robert.accettura.com/blog/2009/01/20/whitehousegov-analysis/">noted</a> in January that WhiteHouse.gov relaunched for the Obama administration using a closed source infrastructure (it was using ASP.NET on IIS 6.0) running a proprietary CMS.</p>
<p>It has now <a href="http://techpresident.com/blog-entry/whitehousegov-goes-drupal">relaunched</a> using open source <a href="http://drupal.org/">Drupal</a>.  Also interesting is that it&#8217;s no longer broadcasting any headers regarding it&#8217;s server.   <del datetime="2009-10-26T17:48:27+00:00">Considering Drupal is by far better tested on a Unix OS andApache, I&#8217;m wondering if they dropped Windows Server/IIS 6.0 in favor of some sort of Linux and Apache.  I can&#8217;t find any hint at what they are using.</del> </p>
<p>It&#8217;s noteworthy that Drupal was already used on <a href="http://www.recovery.gov">recovery.gov</a> and has been used in politics by way of CivicSpace for the Dean campaign in 2004.</p>
<p>Via Drupal it&#8217;s still using jQuery (verison 1.2.6).   It&#8217;s also now using RSS rather than ATOM for feeds, which I presume is by way of the switch to Drupal rather than an intentional effort.</p>
<p>Another interesting change is they tweaked the doctype from  XHTML Transitional to <a href="http://www.w3.org/TR/xhtml-rdfa-primer/">XHTML+RDFa</a>.</p>
<p>Pretty much everything else is still the same including the design.  Analytics is still done using WebTrends (holdover from the Bush administration) and Akamai still sits in front of their servers.  </p>
<p>For CSS hackers: They still choose conditional CSS for IE compatibility.</p>
<p>Their pages don&#8217;t fully validate anymore, though there is no terrible markup either.</p>
<p>Video is still done using Flash, maybe they&#8217;ll consider adopting HTML5 video.  They could do so and <a href="http://hacks.mozilla.org/2009/06/html5-video-fallbacks-markup/">fallback to Flash</a>.  The latest versions of Firefox, Safari, and Chrome could take advantage of it today.  The rest of the browsers would get the Flash experience.  That would be the next major step in opening up.  Mark Pilgrim has a <a href="http://diveintohtml5.org/video.html">good primer</a> if they need.</p>
<p><strong>Edit [9/26/2009 @ 1:45 PM EST]:</strong> <a href="http://radar.oreilly.com/2009/10/whitehouse-switch-drupal-opensource.html">Tim O&#8217;Reilly</a> confirms it is indeed running on LAMP, specifically Red Hat Linux with Apache, MySQL and obviously PHP. Apache Solr is used for search.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=3015#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2009/10/51be2fe.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2009/10/25/whitehouse-gov-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Whitehouse.gov Analysis</title>
		<link>http://robert.accettura.com/blog/2009/01/20/whitehousegov-analysis/</link>
		<comments>http://robert.accettura.com/blog/2009/01/20/whitehousegov-analysis/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 17:49:25 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[In The News]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[akamai]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[barack obama]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[whitehouse]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=2422</guid>
		<description><![CDATA[A few notes on the new whitehouse.gov website as I did for the campaign sites after about 5 minutes of sniffing around: Running Microsoft-IIS 6.0 and ASP.NET 2.0.50727. The Bush administration ran Apache on what I think was some sort &#8230; <a href="http://robert.accettura.com/blog/2009/01/20/whitehousegov-analysis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few notes on the new <a href="http://www.whitehouse.gov">whitehouse.gov</a> website as I did for the <a href="http://robert.accettura.com/blog/2008/01/11/secrets-in-websites-ii/2/">campaign sites</a> after about 5 minutes of sniffing around:</p>
<ul>
<li>Running Microsoft-IIS 6.0 and ASP.NET 2.0.50727.  The Bush administration ran Apache on what I think was some sort of Unix.  Data is gzip&#8217;d.</li>
<li>Whitehouse.gov is using <a href="http://www.akamai.com">Akamai</a> as a CDN and for DNS service.</li>
<li>Using <a href="http://www.jquery.com/">jQuery 1.2.6</a> (someone should let them know 1.3 is out).  Also using several plugins including <a href="http://ui.jquery.com/">jQuery UI</a>, <a href="http://sorgalla.com/jcarousel/">jcarousel</a>, <a href="http://jquery.com/demo/thickbox/">Thickbox</a>.  Also using <a href="http://blog.deconcept.com/swfobject/">swfobject</a>.</li>
<li>Pages <a href="http://validator.w3.org/check?verbose=1&#038;uri=http%3A%2F%2Fwww.whitehouse.gov%2F">tentatively validate</a> as XHTML 1.0 Transitional!  I&#8217;m shocked by this.  I&#8217;ve checked several pages all with the same result.</li>
<li>Using <a href="http://www.webtrends.com/">WebTrends</a> for analytics.  Bush Administration also did.</li>
<li>IE Conditional Stylesheets and a print stylesheet.</li>
<li>RSS feeds are actually Atom feeds.</li>
<li>The website is setting two cookies that I can see <code>WT_FPC</code> and <code>ASP.NET_SessionId</code> which expire at the end of the session which is not prohibited in federal government as per <a href="http://74.125.47.132/search?q=cache:Ap-_uh5uMukJ:www.whitehouse.gov/omb/memoranda/m03-22.html+http://www.whitehouse.gov/omb/memoranda/m03-22.html%2320.&#038;hl=en&#038;ct=clnk&#038;cd=1&#038;gl=us">OMB Guidance for Implementing the Privacy Provisions of the E-Government Act of 2002</a> (using Google Cache for that link since I can&#8217;t find it anywhere else, our government should really keep those in a more permanent location).</li>
</ul>
<p>I should note that this is quite different in architecture than the Obama campaign site which ran PWS/PHP, no notable JS library, feed, and Google Analytics.</p>
<p><strong>Update [1/20/2009 @ 9:00 PM EST]:</strong> </p>
<ul>
<li>Jason Kottke points out that the new whitehouse.gov sports a much <a href="http://www.kottke.org/09/01/the-countrys-new-robotstxt-file">slimmer robots.txt file</a>.</li>
<li>Content is now under <a href="http://www.whitehouse.gov/copyright/">Creative Commons license</a>.  Way to go <a href="http://www.lessig.org/blog/">Lawrence Lessig</a>.</li>
</ul>
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=2422#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2009/01/be1df9a.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2009/01/20/whitehousegov-analysis/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>jQuery</title>
		<link>http://robert.accettura.com/blog/2008/09/28/jquery/</link>
		<comments>http://robert.accettura.com/blog/2008/09/28/jquery/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 23:07:01 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[nokia]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/?p=2038</guid>
		<description><![CDATA[Pretty big news from the jQuery camp today. Both Microsoft and Nokia will be making it part of their development platforms. Extra interesting is that they aren&#8217;t forking, but utilizing the existing code under the same license, and will contribute &#8230; <a href="http://robert.accettura.com/blog/2008/09/28/jquery/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pretty <a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/">big news</a> from the <a href="http://www.jquery.com/">jQuery</a> camp today.  Both Microsoft and Nokia will be making it part of their development platforms.</p>
<p>Extra interesting is that they aren&#8217;t forking, but utilizing the existing code under the same license, and will contribute and participate like everyone else.</p>
<p>I&#8217;ve been using jQuery on sites for quite a while now (about 2 years).  Seeing more and more support for it just makes me feel that it was an even better decision.</p>
<p>Congrats to the jQuery team.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/?p=2038#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2008/09/2557911.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2008/09/28/jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shaver on Silly Season</title>
		<link>http://robert.accettura.com/blog/2007/05/10/shaver-on-silly-season/</link>
		<comments>http://robert.accettura.com/blog/2007/05/10/shaver-on-silly-season/#comments</comments>
		<pubDate>Fri, 11 May 2007 02:07:09 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[silly-season]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/archives/2007/05/10/shaver-on-silly-season/</guid>
		<description><![CDATA[Shaver&#8217;s got some interesting thoughts on silly season (prior reading, highly recommended). My favorite is this little nugget: If you choose a platform that needs tools, if you give up the viral soft collaboration of View Source and copy-and-paste mashups &#8230; <a href="http://robert.accettura.com/blog/2007/05/10/shaver-on-silly-season/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Shaver&#8217;s got some <a href="http://shaver.off.net/diary/2007/05/10/the-high-cost-of-some-free-tools/">interesting thoughts</a> on <a href="http://diveintomark.org/blog/2007/05/02/silly-season">silly season</a> (prior reading, highly recommended).  My favorite is this little nugget:</p>
<blockquote cite="http://shaver.off.net/diary/2007/05/10/the-high-cost-of-some-free-tools/"><p>
If you choose a platform that needs tools, if you give up the <strong>viral</strong> soft <strong>collaboration</strong> of View Source and copy-and-paste <strong>mashups</strong> and being able to jam <strong>jQuery</strong> in the hole that used to have <strong>Prototype</strong> in it, you lose what gave the web its <strong>distributed</strong> evolution and incrementalism. You lose what made the web great, and what made the web win. If someone tells you that their <strong>platform is the web</strong>, only better, there is a very easy test that you can use:
</p></blockquote>
<p>I took the liberty of highlighting the Web 2.0ish language.</p>
<p>Both of those are great reads, I highly recommend taking a few minutes to read them.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/archives/2007/05/10/shaver-on-silly-season/#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2007/05/7b5b23f.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2007/05/10/shaver-on-silly-season/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fuller Screen Mode</title>
		<link>http://robert.accettura.com/blog/2007/02/20/fuller-screen-mode/</link>
		<comments>http://robert.accettura.com/blog/2007/02/20/fuller-screen-mode/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 02:27:29 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[disruptive-innovations]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[fuller-screen]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://robert.accettura.com/archives/2007/02/20/fuller-screen-mode/</guid>
		<description><![CDATA[Daniel Glazman is at it again, this time with Fuller Screen Mode. This has serious potential for anyone who ever has to do a presentation. I&#8217;ve had it in the back of my mind for a while. With a copy &#8230; <a href="http://robert.accettura.com/blog/2007/02/20/fuller-screen-mode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Daniel Glazman is at it again, this time with <a href="http://glazman.org/weblog/dotclear/index.php?2007/02/20/3246-fuller-screen">Fuller Screen Mode</a>.  This has serious potential for anyone who ever has to do a presentation.  I&#8217;ve had it in the back of my mind for a while.  With a copy of Firefox, you now have full screen presentations that look great.  For presentations on the go, consider a USB Drive and <a href="http://portableapps.com/apps/internet/firefox_portable">Portable Firefox</a> if you&#8217;re using Windows.  Very easy, very compatible, very usable.  Combine it with <a href="http://jquery.com/">jQuery</a> and the <a href="http://interface.eyecon.ro/">Interface Elements</a>  or <a href="http://script.aculo.us/">script.aculo.us</a> (with included prototype.js), and you can even have some fancy transitions and everything.  Not to mention it can print out very well, and is very compatible to share on the web.</p>
<p>Of course you&#8217;ve seen that <a href="http://meyerweb.com/eric/tools/s5/">S5</a> is a great way to make presentations.  Still waiting on someone to make an extension for NVU/Mozilla Composer that makes S5 presentations a snap for average Joe who doesn&#8217;t want to code.
<div id="rja_commentCountImage"><a href="http://robert.accettura.com/archives/2007/02/20/fuller-screen-mode/#comments"><img src="http://robert.accettura.com/wp-content/commentCount/2007/02/5caf41d.gif" alt="Comment Count" style="border:0;" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://robert.accettura.com/blog/2007/02/20/fuller-screen-mode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

