This website recently got a major rebuild; if you're missing something, let Lorna know.

    Blog


  1. Joind.in at the PHPNW Hackathon


    It's that time of year again, the PHP North West conference is almost upon us, and this year they are once again running a hackathon. These events are a great way either to carve out some time to get your head down and hack on an idea that's been in the back of your mind for a while, but they're also a fabulous way to get involved in collaborating on projects. At PHPNW, you'll find there are quite a lot of open source projects at the hackathon, standing by to take on anyone interested in getting involved, either just for the evening or beyond. I'll be there, representing joind.in, a tool which is used by the conference itself. So what kinds of things will there be to do and how can you get involved?

    Read more

  2. Changing Content Type with Slim Framework


    Slim framework has recently invaded my life, I picked it up for a hobby project, recommended it to a client who then contracted me to do quite a lot more development, and it's also used for m.joind.in. One thing that has tripped me up a couple of times …

    Read more

  3. Simple Video Editing on Ubuntu


    In this series of posts about my screencasting toolchain, I've already written about using wmctrl to resize windows accurately and about using Kazam to capture snippets of video from various applications. This post describes my adventures in trying to glue the video snippets together.

    Graphical Video Editing

    For most people …

    Read more

  4. Generating HTML from Markdown with Pandoc


    I'm writing more and more things that are not code these days, and my content-managing toolchains are becoming more developed all the time. I've written in REstructured Text, Asciidoc, and LaTeX, and today I'm working on an article which eventually wants to be HTML but I'm creating in Markdown because …

    Read more

  5. Screencasting in Ubuntu: Kazam


    If you've ever seen a live demo, you will know that these things are fraught with danger. Even if the wifi works, the presenter knows what they are doing, and nothing crashes, you'll often end up watching someone explaining something to their laptop in detail, or clearly demonstrating their inability to type. Either way, it doesn't make good, informative content, which is why I never ever demo in a conference talk - I'm there to entertain and time is always of the essence. At this point, you can probably guess why I'm writing a blog post about my screencasting toolchain - I simply pre-record whatever it is that I want to show in the talk.

    On an ubuntu platform, I've had a few false starts with video over the years, and mostly avoided it. But now my "Debugging HTTP" talk really does make more sense if you can see the process of something broken, what the tools show, and how to understand that information and fix the problem.

    Read more

  6. Homemade Kitchen Shelves


    For the last ... really long time ... I've been working on a place to put the cookery books in the "new" kitchen. Since the kitchen was finished early in 2011, that's been quite a long-running project! It's finally finished though and I thought I'd share a bit about how I made it (not least because I get nagged about the lack of non-geeky posts on this site - you know who you are!)

    Read more

  7. Accurate Ubuntu Window Sizing with Wmctrl


    I'm working on a bunch of screencasts at the moment (more posts to come) and one of the things that tripped me up the most was getting all the windows the same size, so that the resulting videos are the same size and can easily be put back together. Enter …

    Read more

  8. Using Composer in an Existing Project


    I've got an application (okay, scratty PHP script) which glues together some API things and shows them onto a dashboard for me. Recently, I updated it to use Guzzle as the consuming client, since twitter now needs me to authenticate (I wrote about that if you're interested), and I used Composer to bring the new library in. It was very simple so I thought I'd share it as it's quite minimal example, and those are my favourite kind.

    Read more

  9. Tips for Addressing a Virtual Audience


    As a conference speaker, I've read the books on how to be a good conference speaker, and coached quite a few people to raise their skills in this area too. However recently I've been meeting more virtual audiences, both delivering virtual training and doing virtual events such as DayCamp4Developers, and I thought I'd share my take on what works well in a setting where people can see your slides, and hear your voice ... and nothing more.

    Read more

  10. Using Charles To Debug PHP SOAP


    I used this trick to solve a particularly sticky problem last week, so I thought I'd share. I had a 3rd party SOAP service (except it was actually a .NET WCF service, which is almost SOAP but not quite) which didn't behave in accordance with the way its documentation said it would. PHP's SoapClient has the ability to enable tracing and give information about the request/response headers/body, which is useful, but I needed to store the outputs and also rewrite a particular request header during the course of debugging this. Enter: Charles Proxy.

    Read more

  11. PSR-What?


    There's been some cool things happening in the PHP world over the last few years, but with the least helpful names ever ... yes, those PSR-somethings which all do totally different things (apart from two of them which are the same). They're actually all superb things, and done for a good reason, so I thought I'd try to translate them into normal speak.

    Read more

  12. Twitter Search API Using PHP and Guzzle


    In case you missed it, Twitter updated their APIs recently, so that you have to authenticate to use even their search APIs to return publicly-available results. This is an increasing trend for API providers, to provide either very limited or nonexistent access for unauthenticated users, I think so they can rate limit consumers that swamp them. To cut a long story short, that meant I needed to update my dashboards that keep an eye on twitter searches to do more than just call file_get_contents in the general direction of the right URL.

    Read more

23 of 89