Discover how is possible to use parallel execution to batch process large amount of data, learn how to use queues to distribute workload and coordinate processes, increase the throughput on system with high latency. Have fun with EventMachine, AMQP, RabbitMQ and get rid of that every 5mins cronjob
You know Rails 2.x is fast, but your application is still slow. This session goes beyond the basics and gets into advanced areas such as optimizing complex has_many/belongs_to relationships, template rendering, browser performance, database use. The session covers performance-oriented development processes and tools. Special topic: optimizing for deployment on dedicated, VPS and shared hosting.
Erector is a pure ruby Builder-like view framework that you can use instead of ERB, inspired by Markaby. In Erector all views are objects, not template files, which allows the full power of object-oriented programming (inheritance, modular decomposition, encapsulation) in views. Among other benefits, Erector allows for inherited layouts and auto-closing tags.
The benefits of Rack support in Rails have become increasingly obvious; Rails Metal and integrating multiple Rack applications have made possible architectures that were impractical before, and some long-held opinions are ripe for change. In this session, we'll see how to set up this integration and explore real examples of how it can be used—including the rehabilitation of page caching.
Sometimes as developers it can be a little too easy to lose sight of
the big picture sometimes, we can get carried away with following the
conventional wisdom without thinking about why that wisdom became
conventional. Several great ideas and techniques can become huge
time-sinks or distractions if we're not careful.
A high-performance proxy server is less than a hundred lines of Ruby code and it is an indispensable tool for anyone who knows how to use it. In this talk we'll dissect three real-world examples: live A/B performance testing, extending functionality of existing applications, and real-time traffic analysis and performance monitoring. We'll implement each example using Ruby EventMachine framework.
Automated code quality tools are just starting to become popular in the Ruby and Rails world, even though they've been around a long time in the Java and .NET communities. Learn what the tools are, and how to use them to improve the consistency, testability and overall quality of your Ruby and Rails applications.
This talk explores what makes Test Driven Development really work by showing what happens where the process breaks down, focusing on rapid feedback as the key to asuccessful test-driven process. It also creates a vocabulary for talking about malformed test processes.
Obie reveals secrets of survival in the Rails consultancy and contracting business, based on his real-life experience as founder and CEO of Hashrocket.
Has the corporate gig or client work sucked all the fun out of coding? Looking to build your freelancing portfolio? Find a cause you care about build something! Micro apps can have a big impact and build your career in the process. We'll share tips we learned in building TweetCongress.org, an effort to promote government transparency.
Let's build a mini-Google and compute the PageRank score for a 1-million page web – that's a non-trivial challenge! High performance computing may not be Ruby's strength, but we will investigate the available gems, tools, and algorithms which make this a tractable problem (spoiler: it's possible).
A team of Rails developers, designers, and an enterprising media and licensing company embarked on a challenge: How to put every video in the 4Kids Entertainment content library online, streaming free to millions of kids (and children-at-heart). This session will review the challenges and approach of the development of the www.4kidstv.com website, that streams over 1 million videos per month.
Every participant in this tutorial will get to use their own cell phone to call into code running on their laptop! Jay Phillips will be interactively showing how to build voice-enabled web applications using the open-source Adhearsion telephony development framework. All you need is Ruby and RubyGems pre-installed.
The Facebook game PackRat uses Ruby to handle over 12 million
page views a day. This session will hightlite some tricks and
techniques used to build and grow a profitable app. Topics include:
the promise and perils of relying on AWS, how scaling the database
tier nearly killed us, advanced caching strategies, and when The Big
Rewrite might actually be a good idea.
Sometimes the best solution is a standalone application that you can give to a client or customer to just drop on a machine and run. This talk will cover the Crate project and how it may be used to package your application, be it commandline, server, or web application.
Meet some of the women from the Rails community. Hear about their
experiences and what they have to say about how to bring more female
programmers into our already amazing community, as well as how to get
them more involved and active in it once they're here.
Used appropriately, mock objects are a powerful design tool that can lead to highly maintainable applications. Used in the wrong context, they can lead to painfully brittle test suites. Attendees will leave this session with more insight into mock objects, and a better handle on when it makes sense to use them.
Music and software a lot in common. We will look at five patterns from the world of music that are relevant to programming, and talk about how music history and theory can help us become better software developers.
An overview of important new features and changes in Ruby 1.9, including some compatibility issues to watch out for when you're migrating your 1.8 code.
Facebook offers a seductive platform for accessing the most intimate social data of 150 million users. Up close, though, this beauty is horribly marred by some disgusting boils: proprietary markup, a disregard for standards, shifting APIs, and an insane dev environment. I'll present strategies for Facebook integration without causing your app, your process, or yourself any unsightly scarring.
This panel will present views on how to improve civic life, protect democracy and hold politicians accountable using Web 2.0 technology. The panelists will lay out the massive need for programmers to deploy their skills in reimagining government in a way that promotes transparency, collaboration and public participation.
The Guitar Hero® community website (http://community.guitarhero.com) is one of the largest production RoR sites on the Internet with 600,000+ registered users. We will cover the process, programming, and infrastructure for the Guitar Hero® community site. You'll see how we've been able to integrate data from three largely different Guitar Hero® titles in a consumable fashion on the web.
HTTP's basic caching mechanisms have been around for almost a decade and still their advantages and limitations are still not well understood. In this talk, we provide a clear and simple explanation of how HTTP caching works, put forth a system for classifying response cacheability, and argue that HTTP caching should be a fundamental aspect of resource design.
What's next after reading 'Extreme Programming Explained'? Are you suddenly now an Agile Developer? Likely not - you don't become Agile overnight. It's more of a journey to change how you think and work. Learn by example with tips and tricks from someone who's made that journey and is happier and more productive because of it.
This talk explores why fixtures are mostly bad, what can be done to “fix” the unmanageable miscreant that fixtures have evolved into, and cross-examines the new breed of data generators.
RubyAMF is a Rails plug-in that allows easy, fast integration between Flex apps and Rails using Adobe’s open format for transferring typed data to/from Flash apps. We’ll walk through building a Flex application powered by a Rails back-end service. You’ll see how to work with translation to native objects in both directions, working with hierarchical data and more advanced configuration options.
With the influx of social networking and viral marketing web sites, SMS messaging has become an important part of many web applications. From choosing a gateway provider to parsing messages to sending bulk SMS messages, this session details how to send and receive text messages from your Rails application.
Webhooks and Protocols (like Rack) are dumb. Like a socket, they work with anything that fits. We'll look at a whole class of problems that can be solved creatively with similar solutions. We will also look at some popular and successful real-world implementations.
Come see how well IronRuby runs Rails.
For all its hype, cloud computing really has introduced a potent new scaling mechanism for Rails apps, enabling your architecture to be as nimble and intelligent as your code itself. Yet there are hidden challenges and dangers for the would be cloud-jumper. In this case study, instead of hype, you'll hear the story of OtherInbox, a Rails app that scaled rapidly and cheaply (but not painlessly).
JRuby developers can now use the Rails or Merb frameworks to deploy applications to
Google App Engine. We will provide an overview of App Engine, show few demos,
provide some insight into using DataStore.
Since last year, JRuby usage has grown tremendously. We've also released more than a dozen releases, fixed hundreds of bugs, and committed thousands of revisions. In this session we'll update you on JRuby performance in real applications, show you what people are using it for like GUIs and games, and demonstrate how JRuby is improving the Ruby and Rails worlds.
Short adhoc presentations from the audience.
Workflow is a broad concept, and there are many different approaches to it. Our options in Ruby, especially declarative programming, make workflow applications fun to write, as well as very customizable without building huge "application engines". Come see how.
Cloud computing can help lift the burden of computationally heavy tasks such as encoding, indexing or scientific analysis. This talk aims to introduce architectures for processing on elastic infrastructures, and how Ruby and Rails make it super simple to work at the petabyte scale, and beyond. We'll illustrate with a real world example, building a full human genome in the cloud, live!
Agora Games has spent a significant amount of time developing the virtualized infrastructure behind Call of Duty: World at War, centering around a Rails stack that tracks the statistics for millions of players. In this talk, we'll describe how we built this architecture, how it varies from a more traditional Rails infrastructure, and the lessons we've learned doing so.
Cucumber is a novel tool for Behaviour Driven Development. While early BDD tools like RSpec and Shoulda are geared towards programmers, classes and objects, Cucumber nicely fills the communication gap between customers, programmers and testers. This session will change how you approach requirements and testing of Rails applications.
Rails is in the house? Learn how to leverage the power of ruby and rails to create attractive home automation and energy saving solutions for your entire house.
Want to use Rails but are stuck with a nasty existing database? No problem. This session will show you how we managed to defeat an ugly beast of a system. You'll come away armed with some strategies you can employ to slay even the ugliest schemas.
While others have been debating whether Rails can scale to enterprise levels, we've been demonstrating it. This session shows how to scale Rails development to the heights.
How Learning Ruby Can Make You a Happier Rails Developer. Basic Ruby practices and idioms that will put the fun back in your relationship!
Rails 2.3 introduces a hot new feature: Rails Metal. Metal allows you to build Rack endpoints for selected URLs in your app and get a 2x - 3x performance boost.
Even better: you can use Sinatra, the microframework that everyone's talking about, from Rails Metal. Capture the speed and elegance of Sinatra from within your existing Rails app!
Rails3 is the result of the Merb and Rails merger. While the usual ActiveRecord/ERB/Prototype/Test::Unit full stack is still the default, Rails3 now let you step off of the golden path.
Learn more about alternative stack components, when and why to use them by looking at concrete examples.
In this talk the Rails Envy guys will attempt to sum up a year of Rails innovation in 45 minutes, covering 20 of the most useful, ingenious, and innovative new developments.
In this talk we will explore the state of the art deployment options for large scale ruby web apps. Ruby web apps become ecosystems of many moving parts over time as they scale. We will outline a scalable architecture for configuring, building, maintaining and scaling the system as a cohesive whole. We will explore technologies like rabbitmq, chef, nanite and EY's new cloud hosting platform.
5 years after the initial release of Ruby on Rails, multiple large and
successful websites are powered by this innovative and still relatively
young framework. But word is still on the street that Ruby on Rails does
not scale. Is this true?
Much of the Ruby and Rails community is now using Git, but there are a number of fun things that are a bit more difficult to get the hang of that are incredibly helpful to know when using Git. This session will go over some advanced Git usage for the casual or intermediate Git user.
The Rails Rumble is a 48-hour innovation competition in which teams of up to four developers embrace their environmental constraints to create a number of compelling microapps with Ruby and Rails. In this panel we'll talk to a number of Rumble participants and discover the tips, tricks, and techniques they used to successfully launch innovative web properties in an extremely short time frame.
A no-nonsense guide to making the most of the newly-integrated "engines" functionality in Rails 2.3, from the guy who wrote the engines plugin itself.
The way we deploy ruby apps is changing. This is a a rare opportunity to discuss issues and ideas in real time, directly with the key people from each part of the stack, all in one room.
This is truly a killer line-up: Marc-André Cournoyer (Thin), Christian Neukirchen (Rack), Ryan Tomayko (Rack::Cache, Sinatra), Blake Mizerany (Sinatra), Adam Wiggins and James Lindenbaum (Heroku)
Gilt Groupe is a fascinating e-commerce business, where luxury items are sold at a discount in "flash" sales that mimic the New York sample sale experience. In this model, passionate buyers rush to grab items in a time-sensitive shopping cart, choose what they want, and check out within seconds. We discuss how to handle flash-floods of shopping cart updates via sharding in Rails.
The four full time GitHub employees talk about open source, community, building a business, and the future of social coding.
One of the hottest new features in Rails 3 is the ability to embed a Rails application in another Rails application. This allows the development of components that range from user authentication to a fully featured forum. In this talk, Yehuda and Carl will give an in-depth tutorial by building a CMS, creating a gem out of it, and integrating it into another app.
Twitter is a bustling universe full of opportunities to create crazy, useful and crazy useful applications. Get a kick start to creating Twitter applications in Rails using TwitterAuth, the Twitter authentication stack for Rails.
Ryan will explain the key concepts you should understand to design and implement UI for your apps. He'll cover screen-level details like language and visual techniques as well as implementation issues like modeling, markup, and view code.
How can you make sure that your beautiful Rails code doesn't degrade over time as more people join a project and deadlines loom? Well, there are tools to measure test coverage, code complexity, churn, bad practices, duplication, and code smell. And all of these various open source projects have been mashed together in metric_fu - a Ruby gem that makes measuring the quality of your code easy.
Webrat, a Ruby DSL for interacting with Web applications, helps you write expressive, maintainable acceptance tests while sidestepping the issues traditionally associated with in-browser approaches like Selenium and Watir. We'll look at how you can use Webrat to develop a robust acceptance test suite to ensure your app stays working as you refactor mercilessly.
A walkthrough of how common and popular Ruby features are actually implemented, with a focus on how they work, why they behave the way they do, and why they do or do not perfom well. If you'd like to better understand What Makes Ruby Go, this is the talk for you.
Rails has excellent caching strategies for the server side but did you know typically 80% of a responses time is on network communication? This will be an exploration of all the dirty details of caching your app's personal bits in the client browser. We'll look at what Rails provides and what you can additionally do to reduce response times and load on your application with little effort.
Rails has been out for a few years now. We're past the blogs, past the first couple rounds of new apps, and now have legacy systems to maintain. What strategies can we use for improving these systems? What specific challenges are there for Rails apps, and how does Ruby allow us to meet them in unique ways? We'll look at all of this and more, in "Working effectively with legacy Rails code"
Many words of programming wisdom have been written to promote the idea of low coupling between modules. "Prefer delegation over inheritance", "The Law of Demeter" are examples of these words of advice. To understand these issues, we will look at the concept of "connascence" how it applies to creating modular Ruby programs.