Cascadia Ruby 2014 - Day One

Note: This post is an un-contexualized, un-edited, & un-proofed bunch of notes taken during Cascadia Ruby 2014.

John Hyland
Be Awesome By Being Boring

  • “standard is better then better”
  • Nobody know how it works yet.
  • Docker apis changed.
  • No standard uusage pattern.
  • Security wild card.
  • Protocol Buffer version of your performance critical endpoints.
  • SRV Records.

Davy Stevenson
The Science of Success

  • Jarvis March (Gift wrapping Algorithm.)
  • Monotone Algorithm.
  • benchmark/ips Runs iterations per second.
  • benchmark-bigo Benchmarks big o notation algorithms.
  • geojson.

Sam Livingston-Gray
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies

  • Programming is hard. Due to abstractions.
  • Visual/Spatial Reasoning
    • The Squint Test: Stand back and try to discern identifiable parts of the code. Heavily margined, columns.
  • Linguistic/Social Reasoning:
    • Rubber Ducking.
    • Start writing an email describing the problem.
    • Please Mr. Gear what is your ratio?
  • Practical Object Oriented Design in Ruby - Sandi Metz.
  • Body Syntonic Reasoning.
  • Saccades.
  • Pac Man Smell solution.

Dan Hon
Designing for Empathy

  • GOV.UK: Shows only the next holiday.
  • Zappos CS will send you to competitors if it helps you.
  • Dropbox setup user friendly opt-out while telecoms require mail sent to a PO box.

John Feminella
Why We Can’t Have Nice Things: Unicode, Dates, and Names

  • As humans our assumptions make it in to our code.
  • Marriage license database had man and woman id. This fails in states with same sex marriages.
  • Time.advance can cuase errors when moving over months with 28 days.
  • Scunthorpe problem.

Starr Horne
Biggish Data With Rails and Postgresql

  • The Vitures of a programmer
    • Laziness
    • Impatience
    • Hubris
  • Use real computers to work with your database.
  • Use explain.

Common problems


Miles Forrest
Cloning the Seattle Ruby Brigade

  • Don’t always enforce the problem areas.
  • Enforce the areas that you need to protect.

Aja Hammerly
N design patterns you might actually use (where N is < 10)

  • Template:

    • Outline for a similar task.
    • ETL: Extract Transfer Load.
    • Share common code.
    • Advantages
      • Isolate difference.
      • Easy to add new versions.
      • Force common algorithm.
    • Disadvantages
      • Read multiple files
      • Inheirtance * 2
  • Storage Strategy

  • Composite

    • Let consumers ignore quantity.
    • Trees of arbitrary depth.
  • Decorator

  • Command


Aaron Patterson
Speed up Rails, Speed up Your Code

  • Markov Chains.
  • Binary Heap to pick random children.
  • ruby -d
  • benchmark-ips
  • stackprof
  • allocation_tracer
  • tracepoint
  • Fewer types =/= faster/easier code.
  • Freeze strings if performance requires it.