Instantly share code, notes, and snippets.

View .eslintrc.json
"env": {
"browser": true,
"es6": true
"extends": "eslint:recommended",
"parserOptions": {
"ecmaFeatures": {
"jsx": true

Keybase proof

I hereby claim:

  • I am ianchanning on github.
  • I am ianchanning ( on keybase.
  • I have a public key ASB0bBCnW44BV-yA8TYmgkCqhxaDA-WYBGwTSBp9kkWGnQo

To claim this, I am signing this object:


tl;dr Here's a really short explanation for JavaScript, as in just the flatmap part.

map is pretty well understood in JavaScript (and I'm assuming you understand it).

So you 'just' need to make the leap to flatmap. Which is mapping something and flattening the result.

Flattening a JavaScript array is concatenating a 2D array into an array.

Longer Python example

Another attempt at explaining monads, using just Python lists and the map function. I fully accept this isn't a full explanation, but I hope it gets at the core concepts.

View datatables.json
"data": [
"name": "Tiger Nixon",
"position": "System Architect",
"salary": "$320,800",
"start_date": "2011/04/25",
"office": "Edinburgh",
"extn": "5421"
View .vimrc
" Maintainer:
" Amir Salihefendic
" -
" Version:
" 5.0 - 29/05/12 15:43:36
" Blog_post:

Translating Sublime Text into Vim


Coming from a Windows world getting into Vim, to me is almost exactly like the struggles I had learning French or Dutch. I spent 10 years learning French growing up and I can't speak a proper sentence. I then moved from England to the Dutch speaking part of Belgium (Flanders) and I learnt to speak Dutch to a conversational level within 2 years.

If you're going to learn Vim you need to immerse yourself in it. I suspect the majority of Vim users only ever use it to make minor file modifications via SSH. That's what I did anyway.

I've used lots of editors in Windows but the one I prefer now is [Sublime Text][2] (ST). However ST has almost all the exact same commands as other editors, with the one major improvement which is Ctrl+P, we'll come to that later. ST is free to use with a popup once in a while, its a great tool, you should buy a licence.

View casper-google-disco-v2.js
var links = [];
var casper = require('casper').create();
function getLinks() {
var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a');
return, function(e) {
return '' + e.getAttribute('href');
View wp-bcrypt.php
* Plugin Name: wp-bcrypt
* Plugin URI:
* Description: wp-bcrypt switches WordPress's password hashes from MD5 to bcrypt, making it harder for them to be brute-forced if they are leaked.
* Author: dxw
* Author URI:
* Version: 1.0.2
* Licence: GPL2
View xkcd_pw.js
// Copyright (c) 2011, Jeff Preshing
// All rights reserved.
// Some parts based on, copyright 2003 David Finch.
// Released under the Modified BSD License:
// Redistribution and use in source and binary forms, with or without