November 14, 2021

Dynamic Properties on classes have been possible in PHP for quite some time. They have been an ill-advised practice for equally as long.

When you have a class, you can assign values to non-existent properties and the system will automagically create properties so that your assignment doesn't fail.

For example:

March 27, 2021

It's been over a year since the beginning of the COVID-19 global pandemic. I've been doing my part - staying home, socially isolating, etc. Of course, since I've been working remotely for four years now, it's almost as if nothing has changed. About the only changes for me are that I wash my hands more and wear a mask the rare times I'm out and about.

I've noticed that the pandemic has resulted in kind of an onslaught of data. Last year, I was watching the data and thinking to myself that I could probably harness it in some way and tie it into Twilio to create some kind of SMS-based service. I was wondering if there might be some way I could "do my part" in that sense.

I felt there wasn't. I didn't want to dwell on the bad numbers. I didn't want to bolster the already-overwhelming senses of dread and fear.

However, now there's a new source of data. Data that is uplifting, and encouraging:


So with that in mind, I've created a project that I'm calling "Vax Bean Counter". It sends text messages when vaccination information for British Columbia is updated. These updates usually happen on weekday afternoons, and my text message tries to show the progress and deliver a small piece of hope that this long international nightmare may be in its waning days.

Try It Out

If you want to try it out, and your cell number has a British Columbia area code (e.g., 250, 604, or 778), then you can text "start" (without the quotes) to ###-###-####. (Number redacted due to retiring the service)

November 22, 2020

Have you heard of PHPSandbox yet? No? Well, I hadn't either, until @ramsey let me know about it on Twitter. It's like the next generation of 3v4l.org - it lets you run PHP code in a shareable online sandbox.

Some of its next-generation features include the ability to select which type of project (or "Notebook") you'll be writing, which can pre-fill a bunch of information for you. You can also select Composer packages to install as part of the notebook.

October 10, 2020

Many years ago, I wrote a joke library called Kaboom. Its purpose was to detect if error reporting was improperly configured in Development environments, and if so, go Kaboom! by throwing an exception.

Yesterday, I was writing some code for Sculpin (an open source static site generator that I contribute to) and I wanted to make sure that a particular bit of code that could contain path traversal vulnerabilities wouldn't be forgotten about when I wandered away to other priorities.

To accomplish that, I added a unix timestamp check of "today plus one day" hard-coded as magic numbers. That way, when I came back to the PR, it would stop working in a very obvious way, letting me know that the issue had not been solved.

Then, I tweeted about it. And some people were intrigued by it. They had concerns, of course, but the response inspired me to rewrite my Kaboom project and release it to Packagist.

Introducing Kaboom v1.0