Sessions at RailsConf 2012 with video

Your current filters are…

Monday 23rd April 2012

  • Keynote: David Heinemeier Hansson

    by David Heinemeier Hansson

    David Heinemeier Hansson is a partner at 37signals, a privately-held Chicago-based company committed to building the best web-based tools possible with the least number of features necessary.

    37signals' products include Basecamp, Highrise, Backpack, Campfire, Ta-da List, and Writeboard. 37signals' products do less than the competition -- intentionally.

    He is also the creator of Ruby on Rails.

    At 9:15am to 10:00am, Monday 23rd April

    Coverage note video

  • Designing Hypermedia APIs

    by Steve Klabnik

    Rails did a lot to bring REST to developers, but its conception leaves the REST devotee feeling a bit empty. "Where's the hypermedia?" she says. "REST isn't RPC," he may cry. "WTF??!?!" you may think. "I have it right there! resources :posts ! What more is there? RPC? Huh?"

    In this talk, Steve will explain how to design your APIs so that they truly embrace the web and HTTP. Just as there's an impedance mismatch between our databases, our ORMs, and our models, there's an equal mismatch between our applications, our APIs, and our clients. Pros and cons of this approach will be discussed, as well as why we aren't building things this way yet.

    At 10:30am to 11:15am, Monday 23rd April

    In Salon K, Hilton Austin Downtown

  • i18n on Rails: A Twitter Approach

    by Cameron Dutro

    Twitter's internationalization (i18n) and localization (l10n) model doesn't follow traditional methods. Instead of contracting out to professional translators, Twitter maintains an active community of over 500,000 volunteers who have helped successfully launch Twitter in 28 languages, including right-to-left languages like Hebrew and Arabic. Learn about some of the technical challenges we face, how to translate a Rails application at scale, and what to do when the i18n gem and po files aren't quite enough. We'll take a look at the tricky stuff too, like dates, times, lists, plurals, alphabetization, and capitalization using the twitter_cldr gem, and go over internationalization best practices. Finally, we'll explain how to maintain internationalization of your Javascript alongside your Rails code for an end-to-end solution.

    At 10:30am to 11:15am, Monday 23rd April

    In Salon H, Hilton Austin Downtown

    Coverage note video

  • Using Backbone.js with Rails: Patterns from the Wild

    by Sarah Mei

    Backbone.js is a flexible, lightweight tool for structuring the JavaScript in a modern web application. It goes great with Rails! But beware - "flexible and lightweight" are code words for "you build your own plumbing." Backbone is new enough that we haven't established strong patterns for that plumbing yet, so different Backbone codebases look very different, and when you're new to the idea of structuring your JavaScript, it can be tough to tell where the win is.

    So in this talk I'll demystify Backbone. I'll show several very different ways I've used it on real Rails apps. You'll get a feel for the circumstances when Backbone makes sense, and moreover, when each of the different approaches to Backbone make sense.

    At 10:30am to 11:15am, Monday 23rd April

    In Salon J, Hilton Austin Downtown

  • CoffeeScript for the Rubyist

    by Mark Bates

    CoffeeScript is taking the world, and particularly the Rails eco system, by storm. This little language has provided an almost Ruby like abstraction onto of JavaScript. CoffeeScript is trying to make writing front end code as much fun as Ruby makes writing backend code.

    In this talk we start with the basic concepts of CoffeeScript and move on to the more powerful and fun features of the language. While we're looking at CoffeeScript we'll see how it relates to the Ruby code we write everyday. What do Ruby 1.9 lambdas and CoffeeScript functions have in common? Which of the two languages supports splats, default arguments, and ranges? The answers may surprise you.

    At 11:30am to 12:15pm, Monday 23rd April

    In Salon J, Hilton Austin Downtown

  • Getting Down To Earth: Geospatial Analysis With Rails

    by Daniel Azuma

    It is no secret that location has become ubiquitous. Mobile GPS, available data sets, and easy-to-use mapping services have brought geospatial information within reach of web developers. Location already plays a significant role in many of the major services such as Twitter, Facebook, and Google, not to mention legions of startups.

    However, for those of us implementing more than the most trivial features, it is also true that location is challenging. A significant learning curve awaits us, involving spatial databases, coordinate systems, interchange formats, and plenty of math. Our Ruby-based tools lag a bit behind those available to our Java- and Python-oriented colleagues, and effective documentation is scarce.

    This presentation aims to jump-start Rails developers hoping to go beyond putting a few pushpins on a Google Map. Rather than spending a lot of time explaining the many concepts involved, we'll bypass the learning curve and jump straight into walking through code for a few nontrivial applications. The hope is that the conceptual knowledge will come naturally as a result of seeing it in action, but pointers to online resources will also be provided to fill in any gaps.

    A thorough understanding of Ruby, Rails, ActiveRecord, and SQL will be assumed. No prior knowledge of GIS or computational geometry will be required, though it may be helpful.

    At 11:30am to 12:15pm, Monday 23rd April

    In Salon H, Hilton Austin Downtown

  • Practical Machine Learning and Rails

    by Andrew Cantino and Ryan Stout

    Many people know that machine learning techniques can facilitate learning from, and adapting to, noisy, real-world data, but aren't sure how to begin using them. Starting with two real-world examples, we will introduce you to some libraries that bring machine learning techniques to your Rails applications. We will then dive into the art of feature design, one of the first practical roadblocks that many people encounter when applying machine learning. Feature design is the challenging, subtle, and often trail-and-error process of selecting and transforming the data you provide for your learning algorithm, and it is often the hardest part of using these techniques. Our goal is for you to come out of this talk with the tools necessary to think about machine learning and how to apply it to your problems.

    At 11:30am to 12:15pm, Monday 23rd April

    In Salon K, Hilton Austin Downtown

  • Mobile Rage - What causes it & how to fix it

    by Lori M Olson

    Most of us have been there. That website you want to use, from your mobile device, that just refuses to cooperate. From the Flash-only, to the can't f**king log in, to the redirect-to-mobile-and-stay-there sites, there's more than enough websites out there to invoke Mobile Rage.

    Although we all know that the best mobile development strategy is "mobile-first", we also all know how many sites and applications out there were designed and built by people who didn't imagine how fast mobile would take over.

    Come learn about the common mistakes most people make for mobile, and some of the simple solutions you can use to help reduce Mobile Rage, without having to do a complete rewrite.

    At 1:30pm to 2:15pm, Monday 23rd April

    In Salon H, Hilton Austin Downtown

  • Rails Engines Patterns

    by Andy Maleh

    This talk covers a successful utilization of Rails Engines to share features that cut across the layers of MVC in different Rails 3 projects. Rails Engines thus provide the best of both worlds: improved productivity by reusing MVC code (including assets like Javascript, CSS, and Images) and better flexibility by allowing different applications to customize behavior as needed without reliance on application-dependent conditionals. Rails Engine patterns will be provided to guide developers on how to leverage Rails Engines' reusability and flexibility without sacrificing maintainability.

    Outline:

    • Basics of Rails Engines
    • Rails Engine Patterns
    • Improved Productivity Tips
    • Summary of Benefits and Trade-Offs

    Attendees should walk away with an overview of Rails Engines and guidelines on how to utilize them effectively.

    At 1:30pm to 2:15pm, Monday 23rd April

    In Salon J, Hilton Austin Downtown

  • RoRoRoomba - Ruby on Rails on Roomba

    by Charles Abbot

    RoR makes an excellent framework for off-the-beaten-path type of projects, like hacking Roombas and other robots. In this presentation, I'll demonstrate how our soon to be robot overlords will be happy when we gift them with RoR and a connection to the internet. The presentation will include working examples and demonstrations of:

    • communicating with an Arduino chip via Ruby
    • tethered serial and wireless bluetooth control of a Roomba via Ruby and Arduino
    • two-way communication with our robot friends over the web using Ruby on Rails and popular web services
    • useful applications of robots controlled over the web
    • 3 RoRoR pitfalls to watch-out for
    • live performance of "Chiron Beta Prime" by Jonathan Coulton*

    The presentation will close with an argument for why hacking on fun, often eccentric, projects in your spare time is essential for staying motivated, habitual improvement, and tangential learning -- i.e., being a real pragmatic programmer.

    *not included, perhaps

    At 1:30pm to 2:15pm, Monday 23rd April

    In Salon K, Hilton Austin Downtown

  • ActiveSupport and ActiveModel

    by Bryan Liles

    Have you ever wondered what makes Rails tick? Bryan Liles will cover two of the pillars of the Rails foundation: ActiveSupport and ActiveModel. Together we will discover where some of Rails’ ease and power originates and how make use of it in your projects.

    At 2:30pm to 3:00pm, Monday 23rd April

    In Room 616, Hilton Austin Downtown

    Coverage note video

  • From Rails Rumble to 50,000,000 results

    by Mikel Lindsaar

    StillAlive.com was born from the 48 hour intense 2010 Rails Rumble and has grown! Having recently passed our 50,000,000th site result, this talk discusses the real world challenges and optimisations required to take a code base born from the fires of YAGNI to a production system.

    This talk isn't about how you can scale from 0 requests to 500 billion requests per microsecond, but give a practical view to some of the performance problems we faced as the application steadily grew from a hack job into a functioning system.

    The journey will go through the mistakes we made, challenges faced and real world optimisations discovered, including some tricks we learnt along the way from concurrent index creation to using the ZeroMQ messaging framework with Rails

    At 2:30pm to 3:15pm, Monday 23rd April

    In Salon J, Hilton Austin Downtown

    Coverage note video

  • Progressive Enhancement on the Mobile Web

    by John Bender

    Progressive Enhancement isn't important on the mobile web because it's all Webkit right? Not so fast. Even among Webkit implementations events, css, and performance vary widely. We'll talk about the darker corners of the mobile web and show how jQuery Mobile can help you build Rails applications that are reliable, accessible, and support more devices.

    At 2:30pm to 3:15pm, Monday 23rd April

    In Salon H, Hilton Austin Downtown

    Coverage note video

  • Use the Source, Luke: High fidelity data with event sourcing

    by Keith Gaddis

    Ever run into a really gnarly data problem and wished you had a do-over? Tired of wrestling with ActiveRecord to model a really complex domain? Looking for a good way to echo state changes to external systems? Then grab a cup of joe and settle in for a look at event-sourcing your data.

    Event-sourced data uses Plain Old Ruby Objects (POROs) to model your data and exclusively uses events to mutate state on those objects. By serializing the events, the state of your data can be recreated for any point in time, and outside listeners can create specialized purposeful datastores of the data, enabling complex business requirements with fewer hassles. We'll also touch on other architectural patterns like DCI and CQRS that play well with this idea.

    At 2:30pm to 3:15pm, Monday 23rd April

    In Salon K, Hilton Austin Downtown

    Coverage note video

  • Rails-flavored Ruby

    by Michael Hartl

    Based on Chapter 4 of the Ruby on Rails Tutorial by Michael Hartl, “Rails-flavored Ruby” covers the aspects of the Ruby programming language most important for developing Rails applications. Topics include hashes, arrays, and other objects; blocks; functions; and classes.

    At 3:00pm to 3:30pm, Monday 23rd April

    In Room 616, Hilton Austin Downtown

    Coverage note video

  • A Polyglot Heroku

    by Terence Lee

    Over the past year, Heroku has expanded by going polyglot and supporting languages like Java, Clojure, Python, Node.js, and Scala in addition to Ruby. In this session, we will discuss major updates to the platform and our emphasis on making the Ruby developer experience even better. We'll leave plenty of time at the end for any questions.

    At 4:00pm to 4:45pm, Monday 23rd April

    In Room 615, Hilton Austin Downtown

    Coverage video

  • Realtime web applications with streaming REST

    by Brad Gessler

    As more people collaborate on the web with your applications, its not enough to just persist data to the database; it needs to be pushed out to your users web browsers so that they're always working with the freshest data.

    In this session, Brad will show how to build a real-time layer on top of an existing Rails application's authorization and resource logic so that you can build on top of the hard work already invested in your Rails application.

    Topics that will be discussed include:

    • Why I didn't choose Socket.IO
    • Stream application resources into Backbone.js models to keep data fresh
    • Hook into ActiveRecord to push representations of data into a message queue
    • Message queue naming conventions public/private resource streams
    • Exposing message queues to HTTP
    • Securing streams with existing application authorization logic
    • Considerations for streaming in a production environment

    At 4:00pm to 4:45pm, Monday 23rd April

    In Salon K, Hilton Austin Downtown

  • RVM & Essential Rails Development Tools

    by Olivier Lacan

    Working with Rails often means switching between several Ruby versions back and forth which is made almost seamless by RVM. It also involves several simple command line tools like Pry, Guard, and Pow and that will make your development life so much easier.

    At 4:00pm to 4:30pm, Monday 23rd April

    In Room 616, Hilton Austin Downtown

  • Securing your site

    by Thomas Pomfret

    Rails makes it very easy to rapidly develop web applications, but doesn’t always make it so simple to deploy or secure them.

    This talk is going to focus on best practices to secure your rails application, learnt through multiple high profile projects and penetration tests. The talk will be practical and show that this isn’t necessarily hard if thought about from the start.

    We’ll also touch on getting the right balance of security without it getting in the way of the users.

    At 4:00pm to 4:45pm, Monday 23rd April

    In Salon J, Hilton Austin Downtown

  • The Future of Sass

    by Hampton Catlin

    A glimpse of some of the features coming to Sass in the pending 3.2 release. Plus, a huge announcement about the project that's been months in the making as we have secretly toiled away on something that we think will be awesome. Hear it first at this talk. Repositories will be made public when the talk is over. Shh! Its a secret!

    At 4:00pm to 4:45pm, Monday 23rd April

    In Salon H, Hilton Austin Downtown

  • ActiveRecord Scopes and Arel

    by Jacob Swanner

    Scopes are a great way of encapsulating query logic in a granular, reusable way. This talk will cover some techniques you can use to keep those scopes as composable and portable as possible. We’ll cover how to use Arel directly, while avoiding the common practice of using SQL fragments, and show you how this can make your scopes more reusable, while at the same time preventing you from using database vendor specific operators, such as ILIKE.

    At 4:30pm to 5:00pm, Monday 23rd April

    In Room 616, Hilton Austin Downtown

  • Keynote: Simplicity Matters

    by Rich Hickey

    Rich Hickey, the author of Clojure and designer of Datomic, is a software developer with over 20 years of experience in various domains. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.

    At 5:30pm to 6:00pm, Monday 23rd April

Tuesday 24th April 2012

  • Keynote: I've made a huge mistake

    by Aaron Patterson

    When he isn't ruining people's lives by writing software like phuby, enterprise, and neversaydie, Aaron can be found writing slightly more useful software like nokogiri. To keep up his Gameboy Lifestyle, Aaron spends his weekdays writing high quality software for ATTi. Be sure to catch him on Karaoke night, where you can watch him sing his favorite smooth rock hits of the 70's and early 80's.

    At 9:00am to 9:30am, Tuesday 24th April

    Coverage note video

  • Keynote: Ruby Hero Awards

    There are many people in the Ruby/Rails world who contribute to our community and rarely receive any recognition or payment for their work.

    They create educational content, develop plugins & gems, contribute to open source projects, and even put on events which help educate and make our lives as developers easier.

    Ruby Heroes was created to show some gratitude and give these people the recognition they deserve. Hopefully the type of recognition that keeps them doing what they’re doing, and continuing to make our community stronger.

    At 9:30am to 10:00am, Tuesday 24th April

    Coverage note video

  • Patella: It's Memoization into Memcached calculated in the background with Resque.

    by Jeff Dwyer

    I regularly write code that does something great but is slow as a dog. Denormalizing / pre-computing / backgrounding are all fine, but they're all an investment and they leave tentacles all through the code. I want to be able to try out slow but very useful code in my app without the friction of performance concerns, but also without worrying that my ops engineer is going to kill me in my sleep.

    Wouldn't it be nice to add one line to our models that takes care of caching, cache keys, backgrounding, dog-piling, and cache warming? Oh, and it should give the UI clear consistent hooks so that it's clear whether the data is ready so the UI can render a spinner or disable a feature until the computation is complete.

    We'll take a look at a series of techniques that we use at PatientsLikeMe to allow us to safely and quickly put some very expensive queries on the website so that we can evaluate whether it's worthwhile to create longer term solutions. The solution we've come up with is a lot of gloss over memcache and resque that makes it feel like we can memoize any method in our application and lets us focus on the goals of the algorithms rather than their performance and architecture.

    This talk will feature: memcache, resque, a bit of metaprogramming, a look at caching in the wild and code that fixes some usual problems, and a fairly epic SQL query with some nice Postgres features you should know about.

    You should come if: you want to take a look at some practical solutions that we use in production to be able to roll out computationally expensive features.

    At 10:30am to 11:15am, Tuesday 24th April

    In Salon J, Hilton Austin Downtown

  • Presenters and Decorators: A Code Tour

    by Mike Moore

    Presenter and Decorators are design approaches that can be used in Rails applications outside of the standard Models, Views and Controllers. These approaches are becoming more and more popular as teams search for new ways to identify and manage the complexity within their applications.

    In this session Mike Moore will defined the Presenter and Decorator approaches using simple and clear terminology. Common design problems in Rails applications will be shown using real-life code examples and refactored toward Presenters and Decorators. Code will be improved and strengthened by identifying and respecting the dependencies within large applications.

    At 10:30am to 11:15am, Tuesday 24th April

    In Salon K, Hilton Austin Downtown

  • Taming the Kraken - How Operations enables developer productivity

    by Nathen Harvey

    Are you having trouble launching new features because of friction between development and operations? At CustomInk, we've reduced this friction by making changes to our teams, processes, and tools. Come find out what we've been up to and learn how you can implement similar changes in your own environment.

    There's always a bit of tension when getting features from idea to production. In this talk, we'll look at some of the changes CustomInk has made to reduce this friction and keep the new features coming. Gone are the days of bi-monthly deploys, office pools dedicated to guessing when this deploy will be rolled back, and the ceremony surrounding the deploy-rollback-fix-deploy cycle. Today, ideas flow from product managers to developers to production with ease thanks to a number of changes that we've made to our teams, processes and tools.

    During this talk, we'll look at:

    • How product managers drive the release cycle
    • Ideas and customer feedback
    • Prioritizing development requests
    • Managing branch merges and deployments (yes, product managers can help here!)
    • How operations enables developer productivity
    • Spinning up development environments - Vagrant, Chef
    • Infrastructure Automation - Chef
    • Enabling Continuous Deployment - Capistrano and caphub
    • Failing gracefully - Fault-tolerant load balancing with ldirectord
    • How developers get their code running in production
    • Staging environments
    • Continuous Integration - Jenkins, Green Screen
    • Staying on topic: Deploying changes when they're ready
    • Getting rid of the over-the-wall mentality - Dev & Ops working together
    • Enabling developers to do it themselves
    • Pair programing infrastructure automation
    • Keeping the process light and the communication flowing

    At 10:30am to 11:15am, Tuesday 24th April

    In Salon H, Hilton Austin Downtown

  • Let's make the web faster - tips from trenches @ Google

    by Ilya Grigorik

    Google loves speed, and we want to make the entire web faster - yes, that includes your Rails app! We'll explore what we've learned from running our own services at scale, as well as cover the research, projects, and open sourced tools we've developed in the process.

    We'll start at the top with website optimization best practices, take a look at what the browser and HTML5 can do for us, take a detour into the optimizations for the mobile web, and finally dive deep into the SPDY and TCP protocol optimizations.

    We'll cover a lot of ground, so bring a coffee. By the end of the session, you should have a good checklist to help you optimize your own site.

    At 11:30am to 12:15pm, Tuesday 24th April

    In Salon H, Hilton Austin Downtown

  • Sand Piles and Software

    by Zach Dennis

    This talk applies the concepts of chaos theory to software development using the Bak–Tang–Wiesenfeld sand pile model as the vehicle for exploration. The sand pile model, which is used to show how a complex system is attracted to living on the edge of chaos, will be used as a both a powerful metaphor and analogy for building software. Software, it turns out, has its own natural attraction to living in its own edge of chaos. In this talk, we'll explore what this means and entertain questions for what to do about it.

    The speaker's hypothesis is that by understanding how complex systems work we can gain insights to better understand and improve the act of building software. By looking through the lens of the sand pile model we'll explore the following:

    • what the sand pile model can tell us about software development
    • how software is naturally attracted to its own chaos
    • the impacts on software living perpetually on the edge of chaos
    • how existing software practices can be used to detract software away from chaos
    • what this means not only for our software, but for our teams, and ourselves individually

    This thought-provoking perspective will leave you with new ways to think about software. You’ll walk away having learned a little about chaos, complexity, and how they apply to software with a thought-provoking perspective and inspiration for thinking about software in new ways.

    At 11:30am to 12:15pm, Tuesday 24th April

    In Salon J, Hilton Austin Downtown

  • Semi Automatic Code Review

    by Richard Huang

    Rails is so popular to be used to fast build a website, at the beginning we sometimes write codes too fast without considering code quality, but after your company grows fast, you have to pay more attentions on code review to make your website more robust and more maintainable.

    In this talk I will introduce you a way to build a semi automatic code review process, in this process a tool will analyze the source codes of your rails project, then give you some suggestions to refactor your codes according to rails best practices. It can also check your codes according to your team's rails code guideline. So engineers can focus on implementation performance, scalability, etc. when they do code review.

    At 11:30am to 12:15pm, Tuesday 24th April

    In Salon K, Hilton Austin Downtown