If you’re creating code for other Node.js developers to use, chances are you’ll need a dash of run-time type checking. While TypeScript can help you with your types on a per-project basis you can’t force third party programmers to use it. Node’s built-in util module provides a number of useful methods for [...]
astorm
What went wrong with the libdispatch. A tale of caution for the future of concurrency.. This post from “Thomas“, the creator of the OS X/Mac OS utility TimeMachineEditor crossed my desk the other day. I remember when Apple announced Grand Central Dispatch (the branded name for libdispatch) as a thing, and being surprised that [...]
astorm
A quick primer (from curl’s most well known maintainer) on requesting websites from servers before you’ve officially changed their DNS entries. A quick TL;DR; if you’re conserving mouse clicks For non-SSL/HTTPS sites it’s as simple as changing the HOST header — curl --header "Host: example.com" [...]
astorm
If you had trouble starting applications or saw a lot of “beach-balling” on your Mac last week it’s almost certain that Apple’s OCSP service was to blame. This article from Jeff Johnson (an independent Mac and iOS developer) gives a good high level overview of the problem before jumping into some equally good deep [...]
astorm
One common request over on my patreon slack is helping folks reason about some piece of functionality as-implemented in the Magento 2 core. This usually means looking for a particular dependency on a class, and then looking for that class’s dependency, and following this dependency chain back until we find the actual five lines of [...]
astorm
A small bug fix release for everyone’s my favorite Magento 2 code generation tool and ad-hoc PHP module system. This fixes a small bug in the magento2:generate:schema-add-column command that only triggered when using pestle’s interactive mode. This bug, although small, was interesting to the software builder in me for a a few [...]
astorm
This entry is part 3 of 3 in the series Checking in on OpenMage and Magento in 2020. Earlier posts include Checking in on OpenMage and Magento in 2020, and Composer Plugins and Installers. This is the most recent post in the series. Magento 1 was one of the last big PHP platforms that didn’t embrace composer as a distribution model [...]
astorm
This entry is part 2 of 3 in the series Checking in on OpenMage and Magento in 2020. Earlier posts include Checking in on OpenMage and Magento in 2020. Later posts include Installing OpenMage: Bridging a Generational Gap. I’m planning to take a look at options for installing OpenMage — but before we do that we need to do a [...]
astorm
This entry is part 1 of 3 in the series Checking in on OpenMage and Magento in 2020. Later posts include Composer Plugins and Installers, and Installing OpenMage: Bridging a Generational Gap. After years of a sliding deadline, Adobe finally followed through on putting Magento 1 through their “end of life” process. My [...]
astorm
After over a decade on the 2010 version of Square Space I decided it was time to migrate my company’s tiny little website over to the new version of Square Space — the hegemony of black text on a white background comes for us all. Hats off to Square Space for keeping the old platform around for for commoditizing the bespoke [...]
astorm
After three years at the day job I’ve been granted access to a physical escape key. I prefer a “build everything back by hand” approach to setting up a new laptop, and this includes pulling over two locally run PHP applications I use to automate my job. One’s a WordPress P2 instance I use to log my daily work, the [...]
astorm
I’ve had these three free videos on my watch list for a while now. In twenty one minutes Chris Fidao runs you through the basic things you’ll want to do whenever you spin up a new VM somewhere. The videos cover setting up a non-root ssh user, locking down who can log in via SSH and forcing those same people to use SSH keys [...]
astorm
I’m finding the various Rust guides well written — or perhaps just well written for me. This bit in the Cargo Guide (Rust’s package manager and build tool) on Cargo.lock files was particularly succinct. If you’re building a non-end product, such as a rust library that other rust packages will depend on, put Cargo.lock [...]
astorm
This entry is part 2 of 2 in the series Exploring Deno. Earlier posts include Where does Deno Code Come From. This is the most recent post in the series. In the world of web services your standard issue hello world program will Start a webserver Have that web server respond to a request with the text Hello World Comparing Deno’s [...]
astorm
This entry is part 4 of 4 in the series Four Steps to Async Iterators. Earlier posts include ES6 Symbols, Javascript Generators, and ES6's Many for Loops and Iterable Objects. This is the most recent post in the series. Generator functions predate the introduction of async/await in javascript, which means that while creating an [...]
astorm
This entry is part 3 of 4 in the series Four Steps to Async Iterators. Earlier posts include ES6 Symbols, and Javascript Generators. Later posts include Async Generators and Async Iteration in Node.js. Today we’ve got another remedial-for-me dive into modern javascript practices. Specifically, we’ll be looking at the for ... [...]
astorm
This entry is part 2 of 4 in the series Four Steps to Async Iterators. Earlier posts include ES6 Symbols. Later posts include ES6's Many for Loops and Iterable Objects, and Async Generators and Async Iteration in Node.js. Generators are weird. They make programs behave in ways that are non-obvious. This weirdness easily turns into [...]
astorm
This entry is part 1 of 4 in the series Four Steps to Async Iterators. Later posts include Javascript Generators, ES6's Many for Loops and Iterable Objects, and Async Generators and Async Iteration in Node.js. One pattern that keeps coming up when I’m spelunking older NPM packages for Node.js is using Symbols to define properties [...]
astorm
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