Jason Fried says "Work doesn't happen at work" [2], but you can work as productively as possible wherever you are (even at work).
We will explore principles of productivity, as well as techniques and tools you can use.
[1] 5 hours saved every work week
[2] http://www.ted.com/talks/jason_fried_why_work_doesn_t_happen_at_work.html
After spending the last few years developing and deploying Rails applications we're ready to unload all the tips and tricks we've learned. But each nugget of experience will be ruthlessly culled to fit in two minutes. You'll get the whole seat but you'll only need the edge!
People keep inventing new programming languages. What is programming,
and how can the design of a programming language help or hinder that
process? We have learned a lot over the last five decades: principles,
conventions, theory, fashions, and fads. “Those who cannot remember
the past are condemned to repeat it.”
We all use ActiveSupport 3 every day. Many of us don't take the time to dig down into some of the more interesting parts. This talk will explore the history of ActiveSupport and demonstrate areas most aren't familiar with.
When we build rich client interfaces in JavaScript for our Rails applications today, we have no other choice than duplicating code and logic in both worlds. In this presentation we will show you how to use Google's V8 JavaScript engine in your Rails application to eliminate those duplications, write model code only once and therefore make your code DRY again.
The Rails View layer is the Wild West. Bad mustaches, crazy fights
over simple things, and complete and utter confusion abound. When do
we use a helper or a presenter? How do we keep logic and markup
separate? What's this here new fangled boilerplate and HTML5/CSS3
thing?
Make your users happy by building webapps without page loads. People waiting 2,000ms or more for a page on your app to load are losing interest and focus. Learn how easy it is to create an interface that responds in less then 100ms with Backbone.js, a JavaScript library created to seamlessly integrate with Rails and keep your JavaScript organized and readable.
Modern browsers have changed web development by offering new, more powerful capabilities, known by the marketing buzzword "HTML5". In this tutorial we'll build a sophisticated example that shows you how to take advantage of workers, sockets, canvases, local storage, media embeds, and more. You'll learn how you can use HTML5 to build newer and better web applications, leaving old hacks behind.
Whether you are a student, a freelancer, an employee or running a company, your career is your responsibility.
This talk will deliver a plan to review your career in terms of mind, body, heart and soul health.
The talk will incorporate both personal experiences and those from others in the international Ruby community on reviewing your own career.
Keynote by Chad Dickerson, CTO, Etsy.
Cloud Foundry is the industry’s first open open platform as a service project initiated by VMware. It can support multiple frameworks, multiple cloud providers, and multiple application services all on a cloud scale platform. Cloud Foundry is available as a cloud service at CloudFoundry.com and as an open source project at CloudFoundry.org
Are your methods timid? Do they constantly second-guess themselves, checking for nil values, errors, and unexpected input? Learn how to write code in a straightforward, confident style that is more testable, easier to read, and easier to debug.
People really get bent out of shape about what programming really is.
Is is engineering, craft, art, or science? Or something different entirely?
But the real question is: does knowing what programming really is
help us to be better at it?
You're using RubyGems on a daily basis, but what's inside of them? How can you make your own? How can you share them with others? In this session you'll learn how to make one from the ground up to help break out your Rails application code to be more modular and maybe even help out the community too.
Lightning keynote by Dr. Dan Melton, CTO, Code for America.
Keynote by David Heinemeier Hansson.
Learn the ins and outs of deploying Rails (and other) web apps with Bundler, from a core team member. This session will cover deploying by hand, with Capistrano and Vlad, as well as running bundled apps in Mongrel, Unicorn, and Passenger, deploying to firewalled servers, and more.
In this talk Señor Engineer Aaron Patterson will talk
about the adventures he's had over the past year. Topics will include
(but are not limited to), ARel, ActiveRecord, ActionPack, Code
Refactoring, and Sausage. Though these topics may go their separate
ways, they are not worlds apart. Attendance is required as there will
be homework assigned.
Selling a product once is fun, but selling that product twice is wildly excellent. GitHub does that with Firewall Install, our installable enterprise GitHub. This talk aims to discuss how you can repackage your existing product too, by covering code strategies for parallel codebases, supporting remote server infrastructures, and talking about the impressively stupid decisions we've made.
Is your search box still a plain old text field? If so, you're way behind the times. This session will give you the tools to supercharge your search box, making it easier for your users to interact with your site. From outlining the basics behind autocomplete, to more sophisticated autosuggest techniques, all the way to super-search boxes like those of Facebook and Quora.
Developers are stereotypically bad at web page design. But armed with a fresh eye for design, and a little knowledge about css, we can shatter that image. Attendees will learn a few recipes to create pleasing page design - including making sexy submit buttons, styling form elements, choosing and modifying typefaces, and styling Rails form errors.
"Fat Models, Skinny Controllers" they scream. Pushing your logic down
to the model layer is a key step to improve testability,
maintainability, and code quality. But many developers now have "junk
drawer" models that don't realize these goals. Having a fat model
isn't enough! Come learn techniques to refactor your models and make them beautiful.
Payment Gateways, and Merchant Accounts, and PCI Compliance! Oh, my! Getting started with credit card processing can be confusing. I'll provide an overview of the credit card ecosystem and show you how to securely accept credit cards in your application. Finally, I'll introduce a novel technique that allowed us to process over 1 million credit card transactions in a single day.
Want to add location, mapping, or complex spatial analysis to your Rails applications? Not sure about the difference between OpenLayers, Google Maps, Bing Maps, RGeo, GeoRuby, GeoCommons, or the many other choices in front of you?
Join this session for a walkthrough of the stack choices you will be faced with while navigating the Geospatial landscape.
While most Ruby developers are very familiar with testing their code, JavaScript testing is still a new frontier for many. This talk will show you how to easily write and run JavaScript integration tests with Capybara and Cucumber, and unit tests with Evergreen and Jasmine. The goal is to inspire you to get started with JavaScript testing, and point you in the right direction to go do it!
Social games backends share many aspects of normal web applications, but exasperate scaling problems. Follow this talk to see how we evolved and brought a plain rails app to 5000 reqs/sec, moved part of our data from SQL to NoSQL in order to reach 100,000 queries / second and see what we learned from this experience.
Redis is well known for being a fast key-value store and as the fantastic backend for the work queue library Resque. The functionality and speed of Redis also make it a great tool for keeping indexes when your data-write load is very high. This talk will cover how we used Redis to build a system that can index thousands of writes per second without breaking a sweat.
Cloud Foundry is the industry’s first open open platform as a service project initiated by VMware. It can support multiple frameworks, multiple cloud providers, and multiple application services all on a cloud scale platform. Cloud Foundry is available as a cloud service at CloudFoundry.com and as an open source project at CloudFoundry.org.
In the beginning Matz created the language and the community. Matz
called the language Ruby, and saw that it was good.
And Ruby was the first day.
DHH said, "Let there be the framework". DHH called the framework
Rails, and saw that it was good.
And Rails was the second day.
It's not what you code, it's how you code it. In this talk, I'll take you through real world examples of code drawn from the 40+ production Rails applications we have developed and maintained during the last 12 months and highlight anti patterns and examples of technical code debt in them. You do what you can do to avoid these, making your future lives simpler. Your future you will thank you...
Relational databases have been around for decades, and there's a vast amount of untapped power sitting right at our fingertips. The problem is that messing with SQL can be difficult and confusing. This talk, make up of 6 discrete chapters, shows how you can use a little dash of database in your app to make working in Rails easier and faster.
Keynote by Eric Ries, creator of the Lean Startup methodology and author of the popular entrepreneurship blog Startup Lessons Learned.
As in-house developers we are constantly spinning up new applications to help run our business. Most of these apps share a common set of features. Our transition to Rails 3 has allowed us to start with a clean slate and rethink what works best for us. We will discuss the base feature set needed for almost every app and how we use templates to quickly spin up a new app.
Learn more about how you can spot development trends in your version control history and use that information to guide your choices going forward.
I'd like to move my Rails environment to JRuby, do I need to learn about war files and complex Java deployment environments?
Trinidad is a Rails application server on top of Apache Tomcat that solves that question with a simple NO. In this talk we'll explore the main features of Trinidad, how to adapt it to any environment and also how to extend it to take more advantages that Tomcat offers.
OmniAuth is a library with a mission: eliminate the headaches caused by having to authenticate through...well, anything! In "From The Ground Up" you'll learn about the motivations, inspirations, and uses of OmniAuth as well as a look at how it was built and how you can write your own custom strategies.
Come learn about the open source e-commerce framework that is taking the Rails world by storm! We will provide a basic overview of Spree, demonstrate some of the unique features and preview some of the exciting features planned for this year.
As you grow your application, you tend to grow the number of databases you're using. Caches, key-value stores, document databases, full-text indices, and distributed databases all come into play. It can prove challenging to add these moving parts and keep your sanity. Learn how to incrementally add these databases to your application as it scales and keep your code clean and clear.
One exciting feature slated for Rails 3.1 is the "flush": pushing pieces of the view out early, before the view has finished rendering. Learn how to use this effectively to minimize your perceived response times, how it influences the way you factor your application, and how it can complement other existing caching techniques, such as client-side personalization and edge side includes.
Tracking ipv6, with it's enormous address space, is a technically challenging engineering problem and is important to the Rails developer community. Why is ipv6 important for a rails developer? ipv6 offers better security, but how do you represent ipv6 in network devices, databases (relational and non-relational), frameworks (rails), UI, etc.?
HBase is another "NoSQL server" with a different approach that you’ll want to understand
Ruby might be slow, but bad code only makes it worse. This talk will teach you how to use powerful tools to see how your code is executed, so you can understand, debug and optimize it.
Many teams and projects I've been involved with are deploying ruby applications in an atypic way, i.e. different from the mainstream "cap deploy". It has been a very nice experience so far, and I would like to share. Come hear why some people think that there are better and not much explored ways of deploying ruby and rails systems.
We'll be handing out several trophies to people we believe to be Ruby Heroes, and giving them the round of applause they deserve and might not get otherwise.
Dr. Nic Williams takes you through the vagaries of Ruby's evolution, with an emphasis on the past and future of JRuby and Rubinius.
Let's face it. CSS is dumb. There is no such thing as a DRY CSS file and stylesheets are often the biggest blemish in an otherwise beautifully coded app. Sass is the future of stylesheets. Rails 3.1 includes it by default and the W3C is adding concepts from Sass to CSS itself.
A huge step forward in the third version of the Rails 3 framework is the modularity it provides. This modularity is the result of a long refactoring effort to make it easier to extend or modify Rails to suit our application's needs.
A deep look into 2 common performance problems web developers face. We will consider these problems and then I will show solutions to these problems. From here we can generalize the solution into a pattern I call: The Worker Pattern.
Rails is a great framework for building web-based systems, but many of us don't have much experience outside of port 80 or 443. Dave Troy developed a scalable server architecture for Shortmail.com, implementing stateful, secure services such as LMTP, SMTP and IMAP using EventMachine and Rails.
Everybody wants to do test-driven development, but switching to TDD or BDD on an existing project that doesn’t have tests presents special challenges. This session will show you how to work around dependencies that make testing legacy code so complicated. Topics include using Cucumber for black-box testing, using mock objects to limit dependencies, and using Ruby dynamism to cut through problems.
Dive into the internals of thoughtbot's copycopter_client and discover how to handle difficult-to-test components such as HTTP, SSL, threads, forks, logging, caching, Rails engines, and others. Learn viable testing strategies for applications and libraries that contain such components with a focus on Rails libraries.
You must choose, but choose wisely. The database world is larger than SQL v noSQL, and growing by the month. Choosing a data storage engine is an important decision, but it doesn't have to be painful if you know the landscape. If your understanding of data storage tops out at "Mongo is webscale" or "mysql + memcached = win" then this talk is for you.
Keynote by Aaron Batalion, CTO, LivingSocial.
Although JRuby has maintained a high degree of compatibility with C Ruby, there still are a few considerations when making an existing Rails application run with JRuby. We'll introduce a simple step-wise process for ensuring you can trial your application on JRuby.
Smart developers have been using Ruby on Rails to rapidly build web applications for over 5 years now. Cutting-edge projects have aged into old, moldy, legacy apps. Rails 3 and Ruby 1.9 offer performance improvements and new features that are guaranteed to take the squeak out of that old wheel and grease the tracks of new development.
The Ruby/Rails community is known for it's adoption of TDD, yet that seems to stop at the border that is our web browsers. The issue isn't testing tools, the browser or the DOM. It's us. We write untestable JavaScript and our tests are yelling at us, begging us to change. Will we listen? Come and learn how we can push the Ruby testing philosophy into JavaScript, and impact the apps of the future.
Having built two object mappers in Ruby (MongoMapper and ToyStore), I would like to throw out a crazy thought. What if, on your next project, you ditch the ORM.
No ActiveRecord. No DataMapper. No anything. Just you and a lower level driver, whispering sweet nothings into Ruby classes and modules. Could you? Would you? DARE you?