Handling errors in nodejs and express

Many people surely know all this by now. Still, here are some things I’ve recently learned about notifying clients (browsers, API clients) about errors. Delivering errors from route handlers to clients This is remarkably easy, once you figure it out. Just use the http-errors package. (Beware, not the http-error package; it does something different. Call … Read more

Is Pluto a planet? A wonderful controversy!

I was chatting with a co-worker today, and she said she’d heard “they” were thinking about calling Pluto a “planet” again after it was demoted in 2006. Is Pluto a planet, or a dwarf planet, or a planetoid comet, or a cometoid planet, or what? It’s a wonderful debate. It’s a debate about how to … Read more

Computing the mode with SQL

The mode of a bunch of numbers is the most frequent number in the bunch. A bunch of numbers can have more than one most-frequent number. Given a table tbl with columns category and value, this SQL returns the mode for each category.   WITH freq AS ( SELECT COUNT(*) freq, value, category FROM tbl … Read more

Stop tax cheats: pay bounties

Back in the 1970s, the US government paid bounties to citizens who identified big polluters and helped bring them to justice. Some of those bounties helped found the Riverkeeper organization that keeps watch on the Hudson River to this day. Those bounties helped make water and air much cleaner. In the twenty-teens we have another … Read more

Stripe Elements data sequence diagram

Stripe.com’s Stripe Elements is a great way to handle payment card information in a way that slows down cybercreeps. It’s secure because customers only enter card numbers into Stripe-furnished iframes, never into forms on the site taking payments via Stripe. Here is the sequence diagram for how Stripe Elements handles data flow