CINXE.COM
Posts in 2009 - Human Who Codes
<!DOCTYPE html> <html lang="en"> <head> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DF11Y9MFRM"></script> <script>(function(){const analytics_id = "G-DF11Y9MFRM"; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', analytics_id); })();</script> <!-- Global Metadata --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" type="image/png" href="/favicon.png"> <meta name="generator" content="Astro v2.6.5"> <meta name="ttw" content="cfanq3r"> <!-- Primary Meta Tags --> <title>Posts in 2009 - Human Who Codes</title> <meta name="title" content="Posts in 2009 - Human Who Codes"> <meta name="description" content="The Official Web Site of Nicholas C. Zakas"> <!-- Canonical URLs --> <link rel="canonical" href="https://humanwhocodes.com/blog/2009/"> <!-- Feeds --> <link rel="alternate" type="application/rss+xml" title="Human Who Codes - Blog" href="https://humanwhocodes.com/feeds/blog.xml"> <link rel="alternate" type="application/json" title="Human Who Codes - Blog" href="https://humanwhocodes.com/feeds/blog.json"> <link rel="alternate" type="application/rss+xml" title="Human Who Codes - Snippets" href="https://humanwhocodes.com/feeds/snippets.xml"> <link rel="alternate" type="application/json" title="Human Who Codes - Snippets" href="https://humanwhocodes.com/feeds/snippets.json"> <link rel="alternate" type="application/rss+xml" title="Human Who Codes - All" href="https://humanwhocodes.com/feeds/all.xml"> <link rel="alternate" type="application/json" title="Human Who Codes - All" href="https://humanwhocodes.com/feeds/all.json"> <!-- Open Graph / Facebook --> <meta property="og:type" content="website"> <meta property="og:url" content="https://humanwhocodes.com/blog/2009/"> <meta property="og:title" content="Posts in 2009 - Human Who Codes"> <meta property="og:description" content="The Official Web Site of Nicholas C. Zakas"> <meta property="og:image" content="https://humanwhocodes.com/favicon.png"> <!-- Twitter --> <meta property="twitter:site" content="@humanwhocodes"> <meta property="twitter:creator" content="@slicknet"> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:url" content="https://humanwhocodes.com/blog/2009/"> <meta property="twitter:title" content="Posts in 2009 - Human Who Codes"> <meta property="twitter:description" content="The Official Web Site of Nicholas C. Zakas"> <meta property="twitter:image" content="https://humanwhocodes.com/favicon.png"> <link rel="stylesheet" href="/_astro/_...page_.5b80b47b.css" /> <link rel="stylesheet" href="/_astro/about.7a05c7cf.css" /></head> <body itemscope itemtype="http://schema.org/WebPage"> <header class="highlight-background"> <nav role="navigation" class="page-width center center-text gutters collapsible-corners"> <h1 class="no-margin"><a href="/"><img src="/_astro/logo-full-web.fbbbde18.svg" alt="Human Who Codes" height="50"></a></h1> <ul class="inline-list inline-spaced-list center-text-on-small-screens overflow-x-scroll all-caps bold"> <li class="hide-offscreen"><a href="#content">Skip to content</a></li> <li><a href="/books/" class="dark-text no-underline">Books</a></li> <li><a href="/reading/" class="dark-text no-underline">Reading</a></li> <li><a href="/coaching/" class="dark-text no-underline">Coaching</a></li> <li><a href="/newsletter/" class="dark-text no-underline">Newsletter</a></li> <!-- <li><a href="/speaking/" class="dark-text no-underline">Speaking</a></li> --> <li><a href="/donate/" class="dark-text no-underline">Donate</a></li> <li><a href="/contact/" class="dark-text no-underline">Contact</a></li> </ul> </nav> </header> <hr> <div class="content-background"> <div id="page-grid" class="page-width page-grid center"> <main id="content" role="main" class="content-width gutters"> <h2 class="no-margin">Posts in 2009</h2> <div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/01/05/what-determines-that-a-script-is-long-running" class="astro-3IOAXW6H">What determines that a script is long-running?</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">January 5, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/01/13/speed-up-your-javascript-part-1" class="astro-3IOAXW6H">Speed up your JavaScript, Part 1</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">January 13, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/01/16/the-yui-3-revolution" class="astro-3IOAXW6H">The YUI 3 revolution</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">January 16, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/01/18/free-excerpt-for-professional-javascript-second-edition" class="astro-3IOAXW6H">Free excerpt from Professional JavaScript, 2nd Edition</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">January 18, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/01/20/speed-up-your-javascript-part-2" class="astro-3IOAXW6H">Speed up your JavaScript, Part 2</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">January 20, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/01/27/speed-up-your-javascript-part-3" class="astro-3IOAXW6H">Speed up your JavaScript, Part 3</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">January 27, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/03/speed-up-your-javascript-part-4" class="astro-3IOAXW6H">Speed up your JavaScript, Part 4</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 3, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/08/new-site-design" class="astro-3IOAXW6H">New site design</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 8, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/10/javascript-variable-performance" class="astro-3IOAXW6H">JavaScript variable performance</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 10, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/15/book-review-learning-dojo" class="astro-3IOAXW6H">Book review: Learning Dojo</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 15, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/17/mozilla-javascript-extension-nosuchmethod" class="astro-3IOAXW6H">Mozilla JavaScript extension: __noSuchMethod__</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 17, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/22/book-review-learning-ext-js" class="astro-3IOAXW6H">Book review: Learning Ext JS</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 22, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/02/24/mozilla-javascript-extension-count" class="astro-3IOAXW6H">Mozilla JavaScript Extension: __count__</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">February 24, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/01/book-review-the-art-of-war" class="astro-3IOAXW6H">Book review: The Art of War</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 1, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/03/the-art-of-throwing-javascript-errors" class="astro-3IOAXW6H">The art of throwing JavaScript errors</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 3, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/07/first-review-of-professional-javascript-2nd-edition" class="astro-3IOAXW6H">First review of Professional JavaScript, 2nd Edition</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 7, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/10/the-art-of-throwing-javascript-errors-part-2" class="astro-3IOAXW6H">The art of throwing JavaScript errors, Part 2</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 10, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/17/xpath-in-javascript-part-1" class="astro-3IOAXW6H">XPath in JavaScript, Part 1</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 17, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/24/xpath-in-javascript-part-2" class="astro-3IOAXW6H">XPath in JavaScript, Part 2</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 24, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/28/announcing-even-faster-web-sites" class="astro-3IOAXW6H">Announcing Even Faster Web Sites</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 28, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/03/31/whos-tweeting-about-you" class="astro-3IOAXW6H">Who's tweeting about you?</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">March 31, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/04/04/xpath-in-javascript-part-3" class="astro-3IOAXW6H">XPath in JavaScript, Part 3</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">April 4, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/04/13/computer-science-in-javascript-linked-list" class="astro-3IOAXW6H">Computer science in JavaScript: Linked list</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">April 13, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/04/21/computer-science-in-javascript-doubly-linked-lists" class="astro-3IOAXW6H">Computer science in JavaScript: Doubly-linked lists</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">April 21, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/04/28/javascript-error-handling-anti-pattern" class="astro-3IOAXW6H">JavaScript error handling anti-pattern</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">April 28, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/04/29/book-review-nonviolent-communication" class="astro-3IOAXW6H">Book review: Nonviolent Communication</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">April 29, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/05/05/http-cookies-explained" class="astro-3IOAXW6H">HTTP cookies explained</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">May 5, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/05/12/cookies-and-security" class="astro-3IOAXW6H">Cookies and security</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">May 12, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/05/19/javascript-stack-overflow-error" class="astro-3IOAXW6H">JavaScript stack overflow error</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">May 19, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/05/26/computer-science-in-javascript-bubble-sort" class="astro-3IOAXW6H">Computer science in JavaScript: Bubble sort</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">May 26, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/05/31/book-review-learning-jquery-13" class="astro-3IOAXW6H">Book review: Learning jQuery 1.3</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">May 31, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/06/02/detecting-if-the-user-is-idle-with-javascript-and-yui-3" class="astro-3IOAXW6H">Detecting if the user is idle with JavaScript and YUI 3</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">June 2, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/06/05/speed-up-your-javascript-the-talk" class="astro-3IOAXW6H">Speed up your JavaScript: The talk</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">June 5, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/06/09/computer-science-in-javascript-binary-search-tree-part-1" class="astro-3IOAXW6H">Computer science in JavaScript: Binary search tree, Part 1</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">June 9, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/06/16/computer-science-in-javascript-binary-search-tree-part-2" class="astro-3IOAXW6H">Computer science in JavaScript: Binary search tree, Part 2</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">June 16, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/06/23/loading-javascript-without-blocking" class="astro-3IOAXW6H">Loading JavaScript without blocking</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">June 23, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/06/30/event-delegation-in-javascript" class="astro-3IOAXW6H">Event delegation in JavaScript</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">June 30, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/07/07/javascript-minification-compression-and-performance" class="astro-3IOAXW6H">JavaScript minification/compression and performance</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">July 7, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/07/09/firefox-35firebug-xmlhttprequest-and-readystatechange-bug" class="astro-3IOAXW6H">Firefox 3.5/Firebug XMLHttpRequest and readystatechange bug</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">July 9, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/07/14/common-debugging-mistakes" class="astro-3IOAXW6H">Common debugging mistakes</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">July 14, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/07/21/introduction-to-sessionstorage" class="astro-3IOAXW6H">Introduction to sessionStorage</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">July 21, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/07/23/safari-doesnt-properly-display-one-bit-favicons" class="astro-3IOAXW6H">Safari doesn't properly display one-bit favicons</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">July 23, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/07/28/the-best-way-to-load-external-javascript" class="astro-3IOAXW6H">The best way to load external JavaScript</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">July 28, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/08/04/computer-science-in-javascript-credit-card-number-validation" class="astro-3IOAXW6H">Computer science in JavaScript: Credit card number validation</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">August 4, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/08/11/timed-array-processing-in-javascript" class="astro-3IOAXW6H">Timed array processing in JavaScript</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">August 11, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/08/18/experimenting-with-web-workers" class="astro-3IOAXW6H">Experimenting with web workers</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">August 18, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/08/21/what-makes-a-great-software-engineer" class="astro-3IOAXW6H">What makes a great software engineer?</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">August 21, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/08/25/web-workers-errors-and-debugging" class="astro-3IOAXW6H">Web workers: errors and debugging</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">August 25, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/09/01/computer-science-in-javascript-binary-search" class="astro-3IOAXW6H">Computer science in JavaScript: Binary search</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">September 1, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/09/08/computer-science-in-javascript-selection-sort" class="astro-3IOAXW6H">Computer science in JavaScript: Selection sort</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">September 8, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/09/15/iframes-onload-and-documentdomain" class="astro-3IOAXW6H">Iframes, onload, and document.domain</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">September 15, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/09/22/introducing-combiner-a-javascriptcss-concatenation-tool" class="astro-3IOAXW6H">Introducing Combiner, a JavaScript/CSS concatenation tool</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">September 22, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/09/24/moving-the-web-forward" class="astro-3IOAXW6H">Moving the Web forward</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">September 24, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/09/29/web-definitions-dom-ajax-and-more" class="astro-3IOAXW6H">Web definitions: DOM, Ajax, and more</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">September 29, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/10/06/domain-sharding-for-all" class="astro-3IOAXW6H">Domain sharding for all</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">October 6, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/10/13/fireunit-now-with-grouping" class="astro-3IOAXW6H">FireUnit: Now with grouping</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">October 13, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/10/20/javascript-sleuthing-buggy-native-json" class="astro-3IOAXW6H">JavaScript sleuthing: Buggy native JSON</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">October 20, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/10/25/book-review-jquery-ui-16" class="astro-3IOAXW6H">Book review: jQuery UI 1.6</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">October 25, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/10/27/data-uris-explained" class="astro-3IOAXW6H">Data URIs explained</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">October 27, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/10/28/yui-3-idletimer-now-available-on-yui-gallery" class="astro-3IOAXW6H">YUI 3 IdleTimer now available on YUI Gallery</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">October 28, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/11/03/automatic-data-uri-embedding-in-css-files" class="astro-3IOAXW6H">Automatic data URI embedding in CSS files</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">November 3, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/11/10/introduction-to-web-accessibility" class="astro-3IOAXW6H">Introduction to web accessibility</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">November 10, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/11/17/the-curious-case-of-javascript-unit-testing" class="astro-3IOAXW6H">The curious case of JavaScript unit testing</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">November 17, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/11/24/what-makes-a-good-browser-api" class="astro-3IOAXW6H">What makes a good browser API?</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">November 24, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/11/30/empty-image-src-can-destroy-your-site" class="astro-3IOAXW6H">Empty image src can destroy your site</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">November 30, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/12/08/computer-science-in-javascript-base64-encoding" class="astro-3IOAXW6H">Computer science in JavaScript: Base64 encoding</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">December 8, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/12/15/writing-maintainable-code" class="astro-3IOAXW6H">Writing maintainable code</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">December 15, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/12/22/protect-ie-from-empty-img-src" class="astro-3IOAXW6H">Protect IE from empty img src</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">December 22, 2009</i> </p> </div> </div><div class="post-blurb margin-bottom astro-3IOAXW6H"> <div class="post-head astro-3IOAXW6H"> <h3 class="no-margin-bottom astro-3IOAXW6H"><a href="/blog/2009/12/29/feature-detection-is-not-browser-detection" class="astro-3IOAXW6H">Feature detection is not browser detection</a></h3> <p class="byline astro-3IOAXW6H"><i class="astro-3IOAXW6H">December 29, 2009</i> </p> </div> </div> </main> <div id="sidebar" class="sidebar-width sidebar-background gutters hide-on-small-screens"> <h1 class="hide-offscreen">Additional Information</h1> <script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CKYIEK3Y&placement=humanwhocodescom" id="_carbonads_js"></script> <h2 class="smaller-font">My Books</h2> <ul class="inline-list inline-image-list"> <li><a href="https://www.lulu.com/en/us/shop/nicholas-c-zakas/understanding-javascript-promises/paperback/product-2yvnqn.html"><img src="/images/books/promises.png" alt="Understanding JavaScript Promises" width="100"></a></li><li><a href="https://geni.us/hwc-es6-book"><img src="/images/books/understandinges6ns.png" alt="Understanding ECMAScript 6" width="100"></a></li><li><a href="https://geni.us/hwc-oopjs-book"><img src="/images/books/oopinjsns.png" alt="The Principles of Object-Oriented JavaScript" width="100"></a></li><li><a href="https://geni.us/hwc-mjs-book"><img src="/images/books/maintainablejs.png" alt="Maintainable JavaScript" width="100"></a></li> </ul> <h2 class="smaller-font">Recent Snippets</h2> <ul> <li><a href="/snippets/2024/03/publishing-to-jsr-release-please/">Publishing to JSR using release-please</a></li><li><a href="/snippets/2023/11/how-to-setup-known-hosts-jenkins-pipeline/">How to setup a known_hosts file for a Jenkins pipeline job</a></li><li><a href="/snippets/2023/01/mimicking-dirname-filename-nodejs-esm/">Mimicking __dirname and __filename in ESM modules in Node.js</a></li><li><a href="/snippets/2022/02/eleventy-npm-modules-client/">How to add npm packages for client-side use in Eleventy</a></li><li><a href="/snippets/2021/03/create-user-linux-ssh-key/">Creating a new user with an SSH key on Linux</a></li><li><a href="/snippets/2021/02/how-to-setup-deploy-web-application-dokku/">How to setup and deploy a web application on Dokku</a></li><li><a href="/snippets/2021/02/how-to-regain-jenkins-web-access-after-lockout/">How to regain Jenkins web access after being locked out</a></li><li><a href="/snippets/2020/10/create-typescript-declarations-from-javascript-jsdoc/">Create TypeScript declarations from JavaScript and JSDoc</a></li><li><a href="/snippets/2020/10/read-environment-variables-deno/">How to read environment variables in Deno using JavaScript</a></li><li><a href="/snippets/2020/08/validate-github-webhook-signature-nodejs/">How to validate the signature of a GitHub webhook using Node.js</a></li> </ul> <h2 class="smaller-font">Archives (20 Years)</h2> <ul> <li><a href="/blog/2024/">2024</a></li><li><a href="/blog/2023/">2023</a></li><li><a href="/blog/2022/">2022</a></li><li><a href="/blog/2021/">2021</a></li><li><a href="/blog/2020/">2020</a></li><li><a href="/blog/2019/">2019</a></li><li><a href="/blog/2018/">2018</a></li><li><a href="/blog/2016/">2016</a></li><li><a href="/blog/2015/">2015</a></li><li><a href="/blog/2014/">2014</a></li><li><a href="/blog/2013/">2013</a></li><li><a href="/blog/2012/">2012</a></li><li><a href="/blog/2011/">2011</a></li><li><a href="/blog/2010/">2010</a></li><li><a href="/blog/2009/">2009</a></li><li><a href="/blog/2008/">2008</a></li><li><a href="/blog/2007/">2007</a></li><li><a href="/blog/2006/">2006</a></li><li><a href="/blog/2005/">2005</a></li><li><a href="/blog/2004/">2004</a></li> </ul> </div> </div> </div> <hr> <footer class="inverted-colors"> <div class="page-width center"> <div class="page-grid orange-border-bottom"> <div class="margin-top content-width gutters"> <div class="collapsible-media-box"> <div class="media-box-media center-text"> <img src="/_astro/me-150x150.0969500a.jpg" alt="Photo of Nicholas C. Zakas" width="150" class="circle-image"> </div> <div> <h2 class="no-margin-top center-text-on-mobile">About the Human</h2> <p>Hi, I'm Nicholas C. Zakas, an independent software developer living in Mountain View, California. I've been a software architect at companies like Yahoo and Box, as well as an author and speaker. I created the <a href="https://eslint.org">ESLint</a> open source project and wrote several <a href="https://humanwhocodes.com/books">books</a>. At the moment, I'm <a href="https://humanwhocodes.com/blog/2014/04/02/i-have-lyme-disease/">recovering from Lyme disease</a> and haven't been able to leave my home much in the past five years. (<a href="https://medium.com/lyme-disease-warrior/progress-report-october-2018-fc38d4769e65">Health update</a>, <a rel="me" href="/about">More about me</a>)</p> </div> </div> </div> <div class="margin-top sidebar-width hide-on-small-screens"> <h2 class="no-margin-top">On the Web</h2> <ul> <li><a href="https://fosstodon.org/@nzakas" rel="me">Mastodon</a></li> <li><a href="https://www.twitter.com/slicknet/">Twitter</a></li> <li><a href="https://www.github.com/nzakas/">GitHub</a></li> <li><a href="https://www.instagram.com/humanwhocodes">Instagram</a></li> <li><a href="https://www.youtube.com/channel/UC95Pwj8oPPZN2mJCEtMqOsg">YouTube</a></li> <li><a href="https://www.linkedin.com/in/nzakas">LinkedIn</a></li> <li><a href="https://www.slideshare.net/nzakas/presentations/">Slideshare</a></li> <li><a href="https://amazon.com/author/nzakas/">Amazon</a></li> </ul> </div> </div> <p class="center-text"><a href="/policies/privacy">Privacy Policy</a> | <a href="/policies/terms">Terms of Service</a></p> <p class="center-text">Copyright © 2020-2024 Human Who Codes LLC. Content licensed under a <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/" rel="nofollow noopener">Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License</a>.<br>Some links may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. As an Amazon Associate we earn from qualifying purchases. <a href="/feeds/blog.xml">Blog Feed</a></p> </div> </footer> </body></html>