Sessions

"Fascism and Faux-pen Source" by Zed A. Shaw

Everything you need to know to run your very own Faux-pen Source project in the Fascist style. I'll cover the history of Fascism, how it works, relevant scholarly research, and how you can leverage fascist tactics and "the community" to further your own goals.

I'm Zed. (@zedshaw)

"Monkeypatching Your Brain" by David Brady

Your entire nervous systems literally wired to be reprogrammed. Are you working with its strengths? Do you know how to tell if you're not? In this session we'll explore some exciting discoveries in neuroscience and psychology, and then immediately put this knowledge to use creating iterative change inside our brains. Or maybe we'll just monkeypatch some stuff and see what happens. If you want to start or break new habit instantly, start unit testing your own behavior, or if you just think it would be fun to know how to hack a debug breakpoint into somebody else's brain, this talk is for you!

David Brady (@dbrady) has been hacking his brain for over 20 years. There's no native code left - it's all bugs and trojans.

"Confessions of a Data Junkie: Fetching, Parsing, and Visualization" by Bobby Wilson

This is not a scientific talk. It's a survey of each step in my process of creating something meaningful out of a pile of data. The talk will be a blend of anecdotes, process, data sources, tools available, and good ol' hacks. We live in a world filled with recorded data. Lots of that data is online, and retrievable in some fashion. Unfortunately, that data is often sparse, poorly labeled, and uninsured. Enter Ruby, with a wide variety of gems and libraries to help us trudge through funky data, store it, sort it out, and spit shine it for the masses.

Bobby (@bobbywilson0) is a jack of all trades from Denver who's found solace in Ruby. His thirst for knowledge combined with a thirst for craft beer make him, well, like most of you. What makes him special is his dedication for craftsmanship, a modest ego, his short list of twitter followers and his skills with an oven.

"Ruby.is_a?(Community) # => true" by Wayne E. Seguin

The single most important driving force that has kept me going since I started working with Ruby is the community itself. I will discuss various aspects of why I love the Ruby community and present my thoughts on our unique and awesome community with it's rosy effervescent essence.

Wayne E. Seguin (@wayneeseguin) is a long time Ruby Community Enthusiast and has contributed to the community projects such as the Ruby enVironment Manager, Rails Installer and BDSM.

"Chef Cookbook Design Patterns" by Joshua Timberman

This talk will teach you how Opscode designs and writes Chef cookbooks to be sharable - not only in the Open Source sense, but sharable between various internal infrastructures and environments. Come to this talk if you want to learn more about:

  • How Chef uses attributes
  • How to dynamically build configuration with search
  • Accessing internal Chef objects within recipes

Joshua Timberman (@jtimberman) is a system administrator, infrastructure developer and technical evangelist for Opscode. He wrote most of the public Chef cookbooks published by Opscode, teaches people about Chef through informal and formal channels, and speaks at conferences.

"fog or: How I Learned to Stop Worrying and Love the Cloud" by Wesley Beary

Cloud computing scared the crap out of me - the quirks and nightmares of provisioning cloud computing, dns, storage, ... on AWS, Terremark, Rackspace, ... - I mean, where do you even start?

Since I couldn't find a good answer, I undertook the (probably insane) task of creating one. fog (http://github.com/geemus/fog) gives you a place to start by creating abstractions that work across many different providers, greatly reducing the barrier to entry (and the cost of switching later). The abstractions are built on top of solid wrappers for each api. So if the high level stuff doesn't cut it you can dig in and get the job done. On top of that, mocks are available to simulate what clouds will do for development and testing (saving you time and money).

You'll get a whirlwind tour of basic through advanced as we create the building blocks of a highly distributed (multi-cloud) system with some simple Ruby scripts that work nearly verbatim from provider to provider. Get your feet wet working with cloud resources or just make it easier on yourself as your usage gets more complex, either way fog makes it easy to get what you need from the cloud.

Wesley Beary (@geemus) is an avid Rubyist and Open source enthusiast. He spends his days developing fog at Engine Yard and spends much (probably too much) of his free time working on other open source projects.

"Behind the Keys: Redis Oyster Cult" by Nick Quaranto

Redis is an "advanced key-value store" but really, it's much more than that. Redis goes above and beyond GET and SET, and it's time for you to learn how that can help you write faster Ruby apps. We'll explore the rest that Redis has to offer, such as sorted sets, publish/subscribe, transactions, and more with real-world use cases of each.

Nick (@qrush) is a firm believer in open source software, a proud member of Ruby community, and has been doing web development for as long as he can remember. He cut his teeth on classic ASP and ASP.NET at first, but discovered Ruby on Rails through his university and dove in head first. Nick pretends he's a bassist with famous prog rock bands when not coding.

"SOA and the Monolithic Rails App Anti-Pattern" by Chris Wyckoff

Ruby on Rails is a wonderful framework that makes creating websites simple and fun. But, perhaps because it is a pleasure to work with, Rails can be overused. A simple CRUD application can quickly become a behemoth, it's responsibilities encompassing far more functionality than one application should. In the startup world, one such app can run an entire business.

Monolithic Rails applications are an anti-pattern that hamper productivity, increase bugs, and, if you are a startup, can threaten your business. How do you fix the problem? Decompose your application into several independent, reusable services. This talk relates my experience leading a team of developers who re-architected a monolithic Rails app -- an app that effectively was the business -- into a service-oriented architecture (SOA). Using targeted code examples, it seeks to describe not only the advantages of a service-oriented approach, but also techniques for refactoring a production application into a more distributed architecture without destroying the business in the process. Finally, this talk highlights some common SOA pitfalls and describes effective ways to avoid or remedy them. Attendees will walk away with a clear demonstration of how to refactor or think about building their app with SOA in mind.

Chris (@cwyckoff) has been working with Ruby professionally since 2007 and is an active member of the Utah Ruby Users Group. He currently works for Alliance Health Networks in Salt Lake City where he attempts to wrestle their applications into submission. He really should have a blog, and his tweets should be more frequent and much more insightful.

"Service Oriented Design in Practice" by Bryan Helmkamp

Implementing a Service Oriented Design with Ruby can lower maintenance costs by increasing isolation, scalability and code reuse. That's the theory, anyway. It's true, but in practice there are lots of nitty gritty details of rolling out a service oriented design that can reduce the expected benefits -- or even leave you worse off than you started.

This talk will shed light on what it takes to successfully leverage a service oriented architecture. Emphasis will be on less discussed considerations like testing strategies, dependency and release management, operations and developer tools rather than the happy path of how to implement and consume services. Examples will be provided from our experience building tool to analyze home energy use in order to help people save on their power bills.

In the end, you'll walk away with a deeper understanding of how to weigh the pros and cons of introducing services into your architecture, and you'll have learned some techniques to make the transition smoother if you decide it's right for you.

Bryan (@brynary) is an active participant in the Ruby community as an author, speaker, and open source contributor. He helps maintain several popular libraries including Webrat, Arel, Rack-Test and Rack-Bug, and co-authored The RSpec Book and Service Oriented Design in Ruby. In 2009, he received a Ruby Hero Award for his efforts. Bryan is the CTO of Efficiency 2.0, a startup that helps people understand and reduce their energy use.

"Securing Your Rails App" by Jim Weirich and Matt Yoho

Then it starts to scan the computer and transmit bits of information every time he clicks the mouse while he's surfing. After a while, [...] we've accumulated a complete mirror image of the content of his hard drive [...]. And then it's time for the hostile takeover.

-- Lisbeth Salander in Stieg Larsson's "The Girl with the Dragon Tattoo"

Hacker dramas like the Stieg Larrson book make for good fiction, but we know that real life rarely matches drama. And with all the security features that Rails 3 has added, surely it is difficult to hack a typical Rails web site.

Right?

Wrong! Without deliberate attention to the details of security, it almost certain that your site has flaws that a knowledgeable hacker can exploit. This talk will cover the ins and outs of web security and help you build a site that is protected from the real Lisbeth Salanders of the world.

Jim Weirich (@jimweirich) is the Chief Scientist for EdgeCase LLC, a Rails development firm located in Columbus Ohio. Jim has over twenty-five 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 Yoho (@mattyoho) is a Ruby-loving web developer, all-around hepcat, and freelance karaoke whore. Apprenticeship coordinator at @EdgeCase.

"Ruby Supercomputing: Using The GPU For Massive Performance Speedup" by Preston Lee

Applications typically measure processing throughput as a function of CPU-bound algorithm performance. Most modern production systems will contain 2-16 processor cores, but highly concurrent, compute-heavy algorithms may still reach hard limits. Within recent years, vendors such as Nvidia and Apple have formalized specifications and APIs that allow every developer to run potentially 1,000s of concurrent threads using a piece of hardware already present in the machine: the GPU.

Preston Lee - @prestonism

Preston Lee (@prestonism) is a computer scientist, bioinformatician and MBA working with the not-for-profit Translational Genomic Research Institute (TGen) to architect market-friendly personalized pharmacogenomic solutions. He is also Faculty Adjunct in the College of Technology and Innovation at Arizona State University (ASU), Polytechnic Campus, in applied computer science and engineering, a veteran technological entrepreneur, and pretty cool dude.

"Modeling concurrency in Ruby and beyond" by Ilya Grigorik

The world of concurrent computation is a complicated one. We have to think about the hardware, the runtime, and even choose between half a dozen different models and primitives: fork/wait, threads, shared memory, message passing, semaphores, and transactions just to name a few. And that's only the beginning.

What's the state of the art for dealing with concurrency & parallelism in Ruby? We'll take a quick look at the available runtimes, what they offer, and their limitations. Then, we'll dive into the concurrency models and ask are threads really the best we can do to design, model, and test our software? What are the alternatives, and is Ruby the right language to tackle these problems?

Spoiler: out with the threads. Seriously.

Ilya Grigorik (@igrigorik) is the founder and CTO of PostRank, a real-time social engagement monitoring and analytics platform. He is an avid Ruby and web architecture blogger (www.igvita.com, Twitter: @igrigorik), speaker, and a community evangelist.

"Parsing Expressions in Ruby" by Michael Jackson

As a programmer one of your most useful tools is the regular expression. Like a trusty old hammer, Regexp is always ready and willing to parse your random bits of text with brutal precision and accuracy.

But there are some tasks for which regular expressions are not the best tool for the job. Parsing expressions are a relative newcomer in the field of text analysis. Libraries like Treetop and Citrus make it easy to use parsing expressions with Ruby. In this talk, we'll discuss potential applications for parsing expressions and how to use and test them in your Ruby code.

Michael (@mjijackson) is a Ruby developer living and working in the San Francisco bay area. He is an active participant in the Ruby community as a speaker, author, and contributor to several open source projects.

"The State of C Extensions: Alive and Well, so Learn to Deal" by Sam Rawlins

Ruby C Extensions have been a roller coaster ride over the last few years. While many Rubyists shy away from such non-Ruby code, its hard to imagine our Ruby ecosystem without them. Many of the most popular gems are C extensions. They are thriving today, and can play nice everywhere that Ruby plays nice! C extensions are not a drag on the community, but instead an exciting path that exposes Ruby to a greater computing landscape.

This talk aims to diffuse a lot of rumors about Ruby C extensions. They are not an obscure relic from the yesteryear; C extensions are actively being developed today, and solve real world problems for the Ruby community. C extensions do work with alternative Ruby interpreters/VMs; Rubinius, MacRuby, REE, and JRuby have full support for C extensions. Finally, C extensions _do_ work on Windows. (Side note: many Rubyists don't know that Ruby runs on Windows. It does.) The Windows RubyInstaller and RakeCompiler projects have come far, and work to provide Windows Rubyists with fully-functioning C extension gems.

We'll address rumors surrounding C extensions, and explore how C developers can find a home with the friendliest programming community out there: Rubyists!

I've (@srawlins) been coding in Ruby for only 4 years now, but completely immersing myself in it makes that time feel longer. I write Ruby programs and scripts largely in the Systems world, in both my work and my hobbying. I have put together several C extensions myself and focus on compatibility and supporting them cross-platform. I have experience in supporting C extensions on multiple platforms, and multiple VMs, both of which have given me a rich education on how C extensions work and mesh with Ruby itself.

"Using Ruby with Xbox Kinect for fun and profit" by Nate Peel

The Xbox Kinect is an exciting new way to interact with not only your Xbox 360, but your computer. In this segment Nate will show you how to use Ruby to interact with a Kinect, and gather skeleton sequences for an animation that can be imported into a 3d program for use in a game or movie.

Nate Peel (@emullet) has been developing software largely for the web with recent forays into iOS and Android development. He enjoys Ruby, reading about LISP and making software that people actually use.

"Ruby on Android" by Joe O'Brien

With the advent of JRuby many doors have been opened that were not before for Ruby. One particular place is the android platform. Using Ruby, we can easily leverage the Android platform and API's to create incredible applications. Since we are using Ruby, testing becomes a trivial exercise. I'll walk through the options we have for developing full feature-rich applications for both the Android tablet and the phone. I'll show how we can use JRuby to sidestep the complexity and configuration-heavy frameworks that are traditionally for Android development.

Joe (@objo) 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 GAP and AT&T Interactive as well as those startups still in the inception stage. Through a partnership with the Pragmatic Programmers, 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.

"Tiny Tools Tidy Tests" by Evan Light

I admit it. I like my code to read like English when possible. I am not unique in that regard. But, at least as importantly, I like my tools to be tractable; I'm unhappy if a quick trip to a gem's /lib results in confusion and frustration. If I can't understand my tools, I can't extend them. I can't truly make them *my* tools.

In this regard, it is possible to have your cake and eat it too.

Because I, and many Rubyists, are test-obsessed, this talk will focus on testing tools. We'll discuss lesser known gems (in many senses of the word) that build on Test::Unit. Yes, we will compare them to the twin juggernauts of RSpec and Cucumber. Finally, if none of the existing tools quite scratch your itch, we will discsus how you can build tools that meet your particular needs without resorting to "Swiss Army Knife" tools.

By the end of this talk, you will develop an appreciation for tiny tools, some sympathy for Test::Unit, reach enlightenment, add a schizophrenic/demonic voice to your mind constantly asking you "why are you using THAT?", save a kitten, and just maybe learn a few things to change your testing practices for the better.

Evan Light (@elight) is a test-obsessed developer. The author of several rarely useful gems, out of frustration with Cucumber, he wrote Coulda: a lightweight Given-When-Then acceptance testing DSL that sits atop Test::Unit. When he's not a talking head at conferences, he's usually working at home as a freelance developer for one or more startups, working on open source, keeping his wife and four cats company, hacking nonsensically, talking at people on the internets, and/or attempting to lose weight (or any combination of the above). What else do you do when you live 3 hours from civilization?

"Whatever Happened to Desktop Development in Ruby?" by Andy Maleh

While web development is thriving in the Ruby world with Rails, Sinatra, and other frameworks, desktop development is still not very common as a lot of developers rely on Java technologies like Eclipse or straight .NET technologies such as Windows Forms. This talk will walk attendees through some Ruby desktop development frameworks/libraries, contrasting the pros and cons of each, and mentioning what is missing that discourages developers from relying on Ruby to build desktop applications. Frameworks/libraries covered will include MacRuby, Shoes, Limelight, and Glimmer.

Annas (Andy) Maleh (@AndyMaleh) is a senior consultant at Obtiva, a consulting firm based in Chicago that embraces agile practices and software craftsmanship. He has had extensive experience working with agile XP teams to develop enterprise solutions on both the desktop and the web. Mr. Maleh has presented on software development and best practices at numerous conferences, including the Agile conference, GLSEC, EclipseCon, and RubyConf. He is also the founder and lead developer of Glimmer, an open source project for desktop development in Ruby. Mr. Maleh holds an M.S. in Software Engineering from DePaul University and a B.S. in Computer Science from McGill University.

"Essentials for Tech Startups" by Devlin Daley

Many in our community want to blaze their own trails with their own company. We'll cover the essentials for software startups: how to tell if you've got a viable idea, funding options, do's and dont's, business models and how to get things off the ground. These essentials apply to founders as well as those thinking of working for a startup.

Devlin (@devlindaley) is the co-founder of Instructure, a technology startup that is helping to fix the world of education.

"Ruby: The Challenges Ahead" by Yehuda Katz

Through Rails, Ruby has been thrust upon an adoring public. Over the past several years, Ruby has matured, with two world-class alternative implementation, a library for just about anything, and a community that values software engineering.

There are still some challenges ahead, most notably concurrency, library maturity and language development itself.

Yehuda Katz (@wycats) is a member of the SproutCore, Ruby on Rails and jQuery Core Teams; during the daytime, he works as a framework architect at Strobe. Yehuda is the co-author of the best-selling jQuery in Action, the upcoming Rails 3 in Action, and is a contributor to Ruby in Practice. He spends most of his time hacking on open source - his main projects, along with others, like Rubinius, Thor, Handlebars and Moneta - or traveling the world doing evangelism work. He blogs at yehudakatz.com and can be found on Twitter as @wycats.

MountainWest RubyConf 2011

Gold Sponsor

Obtiva

About

MWRC is a two-day single-track conference for just $100. Come rub elbows with some of the smartest Rubyists in the world.

Register Now!

March 17-18, 2011
Salt Lake City Public Library
210 E 400 S
Salt Lake City, UT 84111
[map]

Silver Sponsors

Ruby Threads Alliance Health AT&T Interactive Lead Media Partners

Hackfest Sponsor

Engine Yard

Bronze Sponsors

Tropo Stackable Quick Left One On One Marketing Pivotal Labs ELC Technologies

Sticker Sponsor

Sticker Mule

Photo Sponsor

Smashing Shots

Previous Conferences

MountainWest RubyConf is brought to you by MountainWest Ruby, LLC. We are committed to promoting and supporting the Ruby community.