<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Digital Life of Keith Baker.</title>
	
	<link>http://ikeif.net</link>
	<description>iKeif.net - Web developer, father, and brewer.</description>
	<lastBuildDate>Sun, 03 Jan 2010 22:26:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Ikeif" /><feedburner:info uri="ikeif" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>CSS Best Practices and a Return to the Basics</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/-Ol23f2fWzw/</link>
		<comments>http://ikeif.net/2009/10/26/css-practices-return-basics/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 18:30:57 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[creatives]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[equalizer]]></category>
		<category><![CDATA[performance issues]]></category>
		<category><![CDATA[style sheet]]></category>
		<category><![CDATA[styling]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=466</guid>
		<description><![CDATA[This article is not about learning CSS. It&#8217;s about having a set architecture in a project when moving forward. One of the first things in beginning development is setting in place a best practice procedure when moving forward &#8211; it&#8217;s not saying &#8220;there is only one way&#8221;, it&#8217;s saying &#8220;for this project, this is how [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This article is not about learning CSS. It&#8217;s about having a set architecture in a project when moving forward. One of the first things in beginning development is setting in place a best practice procedure when moving forward &#8211; it&#8217;s not saying &#8220;there is only one way&#8221;, it&#8217;s saying &#8220;for this project, this is how we are moving forward.&#8221;</p>
<h2>Rule: Choose a Browser Reset Style Sheet</h2>
<h3>Choose one, or don&#8217;t use one.</h3>
<p>This helps you on your cross-browser journey. If we reset all browsers to zero, it allows you to spend less time figuring out why margins are inconsistent amongst your unordered list elements (&lt;ul&gt;). This also sets you up to have a default font-family and consistent font-sizes, line-heights, etc. <strong>This is most important when cross-browser similarity is a high-concern.</strong> </p>
<h3>CSS Resets are Bad, M&#8217;Kay?</h3>
<p><a href="http://snook.ca/archives/html_and_css/no_css_reset/">Jonathan Snook stated that he &#8220;&#8230;okay if the various browsers show things slightly differently.&#8221;</a> <a href="http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/">Jens Meiert also states CSS Resets are bad </a>because they essentially add up to a defined style being overwritten repeatedly, adding to network latency due to the multiple requests for CSS. Then follows up with the comment of using <em>* { margin: 0; padding: 0; }</em> which itself is a bit of a hack and causes performance issues.</p>
<p>To be honest, the argument that CSS Resets/the * hack are a bit of a red-herring. For the majority of clients/sites I&#8217;ve worked on, this has been an incredibly minor concern. We&#8217;re talking milliseconds. Not even on the radar type performance hits. If you want to squeeze every millisecond (and I do) this is kind of an extreme (even for me) case.</p>
<p>Unfortunately, not all of us are as lucky as Snook and we work with clients/creatives that are not okay with things being a few pixels off sometimes. Personally, I&#8217;m with Snook.</p>
<h3>Should You Choose To Reset</h3>
<p>You have several to choose from:</p>
<ul>
<li><a href="http://tobymiller.com/articles/css_equalizer/index.php">Toby Miller&#8217;s Equalizer</a></li>
<li><a href="http://meyerweb.com/eric/tools/css/reset/">Eric Meyer&#8217;s Reset</a></li>
<li><a href="http://developer.yahoo.com/yui/reset/">YUI&#8217;s Reset</a></li>
</ul>
<h2>Rule: Link States</h2>
<p>This is referred to as the &#8220;LoVe HaTe&#8221; rule. <em>:link :visited :hover :active</em><br />
This relates to CSS specificity, below.</p>
<h2>Rule: CSS Specificity</h2>
<p><a href="http://meyerweb.com/eric/css/link-specificity.html" title="CSS Specificity">Eric Meyer has a great article on CSS specificity</a> in general that I find lame when sites try to duplicate his article with their own &#8220;twist.&#8221;<br />
I fully admit, I suffer from over specificity. For good measure, you can read <a href="http://code.google.com/speed/page-speed/docs/rendering.html#UseEfficientCSSSelectors" title="Google's article about CSS specifity">Google&#8217;s article about CSS specifity</a> and the increase in performance by using effective CSS selectors.</p>
<p>To reiterate certain aspects, DON&#8217;T put a class and ID on everything.</p>
<pre name="code" class="css">
div.imageHolder img#imageHolderImage /* this is BAD */
div.imageHolder img /* this is BETTER */
.imageholder img /* ding ding ding! we have a winner! */
</pre>
<p>As well, don&#8217;t code things inappropriately, i.e. use nested divs/p to generate what is essentially an unordered list.</p>
<pre name="code" class="xhtml">
<div id="unorderedList">
<div class="listItem">Test</div>
<div class="listItem">Test</div>
</div>

<!-- should be -->
<ul id="idIfNecessary">
<li class="first">Target the first item</li>
<li>General list item</li>
<li class="last">Target the last item</li>
</ul>
</pre>
<h2>Rule: Naming Convention</h2>
<p>We won&#8217;t dwell on this. <strong>BE GENERIC.</strong> It&#8217;s better to have &#8220;.active&#8221; or &#8220;.select&#8221; and NOT &#8220;.greenActiveText&#8221; &#8211; what happens when green active text becomes orange? Now you have a poorly named class.<br />
Also, pick a naming structure and STICK TO IT. camelCase? Dashes-instead? Hell_underscores_are_okay, <em>AS LONG AS YOU ARE CONSISTENT</em>. Do not change it up. This is <strong>extremely important walking on to a project.</strong> If you walk in and the prior developer is doing it different than you are used to, <strong>ADOPT THEIR STYLE</strong>, DO NOT REWRITE IT, ADD TO IT, OR MAKE IT MORE COMPLEX THAN NEED BE.</p>
<h2>Rule: Shorthand</h2>
<p><a href="http://www.dustindiaz.com/css-shorthand/" title="CSS Shorthand">Use it. Know it. Love it.</a></p>
<pre name="code" class="css">
div {
	background-image: url("to/some/image");
	background-repeat: repeat-x;
	border-width: unit;
	border-style: (solid dashed dotted double);
	border-color: color || #hex || (rgb / % || 0-255);
	color: #669900;
	margin-top: 10px;
	margin-right: 9px;
	margin-bottom: 8px;
	margin-left: 7px;
	padding-top: 10px;
	padding-right: 5px;
	padding-bottom: 10px;
	padding-left: 0px;
}
div {
	background: url(to/some/image) repeat-x;
	border:border-width border-style border-color;
	color: #690;
	margin: 10px 9px 8px 7px;
	padding: 10px 5px 10px 0;
}
</pre>
<p>Notice the &#8220;0&#8243; has no identifier. It doesn&#8217;t need one. Notice 13 lines became 5. Love that. <a href="http://www.w3.org/TR/CSS21/syndata.html#uri" title="We also dropped the quotes to prevent any possible browser errors">We also dropped the quotes to prevent any possible browser errors</a>. Get to know your CSS shorthand.</p>
<h2>Rule: Browser Targeting</h2>
<p>For the love of God, they&#8217;re called hacks for a reason. They are hacky. They shouldn&#8217;t work, but do. You could fuck another browser down the line. You could introduce errors. <strong>DO NOT USE BROWSER HACKS</strong> This is a bigger sign that *you* are a hack and a not a proper developer. These are the &#8220;once in a lifetime&#8221; things that come up.</p>
<p>Except for IE.</p>
<p>Fortunately, IE has a nice, clean targeting system. <a href="http://www.quirksmode.org/css/condcom.html" title="Conditonal comments">Conditonal comments</a>. If you target IE, use Conditional Comments.</p>
<h2>Rule: CSS Behaviors Require JavaScript</h2>
<p>If you&#8217;re writing CSS Behaviors, move it into JavaScript. Plain and simple. There is no reason to have CSS behaviors. At all.</p>
<h2>Rule: Organize Your CSS</h2>
<p>I know this one can be a bitch. The project can change. Your initial strucutre may not make sense. But try to organize it to prevent redundancy.</p>
<h3>Alphabetize Yo&#8217; Self</h3>
<p>I alphabetize my CSS because I find it easy to read, search, and peruse. I also use a code highlighter in <a href="http://www.jedit.org/" title="jEdit">jEdit</a>. Others group it by property (font styling, positioning, dimensions). I prefer my way, but that doesn&#8217;t make it right. Just when I&#8217;m leading the project.</p>
<h2>Rule: Comment, Comment, Comment!</h2>
<p>Comment the shit out of anything you are handing off. Eat the bytes. But don&#8217;t go crazy. /* this is a comment */ not /*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; (several lines of this) CODE COMMENT (repeat several lines) &#8212;&#8212;&#8212;-*/ Keep it simple. Keep it common sense. Break it up by section (however you organize your CSS).</p>
<h2>Rule: The DO NOT Do List:</h2>
<p><strong>Don&#8217;t do these.</strong></p>
<h3>Don&#8217;t Use Inline Styles. Period.</h3>
<p>Inline styles defeat the whole &#8220;separation of content and design.&#8221; Maintenance becomes a bitch, frankly. You also add to page weight, and can cause issues when a developer doesn&#8217;t realize you&#8217;ve done things inline and their properly coded external styles are not working properly.</p>
<p><em>But Keif, I do this all the time in development&#8230;</em> &#8211; that&#8217;s fine, Timmy, but if you &#8220;accidentally&#8221; leave one in to production, or check it into SVN/CVS/Git and try to act like it&#8217;s not your fault, you&#8217;ve proven the point why you shouldn&#8217;t do this.</p>
<h3>Reuse a &#8220;Standard&#8221; Set of Specific Styles</h3>
<p>I don&#8217;t mean reset. I don&#8217;t mean element specific/font styling type items. I mean don&#8217;t use classes that are specific. #width100 .marginLeft25. This is representative of bad coding in general.</p>
<p>Now, this is a brief overview of many &#8220;best practices&#8221; I try to run with and improve upon. <a href="http://lmgtfy.com/?q=CSS+Best+Practices" title="Google CSS Best Practices">Google CSS Best Practices</a> and you&#8217;ll find a slew of additional resources. Not all of them will agree with me &#8211; but that&#8217;s not the point. The point is understanding them, and recognizing that <strong>someone else&#8217;s preference may override your own, and my not be technically wrong</strong>. If you fail to recognize this, you need to reconsider your role and what you&#8217;re doing &#8211; you need to be both a team player that can adapt and evolve, and an innovator should you be charged with leading the effort.</p>
<p>What do you have? Send me your best (or worst you&#8217;ve seen!)</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/-Ol23f2fWzw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/26/css-practices-return-basics/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/10/26/css-practices-return-basics/</feedburner:origLink></item>
		<item>
		<title>Logan. The human-monkey hybrid.</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/c_FuQOOvWR8/</link>
		<comments>http://ikeif.net/2009/10/25/logan-the-human-monkey-hybrid/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 00:03:05 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ikeif.net/2009/10/25/logan-the-human-monkey-hybrid/</guid>
		<description><![CDATA[ 
  Posted via web   from keif&#8217;s posterous  
Copyright &#169; 2010 The Digital Life of Keith Baker.. 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 [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href='http://posterous.com/getfile/files.posterous.com/keif/iiyBBflfhlGFyAhlHzBFoEowlHDkydmHwhDihuuBdrEkiHGociohtfatecbi/IMG_0000.jpg.scaled1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/keif/iiyBBflfhlGFyAhlHzBFoEowlHDkydmHwhDihuuBdrEkiHGociohtfatecbi/IMG_0000.jpg.scaled500.jpg" width="500" height="667" title="Logan. The human monkey hybrid. " alt="IMG 0000.jpg.scaled500 Logan. The human monkey hybrid. " /></a> </p>
<p style="font-size: 10px;">  <a href="http://posterous.com">Posted via web</a>   from <a href="http://keif.posterous.com/logan-the-human-monkey-hybrid">keif&#8217;s posterous</a>  </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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/c_FuQOOvWR8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/25/logan-the-human-monkey-hybrid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/10/25/logan-the-human-monkey-hybrid/</feedburner:origLink></item>
		<item>
		<title>My first posterous post.</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/slgNOu5YKKE/</link>
		<comments>http://ikeif.net/2009/10/25/my-first-posterous-post/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 23:13:59 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ikeif.net/2009/10/25/my-first-posterous-post/</guid>
		<description><![CDATA[I&#39;m mainly testing cross-posting, and to see how damn easy it is to post on posterous. It may become my main source of &#34;random thoughts&#34; and let ikeif.net represent my main blogging articles. Debates of debates!
  Posted via email   from keif&#8217;s posterous  
Copyright &#169; 2010 The Digital Life of Keith Baker.. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#39;m mainly testing cross-posting, and to see how damn easy it is to post on posterous. It may become my main source of &quot;random thoughts&quot; and let <a href="http://ikeif.net">ikeif.net</a> represent my main blogging articles. Debates of debates!
<p style="font-size: 10px;">  <a href="http://posterous.com">Posted via email</a>   from <a href="http://keif.posterous.com/my-first-posterous-post-922">keif&#8217;s posterous</a>  </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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/slgNOu5YKKE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/25/my-first-posterous-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/10/25/my-first-posterous-post/</feedburner:origLink></item>
		<item>
		<title>IE6, VML, AlphaImageLoader and You (and Your E-Commerce Baby)</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/ewFX3Qn7OUY/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/ewFX3Qn7OUY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/</feedburner:origLink></item>
		<item>
		<title>Plaid is STILL IN – 10 Days to Plaid Nation</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/lH0mhpzHe7E/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/lH0mhpzHe7E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/07/09/plaid-10-days-plaid-nation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/07/09/plaid-10-days-plaid-nation/</feedburner:origLink></item>
		<item>
		<title>Twitter – Niches, Not Follower Counts</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/k4B-p6q4RNQ/</link>
		<comments>http://ikeif.net/2009/07/02/twitter-niches-follower-counts/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 17:51:58 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[twitter]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[experts]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=440</guid>
		<description><![CDATA[Let me break down twitter for you. It&#8217;s been abused by Oprah and Ashton Kutcher, it&#8217;s been used in by stars to flaunt their nudity (NSFW? I guess&#8230;). It&#8217;s all the rage and no one knows why.
I use twitter quite prolifically &#8211; mostly to vent, sometimes to ask questions. I don&#8217;t use auto-follow, I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Let me break down <a href="http://www.twitter.com">twitter</a> for you. It&#8217;s been abused by <a href="http://www.oprah.com/article/oprahshow/20090417-tows-ashton-kutcher-twitter/4">Oprah and Ashton Kutcher</a>, it&#8217;s been used in by stars to <a href="http://www.nydailynews.com/gossip/2009/06/17/2009-06-17_lindsay_lohan_posts_topless_picture_on_twitter.html">flaunt their nudity (NSFW? I guess&#8230;)</a>. It&#8217;s <strong>all the rage</strong> and no one knows why.</p>
<p>I use<a href="http://www.twitter.com/ikeif"> twitter quite prolifically</a> &#8211; mostly to vent, sometimes to ask questions. I don&#8217;t use auto-follow, I don&#8217;t use any &#8220;tips or tricks&#8221; to gather &#8220;hundreds of followers in a day.&#8221; I simply use the service, blog, and tweet. Somehow, I keep getting followers &#8211; possibly because of my associations of people I talk to (tweet with) or <a href="http://twitter.pbworks.com/Hashtags">my hash tag usage</a> (possibly again, through people&#8217;s auto-follow based on the hash tag usage from people). I&#8217;ve played with the twitter API on an as-yet-unreleased twitter project (I&#8217;m trying to make sure I &#8220;follow the rules&#8221; and get OAUTH working). Has that got me followers? Possibly.</p>
<h2>Twitter &#8211; It&#8217;s Your NICHE, Not Your Numbers.</h2>
<p>The very simple key to twitter &#8211; it&#8217;s not popularity, it&#8217;s not mass following, it&#8217;s not having the most followers. </p>
<p>The inherent problem with twitter, is, as since the myspace days everyone felt that the more people you had &#8220;friended&#8221; the <em>cooler</em> you had to be. I guess this herald&#8217;s to people&#8217;s high-school days where higher numbers of friends translated into something that mattered &#8211; perhaps the <a href="http://en.wikipedia.org/wiki/Self-esteem">inherent psychological need is filled</a> (yes, wikipedia link, deal with it).</p>
<p>The problem is that people still associate greater numbers with some sort of correlation to their skill level, reputation, or validation of &#8220;social media mastering.&#8221;</p>
<h3>Again &#8211; It&#8217;s Your NICHE</h3>
<p>If you have 50,000 people following you, and you&#8217;re following 50,000, and <a href="http://www.twitpocalypse.com/">twitter is averaging 221 tweets per second</a>, how are you really reading all your beloved followers? By automated scripts, or because you aren&#8217;t a master of anything except collecting followers. This is not a reflection of &#8220;<a href="http://www.interactiveinsightsgroup.com/blog1/100-resources-to-boost-your-social-media-savvy-top-tips-advice-from-the-experts/">social media savvy</a>&#8221; nor a reflection of how effective they are at whatever it is they claim they do &#8211; be it real estate, loan sharking, web development, or ESPECIALLY SEO, SEM, or Social Media in general &#8211; if you compare some of the &#8220;top ten&#8221; or &#8220;top 25&#8243; &#8220;experts&#8221; in various blogs you&#8217;ll see one of two things &#8211; they&#8217;re either the same list with the &#8220;obvious&#8221; experts (<a href="http://ikeif.net/2009/06/30/seo-experts-twitter/">like my list</a>) or full of self-claimed experts that tend to have a lot of seminars/webinars to show *you* how you can have google paying you fat checks for a measly $150!</p>
<h2>Quality is What Counts &#8211; NOT Quantity</h2>
<p>I&#8217;m really reinforcing that quantity issue &#8211; it&#8217;s the quality of <strong>who you follow</strong> that benefits you the most, as well as the <strong>quality of your tweets</strong>. <em>Tweeting is the new blogging</em>  &#8211; and just as people blog about their cats, their daily lives, their secrets, people twitter the same things, so <strong>you WILL see mundane tweets, from even those that tweet about subject matter you&#8217;re interested in.</strong> People you find/follow on twitter that either speak of the subject you&#8217;re interested in, answer your questions, will post links to their blogs as well as <strong>remarkable links worthy of reading</strong>. What people post is important &#8211; after all, if they share every mundane article/image/digg/Retweet it waters down their quality as well.</p>
<h2>The First Rule of Tweet Club</h2>
<p>You have to tweet to play (okay, not really). By no means do I consider myself a twitter master, as I still tweet fairly mundanely &#8211; it&#8217;s my way of letting off steam, 140 characters at a time. But I also follow some pretty cool people, and have found some articles worth saving, some tips worth knowing, and some people worth finding. <a href="http://www.twitter.com/ikeif">Won&#8217;t you be my twitter neighbor?</a></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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/k4B-p6q4RNQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/07/02/twitter-niches-follower-counts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/07/02/twitter-niches-follower-counts/</feedburner:origLink></item>
		<item>
		<title>Six SEO Experts on Twitter</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/lHjNqyUEW1Y/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/lHjNqyUEW1Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/30/seo-experts-twitter/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/06/30/seo-experts-twitter/</feedburner:origLink></item>
		<item>
		<title>Death of the Domain Name – Long Live Search Engines</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/1ajdmtg5u7I/</link>
		<comments>http://ikeif.net/2009/06/08/death-domain-long-live-search-engines/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 17:00:55 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[sem]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=433</guid>
		<description><![CDATA[Reading on SlashDot about buying a domain name from a cyber-squatter it made me think of the constant issues people/new businesses have before they&#8217;re really even on the web.
What Domain Name Defines Me, as a Person?
 I can&#8217;t help not thinking of Fight Club when I sue that line. It&#8217;s strangely very accurate, as people [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Reading on <a href="http://ask.slashdot.org/story/09/06/04/022220/Buying-a-Domain-From-a-Cybersquatter?from=rss">SlashDot about buying a domain name from a cyber-squatter</a> it made me think of the constant issues people/new businesses have before they&#8217;re really even on the web.</p>
<h2>What Domain Name Defines Me, as a Person?</h2>
<p><div id="attachment_434" class="wp-caption alignleft" style="width: 221px">
	<a href="http://metaphilm.com/index.php/detail/fight_club/"><img src="http://ikeif.net/wp-content/uploads/2009/06/fightclub_photo12.jpg" alt="I Am Jack" title="I Am Jack" width="221" height="225" class="size-full wp-image-434" /></a>
	<p class="wp-caption-text">I Am Jack</p>
</div> I can&#8217;t help <em>not</em> thinking of <a href="http://en.wikipedia.org/wiki/Fight_Club_(film)">Fight Club</a> when I sue that line. It&#8217;s strangely very accurate, as people tend to go a little overboard with their names, and feel that if it can&#8217;t be that, then it changes everything. <strong>Khakis do not define us, neither do our domain names.</strong><br />
Of course, I&#8217;m unable to find the japanese poster now, but it&#8217;s been referenced that foreign markets have quit screwing wiht domain names, and instead focus on the search terms to lead you to them. Really, that&#8217;s what you want, isn&#8217;t it? People <strong>finding</strong> you by your content, and not ending up at someone else&#8217;s site because they can&#8217;t spell your domain?</p>
<h2>A Doubel Edged Sword &#8211; SEO Domain, Generic Notability</h2>
<p>The &#8220;cool&#8221; factor comes with the right domain. For example, <a href="http://ilovejackdaniels.com">ILoveJackDaniels.com</a> was a cheat sheet repository for web developers (ignoring the fact that it&#8217;s changed domains since <a href="http://www.jackdaniels.com/">Jack Daniels</a> doesn&#8217;t like nerds). No one in their right mind would associate &#8220;web development cheat sheets&#8221; with &#8220;I love Jack Daniels&#8221; (or ilovejackdaniels, <a href="http://ikeif.net/2008/07/29/seo-research-dashes-in-domain-names/">if we want to go into semantics of how search engines see domains</a>). What if it was simply, web-cheat-sheets.com (or webcheatsheets.com)? Certainly, we may stumble on it, and it makes <em>sense</em> &#8211; but it&#8217;s not notable as ILoveJackDaniels.com or something equally creative.</p>
<h2>Balance the &#8220;Cool Factor&#8221; with &#8220;Smart Business Move&#8221;</h2>
<p>If you feel your business depends on your domain, you&#8217;ve all ready failed. Your domain does not define you &#8211; ever. No one finds my site by researching <em>me</em> &#8211; they turn up searching on terms for jquery, mootools, seo, and various other topics I&#8217;ve written about. They&#8217;ve come here by clicking on my (hopefully) insightful comments on another person&#8217;s blog post. Will they remember to come back? Maybe. Maybe they&#8217;ll remember <a href="http://ikeif.net">the simplicity that is ikeif.net</a> or maybe they&#8217;ll think:</p>
<blockquote><p>What was it? Some site with mootools, jquery, social media, seo&#8230; I&#8217;ll just throw a few terms in and see what comes up</p></blockquote>
<p>Hey, maybe I&#8217;m not in the first page of results, but then again, until my digital life needs to be on the front page, I don&#8217;t need to be.</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/1ajdmtg5u7I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/08/death-domain-long-live-search-engines/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/06/08/death-domain-long-live-search-engines/</feedburner:origLink></item>
		<item>
		<title>Dojo Basics</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/TyeetLitp-8/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/TyeetLitp-8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/04/dojo-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/06/04/dojo-basics/</feedburner:origLink></item>
		<item>
		<title>MooTools Development in Dojo Land</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/SOlJU3fW6aw/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/SOlJU3fW6aw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/06/03/mootools-development-dojo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/06/03/mootools-development-dojo/</feedburner:origLink></item>
		<item>
		<title>Making Twitter @Username Clickable in Sweetcron</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/aFy1TNejT7w/</link>
		<comments>http://ikeif.net/2009/05/31/making-twitter-username-clickable-sweetcron/#comments</comments>
		<pubDate>Sun, 31 May 2009 12:47:18 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[sweetcron]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=418</guid>
		<description><![CDATA[I&#8217;m a fan of Yongfook&#8217;s work, particularly Sweetcron.
What is Sweetcron?
To quote Wikipedia:
Sweetcron is an open source lifestreaming blog software created by Jon &#8220;Yongfook&#8221; Cockle based on the CodeIgniter framework. It was originally released on 3 September 2008 and the latest version following on 22 September. Sweetcron is similar to other web applications such as Tumblr [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;m a fan of <a href="http://www.yongfook.com/">Yongfook</a>&#8217;s work, particularly <a href="http://en.wikipedia.org/wiki/Sweetcron">Sweetcron</a>.</p>
<h2>What is Sweetcron?</h2>
<p>To quote <a href="http://en.wikipedia.org/wiki/Sweetcron">Wikipedia</a>:</p>
<blockquote><p>Sweetcron is an open source lifestreaming blog software created by Jon &#8220;Yongfook&#8221; Cockle based on the CodeIgniter framework. It was originally released on 3 September 2008 and the latest version following on 22 September. Sweetcron is similar to other web applications such as Tumblr and Friendfeed, but users are able to host their own lifestream on their own server and customize it in any way they want with the Sweetcron API.</p>
<p>Users can add RSS feeds from multiple social networks and sites, such as Twitter, LastFM, Flickr and many more.</p></blockquote>
<p>Basically, if it has an RSS feed, you can utilize it to create <a href="http://keif.name">your own personal lifestream</a>.</p>
<h2>How can I make those @Usernames clickable?</h2>
<p>Sometimes, the code can get lost in translation. Maybe it&#8217;s your RSS feed, maybe it&#8217;s the provider, hell, mabe it&#8217;s Sweetcron. But Sweetcron gives you two handy methods to manipulate your data in two handy &#8220;<a href="http://code.google.com/p/sweetcron/wiki/API">plug-in functions</a>&#8220;:</p>
<ul>
<li><strong>function pre_db:</strong> before you store the information in the database.</li>
<li><strong>function pre_display:</strong> after it&#8217;s been saved to the database, but before it&#8217;s rendered.</li>
</ul>
<p>Thanks to regular expressions, we can loop through information before we save it to our database, or afterwards, depending on your preference. All you need is:<br />
[code lang="php"]<br />
// change @names into clickable links<br />
$item-&gt;item_title = preg_replace('/(^|[^\w])(@[\d\w\-]+)/', '&lt;a href=&quot;http://twitter.com/$2&quot;&gt;$2&lt;/a&gt;' ,$item-&gt;item_title);<br />
[/code]</p>
<p><strong>$item</strong> represents your sweetcron&#8217;d &#8220;post&#8221; which consists of the object &#8211; code, text, images, links, etc. We&#8217;re basically saying &#8220;in this object, there is an item_title, if it has @something, make it a link that points to user @something&#8221; &#8211; simple enough, eh?</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/aFy1TNejT7w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/05/31/making-twitter-username-clickable-sweetcron/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/05/31/making-twitter-username-clickable-sweetcron/</feedburner:origLink></item>
		<item>
		<title>Posting to Twitter Using PHP and cURL</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/Ho_5Oo_P7HA/</link>
		<comments>http://ikeif.net/2009/05/27/posting-twitter-php-curl/#comments</comments>
		<pubDate>Thu, 28 May 2009 03:48:10 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tagging]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=415</guid>
		<description><![CDATA[This is just the basic code you&#8217;ll find EVERYWHERE on the net. In an effort to be more like Scoble I want to start posting in regards to stuff I&#8217;m using/finding/reading to make future efforts in reuse easier &#8211; delicious only goes so far, in regards to remembering &#8220;what did I tag that with?&#8221;
The PHP [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This is just the basic code you&#8217;ll find EVERYWHERE on the net. In an effort to be more like <a href="http://scobleizer.com/">Scoble</a> I want to start posting in regards to stuff I&#8217;m using/finding/reading to make future efforts in reuse easier &#8211; delicious only goes so far, in regards to remembering &#8220;what did I tag that with?&#8221;</p>
<h2>The PHP Function to Update Your Twitter Status</h2>
<p>[code lang="php"]<br />
&lt;?php<br />
/**<br />
 * A simple function using Curl to post (GET) to Twitter<br />
 * Kosso : March 14 2007<br />
 *<br />
 * Feel free to do what you like with this.<br />
 * It's pretty easy. But I thought I'd just put it out there.<br />
 * Curl is your friend.<br />
 *<br />
 * usage :  postToTwitter(&quot;myusername&quot;,&quot;mypassword&quot;,&quot;hello twitterati! I'm posting this from a PHP script! woo!&quot;);<br />
 */<br />
function postToTwitter($username,$password,$message)<br />
{<br />
	// GET the API url via web authentication<br />
	// add 'status' param to send a message to Twitter</p>
<p>	$host = &quot;http://twitter.com/statuses/update.xml?status=&quot;.urlencode(stripslashes(urldecode($message)));</p>
<p>	$ch = curl_init();<br />
	curl_setopt($ch, CURLOPT_URL, $host);<br />
	curl_setopt($ch, CURLOPT_VERBOSE, 1);<br />
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));</p>
<p>	curl_setopt($ch, CURLOPT_USERPWD, &quot;$username:$password&quot;);<br />
	curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);<br />
	curl_setopt($ch, CURLOPT_POST, 1);</p>
<p>	// Go for it!!!<br />
	$result = curl_exec($ch);<br />
	// Look at the returned header<br />
	$resultArray = curl_getinfo($ch);</p>
<p>	// close curl<br />
	curl_close($ch);</p>
<p>	//echo &quot;http code: &quot;.$resultArray['http_code'].&quot;&lt;br /&gt;&quot;;</p>
<p>	if($resultArray['http_code'] == &quot;200&quot;)<br />
	{<br />
		echo &quot;&lt;br /&gt;OK! posted to http://twitter.com/&quot;.$username.&quot;/&lt;br /&gt;&quot;;<br />
	} else<br />
	{<br />
		echo &quot;eek! yegads! error posting to Twitter&quot;;<br />
	}</p>
<p>	// debug the result<br />
	// echo &quot;&lt;pre&gt;&quot;;<br />
	// print_r($resultArray);<br />
	// echo &quot;&lt;/pre&gt;&lt;hr&gt;&quot;;<br />
	// $sResult = htmlentities($result);<br />
	// $sResult = str_replace(&quot;&amp;gt;&amp;lt;&quot;,&quot;&amp;gt;&lt;br /&gt;&amp;lt;&quot;,$sResult);<br />
	// echo &quot;&lt;pre&gt;&quot;;<br />
	// print $sResult;<br />
	// echo &quot;&lt;/pre&gt;&quot;;<br />
}?&gt;<br />
[/code]</p>
<p><a href="http://kosso.wordpress.com/2007/03/14/twitter-posting-with-php-and-curl/">I credit Kosso with the PHP function</a> &#8211; it&#8217;s basically a slightly more blown out version of the code flaoting around.</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/Ho_5Oo_P7HA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/05/27/posting-twitter-php-curl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/05/27/posting-twitter-php-curl/</feedburner:origLink></item>
		<item>
		<title>JavaScript Equivalent of PHP Time() in UNIX Format</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/YFqVRqIv7ik/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/YFqVRqIv7ik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/04/23/javascript-equivalent-php-time-unix-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/04/23/javascript-equivalent-php-time-unix-format/</feedburner:origLink></item>
		<item>
		<title>Stop Caching Old Files – A PHP Function</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/c047YRmbMrM/</link>
		<comments>http://ikeif.net/2009/03/27/stop-caching-files-php-function/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 09:52:31 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=404</guid>
		<description><![CDATA[It&#8217;s weird that I swear David Walsh follows me around &#8211; everytime I have a conversation with someone about something, he writes an article about it &#8211; like preventing your css and javascript from being cached.
I had come to the same conclusion (from by conversation with Toby) that random querystrings being appended didn&#8217;t make much [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>It&#8217;s weird that I swear David Walsh follows me around &#8211; everytime I have a conversation with someone about something, he writes an article about it &#8211; like <a href="http://davidwalsh.name/prevent-cache">preventing your css and javascript from being cached</a>.</p>
<p>I had come to the same conclusion (from by conversation with <a href="http://www.tobymiller.com">Toby</a>) that random querystrings being appended didn&#8217;t make much sense &#8211; that prevents caching, but why stop caching &#8211; unless the file gets updated?</p>
<p>I wrote a little php function that works with <a href="http://us.php.net/function.filemtime">filemtime</a>, albeit it requires the absolute path of the file.</p>
<p>[code lang="php"]</p>
<p>function autoVer($url){<br />
$path = pathinfo($url);<br />
$ver = '.'.filemtime($_SERVER['DOCUMENT_ROOT'].$url);<br />
echo $path['dirname'].'/'.$path['basename'].'?'.$ver;<br />
}</p>
<p>[/code]</p>
<p>What this means, is when we call our files like so:</p>
<p>[code lang="php"]</p>
<link rel="stylesheet" type="text/css" href="<?php autoVer('/mootools/css/reset.css') ?>" /><br />
[/code]</p>
<p>It renders like so:</p>
<p>[code lang="php"]</p>
<link rel="stylesheet" type="text/css" href="/mootools/css/reset.css?1224038981" />
<p>[/code]</p>
<p>So only when your file gets updated, does the query update, forcing the cache invalid!</p>
<p>It&#8217;s a simple function &#8211; and by no means perfect. Would you refactor it, or do you have a better way?</link>
<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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/c047YRmbMrM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/03/27/stop-caching-files-php-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/03/27/stop-caching-files-php-function/</feedburner:origLink></item>
		<item>
		<title>My take on Skittles.com</title>
		<link>http://feedproxy.google.com/~r/Ikeif/~3/d2OCE9rN510/</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><img src="http://feeds.feedburner.com/~r/Ikeif/~4/d2OCE9rN510" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/03/09/skittlescom/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://ikeif.net/2009/03/09/skittlescom/</feedburner:origLink></item>
	</channel>
</rss>
