This year, seven of us attended RailsConf 2015 which was held in Atlanta. It was a great experience especially since it was a big group of us. We listened to interesting talks, discussed with each other about what we’ve learned, and met a lot of people from the Ruby community. Here are some of our favorite talks:
Speed Science - Richard Schneeman
This is a great talk about how one can measure performance in Ruby applications and how to address them. Richard Schneeman recounts some of his personal experiences of investigating slow applications and how he was able to measure and experiment with his hypothesis. One of the biggest takeaways for me was that you can increase your memory footprint with retained objects as well as non-retained objects!
He then gave examples of using derailed_benchmarks, which help get metrics about performance. I used the memory usage at require time benchmark against our application and found that one of our gems was unneccessarily loading classes that weren’t used. This is the pull request to fix it.
Finally, he talks about “Funday Fridays” which is the idea that instead of deploying on Fridays, we could work on miscellaneous tasks such as investigating performance issues. We have a similar concept here at Paperless Post called Project Days. Project Days are alloted time for you to work on things you don’t really have the time for but you think add value to the team.
There is also a blog post about this topic that you can check out.
Nothing is Something - Sandi Metz
This talk brings up the notion of how, when writing our applications, we may often find ourselves checking to see whether an object we are dealing with is Nil. We often handle these Nil checks in the same way throughout our application, and, given that we do so, it is worth considering to move our handling of Nils into a centralized location in our code. Enter the ‘Null Object Pattern’. This pattern is a way for handling Nil values in a way which is DRY, object-oriented, and in a “tell, don’t ask” style of programming.
I summarize the idea of the Null Object Pattern here:
I went to a lot of great talks this year. Here are some of my favorites
DevOps for The Lazy - Aja Hammerly
Here Aja Hammerly shows us how to be lazy as she types fewer than 30 lines of code to spin up Docker and Kubernetes to allow for rapid deployment. It is a good intro into both of these technologies as it is a very high level overview.
Microservices, a bittersweet symphony - Sebastian Sogamoso
The theme this year was Monoliths. Here Sebastian Sogamoso discusses why you would want to break one up into micro-services and more importantly why you would not. This is worth checking out if you are knocking this idea around.
It was my first time at Railsconf this year and in the spirit of something different, I’d like to talk about Rust.
Bending the Curve - Yehuda Katz & Tom Dale
I will admit that I walked into this talk only knowing two things: Yehuda & Tom were funny and Rust was wacky. Full disclosure: I left the talk affirmed in my beliefs. In a truly entertaining fashion, Tom and Yehuda walk us through why Rubyists might be interested in choosing Rust to embed some data heavy services in their Rails applications. Functioning as a high-level introduction to some of the more exciting performance boosting features of Rust, this talk succeeds at illustrating how the low-level control and high-level safety of C and the human friendly interface of Ruby come together to deliver a powerful and easy to use language tool. This talk would be a great watch for anyone interested in learning more about Rust, garbage collection, or all things wacky.