<?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>The Digital Life of Keith Baker.&#187; web Archives  &#8211; iKeif &#8211; tech and social media geek, mootools fan, and a ton of links</title>
	<atom:link href="http://ikeif.net/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://ikeif.net</link>
	<description>iKeif.net - Web developer, father, and brewer.</description>
	<lastBuildDate>Sat, 08 May 2010 03:07:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IE6, VML, AlphaImageLoader and You (and Your E-Commerce Baby)</title>
		<link>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/</link>
		<comments>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 06:30:16 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[alphaimageloader]]></category>
		<category><![CDATA[browser requirements]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[internet browsers]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[web accessibility]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=463</guid>
		<description><![CDATA[A constant debate is always &#8220;why support IE6? It&#8217;s expensive, it&#8217;s annoying.&#8221;
Now, I&#8217;m not disagreeing with that. I don&#8217;t like IE6. It&#8217;s old. It&#8217;s broken. I&#8217;d prefer it went away. Unfortunately, IE6 represents over 30% of all IE traffic (which represents roughly 64% of all internet browsers).
It&#8217;s not representative of my site.
If you pay attention [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>A constant debate is always &#8220;why support IE6? It&#8217;s expensive, it&#8217;s annoying.&#8221;</p>
<p>Now, I&#8217;m not disagreeing with that. I don&#8217;t like IE6. It&#8217;s old. It&#8217;s broken. I&#8217;d prefer it went away. Unfortunately, IE6 represents over 30% of all IE traffic (which represents roughly 64% of <a href="http://en.wikipedia.org/wiki/Usage_share_of_web_browsers">all internet browsers</a>).</p>
<h2>It&#8217;s not representative of my site.</h2>
<p>If you pay attention to your browser metrics, you can see that IE6 is not representative of your site. At all. You can see this as a green light to ignore IE6 (particularly if it&#8217;s an <em>intranet </em>or <em>members-only</em> site, as you can dictate browser requirements as a &#8220;bare-minimum&#8221;). If you&#8217;re a blog, I&#8217;m all for ignoring IE6. I encourage more sites to do it.</p>
<p>Now there is one slight flaw with that argument. What if your site gets dugg? Slashdotted? Attached to a virus and spread? Date Is ay it &#8211; maybe an article you write goes viral?</p>
<h2>Some Microsoft This Way Comes</h2>
<p>Outside of a sudden surge in popularity, the other *very realistic* look is e-commerce sites. I don&#8217;t care who you are, a dollar is a dollar, and as such your e-commerce site better accommodate every visitor. No flash reliance, no JavaScript reliance. Period. I don&#8217;t care about it looking the same, but I better be able to make a purchase via <a href="http://lynx.isc.org/">Lynx</a>. More importantly, any handicap should be accounted for (blind is the most often thought of). This is what we call <a href="http://www.w3.org/WAI/">Web Accessibility</a>. All angles should be covered, within reason. And IE6, regardless of your metrics, is within reason.</p>
<h2>AlphaImageLoader &#8211; Ye Olde Standard</h2>
<p>I think anyone who is &#8220;in the biz&#8221; knows about AlphaImageLoader. We&#8217;ve all done the CSS replacement. I helped adjust and edit a <a href="http://mootools.net/">MooTools Class</a> that utilized it to account for all sorts of PNG situations. It was our &#8220;standard&#8221; because it was able to account for IE6 with a minimal amount of effort. Except&#8230;<br />
AlphaImageLoader does not support background-repeat, or background-position. It requires set heights and widths. It requires one-off styling for images that are cropped. Plain and simple, it still sucked.</p>
<h2>VML &#8211; The New Contender</h2>
<p>I stumbled on a VML solution after researching a site to see how they were handling PNGs. It turns out they were utilizing <a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG</a>. I dug into VML vs. AlphaImageLoader and came across this article explaining the same thing &#8211; <a href="http://cfis.savagexi.com/2008/06/22/a-new-take-on-transparent-pngs-in-ie6-performance-and-vml">AlphaImageLoader or VML</a>.</p>
<p>The obvious is pointed out: AlphaImageLoader eats memory. VML adds bad markup to a page. IE6 does *not* cache the image (according to the article, at least).</p>
<p>So, we&#8217;re stuck with a memory hog or a lot of image requests against a server, which can add to a lot of bandwidth costs if your traffic spikes (it happens).</p>
<h2>Will The Real Slim Code Please Stand Up?</h2>
<p>After reviewing <a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG</a> a second time, he claims to &#8220;mostly&#8221; have fixed the caching issue. To be honest, with as much grief I&#8217;ve had from AlphaImageLoader and changes in creative layouts that require PNG transparency, it seems like a real replacement for AlphaImageLoader, loaded using JavaScript and conditional comments so <strong>ONLY</strong> IE6 takes the hit.</p>
<p><strong>The downfalls? </strong>No opacity on the VML. I haven&#8217;t looked into creating a container to wrap the VML and fading that, but call me crazy, it may not work. This means we may have to keep AlphaImageLoader around for a little while longer. I&#8217;m not sold that either solution will replace the other, but they both are going to be invaluable until IE6 goes the way of the dinosaur.</p>
<h2>Performance Concerns? Not with VML.</h2>
<p>Thank God someone else ran the numbers. <a href="http://ap-project.org/English/Article/View/83/">Tests have been ran</a>, and also <a href="http://yuiblog.com/blog/2008/12/08/imageopt-5/">Yahoo! provided some additional numbers</a> to help showcase that VML is not the memory hog AlphaImageLoader is. Bonus!</p>
<p><a href="http://www.artzstudio.com/2008/07/png-alpha-transparency-no-clear-winner/">There is the argument that a PNG 8-bit image is a better solution.</a> No CSS hackery, no JavaScript intervention. However, it requires whomever the developer is, and also whomever the designer is cutting up your graphics to be familiar with proper image optimization techniques to insure an efficient, optimized experience.</p>
<h3>The REAL Solution<br />
The priority of the solutions seems evident. PNG 8-bits for most cases. VML through most others. AlphaImageLoader only as absolutely necessary. I do believe that a JavaScript solution is the best solution for IE6 AFTER 8-bit PNG images (ran through a PNG optimizer (like <a href="http://pmt.sourceforge.net/pngcrush/">PNGCrush</a>).</p>
<p>Unfortunately, such optimal solutions require trained developers and trained designers. Who has time for that? <strong>You should make time to insure success.</strong></p>
<p>Enjoy.</h3>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Plaid is STILL IN &#8211; 10 Days to Plaid Nation</title>
		<link>http://ikeif.net/2009/07/09/plaid-10-days-plaid-nation/</link>
		<comments>http://ikeif.net/2009/07/09/plaid-10-days-plaid-nation/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 03:21:35 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[digital life]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[columbus]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[plaid]]></category>
		<category><![CDATA[plaidnation]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=443</guid>
		<description><![CDATA[Holy hell, has it been a year all ready?
That&#8217;s right &#8211; Plaid, the folks behind Brandflakes for Breakfast, are starting Plaid Nation in a mere ten days!
What is Plaid Nation?
Why, an excellent question to ask &#8211; Plaid Nation is a &#8220;rolling celebration of creativity and a demonstration of social media in action.&#8221;
Or &#8211; social media [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://ikeif.net/2008/08/16/plaid-is-in/">Holy hell, has it been a year all ready?</a></p>
<p>That&#8217;s right &#8211; <a href="http://thinkplaid.com/">Plaid</a>, the folks behind <a href="http://www.brandflakesforbreakfast.com/">Brandflakes for Breakfast</a>, are starting <a href="http://plaidnation.com/">Plaid Nation</a> in a mere ten days!</p>
<h2>What is Plaid Nation?</h2>
<p>Why, an excellent question to ask &#8211; Plaid Nation is a &#8220;<a href="http://plaidnation.com/about-the-tour.php">rolling celebration of creativity and a demonstration of social media in action.</a>&#8221;</p>
<p>Or &#8211; social media in motion. We&#8217;re talking live streaming video, interviews with some of the Internet 1337 &#8211;
<p>In their venture, they managed to <a href="http://www.vimeo.com/1436119">interview</a> <a href="http://www.fastcompany.com/scoble">Robert Scoble</a>, <a href="http://www.vimeo.com/1492916">Cathy Brooks</a> from <a href="http://www.vimeo.com/1436119"/><a href="http://www.seesmic.com/">Seesmic</a> and <a href="http://www.vimeo.com/1416638">Biz Stone</a> (<a href="http://www.bizstone.com/">of his many involvements</a> &#8211;  <a href="http://twitter.com/">Twitter being the one you probably know</a>). </p>
<h2>Awesome People, Awesome Concept, Awesome Execution.</h2>
<p><div id="attachment_444" class="wp-caption alignright" style="width: 300px">
	<a href="http://ikeif.net/wp-content/uploads/2009/07/IMG_0648.JPG"><img src="http://ikeif.net/wp-content/uploads/2009/07/IMG_0648-300x225.jpg" alt="Cool schwag for Plaid Nation!" title="FREEBIES!" width="300" height="225" class="size-medium wp-image-444" /></a>
	<p class="wp-caption-text">Cool schwag for Plaid Nation!</p>
</div>To celebrate the occasion, I got a care package in the mail (I feel so special! <a href="http://www.vgcats.com/comics/?strip_id=98">GLEE!</a>) Inside, I have a shirt, some buttons (to add to the collection on my bag&#8230; my sad sad bag from L.L. Bean that&#8217;s been abused for 11 years counting&#8230;) and an air freshner! (I&#8217;m assuming, as it looks to hang from the rear view mirror. Or they think my car stinks. Damn you, Plaid&#8230;)</p>
<p>As <a href="http://ikeif.net/2008/08/16/plaid-is-in/">last year I caught wind after the fact</a>, this year they won&#8217;t be too far from home base &#8211; <a href="http://plaidnation.com/schedule.php">they&#8217;re hitting Chicago on July 22, and Indianapolis on July 23</a> &#8211; I&#8217;m debating making the road trip to catch the ride from Columbus (why aren&#8217;t they coming here?)</p>
<p>If you haven&#8217;t gotten your fill of Plaid yet &#8211; they&#8217;ve got some <a href="http://plaidnation.com/freebies.php">new digital freebies up for this year, complete with theme song :)</a> and <a href="http://twitter.com/plaid/">a twitter stream</a> to help the normals check in on the fun. So Darryl, you may be getting an email from me if I can pry <a href="http://www.resource.com">myself away from work for a day or two</a> and make my own road trip (without a live stream of the trip, <a href="http://twitter.com/ikeif/">but I can tweet away</a>) to see how much of the Plaid fever I can catch.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/07/09/plaid-10-days-plaid-nation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Six SEO Experts on Twitter</title>
		<link>http://ikeif.net/2009/06/30/seo-experts-twitter/</link>
		<comments>http://ikeif.net/2009/06/30/seo-experts-twitter/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 17:13:13 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[seo]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[experts]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[professionals]]></category>
		<category><![CDATA[sem]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=438</guid>
		<description><![CDATA[I&#8217;ve been on twitter since sometime in 2008 (I assume, this is as far back as twitter is showing me).
In that time, I&#8217;ve added a ton of followers, and constantly sorting through the requests I&#8217;ve received. I don&#8217;t follow everyone. Particularly &#8220;Gurus&#8221; with thousands of following/followers. I don&#8217;t follow people who primarily use Twitterfeed so [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve been on twitter since sometime in 2008 (I assume, <a href="http://twitter.com/ikeif/status/926043078">this is as far back</a> as twitter is showing me).</p>
<p>In that time, I&#8217;ve added a ton of followers, and constantly sorting through the requests I&#8217;ve received. <strong>I don&#8217;t follow everyone.</strong> Particularly &#8220;Gurus&#8221; with thousands of following/followers. I don&#8217;t follow people who primarily use <a href="http://twitterfeed.com/">Twitterfeed</a> so it&#8217;s just a stream of RSS posts. I don&#8217;t follow spammers (naturally) or people that do nothing except hock their site, their product(s) or their friend(s) similar products, and I <strong>especially do not follow self-claimed gurus, be it social media, seo, sem, etc.</strong></p>
<p>The people I follow on twitter fall into a few categories:</p>
<ul>
<li>I know them personally.</li>
<li>I know them professionally.</li>
<li>They are an understood expert in their field(s) like:
<ul>
<li>Web Development (Particularly Javascript Framework Developers)</li>
<li>SEO</li>
<li>SEM</li>
<li>Analytics</li>
<li>Social Media</li>
</ul>
</li>
</ul>
<p>Particular niches I subscribe to, and I have developed a small list of experts that I&#8217;d trust what they say (and occasionally toss questions to them). I consider this list to be &#8220;obvious&#8221; experts &#8211; they&#8217;ve proven themselves professionally, or have written at length in blogs about the topic.</p>
<h2>My Obvious SEO Experts on Twitter</h2>
<ol>
<li><a href="http://twitter.com/mattcutts">Matt Cutts</a> (from <a href="http://www.mattcutts.com">Google</a>)</li>
<li><a href="http://twitter.com/randfish">Rand Fishkin</a> (from <a href="http://www.seomoz.com">SEO Moz</a>)</li>
<li><a href="http://twitter.com/aaronwall">Aaron Wall</a> (from <a href="http://www.seobook.com">SEOBook</a>)</li>
<li><a href="http://twitter.com/sengineland">SearchEngineLand</a> (from <a href="http://searchengineland.com/">itself</a>)</li>
<li><a href="http://twitter.com/jenniferlaycock">Jennifer Laycock</a> (from <a href="http://www.searchengineguide.com/">Search Engine Guide</a>)</li>
<li><a href="http://twitter.com/markscholl">Mark Scholl</a> (from <a href="http://www.enginepoint.com/">EnginePoint Marketing</a>)</li>
</ol>
<p>I&#8217;ve limited the list to six &#8211; because I feel they cover a breadth of knowledge that you could gain, mainly from their blog postings &#8211; sometimes, 140 characters isn&#8217;t enough (<a href="http://www.scripting.com/stories/2009/01/25/sometimes140CharactersIsEn.html">some times it is</a>).</p>
<p>I&#8217;ll work out additional &#8220;Obvious Twitter People to follow&#8221; in the future.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/30/seo-experts-twitter/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Dojo Basics</title>
		<link>http://ikeif.net/2009/06/04/dojo-basics/</link>
		<comments>http://ikeif.net/2009/06/04/dojo-basics/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 23:14:00 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=428</guid>
		<description><![CDATA[When you start developing in any JavaScript framework, you&#8217;re stuck wondering where to begin. Everyone&#8217;s got a tutorial, and an opinion, but when you&#8217;ve got &#8220;an idea&#8221; and just need to delve into the code to make it happen (say&#8230; porting functions? Figuring out the basics?) then sometimes wandering through the API isn&#8217;t the best [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>When you start developing in any JavaScript framework, you&#8217;re stuck wondering where to begin. Everyone&#8217;s got a tutorial, and an opinion, but when you&#8217;ve got &#8220;an idea&#8221; and just need to delve into the code to make it happen (say&#8230; porting functions? Figuring out the basics?) then sometimes wandering through the API isn&#8217;t the best thing you could do.</p>
<h2>Suggested Dojo Reading</h2>
<p><a href="http://sitepen.com/labs/guides/?guide=DojoQuickStart">Sitepen has provided a nice primer on the basic functionality</a> most people start off with in their library investigations, but where to go from here?</p>
<p><a href="http://docs.dojocampus.org/dojo/index">Is like a more detailed view into the Dojo API. I&#8217;d start here if I wanted to peruse the API in a more logical way then in their API docs.</p>
<p>I suggest reading </a><a href="http://docs.dojocampus.org/quickstart/dojo-basics">the Dojo Basics</a> from <a href="http://dojocampus.org">Dojo Campus</a> to get in deep with querying elements and <a href="http://docs.dojocampus.org/quickstart/events">Dojo Quickstart Events</a> to figure out attaching events.</p>
<h2>Understanding Dojo Toolkit</h2>
<p>The more I use Dojo, the more I see correlations with Java &#8211; and that&#8217;s not a good thing. In Java, you have JavaDocs telling you about the thousands of Java functions, parameters, returns you can have. VERY powerful. VERY difficult to learn. Most of the JavaScript frameworks took a different approach &#8211; they made what they did powerful, but kept it simple. Easy to read, easy to peruse &#8211; like the <a href="http://php.net">PHP docs</a> (in my opinion). the function names and organization make total sense.</p>
<p>In Dojo, it doesn&#8217;t feel as quite intuitive &#8211; for me &#8211; and that&#8217;s it&#8217;s biggest downfall. It has a high barrier of entry, and a large, robust, sophisticated toolkit that you aren&#8217;t really expected to know every inch of (like Java), but understand the basics and have an API to refer to when you want to do the more powerful functionality.</p>
<p>Unfortunately, Dojo still feels like it&#8217;s in the infancy of this aspect, as navigating to the more complex aspects is a pain. Should my Dojo work increase in the near future, I may invest in a book to try and become more acquainted with the more difficult aspects.</p>
<h2>Accessibility in the Framework</h2>
<p>I&#8217;m seeing inklings in their code with reference to <a href="http://www.w3.org/WAI/">WAI</a>, but I haven&#8217;t even *attempted* to fool with that in any accessibility sense. As my current projects haven&#8217;t adequately been in need of WAI guidelines, I&#8217;d love to see a more thorough analysis.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/04/dojo-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MooTools Development in Dojo Land</title>
		<link>http://ikeif.net/2009/06/03/mootools-development-dojo/</link>
		<comments>http://ikeif.net/2009/06/03/mootools-development-dojo/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 23:09:20 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[professionals]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=421</guid>
		<description><![CDATA[I am a MooTools JavaScript developer. I love the framework, and in writing MooTools code, I&#8217;ve become a better Object-Oriented-Programmer, and a better JavaScript developer. If you follow technology, you know there&#8217;s multiple JavaScript frameworks &#8211; jQuery being the most popular (IMO), with Dojo Toolkit being the most used in enterprise applications.
After having used JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I am a <a href="http://mootools.net">MooTools JavaScript</a> developer. I love the framework, and in writing MooTools code, I&#8217;ve become a better Object-Oriented-Programmer, and a better JavaScript developer. If you follow technology, you know there&#8217;s multiple JavaScript frameworks &#8211; <a href="http://jquery.com/">jQuery</a> being the most popular (IMO), with <a href="http://www.dojotoolkit.org/">Dojo Toolkit</a> being the most used in enterprise applications.</p>
<p>After having used JavaScript libraries (originally <a href="http://www.prototypejs.org/">prototype</a>/<a href="http://script.aculo.us/">scriptaculous</a>, some Moo.FX, then jQuery, then MooTools, and currently a project using  Dojo) you come to expect a certain amount of consistency in general concepts, and in that expectation, the libraries have delivered.</p>
<h2>$, $$, dojo.query, dojo.byId, document.getElementById &#8211; give me my element nodes!</h2>
<p>So, basic JavaScript, people have developed a few different ways to get the elements they want, including custom functions &#8211; like <a href="http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/">Robert Nyman&#8217;s getElementsByClassname</a> &#8211; which take advantage of local browser support, but you&#8217;re still forced to account for those without it. <em>*cough*IE*cough*</em></p>
<p><strong>MooTools uses the $ or $$:</strong><br />
[code lang="javascript"]<br />
var idEx = $('someId'); //get element by ID<br />
var arrayEx1 = $(document.body).getElement('someElement'); // return first matching 'someElement<br />
 inside of 'someContainer', or document.body in this example<br />
var arrayEx1 = $(document.body).getElements('someElement'); // return array of 'someElement' (or class name, if you have the right components downloaded) that are contained inside of 'some container', or in our example, document.body.<br />
var arrayEx2 = $$('someElement'); // return array of all found 'someElement'<br />
[/code]</p>
<p>Pretty powerful stuff, for so basic an idea.</p>
<p><strong>jQuery is kind of similar:</strong><br />
[code lang="javascript"]<br />
var someArray = $('someElement'); // return an array of those elements/that ID/etc.<br />
[/code]<br />
Very powerful for a single selector &#8211; but it has the added bonus that they&#8217;ve allowed it to be overwritten, so you can use jQuery with another library (say, MooTools) that also uses the $ selector. It took me a little bit to get used to the return of an array outside of a single element.</p>
<p><strong>Dojo does things a little differently</strong><br />
[code lang="javascript"]<br />
var someArray = dojo.query('someElement'); // return an array of elements<br />
[/code]</p>
<p>The get(&#8217;selector&#8217;).get(&#8217;selector&#8217;) (like mootools $(some).getElements(&#8217;someElse&#8217;)) can be pulled off in dojo/jQuery, but perhaps not as intuitive, in my opinion (again, I&#8217;m biased as a long-time MooTools fan/developer).</p>
<h2>Which is better?</h2>
<p><strong>I can&#8217;t say which JavaScript library is better.</strong> Perhaps more-so, I don&#8217;t <em>want</em> to. It&#8217;s moot. You pick the library you&#8217;re most comfortable with, and most importantly, for your Clients &#8211; you pick the one that they&#8217;re development team can run with for the long-term.</p>
<h2>How to choose a JavaScript Library &#8211; the condensed version</h2>
<p>I&#8217;m a life-long student, and a professional developer &#8211; I&#8217;ve coded many languages, and I&#8217;m learning others, so it&#8217;s easy to see certain correlations that have started popping up.</p>
<p><strong>MooTools&#8230;</strong> is definitely for the JavaScript Developer, and if you&#8217;re Object-Oriented as well, it&#8217;s even better.</p>
<p><strong>jQuery&#8230;</strong> is for the designers out there who know some xhtml and want to get some JavaScript without dealing with the headaches it can bring. It&#8217;s go ta low barrier of entry, but I&#8217;ve thought of this Thomas Jefferson quote:</p>
<blockquote><p>That which is Popular is not always Right, what is Right is not always popular</p></blockquote>
<p>Don&#8217;t read <strong>too much</strong> into that. I just infer that people that say it&#8217;s &#8220;the way&#8221; have some additional education to do in general.</p>
<p><strong>Dojo&#8230;</strong> is for the Java Developer crowd. As I&#8217;m delving more into Java, I see the <strong>strong</strong> similarities, and see why it&#8217;s involved in a lot of  Java-based enterprise solutions &#8211; you could jump back and forth between Dojo and Java and feel pretty comfortable.</p>
<h2>Coding Syntax, Preference, What&#8217;s Left? <em>DOCUMENTATION!</em></h2>
<p>This is the area most things suffer in &#8211; either too much or too little documentation. I&#8217;ve grown fond of <a href="mootools.net/docs">MooTools docs</a> structure. It&#8217;s easy to find what I need with it&#8217;s break down of how the functions are applied &#8211; string, array, elements&#8230; Easy!</p>
<p><a href="docs.jquery.com/">jQuery docs</a> are along the same lines, but I have difficultly in navigating them. <strong>I blame myself</strong> because of my long-term familiarity with MooTools, it&#8217;s become second nature, so jQuery is still slightly foreign.</p>
<p><a href="http://www.dojotoolkit.org/api">Dojo docs</a>, in my opinion, are the WORST of the docs. They&#8217;re broken down into their three main components (dojo, dijit, dojox), but beyond that it&#8217;s a guessing game to get to the API reference you want/need. I was finding myself hitting the wrong sections because the search led me there, but it was not representing what I was searching for.</p>
<p>I really feel their <a href="http://dojocampus.org/">Dojo Campus</a> is a much better doc representation than their dojo book, or their API docs. Their book is incomplete, and if you search and find references to the book, you&#8217;ll find items incomplete, moved, referencing different version of the book, to the point you&#8217;re better off not even reading it. Along with the occasional example randomly not loading, then working, then not. It was a nightmare!</p>
<p>The problem &#8211; perhaps the only problem &#8211; with Dojo Campus, is the search functionality. It defaults to &#8220;title search&#8221; which failed for me 99% of the time (because I needed something in the content, and was searching for the wrong titles). Even worse, the search isn&#8217;t even featured on the home page! I had to go four clicks in until I stumbled upon it for this post. (<strong>It&#8217;s accessible in two:</strong> Click on Tutorials and <a href="http://dojocampus.org/content/category/tutorials/beginners-tutorials/">one of the options</a>)</p>
<p>To my understanding, the Dojo Campus is going to become the &#8220;new&#8221; face of Dojo. And with their continued improvements in coding it&#8217;s becoming a stronger contender, and more importantly, more user friendly.</p>
<h2>Examples from the frameworks</h2>
<p>Every framework suffers from this. Outdated examples, drastic version differences that break code, or multiple version examples. MooTools and jQuery, for the most part, are pretty solid. Dojo, I hate to pick on you, but this is where you hurt the most. I googled &#8211; a lot &#8211; and the demos &#8211; official, sitepoint, others &#8211; are all over the place. Version 0.4, 0.9, 1.2.3, 1.3&#8230; and what&#8217;s worse, no one indicates what version the demo is in, so when I started looking at Sortable Tables, I find out it was made obsolete in another version. Links to non-existent pages in the dojo book&#8230; a mess!</p>
<p>In my own projects, it lead me to re-write a lot of items that existed in Dojo, but for a beginner with their library I ran into way too many issues to make it feasible to spend any more time playing with the code.</p>
<h2>Overall, my impressions have not changed</h2>
<p>MooTools is my favorite, jQuery is a recommended secondary, and Dojo is reserved as a &#8220;use it if you have to.&#8221; They pretty much throw the W3C to the wind with their coding structures &#8211; those dijits generate a mess of divs and classes as a default, to the point that I see the benefit in their examples, but in most of my scenarios, it was overkill (and my fellow devs would kill me if I ever coded something in that spaghetti menner).</p>
<p> It really showcases a difference between people that code for the front-end, and those that work with the front-end but primary experience is the back-end. the code makes sense to the extent in relation to Java code &#8211; but in comparing it to the majority of front-end applications, it&#8217;s a nightmare.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/03/mootools-development-dojo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaScript Equivalent of PHP Time() in UNIX Format</title>
		<link>http://ikeif.net/2009/04/23/javascript-equivalent-php-time-unix-format/</link>
		<comments>http://ikeif.net/2009/04/23/javascript-equivalent-php-time-unix-format/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 04:22:24 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[code javascript]]></category>
		<category><![CDATA[javascript function]]></category>
		<category><![CDATA[new date]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[stamp]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[time function]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=411</guid>
		<description><![CDATA[In PHP you have the time() function to pull the UNIX Timestamp:
[code lang="php"]
$unix_time = time();
echo $unix_time;
[/code]
We don&#8217;t have an easy-as-pie solution for JavaScript however &#8211; instead, we have this function we can use:
[code lang="javascript"]
function unix_time()
{
	// tada!
	return parseInt(new Date().getTime().toString().substring(0, 10));
}
[/code]
Copyright &#169; 2010 The Digital Life of Keith Baker.. This Feed is for personal non-commercial use only. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In PHP you have the <a href="http://us.php.net/time">time() function</a> to pull the UNIX Timestamp:<br />
[code lang="php"]<br />
$unix_time = time();<br />
echo $unix_time;<br />
[/code]</p>
<p>We don&#8217;t have an easy-as-pie solution for JavaScript however &#8211; instead, we have this function we can use:<br />
[code lang="javascript"]<br />
function unix_time()<br />
{<br />
	// tada!<br />
	return parseInt(new Date().getTime().toString().substring(0, 10));<br />
}<br />
[/code]</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/04/23/javascript-equivalent-php-time-unix-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My take on Skittles.com</title>
		<link>http://ikeif.net/2009/03/09/skittlescom/</link>
		<comments>http://ikeif.net/2009/03/09/skittlescom/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 08:48:30 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[digital life]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social web]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[skittles]]></category>
		<category><![CDATA[transitions]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=401</guid>
		<description><![CDATA[Shawn Morton may have beat me to the punch &#8211; both in writing about it &#8211; and a quick iframe demo of the Skittles idea.
The general point (in terms of Web Development) is that this is an insanely simple thing to accomplish &#8211; 15 minutes and Shawn had a working iframe demo.
I wanted to grab [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Shawn Morton may have beat me to the punch &#8211; <a href="http://www.smorty71.com/2009/03/my-take-on-skittlescom.html">both in writing about it</a> &#8211; and a <a href="http://www.smorty71.com/skittles/">quick iframe demo</a> of the <a href="http://www.skittles.com">Skittles idea</a>.</p>
<p>The general point (in terms of Web Development) is that this is an insanely simple thing to accomplish &#8211; 15 minutes and Shawn had a working iframe demo.</p>
<p>I wanted to grab some of the effects and colors of the original, just to see if I could do it and &#8220;make it fancy&#8221; &#8211; I mean, there&#8217;s still a half-dozen effects that can be applied to it &#8211; fades, transitions, all those whizz-bang-pow stuff people love, but I had to pull myself back a <strong>test</strong> was important.</p>
<h2>Skittles.com Initial Test</h2>
<p>I decided to focus on Firefox 3 so I could use rounded corners in CSS (there&#8217;s a JS library for everyone else, sans Webkit, but hell, remember, <em>this is a test</em>. No one&#8217;s paying, so I&#8217;m not worried about IE.</p>
<p>It took me a couple hours, but here&#8217;s <a href="http://bestpract.us/mootools/skittles/">skittles.com, reproduced without flash</a>.</p>
<p>I&#8217;m too tired to write more, so &#8211; here ya go.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/03/09/skittlescom/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>You Flashed My Google &#8211; Google Flash Indexing</title>
		<link>http://ikeif.net/2009/02/12/flashed-google/</link>
		<comments>http://ikeif.net/2009/02/12/flashed-google/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 07:31:47 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[sem]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[flash content]]></category>
		<category><![CDATA[flash developer]]></category>
		<category><![CDATA[flash files]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[search terms]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=388</guid>
		<description><![CDATA[So Mark Scholl pulled up this nugget of a gem from an October post from Brian Ussery announcing their intent to start indexing flash.
I recall reading this in October, and quite a few people were excited about this &#8211; it means the old argument that &#8220;Flash isn&#8217;t SEO friendly&#8221; would boil down to &#8220;if you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p></p><div id="attachment_390" class="wp-caption alignleft" style="width: 300px">
	<a rel="attachment wp-att-390" href="http://ikeif.net/2009/02/12/flashed-google/googled-my-flash1/"><img class="size-medium wp-image-390" title="Google My Flash" src="http://ikeif.net/wp-content/uploads/2009/02/googled-my-flash1-300x190.png" alt="You Flashed My Google" width="300" height="190" /></a>
	<p class="wp-caption-text">You Flashed My Google</p>
</div>
<p>So <a href="http://twitter.com/markscholl">Mark Scholl </a>pulled up this nugget of a gem from an <a href="http://www.beussery.com/blog/index.php/2008/10/google-flash-seo/">October post from Brian Ussery announcing their intent to start indexing flash</a>.</p>
<p>I recall reading this in October, and quite a few people were excited about this &#8211; it means the old argument that &#8220;Flash isn&#8217;t SEO friendly&#8221; would boil down to &#8220;if you&#8217;re a good Flash developer, your stuff will get indexed because you wrote it properly.&#8221;</p>
<p>What&#8217;s interesting, is the article dives into the fact that the SWF/Flash files will carry their own rage rank &#8211; and as such, if you reuse the same SWF on more than one page, keyword thinning can occur (you&#8217;re using duplicate content).</p>
<p>So &#8211; it&#8217;s been a few months, I was curious just *what* was being pulled in by google in terms of flash content, and what was being shown. I used a simple google query that it seems most people have forgotten about.</p>
<h2>Custom Google Search &#8211; FileType</h2>
<div id="attachment_391" class="wp-caption alignleft" style="width: 300px">
	<a rel="attachment wp-att-391" href="http://ikeif.net/2009/02/12/flashed-google/search-for-flash/"><img class="size-medium wp-image-391" title="filetype:swf site:ikeif.net" src="http://ikeif.net/wp-content/uploads/2009/02/search-for-flash-300x33.png" alt="search: filetype:swf site:ikeif.net" width="300" height="33" /></a>
	<p class="wp-caption-text">search: filetype:swf site:ikeif.net</p>
</div>
<p>It&#8217;s that easy. Run this with some search terms and see if your site&#8217;s flash is being indexed like you hoped it would.</p>
<p>Of course, I felt like playing around and seeing what&#8217;s happening in the wide world of flash&#8230;</p>
<h2>How&#8217;s my Flash being indexed?</h2>
<p>I ran a couple searches against some sites to see how they were being indexed:</p>
<p><a href="http://www.google.com/search?q=filetype%3Aswf+site%3Anationwide.com&amp;sourceid=navclient-ff&amp;ie=UTF-8&amp;rlz=1B3GGGL_enUS267US267">Query: filetype:swf site:nationwide.com</a> &#8211; What&#8217;s interesting is their flash is being indexed (I&#8217;m assuming) properly. The descriptions make sense, until you hit number 8 that says &#8220;PLAY AGAIN. PLAY AGAIN. 0%&#8221;</p>
<p><a href="http://www.google.com/search?q=filetype%3Aswf+loading&amp;sourceid=navclient-ff&amp;ie=UTF-8&amp;rlz=1B3GGGL_enUS267US267&amp;aq=t">Query: filetype:swf loading</a> &#8211; I did this out of curiousity &#8211; much like <a href="http://www.w3.org/QA/Tips/noClickHere">how it&#8217;s been stated </a>that <a href="http://www.456bereastreet.com/archive/200611/click_here_and_other_meaningless_link_phrases/">&#8220;click here&#8221; is the worst possible wording for a link</a> &#8211; over three million results for swf&#8217;s that say &#8220;loading!&#8221; Semi-interesting: The number one link is a <a href="http://www.pibmug.com/files/map_test.swf">flash USA Map Test</a>.</p>
<p><a href="http://www.google.com/search?q=filetype%3Aswf+site%3Aremhq.com&amp;sourceid=navclient-ff&amp;ie=UTF-8&amp;rlz=1B3GGGL_enUS267US267">Query: filetype:swf site:remhq.com</a> and <a href="http://www.google.com/search?q=filetype%3Aswf+site%3Akanyeuniversecity.com&amp;sourceid=navclient-ff&amp;ie=UTF-8&amp;rlz=1B3GGGL_enUS267US267&amp;aq=t">filetype:swf site:kanyeuniversecity.com</a> &#8211; I figured I would<strong> have</strong> to do a couple band sites, as <a href="http://www.43folders.com/2004/12/06/five-mistakes-band-label-sites-make">bands and labels were usually the number one commiters of flash atrocities</a>. These two were high ranking when I searched for &#8220;band sites flash&#8221; (simple, yet effective). <strong>Kanye? </strong><em>Three links</em>. <strong>REM? </strong>Four pages, all with some pretty good descriptions.</p>
<p><a href="http://www.google.com/search?hl=en&amp;rlz=1B3GGGL_enUS267US267&amp;q=filetype%3Aswf+site%3Aroushhonda.com&amp;btnG=Search">Query: filetype:swf site:roushhonda.com</a> &#8211; As I recently moaned about the fact that so many car sites rely too heavilly on flash (mainly because <a href="http://twitter.com/ikeif/statuses/1111130014">I couldn&#8217;t hit their sites on my iPhone</a>). All those listings in flash, none of it being indexed. I settled on Rousch from a search for &#8220;<a href="http://www.google.com/search?q=used+cars+columbus&amp;sourceid=navclient-ff&amp;ie=UTF-8&amp;rlz=1B3GGGL_enUS267US267">used cars columbus</a>&#8220;.</p>
<h2>We&#8217;ve come a long way, baby.</h2>
<p>So &#8211; we see some areas of needed improvement. SEO for Flash is something that I feel needs to be addressed more often (by designers and developers!) and it&#8217;s something our SEO people need to keep in mind and discuss (<em>I&#8217;m looking at you, <a href="http://twitter.com/markscholl">Mark Scholl </a>and <a href="http://twitter.com/jenniferlaycock">Jennifer Laycock</a>!</em>). As this is slowly moving from the &#8220;<em>I wish flash was indexed</em>&#8221; to &#8220;<em>Oh shit, it&#8217;s indexed, but not how I want it</em>!&#8221; the discussions need to ramp up and we need to start thinking about it.</p>
<p><strong>Find anything interesting in your own google queries? Let us know!</strong></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/02/12/flashed-google/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Third Party PSD to XHTML Services</title>
		<link>http://ikeif.net/2008/11/28/party-psd-xhtml-services/</link>
		<comments>http://ikeif.net/2008/11/28/party-psd-xhtml-services/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 17:19:00 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[extendability]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[roi]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=358</guid>
		<description><![CDATA[No doubt some people feel &#8220;basic&#8221; coding is beneath them. They feel they should be focusing on Java, JavaScript, UI Design, UX, etc. etc. Coding that PSD to valid, cross browser XHTML? Complete with CSS styling? Dealing with whatever browsers you want to support?
Funk that, especially when we have dozens of businesses fighting to do [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>No doubt some people feel &#8220;basic&#8221; coding is beneath them. They feel they should be focusing on Java, JavaScript, <abbr title="User Interaction">UI</abbr> Design, <abbr title="User Experience">UX</abbr>, etc. etc. Coding that PSD to valid, cross browser XHTML? Complete with CSS styling? Dealing with whatever browsers you want to support?</p>
<p>Funk that, especially when <a title="Jonathan Snook's list of XHTML to CSS services" href="http://snook.ca/archives/html_and_css/html_css_services/">we have dozens of businesses fighting to do this for us</a> (for cheap!).</p>
<h2>Prolific competition and cheap? How can I lose!</h2>
<p>Yes, much like that extended warranty you bought, how <em>could </em>you lose? Very easily!</p>
<p>Generally speaking, it seems you get what you pay for. But sometimes you have to realize that doing research is the best <abbr title="Return On Investment">ROI</abbr>. In the age of the internet, one man shops quickly get bought out by the competition, so that we can go very quickly from &#8220;my friend runs this&#8221; to &#8220;he sold it for more than it&#8217;s worth, and now it&#8217;s a shit service.&#8221; It happens, as I had dug up old reviews and contacted people &#8211; which I suggest you do. Never rely on sites and written reviews (they could be paid reviews and not disclosed, and some people will rant and rave after one use, and quickly change their mind after two uses!).</p>
<h2>In 2006 they were hot shit! So they still are&#8230;right?</h2>
<p>No my friend, they are not. Like I said, any time you see a review for a service, research it. Their are prolific sites that offer up reviews but I&#8217;ve noticed a lot of them allow ballot stuffing (it seems all you need is an email address to post, and those are <a href="http://www.gmail.com">quite</a> <a href="http://mail.yahoo.com">easy</a> to <a href="http://www.hotmail.com">get</a>). So you can see they have some heavy negative reviews followed by dozens of similar &#8220;OMG, these guys saved me, they rock so hard!&#8221;</p>
<p>First thing you need to realize, you are outsourcing, and more than likely this work is going overseas &#8211; and generally outsourcing is a mixed bag of issues. From the services I checked out, they claimed to be &#8220;based&#8221; in the United States, but I noticed some of their class names held Russian words, another I noticed some Norwegian &#8211; and it&#8217;s most important that as I worked with some of these companies, I &#8220;figured out&#8221; how best to work with them &#8211; regardless of who they were.</p>
<h2>The Secret to Working with Third Party PSD to XHTML Services</h2>
<p>It&#8217;s simple, really:</p>
<ul>
<li>Do not rely on their order forms to tell them everything.</li>
<li>Do not make assumptions on what they will/won&#8217;t do.</li>
</ul>
<p>You combat this by:</p>
<ul>
<li>Giving them requirements if it&#8217;s not on the order form!</li>
<li>If they offer money back guarantees and you aren&#8217;t happy &#8211; <strong>USE THEM</strong>.</li>
</ul>
<p>Tell them exactly what you expect &#8211; if you think certain areas should have 10 pixels of padding around them (maybe <strong>*you*</strong> think it&#8217;s common sense) but they may not!</p>
<p>You may have selected CSS sprites &#8211; but do you want it done a certain way? Did you want certain headings to be clickable? <strong>TELL THEM.</strong></p>
<p>I guess this ultimately falls down to <em>communication skills </em>as it often does &#8211; overcommunication is better than too little, and it&#8217;ll save you headaches in the long run!</p>
<h2>How to Deliver your PSDs</h2>
<p>No doubt, sometimes you may be working under deadlines so you may spread your work out into batches &#8211; this is a dangerous approach if you think &#8220;oh we can tweak certain fundamental aspects of our designs as we send them.&#8221; Bad, bad, bad.</p>
<p>If you are planning batch approach, communicate this before hand so your potential partner services understands, and make sure the basics of your templates are SOLID before you send them out!</p>
<p>I suggest having your <strong><em>templates done first</em></strong> (so you can <em>reuse</em> the code and maybe not need to have every PSD sent out to be done) and make sure your <strong>sidebar</strong><em> and</em> <strong>navigation areas are solid</strong> (and this is where you describe <strong>how large the click areas are</strong>). Once these areas are solid, I&#8217;d make sure all future PSDs follow these <strong><em>pixel perfect</em></strong> hand-offs to insure an easy transition with the future PSDs sent off, and it&#8217;ll also save you a lot of pain.</p>
<p><strong>Have you used any services like this? Got any tips or tricks? Let us know!</strong></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/11/28/party-psd-xhtml-services/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Return of the &lt;noscript&gt;</title>
		<link>http://ikeif.net/2008/11/23/return-noscript/</link>
		<comments>http://ikeif.net/2008/11/23/return-noscript/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 04:45:59 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=353</guid>
		<description><![CDATA[As a web developer, you&#8217;re constantly approached with pulling off zany schemes. In the words of Ian Malcolm:
Yeah, but your scientists were so preoccupied with whether or not they could, they didn&#8217;t stop to think if they should.
Replace &#8220;scientists&#8221; with &#8220;designers&#8221; and you see the dilemma. They know you can pull off some funky effects [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>As a web developer, you&#8217;re constantly approached with pulling off zany schemes. In the words of Ian Malcolm:</p>
<blockquote><p>Yeah, but your scientists were so preoccupied with whether or not they could, they didn&#8217;t stop to think if they should.</p></blockquote>
<p>Replace &#8220;scientists&#8221; with &#8220;designers&#8221; and you see the dilemma. They know you can pull off some funky effects in flash, so they opt to flash. However, flash is still not quite as easilly accessible and searchable that we all would like &#8211; and please, you can try to argue this point, but the majority of flash efforts I&#8217;ve seen tend to bypass the accessibility and searchability because it&#8217;s just easier to do the cool animations/sounds/effects/transparencies in flash (or flex) than it is to do in javascript.</p>
<h2>Internet Explorer be damned!</h2>
<p>The unholy bastion of a front-end developers existence tends to fall on <a href="http://marketshare.hitslink.com/report.aspx?qprid=2">IE6 &#8211; which is at 24% and dropping in its market share</a>. This is always the what I end up falling on when talking to a fellow developer, and it usually goes like this:</p>
<p><strong>Me: </strong>We could totally pull off that flash effect! We can do multiple animations using mootools, and it&#8217;d be indexable and still be applicable without javascript if we code it right!</p>
<p><strong>Him: </strong>You mean those large transparent PNG images that would be sliding into place?</p>
<p><strong>Me: </strong>Right! We could..totally&#8230; pull it off&#8230; in everything except IE6&#8230;.</p>
<p><strong>Him:</strong> &#8230;</p>
<p><strong>Me:</strong> &#8230;shit.</p>
<p>I mean, this isn&#8217;t too far from the truth, but the point is &#8211; accounting for IE6 is a bitch. I recently had to redo someone else&#8217;s code that used a PNG script I had rewrote because the alphapng filter was hitting multiple images on the page (dozens of images had a filter alpha opacity of 1). A quick audit of the code and reorganizing the javascript (ahhh&#8230; another blog post for the future, me thinks?) and suddenly IE6 was back in action, faster than ever!&#8230;.not really, but it was at least <em>usable</em>.</p>
<p>So you see a lot of our ideas rely on javascript being utilized &#8211; or flash, which still will rely on javascript to be embedded &#8211; <a href="http://code.google.com/p/swfobject/wiki/documentation">again, because of IE and other cross-browser issues</a> &#8211; so we need to keep in mind that hankering feeling&#8230;</p>
<h2>What if they don&#8217;t have javascript?</h2>
<p>No doubt, some people with disabilities may still be able to use a site that utilizes javascript. It&#8217;s possible that they may have some ability to use a browser, but if they don&#8217;t turn off javascript, <a href="http://www.stuffbysarah.net/2006/07/22/dont-rely-on-javascript/">it may make it a more difficult browsing experience</a>. Don&#8217;t forget, there are a plethora of mobile browsers that may/may not do javascript well, if at all.</p>
<p>This falls into a certain realm of uncertainty &#8211; and as I ran through a gamut of big e-tailers sites (<a title="American Eagle" href="http://ae.com">American Eagle</a>, <a href="http://www.anthropologie.com/anthro/index.jsp">Anthropologie</a>, <a href="http://www.llbean.com/">L.L. Bean</a>, amongst others) L.L. Bean was the only one that I could purchase from (well, reach a point where they ask for payment).</p>
<p>The inherent problem of this, they rely on AJAX calls to do their server side form validation &#8211; so it&#8217;s possible that if you don&#8217;t have javascript, you could still enter bad data and find out your Christmas order is incorrect, maybe too late when they call to tell you why your credit card was declined, or that it was sent to a non-existant address.</p>
<p>Understandably &#8211; <strong>from a SEO perspective</strong>, they only need to index up to the product pages. If they&#8217;re smart, they don&#8217;t have any &#8220;highly relevant, high-traffic&#8221; content in their shopping cart pages or payment pages (it seems that those are generic, so it <em>should</em> be moot). The dilemma occurs in how they handle that percentage that is browsing without javascript. Maybe it&#8217;s a small percentage. Maybe it&#8217;s corporate users, or users from the large assortment of mobile devices. The point is &#8211; why should you neglect a sale just because they&#8217;re on webTV?</p>
<h2>Enter the <span style="text-decoration: line-through;">Dragon</span> &lt;noscript&gt;</h2>
<p><a href="http://www.quirksmode.org/js/placejs.html">PPK on quirksmode wrote about the use of &lt;noscript&gt;</a> and it&#8217;s use in helping point out (to the majority of browsers) that we can throw a little message stating that &#8220;<strong>hey &#8211; you need javascript.</strong>&#8221; I&#8217;ve looked at L.L. Bean&#8217;s source code, and they&#8217;re littered with &lt;noscript&gt;. But really, this shouldn&#8217;t be a concern as&#8230;<br />
You shouldn&#8217;t be catering to a rich experience.</p>
<p>Really. You should be presenting a website that works &#8211; period. I should be able to hit it in lynx. In Safari. My iPhone. His blackberry. IE6. IE5. We shouldn&#8217;t be relying on javascript to pull off effects and basic, fundamental functionality. Javascript is an enhancement, not a requirement.<strong> If it&#8217;s required, you&#8217;ve failed.</strong></p>
<p>I&#8217;m not saying I&#8217;ve got all the answers &#8211; but I do know that if we want to code in a way that no matter what crap happens in the near future, we need to focus on the basics and get them executed as cleanly, and simply as possible.</p>
<p>There may be a point that we finally say &#8211; okay, you&#8217;ll need javascript to get these cool &#8220;up to the minute&#8221; updates, live editing, in place context editing, etc. But that&#8217;s really at a point when you have to decide &#8211; who is this website for? Who am I catering to? Why do I care if the degraded expeience means things pop instead of fade in? More than likely, this same day will be when you say&#8230;</p>
<p><strong>Shit, a fraction of a percent of people visit my site on IE6. I might want to tell them to upgrade.</strong></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/11/23/return-noscript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Are you coding obtrusively?</title>
		<link>http://ikeif.net/2008/11/11/coding-obtrusively/</link>
		<comments>http://ikeif.net/2008/11/11/coding-obtrusively/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 17:00:40 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[tagging]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=328</guid>
		<description><![CDATA[&#8220;Power tends to corrupt, and absolute power corrupts absolutely. Great men are almost always bad men.&#8221;
-Lord Acton, in a letter to Bishop Mandell Creighton, 1887
I&#8217;ve noticed a disturbing trend that I myself have fallen victim to. I&#8217;m seeing sites coded where we do more in javascript for our styling needs and interaction, with no fall [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>&#8220;Power tends to corrupt, and absolute power corrupts absolutely. Great men are almost always bad men.&#8221;</p>
<p><em>-Lord Acton, in a letter to Bishop Mandell Creighton, 1887</em></p>
<p>I&#8217;ve noticed a disturbing trend that I myself have fallen victim to. I&#8217;m seeing sites coded where we do more in javascript for our styling needs and interaction, with no fall back support for non-javascript users. Styles are called explicity from javascript (which requires a lot of transversal to find out &#8220;is it this #000 or that #000?&#8221;). onclick events. Onblur. Really?</p>
<h2>Use the power of your framework!</h2>
<p>Don&#8217;t do the work if you don&#8217;t have to!</p>
<p>For example, <a href="http://mootools.net/docs/Element/Element.Event">mootools allows us to grab any item on the page and add events to it</a>:</p>
<p>[sourcecode language='javascript']<br />
$$(&#8216;a&#8217;).addEvent(&#8216;mouseenter&#8217;,function(e){<br />
alert(&#8216;you entered the anchor!&#8217;);<br />
});[/sourcecode]</p>
<h3>Why stop with one event?</h3>
<p><em>(straight from the <a href="http://mootools.net/docs/">mootools documentation</a>!)</em></p>
<p>[sourcecode language='javascript']<br />
$(&#8216;myElement&#8217;).addEvents({<br />
&#8216;mouseover&#8217;: function(){<br />
alert(&#8216;mouseover&#8217;);<br />
},<br />
&#8216;click&#8217;: function(){<br />
alert(&#8216;click&#8217;);<br />
}<br />
});[/sourcecode]</p>
<p>Using <a href="http://mootools.net">mootools</a> we can make our code totally unobtrusive. No more onclicks littering the pages. We can leave the HREF tag pointing to static pages. We can inject elements on teh fly, so if someone doesn&#8217;t have flash/javascript we don&#8217;t show certain elements:</p>
<p>[sourcecode language='javascript']<br />
// don&#8217;t have flash?<br />
if(Browser.Plugins.Flash.version !== 9) {<br />
// hide stuff!<br />
$$(&#8216;.flashNeeded&#8217;).setStyle(&#8216;display&#8217;,'none&#8217;);<br />
// show stuff!<br />
$$(&#8216;.noFlashNeeded&#8217;).setStyle(&#8216;display&#8217;,'block&#8217;);<br />
}[/sourcecode]</p>
<div>The same idea can be done for javascript detection &#8211; we only show certain elements if javascript is present, <a href="http://mootools.net/docs/Element/Element#Element:constructor">so we do element injection</a>.</div>
<p>But not to forget our jQuery bretheren (we&#8217;re all one big family)&#8230;</p>
<h2>Let&#8217;s do the same in jQuery!</h2>
<p>[sourcecode language='javascript']</p>
<p>// single event<br />
$(&#8216;a&#8217;).mouseover(function(){<br />
alert(&#8216;you entered the anchor!&#8217;);<br />
});</p>
<p>// multiple events<br />
$(&#8216;a&#8217;).bind(&#8216;focus&#8217;, function(){<br />
alert(&#8216;focused!&#8217;);<br />
}).bind(&#8216;mouseover&#8217;, function(){<br />
alert(&#8216;moused over!&#8217;);<br />
});[/sourcecode]</p>
<h2>jQuery doesn&#8217;t do Flash out of the box&#8230;</h2>
<p>At least, I can&#8217;t dig it up &#8211; <strong>but that&#8217;s not a bad thing!</strong></p>
<p>The users of jQuery (A hearty, formidable group) have created the <a href="http://jquery.lukelutman.com/plugins/flash/">jQuery plug-in to detect flash versions</a>!</p>
<p>It&#8217;s all a matter of preference and opinion and bias as to whether it should be included with the main library or not.</p>
<h2>The Framework Wars are dead.</h2>
<p>We see similar abilities in all the frameworks &#8211; and instead of bickering about &#8220;being the best&#8221; we should work on contributing and learning these frameworks.</p>
<p>Toby Miller put it best &#8211; &#8220;One framework at a time, please!&#8221;</p>
<div id="attachment_338" class="wp-caption alignright" style="width: 243px">
	<a href="http://ikeif.net/wp-content/uploads/2008/11/framework.jpg"><img class="size-medium wp-image-338" title="framework" src="http://ikeif.net/wp-content/uploads/2008/11/framework.jpg" alt="One framework at a time, please!" width="243" height="169" /></a>
	<p class="wp-caption-text">One framework at a time, please!</p>
</div>
<h3>You wouldn&#8217;t hand-over JSP code to a PHP client, would you?</h3>
<p>I really hate stumbling on sites that think just because there is a &#8220;no conflict&#8221; version we should just jam as many frameworks together that we can. <strong>That, to me, defines a lazy developer.</strong> I fight that battle &#8211; instead of being lazy and saying &#8220;I know this one better, so let&#8217;s turn no-conflict on&#8221; we should instead be saying &#8220;the client uses <em>library X</em> so we should develop accordingly &#8211; <strong>even if that means learning a new code!</strong></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/11/11/coding-obtrusively/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling GZIP Compression on Dreamhost</title>
		<link>http://ikeif.net/2008/10/15/enabling-gzip-compression-dreamhost/</link>
		<comments>http://ikeif.net/2008/10/15/enabling-gzip-compression-dreamhost/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 06:11:26 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mod_deflate]]></category>
		<category><![CDATA[mod_gzip]]></category>
		<category><![CDATA[netscape]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=307</guid>
		<description><![CDATA[EDIT: I&#8217;ve sicne tweaked my htaccess file, added below (but left the old one inline, commented out in the example)
EDIT: So I talked to Toby Miller and he helped clarify some issues I was having &#8211; the script has been updated below!

So I&#8217;ve been discussing compression &#8211; I&#8217;m a fiend for it. It&#8217;s like a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><em><strong>EDIT:</strong> I&#8217;ve sicne tweaked my htaccess file, added below (but left the old one inline, commented out in the example)</em><br />
<em><strong>EDIT:</strong> So I talked to <a href="http://www.tobymiller.com">Toby Miller</a> and he helped clarify some issues I was having &#8211; the script has been updated below!<br />
</em></p>
<p>So I&#8217;ve been discussing compression &#8211; I&#8217;m a fiend for it. It&#8217;s like a drug to me. I squeeze every byte out of production code.</p>
<p>I&#8217;d compress HTML into a single line &#8211; <em>I&#8217;m just that phucked up</em>. Maybe it&#8217;s my OCD, maybe I&#8217;m just nutty, but GZIPping seems like a no brainer to me.</p>
<h2>1-2-3 COMPRESS!</h2>
<p>What&#8217;s GZIP? I&#8217;m glad you asked, friend!</p>
<p>According to the <a href="http://www.flickr.com/photos/ronocdh/2651155110/sizes/o/">never-wrong wikipedia</a> <a href="http://en.wikipedia.org/wiki/Gzip">article on GZIP</a>:</p>
<blockquote><p><strong>gzip</strong> is a <a class="mw-redirect" title="Software application" href="http://en.wikipedia.org/wiki/Software_application">software application</a> used for <a class="mw-redirect" title="File compression" href="http://en.wikipedia.org/wiki/File_compression">file compression</a>. gzip is short for <em>GNU zip</em>; the program is a <a title="Free software" href="http://en.wikipedia.org/wiki/Free_software">free software</a> replacement for the <tt><a title="Compress" href="http://en.wikipedia.org/wiki/Compress">compress</a></tt> program used in early <a title="Unix" href="http://en.wikipedia.org/wiki/Unix">Unix</a> systems, intended for use by the <a title="GNU Project" href="http://en.wikipedia.org/wiki/GNU_Project">GNU Project</a>.</p></blockquote>
<p>What this basically does is compress your files and let the client unzip them. We&#8217;re talking about massive decreases in bandwidth, so that 200k website suddenly shrinks down.</p>
<h2>No More Optimizing, YAY!</h2>
<p>NO NO NO! I&#8217;m sorry friend, but GZIP is not an excuse to get lazy. You can use GZIP on Javascript Frameworks so that compressed 60k core file can become a 15k file. Wow.</p>
<p>Just take that in.</p>
<p><strong>75% reduction</strong> of an already compressed file! That&#8217;s awesome. 101k html text file can be compressed to 15k. Frickin&#8217; badass.</p>
<p>So naturally, why wouldn&#8217;t I want to enable this on my Dreamhost sites?</p>
<h2>The GZIP Code</h2>
<p><em><strong>Please note: </strong>As I&#8217;m using Apache2, we&#8217;re calling mod_deflate instead of mod_gzip.</em></p>
<p>I&#8217;ve added this to my .htaccess files:</p>
<pre name="code" class="xhtml">

# BEGIN GZIP
# OLD GZIP CODE
# <ifmodule mod_deflate.c>
# AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
# </ifmodule>
# NEW GZIP CODE
<ifmodule mod_deflate.c>
	AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
	</ifmodule><ifmodule mod_setenvif.c>
		# Netscape 4.x has some problems...
		BrowserMatch ^Mozilla/4 gzip-only-text/html
		# Netscape 4.06-4.08 have some more problems
		BrowserMatch ^Mozilla/4\.0[678] no-gzip
		# MSIE masquerades as Netscape, but it is fine
		BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
		# Don't compress images
		SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
	</ifmodule>
	<ifmodule mod_headers.c>
		# Make sure proxies don't deliver the wrong content
		Header append Vary User-Agent env=!dont-vary
	</ifmodule>

# END GZIP
</pre>
<h2>Danger, Will Robinson!</h2>
<p>Naturally, their are a few caveats from GZIP, as better explained by <a href="http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/">BetterExplained.com</a> (heh):</p>
<ul>
<li><strong>Older browsers</strong>: Yes, Virginia, no doubt you may be asked to support crappy browsers. We&#8217;re talking old-school-extreme, like Netscape 1.0 on Windows 95. Apache mod_deflate <a onclick="javascript:urchinTracker ('/outbound/httpd.apache.org');" href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#recommended">has some rules</a> to avoid compression for older browsers.</li>
<li><strong>Already-compressed content</strong>: As BetterExplained.com details, you probably only need to compress the &#8220;big 3&#8243; (HTML, <span class="caps">CSS </span>and Javascript) as images/flash/etc are usually already compressed. Usually.</li>
<li><strong><span class="caps">CPU</span>-load</strong>: Compressing content on-the-fly uses <span class="caps">CPU </span>time and saves bandwidth. Usually this is a great tradeoff given the speed of compression. There are ways to pre-compress static content and send over the compressed versions. This requires more configuration; even if it’s not possible, compressing output may still be a net win. Using <span class="caps">CPU </span>cycles for a faster user experience is well worth it, given the short attention spans on the web.</li>
</ul>
<p>So enjoy the benefits friends, pass on the glory of GZIP!</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/10/15/enabling-gzip-compression-dreamhost/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google Analytics Moo-ized</title>
		<link>http://ikeif.net/2008/10/14/google-analytics-mooized/</link>
		<comments>http://ikeif.net/2008/10/14/google-analytics-mooized/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 04:49:49 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[analytics and metrics]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[tagging]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=295</guid>
		<description><![CDATA[As both David Walsh and I wrote about Google Analytics Tracking utilizing Mootools to make your outbound link tracking easier, and David did setup a variable for the Google Tracking code *before* we run the code to tag our outbound links.
Upon second review, it&#8217;s a little different than the modified code I presented yesterday, but [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>As both <a href="http://davidwalsh.name">David Walsh</a> and I wrote about Google Analytics Tracking utilizing Mootools to make your outbound link tracking easier, and David did setup a variable for the Google Tracking code *before* we run the code to tag our outbound links.</p>
<p>Upon second review, it&#8217;s a little different than the modified code I presented yesterday, but I dig using the href replacement on your outgoing string.</p>
<p>Here&#8217;s the updated code:<br />
[sourcecode language='javascript']<br />
window.addEvent(&#8216;load&#8217;,function(){<br />
// Double-checking in case your drop this site wide<br />
// Do anchors exist on the page?<br />
if ($$(&#8216;a&#8217;)){<br />
$$(&#8216;a&#8217;).each(function(anchor){<br />
var href = anchor.get(&#8216;href&#8217;);<br />
// if it matches my site or is an absolute path it&#8217;s outgoing<br />
if(href.indexOf(&#8216;http://ikeif.net&#8217;) == -1 &#038;&#038; href.indexOf(&#8216;/&#8217;) !== 0) {<br />
anchor.addEvent(&#8216;click&#8217;, function(e){<br />
var track = &#8220;pageTracker._trackPageview(&#8216;/outgoing/&#8217;&#8221; + href.replace(&#8216;http://&#8217;,&#8221;);<br />
}<br />
}<br />
});<br />
}<br />
});<br />
[/sourcecode]</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/10/14/google-analytics-mooized/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using MooTools and Google Analytics to track outbound links</title>
		<link>http://ikeif.net/2008/10/14/mootools-google-analytics-track-outbound-links/</link>
		<comments>http://ikeif.net/2008/10/14/mootools-google-analytics-track-outbound-links/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 15:46:26 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[analytics and metrics]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[duplicity]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tagging]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=279</guid>
		<description><![CDATA[This seems to be something that people always want to do at some point &#8211; are people clicking on my outbound links?
How Google recommends external tracking
They currently recommend you tag your links like:
&#60;a href="http://www.example.com" onClick="javascript: pageTracker._trackPageview("/G1/example.com");"&#62;
Just as a point of reference &#8211; the /G1/example.com is purely symbolic &#8211; you can use the artificial pagename as [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This seems to be something that people always want to do at some point &#8211; are people clicking on my outbound links?</p>
<h2>How Google recommends external tracking</h2>
<p>They <a href="http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=72712">currently recommend</a> you tag your links like:</p>
<pre><span style="font-family: Courier New,Courier,monospace;">&lt;a href="http://www.example.com" onClick="javascript: pageTracker._trackPageview("/G1/example.com");"&gt;</span></pre>
<p>Just as a point of reference &#8211; the /G1/example.com is purely symbolic &#8211; you can use the artificial pagename as the Goal URL in your analytics, as google shows:</p>
<pre><span style="font-family: Courier New,Courier,monospace;">/G1/example_com</span></pre>
<p>or</p>
<pre><span style="font-family: Courier New,Courier,monospace;">http://mysite.com/G1/example_com</span></pre>
<p>Kind of tedious, wouldn&#8217;t you say? Do you really want to run through your site and specifically tag each link that goes somewhere else? I&#8217;ve seen functions attached that basically duplicate this functionality &#8211; but if you&#8217;re moving the &#8220;onclick&#8221; into a function, it seems pretty much a moot effort.</p>
<p>So, boom goes the dynamite, and in comes javascript.</p>
<h2>Add outbound tracking javascript</h2>
<p>This code from Jamie Huskisson accomplishes it simply:<br />
[sourcecode language='javascript']<br />
if (document.getElementsByTagName){<br />
var ahrefs = document.getElementsByTagName(&#8216;a&#8217;);<br />
for(var i=0;i<ahrefs .length;i++){<br />
if(ahrefs[i].href.indexOf('http://ikeif.net') == -1 &amp;&amp; !ahrefs[i].onclick){<br />
ahrefs[i].onclick = function(){<br />
var track = this.href + "pageTracker._trackPageview('/outgoing/'"+track.substring(7));<br />
}<br />
}<br />
}<br />
}<br />
[/sourcecode]<br />
Nice and succint, as code should be. In this example, it checks to see if we can grab tags - grabs all anchors, and then we check to see if they reference my site and there is no onclick event, and if so - assign the onclick! Technically, you don't necessarilly need the track.substring(7) - you can call it something else if you like.</p>
<h2>Do the same &#8211; but with MooTools!<br />
As I&#8217;m sure you&#8217;ve figured it out, I&#8217;m a fan of <a href="http://mootools.net">mootools</a> &#8211; one of the many well done javascript frameworks. The above code is just as easilly executed:<br />
[sourcecode language='javascript']<br />
window.addEvent(&#8216;domready&#8217;,function(){<br />
if ($$(&#8216;a&#8217;)){<br />
$$(&#8216;a&#8217;).each(function(anchor){<br />
var href = anchor.get(&#8216;href&#8217;);<br />
if(href.indexOf(&#8216;http://ikeif.net&#8217;) == -1 &amp;&amp; href.indexOf(&#8216;/&#8217;) !== 0) {<br />
anchor.addEvent(&#8216;click&#8217;, function(e){<br />
var track = this.href +&#8221;pageTracker._trackPageview(&#8216;/outgoing/&#8217;&#8221; + track.substring(7);<br />
}<br />
}<br />
});<br />
}<br />
});<br />
[/sourcecode]<br />
[Edit: It just so happens that <a href="http://davidwalsh.name">David Walsh</a> hit the same topic!]</ahrefs></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/10/14/mootools-google-analytics-track-outbound-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freedom of Speech vs. Terrorism on YouTube</title>
		<link>http://ikeif.net/2008/09/13/freedom-speech-terrorism-youtube/</link>
		<comments>http://ikeif.net/2008/09/13/freedom-speech-terrorism-youtube/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 07:30:25 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[digital life]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[responsibility]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=261</guid>
		<description><![CDATA[So Mark @ Mashable wrote about YouTube updating their community guidelines against Hate speech.
He points out the obvious &#8211; people on the internet are retarded and this change means they are censoring us all, and we are fucked because all censorship is evil, and they have won because they can&#8217;t say their evil words online.
Freedom [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>So <a mce_href="http://mashable.com/" href="http://mashable.com/">Mark @ Mashable</a> wrote about <a mce_href="http://mashable.com/2008/09/12/youtube-terrorism/" href="http://mashable.com/2008/09/12/youtube-terrorism/">YouTube updating their community guidelines against Hate speech</a>.</p>
<p>He points out the obvious &#8211; people on the internet are retarded and this change means they are censoring us all, and we are fucked because all censorship is evil, and they have won because they can&#8217;t say their evil words online.</p>
<h2>Freedom of speech is absolute.</h2>
<blockquote><p>If we can’t beat them without silencing their message, we obviously<br />
aren’t being convincing enough to those they are converting. Fight them<br />
with our own free speech and expression.</p>
</blockquote>
<p>Overall &#8211; it&#8217;s a good read. YouTube doing a political nod (gee, just like Google did for China, and then did with Law Enforcement Agencies).</p>
<p>My only real issue with the article is the wrap-up:</p>
<blockquote><p><b>We Need to be Smart About This</b><br />
As Uncle Ben used to say, with great power comes great responsibility&#8230; If we want to keep it safe from the grubby paws of governmental intervention, companies like Google <i>must implement</i>&nbsp;<i>and enforce</i>&nbsp;standards<br />
of policing the community. &nbsp;Otherwise, the government will do that for<br />
us, and I think I speak for all of us when I say we do not want that.</p>
</blockquote>
<p>Google isn&#8217;t the little shop down the street. They&#8217;re a huge-ass corporation. If MSN was doing this people would be calling for Bill Gates head. If Steve Jobs did it, people would make shiny new logos promoting how innovative and forward thinking he&#8217;s being.</p>
<p>Instead, YouTube (<a mce_href="http://www.youtube.com/t/about" href="http://www.youtube.com/t/about">which was purchased by Google</a>) is taking it into their own hands. This shows the error of their <a mce_href="http://www.google.com/corporate/tenthings.html" href="http://www.google.com/corporate/tenthings.html">&#8220;Do No Evil&#8221; slogan</a> &#8211; nothing is really black and white. They can do something that a lot of people can consider evil &#8211; collecting user data, censoring hate speech, <a mce_href="http://michellemalkin.com/2006/10/04/banned-on-youtube-3/" href="http://michellemalkin.com/2006/10/04/banned-on-youtube-3/">censoring anti-hate speech</a>.</p>
<h2>I do not welcome our new Internet Overlords.</h2>
<p>Benjamin Franklin once said,</p>
<blockquote><p><b>They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.</b></p>
</blockquote>
<p>We continue to do so, and turn a blind eye to it. We say it&#8217;s for the best. It&#8217;s better this way. Think of the children. To me, this just shows how freaking worthless our rights are becoming. Services talk about how they&#8217;re for everything, but what&#8217;s going to happen in the future? For a citizen to express their discontentment, they&#8217;ll have to make a video, encrypt it, send it to a friend over seas to upload it to a &#8220;video sharing site&#8221; hosted on a derilect oil tanker in international waters that&#8217;s under siege by the U.S. Government for posting a video of someone saying <b>&#8220;The Bill of Rights is an illusion.&#8221;</b></p>
<p>So what &#8211; how did I get all of this off a little YouTube censorship? Because Google was supposed to be that <i>Little Big company</i>. They&#8217;re supposed to be those guys that got big being good, making Microsoft look foolish for ever putting DRM on your computer. Instead they&#8217;re slowly transforming into <i>&#8220;will this be good for the company?&#8221;</i> type double-speak they can throw around in marketing and PR to make themselves look good.</p>
<p>How long until Google starts telling you what to write on your blog? &#8220;You said not nice things about Google, so we&#8217;re giving you a PR of 1, unless you delete those articles. By the way, we bought the rights to your domain, so when it expires, it&#8217;s ours unless you comply.&#8221;</p>
<p>Those who have the power, make the rules. Those that get the information can make their power. I know, I know, a bit paranoidal-freakish, but hey, political season stupidity always riles me up.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/09/13/freedom-speech-terrorism-youtube/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
