Date APIs and their impossible promisesWhen we brainstorm Workbench features, I have a mantra: don’t promise the impossible.Jun 4, 2021Jun 4, 2021
My philosophy of exceptions: they’re always ambiguousPython, C++, Ruby and Java all use exceptions. To them, “exception” means, “nifty piece of syntax kinda like goto.” Language…Mar 23, 20211Mar 23, 20211
Design by errorErrors are the universal language of programming. Make them count.Mar 1, 2021Mar 1, 2021
Sandboxing data crunches, chapter 3: containerizeThis is the third and final post in a series. In Chapter 1, we sandboxed using subprocesses. In Chapter 2, we leveraged Linux’s clone()…Dec 7, 2019Dec 7, 2019
Sandboxing data crunches, Chapter 2: clone processesThis post, second in a series, offers a Python solution to a Python problem. The broad principles should apply to any single-threaded…Nov 27, 2019Nov 27, 2019
Sandboxing data crunches, Chapter 1: use a subprocessWorkbench lets users drag and drop “Steps” to create programs we call “Workflows.” It’s like a user-friendly Jupyter.Nov 20, 2019Nov 20, 2019
Describing code? Avoid these words.When we describe code, we tend to use confusing words. Re-think your language with this simple guide.Sep 21, 2017Sep 21, 2017
Multiple Share Cards For Your Web PageThe first — and hopefully last — experience your user has with your news story is on social networks. I’ll describe a neat trick for…Aug 24, 20171Aug 24, 20171
Make UglifyJS way faster by using it soonerGrunt, Gulp, Browserify, Webpack — they all make the same rookie mistake.Aug 1, 20174Aug 1, 20174
A File Format For Static WebsitesEverybody’s doing it wrong. Use this file format.Apr 5, 20171Apr 5, 20171