Articles that I have been reading

Week 2024-16

Dual-Boot Ruby on Rails Using Docker - FastRuby.io | Rails Upgrade Service

How can we use the Dual-Boot technique efficiently to upgrade our Ruby or Rails application when the workflow involves using Docker? Let's see 2 approaches.

Backend DevOps Ruby on Rails
Added: 17 Apr 2024
How to Set Up a Custom Email with Cloudflare and Mailgun

As a software engineer, you may consider having a professional email account along with your own website, like "[email protected]". But this may cost a certain amount that you'll not be willing to pay. But do you know you can do it for free? There is actually a way to do

Consulting Tools
Added: 16 Apr 2024

Week 2024-15

Rails: Environment Configuration (Magical) Instance

After instantiating your rails application, we have codes generated for us. Let’s focus on a particular section. Focus on the environments…

Ruby on Rails
Added: 13 Apr 2024
Let there be docs! A documentation-first approach to Rails API development—Martian Chronicles, Evil Martians’ team blog

We examine approaches to API documentation, with a case for why the documentation-first approach is beneficial, plus, we'll not only introduce a new Ruby gem, Skooma, that will be a revelation for those who are ready to follow this path, you can also read on for practical tips and advice for jumping in.

Ruby on Rails Testing Tools
Added: 09 Apr 2024
Work around Rails schema noise with one weird trick

The Rails robots that comprise Active Record do their best to be helpful by keeping your db/schema.rb file up to date — and tend to create pesky unwanted changes in your schema. Here’s an easy fix.

Database Ruby on Rails
Added: 09 Apr 2024

Week 2024-14

Optimized Model Auditing with PaperTrail

Learn how to optimize model auditing in your Rails application using the PaperTrail gem by setting up separate audit tables for each model, enhancing performance and organization in the auditing process

Backend Gem Ruby on Rails
Added: 07 Apr 2024
How I improved our CI build time from 24mins to 8mins and reduced costs by 50% | Owais

If you like fast CI builds, hate having to wait for an eternity for CI to complete a build after you open a PR, and love reducing infra costs, read on.

DevOps Ruby Ruby on Rails
Added: 06 Apr 2024
Table partitioning in Rails, part 1 - Postgres Stories - Blog - Visuality

In this part, I want to shortly explain, what partitioning actually is and how you can implement this mechanism for newly created table as partitioned table in Rails application. In the second part, I'll demonstrate an approach to migrate an existing table. So, let’s dive into the topic.

Database DevOps Ruby on Rails
Added: 03 Apr 2024
🍌The Banana Rule 🍌

A whimsical (but useful!) code style guideline

Consulting
Added: 01 Apr 2024

Week 2024-13

Pick a standard and move on - Remi Mercier - Ruby on Rails Developer

Why would you spend your cognitive capacity on useless choices?

Consulting
Added: 27 Mar 2024
The Complete Guide to Working With Cookies in Rails

This post covers almost everything you need to know about HTTP cookies in the context of Rails. We'll explore what a cookie is, why we need it, how to set & get a cookie, how to restrict cookies to a particular domain/path, prevent JavaScript access, how to sign & encrypt cookies, and much more.

Backend Ruby on Rails
Added: 27 Mar 2024
Start Using Docker Today - Hands On Examples for Developers

In this video, CJ shows hands on examples of when and where you can start using docker in your apps. He shows usage of the docker CLI, Docker Desktop, docker...

Consulting DevOps
Added: 26 Mar 2024
Why you need fewer developers than you think you do

It's a myth that more developers will speed up delivery. You can achieve more with less with simpler processes, simpler communication and fewer cross-team dependencies – which is why smaller teams …

Consulting
Added: 25 Mar 2024
How to enable reusability for `ActiveRecord::Base::normalizes` - Tobias L. Maier

This article reviews the new normalizes feature in Ruby on Rails 7.1 and shows how to increase reusability by creating normalizer modules.

Backend Ruby on Rails
Added: 25 Mar 2024
Rollup vs Esbuild for Rails
 | saaslit

Rollup and Esbuild can both handle JavaScript files in a Rails app. I made some little experiments, both locally and in-production.

Frontend Javascript Ruby on Rails
Added: 25 Mar 2024

Week 2024-12

Building a sortable table with Turbo 8’s page refreshes

Using Ruby on Rails and Turbo 8 to create a sortable table that maintains scroll position and page content as it sorts

Frontend HOTWire Ruby on Rails
Added: 24 Mar 2024
Why legacy code rewrites are the hardest job in software

Legacy codebases are often like tangled mazes, with convoluted logic, outdated practices, and patches upon patches. Here's what you need to know about rewriting vs. refactoring a legacy codebase.

Consulting
Added: 22 Mar 2024
Migrating from Sidekiq to Solid Queue with Scheduling

A short post where I share how I migrated Visualizer from Sidekiq to Solid Queue now that the latter supports scheduling.

Backend DevOps Ruby on Rails
Added: 22 Mar 2024
Automated Database Backups with Kamal

Intro

Backend DevOps Ruby on Rails
Added: 19 Mar 2024

Week 2024-11

Flash Messages (notifications) in Rails Apps

This article was originally published at Rails Designer. Flash has been a feature of Rails since...

Frontend HOTWire Ruby on Rails
Added: 17 Mar 2024

Exploring Turbo 8’s morphing page refreshes and refresh broadcast Turbo Stream actions in a Ruby on Rails application

Frontend HOTWire Ruby on Rails
Added: 17 Mar 2024
How Figma's Databases Team Lived to Tell the Scale | Figma Blog

Our nine month journey to horizontally shard Figma’s Postgres stack, and the key to unlocking (nearly) infinite scalability.

Database DevOps
Added: 17 Mar 2024
Creating and Uploading Huge Archive Files Swimmingly with Ruby | Ruby, Internet, and Programming

Posted on 19 September, 2020 at 00:00 UTC by Gentaro "hibariya" Terada

Backend Ruby on Rails
Added: 16 Mar 2024
Turbo Streaming Modals in Ruby on Rails | AppSignal Blog

In the second and final part of our series, let's turn to another method used to make modals accessible in Rails: Turbo Streams.

Frontend HOTWire Ruby on Rails
Added: 14 Mar 2024
Notes from migrating from Minitest to RSpec, with help from GitHub Copilot |
    
    Everyday Rails

Artificial intelligence hasn't replaced us yet, but how does it handle the boring parts of our jobs?

Consulting Ruby on Rails Testing
Added: 14 Mar 2024

Week 2024-10

Why Am I Talking?

As I am always on the look out for useful mental models, protocols and habits to improve the quality of dialogue, I spotted this little…

Consulting Soft Skills
Added: 06 Mar 2024
Honeybadger Now Supports Logging and Event Monitoring

Honeybadger recently added support for logging and event monitoring. It's one feature that I've been waiting for a while now, and I recently stumbled upon it randomly yesterday. This post shows how you can log events from your Rails apps to Honeybadger.

DevOps Ruby on Rails
Added: 06 Mar 2024
How we migrated from Sidekiq to Solid Queue

How we migrated to Solid Queue from Sidekiq

Backend DevOps Ruby on Rails
Added: 06 Mar 2024
Why Rails is a Great Choice for Startups in 2024

JavaScript is in the vogue now, but Ruby on Rails can become your startup’s secret competitive advantage.

Consulting Ruby on Rails
Added: 05 Mar 2024

Week 2024-9

How to use tomselect javascript library to create and edit a

Imagine that you have a classic has_many :through relation where you need to select several records out of thousands. Your form should be using an html select tag which would prove problematic if you had to select, say 5 records, out of 50.000 or mor...

Frontend Javascript Ruby on Rails
Added: 03 Mar 2024
Add a Kafka Consumer to Rails

Learn how to integrate a Kafka consumer into a Rails application

Backend DevOps Ruby on Rails
Added: 03 Mar 2024
Memory issue after Rails upgrade

I upgraded a bunch of sites to Rails 7.1 recently and the ones deployed on Heroku started to show some massively increased memory usage: How could my app that was using ~128mb of memory be using four times as much with Rails 7.1? Well, its turns out that there was a change made to the default Puma config to make use of all available co...

DevOps Ruby on Rails
Added: 27 Feb 2024

Week 2024-8

Building View Transitions in Turbo with Rails

Learn to use View Transitions in Ruby on Rails with Turbo Frames and Real-Time updates from Turbo Streams.

Frontend HOTWire Ruby on Rails
Added: 21 Feb 2024

Week 2024-7

The Plan for Rails 8

Documentation and guides from the team at Fly.io.

Ruby on Rails
Added: 16 Feb 2024
Traefik Tunning for Rails Applications (part 1)

For many years Nginx has been a default solution to serve as a reverse proxy for Rails applications. However, with the release of Kamal, the Rails community opened Traefik as a new reverse proxy solution. Within my 15 years of experience with Rails, I created an almost perfect configuration for Nginx that migrated through all my projects. With Traefik, I had to start from scratch.

DevOps Ruby on Rails
Added: 16 Feb 2024
How We Built Unique Social Preview Images for Pika — Good Enough

One of the goals of Pika, the happy blogging software that we recently launched, is to help you find your own place on the internet. Along with a nice place on the internet, when you share links to your blog we want them to represent your internet home, which you've likely taken a little time to make just so. Sharing your blog on social networks, text messages, Slack, or wherever should be an experience that makes you smile, and that's why we built custom social preview images for your blog. But how did we do it?

Frontend Ruby on Rails
Added: 14 Feb 2024
How we teach front-end development using vanilla JS

Or, a proposal on how to structure JS code for simple web apps.

Frontend Ruby on Rails
Added: 12 Feb 2024
Custom URL Helpers in Rails with the direct Method

This is the first post in the Campfire deep dive series where we explore the first ONCE product from 37signals to learn and extract useful patterns, ideas, and best practices. This post explores the direct method in the Rails Router that lets you define custom URL helpers for your application.

Backend Frontend Ruby on Rails
Added: 12 Feb 2024

Week 2024-6

Understanding the difference between output and outcome - LogRocket Blog

Outcomes are end goals you try to achieve (often referred to as “product impact”), whereas outputs are the means to achieve these outcomes.

Consulting
Added: 10 Feb 2024
Read the .ruby-version into your Gemfile

A lovely little improvement to your life when upgrading Ruby

Ruby Ruby on Rails
Added: 07 Feb 2024
A Reasonable way to manage Auth in your React App

Authentication is almost part of every modern web application these days, even the not-so-useful apps...

Frontend
Added: 05 Feb 2024

Week 2024-5

Top 5 Active Record Tips to Make Your Code More Efficient

Rails' Active Record library is full of methods you can use to streamline queries, reduce memory bloat, and avoid excessive database calls.

Backend Database Ruby on Rails
Added: 02 Feb 2024
Serving ActiveStorage Attachments Through a CDN - FastRuby.io | Rails Upgrade Service

To obtain good performance and low latency for any user accessing our site, we often use CDNs to serve our static assets. This article shows how to do the same for ActiveStorage attachments.

Backend Ruby on Rails
Added: 02 Feb 2024
Ruby's Exceptional Creatures

Exceptional Creatures is Honeybadger.io's documentation of Ruby's exception system, with a twist. Collect them all!

Consulting Ruby on Rails
Added: 02 Feb 2024
Tech stack for my email courses project

Efficient email courses tech stack: Ruby, Rails, SQLite, litestack, Avo, Tailwind, ERBs, Phlex, Minitest, Sitepress, Debug, Propshaft, Hotwire, direnv...

Consulting Ruby on Rails
Added: 02 Feb 2024
How to Delay a Rails Upgrade - FastRuby.io | Rails Upgrade Service

In this blog post, we'll explore steps you can take when you aren't going to upgrade Ruby on Rails right away but want to get ready for an upgrade.

Backend Consulting Ruby on Rails
Added: 02 Feb 2024
How to deal with PostgreSQL Backups using Kamal // Stefan Botzenhart

Streamlining Database Backups with Kamal: A Guide to Efficient and Secure Data Management in Containerized Environments.

Backend Database DevOps Ruby on Rails
Added: 02 Feb 2024
Rails Performance Unveiled: Identifying Common Culprits - FastRuby.io | Rails Upgrade Service

In this article, we will look at the different strategies that you can apply to improve the performance of the application while not focusing on where to apply these strategies.

Consulting Ruby on Rails
Added: 02 Feb 2024
Got some rhythm?

Using a scale to find that vertical rhythm

CSS Frontend
Added: 02 Feb 2024
The link_to helper in Rails - Rails Tricks Issue 25

The link_to helper in Rails creates an anchor element with the given URL and options. Although the helper has a simple task, it can be used in quite a few ways, and in this article, I will try to cover most of them. Let’s start with creating a simple link:

Frontend Ruby on Rails
Added: 02 Feb 2024
Rails 7.1 construct CTE using .with query method

In Rails 7.1 .with query method makes it super easy to build and chain complex Common Table Expression CTE queries.

Backend Database Ruby on Rails
Added: 31 Jan 2024

Week 2024-4

How (and why) to run SQLite in production | Fractaled Mind

This is my personal site, where I write about Ruby, programming, and any of my varied fascinations.

Backend Database Ruby on Rails
Added: 26 Jan 2024
Self-hosted observability stack for Ruby on Rails apps | Michal Kazmierczak

Observability is becoming a standard. Cloud observability providers deliver a high-end solutions for the storage and visualization of the telemetry data. Yet, application owners may consider an entirely in-house approach. Here is how you can achieve it for a Ruby on Rails app.

DevOps Ruby on Rails
Added: 26 Jan 2024
Rails advanced routing constraints

Learn how to authorize requests at the routing layer to improve security and ergonomics.

Backend Ruby on Rails
Added: 26 Jan 2024
3 Question Framework – How to Respond Without Reacting

Over-communicating is key, over-reacting is not. It’s important to find the balance on when to respond to messages and when to keep still.

Consulting Soft Skills
Added: 22 Jan 2024

Week 2024-3

Automating Deployments with Kamal and GitHub Actions

Comprehensive guide to automating Ruby on Rails web app deployments using Kamal and GitHub Actions. Includes installation guide and sample GitHub Actions configuration.

Backend DevOps Ruby on Rails
Added: 19 Jan 2024
Effortless Deployment of Web Applications with Kamal

Learn how Kamal simplifies web app deployment with features like zero downtime, incremental rollouts, and flexible configuration. Ideal for developers.

Backend DevOps Ruby on Rails
Added: 19 Jan 2024
Should you use Hotwire or a Frontend framework on your next Rails project?

I am writing this for the senior engineer or tech lead that is deciding whether to use Hotwire or a Frontend framework (e.g. React, Vue, Svelte …) for the frontend portion of the next Rails project. If this is you, read on. The key factor You have already gone over the usual list of factors that you consider for every new project no matter what tech stack it is on: the expertise of your team members, technologies used on existing projects at your company, available libraries or ready solutions. These are table stakes, you’ve considered them like you always do and for this project, they’re not pointing either way. I will make a case that, once those fundamental questions are cleared, there is one that is specific to this decision and stands above all others: How is the complexity of the project distributed between shared state management and visual interactions? Most of the cost of software is in maintenance and most of the cost of maintenance comes from the complexity of our solution. Picking a tech stack that is well suited for managing the kind of complexity you are facing will make it easier to keep the complexity under control. The point will become clearer once we consider the two extremes.

Frontend Javascript Ruby on Rails
Added: 18 Jan 2024
Alternative BigInt ID identifiers for Rails

Rails comes with default BigInt IDs for your primary keys since version 5.1 (replacing regular Int) and offers UUID v4 as an supported alternative since version 6. But what are the alternatives and what to use in your next app?

Backend Database Ruby on Rails
Added: 15 Jan 2024
Here's what's coming in Rails 8

Work on Rails 8 is starting, so I dug through the official GitHub milestone to break down all the upcoming goodies for you. There's plenty coming, including Solid Queue, Solid Cache and Kamal becoming defaults, better support for PWAs, an official LSP, and more!

Backend Ruby on Rails
Added: 15 Jan 2024
Rails 7.1 Introduced Validate Option For Enums

Rails 7.1 added a validate option for enums, which will allow developers to validate the passed enum values before saving it.

Backend Ruby on Rails
Added: 15 Jan 2024
Container Style Queries | 12 Days of Web

Exploring new ways of approaching CSS by querying custom properties and their values.

CSS Frontend
Added: 15 Jan 2024

Week 2024-2

Introduction to Testing React Components with Vite, Vitest and React Testing Library

Originally published on my blog: https://bogr.dev/blog/react-testing-intro/ This article assumes a...

Frontend Javascript Testing
Added: 14 Jan 2024
How to deploy Rails with Kamal, PostgreSQL, Sidekiq and Backups on a single host | Guillaume Briday

In the previous post, How to deploy Rails with Kamal and SSL certificate on any VPS, we saw how to deploy a simple Rails application with Kamal and Docker. But it was intentionally very simple and even if it might be enough for some applications like…

DevOps Ruby on Rails
Added: 08 Jan 2024

Week 2024-1

Here's what's coming in Rails 8

Work on Rails 8 is starting, so I dug through the official GitHub milestone to break down all the upcoming goodies for you. There's plenty coming, including Solid Queue, Solid Cache and Kamal becoming defaults, better support for PWAs, an official LSP, and more!

Ruby on Rails
Added: 05 Jan 2024
Our move to generated SDKs

GitHub SDKs: software generated meets hand curated.

Added: 04 Jan 2024
8 Turbo 8

Documentation and guides from the team at Fly.io.

Frontend HOTWire Ruby on Rails
Added: 04 Jan 2024
Self-hosting a high-availability Postgres cluster on Kubernetes

Deploying an HA Postgres cluster using Zalando w/ K8s.

Database DevOps
Added: 03 Jan 2024

Week 2023-52

The LinkedIn DPH Framework

Welcome to the LinkedIn Developer Productivity and Happiness Framework!

Consulting Staff Engineer
Added: 28 Dec 2023
Turbo 8 Page Refreshes (+ Morphing) Explained at Length

Everything you ever wanted to know about Turbo 8's Page Refreshes, Morphing, and its design style

Backend Frontend HOTWire Ruby on Rails
Added: 27 Dec 2023
Route-Based Scaling on Kubernetes for Rails Monoliths

Can we deploy a Rails monolith with audience-based scaling without breaking it up?

DevOps Ruby on Rails
Added: 26 Dec 2023

Week 2023-50

Why you should write good epics

Who knew grouping things could bring so many benefits.

Consulting
Added: 12 Dec 2023

Week 2023-49

Approximated.app

Reliably automate custom domains at any scale

Backend Ruby on Rails
Added: 09 Dec 2023
Develop the right thing every time and become a 10x engineer 🏆: The art of writing RFCs 🥋

Imagine you’ve been tasked to implement a crucial new feature in the product you’re working on....

Consulting Staff Engineer
Added: 08 Dec 2023

Week 2023-48

Turbo 8 in 8 minutes

Documentation and guides from the team at Fly.io.

Frontend HOTWire Ruby on Rails
Added: 30 Nov 2023

Week 2023-47

Ruby HTML Sanitization with Loofah

Need to do some HTML sanitization, but Rails ActionView Sanitize Helpers are not good enough? Read this post to learn how to do it with Loofah.

Backend Ruby
Added: 24 Nov 2023
3 ways to model an associated collection in Rails

A look at the Postgres array type and good old join tables, each with their advantages and disadvantages.

Backend Ruby on Rails
Added: 24 Nov 2023
Using thor for command line tasks

Last week, while creating a small Rails app for myself, I had to import data from an XML file. I wanted to add a command line task for it. I could’ve used rake for this, but I needed to input the path to the file through a command line parameter, and rake isn’t ideal for that. Fortunately, there’s another tool that’s better suited for this task: Thor.

Backend Ruby
Added: 21 Nov 2023
Architecting for profit: A blueprint for modern cloud economics

If the role of a good cloud architect is to design and build cost-effective software, is there a formula to achieve that goal every time?

Consulting DevOps
Added: 21 Nov 2023
For clarity merging hashes use with_defaults

A hash merge, but backwards for readability

Backend Ruby Ruby on Rails
Added: 20 Nov 2023
Renuo – HTML templating with Mustache.js and Stimulus

It is sometimes impossible to render HTML directly in Rails, for example, when you need to procedurally generate HTML from JavaScript. There are some approaches, but one sticks out: Template tags && t...

Frontend Javascript Ruby on Rails
Added: 20 Nov 2023
Securing User Emails in Rails with Lockbox

This is an update to Securing User Emails in Rails with a number of improvements: Works with Devise’s email changed notifications Works with...

Backend Ruby on Rails
Added: 20 Nov 2023
GitHub - ankane/secure_rails: Rails security best practices

Rails security best practices. Contribute to ankane/secure_rails development by creating an account on GitHub.

Backend Ruby on Rails
Added: 20 Nov 2023

Week 2023-46

Top 8 PostgreSQL Extensions

Check our eight top PostgreSQL extensions, along with sample queries and instructions.

Backend Database
Added: 18 Nov 2023
Preventing bugs in Ruby: tools of the trade

Intro

Consulting Ruby on Rails
Added: 18 Nov 2023
Creating Accessible UI Animations — Smashing Magazine

Animation and accessibility are often seen as two separate powers at odds with one another. How is it possible to strike a balance between elements that move and the possible negative effects they expose to users who are sensitive to motion? Oriana García explains how her team at Mercado Libre tackled the challenge by creating guiding principles for applying animation to user interfaces and incorporating them into the team’s design system.

Design Frontend
Added: 15 Nov 2023
Announcing Angular.dev

Today, we are excited to launch Angular.dev — the future home for Angular developers.

Frontend Javascript
Added: 15 Nov 2023
It's Never Been Better Time to Be a Full-Stack Developer

In today’s technical landscape, deep expertise in niche areas is often celebrated. However, the value of being a versatile 'Jack of all trades' should not be overlooked. Technical fields have grown increasingly divergent, with a clear split between front-end and back-end development leading to a surge in specialization

Consulting Ruby on Rails
Added: 13 Nov 2023
DIY PaaS: serverless real-time with one command—Martian Chronicles, Evil Martians’ team blog

Choose a scalable and maintainable real-time solution today to stay happy and productive tomorrow. Consider an open source service you can run on a modern cloud with one command as an alternative to expensive PaaS.

Backend
Added: 13 Nov 2023
Building Basecamp project stacks with Hotwire

How we improved project organization in Basecamp using Hotwire to build on top of a legacy drag-and-drop interface.

Backend Frontend HOTWire Ruby on Rails
Added: 13 Nov 2023

Week 2023-45

Integration Patterns for Distributed Architecture - Kafka at Smily

Let's discuss how we use Kafka in Smily, how we got where we are now, and how the overall architecture has evolved over time.

Backend DevOps Ruby on Rails
Added: 09 Nov 2023
The Software Engineer's guide to saying

A 3 part framework for saying "no" + how to apply it + examples

Consulting Soft Skills
Added: 08 Nov 2023
A quick dive into query_constraints config in Rails 7.1

The query_constraints config introduced in Rails 7.1 is helpful for pre-setting the DB query constraints on the ActiveRecord models.

Database Ruby on Rails
Added: 07 Nov 2023

Week 2023-44

Simple Screen Recorder in 20 lines of JavaScript

Let's say you're fed up of the state of screen recorders' paywalls and limitations and want to go on...

Frontend Javascript
Added: 02 Nov 2023
Deploying Rails on a single server with Kamal

Here’s one way of a cloud-independent deployment of Rails, Sidekiq, PostgreSQL, and Redis on single virtual server with Kamal.

DevOps Ruby on Rails
Added: 01 Nov 2023
Are you absolutely sure you know how to use the button element?

Read this the next time you need to build a complicated form.

Frontend Ruby on Rails
Added: 31 Oct 2023

Week 2023-43

Give it five minutes

A few years ago I used to be a hothead. Whenever anyone said anything, I’d think of a way to disagree. I’d push back hard if something didn’t fit my world-view. It’s like I had to be first with an opinion – as if being first meant something. But what it really meant…

Soft Skills
Added: 27 Oct 2023
Setting up a custom domain with Netlify with Cloudflare SSL - Mike Street - Lead Developer and CTO

In this post we are going to set up a custom domain in Netlify using Cloudflare. We will also install a self signed Cloudflare certificate on Netlify to ensure end-to-end encryption.

Consulting DevOps
Added: 23 Oct 2023

Week 2023-42

Postgres Goodies in Ruby on Rails 7.1

We are excited about some of the Active Record updates with Rails 7.1! Chris reviews some of the notable new features for working with Postgres including async queries, composite primary keys, native support for ctes, unlogged tables, and syntax normalization.

Backend Database Ruby on Rails
Added: 18 Oct 2023

Week 2023-41

Why You Might Not Want to Run `Rails App:update`. - FastRuby.io | Rails Upgrade Service

This article explains what rails app:update is, why you might not want to run rails app:update when upgrading Rails applications, and what you can try instead.

Ruby on Rails
Added: 15 Oct 2023
My Recipe for Optimizing Performance of Rails Apps

Rails performance audits and tuning have been my main occupation and source of income for over a year now. In this blog post, I'll share a few secrets of my trade. Read on if you want to learn how I approach optimizing an unknown codebase, what tools I use, and which fixes are usually most impactful. You can treat this post as a generalized roadmap for your DIY performance audit with multiple links to more in-depth resources.

DevOps Ruby on Rails
Added: 15 Oct 2023
How to communicate like a GitHub engineer: our principles, practices, and tools

Learn more about how we use GitHub to build GitHub, how we turned our guiding communications principles into prescriptive practices to manage our internal communications signal-to-noise ratio, and how you can contribute to the ongoing conversation.

Soft Skills
Added: 15 Oct 2023
Some ViewComponent tips (how I write them)

In this article, I share tips for writing Rails ViewComponents, based on my experience building RailsNotes UI, and other projects. If you use ViewComponents in your Ruby on Rails apps, read this article!

Frontend Ruby on Rails
Added: 15 Oct 2023

This documents my methodology of taking an accepted talk proposal and building the slides and content around it.

Soft Skills
Added: 13 Oct 2023
pg_bm25: Elastic-Quality Full Text Search Inside Postgres - ParadeDB

Today, Postgres’ native full text search, which uses the tsvector type, has two main problems:

Database
Added: 13 Oct 2023
GitHub - rkrage/pg_party: ActiveRecord PostgreSQL Partitioning

ActiveRecord PostgreSQL Partitioning. Contribute to rkrage/pg_party development by creating an account on GitHub.

Backend Database Gem Ruby on Rails
Added: 13 Oct 2023
5 best practices for preventing chaos in Tailwind CSS—Martian Chronicles, Evil Martians’ team blog

Tailwind CSS has become a very popular CSS framework, and it can speed up development. But using it without proper caution can add mayhem to your code. Learn best practices to avoid getting swept away!

CSS Frontend
Added: 13 Oct 2023
Ruby on Rails Best Practices

Some Do’s and Don’ts to keep in mind while coding in ruby on rails 1. Fat Model, Skinny Controller It is a commonly used phrase when talking about rails best practices.It basically means placing mo…

Ruby on Rails
Added: 13 Oct 2023
14 ways to Reduce Risk with Feature Flags

The use of feature flags for development and release process can provide multiple benefits that reduce risk related to new functionality or large releases.

Backend Ruby on Rails
Added: 13 Oct 2023
Build the Framework You Need

Or how to retain the vanilla Rails feel beyond the early stages.

Backend Consulting Ruby on Rails
Added: 11 Oct 2023
A happier happy path in Turbo with morphing

Turbo 8 is coming with smoother page updates and simpler broadcasts.

Frontend HOTWire Ruby on Rails
Added: 11 Oct 2023
Rack Attack 404 errors and custom response message - Rails Tricks Issue 20

This week I will show you another Rack Attack trick.

Backend Ruby on Rails
Added: 10 Oct 2023

Week 2023-40

Opportunity solution trees: Definition, examples, and how-to - LogRocket Blog

An opportunity solution tree (OST) is a discovery tool that helps product teams visualize the best path to achieve a desired outcome.

Added: 05 Oct 2023
Choosing a Postgres Primary Key

Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out

Backend Database
Added: 04 Oct 2023
Dynamic Table Partitioning in Postgres

Learn how to scale large postgres tables in place and increase query performance.

Backend Database
Added: 04 Oct 2023
Simplify sharing with built-in APIs and progressive enhancement - Set Studio

Instead of leaning into heavy social sharing widgets, you can create a truly user-friendly social sharing component that works for everyone, using built-in APIs and progressive enhancement.

CSS Frontend Javascript
Added: 04 Oct 2023
The TLDR on Ruby's new TLDR testing framework

It's 2023, and it's time for a totally new way to run your tests. Here's how the new TLDR test runner can save you from a life of avoiding your slow tests

Added: 03 Oct 2023
“I have a bad English accent”

You can hear my home country from my first sentence. And so what?

Added: 03 Oct 2023

Week 2023-39

Scaling our Ruby on Rails monolith using Packwerk (Part 1)

In this series of articles, we will share our experience with adding Packwerk to a large, fast-growing codebase.

Ruby on Rails
Added: 30 Sep 2023
Testing Stripe Webhooks with Minitest | Kyle Keesling

Kyle Keesling is an Indianapolis-based Ruby on Rails developer. He enjoys coding, cargo bikes, and playing hurling.

Backend Ruby on Rails Testing
Added: 29 Sep 2023
The Importance of Postgresql Indexes in Your Rails Application - RailsReviews

Optimize your Ruby on Rails application's performance by identifying and rectifying missing or inefficient Postgresql indexes through insightful SQL queries.

Backend Database Ruby on Rails
Added: 29 Sep 2023
18 Tools and Techniques to Improve Rails Application Performance

Within almost 15 years of our history we collected a quite vast collection of tools and techniques that help us to provide the best performance to our clients projects.

Backend DevOps Ruby on Rails
Added: 28 Sep 2023

Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration.

Ruby on Rails Testing
Added: 28 Sep 2023
Refactoring from feature specs to system specs

In this article, I break down the difference between system specs and feature specs in RSpec and Rails, and walk you through refactoring your feature specs to system specs.

Ruby on Rails Testing
Added: 28 Sep 2023
Ruby on Rails - September 2023

The only Ruby on Rails newsletter you will every need!

Ruby on Rails
Added: 28 Sep 2023
Bricolage | Some notes on Local-First Development

A few months ago in June, I attended a local-first meetup in Berlin organized by Johannes Schickling, formerly the founder of Prisma. An…

Added: 28 Sep 2023
Strada officially launched! | Masilotti.com

A first look at Strada, the last missing piece of Hotwire. Let's explore how it unlocks native components driven by the web in Turbo Native apps.

Ruby on Rails
Added: 28 Sep 2023
Build dynamic navs with current_page? (and conditional classes)

This article explores a dynamic nav component I built using the current_page? helper method, plus Rails' conditional class helpers. The result? A simple, dynamic navbar component, with different styling based on current page. Plus I threw in the ViewComponent version too 😉

Frontend Ruby on Rails
Added: 28 Sep 2023
Rails form_with

This week I want to tell you about the form_with Rails helper. It was introduced in Rails 5.1, and the goal of this helper was to unify the form_for and the form_tag helpers. form_for requires a model instance or a scope and puts the attributes into a hash, so usually when you needed a form in the past where you didn’t want to put them scoped into a hash, you used form_tag.

Frontend Ruby on Rails
Added: 28 Sep 2023
Choose Postgres queue technology

Introduction Postgres queue tech is a thing of beauty, but far from mainstream. Its relative obscurity is partially attributable to the cargo cult of “scale”. The scalability cult has decreed that there are several queue technologies with greater “scalability” than Postgres, and for that reason alone, Postgres isn’t suitably scalable for anyone’s queueing needs. The cult of scalability would rather we build applications that scale beyond our wildest dreams than ones that solve real problems beyond our wildest dreams.

Backend Consulting Database DevOps
Added: 28 Sep 2023
Deploying a Rails app with Kamal

This is an updated version of the post I wrote about MRKS in the past.

DevOps Ruby on Rails
Added: 28 Sep 2023

Week 2023-38

Intelligent vs. Smart

Here’s an important distinction to make in life.

Soft Skills
Added: 24 Sep 2023

Week 2023-37

Build Drag and Drop with Rails Hotwire

Introduction Hey there, fellow web adventurers! 😄 Building web applications can be a wild...

Backend Frontend HOTWire Ruby on Rails
Added: 14 Sep 2023
Mining Gold in Digital Conversations

How I used artificial intelligence and async programming to transform interesting conversations into blog posts.

Added: 13 Sep 2023
Express yourself clearly with positive? and negative? for numbers

Syntactical sugar to avoid comparison operators

Backend Ruby
Added: 13 Sep 2023
The undeniable power of the career-changer

Career changers have a lot more to offer than meets the eye—especially in tech!

Soft Skills
Added: 13 Sep 2023

How to plan and execute the refactoring of you Ruby application

Backend Consulting Ruby on Rails
Added: 13 Sep 2023

Week 2023-36

Why choose Ruby on Rails

Choosing the right web framework for your project is a crucial decision. In this article, we'll take a look at Ruby on Rails and three pros and cons for the framework from a developer's perspective.

Consulting Ruby on Rails
Added: 06 Sep 2023

Week 2023-35

Building a basic API client in Ruby

Building out a basic Ruby API client using the http gem, tested with webmock.

Backend Ruby on Rails
Added: 02 Sep 2023
Building a real-time user page detector

Recently for RelationKit.io I wanted to build a system to help show other users on the same account if another person is on the same page as them to avoid embarrassing duplicate replies on support tickets. While thinking about how to build this, I wondered if I could use Turbo to build it without any custom JavaScript and the answer is a resounding yes.

Frontend HOTWire Ruby on Rails
Added: 02 Sep 2023
What does a developer do during a product discovery sprint?

How to help your team discover the right product using your technical know-how.

Consulting
Added: 01 Sep 2023
12 Best Practices to ABSOLUTELY Destroy Your Codebase! 🧨

Are you tired of writing clean, maintainable code? Do you yearn for spaghetti code that's...

Consulting
Added: 01 Sep 2023
Speed up your Rack application with HTTP

You don’t need a sophisticated caching mechanism to improve your application’s performance. All you need is a basic understanding of the HTTP specification.

Backend Ruby on Rails
Added: 31 Aug 2023
Dependent Dropdowns with Hotwire - Rails Tricks Issue 17

This week I will show you how to make dependent dropdowns with Hotwire! I will use a toy app as an example. This app will have a page where addresses can be created. The address will consist of a country, a state, a city, and a postcode. Except for the postcode, we will have a list of options coming from the database and when the user selects the country, we load the states for the selected option. When the user selects the state we will load the cities in that state. Let’s start by generating a Rails app, the necessary models and a scaffold for the address:

Frontend HOTWire Ruby on Rails
Added: 29 Aug 2023

Week 2023-34

10 Strategies for Upgrading Ruby or Rails Applications With Low Test Coverage - FastRuby.io | Rails Upgrade Service

Upgrade your Ruby or Rails application confidently, even with low test coverage, by implementing the strategies and best practices outlined in this blog post.

Backend Consulting Ruby on Rails
Added: 27 Aug 2023
How to work on client problems rather than solution requirements

Here is one strategy to move a client from providing your team with a list of requirements to working on the root problem together.

Consulting Design
Added: 26 Aug 2023
A simple Stimulus Tabs Controller

In this article, I share a handy Stimulus controller for adding tabs to your Rails apps. I also show you a different variation of the controller, and how to add it to your views. Plus, I've included a handy tip to avoid the annoying "flashing in" effect that can happen if you're not careful.

Frontend Javascript Ruby on Rails
Added: 26 Aug 2023
The ideal viewport doesn’t exist

Before you settle on basing design decisions on a handful of strict breakpoints, make sure you consider the vast fragmentation of screen sizes and browser viewports.

CSS Design Frontend
Added: 26 Aug 2023
Rails upsert - Tricks Issue 16

This week, I will show you how to make data imports blazing fast with Active Record.

Backend Frontend Ruby on Rails
Added: 26 Aug 2023
An Overview of CSS Sizing Units — SitePoint

Explore the four broad categories of CSS sizing units, how to apply them in your layouts, and how to choose the best ones in each scenario.

CSS Frontend
Added: 25 Aug 2023
Use removable models in Rails nested attributes

In many Rails based systems we can find models that should not be destroyed but should be tagged as...

Backend Frontend Ruby on Rails
Added: 24 Aug 2023
How to create an RSS feed with Ruby on Rails

Many moons ago, RSS was all the hype. With fewer publication engines like Medium, Substack, and other newsletter-style engines, most people would create thei...

Backend Frontend Ruby on Rails
Added: 24 Aug 2023
Rails 7.1 adds picture_tag helper to support HTML5 picture element

Rails 7.1 adds the picture_tag helper method that renders the HTML picture tag for handling responsive images.

Frontend Ruby on Rails
Added: 24 Aug 2023
Rails 7.1 enhances PostgreSQL enum functionality

Rails 7.1 adds rename_enum, add_enum_value and rename_enum_value commands to DB migration extending support for PostgreSQL enums.

Backend Database Ruby on Rails
Added: 24 Aug 2023

“Rails Magic” is one of the terms I have heard a lot. Rails indeed is a magical framework as it does a lot under the hood. Yet, it can feel “too magical” for a new Rails dev.

Frontend Ruby on Rails
Added: 24 Aug 2023
Advanced Active Record

Optimizing Performance and Robustness with Locking, UUIDs, Fulltext Search, Database Views, and Geospatial Data

Backend Database Ruby on Rails
Added: 24 Aug 2023

Week 2023-33

Rails static pages - Rails Tricks Issue 15

Hi there,

Backend Frontend Ruby on Rails
Added: 16 Aug 2023

Hotwire and Turbo are great for very quickly and easily adding real-time updating of webpages without requiring the browser to reload the whole page.

Frontend HOTWire Ruby on Rails
Added: 16 Aug 2023
Optimized Dockerfile: YJIT + jemalloc + bootsnap

Development, Test and QA SMTP server for all of your email needs. Mailsnag lets you build resilient SMTP integrations while protecting you from spamming customers during testing.

Backend Ruby on Rails
Added: 16 Aug 2023
Introducing PGMQ: Simple Message Queues built on Postgres | Tembo

We’ve released PGMQ, a packaged extension for message queues on Postgres.

Database
Added: 16 Aug 2023
Ruby on Rails Components Necessity

Explore Rails Components for improved, aesthetic frontend in Ruby on Rails apps, offering shareable, encapsulated functionality like React Components

Frontend Ruby on Rails
Added: 16 Aug 2023

Kevin Newton

Backend Database Ruby on Rails
Added: 16 Aug 2023
How to Add Database Triggers in Ruby on Rails?

Overview In this article, we are going to discuss the usage of database triggers in Ruby...

Backend Database Ruby on Rails
Added: 16 Aug 2023
Using Concerns with Ruby on Rails

Rails Concerns are a great way to keep your code DRY by making it easy to share code across Modules and Classes. The post will be going through some of the in-and-outs of Concerns, why they’re useful and how to use them.

Backend Ruby on Rails
Added: 15 Aug 2023
GitHub - afomera/richer_text: RicherText is a Rich Text Editor based on TipTap for Ruby on Rails

RicherText is a Rich Text Editor based on TipTap for Ruby on Rails - GitHub - afomera/richer_text: RicherText is a Rich Text Editor based on TipTap for Ruby on Rails

Gem Ruby on Rails
Added: 15 Aug 2023
10 Postgres tips for beginners | Database branching for any Postgres DB · Postgres.ai · DBLab

Getting started with PostgreSQL can be both exciting and challenging. It's more than just another database—it's a system packed with features that can change how you handle data. Every Friday, Michael (pgMustard) and I discuss these features on our podcast, Postgres.FM (there is also a video version on YouTube). We've been at it for 55 weeks straight since July 2022, and we're not stopping anytime soon. Our latest episode was all about helping newcomers to PostgreSQL. After seeing the huge response to my tweet, which got over 200k views, 1200+ likes, and 200+ retweets, I wanted to dig deeper and share more about these essential tips. Here are those 10 tips (+bonus) Michael and I have discussed... continue reading »

Backend Database
Added: 15 Aug 2023
Basics of JSON | Tutorials | Crunchy Data

Learn JSON interactions including manipulating, querying, saving, and optimizing a simple object structure.

Backend Database
Added: 15 Aug 2023
An Introduction to Metaprogramming in Ruby | AppSignal Blog

Explore some of the fundamentals of metaprogramming in Ruby.

Backend Ruby
Added: 15 Aug 2023
The new @font-face syntax

Using variable fonts and color fonts with @font-face.

CSS Frontend
Added: 15 Aug 2023
Forecasting the Future: Intro to Machine Learning in Ruby (RailsConf 2023)

Inspired by a desire to understand why more engineers weren't using Ruby for their machine learning (ML) projects, I embarked on a journey to determine if I ...

Backend Ruby on Rails
Added: 15 Aug 2023
YouTube

Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.

Backend Ruby on Rails
Added: 15 Aug 2023
Active Storage in production: lessons learned and in-depth look at how it works

1. Introduction In my company, we lucked out that Rails 5.2 (and Active Storage) was released just before we needed to implement user uploads. This means that we’ve been using it in production for over 5 years, across 3 different hosts (Heroku, AWS, and GCP) and 3 different storage providers (S3, GCS, and R2). Our primary use case is image galleries, either of products we sell, or user-uploaded images for their wedding/birthday/baby shower websites. This means that we rely heavily on image tran...

Backend Ruby on Rails
Added: 14 Aug 2023

Week 2023-32

Supercharge your Stimulus controllers with Custom APIs

Marco Roth - marcoroth.dev

Frontend Javascript Ruby on Rails
Added: 13 Aug 2023
Supavisor: Scaling Postgres to 1 Million Connections

Supavisor is a scalable, cloud-native Postgres connection pooler. We connected a million clients to it to see how it performs.

Backend Database
Added: 13 Aug 2023

In a project I'm working on right now I've been using a Rails nested form and a couple of things caught me off guard.

Backend Frontend Ruby on Rails
Added: 10 Aug 2023
ActiveStorage S3: Direct Drag-Drop Uploader

Build a drag-and-drop ActiveStorage S3 Direct Uploader using Rails and Direct Uploads. Follow instructions for model, S3, and view setup

Backend Frontend Ruby on Rails
Added: 08 Aug 2023

Week 2023-31

Advanced Usages of Devise for Rails | AppSignal Blog

Let's dive into some advanced usages of Devise, including the use of OmniAuth, API authentication, and Authtrail.

Backend Ruby on Rails
Added: 02 Aug 2023
Diversity, Equity, Inclusion and Building Great Teams - One Recruiter’s Rambling Thoughts on Inclusive Hiring

An overview of our own hiring process and how we weave in inclusive hiring best practice throughout.

Added: 02 Aug 2023
Projects to code while learning Ruby and Ruby on Rails

Discover beginner Ruby & Rails projects: Meal Planner, Lists Share, Habit & Symptom Trackers, SWOT Analysis; learn by problem-solving

Consulting Ruby on Rails
Added: 02 Aug 2023

Week 2023-30

GitLab Dev Deletes Entire Production Database

In this article, we’ll look at how a developer’s mistake caused GitLab to lose six hours of data from...

Added: 28 Jul 2023
Here’s why you shouldn’t treat employee mental health as a mental health problem

Simply trying to tackle the issue as it happens is not a sustainable solution, says new research.

Soft Skills
Added: 27 Jul 2023
Are you absolutely sure your Rails caching strategy isn't leaking sensitive information?

Rails writes a new cache entry based on the first request. But what happens when that request is from an admin?

Backend Ruby on Rails
Added: 27 Jul 2023
Computed columns with the find_by_sql method in a Rails application

Introduction Ruby is a beautiful expressive programming language. Like many other...

Backend Ruby on Rails
Added: 26 Jul 2023
Invisible Details of Interaction Design

What makes great interactions feel right?

Frontend
Added: 25 Jul 2023
New in CSS: relative colors

Learn how relative CSS colors enable color manipulations.

CSS
Added: 25 Jul 2023

Week 2023-29

Implementing Deep Linking in React Native: A Quick Step-by-Step Guide

A quick step-by-step guide on implementing deep linking in React Native application, enabling users to seamlessly access specific screens or content within the app.

Frontend
Added: 22 Jul 2023
Why Adaptive Rate Limiting is a Game-Changer

Learn how rate limiting works from real life examples, what are limitation of traditional rate limiting and why adaptive rate limiting is needed.

Backend
Added: 21 Jul 2023
GitHub pull request merge strategies

An overview of what the options provided by the pull request merge button on GitHub do and how to make the best out of each strategy.

Tools
Added: 20 Jul 2023

N+1 queries are not always a problem, but I have seen that most of the n+1 queries that are really a problem are when we need to fetch data to compute something. Here I will try to share some examples of posible expensive computations candidates to...

Backend Ruby on Rails
Added: 20 Jul 2023
Why engineers should focus on writing - Dmitry Kudryavtsev

All engineers are good writers... of code. But I believe that in order to a become better engineer–you should improve your writing skills.

Soft Skills
Added: 20 Jul 2023
Citus 12: Schema-based sharding for PostgreSQL

Release blog post for the 12.0 release of the Citus extension to Postgres. Dive into new Citus 12 features such as schema-based sharding for multi-tenant SaaS applications (and microservices) as well improvements in the Citus support for the Postgres 15 MERGE feature.

Database
Added: 20 Jul 2023
Ruby Struct

In simple words, Ruby Struct is a built-in class that provides useful functionalities and shortcuts. You can use it for both logic and tests.

Ruby
Added: 20 Jul 2023
Building Value Objects in Rails with composed_of

Learn how to improve the interface of your existing Active Record Models with this underutilized API.

Backend Ruby on Rails
Added: 20 Jul 2023
Rails 7.1 introduces deliver callbacks for ActionMailer

Rails 7.1 adds before_deliver and after_deliver callbacks to ActionMailer to hook into the lifecycle events of the mail delivery.

Backend Ruby on Rails
Added: 20 Jul 2023
Beware of <%== in your erb files

The danger of an extra equals

Frontend Ruby on Rails
Added: 20 Jul 2023
Testing Inherited Behavior

This post describes different ways of testing inherited behavior, including duplicating the tests, not testing the inherited behavior, and using a shared example.

Ruby on Rails Testing
Added: 20 Jul 2023
What is the difference between Turbo and Stimulus, and what exactly is Hotwire?

I’m going to try to help out by giving you a quick overview of what these things are, and where they fit in to the bigger picture. I’ll assume you’re familiar with the “basic” Rails stack - DB -> Models -> Controllers -> Views. Then, I’ll point you to some resources which you can use to dive deeper.

HOTWire Ruby on Rails
Added: 20 Jul 2023
Polymorphic Relationships in ActiveRecord - dick.codes

Full-stack Ruby on Rails engineer. Blogs about programming topics.

Backend Ruby on Rails
Added: 20 Jul 2023
In Defence of Shoulda Matchers

Defending the humble Shoulda Matcher for Ruby on Rails functionality testing. A junior's perspective.

Ruby on Rails
Added: 17 Jul 2023

Week 2023-28

Modifying Action Text markup - Rails Tricks Issue 14

Hi there, I am working on a newsletter tool(Pombo) and this week, I want to share how I solved a problem I came across last week while working on it. The...

Backend Frontend Ruby on Rails
Added: 14 Jul 2023
Adding custom boolean methods for DateTime columns in ActiveRecord

Is it possible to have ActiveRecord automagically create boolean methods for DateTime columns in your models?

Backend Ruby on Rails
Added: 14 Jul 2023
Discovering Rails Routes: Unfamiliar Features

While all Rails developers are familiarized with the routes DSL less or more, some fewer known features make the routing configuration even more flexible.

Backend Ruby on Rails
Added: 14 Jul 2023
Turbo Native Authentication Part 2 - IOS Client

In this second part, we are building a turbo native app to use native authentication

Ruby on Rails
Added: 14 Jul 2023
Push to Subscribe

Integrating Web Push with Rails

Backend Frontend Ruby on Rails
Added: 13 Jul 2023

Week 2023-27

Pattern Matching on Ruby Objects

Learn how to implement pattern matching on Ruby objects.

Backend Ruby
Added: 06 Jul 2023

Week 2023-26

To improve as an engineer, get better at requesting (and receiving) feedback 

It’s easy to ask for, and even want, feedback in a sort of theoretical sense. But soliciting and responding to feedback are, themselves skills.

Soft Skills
Added: 30 Jun 2023
Group by Year, Month, or Day in PostgreSQL | Mayallo

How to group data by specific date interval using DATA_TRUNC(), EXTRACT(), or TO_CHAR() functions in PostgreSQL.

Added: 30 Jun 2023
Using iCalendar RRULE in Postgres | This and That

Start at dstart and reoccur every month on same day of month for five occurences.

Backend
Added: 30 Jun 2023
Rails 7 extends enum support for Postgres adapter

Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native

Backend Ruby on Rails
Added: 30 Jun 2023
How To Use Basecamp’s MRSK With AWS and GitHub

Learn how to use Basecamp’s MRSK to deploy Rails application to AWS with GitHub Actions

DevOps
Added: 30 Jun 2023
Rails nested form (new gem with Stimulus)

Handle dynamic nested forms, same as Cocoon, but using StimulusJS.

Frontend Ruby on Rails
Added: 30 Jun 2023
Playground | MDN

The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.

Tools
Added: 30 Jun 2023
An Introduction to Lambdas in Ruby | AppSignal Blog

Lambdas can make your code easier to use and more powerful. Discover how to use Lambda functions in Ruby.

Ruby
Added: 30 Jun 2023
Building a learning culture to unlock developer thriving

Allowing developers to learn on the job can be difficult when the pressure is on, but research proves that a strong learning culture can help developers thrive.

Soft Skills
Added: 30 Jun 2023
Tips for writing Rails tasks with Thor instead of Rake

Thor is a great way to write simple CLIs like one-off Rails scripts, but it does have its own gotchas. Here’s how to use Thor in practice.

Ruby Ruby on Rails
Added: 30 Jun 2023
To Build a Top Performing Team, Ask for 85% Effort

An outdated way of thinking about peak performance is: “maximum effort = maximum results.” But research shows that it doesn’t actually work that way in reality. Here’s what actually works: The 85% rule, which counterintuitively suggests that to reach maximum output, you need to refrain from giving maximum effort. Operating at 100% effort all of the time will result in burnout and ultimately less-optimal results. While the precise number 85% may just be a rule of thumb, it’s a helpful one for managers who want to create high-performance teams without burning people out.

Consulting
Added: 30 Jun 2023
3 ways to find your worst JavaScript offenders for page load

As Addy Osmani likes to say, JavaScript is your most expensive asset. Compared to an image or stylesheet, for example, a JavaScript file of the same size will take the same amount of time to download. The problem comes in the amount of processing after download that needs to occur before the JavaScript is fully execute

Frontend
Added: 30 Jun 2023
Move Fast & Avoid Sharp Edges

Our Journey to Kubernetes, With a Little Help from Porter

DevOps
Added: 30 Jun 2023
Interesting JavaScript Features from a Ruby Perspective

Hi there. I recently began relearning JavaScript, as it had been a year since I last did anything...

Javascript Ruby
Added: 30 Jun 2023
Fly + PlanetScale + Rails example dockerfile

If you are debugging this error: LoadError: libmariadb.so.3: cannot open shared object file: No such file or directory - /rails/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.5/lib/mysql2/mysql2.so The fix is having these packages installed for production: default-mysql-client default-libmysqlclient-dev Here's a full

DevOps Ruby on Rails
Added: 30 Jun 2023
Take the Outside View: A solution to the planning fallacy

Optimism is our kryptonite but history is our saviour.

Consulting
Added: 30 Jun 2023
Why we re-designed our engineering career paths at CircleCI

We developed our first competency matrix three years ago. In early 2018, we realized it was time to refresh and rebuild our matrix, to better reflect how our engineering org has matured, and what we’ve learned along the way.

Added: 27 Jun 2023

Week 2023-25

Unleash Devise-Enabling All Modules

Introduction If you're a Rails developer, I bet you have already heard of or used devise....

Backend Ruby on Rails
Added: 24 Jun 2023
DevOps is Bullshit

DevOps is Bullshit. A Critique of How We've Fooled Ourselves for Years.

DevOps
Added: 24 Jun 2023
The Blank Page Problem

Getting started from a empty page can be tough. But there are some strategies for breaking the blank.

Consulting
Added: 22 Jun 2023
When to Use Select Instead of Pluck

For us Rails developers, performance is an important topic. We'd like to maximise what Rails can do on our websites. So, it's best to consider how we can maximise the use of `select` over `pluck` as the advantage is tremendous.

Backend Ruby on Rails
Added: 22 Jun 2023
Rails design patterns

This article is a high-level overview of design patterns that are commonly used in Ruby on Rails applications. I also mention the cons and pros.

Ruby on Rails
Added: 22 Jun 2023
Inheritance versus Composition in Ruby

As a neophyte of object oriented concepts and the Ruby language as a whole, I thought it would be useful to delve into my own journey of…

Consulting Ruby on Rails
Added: 22 Jun 2023
Intro to Propshaft: A new asset pipeline for Rails

Explore the future of asset pipelines in Rails with Propshaft! Discover how this cutting-edge technology enhances the management and delivery of assets while simplifying your development workflow.

DevOps Ruby on Rails
Added: 22 Jun 2023
The Potential birth of AttributeBuilders

In the previous article, I said I believe splitting up the responsibility of building attributes from the actual rendering of HTML can open up many interesting possibilities. But the work to do so might not be that simple. I've been working on this o...

Frontend Ruby on Rails
Added: 22 Jun 2023
How We Made Gusto Page Loads 40% Faster

For businesses with 25 or more employees, pages load 1.4 times faster. After loading gusto.com for the first time, navigations in Gusto are 2 times faster. For smaller businesses, page loads are 1.2 times faster, and all navigations after the first are now 1.8 times faster.

Consulting Ruby on Rails
Added: 22 Jun 2023

Imagine that you are building a custom CMS. Within the form to edit an Article, you need to have two buttons: a normal “Save” button and a new “Save and publish” button. And maybe, additionally, you will need a third button to delete the article. ...

Frontend Ruby on Rails
Added: 21 Jun 2023
Diving Deep: Action View Form Helpers

In the previous article, I mentioned that Action View has some component-like classes that render form elements. Let's deep dive into a simple one: Tags::TextField. This class is used in the FormBuilder like so (source): def text_field(object_name, m...

Frontend Ruby on Rails
Added: 21 Jun 2023
Active Record Transactions - Rails Tricks Issue 10

This week we will look into database transactions. First of all, let me try to explain what they are. A database transaction is a unit of work that encapsulates dependencies and is executed either completely or rolled back to the initial state. For instance, there is double-entry accounting, where you always have a credit and debit record for a transaction, so your accounts stay in balance, and you never want to end up in a situation where you record only one side of a transaction.

Backend Ruby on Rails
Added: 21 Jun 2023
Publishing your content on a blog content vs. sharing on social media

Use a personal blog for technical content to ensure resilience, avoid platform dependency, and prevent account suspension

Added: 21 Jun 2023
Upgrading from Selenium to Cuprite

When I joined my current company, the system tests for our Rails app used Selenium as the Capybara driver. I didn’t have good experiences with Selenium in the past, mostly it was tedious to have to keep chromedriver up-to-date with the auto-updating Chrome. In this project, I was frequently hitting maximum number of open file descriptors on my OS when running system tests, probably in combination with Spring. We’re using the Webdrivers gem, and we also needed to ignore its download URLs in VCR and WebMock. But my primary issue was that the system tests just seemed kind of slow in general.

Backend Ruby on Rails Testing
Added: 19 Jun 2023
Rails 7.1 adds ActiveJob.perform_all_later

Rails 7 series | Rails 7.1 adds ActiveJob.perform_all_later to enqueue multiple jobs at once.

Backend Ruby on Rails
Added: 19 Jun 2023

Week 2023-24

👥 The Ultimate Guide to Effective Pair Programming

Double the Brains, Double the Power! They say two heads are better than one, and it’s...

Soft Skills
Added: 18 Jun 2023
Considered Harmful - Domain Driven Design

TL;DR Domain Driven Design, which was described in 2003, about the same time as TDD. And...

Consulting
Added: 18 Jun 2023
5 Questions to Define Your Product Strategy

This is the simplest way to come up with your comprehensive product strategy.

Added: 17 Jun 2023
Setting Up Business Logic with DCI in Rails | AppSignal Blog

In part two of this series, we'll organize business logic in your Rails application using DCI.

Backend Ruby on Rails
Added: 17 Jun 2023
How I use Nano ID in Rails

Introduction When building applications normally we will use database to store the data....

Backend Ruby on Rails
Added: 17 Jun 2023
Deploying a Rails app with MRSK

What is MRSK?

DevOps Ruby on Rails
Added: 16 Jun 2023
Pair Programming: Best Practices and Tools

In the fast-paced world we live in, working together is crucial for developing high-quality code. In...

Soft Skills
Added: 15 Jun 2023
Using a Single Input for one-time-code

The other night I had a bit of fun trying to create a single-input one-time-code: one-time-code is...

CSS Frontend
Added: 14 Jun 2023
9 Senior Developer Mental Models Every Programmer Should Master

“Senior Developer is not a title. It is a way of thinking.” - Bogdan Nedelcu If you’ve worked with...

Added: 14 Jun 2023
Unlocking the power of forms in Rails

I've had this idea in the back of my head for a while that can potentially unlock a bunch of possibilities with Rails' Form Helpers. But to present it, I want to write about what you can do with them today, the limitations and what I want as a develo...

Backend Frontend Ruby on Rails
Added: 14 Jun 2023
Rails Generator Actions

Almost everything done with Rails Generators happens using actions that streamline common tasks that would otherwise have to be performed with lower-level...

Backend Ruby on Rails
Added: 13 Jun 2023
4 Strategies To Remove Dead Code from your Ruby App

How much does it cost you to carry dead code? How do you find and remove zombie Ruby code? Use these 4 strategies to kill out all the dead code in your Ruby application.

Ruby
Added: 12 Jun 2023

A lot of applications treat your email address as something immutable that is linked to you and which will never change. It can't be linked to someone else, and it can't change.

Added: 12 Jun 2023
SOLID principles

This article is a quick summary easy to memorize, so you will never wonder again what this SOLID term is all about.

Ruby
Added: 12 Jun 2023

Writing about the big beautiful mess that is making things for the world wide web.

Added: 12 Jun 2023
Viewport units can consider the writing mode

"vi" and "vb" are viewport units that consider the inline/block axis of the container block.

CSS Frontend
Added: 12 Jun 2023
Extract Sample Rate of an Audio File with Audio Analyzer in Rails 7.1

Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native

Backend Ruby on Rails
Added: 12 Jun 2023
Learn Hotwire by building the simplest possible Hotwire and Ruby on Rails app — a beginners guide. | MONN blog

Hotwire is a (relatively) new part of Ruby on Rails that allows your Rails frontend to update live and in realtime — in many cases, totally replacing a frontend framework like React or Vue.

Backend Frontend HOTWire Ruby on Rails
Added: 12 Jun 2023
Really, Really, Really Don’t Interpolate Strings into Active Record Methods

It’s risky to expose your database to SQL Injections

Backend Ruby on Rails
Added: 12 Jun 2023
Let's Standardize Rails!

At RailsConf 2023, we conducted an experiment: could attendees do the hard work for us by voting on RuboCop rules so we could publish Standard Rails plugin?

Backend Ruby on Rails
Added: 12 Jun 2023

If you want to add images to a record but you don’t want to use a JavaScript plugin or write any custom JavaScript, you can use a regular file field, Active Storage, and vanilla Rails.

Backend Frontend Ruby on Rails
Added: 12 Jun 2023

Week 2023-23

How to Use Enums in Rails

Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native

Backend Ruby on Rails
Added: 11 Jun 2023
7 Key Best Practices for Rails Internationalization

Get to know seven key best practices for Rails internationalization to organize your translation workflow better.

Backend Frontend Ruby on Rails
Added: 07 Jun 2023
Standardize Not Caring About Standards

Is there anything more more long in the tooth than people arguing about standards? Yes - it’s people writing about people arguing about standards.

Consulting
Added: 07 Jun 2023
5 tips for new Rails developers

5 tips for new Rails developers to be more productive and confident.

Ruby on Rails
Added: 07 Jun 2023
Are you absolutely sure your `has_one` association really has one association?

Learn about an unexpected limitation with this API and how to combat it universally.

Backend Ruby on Rails
Added: 05 Jun 2023

Week 2023-22

How To Criticize Coworkers

I originally wrote this as a doc, and did a talk w/ slides in Fall 2020 at Convoy. This is very focused on how to work in a software engineering team (surprise! that’s most of what I know about!) but I’ve had friends say they’ve shown this to their partners,...

Soft Skills
Added: 03 Jun 2023
How Notion builds product

Chief Product and Technology Officer Michael Manapat on Notion’s evolving internal processes, product reviews, planning cadences, and increasing shift to synchronous communication

Consulting
Added: 02 Jun 2023
How I manage my git history | Binary Solo

I'm generally a rather pedantic person and this is supercharged when it comes to managing the git history on my projects. I used GitHub's squash and merge for a while before Chris Moore taught me a few tricks. I'm not a fan of squash and merge because it squashes an entire Pull Request into a single commit, no matter how large it is. This means that rather large changes could live under a single commit. I believe the commit history should tell a linear story, as pretentious as that might...

Tools
Added: 02 Jun 2023
Rails 7.1 AR adds normalizes API for attribute values

Rails 7.1 adds ActiveRecord::Base::normalizes API to normalize attribute values to a common format before saving them to the database.

Backend Ruby on Rails
Added: 02 Jun 2023
The Gateway Pattern

Use gateway classes to organize external API integrations and establish a clearer separation of concerns.

Backend Ruby on Rails
Added: 02 Jun 2023
Advanced Form Control Styling With Selectmenu And Anchoring API — Smashing Magazine

Thanks to the Open UI working community group, there’s a new element on the horizon, , that will make styling this type of form control a whole lot better. You’re going to walk through an early implementation of this new experimental element by creating a pattern that you would never have thought possible with CSS alone — a radial selection menu.

CSS Frontend
Added: 01 Jun 2023
Sophisticated, Simple, and Affordable Background Workers

How to design a queueing system to manage complex background jobs

Backend Ruby on Rails
Added: 31 May 2023
Introduction to Rails Engines - FastRuby.io | Rails Upgrade Service

An intro to Rails Engines are an architectural pattern that can be used to modularize or pack a Rails application. An article about this powerful feature in Rails.

Ruby on Rails
Added: 30 May 2023

If you want to add many attachments to a record using just a file field, but you don’t want to remove the previous images from the record on every update, like in the following code:

Backend Frontend Ruby on Rails
Added: 30 May 2023
Infer name with link_to - Rails Tricks Issue 8

Hi, this week I want to tell you about an improvement coming in Rails 7.1. When you are using the link_to helper, it can infer the URL from the object you are passing to it as the second parameter:

Frontend Ruby on Rails
Added: 30 May 2023
A comprehensive guide to the anonymous functions

This article is a deep dive into blocks, procs, and lambdas that will help you to understand how these functions differ from each other.

Ruby
Added: 30 May 2023
How-To Add Recommendations to a Rails App with pgvector and OpenAI

Creating recommendations with pgvector, ruby-openai, and the neighbor gem.

Backend Ruby on Rails
Added: 30 May 2023
Manage Your Ruby Logs Like a Pro | AppSignal Blog

Discover the ins and outs of logging in Ruby, including how to customize your logs and use logging libraries like Lograge.

Ruby Ruby on Rails Tools
Added: 30 May 2023
Why an Engineering Manager Should Not Review Code

When discussing team organization, I am often asked: “Why don’t you have the tech lead manage the team?” My response is to hiss like a…

Consulting Soft Skills
Added: 30 May 2023
Avoid Putting Logic in Map Blocks

The contents of a map block should probably be an instance method on each item.

Backend Ruby
Added: 29 May 2023

Taking a look at how to use a Common Table Expression in Active Record queries in Rails 7.1+

Backend Ruby on Rails
Added: 29 May 2023

Week 2023-21

Ruby on Rails' Most Popular Design Patterns | Scout APM Blog

Improve Rails code by using these design patterns: Builder, Decorator, Form, Interactor, Observer, Policy, Presenter, Query, Service, Value

Backend Design Ruby on Rails
Added: 28 May 2023

This post explores how flog, a tool that analyzes the complexity of your code, can identify areas to refactor.

Backend Ruby on Rails
Added: 26 May 2023

When saving computed values in the database in your rails app, you must be aware that is possible to find unexpected errors in the result thanks to race conditions. Here I want to help you visualize how race conditions can make you save incorrect...

Backend Ruby on Rails
Added: 26 May 2023
A new way to measure developer productivity – from the creators of DORA and SPACE

An exclusive interview with the four researchers behind a new developer productivity framework: The three dimensions of DevEx

Consulting
Added: 26 May 2023
🤺 7 Useful VS Code extension for junior web developers

In my early days of coding I used to get quickly frustrated when my code didn't run. It felt like I...

Tools
Added: 26 May 2023
Simple Rails design patterns with significant impact

If you don’t have time for introducing more significant changes, try implementing smaller yet powerful design patterns.

Ruby Ruby on Rails
Added: 26 May 2023
Future of CSS: Popover API

In this post we're going to be looking at not one but two new exciting things coming to CSS, the...

CSS
Added: 25 May 2023
Solving N+1 Postgres queries for Ruby on Rails apps

Chris has some tips for working with Ruby on Rails and ActiveRecord and using better SQL to improve performance and avoid N+1 queries.

Backend