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