RubyConf 2017
as the organisers put it
We're ecstatic to bring this year's RubyConf back to one of the world's greatest melting pots of culture, food, and music: New Orleans. Visit one of America's most unique treasures while also taking in fantastic Ruby content.
who it's for
Ruby developers, language implementers, runtime and VM engineers, gem and library authors, engineering managers, test and QA engineers, platform and release engineers
topics
MJIT and RTL JIT pipeline; LLVM-based JIT for MRI; compacting garbage collector for MRI; TruffleRuby startup optimizations; JRuby deployment and usage; mruby portability techniques; packing Ruby into single executables; RubyVM bytecode and instruction sequences; static typing approaches for Ruby; rewriting Rack with functional techniques; debugger internals and deterministic failures; Unicode handling and grapheme clusters
| title | author | length |
|---|---|---|
| Opening Keynote - Good Change, Bad Change | yukihiro Matsumoto 'Matz' | 55m |
Talk claims a concrete performance target and shows early results: Ruby3x3 goal and a new JIT pipeline. Implementation uses an RTL VM that emits C and relies… | ||
| Augmenting Human Decision Making with Data Science | Kelsey Pedersen | 42m |
Claims that 95% of decisions happen in fast intuitive System One, that algorithms compute per-item match scores and an on‑the‑fly box likelihood, and that… | ||
| Keynote - The Impermanence of Software | Andy Croll | 33m |
Argument that software is ephemeral backed by examples and numbers: a Rails 3→4 upgrade that actually takes 20 work days, a startup that shipped a responsive… | ||
| Lending Privilege | Anjuan Simmons | 34m |
Argues that everyone holds some form of privilege and can lend it through concrete acts: credibility lending (give visibility, invite a low‑profile engineer to… | ||
| Writing Inclusively about Technology Topics | Thursday Bram | 38m |
Creates a usable checklist: use a project style guide to record name spellings, pronouns and wording choices; run spellcheck and a human edit pass; keep… | ||
| What If... ?: Ruby 3 | Eric Weinstein | 38m |
Explores three concrete rewrites: static typing (examples with Crystal and an Idris‑style dependent types sketch, plus RubyVM::InstructionSequence… | ||
| 4 Programming Paradigms in 45 Minutes | Aja Hammerly | 43m |
The session claims programming languages are tools and demonstrates that by actually building a cash‑change routine four different ways: an imperative OO… | ||
| Compiling Ruby | Kevin Deisz | 36m |
Shows how Ruby 2.3’s RubyVM::InstructionSequence::load_iseq lets compiled YARV bytecode be saved, reloaded and substituted for source, and demonstrates actual… | ||
| How to Build a World-Class Rock Paper Scissors Bot | Dorothy Jane Wingrove | 24m |
Claims a working implementation of Iocaine Powder that wins 1,000‑round bouts by combining frequency counters, regex‑based direct history, de Bruijn–generated… | ||
| Git Driven Refactoring | Ashley Ellis Pierce | 31m |
Use Git history, diffs and PRs to find concrete refactors: group commits into topics to reveal single‑responsibility violations, look for red in diffs when… | ||
| Packing your Ruby application into a single executable | Pan Minqi | 29m |
A tool called ruby-packer compiles a Ruby runtime, project files and small libraries into a single executable (examples shown at ~33–46 MB) that runs on… | ||
| Just A Ruby Minute | Andrew Faraday | 33m |
Conference version of Just a Minute runs the classic rules: each panelist has 60 seconds to avoid hesitation, repetition, deviation while others buzz to… | ||
| The Good Bad Bug: Fail Your Way to Better Code | Jessica Rudder | 39m |
Claim: systematic, blameless failure tracking yields better systems. Evidence: the FAA incident reporting collects small events so investigators spot patterns… | ||
| Getting Unstuck: Using the Scientific Method for Debugging | Caroline Taymor | 33m |
Makes debugging a reproducible experiment: gather facts, pick one question, form a hypothesis, design a precise procedure, run it and record annotated logs… | ||
| Deterministic Solutions to Intermittent Failures | Tim Mertens | 41m |
Claims a repeatable workflow that turns “flaky” tests into deterministic failures, with concrete tools and steps: run the failing test alone, re-run the CI… | ||
| Leadership starts with Listening: Amplify your Impact | Heidi Helfand | 31m |
Claim: better listening increases ownership and creates more leaders. Concrete tools: levels of listening (1 inward, 2 attention out, 3 body/vibe), a coaching… | ||
| High Cost Tests and High Value Tests | Noel Rappin | 41m |
An inventory management Rails app gets tested with Capybara system tests, mid-level workflow/service objects and fast unit specs, and the numbers matter: about… | ||
| Finding Responsibility | Caleb Thompson | 36m |
A Wi‑Fi geolocation app reconstructs every nearby hotspot in 3D space using a convolution of an R‑squared distance model and a Gaussian estimator, then… | ||
| There's Nothing . new under the sun | Justin Searls, Josh Greenwood | 51m |
2100 archived Ruby talks get watched and mined for concrete lessons: Rails scaffolding and the DB.create rake task that auto-adds timestamps, the viral demo… | ||
| Saving Ruby from the Apocalypse | Jason Charnes | 28m |
A wild future-of-Ruby allegory presents a clear claim: Ruby is not dead but risks irrelevance because of unmaintained libraries, dwindling new gems and fewer… | ||
| The Unbearable Vulnerability of Open Source | Eileen M Uchitelle | 38m |
Contributing to open source centers on people not code and the emotional risk of being judged, with concrete remedies suggested: build mentorship, use bots and… | ||
| Lightning Talks | Michael Hartl, Jonathan Slate, Kyle Heironimus, Yechiel Kalmenson, Heather Herrington, Jen Pengelly, Brian Underwood, Cameron Dutro, Aaron Rosenberg, Starr Chen, Margo Urey, Ryan Laughlin, Adam Cuppy, Julia Cuppy, Jim Remsik | 01h 36m |
Pick the bits that make new things or show real numbers: a demo of prebundler: 440 gems in 40s with 6m7s → 43s and an 88% speedup, a Neo4j example showing… | ||
| How I Learned to Stop Worrying and Love Unit Testing | Valerie Woolard Srinivasan | 29m |
Argues that fast unit tests drive safer refactors and cleaner design, showing RSpec expect examples, advising one test per branch and an upfront failing test… | ||
| Live Coding Music with Sonic Pi | Sam Aaron | 30m |
Sonic Pi is a Ruby DSL & IDE that runs on desktop and Raspberry Pi, plays synths and samples with sample-accurate timing (claims down to milliseconds)… | ||
| Voice Controlled Home Automation in Ruby | Jeff Sacks | 39m |
A working voice‑controlled TV remote uses Ruby on a Raspberry Pi to talk to a TiVo and a Sharp Aquos TV over their TCP protocols, with a web API built with… | ||
| Rubyik's Cube | Stafford Brunk | 32m |
Project ports Kociemba's two-phase algorithm into Ruby and demonstrates real results: a 20-move solution computed in about 14 seconds (worst runs ~45s) by… | ||
| Prototyping with Paper: How Board Games Become Reality | Mark Simoneau | 23m |
Prototyping uses cheap materials—paper and index cards, dice and tokens—to prove mechanics quickly: an idea goes from sketch to playable within five minutes so… | ||
| How to load 1m lines of Ruby in 5s | Andrew Metcalf | 31m |
Claims 1m lines can boot in 5s instead of 35s by replacing broad requires with an autoloader backed by static analysis. The pipeline parses files with the… | ||
| LLVM-based JIT compiler for MRI byTakashi Kokubun | Takashi Kokubun | 40m |
Experiment builds an LLVM-based JIT for MRI that compiles YARV ISeq to LLVM IR or generates C and produces .so via Clang, uses inlining and LICM, runs… | ||
| Reimagining 2D graphics and game development with Ruby | Tom Black | 34m |
Promises a concrete stack and demos: uses MRI mruby Opal to run Ruby natively and in the browser, binds a C layer (SDL + OpenGL) to Ruby via a native/Opal… | ||
| Mozart Could’ve Been an Engineer - Music + Code | Catherine Meyers | 31m |
Evidence shows music training physically changes brains: a pianist study finds central sulcus symmetry, jazz improvisation is measured with a metal-free… | ||
| Yes, and... | Adam Cuppy, Julia Cuppy | 38m |
Workshop claims that adopting Yes and—not just brainstorming words—produces faster recovery from mistakes, richer builds on ideas, and clearer team rhythm… | ||
| Keynote: Growing Old | Chad Fowler | 54m |
Claim: software lasts when it’s born small, rebuilt often and encapsulated behind stupidly simple interfaces. Examples: Haskell service that outperforms… | ||
| Keynote - You're Insufficiently Persuasive | Sandi Metz | 36m |
Claim: most programmer unhappiness comes from other people and from failed collaboration, not technique. Evidence: a GitHub survey producing 219 unhappiness… | ||
| Building a Compacting GC for MRI | Aaron Patterson | 46m |
Claims a working compacting collector for MRI with a concrete implementation: a GC.compact API, a two-finger compaction mover that leaves T_MOVED forwarding… | ||
| RubyCard: HyperCard, in Ruby | Zachary Schroeder | 29m |
Claim: RubyCard reproduces core HyperCard features in Ruby. It implements stacks and cards with fields and buttons, drag/resize editing, and a working… | ||
| Orbital Rocket Guidance with Ruby | Nate Berkopec | 42m |
Uses Kerbal Space Program with kRPC and Realism Overhaul to control a simulated Saturn V from Ruby, implements AGC-like multitasking with Fibers and a… | ||
| Fireside Chat - Q&a with Matz | Evan Phoenix, Matz Evan | 36m |
Ruby has nearly 100 committers with under 20 actively working on the core; Ruby’s next milestones target three concrete problems: performance, concurrency… | ||
| Esoteric, Obfuscated, Artistic Programming in Ruby | Yusuke Endoh | 39m |
Ruby code demonstrates concrete surprises: a spinning-quine called Qlobe that prints and animates an ASCII globe; a Radiation-hardened Quine that survives any… | ||
| There are no rules in Ruby | Max Jacobson | 39m |
Claims that Ruby offers few ironclad guarantees and demonstrates it with concrete code: examples show methods and singleton methods can change behavior at… | ||
| Rewriting Rack: A Functional Approach | Alex Wheeler | 38m |
Claim: rewrite Rack in Ruby using procs and lambdas and borrow immutable ideas from Clojure. Tools shown include replacing classes with closures, composing… | ||
| A New Pair of Shoes! | Jason R. Clark | 34m |
Shoes is a small Ruby GUI DSL that now ships as a release candidate for version 4 built on JRuby and installed via gem install shoes; two lines create a… | ||
| Types and Ruby Programming Language | Soutaro Matsumoto | 37m |
Claim: no one has yet built a practical whole-program Ruby type checker despite a decade of work. Four tools span approaches: DiamondbackRuby uses structural… | ||
| Human Errors | Olivier Lacan | 30m |
Ruby's error feedback needs concrete fixes: a one‑character refactor (making an arg a required keyword) produces a misleading ArgumentError, a reported bug… | ||
| Rub[berDuck]yConf, I :mustache: you a question | Tara Scherner de la Fuente | 34m |
Fails PhD exams twice then buys a diploma from a semi‑accredited mill, learns to diagnose personal learning style, and uses Slack and pairing to debug via I… | ||
| Finding Beauty in the Mundane | Max Tiu | 27m |
Five concrete practices and how they pay off: keep dependencies current (patch upgrades are low risk, use bundle update gem-by-gem and treat a Rails upgrade… | ||
| Dispelling the dark magic: Inside a Ruby debugger | Daniel Azuma | 38m |
Demonstrates building a usable Ruby debugger from about 60 lines of code: uses Ruby’s TracePoint line event to detect breakpoints, IRB and binding to open a… | ||
| High Performance GPU Computing with Ruby | Prasun Anand | 23m |
Shows a Ruby wrapper for ArrayFire gem and a lower‑level RbCUDA gem that run BLAS/LAPACK on GPUs; benchmarks report determinant ~10x faster than… | ||
| Gemification for Ruby 2.5/3.0 | Hiroshi Shibata | 33m |
Gemification converts many standard libraries into default gems or bundled gems so libraries like openssl moved to GitHub can ship security fixes independently… | ||
| Code Reviews: Honesty, Kindness, Inspiration: Pick Three | Jacob Stoebel | 37m |
Argues code review succeeds when it becomes a structured conversation not a blame game and introduces the Liz Lerman Critical Response framework with four… | ||
| make mruby more portable: Why and How | Yurie Yamane, Masayoshi Takahashi | 29m |
A plan emerges: make mruby portable by building a mrbgems compatibility layer that wraps mbed/Arduino/CMSIS/STM HAL and RTOS calls, unify sensor APIs (value… | ||
| Set Design: Putting the "Art" in "Architecture" | Betsy Haibel | 33m |
Argues that treating software like a building leads to waterfall, classist architects and instead models architecture on set design as agile architecture… | ||
| What does GIL really guarantee you? | Daniel Vartanov | 25m |
Ruby MRI’s GIL protects only internal C-level data structures (arrays, hashes) not surrounding Ruby code, so GIL protects C internals not Ruby-level… | ||
| Y2K and Other Disappointing Disasters: How To Create Fizzle | Heidi Waterhouse | 37m |
A clear claim: massive prep makes disasters fizzle rather than being overblown, shown by Y2K teams who patched firmware, carted floppies and sat in war rooms… | ||
| Improving TruffleRuby’s Startup Time with the SubstrateVM | Kevin Menard | 44m |
TruffleRuby retargets to the SubstrateVM native-image and ahead-of-time compiles the interpreter so core Ruby files are pre-parsed as ASTs and encoding tables… | ||
| Great Expectations: Power-Charging Apprenticeship Programs | Louisa Barrett | 52m |
Argues that apprenticeships demand a real upfront investment but reliably produce junior hires, citing work with about 150 trainees at Turing School and… | ||
| JRuby: What Why How ... Do it Now! | Thomas E Enebo, Charles Oliver Nutter | 39m |
JRuby ships as 9.1.14 (Ruby 2.3 compatible) with 9.2 targeting Ruby 2.4 and requires Java 7+, runs native threads, uses invokedynamic and the Graal JIT for… | ||
| Get Off the Tightrope | Tom Stuart | 38m |
Describes concrete tactics to stop treating big work as an all-or-nothing tightrope: build a story mapping of an e‑commerce flow, slice it to a minimal set… | ||
| That time I used Ruby to crack my Reddit password | Haseeb Qureshi | 27m |
Locks a throwaway Reddit password into LetterMeLater then scrapes its search box behavior and builds a Ruby tool called lettermenow.rb using the Faraday gem… | ||
| A History of Bundles: 2010 to 2017 | Andre Arko | 43m |
Bundler starts in 2010 as a simple installer and attracts thousands of hours of work to solve real problems: slow installs, huge apps, and inconsistent… | ||
| Just when you thought you couldn’t refactor any more… | Claudio B | 31m |
A real refactor: starts from brittle starts_with checks and iterates to a working YouTube URL parser that returns type plus ID or name. Shows concrete tools… | ||
| "RSpec no longer works with ActiveRecord" | Sam Phippen | 33m |
A regression causes RSpec mocks to raise when stubbing ActiveRecord scopes because code calls define_attribute_methods on ActiveRecord::Base which explodes for… | ||
| The overnight failure | Sebastian Sogamoso | 26m |
A carpool app runs a weekly job that enqueues passenger driver charge jobs into a queue and the payment gateway charges and pays drivers. A bug enqueues… | ||
| Hello Gmom!: Addressing loneliness in end-of-life care | Jeremy Flores | 44m |
A web application runs on a $5 Raspberry Pi Zero duct‑taped to a TV and ingests Twilio MMS to Rails to WebSocket streams into a Rails 5 Action Cable frontend… | ||
| Ten Unicode Characters You Should Know About as a Programmer | Jan Lelis | 38m |
A checklist of concrete gotchas and fixes: ten problematic codepoints (examples: Turkish dotted/dotless I, a Greek o among 75 confusable O‑lookalikes, 66… | ||
| Buuuuugs iiiiin Spaaaaace! | Colin Fulton | 40m |
Four concrete rescue-and-fail episodes: Apollo 14 patches a floating abort bit by flipping registers and sequencing throttle commands to avoid an unwanted… | ||
| Steal This Talk: The Best Features Ruby Doesn't Have (Yet) | John Feminella | 39m |
Claims that Ruby can borrow concrete features — Elm-style error messages that print the salient values, pattern matching, tripartite conditions for repairable… | ||
| nothing matches | ||