About Nicholas C. Zakas

Recent Posts

CSS Lint v0.7.0 released

I’m happy to announce that version 0.7.0 of CSS Lint is now available on the web site, via GitHub, and through npm. This release focused very heavily on two things: documentation and stabilization. For documentation, we’ve moved everything over onto a wiki, which allows us to quickly and easily update the documentation and more as... […]

Simple, maintainable templating with JavaScript

One of my principles of Maintainable JavaScript is to keep HTML out of JavaScript. The idea behind this principle is that all markup should be located in one place. It’s much easier to debug markup issues when you have only one place to check. I always cringe when I see code such as this: function... […]

When web standards fail us

From time to time, web developers rise up and grumble more loudly about the failings of the W3C and ECMA for the ways they choose to evolve (or not evolve) the technologies of the web. We talk about design by committee as a failure, browser vendors should just implement and not worry about it…unless it’s... […]

Script yielding with setImmediate

Those who have attended my talks on JavaScript performance are familiar with my propensity for using setTimeout() to break up long scripts into smaller chunks. When using setTimeout(), you’re changing the time at which certain code is executed, effectively yielding the UI thread to perform the already-queued tasks. For example, you can instruct some code... […]

Experimenting with ECMAScript 6 proxies

ECMAScript 6, aka “Harmony”, introduces a new type of object called a proxy. Proxies are objects whose default behavior in common situations can be controlled, eliminated, or otherwise changed. This includes definition what happens when the object is used in a for-in look, when its properties are used with delete, and so on. The behavior... […]

CSS Lint v0.6.0 now available

Following quickly on the heels of the v0.5.0 release, here comes the v0.6.0 release. This release saw a lot of activity around bug fixing, refactoring to make things easier, and documentation. Some of the highlights of this release: New Rule: Mike Hopley suggested we add a rule that could suggest shorthand properties when all dimensions... […]

CSS Lint updated to 0.5.0

After a slight delay to figure out some UI changes, the 0.5.0 release of CSS Lint has now made it to csslint.net. As with previous releases, this release saw a mixture of bug fixes and new features. The biggest change you’ll notice on the web site is that rules are now categorized based on how... […]

Introduction to the Page Visibility API

A major pain point for web developers is knowing when users are actually interacting with the page. If a page is minimized or hidden behind another tab, it may not make sense to continue functionality such as polling the server for updates or performing an animation. The Page Visibility API aims to give developers information... […]

Quick and dirty: Spinning up a new EC2 web server in five minutes

One of the things I’ve become more adept at in my new life is dealing with the dizzying array of Amazon web services. The two parts of the Amazon kingdom that I’ve really enjoyed using are S3, their RESTful redundant storage solution, and EC2, the on-demand virtual machine system. Recently, I was in a situation... […]

Book review: Eloquent JavaScript

I’d heard a lot about Eloquent JavaScript by Marijn Haverbeke over the past few months, and so I was greatly interested when asked if I would do a book review. The first thing that struck me about the book was completely visual: the book doesn’t look scary or overwhelming at all. Indeed, everything about the... […]