Asm.js Chess Battle

Watch a chess duel between ASM and vanilla JavaScript. Browsers with ASM support show crushing victories over the vanilla engine!


Microsoft matches two chess engines against one another!

They are identical in nearly every detail, including source code! The only difference is that one has a flag set to be interpreted as asm.js, a specialized and strict JavaScript subset that allows JavaScript engines to employ specialized compilation to dramatically speed up execution.

Each turn is limited to 200ms – because the asm.js-optimized engine has a significant performance advantage, it can evaluate more moves per turn and has a substantially higher likelihood of victory. You can adjust the turn length and other variables in the demo to see how they affect the outcome of the game.

Try it now at!

Breaking news: ES7 Object.observe is going away

An update on Object.observe


From Adam K on the ES-Discuss Mailing List:

Over three years ago, Rafael Weinstein, Erik Arvidsson, and I set out to design and implement what we believed to be the primitive underlying the data-binding system of MDV (“model-driven views”). We prototyped an implementation in a branch of V8, then got agreement from the V8 team to build a real version upstream, while pushing Object.observe (“O.o”) as a part of the upcoming ES7 standard and working with the Polymer team to build their data-binding system on top of O.o.

Three years later, the world has changed in a variety of ways. While other data-binding frameworks (such as Ember and Angular) showed interest, it was difficult to see how they could evolve their existing model to match that of O.o. Polymer rewrote from the ground up for its 1.0 release, and in that rebuilding did not utilize O.o. And React’s processing model, which tries to avoid the mutable state inherent in data-binding systems, has become quite popular on the web.

After much discussion with the parties involved, I plan to withdraw the Object.observe proposal from TC39 (where it currently sits at stage 2 in the ES spec process), and hope to remove support from V8 by the end of the year (the feature is used on 0.0169% of Chrome pageviews, according to For developers who have been experimenting with O.o and are seeking a transition path, consider using a polyfill such as or a wrapper library like


Disneyland UX IRL: 3 Insights

We sometimes catch ourselves applying UX in real life; don’t forget there’s a lot we can learn about web UX from real life


This “I’m doing it all the time” idea is how I feel about user experience (UX). I am literally moving through every moment looking at the user experience of every situation. Here are some examples from just this week:

Read the blog post at Sawaya Consulting, Inc.

Babel 6.0.0 Released

It’s not just a transpiler anymore. Babel 6 moves forward with a vision to power JavaScript developer tools.


Babel should be able to power minifiers, linters, formatters, syntax highlighters, code completion tools, type checkers, codemod tools, and every other tool to be using the same foundation to do their job better than ever before.

So today we’re releasing Babel 6.

This is the most significant update we’ve ever made and enables the project to truly become a platform for the community to build upon.

Read the blog post at