The simplest way of running tests is to run all of them, regardless of what changes you are testing. However, depending on the size of your test suite, this will either get slow or expensive. At Shopify we have almost 300,000 Rails tests and we add 50,000 more annually. The sheer amount of tests and their growth makes it impossible to run all tests, all the time! Hence we implemented a framework to only run tests relevant to your code changes.
We will build a test selection framework from scratch in this workshop. We will begin by exploring the fundamentals of such a framework: code analysis. After that we will dive into minitest reporters, how they work and how we can use them to generate a test map. Finally we will use the generated test map to only run tests relevant to your code changes. Attendees will walk away with a solid understanding of what test selection is, how it works and how to implement it.
When the talks come to an end we'll decamp to a local pub for some food, some
drinks and some chat with your fellow attendees.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of conduct.
The venue has a hard limit of 100 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.
Naomi will take you on a journey from her previous career outside
technology to her current career as a software engineer highlighting some
of the (many) things she had to learn along the way, providing insight into
why misunderstandings are common between engineers and their stakeholders
and offering some ideas on how we can bridge that gap.
Everywhere you look, stories surround us, and everyone has something that’s worth sharing with others. As speakers, we need to understand how to structure our talks so they can have the best effect on the audiences we are trying to reach. How do you discover the right angle and the right story for a talk? How do you frame your story?
Within tech we know how to approach building a new product: we research our user base, we figure out what and for who we’re trying to create something for and we make sure we constantly iterate on what we’ve come up with. So why aren’t we taking the same approach for our talks?
This talk will examine how to get in the right mindset of examining your talk ideas, and will introduce a framework of how to design and iterate on your talk. It will focus on several exercises and questions to help you create the best talk for the story you’re trying to tell.
When the talks come to an end we'll decamp to a local pub for some food, some
drinks and some chat with your fellow attendees.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of conduct.
The venue has a hard limit of 100 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.
BorrowMyDoggy connects dog owners with local borrowers for walks,
weekends and holidays. Via BorrowMyDoggy, borrowers get happy dog time,
owners get help with taking care of their dogs, and dogs get more love
and attention (it's a win-win scenario). We started by winning the Lean
Startup Machine, then received a crazy amount of media attention and by
now have built a community of +1 million members in the UK and Ireland,
and are working with some of the biggest players in the pet space. Come
and listen to how a simple idea has now turned into a well known brand.
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub to visit so we can eat, drink, and
discuss the talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 50 people. If you register and realise
you can't come, please use eventbrite to give up your place so someone
else can come in your place. We might be able to let in people on the
night who haven't registered, but we can't guarantee it.
We'll start with a simple Ruby Kata and solve it together, live, with
imperative programming.
We'll then fix the many, many, many things we got wrong. Then we'll solve
the problem again using patterns from functional programming. You'll leave
this talk with a clear and concrete example of why functional programming
matters, why immutable code matters, and why it can help you writing
bug-free code.
The next time you find yourself writing imperative code, you might
consider… the functional alternative.
I've been working with Ruby since the early 2000s. Ruby has changed a lot in that time,
but we don't always remember how much. Let's rewrite a short program so that it runs in
a twenty-year-old version of Ruby and see how much syntax and performance has changed for the better in twenty years
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub to visit so we can eat, drink, and
discuss the talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 100 people. If you register and realise you
can't come, please use eventbrite to give up your place so someone else can
come in your place. We might be able to let in people on the night who haven't
registered, but we can't guarantee it.
Remarkable visibility into the structure of your application and its data
is available by using the open-source Rails gem "The Brick". Come meet the author of this gem, and
experience the cornucopia of usefulness it can provide to teams who
architect, elaborate upon, and then support Rails applications.
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub to visit so we can eat, drink, and
discuss the talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 80 people. If you register and realise you
can't come, please use eventbrite to give up your place so someone else can
come in your place. We might be able to let in people on the night who haven't
registered, but we can't guarantee it.
Social impact startup Beam (named by LinkedIn as one of the UK’s Top 15
Startups) has built pioneering products for government, social care workers -
and homeless people and refugees themselves. Together, Beam is proving that
tech can solve these problems for good. Hear about how a small Engineering
team has built software that has transformed the lives of thousands of
homeless people and refugees. And hear about the fun, meaning and challenge in
Tech for Good.
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub to visit so we can eat, drink, and
discuss the talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 90 people. If you register and realise you
can't come, please use eventbrite to give up your place so someone else can
come in your place. We might be able to let in people on the night who haven't
registered, but we can't guarantee it.
Tech Debt can be messy, but it doesn't have to be. In this short talk
I'll present a simple approach to identify your Tech Debt, monitor it
over time and make it actionable.
Let's talk about why and how we measure our test coverage. If you are
using line test coverage measurement and you are happy with it, please let
me show you some differences and examples of line TC vs mutation TC.
Funding Circle recently built a new application that allows borrowers to
manage their loans themselves. We structured the application using a
(new-to-me!) design principle called Command Query
Responsibility Segregation. Join me as I give a brief definition of what
CQRS is before showing you the practical application of it via our new
borrower portal 💻
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub to visit so we can eat, drink, and
discuss the talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 90 people. If you register and realise you
can't come, please use eventbrite to give up your place so someone else can
come in your place. We might be able to let in people on the night who haven't
registered, but we can't guarantee it.
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub for to eat, drink, and discuss the
talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 90 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.
The April 2023 meeting of LRUG will be on Monday the 17th of
April, from 6:00pm to 8:00pm (meeting starts at 6:30pm). Note this is later in the month than we would normally hold the meeting, due to the Easter bank holiday.
Ruby has leftward assignment. It has rightward assignment. But what about upward assignment?
In this talk, we’ll misuse Ruby’s internals to build an arrow operator that lets us assign upwards. We’ll see some powerful Ruby metaprogramming features that allow us to bend Ruby to our will – and we’ll talk about why it’s good to write code that’s just plain daft.
As developers, we know that the best way to learn is by doing. Many of us have
built mini-rails, mini-sinatra, and even mini-rubies. But have you ever built
your own debugger?
In this talk, I'll show you how to create a mini Ruby debugger that's both
powerful and fun to use. You'll learn how to:
- Run your program with debugger with a simple command
- Set breakpoints and through debugger commands
- Step through your code to find bugs
And best of all, you'll do it all in under 300 lines of code!
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub for to eat, drink, and discuss the
talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 60 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.
You’ve heard it hundreds of times: Hybrid apps suck. That may have been true in the past, but things have changed significantly in the last decade. With tools like Turbo Native working in conjunction with Ruby on Rails, it’s possible to mix web technologies with native APIs to build slick hybrid mobile apps. We’ll take a look at why the hybrid approach gets such a bad rap, why that reputation is undeserved, and how we can build hybrid apps that don't suck.
Ever had a bug because the frontend made incorrect assumptions about the shape of response data from the backend? Or maybe you trod nervously during a refactor? Or perhaps you broke an app by changing the backend data in a way you didn’t think would matter?
Learn how avoid this type of mistake, enabling you to keep moving fast, by having a single source of truth for your data types, checked both on the frontend and the backend.
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub for to eat, drink, and discuss the
talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
Euston House, 24 Eversholt Street London, NW1 1AD England, United Kingdom
See on a map
The venue has a hard limit of 100 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.
Last September I began regularly livestreaming my work on a side project to build a WebAssembly interpreter in Ruby. In this talk I’ll tell you how it’s going and what I’ve learned so far.
I started out 2022 looking for a mentor to help me on my ruby career
adventure. After reflection (and some interesting insights) I realised that
perhaps that was the wrong way round, and I would get more from being the
mentor - here I'll share a journey, lessons learned and why maybe you
should mentor someone too.
Using a simple data structure as a starting point, we discuss three
different programming paradigms (imperative, object oriented and
functional), not only in terms of implementation, but also as a broader
framework for learning and having a richer mental model for problem solving.
My team started using the opinionated 'mob' tool for our
remote mob and pair programming sessions. I'll explain what the tool does
and how I've found it helps us to maintain momentum while pairing.
In this talk we'll explore a bit about how string interpolation works in Ruby. We'll do this while investigating and fixing a
bug arising from an assumption made as part of an optimisation many years
ago that is no longer true.
The talk will be about using ChatGPT, an advanced language model developed
by OpenAI, to explore programming with a bot. The aim is to show how
developers can use ChatGPT to learn, write, and debug code in the Ruby
programming language.
Once we're done with the talks we'll leave the venue (after doing our best
to help tidy up) and find a local pub for to eat, drink, and discuss the
talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
The venue has a hard limit of 75 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.
The January 2023 meeting of LRUG will be on Monday the 9th of
January, from 6:00pm to 8:00pm (meeting starts at 6:30pm).
👪 in person meeting alert 👪
Maybe next month we'll stop calling this out as a novelty, but for now
it's still potentially unusual so here we are. We're once again
in-person, this time we're hosted by the lovely folks at
Unboxed in their offices, on
Commercial St, near Liverpool St., Aldgate East, and Shoreditch High St.
stations. Full venue and registration details are given
below.
Join me on a journey through Ruby's Garbage Collector!
In this talk I'll teach you some of the details about how the Ruby
interpreter manages memory. I'll introduce a project my team and I are
working on that aims to make Ruby faster by improving its memory
efficiency, and then we'll talk about how our implementation broke
Garbage Collection.
After that we'll go on a journey together, through some weeds, and
taking a few bad turns until we finally emerge with a few PR's that
not only Fix GC, but make our project better too.
Like most web applications, you run important jobs in the background. And
today, some of your urgent jobs are running late. Again. No matter how many
changes you make to how you enqueue and run your jobs, the problem keeps
happening. The good news is you're not alone. Most teams struggle with this
problem, try more or less the same solutions, and have roughly the same
result. In the end, it all boils down to one thing: keeping latency low. In
this talk I will present a latency-focused approach to managing your queues
reliably, keeping your jobs flowing and your users happy.
From chewing-gum-and-regex to 35,000 lines of code and YAML! Come hear
about the past year of work on the solargraph-rails gem. You'll see new
features, mostly from merging with the solargraph-ARC gem, and hear about
the lessons learned along the way: more code means more to maintain and
understand, but there's a surprising amount that can be done just by
putting one foot in front of the other.
Once we're done with the talks we'll leave Unboxed (after doing our best
to help tidy up) and find a local pub for to eat, drink, and discuss the
talks we've just heard.
Of course, even though this is the socialising part and seems more
informal, please remember that still we consider it to be a part of the
meeting and covered by our code of
conduct.
Unboxed 60-62 Commercial Street London UK E1 6LT See on a map
The venue has a hard limit of 40 people. If you register and realise you
can't come, please use eventbrite to give up your place so we can someone
else come in your place. We might be able to let in people on the night
who haven't registered, but we can't guarantee it.