Welcome! I'm Lorna Jane Mitchell: web development consultant, trainer and author. I work mostly with PHP, git and the LAMP stack - plus the various excellent technologies associated with it. Part of the time, I am Principal Developer for Siftware, the other part of the time I spend on open source activities, consultancy and training.

This site is a combination of a blog, a central place to keep links to my books, talks and other resources, and also a place to put a bit of information for anyone who wants to work with me. If you have any questions, or if you'd like to work with me, then please let me know.

Work With Me

PHP Migration

Ready for new PHP but need a hand getting your application upgraded? I am happy to assess your codebase and advise on upgrade paths.


If your team needs to gain or improve their technical skills, I can help. Get in touch with me and we'll work out a package that fits your needs.


With buckets of LAMP experience, I can help your team work through the tough spots - and I love to lend a safe pair of hands to help others along.

PHP Services

Time for better tools or better practice? Time for a new version of PHP? Let me lend a hand to make your transition go smoothly.

From The Blog

PHP7: Easiest Upgrade Yet

With PHP7 looking increasingly stable (relatively speaking, it's still pre-alpha so it's VERY early days and anything could happen!), and work going well on the GoPHP7-ext project to get extensions converted, I have been thinking about the migration guides we'll need to help people upgrade their existing applications. To this end, I took the simplest project I currently have (http://api.joind.in) and gave it a whirl on PHP7, using Rasmus' PHP7 dev box. The result:

Continue reading

Count Changed Lines in Git

I have a favourite set of switches to git log, but today I wanted to answer the question "You deleted how much code today?" so I thought I'd share how I did that

git log --numstat will show you how many lines were added (first column) and removed (next column) per file, kind of a more scientific version of the --stat switch. And if you're thinking of scripting this to gather stats, try it with --oneline as well, it's easier to parse.

Scaling and Sizing with PDFJam

I find myself needing to take a PDF, output it at a specific size, and have the result offset to the top right hand side of the screen. To achieve it, I needed a few new switches to my good friend PDFJam, so I thought I'd share my command!

pdfjam --suffix converted --papersize '{1920px,1080px}' --scale 0.4 --trim "-6cm -1cm 13cm 8cm" slides.pdf

The --suffix is instead of giving an output filename, whatever you feed in ends up with the suffix in its filename. This is very handy because I use this command in a script and only need to pass in one variable. The --papersize isn't a switch I have used before either but you can set exact sizes for the final output which is nice. The --trim switch can also be used to set --clip=true to remove the trimmed space from the document if desired.

I find PDFJam a very handy tool but with not nearly enough blog posts and code snippets around, so I'm dropping my command for future reference (yours as well as mine!).

Talks, Articles, Podcasts, and More


Choose the Right Git Branching Strategy

Net Magazine, April 2015

Getting Involved in PHP 7

PHP Round Table, April 2015

Get Ready For PHP 5.4+

WordCamp, March 2015

Debugging HTTP

SmashingConf, March 2015

New Wave PHP

PHPUK, February 2015

Git Branches for Fun and Profit

Daycamp4developers, December 2014