Blogger I love diving into the details of a technology, learning how it works, and then explaining it in simple terms that everyone can understand.
Rubyist I’ve written a few gems that you can find on my github profile. You can also find me occasionally at meetings of the Boston.rb group.
Aspiring Author I just self-published an eBook called Ruby Under a Microscope.
|
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
|
Two Dumb Ruby Mistakes
|
|
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
|
Using Rake to Generate a Blog
|
|
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
|
|
|
How Big is a Bignum?
|
|
December 2013
|
Three RubyConf Surprises
|
|
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
|
|
|
Ruby’s Top Self Object
|
|
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’s Missing Data Structure
|
|
|
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
|
|
|
An Interview With Jim Weirich
|
|
|
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
|
Objects, Classes and Modules
|
|
June 2012
|
How Ruby Executes Your Code
|
|
|
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
|
Matt Wynne On Using Cucumber
|
|
|
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
|
How does Bundler bundle?
|
|
|
Bundler’s Best Kept Secret
|
|
|
How does Kaminari paginate?
|
|
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
|
ruby187gc.patch
|
|
|
ActiveRecord with large result sets - part 1: select_all vs. find
|
|
July 2010
|
Code record/playback using Rails 3 generators
|
|
|
OSCON
|
|
|
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
|
Paperclip scaffolding
|
|
|
View Mapper: Scaffolding for your models and plugins
|
|
|
Auto_complete scaffolding
|
|
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
|
|
|
Repeated auto complete plugin usage change
|
|
|
Auto complete for complex forms using nested attributes in Rails 2.3
|
|
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
|
Paperclip sample app
|
|
|
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
|
|
|
Mephisto Setup on HostingRails.com
|
|
|
Why to use TDD with Drupal
|