← All posts
Category

Web Dev

Posts on Web Dev.

Composer's HTTP/2 400 failures from codeload.github.com in CI

29 June 2026 ·

We hit a frustrating issue recently while building PHP images in AWS CodeBuild: composer install started failing, often, with an HTTP/2 400 from codeload.github.com while downloading a package archive. The package that failed changed from run to run, and the same Dockerfile and composer.lock that broke in one pipeline built cleanly in another. The short version is that this is GitHub wobbling rather than anything wrong in your project, that the same failure has come and gone for years, and that the usual environment-variable fixes only take the edge off. If your deployments run composer install, here is what is actually going on and how to stop it taking your builds down.

Read more →

DHCP implementation in... PHP

12 December 2016 ·

PHP is not usually used to implement network services - and generally for good reasons. Not because it can’t be done, but rather because it’s not what it was meant to be used for. Although, if you think that PHP simply can’t be used for anything other than serving your blog, think again. Because my DHCP implementation in PHP seems to work quite well!

Read more →

Accessing Gmail with oAuth authorization in PHP

18 December 2011 ·

Recently, I’ve joined a project that required accessing Gmail accounts using oAuth authentication with PHP. It turns out, that’s not such a very simple thing to do, especially with PHP - Zend has a very nice implementation for it, but the wiki page is terribly old and outdated… I’ve lost a few hours looking for a nice and clean solution and found a “handmadeimap” project done by Pete Warder some time ago. Bad thing is, the latest commit was done in 2010. The good thing: not much has changed since then, so the code works perfectly. It’s even better to use that php-imap extension, as you need to use raw IMAP commands, which gives you the chance to use, for example, gmail’s special X-GM-RAW extension to SEARCH command.

Read more →

Let's talk

Start with a free second opinion: 30 minutes with our founder. No account access needed, and you keep a short written read.

Schedule a meeting: our calendar