No more computing books

One of my bad habits is constantly buying computing books. This wouldn’t be so bad if I  read them, but I have amassed a huge backlog of books that will most probably never be read and which ends up being a waste of money.

A couple of posts I read recently have led me to the decision that I should stop, or at least drastically cut down on, buying computing books. The first post talked about “learning voyerism” where you are really more interested in the idea of learning new things instead of learning the thing itself and the second talked about spending time going deeper into topics instead of boucing lightly through many different ones.

It is very difficult to stay focused on one thing when there are so many things happening in the world of computing all the time. There are a tonne of new and exciting languages and frameworks being released all the time. And while it would be great to try them all, that can only mean that you’ll never actually become good at one of them.

I have always been a bit of a generalist and while knowing a bit about everything isn’t a bad thing, there is a fine line between knowing a bit of everything while being proficient at some things and knowing not quite enough of everything to be unable to do anything at all.

Books of 2016

Really did not read a lot in 2016 as I’ve been spending more time watching screencasts on Pluralsight and Udemy.

Stand out book was “The Pheonix Project”, which is a must read for anyone who works in IT. The final instalment, “Death’s End”, of the Three-Body trilogy came out, which I half wish I had never read.

  1. Ruby Performance Optimization (10/2/2016 – Programming)
  2. Elasticsearch Quick Start (15/3/2016 – Programming)
  3. The Expert Beginner (16/4/2015 – Programming/Careers)
  4. Speaking JavaScript (Skimmed) (21/4/16 – Programming)
  5. Grokking Algorithms (2/5/2016 – Programming)
  6. The Pheonix Project (28/6/2016 – IT management)
  7. Real World Machine Learning (1/7/2016 – Programming)
  8. How Your Motorcycle Works (13/8/2016 – Motorcycles)
  9. Death’s End (10/10/2016 – Fiction)
  10. OCA Java 8 Programmers Guide (Skimmed) (16/10/2016 – Programming)
  11. Elastic Leadership (21/11/2016 – Management)
  12. Software Architecture for Developers (27/11/2016 – Programming)
  13. Managing Humans (15/12/16 – Management)
  14. Ego is the Enemy (23/12/2016 – Self-Development)

OpenSSL issues building Ruby 2.2.2 with ruby-install

Trying out chruby and ruby-install and installing Ruby 2.2.2 with ruby-install was giving be the error:

Setting the LDFLAGS env var solved this for me:


Alacritty Dracula Theme

Trying out Alacritty and can’t live without the Dracula theme. So here it is. Just added it to your alacritty.yml


Stupid coding mistakes

Made a really annoying mistake today while writing some code to delete data out of Redis.

The mistake was in the final method keep_keys. Every check to see if a key should be rejected I was adding an element to the flattened_keys array over and over again, causing my deletion to slow down over time. A simple change to memoize the keep keys made the process go from never finishing to, completing in a few seconds.

Clearer text in iTerm

For a while, and since moving to a 4k monitor, text has always looked a bit fuzzy when using iTerm. I just discovered that setting thin strokes to always be on has made a huge difference in the crispness of text.

Books of 2015

This year’s standout books were “The Dark Forest” which was the follow on from last year’s “The Three-Body Problem” and “I am Pilgrim”. “Brain Maker” was a real eye opener into the workings of the gut biome. Sadly most other books didn’t really grab me. I’ve also started keeping a track of books I ended up skimming through.

  • The Tiger that Isn’t (4/1/15 – Statistics)
  • It’s not all about me (24/1/15 – Psychology)
  • Just Fucking Ship (28/1/15 – Business)
  • Story of Your Life and Others (5/2/15 – Fiction)
  • Traction (Skimmed) (10/2/15 – Business)
  • The Mom Test (22/2/15 – Business)
  • Stop Reading Self-Help Books (24/2/15 – Self-Help)
  • The Shell Collector (27/2/15 – Fiction)
  • JFDI (1/3/15 – Self-Help/Business)
  • Smartcuts – Audiobook (10/3/15 – Business)
  • Effective Javascript (Skimmed) (19/4/3015 – Computing)
  • Servers for Hackers (Skimmed) (20/4/2015 – Computing)
  • How Adam Smith Can Change Your Life (29/4/15 – Life)
  • Better than Before – Audiobook (15/5/15 – Psychology)
  • I Am Pilgrim (19/5/15 – Fiction)
  • The Zen Programmer (10/6/15 – Life)
  • Nikon D610 Experience (22/6/15 – Photography)
  • 31 Days to Overcome Your Fear of Shooting Street Photography (23/6/15)
  • How to Shoot Street Portraits (28/6/15 – Photography)
  • Adobe Lightroom 6 Training (28/6/15 – Photography)
  • The Flash Photography Field Guide (Skimmed) (2/7/15 – Photography)
  • The Street Photography Composition Manual (4/7/15 – Photography)
  • SEO 2016 (15/7/2015 – SEO)
  • Growing Rails Applications in Practice (17/7/2015 – Technology)
  • Make Love not Porn (3/8/2015 – Psychology)
  • Brain Maker (23/8/2015 – Health)
  • The Dark Forest (7/9/2015 – Fiction)
  • Total Recall (15/10/2015 – Autobiography)
  • Meta programming Ruby (21/11/2015)
  • No More Mr. Nice Guy (9/12/2015 – Self-help)
  • Redis in Action (Skimmed) (19/12/2015 – Technology)
  • Can you go? (18/12/2015 – Training)

Generating product recommendations in Spree using the Jaccard Index

Being able to recommend products to shoppers is a vital part of any online store. The “Customers Who Bought This Item Also Bought” section can lead to a lot of extra sales if done well. The Jaccard Index is a way of measuring similarity between items. Using some custom SQL we can extract the values we need:

With these values we can then calculate the affinity between sold products: