Mark Grealish

the life and code of a crazy cat man


Skip model callbacks through factory_girl in Rails 5

The kind of callback we skip are expensive calls to third-party services. These are all tested separately within our suite. In Rails 4, we used this pattern to skip certain callbacks: FactoryGirl.define do factory :fremen do name 'Liet Kynes' fierceness :high after :build do Fremen.skip_callback :create, :after, :bribe_spacing_guild end trait :with_bribe do Fremen.set_callback :create, :after, […]

Always Grouchy

Taken at Blackrock, Dublin.

Ballycorus Leadmines

Photographed on my hike today. I was surprised when this photograph came out, let alone perfectly, because the wind blew me flat on my ass as I finished the capture.

Hell of a week

I couldn’t get my head straight on Tuesday so I went to look at the sea instead.

Perfect and Blue and Empty

The day was too much, so I climbed a hill and decided to be for a while.

Pretty and red at Blackrock

Unhappily Coned, February 2017

Poor Cookie. :(

Eadaoin, Brussels, October 2016

Ella, Caira and Garrett at the park, June 2011

Taken at Lough Atalia, Galway.

Garrett in Cliffoney, July 2012

July 7, 2012


Never mind her surgery two weeks ago.

Dublin Sunset, February 2017

Blackrock Dawn

Sometimes it’s not all that bad

Self-referential has_many :through relationship in Rails 5

A self-referential has_many :through relationship is one where a class interacts with itself through a join table. The classic use are followings: I follow another user. Another user follows me. So a Following is a two-way relationship between the User class and itself. There are a bunch of guides for this that are either outdated […]

Kill puma

Grr, rage, annoyance, rabble. kill -9 $(lsof -wni tcp:3000 -t)

This is the unseen side of my professional working life

The struggle is real.

Oh, Cookie

“No Cookie! Feet are friends, not food! Feet are not for teeth!”

Add sub-controller modules to Rails 5 routing concerns

Routing concerns have been a thing since Rails 4, but this morning I ran into a real annoyance: the documentation doesn’t adequately explain how to pass a module, in cases where you use separate sub-controllers. More than that, even-what if I want to pass any other options? Here’s what I came up with, using splats […]

Simple and dumb MOC theme

MOC <3 background = white default current_time = white default bold directory = white default disabled = white default empty_mixer_bar = white default empty_time_bar = white default enabled = white default bold entry = white default entry_title = white default error = white default bold,underline file = white default filled_mixer_bar = white default reverse filled_time_bar […]

Hear me roar!

The hard life of a vim multitasker

No respite.

The grimmest grim view that ever grimmed a grim

Taken from the shore at Blackrock.

Clearly a sushi lover

Rails 5 join table naming conventions

This is a stupid fucking thing, akin to Googling basic syntax for your language, but here we are. My underling and I wasted 40 minutes today re-figuring this out. Migration: class PluralSingular < ActiveRecord::Migration[5.0] create_join_table :plural, :plural end Model: app/model/foo.rb class Foo < ApplicationRecord has_many :plural_singular has_many :plural, through: :plural_singular end Join model: app/model/plural_singular.rb class […]

Winter tree, winter sky

Taken at Blackrock Park.

You can’t go home again

Time’s an arrow, one way, here to there, that you can’t turn back. Because that’d be nonsensical, to undo what makes you, you.


Listos version: Lots happened, more yet to come. Stay tuned.

2005-era Linuxy desktop goodness

And by “retro” I mean “cringeworthy,” but that’s part and parcel with haxx0r Mark and his ghetto battlestation. In clockwise order: Gnome desktop environment on Fedora Linux, Wednesday August 18 2004. Gnome desktop environment on Gentoo Linux, Thursday February 16 2006. Fluxbox window manager on Gentoo Linux, Monday November 15 2004. Gnome desktop environment on […]

Typing right is hard

Something something legacy shoulder injury, proper ten-fingered touch typing is hard. I type fast in a ten-fingered style, but it is weird and left-dominant. Correctly keeping both hands on the home row is hard. Grumble.