We've all found ourselves in situations where we had to evaluate very quickly what the quality was of a Rails codebase. In some cases it's to evaluate an acquisition, in other cases to put an estimate on maintenance and evolution of an existing application.
My talk will describe how to smell out,in one day, hour by hour, whether there are any pain points,and where they are.
Search is a common feature on every website, but there isn't a single common solution, nor are there easy, comparable datapoints between the options. As a Rails developer, how do you choose the right solution? This talk will review Solr/Lucene, Sphinx and Postgres' new search features, then discuss which solutions are appropriate for which problems.
In this presentation we'll share our insights into how to develop agile, robust, industrial strength code reliably and repeatably, through the application of our own flavor of XP-style agile development. We've been doing Agile for over 10 years, and Rails for over 4. We've delivered over 80 Rails apps to customers, and have learned a thing or two about how to do that sustainably and well.
Web site metrics are a must have as they provide valuable business insight. This discussion describes how to best leverage 3rd party tools such as google, and when, how, and what to track within your own rails application.
2 large rails implementations are presented as case studies:
* Tracking over 2.5 mil hits/hr via nginx logs
* Leveraging Mongodb in the clouds to store iphone request info
Discuss the implementation of a distributed solution for authentication and authorization when you need to break things up into logical RESTful services and yet have a central way to manage what your users can do. This is a more technical presentation of what I showed in the Keynote for the LA RubyConf.
SQL databases are awesome at certain problems. But most Rails apps encounter data challenges that make traditional databases look seriously puny. So...is SQL over? In this talk, we'll dig into the guts of the relational model, look at the problems SQL doesn't solve well, and - crucially - understand why. Then we'll answer the million-dollar question: is NoSQL the only alternative?
Ever wanted to build an API with Rails? Feel daunted? Google doesn't help much? Come talk to the developers of some of the biggest APIs built in Rails. Developers from Twitter, Github, ThoughtBot, NY Times, and 37signals will talk about the decisions and challenges they have faced in building their APIs. Topics will include; Authentication, Formats, Scaling, Security, Versioning, & Communication.
Why Bundler exists, what it can do, and how to manage your project's dependencies with it, whether your project is a pure ruby library, a tiny Sinatra app, or a giant Rails app.
In order to ensure continuous application availability without dealing with antiquated monitoring tools a Rails developer should be able to assert the correct behavior of a production application from the outside in using familiar tools to protect revenue.
Views are still the wild west of the web application area. A sea of DIV after DIV with tables tossed in for non-tabular data creates a sea of messy code that hurts the product both in performance and bandwidth. We'll look at the common pitfalls of view code, how to refactor that code into lean, semantic HTML, CSS and presnters that is not only pretty, but also correct and proper.
We would like to announce DataMapper 1.0 here at Railsconf 2010. DataMapper 1.0 marks an important release that has seen a lot of development over the last two years. DataMapper is storage engine agnostic and also allows for mixing for example SQL and No-SQL engines, using the best tools for the job.
Over the last 5 years, Rails apps have increased in size, complexity, and value provided to businesses. A few years back all we had to do was customize some generated code and sprinkle on a bit of AJAX, and the rapid pace of development meant that we could launch products and add features way faster than our competitors could.
"Don't repeat yourself." "Don't reinvent the wheel." Phrases like this are thrown around like crazy in the programming world, but one is missing. Repeat others. The best way to learn is to imitate those that are better than us.
EventMachine is an implementation of the Reactor pattern for Ruby, similar to Python's Twisted. It provides event-driven I/O for MRI, YARV, Rubinius and JRuby, allowing a simple Ruby application to serve thousands of network connections concurrently.
This talk will cover the basics of EventMachine, with an emphasis on the common stumbling blocks encountered by new users
In this session I'll share my experience, tips and tricks I've learned, and stories I've come across while building Rails apps for clients and myself.
This talk shares the experience, process and best practices of splitting a single monolithic rails application into many smaller independently-developable but integrated system of applications. The result is lower development time, greater stability and scalability and higher developer productivity.
Everything in Ruby is an object.. but what is a ruby object? What does it look like? Where does it live? How is it born and when does it die?
This talk will cover the implementation of the object heap and garbage collector in Ruby 1.8, with a focus on tools and techniques to understand memory usage, find reference leaks, and improve the performance of your ruby applications.
Rails 3 will bring an overhaul to the framework that will make it one of the most modular and extensible development platforms in the world, all while retaining it's productive magic. For people with extremely complex applications or requirements, learn how you can roll out your own Rails-based framework to provide a DRY and clean dev experience for your team or others who share your logic.
It is inevitable that at some point in your career as a developer you will inherit code developed by others. Trying to understand code developed by someone else can often lead to stress and frustration, but it doesn't have to. This talk will provide you with tools and techniques to help understand and begin working with code from other developers quickly and easily.
This talk will provide you with an overview of cassandra itself and cover the
differences between ActiveRecord and CassandraObject. It'll also
provide some lessons learned from working with ActiveModel for people
who are interested in creating their own custom object mappers.
Itch scratching is at the core of any hacker.
But how does it apply in the real world? This talk goes over the steps I took from scratching an itch by patching the TMail library, taking over maintenance of it, upgrading ActionMailer 2.x, writing the Mail library and then finally helping rewrite the ActionMailer API for Rails 3.0
I'll go over the tools I used, and how it all worked.
Learn why Gemcutter won the great RubyGem hosting battle of 2009 and about the challenges the site faces in 2010 and beyond. Discover how instant code deployment with Gemcutter is changing the way not only Rubyists develop and release software, but other open source communities as well.
You're a developer. You write code. But your users don't see your
code. They only see the user interface. We're going to have a
conversation about how to think through your product's user interface.
We'll focus on a few analytical techniques you can use to analyze your
user interface and to communicate with a designer.
Short adhoc presentations from the audience.
Mapping CRUD operations to friendly URLs is hardly the end of the story around Restful. We came a long way since Roy Fielding seminal dissertation on REST. Inspired by Jim Webber, Savas Parastatidis and Ian Robinson upcoming book on REST, Hypermedia and HATEOAS (Hypermedia as the Engine of Application State), we came down to the "Restfulie" gem.
There are a lot of great code quality and analysis tools out there just begging to sink their claws into your app. Learn how to plug them all in and harness their power to not only tell you how your doing, but also to fail your builds in new and exciting ways.
Rails 3 is full of great new features for plugin authors: a stable API, more modularity, and the ability to hook into its generators. To add these features, though, Rails had to change a lot, breaking compatibility with many current plugins. We're going to walk together on what the major changes are and migrate some favorite plugins to be work well with and take advantage of Rails 3.
Hashrocket recently built and deployed a massive patient record system for a pharmaceutical company in less than six months. We discuss how we dramatically accelerated our normal Rails application development using MongoDB and applying the philosphies of "less SQL".
No threads, no callbacks, just pure IO scheduling with Ruby 1.9, Fibers, and Eventmachine. All the nice things we love about writing synchronous code, but completely asynchronous under the covers – the best of both worlds. A hands on look at the architecture, mechanics, and involved libraries towards creating the next generation Ruby web-servers.
There is so much data on the cloud, but finding the best way to access
it can be a challenge. This talk will discuss the options to securely
access Google Data APIs and provide a Federated Login for Google Apps
and Google Account Users. We'll also provide you with an overview of
OpenID and related protocols.
With such a vibrant and emerging economy of new persistence options for web applications it can be diffcult to know when and how to use them in your applications. Worse yet, you don't want to lose mountains of existing infrastructure and support for RDBMS systems in Rails. What's a developer to do? Blend it! Learn new techniques for using multiple persistence engines in a single application.
JRuby has been running Rails for years, but the new Rails 3 release
presents enticing possibilities for Ruby development on the Java
platform. Even if you don't need to integrate with a Java codebase, JRuby
can offer you performance and deployment alternatives.
ActiveRelation and ActiveModel bring a lot of interesting features to
Rails 3. These new libraries make it easier to write complex queries
and to extend Rails to work with non-ActiveRecord objects. Learn to
use ActiveRelation and ActiveModel to clean up your code. See how you
can use ARel and AMo to build your own data layer or to connect to new
Software engineering as it's taught in universities simply doesn't work. It doesn't
produce software systems of high quality, and it doesn't produce them for low cost.
Sometimes, even when practiced rigorously, it doesn't produce systems at all.
That's odd, because in every other field, the term "engineering" is reserved for
methods that work.
Redis is fast. Rails is good. Resque is cheap. It's a match made in heaven.
Learn how to use Resque with Rails, how GitHub processes background jobs, and why Redis makes it blissful.
We'll compare Resque to other solutions, discuss design patterns, and review the plugins that add infrastructure.
Tools like Cucumber encourage driving new pieces of functionality through tests which cut through the entire Rails web stack, including the database. As a consequence these Acceptance tests can be quite slow. This leaves us in a dichotomy, you want to keep adding new features to your product and you want to maintain rapid test feedback. Somethings got to give. So how do we scale Acceptance tests?
Rubinius 1.0 is finally out, and Evan will talk about what you can expect from using Rubinius. He'll cover performance, tips, tricks, etc. Additionally, he'll be previewing features that will be in 1.1!
We all know that Rails is made of Tasty Burgers, but what are those Tasty
Burgers made from? We're going to take a look inside the bun to discover
what makes up Rails, how the software gets to our plate, and how we can
improve it. We'll discuss some of the lower level libraries used to make up
Rails, and what makes them tick. Better Ingredients, Better Burgers.
RVM is a command line tool which allows us to easily work with multiple ruby interpreters and sets of gems. We will explore the use of rvm to manage rubies for development needs like coding, continuous integration, quality assurance, and production on a per project basis.
Back by popular demand, Evan and Charlie are going to talk about all
those nooks and crannies of Ruby you never knew existed. Focused
mainly on traps to avoid, they'll discuss a number of features in Ruby
1.8 and 1.9 and how they actually work, including all the gory
details. As a special bonus offer, the duo will briefly discuss
performance related pitfalls and how they can be avoided.
More and more Rails apps are being deployed to App Engine. Generated AR scaffolding works unaltered with DataMapper, and critical gems like redcloth and mechanize are working too. Spin-up time is less of an issue, and Duby has matured to provide unprecedented performance. Our latest development tools make the development process painless. Best of all, it's free to get started.
Hype is everywhere. Whether it's the latest NoSQL db that's going to magically scale your app, or the newest best practice that's going to prevent you from writing bad code.
As early adopters, we've tried a lot of this stuff. We've even put it in to production under real load. In this talk, I'll tell you what worked and what didn't. There are no sacred cows - not even rails.
If you really love or hate aerodynamics, rainbow trout, the human
brain and arms, comfortable socks, and/or Easter Island then attending
this talk might be a really enjoyable or loathsome experience. Michael
may or may not talk about how seemingly random or even truly random
topics are important or unimportant for the fertile minds of creative
What started out as regression tests for the scenarios contained in a book has turned out to be an invaluable tool for reducing regressions in Rails itself and verifying that Rails runs on new versions of Ruby. The results of this work may be of use to others that wish to document scenarios involving Rails and/or system testing their own applications.
We'd mastered it all: join tables, polymorphic associations, nested sets, all neatly normalized. Then we awoke to the haze of NoSQL, where the data-modeling rules had changed. This presentation attempts to correct that by exploring document-oriented modeling with MongoDB. We'll cover common design patterns and contrast strategies for modeling product data in an RDBMS and a document store.
If you're building a RESTful API for your application you need to know about the latest standards in open authentication. With a new, modular approach and providing much greater flexibility than ever, the OAuth standard has evolved into a mature, open, and intelligent way to provide access to your application. Learn what it is, how to use it, and how to implement it on your application today!
As Rails becomes more mainstream, businesses are now taking a second look at Rails for their e-commerce needs. Join our panel of experts as we discuss a range of possible solutions. We will discuss the merits of using an existing Framework (Spree), using third party services (Shopify and Spreedly) or building your own (Gilt.)
User behavior tracking can be difficult. If done properly, it can be invaluable in helping to shape the evolution of your product. Done poorly, and it can lead to expensive mistakes. Learn the tools and techniques that will help you make the right choices.
In today's challenging economic environment, being nimble is key. Enterprises large and small are busy adapting their business models to match the environment. More and more, IT is being asked to help with this transformation. Fortunately, over the past few years, movements like open source, social networking and virtualization have given IT powerful tools to help with the transformation.
You will write code faster after this talk! Learn how to create and edit Rails code at maximum speed using the vim editor. Jump from intermediate to expert with my battle-tested techniques.
From friend suggestions in Facebook to product recommendations on Amazon the industry is moving to more intelligent systems. We'll discuss how to discover the relationships in your app and start personalizing the experience of your users. We'll discuss different design approaches to recommendations and how to leverage various libraries in novel ways in your rails application.
See real-world deep refactorings of production Rails apps under heavy active development. Focused tests are introduced to mission-critical applications having serious structural and design problems. We stop code decay, refactor under heavy testing, and converge to a clean well-tested implementation of a coherent domain design. Rescue missions in 45 minutes.