56,966 blogs · [ { "id": "01a07df3-f7a4-701e-8f1f-a54b2daea979", "title": "A horrifying `globalThis` polyfill in universal JavaScript", "url": "https://mathiasbynens.be/notes/globalthis", "published_at": "2019-04-15T14:40:02+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2de1b45f", "title": "JavaScript engine fundamentals: optimizing prototypes", "url": "https://mathiasbynens.be/notes/prototypes", "published_at": "2018-08-16T10:35:56+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2e236acc", "title": "JavaScript engine fundamentals: Shapes and Inline Caches", "url": "https://mathiasbynens.be/notes/shapes-ics", "published_at": "2018-06-06T12:57:44+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2e23bf77", "title": "Asynchronous stack traces: why `await` beats `Promise#then()`", "url": "https://mathiasbynens.be/notes/async-stack-traces", "published_at": "2017-09-12T15:29:55+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2ea125a6", "title": "ECMAScript regular expressions are getting better!", "url": "https://mathiasbynens.be/notes/es-regexp-proposals", "published_at": "2017-01-25T11:01:45+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2f8cd953", "title": "Unicode property escapes in JavaScript regular expressions", "url": "https://mathiasbynens.be/notes/es-unicode-property-escapes", "published_at": "2016-06-12T11:53:47+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b2ffc3f09", "title": "ES2015 `const` is not about immutability", "url": "https://mathiasbynens.be/notes/es6-const", "published_at": "2016-02-04T13:41:38+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b30d48cee", "title": "Valid JavaScript variable names in ES2015", "url": "https://mathiasbynens.be/notes/javascript-identifiers-es6", "published_at": "2015-03-03T19:07:48+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b316384a2", "title": "Unicode-aware regular expressions in ES2015", "url": "https://mathiasbynens.be/notes/es6-unicode-regex", "published_at": "2014-08-26T16:51:35+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b321a145a", "title": "Dear Google, please fix plain text emails in Gmail", "url": "https://mathiasbynens.be/notes/gmail-plain-text", "published_at": "2014-07-04T08:58:33+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b32754e14", "title": "PBKDF2+HMAC hash collisions explained", "url": "https://mathiasbynens.be/notes/pbkdf2-hmac", "published_at": "2014-03-21T08:47:42+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b333e02dc", "title": "JavaScript has a Unicode problem", "url": "https://mathiasbynens.be/notes/javascript-unicode", "published_at": "2013-10-18T00:39:57+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3416c0be", "title": "Processing Content Security Policy violation reports", "url": "https://mathiasbynens.be/notes/csp-reports", "published_at": "2013-09-19T13:18:34+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b345765b6", "title": "Hiding JSON-formatted data in the DOM with CSP enabled", "url": "https://mathiasbynens.be/notes/json-dom-csp", "published_at": "2013-08-26T16:32:01+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b353bd303", "title": "Loading JSON-formatted data with Ajax and `xhr.responseType='json'`", "url": "https://mathiasbynens.be/notes/xhr-responsetype-json", "published_at": "2013-07-23T23:14:15+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b357305dc", "title": "Reserved keywords in JavaScript", "url": "https://mathiasbynens.be/notes/reserved-keywords", "published_at": "2013-06-12T19:46:35+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b362abfb8", "title": "How to support full Unicode in MySQL databases", "url": "https://mathiasbynens.be/notes/mysql-utf8mb4", "published_at": "2012-07-28T15:16:16+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3638185f", "title": "How to speedrun Dropbox’s Dropquest 2012", "url": "https://mathiasbynens.be/notes/dropquest-2012", "published_at": "2012-05-14T16:21:29+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3705ea63", "title": "Unquoted font family names in CSS", "url": "https://mathiasbynens.be/notes/unquoted-font-family", "published_at": "2012-03-27T17:38:34+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b379cfd69", "title": "Unquoted property names / object keys in JavaScript", "url": "https://mathiasbynens.be/notes/javascript-properties", "published_at": "2012-02-29T21:17:54+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b38517023", "title": "Valid JavaScript variable names in ES5", "url": "https://mathiasbynens.be/notes/javascript-identifiers", "published_at": "2012-02-17T15:19:15+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b4202ef6f", "title": "CSS character escape sequences", "url": "https://mathiasbynens.be/notes/css-escapes", "published_at": "2012-01-24T11:57:08+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b389963b1", "title": "JavaScript’s internal character encoding: UCS-2 or UTF-16?", "url": "https://mathiasbynens.be/notes/javascript-encoding", "published_at": "2012-01-17T22:18:54+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b39de1b7a", "title": "The smallest possible valid (X)HTML documents", "url": "https://mathiasbynens.be/notes/minimal-html", "published_at": "2011-12-15T13:35:06+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b396fab52", "title": "JavaScript character escape sequences", "url": "https://mathiasbynens.be/notes/javascript-escapes", "published_at": "2011-11-29T15:24:30+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3b61120f", "title": "JavaScript `foo.prototype.bar` notation", "url": "https://mathiasbynens.be/notes/javascript-prototype-notation", "published_at": "2011-08-12T10:56:54+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3a7f1176", "title": "Ambiguous ampersands", "url": "https://mathiasbynens.be/notes/ambiguous-ampersands", "published_at": "2011-08-07T12:22:30+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3bb517ba", "title": "HTML element + attribute notation", "url": "https://mathiasbynens.be/notes/element-attribute-notation", "published_at": "2011-08-04T15:09:09+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3c71ad6f", "title": "How I detect and use `localStorage`: a simple JavaScript pattern", "url": "https://mathiasbynens.be/notes/localstorage-pattern", "published_at": "2011-07-29T15:09:40+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3d5cb9bb", "title": "Unquoted attribute values in HTML and CSS/JS selectors", "url": "https://mathiasbynens.be/notes/unquoted-attribute-values", "published_at": "2011-06-13T10:22:53+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3d158764", "title": "The end-tag open (ETAGO) delimiter", "url": "https://mathiasbynens.be/notes/etago", "published_at": "2011-06-10T10:45:14+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3e5c191d", "title": "Using the `oninput` event handler with `onkeyup`/`onkeydown` as its fallback", "url": "https://mathiasbynens.be/notes/oninput", "published_at": "2011-05-11T09:31:52+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3ee88455", "title": "Everything you always wanted to know about touch icons", "url": "https://mathiasbynens.be/notes/touch-icons", "published_at": "2011-03-02T08:09:06+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3dbc8e4e", "title": "In defense of CSS hacks — introducing “safe CSS hacks”", "url": "https://mathiasbynens.be/notes/safe-css-hacks", "published_at": "2011-02-21T13:54:00+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3f6b9459", "title": "AirPlay video support in iOS Safari — a bookmarklet", "url": "https://mathiasbynens.be/notes/ios-airplay-bookmarklet", "published_at": "2011-02-03T11:23:40+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b3fdb54df", "title": "Completing Dropbox’s Dropquest 2011 in 60 seconds", "url": "https://mathiasbynens.be/notes/dropquest-2011", "published_at": "2011-01-16T17:13:31+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b40694e30", "title": "Using CSS without HTML", "url": "https://mathiasbynens.be/notes/css-without-html", "published_at": "2010-12-14T15:13:38+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b408a10e4", "title": "How to create simple Mac apps from shell scripts", "url": "https://mathiasbynens.be/notes/shell-script-mac-apps", "published_at": "2010-11-12T12:51:46+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b41428f01", "title": "Using `setTimeout` to speed up `window.onload`", "url": "https://mathiasbynens.be/notes/settimeout-onload", "published_at": "2010-09-08T12:08:56+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b404f9a20", "title": "Bulletproof JavaScript benchmarks", "url": "https://mathiasbynens.be/notes/javascript-benchmarking", "published_at": "2010-08-02T11:15:24+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b4303831a", "title": "Thoughts on Safari Reader’s generated HTML", "url": "https://mathiasbynens.be/notes/safari-reader-html", "published_at": "2010-06-13T17:30:50+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b43d612c8", "title": "How to enable Safari Reader on your site?", "url": "https://mathiasbynens.be/notes/safari-reader", "published_at": "2010-06-10T10:03:25+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b42713427", "title": "The XML serialization of HTML5, aka ‘XHTML5’", "url": "https://mathiasbynens.be/notes/xhtml5", "published_at": "2010-06-07T10:24:25+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b426d4f22", "title": "The `id` attribute got more `class`y in HTML5", "url": "https://mathiasbynens.be/notes/html5-id-class", "published_at": "2010-06-06T17:38:38+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b44359a25", "title": "The three levels of HTML5 usage", "url": "https://mathiasbynens.be/notes/html5-levels", "published_at": "2010-05-28T11:45:27+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b453248fa", "title": "The HTML5 `document.head` DOM tree accessor", "url": "https://mathiasbynens.be/notes/document-head", "published_at": "2010-05-04T21:02:07+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b45c23ca5", "title": "Bulletproof HTML5 `` fallback using jQuery", "url": "https://mathiasbynens.be/notes/html5-details-jquery", "published_at": "2010-04-18T15:39:49+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b45eb0f5f", "title": "Displaying hidden elements like `` using CSS", "url": "https://mathiasbynens.be/notes/css-hidden-elements", "published_at": "2010-04-17T22:14:33+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b46894e0f", "title": "Inline `` and `` vs. external `.js` and `.css` — what’s the size threshold?", "url": "https://mathiasbynens.be/notes/inline-vs-separate-file", "published_at": "2010-04-10T20:44:59+00:00" }, { "id": "01a07df3-f7a4-701e-8f1f-a54b4589e456", "title": "Using Showdown/PageDown with and without jQuery", "url": "https://mathiasbynens.be/notes/showdown-javascript-jquery", "published_at": "2010-03-31T23:03:31+00:00" } ] posts Claim your blog
Back to Mathias Bynens
Blog · corpus.blog/blogs/mathiasbynens.be/posts

Mathias Bynens

mathiasbynens.be

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010