Speaker

Jamis Buck

Jamis Buck

Senior Ruby Software Engineer, DBX, MongoDB

Actions

Jamis is a Rails core alumnus, created Capistrano, Net::SSH, SQLite3-Ruby and various other OSS projects, and is the author of "Mazes for Programmers," and "The Ray-Tracer Challenge."

Repurposing the Rails CLI

The Rails CLI works great for the vast majority of us, but what do you do when it doesn't? At MongoDB, we recently wanted to add a tighter integration between Rails and Mongoid (our ODM), and were able to create our own CLI tool that extends the Rails CLI, overriding the pieces that weren't compatible or relevant and extending it with the functionality we wanted.

I'll show you how we did it, and how you can do it yourself.

Flattening Recursion with Fibers

We used Ruby's fibers at MongoDB to unwind a recursive algorithm and execute it horizontally, without the stack overhead of recursion.

"Hang on," you might be thinking. "I thought fibers were a concurrency primitive?"

You're not wrong!

In this presentation, we'll summarize the problem we encountered while working with recursive callbacks, and give an overview of fibers in Ruby. Then, we'll put the two together and show you exactly how we ended up using fibers to solve an issue that was completely unrelated to concurrency.

RubyConf 2024 Sessionize Event

November 2024 Chicago, Illinois, United States

Rails World 2024 Sessionize Event

September 2024 Toronto, Canada

Jamis Buck

Senior Ruby Software Engineer, DBX, MongoDB

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top