Konstantin HaaseTravis CI
As maintainer of Sinatra, Konstantin Haase 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.
Keynote: Magenta - The Art of Abstraction
Patrick McKenzieKalzumeus Software
Patrick McKenzie is the founder of Kalzumeus Software and Appointment Reminder. Ruby on Rails got him both out of the purgatory of Enterprise Java applications and, eventually, out of being primarily a developer. The quickest way to encapsulate his career is “making money for software companies using code to achieve marketing/sales objectives.” He'll be speaking about that topic, both for the benefit of software companies and how to use these tricks as an individual developer to accomplish one's career goals.
Keynote: How to make a million dollars with Ruby on Rails
Amy is a software engineer at Airbnb. Prior to Airbnb, she's done machine learning research on the ASIMO team at Honda Research Institute in Japan and HCI research at the University of Tokyo. She also enjoys hardware hacking and the intersection of art and technology — in particular, making tools that enable people to be more creative.
Sweaters as a service: adventures in machine knitting
In the 1980's, Nintendo had plans for making a knitting add-on to the NES, with an interface that resembled Mariopaint, but with patterned mittens, sweaters, and scarves as output. Sadly, this product never saw the light of day. Devastated upon hearing this and dreaming about what could have been, a group of Airbnb engineers (who knew nothing about machine knitting) set out to hack a knitting machine from the 1980's to be computer-controlled, using a tutorial from adafruit as a starting point.
Hear about our struggles and triumphs, which ranged from learning to replace knitting machine needles and conduct basic repairs, to emulating a floppy drive and hacking together a custom cable cable to send our own patterns to the machine, to writing our own yarn printer API in ruby/rails and printing our first doge meme in yarn. And watch us as we send images and knit requests to our yarn server, and behold as it knits ugly sweaters from those images!
André ArkoCloud City
André Arko thinks Ruby is pretty neat, and has been using it for nine years. His day job is building web apps and training developers for clients at Cloud City Development in San Francisco. In his remaining time, he leads the Bundler team and thinks about how to make software less terrible.
Extreme Makeover: Rubygems Edition
Rubygems.org provides every Rubyist with an amazing service: all the libraries in the Ruby world. As amazing as that is, installing gems can be a time-consuming and even error-prone process. (Just ask the Travis guys.)
In this talk, you'll learn about the recent dramatic changes in Rubygems and Bundler to improve speed and reliability by rewriting the Rubygems client/server architecture. I'll show how the new system caches more information, makes fewer requests, and takes less time to install gems. Finally, I'll cover how the changes allow worldwide mirrors of rubygems.org, improving things for Rubyists around the globe.
Arne is a developer, public speaker, programming coach, author and open-source contributor. With a passion for both human and programming languages, he has spent the last decade teaching and exploring the finer points of Ruby, LISP, Haskell, Mandarin Chinese, and others.
When not hopping conferences or Pacific islands, he can be found at his home base in Berlin, brewing fine teas while pondering the future of open-source and the web.
Functional Programming in Ruby
Ruby isn't exactly know for being a functional programming, but neither is it known for not being a functional programming. With lambdas, blocks, and Matz himself citing LISP as a major influence, there is very little stopping us from writing code in a functional style.
We'll cut straight through the smugness and jargon that typefies functional programming literature, and go straight to the essence. What does it mean to program "functionally", and what does it buy us. What patterns and techniques can we incorporate to write more flexible, maintainable code, and what are the caveats Rubyists specifically need to look out for.
Davy StevensonEsri Portland R&D Center
Davy is a Lead Developer at Esri's R&D Center in beautiful, sunny Portland, Oregon, where she helps create next generation mapping technologies. When not writing Ruby, she enjoys gardening, knitting, drinking all the fantastic beer that Portland has to provide, and ignoring her cats as much as they ignore her.
Ruby as Science, Art and Craft
Developers are encouraged, and sometimes required, to study Computer Science, however a large percentage of us are self-taught or have entered programming through related fields. This sits in stark contrast to most other engineering disciplines, and this diversity is possibly our greatest strength.
Programming sits at the intersection of science, art, and craft. I contend that, given introspection on each of these facets, we will all improve. Learn how formal Computer Science techniques map to real-world problems. Contemplate code as an art form. Think of code as your craft, and continue learning new techniques. Take the time to look at problems through many lenses, and form diverse teams that allow us to solve problems from many different angles.
Michael Ries is an organizer for his local Ruby group. He studies software fervently in the hopes of making a robot that can take care of all household chores. He has an awesome wife and 2 young children. His adventures in coding and robots can be found at http://devblog.riesd.com.
How I Accidentally Wrote the Best Code of my Career
Good design is hard. We use lots of tools and conventions in ruby and rails to help us go faster, but good design can't be rushed. This is a case study of a project that had been written and re-written several times and the surprising implementation that made it beautiful.
We will discuss the characteristics we want our code to have and discover several concrete practices that we can use along the way.
Michal TaszyckiGunpowder Labs
Michal is a señor software developer at Gunpowder Labs. He strives to improve as a programmer and enjoys sharing the knowledge during Code Retreats and the Programming Workout project.
Ruby – Write Once, Run Anywhere
Some people say that Ruby is dying.
I'd rather claim that Ruby is more alive than ever!
Milo TodorovichRaise Marketplace, Inc.
Milo has been developing software since 1995, starting with client server, moving on to enterprise, Java web, Java desktop and finally Rails. Milo is currently the CTO at Raise Marketplace, helping customers buy and sell gift cards.
API's are all the rage these days. There's even a movement for "API First" development. And that sounds fantastic! But you need the ease of Rails, so that you can iterate, and pivot, and figure out if you've got a viable business. And this could take years.
So you build a web application. And you iterate. And pivot. And you've got a business! And you're growing! And NOW you want a mobile app and another client. Umm, yeah.
Let's talk about you can make the transition to API after the fact, and the things you should look out for along the way.
Sam PhippenFun and Plausible Solutions
Sam Phippen 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.
The Maybe Monad as a replacement for nil
nil is an oft-discussed subject in software engineering. The presence of
nil conflates many possible different cases: default values, missing values, no specific value and other such cases. The problem is: in a large system it can be difficult to determine which of those cases has occurred. It can be difficult to even know where the
nil has come from. The error
NoMethodError: undefined method `send_email!' for nil:NilClass could hardly be less useful.
In this talk, we're going to cover the maybe monad. "Maybe" swoops in and solves a number of the problems that are caused by
nil. Unlike the "null object" pattern maybe does not specialise to any specific class or type, but instead solves
nil problems in a general way. Don't fear that the word "monad" has been mentioned. The techniques behind the maybe monad translate easily, simply and obviously into the object oriented paradigm.
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!)
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.