Personal schedule for Gavin Stark
Download or
subscribe to Gavin Stark's
schedule.
"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.
Read more.
Learn more about how you can spot development trends in your version control history and use that information to guide your choices going forward.
Read more.
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.
Read more.
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...
Read more.
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.
Read more.
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.
Read more.
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?
Read more.
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.
Read more.
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.
Read more.
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!
Read more.
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!
Read more.
MVC inventor Trygve Reemskaug and James Coplien have a new vision for software, called DCI -- Data, Context, and Interaction. Although as conceptually elegant as MVC, and with the same potential to improve software, DCI's innovations are not easily implemented in Java or C#. That is not the case with Ruby, however, which puts Rails developers in a unique position to lead the way.
Read more.
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.
Read more.
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.
Read more.
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.
Read more.
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.
Read more.
Drawing from the authors' own experiences, methods and guidelines will be presented for exposing and sharing services within and between large Rails-based systems.
Read more.
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.
Read more.
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.
Read more.
Calling all RailsConf attendees: do you have something awesome to share with the Rails community? Can you tell us in 5 minutes what it is and why it's awesome? If so then sign up for the RailsConf Lighting Talks.
Read more.
We all know that Rails is great for building traditional web applications that serve dynamic HTML pages. But more and more, people are reaching to other tools, like Node.js, when they build web applications with a lot of logic in the client. People often use the argument that when you remove the view helpers, there isn't much of value left in Rails.
Read more.
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.
Read more.
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.
Read more.
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.
Read more.
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.
Read more.