weekly reflex

Thanks, rubocop! - Office hours - Indie project flows - Local Barcelona Meetup

Thanks, rubocop! - Office hours - Indie project flows - Local Barcelona Meetup
In: weekly reflex

My Shape Up break allows some housekeeping, so I updated a couple of my coaching and content shop items:

  • Added an office hour for developers who are interested in memory techniques and how to apply them in their day-to-day: Memory Training
  • Added a new workshop to the coaching portfolio: 1-on-1 premium TDD workshop
  • Summarized where to find my current, future, and past contributing self on the Internet: Meet Rich

By the way, I've started reading the Shape Up book. It has a lot of insights, even for your indie hacker endeavors outside of working in a team. Check out its free PDF version if you'd like to give your side projects a new spin.

Here are a couple of thoughts I had on the way:

  • Shape Up feels good because it gives you a structure to get out of what might sometimes seem like an endless hamster wheel of side projects.
  • It makes you ship or kill projects instead of prolonging them forever or jumping between shiny things.
  • An essential piece of Shape Up is the shaping phase, where you define the project. The project plan needs to be not too abstract but also not overly specific (like a 100% end-to-end wireframe). Most personal projects fail because their definitions are too abstract, i.e., "I'll build a TODO list app. Hold my beer!"

Shape Up for individuals looks very much like Shape Up for small teams:

shape-up-for-small-teams 1.png
Source: Shape Up, p. 166

You are a one-person-army transitioning fluidly from phase to phase.

In contrast, Shape Up for established companies has the shaping and the building phase run in parallel:

Source: Shape Up, p. 168

I've restarted the local barcelona.rb group again. It's a soft launch with some relaxed discussion round tables. Building up towards the more common formats with speakers and coding sessions if requested, wished, and needed:


Do you find rubocop annoying sometimes? I certainly do! 😅

I usually add rubocop only later in my personal projects. Or I'm adding the Standard gem if I know it will be a collaborative project from the start.

But in the projects where it's enabled, more often than not, it saves me from costly mistakes and ugly lapses by giving me a lefthook, not letting me commit 🥊 (checkout the lefthook gem)

In which case, I always think:

"Thanks, rubocop 🤗🥊🤖"

Here are a couple of examples from this week:

View online for the perfect syntax highlighting experience here.

Prefer double-quoted strings inside interpolations.

OK, this is a trivial one, but I was surprised about why I like rubo's suggestion.

raw("<span class='label'>#{t('user.wish.premium')}</span>")


raw("<span class='label'>#{t("user.wish.premium")}</span>")

Useless assignment to variable.

If you defined some sort of an account= setter at this point somewhere for some reason, this could end up in an ugly debugging session.

# before
setup do  
  @current_account = account = FactoryBot.create(:account)  

# after
setup do  
  @current_account = FactoryBot.create(:account)  

Use attr_reader to define trivial reader methods.

I needed to overwrite a devise helper in my own helper to make it usable and testable there, so this saved me a couple of lines:

# before
def current_user  

# after
attr_reader :current_user

Thanks 🤗

More from RichStone Input Output
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to RichStone Input Output.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.