Gollum the Git-Enabled Wiki

In trying to get company documentation off google docs and people's laptops and into a more useful format, I have been researching developer-friendly tools for business documentation. Requirements went something like:
- must handle words and documents
- should be available locally, bonus points for revision history
- must publish to the web, and ideally be editable there
- should accept content in markdown
- must have access control (which wiped out my original plan of using a static site generator)

While I worked on this, we were using the wiki feature in GitLab ... which pretty much hit the nail on the head. Further investigation showed that the wiki feature in GitLab (and indeed in GitHub) is a ruby gem called Gollum. Continue reading

Set Up Your First Hubot

It took me far too long to get my first hubot working; when I finally sat down to get it going the process was much easier than I expected! So here's a little guide in the hope that this helps you get started too.
Continue reading

Hubot and Slack

I'm enjoying using hubot to integrate services very easily and both give updates and respond to commands in chat. One of my hubots chats to us in slack rather than in IRC, and there are a couple of gotchas that I wish I'd known about before I started!

  • Hubot will not respond to you in PM, you need to join a channel and then /invite @hubot and your bot will join you in that channel and then respond when you address him/her by name
  • When configuring channel names for slack (I use the gitlab plugin which needs a GITLAB_CHANNEL environment variable), do NOT include a # at the start of it if you use slack - works a treat in IRC, but skip it for slack. I spent quite a while looking for a bug in the slack adapter before I figured this one out so it's written here for me to look up next time!
  • Also note that your hubot can only speak in channels that it has joined; I have seen hubot actually crash when asked to speak in a channel that exists but which isn't known to it.

I think this central way of having plugins which can integrate with many messaging platforms on one side, and integrate with many external APIs on the other means we'll be doing much more in chat ops moving forward. Already I'm impressed by how many of the hosted tools I use have webhooks, although there aren't hubot plugins for all of them (yet!).

Todotxt on Android and Ubuntu

I'm a big fan of good tools, however struggle to find products that fit me because there are some key constraints:

  • I use Linux (specifically Ubuntu 14.10)
  • I don't use a pointing device. At all. If I can't use a tool from the keyboard, I can't use it at all (as a side effect, I use keyboard enablers in my browser so if your website has "helper" keyboard shortcuts, I probably can't use that either)
  • My other devices (phone, tablet, work phone) are all android

Taken together, this makes finding tools a challenge - but I've had good experiences with todotxt and the ecosystem around it. Continue reading

Status Check on All Vagrant Machines

Much of the development I do these days uses vagrant machines to make sure that my code is running in the correct environment. This is great, but spinning up too many machines at once can rather stretch the resources of the computer you're running them on - and I keep starting up machines and then forgetting about them!

It turns out that (since vagrant 1.6) you can ask vagrant to tell you which of its machines are running, using the command:

vagrant global-status

Where did all my system resources go? Now I know!

Vim and HTML Tags with the Surround Plugin

Marking up documents is always tedious, and usually there are shortcuts available. My favourite document format tool is Pandoc, literally a box of document-conversion tricks! Today though I was not so lucky so I marked up a plain text file as HTML by hand ... or rather, using my favourite vim tricks so I thought I'd share them.
Continue reading

Announcing the Git Workbook

I'm very pleasedtitle_page to announce the immediate availability of my new book Git Workbook, costing $20 from LeanPub. This is a book that you "do" rather than "read"; it's a series of chapters (30 ish so far) each covering one specific git skill.

Each chapter includes an explanation of the skill in question, followed by a hands-on exercise so that you can work through the skill yourself, and ends with a tickbox so you can keep track of how far through you are. It has quizzes, diagrams, mildly amusing stories, and as many other examples as I could think of that could help anyone to take in this technical topic and understand how to apply the techniques covered. Continue reading

Git Submodules for Dependent or Common Code

Submodules are one of the most powerful and most mistrusted features in git, at least in the web development part of the internet where I spend my time. I've seen them go horribly wrong, but I've also had teams adopt submodules and have their development process run much more smoothly as a result - so I thought I'd take a moment out of my day to write down the process (and the gotchas) of development with submodules. Continue reading

Ada Lovelace Day: The Women Who Share My Journey

It's Ada Lovelace Day. If you don't know what that is, you can read more about it here: http://findingada.com/. Go ahead, I'll wait.

While being a woman in tech can be isolating, the women I meet along this journey make the experience what it is. I have fabulous male friends and mentors also, but today I'm focussing on the women around me. They are the modern-day equivalent of the cousins that you grow up with, share stories with, laugh and cry with. They have shared the personal and the professional, the joy and the fear. Today seems like a good time to call out some of the women that I'm so glad to have around me. Continue reading