Recent Posts

Cross-domain Ajax with Cross-Origin Resource Sharing

A couple of years ago, web developers were banging their head against the first wall in Ajax: the same-origin policy. While we marveled at the giant step forward enabled by cross-browser support for the XMLHttpRequest object, we quickly bemoaned the fact that there was no way to make a request to a different domain from... […]

Understanding IE8′s site compatibility view list

Not too long ago, I wrote about Internet Explorer 8′s browser mode and document mode settings. The goal of the post was to familiarize everyone with the various modes that IE8 can run your document in. Since that time, I’ve had ample opportunity to play with the browser and figure out a bunch of quirks... […]

The basics of web advertisement tracking

There is little debate over how important advertising is to the web. Web ads have made Google a powerhouse and everyone else envious. Their Adsense product made ads ubiquitous on even the smallest of web sites and yet people still don’t have a good understanding of ads are tracked, and therefore, how they make money.... […]

Towards more secure client-side data storage

Last year, I started digging into the various client-side data storage alternatives that had popped up as a result of HTML5. These included sessionStorage, localStorage, and client-side databases. Though I was glad to see movement in this direction, I was unhappy with some of the results. I started my exploration around sessionStorage, and even though... […]

iPad web development tips

By now you, or someone you know, has an iPad. Of course, Apple has been preparing people on how to design their web sites for optimal use with the iPad (see Preparing your Web Content for iPad). Of course, the biggest thing is the lack of Flash support on the iPad. Apple is instead pushing... […]

CSUN Conference 2010

I’ve just returned back from the 2010 CSUN International Technology & Persons with Disabilities Conference in San Diego. This was the conference’s 25th year, which easily makes it the oldest conference I’ve ever attended or presented at. My colleague Victor Tsaran and I were presenting a talk entitled, The New Yahoo! Homepage: Challenging the Challenge... […]

Empty-string URLs in HTML – A followup

Late last year, after spending 10 days tracking down a horrific bug, I posted, Empty image src can destroy your site. The post laid out a problem present in almost all modern browsers regarding empty string URLs in HTML. Empty-string URLs look like this: <img src=""> <script src=""> <link rel="stylesheet" href=""> Depending on the browser,... […]

Custom events in JavaScript

Without a doubt, the most often-used paradigm in JavaScript is events. Events are a manifestation of the observer pattern, a well-defined computer science design pattern for loose coupling. Loose coupling is incredibly important for creating maintainable, stable codebases. I talk a lot about loose coupling and its importance in my talk, Scalable JavaScript Application Architecture... […]

Maintainable JavaScript: Don’t modify objects you don’t own

The first talk I gave after arriving at Yahoo! was entitled Maintainable JavaScript (video). As with most topics I write or speak about, I didn’t think it would be terribly controversial. The basis of the talk is that hacking around on your own and writing code in an enterprise environment are two different things. Web... […]

Answering Soshnikov’s quiz

JavaScript quizzes have sure been popular lately. The latest addition is one by Dmitry A. Soshnikov and is affectionately called, The quiz. I must admit, this quiz has some of the most mind-bending examples of JavaScript I’ve ever seen. What I like about his quiz is that each piece of code is more or less... […]

Copyright © 2004-2016 Nicholas C. Zakas. All Rights Reserved. All code examples on all pages, unless otherwise indicated, are BSD licensed. Blog Feed