About Nicholas C. Zakas

Recent Posts

You can’t create a button

One of the most important aspects of accessibility is managing focus and user interaction. By default, all links and form controls can get focus. That allows you to use the tab key to navigate between them and, when one of the elements has focus, activate it by pressing the enter key. This paradigm works amazingly... […]

What the NFL can teach us about diversity in technology

One of the issues that kept popping up in 2012 was that of diversity in technology. A lot of the discussion was centered around the Brit Ruby conference that was cancelled1. The conference had posted a lineup of all white male speakers and this didn’t go unnoticed by the tech community. This was followed up... […]

Fixing “Skip to content” links

**Update (15-Jan-2013): ** After a few tweets about this and some re-testing, it appears the issue discussed in this post only affects Internet Explorer and Chrome. The post has been updated to reflect this. If you’ve been doing web development for any amount of time, you have probably come across the recommendation to create a... […]

Advice for new and aspiring technical speakers

In a previous post I described the Front End Summit New Speaker Program that I organized while I was still at Yahoo. Since that time, I’ve received several e-mails and questions from people about how to get started speaking without the benefit of such a program. Obviously, it’s possible to become a really good speaker... […]

Being right doesn’t matter

Software engineers are an interesting bunch. On the plus side, many are willing to work for free on projects that they believe are worthwhile. I’ve found software engineers to be incredibly charitable not only in donating their time and knowledge but also in donating their money. On the other side, software engineers tend to be... […]

Now available: Principles of Object-Oriented Programming in JavaScript (beta)

Ever since I put together my Principles of Object-Oriented Programming in JavaScript class, I’ve been wanting to put together a resource that people who took the class could take home with them. I go through a lot of topics in the class and I didn’t think the slides would be enough to help people remember... […]

Are your mixins ECMAScript 5 compatible?

I was working with a client recently on a project that could make full use of ECMAScript 5 when I came across an interesting problem. The issue stemmed from the use of mixins, a very common pattern in JavaScript where one object is assigned properties (including methods) from another. Most mixin functions look something like... […]

Adventures in pointerless computing

A few people know that I’ve been battling a repetitive stress injury (RSI) in both of my elbows. I’m hit on all sides of the elbow: tennis elbow, golfer’s elbow, and triceps tendinitis. I’m sure the stress has been building in these tendons for most of my career, but they really got bad last year... […]

Computer science in JavaScript: Quicksort

Most discussions about sorting algorithms tend to end up discussing quicksort because of its speed. Formal computer science programs also tend to cover quicksort1 last because of its excellent average complexity of O(n log n) and relative performance improvement over other, less efficient sorting algorithms such as bubble sort and insertion sort for large data... […]

The Front End Summit new speaker program

One of the last things I did before leaving Yahoo! was to help organize the Front End Summit along with James Long and David Calhoun. This is (was?) a yearly internal front end conference that brought together engineers from all over the world. While not the same as planning a public conference, we faced many... […]