<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:series="http://unfoldingneurons.com/"
><channel><title>David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞. &#187; Blog</title> <atom:link href="http://davidwalsh.name/tutorials/blog/feed" rel="self" type="application/rss+xml" /><link>http://davidwalsh.name</link> <description>Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</description> <lastBuildDate>Sun, 20 May 2012 22:40:48 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>#FreeDavidWalshDotName:  Mission&#160;Accomplished</title><link>http://davidwalsh.name/freedavidwalshdotname</link> <comments>http://davidwalsh.name/freedavidwalshdotname#comments</comments> <pubDate>Mon, 12 Dec 2011 15:09:07 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5340</guid> <description><![CDATA[As you must certainly know by now, my domain name was stolen. After weeks of pressuring domain registrars to give me the domain back, DAVIDWALSH.NAME is finally in my name again. It was a wild few weeks so this post will attempt to recap just about everything that happened. Grab a cup of coffee (or [...]<p><a
href="http://davidwalsh.name/freedavidwalshdotname">#FreeDavidWalshDotName:  Mission&nbsp;Accomplished</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>As you must certainly know by now, my <a
href="http://davidwalsh.name/domain-stolen">domain name was stolen</a>.  After weeks of pressuring domain registrars to give me the domain back, DAVIDWALSH.NAME is finally in my name again.  It was a wild few weeks so this post will attempt to recap just about everything that happened.  Grab a cup of coffee  (or actually, maybe some sedatives) reading this one.</p><h2>&#8220;David, is your site&nbsp;down?&#8221;</h2><p>While the domain theft actually occurred much earlier, the story with me started on Monday, November 21st.  I was on vacation at a location five hours from my home, and awoke to a dozen tweets asking why my site was down.  I jumped on my computer (<em>of course</em> I brought it on vacation with me!) and saw an ugly domain parking screen.  My initial thought was that I had forgotten to renew the domain so I checked my own records and found that the domain couldn&#8217;t have expired.</p><p>I did a quick WHOIS and found that the domain had been moved to a company called 1And1.  The domain had private paid privacy setting enabled, so I couldn&#8217;t see who had taken it. As you can imagine, I was furious.</p><h2>GoDaddy</h2><p>I called GoDaddy&#8217;s basic support number and asked what had happened.  Their support person explained that someone had logged into my account, unlocked the domain, and transferred it away.  I quickly told him that I hadn&#8217;t done that and the domain had been fraudulently transferred.  I hadn&#8217;t seen any emails for the domain unlock or the transfer request;  everything was done completely under my nose.  The support tech was essentially powerless and told me to email GoDaddy&#8217;s transfer disputes team.  I knew further argument would be fruitless so I got off the phone.</p><p>My next action was taking to Twitter to wage the #FreeDavidWalshDotName war.  I tweeted to my 8,000+ followers that <a
href="https://twitter.com/#!/davidwalshblog/status/141196181668769792">my domain had been stolen</a> from GoDaddy and that they had <a
href="https://twitter.com/#!/davidwalshblog/status/141199571442352128">told me to email them about it</a>.  Chris Coyier and hundreds of others were quick to help with the cause, tweet to @GoDaddy that they should help me get my domain back.</p><p>Within 10 minutes I got a DM on Twitter from Alon at GoDaddy asking to call me.  Alon quickly called me, reviewed what had happened and what the next steps for retrieval were.  GoDaddy immediately filed a request for information from 1And1.  Alon assured me that my case was a top priority and that now it was up to 1And1 to react.  It was also revealed that the thief had started the theft in early November (November 12th, I believe);  he unlocked the domain, changed the contact email on it, and waited for the transfer.</p><h2>Ransom</h2><p><img
src="http://davidwalsh.name/dw-content/ransom.png" alt="Ransom" /></p><p>It was right after I had gotten off the phone with GoDaddy that I received two emails from the thief.  The emails had come from &#109;o&#121;&#97;&#46;se&#114;v&#101;r&#64;g&#109;&#97;i&#108;&#46;c&#111;m and were straight to the  point:</p><ul><li>pay 2k to get ur domain back</li><li>trust me godady can&#8217;t help you</li></ul><p>It was at this point that I knew I was in for a royal mess.  I didn&#8217;t respond to the emails but obviously kept them as evidence of the theft.</p><h2>1And1</h2><p>This was my sad introduction to 1And1.  I called their sales team, was forwarded on to support, and explained that my domain had been stolen and moved to them.  Their support person explained that the &#8220;losing&#8221; registrar needed to file a request to get it back and that my case would be reviewed when that documentation was provided.  I requested the name of the person who would review my case and their phone number.  That request met with a &#8220;send an email to &#8230;&#8221; response, which I told them wasn&#8217;t good enough.  I continued to get nowhere with their tech so I left well enough alone.  And by that I mean I took my fury to Twitter again.</p><p>Somehow a few of my tweets must have hit home and my Media Temple nameservers were restored so that my site was back up.  This was obviously a boost but domain ownership was the key.</p><p>Within the day, 1And1 returned the information GoDaddy requested.  In doing so, it was discovered that <a
href="http://name.com">Name.com</a> was also involved.  Essentially the thief moved the domain from GoDaddy to Name.com and then on to 1And1.  My initial feeling was that Name.com&#8217;s involvement was very bad news.  Another entity surely meant more delays and more people to convince.  I couldn&#8217;t have been more wrong.</p><p>GoDaddy quickly requested transfer information from Name.com.  I immediately <a
href="https://twitter.com/#!/davidwalshblog/status/141576348299821056">tweeted @namedotcom</a> to let them know what was up.  They provided an immediate response.</p><h2>Name.Com</h2><p>Name.com took up the fight almost immediately.  They publicly tweeted to me and DM&#8217;d me to let me know they were on it and what they had found.  I wasn&#8217;t told to email a generic address and I wasn&#8217;t made to wait days for a response.  It was great to experience real customer service. I knew that <a
href="https://twitter.com/#!/namedotcom/status/141627031795408896">Name.com cared when I got this tweet</a>:</p><ul><li>@davidwalshblog @GoDaddy We&#8217;ve shut down an account and found a fan of yours in the Ukraine. Our abuse dept is getting details from 1and1.</li></ul><p>Badass.</p><h2>Back to&nbsp;1And1</h2><p>As if I wasn&#8217;t upset enough with 1And1 for their lack of responses during the first go-round, my patience was quickly exhausted on the second.  In the coming week, despite dozens of tweets, phone calls, posts to their Facebook page (and numerous from all of you as well), 1And1 did not reach out to me once.  Not once.  When they finally responded to my posts, I always received canned responses which basically told me that they&#8217;d get to the problem on their time.  It&#8217;s not surprising that a thief would use them &#8212; they seem like a company that cares only about volume and wants to bury their head in the sand when it comes to problems.  They also seem to not care that thousands and thousands of their potential customers are seeing each tweet.  I couldn&#8217;t believe it.</p><h2>Meanwhile&#8230;</h2><p>Name.com saw my frustration with 1And1 and made extra efforts to contact them and keep me updated as to progress.  Name.com also applied further pressure on the thief (dude provided a real phone number on the account!) and talked him into providing them the auth code for the domain, thus allowing Name.com to initiate a transfer of my domain back to them (Quick note:  during the dispute, the domain can only be transferred back to the &#8220;losing registrar&#8221;;  since Name.com was used as an intermediary, they were technically the losing registrar.  As soon as Name.com became part of the thief&#8217;s trail, GoDaddy really didn&#8217;t have much ability to help.)</p><h2>Script &amp;&nbsp;Style</h2><p>During this process, I remembered that SCRIPTANDSTYLE.COM was magically missing from my account as well.  I did notice it a few weeks prior but thought nothing of it because I was planning to shut down the site anyway.  I just assumed that the domain lapsed so I didn&#8217;t investigate further.  This incident spurred my curiosity and I came to find that SCRIPTANDSTYLE.COM was stolen by the same person.  I quickly filed the theft with GoDaddy and they addressed it with PlanetDomain right away.</p><h2>Misery Loves&nbsp;Company</h2><p>On December 2nd, Chris Coyier found out that <a
href="http://css-tricks.com/15377-this-sites-domain-is-stolen/">CSS-TRICKS.com had also been stolen</a> and moved to PlanetDomain.  The same thief also stole SOHTANAKA.COM, INSTANTSHIFT.COM, DESIGNSHACK.NET, KIRUPA.COM, and SHIACHAT.COM.  This proved a few things:</p><ul><li>Not all of them were initially registered with GoDaddy, so you cannot fault them or accuse them of being hacked.</li><li>It was a calculated attack on web development blogs, not just mine (I knew some people didn&#8217;t like what a wrote, but stealing the domain is a bit much, yeah?)</li><li>This person had a system for what they did</li></ul><p>CSS-TRICKS.COM and SCRIPTANDSTYLE.com were promptly returned by Planet Domain to GoDaddy.  Most of the others have gotten their domain back, but Soh Tanaka still hasn&#8217;t gotten his back from Network Solutions.  Please support <a
href="http://sohtanaka.com">@sohtanaka</a> by tweeting to <a
href="http://twitter.com/netsolcares">@netsolcares</a> and <a
href="http://twitter.com/1and1_4U">@1and1_4u</a>.</p><h2>Result!</h2> <img
src="http://davidwalsh.name/dw-content/bodygaurd1.jpg" alt="Name.com Saved Me" class="image" /><p>On Saturday, December 3rd, Name.com initiated a transfer to get the domain back.  This is generally a five-day process so during that time I didn&#8217;t contact 1And1 and prayed they continued to be complacent in helping me.  These five days were possibly the longest of my life.  On December 8th, I awoke to seeing the domain back at Name.com and from there Name.com put the domain back in my name and put it under uberlock.  Mission accomplished!</p><p><a
href="http://blog.name.com/2011/12/project-freedavidwalshdotname-success/">Click here to see Name.com&#8217;s hilarious video of how this all played out.</a></p><h2>THANK&nbsp;YOU!</h2><p>The outpouring of support during this rough time was incredible.  All of the tweets, retweets, phone calls to 1And1, posts on their Facebook wall, and research was absolutely shocking &#8212; without your support I wouldn&#8217;t have my domain back right now.  I don&#8217;t know how I can repay you all.  Special thanks go to <a
href="http://twitter.com/csuwildcat">Daniel Buchner</a>, Chris Coyier, and a few people that did some undercover work and wanted to remain nameless.  Wow guys &#8212; I still can&#8217;t believe it.</p><h2>How it&nbsp;Happened</h2><p>I still don&#8217;t know how the thief was able to get hold of our domains.  I think blaming GoDaddy is out of the question because the thief took the domains from numerous different vendors.  Domains were taken from both GoDaddy, 1And1, Network Solutions, and Dreamhost.  My only thought is that the thief hacked my Gmail account, set up filters which would catch emails from the domain vendors, hide them, and work around me that way.  One of those emails would be the reset password email from GoDaddy, and that&#8217;s how he&#8217;d be able to get it.  The one hole in that theory would be that my GoDaddy account password was the same when logged in, so I really don&#8217;t know how all this happened.  I guess where there&#8217;s a will, there&#8217;s a way.</p><h2>The Devil is in the&nbsp;Details</h2><p>The thief made two crucial mistakes in my domain theft:</p><ol><li><strong>Changing Nameservers: </strong> The namerservers were changed when the domain got to 1And1;  without seeing that domain parking page, I wouldn&#8217;t have known my domain was stolen</li><li><strong>Real Phone:</strong> Thief put his legit phone number on the domain.  Without that Name.com would have had a much more difficult fight to get the domain back.</li></ol><p>The mistakes will kill you!</p><h2>Haters Gonna&nbsp;Hate</h2><p>I actually had a few people say that the domain theft was my fault.  That it was &#8220;my fault&#8221; was dispelled by the fact that so many others had their domains stolen as well.  I didn&#8217;t have a rubbish password and I don&#8217;t give my information away.  I&#8217;ve never heard anything so stupid in my life.</p><p>Someone also mentioned that I should stop tweeting about it because they were tired of seeing it.  Besides the obvious &#8220;unfollow if you don&#8217;t like what I tweet&#8221; comment, that&#8217;s a really careless thing to say to someone that&#8217;s had their intellectual property stolen.  That domain/blog has gotten me jobs, allowed me to travel the world and speak, and besides &#8212; without that domain, you wouldn&#8217;t know who I was.</p><h2>Advice</h2><p>A bit of advice for those of you who own or manage domain names:</p><ul><li><strong>Check your WHOIS often: </strong>My domain was actually stolen two weeks before I recognized it.  If the thief doesn&#8217;t change the nameservers, you may lose your domain without knowing.</li><li><strong>Don&#8217;t use private registration:</strong> Public registration provides a living record of who truly owns the domain.</li><li><strong>Harass the vendors: </strong>I&#8217;ve been in this business long enough to know that if you don&#8217;t continually contact the vendors after your domain is stolen, they&#8217;ll get things done on their timelines.  Since many vendors work on volume, you&#8217;ll be nothing more than ticket #23482938.</li><li><strong>Call attention to yourself:</strong> Make sure that the vendors know that other developers (potential customers) are seeing their handling of the issue;  that tends to make them work faster.</li></ul><h2>The&nbsp;Vendors</h2><p>A lot of people are having a go at GoDaddy and I don&#8217;t think it&#8217;s warranted.  They helped me very quickly and it doesn&#8217;t appear that they were hacked.  I don&#8217;t have any animosity toward you.</p><p>1And1:  You are absolutely useless.  Over the course of two weeks I continually tweeted to you, posted on your Facebook wall, called your support techs (BTW, I taught one of them that &#8220;.NAME&#8221; is a TLD;  you&#8217;re welcome), blogged about the issue, posted on Digg, Reddit, Hacker News, and DZone, and you did absolutely nothing but ignore me or give me canned responses.  This signifies one of two things:  either you simply don&#8217;t care (and why would you, as I&#8217;ve never paid you a dime) or your PR people are completely, completely inept.  In two weeks I&#8217;d estimate that at least 100,000 people (web developers, a.k.a potential customers) saw that you weren&#8217;t helping me (or even communicating with me).  In fairness, you could have been busting your asses to help, but your inability to communicate with me was reprehensible.  During the ordeal, I received hundreds of tweets and emails telling me about bad experiences with you, and I sure as hell believe them.</p><p>Name.com:  You are absolute legends.  I did not pay you one dime this entire time, nor have I ever, and to say that you went above and beyond is the understatement of the century. You made gutsy moves to contact the thief, and not only monitor his account but also get the auth code from him, and transfer the domain back.  You were in touch with me every day and weren&#8217;t going to take &#8220;no&#8221; for an answer.  I cannot get over how far your company (and Scott in particular) went to return my domain.  Your company owed me the least and gave me the most.  Absolutely brilliant service.  You deserve every bit of business you receive from my story.</p><h2>Name.com Promo &#8211;&nbsp;DAVIDWALSH</h2><p><a
href="http://blog.name.com/2011/12/project-freedavidwalshdotname-success/"><img
src="http://davidwalsh.name/dw-content/namecom.png" alt="Name.com Domain" /></a></p><p>To celebrate their epic work, Name.com is offering a discounted $7.25 transfer price (w/ extra year added on) for .COM and .NET domain names, as well as a $6.99 transfer price on .NAME domain names (yes, 1And1 tech support, that TLD exists).  The promo code to use is <strong>DAVIDWALSH</strong>.  I highly recommend you give them a shot;  if you haven&#8217;t figured out why, re-read this post.</p><p><a
href="http://davidwalsh.name/freedavidwalshdotname">#FreeDavidWalshDotName:  Mission&nbsp;Accomplished</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/freedavidwalshdotname/feed</wfw:commentRss> <slash:comments>32</slash:comments> </item> <item><title>DavidWalsh.Name Has Been&#160;Stolen</title><link>http://davidwalsh.name/domain-stolen</link> <comments>http://davidwalsh.name/domain-stolen#comments</comments> <pubDate>Wed, 30 Nov 2011 01:54:40 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5337</guid> <description><![CDATA[If you follow me on Twitter or Facebook, you probably already know that this blog&#8217;s domain name, DAVIDWALSH.NAME, has been stolen. The domain had been registered and managed at GoDaddy for approximately 5 years with no problems. A hacker logged in, changed the email address on the domain, and moved it to Name.com, then to [...]<p><a
href="http://davidwalsh.name/domain-stolen">DavidWalsh.Name Has Been&nbsp;Stolen</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>If you <a
href="http://twitter.com/davidwalshblog">follow me on Twitter</a> or Facebook, you probably already know that this blog&#8217;s domain name, DAVIDWALSH.NAME, has been stolen.  The domain had been registered and managed at GoDaddy for approximately 5 years with no problems.  A hacker logged in, changed the email address on the domain, and moved it to Name.com, then to 1And1.  I&#8217;ve also received a ransom email for the domain.  Scary times.</p><p>The process of fighting to get the domain back has been very difficult, time-consuming, and painful.  It&#8217;s involved dozens of phone calls, emails, and tweets to the vendors listed above.  You&#8217;re now seeing this website because (presumably) 1And1 restored the domain&#8217;s nameservers.  It is important to note, however, that <strong>DAVIDWALSH.NAME IS STILL NOT UNDER MY CONTROL.</strong></p><p>Thank you to everyone for your continued support in this matter.  There&#8217;s a lot of working going on behind the scenes at GoDaddy, Name.com, and 1And1 to cut through the red tape and get my domain back.  Since I&#8217;m not always aware of who needs to get in touch with who, I can only continue to badger them on Twitter.  I appreciate everyone&#8217;s continued retweets as well.</p><p>Let&#8217;s #FreeDavidWalshDotName.</p><ul><li><a
href="http://twitter.com/1and1_4U">@1And1 and @1And1_4U</a> &#8211; <strong>CURRENT DOMAIN REGISTRAR THAT I&#8217;M TRYING TO GET THE DOMAIN BACK FROM</strong></li><li><a
href="http://twitter.com/GoDaddy">@GoDaddy</a> &#8211; Original registrar</li></ul><h2>Updates</h2><ul><li>Day 6, 10:00 am:  I awake to see my domain name in &#8220;pendingTransfer&#8221; status.  Desperately hoping it&#8217;s a transfer back to Name.com</li><li>Day 5, 10:00 am:  Chris Coyier (CSS-TRICKS.COM), Soh Tanaka (SOHTANAKA.COM), and InstantShift (INSTANTSHIFT.COM) have discovered their domains were also stolen.</li><li>Day 4, 11:19 pm:  I just called 1and1 and they repeatedly refused to give me their legal/admins.  They also made me aware my only means of communication with them was via email;  their support person also informed me that their legal department does not have phones.</li><li>Day 3:  1and1 posts a Movember photo on their <a
href="https://www.facebook.com/1and1" rel="nofollow">Facebook page</a> during their downtime</li></ul><p><a
href="http://davidwalsh.name/domain-stolen">DavidWalsh.Name Has Been&nbsp;Stolen</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/domain-stolen/feed</wfw:commentRss> <slash:comments>46</slash:comments> </item> <item><title>Confessions of a Web Developer&#160;X</title><link>http://davidwalsh.name/confessions-x</link> <comments>http://davidwalsh.name/confessions-x#comments</comments> <pubDate>Mon, 14 Mar 2011 15:01:43 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Theory / Ideas]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5178</guid> <description><![CDATA[It&#8217;s been quite a while since I&#8217;ve gotten a few things off of my chest and since I&#8217;m always full of peeves and annoyances I thought it was time to unleash: The more I work with advanced JavaScript-based web applications, the more I wish all web browsers used WebKit.  Fast, progressive, flexible.  The world would [...]<p><a
href="http://davidwalsh.name/confessions-x">Confessions of a Web Developer&nbsp;X</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<img
src="http://davidwalsh.name/dw-content/usher.jpg" alt="David Walsh Confessions" class="image" /><p>It&#8217;s been quite a while since I&#8217;ve gotten a few things off of my chest and since I&#8217;m always full of peeves and annoyances I thought it was time to unleash:</p><ul><li>The more I work with advanced JavaScript-based web applications, the more <strong>I wish all web browsers used WebKit</strong>.  Fast, progressive, flexible.  The world would be a much better place.</li><li>When I switched from Firefox I chose Safari.  With all the cool shit Chrome&#8217;s got, I fear <strong>I made the wrong choice</strong>.</li><li><strong>dojox.mobile is fucking amazing.</strong> If you haven&#8217;t taken a look yet, you should.  It will be the standard within a few years.</li><li>The amount of time it takes Firefox to close sometimes is nothing short of criminal.</li><li>Fact:  I don&#8217;t mind being criticized about something on this blog.  I&#8217;m always open to different ways of doing things.  <strong>But if you&#8217;re going to insult me along the way, you better fucking have a better solution or idea to provide or I will light you up.  <em><span
style="font-weight: normal;">(Sponsored by the David Walsh &#8220;Don&#8217;t Be a Douche&#8221; Campaign)</span></em></strong></li><li>Titanium by Appacelator <strong>looks like a beast</strong>.  Can&#8217;t wait to play with it some more.</li><li>Whoever started the &#8220;put your logo in the H1 tag&#8221; revolution deserves to lose every client they ever had.  What an SEO killer.</li><li>If you plan to ever make enterprise-level websites and widgets, <strong>start learning Dojo now</strong>.</li><li>In most cases, <strong>removing the dotted outline via CSS from a focused element  is a horrible, horrible idea</strong>.  It&#8217;s a usability nightmare.  That outline is there for a reason.</li><li>I think my dream job would be to work on websites for soccer teams or publications.  I mean, then, technically, it would be my job to watch the games and create sweet features for them.  GET IN!</li><li>I hope that my dojox.mobile web application and tutorials are well-received when published.  I had a lot of fun making them and I think they could be incredibly useful for developers looking to get into mobile-centric developing.</li><li>You know what I do when the JavaScript toolkit I&#8217;m using doesn&#8217;t have a feature?  I find another toolkit one that does, port it to the given toolkit, and share it.  <strong>You know what I don&#8217;t do?  Bitch.</strong></li><li>Is it just me or do non-developers simply not understand the complexity that comes with creating secure, reliable web forms with PHP?  Especially the form processing part?!  <strong>Someone please confirm that I&#8217;m not crazy.</strong></li><li>I hope the browser vendors iron out their self-prefixing CSS animation stuff quickly.  All these <strong>self-prefixed CSS properties are getting out of hand</strong>, and it seems to only be getting worse.</li><li>Imagine all the awesome web apps we could create with a true XBOX/game API.  Would be epic.</li><li>Google claims that ~44 posts/demos reference <strong>Christina Ricci</strong>.  That&#8217;s far too few.  I apologize &#8212; I&#8217;ll try to step up in that regard.</li></ul><p>Am I wrong?  Am I right?  Bring it.</p><p><a
href="http://davidwalsh.name/confessions-x">Confessions of a Web Developer&nbsp;X</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/confessions-x/feed</wfw:commentRss> <slash:comments>46</slash:comments> </item> <item><title>What I&#8217;m Thankful For:  2010&#160;Edition</title><link>http://davidwalsh.name/thanksgiving-2010</link> <comments>http://davidwalsh.name/thanksgiving-2010#comments</comments> <pubDate>Wed, 24 Nov 2010 19:02:25 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5124</guid> <description><![CDATA[With another Thanksgiving upon us in the United States, it&#8217;s time for me to look back at all of the people I should be thankful for. Without further adieu, I&#8217;d like to give props to following people. SitePen I joined SitePen in May 2010 after a great talk with SitePen CEO and Dojo Toolkit founder [...]<p><a
href="http://davidwalsh.name/thanksgiving-2010">What I&#8217;m Thankful For:  2010&nbsp;Edition</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<img
src="http://davidwalsh.name/dw-content/sexy-turkey.jpg" alt="Thanksgiving Web" class="image" /><p> With another Thanksgiving upon us in the United States, it&#8217;s time for me to look back at all of the people I should be thankful for.  Without further adieu, I&#8217;d like to give props to following people.</p><h2>SitePen</h2><p> I joined <a
href="http://sitepen.com" rel="nofollow">SitePen</a> in May 2010 after a great talk with SitePen CEO and Dojo Toolkit founder <a
href="http://twitter.com/dylans" rel="nofollow">Dylan Schiemann</a>.  The talk represented more than an opportunity to work with a great company and some of the best JavaScript developers in the world; it renewed my faith in my skills and, more importantly, pushed me back into enjoying what I do instead of resenting it.  Since joining SitePen, I&#8217;ve grown exponentially as a front-end web developer (hopefully you&#8217;ve sensed this growth within my posts).  Not only have I picked up Dojo but I&#8217;ve also learned more advanced JavaScript and emerging web technologies.  Big ups to all of the legends on the SitePen team for being so good to me this year!.  I also need to thank <a
href="http://blog.reybango.com/" rel="nofollow">Rey Bango</a> for putting me in touch with Dylan.  Thanks Rey!</p><h2>The Dojo&nbsp;Community</h2><p> The JavaScript community can be&#8230;elitist.  And negative.  And opinionated.  I was very surprised to the reception I was given by the Dojo community.  Whether it was SitePenners, Dojo committers, or users on IRC, the Dojo community has been nothing but positive and encouraging to me.  I was welcomed into the Dojo world with open arms.  That positive attitude speaks wonders for the Dojo community;  the Dojo Toolkit team members should be proud.</p><h2>The MooTools&nbsp;Team</h2><p> The MooTools Core Development Team has always been and continues to be <strike>awesome</strike> FTW.  I&#8217;m continuously impressed with the team&#8217;s growth and talent.  MooTools 1.3 debuted this year, MooTools ART continues to improve, and Aaron and company have done a great job pushing MooTools More forward.  The team also shot an impromptu video for my wife and I on the day of our wedding, congratulating us on our marriage and expressed that they wished I was at the MooTools Hackathon.  Nevermind that it was recorded after a crazy night in London;  the thought was special.  Thank you to <a
href="http://mootools.net" rel="nofollow">Valerio Proietti</a>, <a
href="http://twitter.com/w00fz" rel="nofollow">Djmail Legato<strike> Mr. Roboto</strike></a>, <a
href="http://cpojer.net" rel="nofollow">Christoph <strike>Power</strike> Pojer</a>, <a
href="http://clientcide.com" rel="nofollow">Aaron Newton</a>, <a
href="http://twitter.com/kassens" rel="nofollow">Jan Kassens</a>, <a
href="http://twitter.com/subtlegradient" rel="nofollow">Thomas Aylott</a>, <a
href="http://calyptus.eu" rel="nofollow">Sebastian Markbage</a>, <a
href="http://aryweb.nl" rel="nofollow">Arian Solwijk</a>, <a
href="http://devthought.com" rel="nofollow">Guillermo Rauch</a>, <a
href="http://blog.fakedarren.com" rel="nofollow">(Fake) Darren Waddell</a>, <a
href="http://appden.com" rel="nofollow">Scott Kyle</a>, <a
href="http://meiocodigo.com" rel="nofollow">Fabio M. Costa</a>, <a
href="http://twitter.com/ibolmo" rel="nofollow">Olmo Moldonado</a>, and <a
href="http://tim.wienk.name" rel="nofollow">Tim Wienk</a>. <strong>MooTools FTW!</strong></p><h2>Emily&nbsp;Lewis</h2><p> <a
href="http://ablognotlimited.com" rel="nofollow">Emily Lewis</a> of Microformats fame wrote a hugely inspiring piece when I was depressed about work. <a
href="http://ablognotlimited.com/index.php/articles/moving-on/" rel="nofollow">Moving On</a> felt really close to home and inspired me to make the leap to SitePen.  I&#8217;ve never gotten the chance to thank Emily for her post so hopefully she gets wind of this.  Thank you, Emily.</p><h2>My Web&nbsp;Boys</h2><p> I&#8217;d like to thank my web posse of developers who let me bounce ideas off them, help me to solve complex development issues, and are patient in listening to me bitch about just about everything.  These patient people include <a
href="http://ryanflorence.com" rel="nofollow">Ryan Florence</a>, <a
href="http://eriwen.com" rel="nofollow">Eric Wendelin</a>, <a
href="http://css-tricks.com/" rel="nofollow">Chris Coyier</a>, <a
href="http://blog.reybango.com/" rel="nofollow">Rey Bango</a>, <a
href="http://higginsforpresident.net" rel="nofollow">Peter Higgins</a>, <a
href="http://queridodesign.com/" rel="nofollow">Nathan Querido</a>, <a
href="" rel="nofollow">Jeremy Martin</a>, Andre Dion, and <a
href="http://codylindley.com" rel="nofollow">Cody Lindley</a>.</p><h2>You, The&nbsp;Readers</h2><p> HUGE thank you to all of the readers of this blog.  DWB has been well supported since the first post in June 2010 and continues to grow in content, traffic, and community.  I&#8217;ve always said that I learn more from all of you than you do from me and that&#8217;s the absolute truth.  As long as you keep coming back, I&#8217;ll keep posting.  Thank you all!</p><p><a
href="http://davidwalsh.name/thanksgiving-2010">What I&#8217;m Thankful For:  2010&nbsp;Edition</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/thanksgiving-2010/feed</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Smack Talk:  Calling Myself&#160;Out</title><link>http://davidwalsh.name/smack-talk</link> <comments>http://davidwalsh.name/smack-talk#comments</comments> <pubDate>Tue, 02 Nov 2010 13:37:29 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=5102</guid> <description><![CDATA[So listen, I&#8217;m not perfect.  I&#8217;m full of ego, I&#8217;m a bit stubborn, and some would call me opinionated.  Well guess what?  I&#8217;ve been wrong. I&#8217;ve felt strongly about some web development topics and now, a few years later, I realize that I was dead wrong about a few things.  So I&#8217;m calling myself out. [...]<p><a
href="http://davidwalsh.name/smack-talk">Smack Talk:  Calling Myself&nbsp;Out</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p><img
src="http://davidwalsh.name/dw-content/duh.jpg" alt="Duh!" /></p><p>So listen, I&#8217;m not perfect.  I&#8217;m full of ego, I&#8217;m a bit stubborn, and some would call me opinionated.  Well guess what?  I&#8217;ve been wrong.<p>I&#8217;ve felt strongly about some web development topics and now, a few years later, I realize that I was dead wrong about a few things.  So I&#8217;m calling myself out.  Deal with it, Walsh.</p><h2>&#8220;Browser-Specific APIs are&nbsp;Pointless&#8221;</h2><p>My most ignorant moments were thinking that browser-specific APIs (CSS properties, JavaScript APIs, etc.) were pointless because their functionality were not available within other browsers and were thus unusable.  Stupid.  I now realize that the web would be nowhere without them.  IE is just now, with version 9 near release, providing CSS animations that WebKit had years ago.  And some of the great HTML5 enhancements that we&#8217;ve had for months?  IE&#8217;s just implementing those too.  In working with the MooTools and Dojo teams over the past years, I&#8217;ve realized how useful these edge APIs are.  Most of the time you can simply use JavaScript to create shims for browsers that don&#8217;t implement specific APIs.</p><p>This has clearly been my largest point of ignorance.   I&#8217;m sorry web development pioneers &#8212; I wont be this dumb again.</p><h2>&#8220;It&#8217;s MooTools or Nothing At&nbsp;All&#8221;</h2><p>I&#8217;m the biggest MooTools fanboy you&#8217;ll find.  I could go on for hours about how FTW MooTools is.  Shockingly awesome API.  Rock solid stable.  Modular.  Compact.  If MooTools were a chick, I&#8217;d have married her years ago.  Unfortunately, however, MooTools isn&#8217;t the best fit for everything.  Having worked with Dojo on a daily basis for six months now, I realize that Dojo&#8217;s probably the best solution for UI-driven web applications because of the elegant themes and number of consistent widgets available.  Dojo also has outstanding charting and vector graphic libraries available.  So while MooTools is synonymous for &#8220;FTW,&#8221; it&#8217;s not always the best solution for every project.</p><h2>&#8220;Macs are for Smug&nbsp;Hippies&#8221;</h2><p>My impression of Mac users was always that they were arrogant, self-righteous, tree-hugging, Zima-drinking, bicycle-riding, vegan, no-deoderant-wearing hippies.  It wasn&#8217;t until last summer that I got my first Mac and within a hour of using it, I realized how wrong I was.  The UI that I once labeled as &#8220;animating for smug designers&#8221;  was refreshing.  No need to install Cygwin to get a useful command line.  Apache and SVN out of the box.  Quality, no nonsense software.  Easy install processes.   Frequent software updates.  TextMate.  I was wrong, my MacBook Pro.  I love you.</p><h2>&#8220;I Wont Join&nbsp;Twitter&#8221;</h2><p>I was once the typical moron that thought Twitter was about posting useless crap like &#8220;Sitting on the patio.&#8221;  &#8221;Eating a carrot.&#8221;  &#8221;Christina Ricci FTW.&#8221;  But since <a
href="http://davidwalsh.name/twitter">joining Twitter</a>, I&#8217;ve realized that it&#8217;s actually unbelievably useful.  It&#8217;s a great way to network, drive more traffic to deserving blog posts, and a great way to keep up with what&#8217;s going on in web development.  It&#8217;s also a great place to talk smack to my fellow web gurus.  Well played Twitter.  Well played.</p><h2>&#8220;UL Navigation is&nbsp;Overrated&#8221;</h2><p>At one point I thought I was super clever about using only anchor elements with fixed width and heights, a display property of &#8220;block,&#8221; and a touch of floating.  Obviously I wasn&#8217;t giving any thought to screen readers and users with visual impairments.  My bad.  I&#8217;m a grownup now.</p><h2>&#8220;Dudes Don&#8217;t Let Dudes Use&nbsp;Emoticons&#8221;</h2><p>I was never an emoticon guy until I started working from home.  It wasn&#8217;t until then that I realized that emoticons can be incredibly useful in laying down an attitude about something you IM to a coworker, especially when you have a dry sense of humor&#8230;or you&#8217;re IMing the person that signs your paycheck.</p><h2>Your&nbsp;Turn</h2><p>OK, so I&#8217;ve been wrong about a few things.  I&#8217;m close to perfect not quite there yet.  Since I&#8217;ve had the fortitude to come clean, it&#8217;s time for you to do so as well.  Share something you&#8217;ve been wrong about in the comments below and you will be absolved of all your web development sins.</p><p><a
href="http://davidwalsh.name/smack-talk">Smack Talk:  Calling Myself&nbsp;Out</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/smack-talk/feed</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Confessions of a Web Developer&#160;VIII</title><link>http://davidwalsh.name/confessions-viii</link> <comments>http://davidwalsh.name/confessions-viii#comments</comments> <pubDate>Tue, 18 May 2010 13:53:10 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Theory / Ideas]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=4956</guid> <description><![CDATA[It’s been a while since I’ve gotten a few things off of my chest and since I’m always full of peeves and annoyances I thought it was time to unleash: Rock star developers get lots of schwag and job offers every day. It makes me think to myself: &#8220;If I were an actual rock star, [...]<p><a
href="http://davidwalsh.name/confessions-viii">Confessions of a Web Developer&nbsp;VIII</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<img
class="image" src="http://davidwalsh.name/dw-content/janine.jpg" alt="Janine / Blink 182" /><p>It’s been a while since I’ve gotten a few things off of my chest and since I’m always full of peeves and annoyances I thought it was time to unleash:</p><ul><li>Rock star developers get lots of schwag and job offers every day.  It makes me think to myself: &#8220;If I were an <em>actual</em> rock star, the offers would be sex and drugs.&#8221;  A very difficult decision as to what I&#8217;d rather be&#8230;..</li><li>&#8220;Webmasters&#8221; are a lot like a &#8220;Porn Star&#8221;:  both get their status before they&#8217;ve done or proven anything.</li><li>If more people knew about Dojo&#8217;s Dijit library, Dojo could be the most popular toolkit out there.  No other toolkit (<em>maybe</em> excluding Ext) available has that level of UI framework to go along with its base framework.</li><li>MooTools 1.3 is the first step in incrementing MooTools to 2.0.  Implementing Slick is a great start &#8212; there&#8217;s no more fitting name for this selector engine than that.</li><li>I spend 40+ hours a week with Dojo team members and probably another 40+ with the MooTools team.  Loads of brilliant people around me.  I sometimes feel completely out-classed&#8230;</li><li>&#8230;although it does make me feel important since, at any moment of time, I can ping the head figures of Dojo, jQuery, and MooTools.</li><li>Apple wont support Flash.  Am I the only person that doesn&#8217;t give a shit?</li><li>Don&#8217;t like Facebook&#8217;s privacy policies?  Close your account and create your own site.  Simple.  Facebook has put forth the money, time, and effort to create the site.  You are owed NOTHING.  STFU or move on.</li><li>Getting beat up by a bug all day can be frustrating but the good thing is that the given bug will never victimize you again.</li><li>I was playing the &#8220;guess which framework this business&#8217; website uses&#8221;  game and I set my target on McDonald&#8217;s.  I said it would be jQuery.  It  was.  Very fitting and an easy guess.</li><li>Sometimes I look out my window and wish I worked in the outdoors.  Then I realized that I&#8217;m a sickly, small person and that I&#8217;d probably die within a week.</li><li>Crucify Microsoft and not its current browser developer team.</li><li>It pisses me off that developers who blog are made to feel guilty for having ads on their site.  We&#8217;re giving away code for free;  we&#8217;re charging, essentially, for our time.  And our time is worth it, so don&#8217;t bitch.</li><li>There&#8217;s no better way to create instant comedy on IM than by using the &#8220;/me _____&#8221; command.  &#8220;/me&#8221; = gold.</li><li>I haven&#8217;t touched a server-side script in weeks&#8230;and I&#8217;m more than OK with that.</li><li>I felt like a total attention whore to create a <a
rel="nofollow" href="http://www.facebook.com/#!/pages/David-Walsh-Blog/186644584869?ref=ts">David Walsh Blog</a> page on Facebook, but a lot of people had asked for it.  So deal with it.</li></ul><p>As always I&#8217;ve lobbed the first pitch &#8212; time for you to tee off.</p><p><a
href="http://davidwalsh.name/confessions-viii">Confessions of a Web Developer&nbsp;VIII</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/confessions-viii/feed</wfw:commentRss> <slash:comments>30</slash:comments> <series:name><![CDATA[Confessions of a Web Developer]]></series:name> </item> <item><title>jQuery Podcast &amp; Essential jQuery and MooTools&#160;Snippets</title><link>http://davidwalsh.name/jquery-podcast</link> <comments>http://davidwalsh.name/jquery-podcast#comments</comments> <pubDate>Fri, 26 Feb 2010 15:24:03 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[jQuery]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=4892</guid> <description><![CDATA[Many of you probably already know this but I like to consider myself a bit of a JavaScript chameleon. If you know that then you probably know I&#8217;m a MooTools fanatic that periodically dabbles with jQuery. I&#8217;m happy to announce that I was able to join Elijah Manor and Ralph Whitbeck on the jQuery podcast [...]<p><a
href="http://davidwalsh.name/jquery-podcast">jQuery Podcast &#038; Essential jQuery and MooTools&nbsp;Snippets</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<a
href="http://blog.jquery.com/2010/02/26/the-official-jquery-podcast-episode-13-david-walsh/" rel="nofollow"><img
src="http://davidwalsh.name/dw-content/jquery-logo.jpg" class="image" alt="jQuery" /></a><p>Many of you probably already know this but I like to consider myself a bit of a JavaScript chameleon.  If you know that then you probably know I&#8217;m a MooTools fanatic that periodically dabbles with jQuery.  I&#8217;m happy to announce that I was able to join Elijah Manor and Ralph Whitbeck on the jQuery podcast this past week to talk jQuery, MooTools, and web development in general.  Head on over to the <a
href="http://blog.jquery.com/2010/02/26/the-official-jquery-podcast-episode-13-david-walsh/" rel="nofollow">jQuery blog</a> for more information or <a
href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=339835419" rel="nofollow">iTunes to grab the podcast</a>.</p><p>As an extension of my podcast appearance, I wanted to share a few code snippets to make your introduction to MooTools or jQuery easier.</p><h2>Featured jQuery &amp; MooTools&nbsp;Snippets</h2><h3>Using jQuery and MooTools&nbsp;Together</h3><p>Did you know that you can use jQuery and MooTools within the same page?  It&#8217;s easy to!</p><pre class="js">
&lt;script type=&quot;text/javascript&quot; src=&quot;moo1.2.4.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-1.4.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
window.addEvent('domready',function() { //moo stuff
	$('p').css('border','1px solid #fc0'); //jquery
});
&lt;/script&gt;
</pre><h3>Using Sizzle Within&nbsp;MooTools</h3><p>Prefer to use jQuery&#8217;s selector engine within MooTools?  No problem &#8212; here&#8217;s how:</p><pre class="js">
//just as reader &quot;Ryan&quot; mentioned....
Window.$$ = function(selector){
	return new Elements(new Sizzle(selector));
}
</pre><h3>jQuery and MooTools Link&nbsp;Nudging</h3><p>Link nudging is a classy, subtle effect that makes your websites more dynamic.</p><pre class="js">
/* jquery */
$.fn.nudge = function(params) {
	//set default parameters
	params = $.extend({
		amount: 20,
		duration: 300,
		property: 'padding',
		direction: 'left',
		toCallback: function() {},
		fromCallback: function() {}
	}, params);
	//For every element meant to nudge...
	this.each(function() {
		//variables
		var $t = $(this);
		var $p = params;
		var dir = $p.direction;
		var prop = $p.property + dir.substring(0,1).toUpperCase() + dir.substring(1,dir.length);
		var initialValue = $t.css(prop);
		/* fx */
		var go = {}; go[prop] = parseInt($p.amount) + parseInt(initialValue);
		var bk = {}; bk[prop] = initialValue;
		
		//Proceed to nudge on hover
		$t.hover(function() {
					$t.stop().animate(go, $p.duration, '', $p.toCallback);
				}, function() {
					$t.stop().animate(bk, $p.duration, '', $p.fromCallback);
				});
	});
	return this;
};

/* jquery usages */
$(document).ready(function() {
	/* usage 1 */
	$('#nudgeUs li a').nudge();
	/* usage 2 */
	$('#nudgeUs2 li a').nudge({
		property: 'margin',
		direction: 'left',
		amount: 30,
		duration: 400,
		toCallback: function() { $(this).css('color','#f00'); },
		fromCallback: function() { $(this).css('color','#000'); }
	});
});

/* mootols link nudge */
window.addEvent('domready',function() {
	$$('#nudges a').addEvents({
		'mouseenter': function() { this.tween('padding-left',20); },
		'mouseleave': function() { this.tween('padding-left',0); }
	});
});
</pre><div
class="actions"> <a
href="http://davidwalsh.name/dw-content/jquery-link-nudge-plugin.php" class="demo">View jQuery Demo</a> <a
href="http://davidwalsh.name/dw-content/mootools-link-nudge.php" class="demo">View MooTools Demo</a><div
class="clear"></div></div><h3>jQuery and MooTools Search&nbsp;Bookmarklets</h3><p>These bookmarklets will allow you to highlight text on a page and search the jQuery or MooTools websites to learn more about the phrase.</p> <a
href="javascript:(function()%7Bvar%20d=document,w=window,ds=d.getSelection,ws=w.getSelection,ss=d.selection,e=encodeURIComponent;t=(ws)%3Fws():(ds)%3Fds():(ss)%3Fss.createRange().text:'';t=(t.toString().length)%3Ft:prompt('Please select the code you would like to research.','');if(t)%7Ba='http://docs.jquery.com/Special:Search?search=';u=a+e(t);f=function()%7Bx=w.open(u,'nfx','scrollbars=1,toolbar=0,resizable=1,status=1,width=600,height=600');if(!x)w.location.href=u;%7D;if(/Firefox/.test(navigator.userAgent))setTimeout(f,0);else%20f();%7D%7D)();" class="article">jQuery Bookmarklet</a><a
href="javascript:(function()%7Bvar%20d=document,w=window,ds=d.getSelection,ws=w.getSelection,ss=d.selection,e=encodeURIComponent;t=(ws)%3Fws():(ds)%3Fds():(ss)%3Fss.createRange().text:'';t=(t.toString().length)%3Ft:prompt('Please select the code you would like to research.','');if(t)%7Ba='http://mootools.net/search/?search=1&#038;query=';u=a+e(t);f=function()%7Bx=w.open(u,'nfx','scrollbars=1,toolbar=0,resizable=1,status=1,width=800,height=600');if(!x)w.location.href=u;%7D;if(/Firefox/.test(navigator.userAgent))setTimeout(f,0);else%20f();%7D%7D)();" class="article">MooTools Bookmarklet</a><div
class="clear"></div><p>&nbsp;</p><h3>jQuery Events within&nbsp;MooTools</h3><p>The following MooTools snippet allows you to use jQuery-style syntax for event listening.</p><pre class="js">
//hash the element.natives so we can do stuff with it
var hash = new Hash(Element.NativeEvents);
//remove items that need to be replaced, add their replacements
hash.erase('mouseover').erase('mouseout').erase('DOMMouseScroll');
hash.include('mouseenter',1).include('mouseleave',1);
//initialize this
var eventHash = new Hash({});
//for every event type, add to our hash
hash.getKeys().each(function(event){
	eventHash[event] = function(fn) {
		this.addEvent(event,fn);
		return this;
	}
});
//make it happen
Element.implement(eventHash);
</pre><p>&nbsp;</p><h2>JavaScript&nbsp;FTW!</h2><p>Here are a few other MooTools and jQuery tutorials you may like:</p><ul><li><a
href="http://davidwalsh.name/animate-opacity">Sexy Opacity Animation with MooTools or jQuery</a></li><li><a
href="http://davidwalsh.name/google-fade">Google-Style Element Fading Using MooTools or jQuery</a></li><li><a
href="http://davidwalsh.name/iphone-click">iPhone Click Effect Using MooTools or jQuery</a></li><li><a
href="http://davidwalsh.name/text-selection-ajax">Record Text Selections Using MooTools or jQuery AJAX</a></li><li><a
href="http://davidwalsh.name/remove-broken-images">Remove Broken Images Using MooTools or jQuery</a></li><li><a
href="http://davidwalsh.name/jquery-homepage-mootools">Duplicate the jQuery Homepage Tooltips Using MooTools</a></li><li><a
href="http://davidwalsh.name/sugar/jquery">All jQuery Tutorials</a></li><li><a
href="http://davidwalsh.name/sugar/mootools">All MooTools Tutorials</a></li><li><a
href="http://davidwalsh.name/demos">All MooTools &#038; jQuery Demos</a></li></ul><p>Isn&#8217;t the JavaScript community great?  MooTools FTW!</p><p><a
href="http://davidwalsh.name/jquery-podcast">jQuery Podcast &#038; Essential jQuery and MooTools&nbsp;Snippets</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/jquery-podcast/feed</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>NetTuts:  Make Your MooTools Code Shorter, Faster, and&#160;Stronger</title><link>http://davidwalsh.name/mootools-faster</link> <comments>http://davidwalsh.name/mootools-faster#comments</comments> <pubDate>Thu, 18 Feb 2010 02:06:28 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[MooTools]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=4855</guid> <description><![CDATA[My latest NetTuts tutorial has hit! From the post: MooTools is one of the most flexible, modular, and well written JavaScript frameworks available. So many people use it but many of them don&#8217;t optimize their code. This post will provide you with fifteen simple tips for making your MooTools code shorter, faster, and stronger. Don&#8217;t [...]<p><a
href="http://davidwalsh.name/mootools-faster">NetTuts:  Make Your MooTools Code Shorter, Faster, and&nbsp;Stronger</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<a
href="http://net.tutsplus.com/tutorials/javascript-ajax/make-your-mootools-code-shorter-faster-and-stronger/" rel="nofollow"><img
src="http://davidwalsh.name/dw-content/nettuts-faster.jpg" alt="MooTools Faster" class="image" /></a><p>My latest NetTuts tutorial has hit!  From the post:</p><blockquote>MooTools is one of the most flexible,  modular, and well written JavaScript frameworks available.  So many  people use it but many of them don&#8217;t optimize their code.  This post  will provide you with fifteen simple tips for making your MooTools code  shorter, faster, and stronger.</blockquote><p><strong>Don&#8217;t miss it! <a
href="http://net.tutsplus.com/tutorials/javascript-ajax/make-your-mootools-code-shorter-faster-and-stronger/"rel="nofollow">http://net.tutsplus.com/tutorials/javascript-ajax/make-your-mootools-code-shorter-faster-and-stronger/</a></strong></p><p><a
href="http://davidwalsh.name/mootools-faster">NetTuts:  Make Your MooTools Code Shorter, Faster, and&nbsp;Stronger</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/mootools-faster/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Confessions of a Web Developer&#160;VI</title><link>http://davidwalsh.name/confessions-vi</link> <comments>http://davidwalsh.name/confessions-vi#comments</comments> <pubDate>Thu, 21 Jan 2010 14:11:24 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Theory / Ideas]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=4060</guid> <description><![CDATA[It’s been quite a while since I’ve gotten a few things off of my chest and since I’m always full of peeves and annoyances I thought it was time to unleash: Who loses in the browser wars? Developers. Designers. Users. I hope the browser development teams are having fun though&#8230; Learning jQuery made me love [...]<p><a
href="http://davidwalsh.name/confessions-vi">Confessions of a Web Developer&nbsp;VI</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<img
class="image" src="http://davidwalsh.name/dw-content/usher.jpg" alt="Confessions!" /><p>It’s been quite a while since I’ve gotten a few things off of my chest and since I’m always full of peeves and annoyances I thought it was time to unleash:</p><ul><li>Who loses in the browser wars?  Developers.  Designers.  Users.  I hope the browser development teams are having fun though&#8230;</li><li>Learning jQuery made me love MooTools even more.   Go figure.</li><li>For those of you that have loads of trouble with your JavaScript: <strong>maybe you need to start looking at your CSS?</strong></li><li>I&#8217;m completely <strong>humbled by jQuery&#8217;s drive and organization</strong>.  They simply know how to publicize, organize, and make their community happy.  I really hope to duplicate that effort with the MooTools team.</li><li>The government-issued warnings about not using IE aren&#8217;t something us developers should get our hopes up about.  It&#8217;s a cute side note but it will have<strong> very little impact on the numbers</strong>.</li><li>You&#8217;re crazy if you don&#8217;t put your quality MooTools plugins on the MooTools Forge.  You get quality feedback, website traffic, and bug reports. <strong>It&#8217;s the most valuable tool I&#8217;ve come upon in quite a while</strong>.</li><li>As one of the moderators for <a
href="http://scriptandstyle.com">Script &amp; Style</a>, I ask roundup creators to ask themselves this when they create each post:  what value does this post bring?  Some roundups are brilliant but others offer little value, like  &#8220;25 Best jQuery Lightboxes&#8221;. <strong>Ummmm&#8230;do any of them work?</strong> If so, why do you need to list 25?</li><li>For those of you who really love your job:  consider yourselves lucky.  Some days can be such a struggle for some of us.</li><li>I&#8217;m shocked that some rich company doesn&#8217;t come and <strong>hire the entire MooTools team</strong>.  A team of brilliant developers that are used to working together&#8230;.it almost seems like a no-brainer.</li><li>Remember <a
href="http://davidwalsh.name/chrome-frame">Chrome Frame</a>?  Me either&#8230;</li><li>The <strong>lack of accountability I see from some web vendors is criminal</strong>.  Taking weeks to make basic updates or charging outrageous sums to fix problems they created.  Absolutely shocking.</li><li>I&#8217;ve concluded the IE6 issue that bothers me the most is the lack of transparent PNG support.</li><li>I&#8217;d be lying if I said the World Cup isn&#8217;t a consideration when I think about going freelance.</li><li><strong>Media Temple has treated me very well</strong>;  both as a sponsor and a customer.</li><li>I&#8217;ve never been a huge fan of pseudo code.  I understand its purpose and will see it in extreme purposes but I prefer to dive in and work it out in my head.</li><li>I consider it a gift that I can bring my work home with me.  I consider it a curse that I can bring my work home with me.</li><li>I got <strong>asked by a client for a counter</strong> last week&#8230;.</li></ul><p>You know the drill.  This is where you flame me&#8230;</p><p><a
href="http://davidwalsh.name/confessions-vi">Confessions of a Web Developer&nbsp;VI</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/confessions-vi/feed</wfw:commentRss> <slash:comments>39</slash:comments> <series:name><![CDATA[Confessions of a Web Developer]]></series:name> </item> <item><title>2009 David Walsh Blog Year in&#160;Review</title><link>http://davidwalsh.name/2009-year-in-review</link> <comments>http://davidwalsh.name/2009-year-in-review#comments</comments> <pubDate>Thu, 24 Dec 2009 03:44:49 +0000</pubDate> <dc:creator>David Walsh</dc:creator> <category><![CDATA[Blog]]></category><guid
isPermaLink="false">http://davidwalsh.name/?p=4487</guid> <description><![CDATA[Another year has passed and I wanted to share my thoughts on all the posts and events that shaped my blog (and life) during 2009. Joining the MooTools&#160;Team My biggest achievement during 2009 was becoming a member of the MooTools Core development team. I had been writing MooTools tutorials since my blog had started and [...]<p><a
href="http://davidwalsh.name/2009-year-in-review">2009 David Walsh Blog Year in&nbsp;Review</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></description> <content:encoded><![CDATA[<p>Another year has passed and I wanted to share my thoughts on all the posts and events that shaped my blog (and life) during 2009.</p><h2>Joining the MooTools&nbsp;Team</h2><p>My biggest achievement during 2009 was becoming a member of the MooTools Core development team.  I had been writing MooTools tutorials since my blog had started and apparently that paid off as <a
href="http://clientcide.com" rel="nofollow">Aaron Newton</a> asked me to think about contributing to the project in January.  Shortly thereafter I was asked by <a
href="http://mootools.net" rel="nofollow">Valerio Proietti</a> to join the team.  It was a huge honor and still is.  I love my MooTools teammates and contributors as brothers and look forward to continued success with the team.  MooTools FTW.</p><h2>MooTools T-Shirts For The&nbsp;Masses</h2><p>I was also able to connect with Roddy Richards of the excellent <a
href="http://startupschwag.com" rel="nofollow">Startup Schwag</a> service to get MooTools shirts to all of their subscribers.  It was a huge success and I look forward to working more with Startup Schwag in the future.</p><h2>Pick Your Poison:  I Learned&nbsp;jQuery</h2><p>I took some time to learn jQuery this year and I&#8217;m glad I did.  I see it&#8217;s place in the JavaScript world and feel like I&#8217;m a better programmer for it. I look forward to seeing what John and his team put forth in January.  No doubt more good stuff &#8212; congrats to the jQuery team on their continued success.</p><h2>Coding&nbsp;Confidence</h2><p>I really impressed with some of the plugins I created this year.  Not that I thought I wasn&#8217;t good enough but like every good programmer, I always had that voice telling me &#8220;you&#8217;re missing something.&#8221;  This year I told that voice TO STFU and created a few plugins I always wanted to make: <a
href="http://davidwalsh.name/js/lazyload">LazyLoad</a>, <a
href="http://davidwalsh.name/js/contextmenu">ContextMenu</a>, <a
href="http://davidwalsh.name/js/quickboxes">Quickboxes</a>, and <a
href="http://davidwalsh.name/js/dotter">Dotter</a>.  Those are only a few of them &#8212; I really feel as though I stepped my game up in 2009.</p><h2>Tweet&nbsp;What?</h2><p>I joined the Twitter craze in 2009 and it opened up a new world to me.  Twitter&#8217;s been a great source of feedback, website traffic, and professional networking.  I have over 3,000 followers at this point.  I must be, in a word&#8230;.riveting.</p><h2>Networking and&nbsp;Relationships</h2><p>I was able to connect with some fellow developers closely this year.  I&#8217;ve had good personal and professional conversations with jQuery&#8217;s Rey Bango, MooTools Contributor Darren Waddell, Pete  Higgins, and many others. Great developers and great people.</p><h2>Blog Traffic&nbsp;Booming</h2><p>Blog traffic really exploded this year.  Traffic quadrupled and with that came more pressure to write good blog posts.  Hopefully I did OK.</p><h2>Most Popular Posts of&nbsp;2009</h2><ul><li><a
href="http://davidwalsh.name/7-mootools-plugins">7 MooTools Plugins You Should Use on Every Website</a></li><li><a
href="http://davidwalsh.name/scrollspy">Introducing MooTools ScrollSpy</a></li><li><a
href="http://davidwalsh.name/animated-ajax-jquery">Animated AJAX Record Deletion Using jQuery</a></li><li><a
href="http://davidwalsh.name/jquery-mootools">Using jQuery and MooTools Together</a></li><li><a
href="http://davidwalsh.name/web-service-php-mysql-xml-json">Create a Basic Web Service Using PHP, MySQL, XML, and JSON</a></li><li><a
href="http://davidwalsh.name/css-enhancements-user-experience">7 Quick CSS Enhancements for Better User Experience</a></li><li><a
href="http://davidwalsh.name/opacity-focus-jquery">Using Opacity to Show Focus with jQuery</a></li><li><a
href="http://davidwalsh.name/php-calendar">Build a Calendar Using PHP, XHTML, and CSS</a></li><li><a
href="http://davidwalsh.name/snook-navigation-mootools">Create Snook-Style Navigation Using MooTools</a></li><li><a
href="http://davidwalsh.name/jquery-homepage-mootools">Duplicate the jQuery Homepage Tooltips Using MooTools</a></li></ul><h2>Goals For&nbsp;2010</h2><ul><li>I hope to double traffic over the next year.  That seems like a lofty goal but I think I can do it.  If nothing else, I can just post nudie pics of Christina Ricci, right?</li><li>Have 30 quality MooTools plugins posted to the MooTools Forge.  I hope you do too.</li><li>Write 2-3 more posts for NetTuts.</li><li>Make you and everyone else know how f&#8217;ing awesome the MooTools JavaScript framework is.</li><li>Increase the quality of posts.  That sounds generic but it&#8217;s something I always aim to do.</li></ul><p>Thank you all for reading!  I hope to live up to expectation in 2010!</p><p><a
href="http://davidwalsh.name/2009-year-in-review">2009 David Walsh Blog Year in&nbsp;Review</a> is a post from: <a
href="http://davidwalsh.name">David Walsh :: Legendary scribbles about JavaScript, HTML5, AJAX, PHP, CSS, and ∞.</a></p> ]]></content:encoded> <wfw:commentRss>http://davidwalsh.name/2009-year-in-review/feed</wfw:commentRss> <slash:comments>14</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 1/68 queries in 0.069 seconds using disk: basic
Object Caching 1414/1526 objects using disk: basic

Served from: davidwalsh.name @ 2012-05-23 22:11:40 -->
