The South's regional Ruby conference, back again in 2009. Except this time,
leaner, meaner, and free...er.
About Reductive Labs Reductive Labs was founded to modernize systems management with better tools and processes. We produce Puppet™, the Open Source System Management Framework and provide training, services and support to the Puppet ecosystem. Reductive Labs enables IT organizations to provide more consistency, more flexibility, more predictability and more transparency while lowering the cost of service. The continuing vision of Reductive Labs is to focus on providing an ecosystem of tools that improve service quality with as little effort as possible, through integration, abstraction, and reuse.
Reductive Labs was writing Ruby when Ruby wasn't cool. We've also got deep roots in Nashville, so supporting the Ruby Flippin' Hoedown here was a no brainer. We're having a pretty good 2009, and it is our pleasure to give to the community. We're looking for Ruby talent who does not mind being up to their neck in Computer Science and Systems Management. Enjoy the Hoedown!
![]() ![]() |
![]() |
![]() |
|
Want a schedule? You got it! Check out the schedule here.
![]() |
"The Keynote"
with Mr. Jamis "Keynizzle fo' Shizzle" Buck I don't need no stinkin' abstract! |
|
"Appcelerator Titanium: Desktop and Mobile development for web developers"
with Mr. Leon "Killer" Gersing So, you're a web ninja. You've mastered CSS, XHTML, JavaScript, Ruby on Rails, Django and are pretty sure that HTML 5 is going to render Silverlight and Flex completely useless. You're so 1337 that lesser developers cower at your web development prowess. Then someone asks you to create an iPhone app or Andriod app or Mac Desktop app or *gasp* a Windows Desktop app... you're starting to sweat at the thought of quirky platform specific languages and behavior. FEAR NOT, CITIZEN! A new open source framework by Appcelerator called Titanium allows you to use your incredible web skills to create cross platform, desktop and mobile applications. Come spend some time learning about this new framework while we take a lap around the basics of the framework and create a simple mobile application that can run on either Apple's iPhone or Google's Andriod OS! (Tech used: Titanium Desktop/Mobile beta, Ruby, HTML, CSS) |
![]() |
"Testing Or Something"
with Mr. David "The Davester" Chelimsky Abstract coming... |
![]() |
"The Time of Your Life"
with Mr. Yossef "My Other Car Is Your Face" Mendelssohn More developers are striking out on their own, either as purely independent contractors or forming consultancies. Maybe you've done it, or maybe you're considering it. The contracting world has some suprises for someone who's spent a long time as an employee. For one thing, you have to keep track of your time. Even if you're never going to be charging hourly rates, you want to know what you're selling your time for. (And by the way, you are going to be charging hourly rates.) There are many ways of tracking time, connecting time spent to work done, and converting that time into payment. And with more developers getting into the arena, it's not surprising that more solutions keep popping up. It should be especially unsurprising that this talk will touch on tools developed or improved by the speaker after becoming a contractor and suddenly finding himself interested in time management. Concentrating on a small collection of simple, flexible tools will follow the time lifecycle from recording to billing. Actually collecting on the invoice is up to you. |
![]() |
"How to Be Simply Awesome"
with Mr. Corey "C DAWG" Donohoe Our two man group at Engine Yard is obsessed with doing the simplest thing we possibly can when tasked with a problem. In the talk I'll explain our general philosophy as its evolved over the last 12 months. I'll explain why we generally use Sinatra over rails and merb, and why we're writing fewer and fewer unit tests in every new project. I'll dive into the tools we couldn't live without and the open source libraries we've released. I'll cover some of the frustrations of remote pairing and finally I'll explain why doing the simplest thing possible has turned out to be really fulfilling professionally. |
![]() |
"External DSLs with Ruby"
with Mr. Luke "The Puppetmaster" Kanies This talk will provide an in-depth look at how Puppet builds its external DSL using a parser generator. Parser generators are useful both for designing new languages (Ruby is parsed using a parser generator) and for implementing existing languages (e.g., the file format your regex parser just can't quite get). The talk will cover Puppet's hand-coded lexer, its grammar, the abstract syntax tree built by the grammar, and how they integrate. Included will be information on trade-offs of external vs. internal DSLs, choices for parser generators, and where they might generally be applied. |
![]() |
"Be a Civic Coder"
with Mr. Luigi "The Upstanding Citizen" Montanez How can we use our skills as software developers to make the country a better place? With the recent mandate for change, Washington has experienced a surge of energy around the notion that government can be made better through open data and APIs. But while readily available data is a big step forward, something needs to be actually done with all that information. That's where civic coders come in, building applications and tools that can truly make a difference in how the government serves its citizens. Becoming a civic coder is fun and rewarding by utilizing the excellent open-source tools Ruby has to offer. Many successful civic apps are small and lightweight. In the spirit of leveraging open technologies, this talk will conclude with a demo of deploying a Sinatra application on the Google App Engine. |
![]() |
"Forget Kindergarten, Learn to Scale"
with Mr. Blake "I Accidentally the Whole Cloud" Mizerany The key to building web apps that can scale and take advantage of cloud resources is to forget what you learned in kindergarten and do the opposite. Heroku has over 32,000 apps running on it currently, some serving hundreds of requests per second. Blake will walk you through 5 anti-kindergarten rules used by successful Heroku apps, with hands-on examples of each rule. |
![]() ![]() |
"Threaded Awesome"
with Mr. Joe "Godfather II Is My Biography" Damato and Aman "I Pwn Threads Everyday" Gupta This talk is an in depth look at the problems with the threading implementation in MRI Ruby 1.8 and our proposed solution which boasts up to a 10x performance boost and introduces a Fibers API (which is compatible with Ruby 1.9). We will start by explaining a few core ideas about systems programming. We'll take a tour of various threading and I/O models comparing the advantages and disadvantages of each. From there we'll examine some of the problems with the threading implementation in MRI and how our patch remedies the situation. We'll finish up by showing off a demo or two of our threading fixes, Fibers API, and how you can use them to get fast, scalable I/O using NeverBlock. Attendees will take away knowledge about threading implementations, core systems concepts, and Ruby implementation details that will help them write better more scalable Ruby code in the field. |
![]() ![]() |
"MacRuby To the Max"
with Mr. Brendan "The Limster" Lim and Mr. Brent "I Eat Java for Breakfast" Collier Our presentation will be on the topic of MacRuby, why it is important, and we will also be live coding a simple application. MacRuby is relevent to Ruby developers because it allows us to dive into the world of Mac OS X development using Ruby 1.9. Unlike RubyCocoa, where we would need to use both Ruby and Objective-C, MacRuby's API allows us to just use Ruby. Attendees will be able to take away from the presentation a good understanding of MacRuby and the passion to develop something of their own using it. |
![]() |
"Writing Software not Code with Cucumber"
with Mr. Ben "Indefinite Certainty" Mabey Behaviour Driven Development is commonly viewed as an evolution of Test Driven Development that simply uses different vocabulary. At first glance this may appear to be the case, and it is true that the use of language is a very important aspect of BDD, however the goals of BDD are not limited to avoiding common TDD pitfalls. When we focus solely on examples at the object level we run the risk of losing sight of the big picture. To ensure that we are writing software that matters, BDD prescribes the writing of "scenarios" which outline the business value of a system from a stakeholder's perspective. These scenarios play a critical role in requirement analysis, planning, and the development process itself. The scenarios become executable acceptance criteria that are incorporated into the development cycle allowing the developer to always know "what's next" and when the software is "done". In this presentation you will see how Cucumber streamlines this process with its use of plain-text features. You will learn how to leverage Cucumber in your software projects starting with the requirements stage up until you are ready to ship. The outside-in process will be illustrated with examples that demonstrate how to start with Cucumber while using RSpec for the object-level examples. |