Categories: archive

RubyConf 2012

The last three days, I had the pleasure of going to RubyConf 2012. As RubyConf was in Denver this year (where I live!), it made it extremely convenient to go to the conference. This was my second time going to RubyConf, with the last time being in 2007. Back then, I had recently got into Ruby (end of 2006, thank you _why!) and proceeded to use Ruby and Rails for the next few years (until the great Rails/Merb merger). I probably stopped using it full-time in mid-2009, around the time I moved back to Colorado. Since then, I’ve proceeded to do some Django, iOS, and Android development… but Ruby will always hold a special place in my heart (and I keep up with most of the news). Mostly because it’s awesome. I also want to thank RubyCentral for providing me with a student scholarship, as I’ve been in grad school since 2010 (and haven’t been making any money). Anyway, here are a few of the things I learned:

My Notes from the conference

Matz’s Keynote

Motivation is a programmer’s bottleneck- Matz’s motivation is love for languages

Diversity is good, though costly and timely

No one really understands innovation, but we try

The world is full of crappy designs

“We code, so we can change the future”

“Make the world a better place”

MagLev - Jesse Cooke

Note: I remember the MagLev talk at RubyConf 2007… I’m glad to see it wasn’t just a pipe dream

What is it? Ruby on Smalltalk VM

(Distributed) Transparent object persistence

SQL is a leaky abstraction (or can lead to it)

Implementation details of Ruby 2.0 VM - Koichi Sasada

New features are listed in NEWS file… this is all about internals

Method dispatch was sped up a lot:

  • Specialized instructions
  • Method Caching
  • Frame building

Ruby 2.0 (on Rails) - Akira Matsuda

Slides

Refinements

  • Cleaner way to do “monkey patching”
  • extremely debated (some love, some hate)
  • Module#refine with Kernel#using

Module#Prepend

Who’s creating Ruby???

  • Matz => Designs
  • Ko1 => Implements
  • Nobu => Fixes

Enumerable#Lazy

  • Defer running until .force

Keyword arguments

Building Data Driven products using Ruby - Ryan Weald

Slides

Ask the right questions!

Collect and clean the data

  • This will be 90% of your time

Publish results

Why JRuby Works - Charles Nutter, Tom Enebo

Check back at Confreaks soon, I’m guessing…

JRuby is Ruby… and then some (the talk is on the “then some”)

As simple as: rvm install jruby

The JVM rocks

JRuby 1.7 targets Java 7, which gets invokeddynamic. invokeddynamic is extremely sexy

Holy (micro) performance!

Tokaido - Yehuda Katz

It is a pain to build (Rails on OSX), especially if you have to do it regularly Many problems with external dependencies

Y Not - Jim Weirich

I’m guessing it’s the same talk given here

This talk is highly technical, extremely pointless, and worst Ruby code ever Note: this is what Jim said, not what I believe. It was an excellent keynote!

Effectively computable

  • lambda calculus <=> Turing machines

Yeah, can’t repeat here… just know my mind exploded.

Ruby vs the World - Matt Aimonetti

Slides

Language affects behavior

  • “probably” the same with programming languages

By studying and learning other languages, you will write your code differently (when you go back to your primary language)

Looked into Clojure, Scala, and Go

Use cases:

  • Go => Concurrency
  • Clojure => Data processing
  • Scala => SOA

Functional programming for when data doesn’t change Object-Oriented programming for when data does change

Real Time Salami - Aaron Patterson

Slides

ActionController::Live

  • Streaming responses to clients

DTrace is fantastic

Next Frontier of Deployment - Dr. Nic Williams

You need to think about production and production happiness, not just developer happiness

“Make the right thing easier to do than not to do”

Look at the BOSH project

Inside RubyMotion - Rich Kilmer

Ruby on an iOS device

LLVM Compiler

Uses Rake for toolchain

RubyMine EAP is very good for RubyMotion

Lightning talks

Interesting:

Insufficiency of Good Design - Sarah Mei

Abstract

Write more good code:

  1. Practice good OO design principles
  2. Development practices (agile)
  3. Other people (informal communication is huge!)

Conway’s law: “Organizations produce systems equivalent to their informal communication patterns”

Best predictor of good code? Communication

Seagull Architect: “Fly in, crap on everything, and fly away”

Code smell may shed light on invisible communication patterns

Game Development and Ruby - Andrew Nordman

Paths to building a game:

  • Game libraries
  • Use existing engines
  • Building an engine from scratch

3 things:

  • Graphic renderer
  • Game loop
  • Input handler

Resource manager - creation/deletion of resources

Game state manager

Diablo 3 bot with JRuby - Rodrigo Franco

Aka “Automating interface testing”

Sikuli - fantastic Java library used to test UI

Simulating the world with Ruby - Bryan Liles

I’m guessing it’s the same talk given here

Why Ruby? We like it

Blocks of simulation => Models

gems: descriptive_statistics, distribution, vose, algorithms

Machine Learning - Chris Nelson

Decision Trees => ID3 (iterative dichotomiser)

gems: AI4R, DecisionTree

An Intimate Chat with Matz

Matz just wanted to make the tool

Pre-2000, Ruby development was just a hobby, like “fishing”… but Matz didn’t consider it a waste of time

For 2.0+, wants to keep compatibility as much as possible

_why, the luck stiff documentary

No real notes here, but I thought it was great they showed this documentary. It was about 15-20 minutes, and I loved it. why was the reason I got into Ruby. I think _most of the people there didn’t know who _why was, which was pretty sad to me. I think _why took off when the engineers took over the artists in Ruby, but I don’t know. Anyway, thanks _why for your contributions.