Over the last few months (I started writing this blog post in September), I've continued to learn Rust by working through Project Euler problems. Since I will be giving a talk about Rust at ConFoo in February, learning Rust is no longer just for fun - I also need to make sure I don't make a fool of myself. Continue reading...
Last week, I had some unexpected downtime for my website. The original cause was a power issue at the physical server, and out of my control, but an oversight of mine made the situation worse. Continue reading...
Last week, I presented "PHP 8.5: New Features from the Source" for a second time, this time through MergePHP, an online meetup combining multiple PHP user groups. The talk generally went better than it did the previous time I presented on that topic, at Longhorn PHP. Continue reading...
PHP 8.5.0 Release Candidate 4, announced last week, was expected to be the last release candidate (RC) of the PHP 8.5.0 development cycle, before the general availability release next week. But, earlier today I announced the release of PHP 8.5.0 RC5. So, why was an extra release candidate needed? Continue reading...
Last week, I attended the Longhorn PHP conference in Austin, Texas. I had the opportunity to meet with a slew of open source contributors, listen to some amazing talks, and even present my own. Continue reading...
After writing the obligatory "Hello, World!", I wanted to work on something more substantial in Rust. When I learn a new programming language, my go-to source of coding problems to try and solve in the new language is Project Euler, which features hundreds of coding challenges of various difficulty levels. Continue reading...
Yesterday, I started to teach myself how to program in Rust. As always, the first step was a "Hello, World!" program. Continue reading...
As part of preparing for my Longhorn PHP talk about what is new in PHP 8.5, I have been going through various PHP tools and checking to what extent they support the new features. When the support is lacking, I have sometimes tried to add it myself; this led me to making my first patch in Rust. Continue reading...
Sometimes, code needs to be able to signal an error has occurred. Perhaps some invariant was violated. Perhaps an invalid parameter was used. Regardless of the reason, there are two ways to signal an issue: "in-band signaling", and "out-of-band signaling". Continue reading...
PHP 8.5 will come with a new attribute, #[\DelayedTargetValidation], that
is intended to help libraries that support running on multiple versions of PHP.
The attribute can be a bit confusing, so as the author I figured I should write
up a (hopefully helpful) guide. Continue reading...
Yesterday, I announced the release of the last alpha version
of PHP 8.5.0, labeled 8.5.0alpha4. This comes two weeks after the previous
version, 8.5.0alpha2, was announced. So, what happened to 8.5.0alpha3? Continue reading...
This week, I published a new composer package that adds support for syntax highlighting of code snippets embedded in Markdown documents. The new package uses the Pygments highlighting library (from Python) and connects it to the CommonMark PHP library for rendering Markdown. Continue reading...
A few minutes ago, my third RFC,
adding support for promoted final properties, was implemented
after being approved unanimously. This comes after my second RFC,
adding support for never parameters, was rejected by the
community. Continue reading...
Earlier today, the attributes-on-constants RFC implementation was finally merged. This was a project I worked on for months and a significant reason I became more active as a PHP core developer. The initial motivation was to add a way for constants to be marked as deprecated, so that MediaWiki could use that feature to signal deprecated constants instead of relying solely on documentation. Continue reading...
I'm honored to share that the PHP internals development community has elected me as one of the two "rookie" release managers for the PHP 8.5 release cycle. Working alongside my fellow release managers, I hope to help ensure a smooth and successful release process. Continue reading...
Today, I launched the initial version of my personal website (where you are most likely reading this blog post). This marks the cumulation of over a month of preparation and development, because I wanted to create the website myself, rather than using a website builder like WordPress. While I do rely on a few external libraries, the content and styles are all mine. Continue reading...