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

    Category: tech


  1. Updating Local Git Repos When Upstream Moves


    The scenario: the "main" repository of a git project has changed, either an organisation rebranded, a project got a new maintainer, or a fork became the acknowledged master. In Subversion, this was the svn switch command and git has an equivalent. It's relatively easy in git to change your upstream - once you know how - so don't be tempted to just delete your local repo and re-clone! We can do better than that :)

    Read more

  2. Lorna's Bluemix Cheatsheet


    I work for IBM which means I get to play with Bluemix, their cloud platform. I use this mostly from the commandline as the tools are great and I find it the easiest way to work - but I keep having to look up the commands I need so here's my cheatsheet covering the stuff I use the most. It's here for me to refer to easily but if it's helpful to you too, then great!

    Read more

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

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

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

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

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

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

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

  10. Heroku "No app specified"


    I've been having a maddening problem where one (but only one) of my heroku apps doesn't know which heroku app it is, which means I need to append --app app-name to every single command. It seemed to happen when I moved my app to an organisation rather than having it …

    Read more

  11. MySQL 5.7 Introduces a JSON Data Type


    There's a new JSON data type available in MySQL 5.7 that I've been playing with. I wanted to share some examples of when it's useful to have JSON data in your MySQL database and how to work with the new data types (not least so I can refer back to them later!)

    MySQL isn't the first database to offer JSON storage; the document databases (such as MongoDB, CouchDB) work on a JSON or JSON-ish basis by design, and other platforms including PostgreSQL, Oracle and SQL Server also have varying degress of JSON support. With such wide adoption as MySQL has, the JSON features are now reaching a new tribe of developers.

    Read more

  12. Documentation First: A Recipe for API Success


    I've shipped a handful of greenfield APIs in recent months for different clients, and in each case I've been building the documentation before the API. I hadn't really recognised it as a pattern until someone else commented on it, but I do find this approach has worked well for my projects, so I thought I'd share my thoughts on this in a bit more detail.

    Read more

9 of 39