56,966 blogs · [ { "id": "01a087e8-fbbc-70e8-aba8-72075ffd72eb", "title": "Running Migrations Once During a Multi-Host Kamal Deploy", "url": "https://t27duck.com/posts/32-running-migrations-once-during-a-multi-host-kamal-deploy", "published_at": "2026-05-25T19:44:13+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-7207609b3e53", "title": "Using UUIDv7 with Rails without PostgreSQL 18", "url": "https://t27duck.com/posts/31-using-uuidv7-with-rails-without-postgresql-18", "published_at": "2025-11-09T14:12:12+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720760b5b800", "title": "Allow all columns and relations in associations in Ransack 4", "url": "https://t27duck.com/posts/30-allow-all-columns-and-relations-in-associations-in-ransack-4", "published_at": "2025-04-10T00:58:40+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720761af2746", "title": "Migrating Away from Devise Part 6: Trackable Module and Tests", "url": "https://t27duck.com/posts/29-migrating-away-from-devise-part-6-trackable-module-and-tests", "published_at": "2025-01-24T22:36:27+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-72076237b770", "title": "Migrating Away from Devise Part 5: User Sign-up", "url": "https://t27duck.com/posts/28-migrating-away-from-devise-part-5-user-sign-up", "published_at": "2025-01-16T21:58:16+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-7207627ffea0", "title": "Migrating Away from Devise Part 4: Email Confirmation Setup", "url": "https://t27duck.com/posts/27-migrating-away-from-devise-part-4-email-confirmation-setup", "published_at": "2025-01-09T22:36:25+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-7207629a46f2", "title": "Migrating Away from Devise Part 3: Password Recovery", "url": "https://t27duck.com/posts/26-migrating-away-from-devise-part-3-password-recovery", "published_at": "2025-01-02T22:57:00+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720763138be0", "title": "Migrating Away from Devise Part 2: Sign-in", "url": "https://t27duck.com/posts/25-migrating-away-from-devise-part-2-sign-in", "published_at": "2024-12-27T19:33:31+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-7207635a6d3c", "title": "Migrating Away from Devise Part 1: Setup and Sessions", "url": "https://t27duck.com/posts/18-migrating-away-from-devise-part-1-setup-and-sessions", "published_at": "2024-12-19T23:16:21+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720763959941", "title": "A Bluesky AT Proto API Example in Ruby", "url": "https://t27duck.com/posts/17-a-bluesky-at-proto-api-example-in-ruby", "published_at": "2024-11-18T22:12:28+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720764059c26", "title": "Migrating From Nginx to Caddy", "url": "https://t27duck.com/posts/16-migrating-from-nginx-to-caddy", "published_at": "2024-11-05T14:07:02+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720764802414", "title": "Quick and dirty cron for Rails", "url": "https://t27duck.com/posts/12-quick-and-dirty-cron-for-rails", "published_at": "2024-05-22T22:09:18+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-72076532c6bc", "title": "Integrating Google One Tap in a Rails Application", "url": "https://t27duck.com/posts/10-integrating-google-one-tap-in-a-rails-application", "published_at": "2022-06-25T20:41:33+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720765a2f9bc", "title": "Adding an index to a partitioned table and its children in PostgreSQL and Rails", "url": "https://t27duck.com/posts/9-adding-an-index-to-a-partitioned-table-and-its-children-in-postgresql-and-rails", "published_at": "2022-03-30T16:33:32+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720765fcbc01", "title": "How I Upgrade Ruby on Rails", "url": "https://t27duck.com/posts/8-how-i-upgrade-ruby-on-rails", "published_at": "2020-12-20T15:37:24+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720766807c05", "title": "Programmatically Defer Sidekiq Jobs", "url": "https://t27duck.com/posts/7-programmatically-defer-sidekiq-jobs", "published_at": "2020-07-31T22:44:32+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720767566330", "title": "Upgrading redis... not as difficult as you may think", "url": "https://t27duck.com/posts/6-upgrading-redis-not-as-difficult-as-you-may-think", "published_at": "2019-09-16T23:28:07+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-72076810af61", "title": "Building, installing, and configuring your own Ruby RPM for CentOS", "url": "https://t27duck.com/posts/3-building-installing-and-configuring-your-own-ruby-rpm-for-centos", "published_at": "2016-07-23T01:21:35+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720768143ab7", "title": "Seamlessly migrating from one git service to another for your team and capistrano", "url": "https://t27duck.com/posts/2-seamlessly-migrating-from-one-git-service-to-another-for-your-team-and-capistrano", "published_at": "2016-07-15T14:25:32+00:00" }, { "id": "01a087e8-fbbc-70e8-aba8-720768ba51a6", "title": "Migrating from unicorn to puma with no downtime", "url": "https://t27duck.com/posts/1-migrating-from-unicorn-to-puma-with-no-downtime", "published_at": "2016-06-26T23:16:50+00:00" } ] posts Claim your blog
Back to t27duck.com
Blog · corpus.blog/blogs/t27duck.com/posts

t27duck.com

t27duck.com

2026

2025

2024

2022

2020

2019

2016