Welcome

Ruby Midwest is back!

Two amazing keynotes!
"Uncle Bob" Martin
Andy Hunt

Register for Training
from Groupon

Hashtag #rubymidwest

#rubymidwest on freenode!

Travel & Venue

  • Town Pavilion Conference Center Town Pavilion Conference Center 1111 Main St # 2000
    Kansas City, Missouri 64106
    View Map
  • Hotel Philips, Kansas City, MO Hotel Phillips
    106 West 12th Street
    Kansas City, MO 64105

    $124 per night
    (816) 221-7000 (RUBY)

    Online Reservations
    Click Special Rates and in the Group Code box type RUBY (case sensitive)

Beef Jerky is high in sodium, but preserved to last through a conference... at least.

Registration

  • SOLD OUT! Early Bird Tickets Limited to only 50! | $129
  • SOLD OUT! General Admission Tickets Ends October 1st | $189
  • SOLD OUT! Last Minute Tickets Ends October 15th | $299

Sponsors

Interested in sponsoring Ruby Midwest?
Check out the sponsorship package here and get in touch.

BLiNQ Media
OpenShift Social Volt Groupon code school Kauffman Lab Zencoder Logo Transparent Harvest Time Tracking
Heroku MongoDB Google Red Nova Labs GitHub
Thought Works Logo

Media Sponsors

O'Reilly Media Manning Publications
Pearson PLC Apress

Speakers

Robert C. Martin (Uncle Bob)

Uncle
Bob Martin

@unclebobmartin

Robert C. Martin (Uncle Bob) has been a software professional since 1970. In the last 40 years, he has worked in various capacities on literally hundreds of software projects. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, C++ Programming and Clean Code. He has published dozens of articles in various trade journals. Today, he is one of the software industry's leading authorities on Agile software development and is a regular speaker at international conferences and trade shows. He is a former editor of the C++ Report and writes regular blogs at http://cleancoder.posterous.com/.

Andy Hunt

Andy Hunt

@PragmaticAndy

Andy Hunt is a programmer turned consultant, author and publisher. He has authored award-winning and best-selling books, including The Pragmatic Programmer and six others, including the his latest, the popular Pragmatic Thinking and Learning.

Andy was one of the 17 founders of the Agile Alliance and authors of the Agile Manifesto; and co-founded the Pragmatic Bookshelf, publishing award-winning and critically acclaimed books for software developers. Read Andy Hunt’s biography, or take a look at Andy’s current talks and workshops.

Jim Weirich

Jim Weirich

@jimweirich

Mastering the Ruby Debugger

You are happily writing new code for your system when all of a sudden the code is not behaving the way you thought it should. Perhaps you just created a failing test, and the code you wrote was expected to make the test pass ... but it doesn't. What's the first thing you do?

Some Rubyists will drop some "puts" statements into the code. Some will add a raise statement. And still others will depend on logging to trace the internals of the code. But a surprisingly few Rubyists will reach for the Ruby debugger.

Despite a general disdain for the debugger in the Ruby community, the Ruby debugger is a powerful tool that can quickly get to the heart of a coding problem. This talk will concentrate on getting Rubyists up to speed on the debugger, how to use it effectively and learning other general debugging tips.

Jim Weirich is the Chief Scientist for EdgeCase LLC, a Rails development firm located in Columbus Ohio. Jim has over thirty years of experience in software development. He has worked with real-time data systems for testing jet engines, networking software for information systems, and image processing software for the financial industry. Jim is active in the Ruby community and has contributed to several Ruby projects, including the Rake build system and the RubyGems package software.

Matt Kirk

Matt Kirk

@mjkirk

Recommendation Engines using Machine Learning, and JRuby

Ever wonder how netflix can predict what rating you would give to a movie? How do recommendation engines get built?

Well, it's possible with JRuby and it's fairly straight forward. Many engines are built purely on support vector machine regressions which map arrays of data onto a classifier, like a star.

In this talk I'll explain how support vector machines are built, and how do make a simple movie prediction model all in JRuby.

Matt Kirk is a Rubyist and recovering C# developer. He started his career working as a quant with complex financial algorithms at a leading portfolio management company in Seattle. Matt now works at Wetpaint, a publishing 2.0 company, and primarily focuses his time coding Ruby. On the weekends he enjoys various languages like Io, Prolog, and Erlang. He also enjoys listening to his 2000-some vinyl records.

Angela Harms

Angela Harms

@angelaharms

Does pair programming have to suck?

On some teams, pairing is the norm, and some developers really enjoy the collaboration, experiencing enhanced productivity.Others work on teams where pairing is shunned, avoided, or... faked.

I have been on a quest to discover, on the one hand, why some who call themselves craftsmen love pairing, and others want nothing to do with it. I did a short survey about pairing attitudes, and comparing successful and unsuccessful pairing experiences.

The survey produced some really clear results. Some factors most of us think are really important to a good pairing session turned out to be... meh. Other factors, though, stood out, hands down, as clearly separating good from bad pairing experiences.

I'd like to talk about these survey results, and have an honest discussion about why pairing sucks or doesn't suck, and how we can bring the two sides together.

Angela is a full-time explorer and consultant with LeanDog, in Cleveland, Ohio. She loves beautiful code and collaboration, and is always learning new ways to make it work, and sharing what she learns -- speaking (at Agile2011), in open space (Simple Design & Testing), asking questions (http://myAgileEducation.com), and organizing (Code Retreat Columbus).

Dave Copeland

Dave Copeland

@davetron5000

Make Awesome Command-Line Apps with Ruby

Tired of maintaining your one-off script that has now become someone's job to execute? Wishing you could create polished applications on the command line similar to git or cucumber? In my talk, I'll talk about what makes a command line application "awesome", and why you should care. I'll talk about what makes Ruby particularly suited to this task over mainstays like bash and Perl. We'll compare and contrast several Ruby libraries that can make even your lowliest automation script a polished, maintainable, and predictable application.

David Copeland is a veteran software developer with over 15 years of professional development experience, starting on UNIX and C, moving into Java, and now using Java, Ruby, and Scala on a daily basis for energy-efficiency startup OPOWER in Washington, DC. He's so enamoured of the command-line, that he's working on the definitive book on Ruby command-line applications for the Pragmatic Programmers as we speak. He firmly believes in getting things done quickly, not making a mess, and leaving things better than how he found them.

Marty Haught

Marty Haught

@mghaught

Ruby Community: Awesome; Could Be Awesomer

We are known for our community. Does this mean our job is done? Are we starting to stagnate? Simply gathering Rubyists together isn't enough. How are you improving your community? Fear not as anyone of you can take action. Whether you live in a place with no organized Ruby meet-ups or you're contemplating a big regional event, we will go over why you should take action and give you practical steps to do so. We'll also bring light to not just increasing membership counts but actively making everyone better. Innovation is happening out there that we'll go over in detail. Join us, learn and get involved -- we're building something awesome!

Marty, @mghaught, has been a relentless community builder over the last 6 years. Since moving to Colorado in 2005, he went from knowing no one to running the local Ruby users group for 5 years and counting. He pushed the model from simple monthly meetings to multiple community events, including a successful regional conference. This on top of creating a small Ruby consultancy, actively raising two children with his lovely wife, training for triathlons and enjoying the great outdoors of Colorado.

Zach Holman

Zach Holman

@holman

How GitHub Uses GitHub to Build GitHub

Build features fast. Ship them. That's what we try to do at GitHub. Our process is the anti-process: what's the minimum overhead we can put up with to keep our code quality high, all while building features *as quickly as possible*? It's not just features, either: faster development means happier developers.

This talk will dive into how GitHub uses GitHub: we'll look at some of our actual Pull Requests, the internal apps we build on our own API, how we plan new features, our Git branching strategies, and lots of tricks we use to get everyone — developers, designers, and everyone else — involved with new code. We think it's a great way to work, and we think it'll work in your company, too.

Zach works at GitHub. When he's not doing that, he's blogging, hacking on open source, and filming screencasts that are anything but "traditional" screencasts. He attracted national media fame and glory when he built Facelette, a ridiculous three-hour experiment, and lost all of it again after admitting he sometimes stays home on Friday nights and replies to support emails.

Avdi Grimm

Avdi Grimm

@avdi

Confident Code

Are your methods timid? Do they constantly second-guess themselves, checking for nil values, errors, and unexpected input?

Even the cleanest Ruby codebases can become littered over time with nil checks, error handling, and other interruptions which steal attention away from the essential purpose of the code. This talk will discuss strategies for writing your Ruby classes and methods in a confident, straightforward style; without sacrificing functionality or robustness. In the process, we'll cover concepts and techniques points including:

  • The narrative style of method construction
  • The four parts of a method
  • Three strategies for dealing with uncertain input
  • Massaging input with coercion and the Decorator pattern
  • Lightweight preconditions
  • Exterminating nils from your code
  • The chaining and iterative styles of method construction
  • Eliminating conditionals with the Special Case and Null Object patterns
  • Isolating errors with the Bouncer and Checked Method patterns

Avdi Grimm has been hacking Ruby code for 10 years, and is still loving it. He is chief aeronaut at ShipRise, a consultancy specializing in sustainable software development and in helping geographically dispersed teams work more effectively. He lives in Southern Pennsylvania with his wife and four children, and in his copious spare time blogs and podcasts at http://wideteams.com and http://avdi.org/devblog.

Ethan Gunderson

Ethan Gunderson

@ethangunderson

ActiveRecord Anti-Patterns for Fun and Profit

If you’re writing code that looks like User.all.reject(), you’re doing it wrong. Don’t worry though, we’ve all done it before. ActiveRecord makes it all too easy to introduce code that is far from performant, and after awhile, we tend to forget that underneath the pretty API, we’re still producing SQL. In this talk, we’ll peel back the API so that we can see some of the common mistakes I see when dealing with ActiveRecord statements, and more importantly, how you can fix them.

Ethan Gunderson is a software engineer and database enthusiast currently living in Chicago IL. During the day he works for Obtiva, helping their clients be more awesome. On off hours, Ethan is a vocal member of the Chicago developer community, frequently attending and speaking at various user groups and conferences in the Chicago area. He also runs ChicagoDB, a database user group. When not hacking on code, he can be found drinking delicious craft beers.

Ola Bini

Ola Bini

@olabini

Ruby Safari

There are many strange beasts in the Ruby language. Some of them you might never have seen. Others you might have seen but not understood.

Ruby is a big language, and this presentation will show you some of the corners of Ruby that you might not have known about, or even dared think would exist in a modern language. Some of these features are useful, some of them are useless and some of them are just downright puzzling. Come here to get a tasting of the weirder parts of Ruby.

I am a developer working for ThoughtWorks in Chicago, US. I have a large interest in programming languages and artificial intelligence. I am a core developer of JRuby, created the Ioke language and have published the book Practical JRuby on Rails Projects.

Michael Bleigh

Michael Bleigh

@mbleigh

Rails is the New Rails

The sweeping changes brought on by Rails 3 and 3.1 haven’t just make our existing development patterns easier, they have opened up the ability for us to build new patterns that accomplish more in a more beautiful and efficient way. In this session you will see how thinking about new features in a different light can lead to real innovation for your development practices. Examples include baking routing constraints into your models, application composition with Rack, truly modular design with the asset pipeline, and more.

Michael is a Kansas City native, a partner at Intridea, and a prolific Ruby open source developer. He has built libraries such as OmniAuth, Grape, and ActsAsTaggableOn and has presented at numerous conferences including RubyConf 2010 and RailsConf 2011, 2010 and 2009. He also lives walking distance from the conference venue this year!

Eric Redmond

Eric Redmond

@coderoshi

Modern Databases

Choosing a data storage engine is an important decision, but it doesn’t have to be painful if you know the landscape. We’ll look at several DBMSs (and a few you’ve never heard of), compare and contrast them based on use-cases, and how to plug each into Ruby.

Authoring the book "Seven Databases in Seven Weeks" has opened up a whole world of database alternatives that I never before seriously considered. It’s an important decision to be made by research, not buzzwords – and we’ve sifted through them so you don’t have to. At the very least we can settle the Mongo v. Couch debate (hint: they’re both awesome).

This is not the same RailsConf talk. This is split into two parts:

  1. The components of modern databases:
    • A 30,000 foot view of the current database ecosystem
    • Understanding why the CAP theorem is true
    • Understanding map/reduce from the Ruby perspective
  2. 12 databases in 12 minutes:
    • The similarities/differences of the most popular open source DBs today
    • When to use them, when to avoid them
    • Which Ruby drivers to use

Eric Redmond has been involved the software industry and open source technologies for over a decade, working with F500 companies, government and startups as a lead engineer, senior architect, build engineer, database administrator, and freelance code monkey. He was co-author/contributor of two Java books (Maven: The Definitive Guide and Java Power Tools, O'Reilly) and a new book Seven Databases in Seven Weeks (Pragmatic). He has spoken widely, from JavaOne to RailsConf to Open Source Bridge, and organizes several technology groups. He currently resides in Portland with wife Noelle, and has a respectable Twitter followed/follower ratio of over 6/1, despite never posting anything interesting.

David Czarnecki

David Czarnecki

@CzarneckiD

Final Boss: Ruby/Rails in the Video Game Industry

Did you know there are video games, both console and handheld, that talk directly to a Rails stack to provide functionality, both in-game and on the web? Did you know that there are Ruby/Rails services running 24/7/365 to process game data for over 40 million players around the world? You will learn about the code, methodologies and tools used to make all of this happen (and gain 5000 Rails XP)!

David Czarnecki is a lead engineer at Agora Games, http://www.agoragames.com, a company that specializes in building middleware to power video games, both in-game and on the web. He is the author of 2 books for O'Reilly and had previously been developing exclusively in Java for nearly 15 years. He has been developing in Ruby and Rails since joining Agora Games in 2008 and has been a speaker at conferences like JavaOne and RailsConf. David loves video games, especially the Guitar Hero series and Left 4 Dead.

James Edward Gray II

James Edward Gray II

@JEG2

Life on the Edge

We are probably all familiar with the dreaded edge cases that creep up on our production code and sucker punch it with inputs we never expected. I bet most of us have scrambled to fix those at one time or another.

The good news is that you don't have to live in fear of edge cases. In fact, you can turn the tables and force them to work for you. That's a technique I have used quite successfully in my own programming for many years now. It can help you to have better conversations with your clients, design smarter code, choose better processing strategies, and even luck into the right algorithms.

In this talk, I'll explain how I use edge case thinking, explain what it can do for you, and show several examples of how it leads to better choices. You will learn how to stop "slurping" data (even with SQL), how to shed your fear of nil returns and how to avoid spreading that fear to others, how to think synchronously but still get an asynchronous advantage, and more.

James Edward Gray II has lived on the edge of the Ruby community for so long now that it's his home away from home. He's worked on documentation (I told you this was edge thinking!), tackled arcane data formats, built many strange libraries without a good reason, and spent at least as much time hacking the community as he did hacking the machines. He's the perfect tour guide for your journey right on over the edge.

Noel Rappin

Noel Rappin

@noelrap

Test Your Legacy Rails Code

Everybody wants to do test-driven development, but switching to TDD or BDD on an existing project that doesn’t have tests presents special challenges. Often, the current code is a tangled mess of dependencies that defeats the very concept of unit testing. Worse, if somebody has attempted TDD in the past, you might have a test suite that needs to be fixed before any new tests can be written.

Don’t give up. Adding test-coverage and TDD to your application will make it easier.

This session will describe techniques that you can use to bootstrap a test-driven process into your project. You’ll see how to use “black-box” techniques that don’t depend on the structure of the code and “white-box” techniques that interact with the code more directly.

Topics covered will include:

  • Using Cucumber to perform black-box testing.
  • Using RSpec to perform white-box testing.
  • Using mocks to isolate legacy code.
  • Safer refactoring by finding seams, or ways to update code without changing existing behavior
  • Measuring test coverage and other useful metrics

At the end of this session you will be ready to attack the most monstrous of code bases with TDD.

Noel Rappin is a Senior Consultant at Obtiva. He is the author of Rails Test Prescriptions: from the Pragmatic Bookshelf and Professional Ruby on Rails from Wrox. He has over a decade of experience in web application development. Noel is the co-author of wxPython in Action and O'Reilly's Jython Essentials, and and has presented at RailsConf and WindyCity Rails.

Dr Nic Williams

Dr Nic Williams

@drnic

High Performance Ruby: Threading versus Evented

I wanted to know, "Do I need to learn about EventMachine or node.js? Can I use threads? What is so good or bad about threading in Ruby 1.8, Ruby 1.9, JRuby and Rubinius 2.0?"

What was important to me was the the choice was abstracted away. I wanted to write normal, step-by-step Ruby code. Yet I wanted it to be performant.

I've asked a lot of people. I even hosted EM RubyConf (http://emrubyconf.com) during RailsConf 2011 in order to gather the brightest minds in the Ruby community.

"What choices do I need to make, how different does my code look, and how do I do testing?" These are the questions I searched for answers.

I'd like to now share the answers.

Dr Nic has written, maintained and contributed to over a 100 open source projects, across the languages/domains of Ruby, JavaScript, Objective-C and TextMate bundles. He is Vice President of Technology at Engine Yard and is responsible for its large Open Source program. He has been presenting at International Conferences since 2007. He is also Australian and thinks he is funny. Rumor has it that the real reason for his recent move to Engine Yard HQ in California was to further his fledgeling comedy career.

Ben Scofield

Ben Scofield

@bscofield

Break It Down

Rails has been around for seven years now, which means there's been more than enough time for us to build huge, monolithic apps that do way too much. It's no surprise, then, that we've started to see a surge of interest in the decomposing large apps into a set of smaller, interrelated services.

In this talk, I'll show just how to go about decomposing one app into these sorts of services -- from identifying splittable functionality, to extracting it, and to integrating the service back into the main app.

Ben Scofield has been an active participant in the Ruby and Rails communities for the past six years, contributing to open source projects, writing both online and in print, and speaking at events around the world. He's spent time building application for startups, established companies, and competitions, and he was one of the founders of the DevNation series of local, technology-agnostic conferences. For the last two years, he's been a co-chair of RailsConf, and he recently joined Ruby Central as a director.

Matt Hicks

@matthicksj

Running Red Hat OpenShift with a little help from Ruby

This talk will dive into the details of OpenShift Express and it's support for Ruby and Rack. It will also cover how we are using Ruby internally on our development of OpenShift. This session will not only walk you through how to use OpenShift to deploy a Rails 3 application, but will also dive into why we standardized on Ruby as our development language. I'll cover the following topics at a hands-on level:

  • Deploying a Rails 3 application with the OpenShift Express
  • Cover how we are using Selenium WebDriver and the Ruby bindings for automated testing on headless machines
  • Cover how we are using Apache Qpid (AMQP), the Ruby bindings and MCollective as the basis of our scale-out architecture

Matt Hicks is one of the founding members of the Red Hat OpenShift team. He has spent over a decade in software engineering with a variety of roles in development, operations, architecture and management. His real expertise is in bridging the gap between developing code and actually running it in production. An expert in IT and cloud-based architectures, he spends his time these days evolving OpenShift to harness the power of cloud and make developers more productive.

Rogelio J. Samour

@therubymug

No Sudo for You!

As developers, we want to minimize the time we spend fighting with our development environment. The less time we spend dealing with configuration issues, the more time we can spend doing what we do best... creating awesome apps! I show how you can easily set up a development environment that is both flexible and powerful. But best of all, it won’t need regular attention!

Born in El Salvador, Rogelio started tinkering with computers when his dad gave him a Tandy in the early Eighties. He received a degree from Arkansas Tech University in 2003 and is passionate about using Computer Science to solve complex problems. Things Ro thinks are rad: Vim, Ruby, Rails, Linux, Open Source, Murdock from “The A-Team,” basketball, “Seinfeld,” “Monk,” chess, and long walks on the beach (with his wife & baby boy!). He likes Middle Eastern cuisine and dislikes talking about himself in the third person.

Joe O'Brien

Joe O'Brien

@objo

People Patterns

We spend a large portion of our time thinking about code and technical project issues. What about the people side of things? The majority of project failures occur because of people, not technology. What we need are guides that help us navigate the waters between the people around us.

People Patterns introduces my latest effort to capture the subtleties and nuances of interpersonal relations. I'm distilling a lot of experience, a bit of psychology and a substantial amount of research and have come up with a series of patterns that can help everyone be more successful in teams and at work. How do you have those critical conversations? How do you get your point across when you think the other person is incompetent? Come and help me reveal these and join a lively discussion.

Joe is a father, business owner, speaker and developer. In 2006 he co-founded EdgeCase, a leading Ruby and Ruby on Rails training and consulting company. They have had a tremendous amount of success helping companies as large as Ingersoll Rand, GAP and AT&T Interactive as well as those startups still in the inception stage. Through a partnership he has been giving training for well over three years on testing and development with Ruby on Rails. He is a speaker and has spoken at conferences ranging from RailsConf to numerous regional conferences and countless user groups.

Schedule

Thursday, November 3th, 2011

8:00 AM - 5:00 PM

Effective BDD for Ruby Developers: A Groupon Hackon Day

Groupon
Register Today for a full day workshop on Behavior-Driven Design (BDD) where you will learn from Groupon Ruby on Rails senior engineers.

Register for Groupon Training Today!

  • * This is a separate event from Ruby Midwest and requires a separate registration here *
  • * The cost of the event is $49. *
6:00 PM - 10:00 PM

Happy Hour / Hackathon

Kauffman Labs and Social Volt will be hosting an pre-conference hackathon and happy hour at The Kauffman Foundation. Shuttle service will begin starting at 5:30 PM from the Hotel Philips.

Friday, November 4th, 2011

 
  • 8:00 AM
  • 9:00 AM
  • 9:15 AM
  • 9:45 AM
  • 10:15 AM
  • 10:30 AM
  • 11:00 AM
  • 11:30 AM
  • 11:45 AM
  • 12:15 PM
  • 1:15 PM
  • 1:45 PM
  • 2:15 PM
  • 2:30 PM
  • 3:00 PM
  • 3:30 PM
  • 3:45 PM
  • 4:15 PM
  • 5:15 PM
  • 6:00 PM
 

Saturday, November 5th, 2011