The Curious Engineer

All blogs / Ruby / Rails

avdi.codes

avdi.codes

Avdi Grimm, Code Cleric

Ruby / RailsSoftware / engineering practiceElixir / Erlang

Posts
753 from 3 Dec 2007 to 29 Oct 2026
Posting
weekly (34 in the last year)
Kind
personal blog
Feed
https://avdi.codes/feed/

2026 33

  1. 191403 2
  2. 190459 2
  3. Lies, Damn Lies, and Github Stars
  4. 184910 2
  5. 183665 2
  6. 182978 2
  7. 182801 2
  8. Pulp Opus
  9. Moon Crimes
  10. 181574 2
  11. Output Field Separator in Ruby
  12. 175297 2
  13. 163761 2
  14. 162155 2
  15. 162086 2
  16. 162082 2
  17. 161044 2
  18. 158216 2
  19. 158050 2
  20. 157853 2
  21. 157772 2
  22. 157638 2
  23. Is Successful Agentic Coding a Delusion?
  24. 156725 2
  25. 155720 2
  26. 154684 2
  27. 154635 2
  28. 154575 2
  29. 154526 2
  30. 154516 2
  31. 154098 2
  32. You probably don’t need git worktrees
  33. New Podcast Ep on Agentic Feature Owners

2025 18

  1. Can you tell me how to test
  2. Developer Tooling is a Lousy Business
  3. I made a keychain
  4. Agents Aren’t Juniors, They Are Amnesiac Spies
  5. 39927 2
  6. 39835 2
  7. Announcing Ivar: Ruby’s Missing Instance Variable Typo Warnings
  8. Facts, feelings, and fascism – by Amy Isikoff Newell
  9. 39202 2
  10. Regression
  11. What’s the difference between Rails’s try and the safe navigation (&.) operator? – Andy Croll
  12. How to Understand a New Codebase Quickly
  13. Alternatives to Alexa/Google/Siri?
  14. Good Vibes
  15. Reblog of Russ Olsen:
  16. jwz: Unpopularity Contest
  17. 36354 2
  18. How did you know to do that?

2024 57

  1. You’re not selling a solution
  2. 29523 2
  3. 29520 2
  4. 26784 2
  5. 26777 2
  6. 26632 2
  7. 25851 2
  8. 25819 2
  9. 25352 2
  10. 25347 2
  11. How to cope with technology FOMO
  12. 24538 2
  13. 24069 2
  14. 23484 2
  15. 22983 2
  16. Notes on a Successful Second System
  17. 22362 2
  18. 21903 2
  19. Reblog of Ruby Weekly:
  20. 21618 2
  21. Where is the programmer inspo?
  22. 19878 2
  23. (2) How Fly.io uses Docker (without Docker) – YouTube
  24. 19490 2
  25. 18750 2
  26. Reblog of Graceful.Dev:
  27. 18414 2
  28. 18377 2
  29. 18368 2
  30. 18364 2
  31. 18134 2
  32. Programmer Discipline Avoidance
  33. 17961 2
  34. Placeholder
  35. 17953 2
  36. 17931 2
  37. 17913 2
  38. 17785 2
  39. 17777 2
  40. 17608 2
  41. Oh Shit, Git!?!
  42. 17400 2
  43. Anything but Brevo
  44. Reblog of Graceful.Dev:
  45. 16893 2
  46. 16877 2
  47. The experience of moving my fediverse presence off of mastodon has been mostly crickets in part i think because mastodon just doesnt seem to reliably respect account moves outside of the mastodon ga
  48. 16833 2
  49. Dammit, Descript, I want to like you
  50. Missive is amazing
  51. 16029 2
  52. 14610 2
  53. 14609 2
  54. 14608 2
  55. Goodbye Mastodon. Hello Fediverse.
  56. On “owning” software
  57. Setting Usermeta via the WordPress REST API

2023 2

  1. Writing boring code with the help of ChatGPT
  2. Why Grace Matters (for Software Development)

2022 9

  1. Mastodon: Zero to Green Tests Locally (as of December 2022)
  2. SIGAVDI #96: Olbas Edition
  3. On Rigor, White Supremacy, and Occam’s Razor
  4. Preface to an Unwritten Programming Language Book
  5. SIGAVDI #95: Muhammara Edition
  6. The Enterprise Riptide – A Pattern of Banana Stands
  7. (Relatively) Painless WordPress Hosting Migration with WP DB Migrate
  8. The Pre-Sale Trap
  9. SIGAVDI #94: Belgian Coffee Edition

2021 11

  1. Your Autoresponder (A Pattern Language of Banana Stands)
  2. Throw, Catch, Raise, Rescue – I’m So Confused!
  3. The Pond Scum
  4. SIGAVDI #93: Magic Hummus Edition
  5. On Piracy
  6. The Tote Bag Economy
  7. Your Newsletter (A Pattern Language of Banana Stands)
  8. Your Mailing List (A Pattern Language of Banana Stands)
  9. There’s Always Money in the Banana Stand
  10. SIGAVDI #92: Breakfast Smoothie Edition
  11. SIGAVDI #91: Sweet Potato Pie Edition

2020 39

  1. SIGAVDI #90: Chicken soup edition
  2. Why you shouldn’t inherit from Ruby’s core classes (and what to do instead)
  3. Safely Call Superclass Methods from Ruby Modules
  4. SIGAVDI #89: Apple Pie Funnel Cake Edition
  5. That’s So Fetch
  6. Re-Use SSH Config Inside Docker Containers with WSL2
  7. Controlling superclass argument pass-through in Ruby
  8. Ruby Singleton Objects
  9. Why and how to use Ruby’s Hash#fetch for default values
  10. SIGAVDI #88: Endless Beans Edition
  11. The ultimate software taboo
  12. Alternative Ruby Symbol Literals
  13. SIGAVDI #87: Squash Blossom Edition
  14. SIGAVDI #86: Fancy Ramen Edition
  15. Rubber Duck Session: Rails Polymorphic Attributes with Karim Talek
  16. An Investigative Debugging Toolbox
  17. Share .netrc with your devcontainers
  18. SIGAVDI #85: Picnic Edition
  19. Run Rails 6 System Tests in Docker Using a Host Browser
  20. Rails 6 System Tests, From Top to Bottom
  21. Small, sharp tools can cut you
  22. Code and Chicken Wire
  23. SIGAVDI #84: Biscoff Edition
  24. Jessitron & Avdi Learn About Alloy
  25. Be careful of whitespace in .php files
  26. Jessitron & Avdi Attempt Event Storming
  27. Jessitron & Avdi Pair on Dark and the Square API
  28. SIGAVDI #83: Cream Cheese BBQ Chicken Edition
  29. In Grudging Defense of Structure
  30. What is the Ruby Legacy?
  31. The Well in the Field
  32. SIGAVDI #82: Broccoli Rabe Edition
  33. Reproducibly Setting Production Environment Variables for AWS Lambda Apps
  34. AWS SAM in a Docker Dev Container
  35. Edsger Dijkstra and the TSA school of software correctness
  36. SIGAVDI #81: Mustard Greens Edition
  37. Eric & Avdi Talk About the Developer Education Business
  38. A Tool for Choosing a Tech Stack
  39. New project, new tech stack?

2019 31

  1. Exploring, Pathmaking, Traveling
  2. On Gatekeeping, Complicity, and Arrival
  3. Simple is Complex
  4. Don’t throw away invalid data
  5. Rails 6 errors: the good, the bad, the ugly
  6. Tools for turning descriptions into diagrams
  7. How to relax your Ruby version specification in your Gemfile
  8. SIGAVDI #55: Lavender Yogurt Edition
  9. SIGAVDI #54: Watermelon Salad Edition
  10. SIGAVDI #53: Tamale Edition
  11. The Cache Flush Episode 003
  12. Test-Driven Re-implementation with Josh Thompson
  13. SIGAVDI #52: Grit Fritters Edition
  14. SIGAVDI #51: Ninja Bomb Edition
  15. SIGAVDI #50: Apple Cider Edition
  16. SIGAVDI #49 – Space Vodka Edition
  17. SIGAVDI #48 – Smoking Goat Edition
  18. Faking Method Inputs with OpenStruct feat. Kerri Miller
  19. SIGAVDI #47 – Pear Pizza Edition
  20. SIGAVDI #46: Corned beef & cabbage edition
  21. How to meet people at tech events when you’re awkward and shy
  22. SIGAVDI #45: Pimento Cheese Edition
  23. SIGAVDI #44: Goat Cheese Edition
  24. Things I’ve Misunderstood About Promises
  25. SIGAVDI #43: X-Wing Edition
  26. SIGAVDI #42: Ultimate Answer Edition
  27. Why I suck at writing talks with good transitions (and how I’m improving)
  28. SIGAVDI #41: Officially bored with winter edition
  29. SIGAVDI #40: Absinthe edition
  30. SIGAVDI #39: Bird and Book Edition
  31. SIGAVDI #38: New Years edition

2018 15

  1. SIGAVDI #37: Reheated gas station coffee edition
  2. SIGAVDI #36: Beef wellington edition
  3. SIGAVDI #35: Jetlag edition
  4. SIGAVDI #34: Headed down under
  5. New MOOM pairing video #7
  6. Now available: Master the Object-Oriented Mindset in Ruby and Rails
  7. How to be a shy newbie at a conference
  8. New pairing video and more updates
  9. Get $100 off of Master the Object-Oriented Mindset, today only
  10. Making local friends: a technical breakdown
  11. New additions to MOOM, May 2018 Edition
  12. SIGAVDI #33: Things fall apart
  13. Refactoring a tech talk abstract
  14. Open-sourcing my career
  15. Retrospective 2007-2017: Losing the Joy of Coding

2017 29

  1. MOOM Course Schedule Change
  2. Some thoughts and feelings on RubyConf 2017
  3. Enough With the Service Objects Already
  4. Flash sale to get me to RubyConf!
  5. Riffing on `interpose` implementations in Ruby
  6. On being the employee who “needs improvement”
  7. How to categorize objects
  8. Please help me find a web design mentor
  9. Getting started with PHP: Essential dev tools
  10. SIGAVDI #32: More than cartographers
  11. The daunting economics of cheap services
  12. Software Entrepreneurs: Stop looking for itches to scratch
  13. The Pretentious Haskell Phase
  14. Three Object-Oriented Programming Books Worth Reading
  15. Tuesday25: Creating a Rakefile for publishing to WordPress
  16. No puddle of piranhas (SIGAVDI #31)
  17. How to clean up Medium feeds in Inoreader
  18. A random selection of marketing, business, and personal development resources
  19. Side-hustle mindset versus product-business mindset
  20. Having the appearance of good design (SIGAVDI #30)
  21. I think voice dictation is turning me into a better speaker
  22. Selling tools to developers, and other bad ideas (SIGAVDI #29)
  23. Some universal code optimization rules
  24. Override all the safeties (SIGAVDI #28)
  25. Advice to myself 8 years ago
  26. Tuesday25: Keeping an automation notebook
  27. Landing pages are written, not designed
  28. Notes on Writing a Landing Page
  29. Tuesday25: Mostly just yelling at the computer

2016 22

  1. Tuesday 25: Writing a RubyTapas episode (with voice dictation)
  2. Windows and PHP are snowballs. Respect them.
  3. Today I improved… my headline chops
  4. Setting up a local WordPress dev environment with VCCW
  5. Looking for a donor RoR app
  6. On the limits of TDD, and the limits of studies of TDD
  7. Why you should spend $350 on a computer keyboard
  8. Minimal CSS frameworks for coding demos
  9. Planning for the wrong kind of scale
  10. Half-off Exceptional Ruby, Confident Ruby, & more
  11. Preserving session with Mechanize
  12. Please help me to not go broke
  13. Ruby Hero
  14. Some quick thoughts on input validation
  15. Ruby Guilty Pleasures
  16. A late-night rant about OOP and parametric dispatch
  17. Deleting Blank Lines in Emacs (2m screencast)
  18. Should we use a coding standard?
  19. Screencast: Auto-correcting typos in Emacs
  20. Matching hostnames with pcase in Elisp
  21. Hacker terminology: “Golden”
  22. About the Ruby squiggly heredoc syntax

2015 85

  1. The real 10x developer
  2. The Inescapable Pragmatism of Procedures
  3. Contempt as a sign of organizational incompetence
  4. Are you smart enough to be a programmer?
  5. Hell’s code kitchen
  6. ActiveSupport’s #try might not be doing what you think it’s doing
  7. It’s time to stop programming for the teletype era
  8. Pay no attention to the Dijkstra behind the green curtain
  9. Results of Ruby HTTP Client Library Survey
  10. Shut the hell up and listen (Avdi)
  11. I have a newsletter. You could subscribe, maybe.
  12. Programming in a Mad Max Wasteland
  13. An alternative to `puts` in Ruby
  14. Poll: What’s your favorite Ruby HTTP client library?
  15. More talks about less code!
  16. Jim Holmes on Slack (no, not the chat app)
  17. Dustin Moskovitz on work/life balance
  18. Intelligent code assistance
  19. David R. MacIver on finished libraries
  20. Janko Marohnić on Roda
  21. Hello, Crystal
  22. Current status
  23. Bob Martin on why everyone should learn assembly
  24. Known unknowns
  25. What it’s like to come back to a Ruby project after 6 months
  26. Shame as the currency of Open Source
  27. We’re still catching up to Perl
  28. Randy Coulman on unit testing
  29. Show your work
  30. John M. Carroll on Tools
  31. Don’t introduce yourself
  32. Great article on Data Objects by @pcreux
  33. Toggling technical debt
  34. Mickey Peterson on What is new in Magit 2.x
  35. Troll hunting for fun and profit
  36. Brandon Hilkert on A Path to Services
  37. Dear Medium: Please stop hurting the web
  38. Out beyond Ruby, there is a field. I will meet you there.
  39. Keep your eye on that brass ring
  40. Kata and Analysis by Jim Weirich
  41. Transcript of remarks at MeritConf 2015
  42. Weird, but not TOO weird
  43. The Agile Cargo Cult
  44. Dave Copeland on Escaping String-Typing
  45. Jim Weirich on Decoupling from Rails
  46. Garbage in, garbage out
  47. Ruby is defined by terrible tools
  48. Overprivileged trolls at Stack Overflow
  49. Birthday Sale!
  50. The semicolon is important
  51. David west on classes
  52. The good old days, when men were monads
  53. Stanford study finds walking improves creativity
  54. Haskell at Facebook
  55. Professionalism
  56. Drop Books
  57. ICANNt believe it’s not better
  58. Resilience
  59. Wetware, from zero to one
  60. Seven Bedtime Stories About Code
  61. Flat Shark
  62. 8457 2
  63. Friday Linkdump is traveling through time for God but nobody understands it.
  64. How a keyboard changed what I look for in an editor
  65. Benchmarking Ruby Dispatch Strategies
  66. Friday Linkdump
  67. RubyTapas Freebie: Sequel
  68. Some Pharo 4 Getting-Started Tips
  69. The Soul of Software
  70. I am my code, redux
  71. So what’s the deal with Ruby refinements, anyway?
  72. 8351 2
  73. New RubyTapas Freebie: Immutable Iterators with Tom Stuart
  74. 8346 2
  75. Good Haskell article
  76. Breaking open toys in Smalltalk
  77. In which I make you hate Ruby in 7 minutes
  78. 8332 2
  79. Google Says No to More End-to-End Tests
  80. A personal programming language roadmap
  81. 8319 2
  82. Patterns are for People
  83. Where to find me in 2015
  84. Who is your failure helping?
  85. Why does Ruby have blocks?

2014 36

  1. In defense of fat tools
  2. Frog and toad, willpower, and microservice architecture
  3. PayPal wants to know when I stopped beating my customers
  4. Programmers are Binary Systems
  5. Two years of RubyTapas (free episode!)
  6. Calc-mode for calculating seconds
  7. Boolean Externalities
  8. How to use Ruby’s English and/or operators without going nuts
  9. Where do ideas come from?
  10. Zero to Smoke Test with Sinatra
  11. New book! Birthday sale!
  12. Typist Wanted
  13. Rake Part 2: File Lists
  14. Active Record Soup
  15. Jim Weirich on exceptions
  16. TL;DR Amazon Sucks
  17. A case study on civility and constructive criticism
  18. Learn advanced Rake in 7 episodes
  19. Rake Part 7: MultiTask
  20. Rake Part 6: Clean and Clobber
  21. Rake Part 5: File Operations
  22. Rake Part 4: Pathmap
  23. Rake Part 3: Rules
  24. Rake Part 2: File Lists
  25. Rake Part 1: Files and Rules
  26. How to Suck at Conference Talks
  27. Why does Amazon hate ebook authors?
  28. Rumors of Ruby’s Demise
  29. Why DuckDuckGo is better for web development, a pictorial guide
  30. The Passion Gospel
  31. Playing with JSON in Postgres
  32. The Moderately Enthusiastic Programmer
  33. Dotenv for multiple environments
  34. Faster! More Intense!
  35. The Hybrid Kangaroo Desk
  36. Equals is an Assertion, not an Assignment

2013 46

  1. Lost in a World of Data
  2. Debugging an HTTP Client Library
  3. Exception Causes in Ruby 2.1
  4. FPOO Ch. 9: Functions That Make Functions
  5. FPOO Chapter 7: Programming with Dataflow
  6. FPOO Chapter 6: Inheritance
  7. FPOO Chapter 5: Classes
  8. I haven’t responded to a CFP in years
  9. Designer needed for a small job
  10. FPOO Chapter 4: Encapsulating methods in the constructor
  11. FPOO Chapters 2 & 3: Basic Objects in Elixir
  12. Watch me build an app (one day sale!)
  13. FPOO Chapter 1 in Elixir
  14. Re-implementing apply in Elixir
  15. The day my gems disappeared
  16. RubyTapas Freebie – Gem-Love Part 3
  17. Sorting Lines in 5 Languages
  18. RubyTapas Freebie: Enumerator
  19. Bounded Queue in Ruby
  20. Complete “Making of Cowsays.com” video now available from Tekpub
  21. Confident Ruby is Finished!
  22. Steal my business model!
  23. Study Notes: Conway’s Game of Life in Elixir
  24. Fixing a doc bug in Ruby
  25. Installing Elixir on Ubuntu 13.04
  26. New book, and a huge birthday sale!
  27. Study Notes: Understanding Computation
  28. RubyTapas freebie: xmpfilter
  29. A List of Programming Screencast Series
  30. Linux has better hardware support than OS X
  31. RubyTapas Freebie: Runnable Library
  32. Naught, a toolkit for building Null Object classes in Ruby
  33. “Confident Ruby” now in Beta!
  34. RubyTapas 100th Episode Giveaway
  35. RubyTapas Freebie: The End of Mocking
  36. RubyTapas Freebie: Utility Function
  37. RubyTapas Freebie: Gem Love Part 2
  38. RubyTapas Freebie: Hash Default Value
  39. RubyTapas Freebie: Streaming
  40. RubyTapas Freebie: Scanning a String
  41. RubyTapas Freebie: Caller-Specified Fallback Handler
  42. Taking a break from pair programming
  43. RubyTapas Freebie: Blocks, Procs, & Lambdas
  44. The Trouble with HTTP Digest Authentication
  45. I’m sorry too.
  46. My Screencasting Process

2012 66

  1. I am my code
  2. Modeling the World with Prototypes
  3. RubyTapas 033: Classes and Constants
  4. RubyTapas 029 – Redirecting Output
  5. RubyTapas 027: Macros and Modules
  6. RubyTapas 022: Inline Rescue
  7. On BritRuby
  8. RubyTapas Episode 21: Domain Model Events
  9. No Free RubyTapas This Week
  10. New RubyTapas Video, and a very special RubyConf Offer
  11. A Month of Tapas
  12. RubyTapas Episode 13: Singleton Objects
  13. Let’s stop telling programming newbies to learn Vim (or Emacs)
  14. RubyTapas Episode 10: Finding $HOME
  15. “Classes vs. Prototypes – Some Philosophical and Historical Observations”
  16. RubyTapas Episode 7: Constructors
  17. Conditionally Bundling Gems Based on Platform
  18. RubyTapas Episode 4: Barewords
  19. Code to Joy
  20. RubyTapas Episode 1: Binary Literals
  21. Client Dating Tips
  22. Ignorable Exceptions and Other Hacks
  23. Don’t Buy Parallels Workstation for Linux
  24. Job Thread!
  25. Configuring database_cleaner with Rails, RSpec, Capybara, and Selenium
  26. Array Set Operations in Ruby
  27. Why WordPress
  28. Define Conversion Protocols in Ruby
  29. Letter to Steven Aldrich of Outright, re: GoDaddy Acquisition
  30. Stepping off the ledge
  31. Birthday Sale! 50% off “Confident Ruby”, Today Only
  32. Every day, in every way
  33. Use revision control annotation in your editor
  34. Building Gems that Don’t Suck – Hashrocket Lunch&Learn Video
  35. Objects on Rails “Sponsor Edition” now includes a conversation with Sandi Metz!
  36. Seeking a used MacBook for my mom
  37. Confident Ruby now in Alpha
  38. DisplayCase Gem Now Available
  39. Making Little Classes out of Big Ones (video)
  40. New at WideTeams.com
  41. Creating Cowsays.com Part 2: Unit Tests and Cow Files
  42. Underscores are stupid
  43. FigLeaf Gem Now Available
  44. A Ruby Conversion Idiom
  45. HTTP forwarding services for local Facebook development
  46. Watch me write an app, starting from nothing. Part 1 now available!
  47. New maintainer needed for NullDB
  48. Assistants: Not just for the boss anymore.
  49. Generating cows with IO.popen()
  50. The cow says…
  51. Unless readable else confused
  52. Now Available: Objects on Rails
  53. Undoing and redoing changes to Emacs window layouts (Emacs Reboot #17)
  54. The sorry state of video hosting for WordPress blogs
  55. Emacs Reboot #16: Windmove
  56. Back in business
  57. Travel tips needed
  58. Editing Directory Trees in Emacs
  59. On Module Integrity
  60. Ruby Thread Locals are also Fiber-Local
  61. Preventing Recursion in Ruby
  62. Decoration is best, except when it isn’t
  63. A Game Development Curriculum
  64. ActiveRecord Default Association Extensions
  65. My authoring tools
  66. Should I rename my gem?

2011 101

  1. Stop reading this blog and learn something
  2. Systems Programming in the Cloud
  3. End your OOP Confusion with the Design Pattern Classifier
  4. Fancy GitHub Authentication with Omniauth
  5. Another Take on Smalltalk-Style Controll Flow (SBPP #6)
  6. Object Oriented Programming Books
  7. Testing that a block is called
  8. Defining #method_missing and #respond_to? at the same time
  9. Early access beta of “Objects on Rails” Now Available
  10. Running Emacs as a Server (Emacs Reboot #15)
  11. Starting Points for Pushing Async Notifications to Browsers
  12. DRYing up your validations using DB reflection
  13. RVM.el and Inf-Ruby (Emacs Reboot #14)
  14. Breaking up init.el (Emacs Reboot #13)
  15. Required Packages (Emacs Reboot #12)
  16. Declarative Keyword Parameters in Ruby (SBPP #5)
  17. Emacs Reboot #11: Line Numbers
  18. Emacs Reboot #10: Lorem Ipsum
  19. Emacs Reboot #9: Blogging
  20. Emacs Reboot #7: Ido
  21. SBPP #4: method Cascades
  22. Emacs Reboot #8: Gists
  23. SBPP #3: Reversing Method
  24. SBPP #2: Smalltalk Patterns in Ruby
  25. SBPP #1: Introduction
  26. Emacs Reboot #6: Marmalade, Magit
  27. What do you want to know about OOP and Rails?
  28. Emacs Reboot #5
  29. Emacs Reboot #4: Customizing Customization
  30. Emacs Reboot #3: Preparing the Canvas
  31. Making a Mockery of TDD
  32. 5 things programmers preach but don’t practice
  33. Temporarily disabling warnings in Ruby
  34. There is no such thing as a good field programmer
  35. Your Code is My Hell
  36. Letter to a Young Developer
  37. Do we need constants?
  38. You Can’t Subclass Integers in Ruby
  39. View Sandboxes for Rails
  40. The Coding Wasteland
  41. Go get yourself some PragProg books
  42. Loading plugins with Rubygems
  43. Emacs Reboot #2: Startup
  44. Why Linux
  45. Emacs Reboot #1: Beginnings
  46. Software Superstitions
  47. Fowler on Rails
  48. The Procedure/Function Block Convention in Ruby
  49. New at WideTeams.com
  50. An intro to throw and catch in Ruby
  51. Demeter: It’s not just a good idea. It’s the law.
  52. Do, or do not. There is no #try.
  53. Agile is whatever you want it to be
  54. Your code is broken, and Ruby can help you fix it
  55. Summer Speaking Schedule
  56. Make Emacs-Server Write a PID File
  57. A Guardfile for Redis
  58. Using CapsLock to Trigger Ubuntu Unity
  59. Null Objects and Falsiness
  60. Exceptional Ruby now available in ePub, Mobi, and HTML
  61. Keep local modifications in Git-tracked files
  62. RailsConf, BohConf, DCRUG Video
  63. “Exceptional Ruby” Now Available!
  64. Last Chance for Exceptional Ruby Beta
  65. Hello, Red Dirt Ruby!
  66. RubyMine, Spork, RSpec, Cucumber
  67. Linkdump #8
  68. RailsConf 20% Discount for Virtuous Code Readers
  69. Screencast: Taping API Interactions with VCR
  70. Linkdump #7
  71. RSpec is for the literate
  72. Getting Started with Erector in Rails 3
  73. Ruby on Ales 2011
  74. Linkdump #6
  75. Linkdump #5
  76. Ruby on Ales and RailsConf
  77. My 99Designs Experience
  78. Linkdump #4
  79. Creating a PA LLC
  80. Ruby++, or why post-increment is tricky
  81. Linkdump #3
  82. Screencast: Why Keyboard Macros are Awesome
  83. Contest: Your reply to NoneSuch
  84. How to be a “Dirty Harry” programmer
  85. NoneSuch: The Greatest Ruby Gem EVAR
  86. REST Resources
  87. “Exceptional Ruby” Video and Beta eBook!
  88. I’m speaking at RubyNation and Red Dirt Ruby Conf
  89. Thank You, Magic Ruby!
  90. Help me speak at MagicRuby and beyond
  91. Linkdump #2
  92. Linkdump #1
  93. Elegant Code » Book Review – Extreme Programming Explained
  94. The happy developer
  95. ActiveRecord association extensions and method_missing
  96. I’m Speaking at Day Camp 4 Developers
  97. ActiveRecord Golf
  98. Roy Osherove on Test Construction
  99. Programming is Catfish Noodling
  100. Glass Houses for Ruby
  101. Fast and Good

2010 65

  1. They just don’t make bugs like they used to
  2. Daniel Spiewak on Monads
  3. Object Oriented Programming Comes to Rails
  4. Overriding the Backtick in Ruby
  5. EventMachine has competition
  6. Why the GPL Matters
  7. Full Exploitation
  8. Social Profile Services – A Summary
  9. A Rack-like library for HTTP Clients
  10. RVM Proxies for Common Commands? (Solved)
  11. Transcending Threads
  12. Writing Open Source software that people will actually use
  13. Counters for Partials
  14. The Ruby Stdlib is a Messy Workshop
  15. Speaking at Magic Ruby
  16. SpiderOak Review
  17. Leave it to java
  18. Facebook must be stopped
  19. Open Source GUI Prototyping? Sign me up!
  20. The Mechanics of Web Design
  21. Checking the existence of a super method in Ruby
  22. Determining Singleton Class Status in Ruby
  23. Off to Ruby DCamp
  24. Do you use a Real Editor?
  25. Class Methods Considered Annoying
  26. I don’t care about your corporate perks
  27. ANN FireTower 0.0.4
  28. Treating Arrays as Sets
  29. Using Hashes as Caches
  30. “and” and “or” are like backwards statement modifiers
  31. Using “and” and “or” in Ruby
  32. RPCFN Solution
  33. Greenletters: Painless automation and testing for command-line applications
  34. Announcing Firetower – A command-line interface to Campfire
  35. Rack-Test and Capybara are uneasy bedfellows
  36. Rails 3 resource routes with dots; or, how to make a Ruby developer go a little bit insane
  37. Open for business!
  38. Announcing Wide Teams
  39. YAGNI: Answers to some common objections to dropping out
  40. Turn on, tune in, drop out
  41. Ruby Tempfiles in Depth
  42. Quickie Objects in Ruby
  43. Thoughts on the Dell Studio XPS 16
  44. There Ain’t No Such Thing As a Free Dinner
  45. Ruby Programming Challenge for Newbies
  46. Pair Programming is like Having a Copilot
  47. Daemonic Emacs
  48. Refactoring in Ruby
  49. NullDB has a new maintainer
  50. Dumping Tabular Data with Hirb
  51. The New Openness
  52. Removing files with varied capitalization
  53. ruby-standard.org
  54. Getting Pedantic About Ruby Semantics
  55. Calling Grandparents in Ruby
  56. Come see me in Harrisburg tonight!
  57. Looking for a new NullDB maintainer
  58. RubyPulse
  59. Everything You Love about Java is Everything I Love About Good Design
  60. Cargo Cults and Dharma Transmission
  61. First and Rest in Ruby
  62. Confident Code at B’More on Rails
  63. Hammertime: An interactive error console for Ruby
  64. Come see me run my mouth at B’More on Rails
  65. The Pidgin “IRSSI Features” Plugin Will Spam Your Friends

2009 39

  1. Wax on, Wax off
  2. Debugging Rule 1: It’s your fault
  3. RightAWS and SSL Certificates
  4. Fetching multiple SimpleDB items in a single request
  5. PC Construction Resources?
  6. Hash Transforms in Ruby
  7. Speed up RightAWS by Enabling libxml
  8. Assertive Code
  9. The State of SimpleDB Clones
  10. Why Go Matters
  11. Simplicity is Complicated
  12. Copying Amazon SimpleDB Domains
  13. NullDB for DataMapper
  14. ISO8601 Dates in Ruby
  15. Double-Load Guards in Ruby
  16. Patching flymake for Ruby development
  17. Array-ifying Values
  18. Viewing REST service responses in a browser
  19. Safely executing commands with user data
  20. My WebOS Makefile
  21. Ruby Subprocesses Part 3
  22. Programming WebOS
  23. “80% of men never noticed anything”
  24. Recursively Symbolize Keys
  25. BarCamp Baltimore 2009
  26. Playing Grown-Up: The Rails Maturity Model
  27. Rehabilitating the professional rock star
  28. Devver
  29. Ubuntu, Emacs, and Fonts
  30. Go Fetch
  31. Writing Facades on Legacy Code
  32. Smart Requires in Ruby
  33. TDD Accelerates Development
  34. VirtualBox NAT Forwarding
  35. Damien Katz: CouchDB and Me
  36. The three line rule
  37. Agile Living
  38. Is your keyboard jammed, or are you just writing Haskell?
  39. The Three Virtues

2008 40

  1. Ruby Advent Calendar 2008: Listening to Your Specs
  2. Using AlterEgo with ActiveRecord
  3. [ANN] HookR 1.0.0
  4. [ANN] fail-fast 1.0.0 Released
  5. [ANN] alter-ego 1.0.0 Released
  6. Writing Self-Confident Code
  7. Complex Hash Expectations in RSpec
  8. Testing Private Methods
  9. Languages I Want to Learn
  10. If anyone’s looking for me, I’ll be DCamping
  11. You keep using that word “distributed”…
  12. RIP Guy Decoux
  13. CommunityOverflow – Userscripts.org
  14. Corporate Leave Policies?
  15. Class.new and .inherited()
  16. Switching to Disqus
  17. Always something new
  18. The Trifecta of FAIL; or, how to patch Rails 2.0 for Ruby 1.8.7
  19. Contact Info Survey
  20. Phenomenal Cosmic Power
  21. Revision-Stamp Your Rails Apps
  22. Epic Fail, or, why the users hate us.
  23. You should be on ruby-talk
  24. Everything Old…
  25. The Lotus Desk
  26. Rock’em Sock’em Ockham
  27. On Beauty in Code
  28. Sustainable Development in Ruby, Part 3: Delegation
  29. Why Your Social Website Should Support OpenID
  30. Announcing Ninja-Patching!
  31. Sustainable Development in Ruby, Part 2: Method Injection
  32. Sustainable Development in Ruby, Part 1: Good Old-Fashioned Inheritance
  33. The Pipe Cleaner Gang
  34. Sustainable Development in Ruby: Introduction
  35. Doctor, it hurts when you say that
  36. Full Disclosure; or, What’s in your toolbox?
  37. Followup to “Monkeypatching is Destroying Ruby”
  38. Monkeypatching is Destroying Ruby
  39. Announcing NullDB 0.0.1
  40. Why jQuery

2007 9

  1. Technorati Blog Claim
  2. Professionalism
  3. Quotable
  4. Utility Belt
  5. Virtuous Language Design
  6. Jquery
  7. Pimp My Library
  8. Simple Design & Testing Conference 2007
  9. First Post!