Open Source Projects

I am super passionate about developing great software. I have noticed that software can't be great without collaboration and feedback, which is one reason why I actively contribute to the Open Source community in my spare time on a number of projects. Check them out:

Selenium Grid

I created Selenium Grid, a tool which dramatically reduce the feedback cycle for web acceptance testing.

Traditional functional and acceptance web testing have extremely slow feedback cycles which tremendously reduces their value and capacity to keep up with efficient development cycles. Selenium Grid solves this problem: The grid transparently distribute your web testing infrastructure across multiple machines and processes so that you can run Selenium tests in parallel and get fast results.

In the field, Selenium Grid has transformed web testing suites requiring 3 hours plus to run into sub-10 minutes builds that provide quick and accurate feedback while requiring minimal maintenance.

Learn more about Selenium Grid...

Caller for all Threads

caller_for_all_threads is a patch for the Ruby interpreter which provides a way to collect the stack traces of all the threads of a Ruby application. Without this patch the official Ruby interpreter (M.R.I 1.8) only provides the stack of the current thread, which, in my experience, makes troubleshooting Ruby applications in production a lot more challenging than it needs to be. With caller_for_all_threads, just send a signal to your Ruby process to capture all your application stacks!

Learn more about caller_for_all_threads...

System Timer

David Vollbracht and I pair programmed System Timer, an alternative timeout library for Ruby application.

The default Ruby timeout library (timeout.rb) is based on green-threads and is not 100% reliable. In particular, it is guaranteed to not work when you are issuing system calls that can cause your Ruby process to sleep for a period of time that is longer than your timeout.

This caveat led to significant production problems in a professional Ruby on Rails project David and I were working on, so we implemented System Timer.

System Timer provides guaranteed timeouts for Ruby applications — even when these applications cross boundaries and go down to the system level. The project sysadmin has been enjoying nights of uninterrupted sleep ever since.

Learn more about System Timer...

Deep Test

DeepTest is an amazing parallel and distributed test runner for Ruby. It alleviates the problem of slow functional tests, especially for Ruby on Rails applications: DeepTest takes advantage of your fancy dual-core laptop and spawns multiple processes to transparently run your tests in parallel (whether you are a fan of Test::Unit or RSpec). If that's still not fast enough for you, well, we've got that covered too: DeepTest can also distribute the tests across multiple machines. Set up a DeepTest farm with a couple of machines for your team and enjoy sub-minute builds!

DeepTest was created by an insanely talented trio: zak Tamsen, Dan Manges and David Vollbracht who wrote the vast majority of the code. I occasionaly contribute ideas and patches though, especially since DeepTest is Selenium Grid's test runner of choice!

Learn more about Deep Test...

Selenium Remote Control

I am a core contributor to Selenium Remote Control, an extremely popular tool dedicated to functional and acceptance testing of web applications. Selenium Remote Control automates user interaction with a web browser — launching the browser, opening a url, clicking on a button, entering form content — and can also check the state of the current page — retrieving the value of a form field, checking the page title, checking whether some text is present, etc.

Learn more about Selenium Remote Control...

Selenium Ruby Client

I am the maintainer of selenium-client the official Ruby client for Selenium Remote Control.

With Selenium Ruby client you can write idiomatic Selenium tests in Ruby, harnessing for your web acceptance test the power of an extremelly concise and expressive programming language. Selenium Ruby Client also comes with out-of-the box and art-of-the-field reporting support for RSpec: generated reports not only include the client stack traces but also capture the HTML state of the page, in-browser page screenshots, system screenshots, and a snapshot of the Selenium Remote control logs. All this information make troubleshooting build failures a breeze, especially when you run your tests on a distributed infrastructure (e.g. using Selenium Grid).

Learn more about Selenium Ruby Client...

XRay

Coming soon...

Learn more about XRay...

This work is licensed under a Creative Commons Attribution 2.5 License.

Original web site design by: JFX diz*web.