Recent Posts


Category: Programming Quickies

Back in they day, I ran a Tumblr blog named Magento Quickies where I’d post shorter, less in-depth posts about my travels through Magento’s source code. This Programming Quickies categories is the successor to that Tumblr blog. You’ll find all the old Magento Quickies content here, as well as new short posts about programming in general.

This section has its own RSS feed, the old Magento Quickies feed should should be redirecting, and we’re cross posting notifications for new posts over to In other words, you shouldn’t need to know any of this, but the duct tape that keeps the internet held together isn’t aging well, so your mileage may vary.

Below you'll find all the Programming Quickies articles on the site.


  1. Pestle 1.1.1 Released
  2. Pestle 1.1.2 Released
  3. Magento 2 Setup Migration Scripts
  4. Pestle 1.2.1 Released
  5. Sending Text Messages with PHP, pestle, and Nexmo
  6. Pestle 1.3 and AbstractModel UI Generation
  7. Pestle 1.4.1 and the Merits of Inheritance
  8. Pestle 1.4.4 Released
  9. Pestle Docs Done (for now)
  10. Pestle 1.4.2 Now Available
  11. Installing Pestle via. Homebrew
  12. Pestle 1.5.2 Released

NPM’s Dependency Model

I’m coming up on about a year of full-time NodeJS work, and it’s only now that I’m starting to understand the true nature of NPM’s dependency management. When I’ve used other systems, (primarily composer), “management” of those dependencies meant your package manager will yell as you if [...]


How does Deno Use Rust

Reddit is not my natural enviornment, but I occasionally hover around its various programming communities. This is a personal archive of an answer to a question about the Deno, the new “run javascript on your own computer” project. I’m far from an expert in all the real details here, but I’ll give this a go. Deno [...]


Async/Await and Recursion

So here’s a “fun” side effect of async/await in NodeJS. I had a bug. It seemed like it might be run away recursion bug. NodeJS doesn’t let you set an explicit recursion depth limit, but it does limit the size of your call stack. So how could there be a recursion bug without Node throwing up errors and/or crashing [...]


@grpc/grpc-js Goes 1.0

A quick note to congratulate anyone working on the @grpc/grpc-js project for their 1.0 last month. There’s been a C++ native module of GRPC around for awhile now, but @grpc/grpc-js a pure TypeScript (that compiles to pretty clean javascript) implementation, and we’ve found That it’s mostly a drop in replacement for grpc [...]


TypeScript won’t Save us

A few weeks ago I started working with gRPC for the first time. These days gRPC stands for “general-purpose remote procedure call”, but I still think of it as “Google remote procedure call”, as it’s a project that came out of, and is primarily maintained, by Google engineers. It’s a system for building [...]


Don’t Make them Tell you Thrice

Here’s an API design pattern that drives me a little nuts. If you’re using the Apollo GraphQL client to make a data fetching query, your code looks like this. client.query({ query: gql`query { ... your query here ...}` } However, if you’re using the apollo client to make a graphql mutation query, your code looks like [...]


The End of 10-Digit ISBNs

A small post that’s a little off my normal beat — sometimes software feels like a never ending series of Y2K like paper cuts. ISBNs are cross-publisher serial numbers for books. If you’re publishing a book, and you want to tap into global supply chains (i.e. have stores be able to order and stock your book), you need to [...]


Pestle Windows Support

Here’s two quick stories about providing native Windows support for pestle. Home Directory The first issue boiled down to our using the following code to get a user’s home directory $home = trim(`echo ~`); if(!is_dir($home)) { throw new Exception("Could not find home directory with echo ~"); } This works for the *nix [...]


Commerce Bug 3.2.4 Released!

Just a quick note that a new version of Commerce Bug (3.2.4) is out in the world. This release fixes a small bug where the jsTree elements in the KO Scopes tab could interfere with the styling of jsTree elements that core Magento used in places like the Access Control Roles tree. If you follow my feeds on Stack Overflow or Twitter you [...]


Changing WordPress Host Names

Recently I was moving a few of the websites and web applications I run on my laptop from .dev domain names over to .localhost domain names. The .dev top level domain became a real thing a few years back. Google bought it, started using it, and (most importantly) browsers started automatically redirecting .dev domain names from http to [...]