About Nicholas C. Zakas

Recent Posts

Yahoo vs. Google

I just came across this article and wanted to blog about it, since it highlights the differences between Yahoo! and Google in terms of engineering and development. This was something I experienced firsthand interviewing at both companies, and it’s nice to have an article to point people to when they ask me about the differences.... […]

Visual Studio Express Rocks!

A little while back, I blogged about Microsoft’s big steps forward recently, one of which being the release of Visual Studio Express, a scaled-down version of Visual Studio. I recently decided to download the Visual Web Developer part of Visual Studio Express and I’m absolutely ecstatic with it. I was able to get a simple... […]

Mainstream Ajax

I’m always interested to see what happens when technology starts spilling over into the mainstream press. More often than not, there are things are missed in the translation, and sometimes, there are just gross errors. The most recent falling into this category is the Technology & You column entitled, Look Out, Microsoft Office in the... […]

IE7 Beta 3

Looks like Internet Explorer 7′s latest beta is now available. Reading through the release notes I discovered this little gem: Multiple Auto Refresh Applications May Hang IE7 — If you leave open a number of applications that refresh themselves, the system may hang and require a hard reset. This issue is caused by a known... […]

Back Button/Onload Mess

Working on some code earlier this week, I discovered that Opera doesn’t fire the load event when navigating to a page using the back button. This means anything set to fire onload doesn’t get executed…so much for good coding practices. But this issue appears to intermittently happen on other browsers too, notably Firefox and Safari... […]

Use Null Comparisons Sparingly

Comparing values against null is a very popular thing to do in JavaScript, but I fear that typically it’s overused and used in situations when it’s completely inappropriate. Consider the following: if (sText != null) { var aParts = sText.split(","); } Suppose this is in a function that has sText as an argument. The intent... […]

Fun With Null And Undefined

I’ve been using the great JavaScriptLint tool recently to go over my code. One of the errors that it typically flags is comparison with null, 0, or an empty string, which it says should not be done with == or != because of type coercion. So I dutifully went along and changed all !=null to... […]

FireBug 0.4

The next generation of JavaScript debugging is upon us, and it’s name is FireBug. For the uninitiated, FireBug is an addon for Firefox that makes developing JavaScript easier. Besides a new JavaScript debugger with breakpoint support, it allows you to write debugging info to a console window, evaluate JavaScript in a command line (not unlike... […]

Global Variables Are Evil

I have been known to tell people in an enterprise environment to avoid global functions and variables in JavaScript at all costs. My reasons are purely from a maintenance point of view: it’s easier to document variables attached to classes or namespaces and it’s easier to debug (because you know where to find the variable/function... […]

Eureka Suite – The Next Generation

When last we left Eureka, it was a JavaScript console that interacted with Internet Explorer. As I thought more about it, it seemed that there could be ways to reuse the components of the original Eureka for other purposes. So, I proudly introduce the Eureka Suite, which will be an ever-growing group of JavaScript utilities.... […]