{"cached_content_rating":"3.47","cached_delivery_rating":"3.52","cached_rating":"3.5","created_at":"2011-04-19T14:52:41Z","creator_id":2,"end_date":"2011-04-22T00:00:00Z","event_url":"http://reddirtrubyconf.com/","hashtag":"rdrc2","id":874,"large_logo_content_type":"image/png","large_logo_file_name":"red-dirt-ruby.png","large_logo_file_size":9788,"large_logo_processing":false,"large_logo_updated_at":"2011-04-20T17:49:53Z","location":"Oklahoma City, OK","series_id":null,"start_date":"2011-04-21T00:00:00Z","title":"Red Dirt RubyConf 2011","updated_at":"2012-04-19T07:32:41Z","rating":"3.5","logo_url":"http://uploads.speakerrate.com/logos/874/original/red-dirt-ruby-thm.png?1303321793","large_logo_url":"http://uploads.speakerrate.com/large_logos/874/original/red-dirt-ruby.png?1303321793","date_range":"April 21-22, 2011","description_text":"We are pleased to announce that the second annual Red Dirt RubyConf will be held April 21st – 22nd, 2011 in Oklahoma City, Oklahoma.","talks":[{"cached_content_rating":"1.9","cached_delivery_rating":"1.8","cached_rating":"1.85","created_at":"2011-04-19T14:54:54Z","event_id":874,"featured":false,"id":7277,"info":{"text":"wayneeseguin on Rubinius"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/wayneeseguin-on-rubinius","timezone":null,"title":"wayneeseguin on Rubinius","updated_at":"2011-04-30T14:32:50Z","when":"2011-04-21T09:45:00Z","rating":"1.85"},{"cached_content_rating":"2.28","cached_delivery_rating":"2.2","cached_rating":"2.24","created_at":"2011-04-19T14:54:54Z","event_id":874,"featured":false,"id":7278,"info":{"text":"Katy Perry and Trend Detection Using JRuby"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/katy-perry-and-trend-detection-using-jruby","timezone":null,"title":"Katy Perry and Trend Detection Using JRuby","updated_at":"2011-04-30T14:33:26Z","when":"2011-04-21T09:45:00Z","rating":"2.24"},{"cached_content_rating":"3.8","cached_delivery_rating":"4.03","cached_rating":"3.91","created_at":"2011-04-19T14:54:55Z","event_id":874,"featured":false,"id":7279,"info":{"text":"GUI Programming with MacRuby"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/gui-programming-with-macruby","timezone":null,"title":"GUI Programming with MacRuby","updated_at":"2011-04-24T16:32:10Z","when":"2011-04-21T09:45:00Z","rating":"3.91"},{"cached_content_rating":"3.0","cached_delivery_rating":"3.1","cached_rating":"3.05","created_at":"2011-04-19T14:54:55Z","event_id":874,"featured":false,"id":7280,"info":{"text":"Core Data with MacRuby"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/core-data-with-macruby","timezone":null,"title":"Core Data with MacRuby","updated_at":"2011-04-24T04:04:51Z","when":"2011-04-21T09:45:00Z","rating":"3.05"},{"cached_content_rating":"4.2","cached_delivery_rating":"3.94","cached_rating":"4.07","created_at":"2011-04-19T14:54:55Z","event_id":874,"featured":false,"id":7281,"info":{"text":"OmniAuth From The Ground Up"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/omniauth-from-the-ground-up","timezone":null,"title":"OmniAuth From The Ground Up","updated_at":"2011-04-24T04:05:33Z","when":"2011-04-21T11:30:00Z","rating":"4.07"},{"cached_content_rating":"2.75","cached_delivery_rating":"2.7","cached_rating":"2.73","created_at":"2011-04-19T14:54:55Z","event_id":874,"featured":false,"id":7282,"info":{"text":"Formtastic: Lose the zero and get with the hero!"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/formtastic-lose-the-zero-and-get-with-the-hero","timezone":null,"title":"Formtastic: Lose the zero and get with the hero!","updated_at":"2011-04-24T04:05:43Z","when":"2011-04-21T11:30:00Z","rating":"2.73"},{"cached_content_rating":"3.95","cached_delivery_rating":"3.7","cached_rating":"3.83","created_at":"2011-04-19T14:54:55Z","event_id":874,"featured":false,"id":7283,"info":{"text":"Reimagining Rails Messaging"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/reimagining-rails-messaging","timezone":null,"title":"Reimagining Rails Messaging","updated_at":"2011-04-24T04:06:09Z","when":"2011-04-21T11:30:00Z","rating":"3.83"},{"cached_content_rating":"3.58","cached_delivery_rating":"4.18","cached_rating":"3.88","created_at":"2011-04-19T14:54:56Z","event_id":874,"featured":false,"id":7284,"info":{"text":"Haml and Compass: Pure, Uncut Awesome"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/haml-and-compass-pure-uncut-awesome","timezone":null,"title":"Haml and Compass: Pure, Uncut Awesome","updated_at":"2011-08-17T20:35:27Z","when":"2011-04-21T11:30:00Z","rating":"3.88"},{"cached_content_rating":"3.85","cached_delivery_rating":"4.35","cached_rating":"4.1","created_at":"2011-04-19T14:54:56Z","event_id":874,"featured":true,"id":7285,"info":{"text":"Mixing a tasty persistence cocktail"},"is_spam":false,"location":"","room":"","series_id":null,"slides_url":"","slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/mixing-a-tasty-persistence-cocktail","timezone":"","title":"Mixing a tasty persistence cocktail","updated_at":"2011-04-24T04:07:01Z","when":"2011-04-21T14:00:00Z","rating":"4.1"},{"cached_content_rating":"3.98","cached_delivery_rating":"4.68","cached_rating":"4.33","created_at":"2011-04-19T14:54:56Z","event_id":874,"featured":false,"id":7286,"info":{"text":"Cheating on ActiveRecord with DataMapper"},"is_spam":false,"location":"","room":"","series_id":null,"slides_url":"http://avdi.org/talks/datamapper-rdrc-2011/","slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/cheating-on-activerecord-with-datamapper","timezone":null,"title":"Cheating on ActiveRecord with DataMapper","updated_at":"2011-05-04T16:48:37Z","when":"2011-04-21T14:00:00Z","rating":"4.33"},{"cached_content_rating":"4.72","cached_delivery_rating":"5.0","cached_rating":"4.86","created_at":"2011-04-19T14:54:57Z","event_id":874,"featured":false,"id":7287,"info":{"text":"\"Fat Models, Skinny Controllers\" they scream. Pushing your logic down \r\nto the model layer is a key step to improve testability, \r\nmaintainability, and code quality. But many developers now have \"junk \r\ndrawer\" models that don't realize these goals. Having a fat model \r\nisn't enough!\r\n\r\nIn this session we'll explore techniques for improving your models."},"is_spam":false,"location":"","room":"","series_id":null,"slides_url":"http://dl.dropbox.com/u/69001/Fat%20Models%20Aren%27t%20Enough%20-%20RedDirt.pdf","slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/fat-models-arent-enough","timezone":null,"title":"Fat Models Aren't Enough","updated_at":"2011-04-24T04:12:51Z","when":"2011-04-21T14:00:00Z","rating":"4.86"},{"cached_content_rating":"3.73","cached_delivery_rating":"3.5","cached_rating":"3.62","created_at":"2011-04-19T14:54:57Z","event_id":874,"featured":false,"id":7288,"info":{"text":"Never sweep your cache again!"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/never-sweep-your-cache-again","timezone":null,"title":"Never sweep your cache again!","updated_at":"2011-04-24T04:07:37Z","when":"2011-04-21T14:00:00Z","rating":"3.62"},{"cached_content_rating":"4.33","cached_delivery_rating":"4.2","cached_rating":"4.26","created_at":"2011-04-19T14:54:57Z","event_id":874,"featured":false,"id":7289,"info":{"text":"\"CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.\" -- Jeremy Ashkenas (author of CoffeeScript)\r\n\r\nDuring a recent greenfield project, I found myself riddled with a burden. Even though I had written JavaScript for years, this time, the JavaScript syntax itself was getting in the way. CoffeeScript's elegant syntax relieved that burden. I quickly fell so in love with CoffeeScript that I have since sworn off writing raw JavaScript directly ever again. The goal of this talk is to convince the audience to try CoffeeScript in hopes that they too will find it as valuable as I did."},"is_spam":false,"location":"","room":"","series_id":null,"slides_url":"","slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/introduction-to-coffeescript","timezone":null,"title":"Introduction to CoffeeScript","updated_at":"2011-04-24T04:08:33Z","when":"2011-04-21T16:00:00Z","rating":"4.26"},{"cached_content_rating":"3.9","cached_delivery_rating":"3.5","cached_rating":"3.7","created_at":"2011-04-19T14:54:57Z","event_id":874,"featured":false,"id":7290,"info":{"text":"Write native Android apps with Javascript and Titanium Mobile"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/write-native-android-apps-with-javascript-and-titanium-mobile","timezone":null,"title":"Write native Android apps with Javascript and Titanium Mobile","updated_at":"2011-04-22T15:21:10Z","when":"2011-04-21T16:00:00Z","rating":"3.7"},{"cached_content_rating":"3.53","cached_delivery_rating":"3.57","cached_rating":"3.55","created_at":"2011-04-19T14:54:57Z","event_id":874,"featured":false,"id":7291,"info":{"text":"Using BDD in JavaScript from Ruby"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/using-bdd-in-javascript-from-ruby","timezone":null,"title":"Using BDD in JavaScript from Ruby","updated_at":"2011-04-24T04:09:24Z","when":"2011-04-21T16:00:00Z","rating":"3.55"},{"cached_content_rating":"4.15","cached_delivery_rating":"4.1","cached_rating":"4.13","created_at":"2011-04-19T14:54:58Z","event_id":874,"featured":false,"id":7292,"info":{"text":"Ruby/JavaScript Synergy on the Server"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/rubyjavascript-synergy-on-the-server","timezone":null,"title":"Ruby/JavaScript Synergy on the Server","updated_at":"2011-04-22T15:22:17Z","when":"2011-04-21T16:00:00Z","rating":"4.13"},{"cached_content_rating":"2.5","cached_delivery_rating":"2.5","cached_rating":"2.5","created_at":"2011-04-19T14:54:58Z","event_id":874,"featured":false,"id":7293,"info":{"text":"module Ruby; extend self; end"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/module-ruby-extend-self-end","timezone":null,"title":"module Ruby; extend self; end","updated_at":"2011-04-30T15:10:52Z","when":"2011-04-22T09:00:00Z","rating":"2.5"},{"cached_content_rating":"4.9","cached_delivery_rating":"5.0","cached_rating":"4.95","created_at":"2011-04-19T14:54:58Z","event_id":874,"featured":false,"id":7294,"info":{"text":"The Worker Pattern:  Scaling Horizontally"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/the-worker-pattern-scaling-horizontally","timezone":null,"title":"The Worker Pattern:  Scaling Horizontally","updated_at":"2011-04-30T15:08:57Z","when":"2011-04-22T09:00:00Z","rating":"4.95"},{"cached_content_rating":"1.5","cached_delivery_rating":"1.5","cached_rating":"1.5","created_at":"2011-04-19T14:54:58Z","event_id":874,"featured":false,"id":7295,"info":{"text":"From Zero-to-App with Titanium and CoffeeScript"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/from-zero-to-app-with-titanium-and-coffeescript","timezone":null,"title":"From Zero-to-App with Titanium and CoffeeScript","updated_at":"2011-04-30T15:10:36Z","when":"2011-04-22T09:00:00Z","rating":"1.5"},{"cached_content_rating":"1.0","cached_delivery_rating":"1.0","cached_rating":"1.0","created_at":"2011-04-19T14:54:58Z","event_id":874,"featured":false,"id":7296,"info":{"text":"Ruby + Cloud = Fog"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/ruby-cloud-fog","timezone":null,"title":"Ruby + Cloud = Fog","updated_at":"2011-04-30T15:09:24Z","when":"2011-04-22T13:00:00Z","rating":"1.0"},{"cached_content_rating":null,"cached_delivery_rating":null,"cached_rating":null,"created_at":"2011-04-19T14:54:59Z","event_id":874,"featured":false,"id":7297,"info":{"text":"Optimizing Rails 3 Applications"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/optimizing-rails-3-applications","timezone":null,"title":"Optimizing Rails 3 Applications","updated_at":"2011-04-20T13:37:12Z","when":"2011-04-22T13:00:00Z","rating":null},{"cached_content_rating":"1.5","cached_delivery_rating":"1.5","cached_rating":"1.5","created_at":"2011-04-19T14:54:59Z","event_id":874,"featured":false,"id":7298,"info":{"text":"JRuby for the Ruby Developer"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/jruby-for-the-ruby-developer","timezone":null,"title":"JRuby for the Ruby Developer","updated_at":"2011-04-30T15:10:11Z","when":"2011-04-22T13:00:00Z","rating":"1.5"},{"cached_content_rating":"4.27","cached_delivery_rating":"4.17","cached_rating":"4.22","created_at":"2011-04-19T14:54:59Z","event_id":874,"featured":false,"id":7299,"info":{"text":"Cultivating an open-source community"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/cultivating-an-open-source-community","timezone":null,"title":"Cultivating an open-source community","updated_at":"2011-04-27T10:43:42Z","when":"2011-04-22T17:00:00Z","rating":"4.22"},{"cached_content_rating":"3.5","cached_delivery_rating":"3.25","cached_rating":"3.38","created_at":"2011-04-19T14:55:00Z","event_id":874,"featured":false,"id":7300,"info":{"text":"Redcar: Hacking your editor in Ruby"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/redcar-hacking-your-editor-in-ruby","timezone":null,"title":"Redcar: Hacking your editor in Ruby","updated_at":"2011-04-30T15:12:13Z","when":"2011-04-22T18:30:00Z","rating":"3.38"},{"cached_content_rating":"4.45","cached_delivery_rating":"4.25","cached_rating":"4.35","created_at":"2011-04-19T14:55:00Z","event_id":874,"featured":true,"id":7301,"info":{"text":"Rubinius is a curious implementation of the Ruby programming language. Why curious? Well, one of the loved features of Ruby is how much it empowers the developer to creatively fashion elegant solutions to difficult problems. In other words, Ruby begs for your participation in crafting a solution rather than forcing you down a rigid path preordained by an all-knowing benevolent (or not) dictator. That freedom to participate inspires *love* for the language.\r\n\r\nRubinius, too, invites participation. Much of it is written in Ruby itself, lowering the bar to patching or experimenting with the implementation itself! The project early adopted the Git SCM, making participation and collaboration a joy rather than a chore. However, participation is not limited to the ease of making a Git patch. Rubinius has an open commit bit policy: get a patch accepted and you get mainline commit privileges. The project draws on decades of, as well as very recent, academic research about dynamic languages and compilers, yet the vast majority of contributors do not have PhD degrees. ..."},"is_spam":false,"location":"","room":"","series_id":null,"slides_url":"","slideshare_key":"","talk_url":"http://reddirtrubyconf.com/presentations/the-joy-of-rubinius-the-agony-of-rubyspec","timezone":"","title":"The Joy of Rubinius, the Agony of RubySpec","updated_at":"2011-04-24T17:49:19Z","when":"2011-04-22T18:30:00Z","rating":"4.35"},{"cached_content_rating":"3.6","cached_delivery_rating":"3.5","cached_rating":"3.55","created_at":"2011-04-19T14:55:00Z","event_id":874,"featured":false,"id":7302,"info":{"text":"2011: A Gemcutter Odyssey"},"is_spam":false,"location":null,"room":null,"series_id":null,"slides_url":null,"slideshare_key":null,"talk_url":"http://reddirtrubyconf.com/presentations/2011-a-gemcutter-odyssey","timezone":null,"title":"2011: A Gemcutter Odyssey","updated_at":"2011-04-30T15:11:47Z","when":"2011-04-22T18:30:00Z","rating":"3.55"}]}