4th Annual

Ancient City Ruby

April 6-8, 2016St. Augustine, FL


Headshot of Ben Lovell

Ben Lovell

FOSS like a BOSS!

For some, open source software is a way of life. For others it's a dark and scary place -- full of fear, uncertainty and doubt. The hard reality is: nobody truly knows what they're doing and we're all just one teeny step from getting rumbled.

Let's explore what it takes to contribute to popular open source software and dispel the myths. By the end of the talk I guarantee you'll be throwing pull requests like a BOSS or your money back! (OK, maybe not that money part)

Headshot of Cameron Daigle

Cameron Daigle

It's All Just a Game

No matter what your day-to-day role, you're going to occasionally find yourself in a meeting: a place where a motley crew of individuals with various skills and alignments gather 'round a table and attempt to accomplish something. Join me as I show you how archetypes used in game theory can help you better understand and interpret the personalities & motivations of the people around that table – maybe that one person who's always starting arguments is just Chaotic Good, after all!

Headshot of Kerri Miller

Kerri Miller

SOLID 101: A Review for Rubyists

SOLID is an acronym that tries to capture the first 5 principles of object-oriented programming and design, as enumerated by Michael Feathers and Robert Martin. Most Rubyists are probably familiar with one or two, but do you know what the rest are? Let's review them, see them in action, and learn how they can help us create maintainable, extensible, and comprehensible software.

Headshot of Lauren Scott

Lauren Scott

Ever wish that your peers called your code a "work of art"? What is it that artful programmers know that makes their work transcend functionality and become something that has value in its essence? There's a lot that we can learn from the arts, particularly from those that share our linguistic building blocks. Because as all programmers and poets know, writing is easy—it’s writing the good stuff that’s hard.

So what can we take from the study of poetry that would illuminate our own paths as developers? In this talk, I’ll go through some poetic principles that clarify ideas about software development, both in the way we write our code and the way we grow as creators and teammates. We’ll explore the way poets learn to shape their craft and see what we can steal to help our code level up from functioning to poetic.

Headshot of Paolo Perrotta

Paolo Perrotta

Unconventional Computing

Our computers have taken us to a dead end. We can't make them faster than they are. It may be time to go back to the drawing board and challenge the notion of what a computer should be like. What about computers made of light, fluid, or living beings?

Believe it or not, people are actually trying all of those ideas - and more. Let's make a sightseeing tour through the most unexpected and crazy approaches to computing.

Headshot of Ray Hightower

Ray Hightower

Get Ready for Parallel Programming, Featuring Parallella

Parallella is a single-board computer roughly the size of a credit card or Raspberry Pi. Parallella runs Linux. It has 18 cores (2 ARM, 16 RISC) and you can buy it online for about $150. This talk will explore two questions: (1) How parallel execution differs from serial, and (2) Why we care about parallelism.

This talk is the sequel to Ray's Parallella talk from 2015. To get a head-start on the subject, check out Part One.

Headshot of Robert Jackson

Robert Jackson

A Rails Developer's Intro to Ember

So you want to make a nice shiny Ember app as your Rails API's main frontend and are not sure where to start? Lets jump into building a new Ember app that utilizes an existing Rails API. We will review project structure, some basic Ember concepts, how you can test your Ember app both independently and against your API server, and more ...

Headshot of Ross Kaffenberger

Ross Kaffenberger

Enumerable's Ugly Cousin

Everyone loves Ruby's Enumerable module. What about Enumerator? Many of us don't what Enumerator is or why it's useful. It's time to change that. We'll (finally?) understand why Enumerator is important and unveil the "magic" of how it works. After learning how to get started with Enumerator, we'll build up to some diverse use cases, including web crawlers and recurring events. We'll jump from crazy ideas, like emulating lazy sequences more common in functional programming languages, to sane takeaways for more common problems.

Even if you've been programming Ruby for years, you may see something new or, at least, see a familiar problem with a fresh perspective. Every if you don't adopt Enumerator into your daily work, you'll come away with a deeper understanding of its advantages and how it complements its famous relative.

Headshot of Sam Phippen

Sam Phippen

What Is Processor?

Sometimes, writing Rails apps is awful. Do you know what's nearly always more awful? Handrolling assembly. Ruby lets us not think about how the processor works, but we're programmers. We're uniquely positioned to intellectually appreciate the wonderful, complex, engineering that goes into a processor.

In this talk, you’ll learn a little more about what it means for Ruby to be an “interpreted” language, how a processor executes programs, and what magical tricks processor designers use to make our programs go faster with every generation. If you’ve ever written a Ruby program, and understand that a computer has a processor in it, this talk is probably for you.

Headshot of Sean Griffin

Sean Griffin

Rails 5 Features You Haven't Heard About

We've all heard about Action Cable, Turbolinks 5, and Rails::API. But Rails 5 was almost a thousand commits! They included dozens of minor features, many of which will be huge quality of life improvements if you aren't using WebSockets or Turbolinks.

This will be a deep look at several of the "minor" features of Rails 5. You won't just learn about the features, but you'll learn about why they were added, the reasoning behind them, and the difficulties of adding them from someone directly involved in many of them.

Headshot of Seth Vargo

Seth Vargo

Easy Ruby Development and Deployment with Otto

Ruby is amazing, but it isn't always the easiest tool to get set up for local development. Vagrant continues to be a great tool for automated and reproducible development environments, but it often falls short of real production scenarios. Otto, the successor to Vagrant, encompasses the entire workflow managing local development environments, infrastructure creation, and application deployment in just three easy commands. You can have the Heroku-like workflow while maintaining full control over the stack, without all the overhead. Come meet Otto!

More and more, organizations desire extended control over their full stack. From development to production, controlling the entire stack ensures parity, reduces bugs in production, and ultimately makes for happier developers :). With Otto, you can say goodbye to staging/qa/testing environments because any user can easily create all the required infrastructure in a single command. This saves on infrastructure costs, maintenance, and makes for an amazing disaster recovery story!

Following the story of a fictitious Ruby app, I will deploy their application to AWS in just a two commands in live-demo format. Otto has codified knowledge of today's best practices for deploying applications, so even with no operational experience, a developer can create and manage infrastructure using today's best practices. Otto brings the "Heroku-like" workflow to the command line, but you control the entire stack from top to bottom!

After each phase, we will "uncover the magic", digging into the commands Otto is running, the decisions Otto is making, and the various customizations that can be injected along the way.

Headshot of Steve Klabnik

Steve Klabnik

Using Rust with Ruby

Ruby is a wonderful language, but sometimes, you need a little extra oomph. While C extensions are a great way to improve performance-sensitive parts of your application, you can use other languages too. In this talk, Steve will show off the Rust programming language and how to integrate it with Ruby. Rust is a systems language focused on safety, speed, and concurrency, and compliments Ruby nicely.

Register Now