RuLu 2014 Speakers

Joshua Ballanco

What's Eating Ruby?

Will you be writing Ruby 10 years from now? 20 years? Recently Ruby has been described as “maturing” or even “dying”, but why? Sure, many up-and-coming languages are better than Ruby at some things, but can any of them really replace Ruby for all things? Indeed, why shouldn’t Ruby stick around? We’ll take a broad look at how Ruby has influenced the development of new languages, and whether or not Ruby can remain relevant in the face of increasing competition.

About Joshua

Joshua has worked with Objective-C since 2002 and Ruby since 2004. He has built operating systems with Apple, local news websites with AOL, and somehow managed to finish a Ph.D. along the way. Currently, Joshua is Chief Scientist at Burnside Digital where he works with an amazing team of engineers and designers to solve problems for a wide range of clients. He works and lives in Ankara.

Last year, Joshua gave a great talk on Ruby implementations. Welcome back, Josh!

Paolo Perrotta

A Problem with Frogs

When you tell people that you’re a programmer, they think that you work with complicated stuff. But you know better: not everything that you do is complicated. Most things that you do are much worse than that.

This is a speech about the theory of complexity—but don’t worry, it’s more fun than it sounds. I’ll try to answer a question that applies to most things you do as a developer, from writing code to talking to customers: how do you solve a problem, when you don’t even know what the problem is?

About Paolo

Paolo Perrotta has fifteen years of experience as a developer, ranging from embedded to enterprise software, computer games, and web applications. Paolo travels the world to mentor agile teams, and to pair with coders who are better at this coding stuff than he'll ever be. He has a base camp in Bologna, Italy. He wrote the Metaprogramming Ruby book for the Prags.

Tom Stuart

Compilers for Free

Partial evaluation is a powerful tool for timeshifting some aspects of a program's execution from the future into the present. Among other things, it gives us an automatic way to turn a general, abstract program into a faster, more specialised one.

This maths-free talk uses Ruby to explain how partial evaluation works, how it can be used to make programs go faster, and how it compares to ideas like currying and partial application from the world of functional programming. It then investigates what happens when you run a partial evaluator on itself, and reveals some surprising results about how these techniques can be used to automatically generate compilers instead of writing them from scratch.

About Tom

Tom is a computer scientist and programmer. He has lectured on optimising compilers at the University of Cambridge, co-organises the Ruby Manor Conference, and is a member of the London Ruby User Group. His latest book, Understanding Computation, was published by O’Reilly in 2013.

Emily Stolfo

Wrapper's Delight

Many of us have found ourselves writing a Ruby API to wrap another API but caught up in the tension between feature over-exposure and idiomatic consistency. It isn't always obvious whether it's better to favor flexibility by exposing the underlying API itself or to commit to a concrete level of abstraction. In using the Ruby driver to MongoDB as an example, we'll explore some of the choices us wrappers have to make in building the best API.

There are two main points to keep in mind while building an API and making design choices: Ruby gem API design is a form of user experience design and a good API should be easy to maintain. We'll take a look at a number of UX principles and see how they apply to API design and discuss how to optimize for unanticipated changes in what we are wrapping.

About Emily

Emily is an Engineer / Evangelist with the MongoDB Ruby driver team and an adjunct faculty at Columbia University. Before joining MongoDB Inc, Emily worked as a Ruby on Rails developer at a NYC startup but her history with Rails goes back to a research project at Paris’ Louvre Museum. In addition to enjoying programming and art, Emily likes to travel and run when not teaching Rails in her free time.

Yannick Schutz

Postgresql for the ruby/rails developer

Frameworks tend to abstract more and more the database to provide users a similar experience using mysql, sqlite, postgresql and some even try to abstract over MongoDB. It is important to bring back the power of the database to the web developer.

The database is where all your data lives and is the most important piece of your architecture. Tame your database and learn its inner power to bring a better experience to your users. My favorite animal is PostgreSQL. What you will learn here:

  • How multi columns indexes, partial indexes and functional indexes will turn your old Lada to a Lamborghini.
  • JSON and Hstore columns. Bring the NoSQL to your SQL with grace. See how your tables says thanks when you stop adding columns to them every 5 minutes when a store column give you power for the next ten features.
  • Arel: How to level up your ActiveRecord to do what basic it cannot do alone. I'm looking at you OR queries.
  • Plain text queries in your Ruby and how it is not always SQL injection-ish. SQL can do magical stuff for you too.
  • psql, EXPLAIN ANALYZE, testing indexes, using pg_stat_statements, and some queries that will tell you what is wrong with that database.

It might also interest you, GO/PHP/Python dev!

About Yannick

Belgian web developer using Ruby, Go or whatever tool/language is needed for the job to be done. He loves coffee, beers and also emojis! Yannick is the organizer of ruby burgers, a simple event where you just come, eat a burger and chat with fellow developers. He is a young new dad and love that situation.

Chris Kelly

String Theory

Peer into the dark and mysterious world of Ruby internals, delve to the point that the basic String becomes a complex web of optimizations, flags and peculiarities. The starting point for String Theory is the observation that immutable strings are more performant than mutable ones, and 23 character stings are more performant than longer ones. The how and why of these idiosyncrasies is where our journey begins. We'll chip away at the Ruby VM to explore how String is implemented in C, to fully understand String Theory we'll need to journey into Ruby memory structures and ultimately to the garbage collector. Get your spelunking gear ready as we discover how the GC has evolved, once we emerge from the darkness you'll see Ruby in a whole new light.

Chris

Chris believes that flourishing is the key to happiness, servers are an anachronism, and the person that will create SkyNet has already been born. He is an avid Rubyist and spends an inordinate amount of time thinking about the philosophy of software. Chris lives in San Francisco, tweets occasionally, speaks often, and drinks coffee in between. At GitHub he interacts with humans and computers.

Arnab Deka

Modern Concurrency Practices in Ruby

So you think that concurrency is a subject lost in the Ruby world? That it's not practical because of the GIL? That the concurrency paradigm that's bundled with Ruby (a.k.a threading) is not the best way to do concurrency? Or that you already have multi-processes and don't need multi-threading concurrency.

Think again. The Ruby concurrency story has advanced a lot in the last couple of years. Have you heard of people talking about actor-based concurrency, using futures, Software Transactional Memory, channels etc. and want to know more about those?

This talk is a primer on these different paradigms of concurrency, briefly touching on the traditional threads-based model, but focusing more on modern paradigms like actors/futures/STM/channels, with examples and demos. Along the way we'll also see what's already possible in Ruby (and in other implementations like JRuby and Rubinius, using gems like Celluloid and friends).

About Arnab

Arnab is currently a Senior Software Engineer at LivingSocial and has been writing Ruby (i.e. having fun) since 2008. He loves to travel around the world - and has so far experienced living and working in Pune, Bangalore, NYC and Seattle (previously part of the AWS team at Amazon.com). Arnab has been crafting software professionally for 9 years and is more passionate about it every new day! Learn more at github.com/arnab.

Sam Phippen

Anatomy of a mocked call

RSpec is often accused of being "full of magic". For the most part: I disagree. However: mocking a method on an object, calling it, recording that call and then working out if expectations have been violated after the fact is a complex set of operations.

This talk will give a guided tour, with code, through RSpec's mocks. We'll look at one of the most simple cases possible. We'll also look at the most complicated case I can conceive of. Hopefully everyone will learn a little something about testing whilst watching this talk.

About Sam

Sam is a swashbuckling hacker from London, UK. He fixes every size of data problem at Fun and Plausible Solutions. He helps fight for the forces of justice as a member of the RSpec core team. He's sad that he can't hug every cat.

Eloy Durán

RubyMotion under the bonnet

RubyMotion is a toolchain that let’s you develop native applications using a the Ruby language. This talk will focus on what makes RubyMotion tick and take a look at Ruby from a static point of view, covering topics such as AOT vs JIT compilation, memory management, and interfacing with different languages and runtimes.

About Eloy

Eloy Durán is a professional gesticulator hailing from Amsterdam where he lives on a houseboat. He has long been working at the intersection of open-source Ruby and Objective-C/Cocoa on open-source projects such as RubyCocoa, MacRuby, and CocoaPods (the dependency manager for Objective-C projects). This combination has lead to his current job at HipByte where he works on RubyMotion, bringing the joy of Ruby to OS X and iOS development. You can find him on github and twitter.

Cameron Daigle

More Code, Fewer Pixels

Removing the "Design Phase". Eschewing Photoshop. Using frameworks. The malleable, flexible, agile nature of web apps these days requires a drastically new approach to how UI concepts are transformed into working code.

Join me as I dive into the vagaries of Hashrocket's design-develop-revise-repeat feedback loop – and learn how we turn static markup into an essential communication tool through rich UI prototyping, generated content, and general cleverness.

About Cameron

Cameron Daigle is a senior designer/consultant/purveyor-of-common-sense at Hashrocket, a design & development shop that specializes in Ruby on Rails and iOS. He’s been working with both platforms since 1.2 and 2.0, respectively, and has been building for the web since long before that – but through it all has maintained a deep and steadfast love for beautiful user experiences.

Konstantin Tennhard

Large-scale Rails Applications

Building large-scale applications is a demanding process – no matter which framework you use. The true challenge, however, lies in maintaining these applications. To guarantee maintainability, we need to focus on the following three aspects: comprehensibility, modularity, and robustness. And easy to maintain applications make developers happy!

This talk is about building large scale applications on top of Ruby on Rails. The framework is known for getting you started quickly, but is it still a good choice when your application grows past 100,000 lines of code?

During this talk, we will mainly focus on how to model complex business processes efficiently, that is, how to extend Ruby on Rails with a modular service-layer that plays nice with ActiveRecord. You will see how to take advantage of some of Ruby's unique and more advanced language capabilities.

But most importantly, you will learn how to use all these techniques to improve the design of any existing Rails application.

About Konstantin

Konstantin Tennhard is a computer scientist who specializes in developing large scale internet applications. He is passionate about software design, test driven development and all sorts of modern web-technology. His main scientific interest is natural language processing and machine learning.

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.

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 situation paved the way for me to join ruby-core to help maintain security fixes for 1.8.7 and 1.9.2. Over the course of the year 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 as well as telling war stories of my experience on 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.

About Terence

Terence leads Heroku's Ruby Task Force curating the Ruby experience on the platform. He also works some OSS projects such as Ruby (the language), Bundler, as well as helping with the Rails Girls movement. When he's not going to an awesome Heroku or Ruby event, he lives in Austin, TX, the taco capital of America.

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

PJ Hagerty

Coding and the Mozart Effect

Most developers code to music… some are even musicians themselves. Is it possible to streamline workflow by adjusting how we listen to music and what music we listen to? Studies have shown that exposure to certain kinds of music can help to develop cognitive strength and improve performance of tasks.

This talk will explore those studies and show what sort of things can be done to improve the listeners environment and help people to create better code.

About PJ

A Ruby developer for the last 6 years, PJ currently works at Engine Yard as a Community Engineer. Additionally, he organizes the Western New York Ruby Brigade. Traveling to conferences and Ruby meet ups around the US and Canada, PJ likes to spread the word on the importance of community and coding, stressing the importance of outreach and focusing on the human side of being a coder.

Phil Nash

Asset Redux

Web application speed is paramount. Our users want our application and they want it now! We can optimise application code, database queries and so on, but that's all wasted if the page takes ages to appear. A fast back end and a slow front end can end up leaving a bad taste in the mouth.

Using Rails, we'll look at the best ways to speed up the delivery of your application. Going beyond just minifying our assets, we'll look at techniques to get our site in the user's browser quicker, improving both real and perceived speed. We'll also discover the best tools to use to check out speed and get a better idea of the user's opinion of the site.Once finished, our sites will load in a flash!

About Phil

Phil is a Ruby and JavaScript developer from London. He works at Mint Digital to, amongst other projects, get beer to your desk on a Friday afternoon. Phil loves test coverage, great beer, hackathons, and gems with puns in their names. Get all four together for maximum points. He once made a pull request to Rails... it's still open.