<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2titles.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemtitles.css" type="text/css" media="screen"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Todd Huss</title>
	
	<link>http://gabrito.com</link>
	<description>Anecdotes on Java, Ruby, Sysadmin, SEO, Design, and Management</description>
	<pubDate>Sat, 15 Nov 2008 00:57:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<geo:lat>37.758434</geo:lat><geo:long>-122.435126</geo:long><image><link>http://gabrito.com</link><url>http://gabrito.com/face-small.gif</url><title>Todd Huss' blog</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/thuss" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>Moving to 64 bit Ubuntu</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/453336520/moving-to-64-bit-ubuntu</link>
		<comments>http://gabrito.com/post/moving-to-64-bit-ubuntu#comments</comments>
		<pubDate>Fri, 14 Nov 2008 20:45:51 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Desktop]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://gabrito.com/?p=183</guid>
		<description>After 3 Ubuntu upgrades on my primary workhorse (a Lenovo Thinkpad z61t) I decided it was time for a fresh install to remove all the cruft. In the past I&amp;#8217;ve always used 32 bit Ubuntu (even though my laptop is a 64 bit Core 2 duo) because of issues with the Flash plugin, Java plugin, [...]</description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntu.com"><img class="alignleft" src="/files/ubuntu.jpg" alt="Ubuntu Logo" /></a>After 3 Ubuntu upgrades on my primary workhorse (a <a href="http://www.geek.com/articles/chips/lenovo-thinkpad-z61t-notebook-2007044/">Lenovo Thinkpad z61t</a>) I decided it was time for a fresh install to remove all the cruft. In the past I&#8217;ve always used 32 bit Ubuntu (even though my laptop is a 64 bit Core 2 duo) because of issues with the Flash plugin, Java plugin, and Skype. After backing up my files I bit the bullet and did a fresh install of <a href="http://releases.ubuntu.com/8.10/">64 bit Ubuntu Intrepid Ibex</a> and in the process also decided to give <a href="http://www.debian-administration.org/articles/388">XFS a shot instead of EXT3</a> as my primary filesystem.</p>
<p>I&#8217;m pleased to say that after 3 hours I had the install done and all of my software installed and working including Jetbrains IDEA, Netbeans, Skype, VirtualBox, Flash plugin, Java plugin, Web Developer Toolbar, and Firebug. Apparently things have gotten a little better for 64 bit Linux over the past year and a half! However, I&#8217;m still running into odd issues every now and again related to both Sun&#8217;s 64 bit Java (IDE <del>and Jetty</del> occasionally hangs) and the the Open JDK browser plugin which is still buggy. Hopefully future updates will help address these issues. Anyhow, I thought I&#8217;d throw out the links I used to get everything working:</p>
<p><strong>Fonts</strong><br />
<a href="http://www.ubuntu-unleashed.com/2008/05/howto-install-mac-fonts-on-ubuntu.html">Howto: Install Mac Fonts on Ubuntu</a><br />
<a href="http://stdout-dev-null.blogspot.com/2007/03/make-firefox-in-ubuntu-look-much-better.html">Make Firefox in Ubuntu look much better</a></p>
<p><strong>Skype</strong><br />
<a href="https://help.ubuntu.com/community/Medibuntu">Add the Medibuntu repository</a><br />
sudo apt-get install skype-static</p>
<p><strong>Flash plugin</strong><br />
<a href="http://www.cyberciti.biz/tips/install-flash-10-ubuntu-linux-64bit.html">Install Flash 10 Under Ubuntu Linux 64 bit Edition</a></p>
<p><strong>Java plugin</strong><br />
sudo apt-get install openjdk-6-jre icedtea-gcjwebplugin</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=xDuTN"><img src="http://feeds.feedburner.com/~f/thuss?i=xDuTN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=Uq3RN"><img src="http://feeds.feedburner.com/~f/thuss?i=Uq3RN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=Vo5rN"><img src="http://feeds.feedburner.com/~f/thuss?i=Vo5rN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=sCHhn"><img src="http://feeds.feedburner.com/~f/thuss?i=sCHhn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=tLE6n"><img src="http://feeds.feedburner.com/~f/thuss?i=tLE6n" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/moving-to-64-bit-ubuntu/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/moving-to-64-bit-ubuntu</feedburner:origLink></item>
		<item>
		<title>8 months off to Mexico and back</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/309754351/8-months-off-to-mexico-and-back</link>
		<comments>http://gabrito.com/post/8-months-off-to-mexico-and-back#comments</comments>
		<pubDate>Sun, 08 Jun 2008 23:03:19 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Sailing]]></category>

		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://gabrito.com/?p=181</guid>
		<description>From 20080511AguaV&amp;#8230;


 October 4th, 2007 was my last day as the VP of Technology at GreatSchools when I handed the reigns over to Chris Pickslay so that Susan, Sequoia, and I could take off on our sailboat to Mexico for 6-12 months. It was a great 4 years leading the tech team at GreatSchools and [...]</description>
			<content:encoded><![CDATA[<table class="alignleft" style="width:auto;">
<tr>
<td><a href="http://picasaweb.google.com/todd.huss/20080511AguaVerde/photo#5202911746072650386"><img src="http://lh5.ggpht.com/todd.huss/SDR0qrZeIpI/AAAAAAAAMnM/XxXz53kDgCY/s144/IMG_4322.JPG" /></a></td>
</tr>
<tr>
<td style="font-family:arial,sans-serif; font-size:11px; text-align:right">From <a href="http://picasaweb.google.com/todd.huss/20080511AguaVerde">20080511AguaV&#8230;</a></td>
</tr>
</table>
<p> October 4th, 2007 was my last day as the VP of Technology at <a href="http://www.greatschools.net">GreatSchools</a> when I handed the reigns over to Chris Pickslay so that Susan, Sequoia, and I could take off on our sailboat to Mexico for 6-12 months. It was a great 4 years leading the tech team at GreatSchools and I was sad to leave such a terrific job and group of people but both Susan and I were really feeling the itch for some adventure under sail. Our plan was to explore the Baja peninsula, mainland Mexico, and of course the lovely Sea of Cortez.<br />
<span id="more-181"></span><br />
8 months have passed and we had some great fun and adventures which you can read about on our <a href="http://sailsugata.com">sailing blog</a> if you&#8217;re interested, <a href="http://sailsugata.com/post/weve-moved-onto-the-boat">it all starts here when we moved aboard the boat</a>. However, with hurricane season approaching we decided to put the boat into <a href="http://www.marinasancarlos.com/seca.html">dry storage in San Carlos Mexico</a> for the summer and return home for 6 months to work and catch up with friends and family. </p>
<p>Starting June 10th I&#8217;ll be back at GreatSchools 3 days a week as a contractor until we go back to Mexico and this time I&#8217;ll be working for Chris instead of the other way around!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=nnBRpI"><img src="http://feeds.feedburner.com/~f/thuss?i=nnBRpI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=AyCbpI"><img src="http://feeds.feedburner.com/~f/thuss?i=AyCbpI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=iYEh7I"><img src="http://feeds.feedburner.com/~f/thuss?i=iYEh7I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=YaAzPi"><img src="http://feeds.feedburner.com/~f/thuss?i=YaAzPi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=3NXGCi"><img src="http://feeds.feedburner.com/~f/thuss?i=3NXGCi" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/8-months-off-to-mexico-and-back/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/8-months-off-to-mexico-and-back</feedburner:origLink></item>
		<item>
		<title>Transcending CSS</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/144447910/transcending-css</link>
		<comments>http://gabrito.com/post/transcending-css#comments</comments>
		<pubDate>Wed, 15 Aug 2007 16:14:51 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/transcending-css</guid>
		<description>Working at GreatSchools we do a lot of CSS work and we have a number of CSS books on our library shelf. However, last month we picked up a copy of Transcending CSS and it&amp;#8217;s far and away the most enlightening book on CSS I&amp;#8217;ve read. We&amp;#8217;re already changing the way we do our CSS [...]</description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0321410971?ie=UTF8&#038;tag=marinewireles-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0321410971"><img border="0" src="http://ec1.images-amazon.com/images/I/31F3YNSFYHL._AA_SL160_.jpg" class="alignleft"></a><img src="http://www.assoc-amazon.com/e/ir?t=marinewireles-20&#038;l=as2&#038;o=1&#038;a=0321410971" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />Working at <a href="http://www.greatschools.net/">GreatSchools</a> we do a lot of CSS work and we have a number of CSS books on our library shelf. However, last month we picked up a copy of <a href="http://www.amazon.com/gp/product/0321410971?ie=UTF8&#038;tag=marinewireles-20&#038;link_code=as3&#038;camp=211189&#038;creative=373489&#038;creativeASIN=0321410971">Transcending CSS</a> and it&#8217;s far and away the most enlightening book on CSS I&#8217;ve read. We&#8217;re already changing the way we do our CSS for the better as a result.</p>
<p>Having worked with a lot of front-end<span id="more-180"></span> developers I can confirm that almost all of them would benefit from this book since most still </p>
<ul>
<li>use floats for layout as opposed to <a href="http://css-discuss.incutio.com/?page=AbsoluteLayouts">position absolute</a> (which is easily misunderstood because it&#8217;s positioning relative to the containing block)</li>
<li>few seem to regularly run their XHTML through a validator (a pet peeve of mine)</li>
<li>and even fewer seem to know to employ the concept of a <a href="http://developer.yahoo.com/yui/reset/">CSS reset</a></li>
</ul>
<p>It&#8217;s hard to convey all of the great stuff in this book but I can almost guarantee that if you work with CSS this book will open your eyes to a better way of doing things.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=UNzgc4zN"><img src="http://feeds.feedburner.com/~f/thuss?i=UNzgc4zN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=eNGsatfj"><img src="http://feeds.feedburner.com/~f/thuss?i=eNGsatfj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=8sRRo9W6"><img src="http://feeds.feedburner.com/~f/thuss?i=8sRRo9W6" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=nWEpfpMc"><img src="http://feeds.feedburner.com/~f/thuss?i=nWEpfpMc" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=2w3Zlq8t"><img src="http://feeds.feedburner.com/~f/thuss?i=2w3Zlq8t" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/transcending-css/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/transcending-css</feedburner:origLink></item>
		<item>
		<title>Simple CMS using Google Spreadsheet API</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/124258718/simple-cms-using-google-spreadsheet-api</link>
		<comments>http://gabrito.com/post/simple-cms-using-google-spreadsheet-api#comments</comments>
		<pubDate>Tue, 12 Jun 2007 17:05:05 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/simple-cms-using-google-spreadsheet-api</guid>
		<description>Update 6/14/2007: Dion Almaer has published a nice Javascript helper which makes working with spreadsheets much nicer, I&amp;#8217;ve moved my stuff to it and it&amp;#8217;s a big improvement over using the Google JSON api directly.
Publishing dynamic content on your website in a format that you can style with CSS has gotten a whole lot easier [...]</description>
			<content:encoded><![CDATA[<p><strong>Update 6/14/2007:</strong> <a href="http://www.almaer.com/blog/archives/001516.html">Dion Almaer has published a nice Javascript helper</a> which makes working with spreadsheets much nicer, I&#8217;ve moved my stuff to it and it&#8217;s a big improvement over using the Google JSON api directly.</p>
<p>Publishing dynamic content on your website in a format that you can style with CSS has gotten a whole lot easier with Google&#8217;s simple JSON based Javascript API&#8217;s. The two I&#8217;ve found myself playing with lately are the <a href="http://code.google.com/apis/ajaxfeeds/">Google Ajax Feed API</a> for publishing RSS and Atom feeds and the <a href="http://code.google.com/apis/spreadsheets/overview.html">Google Spreadsheet API<br />
</a> for publishing little snippets of text that should be easily editable.</p>
<p>Say you want a simple headline on your homepage that you can change daily. Here&#8217;s how you&#8217;d do it with the Google Spreadsheet API:</p>
<p><strong>1.</strong> Create a spreadsheet making the first row the column headers (important because you&#8217;ll refer to the cell by the column header):</p>
<p><img src='http://gabrito.com/wp-content/uploads/2007/06/easycmsspreadsheet.png' alt='easycmsspreadsheet.png' /><br />
<span id="more-178"></span><br />
<strong>2.</strong> Go to the publish tab and publish the spreadsheet: <a href="http://spreadsheets.google.com/pub?key=pouqRkV5D_eZT_VdOKu7CQA">http://spreadsheets.google.com/pub?key=pouqRkV5D_eZT_VdOKu7CQA</a>. Note in this example the key is <strong>pouqRkV5D_eZT_VdOKu7CQA</strong></p>
<p><!--adsense--></p>
<p><strong>3.</strong> Use a simple container div and some javascript to display the field:</p>
<pre><code>&lt;div id="headline"&gt;&lt;/div&gt;
&lt;script type="text/javascript"&gt;
function displayContent(json) { document.getElementById('headline').innerHTML = json.feed.entry[0].gsx$html.$t; }
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://spreadsheets.google.com/feeds/list/<b>pouqRkV5D_eZT_VdOKu7CQA</b>/od6/public/values?alt=json-in-script&amp;callback=displayContent"&gt;
&lt;/script&gt;
</code></pre>
<p><strong>Note:</strong> the spreadsheet key in the URL that needs to be replaced. Also, entry[0] refers to row 2 in the spreadsheet (because row 1 contains the column headers and is not considered an entry):</p>
<p><strong>4.</strong> The text appears dynamically on the page:</p>
<p>Palm releases Linux based <a href="http://www.palm.com/us/products/mobilecompanion/foleo/">Foleo</a></p>
<p><strong>5.</strong> When it&#8217;s time to update, make your changes to the spreadsheet, go the publish tab, and republish it and the changes will appear on your site!</p>
<p>The only real downside I can think of with this simple approach is that it&#8217;s not SEO friendly so if you want all search engine crawlers to follow those links you publish, you&#8217;re better off with a non-javascript solution. The <a href="http://groups.google.com/group/Google-Spreadsheets-Data-API">Spreadsheets API google group</a> is a good resource and <a href="http://imagine-it.org/google/spreadsheets/gadgets_all.html">Pamela Fox has some examples to look at</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=eil4gJk4"><img src="http://feeds.feedburner.com/~f/thuss?i=eil4gJk4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=C2CRatmy"><img src="http://feeds.feedburner.com/~f/thuss?i=C2CRatmy" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=Tdm8cMwb"><img src="http://feeds.feedburner.com/~f/thuss?i=Tdm8cMwb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=pNVPxSZQ"><img src="http://feeds.feedburner.com/~f/thuss?i=pNVPxSZQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=DZHKiljd"><img src="http://feeds.feedburner.com/~f/thuss?i=DZHKiljd" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/simple-cms-using-google-spreadsheet-api/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/simple-cms-using-google-spreadsheet-api</feedburner:origLink></item>
		<item>
		<title>Open source caching proxy servers</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/118805146/open-source-caching-proxy-servers</link>
		<comments>http://gabrito.com/post/open-source-caching-proxy-servers#comments</comments>
		<pubDate>Tue, 22 May 2007 20:17:26 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Systems Administration]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/open-source-caching-proxy-servers</guid>
		<description>Hello lazy web, I&amp;#8217;m looking for some advice on caching proxy servers and thought you might have some good pointers! 
We currently front our site with 3 caching proxy servers to offload static content from the web servers and we haven&amp;#8217;t found the right solution yet. We&amp;#8217;ve tried a number of solutions including Oops and [...]</description>
			<content:encoded><![CDATA[<p><a href="http://www.greatschools.net" title="Datacenter Diagram"><img class="alignleft" src="http://gabrito.com/wp-content/uploads/2007/05/datacenter.jpg" alt="Datacenter Diagram" /></a><br />
Hello lazy web, I&#8217;m looking for some advice on caching proxy servers and thought you might have some good pointers! </p>
<p>We currently front our site with 3 caching proxy servers to offload static content from the web servers and we haven&#8217;t found the right solution yet. We&#8217;ve tried a number of solutions including <a href="http://zipper.paco.net/~igor/oops.eng/">Oops</a> and <a href="http://httpd.apache.org/docs/2.0/mod/mod_cache.html">Apache with mod_cache</a> (which we&#8217;re currently running) but they are either missing a critical feature, have buggy caching behavior, or crash under heavy load. The main features I&#8217;m looking for are:<br />
<span id="more-176"></span><br />
1. Caches static content and pages and respects the expires header<br />
2. Can gzip content on the fly (this saves us a bundle in bandwidth costs)<br />
3. Can easily clear the cache when we move a new release live</p>
<p><!--adsense--></p>
<p>I&#8217;d prefer an open-source product but if we end up needing to go with a commercial solution as a last resort I&#8217;m open to that as well, thanks for your suggestions or help!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=EDtxCbtM"><img src="http://feeds.feedburner.com/~f/thuss?i=EDtxCbtM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=VR3puTlf"><img src="http://feeds.feedburner.com/~f/thuss?i=VR3puTlf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=XDaqHqMH"><img src="http://feeds.feedburner.com/~f/thuss?i=XDaqHqMH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=kJgW3fJa"><img src="http://feeds.feedburner.com/~f/thuss?i=kJgW3fJa" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=MS2sOtPC"><img src="http://feeds.feedburner.com/~f/thuss?i=MS2sOtPC" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/open-source-caching-proxy-servers/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/open-source-caching-proxy-servers</feedburner:origLink></item>
		<item>
		<title>GreatSchools wins Webby People’s Voice Award</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/113470140/greatschools-wins-the-webby-peoples-voice-award</link>
		<comments>http://gabrito.com/post/greatschools-wins-the-webby-peoples-voice-award#comments</comments>
		<pubDate>Tue, 01 May 2007 23:52:35 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/greatschools-wins-the-webby-peoples-voice-award</guid>
		<description>I&amp;#8217;m thrilled that GreatSchools has won the Webby People&amp;#8217;s Voice Award for best Family/Parenting site. We&amp;#8217;ve been in the nominations before but I think continued growth and brand awareness through a largely redesigned site helped push us over the top this year.

I thought it would be fun to go back and look at how [...]</description>
			<content:encoded><![CDATA[<p><a href="http://www.webbyawards.com"><img  class="alignleft" alt="Webby People's Voice Award Winner" src="http://gabrito.com/files/webbypvwinner.jpg"/></a> I&#8217;m thrilled that <a href="http://www.greatschools.net">GreatSchools</a> has won the <a href="http://www.webbyawards.com/webbys/current.php?media_id=96&#038;season=11#webby_entry_family">Webby People&#8217;s Voice Award for best Family/Parenting site</a>. We&#8217;ve been in the nominations before but I think continued growth and brand awareness through a largely redesigned site helped push us over the top this year.<br />
<span id="more-175"></span><br />
I thought it would be fun to go back and look at how far the site has come in the 3 years that I&#8217;ve been at GreatSchools thanks in large part due to our kick ass product management and engineering teams. Here&#8217;s a look at our homepage in late 2003 compared to today May 2007 (<a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#s5059740154630769074">here it is in slideshow format if you prefer that</a>): </p>
<p><a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740154630769074"><img src="http://lh4.google.com/image/todd.huss.work/RjfO3OyMCbI/AAAAAAAAAAo/TVrvpJYTw2M/s144/overview-old.jpg" /></a>&nbsp;&nbsp;&nbsp;<a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740154630769090"><img src="http://lh4.google.com/image/todd.huss.work/RjfO3OyMCcI/AAAAAAAAAAw/E1ryVRL7WAE/s144/overview-new.jpg" /></a></p>
<p>State landing page (now called Research and Compare)</p>
<p><a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740154630769106"><img src="http://lh4.google.com/image/todd.huss.work/RjfO3OyMCdI/AAAAAAAAAA4/0CgGefqzTlo/s144/researchcompare-old.jpg" /></a>&nbsp;&nbsp;&nbsp;<a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740154630769122"><img src="http://lh4.google.com/image/todd.huss.work/RjfO3OyMCeI/AAAAAAAAABA/FjOJI3nwHZw/s144/researchcompare-new.jpg" /></a></p>
<p>The school profile overview page:</p>
<p><a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740360789199346"><img src="http://lh4.google.com/image/todd.huss.work/RjfPDOyMCfI/AAAAAAAAABI/b2kOR8-t4pg/s144/sppoverview-old.jpg" /></a>&nbsp;&nbsp;&nbsp;<a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740360789199362"><img src="http://lh4.google.com/image/todd.huss.work/RjfPDOyMCgI/AAAAAAAAABQ/9u3TluXmSCg/s144/sppoverview-new.jpg" /></a></p>
<p>The city page:</p>
<p><a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740360789199378"><img src="http://lh4.google.com/image/todd.huss.work/RjfPDOyMChI/AAAAAAAAABY/tEaT0B4dtqM/s144/city-old.jpg" /></a>&nbsp;&nbsp;&nbsp;<a href="http://picasaweb.google.com/todd.huss.work/GreatSchools20032007/photo#5059740360789199394"><img src="http://lh4.google.com/image/todd.huss.work/RjfPDOyMCiI/AAAAAAAAABg/mxwCSgWdj4s/s144/city-new.jpg" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=CTjMNxHH"><img src="http://feeds.feedburner.com/~f/thuss?i=CTjMNxHH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=8lpwHwYo"><img src="http://feeds.feedburner.com/~f/thuss?i=8lpwHwYo" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=Z8CPReqp"><img src="http://feeds.feedburner.com/~f/thuss?i=Z8CPReqp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=azEVK3I4"><img src="http://feeds.feedburner.com/~f/thuss?i=azEVK3I4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=t5HxSRfp"><img src="http://feeds.feedburner.com/~f/thuss?i=t5HxSRfp" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/greatschools-wins-the-webby-peoples-voice-award/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/greatschools-wins-the-webby-peoples-voice-award</feedburner:origLink></item>
		<item>
		<title>Search engine cloaking, it’s the intent that matters</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/109620062/search-engine-cloaking-its-the-intent-that-matters</link>
		<comments>http://gabrito.com/post/search-engine-cloaking-its-the-intent-that-matters#comments</comments>
		<pubDate>Tue, 17 Apr 2007 01:01:32 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Search Engine Optimization]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/search-engine-cloaking-its-the-intent-that-matters</guid>
		<description>Back at the end of 2005 I wrote a short post titled Cloaking, no need to be ashamed and now in 2007 even more big sites are practicing some form of search engine crawler targeted cloaking. Yet still most SEO&amp;#8217;s will give you a blanket answer and tell you to avoid cloaking so you don&amp;#8217;t [...]</description>
			<content:encoded><![CDATA[<p>Back at the end of 2005 I wrote a short post titled <a href="http://gabrito.com/post/cloaking-no-need-to-be-ashamed">Cloaking, no need to be ashamed</a> and now in 2007 even more big sites are practicing some form of <a href="http://en.wikipedia.org/wiki/Cloaking">search engine crawler targeted cloaking</a>. Yet still most SEO&#8217;s will give you a blanket answer and tell you to avoid cloaking so you don&#8217;t get delisted. I take a more pragmatic view and experience has taught me that certain forms of cloaking can be good!<br />
<span id="more-174"></span><br />
Cloaking all comes down to intent and to that end I&#8217;d like to illustrate a few legitimate (in my opinion) forms of cloaking in the real world:</p>
<p><!--adsense--></p>
<p>1. <strong><a href="http://www.amazon.com">Amazon.com</a></strong>: set your user agent to Googlebot and you won&#8217;t see a search box anymore. Crawlers don&#8217;t do forms and Amazon saves some bandwidth.<br />
2. <strong><a href="http://www.yahoo.com">Yahoo.com</a></strong>: almost every link is rewritten to go through a click tracking redirect but not so for crawlers. Yahoo doesn&#8217;t count the clicks from crawlers which is good for their metrics and the sites they link to get non redirected inbound links.<br />
3. <strong><a href="http://www.salon.com">Salon.com</a></strong>: crawlers get the real home page without having to see a full page ad first. I think I&#8217;ll start surfing Salon as Googlebot from now on <img src='http://gabrito.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
4. <strong><a href="http://www.cnn.com">CNN.com</a>, <a href="http://www.msn.com">MSN</a>, <a href="myspace.com">Myspace</a>, and <a href="http://www.ebay.com">EBay.com</a></strong>: crawlers don&#8217;t get served ad serving code saving bandwidth.</p>
<p>In all of the above cases these sites are serving adjusted content targeted to search engine user agents and generally it&#8217;s for the good. In the end the decision to cloak or not all comes down to good judgment and intent. If it helps crawlers avoid duplicate content or saves bandwidth then we shouldn&#8217;t be so quick to write off cloaking just because it has such a negative connotation. That said, if there&#8217;s any doubt in your mind be very weary and seek expert opinions because getting delisted for bad cloaking can result in a lot of lost revenue!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=NmRCbR1k"><img src="http://feeds.feedburner.com/~f/thuss?i=NmRCbR1k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=viSvESvZ"><img src="http://feeds.feedburner.com/~f/thuss?i=viSvESvZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=BWk7R9dj"><img src="http://feeds.feedburner.com/~f/thuss?i=BWk7R9dj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=2VIUH0DV"><img src="http://feeds.feedburner.com/~f/thuss?i=2VIUH0DV" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=wBjSI3KH"><img src="http://feeds.feedburner.com/~f/thuss?i=wBjSI3KH" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/search-engine-cloaking-its-the-intent-that-matters/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/search-engine-cloaking-its-the-intent-that-matters</feedburner:origLink></item>
		<item>
		<title>Bay Area Indie Rock Bandega Style</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/101556207/bay-area-indie-rock-bandega-style</link>
		<comments>http://gabrito.com/post/bay-area-indie-rock-bandega-style#comments</comments>
		<pubDate>Wed, 14 Mar 2007 05:08:04 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/bay-area-indie-rock-bandega-style</guid>
		<description>My good friends in the east bay have just debuted their new Ruby on Rails based site Bandega :: never miss a show again! If you&amp;#8217;re a San Francisco Bay Area resident that loves indie rock and wants to keep track of your favorite bands swing by Bandega and check them out!</description>
			<content:encoded><![CDATA[<p>My good friends in the east bay have just debuted their new Ruby on Rails based site <a href="http://bandega.com/">Bandega :: never miss a show again</a>! If you&#8217;re a San Francisco Bay Area resident that loves indie rock and wants to keep track of your favorite bands swing by <a href=" http://bandega.com/">Bandega</a> and check them out!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=m40Nz7WE"><img src="http://feeds.feedburner.com/~f/thuss?i=m40Nz7WE" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=wGDA4YZU"><img src="http://feeds.feedburner.com/~f/thuss?i=wGDA4YZU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=acps0fNp"><img src="http://feeds.feedburner.com/~f/thuss?i=acps0fNp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=cNf3GLFW"><img src="http://feeds.feedburner.com/~f/thuss?i=cNf3GLFW" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=WCDNuXit"><img src="http://feeds.feedburner.com/~f/thuss?i=WCDNuXit" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/bay-area-indie-rock-bandega-style/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/bay-area-indie-rock-bandega-style</feedburner:origLink></item>
		<item>
		<title>Search Engine Friendly URLs with Ruby on Rails</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/86634224/search-engine-friendly-urls-in-rails</link>
		<comments>http://gabrito.com/post/search-engine-friendly-urls-in-rails#comments</comments>
		<pubDate>Mon, 05 Feb 2007 04:58:53 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Search Engine Optimization]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/search-engine-friendly-urls-in-rails</guid>
		<description>Update 2/5/07: I&amp;#8217;ve since discovered five plugins that address this very problem with slightly different approaches (the latter two store a permalink in the table, good for mutable titles):

acts_as_sluggable
acts_as_urlnameable
acts_as_slugable
acts_as_friendly_param
permalink_fu

Obie&amp;#8217;s recent post on search engine friendly URL&amp;#8217;s in Ruby on Rails 1.2 and greater couldn&amp;#8217;t have been more timely. I was about to tackle search engine [...]</description>
			<content:encoded><![CDATA[<p><strong>Update 2/5/07</strong>: I&#8217;ve since discovered five plugins that address this very problem with slightly different approaches (the latter two store a permalink in the table, good for mutable titles):</p>
<ul>
<li><a href="http://tore.darell.no/pages/5-acts-as-sluggable">acts_as_sluggable</a></li>
<li><a href="http://gabriel.gironda.org/articles/2006/03/09/acts_as_urlnameable-released">acts_as_urlnameable</a></li>
<li><a href="http://multi-up.ca/code/">acts_as_slugable</a></li>
<li><a href="http://www.chrisfarms.com/2007/2/11/seo-friendly-urls-in-rails">acts_as_friendly_param</a></li>
<li><a href="http://mephistoblog.com/2007/1/14/improved-url-escaping-for-permalinks">permalink_fu</a>
</ul>
<p><a href="http://www.jroller.com/page/obie?entry=seo_optimization_of_urls_in">Obie&#8217;s recent post on search engine friendly URL&#8217;s in Ruby on Rails 1.2 and greater</a> couldn&#8217;t have been more timely. I was about to tackle search engine friendly URL&#8217;s on my little local <a href="http://gearandboats.com/">san francisco bay area boating classifieds</a> site and after reading his blog post, 15 minutes later it was done. Here&#8217;s the old URL structure:<br />
<span id="more-172"></span><br />
<a href="http://gearandboats.com/forums/1/topics/51">http://gearandboats.com/forums/1/topics/51</a></p>
<p>and the new (longer for humans but much better for SEO):</p>
<p><a href="http://gearandboats.com/forums/1-boats/topics/51-fantasia-35-mark-ii-cruiser">http://gearandboats.com/forums/1-boats/topics/51-fantasia-35-mark-ii-cruiser</a></p>
<p>The most important thing is that the URL&#8217;s are backwards compatible because everything after the ID is ignored which is key for pages that are already in the search engines!</p>
<p><!--adsense--></p>
<p>To achieve this I combined <a href="http://www.jroller.com/page/obie?entry=seo_optimization_of_urls_in">Obie&#8217;s approach</a> with <a href="http://mephistoblog.com/2007/1/14/improved-url-escaping-for-permalinks">Ricks Permalink_fu plugin</a> (for converting text to permalinks):</p>
<pre>script/plugin install http://svn.techno-weenie.net/projects/plugins/permalink_fu</pre>
<p>Then in my topic.rb model object I do:<br />
<code><br />
def to_param<br />
&nbsp;&nbsp;"#{id}-#{PermalinkFu.escape(title)}"<br />
end<br />
</code><br />
and I double checked to make sure that the views always call link_to passing the model object rather than the ID (so that the to_param method has access to the id and the title). Fortunately <a href="http://beast.caboo.se/">beast.caboo.se</a> (which is what I based my site on) make heavy use of named routes:</p>
<p><code><%= link_to h(topic.title), topic_path(@forum, topic) %></code></p>
<p>After that I was pretty much done but I had some really long URL&#8217;s so I truncated the title to the first 5 words by changing <code>PermalinkFu.escape(title)</code><br />
to <code>PermalinkFu.escape(title.split[0..4].join(&#8217; &#8216;))</code>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=YhqYkuyx"><img src="http://feeds.feedburner.com/~f/thuss?i=YhqYkuyx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=AIbo4qe8"><img src="http://feeds.feedburner.com/~f/thuss?i=AIbo4qe8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=6iQBSL1g"><img src="http://feeds.feedburner.com/~f/thuss?i=6iQBSL1g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=CLznz4Ac"><img src="http://feeds.feedburner.com/~f/thuss?i=CLznz4Ac" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=BAb54kLG"><img src="http://feeds.feedburner.com/~f/thuss?i=BAb54kLG" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/search-engine-friendly-urls-in-rails/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/search-engine-friendly-urls-in-rails</feedburner:origLink></item>
		<item>
		<title>Ruby on Rails Dreamhost plugin</title>
		<link>http://feeds.feedburner.com/~r/thuss/~3/85675172/ruby-on-rails-dreamhost-plugin</link>
		<comments>http://gabrito.com/post/ruby-on-rails-dreamhost-plugin#comments</comments>
		<pubDate>Sat, 03 Feb 2007 01:03:50 +0000</pubDate>
		<dc:creator>Todd Huss</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Systems Administration]]></category>

		<guid isPermaLink="false">http://gabrito.com/post/ruby-on-rails-dreamhost-plugin</guid>
		<description>Update 2/11/07: Just to clarify, this plugin won&amp;#8217;t keep your Rails site running on Dreamhost if the sum of all your running processes exceeds 200MB (which is when their process monitor kills your processes). Run ps aux and sum the VSZ column and then divide by 1024. If you&amp;#8217;re pushing the limit and are only [...]</description>
			<content:encoded><![CDATA[<p><strong>Update 2/11/07</strong>: Just to clarify, this plugin won&#8217;t keep your Rails site running on Dreamhost if the sum of all your running processes exceeds 200MB (which is when their process monitor kills your processes). Run ps aux and sum the VSZ column and then divide by 1024. If you&#8217;re pushing the limit and are only running one Rails site you may want to look at another provider. If you&#8217;re running multiple Rails sites, run each site under a different user (one account can create many users).</p>
<p>Per <a href="http://subtlegradient.com/">Thomas Aylott&#8217;s</a> suggestion on my previous post <a href="http://gabrito.com/post/keeping-rails-running-at-dreamhost-part-2">Keeping Rails Running at Dreamhost Part 2</a> I&#8217;ve decided to release my <a href="http://gabrito.com/svn/plugins/dreamhost">Dreamhost signal handling code as a Rails plugin</a>. I&#8217;m using it on a <a href="http://gearandboats.com">Rails 1.2.1</a> site and a <a href="http://windandtides.com">Rails 1.1.6</a> site.<br />
<span id="more-171"></span><br />
<!--adsense--></p>
<p>Here&#8217;s the deal:</p>
<p>1. Get your Rails site running on Dreamhost (<a href="http://wiki.dreamhost.com/index.php/Ruby_on_Rails">the wiki should you get you there</a>).<br />
2. Once you&#8217;ve got it working, if you experience occasional 500 errors try my signal handling plugin. I still had 500 errors with the <a href="http://wiki.dreamhost.com/index.php/Ruby_on_Rails">frao_handler</a> approach described on the wiki, but if my plugin doesn&#8217;t work for you it can&#8217;t hurt to try it.</p>
<p>Here&#8217;s how to install the plugin:</p>
<pre>script/plugin install http://gabrito.com/svn/plugins/dreamhost</pre>
<p>With the plugin installed, the dispatch.fcgi will defer exiting when Dreamhost sends your dispatch.fcgi process a TERM signal if it is in the middle of handling a request, otherwise it behaves normally. This has reduced the 500 error rate on my two rails based sites to zero, your mileage may vary though. If you still have problems please don&#8217;t comment here and say it doesn&#8217;t work, instead figure out the problem and email a patch to thuss [at] gabrito [o] com!</p>
<p>The subversion repo for the plugin is at <a href="http://gabrito.com/svn/plugins/dreamhost">http://gabrito.com/svn/plugins/dreamhost</a>. If you have other Dreamhost related fixes that make sense for this plugin send them to me and I&#8217;ll incorporate them.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/thuss?a=OZzk9aNb"><img src="http://feeds.feedburner.com/~f/thuss?i=OZzk9aNb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=D1w8CN6q"><img src="http://feeds.feedburner.com/~f/thuss?i=D1w8CN6q" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=0ydnWGn5"><img src="http://feeds.feedburner.com/~f/thuss?i=0ydnWGn5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=d6tKaKfY"><img src="http://feeds.feedburner.com/~f/thuss?i=d6tKaKfY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/thuss?a=yYP9wSga"><img src="http://feeds.feedburner.com/~f/thuss?i=yYP9wSga" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://gabrito.com/post/ruby-on-rails-dreamhost-plugin/feed</wfw:commentRss>
		<feedburner:origLink>http://gabrito.com/post/ruby-on-rails-dreamhost-plugin</feedburner:origLink></item>
	</channel>
</rss>
