Close
Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

Andrew Bruce

Full-stack software developer at CloudFoundry, formerly a consultant at Pivotal Labs. Currently working on platform engineering and publication tools.

Posts By

PIVOTAL CLOUD FOUNDRY
Using Diego To Schedule One-Off Tasks In Cloud Foundry

One-off tasks have been difficult to incorporate into an application running on Cloud Foundry for some time. To solve this problem, Diego's design incorporates Tasks as first-class citizens. Tasks aren’t yet first-class citizens in Lattice, as the support in the ltc command line isn’t ready. This post explains how to use Diego's Receptor API for the purpose of scheduling Tasks.

LABS
Writing Cloud Foundry sample apps for 9 frameworks

I recently had the pleasure of producing nine sample apps for Cloud Foundry, whilst embedded in the documentation team. The aim of the exercise was to produce minimal but functional apps, ready to be deployed to CF, in a variety of languages and frameworks.

Read more »

LABS
Hosting apps in the Pivotal Web Services (PWS) cloud

PWS is Pivotal’s public Platform-as-a-Service offering. PaaS systems let you host apps by pushing them to a service rather than having to configure and maintain separate installations of web servers, load balancers and so on. PWS is a hosted installation of the open-source Cloud Foundry project, to which Pivotal is a primary contributor.

Read more »

LABS
CDPATH Bash completion in OSX

Setting the CDPATH environment variable saves you having to cd to commonly-used parent directories. I usually put my main workspace directory in there to allow direct directory changes to project dirs, as well as ‘..’ to allow jumping to sibling directories.

Read more »

LABS
Geek glossary: spy

So spies are pretty easy. They’re test doubles, used like mocks, but instead of setting up expectations before an event, you check the state of the spy after the event, since it records every known message sent to it.

Spy frameworks haven’t taken off in Ruby as much as in other languages, such as JavaScript.

Read more »

LABS
Geek glossary: mock

This is my second post on the trinity of test tools known as ‘test doubles’. The first covered stubs. This one is all about mocks, which are woefully misunderstood and loathed by many.

If you want to know more about the history of mock objects, get a copy of GOOS.

Read more »

LABS
Geek glossary: stub

Over the next few blog posts I intend to bang a few more nails in the coffin of the widespread misunderstanding of stubs, mocks and spies. Many before me have had a crack at this (see Ben Moss’s post for discussion and links), and many of those blog posts and books helped me to understand what exactly these code design tools are for.

Read more »

LABS
Going fast

So you have a team of four developers and a product manager. You seem to be in a good place: you’re using Pivotal Tracker to keep visibility into your backlog of work, your velocity is high and, more importantly, constant. Releases went well and the team you’ve built can efficiently mutate your software to suit every new product idea.

Read more »

LABS
A tmux and Vim Clojure IDE

I recently began experimenting with Clojure on a side project. Since Vim is my preferred editor, I’ve been learned the ropes of the prolific Tim Pope’s plugin, Fireplace. Fireplace provides documentation lookup amongst other goodies for Clojure developers. It requires a Clojure REPL for looking up docs and such, and so this REPL has to be running before Vim can connect to it.

Read more »

LABS
Geek glossary: re-entrant and idempotent

Whilst writing some Chef recipes for our project’s Continuous Integration server the other day, my pair and I came across a commit message to some third party code that claimed to make a routine re-entrant. We both realised that we didn’t clearly understand the difference between re-entrancy and idempotency and decided to look the terms up.

Read more »