Mathias Bynens

About me

Hi there! I’m Mathias, a web standards enthusiast from Belgium. HTML, CSS, JavaScript, Unicode, performance, and security get me excited. You can follow me on Twitter and GitHub.

Latest notes

Valid JavaScript variable names in ECMAScript 6

· tagged with JavaScript, Unicode

ES6 updates the grammar for identifiers. This affects a number of things, but most importantly, identifiers can be used as variable names, and identifier names are valid unquoted property names. This post describes the observable changes compared to the old ES5 behavior.

Continue reading “Valid JavaScript variable names in ECMAScript 6”…

Unicode-aware regular expressions in ECMAScript 6

· tagged with HTML, JavaScript, Unicode

This article explains the effects of the new u flag for regular expressions in ES6.

Continue reading “Unicode-aware regular expressions in ECMAScript 6”…

Dear Google, please fix plain text emails in Gmail

· tagged with Email

By default, composing a new email in Gmail results in an HTML email under the hood. It’s possible to opt-out of that and use plain text email instead, but that leads to some problems.

Continue reading “Dear Google, please fix plain text emails in Gmail”…

PBKDF2+HMAC hash collisions explained

· tagged with Bash, cryptography, JavaScript, Python

It’s trivial to find colliding passwords when hashing with PBKDF2-HMAC-anything. This post explains why that is.

Continue reading “PBKDF2+HMAC hash collisions explained”…

JavaScript has a Unicode problem

· tagged with JavaScript, Unicode

The way JavaScript handles Unicode is… surprising, to say the least. This write-up explains the pain points associated with Unicode in JavaScript, provides solutions for common problems, and explains how the ECMAScript 6 standard improves the situation.

Continue reading “JavaScript has a Unicode problem”…

Older notes

Browse the archive.