Ruby Derailed: Tricks, Idioms, and Experiments in Application Development

A training session by Hal Fulton
Lone Star Ruby Conference 2012

This is strictly non-Rails content (although there will a Sinatra component for those addicted to web development).

The session will consist of introductory material followed by live coding and discussion. The coding will be on a small application called Socrates (at present fewer than 20 classes and fewer than 1,000 lines of code). See individual sections below for more information.

github repo: Available for attendees
Online slides: Available for attendees

Software prerequisites

For everyone: For those wanting to work on Swing interface: For those wanting to code a web interface:

Schedule (breaks are assumed)

  Hour 1: 
    - Tips, tricks, edge cases, and advanced techniques
    - People start cloning repo (allow for wifi trouble)
    - Refresher: Best practices, tools, app structure
    - Overview of Socrates
       * Question types and terminology
       * Classes and code structure
       * The text UI
       * "to do today" (and someday)
  Hour 2:
    - Basics of Sequel
    - Basics of Sinatra
    - Basics of Swing
    - Basics of minitest
    - First dev cycle (short)
  Hours 3-6:
    - Four dev cycles
    - Final cycle may be shortened for summary/discussion

Socrates is...

A tool for quizzing on various topics, designed to be effective, flexible, and extensible. It is intended to support multiple users, hierarchies of topics, and multiple question types. Ultimately, a sophisticated algorithm will maximize memory and learning efficiency. Part of its purpose is an experiment in attaching multiple user interfaces to an "engine" or model.

Coding guidelines

Coding tasks

"Rules of engagement"

Coding standard