Skip to content

Instantly share code, notes, and snippets.


Ian Channing ianchanning

View GitHub Profile
ianchanning / output.txt
Created Oct 18, 2020
coc.nvim debug log
View output.txt
This file has been truncated, but you can view the full file.
11:54:54 DEBUG [transport] - request to vim: -1,nvim_get_api_info,[]
11:54:54 DEBUG [connection] - send to vim: [
ianchanning / output.txt
Created Sep 20, 2020
CocCommand showWorkspace output
View output.txt
[Trace - 12:31:46] Sending request 'initialize - (0)'.
Params: {
"processId": 26375,
"rootPath": "/home/channi16/imec/innovatrix",
"rootUri": "file:///home/channi16/imec/innovatrix",
"capabilities": {
"workspace": {
"applyEdit": true,
"workspaceEdit": {
"documentChanges": true,
ianchanning / .eslintrc.json
Last active Nov 25, 2018
A Neural Network in JavaScript. This now has it's own Github repo:
View .eslintrc.json
"env": {
"browser": true,
"es6": true
"extends": "eslint:recommended",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
ianchanning /
Last active Jun 15, 2018
Self-driving cars should replace amateur instead of professional drivers

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:

ianchanning /
Last active Mar 12, 2018
Yet another monad explanation

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"
ianchanning / .vimrc
Last active Apr 24, 2017
.vimrc hacks
View .vimrc
" Maintainer:
" Amir Salihefendic
" -
" Version:
" 5.0 - 29/05/12 15:43:36
" Blog_post:
ianchanning /
Last active Apr 23, 2017
Translating Sublime Text into Vim

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.

ianchanning / casper-google-disco-v2.js
Last active May 16, 2016
Bowie discography scraping
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');