I'm Chief Strategist at big fish®, where I work with consumer businesses to help them solve brand, tech, and marketing problems. I’m interested in uncertainty, creativity, and sustainability – particularly in the world of consumer brands.
New here? You can browse by topic, or these featured articles might be a good place to start:
Related to the last link is Sayre’s law, which states that “in any dispute the intensity of feeling is inversely proportional to the value of the issues at stake”. We’re distracted by trivialities and are powerless to effect meaningful change. #
A piercing view of modern outrage culture, which sees the opposition to fascism distracted by low-stakes nonsense while society is slowly dismantled. #
From five years ago, but still beautiful and resonant: a profile of Ronnie O’Sullivan, the haunted and preternaturally gifted snooker player. #
A poignant piece on the passing of Elizabeth Wurtzel (author of Prozac Nation) and the precariousness and vapidity of the modern creative industries. #
A wonderfully thoughtful and thought-provoking article about the growing culture war in the UK, as we slowly circle the drain. #
A useful name for an intuitive fallacy. #
It turns out the world of self-published, Kindle Unlimited romance novels is cuthroat and scammy. Algorithm-gaming, fake readers, fake content, all generating millions in revenue. Kindle Unlimited is particularly susceptible because of the way it calculates and shares revenue. #
I’ve been using Roam Research for a couple of a weeks now, and I have some thoughts about it.
A fabulous paper from the early 1980s. Taking examples from coal-mining, it explains the interactions between people and technology and the evolution and emergence of productive relationships between the two. There are so many lessons here for modern technical teams. #
Ruby has many cryptic variables, but one of them is particularly useful – especially if you’re processing text from the command line.
The slides and summary from my talk at Brighton Ruby 2015.
Varnish, the HTTP proxy, is a fantastic tool. Here’s a way to purge cached pages from the command line, a task I find myself wanting to do frequently.
Explaining caching is hard; here’s an attempt.
An explanation of the little-used – but handy-to-know – o modifier to Ruby’s regular expressions.
Sometimes, you write Ruby scripts that take a long time to execute. Here’s how to show progress to your scripts’ users – part two in a series, this time showing how to display real progress to users.
Sometimes, you write Ruby scripts that take a long time to execute. Here’s how to show progress to your scripts’ users – part one in a series, this time dealing with how to show indeterminate, faked progress to reassure users that something is happening.
Ruby comes with a powerful persistent storage system that’s backed by flat files and handles concurrent access and transactions out of the box – stuff you’d expect to need a database for. It’s criminally underused, and it’s called PStore. Never roll your own file locking code again!
If you find yourself passing around lots of file paths in your Ruby scripts, you should save yourself a headache and use Pathnames, not strings.
Most Rubyists are familiar with [Nokogiri]. It’s a combination XML and HTML parsing tool most commonly used for “screen scraping”: that is, fetching a web page, and searching through it to extract information of interest. When a website you’re interested in doesn’t offer an API, it’s often the only way to extract information from it.
My experience writing a book using the fledgling publishing platform LeanPub.
In 2010, Konstantin Haase wrote a golfed version of Sinatra that was just 999 bytes long. What can it teach us about both Sinatra and Ruby?
Ruby has a construct, inherited from Perl, that makes it easy to write scripts that work with input from both files and standard input. It’s called ARGF, and here’s how to use it.
Ruby inherits lots of goodness from Perl. One of those things is the ability to invoke it in one-liners from the command line, and when you do so there are three switches that come in handy. Here’s how to use them.
The final article in a series on accessing WordPress data from within Ruby scripts, using ruby-wpdb.