Webrat, a Ruby DSL for interaction with web applications, changes the acceptance testing ROI equation. By implementing an invisible, fast browser simulator you can use from within your test framework of choice (Test::Unit, RSpec, Shoulda or Cucumber), it sidesteps most of Selenium’s drawbacks while retaining the coverage value.
In August of 2008, Jacqui Maher visited Baobab Health in Lilongwe, Malawi. Baobab is a dedicated group of programmers, clinicians and administrators developing public health and patient data administration systems. They use a variety of hardware and software technologies, but their main applications are written in Ruby on Rails.
Shoes is a tiny graphics toolkit that embeds ruby. It allows you to do anything. You can draw squares and circles and they can move about and say “Good Morning” when they chance upon each other. Shoes lets you add layouts to your applications with ease. It borrows ideas from Processing, Lua, and HTML to make an intuitive language to convert your ideas into programs that you can share with your friends.
Learn about the architecture and construction of CloudKit, an Open Web JSON Appliance. Along the way, see how the emerging Open Stack — including OpenID and OAuth+Discovery — can be used to build open and discoverable web services in Ruby. Other topics of exploration will include cooperative Rack middleware stacks, non-relational storage with Tokyo Cabinet, new IETF drafts covering HTTP Discovery, online/offline synchronization with plain old HTTP, and more.
Every site based on a RDBMS will eventually hit a database scalability bottleneck. In this session we will introduce Hypertable, an open-source implementation of BigTable, and HyperRecord, an extension of ActiveRecord using Hypertable for storage. We will demonstrate Zvents’ use of these technologies to scale a high-traffic, data-intensive consumer web application, writing billions of cells daily.
Building a massively scaled, fault tolerant web service isn’t easy, but it’s definitely easier if you know which architectures work and which don’t. In this talk we’ll survey the architecture and complexities of a scalable web service including edgeware, middleware, message systems, load balancing, cache hierarchies, queueing theory, coordination primitives for distributed computation, designing for latency, inter-process communication, load balancing versus locality, write versus read throughput, non-relational datastores, database replication topologies, logging distributed computations, fault tolerance, deployment at scale, forensics, and the merits of suicide.
It has been said that Ruby is a slow language, but that is not true. Numerous Ruby projects have shown that it is possible to write fast, scalable software using Ruby. Merb, for instance, is faster than any major PHP web framework.
In this talk, Carl will show how to take the many available tools, such as ruby-prof, RBench, and kcachegrind, and turn any old Ruby into a speed machine. The tips and processes will be demonstrated with real world examples of optimizations that have been done to the Merb and Rails 3 projects.
Many of us discovered Ruby because of Rails, but there are many more frameworks for both web development and other application domains. We have assembled authors and contributors from six of the major application frameworks written in Ruby: Rails, Merb, Sinatra, Adhearsion, RAD and Shoes. We’ll get to hear what they have to say about what makes Ruby good (or bad) for building frameworks, and what opinions they have of other frameworks. Come with your questions, and demand answers!
A high-performance proxy server is less than a hundred lines of Ruby code and it is an indispensable tool for anyone who knows how to use it. In this session we will walk through the basics of event-driven architectures and high-performance network programming in Ruby using the EventMachine framework.
Have you ever tried to catch a train running at a million miles an hour? Jumping into the traffic stream at Wikipedia is an insane adventure I’ve been going through. Exactly how do you launch a new platform that could instantly have millions of hits in a few hours? How do you do that and not spend 3 years researching? A fun tour of how I got Ruby at Wikipedia and did it with confidence, bravado, and alcohol. There will be cussing and lots of funny stories that should be highly educating and an insight into my technical philosophies.
This talk will present the TrustTheVote project and the “I count!” movement. It will cover the technology roadmap, progress so far, and next steps, including expansion of development efforts and opportunities for involvement in design and construction of trustworthy voting technology that everyone will be able to see, touch, and try—technology that will be fully federally certified and have the endorsement of the States’ elections directors through a unique approach that can ensure widespread adoption. If you have ever wanted to know what you can do to make a difference in our electoral process, then this talk is for you.
In this session, David Stevenson explores how to run untrusted code inside a ruby application using a sandbox. With this powerful technique, users can upload code that integrates as part of a larger application, making it ideal for custom business rules, dynamic games (think SecondLife), and science/math applications. Ruby’s english-like syntax and ease of creating DSLs makes it a good scripting candidate for non-technical people.
Sinatra has been getting a lot of attention lately as the next great (micro-)framework. In writing apps, diving in, and contributing the reasons for its existence have become more clear. Sinatra is not just a toy or a neat trick, its the best way to create simple and non-obtrusive web interfaces to sit on top of a new or existing Ruby codebase. I’ll walk through the whats, whys, and tools for getting started with Sinatra.