About Nicholas C. Zakas

Recent Posts

Security vs. usability

It seems like everyone is trying to make their web site more secure these days. The “image seal” has become more popular (asking you to select an image that displays on the login page so that you know it’s the actual web site and not a phishing site), now being used on several high-traffic sites... […]

Spam insights

I’m always complaining about spam, having changed email addresses many times to try to escape, but I’ve never really understood the economics of spam all that well. Today I saw this great post explaining a little bit about why I get nonsensical emails seemingly selling nothing all the time: they’re poisoning the spam filters! Personally,... […]

Feature detection != browser detection

I’m not sure what’s in the water, but lately I’ve been coming across a lot of confusion regarding the difference between feature detection and browser detection. There are a lot of people who don’t like using the user-agent string to determine the browser (I, of course, am a big proponent of it), favoring instead the... […]

Opacity in IE6: alpha or PNG?

I was fighting with a problem today that I thought I’d share. I’m using some semi-transparent div elements to create certain effects on a page and got pinged with a memory bug. After some tests, I discovered that the source of the memory issue was the use of IE6′s alpha filter: .shade { filter: alpha(opacity=70);... […]

Interesting JavaScript string capability

Reading through ECMA-262 and taking a look at Rhino‘s source code, I came across something interesting. Apparently, it is possible to have a JavaScript string begin on one line of code and end on another line of code. For example: var s /*:String*/ = "Test \ multi \ line."; alert(s); This is perfectly valid; the... […]

The JavaScript download gotcha

Ajax solutions typically take into account that HTTP 1.1-compliant servers will allow only two connections to a single client at the same time. Or rather, two connections per domain name. There has been some mention of workaround techniques to speed up communication. Using different domain names can allow up to six simultaneous connections, which is... […]

Standards with sanity

A lot has been made out of the importance of staying within web standards and making sure that your code is semantically correct. The biggest thing that so-called experts talk about is the avoidance of using tables. Really, they mean not to use tables for layout. The argument is that the markup should be able... […]

Professional Ajax – Amazon’s #8 best tech book of 2006!

Just got pinged by my editor Jim about this: Top 10 Editors’ Picks: Computers & Internet. If you scroll down to #8, you’ll see Professional Ajax! Words can’t describe how excited I am about this. To be on this list is amazing, and the fact that it’s the only Ajax book on the list makes... […]

Browser detection versus feature detection

One of the more controversial chapters in my first book was the chapter on browser detection. I got flaming emails, blog comments, and reviews about the user-agent string detecting method, telling me that I was falsely promoting an outdated methodology for dealing with browser differences. Feature detection is the ideal, they all said, and that... […]

Minimizing closure usage

Been meaning to blog about this for a while, but just kept forgetting. Over at the Atlas and More Blog, Bertrand Le Roy has posted two articles on converting object definitions from using closures to using prototypes. Though the postings are mostly about using the latest version of Atlas, there is some good discussion of... […]