HomeRésuméOpen SourceWorkBlog

Blog index

Project Euler in Rust, Part 2

Monday, 01 December 2025

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...

Unplanned Downtime, November 2025

Tuesday, 25 November 2025

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...

MergePHP, November 2025

Tuesday, 18 November 2025

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...

The Story of PHP 8.5.0 Release Candidate 5

Thursday, 13 November 2025

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...

Longhorn PHP 2025

Wednesday, 29 October 2025

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...

Project Euler in Rust

Friday, 19 September 2025

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...

"Hello, World!" in Rust

Friday, 12 September 2025

Yesterday, I started to teach myself how to program in Rust. As always, the first step was a "Hello, World!" program. Continue reading...

First Rust Patch

Saturday, 06 September 2025

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...

Out-of-Band Signaling

Friday, 29 August 2025

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...

#[\DelayedTargetValidation] Attribute Explained

Wednesday, 20 August 2025

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...

No PHP 8.5.0alpha3

Friday, 01 August 2025

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...

Pygments Syntax Highlighting for Markdown

Friday, 18 July 2025

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 Tale of Two RFCs

Sunday, 22 June 2025

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...

Attributes on constants

Tuesday, 29 April 2025

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...

PHP 8.5 Release Manager

Thursday, 17 April 2025

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...

Website launch

Wednesday, 09 April 2025

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...