<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://davidwalsh.name/wp-atom.php">
	<title type="text">David Walsh :: PHP, CSS, MooTools, jQuery, and Everything Else</title>
	<subtitle type="text">PHP, CSS, MooTools, jQuery, and Everything Else</subtitle>

	<updated>2009-11-10T02:23:08Z</updated>
	<generator uri="http://wordpress.org/" version="2.8.5">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://davidwalsh.name" />
	<id>http://davidwalsh.name/feed/atom</id>
	

			<geo:lat>43.072994</geo:lat><geo:long>-89.519924</geo:long><link rel="self" href="http://feeds.feedburner.com/Bludice" type="application/atom+xml" /><feedburner:emailServiceId>Bludice</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[When Webmasters&#160;Attack!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/O7vAD1YYehY/when-webmasters-attack" />
		<id>http://davidwalsh.name/?p=4177</id>
		<updated>2009-11-10T01:44:25Z</updated>
		<published>2009-11-10T00:25:13Z</published>
		<category scheme="http://davidwalsh.name" term="rand()" />		<summary type="html"><![CDATA[CSS-Tricks scribe Chris Coyier wrote a great post titled What Beautiful HTML Code Looks Like where he outlined (with a great image, no less) how a great HTML/PHP file looks when proper programming practices are used.  The post was so popular that the featured image was promoted to the Digg homepage.  Then the [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/when-webmasters-attack">When Webmasters&nbsp;Attack!</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/csstricks-css-text-selection-highlighting' rel='bookmark' title='Permanent Link: CSS-Tricks &#8212; CSS &#038; Text Selection &#038;&nbsp;Highlighting'>CSS-Tricks &#8212; CSS &#038; Text Selection &#038;&nbsp;Highlighting</a></li><li><a href='http://davidwalsh.name/open-letter-webmaster-ii' rel='bookmark' title='Permanent Link: An Open Letter to You, Webmaster&nbsp;II'>An Open Letter to You, Webmaster&nbsp;II</a></li><li><a href='http://davidwalsh.name/9-signs-not-to-hire-that-web-guy' rel='bookmark' title='Permanent Link: 9 Signs You Shouldn&#8217;t Hire THAT Web&nbsp;Guy'>9 Signs You Shouldn&#8217;t Hire THAT Web&nbsp;Guy</a></li><li><a href='http://davidwalsh.name/google-spy-php-total-search-results' rel='bookmark' title='Permanent Link: Google Grabber &#8212; Using PHP to Find Out How Many Pages Your Domain Has Listed in&nbsp;Google'>Google Grabber &#8212; Using PHP to Find Out How Many Pages Your Domain Has Listed in&nbsp;Google</a></li><li><a href='http://davidwalsh.name/open-letter-webmaster' rel='bookmark' title='Permanent Link: An Open Letter to You,&nbsp;Webmaster'>An Open Letter to You,&nbsp;Webmaster</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/when-webmasters-attack">&lt;p&gt;CSS-Tricks scribe Chris Coyier wrote a great post titled &lt;a href="http://css-tricks.com/what-beautiful-html-code-looks-like/"&gt;What Beautiful HTML Code Looks Like&lt;/a&gt; where he outlined (with a great image, no less) how a great HTML/PHP file looks when proper programming practices are used.  The post was so popular that the featured image was promoted to the Digg homepage.  Then the webmasters logged out of their guild chat long enough to &lt;a href="http://digg.com/design/What_Beautiful_HTML_Code_Looks_Like_inforgraphic"&gt;bless the Digg comments with their wisdom&lt;/a&gt;.  I present to you&amp;#8230;

&lt;h2&gt;When Webmasters Attack!&lt;/h2&gt;
&lt;blockquote&gt;Also, what kind of web designer doesn&amp;#8217;t already know this? It&amp;#8217;s called being organized. However, all that white-space is going to add-up and waste bandwidth, which makes this &amp;#8220;beautiful code&amp;#8221; (a self-serving, inaccurate, subjective description) not-so-perfect.&lt;/blockquote&gt;
&lt;p&gt;What kind of web designer doesn&amp;#8217;t know how easy it is to GZIP content which compresses/eliminates all of the extra whitespace that makes code more maintainable?

&lt;blockquote&gt;I don&amp;#8217;t think &amp;lt;?php .. is valid HTML 5 either.&lt;/blockquote&gt;
&lt;p&gt;This isn&amp;#8217;t a &amp;#8220;Hello Kitty&amp;#8221; picture, Webmaster, so please don&amp;#8217;t comment.  This will get parsed by PHP and output as HTML.&lt;/p&gt;

&lt;blockquote&gt;I link to one stylesheet. It works on firefox, safari and ie8.
&lt;Br /&gt;
If you can&amp;#8217;t be bothered to upgrade your browser, I can&amp;#8217;t be bothered with you.
&lt;Br /&gt;
None of this If IE&amp;gt;blabla shit.
&lt;Br /&gt;
Oh, and spare me the &amp;#8220;but i need IE6 to use some of the software at my office&amp;#8221;. I DONT CARE! Use a more recent browser to surf the internet, and stop spreading viruses because you&amp;#8217;re too lazy.&lt;/blockquote&gt;
&lt;p&gt;I was going to ask you, Webmaster, about your clients&amp;#8217; web visitors and the money they&amp;#8217;d be losing by turning away persons with IE6 and IE7 browsers but then I realized I took them all from you.  Apparently the order of importance goes:  you, client, visitors.  That&amp;#8217;s completely backward.&lt;/p&gt;
&lt;blockquote&gt;&amp;#8230;The irony of this article is that it&amp;#8217;s one giant PNG image.  Further proof that the most beautiful HTML is the nonexistent kind.&lt;/blockquote&gt;
&lt;p&gt;Apparently Chris should have used a JPEG?&lt;/p&gt;
&lt;blockquote&gt;Why I am not surprised to see a MacOS window?&lt;/blockquote&gt;
&lt;p&gt;Because you&amp;#8217;re a psychic?  WTF is that supposed to mean?&lt;/p&gt;
&lt;blockquote&gt;PHP in a .HTML file?
&lt;Br /&gt;
change the title to &amp;#8220;What Beautiful HTML Code Looks Like [infoFAIL]&amp;#8220;&lt;/blockquote&gt;
&lt;p&gt;As long as you&amp;#8217;re going to ignore the main point of the post and be a smart ass about the PHP/HTML, I&amp;#8217;ll point out that Chris added a .htaccess directive to parse .html files as PHP.  Ouch, sick burn!&lt;/p&gt;
&lt;blockquote&gt;No title attributes in the anchor tags. Since when does that make for beautiful HTML?&lt;/blockquote&gt;
&lt;p&gt;The article isn&amp;#8217;t called &amp;#8220;What Beautiful SEO Looks Like&amp;#8221;.&lt;/p&gt;
&lt;blockquote&gt;This page has a story, a sidebar, and a footer. &amp;#8216;Real&amp;#8217; websites are far more dynamic than this, and by &amp;#8216;real&amp;#8217; I mean ones that people will go to. Complex websites have complex markup. You shouldn&amp;#8217;t be bragging just because you&amp;#8217;ve passed your w3schools tests.&lt;/blockquote&gt;
&lt;p&gt;You&amp;#8217;re right.  What he should really brag about are the dozens of thousands of RSS followers and his status within the community.&lt;/p&gt;
&lt;blockquote&gt;I get it but to some point it gets stupid. Stop accommodating specific browsers. If the web page loads properly then good but if it doesnt and looks broken then that tells he consumer to upgrade their fucking browser! It should be that simple.&lt;/blockquote&gt;
&lt;p&gt;Another lazy, ignorant idiot that doesn&amp;#8217;t understand that he isn&amp;#8217;t important &amp;#8212; his clients and their visitors are.  This person clearly doesn&amp;#8217;t get it.&lt;/p&gt;
&lt;h2&gt;In the end&amp;#8230;&lt;/h2&gt;
&lt;p&gt;Thank you again, Webmaster, for reminding me why I should be so proud of the work I do.  Without you I couldn&amp;#8217;t pay for house, cars, and fine wine.  Keep up the good work so I can keep up my fine life!&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4177"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/when-webmasters-attack"&gt;When Webmasters&amp;nbsp;Attack!&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/csstricks-css-text-selection-highlighting' rel='bookmark' title='Permanent Link: CSS-Tricks &amp;#8212; CSS &amp;#038; Text Selection &amp;#038;&amp;nbsp;Highlighting'&gt;CSS-Tricks &amp;#8212; CSS &amp;#038; Text Selection &amp;#038;&amp;nbsp;Highlighting&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/open-letter-webmaster-ii' rel='bookmark' title='Permanent Link: An Open Letter to You, Webmaster&amp;nbsp;II'&gt;An Open Letter to You, Webmaster&amp;nbsp;II&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/9-signs-not-to-hire-that-web-guy' rel='bookmark' title='Permanent Link: 9 Signs You Shouldn&amp;#8217;t Hire THAT Web&amp;nbsp;Guy'&gt;9 Signs You Shouldn&amp;#8217;t Hire THAT Web&amp;nbsp;Guy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/google-spy-php-total-search-results' rel='bookmark' title='Permanent Link: Google Grabber &amp;#8212; Using PHP to Find Out How Many Pages Your Domain Has Listed in&amp;nbsp;Google'&gt;Google Grabber &amp;#8212; Using PHP to Find Out How Many Pages Your Domain Has Listed in&amp;nbsp;Google&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/open-letter-webmaster' rel='bookmark' title='Permanent Link: An Open Letter to You,&amp;nbsp;Webmaster'&gt;An Open Letter to You,&amp;nbsp;Webmaster&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/O7vAD1YYehY" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/when-webmasters-attack#comments" thr:count="22" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/when-webmasters-attack/feed/atom" thr:count="22" />
		<thr:total>22</thr:total>
	<feedburner:origLink>http://davidwalsh.name/when-webmasters-attack</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[Bold Web Predictions for&#160;2010]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/mUoQejFFtws/predictions-2010" />
		<id>http://davidwalsh.name/?p=4092</id>
		<updated>2009-11-09T13:44:43Z</updated>
		<published>2009-11-09T13:44:43Z</published>
		<category scheme="http://davidwalsh.name" term="Blog" /><category scheme="http://davidwalsh.name" term="Theory / Ideas" />		<summary type="html"><![CDATA[With another year coming to a close, it&#8217;s time to look toward the near future.  The following are my predictions for the web in 2010.

Twitter will steal a bit of Google&#8217;s search thunder.
Twitter challenge Google search?  You bet.  The advantage twitter has over Google search is that Twitter provides almost to-the-second search [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/predictions-2010">Bold Web Predictions for&nbsp;2010</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/web-predictions-2009' rel='bookmark' title='Permanent Link: Web Predictions For&nbsp;2009'>Web Predictions For&nbsp;2009</a></li><li><a href='http://davidwalsh.name/tweetify' rel='bookmark' title='Permanent Link: Implementing String.Tweetify in&nbsp;MooTools'>Implementing String.Tweetify in&nbsp;MooTools</a></li><li><a href='http://davidwalsh.name/open-letter-webmaster-ii' rel='bookmark' title='Permanent Link: An Open Letter to You, Webmaster&nbsp;II'>An Open Letter to You, Webmaster&nbsp;II</a></li><li><a href='http://davidwalsh.name/blog-goals-2009' rel='bookmark' title='Permanent Link: Blog Goals for&nbsp;2009'>Blog Goals for&nbsp;2009</a></li><li><a href='http://davidwalsh.name/august-mailbag' rel='bookmark' title='Permanent Link: August Mailbag Q &#038;&nbsp;A'>August Mailbag Q &#038;&nbsp;A</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/predictions-2010">&lt;p&gt;With another year coming to a close, it&amp;#8217;s time to look toward the near future.  The following are my predictions for the web in 2010.&lt;/p&gt;

&lt;h2&gt;Twitter will steal a bit of Google&amp;#8217;s search thunder.&lt;/h2&gt;
&lt;p&gt;Twitter challenge Google search?  You bet.  The advantage twitter has over Google search is that Twitter provides almost to-the-second search results so if you want the most recent content, you can hit Twitter.  While Google analyzes static content, Twitter provides you the &amp;#8220;buzz&amp;#8221;, or most recently/frequently talked about links/information in a condensed format.  Sometimes fewer options and information is a good thing.&lt;/p&gt;

&lt;h2&gt;Gmail and GChat will slowly become Google Wave.&lt;/h2&gt;
&lt;p&gt;Wave is clearly Google&amp;#8217;s successor to vanilla email (via Gmail) and instant messaging.  Don&amp;#8217;t look for Gmail to disappear completely during 2010 but I expect Wave to completely integrate email capabilities by the end of 2010.&lt;/p&gt;

&lt;h2&gt;Facebook will grow in popularity despite continuing to disappointing its own users;  Your mother will join Facebook.
&lt;/h2&gt;
&lt;p&gt;Unfortunately Facebook will continue to add features that make their site more difficult to use and, in doing so, will continue to disregard the fury of its users.  Facebook will continue to &amp;#8220;out-think the room&amp;#8221; in the features it adds.  Facebook will also push its &amp;#8220;Lite&amp;#8221; version more toward an older audience.  Your mother, in turn, will join.  MySpace will continue to become the Geocities of social websites.&lt;/p&gt;

&lt;h2&gt;Internet Explorer 6 support will finally be dropped from 90+% of websites.&lt;/h2&gt;
&lt;p&gt;Many websites have already dropped IE6 support, which I feel is too soon, but we should all be able to rejoice by the end of 2010.  Windows 7 will have been out for over a year and IT departments will be pushed into upgrading from XP so as to not allow employees to be two operating system versions behind.  Persons with older PCs will also opt to upgrade to a newer system due to highly competitive pricing by Dell, Compaq, and Toshiba.&lt;/p&gt;

&lt;h2&gt;Webkit-based browsers will overtake Firefox;  Mozilla will face a Web Designer/Developer rebellion.&lt;/h2&gt;
&lt;p&gt;Google Chrome has quickly become a developer favorite during 2009 and there&amp;#8217;s no reason to believe that affection will slow during 2010.  Expect Chrome to debut a flexible plugin system during 2010 which will meet or exceed the flexibility provided by Firefox.  As a result of Firebug&amp;#8217;s bugs and memory problems, Mozilla will start to draw the ire of the developers that made them so popular.&lt;/p&gt;

&lt;h2&gt;Windows 7 will be a giant success (on a Windows level).&lt;/h2&gt;
&lt;p&gt;Due to the garbage OS known as Vista and continued successful marketing by Microsoft, Windows 7 will become a huge success.  Lets not discount the improvements made by Windows 7 though &amp;#8212; its UI and functionality improvements are to be recognized.  IT departments will most definitely be pushed to update their outdated XP machines, begrudgingly or not.  Mac fanboys wont notice a thing.&lt;/p&gt;

&lt;h2&gt;The MooTools javascript framework will boom in popularity thanks to the plugin forge and MooTools 2.&lt;/h2&gt;
&lt;p&gt;Having a central repository for quality MooTools plugins will increase the usage of the javascript framework.  MooTools 2, with its improvements in every piece of the framework, will turn the heads of developers using other libraries.  I also foresee users of other frameworks, looking for a more advanced OOP approach, giving MooTools a solid shot.&lt;/p&gt;

&lt;h2&gt;Digg will completely lose its developer/designer userbase and become &amp;#8220;just another funny pics/vids&amp;#8221; site.&lt;/h2&gt;
&lt;p&gt;Diggers&amp;#8217; habits of promoting stupid pictures and videos will essentially ruin that last shreds of credibility the site has left and users will continue to leave.  Kevin Rose will take &amp;#8220;less of a role&amp;#8221; with Digg in an effort to distance himself from Digg&amp;#8217;s direction.&lt;/p&gt;

&lt;h2&gt;The David Walsh Blog will continue to ascend.
&lt;/h2&gt;&lt;p&gt;More sweet MooTools, jQuery, CSS, PHP, and AJAX tutorials on the way&amp;#8230;but then again, you already knew this.&lt;/p&gt;

&lt;p&gt;What do you think?  Am I crazy?  Are these easy predictions?  Tell me!&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4092"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/predictions-2010"&gt;Bold Web Predictions for&amp;nbsp;2010&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/web-predictions-2009' rel='bookmark' title='Permanent Link: Web Predictions For&amp;nbsp;2009'&gt;Web Predictions For&amp;nbsp;2009&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/tweetify' rel='bookmark' title='Permanent Link: Implementing String.Tweetify in&amp;nbsp;MooTools'&gt;Implementing String.Tweetify in&amp;nbsp;MooTools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/open-letter-webmaster-ii' rel='bookmark' title='Permanent Link: An Open Letter to You, Webmaster&amp;nbsp;II'&gt;An Open Letter to You, Webmaster&amp;nbsp;II&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/blog-goals-2009' rel='bookmark' title='Permanent Link: Blog Goals for&amp;nbsp;2009'&gt;Blog Goals for&amp;nbsp;2009&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/august-mailbag' rel='bookmark' title='Permanent Link: August Mailbag Q &amp;#038;&amp;nbsp;A'&gt;August Mailbag Q &amp;#038;&amp;nbsp;A&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/mUoQejFFtws" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/predictions-2010#comments" thr:count="51" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/predictions-2010/feed/atom" thr:count="51" />
		<thr:total>51</thr:total>
	<feedburner:origLink>http://davidwalsh.name/predictions-2010</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[Fixing mod_rewrite and .htaccess on GoDaddy&#160;Hosting]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/tQrBnQc7cWE/mod_rewrite-htaccess-godaddy" />
		<id>http://davidwalsh.name/?p=4119</id>
		<updated>2009-11-05T13:24:52Z</updated>
		<published>2009-11-05T13:24:52Z</published>
		<category scheme="http://davidwalsh.name" term=".htaccess" /><category scheme="http://davidwalsh.name" term="Apache / Server" /><category scheme="http://davidwalsh.name" term="Hosting / Domain" />		<summary type="html"><![CDATA[I recently launched a new website on GoDaddy shared hosting.  The website required mod_rewrite for SEO-friendly URLs.  GoDaddy provides mod_rewrite but every time I tried to hit a two-deep URL, I would get a 404 error.  Here&#8217;s what I had:
# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
The [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/mod_rewrite-htaccess-godaddy">Fixing mod_rewrite and .htaccess on GoDaddy&nbsp;Hosting</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/check-module-presence-htaccess' rel='bookmark' title='Permanent Link: Check For Module Presence in&nbsp;.htaccess'>Check For Module Presence in&nbsp;.htaccess</a></li><li><a href='http://davidwalsh.name/godaddy-hosting-curl' rel='bookmark' title='Permanent Link: GoDaddy Hosting Tip &#8211; Using CURL On GoDaddy Shared&nbsp;Hosting'>GoDaddy Hosting Tip &#8211; Using CURL On GoDaddy Shared&nbsp;Hosting</a></li><li><a href='http://davidwalsh.name/prevent-image-hotlinking' rel='bookmark' title='Permanent Link: Prevent Image Hotlinking With .htaccess and&nbsp;mod_rewrite'>Prevent Image Hotlinking With .htaccess and&nbsp;mod_rewrite</a></li><li><a href='http://davidwalsh.name/wordpress-htaccess-file-is-genius' rel='bookmark' title='Permanent Link: WordPress&#8217; .htaccess File Is&nbsp;Genius'>WordPress&#8217; .htaccess File Is&nbsp;Genius</a></li><li><a href='http://davidwalsh.name/no-www-using-htaccess-file' rel='bookmark' title='Permanent Link: No WWW Using&nbsp;.htaccess'>No WWW Using&nbsp;.htaccess</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/mod_rewrite-htaccess-godaddy">&lt;p&gt;I recently launched a new website on GoDaddy shared hosting.  The website required mod_rewrite for SEO-friendly URLs.  GoDaddy provides mod_rewrite but every time I tried to hit a two-deep URL, I would get a 404 error.  Here&amp;#8217;s what I had:&lt;/p&gt;
&lt;pre class="htaccess"&gt;# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]&lt;/pre&gt;
&lt;p&gt;The fix to this problem was to add the following directive before my mod_rewrite directives:&lt;/p&gt;
&lt;pre class="htaccess"&gt;#Fix Rewrite
Options -Multiviews&lt;/pre&gt;
&lt;p&gt;Tada!  The URLs began working and the website&amp;#8217;s SEO has taken off!&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4119"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/mod_rewrite-htaccess-godaddy"&gt;Fixing mod_rewrite and .htaccess on GoDaddy&amp;nbsp;Hosting&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/check-module-presence-htaccess' rel='bookmark' title='Permanent Link: Check For Module Presence in&amp;nbsp;.htaccess'&gt;Check For Module Presence in&amp;nbsp;.htaccess&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/godaddy-hosting-curl' rel='bookmark' title='Permanent Link: GoDaddy Hosting Tip &amp;#8211; Using CURL On GoDaddy Shared&amp;nbsp;Hosting'&gt;GoDaddy Hosting Tip &amp;#8211; Using CURL On GoDaddy Shared&amp;nbsp;Hosting&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/prevent-image-hotlinking' rel='bookmark' title='Permanent Link: Prevent Image Hotlinking With .htaccess and&amp;nbsp;mod_rewrite'&gt;Prevent Image Hotlinking With .htaccess and&amp;nbsp;mod_rewrite&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/wordpress-htaccess-file-is-genius' rel='bookmark' title='Permanent Link: WordPress&amp;#8217; .htaccess File Is&amp;nbsp;Genius'&gt;WordPress&amp;#8217; .htaccess File Is&amp;nbsp;Genius&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/no-www-using-htaccess-file' rel='bookmark' title='Permanent Link: No WWW Using&amp;nbsp;.htaccess'&gt;No WWW Using&amp;nbsp;.htaccess&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/tQrBnQc7cWE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/mod_rewrite-htaccess-godaddy#comments" thr:count="23" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/mod_rewrite-htaccess-godaddy/feed/atom" thr:count="23" />
		<thr:total>23</thr:total>
	<feedburner:origLink>http://davidwalsh.name/mod_rewrite-htaccess-godaddy</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[New York Times-Style Text Selection Widget Using MooTools or&#160;jQuery]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/mpq-5qKrGKE/text-select-widget" />
		<id>http://davidwalsh.name/?p=4022</id>
		<updated>2009-11-06T22:08:31Z</updated>
		<published>2009-11-04T14:06:13Z</published>
		<category scheme="http://davidwalsh.name" term="MooTools" /><category scheme="http://davidwalsh.name" term="Usability / Accessibility" /><category scheme="http://davidwalsh.name" term="XML / XHTML" />		<summary type="html"><![CDATA[



Aaron Newton made a great request to me last week:  why not make my MooTools Documentation Bookmarklet function more like the New York Time&#8217;s text selection widget.  NYT&#8217;s text selection widget listens for text selection and presents the user with a &#8220;search&#8221; icon they may click on to learn more about that term. [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/text-select-widget">New York Times-Style Text Selection Widget Using MooTools or&nbsp;jQuery</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/text-selection-ajax' rel='bookmark' title='Permanent Link: Record Text Selections Using MooTools or jQuery&nbsp;AJAX'>Record Text Selections Using MooTools or jQuery&nbsp;AJAX</a></li><li><a href='http://davidwalsh.name/csstricks-css-text-selection-highlighting' rel='bookmark' title='Permanent Link: CSS-Tricks &#8212; CSS &#038; Text Selection &#038;&nbsp;Highlighting'>CSS-Tricks &#8212; CSS &#038; Text Selection &#038;&nbsp;Highlighting</a></li><li><a href='http://davidwalsh.name/jquery-favelet-documentation' rel='bookmark' title='Permanent Link: jQuery Code Documentation&nbsp;Favelet'>jQuery Code Documentation&nbsp;Favelet</a></li><li><a href='http://davidwalsh.name/ajax-spinner-jquery' rel='bookmark' title='Permanent Link: Form Element AJAX Spinner Attachment Using&nbsp;jQuery'>Form Element AJAX Spinner Attachment Using&nbsp;jQuery</a></li><li><a href='http://davidwalsh.name/digg-share-widget' rel='bookmark' title='Permanent Link: Digg-Style Dynamic Share Widget Using&nbsp;MooTools'>Digg-Style Dynamic Share Widget Using&nbsp;MooTools</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/text-select-widget">&lt;p&gt;
&lt;img src="http://davidwalsh.name/dw-content/nytimeswidget.jpg" alt="NY Times Widget" /&gt;
&lt;/p&gt;

&lt;p&gt;Aaron Newton made a great request to me last week:  why not make my &lt;a href="http://davidwalsh.name/mootools-documentation"&gt;MooTools Documentation Bookmarklet&lt;/a&gt; function more like the New York Time&amp;#8217;s text selection widget.  NYT&amp;#8217;s text selection widget listens for text selection and presents the user with a &amp;#8220;search&amp;#8221; icon they may click on to learn more about that term.  I&amp;#8217;ve tried to answer that challenge &amp;#8212; not in bookmarklet form but in website widget form.&lt;/p&gt;

&lt;div class="actions"&gt;
	&lt;a href="http://davidwalsh.name/dw-content/selection-search.php" class="demo"&gt;View MooTools Demo&lt;/a&gt;
	&lt;a href="http://davidwalsh.name/dw-content/selection-search.php?library=jquery" class="demo"&gt;View jQuery Demo&lt;/a&gt;
&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;The Sample HTML&lt;/h2&gt;

&lt;pre class="html"&gt;
&amp;lt;div id=&amp;quot;content-area&amp;quot;&amp;gt;
	.htaccess AJAX Apache / Server APIs Blog Bookmarking / Social Books Browsers CSS / Design Google Guest Blogger Hosting / Domain Javascript jQuery
	link() Microsoft MooTools MySQL Optimization PHP Poll rand() Security Shell Theory / Ideas Usability / Accessibility XML / XHTML
	This blog is targeted toward all levels of web designers and developers. All web topics are discussed, including CSS, Javascript (MooTools and jQuery), PHP, and more.
&amp;lt;/div&amp;gt;
&lt;/pre&gt;

&lt;p&gt;The above code is next to meaningless per the widget &amp;#8212; I simply want to illustrate the area I&amp;#8217;d like it to work in has an ID of &lt;span class="keyword"&gt;content-area&lt;/span&gt;.&lt;/p&gt;

&lt;h2&gt;The MooTools Javascript&lt;/h2&gt;

&lt;pre class="js"&gt;
window.addEvent('domready',function(){
	(function($) {
		//gets the selected text
		var getSelection = function() {
			return $try(
				function() { return window.getSelection(); },
				function() { return document.getSelection(); },
				function() { 
			        var selection = document.selection &amp;amp;&amp;amp; document.selection.createRange();
					if(selection.text) { return selection.text; }
					return false;
			      }
			) || false;
		};
		//vars 
		var url = 'http://davidwalsh.name/?s={term}', selectionImage;
		//event to listen
		$('content-area').addEvent('mouseup',function(e) {
			var selection = getSelection();
			if(selection &amp;amp;&amp;amp; (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
				//ajax here { http://davidwalsh.name/text-selection-ajax }
				if(!selectionImage) {
					selectionImage = new Element('a',{
						href: url,
						opacity:0,
						id: 'selection-image',
						title: 'Click here to learn more about this term',
						target: '_blank'
					}).inject(document.body,'top');
				}
				//handle the every-time event
				//alert(selection);
				selectionImage.set('href',url.replace('{term}',encodeURI(selection))).setStyles({
					top: e.page.y - 30,	//offsets
					left: e.page.x - 13 //offsets
				}).tween('opacity',0);
			}
		});
		
		$(document.body).addEvent('mousedown',function() {
			//hider
			if(selectionImage) { selectionImage.tween('opacity',1); }
		});
		
	})(document.id);
});
&lt;/pre&gt;

&lt;p&gt;During the &lt;span class="function"&gt;mouseup&lt;/span&gt; event within the selected container (&lt;span class="keyword"&gt;content-area&lt;/span&gt;), we determine if any text has been highlighted.  If so, we:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Insert the &lt;span class="param"&gt;A&lt;/span&gt; element if it has not yet been injected into the body.&lt;/li&gt;
	&lt;li&gt;Change the &lt;span class="param"&gt;A&lt;/span&gt; element&amp;#8217;s URL to accommodate for the new search term.&lt;/li&gt;
	&lt;li&gt;Position the element to at an offset position above where the mouse goes up.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;During every &lt;span class="function"&gt;mousedown&lt;/span&gt; event we hide the &lt;span class="param"&gt;A&lt;/span&gt; element.&lt;/p&gt;

&lt;h2&gt;The jQuery Javascript&lt;/h2&gt;

&lt;pre class="js"&gt;
/* attempt to find a text selection */
function getSelected() {
	if(window.getSelection) { return window.getSelection(); }
	else if(document.getSelection) { return document.getSelection(); }
	else {
		var selection = document.selection &amp;amp;&amp;amp; document.selection.createRange();
		if(selection.text) { return selection.text; }
		return false;
	}
	return false;
}
/* create sniffer */
$(document).ready(function() {
	var url = 'http://davidwalsh.name/?s={term}', selectionImage;
	$('#content-area').mouseup(function(e) {
		var selection = getSelected();
		if(selection &amp;amp;&amp;amp; (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
			//ajax here { http://davidwalsh.name/text-selection-ajax }
			if(!selectionImage) {
				selectionImage = $('&amp;lt;a&amp;gt;').attr({
					href: url, 
					title: 'Click here to learn more about this term',
					target: '_blank',
					id: 'selection-image'
				}).hide();
				$(document.body).append(selectionImage);
			}
			selectionImage.attr('href',url.replace('{term}',encodeURI(selection))).css({
				top: e.pageY - 30,	//offsets
				left: e.pageX - 13 //offsets
			}).fadeIn();
		}
	});
	$(document.body).mousedown(function() {
		if(selectionImage) { selectionImage.fadeOut(); }
	});
});
&lt;/pre&gt;

&lt;p&gt;Follows the same principal as above.&lt;/p&gt;

&lt;div class="actions"&gt;
	&lt;a href="http://davidwalsh.name/dw-content/selection-search.php" class="demo"&gt;View MooTools Demo&lt;/a&gt;
	&lt;a href="http://davidwalsh.name/dw-content/selection-search.php?library=jquery" class="demo"&gt;View jQuery Demo&lt;/a&gt;
&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;Ideas &amp;amp; Enhancements&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;Depending on your philosophy, you may want to implement a minimum character check as well:&lt;/p&gt;
&lt;pre class="js"&gt;
if(selection &amp;amp;&amp;amp; (selection = new String(selection).replace(/^\s+|\s+$/g,'')) &amp;amp;&amp;amp; selection.length &amp;gt; 4) { //5 char min
&lt;/pre&gt;&lt;/li&gt;
	&lt;li&gt;You may want to also fidget with adding/modifying text selection with keyboard keys as well.  I&amp;#8217;ve chosen to pass on that.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://davidwalsh.name/text-selection-ajax"&gt;Saving the selection content via AJAX&lt;/a&gt; for analytical reasons may not be a bad idea either.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Have any other ideas for improvement?  Would you have any use for this on your website(s)?&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4022"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/text-select-widget"&gt;New York Times-Style Text Selection Widget Using MooTools or&amp;nbsp;jQuery&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/text-selection-ajax' rel='bookmark' title='Permanent Link: Record Text Selections Using MooTools or jQuery&amp;nbsp;AJAX'&gt;Record Text Selections Using MooTools or jQuery&amp;nbsp;AJAX&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/csstricks-css-text-selection-highlighting' rel='bookmark' title='Permanent Link: CSS-Tricks &amp;#8212; CSS &amp;#038; Text Selection &amp;#038;&amp;nbsp;Highlighting'&gt;CSS-Tricks &amp;#8212; CSS &amp;#038; Text Selection &amp;#038;&amp;nbsp;Highlighting&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/jquery-favelet-documentation' rel='bookmark' title='Permanent Link: jQuery Code Documentation&amp;nbsp;Favelet'&gt;jQuery Code Documentation&amp;nbsp;Favelet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/ajax-spinner-jquery' rel='bookmark' title='Permanent Link: Form Element AJAX Spinner Attachment Using&amp;nbsp;jQuery'&gt;Form Element AJAX Spinner Attachment Using&amp;nbsp;jQuery&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/digg-share-widget' rel='bookmark' title='Permanent Link: Digg-Style Dynamic Share Widget Using&amp;nbsp;MooTools'&gt;Digg-Style Dynamic Share Widget Using&amp;nbsp;MooTools&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/mpq-5qKrGKE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/text-select-widget#comments" thr:count="18" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/text-select-widget/feed/atom" thr:count="18" />
		<thr:total>18</thr:total>
	<feedburner:origLink>http://davidwalsh.name/text-select-widget</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[Record Text Selections Using MooTools or jQuery&#160;AJAX]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/czUFGTW9u7w/text-selection-ajax" />
		<id>http://davidwalsh.name/?p=4010</id>
		<updated>2009-11-03T14:20:32Z</updated>
		<published>2009-11-03T14:16:56Z</published>
		<category scheme="http://davidwalsh.name" term="AJAX" /><category scheme="http://davidwalsh.name" term="MooTools" /><category scheme="http://davidwalsh.name" term="PHP" />		<summary type="html"><![CDATA[One technique I&#8217;m seeing more and more these days (CNNSI.com, for example) is AJAX recording of selected text.  It makes sense &#8212; if you detect users selecting the terms over and over again, you can probably assume your visitors are searching that term on Google, Yahoo, etc.  I&#8217;ve duplicated this functionality using my [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/text-selection-ajax">Record Text Selections Using MooTools or jQuery&nbsp;AJAX</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/text-select-widget' rel='bookmark' title='Permanent Link: New York Times-Style Text Selection Widget Using MooTools or&nbsp;jQuery'>New York Times-Style Text Selection Widget Using MooTools or&nbsp;jQuery</a></li><li><a href='http://davidwalsh.name/animated-ajax-jquery' rel='bookmark' title='Permanent Link: Animated Ajax Record Deletion Using&nbsp;jQuery'>Animated Ajax Record Deletion Using&nbsp;jQuery</a></li><li><a href='http://davidwalsh.name/animated-ajax-record-deletion-mootools' rel='bookmark' title='Permanent Link: Animated Ajax Record Deletion Using&nbsp;MooTools'>Animated Ajax Record Deletion Using&nbsp;MooTools</a></li><li><a href='http://davidwalsh.name/jquery-favelet-documentation' rel='bookmark' title='Permanent Link: jQuery Code Documentation&nbsp;Favelet'>jQuery Code Documentation&nbsp;Favelet</a></li><li><a href='http://davidwalsh.name/broken-images-jquery-ajax' rel='bookmark' title='Permanent Link: Send Email Notifications for Broken Images Using jQuery&nbsp;Ajax'>Send Email Notifications for Broken Images Using jQuery&nbsp;Ajax</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/text-selection-ajax">&lt;p&gt;One technique I&amp;#8217;m seeing more and more these days (CNNSI.com, for example) is AJAX recording of selected text.  It makes sense &amp;#8212; if you detect users selecting the terms over and over again, you can probably assume your visitors are searching that term on Google, Yahoo, etc.  I&amp;#8217;ve duplicated this functionality using my favorite javascript library, MooTools, and another javascript library, jQuery.&lt;/p&gt;

&lt;div class="actions"&gt;
	&lt;a href="http://davidwalsh.name/dw-content/ajax-selection-copy.php" class="demo"&gt;View MooTools Demo&lt;/a&gt;
	&lt;a href="http://davidwalsh.name/dw-content/ajax-selection-copy.php?library=jquery" class="demo"&gt;View jQuery Demo&lt;/a&gt;
	&lt;div class="clear"&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;The MooTools Javascript&lt;/h2&gt;

&lt;pre class="js"&gt;
window.addEvent('domready',function(){
	//gets the selected text
	var getSelection = function() {
		return $try(
			function() { return window.getSelection(); },
			function() { return document.getSelection(); },
			function() { 
					var selection = document.selection &amp;#038;&amp;#038; document.selection.createRange();
					if(selection.text) { return selection.text; }
					return false;
		      }
		) || false;
	};
	//event to listen
	var selectRequest = new Request({
		url: 'ajax-selection-copy.php',
		method: 'post'
	});
	$('content-area').addEvent('mouseup',function(e) {
		var selection = getSelection();
		if(selection &amp;amp;&amp;amp; (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
			selectRequest.send('selection=' + encodeURI(selection));
		}
	});
});
&lt;/pre&gt;

&lt;p&gt;The first step is attempting to grab the selected text during the &lt;span class="param	"&gt;mouseup&lt;/span&gt; within our designated container.  If we find a text selection we fire an AJAX request to a PHP script which will save the text selection.&lt;/p&gt;

&lt;h2&gt;The jQuery Javascript&lt;/h2&gt;

&lt;pre class="js"&gt;
/* attempt to find a text selection */
function getSelected() {
	if(window.getSelection) { return window.getSelection(); }
	else if(document.getSelection) { return document.getSelection(); }
	else {
		var selection = document.selection &amp;#038;&amp;#038; document.selection.createRange();
		if(selection.text) { return selection.text; }
		return false;
	}
	return false;
}
/* create sniffer */
$(document).ready(function() {
	$('#content-area').mouseup(function() {
		var selection = getSelected();
		if(selection &amp;amp;&amp;amp; (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
			$.ajax({
				type: 'post',
				url: 'ajax-selection-copy.php',
				data: 'selection=' + encodeURI(selection)
			});
		}
	});
});
&lt;/pre&gt;

&lt;p&gt;The MooTools code translated to jQuery.&lt;/p&gt;

&lt;h2&gt;The PHP&lt;/h2&gt;

&lt;pre class="php"&gt;
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &amp;amp;&amp;amp; strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' &amp;amp;&amp;amp; $selection = trim($_POST['selection'])) {
	mysql_query('INSERT INTO text_selections (selection,date_selected) VALUES(\''.mysql_escape_string(stripslashes($selection)).'\',NOW())');
}
&lt;/pre&gt;

&lt;p&gt;The above PHP code is very primitive.  Depending on the setup of your system (PHP Framework, security settings, etc.) you will want to implement additional measures to prevent attacks on this script.&lt;/p&gt;

&lt;div class="actions"&gt;
	&lt;a href="http://davidwalsh.name/dw-content/ajax-selection-copy.php" class="demo"&gt;View MooTools Demo&lt;/a&gt;
	&lt;a href="http://davidwalsh.name/dw-content/ajax-selection-copy.php?library=jquery" class="demo"&gt;View jQuery Demo&lt;/a&gt;
	&lt;div class="clear"&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Recording text selections is a great way to discover what topics and/or terms your audience is interested in.  You may also want to provide more information on these terms within posts.&lt;/p&gt;

&lt;p&gt;What are your thoughts on this?  Do you think this is too much like &lt;a href="http://davidwalsh.name/ajax-evil-spyjax"&gt;Spyjax&lt;/a&gt;?  Perfectly OK?&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4010"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/text-selection-ajax"&gt;Record Text Selections Using MooTools or jQuery&amp;nbsp;AJAX&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/text-select-widget' rel='bookmark' title='Permanent Link: New York Times-Style Text Selection Widget Using MooTools or&amp;nbsp;jQuery'&gt;New York Times-Style Text Selection Widget Using MooTools or&amp;nbsp;jQuery&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/animated-ajax-jquery' rel='bookmark' title='Permanent Link: Animated Ajax Record Deletion Using&amp;nbsp;jQuery'&gt;Animated Ajax Record Deletion Using&amp;nbsp;jQuery&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/animated-ajax-record-deletion-mootools' rel='bookmark' title='Permanent Link: Animated Ajax Record Deletion Using&amp;nbsp;MooTools'&gt;Animated Ajax Record Deletion Using&amp;nbsp;MooTools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/jquery-favelet-documentation' rel='bookmark' title='Permanent Link: jQuery Code Documentation&amp;nbsp;Favelet'&gt;jQuery Code Documentation&amp;nbsp;Favelet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/broken-images-jquery-ajax' rel='bookmark' title='Permanent Link: Send Email Notifications for Broken Images Using jQuery&amp;nbsp;Ajax'&gt;Send Email Notifications for Broken Images Using jQuery&amp;nbsp;Ajax&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/czUFGTW9u7w" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/text-selection-ajax#comments" thr:count="23" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/text-selection-ajax/feed/atom" thr:count="23" />
		<thr:total>23</thr:total>
	<feedburner:origLink>http://davidwalsh.name/text-selection-ajax</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[An Open Letter to You, Webmaster&#160;II]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/XL83_qVJ7Mc/open-letter-webmaster-ii" />
		<id>http://davidwalsh.name/?p=4083</id>
		<updated>2009-11-02T14:12:46Z</updated>
		<published>2009-11-02T13:33:34Z</published>
		<category scheme="http://davidwalsh.name" term="Blog" /><category scheme="http://davidwalsh.name" term="Theory / Ideas" />		<summary type="html"><![CDATA[

Dear Webmaster,

It&#8217;s been over a year since I last wrote. Business is booming for me which reminded me to get in touch with you again.  I&#8217;m shocked at the advancements you&#8217;ve made!

Wow &#8212; you&#8217;ve gotten acquainted with javascript frameworks!  In fact, it appears you&#8217;ve gotten so good with the popular javascript frameworks that [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/open-letter-webmaster-ii">An Open Letter to You, Webmaster&nbsp;II</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/open-letter-webmaster' rel='bookmark' title='Permanent Link: An Open Letter to You,&nbsp;Webmaster'>An Open Letter to You,&nbsp;Webmaster</a></li><li><a href='http://davidwalsh.name/google-reader-hath-thou-forsaken' rel='bookmark' title='Permanent Link: Google Reader, Why Hath Thou Forsaken&nbsp;Me?'>Google Reader, Why Hath Thou Forsaken&nbsp;Me?</a></li><li><a href='http://davidwalsh.name/confessions-v' rel='bookmark' title='Permanent Link: Confessions of a Web Developer&nbsp;V'>Confessions of a Web Developer&nbsp;V</a></li><li><a href='http://davidwalsh.name/mailbag-ii-answers' rel='bookmark' title='Permanent Link: Mailbag Q &#038; A II&nbsp;Answers'>Mailbag Q &#038; A II&nbsp;Answers</a></li><li><a href='http://davidwalsh.name/confessions-of-an-eccentric-web-developer' rel='bookmark' title='Permanent Link: Confessions of an Eccentric Web&nbsp;Developer'>Confessions of an Eccentric Web&nbsp;Developer</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/open-letter-webmaster-ii">&lt;img src="http://davidwalsh.name/dw-content/webmastador.jpg" alt="Webmaster" /&gt;&lt;br /&gt;

&lt;p&gt;Dear Webmaster,&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s been over a year &lt;a href="http://davidwalsh.name/open-letter-webmaster"&gt;since I last wrote&lt;/a&gt;. Business is booming for me which reminded me to get in touch with you again.  I&amp;#8217;m shocked at the advancements you&amp;#8217;ve made!&lt;/p&gt;

&lt;p&gt;Wow &amp;#8212; you&amp;#8217;ve gotten acquainted with javascript frameworks!  In fact, it appears you&amp;#8217;ve gotten so good with the popular javascript frameworks that you&amp;#8217;re using multiple in each of your client websites.  I see jQuery, MooTools, and Dojo in the same page!  Good idea &amp;#8212; the more frameworks you add to the page, the more plugins you can add without needing to code any javascript yourself.  Well thought-out.  I also see that you&amp;#8217;re adding javascript frameworks for simple getElementById() selection &amp;#8212; why not?  I&amp;#8217;m sure you&amp;#8217;ll use more advanced javascript on your client&amp;#8217;s website at some point, so best to include the libraries now.&lt;/p&gt;

&lt;p&gt;I also noticed that you&amp;#8217;ve completely dropped support of Internet Explorer 6.  My favorite touch is the &amp;#8220;upgrade your browser&amp;#8221; message you&amp;#8217;ve added to your client websites, no doubt without their permission.  I admire your resolve &amp;#8212; why should you go through the hassle of spending an extra hour to make your site work in IE6?  Let the visitor suffer and the client lose business &amp;#8212; you don&amp;#8217;t need the headache of dealing with IE6.  Another intelligent philosophy.&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ve obviously taken a search engine optimization class because I can see loads of keywords in every sentence within the content area.  Writing content for the user is overrated &amp;#8212; writing content for Google?  Brilliant!  Who cares if the sentences are so bloated the visitor can&amp;#8217;t read them;  they wouldn&amp;#8217;t have gotten to the client&amp;#8217;s website without Google!  And I see that despite no search engines still supporting meta keywords, you&amp;#8217;re still selling them.  The client doesn&amp;#8217;t know any better so we&amp;#8217;ll keep that between you and I.  I also see that your page file names are stuff with 5-10 keywords&amp;#8230;genius!  Those will most definitely rank highly!&lt;/p&gt;

&lt;p&gt;I see you&amp;#8217;ve chosen to keep your CSS verbose.  Shorthand CSS is clearly a fad that you aren&amp;#8217;t going to get tricked into &amp;#8212; clever thinking!  Of course shorthand CSS is less code but hell, there&amp;#8217;s a lot to remember when you use shorthand CSS!  And using text-transform to capitalize letters?  Please!  Why use CSS when you can simply capitalize verbiage with PHP&amp;#8217;s or easier yet, type in the text with caps-lock cemented down?&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ve added your personal Twitter feed to your own website &amp;#8212; great!  Sure you often cuss in your tweets and post links to inappropriate media but you SOMETIMES post web-relevant tweets which will help you gain clients.  What&amp;#8217;s also impressive is that you&amp;#8217;ve implemented Google Adsense on your website &amp;#8212; extra income FTW!  Who cares if ads for other web design agencies are shown?  They already on your website so they&amp;#8217;ve found their desired vendor &amp;#8212; you!&lt;/p&gt;

&lt;p&gt;Your website also states that you offer no phone support, only email support within limited hours per day.  Now that&amp;#8217;s an idea based on convenience&amp;#8230;not for the customer, but for you.  An overwhelming theme with your services.  And I understand completely &amp;#8212; you have a busy life!  It&amp;#8217;s not fair that a client call and interrupt anything you&amp;#8217;re doing.&lt;/p&gt;

&lt;p&gt;As always Webmaster, I appreciate what you do.  A respected Senior Web Developer like myself cannot put food on the table without help from people like you.  You&amp;#8217;re a dying breed, Webmaster.  Stay strong my friend &amp;#8212; serious Web Developers like me need you out there.&lt;/p&gt;

&lt;p&gt;Sincerely,&lt;/p&gt;

&lt;p&gt;David Walsh&lt;br /&gt;Senior Web Developer&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4083"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/open-letter-webmaster-ii"&gt;An Open Letter to You, Webmaster&amp;nbsp;II&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/open-letter-webmaster' rel='bookmark' title='Permanent Link: An Open Letter to You,&amp;nbsp;Webmaster'&gt;An Open Letter to You,&amp;nbsp;Webmaster&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/google-reader-hath-thou-forsaken' rel='bookmark' title='Permanent Link: Google Reader, Why Hath Thou Forsaken&amp;nbsp;Me?'&gt;Google Reader, Why Hath Thou Forsaken&amp;nbsp;Me?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/confessions-v' rel='bookmark' title='Permanent Link: Confessions of a Web Developer&amp;nbsp;V'&gt;Confessions of a Web Developer&amp;nbsp;V&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/mailbag-ii-answers' rel='bookmark' title='Permanent Link: Mailbag Q &amp;#038; A II&amp;nbsp;Answers'&gt;Mailbag Q &amp;#038; A II&amp;nbsp;Answers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/confessions-of-an-eccentric-web-developer' rel='bookmark' title='Permanent Link: Confessions of an Eccentric Web&amp;nbsp;Developer'&gt;Confessions of an Eccentric Web&amp;nbsp;Developer&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/XL83_qVJ7Mc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/open-letter-webmaster-ii#comments" thr:count="57" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/open-letter-webmaster-ii/feed/atom" thr:count="57" />
		<thr:total>57</thr:total>
	<feedburner:origLink>http://davidwalsh.name/open-letter-webmaster-ii</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[Create a Sprited Navigation Menu Using CSS and&#160;MooTools]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/6zGnd0BzOzs/css-sprite-menu" />
		<id>http://davidwalsh.name/?p=3918</id>
		<updated>2009-10-29T13:46:13Z</updated>
		<published>2009-10-29T13:03:08Z</published>
		<category scheme="http://davidwalsh.name" term="CSS / Design" /><category scheme="http://davidwalsh.name" term="MooTools" /><category scheme="http://davidwalsh.name" term="Optimization" /><category scheme="http://davidwalsh.name" term="XML / XHTML" />		<summary type="html"><![CDATA[CSS sprites are all the rage these days. And why shouldn&#8217;t be?  They&#8217;re easy to implement, have great upside, and usually take little effort to create.  Dave Shea wrote an epic CSS sprites navigation post titled CSS Sprites2 &#8211; It’s JavaScript Time.  In his post he outlined a method for enhancing the [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/css-sprite-menu">Create a Sprited Navigation Menu Using CSS and&nbsp;MooTools</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/snook-navigation-mootools' rel='bookmark' title='Permanent Link: Create Snook-Style Navigation Using&nbsp;MooTools'>Create Snook-Style Navigation Using&nbsp;MooTools</a></li><li><a href='http://davidwalsh.name/glitter-navigation-mootools-javascript' rel='bookmark' title='Permanent Link: Fancy Navigation with MooTools&nbsp;Javascript'>Fancy Navigation with MooTools&nbsp;Javascript</a></li><li><a href='http://davidwalsh.name/css-sprites' rel='bookmark' title='Permanent Link: Creating &#038; Using CSS&nbsp;Sprites'>Creating &#038; Using CSS&nbsp;Sprites</a></li><li><a href='http://davidwalsh.name/moousture' rel='bookmark' title='Permanent Link: Create a Download Package Using MooTools&nbsp;Moousture'>Create a Download Package Using MooTools&nbsp;Moousture</a></li><li><a href='http://davidwalsh.name/facebook-modal-mootools' rel='bookmark' title='Permanent Link: Facebook-Style Modal Box Using&nbsp;MooTools'>Facebook-Style Modal Box Using&nbsp;MooTools</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/css-sprite-menu">&lt;p&gt;CSS sprites are all the rage these days. And why shouldn&amp;#8217;t be?  They&amp;#8217;re easy to implement, have great upside, and usually take little effort to create.  Dave Shea wrote an epic CSS sprites navigation post titled &lt;a href="http://www.alistapart.com/articles/sprites2/"&gt;CSS Sprites2 &amp;#8211; It’s JavaScript Time&lt;/a&gt;.  In his post he outlined a method for enhancing the CSS sprite menu with jQuery.  I loved his post so much that I converted his jQuery CSS sprites menu to MooTools.&lt;/p&gt;

&lt;div class="actions"&gt;&lt;a href="http://davidwalsh.name/dw-content/sprites-menu.php" class="demo"&gt;View Demo&lt;/a&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;The Sprite Image&lt;/h2&gt;

&lt;img src="http://davidwalsh.name/dw-content/sprites-blue-nav.gif" alt="CSS Sprite Menu" /&gt;

&lt;p&gt;This is a great example of an efficient, useful sprite image.&lt;/p&gt;

&lt;h2&gt;The HTML&lt;/h2&gt;

&lt;pre class="html"&gt;
&amp;lt;ul id=&amp;quot;nav&amp;quot;&amp;gt;
	&amp;lt;li id=&amp;quot;home&amp;quot; &amp;lt;?php echo $current == '' || $current == 'home' ? 'class=&amp;quot;current&amp;quot;' : ''; ?&amp;gt;&amp;gt;&amp;lt;a href=&amp;quot;?home&amp;quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li id=&amp;quot;about&amp;quot; &amp;lt;?php echo $current == 'about' ? 'class=&amp;quot;current&amp;quot;' : ''; ?&amp;gt;&amp;gt;&amp;lt;a href=&amp;quot;?about&amp;quot;&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li id=&amp;quot;services&amp;quot; &amp;lt;?php echo $current == 'services' ? 'class=&amp;quot;current&amp;quot;' : ''; ?&amp;gt;&amp;gt;&amp;lt;a href=&amp;quot;?services&amp;quot;&amp;gt;Services&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li id=&amp;quot;contact&amp;quot; &amp;lt;?php echo $current == 'contact' ? 'class=&amp;quot;current&amp;quot;' : ''; ?&amp;gt;&amp;gt;&amp;lt;a href=&amp;quot;?contact&amp;quot;&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;

&lt;p&gt;My code mostly mirrors the original ALA post&amp;#8217;s code but I&amp;#8217;ve chose to use IDs instead of CSS classes.&lt;/p&gt;

&lt;h2&gt;The CSS&lt;/h2&gt;

&lt;pre class="css"&gt;
#nav { width: 401px; height: 48px; background: url(sprites-blue-nav.gif) no-repeat; position: absolute; top: 100px; left: 100px; padding:0; }
#nav li { display: inline; }
#nav li a:link, #nav li a:visited { position: absolute; top: 0; height: 48px; text-indent: -9000px; overflow: hidden; z-index: 10; }

#home a:link, #home a:visited { left: 23px; width: 76px; }
#home a:hover, #home a:focus { background: url(sprites-blue-nav.gif) no-repeat -23px -49px; }
#home a:active { background: url(sprites-blue-nav.gif) no-repeat -23px -98px; }
#home.current a:link, #home.current a:visited { background: url(sprites-blue-nav.gif) no-repeat -23px -147px; cursor: default; }
.nav-home, .nav-home-click { position: absolute; top: 0; left: 23px; width: 76px; height: 48px; background: url(sprites-blue-nav.gif) no-repeat -23px -49px; }
.nav-home-click { background: url(sprites-blue-nav.gif) no-repeat -23px -98px; }

#about a:link, #about a:visited { left: 100px; width: 82px; }
#about a:hover, #about a:focus { background: url(sprites-blue-nav.gif) no-repeat -100px -49px; }
#about a:active { background: url(sprites-blue-nav.gif) no-repeat -100px -98px; }
#about.current a:link, #about.current a:visited { background: url(sprites-blue-nav.gif) no-repeat -100px -147px; cursor: default; }
.nav-about, .nav-about-click { position: absolute; top: 0; left: 100px; width: 82px; height: 48px; background: url(sprites-blue-nav.gif) no-repeat -100px -49px; }
.nav-about-click { background: url(sprites-blue-nav.gif) no-repeat -100px -98px; }

#services a:link, #services a:visited { left: 183px; width: 97px; }
#services a:hover, #services a:focus { background: url(sprites-blue-nav.gif) no-repeat -183px -49px; }
#services a:active { background: url(sprites-blue-nav.gif) no-repeat -183px -98px; }
#services.current a:link, #services.current a:visited { background: url(sprites-blue-nav.gif) no-repeat -183px -147px; cursor: default; }
.nav-services, .nav-services-click { position: absolute; top: 0; left: 183px; width: 97px; height: 48px; background: url(sprites-blue-nav.gif) no-repeat -183px -49px; }
.nav-services-click { background: url(sprites-blue-nav.gif) no-repeat -183px -98px; }

#contact a:link, #contact a:visited { left: 281px; width: 97px; }
#contact a:hover, #contact a:focus { background: url(sprites-blue-nav.gif) no-repeat -281px -49px; }
#contact a:active { background: url(sprites-blue-nav.gif) no-repeat -281px -98px; }
#contact.current a:link, #contact.current a:visited { background: url(sprites-blue-nav.gif) no-repeat -281px -147px; cursor: default; }
.nav-contact, .nav-contact-click { position: absolute; top: 0; left: 281px; width: 97px; height: 48px; background: url(sprites-blue-nav.gif) no-repeat -281px -49px; }
.nav-contact-click { background: url(sprites-blue-nav.gif) no-repeat -281px -98px; }
&lt;/pre&gt;

&lt;p&gt;Unfortunately there&amp;#8217;s plenty of CSS.  That&amp;#8217;s generally the one downside of using sprites but the payoff comes with less requests to the server.  My CSS differs from the original ALA post in that I accommodate for my IDs.&lt;/p&gt;

&lt;h2&gt;The MooTools Javascript&lt;/h2&gt;

&lt;pre class="js"&gt;
(function($) {
	window.addEvent('domready',function() {
		$('nav').getElements('li').each(function(li) {
			//settings
			var link = li.getFirst('a');
			//fix background image
			if(!li.hasClass('current')) {
				link.setStyle('background-image','none');
			}
			//utility div
			var div = new Element('div',{
				'class': 'nav-' + li.get('id'),
				opacity: 0
			}).inject(li);
			//background imagery
			li.addEvents({
				mouseenter: function() {
					div.fade('in');
				},
				mouseleave: function() {
					div.fade('out');
				},
				mousedown: function() {
					div.addClass('nav-' + li.get('id') + '-click');
				},
				mouseup: function() {
					div.removeClass('nav-' + li.get('id') + '-click');
				}
			});
		});
	});
})(document.id);
&lt;/pre&gt;

&lt;p&gt;My MooTools version is less code and slightly more efficient as I&amp;#8217;m not creating and disposing of the same DIVs over and over as the user hovers over each menu item.  The menu has original, selected, hovered, and mousedown states.  Awesome!&lt;/p&gt;

&lt;div class="actions"&gt;&lt;a href="http://davidwalsh.name/dw-content/sprites-menu.php" class="demo"&gt;View Demo&lt;/a&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Do you use sprites for any of your menus?  Share a link to a few &amp;#8212; I&amp;#8217;d love to see what you&amp;#8217;ve done!&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=3918"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/css-sprite-menu"&gt;Create a Sprited Navigation Menu Using CSS and&amp;nbsp;MooTools&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/snook-navigation-mootools' rel='bookmark' title='Permanent Link: Create Snook-Style Navigation Using&amp;nbsp;MooTools'&gt;Create Snook-Style Navigation Using&amp;nbsp;MooTools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/glitter-navigation-mootools-javascript' rel='bookmark' title='Permanent Link: Fancy Navigation with MooTools&amp;nbsp;Javascript'&gt;Fancy Navigation with MooTools&amp;nbsp;Javascript&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/css-sprites' rel='bookmark' title='Permanent Link: Creating &amp;#038; Using CSS&amp;nbsp;Sprites'&gt;Creating &amp;#038; Using CSS&amp;nbsp;Sprites&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/moousture' rel='bookmark' title='Permanent Link: Create a Download Package Using MooTools&amp;nbsp;Moousture'&gt;Create a Download Package Using MooTools&amp;nbsp;Moousture&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/facebook-modal-mootools' rel='bookmark' title='Permanent Link: Facebook-Style Modal Box Using&amp;nbsp;MooTools'&gt;Facebook-Style Modal Box Using&amp;nbsp;MooTools&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/6zGnd0BzOzs" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/css-sprite-menu#comments" thr:count="22" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/css-sprite-menu/feed/atom" thr:count="22" />
		<thr:total>22</thr:total>
	<feedburner:origLink>http://davidwalsh.name/css-sprite-menu</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[Rounded Corners in Internet&#160;Explorer]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/v1K6ovbX1-U/rounded-corners-ie" />
		<id>http://davidwalsh.name/?p=4074</id>
		<updated>2009-10-28T19:41:52Z</updated>
		<published>2009-10-28T12:38:00Z</published>
		<category scheme="http://davidwalsh.name" term="Browsers" /><category scheme="http://davidwalsh.name" term="CSS / Design" /><category scheme="http://davidwalsh.name" term="Microsoft" />		<summary type="html"><![CDATA[

One of the reasons that I love Firefox and Webkit-based browsers (Chrome, Safari) is the ability to effortlessly create rounded-corner elements using pure CSS:


.round	{ -moz-border-radius:12px; -webkit-border-radius:12px; }


As you probably already know, IE doesn&#8217;t allow you to create rounded corners without using images or endless hacking.  Enter the CurvyCorners javascript project.  CurvyCorners allows you [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/rounded-corners-ie">Rounded Corners in Internet&nbsp;Explorer</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/rounded-corners-webkit' rel='bookmark' title='Permanent Link: Rounded Corners in&nbsp;Webkit'>Rounded Corners in&nbsp;Webkit</a></li><li><a href='http://davidwalsh.name/rounded-corners-firefox' rel='bookmark' title='Permanent Link: Rounded Corners in Mozilla&nbsp;Firefox'>Rounded Corners in Mozilla&nbsp;Firefox</a></li><li><a href='http://davidwalsh.name/internet-explorer-cannot-open-internet-site' rel='bookmark' title='Permanent Link: IE Says &#8220;Internet Explorer cannot open the Internet Site ________. Operation Aborted.&#8221;  I Say&nbsp;&#8220;WTF?&#8221;'>IE Says &#8220;Internet Explorer cannot open the Internet Site ________. Operation Aborted.&#8221;  I Say&nbsp;&#8220;WTF?&#8221;</a></li><li><a href='http://davidwalsh.name/chrome-frame' rel='bookmark' title='Permanent Link: Turn Internet Explorer into Chrome with Chrome&nbsp;Frame'>Turn Internet Explorer into Chrome with Chrome&nbsp;Frame</a></li><li><a href='http://davidwalsh.name/css-image-filters-internet-explorer' rel='bookmark' title='Permanent Link: CSS Image Filters in Internet&nbsp;Explorer'>CSS Image Filters in Internet&nbsp;Explorer</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/rounded-corners-ie">&lt;a href="http://davidwalsh.name/dw-content/curvy-corners.php"&gt;&lt;img src="http://davidwalsh.name/dw-content/roundedcorners.png" alt="Rounded Corners" /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;p&gt;One of the reasons that I love Firefox and Webkit-based browsers (Chrome, Safari) is the ability to effortlessly create rounded-corner elements using pure CSS:&lt;/p&gt;

&lt;pre class="css"&gt;
.round	{ -moz-border-radius:12px; -webkit-border-radius:12px; }
&lt;/pre&gt;

&lt;p&gt;As you probably already know, IE doesn&amp;#8217;t allow you to create rounded corners without using images or endless hacking.  Enter the &lt;a href="http://code.google.com/p/curvycorners"&gt;CurvyCorners javascript project&lt;/a&gt;.  CurvyCorners allows you to quickly create rounded corners within Internet Explorer.&lt;/p&gt;

&lt;div class="actions"&gt;&lt;a href="http://davidwalsh.name/dw-content/curvy-corners.php" class="demo"&gt;View Demo&lt;/a&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;The CurvyCorners Javascript&lt;/h2&gt;

&lt;pre class="html"&gt;
&amp;lt;!-- SIMPLY INCLUDE THE JS FILE! --&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;curvy.corners.trunk.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/pre&gt;

&lt;p&gt;CurvyCorners detects the usage of &amp;#8220;-webkit-border-radius&amp;#8221; and &amp;#8220;moz-border-radius&amp;#8221; on DOM elements and works its magic to duplicate the effect in IE using a series of small DIVs.  There are no images involved.  You may also identify specific elements to apply rounded corners to:&lt;/p&gt;

&lt;pre class="js"&gt;
var settings = {
			tl: { radius: 12 },
			tr: { radius: 12 },
			bl: { radius: 12 },
			br: { radius: 12 },
			antiAlias: true
		 };
/* moooo */
$$('.round').each(function(rd) {
	curvyCorners(settings,rd);
});
&lt;/pre&gt;

&lt;h2&gt;MooTools  + Curvy Corners&lt;/h2&gt;

&lt;p&gt;CurvyCorners is known to brick your MooTools code.  The &lt;a href="http://code.google.com/p/curvycorners/source/browse/#svn/trunk/examples"&gt;trunk code&lt;/a&gt; fixes those issues.&lt;/p&gt;

&lt;div class="actions"&gt;&lt;a href="http://davidwalsh.name/dw-content/curvy-corners.php" class="demo"&gt;View Demo&lt;/a&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Don&amp;#8217;t let Internet Explorer&amp;#8217;s refusal to implement rounded corners via CSS keep your websites from being as dynamic as possible!  CurvyCorners helps make rounded corners in IE possible!&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=4074"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/rounded-corners-ie"&gt;Rounded Corners in Internet&amp;nbsp;Explorer&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/rounded-corners-webkit' rel='bookmark' title='Permanent Link: Rounded Corners in&amp;nbsp;Webkit'&gt;Rounded Corners in&amp;nbsp;Webkit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/rounded-corners-firefox' rel='bookmark' title='Permanent Link: Rounded Corners in Mozilla&amp;nbsp;Firefox'&gt;Rounded Corners in Mozilla&amp;nbsp;Firefox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/internet-explorer-cannot-open-internet-site' rel='bookmark' title='Permanent Link: IE Says &amp;#8220;Internet Explorer cannot open the Internet Site ________. Operation Aborted.&amp;#8221;  I Say&amp;nbsp;&amp;#8220;WTF?&amp;#8221;'&gt;IE Says &amp;#8220;Internet Explorer cannot open the Internet Site ________. Operation Aborted.&amp;#8221;  I Say&amp;nbsp;&amp;#8220;WTF?&amp;#8221;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/chrome-frame' rel='bookmark' title='Permanent Link: Turn Internet Explorer into Chrome with Chrome&amp;nbsp;Frame'&gt;Turn Internet Explorer into Chrome with Chrome&amp;nbsp;Frame&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/css-image-filters-internet-explorer' rel='bookmark' title='Permanent Link: CSS Image Filters in Internet&amp;nbsp;Explorer'&gt;CSS Image Filters in Internet&amp;nbsp;Explorer&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/v1K6ovbX1-U" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/rounded-corners-ie#comments" thr:count="45" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/rounded-corners-ie/feed/atom" thr:count="45" />
		<thr:total>45</thr:total>
	<feedburner:origLink>http://davidwalsh.name/rounded-corners-ie</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[Event Delegation with&#160;MooTools]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/k8uWzc8i7P0/event-delegation" />
		<id>http://davidwalsh.name/?p=3893</id>
		<updated>2009-10-27T15:36:35Z</updated>
		<published>2009-10-27T13:34:16Z</published>
		<category scheme="http://davidwalsh.name" term="MooTools" /><category scheme="http://davidwalsh.name" term="XML / XHTML" />		<summary type="html"><![CDATA[Events play a huge role in javascript.  I can&#8217;t name one website I&#8217;ve created in the past two years that hasn&#8217;t used javascript event handling on some level.  Ask yourself:  how often do I inject elements into the DOM and not add an event to them?  For me it&#8217;s very rare. [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/event-delegation">Event Delegation with&nbsp;MooTools</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/mootools-event-delegation' rel='bookmark' title='Permanent Link: MooTools Event&nbsp;Delegation'>MooTools Event&nbsp;Delegation</a></li><li><a href='http://davidwalsh.name/prevent-default-event-actions-mootools-12' rel='bookmark' title='Permanent Link: Prevent Default Event Actions Using MooTools&nbsp;1.2'>Prevent Default Event Actions Using MooTools&nbsp;1.2</a></li><li><a href='http://davidwalsh.name/implement-jquery-mootools-event' rel='bookmark' title='Permanent Link: Implementing jQuery-Like Event Syntax in&nbsp;MooTools'>Implementing jQuery-Like Event Syntax in&nbsp;MooTools</a></li><li><a href='http://davidwalsh.name/dwclickable-entire-block-clickable-mootools' rel='bookmark' title='Permanent Link: dwClickable:  Entire Block Clickable Using MooTools&nbsp;1.2'>dwClickable:  Entire Block Clickable Using MooTools&nbsp;1.2</a></li><li><a href='http://davidwalsh.name/noscript-compatible-select-form-element-onchange-event' rel='bookmark' title='Permanent Link: Create a NoScript Compatible Select Form Element with an onChange&nbsp;Event'>Create a NoScript Compatible Select Form Element with an onChange&nbsp;Event</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/event-delegation">&lt;p&gt;Events play a huge role in javascript.  I can&amp;#8217;t name one website I&amp;#8217;ve created in the past two years that hasn&amp;#8217;t used javascript event handling on some level.  Ask yourself:  how often do I inject elements into the DOM and not add an event to them?  For me it&amp;#8217;s very rare.  For this reason I&amp;#8217;m proud and excited for the release of &lt;a href="http://mootools.net/docs/more/Element/Element.Delegation"&gt;MooTools 1.2.4&amp;#8217;s Event.Delegation&lt;/a&gt; code.&lt;/p&gt;

&lt;h2&gt;WTF is Event Delegation?&lt;/h2&gt;

&lt;p&gt;Event delegation is the process of assigning an event listener to a parent for all of its children instead of assigning the same event to every child.&lt;/p&gt;

&lt;div class="actions"&gt;&lt;a href="http://davidwalsh.name/dw-content/event-delegation.php" class="demo"&gt;View Demo&lt;/a&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;Some Sample HTML&lt;/h2&gt;
&lt;pre class="html"&gt;
&amp;lt;ul id=&amp;quot;link-list&amp;quot;&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://davidwalsh.name&amp;quot;&amp;gt;David Walsh Blog Link 1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://davidwalsh.name&amp;quot;&amp;gt;David Walsh Blog Link 2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://davidwalsh.name&amp;quot;&amp;gt;David Walsh Blog Link 3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
&lt;p&gt;A list with 3 list item elements which contain a link.  For the sake of my example, this list will have list items added to it and we want an alert to pop up any time a link within the list is clicked.&lt;/p&gt;

&lt;h2&gt;The MooTools Javascript Event Delegation Syntax&lt;/h2&gt;
&lt;pre class="js"&gt;
window.addEvent('domready',function() {
	/* delegate */
	document.id('link-list').addEvent('click:relay(a)', function(e){
		e.stop();
		alert('you clicked a link!');
	});
	/* 
		Add link to show event delegation works!
		Notice how we haven't assigned an event to this specific element.
		We already added the event to the list element itself
	*/
	document.id('add-link').addEvent('click',function() {
		var li = new Element('li').inject('link-list');
		var link = new Element('a',{ text:'David Walsh Blog', href:'http://davidwalsh.name'}).inject(li);
	});
});
&lt;/pre&gt;

&lt;p&gt;All you need to do is add &lt;span class="function"&gt;:relay&lt;/span&gt; to the parent selector and place the &amp;#8220;children&amp;#8221; match inside the relay pseudo selector.  You&amp;#8217;ll probably question how &lt;span class="function"&gt;:relay&lt;/span&gt; works because the &amp;#8220;:&amp;#8221; syntax is used for pseudo selectors.  The Element.Delegation javascript download overwrites the addEvent, removeEvent, and fireEvent methods to accommodate for the &lt;span class="function"&gt;:relay&lt;/span&gt; syntax.&lt;/p&gt;

&lt;h2&gt;Event Delegation Replaces&amp;#8230;&lt;/h2&gt;

&lt;pre class="js"&gt;
var links = document.id('link-list').getElements('li');
links.each(function(link) {
	link.addEvent('click',function() {
		//assign actions here
	});
})
&lt;/pre&gt;

&lt;p&gt;Why collect and iterate through elements to add events when you can simply use event delegation?&lt;/p&gt;

&lt;div class="actions"&gt;&lt;a href="http://davidwalsh.name/dw-content/event-delegation.php" class="demo"&gt;View Demo&lt;/a&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Event delegation is a great way to avoid repeating the same event assignments for elements within a parent element, especially when you are adding elements into the page dynamically.  If you&amp;#8217;ve not upgraded to MooTools 1.2.4 yet, I hope this is just the kick in the pants you need!&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=3893"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/event-delegation"&gt;Event Delegation with&amp;nbsp;MooTools&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/mootools-event-delegation' rel='bookmark' title='Permanent Link: MooTools Event&amp;nbsp;Delegation'&gt;MooTools Event&amp;nbsp;Delegation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/prevent-default-event-actions-mootools-12' rel='bookmark' title='Permanent Link: Prevent Default Event Actions Using MooTools&amp;nbsp;1.2'&gt;Prevent Default Event Actions Using MooTools&amp;nbsp;1.2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/implement-jquery-mootools-event' rel='bookmark' title='Permanent Link: Implementing jQuery-Like Event Syntax in&amp;nbsp;MooTools'&gt;Implementing jQuery-Like Event Syntax in&amp;nbsp;MooTools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/dwclickable-entire-block-clickable-mootools' rel='bookmark' title='Permanent Link: dwClickable:  Entire Block Clickable Using MooTools&amp;nbsp;1.2'&gt;dwClickable:  Entire Block Clickable Using MooTools&amp;nbsp;1.2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/noscript-compatible-select-form-element-onchange-event' rel='bookmark' title='Permanent Link: Create a NoScript Compatible Select Form Element with an onChange&amp;nbsp;Event'&gt;Create a NoScript Compatible Select Form Element with an onChange&amp;nbsp;Event&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/k8uWzc8i7P0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/event-delegation#comments" thr:count="15" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/event-delegation/feed/atom" thr:count="15" />
		<thr:total>15</thr:total>
	<feedburner:origLink>http://davidwalsh.name/event-delegation</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Walsh</name>
						<uri>http://davidwalsh.name</uri>
					</author>
		<title type="html"><![CDATA[7 Signs I Knew I Was Born To Be a&#160;Programmer]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Bludice/~3/YAECwVuk8bw/born-programmer" />
		<id>http://davidwalsh.name/?p=3847</id>
		<updated>2009-10-26T13:07:25Z</updated>
		<published>2009-10-26T13:07:25Z</published>
		<category scheme="http://davidwalsh.name" term="Blog" /><category scheme="http://davidwalsh.name" term="Theory / Ideas" /><category scheme="http://davidwalsh.name" term="rand()" />		<summary type="html"><![CDATA[This will probably shock you but I&#8217;m a programmer.  Not a designer, not a copywriter, just a simple programmer.  I&#8217;ve done some self analysis and realized that becoming a programmer wasn&#8217;t a choice &#8212; it was destiny.  The following is my logic for why I became a programmer.

1.  I&#8217;m Allergic to [...]<p>Don't forget to <a href="http://twitter.com/davidwalshblog">follow me on Twitter</a> and be sure to visit <a href="http://scriptandstyle.com">Script & Style</a> for the best Javascript and CSS articles around!

<a href="http://buysellads.com/buy/detail/1687">Sponsor the David Walsh Blog</a> and get your brand in front of several thousand users per day!<br/><br/><a href="http://davidwalsh.name/born-programmer">7 Signs I Knew I Was Born To Be a&nbsp;Programmer</a></p>



Related posts:<ol><li><a href='http://davidwalsh.name/ways-programmers-stay-sane' rel='bookmark' title='Permanent Link: 8 Ways For A Programmer To Stay&nbsp;Sane'>8 Ways For A Programmer To Stay&nbsp;Sane</a></li><li><a href='http://davidwalsh.name/9-signs-not-to-hire-that-web-guy' rel='bookmark' title='Permanent Link: 9 Signs You Shouldn&#8217;t Hire THAT Web&nbsp;Guy'>9 Signs You Shouldn&#8217;t Hire THAT Web&nbsp;Guy</a></li><li><a href='http://davidwalsh.name/love-web-programming-design' rel='bookmark' title='Permanent Link: Why Do You Love Web Programming and&nbsp;Design?'>Why Do You Love Web Programming and&nbsp;Design?</a></li><li><a href='http://davidwalsh.name/startup-schwag' rel='bookmark' title='Permanent Link: Startup Schwag: A Web 2.0 Goody&nbsp;Bag'>Startup Schwag: A Web 2.0 Goody&nbsp;Bag</a></li><li><a href='http://davidwalsh.name/fun-source-code' rel='bookmark' title='Permanent Link: Fun With Source&nbsp;Code'>Fun With Source&nbsp;Code</a></li></ol>]]></summary>
		<content type="html" xml:base="http://davidwalsh.name/born-programmer">&lt;p&gt;This will probably shock you but I&amp;#8217;m a programmer.  Not a designer, not a copywriter, just a simple programmer.  I&amp;#8217;ve done some self analysis and realized that becoming a programmer wasn&amp;#8217;t a choice &amp;#8212; it was destiny.  The following is my logic for why I became a programmer.&lt;/p&gt;

&lt;h2&gt;1.  I&amp;#8217;m Allergic to the Sun&lt;/h2&gt;

&lt;p&gt;I&amp;#8217;m not as hot as &lt;a href="http://www.imdb.com/name/nm0000295/"&gt;Kate Beckinsale&lt;/a&gt; but I&amp;#8217;m just as allergic to the sun as she was in &lt;a href="http://www.imdb.com/title/tt0320691/"&gt;Underworld&lt;/a&gt;.  The second I see the sun I sneeze.  What&amp;#8217;s odd is that I used to play outside endlessly as a child &amp;#8212; it wasn&amp;#8217;t until I became a programmer that I developed this strange allergy to the sun.  Today my skin is very white &amp;#8212; a monitor tan is the only tan I get these days.&lt;/p&gt;

&lt;h2&gt;2.  I Get Nosebleeds Often&lt;/h2&gt;

&lt;p&gt;No true nerd gets their official credentials without proof of frequent nosebleeds.  Unprovoked and unexplainable, my nosebleeds just appear out of thin air&amp;#8230;literally.  These pick up quite a bit during the winter.  I&amp;#8217;ve broken my nose three times but no way to confirm that being a contributing factor.&lt;/p&gt;

&lt;h2&gt;3.  I Have No Immune System&lt;/h2&gt;

&lt;p&gt;Most of my &amp;#8220;vacation days&amp;#8221; (PTO) are used up by illnesses that range from migraine headaches to pneumonia to bronchitis.  I have the sniffles 365 days a year.  I&amp;#8217;ll wake up with a sore throat in mid-June.  My body has no desire to fight viruses.  A perfect excuse to avoid manual labor and sit behind a monitor inside my condo.&lt;/p&gt;

&lt;h2&gt;4.  I Have No &amp;#8220;Real Life&amp;#8221; Skills&lt;/h2&gt;

&lt;p&gt;You know how grown men are supposed to be able to change their oil, cook breakfast for their significant other, and do their own laundry?  Yeah, not me.  No joke &amp;#8212; I tried making eggs a few months ago, messed something up, and my kitchen smelled funky for the rest of the day.  I&amp;#8217;m a complete train wreck when not located within three feet of a computer.&lt;/p&gt;

&lt;h2&gt;5.  I Have No &amp;#8220;Social&amp;#8221; Skills; Computer &amp;gt; Human
&lt;/h2&gt;

&lt;p&gt;I&amp;#8217;m not what you&amp;#8217;d consider a &amp;#8220;people person.&amp;#8221;  I&amp;#8217;d rather spend 20 minutes typing an email than 3 minutes on the phone.  I simply don&amp;#8217;t have that gene.  When coworkers say hello to me at work I usually reply with &amp;#8220;email me.&amp;#8221;  I&amp;#8217;m charming via email, stone cold in person.&lt;/p&gt;

&lt;h2&gt;6.  I Think I&amp;#8217;m Much Smarter Than I Really Am&lt;/h2&gt;

&lt;p&gt;Like any good egotistical programmer, I feel I&amp;#8217;m much smarter than I am.  Yeah, I slang terms like &amp;#8220;prototypal inheritance&amp;#8221;, &amp;#8220;event delegation&amp;#8221;, and many other impressive programming terms, but can I make eggs?  No.  Doesn&amp;#8217;t matter.  Why?  Because I can slang terms to people who aren&amp;#8217;t computer savvy and help fix email problems.  I think I belong in MENSA &amp;#8212; most other things I belong in on a seat in the corner of the room with a coloring book and non-toxic crayons.&lt;/p&gt;

&lt;h2&gt;7.  Fashion == null&lt;/h2&gt;

&lt;p&gt;I cannot stand &amp;#8220;bros&amp;#8221; that wear $200 jeans and $50 Hollister/Abercrombie/American Eagle T-Shirts.  I see a &lt;a href="http://media.photobucket.com/image/broseph/samuelsessa/broseph.jpg"&gt;Broseph&lt;/a&gt; walk down the sidewalk with white shades and a fro-hawk and choke on my own vomit&amp;#8230;..yet I have no problem with wearing one of my 5 MooTools shirts to any event. Wedding? Yes&amp;#8230;because MooTools has Class.  So simple.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m a complete nerd for those scoring at home.  The life of a programmer as a tough one&amp;#8230;God only knows how I can get through each day.&lt;/p&gt;
                            &lt;div id="aspdf"&gt;
                                &lt;a href="http://davidwalsh.name/wp-content/plugins/as-pdf/generate.php?post=3847"&gt;
                                    &lt;span&gt;Download PDF&lt;/span&gt;
                                &lt;/a&gt;
                            &lt;/div&gt;
                        &lt;p&gt;Don't forget to &lt;a href="http://twitter.com/davidwalshblog"&gt;follow me on Twitter&lt;/a&gt; and be sure to visit &lt;a href="http://scriptandstyle.com"&gt;Script &amp; Style&lt;/a&gt; for the best Javascript and CSS articles around!

&lt;a href="http://buysellads.com/buy/detail/1687"&gt;Sponsor the David Walsh Blog&lt;/a&gt; and get your brand in front of several thousand users per day!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://davidwalsh.name/born-programmer"&gt;7 Signs I Knew I Was Born To Be a&amp;nbsp;Programmer&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/ways-programmers-stay-sane' rel='bookmark' title='Permanent Link: 8 Ways For A Programmer To Stay&amp;nbsp;Sane'&gt;8 Ways For A Programmer To Stay&amp;nbsp;Sane&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/9-signs-not-to-hire-that-web-guy' rel='bookmark' title='Permanent Link: 9 Signs You Shouldn&amp;#8217;t Hire THAT Web&amp;nbsp;Guy'&gt;9 Signs You Shouldn&amp;#8217;t Hire THAT Web&amp;nbsp;Guy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/love-web-programming-design' rel='bookmark' title='Permanent Link: Why Do You Love Web Programming and&amp;nbsp;Design?'&gt;Why Do You Love Web Programming and&amp;nbsp;Design?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/startup-schwag' rel='bookmark' title='Permanent Link: Startup Schwag: A Web 2.0 Goody&amp;nbsp;Bag'&gt;Startup Schwag: A Web 2.0 Goody&amp;nbsp;Bag&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://davidwalsh.name/fun-source-code' rel='bookmark' title='Permanent Link: Fun With Source&amp;nbsp;Code'&gt;Fun With Source&amp;nbsp;Code&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Bludice/~4/YAECwVuk8bw" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://davidwalsh.name/born-programmer#comments" thr:count="62" />
		<link rel="replies" type="application/atom+xml" href="http://davidwalsh.name/born-programmer/feed/atom" thr:count="62" />
		<thr:total>62</thr:total>
	<feedburner:origLink>http://davidwalsh.name/born-programmer</feedburner:origLink></entry>
	</feed>
