See our program for agenda details and speaker information.
Keynote Presentation: Chad Fowler
RubyNation Keynote speaker Chad Fowler explains how you can become "The Passionate Programmer".
What should the career path of a programmer be? How do you know what you're aiming for? What defines success?
Many of us started out assuming the answers to these questions included slowly climbing a corporate promotion structure, ultimately becoming a people or project manager and no longer a programmer.
But we didn't get into software development so we could fill out spreadsheets and attend status meetings. We got into software development because we were excited about it. We wanted to be creative and to build great things.
From the author of The Passionate Programmer, this session will walk through how a software developer can not only succeed but work toward building a remarkable career. We'll draw examples from business, the arts, music, and sports. By the end of the presentation, we will have laid out a structured framework for radically succeeding in the software industry.
Featured Rails Presentation: Yehuda Katz
Yehuda Katz presents "From Rails to Rack: Making Rails 3 a Better Ruby Citizen".
Rails 3 is on its way, and Yehuda Katz is giving RubyNation a sneak peek! With the advent of the Rack spec and library, Ruby web frameworks can interact in unprecedented ways. Imagine a Rails application routing to a Sinatra application, or Merb-style exception pages that catch exceptions from Rails or Cloudkit.
The idea is simple: create a tiny API for interaction between elements of a web application. Instead of requiring special mechanisms for tests, controller instantiation, or CSRF forgery protection, design apps as a collection of such elements strung together into a stack. As with Unix pipes, limiting the interaction between elements makes powerful combinations a snap.
Merb 0.9 was rebuilt from the ground up to take advantage of Rack, and Rails has begun incorporating it as well. Rails 3 will make Rack a fundamental part of the framework.
Join Yehuda and talk about how this powerful idea is influencing the next generation of Rails, and how it will change the way you develop.
Yehuda Katz works full time at Engine Yard as a Core Team Member on the Rails and Merb projects. He is the co-author of jQuery in Action and the upcoming Merb in Action, and is a contributor to Ruby in Practice. He spends most of his time hacking on Rails and Merb, but also on other Ruby community projects, like Rubinius and Datamapper. And when the solution doesn't yet exist, he'll try his hand at creating one - as such, he's also created projects like Thor and DO.rb.
Featured Ruby Presentation: David A. Black
David A. Black presents "Preparing for Ruby 1.9".
With the release of Ruby 1.9.1 in January, the 1.9 series has really come into its own. There are a lot of new features, as well as some snags for anyone migrating code from 1.8. In this presentation, we'll look at a bit of both: what's new in 1.9 (encoding, the full maturity of enumerators, sorted hashes, and more) and some of the things you need to be aware of as you update your existing code (no more "each" for strings, the remove of the default to_a, etc.) The talk will give you your bearings in 1.9, preparing you to get the most out of the language and helping you to follow the on-going debates and discussions about the further development of Ruby.
David A. Black is a well-known and highly-regarded Ruby and Rails programmer, author, and trainer. Active in the Ruby world since 2000, David has more than a decade of full-time teaching experience, and is the author of Ruby for Rails: Ruby techniques for Rails developers (Manning Publications, 2006) and Rails Routing (Addison-Wesley, 2007). He has been interviewed for InfoQ and the Rails Podcast; has co-organized numerous Ruby/Rails conferences; and has spoken at conferences and Ruby/Rails users groups in the United States, Canada, and England.
Bruce Tate
Bruce Tate presents "Requires SEO; acts_up".
Rails has great tools for building highly interactive excellent web applications quickly. Some of these very tools, including complex routes with flexible URL parameters, remote JavaScript, and navigation strategies can hurt you big time in search engines. In this talk, Bruce Tate talks about the experience he gained in building three commercial web applications and the lessons learned with each. Some of the topics include
- Working with faceted navigation and SEO.
- Building smart URLS
- Using redirects to control duplicate content
- Remote JavaScript and SEO
After the talk, you should have a clearer understanding of how to use the tools at your disposal to build sites that will have a stronger SEO footprint.
Bruce Tate is a mountain biker, kayaker, and father of two from Austin, Tx. The Chief Technologist for WellGood, LLC, Bruce uses Ruby technologies to build web sites that make a difference. ChangingThePresent is a marketplace for donation gifts and ClassWish, to be launched this Fall, is a site that will help teachers raise money for items that they would normally pay for out of their own pocket. Bruce is the author of more than ten books, including Beyond Java, From Java to Ruby, Rails Up and Running, and a co-author of Deploying Rails applications.
Joe O'Brien
Joe O'Brien presents "Be Careful, Your Java is Showing".
Have you ever opened up a Rails application and you can tell it was someone's first Rails app after coming in from the Java world? Are you new to Rails and have wondered where your IOC container is, or why you don't have any interfaces (and what's with all of these underscores) ?
This talk walks through many of the common pitfalls that people run into coming from the Java world. I begin with simple idomatic issues (methods that end in a question mark, and underscores), to larger issues such as IOC containers and AOP programming. This talk is designed to dig into some of the deeper mental disconnect that many developers have when coming over to the Rails world.
Joe is a father, speaker, author and developer. Before helping found EdgeCase, LLC, Joe was a developer with ThoughtWorks and spent much of his time working with large J2EE and .NET systems for Fortune 500 companies. He has spent his career as a developer, project manager, and everything in between. Joe is a passionate member of the open source community. He co-founded the Columbus Ruby Brigade and helped organize the Chicago Area Ruby Users Group. His passions are Agile Development in the Enterprise, Ruby, and demonstrating to the Fortune 500 the elegance and power of this incredible language.
Hal Fulton
Hal Fulton presents "Reia: The Next Big Thing?".
Reia is a language still in its infancy but showing great promise. It borrows heavily from Ruby, as well as from Python and Erlang. Some are speculating that the marriage of object-oriented and functional programming may be the next incremental leap in our thinking. Here I'll examine the benefits that Erlang has and how Reia tries to bring these to a language with Ruby-like syntax and semantics.
Hal Fulton is a developer for Collective Media, working from home in Austin, Texas. He has two degrees in computer science and has been using Ruby since 1999. He is the author of The Ruby Way, now in its second edition.
Russ Olsen
Ask most Ruby or Groovy programmers and they will tell you that design patterns are among the things they are trying to leave behind. Design patterns are clearly a part of the old world of heavy weight processes and overblown designs that just doesn't work. Or are they? In this talk, Russ Olsen takes a fresh look at the original ideas behind design patterns to see how they fit with more the more flexible, dynamic languages of today.
Russ Olsen's career spans almost three decades, during which he has written graphics device drivers, geographic information systems, power system simulators and document management systems. Russ is currently a senior engineer with FGM, where he builds enterprise information systems with both J2EE and Rails. Russ spends a lot of his otherwise free time talking and writing about technology. Russ is the author of Design Patterns in Ruby and lives outside of Washington DC with his family and two turtles.
Ben Scofield
Ben Scofield presents "Comics is Hard: Domain Modeling Challenges".
"It sometimes seems like all domains easily map onto relational database like MySQL and Postgres — that we live in a happy land where all Employees are People, and all People are Mammals. Unfortunately, however, there are many domains that just don't map so easily onto a standard relational schema. In this session, we'll look at three general alternatives to the familiar model, as illustrated by some specific examples."
Ben is the development director at Viget Labs, where he builds Rails applications for Web 2.0 startups. He’s been using Ruby and Rails for over four years, and is the author of Practical REST on Rails 2 Projects, from Apress. He’s spoken at Railsconf, Rubyconf, Railsconf Europe, and more over the past few years. When he’s not hacking, he spends time with his wife and daughter, reads voraciously, and tries to make the world a better place for web developers everywhere. Ben blogs at www.culann.com and www.viget.com/extend.
Luc Castera
Luc Castera presents "Distributed Computing with Ruby and TupleSpaces".
Ruby threads are limited due to the Global Interpreter Lock. Therefore, the best way to do parallel computing with Ruby is to use multiple processes but how do you get these processes to communicate?
This session will provide some strategies for handling multi-process communication in Ruby, with a focus on the use of TupleSpaces. A TupleSpace provides a repository of tuples that can be accessed concurrently to implement a Blackboard system. Ruby ships with a built-in implementation of a TupleSpace with the Rinda library.
During the session, Luc will demonstrate how to use Rinda and will highlight other libraries/projects that facilitate interprocess communication and parallel computing in Ruby.
Luc Castera is a curious software engineer, always trying to learn new technologies and improve his skills. He is currently the lead-developer at ShareMeme Inc, the company behind sharememe.com and messagepub.com. Luc has held positions at Verizon, GE, and Delphi Electronics. He has used many different languages and platforms such as Java, Tcl/Tk, C, Ruby, and C#/.NET throughout his career. He discovered Ruby more than two years ago and he has been coding happily ever since.
Luc received his B.S. in Electrical Engineering at the University of Virginia before attending Georgia Tech to obtain his Masters degree in the same field. Born and raised in Port-au-Prince, Haiti, he now lives in the DC Metropolitan area.
David Eisinger
David Eisinger presents "Optimizing Perceived Performance".
As Phil Karlton said, “there are only two hard things in Computer Science: cache invalidation and naming things.” Despite enormous advances in the field of web development over the last five years, it remains difficult to use caching to allow sites to scale for expanding user bases. Fortunately, the last few years have also seen the rise of JavaScript libraries that take a lot of the pain out of client-side programming. In this talk, we’ll explore techniques for making your sites feel faster, without resorting to complicated caching schemes, while maintaining strict separation of content, style, and behavior.
Using a sample Rails app, we'll look at client side code to do the following:
- Reduce initial load time
- Render content inline via AJAX
- Increase responsiveness
- Background-load content
- Isolate bottlenecks
- Eliminate blocking operations
The goal is that the talk will serve three purposes: to explain some of the psychology behind user impressions of website performance, to introduce unobtrusive javascript to the uninitiated, and to describe some novel techniques to more experienced web developers.
David is a web developer at Viget Labs, building web applications for companies ranging from startups to established brands, as well as internal and open source projects. After several years as a PHP developer, he made the switch to Ruby in 2006 and hasn’t looked back. He specializes in Ruby on Rails, jQuery, and RESTful web services. A Washington, DC native, David now lives and works in Durham, NC. He writes online at http://www.viget.com/extend" and http://www.davideisinger.com.
David Keener
David Keener presents "Creating A World-Class RESTful Web Services API".
Companies like Amazon, Google and Yahoo have published web services API's that empower developers to create mash-ups, add-ons and full-scale applications. The creation of such API's, however, is not exclusively the domain of large, multi-national corporations. Learn how to architect, build and field a well-designed and scalable RESTful web services API that will allow your business to leverage the capabilities of the developer community. This presentation includes real-life examples from the Grab Networks RESTful API, which provides access to information about the hundreds of thousands of news videos available through Grab Networks' distribution network. Topics covered include:
- - The value proposition for a web services API.
- - Design considerations for a usable API.
- - Authentication and Authorization strategies.
- - Scalability tips for handling serious traffic.
- - Supporting search functionality in your API.
- - Error Handling.
- - Sample web service client using ActiveResource.
David Keener is a writer and technical architect with over 20 years of experience; he blogs regularly at KeenerTech.com. He is a technical architect for Grab Networks, the company known for streaming the Beijing Olympics over the web and for distributing more news videos in the US than any other company except MSNBC.
Mark Cornick
Mark Cornick presents "Code Stinkers Anonymous: Learning To Write Better Code And Love Refactoring".
As a professional developer, especially one who works in Ruby, you hear about code quality all the time. You learn that testing your code and making it easy to maintain are the path to success. You know about TDD, BDD, TATFT and LMNOP. You learn to cycle from red to green to refactoring. We all do our best to write quality, maintainable, reusable code. We're all human, though; some of us slip, and some of us have had to work hard at preventing code smells. In this talk, I'll talk about how I learned to program, how going pro exposed flaws in my coding style, and how I'm working to improve my code quality, sharing some of my old stinky code, the better, refactored versions, and the lessons I've learned in honing my craft.
Mark Cornick is a web developer and systems administrator at Viget Labs in Falls Church, Virginia. He spent the first ten years of his career doing sysadmin work, until he learned Ruby and Rails as a way to stay busy during a layoff. Seeing that development was much more mentally stimulating than sysadmin, he switched career paths and has been doing Ruby development full-time since 2007.
Adam Blum
Adam Blum presents "Building Native Mobile Apps in Ruby".
Rhodes is an open source Ruby-based framework for building locally executing, device-optimized mobile applications for all major smartphone devices. These applications work with synchronized local data and also take advantage of native device capabilities such as GPS, PIM contacts, camera, and SMS. Yet you write the majority of your interface with high productivity in HTML and Ruby. Rhodes allows you to write an app once and it will then run on all iPhone, Windows Mobile, BlackBerry, Symbian and Android smartphones. During this session we'll build a sample app for all mobile devices, from scratch, in minutes.
Adam Blum is CEO of Rhomobile, the open mobile framework company. He is a longtime founder/CTO/VP of Engineering of several successful startups in the web services and mobile spaces (Commerce One, Systinet, Good, Mobio). He is also an adjunct professor at Carnegie Mellon University and advisor to several other software companies.
David Medinets
David Medinets presents "ActiveScaffold".
ActiveScaffold is a tool that produces on-the-fly scaffolding that looks much better than the default Rails scaffolding. It uses Ajax to create, update, and delete without page reloads. Also, the scaffold is nearly totally customizable in well-documented ways. In this presentation, David will show how to use ActiveScaffold to produce a custom user interface while still letting the tool do the hard work of generating forms.
David Medinets has been programming since 1980, starting with a TRS-80 Model 1. He still fondly remembers the days when he could cross-wire the keyboard to create funny-looking characters on the display. Since those days, he has written three books teaching the Perl, PHP, and BASH languages. David is a SCRUM Master and expert application developer specializing in Ruby and Java. He is knowledgeable about the business domains of Insurance, Supply Chain, and Airline Inventory.
Tony Pitale
Tony Pitale presents "'Handling' Legacy Databases with Rails and DataMapper".
DataMapper has pushed the Ruby ORM market to new heights of speed (through laziness), strength (through separation), and flexibility (through mapping). At this time the rails_datamapper plugin is the way to bring DM and Rails together. Soon, the Merb/Rails merger will lead to seamless inter-operability between DM and Rails.
In the coming years we can only expect to deal with more and more legacy databases, whether they come from the corporate Java projects or from aging PHP web applications.
The goal of this session is to provide some strategies for “handling” legacy databases, for whatever that means to a project. Whether it be using the database as is, wrapping it nicely, or simply migrating into a better designed and built database. We’ll begin by covering the basics of setting up DM in Rails. We’ll quickly move on to cover, at the very least, overriding keys of varying types, non-standard table naming, connecting to multiple databases for the purpose of syncing or migrating data, and a variety of association examples. If time permits we’ll discuss methods of addressing constraints, triggers, views, and database functions.
Tony Pitale is a developer at Viget Labs, where he builds Rails applications for startups and conventional businesses. He’s been developing with Ruby for nearly 3 years and has built web applications with Rails, Merb, and DataMapper. When not developing he spends time with his girlfriend, dog, and family, as well as reading, writing, cycling, and playing jazz music.
Danny Philpott
Danny Philpott presents "Herding Tigers - Software Development and the Art of War".
Herding Tigers is a presentation describing the creation and function of Super Agile Tiger Teams for High Velocity, High Quality software development. The composition and function of a Tiger Team is described. Daily activities, roles of QA, Product, Developer, Manager, and other needed disciplines for a project are described as well. This presentation describes the parallels between Maneuver Warfare and Agile development, Psychology, Leadership, and expected results. Tiger teams function as very high speed “Special Forces” groups, and produce an enormous amount of high quality product.
Danny Philpott AKA Danny Blitz is a 20 plus year veteran of the software industry. Danny has built and managed systems for Citibank, Dell, Ticketmaster, Quest Diagnostics, US Military and other organizations. Danny is currently serving as a development manager and agile evangelist for AT&T Interactive, and is building the Tiger Team program for the company.
Aaron Bedra
Aaron Bedra presents "From Paralysis to Static Analysis: A Ruby 1.9 Case Study on Upgrading Rcov".
With Ruby 1.9 on everyone’s mind, Aaron will walk you through the real-life example of updating RCov to work with the new platform. Take a look at the internals of the new Ruby hotness along with exploring what real life upgrades are like when making the shift to what will eventually become Ruby 2.0.
Aaron brings the ability to quickly ninja any application. His passion for spreading the security word via his blog is kicking off a new wave of security consciousness throughout the Ruby community and creating an avalanche of better development practices. His passion for exploring new technologies and traveling new roads has quickly shot him up through the Ruby industry and on to the Relevance team.
Pradeep Elankumaran
Pradeep Elankumaran presents "Fast and Scalable Front/Back-end Services using Ruby, Rails and XMPP"
The Extensible Messaging and Presence Protocol (XMPP) is a set of open standards for real-time presence and communication. Apart from powering high-traffic instant messaging systems, XMPP can also be used to write cutting-edge real-time web applications using Ruby web frameworks. This session will provide a high-level overview of the XMPP protocol and various scalable front-end and back-end messaging architectures including message queuing and publish/subscribe that will help offload many of your app's expensive operations. There will also be a comparison of various XMPP servers and an introduction to Ruby libraries that help interface your framework with XMPP. Finally, there will be a discussion about front-end browser interfaces that use XMPP via Javascript and the BOSH protocol to provide lightning-quick and elegant user interfaces. Attendees will walk away with a thorough understanding of what it takes to modify existing web applications to include XMPP solutions for backend messaging or to create full-blown XMPP applications from scratch using Ruby.
A former computational scientist, Pradeep was writing astrophysical simulations in Ruby well before the language became fashionable. Since then, he has been working with and thinking a lot about social networks, machine learning and applying mathematical models to social data. At Intridea, he’s responsible for researching and developing emerging web technologies, launching new products and coding. Recently, he’s been checking out Erlang & XMPP and has been spending lots of time hacking away deep in the guts of the Rails framework.
Paul Barry
Paul Barry presents "Bringing Content Management to Rails with BrowserCMS".
BrowserMedia has recently released BrowserCMS 3.0, which is open source and runs on Ruby on Rails. In this talk Paul will first cover the features BrowserCMS provides as a content management system. Then Paul will cover some of the Ruby on Rails techniques used to implement the features of BrowserCMS. Finally, Paul will demonstrate how easy it is to build your own website using BrowserCMS and Rails.
Paul Barry is a Senior Software Engineer with BrowserMedia. Paul was born in Albany, NY, grew up in Wichita, KS and attended college at Loyola College in Maryland. He has lived in New York City, Washington DC, and currently lives in Federal Hill in Baltimore, MD. Paul has over 10 years experience developing web applications in a variety of languages and frameworks, including Java, Perl, PHP and of course, Ruby on Rails. He blogs about Ruby, Programming and a variety of other topics at www.paulbarry.com.
Could Be You!
The RubyNation wants to hear your lightning talk! Whatever you want to talk, rave, or rant about, this is your chance. We don't care what it is, just as long as it is of interest to the Ruby community and relatively short (like 10 minutes max). Your lightning talk can be fun, like "X is awesome! It changed me as a person!", a call to arms, like "Help us build Y. The world needs it!", a plea, like "Let's put an end to the scourge of Z.". You've heard of opinionated software, well this is opinionated talking. So, let's hear yours. Oh, and please keep it no worse than PG-13 rated.
Ruby Marketplace
During lunch on the first day we will open the microphone to employers and potential employees (in one of the two rooms). Help give the economy a Ruby Stimulus! Need a Ruby or Rails job? Need Ruby or Rails developers? Stop by the Ruby Marketplace and tell us all about it. Maybe you can find your dream job, or find that one awesome rubyist who can make your project soar.