Feet to the flames

Blog

Mike: "I need to find someone to hold my feet to the flames to get things done."

Me: "I think it is less about finding someone to hold your feet to the flames, and more about finding someone to help you hold your own feet to the flame."

Semi-retirement can be difficult to navigate if you're previously a high-productivity professional.

IDD

Blog

Okay, so, you've heard of Test Driven Development, where tests (unit, functional, system, integration, and contract) are written first, then the code that passes the tests is written to that test's specifications, as a way to write good, efficient, tested code.

There are also Acceptance test-driven development (ATDD), behavior-driven development (BDD), example-driven development (EDD) and story test-driven development (SDD) styles of code writing. I'm most familiar with the last.

We have (mostly because I wanted) a tech-debt sprint every 4th sprint on my main project at work. These are sprints where we do not introduce new features, but rather fix bugs, improve infrastructure, increase performance, or refactor that write-once-to-learn-copy-once-and-shit-copy-again code into a don't repeat yourself (DRY) bit of code. When feature development is blocked, for whatever reason, we continue developing, but the priority order is often unclear.

Until today.

Katherine commented she was doing Irritation Driven Development (IDD) and I love the term. "These things bug the F out of me, I am going to fix this" seems a great way to bring joy back into a project and code. I am delighted.

Find the bug, Rails edition

Blog

I have this code in a model in a Rails project.

  validates :name, presence: true, on: :create
  validates :email, presence: true, format: { with: URI::MailTo::EMAIL_REGEXP }, on: create

Let's put it in an Author model:

class Author < ApplicationRecord
  validates :name, presence: true, on: create
  validates :email, presence: true, format: { with: URI::MailTo::EMAIL_REGEXP }, on: create
end

When retrieving a list of all of the authors without email addresses (because, well, we are cleaning up these things) with this line of code:

  authors = Author.where(:email: nil)

... two new blank authors are created at the WHERE query. Both of their names and emails are blank. This is absurd!

Find the bug.

I narrowed the problem down to those validates lines, but could not see the bug. After an hour of puzzling, I asked Katherine to look. When she said, "what the?" I felt a little bit better that this was something weird.

She figured it out, though.

class Author < ApplicationRecord
  validates :name, presence: true, on: :create
  validates :email, presence: true, format: { with: URI::MailTo::EMAIL_REGEXP }, on: :create
end

F'ing symbols. Yay for Katherine's second set of eyes! Whoo!

MEOW

Blog

<!--       _
       .__(.)< (MEOW)
        \___)   
 ~~~~~~~~~~~~~~~~~~-->

Is that offensive? Down a rabbit hole.

Blog

"I hope you take this the way it is intended, but, you'd make a good dyke."

Yes, yes, I would. I have the whole "who the F cares about clothes" vibe. Makeup and I don't get along, but I know the origins of that one. Though, let's be real, that's not really what being a dyke is actually about. Yet, I wholehearted agree I would, except that my attraction to women sexually is close enough to zero to be considered zero.

The comment, though, had me heading down the rabbit hole of "Is the word dyke offensive?" It has been reclaimed by the LGBTQ+++++++ community, so no, but, as always, context matters. Someone intending the word as a slur is offensive. Someone using the word as a term of endearment is not offensive. Like a lot of words.

And the etymology of the word? FASCINATING. Go read it.

Given my brother thought I was gay when I was in high school, I guess I give off gay, dyke vibes. Except to gay people. They know I'm not.

Pages