Ancient City Ruby

April 3 & 4
St. Augustine, FL

Last year’s Ancient City Ruby established a tradition of discovery and craftsmanship in northeast Florida. That tradition continues this April with even more opportunities to cultivate your craft. Our expert panel of speakers will be combined with a day of workshops that cover a range of topics from beginner to advanced, so if you’re passionate about Ruby, you won’t want to miss Ancient City Ruby 2014.


Wednesday, April 2

  • 9:00am - 4:00pm Workshops

  • 7:00 - 9:00pm Registration Reception at Meehan's

Thursday, April 3

  • 8:15 - 9:15am Breakfast & Registration

  • 9:00 - 9:45am

    Leon Gersing

    Leon's Allegory of the Cave

    What is the role of the software developer in the modern world? We are more educated now than during any time in recorded human history. We have more access to tools and the ability to craft our own in order to better communicate with one another; to see the world in all of its various forms, beautiful and strange. All of this information, all of this knowledge and yet the quest for truth, understanding and wisdom has become increasingly strained. We adopt the ideologies and rituals of archetypes instead of masters and therein feel the hollowness of the modern human condition. In this session, I will present to you the teachings of my masters as I have come to understand them and the wisdom I’ve gained over the years in my relentless pursuit for truth in the modern world. Our collective existential ennui is distorting the very fabric of reality. Seeing the world as it truly is can free our minds to the infinite possibilities that lie before us. Can we be more than the context we are born into? Can we rise above the confining binds of hierarchy, class, status and the distortions of those we choose to associate ourselves? Let’s take some time to remember who we are, where we are going and discover, perhaps, why we are here.

    Leon tends binary zen gardens. He currently works with the wonderful folks at GitHub building tools to make collaboration even better for developers. An avid public speaker, Leon travels the region speaking on topics ranging from learning Ruby to humanity's quixotic reverence for time and its impact on the collective unconscious. Leon loves hats, being barefoot and talking for hours with friends old and new. His favorite languages currently are Ruby, JavaScript, Objective-C, and Go. You can find him online at

  • 9:45 - 10:00am Sponsor Lightning Talks

  • 10:00 - 10:45am

    Justin Searls

    Breaking Up (With) Your Test Suite

    It's about time for the Ruby community to adopt a more mature and nuanced approach to testing.

    Gone are the days when "is it tested?" was a boolean question. It no longer makes sense for a single test suite to accomplish numerous objectives, because the design of our tests are so influenced by the benefit we hope to realize from them. What's less clear to most developers is the best approach to breaking a test suite up.

    This talk will introduce a testing architecture that's appropriate for the post-monolithic age of Ruby application development. We'll discuss why each test suite can provide at most one type of confidence and one type of feedback. I'll introduce a set of five narrow, focused types of test suites and explore how each of their roles can combine to provide all of the value that test automation can hope to offer. Together, we'll gain the ability to discuss the value of each test with much greater precision and subtlety.

    Justin Searls has two professional passions: writing great software and sharing what he’s learned in order to help others write even greater software. He has a software studio in Columbus called Test Double, where he’s currently helping clients build well-crafted user experiences for the web.

  • 10:45 - 11:00am Sponsor Lightning Talks

  • 11:00 - 11:30am Break

  • 11:30 - 12:15pm

    David Copeland

    Let's Write Some Weird Ruby

    Although "being OO" isn't an end unto itself, we can often learn a great deal about programming by taking things to the extreme. Branching, nil checks, and attributes are not very "OO" and are often the source of great complication in our code. What would our code look like if we did everything we could to avoid them?

    In this talk, we'll create some odd-looking constructs and write some weird code in an attempt to understand just how useful branching, nil, and attributes really are. Do these constructs make our code easier to read and understand, or are they vestiges from our shared programming backgrounds like C, PHP, and Java?

    David Copeland is a programmer and author. He wrote "The Senior Software Engineer" and "Build Awesome Command-Line Applications in Ruby", and has over 16 years of professional development experience. He's managed high-performance, high-traffic systems at LivingSocial, helped build the engineering team at Opower, and worked consulting gigs both large and small. Currently, he's a lead engineer at fashion start-up Stitch Fix, building a platform that will change the retail shopping experience.

  • 12:15 - 1:30pm Lunch

  • 1:30 - 2:15pm

    Katrina Owen


    When is it okay to build an orbital laser to destroy an ant-hill?

    Many cry "overkill" when design principles are applied to trivial problems. And for good reason: in the context of work, excessive embellishment gets us into trouble. Complexity costs us time and money.

    This talk explores how stepping outside of the realm of work and applying outrageous engineering practices to toy problems can deepen our understanding of the trade-offs that we make. Comically simple problems provide the perfect ground for developing actionable heuristics which can be applied to those monstrous complexities that we face in the real world.

    Katrina accidentally became a developer while pursuing a degree in molecular biology. When programming, her focus is on automation, workflow optimization, and refactoring. She contributes to several open source projects, and is the creator of

  • 2:15 - 2:30pm Sponsor Lightning Talks

  • 2:30 - 3:15pm

    Richard Schneeman

    Testing the Untestable

    Good tests are isolated, they’re repeatable, they’re deterministic. Good tests don’t touch the network and are flexible when it comes to change. Bad tests are all of the above and more. Bad tests are no tests at all: which is where I found myself with a 5 year legacy codebase running in production and touching millions of customers with minimal use-case documentation. We’ll cover this experience and several like it while digging into how to go from zero to total test coverage as painlessly as possible. You will learn how to stay sane in the face of insane testing conditions, and how to use these tests to deconstruct a monolith app. When life gives you a big ball of mud, write a big ball of tests.

    Richard writes Ruby at Heroku and teaches Rails at the University of Texas. When he isn't obsessively, compulsively playing Starcraft 2, he writes such gems as Wicked, Sextant, and oPRO. Richard is a proud graduate of Space Camp and enjoys the fine art of sledge hammering.

  • 3:15 - 3:30pm Sponsor Lightning Talks

  • 3:30 - 4:00pm Break

  • 4:00 - 4:45pm

    Ben Lovell

    Fast, Testable and SANE APIs

    By now, we've all written JSON APIs in Rails. But how do you write fast, testable and sane APIs? I'll guide you through the trials of designing and building awesome, scalable APIs. We'll cover rails-api, activemodelserializers, and all the associated goodness that our ecosystem has to offer.

    I'll speak on the approaches to authentication, how to ensure we remain good REST/HTTP citizens and maybe if I have time I'll share some of my top secret beard grooming tips!

    Ben takes himself very seriously. He works for 1minus1, a digital agency hailing from Farnham, the town that time forgot - in sunny England. He is a rubyist, go-nut, open source lover and contributor, and has spent the last XX years developing the most epic APIs. When not shipping bugs, Ben can be found grooming his beard.

Friday, April 4

  • 8:15 - 9:15am Breakfast

  • 9:00 - 9:45am

    Terence Lee

    Ruby & You

    On November 22, 2013, a devastating security exploit was publicized to the Ruby community: Heap Overflow in Floating Point Parsing (CVE-2013-4164). There was no fixes provided for Ruby 1.9.2. In fact, Ruby 1.9.2 has never had a formal end of life announcement and at Heroku we realized this impacted our ability to provide reliable runtime support. Not wanting to leave our customers high and dry, Heroku released Ruby 1.8.7 and 1.9.2 security patches on our runtimes and pushed to get them upstream. This process lead me to receive commit bit to help maintain security fixes for 1.8.7 and 1.9.2. Over the last few months with help from zzak, I’ve been figuring out how to work with ruby core as well as proposing policy changes for more transparency. This talk, goes through the steps and mistakes that I learned on how to interact with members of ruby core. We’ll remove the opacity around getting contributions upstreamed and how you can have meaningful discussions with the implementers about the language we all know and love. Help us make Ruby better.

    Terence leads Heroku's Ruby Task Force maintaining the Ruby stack and OSS projects such as Bundler. He also spends time helping with the Rails Girls movement. When he's not going to an awesome Heroku or Ruby event, he splits his time between Austin, TX, Davie, FL, and San Francisco, CA.

    (Terence loves Friday hugs, EVERY DAY OF THE WEEK! Give him a big one when you see him!)

  • 9:45 - 10:00am Lightning Talks

  • 10:00 - 10:45am

    Craig Kerstiens

    Postgres Performance for Humans

    To many developers the database is a black box. You expect to be able to put data into your database, have it to stay there, and get it out when you query it... hopefully in a performant manner. When its not performant enough the two options are usually add some indexes or throw some hardware at it. We'll walk through a bit of a clearer guide of how you can understand how database is doing from a 30,000 foot perspective as well as analyze specific problematic queries and how to tune them. In particular we'll cover:

    • Postgres Caching
    • Postgres Indexing
    • Explain Plans
    • Extensions
    • More

    I'm part of the team at Heroku. I've worked in a variety of roles from some engineering to product management while at Heroku. Early at Heroku I launched our Python support and now am the Product Manager for the Heroku Postgres Database as a Service product. I blog a good bit about Postgres, startups and other things at and curate Postgres Weekly.

  • 10:45 - 11:00am Lightning Talks

  • 11:00 - 11:30am Break

  • 11:30 - 12:15pm

    Josh Adams

    Introduction to Elixir for Rubyists

    Elixir is a concurrency-oriented programming language built atop the Erlang VM. Its syntax is very Ruby-influenced, and it takes some great features from the Python world as well. In this talk, I'll provide a quick introduction to the language. I'll provide just a quick overview of the language syntactically, as well as cover some areas where it differs wildly from Ruby.

    I'm Josh Adams, CTO of Isotope Eleven and purveyor of ElixirSips. I've built large-scale Ruby systems since 2005, and began learning Erlang in the middle of 2013. I moved from Erlang to Elixir after a few months, and have been screen casting my journey learning the language ever since.

  • 12:15 - 1:30pm Lunch

  • 1:30 - 2:15pm

    Aaron Patterson

    Oh, Oh, Oh, It's Magic!

    You know? Let's explore computer vision using Ruby and OpenCV! In this talk, we will learn techniques for speeding up our code, fetching data from the network, and doing image recognition, all in Ruby. Let's harness the power of Sauron's Eye (my webcam) together!

    Aaron was born and raised on the mean streets of Salt Lake City. His only hope for survival was to join the local gang of undercover street ballet performers known as the Tender Tights. As a Tender Tights member, Aaron learned to perfect the technique of self-defense pirouettes so that nobody, not even the Parkour Posse could catch him. Between vicious street dance-offs, Aaron taught himself to program. He learned to combine the art of street ballet with the craft of software engineering. Using these unique skills, he was able to leave his life on the streets and become a professional software engineer. He is currently Pirouetting through Processes, and Couruing through code for AT&T. Sometimes he thinks back fondly on his life in the Tender Tights, but then he remembers that it is better to have Tender Loved and Lost than to never have Tender Taught at all.

  • 2:15 - 2:30pm Lightning Talks

  • 2:30 - 3:15pm

    Konstantin Haase

    Hack Me If You Can

    Security is important. Yet, it's where a lot of web developers have little to no experience. We'll look at a whole range of opportunistic attack vectors that can be used against web applications, and how we can protect us against them.

    This talk will include one currently undisclosed attack (at the time of writing).

    As maintainer of Sinatra, Konstantin is an Open Source developer by heart. Ruby has become his language of choice since 2005. He regularly contributes to different widespread projects, including Rubinius, Rack, Rails and MRI. In 2012, he received the Ruby Hero Award for his outstanding contributions to the community. He now works at Travis CI in Berlin, Germany.

  • 3:15 - 3:30pm Sponsor Lightning Talks

  • 3:30 - 4:00pm Break

  • 4:00 - 4:45pm

    Evan Machnic

    Juggling Children ... and Rubies

    "DAD! I'm hungry."
    "DAD! Can you tie my shoes?"
    "HONEY! The baby needs a diaper change."

    How do you balance all the distractions with raising children and still be able to deliver at your job? As Ruby developers, it's something that many of us can relate to but few really talk openly about. I work full-time at Engine Yard, create videos for Code TV, and also maintain RailsInstaller. All of that needs to balance nicely with my family and this talk will explore some of the problems I've faced and how I address them.

    I've been working with Ruby since 2008 and working at Engine Yard since 2011. In my free time, I love stand-up paddle boarding, rock climbing and hanging out at the beach with my family.


Refactoring Rails


  • Katrina Owen

When met with a tangled code base, how do you decide what to refactor? How do you know if you're making progress?

Blog posts and books can make it look easy. "Here's the synthetic example, now use X scripted transformation." Unfortunately, codebases in the wild do not come with the right refactoring patterns hyperlinked.

In this hands on workshop, you will be presented with an actual Rails application ripe with code smells, tight coupling, leaky encapsulation, and missing abstractions. It's much more than a code sample, written by a real team of developers under a deadline.

We will practice identifying issues, explore strategies to attack them, and put them into practice. This is not a walk-through of every refactoring in the cannon; this is practical application of great techniques. After this workshop you will be armed to attack your own legacy applications.

A laptop with a working ruby development environment: Ruby 1.9.3 or 2.0, git, any OS with compilation support (GCC on Unix, DevKit on Windows) and a working understanding of Ruby and Rails (3+ months experience).

About Katrina Owen

Katrina accidentally became a developer while pursuing a degree in molecular biology. When programming, her focus is on automation, workflow optimization, and refactoring. She contributes to several open source projects, and is the creator of

Ruby on Rails: First Expedition


  • Beverly Nelson

This introductory workshop gives you a first look at application development with Ruby on Rails. We will get everyone up and running with “Hello World”, practice some Ruby basics, and progress to building a complete Ruby on Rails application. During this all day workshop we will get a taste of application structure, design, version control with git, and deployment.

The curriculum is designed for developers and beginners with no Ruby on Rails experience but a general familiarity with html, web application basics, and relational databases will be helpful. In this general introduction participants can expect to come away with a high level overview of how to build web apps quickly with Ruby on Rails and receive tools to further their learning. This workshop is a great starting point to hit the ground running.

Laptop, Pre-workshop questionnaire

About Beverly Nelson

Based in Florida, Beverly is a PHP turned Ruby developer at PureCharity. She combines her passion for programming and education through teaching others to code. She serves with other mentors in the RubyFriends user group, teaches kids to code at Tech Club, and is actively involved in organizing Railsbridge events. When she’s not coding, she enjoys time with her family, reading, and assisting with First Lego League robotics.



  • Micah Cooper
  • Paul Elliott
  • Jon Allured

Long before Sublime Text 2 was a contender for 1337est (most elite) editor among developers, vim was the clear choice (if you overlook emacs).

Vim has a very steep learning curve. Left to your own devices, it can take months or even years before it becomes more efficient for you than a standard text editor. Once you get to that point, though, there is no turning back. No other text editor will satisfy your hunger for keyboard efficiency.

In this workshop, we'll show you how to use vim to test drive an application. Along the way we'll show you how we use vim, the command patterns to help you master vim, and the plugins we use to speed up Rails development. This workshop is geared towards people who have little experience with vim. Our goal is to expose you to the mechanics of vim which will shorten your learning curve dramatically. By the end, you'll feel comfortable enough to start using vim as your everyday editor.

A laptop with wifi and ssh.

About Micah, Paul & Jon

Micah, Paul and Jon are part of Hashrocket's passionate and friendly consulting team. Day to day they play the role of developers helping craft code for their clients with Vim as the weapon of choice. They also lead and speak regularly at user groups, meetups, and conferences.

All workshops take place on Wednesday, April 2nd from 9:00 AM - 4:00 PM with a break for lunch.


  • Brad's Deals
  • Constant Contact
  • Heroku
  • Cloudspace
  • Code School
  • HP
  • Less Accounting
  • Onlife Health
  • Transparentrees
  • Ignite
  • Kyn
  • Montoya & Associates
  • O'Reilly
  • Stickermule
  • The Bungalow
  • UNF

Venue & Lodging

Join us for the second year in a row at the delightfully historic Casa Monica Hotel in the heart of beautiful St. Augustine, FL.

The Casa Monica is located at 95 Cordova St in St. Augustine, FL. The ACR Conference group rate is $199 per night.

Book online at the ACR group rate

Fine Print

Hotel charges are separate from event registration.

The Casa Monica’s policies are as follows:

  • Smoke–free policy: The Casa Monica is a smoke–free hotel, including all public areas, meeting and banquet facilities, and guest rooms. To protect the smoke–free environment, the Hotel will post a $250 cleaning fee to the incidental account of any guest who smokes in a hotel room, or a $500 cleaning fee for smoking in a hotel suite.
  • Security: Any and all property in the meeting or function space is at the sole risk of the owner.

The Casa Monica features:

  • Wireless internet (in–room and public areas)
  • Pool and fitness center
  • Starbucks Coffee

Hotel charges are separate from event registration. If The Casa Monica room block is full, you can find lodging (at standard pricing without room blocks) at the Hilton St. Augustine Historic Bayfront from $189 per night, or at the Best Western Spanish Quarter Inn from $120 per night.

The ACR Experience

The Return of the Black Raven

The Black Raven

What other conference has a pirate ship? Set sail on the Black Raven with food, drinks, friends, and all the pirate entertainment you can handle. The voyage includes a pirate crew, skits, songs, and even a swashbuckling melee!


Ripley's Ghost Train Adventure

The Ghost Train

There’s more than just history along these cobblestone streets. Come explore the ghostly past and winding roads of the Ancient City on an award-winning 90-minute investigation that starts at the Ripley’s Believe it or Not! Museum.


Late Night at Meehan's Irish Pub

Late Night Revelry

The party continues at Meehan’s, our favorite Irish pub. Whether you cruise the high seas or uncover ghosts from days gone by, make sure to stop by the open-air courtyard at Meehan’s.

Everyone’s Invited

Late Night Games

Late Night Games

If you prefer to wind down in a more … tactical manner, join us back at the Casa Monica for an assortment of card & tabletop games. We’ll provide our favorites, but you’re more than welcome to bring your own.

Everyone’s Invited

Ancient City Ruby 2013

Last year’s conference was one to remember, and you definitely won’t want to miss what we have in store for 2014. But don’t take our word for it – watch the video or visit last year’s site.