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 magento-quickies.tumblr.com. 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,
followed by a chronological listing of the same.
You may also browse the
7
series directly via the following links.
Pestle, Four Steps to Async Iterators, Checking in on OpenMage and Magento in 2020, Text Encoding and Unicode, Shopware's Development Environment, A Sentimental Gen-X Programmer Culls his Tech Books, and, Containers, Containers, Containers.
Like most middle aged technology writers who write independently online, it’s been harder to “little-p” publish a steady stream of words in recent years. I’ve gotten better at this in 2020 thanks to the WP Scheduled Posts plugin for WordPress. The plugin has a bunch of free and paid features I’ve never [...]
astorm
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 [...]
astorm
Quick link to a medium article outlining a number of different ways to run your own NPM server. Some self-hosted software, some SaaS solutions. The actual article has more context, but here are the links for (my) quick reference. MyGet NPM Org DIY NPM Git. Sinopia Cnpmjs.org Npm-register Verdaccio
astorm
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 [...]
astorm
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 [...]
astorm
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 [...]
astorm
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 [...]
astorm
The pile of one-off command line scripts I’ve written for my current weekend projecting finally reached the critical mass where they needed some organizing, which led me to discover the yargs project. Yargs provides mature argument and option parsing for command line programs (both --foo and -b style options) and features for [...]
astorm
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 [...]
astorm
I reviewed the original Magento Ultimate Module Creator almost — six?! — years ago. Its creator, Marius Strajeru, just announced a new project that we’ll call Ultimate Modules Creator for C.R.U.D. This looks like it’s a Magento module (Umc_Crud) that provides a set of base classes and interfaces with a standard, opinionated [...]
astorm
A free-and-open-source (BSD 3 Clause) security checklist for anyone running (or with a vendor who’s running) a Magento 2 system themselves. Provided by security stalwart Talesh Seeparsan, who you should talk-to-slash-hire if you need any computer security work done (Magento or otherwise). The list is pretty bonkers. Seeing [...]
astorm
A bit of a coda to my post on Symfony HttpClient — I reported the bug to the Symfony project and it was, unsurprisingly, closed with one of those annoying engineering responses: Expected Behavior. In this case Expected Behavior means We acknowledge the behavior and don’t know how to fix it right now and don’t want to [...]
astorm
In traditional, “plain Blain” style javascript, it’s relatively simple to access an object’s property via a string // prop-of.ts class Foo { prop1 = 'foo' prop2 = 'baz' prop3 = 'bar' } const foo = new Foo() // using a string constant console.log(foo['prop1']) // using a string's variable const prop2 = 'prop2' [...]
astorm
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 [...]
astorm
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 [...]
astorm
I just had a nice reminder that sometimes reporting a bug to a public software forum can matter, even if you suspect/know it’ll be closed out. Someone familiar with the Symfony docs process ran across the same problem I had with the HttpClient, and appears to have had the same “what is even happening reaction I had”, [...]
astorm
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 [...]
astorm
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 [...]
astorm
Over in my patreon slack room (the semi-private slack where I help patrons with their programming questions), a patron wan running into an issue where Magento catalog/category pages were generating an X-Magento-Tags HTTP header that was “too large”. They’d managed to track this down to a GitHub issue from this summer. [...]
astorm
Ten years ago I stumbled across a small indie game named VVVVVV — its aesthetic mimicked a game from the mid-80s on an early personal computer but its game play fully explored a simple game mechanic using everything “we” know about modern game design. Even in 2010 I didn’t really play games much but I played the [...]
astorm