Blog


  1. PHP 7 Benchmarks


    If you know anything at all about PHP7, you probably know it's fast. But did you know how fast? The alpha is out and looks very robust, so I decided I would create a new set of benchmarks to include it. Graphs first, disclaimers later :)

    This graph shows the time it takes for each version of PHP to perform the same task, on average, with oldest PHP on the left and moving forward in time.

    php-70-alpha-benchmarks

    Read more

  2. PHP 5.4 and Short Tags


    PHP 5.4 isn't exactly new; in fact the opposite is true! PHP 5.4 is end of life, but as our adoption rates show, as a community, PHP people aren't especially good at upgrading! I'm getting lots of questions now because some of the hosting providers, notably including Acquia's …

    Read more

  3. Notify New Relic of Jenkins Deploys


    I'm a fan of Jenkins as a build server, and on one particular project we've also started using New Relic (I haven't figured out how to blog fun things about New Relic without sharing graphs of client applications which doesn't seem like a cool thing to do). New Relic has a feature where you can notify it when you do a deployment, and it shows on the graphs a line marking when that happened, which is super useful for correlating performance changes with code changes.

    new-relic-deploy

    Read more

  4. Code Reviews: Before You Even Run The Code


    I do a lot of code reviewing, both in my day job as principal developer and also as an open source maintainer. Sometimes it seems like I read more code than I write! Is that a problem? I'm tempted to say that it isn't. To be a good writer, you must be well-read; I believe that to be a good developer, you need to be code-omnivorous and read as much of other people's code as possible. Code reviews are like little chapters of someone else's code to dip into.

    Over time I've developed some particular processes that I find helpful when reviewing code. In particular, I often surprise people at how much review I do before I run the code. Sometimes I grab the branch so that I can use my local diff tools, but I don't actually execute code until I've established some basic facts. This post is a little insight into what's happening in this not-running-the-code-yet zone.

    Read more

  5. Recover Bitly Bundle Data


    For some years I've been creating a bundle of links covering articles I recommend for various topics in the Zend Certified Engineer Exam (if you can here looking for the bundle itself, it's at {filename}/zce-links-collection.rst). This was done using bitly's bundles feature, which I thought was a great way to share links. In fact I had 10-15 bundles that I had created from collating all the links in a particular training course or talk, so that people didn't have to try to write down URLs as I went along. Unfortunately they sunset their bundles and then removed them completely, and I missed the announcement (it all happened quite quickly, they'd seen some abuse of the feature, it's free, all totally reasonable) BUT they also didn't respond to my support questions about how to recover the data.

    It turns out, it's an undocumented feature on their API, so here is everything I know about recovering your bundle data, including the script I used to rescue my own data.

    Read more

  6. ZCE Links Collection


    I've been maintaining a list of links related to the topics in the ZCE exam, these are all resources that I recommend or have had recommended to me - and I hope they'll be helpful for you too. If you're studying for ZCE and looking for extra help on a particular …

    Read more

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

    Total lines of code change needed to make the @joindin API work on PHP7: zero

    — Lorna Mitchell (@lornajane) May 14, 2015

    Read more

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

    Read more

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

    Read more

  10. Vimdiff and Vim to Compare Files


    At the moment I'm working on a tricky project where two similar projects diverged. Very similar things happened to them both, but not quite the same things - and now we're merging the codebases to give us as much common code as possible. All this simply serves to set the scene of exactly what I was doing spending a whole day with large code diffs - I had to look up a few things so I thought I'd capture them while I can remember.

    Read more

  11. Vivosmart Smart Watch


    I don't often do product reviews here, but I recommend this one a lot so here goes ... I have a smart watch, the Garmin Vivosmart. I really like it and its integration with my android phone so I thought I'd share my experiences.

    Read more

  12. Proxy Curl Through Charles Proxy


    I'm working on a project at the moment with an API, so I usually talk to it with curl. I also love Charles Proxy, a very handy tool that I use to inspect, repeat and edit requests. Today I used them together!

    Read more

17 of 92