As Rails applications mature, they frequently run into performance issues. One
of the most common problems that plague middle-aged Rails apps is running out of
Unfortunately, the causes of most memory issues are the tools that make
applications so easy to write, such as ActiveRecord and Enumerable. Although
these tools make it easy to navigate your data, they also make it easy to
continually use more memory as your data grows.
During this talk, you'll learn about different memory problems, such as leaks,
bloat, and churn. You'll learn some common causes of memory issues in Rails
applications, and you'll see how to use streams to improve performance and trim
down on memory usage.
In this talk on Rails::Engine you will become a Rails mechanic by learning how Rails::Engine, Rails::Application, and Rails::Railtie interact, giving you much of the power you associate with Rails. Blueprint in hand, we will cover typical Rails::Engine setups, discussing full vs isolated engines, configuration paths, initializers, testing, routing, and middleware stacks. You'll be ready to build your own Rails::Engine as soon as you get back to your own garage.
We will go over some interesting devices for hacking using Ruby (Arduinos, XBees, others). They have open source code available and good documentation. Next, we will demonstrate a website written in Sinatra which gives complete control over the devices, and which can configure them into some interesting systems. Systems include a motion detector which sends text messages or email, a system which controls LEDs and relays using text messages or email, and a system which measures temperature and water/moisture and sends warning messages and status. We'll also demonstrate some low cost, hockey puck sized Linux systems (Raspberry Pi, others) functioning as a larger M2M system.
Brian will dive into three recently released, client-heavy JS web applications. All use Ruby on the server; two of them use Backbone.js and the third uses Ember.js in the browser. Each project has is fair challenges, from scaling to security to development process and devops. We will look at a few of these challenges and how they were overcome.
Ruby is an amazing programming language and it allows you to express complex concepts with simple code. Come learn how to utilize ruby in order to write your own programming language. Matt "Goose" Mongeau will talk about the tools involved in the writing of a programming language. This talk will give a general overview of the tools involved and present you with the knowledge to be able to tackle the problem on your own. This talk will not be overly complex and will instead focus on breaking down each part into easy to learn pieces.
Ruby's implementation of closures in the form of blocks, procs and lambdas is one of the most powerful aspects of the language. Wielded properly, closures can yield more elegant and concise code. We'll explore these concepts with examples of when and how you leverage them.
Test Driven Development has changed the way a lot of us develop software. Using this approach to develop new features and automating the testing process ensures safety and code quality; but it can feel frustrating to wait for a test suite to run. If you haven't done done any tuning of your development rails environment there are a number of quick wins you can make substantial improvements to the runtime of your test suite. This talk will explain the strategies used to reduce a test suite from taking around 40 minutes, to around 13 minutes, with a minimal amount of work - not rewriting all the tests or making any fundamental changes to application or test code.
Walking away from this talk you will know the steps you should take on your development machine right away, along with an overview of how to use performance analysis tools to find the bottlenecks in your specific application.
A lot can happen in two and a half years. In this talk, Diaspora Co-Founder Daniel Grippi provides a retrospective on his experience managing the largest open source Ruby on Rails application to date; starting from knowing very little Rails and practically no process, to knowing a little Rails and a little process.
Out of the box, Rails does its best to help you secure your app.
Unfortunately, without consistent application of secure development
principles, practices and tools, it's just a matter of time before
vulnerabilities creep in.
Despite Rails' secure defaults, most Rails applications have
vulnerabilities, many of which are easy to detect and fix. As a
community, increased awareness and understand of web application
security puts us in the best position to avoid breaches (like the
GitHub SSH key fiasco), and keep our businesses safe.
The best time to start locking down your app is now, not after your
first close call (or worse). We'll walk through exactly what you need
to reduce the risk of a security breach to your business, beyond the
While Ruby is object oriented and imperative, it does have some features that allow for functional programming. This talk will compare how you would write functions in Clojure or Haskell with Ruby generally, and then zoom in to take a close look at Ruby 2.0’s new “Lazy Enumerator” feature.
Jim performs a live programming exercise, doing a code kata for a Roman Numerals Calculator. Jim then walks us through some of the decisions he made and gives some great tips about TDD, complexity, and refactoring that we can apply in our daily programming.
Newcomer or seasoned veteran looking to get involved with Ruby documentation? We'll show you it's not as scary as it may seem, and there's plenty of ways to help. It's important to give back to the open source community and improve things for future developers. This talk will teach you the value of open-source, the benefits of contributing, and a little bit about how ruby-core works. You will learn what to look for when spotting documentation bugs in the MRI source code. We will cover the guidelines to writing MRI documentation, and how to submit a patch. Including helpful tricks using ri and rdoc. Zachary Scott is a Ruby committer since September 2012 who will gladly help with your first patch into ruby-core.
Patrick Robertson tells us about 5 of his favorite gems at the Boston Ruby February 2013 project night. Patrick also gives us tips on how to evaluate gems and determine which is the best for your needs. Patrick's picks are:
Jeremy Weiskotten tells us about 5 of his favorite gems (plus a bonus 6th gem) at the Boston Ruby February 2013 project night. Jeremy's picks are:
binding_of_caller (bonus gem)
Mark Bates takes us on a tour of he singleton pattern, one of the most common design patterns in any language. We'll take a look at how, and when, to implement singletons Ruby. We'll also learn what happens when you call '.new' on a class.
Storm is a free and open source distributed realtime computation framework. It
provides a clean, declarative abstraction for streaming computations. It's
durable, reliable, and simple to scale.
Some use cases of Storm include realtime analytics, online machine learning,
continuous computation, distributed RPC, and ETL.
You'll learn the basic ideas of Storm, and how RedStorm makes it easy to write
Storm topologies in Ruby.