The largest official gathering, RubyConf brings together top talent, companies, and project representatives from around the world. Learn and build with the best in sessions, workshops, keynotes and other events.
How do you build effective teams? What are the determining factors? In this collaborative workshop we will explore how to identify the values underpinning your team dynamics and explore techniques to cultivate effective teams built around intentional values.
Have you ever dreamed of building a video game? Well here’s your chance of making that dream come true. During this workshop, we’ll build a 2D platformer like Super Mario Brothers, and A top down RPG like Legend of Zelda: A Link to the Past.
- No previous game dev experience is required.
- If you’re new to Ruby, that’s okay too. Building games is a fantastic way to learn a language.
- You’ll be given a free, unrestricted commercial license of DragonRuby Game Toolkit (this is the game engine we’ll be using during the workshop).
Getting out of tech debt can feel like a Sisyphean task. After weeks of work, the success case is for the app to work the same as it used to. Organizations often declare code bankruptcy and rewrite working systems from scratch. How do we end up here? And how do we alleviate, or even better, prevent such a situation?
In this workshop, you will learn how to measure tech debt and address the areas of highest need first. You’ll learn to identify high leverage code changes and separate those from renovations. You’ll also learn about the skills tech teams can use to prevent and reduce tech debt.
Slow Ruby code can be a puzzle, but it doesn’t have to be that way. In this workshop you will see how fun it can be to use flamegraphs to find performance problems. You’ll get the most out of this session if you know you have slow areas in your Ruby application, and would like to learn how to find the code responsible.
Have you heard about how great Docker supposedly is, but you're not sure exactly what all the fuss is about, or even what Docker is or why people use it? Or maybe you understand what Docker is but you've never worked with it before. In this workshop, you'll learn exactly what Docker is and why you'd want to use it, and you'll come away with your own fully Dockerized Ruby application.
Testing has been a feature of the Ruby community for a long time. Why then are our spec files often so incomprehensible? In this workshop, I will share some ground rules for writing maintainable tests that will ensure that new teammates along with future-you can understand your test suite. We will use the RSpec testing framework to introduce several testing code-smells. For each smell, I will provide a demonstration on how to refactor the test along with time to practice for workshop participants. This workshop is geared towards anyone looking to hone their Ruby testing craft.
Your app blows up in production. It's an outage and you're under pressure. You read the code. "How does this work? Why is this exception being caught here?" And so begins a long, stressful journey to understand how to fix your code.
Rescuing exceptions is normalised in Ruby, but it's a clumsy way of reacting to error conditions and causes your code to be difficult to reason about.
You'll refactor an existing app to use a functional style and see first hand how easy monads are to use and how they can make your code incredibly clean and expressive.
mruby/c is a compact implementation of mruby. In this workshop, I'm planning to prepare a mruby/c ready microcontroller board and have hands-on programming. Start from a very simple LED-blinking program, and finally try to implement sensor handling and multi-programming by Ruby language.
If we take the wayback machine to the time before there was Resilience Engineering, we find Cognitive Systems Engineering. Central to CSE is the concept of Joint Cognitive Systems - human/machine teaming based on principles of shared cognitive efforts, not simply dividing the work to be done across humans and machines. This thought-provoking and interactive workshop will give you a whole new lens to think about your work and the problems you face working on and with highly automated systems using a combination of lecture, discussion and hands on exercises.
Workshop to teach meaningful semantic code coverage in action, via the mutant tool.
The workshop attendees will be walked through applied mutation testing of increasing complexity code:
- Mini presentation (5min).
- Simple ~4 line ruby functions returning bools, authorization methods.
- Data parsing (JSON to domain objects)
- Database writes from domain objects.
While being put in the position of a developer being tasked to either write code for existing tests, or write code and tests, all guarded by the mutation testing engine.
RuboCop is great for keeping code quality high by enforcing community-driven Ruby standards in our codebases. But RuboCop can also be easily customized to enforce standards that are unique to our codebase, automatically checking for the things that are most important to us.
In this workshop we'll customize RuboCop to enforce our most important style rule: all comments must be in the form of a haiku! Along the way we'll learn:
- the basics of linting and RuboCop itself
- a little about abstract syntax trees
- how to build powerful custom tooling to enforce almost any standard we can think of!
Want to get better and incident response without waiting for actual incidents? Learn how to use table top exercises to practice your incident response framework, develop common ground, and improve communication during an incident.
You'll learn how to run table top game days, including how to set them up, how to design scenarios and how to encourage participation, all with techniques supported by real word experience and supported by research.