Joshua Paling

Three rules for good quality software Feb 4 2016

I was once told three rules for good writing:

The same apply to writing software. Forget design patterns and best practices — they're a means to an end, not an end in themselves. If you're code...

read more

Summary of Sandi's Keep Ruby Weird keynote Dec 8 2015

Sandi Metz gave a great keynote at You should watch it.

Here's a summary for my own future reference. She goes through 3 interesting psychological experiments, and then covers the take-home points with regards to software dev. Here...

read more

Spring stop Nov 30 2015

A note for my own future reference: if you're using rails with spring, and you add a new class in a new file under a new folder in your /app directory (eg, adding your first service to an app at /app/services/my_service.rb), Rails will not find that...

read more

Never, ever, ever user Rails default scopes Nov 18 2015

I'm not the first person to recommend against default scopes.

Just wanted to throw one more warning in the pot. My previous convention was that I would ONLY use default_scope for ordering:

class Customer < ActiveRecord::Base
  default_scope -> {...
read more

The bare minimum developers should know about SEO Nov 10 2015

Slides and transcript of my recent talk given at both #rorosyd and meetups this November:

Hi I'm Joss, and I am not an SEO. However, I know enough to be able to call out really bad SEO advice when I see it, and that's something I feel every...

read more

Information before implementation Oct 19 2015

Recently at work, I was describing what a client wanted to a designer, and I said "let me take a look at what you've got so far."

His reply: "No, 'cos then you'll give me design input, and what I want is information."

While it was a small blow to...

read more

Some good reads Oct 12 2015

read more

Nulls In Your Database May 5 2015

TLDR; You should make all your database columns so they DON'T allow nulls - unless you have an explicit reason for needing nulls.

Rails defaults to letting database columns have nulls. That is, if you use Rails migrations to create a new column, if...

read more

2015 Development Goals Mar 25 2015

I did this last year. Been meaning to do it this year (I've had goals in my head since the beginning of the year). We're almost a third the way though 2015, but I've finally got around to writing them down.

1. Get a lot better at Ruby

As in plain...

read more

Ruby Load Path Mar 22 2015

A summary of this video for my future reference.

require is a kernel method. When you require files, ruby looks in the $LOAD_PATH global variable (it's also available in $:).

$LOAD_PATH is an array of absolute paths.

Let's say we have shape.rb and...

read more

| Page 1 of 5 | Next