<?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>Russell Heimlich &#187; Coding</title>
	<atom:link href="http://www.russellheimlich.com/blog/tags/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.russellheimlich.com/blog</link>
	<description>The Blog of Russell Heimlich</description>
	<lastBuildDate>Wed, 10 Mar 2010 14:21:13 +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>Dummyimage.com Gets New Features</title>
		<link>http://www.russellheimlich.com/blog/dummyimage-com-gets-new-features/</link>
		<comments>http://www.russellheimlich.com/blog/dummyimage-com-gets-new-features/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 14:21:13 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[dummyimage.com]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=2167</guid>
		<description><![CDATA[Ever since the surge of interest in my pet project dummyimage.com I&#8217;ve been meaning to add some new features. Today is the International Day of Awesomeness (which coincides with Chuck Norris&#8217; birthday) and I couldn&#8217;t think of a better time to unveil DummyImage.com&#8217;s new functionality to the public.

Here is a run down of the changes:
Specify [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>Ever since the <a href="http://www.russellheimlich.com/blog/dummyimage-com-sees-a-surge-in-interest/">surge of interest</a> in my pet project <a href="http://dummyimage.com">dummyimage.com</a> I&#8217;ve been meaning to add some new features. Today is the <a href="http://dayofawesomeness.com/">International Day of Awesomeness</a> (which coincides with <a href="http://www.imdb.com/name/nm0001569/bio">Chuck Norris&#8217; birthday</a>) and I couldn&#8217;t think of a better time to unveil <a href="http://dummyimage.com">DummyImage.com</a>&#8217;s new functionality to the public.</p>
<p><a href="http://dummyimage.com/600x200/0099ff/ff"><img src="http://dummyimage.com/600x200/0099ff/ff" alt="a 600x200 Dummy Image" /></a></p>
<p>Here is a run down of the changes:</p>
<p><a href="http://dummyimage.com/#color"><strong>Specify Custom Colors</strong></a></p>
<p>You can choose the background and foreground colors of the dummy image right in the url using a 6,3,2, or even 1 character hexcode. Don&#8217;t worry if you forget to do this as dummy image will default to gray and black.</p>
<p><a href="http://dummyimage.com/#text"><strong>Add Your Own Text</strong></a></p>
<p>A lot of people wanted to be able to add their own text to a dummy image to better communicate what it is representing. Now using the &amp;text= parameter you can.</p>
<p><strong>A Better Typeface</strong></p>
<p>Arial be damned! Font geeks cringed at my basic choice of a font. Some seemed worried about my distribution of the most popular font on Earth. Now both camps can be happy as I&#8217;m now using the completely free and open <a href="http://mplus-fonts.sourceforge.jp/">M+ Font</a>. I also changed the X in the middle of the images to a multiplication sign × as pointed out by Erinah and Dave Cortright.</p>
<p><a href="http://dummyimage.com/#standards"><strong>Standard Image Sizes</strong></a></p>
<p>Dummyimage.com is a useful prototyping tool and a lot of prototypes and wireframes have ad positions. Instead of memorizing dimensions you can now bring up <a href="http://www.iab.net/iab_products_and_industry_services/1421/1443/1452">ad sizes</a> by their industry-standard name like <a href="http://dummyimage.com/largerectangle">largerectangle</a>, <a href="http://dummyimage.com/skyscraper">skyscraper</a>, and <a href="http://dummyimage.com/fullbanner">fullbanner</a>. You can even customize the colors, text, and formats of theses sizes as well.</p>
<p><a href="http://dummyimage.com/#format"><strong>Pick Your Format</strong></a></p>
<p>Before you could add any image format extension to the url but my script would still generate a GIF image everytime. Now you can generate proper PNG, JPG, and GIF images and drag them into another app trouble free.</p>
<p><a href="http://dummyimage.com/600x250/3/f00/&#038;text=Happy+Birthday+Chuck+Norris"><img src="http://dummyimage.com/600x100/3/f00/&#038;text=Happy+Birthday+Chuck+Norris" alt="Happy Birthday Chuck Norris"></a></p>
<p>And with these new features I figured it was time to give the site a proper, though still simple, design. Rather than bury how these features work in long, boring text I made a little tool that shows you everything you need to know with minimal fuss.</p>
<p>Not a fan of change? Don&#8217;t worry, you can still use Dummyimage.com to generate place holder images exactly the same way you have always been doing it.</p>
<p>So thank you to everyone who has e-mailed me, tweeted me, left a comment on a post somewhere or otherwise provided feedback on dummyimage.com. I&#8217;m glad so many people found it as useful as I think it is. Keep the ideas and <a href="http://dummyimage.com/#other-downloads">dummyimage variations</a> coming. I&#8217;m sure this thing could be better.</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/dummyimage-com-gets-new-features/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dummyimage.com Sees A Surge In Interest</title>
		<link>http://www.russellheimlich.com/blog/dummyimage-com-sees-a-surge-in-interest/</link>
		<comments>http://www.russellheimlich.com/blog/dummyimage-com-sees-a-surge-in-interest/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:52:28 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[dummy]]></category>
		<category><![CDATA[dummyimage.com]]></category>
		<category><![CDATA[interest]]></category>
		<category><![CDATA[multi-lingual]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[recap]]></category>
		<category><![CDATA[retweet]]></category>
		<category><![CDATA[viral]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=2096</guid>
		<description><![CDATA[Way back in August of 2007 I built a simple PHP tool that generates place-holder images at different size by simply changing the URL. The idea came to me when I was working on a redesign for USNews.com. I hated opening up Photoshop, creating a new document,  filling the background layer, and exporting for web [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>Way back in August of 2007 I built a simple PHP tool that generates place-holder images at different size by simply changing the URL. The idea came to me when I was working on a redesign for USNews.com. I hated opening up Photoshop, creating a new document,  filling the background layer, and exporting for web just to make a simple placeholder image. That is why I made <a href="http://www.russellheimlich.com/blog/dynamically-create-dummy-images-at-any-size/">dummyimage.com</a>.</p>
<p>I figured it would be useful to other people which is why I also released the complete source code, documented and including instructions for setting it up on your own server. But like most new things, few gave it any notice.</p>
<p><a href="http://twitter.com/charliepark/status/8222003586"><img class="alignnone size-full wp-image-2105" title="The tweet that started it all" src="http://www.russellheimlich.com/blog/wp-content/uploads/2010/01/the-tweet-that-started-it-all.png" alt="" width="600" height="379" /></a></p>
<p>The other day my friend Charlie Park (founder of <a href="https://www.pearbudget.com/">Pear Budget</a>) found it when doing some in-browser wire-framing and <a href="http://twitter.com/charliepark/status/8222003586">sent out a tweet</a> to all of his followers. But he didn&#8217;t stop there. Charlie also posted it to <a href="http://news.ycombinator.com/item?id=1077013">Hacker News</a>, a simple news aggregator aimed at geeks. It was obvious that my little tool was resonating with other developers with the tagline &#8220;Lorem ipsom for images.&#8221; In 24 hours, the Hacker News story got 161 votes with 77 comments, <a href="http://delicious.com/url/9884f62d71d7b1377096a40c137a0863">513 people bookmarked it</a> on del.icio.us, and <a href="http://tweetmeme.com/story/28917021/dynamic-dummy-image-generator-dummyimagecom">337 tweets</a>.</p>
<p>What really struck me was how dummyimage.com was crossing the language barrier. I saw tweets mentioning in S<a href="http://twitter.com/alexandergarzon/statuses/8241230231">panish</a>, <span style="color: #551a8b;"><span style="text-decoration: underline;">Japanese</span></span>, <a href="http://twitter.com/paraboom/statuses/8273761981">Russian</a>, <a href="http://twitter.com/apfelsina/statuses/8286247632">German</a>, <a href="http://twitter.com/colorlab/statuses/8274427780">Dutch</a>, even <a href="http://twitter.com/rATRIJS/statuses/8272595627">Latvian</a>. I&#8217;m glad my idea was simple enough that foreign speakers could easily pick it up without any translation help.</p>
<p><a href="http://twitter.com/natsucat/statuses/8262689731"><img class="alignnone size-full wp-image-2101" title="dummyimage.com tweeted in Japanese" src="http://www.russellheimlich.com/blog/wp-content/uploads/2010/01/dummyimage.com-tweeted-in-japanese.png" alt="" width="600" height="342" /></a></p>
<p>All of this sudden attention also produced <a href="http://news.ycombinator.com/item?id=1078801">helpful feedback</a> and <a href="http://news.ycombinator.com/item?id=1078521">new feature ideas</a>. I started working on an update this past December for a few additions I wanted to see but this recent surge of interest has lit a fire under my butt to continue developing. As is the nature of opensource software, people don&#8217;t have to wait for me; they can adapt the code to their own needs. Here are some iterations that have already been made:</p>
<ul>
<li><a href="http://github.com/xxx/fakeimage">Fakeimag</a>e (Ruby)</li>
<li><a href="http://github.com/xxx/placeholder_image">Placeholder_image</a> (Ruby)</li>
<li><a href="http://iamwil.posterous.com/lorem-ipsum-for-images-in-french-maid">Lorem ipsom for Images</a> (JavaScript/jQuery)</li>
</ul>
<p>And somewhere down the line I would like to give it an attractive homepage. Hooray for side projects!</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/dummyimage-com-sees-a-surge-in-interest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Paying For JavaScripts? Just View Source</title>
		<link>http://www.russellheimlich.com/blog/paying-for-javascripts-just-view-source/</link>
		<comments>http://www.russellheimlich.com/blog/paying-for-javascripts-just-view-source/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 02:15:46 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Envato]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ThemeForest]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=1943</guid>
		<description><![CDATA[ThemeForest.net is an online marketplace for developers to sell themes, templates, and other web development related goodies. A lot of the files are for the backend making it next to impossible for someone to copy them without breaking into your server. But ThemeForest offers JavaScripts for sale and even offers a live preview.
By the very [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://themeforest.net/?ref=kingkool68">ThemeForest.net</a> is an online marketplace for developers to sell themes, templates, and other web development related goodies. A lot of the files are for the backend making it next to impossible for someone to copy them without breaking into your server. But ThemeForest offers JavaScripts for sale and even offers a live preview.</p>
<p>By the very nature of the web, a front end technology like JavaScript requires the source code to be downloaded to your computer before it can run. This means anyone with a little know-how can easily bypass the need to buy the script and piece it together themselves.</p>
<p>For example, take this <a href="http://themeforest.net/item/jscalendar/67528">JavaScript calendar widget</a> which has 0 sales as of this writing. All you have to do is go to the live preview and remove the frame by clicking the link in the top left corner. From there it&#8217;s just a matter of viewing the source (Choose View-&gt;Source in Internet Explorer, View-&gt;Page Source in Firefox) and copying the necessary JavaScript and CSS files. Here&#8217;s everything you need for this calendar widget:</p>
<ul>
<li><a href="http://s3.envato.com/files/199652/css/calendar.css">http://s3.envato.com/files/199652/css/calendar.css</a></li>
<li><a href="http://s3.envato.com/files/199652/css/setup.css">http://s3.envato.com/files/199652/css/setup.css</a></li>
<li><a href="http://s3.envato.com/files/199652/css/text.css">http://s3.envato.com/files/199652/css/text.css</a></li>
<li><a href="http://s3.envato.com/files/199652/js/resources.js">http://s3.envato.com/files/199652/js/resources.js</a></li>
<li><a href="http://s3.envato.com/files/199652/js/config.js">http://s3.envato.com/files/199652/js/config.js</a></li>
<li><a href="http://s3.envato.com/files/199652/js/calendar.js">http://s3.envato.com/files/199652/js/calendar.js</a></li>
</ul>
<p>Now before you get all upitty about the ethics behind this, you should know that this script is freely available from the <a href="http://www.fogtower.com/products/jscalendar.html" class="broken_link" >author&#8217;s own site</a>, which was based on an open source project from around 2006 according to comments in the CSS files.</p>
<p>Granted ThemeForest isn&#8217;t targeted at professional developers like me so someone might be more than happy to plunk down $8 to download everything in one nice, neat package. But if I were selling scripts on ThemeForest, with the expectation of a profit, I would be pissed that ThemeForest didn&#8217;t take more precaution to protect my source code. At the least they could obfuscate the live preview code using a tool like <a href="http://dean.edwards.name/packer/">/packer/</a>.</p>
<p>At any rate this demonstrates why it&#8217;s so hard to sell JavaScripts by themselves due to the very nature of how they work in an open web.</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/paying-for-javascripts-just-view-source/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How I Learned JavaScript On Accident</title>
		<link>http://www.russellheimlich.com/blog/how-i-learned-javascript-on-accident/</link>
		<comments>http://www.russellheimlich.com/blog/how-i-learned-javascript-on-accident/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 02:49:37 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[nostalgia]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[reminiscing]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=1936</guid>
		<description><![CDATA[I picked up JavaScript by accident before jQuery, Prototype or any of the other smitten tools that make web developers lives easier. The web was just coming back to life in early 2005 from the dot-com bomb. I was enrolled in the Digital Media Production program at the Art Institute of Philadelphia; a degree encompassing [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>I picked up JavaScript by accident before <a href="http://jquery.com/">jQuery</a>, <a href="http://www.prototypejs.org/">Prototype</a> or any of the other smitten tools that make web developers lives easier. The web was just coming back to life in early 2005 from the dot-com bomb. I was enrolled in the Digital Media Production program at the <a href="http://www.artinstitutes.edu/philadelphia/">Art Institute of Philadelphia</a>; a degree encompassing video, web, and multimedia all rolled up into one. Back then almost everything about building websites fell under the term &#8217;scripting.&#8217; &#8216;Scripting 1&#8242; was really an introduction to <abbr title="Hyper Text Markup Language">HTML</abbr> with a little bit of <abbr title="Cascading Style Sheets">CSS</abbr> thrown in. I managed to test out of this class with an example site I put together for a friend a week earlier. Logically, Scripting 2 would seem to be more advanced <abbr title="Hyper Text Markup Language">HTML</abbr> and <abbr title="Cascading Style Sheets">CSS</abbr> techniques, but my thinking was wrong. My school deemed &#8216;Scripting 2&#8242; as a JavaScript class.</p>
<p><a href="http://www.learnwebdesignonline.com/menus-more-menus/dwrollover-buttons.htm"><img class="alignnone size-full wp-image-1941" title="Dreamweaver's horrible rollover JavaScript code" src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/10/Dreamweavers-horrible-rollover-javascript.gif" alt="Dreamweaver's horrible rollover JavaScript code" width="525" height="346" /></a></p>
<p>My only experience with JavaScript before &#8216;Scripting 2&#8242; was the auto-generated cruft from Dreamweaver MX used in rollovers and jumpmenus. I had no idea what it did or how it worked; I only knew not to muck with it or things would break. I also spent most of my Dreamweaver time in design view, not code view. The required reading for the class was <a href="http://www.amazon.com/gp/product/0764544055?ie=UTF8&amp;tag=thebloofrushe-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0764544055">Beginning JavaScript</a> by Paul Wilton. It was still a leading book at the time even though it was 5 years old. That&#8217;s how stagnant web development was compared to the blistering pace of progress made today. Some of the more advanced topics included dynamic HTML (DHTML) on Internet Explorer 4.0 and Netscape Navigator 4.x. Yea it was that old, but a lot of the basics still hold true even today.</p>
<p><a href="http://www.amazon.com/gp/product/0764544055?ie=UTF8&amp;tag=thebloofrushe-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0764544055"><img class="alignnone size-full wp-image-1939" title="Beginning JavaScript Cover by Paul Wilton" src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/10/Beginning-JavaScript-Paul-Wilton.jpg" alt="Beginning JavaScript Cover by Paul Wilton" width="378" height="475" /></a></p>
<p>I read that book cover to cover to get a handle of JavaScript and help me complete my projects consisting of things like temperature converters and form validation. After 11 weeks it finally began to make sense. I began thinking about solving problems with it which led me to my personal project <a href="http://www.russellheimlich.com/content/deviantbordermaker.html">Deviant Bordermaker</a>. The simple tool calculated image sizes for specific ratios given an image. It was developed long before <a href="http://www.adobe.com/products/air/">Adobe Air</a> as an offline app that people would download and run locally. Ecstatic couldn&#8217;t even begin to describe the feeling of bringing an idea to life and overcoming the barriers of learning a new technology. I knew from that day on that JavaScript would be a part of my career.</p>
<p>Fast forward nearly 2 years later when I land my first job at <a href="http://www.usnews.com">USNews &amp; World Report</a>. My very first task was to develop a quiz-building tool. Since I knew zilch about server-side programming languages, like <abbr title="Hypertext Pre-Processor">PHP</abbr>, I built the app using JavaScript. The final output was the HTML necessary for the quiz to run that a producer could simply copy and paste into the right place. Thinking back on it, the JavaScript was probably overly complex but I certainly learned a lot and continued to push the boundaries of my JavaScript chops.</p>
<p>From there I slowly learned the Prototype JavaScript framework, which was the defacto library at the time. At first I didn&#8217;t feel like it was making anything easier as I was struggling to grasp the object oriented model of doing things in Prototype. This hard work paid off as learning jQuery was a breeze; it&#8217;s pretty much the same thing but with different names for things.</p>
<p>JavaScript has come a long way since 2005. The language continues to be pushed into new areas thanks to AJAX, web applications, and a rekindled browser war. Learning JavaScript will go a long way in learning other things like <abbr title="Hypertext Pre-Processor">PHP</abbr> and should definitely be a foundation skill for most any frontend developer. How did you come across JavaScript?</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/how-i-learned-javascript-on-accident/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Death To The Div</title>
		<link>http://www.russellheimlich.com/blog/death-to-the-div/</link>
		<comments>http://www.russellheimlich.com/blog/death-to-the-div/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 00:32:27 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[CSS/HTML]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[booger test]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[elements]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[John Allsopp]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=1802</guid>
		<description><![CDATA[Every web developer is looking forward to the new HTML spec, HTML 5. The new spec will birth 20 new elements to add more underlying semantic meaning to content. The new elements came out of popular IDs and Class attributes for common situations in web design: &#60;nav&#62; is just like &#60;div id=&#8221;nav&#8221;&#62;. But these new [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>Every web developer is looking forward to the new HTML spec, HTML 5. The new spec will birth <a href="http://www.w3.org/TR/html5-diff/#new-elements">20 new elements</a> to add more underlying semantic meaning to content. The new elements came out of popular IDs and Class attributes for common situations in web design: &lt;nav&gt; is just like &lt;div id=&#8221;nav&#8221;&gt;. But these new elements are just a stop gap.</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/09/death-to-div.jpg" alt="Death to the Div Tag" title="Death to the Div Tag" width="600" height="361" class="alignnone size-full wp-image-1816" /></p>
<p>I wish the web community could move beyond pigeon-holing ourselves with specific elements. Why can&#8217;t we make our own elements to better describe our content? If I had my way &lt;div&gt;s would be ancient history and any element <a href="http://simon.html5.org/html5-elements">not already defined in the HTML spec</a> would be treated by browsers like a &lt;div&gt;. </p>
<p>There are many benefits to opening up the element nomenclature like this. </p>
<p><strong>1) It will be much easier to describe content.</strong> No longer will we need to shoehorn our content into quasi-relevant elements. Did you know the &lt;address&gt; tag is to define the contact information for the author or owner of a document and not to hold a plain street address? </p>
<p><strong>2) No more div-itis.</strong> Web developers will no longer have to wade through a dozen &lt;/div&gt; tags. &lt;div&gt; tags are the least-semantic structural elements in a web designers toolbox; it literally means &#8216;division&#8217; of a page and is used to mark off different sections within a document. Things can get pretty messy when using too many &lt;div&gt;s however as it is hard to tell where they end. Take a look at this code example:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div id=&quot;container&quot;&gt;
   &lt;div id=&quot;article&quot;&gt;
      ...
     &lt;div id=&quot;chart&quot;&gt;
      ...
     &lt;/div&gt;
   &lt;/div&gt;
&lt;/div&gt;</pre></div></div>

<p>Look how much better this markup looks from both a readability and maintainability perspective:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;container&gt;
   &lt;article&gt;
      ...
     &lt;chart&gt;
      ...
     &lt;/chart&gt;
   &lt;/article&gt;
&lt;/container&gt;</pre></div></div>

<p>A benefit to free-form elements is the semantic closing tags making it clear where each element begins <em>and</em> ends.</p>
<p><strong>3) <a href="http://www.google.com/search?q=define%3A+microformats">Microformats</a> might actually work.</strong> The movement to create semantic markup using loosely agreed upon Classes slowly died off due to the extra bloat it introduced to the underlying code. With the ability to create your own tags, Microformats could flourish and we can begin to set-up our own best practices for describing content.</p>
<p><strong>4) Faster JavaScript.</strong> Not many browsers support the JavaScript method <a href="http://www.quirksmode.org/dom/w3c_core.html#t11">getElementsByClassName</a> but every browser supports <a href="http://www.quirksmode.org/dom/w3c_core.html#t12">getElementsByTagName</a>. Because of this many libraries have had to write their own implementations which are many times slower than native methods. Faster <abbr title="Document Object Model">DOM</abbr> traversal = faster JavaScript!</p>
<h4>What will it take to make this a reality? Boogers</h4>
<p>We&#8217;re already going to have issues with older browsers supporting brand new elements with HTML 5. We might as well go all the way and make sure every browser can support whatever element we can come up with. After all we only have <a href="http://www.zeldman.com/2009/07/13/html-5-nav-ambiguity-resolved/#comment-44699">one shot to get HTML right for this generation</a> according to John Allsopp. </p>
<p>Many browsers already support free-form elements both with CSS and JavaScript. To really flesh this out I created the <a href="http://www.russellheimlich.com/booger-test.htm">Booger Test</a> and below are my findings.</p>
<ul>
<li>Firefox 3+ supports the &lt;booger&gt; tag as if it were a native element but has to be explicitly set to <em>display:block</em>. </li>
<li>Firefox 2 has no problem with CSS unless there children elements in which case the  &lt;booger&gt; tag collapses. Weird!</li>
<li>All versions of Internet Explorer don&#8217;t know what to do with the  &lt;booger&gt; tag but they do function normally when using a <a href="http://ejohn.org/blog/html5-shiv/">JavaScript shiv</a></li>
<li>Safari and Chrome have no problems.</li>
<li>Every browser I tested passed the JavaScript portions (getElementsByTagName(&#8220;booger&#8221;)) of the booger test with flying colors!</li>
</ul>
<p>So as you can see, we are really close to being able to use our own elements. HTML 5 is already going in this direction but it would be a real shame if everyone got hung up on what frivolous new element names we should all agree to use instead of coming up with new functionality to move the capabilities of the web forward.</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/death-to-the-div/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Firebug Gets A Little Buggy</title>
		<link>http://www.russellheimlich.com/blog/firebug-gets-a-little-buggy/</link>
		<comments>http://www.russellheimlich.com/blog/firebug-gets-a-little-buggy/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 02:31:30 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=1750</guid>
		<description><![CDATA[Firebug is the web developer equivalent of a hammer to a carpenter. In other words without this valuable tool hundreds of thousands would not be able to do their job and make the web what it is today. So even small changes to the interface are going to ruffle some feathers.
I spent a good half [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://getfirebug.com/">Firebug</a> is the web developer equivalent of a hammer to a carpenter. In other words without this valuable tool hundreds of thousands would not be able to do their job and make the web what it is today. So even small changes to the interface are going to <a href="http://www.sitepoint.com/forums/showthread.php?t=606563">ruffle some feathers</a>.</p>
<p>I spent a good half day trying to figure out why my precious Firebug wasn&#8217;t behaving like its usual self. For one thing, it wasn&#8217;t showing JavaScript errors in the status bar icon like it usually does. It also displayed a message saying &#8220;Reload to activate window console&#8221; whenever I would bring it up. This makes debugging impossible if I have to keep refreshing the page everytime.</p>
<p>It turns out the Firebug developers made a teeny, tiny tweak to the interface. The screenshot on top is the newer Firebug, version 1.4. The bottom half of the screenshot is from an earlier version. See the difference?</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/08/old-firebug-interface-vs-new.png" alt="Screenshot of Firebug 1.4 vs the older 1.3 interface." title="Screenshot of Firebug 1.4 vs the older 1.3 interface." width="600" height="537" class="alignnone size-full wp-image-1751" /></p>
<p>The &#8216;X&#8217; used to hide the Firebug window in older versions has been replaced with an Off button. Unfortunately the Firebug developers changed the behavior as well. The Off button deactivates Firebug for that website which explains why JavaScript errors disabled in the status icon.  The button that I have come to accustomed to for minimizing the Firebug panel is that circular down-ward arrow about 50 pixels away.</p>
<p>This is a usability nightmare!</p>
<ol>
<li>The hide Firebug functionality isn&#8217;t where the user expects it, especially for long-time users who have developed a muscle memory</li>
<li>The Off button is ambiguous to what the action does (a better word would be deactivate, though that doesn&#8217;t quite fit)</li>
<li>The Off buttons breaks away from the rest of the paradigm of the interface (icons are for actions like inspect, and pause while words are for different tabs)</li>
<li>and the Off button is a much larger than the minimize button even though the minimize button is used far more frequently than the off button</li>
</ol>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/08/Firebug-interface-paradigm1.png" alt="Firebug 1.4 interface paradigm" title="Firebug 1.4 interface paradigm" width="600" height="107" class="alignnone size-full wp-image-1755" /></p>
<p>I now have to focus in order to minimize Firebug taking mental energy away from my task. If I&#8217;m not paying attention I can turn-off Firebug for the site I&#8217;m working on and then I would have to reload the page to get it working again. These sound like little things but compounded one hundred times and it can drive you batty.</p>
<p>So while the latest Firebug update is not technically broken, a poor interface decision sure makes it feel like a buggy mess. </p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/firebug-gets-a-little-buggy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top 5 Firebug Extensions</title>
		<link>http://www.russellheimlich.com/blog/top-5-firebug-extensions/</link>
		<comments>http://www.russellheimlich.com/blog/top-5-firebug-extensions/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 02:02:05 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[CodeBurner]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[FireCookie]]></category>
		<category><![CDATA[FireFind]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[SenSEO]]></category>
		<category><![CDATA[top 5]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[YSlow]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=1584</guid>
		<description><![CDATA[Firebug started as an indispensable Firefox extension which takes web development to a new level. But after 2 years since it&#8217;s initial 1.0 release, Firebug has grown into a platform with a host of extensions built right on top of it. Here are my top 5 Firebug extensions that every web developer should have installed. [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://getfirebug.com/">Firebug</a> started as an indispensable Firefox extension which takes web development to a new level. But after 2 years since it&#8217;s initial 1.0 release, Firebug has grown into a platform with <a href="http://getfirebug.com/extensions/index.html">a host of extensions</a> built right on top of it. Here are my top 5 Firebug extensions that every web developer should have installed. </p>
<p>#5 <a href="http://sensational-seo.com/">SenSEO</a> &#8211; SenSEO is a handy checklist of key SEO criteria. This Firebug extension rates your page on a scale of 100 against <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769&#038;topic=15260">Google&#8217;s webmaster guidelines</a>. SenSEO is most important right before a big launch to catch any simple tweaks that you may have overlooked during development.</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/senseo-firebug-extension.jpg" alt="SenSEO Firebug Extension Screenshot" title="SenSEO Firebug Extension Screenshot" width="463" height="274" class="size-full wp-image-1592" /></p>
<p>#4 <a href="http://tools.sitepoint.com/codeburner/">CodeBurner</a> &#8211; CodeBurner is an HTML and CSS reference right at your fingertips while you debug. It adds a Code Example tab which gives a brief description of the HTML tag or CSS property you have highlighted as well as a code sample so you can see the recommended usage. If that&#8217;s not enough, CodeBurner provides a link to the Sitepoint reference page which has everything you could ever want to know.  Man, I wish I had this extension when I was learning HTML and CSS (let alone Firebug).</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/codeburner-screenshot.png" alt="CodeBurner Firebug Extension Screenshot" title="CodeBurner Firebug Extension Screenshot" width="640" height="270" class="size-full wp-image-1591" /></p>
<p>#3 <a href="http://robertnyman.com/firefinder/">FireFind</a> &#8211; FireFind does only one thing but it does it well: finding elements. Using a CSS selector or XPath statement, FireFind will highlight all of the matching elements on the page. This makes it a breeze to test CSS selectors with your site right in front of you. To boot, it also features a count of all the elements found. Even though this is possible through Firebug&#8217;s console tab when any popular JavaScript library is included, FireFind makes the process straight-forward and painless. </p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/firefinder-firebug-extension-screenshot.png" alt="FireFinder Firebug Extension Screenshot" title="FireFinder Firebug Extension Screenshot" width="640" height="343" class="size-full wp-image-1595" /></p>
<p>#2 <a href="http://www.softwareishard.com/blog/firecookie/">FireCookie</a> &#8211; If you have ever had to debug JavaScript cookies then you&#8217;ll wonder how you got by without this extension. FireCookie lets you inspect and edit cookies on the fly including permissions, values, and the expiration time. You can even sort all of your cookies as well as filter them out by domain. And when testing a script for your audience that has cookies disabled, FireCookie provides a simple option to disable cookies globally or just for the current domain. Now working with cookies doesn&#8217;t have to be such a stale experience.</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/firecookie-screenshot.png" alt="FireCookie Firebug Extension Screenshot" title="FireCookie Firebug Extension Screenshot" width="640" height="221" class="size-full wp-image-1590" /></p>
<p>#1 <a href="http://developer.yahoo.com/yslow/">YSlow</a> &#8211; Serious web developers are obsessed with performance and YSlow provides a smorgasbord of tools for measuring the speed of a site. YSlow is built around <a href="http://developer.yahoo.com/performance/rules.html">34 best practices for speeding up a website</a> which is the result of extensive research by the Yahoo Performance team. The extension provides a letter grade of each practice with advice on how to squeeze out every little bit of extra performance. </p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/yslow-test-grade-view.png" alt="YSlow Test Grade View" title="YSlow Test Grade View" width="640" height="322" class="size-full wp-image-1586" /></p>
<p>Another handy view is the Components tool which gives you an insight into all of the componets of the page. There are a bevy of stats that can be analyzed to pinpoint bloated waste.</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/yslow-components-view.png" alt="YSlow Components View" title="YSlow Components View" width="640" height="238" class="size-full wp-image-1588" /></p>
<p>Finally, the statistics tool gives insight into the weight of your page for users with an empty cache and a primed cache. </p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/06/yslow-statistics-view.png" alt="YSlow Statistics View" title="YSlow Statistics View" width="640" height="257" class="size-full wp-image-1589" /></p>
<p>If you have never given much thought to the performance of your site, YSlow makes it easy to dive right in.  </p>
<p>What are some of your favorite Firefox extensions geared towards web development?</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/top-5-firebug-extensions/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>KristinaNaude.com: From Comp To Code In 12 Hours</title>
		<link>http://www.russellheimlich.com/blog/kristinanaudecom-from-comp-to-code-in-12-hours/</link>
		<comments>http://www.russellheimlich.com/blog/kristinanaudecom-from-comp-to-code-in-12-hours/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 03:03:37 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[CSS/HTML]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[carousel]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Kristina Naude]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=1436</guid>
		<description><![CDATA[Kristina had been toying with the idea of her own website for a couple weeks now. However, this past weekend, she got around to comping one together. She has been fascinated with the eclectic desk style that seems popular these days. While she was busy in Photoshop, I was setting up the domain and basic [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>Kristina had been toying with the idea of her own website for a couple weeks now. However, this past weekend, she got around to comping one together. She has been fascinated with the <a href="http://sashaendoh.blogspot.com/2008/10/web-design-trends-whats-on-your-desk.html">eclectic desk style</a> that seems popular these days. While she was busy in Photoshop, I was setting up the domain and basic file structure.  Since it&#8217;s a small site, the preparation didn&#8217;t take long. In fact the most time consuming task involved cutting images up from the comp and organizing them.  Coding was a snap. The site is a basic 3 column layout and most everything is an image.</p>
<p><a href="http://www.kristinanaude.com"><br />
<img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/02/kristinanaude-screenshot.png" alt="KristinaNaude.com Screenshot" title="KristinaNaude.com Screenshot" width="600" height="613" class="alignnone size-full wp-image-1440" /></a></p>
<p>Creating the carousel to page through her resume was a custom job that took me about 20 minutes using <a href="http://jquery.com/">jQuery</a>.  I had hoped to just go out to the jQuery community and find a nifty <a href="http://plugins.jquery.com/search/node/Carousel+type%3Aproject_project">carousel plugin</a> that I could just drop in and be on my way. Unfortunately this wasn&#8217;t the case. While there were plenty of options out there, everything was over engineered and too rigid. Most require the content to be an unordered list but I was using a set of divs. This shouldn&#8217;t make a lick of difference as any jQuery selector could be used. </p>
<p>Carousel scripts are pretty basic. You need a set of items to rotate through, a container to hold the items, and a frame to mask off the ugly parts. Some basic styling is used to line the items up in a row. The container is given a <a href="http://reference.sitepoint.com/css/position">postion of absolute</a> so it can be freely moved left and right and a large width to hold all of the items inside. The frame needs the <a href="http://reference.sitepoint.com/css/overflow">overflow property set to hidden</a> to mask out the items that we don&#8217;t want the user to see. To pull off the animation we use jQuery&#8217;s handy <a href="http://docs.jquery.com/Effects/animate#paramsoptions">animate() method</a> for the left and right positioning of the container element. This lets us set a key point and jQuery will handle the interpolation from the current value to the key point. Attach this function to a next and previous button and you&#8217;re ready to go with your own custom carousel that works the way you want it to.</p>
<p><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2009/02/how-a-carousel-works.png" alt="How A Carousel Works" title="How A Carousel Works" width="600" height="800" class="alignnone size-full wp-image-1437" /></p>
<p>It was a lot of fun to create a brand new site from scratch without any legacy content or rigid CMS. Simple websites are fun! And if you haven&#8217;t checked out the fruits of both of our labors, then please immediately proceed to <a href="http://www.kristinanaude.com">KristinaNaude.com</a>.</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/kristinanaudecom-from-comp-to-code-in-12-hours/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Super Mario Kart JavaScript Version</title>
		<link>http://www.russellheimlich.com/blog/super-mario-kart-javascript-version/</link>
		<comments>http://www.russellheimlich.com/blog/super-mario-kart-javascript-version/#comments</comments>
		<pubDate>Thu, 22 May 2008 04:16:30 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Random Musings]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Kart]]></category>
		<category><![CDATA[nihilogic.dk]]></category>
		<category><![CDATA[Super Mario]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=835</guid>
		<description><![CDATA[In case the JavaScript version of the original Super Mario game got a bit boring, Nihilogic has redone Super Mario Kart in much the same way. Weighing in at a mere 11Kb this proof concept lets you choose your driver (Mario, Luigi, or the Princess) and one of two courses. There is no collecting coins, [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>In case the <a href="http://www.russellheimlich.com/blog/super-mario-done-in-javascript-and-a-weird-flash-game/">JavaScript version of the original Super Mario game</a> got a bit boring, <a href="http://blog.nihilogic.dk/2008/05/javascript-super-mario-kart.html">Nihilogic</a> has redone Super Mario Kart in much the same way. Weighing in at a mere 11Kb this proof concept lets you choose your driver (Mario, Luigi, or the Princess) and one of two courses. There is no collecting coins, knocking out opponents with turtle shells, or even counting laps. You can use the arrow keys of your keyboard to steer around a simple loop course over and over again until the end of time. The computer controlled drivers help keep up the pace though you can pass right through them as there is no collision detection.</p>
<p>Music is included to add to the nostalgia of the old <abbr title="Super Nintendo Entertainment System">SNES</abbr> days. There&#8217;s not much else to this except to prove what can be done with modern JavaScript when applied to interactive games.  </p>
<p><a href="http://www.nihilogic.dk/labs/mariokart/"><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2008/05/super-mario-kart-javascript.png" alt="Play a JavaScript version of Super Mario Kart" title="Super Mario Kart in JavaScript" width="500" height="293" class="alignnone size-full wp-image-836" /></a></p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/super-mario-kart-javascript-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Mario Done In JavaScript And A Weird Flash Game</title>
		<link>http://www.russellheimlich.com/blog/super-mario-done-in-javascript-and-a-weird-flash-game/</link>
		<comments>http://www.russellheimlich.com/blog/super-mario-done-in-javascript-and-a-weird-flash-game/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 03:23:03 +0000</pubDate>
		<dc:creator>Russell Heimlich</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Random Musings]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.russellheimlich.com/blog/?p=750</guid>
		<description><![CDATA[The guy behind the blog nihilogic.dk decided to partake in an exercise of game design using JavaScript. Choosing the classic Super Mario Brothers game, his proof of concept is considered a success.  The whole thing weighs in at 14Kb and the entire game is contained in one JavaScript file.
&#8220;There are no external image files [...]<p>a</p>
]]></description>
			<content:encoded><![CDATA[<p>The guy behind the blog <a href="http://blog.nihilogic.dk">nihilogic.dk</a> decided to partake in an exercise of game design using JavaScript. Choosing the classic Super Mario Brothers game, <a href="http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html">his proof of concept</a> is considered a success.  The whole thing weighs in at 14Kb and the entire game is contained in one JavaScript file.</p>
<blockquote><p><em>&#8220;There are no external image files or anything, everything is rendered with Javascript using either canvas elements or old fashioned div-making tactics (for IE). The sprites are stored in custom encoded strings in a format that only allows 4 colors for each sprite but in turn only takes up around 40-60 bytes per sprite.&#8221;</em></p></blockquote>
<p><a href="http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html"><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2008/04/javascript-mario.png" alt="Super Mario Done in JavaScript" title="JavaScript Mario" width="500" height="404" class="alignnone size-full wp-image-751" /></a></p>
<p>Granted it is very brief and not entirely true to the original gameplay, it is still downright impressive that something like this can even be accomplished with a web-based scripting language.</p>
<p>If you are interested in seeing how the whole thing works, you can sneak a peek at the <a href="http://www.nihilogic.dk/labs/mario/mario.js">uncompressed code</a>.</p>
<p>Keeping with the 8-bit video game theme of this post, <a href="http://tetrageddon.com/">Tetrageddon.com</a> is an odd Flash site. The style of the music and graphics is in homage to the 8-bit videogames of years past but there are no explicit directions about what to do. Instead you are left to fend for yourself exploring the site and uncovering the wacky consequences of your voyage. The whole thing is &#8220;CENTALLY MHALLENGED&#8221; to borrow from the sites page title. </p>
<p><a href="http://tetrageddon.com"><img src="http://www.russellheimlich.com/blog/wp-content/uploads/2008/04/tetrageddon.png" alt="Tetrageddon" title="Tetrageddon" width="500" height="425" class="alignnone size-full wp-image-752" /></a></p>
<p>Tip: on the main page hold the up arrow key and make sure you allow pop-ups for the site. </p>
<p>If anyone can figure out something interesting to do at Tetrageddon.com let me know in the comments.</p>
<p>a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.russellheimlich.com/blog/super-mario-done-in-javascript-and-a-weird-flash-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
