Using NPM Link to Develop Dependent Projects

Right now I'm working on a javascript project that relies on another module for some of its functionality. I'm making fairly major changes that affect both projects, and since the dependency is pulled in via npm, initially I was committing and pushing to a repo so that npm could pull in the dependency from GitHub - on every update. Well that gets tedious really quickly so I'm now using the npm link command which is pretty handy. I hadn't seen it before so this blog post is basically the cheat sheet I wrote when I started using it... Continue reading

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 :) Continue reading

Alexa, When's the Bus?

I got an Amazon Echo for my birthday (from my husband, who took romantic to a new level when he liked my present so much he bought me an Amazon dot a week later so he could use the echo elsewhere in the house!), which is a new gadget for us. Of course I started asking her questions that she couldn't answer ... and you can write your own "skills" so of course I sat down to browse the documentation and ended up creating a working skill for her :) It was a fun process but there were lots of unfamiliar parts to it so I thought I'd blog what I did in case anyone else wants to try out creating skills as well, and in case I ever want to remember some of the stuff I know now! Continue reading

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! Continue reading

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

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

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

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

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! Continue reading

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 that ngrok is running on ... and I want to be able to see the web interface from my host machine.

This is a config setting but it can't be supplied on the command line, instead create a file called ~/.ngrok2/ngrok.yml and add the following line:


This will enable you to then reach the web interface at [VM IP or hostname]:4040.