Andrew Timberlake Andrew Timberlake

Hi, I’m Andrew, a programmer and entrepreneur from South Africa,
building Mailcast for taking control of your email.
Thanks for visiting and reading.


Using Dead Man's Snitch with Whenever

A quick tip to make it easier to use Dead Man's Snitch with the whenever gem

6 Sep 2015

Cleaning up a Ruby hash

Hash#clean, a monkey patch to provide easy, Array#map like access to hash values to update them inline.

30 Aug 2015

Video: Product strategy is about saying no

A short video from Business of Software on determining which features to include in your product.

30 Jul 2015

Watch YouTube videos at full window (not full screen)

Watch YouTube videos maximised within the browser window without watching full screen.

16 Jul 2015

Skipping blank lines in ruby CSV parsing

How to ignore blank lines when parsing a csv file with ruby's CSV parser.

12 Jul 2015

Append items to a sorted collection in Backbone.js

When an item is added to a collection in Backbone.js it should automatically be added to the corresponding list. When using a sorted collection it would be nice to have it appear in place, especially when not refreshing the entire list. That's what I'll explore in this post.

29 Jun 2015

Tip: View the SQL query behind psql commands

If you want to view the SQL query used to construct the information returned from a psql command (which will help you learn the underlying information schema) then …

14 May 2015

Unique constraint across two rows in PostgreSQL

You can use a unique index to ensure only one occurance of a value but what do you do if you want to limit uniqueness to two rows instead of one? PostgreSQL's partial indexing can help.

14 May 2015

Quote: Person responsible for my problems

“If I kicked the person responsible for most of my problems, I wouldn’t be able to sit down for weeks.”

11 May 2015

Looping with Fibers

I needed to loop over a fairly large data set and group it by year and month. In this post I walk through using two Ruby Fibers which communicate between each other in order to do in-loop grouping

9 Mar 2014

Next page