Why do some JavaScript methods have such long names?

Allen Wirfs-Brock (the project editor of the ECMAScript 5 specification) recently mentioned the thought process behind method names such as Object.getOwnPropertyNames():


es6-shim – ECMAScript 6 functionality on ECMAScript 5

Update 2012-03-13: Added a section on installation.

Paul Miller’s es6-shim gives you functionality that will be in ECMAScript 6 (code-named ECMAScript.next), on ECMAScript 5 engines. It was initially based on a project of mine, but adds much new functionality, Node.js compatibility, and (not least) tests.


Subclassing builtins in ECMAScript 5

JavaScript’s built-in constructors are difficult to subclass. This post explains why and presents solutions.


What is the difference between a shim and a polyfill?

In the JavaScript world, one frequently encounters the words shim and polyfill. What are those things and what is the difference between them?


Duolingo: using free online language lessons to translate texts

Duolingo achieves an impressive win-win: Customers get to learn a foreign language for free while helping the company translate texts.


Fake operator overloading in JavaScript

Update 2012-01-29: The post “What is {} + {} in JavaScript?” looks at the addition operator in more detail.

This post describes how to do a limited version of operator overloading in JavaScript. With the technique described here, you’ll be able to implement a type StringBuilder that can be used as follows:

    var sb = new StringBuilder();
    sb << add("abc") << add("def");
And a type Point that can be used as follows:
    var p = new Point();
    p._ = new Point(1, 2) + new Point(3, 4) + new Point(5, 6);
    p._ = new Point(1, 2) * new Point(3, 4) * new Point(5, 6);


Write your shell scripts in JavaScript, via Node.js

Update 2012-08-21: All posts about shell scripting via Node.js have the label “jsshell”.

Do you know JavaScript and want to write a shell script? Then you should give Node.js a try. It is easy to install and shell scripts are a great way to get to know it. This post explains the basics.


Firefox Electrolysis project put on hold

Update 2012-02-02: Servo: a vision for the future of Firefox

One of Chrome’s greatest features is that it has one process per tab. In May 2009, Mozilla announced the Electrolysis project whose goal is to give Firefox the same feature. Mozilla now says that they are putting the project on hold, because it was too ambitious.

What’s new in CSS 4 selectors

The following are the highlights of what is new in CSS 4 selectors:


Try out a webOS app online

You can try out Philippe Charrière’s webOS app “GitHub Connect” online.

HP will open-source webOS and produce new hardware for it

Joshua Topolsky has interviewed HP’s Meg Whitman and Marc Andreessen for The Verge. Highlights:

Basic income – an idea to bring stability to our economies

Update 2012-01-06: There is an initiative for a Europe-wide basic income. If the case I make below convinces you then consider supporting it.

This post outlines some of the challenges that our current economies are faced with and explains how a basic income can be a solution.


The #newtwitter user interface

Twitter today announced a new user interface for its service. This post describes its structure.

Movie titles and lines in JavaScript

Tweets marked with the hashtag #MovieLinesInCode express a movie line or title in programming language code. This post gives some examples in JavaScript; most of them are paraphrased from the blog post “Best of #MovieLinesInCode” by Arialdo Martini [link via Michael Haszprunar].


The art of giving and taking criticism

Update 2011-12-09: section “A hierarchy of disagreeing”

This post provides a few rules that help with giving and taking criticism.


Handling footnotes and references in HTML

This post examines what options one has for handling footnotes and references in HTML. It then presents a library that helps you with handling them.


When is it OK to use == in JavaScript?

Update 2011-12-07: Added case 5 and a conclusion.

Short answer: never. This post looks at five possible exemptions from the rule to always use === and explains why they aren’t.