Adam Hooper·Jun 4, 2021Date APIs and their impossible promisesWhen we brainstorm Workbench features, I have a mantra: don’t promise the impossible.
Adam Hooper·Mar 23, 2021My 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…A response icon1A response icon1
Adam Hooper·Mar 1, 2021Design by errorErrors are the universal language of programming. Make them count.
Adam Hooper·Dec 7, 2019Sandboxing 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()…
Adam Hooper·Nov 27, 2019Sandboxing 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…
Adam Hooper·Nov 20, 2019Sandboxing 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.
Adam Hooper·Sep 21, 2017Describing code? Avoid these words.When we describe code, we tend to use confusing words. Re-think your language with this simple guide.
Adam Hooper·Aug 24, 2017Multiple 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…A response icon1A response icon1
Adam Hooper·Aug 1, 2017Make UglifyJS way faster by using it soonerGrunt, Gulp, Browserify, Webpack — they all make the same rookie mistake.A response icon4A response icon4
Adam Hooper·Apr 5, 2017A File Format For Static WebsitesEverybody’s doing it wrong. Use this file format.A response icon1A response icon1