by Declan Whelan and Eric Roberts
You know that Domain Driven Design, Hexagonal Architecture, and the Single Responsibility Principle are important but it’s hard to know how to best apply them to Rails applications. Following the path of least-resistance will get you in trouble. In this session you will learn a way out of the “fat model, skinny controller” hell. You will leave with a roadmap to guide your design based on concepts from Domain Driven Design and Hexagonal Architecture.
by Nitin Dhaware and Dnyaneshwar Nerkar (Gyani)
Did you know that there are many web users all over the universe with different impairments and they could not use the web apps we develop just because they are not accessible? Being blind, Nitin and his colleagues have experienced this and hence in this talk, they underline the importance of Web Accessibility by discussing aspects of WAI-ARIA guidelines, along with the practical demonstrations of accessible forms, tab panels, grids etc., while developing RIAs in Rails.
by Sean Marcia
Two thirds of honeybee hives have died out in Virginia. Is it possible for us to devise a way of monitoring beehives in remote locations to find the cause? Enter a raspberry pi + rails. Using a combination of this robust hardware and software solution, we were able to successfully track, monitor and provide real time reporting on the well-being of hives from across the county. Find out how we used ruby, rails, solar panels and other libraries to provide insight into this problem.
by Tute Costa
In this workshop we'll learn how to transform complex, highly coupled code into a simpler, more readable and maintainable shape. We'll target known software anomalies with Refactoring Patterns, following steps with a confined scope, assuring that we stay distant from "changed everything" commits while achieving quick design improvements.
We'll talk different solutions for Fat Models, God Objects, long method chains, NoMethodError on nils, long methods, bad naming and cold coffee.
by Andy Maleh
Wizards have been common in web applications since the dawn of the Internet, with the most popular example being the Shopping Cart, yet many struggle with writing wizard code effectively, resulting in a huge untraceable rat's nest of copy/paste code. In fact, many implementations violate REST and include Fat Controllers as well as overly complicated wizard-step management, data, session, and validation code. This talk covers a better way that yields Ultra Light and Maintainable Rails Wizards!
Recently it has become common practise for development teams to deploy their code several times a day, as well as encouraging new developers to deploy on their first day at work.
In our talk Mario and I will discuss how we use continous deployment to push these practises to the extreme. Automatically deploying the master branch on new changes is an awesome way to improve your development process.
Automatically deploying master will fundamentally change how you work.
Since your first web application, you have struggled with identifying domain objects. Assigning business rules and services appears to be a talent that only other developers are born with. Fear not! Object Modeling is a learnable, teachable skill. This talk demonstrates the five essential skills you need for modeling objects and their responsibilities. Think beyond ActiveRecord and your database, and learn how color and patterns will help you explain, maintain and extend your application.
by Aaron Suggs
Mature apps face problems with abusive requests like misbehaving users, malicious hackers, and naive scrapers. Too often they drain developer productivity and happiness.
Rack::Attack is middleware to easily throttle abusive requests.
At Kickstarter, we built it to keep our site fast and reliable with little effort. Learn how Rack::Attack works through examples from kickstarter.com. Spend less time dealing with bad apples, and more time on the fun stuff.
by Andrew Warner
Is app/views the worst part of your codebase? Have you ever told someone on your team “remember to update the client-side views too”? Too long has the node.js community touted their advantage of using the same code on the client and the server. It’s time that Rails got a few punches in.
We should think of views as objects, not template files. In this talk I show how that lets us tease apart presentation from data, and build logic-less templates that are shared between client and server.
by Luke Francl
In Edward Bellamy's utopian novel "Looking Backward", a man from the 1890s awakens after 100 years and sees the wonders of the new age. What would a programmer from 2004 think if they woke up in 2014's web development utopia?
When you work with Rails every day, it's easy to forget how much it changed web development. But the influence of Rails is still being felt today in the Ruby world and beyond. Let's rediscover the Rails revolution by looking backward at its impact on how we work now.
by Leah Silber
by John Athayde
by Yehuda Katz
by Starr Horne
Once your database hits a few hundred million rows normal ActiveRecord conventions don't work so well.
...you find yourself in a new world. One where calling count() can bring your app to its knees. One where migrations can take all day.
This talk will show you how to work with big datasets in Rails and Postgresql. We'll show how normal conventions break down, and offer practical real-world advice on maintaining performance, doing maintenance, and tuning rails for optimal DB performance.
Rails allows us to write very concise code hiding a lot of the complexity. However, it’s common to face situations that require us to write more complex code on our own, and sometimes we forget a little about what Rails can do for us. We are going through some Rails features that people might not be aware of, talking about Active Record queries, custom template handlers, routing niceties, view helpers and more, to learn how these tricks can help simplifying complex code on our apps.
by Alan Cohen
In a SOA environment users can interact with multiple parts of your system, and the rules for authorization become dispersed across applications. The task of maintaining rules becomes complex. The challenge compounds further in a heterogeneous environment, with services built in different languages. In this talk, I focus on the topic of authorization, specifically how we can scale and grow our services with confidence. I’ll walk through a new framework we've developed to approach this problem.
Are you from a non-C.S. background? What about someone you mentor? Many junior devs’ top focus is building technical knowledge. However, they already have other skills that can help them in their roles immediately! Some of these include helping their team focus on the right tasks and working well with stakeholders like PM and support. This talk will discuss the non-technical contributions junior devs can make now and how their senior dev mentors can help them ramp up more quickly as a result.
by Jenn Scheer
“Oh, don’t ask me, I’m a terrible designer.” That's something I've heard from Rails developers ever since I started working with them. But it’s never true. It's just that most Rails devs don't have the scaffolding (no, not that scaffolding) around which to structure their designs.
In this talk we'll cover the things every developer should know about design: contrast, repetition, proximity, hierarchy, flow, typography, and color.
As developers, most of our time is spent on computers; but sometimes pen and paper is the best way to explore and develop our ideas. Sketchnoting uses hand-drawn elements to enhance focus, improve memory, and visualize important concepts. This talk will cover techniques to visually capture ideas, how to approach the mental multitasking required to sketch during technical talks and meetings, and explain why "I can't draw" is just a mental barrier to embracing creativity in your notes.
by Mark Menard
Writing small classes is hard. You know you should, but how? It's so much easier to write a large class. In this talk we'll build up a set of small classes starting from nothing using a set of directed refactorings applied as we build, all while keeping our tests green. We'll identify abstractions yearning to be free of their big class cages. In the process we'll also see how basic patterns such as composition, delegation and dependency inversion emerge from using small objects.
There's no magic mojo that helps a designer notice bad design; there's no secret compendium of design mysteries that developers just don't have access to. Good interaction design is about keeping your senses honed – noticing the little things and respecting user intuition. In this talk I won't be showing code – I'll be breaking down the usability of the world around you, and preaching the virtues of interaction awareness. Trust me: you'll never look at a microwave the same way again.
by Doc Norton
Teamwork ain’t always easy. From meetings where everybody has something to say but nothing gets done to poor decisions being made because the most senior or most forceful team member won the argument; sometimes you long for the days of high-walled cubicles and lone ranger coding. Long no more.
In this workshop, you will learn a few simple techniques that drastically improve a team’s ability to work together toward common goals with less conflict and more genuine collaboration.
by Adam Cuppy
Don’t you hate when testing takes 3x as long because your specs are hard to understand? Or when testing conditional permutation leads to a ton of duplication? Following a few simple patterns, you can easily take a bloated spec and make it readable, DRY and simple to extend. This workshop is a refactor kata. We will take a bloated sample spec and refactor it to something manageable, readable and concise.
by Chris Hunt
You don't have a bad memory, you were just never taught how to use it. We are going to practice several powerful memory techniques that have been perfected by memory contest champions over the last hundred years. By the end of this talk, you will know how to quickly memorize a foreign language, driving directions, phone conversations, the entire Chuck Norris filmography, your friend's credit card number, a shuffled deck of playing cards, and the name of every person you meet at RailsConf.
22nd–25th April 2014