Daddy

By Tim Gallagher
12/13/2019

Time goes past, it is fleet of foot – fast to the past
And yesterday is yesteryear – last night I was a baby
When did I love you, lose you, see you, find you at last
Daddy, I was only three when I saw you and mommy
And now you’re gone and I’m here, by myself, lonely

And now I’m the father, and I have my own who say “daddy”
But I miss you, and want to tell you again I love you
But time goes past, it is fleet of foot and gone, sadly
Time is so cruel, it doesn’t care, you’d think it would
But it’s gone, where are you? it took you away from me

I realize it’s my turn now. I’m the one they call daddy
All of life has a minor chord running through a sad song
Tunneling under – undermining my resolve to be strong
I dry my eyes, but on the inside there’s a graveyard
Stand up straight, dedicated to a brand-new brave-start

I’m an imposter – cowardly bones covered with sinful skin
One day soon it will be my turn – will one of my own
Have their turn at the pen? to put words to the pain again
To the hurt that burns within, the yearning, the loss,
God help me, the hole that grows bigger each year

Daddy, I was only three when I met you and mommy
That’s what I remember, that’s my first memory
I’ll meet you soon and we’ll both be with Jesus
Finally grown up – together we will understand, finally
Why life had to hurt and what true love is, eternally

Time Machine

by Tim Gallagher, 10/24/2018

If I could build a time machine, I would go back in time
Over and over, to spend more time with you – you are sublime
Time is cruel, the cruelest for stealing you away from me
And me away from you, you know it’s true – time is mean

Maybe I don’t need a time machine, maybe what I want is a rewind
Not a do-over, but a do-again, because, darling, let me remind
I love you, I do, I will, I would, I hope to a whole bunch more
But we don’t get either, so let’s value today, tomorrow, before

Before I… before you… well, let’s not talk about that yet
Because it chokes me up. We have our memories, don’t forget
But the best is yet to come. It has to be, because we love each other
So grab your paintbrush and meet me at the canvas we get to cover

With colors bold and bright and as brave as our love and blueprinted by God above
Let’s paint a picture with our words, brushes and love, with no push, with no shove
Because I’m for you, because you’re for me, because together us are for our “we”
We’re on display, for all to see, like it or not, so let’s shine and let’s be

Brilliant and pointing the way toward the One who showed us what love is
By giving up His life and laying it down unreservedly for His beloveds
So, Lydia today is the day, tomorrow is the day, until the day I die
I promise to be the best man I know how to be – raindrops in my sky

Above all, I’m glad for what you were, what you are and what we are together
For richer or poorer, houseless or housed, Sicker or better, through all kinds of weather
We are madly, irrevocably, no u-turns allowed, steak-dinner rich, sugar candy sweet
Ridiculously, meticulously, unambiguslously, serendipitously, completely in love

Immutable Database Schema

Immutable Database Schema

I’m adding functionality to a mature web application and need to add a field to a database table.  I started mentally walking the path of the change and what all it touches and the required testing and review that would ensue and it’s mildly daunting.

Then a voice in my head said, “immutability.”

The field I would add is not necessarily a record field – it’s not data, it’s relationship.  Is “relationship” data?

Instead of adding a field and reviewing and refactoring everywhere the model is used, I can simply add a relationship table, create a model and use it when needed.

Slightly more code, way less review.  But I don’t know if it’s a good approach, or if anyone else has tried this, so I’m documenting this online and asking for feedback.

Do you have an opinion about this?

PHP Exceptions and Namespaces

I’m way too late to the PHP namespace conversation. Initially I just didn’t see the benefit of namespaces, but now I’ve seen the light.  The other issue was the production environment at work didn’t support  namespaces – I own that problem too.  Basically for way too long it was a big fail fest.

But now angel choirs are singing and I’ve seen the light.  I preface this post with these details in case you already know what I’m about to write about.

I just spent 20 minutes trying to figure out why the same pattern of code worked in one place but not another.  I’m trying to validate date strings in form submissions and had some code like this:

function validateDate()
{
	try
	{
		$dt = new \DateTime( $fieldValue );
	}
	catch( Exception $e )
	{
		return false;
	}

	return true;
}

The error I was seeing was an uncaught exception for an invalid date format.  That’s exactly what I was trying to prevent!

It took me way too long to realize that I needed to namespace the Exception class.

The solution is either to

use Exception;

at the top of my class file or to rewrite the function.

function validateDate()
{
	try
	{
		$dt = new \DateTime( $fieldValue );
	}
	catch( \Exception $e )
	{
		return false;
	}

	return true;
}

 

TLDR: Make sure you namespace the class names in your catch blocks otherwise it’s ignored and the exception is not caught.

My Response to an Apology

Apology accepted. No worries – our culture is obsessed with perfection.

I’m convinced that everyone is faking it most of the time. True teamwork spans not just team members within your own daily circle of knowledge but all people you happen to come into contact with. Greatness is on the outer boundaries of our experience, waiting for us to admit our failures and shortcomings. Once we kill our pride and move that outer boundary closer to our center, we become truly great by empowering a fellow human being to step into a role they are wonderfully skilled to fulfill.

Hope your week gets better!

– Tim

 

Image: By Aleks G (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)%5D, via Wikimedia Commons

Last Train Out

I’m in the last seat, on the last car
On the last train out, from the middle of here
I’ve left my bundle of worries, there at the station
On the platform, beside my little black heart

The conductor comes by, and tells the passengers
“You’d better have your tickets out and ready
Or we’ll throw you right off this here train.”
So I pat, paw, and dig around, and then… panic

I’m in the last seat, on the last car
I’m gonna get thrown off, I won’t get far
Right as I get up to go and hide, a Tall Stranger
Appears beside me, “Here you go, friend.”

I’m in the last seat, on the last car
Clutching my ticket, holding it tight.
I’m looking at a man, who gave up his
Gave it to me, and I don’t understand

When all of a sudden, just as he’s grabbed
Like a bolt, I know the truth, the awful truth
He had but one ticket, and gave it to me
And I realize this, as he’s taken away.

I get up to follow, everything is blurred
I hear the conductor say, “Just throw him off!”
So they threw the Stranger off my train
And I watched him bounce and roll, and roll

I kept watching as we clacked out of sight
And before I lost view, his body stopped
Still, and silent, and I knew exactly the price
The Tall Stranger had paid, back there on the tracks.

Selected Recent Tweets