Skip to main content


Showing posts from April, 2016

Evernote: a Landscape of Experiences

I’m going to take some time out of absolutely loving Evernote for keeping me on task and organized throughout the day to talk about what, I think, is absolutely the worse thing about it. Evernote is a completely different application on every platform and device it supports. For a product who’s main gimmick is keeping you organized and your data synced between all of your platforms and devices, that’s sort of a really hard knock against them. The Evernote for Windows application is great, but so is the Evernote for Mac application. These are quite different, and not just in the ways that usual differ between Windows and Mac to fit the platforms well. They are just fundamentally different applications which coincidentally happen to be sharing your data. Beyond the two desktop Evernotes, the problem only gets worse. Evernote for Android is yet another experience, with yet other features different from the two Desktop versions. The most jarring differences between these versions are dif

Publishing ES6 Modules on NPM

I had an adventure over the last couple days with ES6! There was a pattern I'd already used in a few of my React projects to make ES6 classes a little nicer. ES6 did a lot to make working with  this  mechanics nicer, but there was a still a gap that bit me: the sugar provided by ES6 classes don't extend to keeping method bound to instances of the class. Maybe you, like me, would expect this to work: class Counter { constructor () { this . count = 0 } onClick () { this . count += 1 } } counter = new Counter () document . querySelector ( '#add-button' ). onclick = counter . onClick But, like non-class methods on any regular Javascript object,  onClick  will loose its binding to the  Counter  instance. There are a few existing solutions to this, but I wanted one that didn't change the syntax of defining a method on these classes. Enter AutoBind, via my new NPM module  es6-class-auto-bind : import AutoBind from &