About Nicholas C. Zakas

Recent Posts

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... […]

JavaScript stack overflow error

From time to time, I’ve blogged about JavaScript browser limits and how they present themselves. I started out by discussing the long-running script dialog and then moved on to other performance issues. I thought I had covered most of the annoying and ill-explained JavaScript limits, but this past week I ran across another that is... […]

Cookies and security

In my last post, I discussed the basics of HTTP cookies and how they work. Missing from that discussion was the topic of security, mostly because it is a discussion in and of itself. Indeed, it’s hard to talk about cookies without talking about security implications since there are so many. Cookies would seem to... […]

HTTP cookies explained

HTTP cookies, most often just called “cookies,” have been around for a while but are still not very well understood. The first problem is a lot of misconceptions, ranging from cookies as spyware or viruses to just plain ignorance over how they work. The second problem is a lack of consistent interfaces to work with... […]

Book review: Nonviolent Communication

Those who know me or have been following this blog for a while know that I have a strong interest in communication and social interaction. I believe that poor communication is one of the largest sources of problems in the world, from interpersonal relationships to business. As such, I’m always looking for ways to tweak... […]