-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.html
1 lines (1 loc) · 28.7 KB
/
index.html
1
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Pat Shaughnessy</title><meta name="description" content=""><meta name="author" content=""><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/assets/css/normalize.css"><link rel="stylesheet" href="/assets/css/skeleton.css"><link rel="alternate" type="application/atom+xml" title="Pat Shaughnessy - Feed" href="http://feeds2.feedburner.com/patshaughnessy"><link rel="icon" type="image/png" href="images/favicon.png"></head><body><div id="banner"><a href="/"><span id="title">Pat Shaughnessy</span><span id="tagline"> blogger, rubyist, aspiring author</span></a></div><div style="margin-top: 35px"><div class="ten columns"><div class="container"><div class="row"><div class="mobile-header"><h1>Buy My Book</h1><div class="links"><ul><li><a href="/ruby-under-a-microscope"><img src="/assets/images/book-cover.png"></img></a></li><li id="eBook"><a href="/ruby-under-a-microscope">Ruby Under a Microscope</a></li></ul></div></div><div class="mobile-header"><h1>Subscribe</h1><div class="links"><ul><li><a id="feed" href="http://feeds.feedburner.com/patshaughnessy"><img src="/assets/images/feed-icon16x16B.png"></img></a><a href="http://twitter.com/pat_shaughnessy"><img width="20" height="20" src="/assets/images/twitter.svg"></img></a></li></ul></div></div></div><div class="row"><h1>All Articles</h1><table id="archive-table"><tr><td id="date">February 2022<else></else></td><td><a href="2022/2/19/llvm-ir-the-esperanto-of-computer-languages">LLVM IR: The Esperanto of Computer Languages</a></td></tr><tr><td id="date">January 2022<else></else></td><td><a href="2022/1/22/visiting-an-abstract-syntax-tree">Visiting an Abstract Syntax Tree</a></td></tr><tr><td id="date">December 2021<else></else></td><td><a href="2021/12/22/reading-code-like-a-compiler">Reading Code Like a Compiler</a></td></tr><tr><td id="date">November 2021<else></else></td><td><a href="2021/11/29/find-your-languages-primitives">Find Your Language’s Primitives</a></td></tr><tr><td id="date"><else></else></td><td><a href="2021/11/6/generic-types-adding-math-puzzles-to-your-code">Generic Types: Adding Math Puzzles To Your Code</a></td></tr><tr><td id="date">October 2021<else></else></td><td><a href="2021/10/23/to-learn-a-new-language-read-its-standard-library">To Learn a New Language, Read Its Standard Library</a></td></tr><tr><td id="date">January 2020<else></else></td><td><a href="2020/1/20/downloading-100000-files-using-async-rust">Downloading 100,000 Files Using Async Rust</a></td></tr><tr><td id="date">November 2019<else></else></td><td><a href="2019/11/19/using-result-combinator-functions-in-rust">Using Result Combinator Functions in Rust</a></td></tr><tr><td id="date">October 2019<else></else></td><td><a href="2019/10/3/how-rust-makes-error-handling-part-of-the-language">How Rust Makes Error Handling Part of the Language</a></td></tr><tr><td id="date">September 2019<else></else></td><td><a href="2019/9/4/using-rust-to-build-a-blog-site">Using Rust to Build a Blog Site</a></td></tr><tr><td id="date">October 2018<else></else></td><td><a href="2018/10/24/summer-school-with-the-rust-compiler">Summer School With The Rust Compiler</a></td></tr><tr><td id="date">June 2018<else></else></td><td><a href="2018/6/9/from-activerecord-to-diesel">From ActiveRecord to Diesel</a></td></tr><tr><td id="date">March 2018<else></else></td><td><a href="2018/3/15/how-rust-implements-tagged-unions">How Rust Implements Tagged Unions</a></td></tr><tr><td id="date">January 2018<else></else></td><td><a href="2018/1/18/learning-rust-if-let-vs--match">Learning Rust: If Let vs. Match</a></td></tr><tr><td id="date">December 2017<else></else></td><td><a href="2017/12/15/looking-inside-postgres-at-a-gist-index">Looking Inside Postgres at a GiST Index</a></td></tr><tr><td id="date"><else></else></td><td><a href="2017/12/14/manipulating-trees-using-sql-and-the-postgres-ltree-extension">Manipulating Trees Using SQL and the Postgres LTREE Extension</a></td></tr><tr><td id="date"><else></else></td><td><a href="2017/12/13/saving-a-tree-in-postgres-using-ltree">Saving a Tree in Postgres Using LTREE</a></td></tr><tr><td id="date"><else></else></td><td><a href="2017/12/12/installing-the-postgres-ltree-extension">Installing the Postgres LTREE Extension</a></td></tr><tr><td id="date"><else></else></td><td><a href="2017/12/11/trying-to-represent-a-tree-structure-using-postgres">Trying to Represent a Tree Structure Using Postgres</a></td></tr><tr><td id="date">January 2017<else></else></td><td><a href="2017/1/20/pointers-in-c-and-x86-assembly-language">Pointers in C and x86 Assembly Language</a></td></tr><tr><td id="date">November 2016<else></else></td><td><a href="2016/11/26/learning-to-read-x86-assembly-language">Learning to Read x86 Assembly Language</a></td></tr><tr><td id="date">October 2016<else></else></td><td><a href="2016/10/7/need-a-second-opinion-on-your-ruby-code-ask-crystal">Need a Second Opinion on Your Ruby Code? Ask Crystal</a></td></tr><tr><td id="date">April 2016<else></else></td><td><a href="2016/4/2/two-dumb-ruby-mistakes">Two Dumb Ruby Mistakes</a></td></tr><tr><td id="date">January 2016<else></else></td><td><a href="2016/1/22/is-your-postgres-query-starved-for-memory">Is Your Postgres Query Starved for Memory?</a></td></tr><tr><td id="date">November 2015<else></else></td><td><a href="2015/11/24/a-look-at-how-postgres-executes-a-tiny-join">A Look at How Postgres Executes a Tiny Join</a></td></tr><tr><td id="date">September 2015<else></else></td><td><a href="2015/9/25/what-do-perl-and-go-have-in-common">What Do Perl and Go Have in Common?</a></td></tr><tr><td id="date">June 2015<else></else></td><td><a href="2015/6/18/dont-let-your-data-out-of-the-database">Don’t Let Your Data Out of the Database</a></td></tr><tr><td id="date">February 2015<else></else></td><td><a href="2015/2/16/mark-methods-private-when-you-dont-test-them">Mark Methods Private When You Don’t Test Them</a></td></tr><tr><td id="date">January 2015<else></else></td><td><a href="2015/1/8/using-rake-to-generate-a-blog">Using Rake to Generate a Blog</a></td></tr><tr><td id="date">December 2014<else></else></td><td><a href="2014/12/17/koichi-sasada-encourages-us-to-contribute-to-ruby">Koichi Sasada Encourages Us To Contribute To Ruby</a></td></tr><tr><td id="date"><else></else></td><td><a href="2014/12/15/matzs-forward-to-ruby-under-a-microscope">Matz’s Foreword to Ruby Under a Microscope</a></td></tr><tr><td id="date">November 2014<else></else></td><td><a href="2014/11/11/discovering-the-computer-science-behind-postgres-indexes">Discovering the Computer Science Behind Postgres Indexes</a></td></tr><tr><td id="date">October 2014<else></else></td><td><a href="2014/10/13/following-a-select-statement-through-postgres-internals">Following a Select Statement Through Postgres Internals</a></td></tr><tr><td id="date">September 2014<else></else></td><td><a href="2014/9/23/how-arel-converts-ruby-queries-into-sql-statements">How Arel Converts Ruby Queries Into SQL Statements</a></td></tr><tr><td id="date"><else></else></td><td><a href="2014/9/17/20000-leagues-under-activerecord">20,000 Leagues Under ActiveRecord</a></td></tr><tr><td id="date">June 2014<else></else></td><td><a href="2014/6/16/a-rule-of-thumb-for-strong-parameters">A Rule of Thumb for Strong Parameters</a></td></tr><tr><td id="date">April 2014<else></else></td><td><a href="2014/4/8/using-a-ruby-class-to-write-functional-code">Using a Ruby Class To Write Functional Code</a></td></tr><tr><td id="date">February 2014<else></else></td><td><a href="2014/2/10/use-an-ask-dont-tell-policy-with-ruby">Use An Ask, Don’t Tell Policy With Ruby</a></td></tr><tr><td id="date">January 2014<else></else></td><td><a href="2014/1/30/what-does-f-x-f-x-a-a-b-b-mean">What does (((λ f . (λ x . (f x))) (λ a . a)) (λ b . b)) mean?</a></td></tr><tr><td id="date"><else></else></td><td><a href="2014/1/24/ruby-multiplies-like-a-fourth-grader">Ruby Multiplies Like a Fourth Grader</a></td></tr><tr><td id="date"><else></else></td><td><a href="2014/1/9/how-big-is-a-bignum">How Big is a Bignum?</a></td></tr><tr><td id="date">December 2013<else></else></td><td><a href="2013/12/4/three-rubyconf-surprises">Three RubyConf Surprises</a></td></tr><tr><td id="date">November 2013<else></else></td><td><a href="2013/11/7/expanded-ruby-under-a-microscope-available-in-print">Expanded Ruby Under a Microscope Available in Print!</a></td></tr><tr><td id="date">October 2013<else></else></td><td><a href="2013/10/30/generational-gc-in-python-and-ruby">Generational GC in Python and Ruby</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/10/24/visualizing-garbage-collection-in-ruby-and-python">Visualizing Garbage Collection in Ruby and Python</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/10/7/rubys-top-self-object">Ruby’s Top Self Object</a></td></tr><tr><td id="date">June 2013<else></else></td><td><a href="2013/6/25/rubykaigi-making-a-japanese-conference-accessible-to-the-world">RubyKaigi: Making a Japanese Conference Accessible to the World</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/6/18/meet-fifteen-ruby-core-committers">Meet Fifteen Ruby Core Committers</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/6/4/coming-this-fall-ruby-under-a-microscope-updated-and-in-print">Coming This Fall: “Ruby Under a Microscope” Updated and in Print</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/6/3/ruby-python-java-c-and-programmer-happiness">Ruby, Python, Java, C and Programmer Happiness</a></td></tr><tr><td id="date">April 2013<else></else></td><td><a href="2013/4/11/rubys-missing-data-structure">Ruby’s Missing Data Structure</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/4/3/ruby-2-0-works-hard-so-you-can-be-lazy">Ruby 2.0 Works Hard So You Can Be Lazy</a></td></tr><tr><td id="date">February 2013<else></else></td><td><a href="2013/2/12/an-interview-with-laurent-sansonetti">An Interview With Laurent Sansonetti</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/2/8/ruby-mri-source-code-idioms-3-embedded-objects">Ruby MRI Source Code Idioms #3: Embedded Objects</a></td></tr><tr><td id="date">January 2013<else></else></td><td><a href="2013/1/31/ruby-mri-source-code-idioms-2-c-that-resembles-ruby">Ruby MRI Source Code Idioms #2: C That Resembles Ruby</a></td></tr><tr><td id="date"><else></else></td><td><a href="2013/1/23/ruby-mri-source-code-idioms-1-accessing-data-via-macros">Ruby MRI Source Code Idioms #1: Accessing Data Via Macros</a></td></tr><tr><td id="date">December 2012<else></else></td><td><a href="2012/12/17/ruby-smalltalk-and-class-variables">Ruby, Smalltalk and Class Variables</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/12/13/an-interview-with-jim-weirich">An Interview With Jim Weirich</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/12/3/a-high-level-code-walk-through-ruby-mri">A High Level Code Walk Through Ruby MRI</a></td></tr><tr><td id="date">November 2012<else></else></td><td><a href="2012/11/27/my-ebook-build-process-and-some-pdf-epub-and-mobi-tips">My eBook build process and some PDF, EPUB and MOBI tips</a></td></tr><tr><td id="date">October 2012<else></else></td><td><a href="2012/10/11/xavier-noria-the-code-gardener">Xavier Noria: The Code Gardener</a></td></tr><tr><td id="date">September 2012<else></else></td><td><a href="2012/9/18/how-ruby-borrowed-a-decades-old-idea-from-lisp">How Ruby Borrowed a Decades Old Idea From Lisp</a></td></tr><tr><td id="date">August 2012<else></else></td><td><a href="2012/8/6/narihiro-nakamura-rubys-gc-innovator">Narihiro Nakamura: Ruby’s GC Innovator</a></td></tr><tr><td id="date">July 2012<else></else></td><td><a href="2012/7/26/objects-classes-and-modules">Objects, Classes and Modules</a></td></tr><tr><td id="date">June 2012<else></else></td><td><a href="2012/6/29/how-ruby-executes-your-code">How Ruby Executes Your Code</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/6/18/the-start-of-a-long-journey-how-ruby-parses-and-compiles-your-code">The Start of a Long Journey: How Ruby Parses and Compiles Your Code</a></td></tr><tr><td id="date">May 2012<else></else></td><td><a href="2012/5/11/a-conversation-with-mark-bates-about-how-to-learn-coffeescript">A Conversation With Mark Bates About How To Learn CoffeeScript</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/5/9/one-chapter-from-my-upcoming-ebook-ruby-under-a-microscope">One Chapter From My Upcoming eBook: Ruby Under a Microscope</a></td></tr><tr><td id="date">April 2012<else></else></td><td><a href="2012/4/6/matt-wynne-on-using-cucumber">Matt Wynne On Using Cucumber</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/4/3/exploring-rubys-regular-expression-algorithm">Exploring Ruby’s Regular Expression Algorithm</a></td></tr><tr><td id="date">March 2012<else></else></td><td><a href="2012/3/23/why-you-should-be-excited-about-garbage-collection-in-ruby-2-0">Why You Should Be Excited About Garbage Collection in Ruby 2.0</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/3/16/learning-more-about-jruby-from-charles-nutter">Learning More About JRuby from Charles Nutter</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/3/7/learning-from-the-masters-sinatra-internals">Learning From the Masters: Sinatra Internals</a></td></tr><tr><td id="date">February 2012<else></else></td><td><a href="2012/2/29/the-joke-is-on-us-how-ruby-1-9-supports-the-goto-statement">The Joke Is On Us: How Ruby 1.9 Supports the Goto Statement</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/2/24/an-interview-with-andre-arko-and-terence-lee-from-the-bundler-team">An Interview with Andre Arko and Terence Lee from the Bundler Team</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/2/15/is-ruby-interpreted-or-compiled">Is Ruby interpreted or compiled?</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/2/7/journey-to-the-center-of-jruby">Journey to the center of JRuby</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/2/1/a-chat-with-nick-quaranto-about-rubygems-org-internals">A chat with Nick Quaranto about RubyGems.org internals</a></td></tr><tr><td id="date">January 2012<else></else></td><td><a href="2012/1/25/my-first-impression-of-rubinius-internals">My first impression of Rubinius internals</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/1/18/seeing-double-how-ruby-shares-string-values">Seeing double: how Ruby shares string values</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/1/11/how-to-customize-twitter-bootstraps-design-in-a-rails-app">How to Customize Twitter Bootstrap’s Design in a Rails app</a></td></tr><tr><td id="date"><else></else></td><td><a href="2012/1/4/never-create-ruby-strings-longer-than-23-characters">Never create Ruby strings longer than 23 characters</a></td></tr><tr><td id="date">December 2011<else></else></td><td><a href="2011/12/20/learning-from-the-masters-part-2-three-metaprogramming-best-practices">Learning from the masters part 2: three metaprogramming best practices</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/12/14/too-good-to-be-true-twitter-bootstrap-meets-formtastic-and-tabulous">Too good to be true! Twitter Bootstrap meets Formtastic and Tabulous</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/12/6/learning-from-the-masters-some-of-my-favorite-rails-commits">Learning from the masters: some of my favorite Rails commits</a></td></tr><tr><td id="date">November 2011<else></else></td><td><a href="2011/11/29/two-ways-of-using-redis-to-build-a-nosql-autocomplete-search-index">Two ways of using Redis to build a NoSQL autocomplete search index</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/11/23/finding-your-soulmate-autocomplete-with-redis-in-rails-3-1">Finding your soulmate: autocomplete with Redis in Rails 3.1</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/11/16/twitter-bootstrap-less-and-sass-understanding-your-options-for-rails-3-1">Twitter Bootstrap, Less, and Sass: Understanding Your Options for Rails 3.1</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/11/5/besides-being-faster-what-else-is-new-in-bundler-1-1">Besides being faster, what else is new in Bundler 1.1?</a></td></tr><tr><td id="date">October 2011<else></else></td><td><a href="2011/10/31/dont-be-terrified-of-building-native-extensions">Don’t be terrified of building native extensions!</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/10/22/show-some-love-for-prepared-statements-in-rails-3-1">Show some love for prepared statements in Rails 3.1</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/10/14/why-bundler-1-1-will-be-much-faster">Why Bundler 1.1 will be much faster</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/10/7/its-time-to-clean-up-your-mess-refactoring-cucumber-step-definitions">It’s time to clean up your mess: refactoring Cucumber step definitions</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/10/1/the-technology-you-never-knew-you-were-using-to-test-your-rails-site">The technology you never knew you were using to test your Rails site</a></td></tr><tr><td id="date">September 2011<else></else></td><td><a href="2011/9/24/how-does-bundler-bundle">How does Bundler bundle?</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/9/17/bundlers-best-kept-secret">Bundler’s Best Kept Secret</a></td></tr><tr><td id="date"><else></else></td><td><a href="2011/9/10/how-does-kaminari-paginate">How does Kaminari paginate?</a></td></tr><tr><td id="date">June 2011<else></else></td><td><a href="2011/6/28/where-does-my-javascript-code-go-backbone-jst-and-the-rails-3-1-asset-pipeline">Where does my javascript code go? Backbone, JST and the Rails 3.1 asset pipeline</a></td></tr><tr><td id="date">April 2011<else></else></td><td><a href="2011/4/30/contributing-a-new-scaffold-to-scaffoldhub">Contributing a new scaffold to ScaffoldHub</a></td></tr><tr><td id="date">March 2011<else></else></td><td><a href="2011/3/13/view-mapper-for-rails-3-scaffoldhub">View Mapper for Rails 3: ScaffoldHub</a></td></tr><tr><td id="date">February 2011<else></else></td><td><a href="2011/2/3/customizing-toto-to-support-blog-post-categories">Customizing Toto to support blog post categories</a></td></tr><tr><td id="date">January 2011<else></else></td><td><a href="2011/1/23/4-tips-for-how-to-customize-a-toto-blog-site">4 tips for how to customize a Toto blog site</a></td></tr><tr><td id="date">December 2010<else></else></td><td><a href="code_buddy">CodeBuddy: See your Ruby stack come alive!</a></td></tr><tr><td id="date">November 2010<else></else></td><td><a href="2010/11/20/how-to-integrate-amazon-simple-pay-into-a-rails-3-app">How to integrate Amazon Simple Pay into a Rails 3 app</a></td></tr><tr><td id="date"><else></else></td><td><a href="2010/11/1/reliefhub-hackfest-helping-orphanages-in-haiti">ReliefHub hackfest: helping orphanages in Haiti</a></td></tr><tr><td id="date">October 2010<else></else></td><td><a href="2010/10/11/activerecord-with-large-result-sets---part-2-streaming-data">ActiveRecord with large result sets - part 2: streaming data</a></td></tr><tr><td id="date">September 2010<else></else></td><td><a href="2010/9/28/ruby187gc-patch">ruby187gc.patch</a></td></tr><tr><td id="date"><else></else></td><td><a href="2010/9/4/activerecord-with-large-result-sets---part-1-select_all-vs--find">ActiveRecord with large result sets - part 1: select_all vs. find</a></td></tr><tr><td id="date">July 2010<else></else></td><td><a href="2010/7/27/code-record-playback-using-rails-3-generators">Code record/playback using Rails 3 generators</a></td></tr><tr><td id="date"><else></else></td><td><a href="2010/7/19/oscon">OSCON</a></td></tr><tr><td id="date"><else></else></td><td><a href="2010/7/9/using-left-outer-join-with-searchlogic">Using LEFT OUTER JOIN with SearchLogic</a></td></tr><tr><td id="date">June 2010<else></else></td><td><a href="2010/6/12/using-method_missing-to-customize-searchlogic">Using method_missing to customize SearchLogic</a></td></tr><tr><td id="date">May 2010<else></else></td><td><a href="2010/5/23/how-to-install-paperclip-in-a-rails-3-app">How to install Paperclip in a Rails 3 app</a></td></tr><tr><td id="date">April 2010<else></else></td><td><a href="2010/4/28/how-to-create-a-slideshow-using-jquery-and-rails-in-10-minutes-or-less">How to create a slideshow using JQuery and Rails in 10 minutes or less</a></td></tr><tr><td id="date"><else></else></td><td><a href="2010/4/4/creating-associations-to-existing-data-part-3-has_many-through-scaffolding">Creating associations to existing data part 3: has_many :through scaffolding</a></td></tr><tr><td id="date">March 2010<else></else></td><td><a href="class_factory">Class Factory: Factory_girl-like syntax for dynamically creating Ruby classes</a></td></tr><tr><td id="date">February 2010<else></else></td><td><a href="2010/2/20/getting-started-with-ruby-metaprogramming">Getting started with Ruby metaprogramming</a></td></tr><tr><td id="date"><else></else></td><td><a href="2010/2/13/creating-associations-to-existing-data-part-2-belongs_to-with-auto_complete">Creating associations to existing data part 2: belongs_to with auto_complete</a></td></tr><tr><td id="date">January 2010<else></else></td><td><a href="2010/1/25/creating-associations-to-existing-data-part-1-belongs_to-scaffolding">Creating associations to existing data part 1: belongs_to scaffolding</a></td></tr><tr><td id="date">December 2009<else></else></td><td><a href="2009/12/30/how-does-the-complex-form-examples-sample-app-work">How does the complex-form-examples sample app work?</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/12/12/how-to-convert-a-rails-plugin-into-a-gem">How to convert a Rails plugin into a gem</a></td></tr><tr><td id="date">November 2009<else></else></td><td><a href="2009/11/25/scaffolding-for-auto-complete-on-a-complex-nested-form">Scaffolding for auto complete on a complex, nested form</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/11/9/scaffolding-for-complex-forms-using-nested-attributes">Scaffolding for complex forms using nested attributes</a></td></tr><tr><td id="date">October 2009<else></else></td><td><a href="2009/10/16/paperclip-scaffolding">Paperclip scaffolding</a></td></tr><tr><td id="date"><else></else></td><td><a href="view_mapper">View Mapper: Scaffolding for your models and plugins</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/10/1/auto_complete-scaffolding">Auto_complete scaffolding</a></td></tr><tr><td id="date">September 2009<else></else></td><td><a href="2009/9/2/rails-generator-tutorial-part-2-writing-a-custom-manifest-action">Rails generator tutorial part 2: writing a custom manifest action</a></td></tr><tr><td id="date">August 2009<else></else></td><td><a href="2009/8/23/tutorial-how-to-write-a-rails-generator">Tutorial: How to write a Rails generator</a></td></tr><tr><td id="date">July 2009<else></else></td><td><a href="2009/7/24/generating-view-scaffolding-code-for-existing-models">Generating view scaffolding code for existing models</a></td></tr><tr><td id="date">June 2009<else></else></td><td><a href="2009/6/25/taming-the-beast-using-jruby-and-rspec-to-test-a-j2ee-application">Taming the beast: Using JRuby and RSpec to test a J2EE application</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/6/15/auto-complete-for-complex-forms-using-nested-attributes-in-rails-2-3">Auto complete for complex forms using nested attributes in Rails 2.3</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/6/15/repeated-auto-complete-plugin-usage-change">Repeated auto complete plugin usage change</a></td></tr><tr><td id="date">May 2009<else></else></td><td><a href="2009/5/29/paperclip-sample-app-part-3-saving-file-attachments-in-a-database-blob-column">Paperclip sample app part 3: saving file attachments in a database BLOB column</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/5/16/paperclip-sample-app-part-2-downloading-files-through-a-controller">Paperclip sample app part 2: downloading files through a controller</a></td></tr><tr><td id="date">April 2009<else></else></td><td><a href="2009/4/30/paperclip-sample-app">Paperclip sample app</a></td></tr><tr><td id="date"><else></else></td><td><a href="paperclip-database-storage">Database storage for Paperclip: rewritten to use a single table</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/4/3/filtering-auto_complete-pick-lists--part-2-using-named-scopes">Filtering auto_complete pick lists – part 2: using named scopes</a></td></tr><tr><td id="date">March 2009<else></else></td><td><a href="2009/3/14/filtering-auto_complete-pick-lists">Filtering auto_complete pick lists</a></td></tr><tr><td id="date">February 2009<else></else></td><td><a href="2009/2/19/database-storage-for-paperclip">Database storage for Paperclip</a></td></tr><tr><td id="date">January 2009<else></else></td><td><a href="2009/1/30/sample-app-for-auto-complete-on-a-complex-form">Sample app for auto complete on a complex form</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/1/30/repeated_auto_complete-changes-merged-into-auto_complete">Repeated_auto_complete changes merged into auto_complete</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/1/19/using-mysql-transactions-with-drupal-unit-tests">Using MySQL transactions with Drupal unit tests</a></td></tr><tr><td id="date"><else></else></td><td><a href="drupal-test-database">Using transactions in a separate database with Drupal PHPUnit tests</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/1/16/using-a-test-database-with-drupal-unit-tests">Using a test database with Drupal unit tests</a></td></tr><tr><td id="date"><else></else></td><td><a href="2009/1/9/tdd-keeps-your-php-code-separate-from-drupal">TDD keeps your PHP code separate from Drupal</a></td></tr><tr><td id="date">December 2008<else></else></td><td><a href="2008/12/19/using-tdd-to-write-a-drupal-module">Using TDD to write a Drupal module</a></td></tr><tr><td id="date"><else></else></td><td><a href="2008/12/12/writing-your-first-phpunit-test-in-drupal">Writing your first PHPUnit test in Drupal</a></td></tr><tr><td id="date"><else></else></td><td><a href="2008/12/9/example-drupal-module-to-use-for-tdd-demonstration">Example Drupal module to use for TDD demonstration</a></td></tr><tr><td id="date">November 2008<else></else></td><td><a href="repeated_auto_complete">The auto_complete plugin refactored to support repeated fields and named scopes</a></td></tr><tr><td id="date"><else></else></td><td><a href="2008/11/16/testing-is-a-lesson-in-humility">Testing is a lesson in humility</a></td></tr><tr><td id="date">October 2008<else></else></td><td><a href="2008/10/31/modifying-the-autocomplete-plugin-to-allow-repeated-fields">Modifying the auto_complete Plugin to Allow Repeated Fields</a></td></tr><tr><td id="date"><else></else></td><td><a href="2008/10/21/autocomplete-plugin-doesn-t-work-for-repeated-fields">Autocomplete plugin doesn’t work for repeated fields</a></td></tr><tr><td id="date">September 2008<else></else></td><td><a href="2008/9/28/problems-installing-the-cutline-theme-in-mephisto">Problems Installing the Cutline Theme in Mephisto</a></td></tr><tr><td id="date"><else></else></td><td><a href="2008/9/9/mephisto-on-hostingrails-com">Mephisto Setup on HostingRails.com</a></td></tr><tr><td id="date"><else></else></td><td><a href="2008/9/3/drupal-tdd-1">Why to use TDD with Drupal</a></td></tr></table></div></div></div><div class="two columns"><div id="sidebar"><img src="/assets/images/pat.jpg"></img><div class="header">Subscribe</div><div class="links"><ul><li><a id="feed" href="http://feeds.feedburner.com/patshaughnessy"><img src="/assets/images/feed-icon16x16B.png"></img></a><a href="http://twitter.com/pat_shaughnessy"><img width="20" height="20" src="/assets/images/twitter.svg"></img></a></li></ul></div><div class="header">Buy My Book</div><div class="links"><ul><li><a href="/ruby-under-a-microscope"><img src="/assets/images/book-cover.png"></img></a></li><li id="eBook"><a href="/ruby-under-a-microscope">Ruby Under a Microscope</a></li></ul></div><div class="header">Popular</div><div class="links"><ul><li><a href="/2016/11/26/learning-to-read-x86-assembly-language">Learning to Read x86 Assembly Language</a></li><li><a href="/2012/1/4/never-create-ruby-strings-longer-than-23-characters">Never create Ruby strings longer than 23 characters</a></li><li><a href="/2012/3/23/why-you-should-be-excited-about-garbage-collection-in-ruby-2-0">Why You Should Be Excited About Garbage Collection in Ruby 2.0</a></li><li><a href="/2013/4/3/ruby-2-0-works-hard-so-you-can-be-lazy">Ruby 2.0 Works Hard So You Can Be Lazy</a></li></ul></div><div class="header"><a href="/">More...</a></div></div></div></div><div id="footer" class="ten columns"><p>Content and UI design © 2008-2022 Pat Shaughnessy</p></div></body></html>