Skip to content

Instantly share code, notes, and snippets.


Mathias Bynens mathiasbynens

View GitHub Profile

Twitter abuses all media file uploads, each type in its own way. If we want to upload a good looking animation loop from some low-color, high-detail generative art, we have to game their system's mechanisms.

  • don't upload a video file, they will re-encode it into absolute 💩

  • create a GIF, which they will auto-convert into a video file 😱

  • The frames of the GIF will be resized to an even-sized width using an extremely naive algorithm. Your GIF should be an even size (1000, 2000,

lhorie /
Last active Nov 11, 2019
What's the longest keyword sequence in Javascript?
ebidel / download_chrome41.js
Last active Apr 19, 2020
For when you need to test your site in Google Search (Chrome 41).
View download_chrome41.js
* Copyright 2018 Google Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* Unless required by applicable law or agreed to in writing, software
ebidel / feature_detect_es_modules.js
Last active Feb 3, 2021
Feature detect ES modules: both static import and dynamic import()
View feature_detect_es_modules.js
Complete feature detection for ES modules. Covers:
1. Static import: import * from './foo.js';
2. Dynamic import(): import('./foo.js').then(module => {...});
Thanks to @_gsathya, @kevincennis, @rauschma, @malyw for the help.
addyosmani / sites.txt
Last active Dec 13, 2018
Sites using Webpack in production (BigQuery)
View sites.txt


mspaint.exe does not properly verify Dib data from the clipboard. Therefore we can craft some Dib data in the clipboard which e.g. suggests a size of 0x100 by 0x100 pixels and contains not more than the Dib header itself. So the acutal image data rendered by mspaint.exe is its own heap data =)


Run the following code in PowerShell:

$bytes = 40,0,0,0,0,1,0,0,0,1,0,0,1,0,24,0,0,0,0,0,136,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
chicoxyzzy /
Last active Aug 14, 2020
Installing Node Nightlies via nvm

You can install Node Nightlies/RCs via nvm using NVM_NODEJS_ORG_MIRROR environment variable.

Install latest Node RC


Install latest Node.js Nightly

cramforce / on-idle.js
Created Dec 7, 2016
Wrapper around requestIdleCallback to wait for a minimum work budget
View on-idle.js
* Delays calling the given function until the browser is notifying us
* about a certain minimum budget or the timeout is reached.
* @param {!Window} win
* @param {number} startTime When we started waiting for idle.
* @param {number} minimumTimeRemaining Minimum number of millis idle
* budget for callback to fire.
* @param {number} timeout in millis for callback to fire.
* @param {function()} fn Callback.
andreibosco /
Last active Jul 9, 2021
disable creative cloud startup on mac
View ItemTemplate_1471916269862.json
"success": true,
"itemTemplates": [
"badgeSettings": {
"badgeRank": 4,
"targets": [