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, 2021A response icon1Mar 23, 2021A response icon1
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, 2017A response icon1Aug 24, 2017A response icon1
Make UglifyJS way faster by using it soonerGrunt, Gulp, Browserify, Webpack — they all make the same rookie mistake.Aug 1, 2017A response icon4Aug 1, 2017A response icon4
A File Format For Static WebsitesEverybody’s doing it wrong. Use this file format.Apr 5, 2017A response icon1Apr 5, 2017A response icon1