Talk Story: Sharing Wisdom, Experience, Knowledge, and Stories
The theme of Aloha on Rails is “Talk Story”. The presenters and speakers at Aloha on Rails will be telling their stories, sharing their experience and wisdom. You won’t find a collection of “blog posts” or cursory overviews of over-exposed technologies. Instead, you’ll learn from leaders, authors, and innovators as they challenge your perception of your career, your work, and the technologies you use every day. You’ll leave these sessions thinking, questioning, and debating. You’ll even be entertained.
Register Now to enjoy these talks, our speakers, the audience, and beautiful Hawaii!
- Passionate Programmer - Chad Fowler
- (permalink) What should the career path of a programmer be? How do you know what you’re aiming for? What defines success? Many of us started out assuming the answers to these questions included slowly climbing a corporate promotion structure, ultimately becoming a people or project manager and no longer a programmer. But we didn’t get into software development so we could fill out spreadsheets and attend status meetings. We got into software development because we were excited about it. We wanted to be creative and to build great things. From the author of The Passionate Programmer, this session will walk through how a software developer can not only succeed but work toward building a remarkable career. We’ll draw examples from business, the arts, music, and sports. By the end of the presentation, we will have laid out a structured framework for radically succeeding in the software industry.
Rate and give feedback
Watch the video - Flash/HTML5 - Hey… is that your database crying? - Blythe Dunham
- (permalink) Although ActiveRecord and the new Rails ORMs are optimized for general use cases with relational databases, most enterprise applications will not preform well enough using just the out-of-the-box functionality. Further, since often the ORMs do such a good job of hiding details when interfacing with the database, issues that might severely hinder scalability and performance are difficult to identify and are often ignored. In this talk, I will identify common database performance problems that arise when working with Rails and offer simple techniques and solutions to optimize them and the way your Rails app talks to the database. This talk will also include topics such as Creating good migrations that would make a DBA proud, Addressing common slow operations such as bulk importing records and querying across multiple tables, and Using actual database constraints (and keeping Rails happy).
Rate and give feedback
Slides
Watch the video - Flash/HTML5 - Rails 3 Public API - Yehuda Katz
- (permalink) Rails 3 is the newest version of Rails, and it comes with significantly more flexibility than previous versions of Rails. If you want to continue using Rails the way you’ve always used it, the strong system of conventions and defaults that Rails has become known for are still the golden path moving forward. But if you want to plug in alternatives to Rails’ conventions or hook directly into parts of the internals, Rails 3 provides a power-users’ API that will be supported and maintained moving forward. Yehuda will walk you through the principles of that API, show you how to read and understand the Rails source code so you can customize the framework just the way you want.
Rate and give feedback
Watch the video - Flash/HTML5 - Technical Debt - Refactor or Rewrite - Anthony Eden
- (permalink) Technical debt, a term coined by Ward Cunningham, is incurred by every project when the quick and easy route is taken to solve a problem. As technical debt builds up the problems of cruft begin to multiply. Development slows, bugs increase, deadlines are missed and frustration ensues. At chi.mp we incur technical debt just like any other development team. In this talk I’ll show you how we approach the reduction of our technical debt. Sometimes it makes sense to refactor existing code and sometimes it makes sense to start all over on certain parts of the code. In either case there are essential elements to successful technical debt reduction, including a solid understanding of the business requirements, a comprehensive test suite and both management and development teams that understand the importance of debt reduction. Ultimately, just like with reduction of financial debt, reducing your technical debt should leave you feeling satisfied and rejuvenated, ready to tackle future programming challenges.
Watch a video sneak peak of Anthony’s Technical Debt talk!
Rate and give feedback
Slides
Watch the video - Flash/HTML5 - Rails Training in Paradise - Sarah Mei
- (permalink) Note: This is a full day tutorial, the day before the conference begins (Oct 4, 2009). Learn about, build, and deploy a Ruby on Rails application in one day! Sarah Mei of RailsBridge will conduct a special “boot camp” to get new developers up and running on Ruby on Rails. Come with just your laptop, and by the end of the day you will have written and tested a working Rails application, and even deployed it to the web. This training is fun and rewarding, and you will learn state-of-the-art techniques from professional Rails developers and trainers. Rails Training in Paradise will introduce you to the productivity and fun of Rails, and will ensure that you get the most out of the Aloha on Rails Conference. If you are interested in Rails, comfortable with your computer and the web, and have built web pages or web applications before, you should attend Rails Training in Paradise. Web designers - this is your chance to go deeper into the technology stack. PHP developers, .NET developers, Java developers - this is your chance to learn a new language. Bring some ideas back to your primary development environment, enrich your skillset, and have fun doing it! NOTE: This event requires a separate registration. Learn More and Register for the Tutorial
- Surviving the Journey from Rails Coder to Manager - Chris Selmer
- (permalink) Most hardcore developers cringe at the idea of putting down their coding tools and becoming a pointy-haired boss. The journey from Rails coder to manager is fraught with peril - from dealing with difficult clients, to keeping your team motivated, to making sure you don’t lose your technical edge. Here is the story of one man who survived the journey and lived to tell the tale. This talk is geared towards Rails developers in the midst of a transition from coder to manager, those who would like to someday make the transition, or anyone who like to learn more about communicating with clients and coworkers. This will be a wide-ranging talk, but will cover topics such as Dealing with clients, Contract negotiations, Learning a different set of jargon, and How to position yourself for a transition.
Rate and give feedback
Watch the video - Flash/HTML5 - On The Edge of Rails Performance - Gregg Pollack
- (permalink) Earlier this year I released a series of screencasts showing that rails indeed comes with many of the tools that you need scale your rails app. Since then more Rails applications have gone into production, additional techniques have been developed for optimizing performance, and more open source libraries have been published. In this talk I will first give a quick introduction for those just getting their feet wet with optimizing Rails applications. However, the majority of the talk will be spent looking at the most useful techniques for optimizations and some of the new libraries that have been released to make it that much easier.
Rate and give feedback
Watch the Video - Flash/HTML5 - Thinking in Map Reduce - Alan Gates
- (permalink) Hadoop is an Apache project that provides a framework for running applications that process vast amounts of data (hundreds of terabytes) on large clusters (thousands of computers) of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a distributed file system and Map Reduce. This presentation presents the motivation and approach for Hadoop, an overview of the components and architecture, and an overview of some of the tools built on top of Hadoop, such as Hbase, Pig, and Hive.
Watch a video sneak peak of Alan’s Thinking in Map Reduce talk!
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - Introduction to Pig - Alan Gates
- (permalink) Pig is a Hadoop sub-project that provides a higher level programming language to describe parallel computation atop Map Reduce. It implements common relational operators such as join and filter and provides ways to incorporate custom user code via user defined functions and streaming. The result is much simpler and more compact code, increased user productivity, and reduced maintenance time compared to writing Java for Map Reduce. At the same time, Pig stays faithful to the spirit of Map Reduce whereby a user program specifies a simple sequence of steps for the system to obey. The talk will introduce Pig and its programming model, contrast it with Hadoop¹s model and provide motivation to use Pig as the preferred programming paradigm for most applications. The performance tradeoffs will also be discussed.
Watch a video sneak peak of Alan’s Introduction to Pig talk!
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - The Birth of Git - The Second Greatest Story Ever Told - Scott Chacon
- (permalink) Many Railsers have been using Git for a while now, but the story of how it came about and how some of the early design decisions were made is enlightening. Fresh off using BitKeeper, no distributed version control system existed in April 2005 that would handle the kernel, so two were started within days of each other by two Linux kernel hackers - Mercurial and Git. This story will go back and see how and why each system made it’s early and key decisions and should help the audience understand the fundamental differences between the systems, understand Git itself better and think about Version Control as a system in a different light.
Watch a video sneak peak of Scott’s The Birth of Git talk.
Rate and give feedback - Dragons, Riddles, and Rails Applications - Desi McAdam
- (permalink) Once upon a time there was a girl who was given a very old and complex app that she did not write. Her quest was to add to it and make it better. Her journey through this app was rocky and many times very dangerous as she spiraled down overridden methods and encountered many a curious creature. Follow her through this tale, see how she navigates and what she does to make this app not quite so confusing and scary.
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - The Machines Are Alive - Jon Crosby
- (permalink) What happens when machines are turned loose to build other machines? What happens when they monitor their own health and repair themselves? Where does ruby fit into this picture and how does it change the way we build and deploy web applications? I’ll answer these questions and more during a tour of the Engine Yard Cloud architecture. Along the way, we’ll look at the methods used on our team to address disposable/repeatable infrastructure, fault tolerance, and testing in a SOA environment.
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - JRuby: From Zero to Awesome - Charles Nutter
- (permalink) Over the past 4 years, dozens of people have helped make JRuby a cracker-jack Ruby implementation. Most people know about JRuby, and know that it can run pretty much any Ruby applications out there. But do you know what it took to get here? It certainly wasn’t easy. I’ll run through the past four years, highlighting the most painful pieces of Ruby we had to support. I’ll show what it takes to build an implementation of Ruby. I’ll demonstrate some experimental “Ruby-like” languages like Duby and Juby that act as research conduits for JRuby. And together we’ll explore and discuss where JRuby might take Ruby in the coming years, with two-way Java integration and ever-increasing performance.
Rate and give feedback
Slides
Code samples and demos from JRuby: From Zero to Awesome
Watch the Video - Flash/HTML5 - You Don’t Need a Logo - Michael Nieling and Matthew McVickar
- (permalink) Design is the single most important aspect of new product development. Whether you’re building a web app or a great burrito, delivering a consistent, cohesive experience is required. Though ‘design’ is widely acknowledged as vital, the scope of its impact is often grossly underestimated and thoroughly misunderstood. Design isn’t just marketing and advertising hoopla, it is the holistic, analytical thinking that is at the root of every successful brand and needs to be at the front of every entrepreneur’s mind. As a programmer, design is the difference between simply identifying and solving the problem and doing so elegantly (and profitably). Delivered by an engineer and a usability guru disguised as designers, this session will break down buzzwords and deliver a practical perspective on the real steps (and the commitment and vigilance) it takes to build, implement and maintain a successful brand.
Watch a video sneak peak of Michael’s design talk!
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - Grand Unified Theory of Software Design - Jim Weirich
- (permalink) 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. But why does delegation introduce less coupling then inheritance. And how does the law of Demeter reduce coupling? To understand these issues, we will look at the concept of “connascence” how it appears to unify many different design principles under an overall view of coupling. We will also talk about oatmeal and physics.
Rate and give feedback
Watch the Video - Flash/HTML5 - You’re Doing It Wrong - Chad Pytel and Tammer Saleh
- (permalink) As experienced Rails consultants, and authors of the upcoming Rails AntiPatterns book, Chad Pytel and Tammer Saleh have seen their fair share of terrible code. They’ll discuss some common AntiPatterns they’ve seen in the wild, and will walk through the process of refactoring them to bring them in line with current best practices. They’ll be making use of the latest Rails 3.0 features to transform code from appalling to awesome. In addition, they will be looking at audience submitted code snippets, and giving live refactoring advice.
Watch a video sneak peak of Tammer and Chad’s Rails antipatterns talk!
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - Forget Kindergarten, Learn to Scale - Blake Mizerany
- (permalink) The key to building web apps that can scale and take advantage of cloud resources is to forget what you learned in kindergarten and do the opposite. Heroku has over 32,000 apps running on it currently, some serving hundreds of requests per second. Blake will walk you through 5 anti-kindergarten rules used by successful Heroku apps, with hands-on examples of each. Examples include Everything is Disposable, Be Impatient, and Be Unfair.
Watch a video sneak peak of Blake’s scaling talk!
Rate and give feedback
Watch the Video - Flash/HTML5 - Lean Teams - How To Do More With Less - Marty Haught
- (permalink) Having a large consulting contract with money to burn can make it easy to succeed but what do you do when you’ve got a small team with limited resources? Taking inspiration from lean software development and lean start-ups I have singled out several principles that help agile teams get more out of less. Examples include Continuous deployment, FDD (Feedback Driven Development), and Kanban. I will explore what each of these are, how I applied them in the Rails stack and reflect on what effect they had on my team’s productivity and application quality.
Rate and give feedback
Slides - Is Agile Too Slow? - Jon Larkowski
- (permalink) Join our panel for a heated debate about whether agile project management and Extreme Programming methods are being applied appropriately to the problems they’re meant to solve. How do return-on-investment, opportunity cost, and risk management balance against quality in various project contexts? The overall theme is: maturing from dogmatic adherance, growing up to conscientious contextual application of technique. Jon “Lark” Larkowski of Hashrocket will moderate the discussion. We’ll cover issues such as When is hacking OK for short time-to-market?, Is high-quality code a technical fetish or does it have demonstrable long-term value?, and Do we apply the same standards to short and long-term projects?
Rate and give feedback
Watch the Video - Flash/HTML5 - Everything I Know About Being an Open Source Hacker I Learned From Indie Hip Hop - Corey Donohoe
- (permalink) Over the last 15 years open source software and independent hip hop labels have risen from pipe dreams in people’s basements to revenue streams that can’t be ignored. The talk will detail interesting characteristics found in passionate people from both communities. It will take a look at the communities they operate inside of and why they seem to stay vibrant. The hope is to generate discussion among the attendees on what we currently think about what it means to be an open source craftsman and how our participation impacts others.
Rate and give feedback
Slides
Watch the video - Flash/HTML5 - Domain Driven Rails - Pat Maddox
- (permalink) As Rails continues to gain popularity, and the community behind it matures, Rails is thrust into domains of increasing complexity. As anyone who’s been developing in Rails for a while knows, Ruby and Rails are particularly good tools for modeling this complexity. However, very little emphasis has been placed on how to *manage* this complexity. “Domain-Driven Design” is a set of principles, patterns, and practices (detailed in a book of the same name) that help developers manage the complexity that comes along with working on large projects in interesting domains. The two ideas that I will focus on are Aggregates and Bounded Contexts. I will cover such topics as 1) your 1400 line user.rb - why it sucks and what to do about it, 2) management in the small: breaking up objects, designing aggregates, or, why not all entities are created equal, and 3) management in the large: identifying bounded contexts. This talk is intended for developers working on longer-term, larger applications that are running in production and providing value to the business. I think the ideas in it start to become useful when a Rails app hits the 10k line mark, and are crucial for managing complexity beyond the 30k line mark. It’s an advanced topic and is meant as high-level design and architecture (implemented in real code though!!)
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - Where Do I Put This Data? - Ezra Zygmuntowicz
- (permalink) In this talk we will explore the explosion of key value and other alternative storage engines for storing data without using a relational database. There are so many options these days for storing your data, how do you choose what will work for you? When do you really need to get out of the relational model and into a DHT or bigtable style data store. We will explore various options like redis, toyko, couchdb, flare, dynomite and when and why you would choose one of these data stores.
Watch a video sneak peak of Ezra’s data storage engine talk!
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - Staying Above the Ghetto - Benjamin Sandofsky
- (permalink) We’ve won! We’ve got a huge ecosystem and high demand for Rails developers, and as more people adopt Rails, you’ve commoditized yourself. How do you stay above the curve and continue to be worth top dollar? Topics include: watching Rails become the new PHP, skills developers don’t know but should, and how to follow through on those things you’ve been meaning to learn.
Rate and give feedback
Slides
Watch the Video - Flash/HTML5 - Distributed Cluster Management with Chef - Nathaniel Brown
- (permalink) Using Chef, the new all Ruby server infrastructure management system, Nathaniel will guide you through setting up your distributed network architecture in an automated fashion. Currently, Chef is running his distributed cluster of staging, production, and key infrastructure servers using linux flavours of Ubuntu, RHEL, and CentOS in a multi network environment spanning from Amazon’s EC2, 1&1, Rackspace, as well as Slicehost. You will learn not only the fundamental concepts of Chef, but how to practically use it to automate your network infrastructure with installations, version upgrades, centralized user management, as well as deployment strategies to remove the headache of managing as well as scaling clusters of servers in the wild.
Rate and give feedback
Watch the Video - Flash/HTML5 - Modeling Maturity - Obie Fernandez
- (permalink) One of the most important keys to your personal or business success is maturity. When it comes to doing quality work for others, at expensive prices, you don’t want immaturity, whether in attitude or practices to derail you. Months ago, Obie proposed an idea which was very controversial, that the community could define a Rails Maturity Model that would describe the ideal way of working with Ruby on Rails. A web application was launched, and later turned into a database showcasing a variety of different maturity models, reflecting different philosophies for approaching Agile software development using Rails. In this session, Obie will moderate a panel discussing the viability and use of “maturity-model” type information, and whether the community should care about it.
Rate and give feedback
Watch the Video - Flash/HTML5 - Ship Your App In A Container - John Woodell
- (permalink) The preferred method for deploying Rails has transitioned over the years, from FastCGI to Mongrel, and most recently to Passenger. There is still work to be done, but now a compelling way to develop and deploy Ruby apps, is in a servlet container. Developers can benefit from all the meta-programming power of Ruby, the portability of Java, and then deploy to Google App Engine for unprecedented scalability. We give developers the ability to optimize each URL to use any Rack-based Ruby framework or even servlets, beans, and JSPs. Java developers can quickly put together a simple Sinatra front-end for legacy J2EE code, while Rails developers can easily integrate servlets to do some heavy lifting. The JRuby development environment for Google App Engine runs inside a servlet container, and we have tools that make this easy. With micro-frameworks like Sinatra, or modular frameworks like Rails3, new app instances can spin up on demand, so you avoid paying for servers that sit idle.
Rate and give feedback
Slides
schedule subject to change