Andrew Bruce

Biography

  • Using Diego To Schedule One-Off Tasks In 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...

    Read More
  • Writing Cloud Foundry sample apps for 9 frameworks

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

    Read More
  • Hosting apps in the Pivotal Web Services (PWS) cloud

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

    Read More
  • CDPATH Bash completion in OSX

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

    Read More
  • Geek glossary: spy

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

    Read More
  • Geek glossary: mock

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

    Read More
  • Geek glossary: stub

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

    Read More
  • Going fast

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

    Read More
  • A tmux and Vim Clojure IDE

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

    Read More
  • Geek glossary: re-entrant and idempotent

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

    Read More
  • The passing of time, and all of its crimes.

    The passing of time, and all of its crimes.

    Programmers are constantly implementing time-related features, and accidentally including time-related bugs. I’m one of those programmers, and I would like to reduce the number of time-related...

    Read More
  • I'll come running back to GNU

    I'll come running back to GNU

    I’d finally had enough of waiting for my MacBook Pro’s hard drive platter to spin up and grind away, so I ordered a new Solid State Drive. When it arrived, I was faced with the potentially...

    Read More
  • Admin for nothin', design for free.

    Admin for nothin', design for free.

    This week’s blog post contains scenes from the ancient Greek tragedy Oikonomia, previously thought to be lost. It begins with a dance. In the dance, the product manager is conducting an iteration...

    Read More
  • Everything I know about Clojure after one week

    Everything I know about Clojure after one week

    This week I decided to clear out the cobwebs of my Ruby-trained brain and try a completely different language. Ruby and Rails have been my staples for over seven years, and I’m starting to tire of...

    Read More
  • Designing an API in Hell

    Designing an API in Hell

    Minitest, Ruby’s built-in testing library, has some great out-of-the-box features. One of these is test parallelization. Parallel testing is often added after a suite gets slow enough to hurt....

    Read More
  • Smelling with your ears: TDD techniques to influence your design

    Smelling with your ears: TDD techniques to influence your design

    Test Driven Development can be a hard sell. The first pitch is often designed to entice the buyer with safety features, like: “How will you ensure that those bugs don’t creep back in?” “Wouldn’t...

    Read More
  • Procrastination, considered.

    Procrastination, considered.

    Last week I blogged about a new project for aiding in the hunt for test pollution, Scrubber. This is a personal side project that I began recently. It’s in the very early stages, like many of my...

    Read More
  • Fighting test pollution with an RSpec custom ordering strategy

    Fighting test pollution with an RSpec custom ordering strategy

    Test pollution manifests itself as seemingly false negatives or false positives in a test suite. It occurs when some shared state is unintentionally modified, or unintentionally read and used in a...

    Read More
  • loading
    Loading More...