All about coding
Ruby and Rails technical content written by Lucian Ghinda.
- Posts
- 118 from 22 Nov 2021 to 29 Oct 2026
- Posting
- weekly (29 in the last year)
- Kind
- personal blog
- Feed
- https://allaboutcoding.ghinda.com/rss.xml
2026 27
- Superpowers Ruby is becoming RubyPowers
- Tokens, token IDs and array operations in Ruby
- « Previous
- Adding a helper to silence logging in Rails console
- Sometimes the Best Prompt Is /new
- Exhaustive Testing Is Still Impossible, Even with LLMs
- Quick impressions: A week of using Codex more than Claude
- Setting the status line for all projects in Codex
- You can use Ruby to set the status line in Claude Code
- Explain to me in Simple Technical English
- What the HANDBOOK.md Benchmark Says About Your CLAUDE.md
- One Week of Building and Reviewing Code With LLM Agents
- Where Six AI Coding CLIs Store Your Session Logs
- Tell the Agent to Write Its Scripts in Ruby
- Stats from two months of agent-first development using backoffs
- Setting up a workflow with superplanning and fizzy
- Adding Session Handoff to Superpowers Ruby
- Two Agent Skills to Help With Prompt Security
- superpowers-ruby v6.1.0: a Rails upgrade skill
- Superplanning: a unified planning skill for Claude Code
- superpowers-ruby v5.0.6: compound skills and Ruby idiom fixes
- 3 New RuboCop Style Cops: SelectByKind, SelectByRange, PartitionInsteadOfDoubleSelect
- How to Add Rubocop MCP to Claude Code and OpenCode
- OpenCode Uses Rubocop as the Ruby Language Server
- How to Enable Ruby LSP in Claude Code and OpenCode
- Essential Ruby Gems for Working with Agent Skills Files
- Improving Git Diffs with Delta
2025 10
- RSpec and `let!`: Understanding the Potential Pitfalls
- How to Use Pattern Matching to Locate Elements in a Hash Array
- Ruby on Rails: Loading Locales with Yes, No, On, and Off
- Avoid Microsecond Pitfalls When Comparing Times in Tests
- Prefer getter methods over instance variables inside Ruby objects
- More about how to create a Data class in Ruby
- Example of value objects using Ruby's Data class
- How to create value objects in Ruby - the idiomatic way
- How to implement JSON-LD Schema for your blog
- How to make sure you review your monkey patch when updating Ruby gems
2024 20
- Everything that I published this week about Ruby #4
- How to Return Multiple Values from a Method in Ruby Using Data.define
- Overriding Methods in Ruby on Rails: A No-Code-Editing Approach
- Everything that I published this week about Ruby #3
- How to make a small pulsating animation
- What I wrote about Ruby this week #2
- What I wrote this week about Ruby
- Where to list your Ruby company online
- Proposal for making private method work on constants too
- Why you should participate to Friendly.rb in September 2024
- Hash value omission - an introduction and some examples
- Refactoring transaction blocks with the endless method
- Endless method - a quick intro
- Add code snippet in RubyMine and Visual Studio Code to binding.break
- Micro benchmarking value objects in Ruby: Data.define vs Struct vs OpenStruct
- History of the endless method syntax
- Two insights from using Sorbet
- The tech stack I choose to build my email courses project
- First commits in a Ruby on Rails app
- Finding where a method is defined in Ruby using IRB
2023 36
- A recommended list of resources about how Ruby is evolving
- Exploring `it` default block param warning in Ruby 3.3
- Ruby on Rails Open Source: Mastodon
- An Endless Method Use Case
- Review Ruby on Rails Code using Rubymine AI and ChatGPT
- Ruby open source: feedbin
- Ruby on Rails projects that might inspire you to start your own
- Ruby Open Source: chatwoot
- Ruby Gems Download Trends: An Analysis from 2013 to 2023
- Ruby Open Source: Zammad example
- How to skip all callbacks for all models in Rails
- Using ChatGPT, Github Copilot and Phind to generate Tailwind config for width classes
- About Ruby: A tale of searching for the main
- Ruby on Rails can scale - here is one example
- How to create a new Rails app running Rails 7.1 beta or main branch
- Using GPT-4 to refactor a simple HTML page
- Using Cursor IDE for some small changes in a Rails app
- Bugs, errors and causes from an 1975 paper
- Insights from Stack Overflow Developer Survey 2023 about Ruby
- Projects ideas for learning Ruby or any Ruby web framework
- Where to promote an article about Ruby
- About Ruby: pass by value or pass by reference?
- A comparison of multiple generative AI tools when asking for Ruby on Rails code
- Ruby's range literals and their effect on Rails Active Record queries
- Why do I include a Community section in Short Ruby News?
- A simple idea of how to grow the Ruby community
- Why write technical content on a blog and not only on social media
- This week focus: Refactoring
- This week focus: Documentation
- Stay up to date with new Ruby or Rails features
- Changing the Parent Resource Parameter Key in Rails
- A method's gravity
- We should adopt and use new Ruby features
- Refactoring instance variables to local variables in Rails controllers
- In defense of Ruby's short-hand syntax
- Code Design Inertia
2022 16
- Write tests on all test levels
- Alternative ways to freeze a string in Ruby
- How to get class name and module name in Ruby
- How to work with PostgreSQL enums in Rails 7
- What is a class in Ruby?
- How to learn Ruby
- A case for using git worktree
- Write code that is easy to change
- Why participate in a coding competition
- Resources to learn Ruby on Rails 7
- What to work on when learning a new language
- Ruby: What does && and || return?
- How to update multiple different values at the same time in one query
- How to assign multiple instance variables to a class in Ruby
- How to compare two arrays of hashes by value in Ruby
- API Design - choosing status code for a GET route
2021 9
- Active Record: How to select rows based on the number of items in an array column (PostgreSQL)
- Minimize dependencies when possible
- Ruby: Using .all? when the variable can be an empty array
- How to create a new project with Rails 7.0.0.rc1
- Shortfix: When updating Dockerfile to use ruby3.0.3-alpine pin alpine to alpine3.13
- Simple guidelines for working with Time and TimeZones for APIs
- Searching for live principles
- How to open rails console in safe mode on GCP k8s
- Using Concurrent::Promise while rescuing exceptions in Ruby