• Software Vulnerabilities, Disclosure, and Marketing

    Consumers have a certain amount of upgrade fatigue. It’s not uncommon for end users to ignore an update notification for months to avoid the frustration that comes with trying to fix something that worked before the update.

  • Private Variables in JavaScript

    ES6 gave us classes and object inheritance in JavaScript. However, it’s still missing any concept of “privacy” in OO terms. Here’s a hacky workaround to, maybe, make things work.

  • Deterministic Random Numbers in PHP

    Testing code that leverages random numbers can be tricky. It’s useful to have a way to subvert the random number generator during tests to yield a deterministic state.

  • Mocking Time in Unit Tests

    Some operations in PHP introduce uncertainty around your code’s behavior. In those situations, it’s helpful to insert helper functions that make your code more reliable and easier to test.

  • Twitter in Decline

    Twitter was groundbreaking. But now the ground that Twitter stands upon can use some breaking of its own.

  • Strict Typing

    Do you use type information in your PHP code? What drove you to make the change (or what is preventing you from taking the jump)?

  • Reflections and Foreshadowing – 2018 Edition

    New Year's is an opportunity to stop, take stock, and reflect on everything we've done in the past year. While it's usually a good idea to do this more often than once a year, the seasonal holiday presents an opportune moment for the too-busy-to-otherwise-schedule-things. I fall into that category. Today begins a new annual tradition of recounting the successes and losses of the prior year and setting clear, actionable goals for the year to come. 2017 in Review It's common to spend New Year's lamenting how horrible the previous year has been; this might be a recent occurrence, but it's also increasing in…

  • Building a Phone Routing System

    In this walkthrough, I build a phone redirection system using Twilio to automatically forward frequent wrong numbers to the business with a support line 2 digits transposed from me.

  • Gutenberg and the Road Ahead

    I have a confession to make. I really like the new Gutenberg editor for WordPress. I know, I know. Developers aren't supposed to like massive, intrusive changes like this. As of the time of this writing, the plugin stands with 2.6 stars on the plugin repository – at least 133 of those ratings are 1-star critiques. As a writer, though, it's an incredibly slick interface. As a developer, I can also see the promise behind the block structure for taking over the rest of the WordPress admin. The customizer could easily use the block structure for things like widgets and navigation and…

  • Missing: Diversity in Tech

    I attend a lot of tech conferences. I once attended at least 14 events over the course of twelve months. Large events at professional conference centers. Small events at local churches. Events that required driving. Events that required passing through customs. Every event is unique. Every organizing team is unique. Every attendee is unique. Still, there is very much a lack of diversity at these events. php[tek] The php[architect] team is, in my opinion, one of the best event groups on the planet. They put together several excellent events each year and I'm proud to have been a part of several.…