Pat Shaughnessy (original) (raw)
February 2025
Inserting One New Element into Hashes of Varying Sizes
January 2025
Updating Ruby Under a Microscope
February 2022
LLVM IR: The Esperanto of Computer Languages
January 2022
Visiting an Abstract Syntax Tree
December 2021
November 2021
Find Your Language’s Primitives
Generic Types: Adding Math Puzzles To Your Code
October 2021
To Learn a New Language, Read Its Standard Library
January 2020
Downloading 100,000 Files Using Async Rust
November 2019
Using Result Combinator Functions in Rust
October 2019
How Rust Makes Error Handling Part of the Language
September 2019
Using Rust to Build a Blog Site
October 2018
Summer School With The Rust Compiler
June 2018
March 2018
How Rust Implements Tagged Unions
January 2018
Learning Rust: If Let vs. Match
December 2017
Looking Inside Postgres at a GiST Index
Manipulating Trees Using SQL and the Postgres LTREE Extension
Saving a Tree in Postgres Using LTREE
Installing the Postgres LTREE Extension
Trying to Represent a Tree Structure Using Postgres
January 2017
Pointers in C and x86 Assembly Language
November 2016
Learning to Read x86 Assembly Language
October 2016
Need a Second Opinion on Your Ruby Code? Ask Crystal
April 2016
January 2016
Is Your Postgres Query Starved for Memory?
November 2015
A Look at How Postgres Executes a Tiny Join
September 2015
What Do Perl and Go Have in Common?
June 2015
Don’t Let Your Data Out of the Database
February 2015
Mark Methods Private When You Don’t Test Them
January 2015
December 2014
Koichi Sasada Encourages Us To Contribute To Ruby
Matz’s Foreword to Ruby Under a Microscope
November 2014
Discovering the Computer Science Behind Postgres Indexes
October 2014
Following a Select Statement Through Postgres Internals
September 2014
How Arel Converts Ruby Queries Into SQL Statements
20,000 Leagues Under ActiveRecord
June 2014
A Rule of Thumb for Strong Parameters
April 2014
Using a Ruby Class To Write Functional Code
February 2014
Use An Ask, Don’t Tell Policy With Ruby
January 2014
What does (((λ f . (λ x . (f x))) (λ a . a)) (λ b . b)) mean?
Ruby Multiplies Like a Fourth Grader
December 2013
November 2013
Expanded Ruby Under a Microscope Available in Print!
October 2013
Generational GC in Python and Ruby
Visualizing Garbage Collection in Ruby and Python
June 2013
RubyKaigi: Making a Japanese Conference Accessible to the World
Meet Fifteen Ruby Core Committers
Coming This Fall: “Ruby Under a Microscope” Updated and in Print
Ruby, Python, Java, C and Programmer Happiness
April 2013
Ruby 2.0 Works Hard So You Can Be Lazy
February 2013
An Interview With Laurent Sansonetti
Ruby MRI Source Code Idioms #3: Embedded Objects
January 2013
Ruby MRI Source Code Idioms #2: C That Resembles Ruby
Ruby MRI Source Code Idioms #1: Accessing Data Via Macros
December 2012
Ruby, Smalltalk and Class Variables
A High Level Code Walk Through Ruby MRI
November 2012
My eBook build process and some PDF, EPUB and MOBI tips
October 2012
Xavier Noria: The Code Gardener
September 2012
How Ruby Borrowed a Decades Old Idea From Lisp
August 2012
Narihiro Nakamura: Ruby’s GC Innovator
July 2012
June 2012
The Start of a Long Journey: How Ruby Parses and Compiles Your Code
May 2012
A Conversation With Mark Bates About How To Learn CoffeeScript
One Chapter From My Upcoming eBook: Ruby Under a Microscope
April 2012
Exploring Ruby’s Regular Expression Algorithm
March 2012
Why You Should Be Excited About Garbage Collection in Ruby 2.0
Learning More About JRuby from Charles Nutter
Learning From the Masters: Sinatra Internals
February 2012
The Joke Is On Us: How Ruby 1.9 Supports the Goto Statement
An Interview with Andre Arko and Terence Lee from the Bundler Team
Is Ruby interpreted or compiled?
Journey to the center of JRuby
A chat with Nick Quaranto about RubyGems.org internals
January 2012
My first impression of Rubinius internals
Seeing double: how Ruby shares string values
How to Customize Twitter Bootstrap’s Design in a Rails app
Never create Ruby strings longer than 23 characters
December 2011
Learning from the masters part 2: three metaprogramming best practices
Too good to be true! Twitter Bootstrap meets Formtastic and Tabulous
Learning from the masters: some of my favorite Rails commits
November 2011
Two ways of using Redis to build a NoSQL autocomplete search index
Finding your soulmate: autocomplete with Redis in Rails 3.1
Twitter Bootstrap, Less, and Sass: Understanding Your Options for Rails 3.1
Besides being faster, what else is new in Bundler 1.1?
October 2011
Don’t be terrified of building native extensions!
Show some love for prepared statements in Rails 3.1
Why Bundler 1.1 will be much faster
It’s time to clean up your mess: refactoring Cucumber step definitions
The technology you never knew you were using to test your Rails site
September 2011
June 2011
Where does my javascript code go? Backbone, JST and the Rails 3.1 asset pipeline
April 2011
Contributing a new scaffold to ScaffoldHub
March 2011
View Mapper for Rails 3: ScaffoldHub
February 2011
Customizing Toto to support blog post categories
January 2011
4 tips for how to customize a Toto blog site
December 2010
CodeBuddy: See your Ruby stack come alive!
November 2010
How to integrate Amazon Simple Pay into a Rails 3 app
ReliefHub hackfest: helping orphanages in Haiti
October 2010
ActiveRecord with large result sets - part 2: streaming data
September 2010
ActiveRecord with large result sets - part 1: select_all vs. find
July 2010
Code record/playback using Rails 3 generators
Using LEFT OUTER JOIN with SearchLogic
June 2010
Using method_missing to customize SearchLogic
May 2010
How to install Paperclip in a Rails 3 app
April 2010
How to create a slideshow using JQuery and Rails in 10 minutes or less
Creating associations to existing data part 3: has_many :through scaffolding
March 2010
Class Factory: Factory_girl-like syntax for dynamically creating Ruby classes
February 2010
Getting started with Ruby metaprogramming
Creating associations to existing data part 2: belongs_to with auto_complete
January 2010
Creating associations to existing data part 1: belongs_to scaffolding
December 2009
How does the complex-form-examples sample app work?
How to convert a Rails plugin into a gem
November 2009
Scaffolding for auto complete on a complex, nested form
Scaffolding for complex forms using nested attributes
October 2009
View Mapper: Scaffolding for your models and plugins
September 2009
Rails generator tutorial part 2: writing a custom manifest action
August 2009
Tutorial: How to write a Rails generator
July 2009
Generating view scaffolding code for existing models
June 2009
Taming the beast: Using JRuby and RSpec to test a J2EE application
Auto complete for complex forms using nested attributes in Rails 2.3
Repeated auto complete plugin usage change
May 2009
Paperclip sample app part 3: saving file attachments in a database BLOB column
Paperclip sample app part 2: downloading files through a controller
April 2009
Database storage for Paperclip: rewritten to use a single table
Filtering auto_complete pick lists – part 2: using named scopes
March 2009
Filtering auto_complete pick lists
February 2009
Database storage for Paperclip
January 2009
Sample app for auto complete on a complex form
Repeated_auto_complete changes merged into auto_complete
Using MySQL transactions with Drupal unit tests
Using transactions in a separate database with Drupal PHPUnit tests
Using a test database with Drupal unit tests
TDD keeps your PHP code separate from Drupal
December 2008
Using TDD to write a Drupal module
Writing your first PHPUnit test in Drupal
Example Drupal module to use for TDD demonstration
November 2008
The auto_complete plugin refactored to support repeated fields and named scopes
Testing is a lesson in humility
October 2008
Modifying the auto_complete Plugin to Allow Repeated Fields
Autocomplete plugin doesn’t work for repeated fields
September 2008
Problems Installing the Cutline Theme in Mephisto