PHPNW15 – Pipeline Architectures


Pipelines help split your architecture into distinct components. They help you think about how things are going to communicate. You can use the correct tool for the job, as all you need to do is implement the correct interface at the edges. Finally, they lead to a ‘tell, don’t ask’ model which makes issues easier to debug.

By designing your architecture as a pipeline, you decouple all of your components and make sure that each part has a very specific responsibility. If you ever want to replace one of the parts in your pipeline, just make sure that the new implementation adheres to the contract that it’s supposed to at both ends and things should just continue to work.

This talk will look at how to start putting together a pipeline architecture and how to test them, as well as looking at a few case studies of how existing systems can be refactored to behave as a pipeline.


  • Event: PHPNW 2015
  • Date: Saturday, 3rd October 2015
  • Location: Manchester, United Kingdom



This talk was recorded. Video coming soon


Good insight to how the “big boys” handle pipeline architecture. Direct experience is always be than just learning the theory.

A well presented talk and very confident with the Q&A section.

» View More Feedback

Read More

Calculating international postage with USPS Forever stamps

I just spent ages trying to work this out, so here’s a quick post to remind myself should it ever come up again:

  • The current value of a Forever stamp is 49 cents at time of writing (check current value with this search
  • The USPS have an online calculator to work out postage values located here
    • To send a post card (with a value of $0) it costs $1.20 per card, or 3x Forever stamps
    • To send a rectangular letter (i.e. birthday card) weighing 1ox or less (with a value of $0) it costs $1.20 per letter, or 3x Forever stamps

You can legally use multiple Forever stamps on a single item of post to ensure that the postage cost is covered.

Read More

PHPStorm (IntelliJ) and Xmonad

Another quick one as I’m sure I’ll need to do this on another machine.

When launching PHPStorm, I was presented with a grey box that did nothing. I realised that it was probably related to the fact that I’m running XMonad.

After a quick Google, I came across the the tried and tested setWMName "LG3D" that I’ve used previously (to make Source games run under Steam). Unfortunately, this wasn’t working for PHPStorm because I’m also using XMonad.Hooks.EwmhDesktops which nullifies the effect of setWMName.

This issue existing because Xmonad is a non-reparenting window manager, and we need to inform Java of that.

You can either specify the environment variable when launching phpstorm:


Or you can have it loaded into the environment automatically. I did this by adding the following to ~/.profile


Read More