Blog Archive
-
Nov 16, 2024
•
rails
A Rails Migration Foot Gun
-
Nov 5, 2024
•
postgres,
bi temporal data,
ruby
The REPL: Issue 122 - October 2024
-
Oct 17, 2024
•
postgres
Postgres default values as a backfill method
-
Oct 3, 2024
•
the repl,
postgres,
rails,
security
The REPL: Issue 121 - September 2024
-
Sep 19, 2024
•
unix
Using expect to tailor environment
-
Sep 4, 2024
•
the repl
The REPL: Issue 120 - August 2024
-
Aug 3, 2024
•
the repl
The REPL: Issue 119 - July 2024
-
Jul 5, 2024
•
the repl,
ruby,
rails
The REPL: Issue 118 - June 2024
-
Jun 5, 2024
•
the repl,
postgres,
bi temporal data
The REPL: Issue 117 - May 2024
-
May 9, 2024
•
the repl,
postgres,
ruby
The REPL: Issue 116 - April 2024
-
Apr 29, 2024
•
postgres
Postgres Updatable Views
-
Apr 3, 2024
•
the repl,
unix,
postgres
The REPL: Issue 115 - March 2024
-
Mar 7, 2024
•
the repl,
rails,
unix
The REPL: Issue 114 - February 2024
-
Feb 16, 2024
•
ruby
Pipelines With Result Objects
-
Feb 6, 2024
•
the repl,
ruby
The REPL: Issue 113 - January 2024
-
Jan 20, 2024
•
ruby,
rails
Convention Over Configuration, But Not For Style
-
Jan 3, 2024
•
the repl,
elixir,
rails,
ruby
The REPL: Issue 112 - December 2023
-
Dec 30, 2023
•
ruby
This Blog on Ruby 3.3.0
-
Dec 5, 2023
•
the repl,
postgres,
software
The REPL: Issue 111 - November 2023
-
Nov 4, 2023
•
the repl,
ruby,
rails,
postgres,
tdd
The REPL: Issue 110 - October 2023
-
Oct 7, 2023
•
books,
software,
design
Book Review: A Philosophy of Software Design
-
Oct 4, 2023
•
the repl,
ruby,
rail
The REPL: Issue 109 - September 2023
-
Sep 24, 2023
•
design,
ruby
On Class Structure
-
Sep 2, 2023
•
the repl,
bi temporal data,
rails
The REPL: Issue 108 - August 2023
-
Aug 12, 2023
•
rails
Unexpteced Rails N+1 when using #without
-
Aug 4, 2023
•
the repl,
software,
postgres
The REPL: Issue 107 - July 2023
-
Jul 18, 2023
•
rails
Spring and Bundler
-
Jul 13, 2023
•
software,
percolations
Hazmat Ratchet
-
Jul 3, 2023
•
the repl,
machine_learning
The REPL: Issue 106 - June 2023
-
Jun 19, 2023
•
rails,
arel
Surprise in Arel's API
-
Jun 6, 2023
•
the repl,
rails,
active_record,
arel,
statistics,
good_job
The REPL: Issue 105 - May 2023
-
May 14, 2023
•
good_job,
rails,
ruby
GoodJob Bulk Enqueue
-
May 1, 2023
•
the repl,
performance,
make,
unix
The REPL: Issue 104 - April 2023
-
Apr 4, 2023
•
the repl,
machine_learning,
git
The REPL: Issue 103 - March 2023
-
Mar 20, 2023
•
rails
TIL: rails restart
-
Mar 2, 2023
•
the repl,
postgres,
teams
The REPL: Issue 102 - Februrary 2023
-
Feb 17, 2023
•
unix,
bash
Using bashly to create a CLI
-
Feb 4, 2023
•
the repl,
databases,
rails,
ruby
The REPL: Issue 101 - January 2023
-
Jan 4, 2023
•
the repl,
postgres,
sqlite,
productivity
The REPL: Issue 100 - December 2022
-
Dec 26, 2022
•
the repl,
postgres,
rails
The REPL: Issue 99 - November 2022
-
Dec 1, 2022
•
unix,
asdf,
direnv
Asdf, Direnv Together
-
Nov 5, 2022
•
the repl,
postgres,
git,
ruby
The REPL: Issue 98 - October 2022
-
Oct 20, 2022
•
git
Git Monorepo Improved Performance
-
Oct 3, 2022
•
the repl,
git,
postgres,
elixir
The REPL: Issue 97 - September 2022
-
Sep 9, 2022
•
the repl,
unix
The REPL: Issue 96 - August 2022
-
Aug 23, 2022
•
writing
This Blog: 10 Years Later
-
Aug 8, 2022
•
the repl
The REPL: Issue 95 - July 2022
-
Jul 9, 2022
•
ruby,
rspec
RSpec DSL Is Just Fine
-
Jul 4, 2022
•
the repl,
postgres
The REPL: Issue 94 - June 2022
-
Jun 28, 2022
•
atom,
vs_code
Switching to VS Code
-
Jun 7, 2022
•
the repl
The REPL: Issue 93 - May 2022
-
May 21, 2022
•
git,
unix
Background long-running git hooks
-
May 4, 2022
•
the repl,
ruby
The REPL: Issue 92 - April 2022
-
Apr 19, 2022
•
ruby,
rspec,
unix,
tdd
Testing Unix Utilities With RSpec
-
Apr 5, 2022
•
the repl
The REPL: Issue 91 - March 2022
-
Mar 20, 2022
•
unix,
web
Finding Broken Links
-
Mar 4, 2022
•
the repl
The REPL: Issue 90 - February 2022
-
Feb 4, 2022
•
the repl
The REPL: Issue 89 - January 2022
-
Jan 14, 2022
•
unix
Playing Evil Wordle With Unix
-
Jan 4, 2022
•
the repl
The REPL: Issue 88 - December 2021
-
Dec 12, 2021
•
ruby,
rails
Gotcha using Oj to generate JSON
-
Dec 7, 2021
•
the repl
The REPL: Issue 87 - November 2021
-
Nov 14, 2021
•
git
Conditionally setting your gitconfig, or not
-
Nov 4, 2021
•
the repl
The REPL: Issue 86 - October 2021
-
Oct 20, 2021
•
databases,
good_job
The Bike Shed Podcast Feedback
-
Oct 5, 2021
•
the repl
The REPL: Issue 85 - September 2021
-
Sep 14, 2021
•
rails,
databases,
postgres
Leaning on ActiveRecord Relations for Query Optimization
-
Sep 3, 2021
•
the repl
The REPL: Issue 84 - August 2021
-
Aug 13, 2021
•
unix
Code spelunking with rg and join
-
Aug 2, 2021
•
the repl,
good_job
The REPL: Issue 83 - July 2021
-
Jul 23, 2021
•
asdf,
direnv,
postgres,
unix
Per-project Postgres with asdf and direnv
-
Jul 1, 2021
•
the repl
The REPL: Issue 82 - June 2021
-
Jun 22, 2021
•
rails
Better Form Objects in Rails
-
Jun 11, 2021
•
books,
software
Book Review: Grokking Simplicity
-
Jun 2, 2021
•
the repl
The REPL: Issue 81 - May 2021
-
May 3, 2021
•
the repl
The REPL: Issue 80 - April 2021
-
Apr 1, 2021
•
the repl
The REPL: Issue 79 - March 2021
-
Mar 23, 2021
•
deployment,
rails,
heroku
Deployments With Incompatible Code
-
Mar 1, 2021
•
the repl
The REPL: Issue 78 - February 2021
-
Feb 2, 2021
•
the repl
The REPL: Issue 77 - January 2021
-
Jan 2, 2021
•
the repl
The REPL: Issue 76 - December 2020
-
Dec 3, 2020
•
the repl
The REPL: Issue 75 - November 2020
-
Nov 3, 2020
•
the repl
The REPL: Issue 74 - October 2020
-
Oct 4, 2020
•
the repl
The REPL: Issue 73 - September 2020
-
Sep 2, 2020
•
the repl
The REPL: Issue 72 - August 2020
-
Aug 4, 2020
•
the repl
The REPL: Issue 71 - July 2020
-
Jul 6, 2020
•
the repl
The REPL: Issue 70 - June 2020
-
Jun 3, 2020
•
the repl
The REPL: Issue 69 - May 2020
-
May 26, 2020
•
avro,
kafka
Avro Schema Evolution
-
May 18, 2020
•
books,
databases
Book Review: Building Git
-
May 7, 2020
•
databases,
postgres,
bi temporal data
Postgres Ranges
-
May 5, 2020
•
the repl
The REPL: Issue 68 - April 2020
-
Apr 24, 2020
•
databases,
bi temporal data
Modeling Bi-Temporal Deletions
-
Apr 18, 2020
•
databases,
bi temporal data
Bi-Temporal Data
-
Apr 9, 2020
•
the repl
The REPL: Issue 67 - March 2020
-
Apr 1, 2020
•
musings
Pandemic
-
Mar 2, 2020
•
the repl
The REPL: Issue 66 - February 2020
-
Feb 3, 2020
•
the repl
The REPL: Issue 65 - January 2020
-
Jan 23, 2020
•
books,
databases
Book Review: SQL Performance Explained
-
Jan 14, 2020
•
rails,
databases,
postgres
Abstractions With Database Views
-
Jan 14, 2020
•
deployment,
rails,
heroku,
databases,
most_popular
Deployments With Schema Migrations
-
Dec 4, 2019
•
the repl
The REPL: Issue 64 - December 2019
-
Dec 4, 2019
•
the repl
The REPL: Issue 63 - November 2019
-
Nov 5, 2019
•
teams,
unix,
git
Large Teams: Finding A Green Build
-
Nov 1, 2019
•
the repl
The REPL: Issue 62 - October 2019
-
Oct 1, 2019
•
the repl
The REPL: Issue 61 - September 2019
-
Sep 4, 2019
•
the repl
The REPL: Issue 60 - August 2019
-
Aug 16, 2019
•
rails,
git
Spring Hopes Eternal
-
Aug 2, 2019
•
the repl
The REPL: Issue 59 - July 2019
-
Jul 14, 2019
•
productivity,
atom,
unix
Fast Feedback Loops
-
Jul 10, 2019
•
books,
design,
databases
Book Review: Designing Data-Intensive Applications
-
Jul 8, 2019
•
the repl
The REPL: Issue 58 - June 2019
-
Jun 3, 2019
•
the repl
The REPL: Issue 57 - May 2019
-
May 23, 2019
•
ruby
Chasing a Segmentation fault
-
May 15, 2019
•
talks,
conferences
RailsConf 2019 Talk: Bug-Driven Development
-
May 6, 2019
•
the repl
The REPL: Issue 56 - April 2019
-
Apr 4, 2019
•
the repl
The REPL: Issue 55 - March 2019
-
Mar 8, 2019
•
productivity
On Being Efficient: My Mac Setup
-
Mar 1, 2019
•
the repl
The REPL: Issue 54 - February 2019
-
Feb 15, 2019
•
ruby
Dragons in benchmark-ips
-
Feb 4, 2019
•
the repl
The REPL: Issue 53 - January 2019
-
Jan 18, 2019
•
ruby
Don't Rescue RuntimeError
-
Jan 8, 2019
•
the repl
The REPL: Issue 53 - December 2018
-
Dec 5, 2018
•
the repl
The REPL: Issue 52 - November 2018
-
Nov 8, 2018
•
security,
most_popular
Let's Encrypt and NearlyFreeSpeech.NET
-
Nov 2, 2018
•
the repl
The REPL: Issue 51 - October 2018
-
Oct 26, 2018
•
ruby,
asdf,
elixir
Managing Versions With asdf
-
Oct 1, 2018
•
the repl
The REPL: Issue 50 - September 2018
-
Sep 6, 2018
•
the repl
The REPL: Issue 49 - August 2018
-
Aug 26, 2018
•
productivity
On Taking Notes
-
Aug 6, 2018
•
the repl
The REPL: Issue 48 - July 2018
-
Jul 9, 2018
•
teams
On Remote Work
-
Jul 6, 2018
•
the repl
The REPL: Issue 47 - June 2018
-
Jun 4, 2018
•
the repl
The REPL: Issue 46 - May 2018
-
May 2, 2018
•
the repl
The REPL: Issue 45 - April 2018
-
Apr 2, 2018
•
the repl
The REPL: Issue 44 - March 2018
-
Mar 1, 2018
•
the repl
The REPL: Issue 43 - February 2018
-
Feb 26, 2018
•
books,
elixir
Book Review: Functional Web Development with Elixir
-
Feb 7, 2018
•
the repl
The REPL: Issue 42 - January 2018
-
Jan 5, 2018
•
ruby
Structs With Keyword Arguments in Ruby 2.5
-
Jan 2, 2018
•
the repl
The REPL: Issue 41 - December 2017
-
Dec 1, 2017
•
the repl
The REPL: Issue 40 - November 2017
-
Nov 1, 2017
•
the repl
The REPL: Issue 39 - October 2017
-
Oct 18, 2017
•
productivity,
atom,
unix
Pipe Atom Text Into Any Command
-
Oct 2, 2017
•
the repl
The REPL: Issue 38 - September 2017
-
Sep 21, 2017
•
ruby,
design
Bug-Driven Development
-
Sep 12, 2017
•
ruby,
stdlib
Ruby stdlib: Base64
-
Sep 1, 2017
•
the repl
The REPL: Issue 37 - August 2017
-
Aug 27, 2017
•
books,
design,
ruby
Book Review: Understanding the Four Rules of Simple Design
-
Aug 22, 2017
•
ruby,
design
Testing a puts method
-
Aug 2, 2017
•
the repl
The REPL: Issue 36 - July 2017
-
Jul 3, 2017
•
the repl
The REPL: Issue 35 - June 2017
-
Jun 16, 2017
•
books,
ruby,
design,
most_popular
Book Review: 99 Bottles of OOP
-
Jun 13, 2017
•
productivity
On The Pomodoro Technique
-
Jun 2, 2017
•
the repl
The REPL: Issue 34 - May 2017
-
May 2, 2017
•
the repl
The REPL: Issue 33 - April 2017
-
Apr 19, 2017
•
books,
elixir
Book Review: Programming Phoenix
-
Apr 4, 2017
•
the repl
The REPL: Issue 32 - March 2017
-
Mar 23, 2017
•
crystal
I Also Built A CLI Application in Crystal
-
Mar 1, 2017
•
the repl
The REPL: Issue 31 - Februrary 2017
-
Feb 3, 2017
•
the repl
The REPL: Issue 30 - January 2017
-
Jan 2, 2017
•
the repl
The REPL: Issue 29 - December 2016
-
Dec 22, 2016
•
ruby,
teams
Enforcing Style
-
Dec 7, 2016
•
security
Renewing a Let's Encrypt Certificate
-
Dec 2, 2016
•
the repl
The REPL: Issue 28 - November 2016
-
Nov 13, 2016
•
ruby,
unix
Benchamarking With abprof & abcompare
-
Nov 1, 2016
•
the repl
The REPL: Issue 27 - October 2016
-
Oct 19, 2016
•
unix,
most_popular
Subtleties of xargs on Mac and Linux
-
Oct 3, 2016
•
the repl
The REPL: Issue 26 - September 2016
-
Sep 29, 2016
•
security
Goodbye StartSSL, Hello Let's Encrypt
-
Sep 20, 2016
•
security
Redirecting To An External Server May Leak Tokens In Headers
-
Sep 1, 2016
•
the repl
The REPL: Issue 25 - August 2016
-
Aug 1, 2016
•
the repl
The REPL: Issue 24 - July 2016
-
Jul 4, 2016
•
the repl
The REPL: Issue 23 - June 2016
-
Jun 23, 2016
•
unix,
git
Secure dotfiles With git-crypt
-
May 31, 2016
•
the repl
The REPL: Issue 22 - May 2016
-
May 2, 2016
•
the repl
The REPL: Issue 21 - April 2016
-
Apr 4, 2016
•
the repl
The REPL: Issue 20 - March 2016
-
Mar 2, 2016
•
the repl
The REPL: Issue 19 - February 2016
-
Feb 19, 2016
•
security
This Blog Is Now Delivered Over TLS
-
Feb 4, 2016
•
the repl
The REPL: Issue 18 - January 2016
-
Jan 28, 2016
•
ruby
Scratching An Itch With A Gem
-
Jan 16, 2016
•
books,
ruby
Review: Effective Ruby LiveLessons
-
Jan 5, 2016
•
the repl
The REPL: Issue 17 - December 2015
-
Dec 1, 2015
•
the repl
The REPL: Issue 16 - November 2015
-
Nov 17, 2015
•
design,
tdd
My Global Day of Code Retreat
-
Nov 3, 2015
•
the repl
The REPL: Issue 15 - October 2015
-
Oct 11, 2015
•
talks,
unix
Talk: LA RubyConf 2015
-
Oct 2, 2015
•
the repl
The REPL: Issue 14 - September 2015
-
Sep 1, 2015
•
the repl
The REPL: Issue 13 - August 2015
-
Aug 23, 2015
•
rails,
ruby
Using ActiveRecord::Base#merge
-
Aug 19, 2015
•
books,
ruby
Book Review: Understanding Computation
-
Aug 7, 2015
•
ruby
Celluloid, Nice to Meet You
-
Jul 31, 2015
•
the repl
The REPL: Issue 12 - July 2015
-
Jul 23, 2015
•
books,
elixir
Book Review: Programing Elixir
-
Jul 8, 2015
•
the repl
The REPL: Issue 11 - June 2015
-
Jun 16, 2015
•
books,
microservices
Book Review: Building Microservices
-
Jun 2, 2015
•
the repl
The REPL: Issue 10 - May 2015
-
May 20, 2015
•
experiment,
ruby
Experiment: Use rbnev instead of rvm
-
May 9, 2015
•
books,
cloud
Book Review: Architecting The Cloud
-
May 3, 2015
•
the repl
The REPL: Issue 9 - April 2015
-
Apr 30, 2015
•
mongo
Adding An Index To Mongo Can Change Query Results
-
Apr 22, 2015
•
elixir
Recursion and Pattern Matching in Elixir
-
Apr 1, 2015
•
the repl
The REPL: Issue 8 - March 2015
-
Mar 26, 2015
•
elixir
Dipping my toes in Elixir
-
Mar 22, 2015
•
books,
ruby
Book Review: The Ruby Way
-
Mar 9, 2015
•
unix
Fuzzy Match 'All-The-Things'
-
Mar 2, 2015
•
the repl
The REPL: Issue 7 - February 2015
-
Feb 26, 2015
•
experiment,
rspec
Experiment: Use RSpec Expectation Syntax
-
Feb 25, 2015
•
conferences,
ruby
2014 RubyConf - San Diego
-
Feb 24, 2015
•
books,
agile
Book Review: The Software Craftsman - Sandro Mancuso
-
Feb 3, 2015
•
the repl
The REPL: Issue 6 - January 2015
-
Jan 5, 2015
•
ruby
Stagnation
-
Jan 2, 2015
•
the repl
The REPL: Issue 5 - December 2014
-
Dec 6, 2014
•
books,
ruby
Book Review: Effective Ruby - Peter J. Jones
-
Dec 2, 2014
•
the repl
The REPL: Issue 4 - November 2014
-
Oct 27, 2014
•
the repl
The REPL: Issue 3 - October 2014
-
Oct 21, 2014
•
books,
agile
Book Review: Being Agile - Ekas & Will
-
Sep 26, 2014
•
ruby
StringInquirer: Nicer Syntax For Testing Equality
-
Sep 13, 2014
•
books,
rails
Book Review: The Rails 4 Way - Fernandez & Faustino
-
Sep 5, 2014
•
talks,
unix
Talk: Practical Unix For Ruby And Rails
-
Aug 11, 2014
•
productivity,
atom
We Are All Atom Now
-
Jun 30, 2014
•
unix
World Cup Player Age, Unix Style
-
Jun 16, 2014
•
ruby
Ruby Implicit `to_proc`
-
May 30, 2014
•
books,
agile
Book Review: The Agile Culture - Pixton, Gibson & Nickolaisen
-
May 16, 2014
•
the repl
The REPL: Issue 2
-
May 13, 2014
•
performance,
unicorn,
puma,
jruby,
most_popular
Unicorn vs. Puma: Round 3
-
May 4, 2014
•
security
The Illusion Of Security
-
Apr 21, 2014
•
unix
Killing Me Softly
-
Apr 4, 2014
•
ruby,
bundler
Use Multiple Ruby Engines In The Same Project
-
Mar 7, 2014
•
the repl
The REPL: Issue 1
-
Feb 28, 2014
•
productivity,
sublime_text_2,
atom
Must-have Editor Features: An Atom Review
-
Feb 12, 2014
•
conferences,
ruby
2014 LA Ruby Conf
-
Dec 11, 2013
•
design
Sandi Metz' Revised Rules
-
Nov 1, 2013
•
rspec,
ruby,
tdd
Ruby Block Precedence: An Rspec Gotcha
-
Sep 11, 2013
•
jruby,
delayed_job,
threading,
most_popular
DelayedJob Workers Are Not Thread Safe
-
Aug 16, 2013
•
ruby
Exercism: Practice Your Coding Technique
-
Jul 16, 2013
•
ruby
Conway's Game Of Life
-
Jun 21, 2013
•
rvm,
rspec
Testing With Multiple Ruby And Gem Versions
-
May 20, 2013
•
performance,
unicorn,
puma,
jruby,
most_popular
Unicorn Vs. Puma: Redux
-
Apr 22, 2013
•
sublime_text_2,
productivity
Forget Vim: Learn Your OS' Shortcuts For Productivity
-
Mar 27, 2013
•
rspec,
jruby,
bundler
Faster Rspec: jRuby, Spork, Nailgun and Bundler Binstubs
-
Feb 20, 2013
•
jruby,
profiling
A Tale Of jRuby Profiling
-
Jan 17, 2013
•
design
Sandi Metz' Rules
-
Jan 7, 2013
•
sublime_text_2,
ctags,
most_popular
Code Navigation in Sublime Text 2 With CTags
-
Dec 18, 2012
•
unix
List Open Files With lsof
-
Nov 27, 2012
•
books,
ruby
Book Review: Practical Object-Oriented Design In Ruby - Sandi Metz
-
Nov 16, 2012
•
ruby
StandardError casts message to string in Ruby 1.9
-
Nov 7, 2012
•
ruby
Lambdas are Picky: ArgumentError in ruby 1.9
-
Oct 16, 2012
•
unix,
rspec
Run Changed Specs
-
Oct 2, 2012
•
jruby,
spork,
rspec
Faster Rspec: Jruby, Spork and Nailgun
-
Sep 25, 2012
•
unix,
foreman
Per-Project environment variables
-
Sep 18, 2012
•
rvm,
jruby,
xcode
Installing jruby with rvm and XCode 4.4
-
Sep 3, 2012
•
foreman,
procfile,
heroku,
most_popular
Manage Your App's Multiple Processes With a Procfile
-
Aug 27, 2012
•
heroku,
deployment,
most_popular
Deploy To Heroku With (Near) Zero Downtime
-
Aug 20, 2012
•
heroku,
performance
Better Performance On Heroku: Thin vs. Unicorn vs. Puma