<?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>somedirection &#187; Web Development</title>
	<atom:link href="http://somedirection.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://somedirection.com</link>
	<description></description>
	<lastBuildDate>Mon, 19 Jul 2010 21:21:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4251</generator>
		<item>
		<title>Google Live Search Bookmarklet: Liveify</title>
		<link>http://somedirection.com/2009/09/17/google-live-search-bookmarklet-liveify/</link>
		<comments>http://somedirection.com/2009/09/17/google-live-search-bookmarklet-liveify/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 01:28:38 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://somedirection.com/?p=432</guid>
		<description><![CDATA[The other day I came upon an article that brought to light a hidden google feature for &#8220;live search&#8221; over at Search Engline Land Find What’s New In The Last Minute Or Second. Search results are only as good as their relevancy. Sometimes the highest ranking results are stale but the google spider seems to [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I came upon an article that brought to light a hidden google feature for &#8220;live search&#8221; over at Search Engline Land <a href="http://searchengineland.com/searching-google-in-past-minutes-or-seconds-25764">Find What’s New In The Last Minute Or Second</a>.</p>

<p>Search results are only as good as their relevancy. Sometimes the highest ranking results are stale but the google spider seems to like it regardless. If i&#8217;m not happy w/ results or I need timely results I find myself searching on <a href="http://search.twitter.com">Twitter</a> or <a href="http://delicious.com">Delicious</a> to get some good &#8216;ol human suggestions. </p>

<p>Now that I can get timely Google results I&#8217;ll add this tool in my arsenal. Only thing it&#8217;s a pain in the ass to remember the extra get params (<b>&amp;tbs=qdr:X##&amp;tbo=1</b>) that Google needs appended to the given search url so I made a bookmarklet to make things KISS. After your search, just trigger the bookmarklet (defaults to 1 day) and go from there.</p>

<p><a href="javascript:window.location.href=document.location.href+'&#038;tbs=qdr:d&#038;tbo=1';"><strong>Google Liveify</strong></a> &laquo; <em>drag to your toolbar</em></p>

<h3>Google Live Reference</h3>

<p>Just add these to the end of your search url if you want to override the 24hour default.</p>

<p>&amp;tbs=qdr:<strong>X##</strong>&amp;tbo=1</p>

<p>The <strong>X##</strong> portion gets replaced with:</p>

<ul>
<li>s## for number of seconds in the past: &amp;tbs=qdr:<strong>s45</strong>&amp;tbo=1</li>
<li>n## for number of minutes &amp;tbs=qdr:<strong>n5</strong>&amp;tbo=1</li>
<li>h## for number of hours &amp;tbs=qdr:<strong>h2</strong>&amp;tbo=1</li>
</ul>

<p>You get the idea. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2009/09/17/google-live-search-bookmarklet-liveify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LazyTagger, Get the most out of tagging on Delicious &#8211; Redux</title>
		<link>http://somedirection.com/2009/07/16/lazytagger-get-the-most-out-of-tagging-on-delicious/</link>
		<comments>http://somedirection.com/2009/07/16/lazytagger-get-the-most-out-of-tagging-on-delicious/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 05:00:59 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Life Hacks]]></category>
		<category><![CDATA[Shameless Promotion]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[del.icio.us]]></category>
		<category><![CDATA[lazy]]></category>
		<category><![CDATA[tagger]]></category>

		<guid isPermaLink="false">http://somedirection.com/?p=287</guid>
		<description><![CDATA[Over a year ago I put out a bookmarklet that I used for delicious. Then delicious did a redesign which broke the bookmarklet. Finally I got around to fixing it. Here&#8217;s the new bookmarklet. Enjoy! picture courtesy of bripblap.com So I have a confession to make, I love delicious, but I&#8217;m lousy at tagging bookmarks. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Over a year ago</strong> I put out a bookmarklet that I used for delicious. Then delicious did a redesign which broke the bookmarklet. Finally I got around to fixing it. Here&#8217;s the new bookmarklet. Enjoy!</p>

<div class="right" style="margin: 0 0 10px 10px;">
<img style="border:2px solid #cacaca;" src="http://somedirection.com/wp-content/uploads/2008/07/redneckcat.jpg" alt="redneckcat.jpg" border="0" width="250" />
<p class="small">picture courtesy of <a href="http://www.bripblap.com/">bripblap.com</a></p>
</div>

<p>So I have a confession to make, I love delicious, but I&#8217;m lousy at tagging bookmarks. I have a horrible memory so in my travels (and I delicious links a lot) I find myself wanting to tag a bookmark with as many keywords as possible on some off chance I don&#8217;t know what to search on to dig up the particular bookmark I&#8217;m trying to retrieve. I end up manually toggling every popular tag that is shown on a given post. It&#8217;s too time consuming for me.</p>

<p>I&#8217;ve been working with <a href="http://jquery.com">jQuery</a> and bookmarklets <em>a lot</em> lately so I had the idea of leveraging the two to create my own LazyTagger bookmarklet for <a href="http://del.icio.us">Del.icio.us</a>.</p>

<h3>The LazyTagger process is simple</h3>

<ol>
<li>You must have the <a href="http://del.icio.us/help/buttons">Del.icio.us &#8216;post&#8217; bookmarklet</a> installed. Try my customized version (does away w/ the popup window which I find annoying)
<a href="javascript:(function(){javascript:(function(){f='http://delicious.com/save?url='+encodeURIComponent(window.location.href)+'&#038;title='+encodeURIComponent(document.title)+'&#038;v=5&#038;';a=function(){location.href=f+'jump=yes'};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a()}})()})();">post to delicious</a> &laquo; <b>drag this to your toolbar</b></li>
<li>Drag the LazyTagger bookmarklet to your browser <a rel="facebox" href="http://somedirection.com/wp-content/uploads/2008/07/toolbar.png">bookmarks toolbar</a>
<a title="LazyTagger" href="javascript:alert('replace me with pasted code!');"><img src="http://somedirection.com/wp-content/uploads/2008/07/lazy-tagger-btn.png" border="0" width="200" alt="LazyTagger"></a>
<br class="clear"/></li>
<li>Copy and paste this code into the &#8216;location&#8217; of your newly created bookmark &#8211; you&#8217;re going to have to go and edit the bookmark manually from the browser. This has to be done to the avoid character limit on drag-and-drop bookmarklets.<br />
<div class='code_parent'><div class='code_child'><code><pre>javascript:var%20s=document.createElement('script');s.setAttribute('src','http://code.jquery.com/jquery-latest.min.js');document.body.appendChild(s);s.onload=function(){var%20tags=[];$('#save-reco-tags%20ul.tag-list%20li,#save-pop-tags%20ul.tag-list%20li').addClass("on").each(function(){tags.push($(this).text().match(/\D*/g)[0]);});tagit=tags.join('%20');$('input#tags').val('').val(tagit+'%20').focus();};void(s);</pre></code></div></div></li>
<li><strong>&#8216;post to delicious&#8217;</strong> just like you normally would</li>
<li>When you&#8217;re at delicious, click the <strong>LazyTagger</strong> bookmarklet</li>
<li>All of the <a rel="facebox" href="http://somedirection.com/wp-content/uploads/2009/07/Picture-7.png">popular and recommended tags</a> will be selected automatically. Laziness rocks.</li>
<li>After all of the tags are toggled the focus will be placed on the tags input so you can begin typing any other tags you deem necessary.</li>
</ol>

<p>That&#8217;s LazyTagger. I&#8217;ve been using it for a long time and I can honestly say I don&#8217;t think I could go back. Feedback appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2009/07/16/lazytagger-get-the-most-out-of-tagging-on-delicious/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oh no my site is down! Be notified as soon as it happens.</title>
		<link>http://somedirection.com/2008/09/30/oh-no-my-site-is-down-be-notified-as-soon-as-it-happens/</link>
		<comments>http://somedirection.com/2008/09/30/oh-no-my-site-is-down-be-notified-as-soon-as-it-happens/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 00:10:53 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[montastic]]></category>
		<category><![CDATA[up-time]]></category>
		<category><![CDATA[website monitoring]]></category>

		<guid isPermaLink="false">http://somedirection.com/?p=302</guid>
		<description><![CDATA[These are exciting times. Halloween is my favorite holiday, not because I like blood and guts or horror movies or scaring people. It&#8217;s when the companies I do work for make $$$$$$. Plus, it&#8217;s a fun holiday to just let loose, relax and have fun. Who doesn&#8217;t like a costume party? Although the days of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/splat/282780263/"><img class="img pic right" src="http://farm1.static.flickr.com/95/282780263_c2898aaa9d_m.jpg" alt="Halloween Party, Ashley and I" /></a>
These are exciting times. <strong>Halloween is my favorite holiday</strong>, not because I like blood and guts or horror movies or scaring people. It&#8217;s when the companies I do work for make $$$$$$. Plus, it&#8217;s a fun holiday to just let loose, relax and have fun. Who doesn&#8217;t like a costume party? Although the days of <a href="http://flickr.com/photos/somedirection/sets/1002315/">throwing</a> <a href="http://flickr.com/photos/somedirection/sets/1256990/">parties</a> has passed, I still eagerly anticipate the holiday. I honed my skills as a web developer on a <a href="http://frightcatalog.com">few</a> <a href="http://costumzee.com">big</a> <a href="http://www.costumes4fun.com/">Halloween</a> <a href="http://importcostumes.com">sites</a>.</p>

<p>October pwns. The climate cools to the point where it&#8217;s actually enjoyable, leaves turn here in New England, baseball playoffs, and Halloween to name a bit of awesomeness. The lovely October holiday has kept a roof over my head since I graduated from <a href="http://wpi.edu">WPI</a>, minus a short stint <a href="http://quibblo.com">distracting tweens</a>.</p>

<p>On the eve of October, it&#8217;s worth mentioning that if you work with websites that <a href="http://siteanalytics.compete.com/frightcatalog.com+importcostumes.com+costumzee.com/?metric=uv">spike ginormously</a> in a short amount of time that <strong>up-time</strong> is critical. Each minute of downtime can have huge revenue ramifications.</p>

<p>At <a href="http://frightcatalog.com">Fright Catalog</a> I employed a free way of instantly being alerted via txt message if any of our sites were struggling. </p>

<h2>Montastic</h2>

<p><a href="http://montastic.com"><img class="img right" src="http://www.montastic.com/images/montasticman.jpg" alt="" /></a>
<a href="http://montastic.com">Montastic</a> is a free service that will constantly ping your domain and alert you via email when there is a problem. It&#8217;s rock solid and it just <strong>works</strong>. </p>

<h3>Send a text to my iPhone</h3>

<p>It took a bit of research to figure out which email address on AT&amp;T worked with my iPhone but after testing out a few:</p>

<ul>
<li><del>phone#@mmode.com</del></li>
<li><del>phone#@txt.att.com</del></li>
<li><del>phone#@mms.att.com</del></li>
<li>phone#@cingularme.com &#8211; works, but on it&#8217;s way out</li>
</ul>

<p>I finally found a winner: <strong>phone#@txt.att.net</strong> (Thanks to Ryan for the update)</p>

<p>It&#8217;s not sexy but it will work as an email address that when emailed will send an MMS message to your iPhone.</p>

<p>I&#8217;ve seen the recently popular <a href="http://downforeveryoneorjustme.com/">downforeveryoneorjustme.com</a> advertise <a href="http://uptimeparty.com/">uptimeparty.com</a>. They&#8217;ll let you monitor 1 site for free, but otherwise you pay. <a href="http://montastic.com">Montastic</a> does the same job and it&#8217;s free, so it makes a great alternative.</p>

<p>Montastic has helped me sleep easy many-a-night if we hit some up-time snags earlier that day. It could easily be used for your own personal blog as well. </p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/09/30/oh-no-my-site-is-down-be-notified-as-soon-as-it-happens/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Speaking about jQuery</title>
		<link>http://somedirection.com/2008/07/28/speaking-about-jquery/</link>
		<comments>http://somedirection.com/2008/07/28/speaking-about-jquery/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 23:26:16 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Shameless Promotion]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://somedirection.com/?p=299</guid>
		<description><![CDATA[On August 7th I&#8217;ll be speaking at the Betahouse with John Resig about the jQuery Javascript Framework. My friend and colleague Patrick Haney put this talk together for Refresh Boston. Check out the Upcoming Event. Sign up sooner than later, as of this writing there were only about 20 slots left! I&#8217;ll be talking about [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jquery.com"><img class="pic right" src="http://somedirection.com/wp-content/uploads/2008/07/jquery-hat-90x73.png" alt="" border="0" width="90" height="73" /></a>
On August 7th I&#8217;ll be speaking at the <a href="http://betahouse.org">Betahouse</a> with <a href="http://ejohn.org">John Resig</a> about the <a href="http://jquery.com">jQuery</a> Javascript Framework. My friend and colleague <a href="http://notasausage.com">Patrick Haney</a> put this talk together for <a href="http://refreshboston.org/">Refresh Boston</a>.</p>

<p>Check out the <a href="http://upcoming.yahoo.com/event/925677">Upcoming Event</a>. Sign up sooner than later, as of this writing there were only about 20 slots left!</p>

<p>I&#8217;ll be talking about how I&#8217;ve used jQuery in some of my development projects and some tricks and best practices I&#8217;ve picked up along the way. I&#8217;ll also be talking about degradation, progressive enhancement and (time permitting) discuss how jQuery&#8217;s <a href="http://plugins.jquery.com/">Plugin</a> architecture lets small teams do a lot with little.</p>

<h3>Update</h3>

<p><a href="http://www.flickr.com/photos/somedirection/2798738397/" title="Resig and I by somedirection, on Flickr"><img class="pic right" src="http://farm4.static.flickr.com/3249/2798738397_3cee95a5dc_m.jpg" width="240" height="160" alt="Resig and I" /></a></p>

<p>The talk was a great success and I had a great time. I&#8217;ve posted my slides: <a href="http://kylebradshaw.com/presentations/jQuery/jQuery_Best_Practices.pdf">jQuery Best Practices</a>. Much thanks goes to the Betahouse for hosting the <a href="http://refreshboston.org">Refresh Boston</a> event.</p>

<p>As well as the accompanying demos on <strong>Progressive Enhancement</strong>:</p>

<ul>
<li><a href="http://kylebradshaw.com/presentations/jQuery/rating.php">jQuery Rating</a></li>
<li><a href="http://kylebradshaw.com/presentations/jQuery/comments.php">Toggle-able Forms</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/07/28/speaking-about-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My Kingdom For A Useful MySQL Client On OS X</title>
		<link>http://somedirection.com/2008/04/17/my-kingdom-for-a-useful-mysql-client-on-os-x/</link>
		<comments>http://somedirection.com/2008/04/17/my-kingdom-for-a-useful-mysql-client-on-os-x/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 03:31:56 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://somedirection.com/?p=275</guid>
		<description><![CDATA[I have a confession to make. SQL Server 2000 by MICRO$OFT is the best SQL application I have ever used. Select query text -> run (ctrl+enter) -> results. nothing out there does this simple behavior. For everything I love about OSX I do miss a couple of apps since I jumped ship in June of [...]]]></description>
			<content:encoded><![CDATA[<p>I have a confession to make. </p>

<blockquote>
  <p>SQL Server 2000 by <em>MICRO$OFT</em> is the best SQL application I have ever used. </p>
</blockquote>

<p>Select query text -> run (ctrl+enter) -> results. <strong>nothing</strong> out there does this simple behavior.</p>

<p>For everything I love about OSX I do miss a couple of apps since I jumped ship in June of &#8217;06. A decent SQL application is right up there at the top.</p>

<h3>The Candidates</h3>

<p><br class="clear"/></p>

<h4>Navicat</h4>

<p><img style="margin-bottom: 60px;" class="left" src="http://somedirection.com/wp-content/uploads/2008/04/navicat.png" alt="navicat.png" border="0" width="150" />&nbsp;I use Navicat on a daily basis but it drives me IN SANE. All I want is a simple application for running queries that&#8217;s easy to navigate and has plenty of hotkeys baked in so I can bounce around with ease and speed. Navicat fails miserably at this. I end up with 5 windows open just to do simple stuff, there&#8217;s not enough distinction between the behavior of browsing tables or writing queries. It&#8217;s a painful, verbose, hassle. Today I was so pumped I found a couple hotkeys that would save me a lot of time only to find out they were useless because they didn&#8217;t put focus on a textarea that would be painfully obvious to anyone actually using the program. Multiple queries require multiple windows and it all ends up being a CF in the end. I&#8217;m looking to replace Navicat pronto.</p>

<h4>Query Browser</h4>

<p><img class="left" src="http://somedirection.com/wp-content/uploads/2008/04/query-browser.png" alt="query_browser.png" border="0" width="150" />Query Browser could be awesome, but it comes up short. Again a lack of hot keys and cursor focus make using it a pain. Frequent crashes don&#8217;t help (it crashed on me twice while writing this). My biggest peeve by far is how Query Browser deals with errors. You end up getting this tiny sliver of an <a rel="facebox" href="http://somedirection.com/wp-content/uploads/2008/04/qb-error.png">
area dedicated to errors</a>. If you get a couple in a row they all stack and become unreadable and you can&#8217;t even resize the errors window space <em>OR</em> clear them out. I do like how Query Browser makes use of tabs for multiple queries instead of creating a new window each time (take note Navicat).</p>

<p><br class="clear"/></p>

<h4>phpMyAdmin</h4>

<p><img class="left" src="http://somedirection.com/wp-content/uploads/2008/04/pma-logo.gif" alt="pma_logo.gif" border="0" width="150" />I know other mac users who just use phpMyAdmin for all their SQL needs. I hate the lag of a web interface for something that is screaming for an application interface. Again, phpMyAdmin is sans hotkeys. That&#8217;s a deal breaker.</p>

<p><br class="clear"/></p>

<h3>Dismay</h3>

<p>If anyone can enlightened me please speak up. I&#8217;ve looked near and far and <a href="http://osx.iusethis.com/search?order=users&amp;q=mysql">this is the only list</a> of apps I have found and I assume it&#8217;s pretty comprehensive. I tried a couple of these applications out and found that I was <strong>already using the best available out there</strong>.</p>

<p>I&#8217;m very close to just retreating back to the <a rel="facebox" href="http://somedirection.com/wp-content/uploads/2008/04/console.png">basics</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/04/17/my-kingdom-for-a-useful-mysql-client-on-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery Ratings &#8211; A Progressive Enhancement Approach</title>
		<link>http://somedirection.com/2008/03/24/jquery-ratings-a-progressive-enhancement-approach/</link>
		<comments>http://somedirection.com/2008/03/24/jquery-ratings-a-progressive-enhancement-approach/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 12:26:01 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://somedirection.com/2008/03/24/jquery-ratings-a-progressive-enhancement-approach/</guid>
		<description><![CDATA[There are some site behaviors that are primed for progressive enhancement in this example we&#8217;ll look at a ratings system and how easy it is to transform a simple form to make it more visually appealing and also improve usability. For a simple rating system we want a radio button list (1-10) and a &#8216;vote&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>There are some site behaviors that are primed for progressive enhancement in this example we&#8217;ll look at a ratings system and how easy it is to transform a simple form to make it more visually appealing and also improve usability. For a simple rating system we want a radio button list (1-10) and a &#8216;vote&#8217; button to submit our rating. The html would look something like this:</p>

<div class='code_parent'><div class='code_child'><code><pre>&#60;form id="rate_this" action="/process/rating/" method="post">
    &#60;div id="rating_scores">
        &#60;label>&#60;input type="radio" value="1" name="rating" />1&#60;/label>
        &#60;label>&#60;input type="radio" value="2" name="rating" />2&#60;/label>
        &#60;label>&#60;input type="radio" value="3" name="rating" />3&#60;/label>
        &#60;label>&#60;input type="radio" value="4" name="rating" />4&#60;/label>
        &#60;label>&#60;input type="radio" value="5" name="rating" />5&#60;/label>
        &#60;label>&#60;input type="radio" value="6" name="rating" />6&#60;/label>
        &#60;label>&#60;input type="radio" value="7" name="rating" />7&#60;/label>
        &#60;label>&#60;input type="radio" value="8" name="rating" />8&#60;/label>
        &#60;label>&#60;input type="radio" value="9" name="rating" />9&#60;/label>
        &#60;label>&#60;input type="radio" value="10" name="rating" />10&#60;/label>
        &#60;input type="submit" value="Vote" />
    &#60;/div>
&#60;/form></pre></code></div></div>

<p>Which gives us this:</p>

<form id="rate_this" action="" method="post">
    <div id="rating_scores">
        <label><input type="radio" value="1" name="rating" />1</label>
        <label><input type="radio" value="2" name="rating" />2</label>
        <label><input type="radio" value="3" name="rating" />3</label>
        <label><input type="radio" value="4" name="rating" />4</label>
        <label><input type="radio" value="5" name="rating" />5</label>
        <label><input type="radio" value="6" name="rating" />6</label>
        <label><input type="radio" value="7" name="rating" />7</label>
        <label><input type="radio" value="8" name="rating" />8</label>
        <label><input type="radio" value="9" name="rating" />9</label>
        <label><input type="radio" value="10" name="rating" />10</label>        <input type="submit" value="Vote" />
    </div>
</form>

<p>A simple radio list and a simple button to submit the form.</p>

<p>How can we make this 100x&#8217;s better? Simply clicking on a number to submit the form automagically would be the easiest and most friendly user interaction. So we lean on jQuery to provide progressive enhancement. Using these methods we can create a rating behavior infinitely better and more appealing like this:</p>

<p><img src="http://somedirection.com/wp-content/uploads/2008/03/rating-enhanced.png" alt="rating_enhanced.png" border="0" width="500" height="49" /></p>

<h3>jQuery</h3>

<p><div class='code_parent'><div class='code_child'><code><pre>// hides the vote button
  $("form#rate<em>this input#vote</em>button").hide();</p>

<p>// hides all radio buttons
    $("form#rate_this input[@type=radio]").hide();</p>

<p>// format the labels to look clickable
    $("form#rate<em>this label").addClass("contest</em>selector");</p>

<p>// change the formatting of the label when it is hovered over
// by assigning a different class
    $("label.selector, #rating<em>scores a").hover(function(){ 
      $(this).addClass("selector</em>h");
      }, function() {
      $(this).removeClass("selector_h");<br />
    });</p>

<p>// submit the form when a label is clicked
    $("form#rate<em>this label").click(function() {
      $(this).find("input").attr("checked","checked");
      $("input#vote</em>button").trigger('click');
    });
}</pre></code></div></div></p>

<h3>CSS</h3>

<p><div class='code_parent'><div class='code_child'><code><pre>#rating<em>scores {
margin: 20px 0 10px;
border: 1px solid #cacaca;
background-image: url("/images/rating</em>scores<em>bck.gif");
background-position: 0% 45%;
background-repeat: no-repeat;
background-color: #efefef;
padding: 5px 0;
padding-left: 130px;
}
.contest</em>selector {
color: #000;
text-transform: uppercase;
cursor: pointer;
font-size: 167%;
font-weight:bold;
padding: 10px 13px 9px;
margin: 1px;
}
.contest<em>selector</em>h {
background: #c00;
border: 1px solid #a00;
background: #00c705;
border: 1px solid #008004;
color: #fff !important;
text-decoration: none !important;
margin: 0px;
}</pre></code></div></div></p>

<p>Why hide all the radio buttons? Aside from the fact that they&#8217;re ugly we don&#8217;t need to worry about them because we&#8217;re using &lt;label&rt;s effectively.</p>

<p>The labels are surrounding the buttons with so they will still get focus
<div class='code_parent'><div class='code_child'><code><pre>&#60;label>&#60;input type="radio" value="1" name="rating" />1&#60;/label></pre></code></div></div></p>

<p>We let the user know that the numbered hot spots are indeed buttons by applying a mouseover behavior.</p>

<p>We submit the form when a label is clicked &#8211; not when the Vote Now button is pressed.</p>

<p>If Javascript was not available or the jQuery rules were not applied then the html would perfectly degrade and would be entirely usable otherwise.</p>

<p>For an example of this method in action venture over to the <a href="http://www.costumzee.com/costume-contest/">Costumzee Costume Contest</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/03/24/jquery-ratings-a-progressive-enhancement-approach/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Debugging Internet Explorer  CSS &#8211; My Methods</title>
		<link>http://somedirection.com/2008/03/22/debugging-internet-explorer-css-my-methods/</link>
		<comments>http://somedirection.com/2008/03/22/debugging-internet-explorer-css-my-methods/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 22:27:47 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://somedirection.com/2008/03/22/debugging-internet-explorer-css-my-methods/</guid>
		<description><![CDATA[I recently spent the day debugging Internet Explorer. I save it for the absolute last step in front end development before pushing a site live. I want to avoid Explorer as much as possible. I figured my process would be worth sharing. This is my setup. MacBook running Firefox with the Web Developer Plugin and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/somedirection/2342051020/" title="How I Debug by somedirection, on Flickr"><img class="pic" src="http://farm4.static.flickr.com/3247/2342051020_8d3519fb22.jpg" width="500" height="375" alt="How I Debug" /></a></p>

<p>I recently spent the day debugging Internet Explorer. I save it for the absolute last step in front end development before pushing a site live. I want to avoid Explorer as much as possible.</p>

<p>I figured my process would be worth sharing. This is my setup. </p>

<ol>
<li>MacBook running Firefox with the Web Developer Plugin and Firebug plugins installed.</li>
<li>Old Toshiba Laptop 1.8ghz barebones Windows XP installation with IE6</li>
<li>Parallels installed on the MacBook with IE7 on Windows XP SP2</li>
</ol>

<p>With this setup I can test for any modern browser with any kind of significant market share.</p>

<ul>
<li>Firefox Mac</li>
<li>Firefox Win</li>
<li>IE 6 + 7 (soon to be 8 as well)</li>
<li>Camino</li>
<li>Safari</li>
</ul>

<p>Debugging IE issues is probably the most painful thing about my job, but one that&#8217;s made a little bit easier because of my approach so I thought it&#8217;d be useful to share.</p>

<p>I develop 9-5 in Firefox so any rendering bugs usually come to my attention right away and I&#8217;ll fix them immediately. Camino is based on the same Gecko rendering engine so I don&#8217;t have to worry about anomalies there. Safari does a good job rendering everything and my colleagues use it as their day to day browser so we usually catch any rendering bugs that way.</p>

<p>Then it comes down to IE debugging. I only concern myself with IE6 and above, I can handle well for modern browsers, besides the market share of browsers that fall outside this range is really insignificant statistically. For small development teams it&#8217;s hardly worth the extra effort to pay attention to the long tail of browsers.</p>

<p>Looking at Google Analytics for a heavy traffic site that I work on:</p>

<p><strong>5.6m Visitors</strong> from 8/1/07 &#8211; 3/20/08 </p>

<p><img class="pic" src="http://somedirection.com/wp-content/uploads/2008/03/6mo-browsers.png" alt="6+mo-browsers.png" border="0" width="553" height="147" />&lt;br/>
<em>IE is still dominant &#8211; so testing for these browsers is essential.</em></p>

<p><img class="pic" src="http://somedirection.com/wp-content/uploads/2008/03/ie-last-6-mo.png" alt="ie-last-6+-mo.png" border="0" width="553" height="118" />&lt;br/>
<em>If we look at the last 6 months, IE7.0 and IE6.0 are neck and neck ~50/50, however:</em></p>

<p><img class="pic" src="http://somedirection.com/wp-content/uploads/2008/03/ie-last-3mo.png" alt="ie-last-3mo.png" border="0" width="555" height="120" />&lt;br/>
<em>In the first 3+ months of 2008 you can see that IE7 has taken a significant leap above IE6 in the market 61/39 and IE 5.5 has gone to a 0.12% market share to a meager 0.07% market share.</em></p>

<p>That leaves us only concerned with IE6 and IE7 (and hopefully upcoming IE8 will be a non factor). The best way to deal with CSS and IE is by leveraging something called <a href="http://www.quirksmode.org/css/condcom.html">conditional comments</a></p>

<p>Before conditional comments I relied on browser hacks to differentiate between browsers, but conditional comments are a lot easier and so much more effective. Currently I use these declarations:</p>

<div class='code_parent'><div class='code_child'><code><pre>&#60;!--[if IE 6]>
&#60;link rel="stylesheet" href="/stylesheets/ie6.css" type="text/css" />
&#60;![endif]-->
&#60;!--[if IE 7]>
&#60;link rel="stylesheet" href="/stylesheets/ie7.css" type="text/css" />
&#60;![endif]--></pre></code></div></div>

<p>I start with IE6 and clean up any rendering issues &#8211; then I move on to IE7, which invariably has fewer issues to deal with. Because IE does not have a handy dandy tool like <a href="http://getfirebug.com/">Firebug</a> to help me diagnose the problem this process usually involves a lot of trial and error. It&#8217;s a very iterative process and one that my <a href="/2007/05/27/agile-development-workflow-part-1-setup/">Agile Development Workflow</a> is well suited for.</p>

<p>One technique I&#8217;ve found to be indispensable is assigning various background colors to the markup that I&#8217;m trying to debug. Often this is all I need to target CSS rules run amok. Over time you can avoid generating certain CSS + HTML that will break IE altogether &#8211; and that&#8217;s what separates the experts from novices. </p>

<p>Was this helpful? How do you approach debugging CSS in IE? Share!</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/03/22/debugging-internet-explorer-css-my-methods/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Structuring jQuery For Speed and Efficiency</title>
		<link>http://somedirection.com/2008/03/14/structuring-jquery-for-speed-and-efficiency/</link>
		<comments>http://somedirection.com/2008/03/14/structuring-jquery-for-speed-and-efficiency/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 23:04:18 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://somedirection.com/2008/03/14/structuring-jquery-for-speed-and-efficiency/</guid>
		<description><![CDATA[I jQuery. There I said it loud and clear across the Internet so everyone knows it. I don&#8217;t ever want to use another framework. When I work with large sites with many jQuery rules that have to be applied, sometimes this can cause sluggishness &#8211; especially if you&#8217;re using jQuery for progressive enhancement. I was [...]]]></description>
			<content:encoded><![CDATA[<p><img class="right" src="http://somedirection.com/wp-content/uploads/2008/03/jquery-logo.gif" alt="jQuery-logo.gif" border="0" width="132" height="132" />
I <img src="http://somedirection.com/wp-content/uploads/2008/03/heart.png" alt="love" border="0" width="16" height="16" /> jQuery. There I said it loud and clear across the Internet so everyone knows it. I don&#8217;t ever want to use another framework.</p>

<p>When I work with large sites with many jQuery rules that have to be applied, sometimes this can cause sluggishness &#8211; especially if you&#8217;re using jQuery for progressive enhancement.</p>

<p>I was recently hit with a performance snag with jQuery &#8211; I just had too much going on in my jrules.js file &#8211; this is what I use to apply all of my <abbr title="Document Object Model">DOM</abbr> methods with jQuery. jQuery performance is great &#8211; and with the  packed version it&#8217;s footprint is miniscule but when you parse a massive <abbr title="Document Object Model">DOM</abbr> and apply a ton of rules sluggishness ensues especially when using progressive enhancement to hide/show multiple objects.</p>

<p>Right now I have a jrules.js file that is big, mean and has over 200+ lines of jQuery goodness to apply every time a page loads. </p>

<p>I hit performance issues when I have pages with hundreds of tags in the markup and a ton of content &#8211; you can see where I&#8217;m going with this. </p>

<p>What I came up with and use for most of my recent projects is a way to pass over those jQuery rules that don&#8217;t <strong>need</strong> to be applied or even looked at on certain pages. This is how I go about it:</p>

<p>First I break up my rules according to what page they&#8217;re on. </p>

<div class='code_parent'><div class='code_child'><code><pre>document.ready(function() {

// GLOBAL

// HOME

// LOGIN

});</pre></code></div></div>

<p>If you can segregate rules and only apply them when they&#8217;re needed you&#8217;ll significantly improve the speed with which jQuery can handle it all, especially when you&#8217;re dealing with massive <abbr title="Document Object Model">DOM</abbr> trees.</p>

<p>I leverage top level CSS inheritance to bring it together. On my pages assign an ID to the body tag from which all my jQuery rules will be executed upon.</p>

<div class='code_parent'><div class='code_child'><code><pre>&#60;body id="home"></pre></code></div></div>

<p>You can use <a href="http://docs.jquery.com/Core/length">.length</a> or <a href="http://docs.jquery.com/Core/size">.size()</a> &#8211; they&#8217;re synonymous to test if the jQuery object is <span class="underline">avaiable</span> in the <abbr title="Document Object Model">DOM</abbr>, if it doesn&#8217;t exist jQuery doesn&#8217;t have to bother with it. </p>

<p>Rules only used on certain pages can now be filtered and jQuery can pass over huge blocks of declarations of whom we know don&#8217;t exist in the current <abbr title="Document Object Model">DOM</abbr> anyhow.</p>

<div class='code_parent'><div class='code_child'><code><pre>document.ready(function() {

// GLOBAL
// DOM elements that exist on every page

$("input[@type=password], input[@type=text]").addClass("text");

$("input[@type=password], input[@type=text], textarea").focus(function() {
    $(this).addClass("focus");
});

// HOME body#home

if ($("body#home").size()) {
    // only applies rules on the homepage
    $("p").hover(function() {
        $(this).addClass("change")
    }, function() {
        $(this).removeClass("change")
    );
}

// LOGIN

if ($("body#login").size()) {
    // only applies rules on the login page
}

});</pre></code></div></div>

<p>For simple pages with a few rules and a small <abbr title="Document Object Model">DOM</abbr> this is definitely overkill, but if you&#8217;ve noticed even a nano second of lag when jQuery applies your rules and see the <abbr title="Document Object Model">DOM</abbr> rearrange itself at page load try this out and let me know how it worked for you.</p>

<p>Last night when I attended a meeting of <a href="http://markupandstyle.org/">The Markup &amp; Style Society</a> at the <a href="http://www.filamentgroup.com/">Filament Group</a> office. I got a chance to speak with Mr. jQuery himself &#8211; <a href="http://ejohn.org">John Resig</a> about my performance issue and I shared my solution to the problem. I was unsure I approached it the best way and there wasn&#8217;t a better solution available out there, but he assured me the way I was going about it was sound so consider this method <strong>Resig Approved</strong>&trade;.</p>

<h3>UPDATE</h3>

<p>John alerted me to this: Seems that <a href="http://www.google.com/trends?q=jquery%2C+prototype">jQuery is now more popular than Prototype</a> &#8211; far as search queries go at least. Congrats John &amp; the jQuery team!</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/03/14/structuring-jquery-for-speed-and-efficiency/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Victoria&#8217;s Secret Doesn&#8217;t Know The Right Way To Build A Website, Or Just Doesn&#8217;t Care</title>
		<link>http://somedirection.com/2008/02/23/victorias-secret-doesnt-know-the-right-way-to-build-a-website-or-just-doesnt-care/</link>
		<comments>http://somedirection.com/2008/02/23/victorias-secret-doesnt-know-the-right-way-to-build-a-website-or-just-doesnt-care/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 23:05:10 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://somedirection.com/2008/02/23/victorias-secret-doesnt-know-the-right-way-to-build-a-website-or-just-doesnt-care/</guid>
		<description><![CDATA[I can&#8217;t help it, I&#8217;m a front end guy so as I peruse the web and I see something that sparks my interest I fire up Firebug, my go-to Firefox plugin to see the &#8220;meat and potatoes of a website&#8221;. Websites are like onions and I like to analyze the layers to get at the [...]]]></description>
			<content:encoded><![CDATA[<p><a class="right" href="http://victoriassecret.com"><img src='http://somedirection.com/wp-content/uploads/2008/02/vs.jpg' alt='VictoriasSecret.com' /></a>
I can&#8217;t help it, I&#8217;m a front end guy so as I peruse the web and I see something that sparks my interest I fire up Firebug, my go-to Firefox plugin to see the &#8220;meat and potatoes of a website&#8221;. Websites are like onions and I like to analyze the layers to get at the good stuff, deconstruct it, and understand it.</p>

<p>I work on <a href="http://yumdrop.com">Yumdrop.com</a>, a popular lingerie site. Often I&#8217;m out there looking to see what the competition is doing to see how we stack up and also evaluate how well we&#8217;re pushing the envelope in our particular niche. Victoria&#8217;s Secret is by far the leader in this industry as far as market share, but their website could&#8217;ve been built in 2002.</p>

<p>When I peeled back Giselle&#8217;s onion I was flabbergasted. I haven&#8217;t seen egregious CSS like this in a long time. As developers have embraced web standards over the years (something I have done from the start) and standards based practices have been understood and adopted, people have just gotten a better understanding of how it all comes together. You don&#8217;t see blatant misuse of CSS like this anymore.  Even basic knowledge of CSS inheritance could let them avoid this debacle.</p>

<p>On <a href="http://www2.victoriassecret.com/html/includes/globalstyles_normal.css">http://www2.victoriassecret.com/html/includes/globalstyles_normal.css </a>for example:
<pre style="font-size:10px">
.blacktext {color:#000000; font-family:Arial, Helvetica,sans-serif; font-size:10px; }
.blacktext2 {color:#000000; font-family:Arial, Helvetica,sans-serif; font-size:11px; font-weight:bold }
.blacktext3 {color:#000000; font-family:Arial, Helvetica,sans-serif; font-size:11px; }
.text2 {color:#333333; font-family:Arial, Helvetica,sans-serif; font-size:11px; text-decoration: none;}
.text3 {color:#333333; font : 10px/14px Arial, Helvetica, sans-serif; text-decoration: none;}
.textPink {color:#FF76A4; font-family:Arial, Helvetica,sans-serif; font-size:10px; }
.textPink11px {color:#FF76A4; font-family:Arial, Helvetica,sans-serif; font-size:11px; }
.textPinkBold {color:#FF76A4; font-family:Arial, Helvetica,sans-serif; font-weight:bold;font-size:11px; }
</pre></p>

<p>It goes on and on and makes me quite agitated <img src='http://somedirection.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>

<p>Turn off Javascript. They use it to write OUT their styling.</p>

<pre><script language="JavaScript">document.writeln("<link type='text/css' rel='stylesheet' href='" + appserver + "/html/includes/" + stylename + ".css'>");</script></pre>

<p><strong>No Javascript, No Styling, NO degradation</strong>. You end up with something like <strong><a href='http://somedirection.com/wp-content/uploads/2008/02/vs_nojs.png' title='Victorias Secret No Javascript'>THIS &raquo;</a></strong>. The complete header with site navigation and footer don&#8217;t even render, making the site pretty useless to navigate or use.</p>

<p>And as laughable as all this it keeps getting better!</p>

<p>The site navigation is 1 large image map! This is just not done in practice. How can screen readers access the content? How do visually impaired users shop?</p>

<p>Never mind degradation here, there are so many better ways to construct such navigation. Each time you visit a different department you must create a <em>whole</em> new image map image. What a waste of time. If your navigation changes,  you have to recreate all of the active department images all over again. With modern development techniques this just makes no sense.</p>

<p><img src="http://www2.victoriassecret.com/images/common/navbar/navbar.gif?" />
<img src="http://www2.victoriassecret.com/images/common/navbar/navbar_bra.gif" />
<img src="http://www2.victoriassecret.com/images/common/navbar/navbar_slp.gif" /></p>

<p>There&#8217;s just too much to point out so I&#8217;ll just list the rest I briefly spotted in the 5 minutes I looked..</p>

<ul>
<li>They&#8217;re using a centered div w/ css to center the containing wrapper, but they use tables for layout. </li>
<li>Extraneous use of classes all over the markup because they don&#8217;t understand inheritance.</li>
<li><a href="http://validator.w3.org/check?verbose=1&#038;uri=http%3A%2F%2Fwww.victoriassecret.com%2F">Validate much</a>? Of course not, are you even surprised though?</li>
</ul>

<p>As a web developer, you think that &#8220;doing things the right way&#8221; is part of building a successful web presence, but as time goes on I&#8217;m beginning to realize that it really <strong>doesn&#8217;t</strong> matter as much as we often think. I wonder if Victoria&#8217;s Secret developers know that it is not developed with the best practices, I wonder if they care. I wonder if they have an internal team or whether they just outsourced it to a very misguided web shop.</p>

<p>If anyone at VS wants me to scramble their onion, contact me. You deserve better.</p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/02/23/victorias-secret-doesnt-know-the-right-way-to-build-a-website-or-just-doesnt-care/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Camino Bitch-Slapped By BlackPlanet</title>
		<link>http://somedirection.com/2008/01/17/camino-bitch-slapped-by-blackplanet/</link>
		<comments>http://somedirection.com/2008/01/17/camino-bitch-slapped-by-blackplanet/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 00:50:28 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://somedirection.com/2008/01/17/camino-bitch-slapped-by-blackplanet/</guid>
		<description><![CDATA[I was reading a readwriteweb article (Perspective: Myspace Still Kicking Facebook&#8217;s Ass in Traffic) on social networks today and they showed some Hitwise data on the most popular social networks (see below). Chart From Hitwise I have a MySpace and Facebook profile but I never go on MySpace anymore since FB opened up their network [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading a readwriteweb article (<a href="http://www.readwriteweb.com/archives/myspace_still_kicking.php">Perspective: Myspace Still Kicking Facebook&#8217;s Ass in Traffic</a>) on social networks today and they showed some Hitwise data on the most popular social networks (see below).</p>

<p><img src='http://somedirection.com/wp-content/uploads/2008/01/social_hitwise.png' alt='social_hitwise.png' />
<em>Chart From Hitwise</em></p>

<p>I have a MySpace and Facebook profile but I never go on MySpace anymore since FB opened up their network to 3rd party applications. Plus being a web developer I can just tell that FB was <strong>built</strong> right &#8211; as opposed to Myspace which is a giant <strong>CF</strong>.</p>

<p>So I looked down the list:
<ol>
<li>Myspace &#8211; check, I have a profile</li>
<li>Facebook &#8211; check check, I go there constantly</li>
<li>Bebo &#8211; Popular in Britain, ok I&#8217;m familiar with it</li>
<li>BlackPlanet &#8211; ???</li>
</ol></p>

<p>So I figured I&#8217;d check it out. Then I was greeted with <strong>THIS</strong>
<img src='http://somedirection.com/wp-content/uploads/2008/01/bitch_slap.png' alt='Bitch Slap' />
<em>Bitch Slapped!!!</em></p>

<p><a href="http://caminobrowser.org"><img class="right" src='http://somedirection.com/wp-content/uploads/2008/01/camino.png' alt='Camino' /></a>
Como? Huh? They don&#8217;t support the latest version of <strong><a href="http://caminobrowser.org">Camino</a></strong>?</p>

<p>It&#8217;s pretty funny that they want you to upgrade to Firefox 2 when Firefox and Camino are both open source projects of the <a href="http://www.mozilla.org/">Mozilla Foundation</a> and share <em><strong>exactly the same</strong></em> Gecko <a href="http://en.wikipedia.org/wiki/Gecko_(layout_engine)">rendering</a> <a href="http://developer.mozilla.org/en/docs/Gecko_FAQ#What_is_Gecko.3F">engine</a>.</p>

<p>These days with <a href="http://www.webstandards.org/">standards based development processes</a> we don&#8217;t have to &#8220;browser sniff&#8221; any longer. If BlackPlanet didn&#8217;t get the memo,the right way to go about it is &#8220;feature sniffing&#8221; with locked down degradation. You should really look into Jeremy Keith&#8217;s <a href="http://www.amazon.com/DOM-Scripting-Design-JavaScript-Document/dp/1590595335/somedirection-20">DOM Scripting</a> and perhaps read <a href="http://alistapart.com">A List Apart</a> from time to time.  It really pisses me off when I run across this type of neglect on the Internet&#8230;</p>

<h3>Ongoing List of Neglect</h3>

<p>As I find these offenders the list will grow.
<ul>
<li>02/26/08 <a href='http://somedirection.com/wp-content/uploads/2008/03/makes_parties.png' title='MakesParties.com'>MakesParties.com</a></li>
<li>03/05/08 <a href='http://somedirection.com/wp-content/uploads/2008/03/comcast.png' title='Comcast.net'>Comcast.net</a></li>
</ul></p>
]]></content:encoded>
			<wfw:commentRss>http://somedirection.com/2008/01/17/camino-bitch-slapped-by-blackplanet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
