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
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
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
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
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:
- gSchool.it
- 37Signals’ Sub
- Ruby Hangout
- @BaneCapital
- http://sferik.github.com/t/
- issue triage
- http://www.textfromxcode.com/
Insufficiency of Good Design - Sarah Mei
Write more good code:
- Practice good OO design principles
- Development practices (agile)
- 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.