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

    Blog


  1. Surviving Git Submodules


    I'm a fan of submodules in git, but sometimes it seems like I'm the only one! After having worked with this approach on a few projects, I'm coming to the conclusion that, like so many other things, it's easy when you know how! So, I tried to take my handwavy explanation of how to work with submodules, and turn it into a handy diagram for you ...

    Read more

  2. Presentation Help Office Hours


    When I joined IBM this summer, one of the things I was most looking forward to after years of being self-employed was having a team around me. Well, that team continues to meet my expectations on that front but there's one thing we do as a team which really stands out for me - and which I think others could replicate.

    Read more

  3. The RETURNING Keyword in PostgreSQL


    The RETURNING keyword in PostgreSQL gives an opportunity to return from the insert or update statement the values of any columns after the insert or update was run. I mentioned this in passing in a few of my talks that touch on PostgreSQL recently, and it often gets twitter comment so here's a quick example of the RETURNING keyword in PostgreSQL. The newest releases of PostgreSQL are excellent and I'm seeing many teams considering moving their traditional MySQL setups over - this is just one of the extra goodies that you get when you use PostgreSQL! Let's look at an example.

    Read more

  4. Switching To Reveal.js for Presentations


    UPDATE: I presented at one event using reveal.js and have since rebuilt all my presentations in my original toolchain (rst2pdf). One presentation completely resized itself (I used rem units but that didn't help) so code samples were unreadable/missing. Also each presentation has all the dependencies INSIDE the presentation folder, so any backing up or syncing to dropbox becomes impossible (I ended up tethered to my phone with 250k files to sync ...). I like backups AND I like my Dropbox to work. So, no more reveal.js, it's just not fit for (my) purpose.

    Read more

  5. Vagrant and Ansible for Dev Machines


    With my new job came, of course, lots of new projects. They cover quite a wide range of system requirements and so I've been creating ansible-provisioned vagrant machines for each one to make it easy to set up on other platforms. I thought I'd share some examples of my setup, in case anyone is interested, but more importantly so I can swiftly look this up when I start the next new project!

    Read more

  6. Use Ngrok Dashboard from VM


    I'm a huge fan of ngrok, a tool that allows you to open a secure tunnel from your machine to the outside world to enable testing APIs and things. Mostly I use virtual machines for development, but by default the ngrok dashboard is only available when requested from the machine …

    Read more

  7. Joind.In Needs Help


    This post is about the open source project, Joind.in. Joind.in is a tool to allow attendees at conferences or other events to offer immediate public feedback to speakers and organisers at those events. Joind.in is an open source project run by volunteers. For the last 6 years I've been a maintainer of this project, following a year or two of being a contributor. Over the last few months, myself and my comaintainer Rob Allen have been mostly inactive due to other commitments, and we have agreed it's time to step aside and let others take up the baton.

    Read more

  8. Connect to RabbitMQ from PHP over AMQPS


    I work a lot with data these days and queues are a common addition to my applications to move data between applications. At the moment I'm working with RabbitMQ (and loving it!) but I wanted to deploy to a hosted RabbitMQ service and struggled to find examples of doing this over SSL so I thought I'd share what worked for me. Disclaimer: I work for IBM and they own Compose.com, which means I have a "do anything you like!" account there :)

    Read more

  9. Zap to Schedule Adding Todo List Items


    I won't admit to being a productivity nut but I am a pretty busy person :) I manage my tasks with the excellent TodoTxt system which is a simple line-per-task textfile that lives in dropbox and can be accessed by all my various devices (I'm usually a linux/android user). One use case that I've never really had a solution for is when I need to do something, but not now.

    Read more

  10. Vagrant Box With This Name Already Exists


    Due to the unique approach of Canonical to packaging vagrant boxes, the current ubuntu/xenial box has a hardcoded machine name which causes an error when you try to bring up a second VM using the same base box:

    A VirtualBox machine with the name 'ubuntu-xenial-16.04-cloudimg' already exists.
    Please use another name or delete the machine with the existing name, and try again.

    There's a stackoverflow question about this and a good answer (not the accepted one, the highest-voted one) which helped me a bit but it still wasn't completely clear to me how to fix my problem and I had to dig about a bit.

    Read more

  11. Using OS X From The Keyboard


    I have a new job (Developer Advocate with IBM Cloud Data Services) and subsequently a new work laptop. It's a mac and after almost 10 years as a linux-only user, that's rather a shock! Due to some nasty RSI issues, I don't use a mouse or any other pointing device*, so as well as learning a whole new operating system I also needed to learn its accessibility tools. I'm still at the swearing stage but mostly past the tears so I thought I would share what I've found - using a computer from the keyboard is fast and productive for everyone as well as less painful for me, so you may find some tools in here that you want to try yourself.

    I collected all my tools, my own notes and scribbled cheatsheets and put them into this gist so that I could refer to them later; I also intend to keep updating this as a reference.

    Read more

  12. Find Mongo Document By ID Using The PHP Library


    My new job as a Developer Advocate with IBM means I get to play with databases for a living (this is the most awesome thing ever invented, seriously). On my travels, I spent some time with MongoDB which is a document database - but I ran into an issue with fetching a record by ID so here's the code I eventually arrived at, so I can refer to it later and if anyone else needs it hopefully they will find it too.

    Read more

13 of 89