by Doug Yun
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.
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 memory. 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.
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.
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.
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.
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.
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.
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.
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 Rails defaults.
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.
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: zeus active_hash simple_form redcarpet better_errors binding_of_caller (bonus gem)
Jason Draper gives an Introduction to Integration Testing in Rails using Capybara at the February 2013 Boston Ruby project night
Dan Pickett tells us about 5 of his favorite gems at the Boston Ruby February 2013 project night. Dan's picks are: inherited_resources kaminan guard configatron bourbon
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: RSpec Bourne HAML OmniAuth NewRelic RPM
Mark Bates tells us about 5 of his favorite gems at the Boston Ruby February 2013 project night. Mark's picks are: Konacha SideKiq SunSpot Sinatra Foreman
Value Objects make your code smarter, safer, and more expressive. Learn what Value Objects are, how they help, and some ways to use them in a Rails application.
Patrick goes over some conventions and patterns to make your lib directory a better place.
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.
Atomic Commits: a scalable git workflow that provides a flexible alternative to test-driven development and ensures thorough code coverage, enforces a navigable commit history, and encourages developers to improve how they write code.
Patrick Robertson closes out 2012 with a bang, bringing us up to date with everything happening in the Ruby community with a focus on the Ruby Implementors meeting.
Ruby 2.0 will start applications in less than half the time taken by 1.9.3. We'll see the techniques I used to diagnose (and fix) the problem, which can be used for any performance problem in MRI or a C extension.
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.