About Nicholas C. Zakas

Recent Posts

Firefox 3.5/Firebug XMLHttpRequest and readystatechange bug

Last Thursday I was debugging an issue at work that was reported by two colleagues using Firefox 3.5. Initially, they had neglected to mention their fast upgrade to the latest Firefox and I spent some time fruitlessly trying to reproduce the issue. The complaint was that our page wasn’t displaying an Ajax response even though... […]

JavaScript minification/compression and performance

Last week, I came across a blog post by Matt Snider of Mint.com in which he was talking about ways to improve the output of YUI Compressor on JavaScript code. This led me to dig up a presentation I gave last year at Yahoo!’s internal Front End Engineering Summit entitled Extreme JavaScript Compression with YUI... […]

Event delegation in JavaScript

Last week, I spoke at and attended the Velocity web performance conference in San Jose. It was a lot of fun and I learned a lot in the other sessions I sat in on. During one session, Steve Souders announced to everyone that I had covered event delegation in my chapter from his new book,... […]

Loading JavaScript without blocking

I was reading Steve Souder’s blog post on loading scripts without blocking in which he notes that dynamically creating a <script> element and assigning its src attribute leads to a download that doesn’t block other downloads or page processes. His post is missing an example of how to do this, so I thought I’d pick... […]

Computer science in JavaScript: Binary search tree, Part 2

In my previous post, I walked through the creation of a simple binary search tree in JavaScript. That post discussed adding nodes into the tree and traversing the tree to location and extra information. The one major piece missing to the discussion was removing of nodes from a binary search tree. Removing nodes from a... […]

Computer science in JavaScript: Binary search tree, Part 1

Perhaps one of the most frequently used and discussed data structures in computer science classes is the binary search tree. This is typically the first data structure introduced that has a non-linear insertion algorithm. A binary search tree is similiar to a doubly linked list in that each node contains some data as well as... […]

Speed up your JavaScript: The talk

Steve Souders recently invited me to participate in his Web Exponents speaker series at Google. Periodically, people come in to give hour-long tech talks about various topics. Since I had most recently worked with Steve on his new book, Even Faster Web Sites. I wrote a chapter on JavaScript performance, and Steve asked if I... […]

Detecting if the user is idle with JavaScript and YUI 3

Web developers have been interested in whether or not a user is idle since the Ajax explosion hit. With the introduction of more dynamic, highly interactive web interfaces came the desire to know if the user was actually doing anything at any point in time. Thus, the quest for determining if the user is idle... […]

Book review: Learning jQuery 1.3

Apparently I didn’t scare away the good folks at Packt Publishing with my last couple of book reviews, so they asked me to take a look at a couple more. Both of the books are on jQuery and the first that I picked up was Learning jQuery 1.3 (on Amazon). Once again, I considered myself... […]

Computer science in JavaScript: Bubble sort

Sorting algorithms are one of the cornerstones of computer science education. The purpose isn’t to teach you a dozens different ways to sort data when you’ll never need to implement them by hand in your professional life. Instead, they are used as a tool to teach algorithm theory, to show you that there are multiple... […]