I continued pairing with Mike till we finished the story we were working on and another one we picked up in the morning. I got to learn plenty more VIM shortcuts in the process.
Also, I talked about the importance of presenting alternative UI designs to stakeholders when unsure about what to build instead of asking them to tell us what the design would be. Otherwise, you may find yourself committing to a suboptimal design by a non-designer.
Lunch was catered by Qdoba and Matt Yoho gave a talk on his Rails plugin BasicAssumption. It tries to improve on DecentExposure's syntax and features. Both plugins help developers avoid abusing before filters in controllers to load models as their reliance on instance variables often leads to fragmented code that is difficult to trace. BasicAssumption provides a DSL for defining action-needed models, handling the memoization and definition of model retrieval helpers automatically.
After lunch, Mike and I moved to a different project and decided to use Emacs for a change. Had some interesting learning on jQuery, credit card processing with Braintree, and credit card security concerns.
Also, discussed issues with overuse of branches in source code control instead of the Agile practice of continuous integration on the main branch (as with the famous SVN Unstable Trunk strategy used with most open source projects). And, I emphasized the importance of having Staging be deployed off of the same branch from which Production is cut to perfectly simulate production instead of having Staging live in its own branch, thereby defeating its purpose.
After hours, I went to the music jamming area with Mark Peabody and we got to play some songs with him on guitar and me on drums. Mostly 90's classics like In Bloom by Nirvana, and When I Come Around / Welcome To Paradise by Green Day. It was a blast.
Stay tuned for day five, the last day of the craftsmanship swap.