The first steps of a Behaviour-Driven Developer
An introduction to Behaviour-Driven Development, the second-generation agile methodology that aims at delivering software that matters. Most of us know that BDD has something to do with tests and the way code is produced. But what is it exactly? How does it differ from Test-Driven Development? We'll discover the technical principles and practices lying at the heart of BDD, as experienced from a naive programmer perspective. But BDD is not only about writing better tests and code. It really holds higher purposes...
Have you ever copy/pasted an extconf.rb file and thought "there has got to be a better way"? **There is, but it may not be what you think. I will present Mutt, a JRuby application that serves Git repositories over HTTP using the beautifully designed JGit library. No Makefiles, no segfaults, it may even work on Windows.
The good thing: Most companies started collecting and centralizing their logs. The bad part: Most of them did not unleash the power of log management and analysis yet. In this talk I will show you how to effectively manage your logs and the scope of Rails specific log analysis. I am the author of Graylog2 (graylog2.org) and work at XING where we have a really mature Rails logging environment.
Look at your Rails unit test suite. Now look at mine. Now look at yours again. Mine are sub-second. Yours aren't. Having a slow unit test suite can hinder an effective test-first or test-driven approach to development. As you add tests, the suite starts to slow down to the point where you stop running them after each change. Some people even talk about multi-minute unit tests suites! Band-aids like spork are just covering up the problem. Test-driven development is a major player in keeping your design malleable and accepting of new features, but when you stop paying attention to the messages your tests are sending you, you lose this benefit. In this talk, I will go over some techniques for keeping your test suite lean and fast. Along the way, we'll discuss the design improvements that come out of these changes. Now, look at my unit test suite again. Yours can be like mine.
Your project is evolving just fine, you have a steady, non-linear growth and your roadmap is tightly packed. You feel hosting issues become more and more time consuming. So what to do? In this talk we will see that the answer to this question is not as easy as: "we'll jump into the cloud". More than this three different ways to solve this problem will be presented: high-end hardware, commodity hardware and a cloud deployment scenario. This gives you options to choose from. For each scenario an exemplary system design illustrating its hosting structure will be shown. We will workout individual pros and cons which need to be considered carefully in respect to your individual requirements. In order to support your decision making we will draft a rough decision tree to help you picking the best possible scenario for your situation. So at the end of the talk should be able to plan your next scale out step, easily.
Front-end code should be fun to write and fast to run. Combine front-end meta languages like Haml, Sass & CoffeeScript with the Rails 3.1 asset pipeline and achieve both.
We've come a long way since the early days of Rails. And the entire Rails system, while much more robust, can be intimidating and downright frustrating for designers to get started with. In this talk we'll discuss a couple of different strategies for integrating designers into your team and what you can do to optimize your current designer/developer workflow. We'll be discussing a couple of tools that can assist you in this (including John's very own Serve project) and will ask the if any of this can be applied to Open Source. Along the way we will be talking a lot about the value of taking a design-first approach to software development and you will walk away with a number of practical approaches that you can apply to your current project even if you aren't working with a designer.
Take a deep dive into the new features of Radiant 1.0. Explore hidden gems of rendering content and get tips on saving yourself from unnecessary work. We'll discuss the goals of the next major release on Rails 3 and how you can help guide the development.
Get me all invoices since 2007 for clients that are in the photography business where I was responsible for, and group them by fiscal year and client with running totals." In business applications like th!nx, extensible filtering and reporting is paramount. While rails offers good abstractions for basic CRUD, it lacks facilities for complex aggregation. Filterkit and reportkit are two open-source libraries that work together to fill this gap, harnessing the power of arel. The goal? Not having a single line of SQL in your application while being able to create many reports like the one described above on demand. The API?
column :total_price, :money, arel(:line_items)[:total_price].sum
Statistics are hot. In the last few years, the internet and increasing capacities have made it possible to gather large amounts of data ... and now we're starting to work out what to do with it. I'm talking about data-driven development, not unrelated to the principles of Lean software development - how we can use data to drive our development.
A whistle stop tour through Spree's key features as modular and customizable e-commerce platform. With an in-depth look at how it uses Ruby, Rails, mountable engines and the asset pipeline.
Web apps are hot, web apps with APIs are even hotter. These days popular sites are opening up more and more of their functionality via web APIs and you should too. This talk will cover how to develop web APIs with Ruby, either using Rails or Sinatra. It will also cover how to test those APIs with Cucumber.
Just because the tests past doesn't mean that your users will actually like the change, you can test your features in front of real users using A/B testing. A/B testing is becoming an important tool on the web to test out new features on a subset of your users to find out if they fulfil their purpose and make your decisions based on data not opinions. Split is a rack based A/B testing framework, it works with Rails, Sinatra and any other rack based web framework. Find out why we needed another framework and how to use in Rails, Sinatra and Radiant and the best practises of A/B testing.