Conference Programme
Keynotes Jim Weirich and Tim Bray have been confirmed!
We tried to get a good mix of high and low level, local and foreign, first-time and experienced etc etc. We hope you’re as excited about the programme as we are.
You can now see the programme here.
10 most common Errors in Rails apps
(confirmed)
We've analysed millions of errors from thousands of Rails apps. We've picked out the 10 most common, and will discuss how to prevent them.
|
|
12 hours to rate a Rails application
(confirmed)
Sometimes it's necessary to assess the state of a Rails application - whether it's to acquire a company, or to have an internal audit of whether everything's running smoothly. This talk describes how I go about doing this.
|
A rumble in the jungle?
(confirmed)
DIY application monitoring. Is your application monitoring strategy fall under the line of getting an email or phone call directly from your customers ? If so this talk might help...
|
Arduino and Ruby mixed in with a little shoes
(confirmed)
Using the ‘Ruby Arduino Development’ gem, learn how to use Ruby in projects utilising the Arduino electronics prototyping platform. Discover how to interact with a variety of sensors and output devices ranging from simple led’s to complex systems using wifi and the internet for communication. Use Ruby Shoes to directly integrate with the Arduino and provide a graphical interface.
|
Breaking things with Ruby
(confirmed)
Due to it's dynamic nature, ruby has ended up being one of the premier languages used by Ethical hackers all over the world. This talk will let people know what they've been using it for, going through some of the projects that are powered by ruby, and (demo gods permitting) will feature live demonstrations of compromising systems with ruby!
|
Denormalizing Your Rails Application
(confirmed)
At Songkick we've developed a pattern for gradually denormalizing our relational data to improve application performance. We'll discuss how to incrementally transition from one set of domain objects stored in MySQL, to another set stored in a key-value database.
We'll describe the architecture of our Rails application, which uses Presenters as first class domain objects, each one tailored for displaying a single page or module of information.
We'll demonstrate three Ruby projects:
* Silos - a simple memoization library used to persist the Presenters
* Asychronous Observers - a way to run Rails observers out of process, and keep our Presenter data in sync with our models.
* MegaMutex - a cross-process mutex library to allow multiple processes to safely work together on the same data.
|
|
|
Dependent Types: A Look At The Other Side
(confirmed)
A popular argument against static typing in mainstream languages is that it only prevents particular classes of errors, therefore unit tests are still necessary to help validate program correctness, so you may as well use a dynamic language and have type safety get checked as part of the test run.
Leaving the validity of this argument aside, modern static type systems have overcome this limitation. Dependent types allow unit tests, and more powerful/comprehensive tests, to occur within the type system itself. Certain errors and annoyances that are accepted as necessary burdens today can be solved with dependent types. Finally, programming becomes equivalent to theorem proving and its roots in mathematics are re-established.
Ruby's dynamically typed extreme will always make it a wonderful language to program in thanks to a uniform object interface and duck typing, among other things. Nonetheless, it is time to re-examine what static types have to offer as their definition and capabilities have changed dramatically. The presentation will use the dependently typed Agda programming language for examples.
|
Distributed Architectures with Rack
(confirmed)
The age of the monolithic Rails app is drawing to a close. Building out scalable, responsive, and distributed applications can be a challenge... So we'll talk about how Rack and other tools can make life much easier.
|
Everything you ever wanted to know about threads and fibers, but were afraid to ask.
(confirmed)
This talk is an in depth look at the problems with the threading implementation in MRI Ruby 1.8 and our proposed solution which boasts up to a 10x performance boost and introduces a Fibers API (which is compatible with Ruby 1.9). We will start by explaining a few core ideas about systems programming. We'll take a tour of various threading and I/O models comparing the advantages and disadvantages of each. From there we'll examine some of the problems with the threading implementation in MRI and how our patch remedies the situation. We'll finish up by showing off a demo or two of our threading fixes, Fibers API, and how you can use them to get fast, scalable I/O. Attendees will take away knowledge about threading implementations, core systems concepts, and Ruby implementation details that will help them write better more scalable Ruby code in the field.
|
|
From 'mate .' to 'rake release'
(confirmed)
In this session I'll share my experience building Ruby apps and gems. I'll focus particularly on getting your project released, whether it be a side project, a small plugin or gem, or an app for a client.
|
From Artist to Programmer
(confirmed)
How can we improve our professional practice as programmers? What can we learn from the creative processes in fine art?
|
|
Fun with Ruby and Cocoa to facilitate development on OSX systems
(confirmed)
Improve your development by using Apple's Cocoa API for your benefits with the power of MacRuby and RubyCocoa.
|
Genetic Algorithms with Ruby
(confirmed)
This talk will introduce into programming with evolutionary algorithms. We'll build and/or discover a small framework for creating genetic algorithms.
Programming evolutionary algorithms is like writing very large applications. You have a feeling about how the outcome should look like without knowing how to actually build it in detail. You start with a rough idea and iteratively shape the problem solution.
|
Getting the most out of ActiveRecord 3 with Arel
(confirmed)
One of ActiveRecord's most exciting new features is that it's built on top of Arel (ActiveRelation), a relational algebra library for ruby. This offers much more powerful query generation as well as the ability using a much wider array of backends besides SQL. Learn how to make the most of it here.
|
Gittin Down to the Plumbing
(confirmed)
Most of the Ruby community uses Git now, but there is a lot more to Git than just an Version Control System. If you look past the porcelain commands to the plumbing commands of Git, you can use it as a sort of key-value system to store all kinds of data easily with built in cryptographic integrity, compression and incrementally updating distribution mechanisms. This talk will introduce some of the Git plumbing commands that you probably have never heard of that are normally wrapped by the higher level Git commands, and we will show how to use the Ruby-Git library to script interesting functionality with them. You will leave with a better understanding of how Git works and maybe with some ideas of how to use Git for purposes other than a VCS.
|
I Think I Finally Understand Mocks
(confirmed)
Ten years ago, I reviewed the very first paper on mock objects and completely missed the point. Today, I think I finally understand why mocks win: even more than ordinary test-driven-design, they support a steady cadence for programming by encouraging you to hold less in your mind at any given moment. In the talk, I'll demonstrate that cadence by adding code to a webapp written with the Cappuccino Javascript framework and Sinatra.
|
IronRuby: The Ruby & .NET Love Child
(confirmed)
This is a session about IronRuby and how you can leverage it with your existing Ruby knowledge to access the .NET framework.
|
JavaScript for Rubyists
(confirmed)
It's strange that amongst this community of excellent developers - developers that pride themselves in their code and their openness - there are still a lot of Ruby developers who are still scared to foray into the wild world of JavaScript. Why is that? It could be Internet Explorer. It could be semi-colons and brackets. There are no good excuses anymore, though. JavaScript (in the browser and on the server) is quickly becoming the language of the next decade. I'll walk through some JavaScript fundamentals, how to jump over the dangerous pitfalls, and how to make use of some of the awesome features JavaScript provides.
|
Just another Jar File? Using JRuby in your Java projects.
(confirmed)
Ruby is ideal for new projects, but what about your legacy applications?
JRuby has gained attention as a way for Ruby programs to benefit from the Java JVM's native threads, memory management, and performance. However, JRuby also lets you harness Ruby's powerful meta-programming in your existing Java programs.
Come and see Java access database tables with ActiveRecord, run templates with ERB, and call Ruby blocks on Java collections. Inject some JRuby into your Java projects and you'll never look at Java the same way again!
|
MacRuby for Ruby Developers
(confirmed)
Developing applications on the Mac is fun and instructive but if you're a Ruby developer Objective-C can be intimidating at first. Fear not! With MacRuby you can still enjoy your favorite language by leveraging all the power of Cocoa and the Mac and gradually learn the new API. Learn how to TDD with MacRuby, how to persist objects with CoreData and to use XCode only when you need to.
|
Notitia linguarum - Multinational Ruby and Rails
(confirmed)
An introduction to the many challenges in developing multilingual applications, an overview of the current state of affairs in Ruby and Rails, some do's and don'ts, and a few humorous anecdotes.
|
Oh S***: How to bring a big Rails website down (and how not to)
(confirmed)
Scribd.com is one of the largest Rails sites on the Internet, and at that scale, even innocuous new features or fixes can bring the website down. I'll walk through some of my mistakes and tell you what I've learned about writing code for giant Rails sites.
|
Pure RSpec
(confirmed)
Code cleaner RSpec using the latest features and patterns: let, subject, shared examples, shoulda, and more.
|
|
Rack Middleware Goodies
(confirmed)
A year's review, grab bag style, of tasty new and exciting Rack middleware you can immediately drop into your application to make your life easier -- regardless of your Ruby web framework persuasion.
|
Rocket Fuelled Cucumbers
(confirmed)
You start a brand new green field Ruby project. You elegantly glide around your application sprinkling it with acceptance tests using tools like Cucumber. Time passes, test numbers grow and suddenly you find yourself wadding through the thick sludgy swamp of a 1+ hour test build. Your ability to deliver code in a timely manner gets difficult. Discipline gets slack "Well I know that fix will turn the build green so lets just deploy it anyway". Commit code now, find out in an hour if it breaks.
Joseph Wilk presents ways to battle performance problems with Acceptance tests. He will be focusing examples around Cucumber though the ideas and principles apply to many testing frameworks. He will be demonstrating how tools like TestJour can be used to distribute Cucumber features over many machines. The use of external cloud based testing services such as Devver. Using in-memory browser tools such as Celerity to speed up JavaScript testing. Reducing the need to start apps every time with tools like Spork and Snailgun. Demonstrating ways of intelligently selecting the optimal set of tests to run (using tools like Cucover), looking at ways of caching SQL activity based on Cucumber Scenarios (minimising database operations), sharing slow starting services, using combinatorial solutions to reduce large test sets and breaking up large systems upon domain boundaries.
|
RTW (Real Time Web): WTF (What's That For)?
(confirmed)
Real Time Web (RTW) was a buzz word of 2009, but what is it, and what does it mean to you? Does RTW offer just web chat, or are more things possible?
|
|
Stonepath: State-Based Workflows in Ruby
(confirmed)
"Workflow" is a generic concept that can mean different things to different people – a book author is going to think of workflow a lot differently than a photographer processing images. Whether you are implementing a simple shopping cart or building a complex system to track the review of legal documents, there are abstract concepts of states, transitions, actions, actors, assignments, tasking, concurrency, sequences, and dependencies we can use.
Based on his experience in Federal and Local Governments as well as legal compliance applications for the enterprise, David has created the StonePath Project, a Ruby gem that allows you to model state-and-task-based workflow. In this talk, David will talk about this modeling methodology, the code to implement it, and how it has been used successfully in applications for the U.S. State Department, The Washington D.C. School System, and several Fortune 500 companies. You will leave this talk about to use the StonePath gem for your own workflow modeling needs.
|
Taking the next step in Web Development with Document Databases
(confirmed)
After having spent years with SQL Databases and ActiveRecord it's time to take things to the next level. In this talk I will show you how you can use document databases like CouchDB to create simple and beautiful solutions to problems that are hard to tackle with SQL and tables. Among other things we will look at dynamic attributes in an address book and threaded posts in a forum. This talk will be hands on and code intense, not a generic introduction to CouchDB.
|
Tales of the Resistance; A Dialog on the Ruby Insurgency
(confirmed)
Seamus sits at his desk putting the final touches on his Ruby script for reconciling invoices when he hears his boss' footsteps.
He's not doing anything wrong, Ian is a reasonable man, but he knows that Ruby isn't officially sanctioned by the committee for software standardization and furniture placement.
Will he get in trouble?
Ruby has been so useful that he's decided that now is the time he's going to take a stand. Last week he talked to Conner at the pub after the Ruby Brigade and they came up with a strategy for Ruby adoption.
Will he succeed? Stay tuned for tales of the resistance.
|
|
Teaching programming using Ruby
(confirmed)
Meet Jake and Jane. Jake wants to make a game for his PC. Do you teach him programming, then make the game, or do you just dive in to making the game, and teach the programming as you go along? Jane wants to learn programming. Do you teach her the same way you teach Jake, or is this different? Or, is there some third way that might offer a combination of the two approaches, which will keep both of them happy? Let's have a look and find out.
|
The Joy of Painting with Ruby
(confirmed)
An introduction to using Processing via our favourite programming language, Ruby. The talk will bring attendees up to speed with the visualisation framework Processing and how to get started using a Ruby wrapper that utilises the framework via jRuby.
Covering the main API and example visualisations that can be created with Ruby-Processing, and touching on how to distrubute and share created artwork. The talk will finish with a live interactive code session to create living artwork with the audience's participation.
|
UNIX: Rediscovering the wheel
(confirmed)
"Those who don't understand UNIX are condemned to reinvent it, poorly."
We in the Ruby Community seem to have a habit of re-inventing things. Sometimes this is for good reason, but in some cases we don't know we're even doing it! We're wasting valuable time that could be spent learning Erlang!
UNIX-like operating systems have been around for decades and lots of problems have come and gone in that time. I'm going to talk about some of the tools available that can be used to solve common Ruby and Rails deployment and development problems.
|
Vim for the modern Rubyist
(confirmed)
Your programming language should not be the only one learning from the past. Vim encompasses 30 years of text editing best practices and lessons learned. This session will demystify efficient editing within Vim and allow you to invest in your future, while embracing the past.
|
|
Write Bad Code
(confirmed)
How to leverage speed-coding and technical debt for business success.
|
You're Doing it Wrong
(confirmed)
As an experienced Rails consultant, and co-author of the upcoming Rails Antipattens book, Tammer Saleh has seen his fair share of terrible code. He'll discuss some common AntiPatterns he's seen in the wild, and will walk through the process of refactoring them to bring them in line with current best practices. Watch as he transforms code from appalling to awesome.
|












