Noel Rappin Writes Here

Most Recent Books

 logo

Programming Ruby 3.3

The Pragmatic Programmers' Guide

Ruby is one of the most important programming languages in use for web development. It powers the Rails framework, which is the backing of some of the most important sites on the web. The Pickaxe Book, named for the tool on the cover, is the definitive reference on Ruby, a highly-regarded, fully object-oriented programming language. This updated edition is a comprehensive reference on the language itself, with a tutorial on the most important features of Ruby—including pattern matching and Ractors—and describes the language through Ruby 3.3.

 logo

Modern Front-End Development for Rails, Second Edition

Hotwire, Stimulus, Turbo, and React

Improve the user experience for your Rails app with rich, engaging client-side interactions. Learn to use the Rails 7 tools and simplify the complex JavaScript ecosystem. It’s easier than ever to build user interactions with Hotwire, Turbo, and Stimulus. You can add great front-end flair without much extra complication. Use React to build a more complex set of client-side features. Structure your code for different levels of client-side needs with these powerful options. Add to your toolkit today!

 logo

Modern CSS with Tailwind, Second Edition

Flexible Styling without the Fuss

Tailwind CSS is an exciting new CSS framework that allows you to design your site by composing simple utility classes to create complex effects. With Tailwind, you can style your text, move your items on the page, design complex page layouts, and adapt your design for devices from a phone to a wide-screen monitor. This new edition of the book covers Tailwind 3.0, which changes the way Tailwind generates its CSS and has a large number of new features powered by the new system.

 logo

Rails 5 Test Prescriptions

Build a Healthy Codebase

Does your Rails code suffer from bloat, brittleness, or inaccuracy? Cure these problems with the regular application of test-driven development. You’ll use Rails 5.1, Minitest 5, and RSpec 3.7, as well as popular testing libraries such as factory_bot and Cucumber. Updates include Rails 5.1 system tests and Webpack integration. Do what the doctor ordered to make your applications feel all better. Side effects may include better code, fewer bugs, and happier developers.

Most Recent Blog Posts

Better Know A Ruby Thing: Singleton Classes

It is time to Better Know what is perhaps the Ruby-iest of Ruby things, a feature that didn’t even have an official name for several years, despite being critical to Ruby’s Object-Oriented semantics. (It only just now occurs to me that there was no official name in English, I wonder what the Japanese name for it was…). Yes, it’s the singleton class. Which isn’t really a singleton. Or really a class.

Object Constellations

Last time, I talked about ways to use dynamic typing to manage objects and business logic in your code. Doing so involves leaning into the object system, going beyond just “one class for each noun” and creating objects to model different states within the business logic directly. In a basic Object-Oriented design, you might have an object called User. This object, by itself, represents the entire concept of a user within the system.

How Not To Use Static Typing In Ruby

How To Not Use Static Typing In Ruby Last time, I took a short example and examined in some detail what you would gain by adding static typing to it and what it would cost to use static typing. What I didn’t do was explain how I might handle the problem without static typing. For reference, Here’s the example again. Consider this to be part of a larger system and don’t worry too much about the rest of the world:

What About Static Typing in Ruby?

I’ve tried writing this literally a half-dozen times. And it always feels like it slips out of control and gets too abstract to be useful. So, let’s start with something concrete. And we’re going to wind up splitting this into multiple parts. Probably two, but honestly, at this point who knows? This all got started because I was discussing the use of runtime checking using Sorbet. The other person gave me a code snippet and asked how I would manage it without type checking.
Mastodon

Tech Done Right

Most Recent Videos

RubyConf logo

RubyConf 2024

Workshop: No Static Types? No Problem!

November 2024
SF Bay Area Meetup logo

SF Bay Area Meetup 2024

Ruby's Legacy and Ruby's Future

September 2024
RailsConf logo

RailsConf 2024

Workshop: Let's Extend Rails with A Gem

May 2024



Copyright 2025 Noel Rappin

All opinions and thoughts expressed or shared in this article or post are my own and are independent of and should not be attributed to my current employer, Chime Financial, Inc., or its subsidiaries.