diff --git a/app/assets/images/events/lrug/lrug-meetup/avatar.webp b/app/assets/images/events/lrug/lrug-meetup/avatar.webp new file mode 100644 index 000000000..51aad2ce1 Binary files /dev/null and b/app/assets/images/events/lrug/lrug-meetup/avatar.webp differ diff --git a/app/assets/images/events/lrug/lrug-meetup/banner.webp b/app/assets/images/events/lrug/lrug-meetup/banner.webp new file mode 100644 index 000000000..e3ab92e4a Binary files /dev/null and b/app/assets/images/events/lrug/lrug-meetup/banner.webp differ diff --git a/app/assets/images/events/lrug/lrug-meetup/card.webp b/app/assets/images/events/lrug/lrug-meetup/card.webp new file mode 100644 index 000000000..21971d8ec Binary files /dev/null and b/app/assets/images/events/lrug/lrug-meetup/card.webp differ diff --git a/app/assets/images/events/lrug/lrug-meetup/featured.webp b/app/assets/images/events/lrug/lrug-meetup/featured.webp new file mode 100644 index 000000000..ca66ef68a Binary files /dev/null and b/app/assets/images/events/lrug/lrug-meetup/featured.webp differ diff --git a/app/assets/images/events/lrug/lrug-meetup/poster.webp b/app/assets/images/events/lrug/lrug-meetup/poster.webp new file mode 100644 index 000000000..aa42dfe62 Binary files /dev/null and b/app/assets/images/events/lrug/lrug-meetup/poster.webp differ diff --git a/app/assets/images/events/lrug/lrug-meetup/sticker.webp b/app/assets/images/events/lrug/lrug-meetup/sticker.webp new file mode 100644 index 000000000..fb75f6070 Binary files /dev/null and b/app/assets/images/events/lrug/lrug-meetup/sticker.webp differ diff --git a/app/models/event.rb b/app/models/event.rb index 4f5a953bb..94f707028 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -264,26 +264,32 @@ def event_image_for(filename) Rails.root.join("app", "assets", "images", event_image_path, filename).exist? ? event_path : nil end + # banner - 1300x350 def banner_image_path event_image_or_default_for("banner.webp") end + # card - 600x350 def card_image_path event_image_or_default_for("card.webp") end + # avatar - 256x256 def avatar_image_path event_image_or_default_for("avatar.webp") end + # featured - 615x350 def featured_image_path event_image_or_default_for("featured.webp") end + # poster - 600x350 def poster_image_path event_image_or_default_for("poster.webp") end + # sticker - 350x350 def sticker_image_path event_image_for("sticker.webp") end diff --git a/data/lrug/lrug-meetup/videos.yml b/data/lrug/lrug-meetup/videos.yml new file mode 100644 index 000000000..35b677beb --- /dev/null +++ b/data/lrug/lrug-meetup/videos.yml @@ -0,0 +1,3131 @@ +--- +- title: LRUG January 2020 + event_name: LRUG January 2020 + date: "2020-01-13" + published_at: "2019-12-22" + announced_at: "2019-12-22" + video_provider: children + video_id: lrug-january-2020 + description: https://lrug.org/meetings/2020/january/ + talks: + - title: Ruby on the Big Screen + event_name: LRUG January 2020 + date: "2020-01-13" + announced_at: "2019-12-22" + speakers: + - Steve Butterworth + description: |- + Using Ruby to crunch the numbers, read tv captions and drive a 30m long + LED screens at The Open Golf Championships. A whistle stop tour of the + setup, the architecture and the code that goes into making something + like this work and what can go wrong! + video_id: lrug-2020-01-13-ruby-on-the-big-screen + video_provider: not_published + published_at: Not published + - title: Re-interpreting data + event_name: LRUG January 2020 + date: "2020-01-13" + announced_at: "2019-12-22" + speakers: + - Murray Steele + description: |- + Some time ago I stumbled across the header description for WAV files + and wondered, what if I took a file and calculated the appropriate WAV + file header for it, could I _hear_ my data? Yes, you can. You probably + don't want to, but you can. You can do something similar with BMP and + MIDI files too! + video_id: lrug-2020-01-13-re-interpreting-data + video_provider: not_published + published_at: Not published + - title: Ruby's a critic + event_name: LRUG January 2020 + date: "2020-01-13" + announced_at: "2019-12-22" + speakers: + - Nuno Silva + description: |- + [RubyCritic](https://github.com/whitesmith/rubycritic/) provides a + report about code quality. You can run it locally to view how your + project is doing and what are the smelly spots. A way of getting sense + of how your code quality is evolving over time is by setting it up on + your CI and storing the reports artefacts. + video_id: lrug-2020-01-13-rubys-a-critic + video_provider: not_published + published_at: Not published + - title: Getting started with mruby + event_name: LRUG January 2020 + date: "2020-01-13" + announced_at: "2019-12-22" + speakers: + - Fred Cheung + description: |- + find out what [mruby](https://github.com/mruby/mruby) is, why you might + want to use it and obstacles you might encounter along the way. + video_id: lrug-2020-01-13-getting-started-with-mruby + video_provider: not_published + published_at: Not published +- title: LRUG February 2020 + event_name: LRUG February 2020 + date: "2020-02-10" + published_at: "2020-01-24" + announced_at: "2020-01-24" + video_provider: children + video_id: lrug-february-2020 + description: https://lrug.org/meetings/2020/february/ + talks: + - title: You don't know what you don't know + event_name: LRUG February 2020 + date: "2020-02-10" + announced_at: "2020-01-24" + speakers: + - Elena Tanasoiu + description: |- + How to start an investigation into transitioning from a monolith to a + microservice architecture. A number of issues to consider before you + start and how to make a list of blockers on the way. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/february/elena-tanasoiu-you-dont-know-what-you-dont-know-lrug-feb-2020.mp4 + published_at: TODO + - title: Designing Domain-Oriented Observability in your system + event_name: LRUG February 2020 + date: "2020-02-10" + announced_at: "2020-01-24" + speakers: + - Alfredo Motta + description: |- + What does it mean to make a system observable? Too often this is translated + into simply installing technical tools to measure low-level concerns like + memory, CPU or background queues size. In this talk, I will present the + concept of Domain-Oriented Observability, explore how it affects the cost + of maintaining your system and finally show some of the tools and solutions + that can help you put it into practice. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/february/alfredo-motta-designing-domain-oriented-observability-in-your-system-lrug-feb-2020.mp4 + published_at: TODO + - title: Semantic Versioning, Ruby Versoning, and the forward march of progress + event_name: LRUG February 2020 + date: "2020-02-10" + announced_at: "2020-01-24" + speakers: + - Jon Rowe + description: |- + [Jon Rowe](https://twitter.com/JonRowe) is going to tell us about how ruby + versioning interprets semantic versioning, and the problems that brings + for maintainers of projects like rspec that support multiple versions of + ruby. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/february/jon-rowe-semantic-versioning-ruby-versioning-and-the-forward-march-of-progress-lrug-feb-2020.mp4 + published_at: TODO + - title: Influence your company beyond code + event_name: LRUG February 2020 + date: "2020-02-10" + announced_at: "2020-01-24" + speakers: + - Mugurel Chirica + description: |- + It's important for all the engineers to realise that individually they are + able to help shape a company's culture, tech excellence, and tech direction. + + There are various ways to achieve this, in this talk I'll present some of + the common options while focusing on creating communities of practice - + groups of people that meet with a common goal in mind and relevant to the + company's interest, both sponsored by leadership or started by engineers. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/february/mugurel-chirica-influence-your-company-beyond-writing-code-lrug-feb-2020.mp4 + published_at: TODO + - title: From confusion to contribution + event_name: LRUG February 2020 + date: "2020-02-10" + announced_at: "2020-01-24" + speakers: + - Nitish Rathi + description: |- + How I refactored my way into an open source codebase, starting from a + state of confusion and ending up contributing to mocha, and some things + I learned along the way. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/february/nitish-rathi-from-confusion-to-contribution-lrug-feb-2020.mp4 + published_at: TODO + - title: How to manage happy remote development teams + event_name: LRUG February 2020 + date: "2020-02-10" + announced_at: "2020-01-24" + speakers: + - Ali Najaf + description: |- + Things I learned about how to manage and work on distributed + software development teams while keeping everyone happy, at least some of + the time. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/february/ali-najaf-how-to-manage-happy-remote-development-teams-lrug-feb-2020.mp4 + published_at: TODO +- title: LRUG March 2020 + event_name: LRUG March 2020 + date: "2020-03-09" + published_at: "2020-02-20" + announced_at: "2020-02-20" + video_provider: children + video_id: lrug-march-2020 + description: https://lrug.org/meetings/2020/march/ + talks: + - title: I got an email from the Government the other day + event_name: LRUG March 2020 + date: "2020-03-09" + announced_at: "2020-02-20" + speakers: + - Stuart Harrison + description: |- + Email has been around for a long time, predating even the Internet, and + despite the best efforts of big tech to monopolise our communications, + it's still the most popular way to for people to communicate online. + This ubiquity means it's a really easy wayf or Government to keep in + touch with us, but email is a tricky thing to manage, running + mailservers can be a faff, and email as a service solutions can be + expensive. In this talk I'll go through a potted history of email, talk + about a tool that the Government Digital Service have developed to make + email easier for goverment agencies, and a Ruby gem I've build to make + it even easier for Rails devs. + video_id: lrug-2020-03-09-i-got-an-email-from-the-government-the-other-day + video_provider: not_published + published_at: Not published + - title: My first Rails bug report + event_name: LRUG March 2020 + date: "2020-03-09" + announced_at: "2020-02-20" + speakers: + - Alex Balhatchet + description: |- + Story time! Here's the bug I found, how we determined it was a bug in + Rails 6, how we dealt with it including working around it and submitting + the bug report, and finally getting to remove our workaround once the + bug was fixed and the new Rails was installed :) + video_id: lrug-2020-03-09-my-first-rails-bug-report + video_provider: not_published + published_at: Not published + - title: Tech for good with Ruby on Rails + event_name: LRUG March 2020 + date: "2020-03-09" + announced_at: "2020-02-20" + speakers: + - James Hand + - Alan Bridger + description: |- + Giki Social Enterprise uses Ruby on Rails to help people live + sustainably. We'll talk about what we do and why Rails is such a good + framework for helping people to make sustainable and healthy choices. + video_id: lrug-2020-03-09-tech-for-good-with-ruby-on-rails + video_provider: not_published + published_at: Not published + - title: London Ruby Events + event_name: LRUG March 2020 + date: "2020-03-09" + announced_at: "2020-02-20" + speakers: + - Jairo Diaz + description: |- + I am going to tell you about the Ruby events in London that I am + organising such as the [Ruby Hacknight](https://www.meetup.com/ruby-hacknight-london/) + and [Ruby London Jobs](https://www.meetup.com/Ruby-Jobs-London/) and + other events for the community that are the most common. I will also + mention different event formats which I have experienced and found + useful for different purposes. + video_id: lrug-2020-03-09-london-ruby-events + video_provider: not_published + published_at: Not published +- title: LRUG April 2020 + event_name: LRUG April 2020 + date: "2020-04-06" + published_at: "2020-03-24" + announced_at: "2020-03-24" + video_provider: children + video_id: lrug-april-2020 + description: https://lrug.org/meetings/2020/april/ + talks: + - title: How to take control of code quality + event_name: LRUG April 2020 + date: "2020-04-06" + announced_at: "2020-03-24" + speakers: + - Joel Chippindale + description: |- + We all know how valuable it is to keep the quality of your code high. Working on a high quality codebase is more enjoyable and enables us to deliver value much more effectively for our users and yet, time and again I hear engineers saying, “I am not allowed to spend sufficient time on code quality”. + + This talk clarifies the value of maintaining a high quality codebase, gives you guidance on how to talk about this to help you get the support of your colleagues and managers for spending time on this and also outlines some key practices that will help you achieve this. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/april/joel-chippindale-how-to-take-control-of-your-code-quality-lrug-apr-2020.mp4 + published_at: TODO + slides_url: https://blog.mocoso.co.uk/assets/take-control-of-code-quality/take-control-of-code-quality--lrug-apr-2020.pdf + - title: Music Experiments in Sonic Pi + event_name: LRUG April 2020 + date: "2020-04-06" + announced_at: "2020-03-24" + speakers: + - Rob McKinnon + description: |- + Let's celebrate Sonic Pi's v3.2 release, scheduled for 28 Feb! + Sonic Pi's an open source Ruby code-based music creation and performance tool. + + Rob's presenting a few experiments in Sonic Pi, covering oddities such as: + + * negative melody + * Jianpu (numbered musical notation) + * just intonation + * microtonal music - 19 EDO (Equal Division of the Octave) + * interfacing with MIDI controllers over USB and bluetooth BLE. + + Also Rob will walk us through a memory management improvement PR to Sonic Pi - that may have made it into the release. + video_id: lrug-2020-04-06-music-experiments-in-sonic-pi + video_provider: not_published + published_at: Not published +- title: LRUG May 2020 + event_name: LRUG May 2020 + date: "2020-05-11" + published_at: "2020-04-25" + announced_at: "2020-04-25" + video_provider: children + video_id: lrug-may-2020 + description: https://lrug.org/meetings/2020/may/ + talks: + - title: + Comparing the speed and elegance of different computer languages using + a Hamiltonian curve algorithm as the comparator + event_name: LRUG May 2020 + date: "2020-05-11" + announced_at: "2020-04-25" + speakers: + - Peter Bell + description: |- + My company (Trapeze) specialises in public transport including schedule + optimisation. Finding Hamiltonian curves is a sub-problem to the + travelling salesman problem and of the general problem of optimising + pickup and drop-offs in demand responsive public transport. This talk + will compare implementing a Hamiltonian curve finder in a number of + different languages. The talk looks both at the speed of the language + and the elegance. For Ruby, I compare a couple of different + implementations. Other languages that are compared are Elixir, Go, + Javascript, Java, C++, C# and Python. + + The source code is in a public Github repository details of which I will + provide as part of my talk + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/may/peter-bell-comparing-the-speed-and-elegance-of-different-computer-languages-lrug-apr-2020.mp4 + published_at: TODO + - title: Debugging Ruby HTTP Library Surprises + event_name: LRUG May 2020 + date: "2020-05-11" + announced_at: "2020-04-25" + speakers: + - Sam Joseph + description: |- + Some folks prefer 'puts' to debugging with something like + pry-byebug, but I'm a huge fan of debuggers, particularly stepping + through my own code and the code of the many libraries we all rely on. + In combination with `bundle open` to insert breakpoints into the code of + gems being used in your stack, debugging can expose really tricky + dependency bugs, as I aim to demonstrate with one that I found in the + way different ruby HTTP libraries can interact. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/may/sam-joseph-debugging-ruby-http-library-surprises-lrug-may-2020.mp4 + published_at: TODO +- title: LRUG June 2020 + event_name: LRUG June 2020 + date: "2020-06-08" + published_at: "2020-05-18" + announced_at: "2020-05-18" + video_provider: children + video_id: lrug-june-2020 + description: https://lrug.org/meetings/2020/june/ + talks: + - title: Hanami, another Opinionated Rack-based Framework + event_name: LRUG June 2020 + date: "2020-06-08" + announced_at: "2020-05-18" + speakers: + - Panos Matsinopoulos + description: |- + [Panos Matsinopoulos](http://www.linkedin.com/in/panayotismatsinopoulos): + + > We present Hanami and its differences to Rails. Then + > we show an integration case between a Hanami and a Rails project. Finally, + > we close with a PR on the Hanami project. + + Panos is a Senior Software Engineer at [Lavanda](https://getlavanda.com/). + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/june/panos-matsinopoulos-hanami-another-opinionated-rack-based-framework-lrug-jun-2020.mp4 + published_at: TODO + - title: Agile or Waterfall; a risk management perspective + event_name: LRUG June 2020 + date: "2020-06-08" + announced_at: "2020-05-18" + speakers: + - Alfredo Motta + description: |- + Today Agile is the default choice for software development out there. Every + conference, book, or blog post is telling us we are doomed to fail if we + don’t follow this established convention. But isn't it surprising to think + that Agile is advocated as the right methodology for every possible company + doing software out there? Are we going to organize software development + exactly the same way if we are working for a startup, NASA, or FedEx? It + seems hard to believe. In this presentation, I will explore the mental + model to help you choose when you should (or sometimes should not) use + Agile using the lenses of risk management. My goal is to provide guidance + for the puzzled business owner, project manager, or software developer who + wants to pick what's right for their company or team. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/june/alfredo-motta-agile-or-waterfall-a-risk-management-perspective-lrug-jun-2020.mp4 + published_at: TODO +- title: LRUG July 2020 + event_name: LRUG July 2020 + date: "2020-07-13" + published_at: "2020-07-01" + announced_at: "2020-07-01" + video_provider: children + video_id: lrug-july-2020 + description: https://lrug.org/meetings/2020/july/ + talks: + - title: Improved security for password authentication + event_name: LRUG July 2020 + date: "2020-07-13" + announced_at: "2020-07-01" + speakers: + - Jolyon Pawlyn + description: |- + [Jolyon Pawlyn](https://twitter.com/jpawlyn): + + > Devise is a great authentication solution and is standard in many Rails + > applications. I want to look at 2 easy improvements to the default password + > validation. Then let's see what it takes to implement bare bones two-factor + > authentication using Devise and Warden. + > + > The security features to be covered can be viewed in [an example + application](https://github.com/jpawlyn/secure-user-accounts#secure-user-accounts). + + Jolyon is a volunteer at Crowdfrica, ex Contentful, Wunder Mobility and Unboxed + Consulting, and also an aspiring yardener. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/july/jolyon-pawlyn-improved-security-for-password-authentication-lrug-jul-2020.mp4 + published_at: TODO + - title: Perfect is the enemy of good + event_name: LRUG July 2020 + date: "2020-07-13" + announced_at: "2020-07-01" + speakers: + - Nicky Thompson + description: |- + [Nicky Thompson](https://twitter.com/knotnicky): + + > This talk is a rambling rag-tag collection of software engineering and + > problem-solving lessons learned over the course of *mumble* years as a + > developer and now an engineering manager. It includes practical tips, + > philosophical insights, or just advice that other people gave me that I + > found helpful. These ideas have helped me be better at my job over the + > years. They are tried and tested, things that I have actually done + > throughout my career. They might or might not help you. + + Nicky is an Engineering Manager at FutureLearn, providing management and support to the Technology Team. Offline, Nicky enjoys watching bad TV and learning new stuff: this year it's a serious sewing/dressmaking habit. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/july/nicky-thompson-perfect-is-the-enemy-of-good-lrug-jul-2020.mp4 + published_at: TODO +- title: LRUG August 2020 + event_name: LRUG August 2020 + date: "2020-08-10" + published_at: "2020-08-02" + announced_at: "2020-08-02" + video_provider: children + video_id: lrug-august-2020 + description: https://lrug.org/meetings/2020/august/ + talks: + - title: "Language doesn't matter: what makes a senior engineer?" + event_name: LRUG August 2020 + date: "2020-08-10" + announced_at: "2020-08-02" + speakers: + - Matt Bee + description: |- + What makes a senior engineer? What other aspects of + being a senior engineer are as important, if not more important, than + knowing a programming language inside out. What things can you work on to + become or be a better senior engineer (that won't have a new framework out + by next week!). This is a set of lessons learned in a journey from self + taught front end developer to senior polyglot developer (via ruby). + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/august/matt-bee-language-doesnt-matter-what-makes-a-senior-engineer-lrug-aug-2020.mp4 + published_at: TODO + - title: Doing the right thing + event_name: LRUG August 2020 + date: "2020-08-10" + announced_at: "2020-08-02" + speakers: + - Chris Zetter + description: |- + Ethics are the principles of right and wrong that govern + our behaviour. Using examples from my experience, i'll share some tools + that you can use to understand ethical decisions and ways to help + ourselves and our team make the right choices. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/august/chris-zetter-doing-the-right-thing-lrug-aug-2020.mp4 + published_at: TODO +- title: LRUG September 2020 + event_name: LRUG September 2020 + date: "2020-09-14" + published_at: "2020-08-31" + announced_at: "2020-08-31" + video_provider: children + video_id: lrug-september-2020 + description: https://lrug.org/meetings/2020/september/ + talks: + - title: "StimulusJS: Modest JS for the HTML you have" + event_name: LRUG September 2020 + date: "2020-09-14" + announced_at: "2020-08-31" + speakers: + - Matt Swanson + description: |- + An overview of [StimulusJS](https://stimulusjs.org) (a small framework from Basecamp) and + discussion on when you might (or might not!) want to use it + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/september/matt-swanson-stimulusjs-modest-js-for-the-html-you-have-lrug-sep-2020.mp4 + published_at: TODO + slides_url: https://docs.google.com/presentation/d/1uPA7CX_SGZPY2hFcf0YIvsSvCQzN7OTHVsvQnv5vKnY/ + - title: Wizards without magic + event_name: LRUG September 2020 + date: "2020-09-14" + announced_at: "2020-08-31" + speakers: + - Duncan Brown + description: |- + Multi-step forms (a.k.a wizards) are fiddly to build and difficult to + test. (And not just in Rails). Why is that, and how can we make them + better? + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/september/duncan-brown-wizards-without-magic-lrug-sep-2020.mp4 + published_at: TODO +- title: LRUG October 2020 + event_name: LRUG October 2020 + date: "2020-10-12" + published_at: "2020-10-05" + announced_at: "2020-10-05" + video_provider: children + video_id: lrug-october-2020 + description: https://lrug.org/meetings/2020/october/ + talks: + - title: JWTs - what Rails developers need to know + event_name: LRUG October 2020 + date: "2020-10-12" + announced_at: "2020-10-05" + speakers: + - Dan Moore + description: |- + What is a JSON Web Token (JWT) and why do you care? JWTs + are a stateless, standardized way to represent user data. This talk will + discuss why JWTs matter and the nuts and bolts of JWTs. We’ll also discuss + how you might use a JWT in your Rails or Ruby application. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/october/dan-moore-jwts-what-rails-developers-need-to-know-lrug-oct-2020.mp4 + published_at: TODO + slides_url: https://docs.google.com/presentation/d/1Sr52vuZzUB2EgdOw_CZD1tgbs5e0amCbfQH_Wx7iagQ/ + - title: Getting Past the Tech Test + event_name: LRUG October 2020 + date: "2020-10-12" + announced_at: "2020-10-05" + speakers: + - Michael Mazour + description: |- + Sometimes people have great backgrounds and great skills, but have trouble + getting hired because they didn't approach the tech test the way the + company wanted. As someone who reviews a lot of tech tests at work, I'm + going to explain some of the unwritten rules and expectations that you + might not know if you've been out of circulation or are just entering the + job market, and help you level up your tech test game. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/october/michael-mazour-getting-past-the-tech-test-lrug-oct-2020.mp4 + published_at: TODO + slides_url: https://speakerdeck.com/mmazour/getting-past-the-tech-test +- title: LRUG November 2020 + event_name: LRUG November 2020 + date: "2020-11-09" + published_at: "2020-11-02" + announced_at: "2020-11-02" + video_provider: children + video_id: lrug-november-2020 + description: https://lrug.org/meetings/2020/november/ + talks: + - title: Patches Welcome! + event_name: LRUG November 2020 + date: "2020-11-09" + announced_at: "2020-11-02" + speakers: + - Denny de la Haye + description: |- + [Denny de la Haye](https://denny.me) says: + + > Everybody at LRUG probably uses open source software - unless they got lost on + > the way to another meeting - but it often surprises me how few developers take + > the extra step from using it, to contributing to (or releasing their own) open + > source software projects. I'm going to talk about how I got involved in the + > open source community, why I stay involved, and about my current open source + > projects + + [Denny de la Haye](https://denny.me) has been a programmer for nearly 30 years + now - "although my ZX81 code is thankfully all lost in the mists of time (AKA + audio cassettes and thermal printer paper)", he says. He has spent most of the + last 4+ years writing Ruby, and most of the 15+ before that writing Perl. The + switch between the two was less traumatic than he expected, but it did lead to + starting another open source software project last year... + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/november/denny-de-la-haye-patches-welcome-lrug-nov-2020.mp4 + published_at: TODO + - title: "Convention over Kubernetes: (Almost) Configless Deploys with Kuby" + event_name: LRUG November 2020 + date: "2020-11-09" + announced_at: "2020-11-02" + speakers: + - Cameron Dutro + description: |- + [Cameron Dutro](https://twitter.com/camertron) says: + + > Rails' most well-known mantra is "convention over configuration," i.e. sane + > defaults that limit the cognitive overhead of application development. It's + > easy to learn and easy to build with. The development experience is + > fantastic... right up until the point you want to deploy your app to + > production. It's at that point that the hand-holding stops. + > + > Heroku to the rescue, right? Just push your git repo to "heroku master" and + > never think about deployment again! Heroku is a great option for many small + > projects and the ease of deployment is exactly the kind of experience Rails + > developers are used to. To quote Aaron Patterson: "but at what cost?" You're + > tied to Heroku's stack and stuck within the limitations of their free tier. + > Heroku's add-ons can get pretty expensive too if you decide to upgrade later + > on. + > + > How can we, but humble Rails devs, achieve the same seamless, turnkey + > deployment experience affordably? Enter the Kuby gem, a + > convention-over-configuration approach to deploying Rails apps using + > industry-leading technologies. Come learn how, with almost no configuration, + > you too can use Kuby to leverage Docker and Kubernetes to deploy your Rails + > app cost-effectively on a variety of cloud platforms. + + [Cameron Dutro](https://twitter.com/camertron) currently works on the Quip team + at Salesforce. He's been programming in Ruby and using Rails for ten years and + has held previous positions at Fluther, Twitter, and Lumos Labs. When he's not + reading about, using, or working on technology, Cameron can be found hiking in + the hills behind his house or hanging out at home with his wife, daughter, and + cat. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/november/cameron-dutro-convention-over-kubernetes-almost-configless-deploys-with-kuby-lrug-nov-2020.mp4 + published_at: TODO +- title: LRUG December 2020 + event_name: LRUG December 2020 + date: "2020-12-14" + published_at: "2020-11-27" + announced_at: "2020-11-27" + video_provider: children + video_id: lrug-december-2020 + description: https://lrug.org/meetings/2020/december/ + talks: + - title: Create a Twitter clone in 15 minutes in pure Ruby with Matestack + event_name: LRUG December 2020 + date: "2020-12-14" + announced_at: "2020-11-27" + speakers: + - Jonas Jabari + description: |- + Matestack enables you to implement reactive web UIs in pure Ruby, skipping + ERB, HTML and JavaScript. In a live coding session, we will create a Twitter + clone using Matestack's core features from scratch! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2020/december/jonas-jabari-create-a-twitter-clone-in-15-minutes-in-pure-ruby-with-matestack.lrug-dec-2020.mp4 + published_at: TODO +- title: LRUG January 2021 + event_name: LRUG January 2021 + date: "2021-01-11" + published_at: "2020-12-22" + announced_at: "2020-12-22" + video_provider: children + video_id: lrug-january-2021 + description: https://lrug.org/meetings/2021/january/ + talks: + - title: Recruiting 101 instead of 404 + event_name: LRUG January 2021 + date: "2021-01-11" + announced_at: "2020-12-22" + speakers: + - Thayer Prime + description: |- + [Thayer Prime](https://twitter.com/teamPrimeLtd) says: + + > Recruitment is one of the hardest problems in scaling your tech company. + > Everyone wants the best, everyone wants diversity in hires, everyone + > wants the most affordable people - but companies rarely have the time, + > money or ability to invest in creating a world class recruiting team. So + > what are some of the common questions we can review, and how do you + > navigate the pitfalls of bad hiring as a starter for ten? Come and find + > out from an LRUG community Q&A to address some of the most commonly + > asked questions, and get some starter tips on hiring humans, not + > resources. + > + > Your Qs will be A'd by [Thayer Prime, of Team + > Prime](https://team-prime.com/about/) who started life in the tech + > industry as a programmer twenty years ago, before turning to the dark + > arts of recruitment. She's been lucky enough to work with the likes of + > Sir Tim Berners-Lee, Jimmy Wales, Apple, Stripe and NASA to name just a + > few. She has founded three successful companies herself, and often acts + > as a strategic adviser to founders and C-level executives growing their + > tech capacity within their organisations. + + For info on how to submit questions for the talk [check out Thayer's email + to the mailing list](http://lists.lrug.org/pipermail/chat-lrug.org/2020-December/025636.html) + explaining the situation. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/january/thayer-prime-recruiting-101-instead-of-404-lrug-jan-2021.mp4 + published_at: TODO +- title: LRUG February 2021 + event_name: LRUG February 2021 + date: "2021-02-08" + published_at: "2021-01-24" + announced_at: "2021-01-24" + video_provider: children + video_id: lrug-february-2021 + description: https://lrug.org/meetings/2021/february/ + talks: + - title: + "An intro to Bridgetown: A static site generator for the modern JAMStack + era." + event_name: LRUG February 2021 + date: "2021-02-08" + announced_at: "2021-01-24" + speakers: + - Ayush Newatia + description: |- + [Bridgetown](https://www.bridgetownrb.com) is a new Ruby-powered static + site generator that was forked from Jekyll 4.1. It has a focus on modern + ideas and includes Webpack as a first-class citizen. In this talk I'll + give a demo of what differentiates Bridgetown from Jekyll and some of + its best features; followed by a short Q&A. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/february/ayush-newatia-an-intro-to-bridgetown-a-static-site-generator-for-the-modern-jamstack-era-lrug-feb-2021.mp4 + published_at: TODO + - title: The Path(name) of least resistance + event_name: LRUG February 2021 + date: "2021-02-08" + announced_at: "2021-01-24" + speakers: + - Fred Cheung + description: |- + Ruby has many classes that deal with files, paths or directories, but + one that often doesn't get enough credit is + [Pathname](https://github.com/ruby/pathname). Pathname unifies the other + pretenders to the throne with a consistent, rubyish interface that is a + joy to work with. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/february/fred-cheung-the-pathname-of-least-resistance-lrug-feb-2021.mp4 + published_at: TODO + - title: Are we parallel yet? A first look at Ruby Ractors + event_name: LRUG February 2021 + date: "2021-02-08" + announced_at: "2021-01-24" + speakers: + - Lorenzo Barasti + description: |- + A speedrun through actor-based concurrency, the Ractor API and the + future of parallel applications in Ruby. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/february/lorenzo-barasti-are-we-parallel-yet-a-first-look-at-ruby-ractors-lrug-feb-2021.mp4 + published_at: TODO + - title: Uncovering some ruby magic in `awesome_print` + event_name: LRUG February 2021 + date: "2021-02-08" + announced_at: "2021-01-24" + speakers: + - Mark Burns + description: |- + `ap 1.methods` takes an `Array` of `Symbol`s as input and outputs + details it shouldn't know about the methods themselves. `ap + 1.methods.dup` has the same behaviour, but `ap + 1.methods.take(1.methods.length)` does not. I will peer into the magic + and divulge its secrets. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/february/mark-burns-uncovering-some-ruby-magic-in-awesome_print-lrug-feb-2021.mp4 + published_at: TODO + - title: Taking Rails Offline + event_name: LRUG February 2021 + date: "2021-02-08" + announced_at: "2021-01-24" + speakers: + - Mike Rogers + description: |- + Networks are unreliable & drop out all the time! Lets make our apps more + resilient to that! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/february/mike-rogers-taking-rails-offline-lrug-feb-2021.mp4 + published_at: TODO +- title: LRUG March 2021 + event_name: LRUG March 2021 + date: "2021-03-08" + published_at: "2021-02-25" + announced_at: "2021-02-25" + video_provider: children + video_id: lrug-march-2021 + description: https://lrug.org/meetings/2021/march/ + talks: + - title: + "Data as a foreign language, or: A tale of two (or possibly three) type + systems" + event_name: LRUG March 2021 + date: "2021-03-08" + announced_at: "2021-02-25" + speakers: + - Matt Patterson + description: |- + Working with XSLT/XPath’s XDM type system in Ruby requires learning how to + translate between two very different type systems in a way which allows for + idiomatic Ruby without ignoring the bits of XDM which aren’t quite Ruby-shaped. + Oh, and the only open-source implementation is in Java, so Java’s type system is + in the mix. + + I’ll look at a couple of cases where the different approaches and + assumptions of Ruby and XDM (and Java, which just can’t help sticking + its nose in) interact in an interesting way. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/march/matt-patterson-data-as-a-foreign-language-or-a-tale-of-two-or-possibly-three-type-systems-lrug-mar-2021.mp4 + published_at: TODO + - title: "Sundae Club: Livestreaming Ruby on Rails" + event_name: LRUG March 2021 + date: "2021-03-08" + announced_at: "2021-02-25" + speakers: + - Max Shelley + description: |- + I host a [weekly livestream](https://www.youtube.com/c/sundaeclub) where + each week I work on a Ruby on Rails app and, along with those watching, we + plan then build different features and discuss different possible + approaches. It’s casual, aimed very loosely at learners, hopefully useful + and receives positive feedback from those that watch or interact. + + When I mention livestreaming to others, they’re often interested in how it + works, what I get from doing it, what those who interact with the streams + get out of it and how they could potentially get involved in streaming. + This talk aims to answer those questions, along with any others you may + have, come and say hello! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/march/max-shelley-sundae-club-livestreaming-ruby-on-rails-lrug-mar-2021.mp4 + published_at: TODO +- title: LRUG April 2021 + event_name: LRUG April 2021 + date: "2021-04-12" + published_at: "2021-03-15" + announced_at: "2021-03-15" + video_provider: children + video_id: lrug-april-2021 + description: https://lrug.org/meetings/2021/april/ + talks: + - title: Git Rebase + event_name: LRUG April 2021 + date: "2021-04-12" + announced_at: "2021-03-15" + speakers: + - Brooke Kuhlmann + description: |- + Git is the dominant tool for version management. Misunderstanding and + misusing Git can cost development teams time, energy, and money. Few + better examples exist than Git's default merge workflow which creates + repositories that are hard to read, debug, and maintain. In this + talk, I'll show how to use the [Git Rebase + Workflow](https://www.alchemists.io/articles/git_rebase) instead, + which puts Git to work for you to produce quality code that's easy to + handle and kicks your team into high gear. + + Your questions will be answered by [Brooke + Kuhlmann](https://www.alchemists.io/team/brooke_kuhlmann) who is the + founder of the [Alchemists](https://www.alchemists.io) where the + mission is to create an inclusive and thoughtful collective focused + on the craft, quality, ethics, and security of software engineering. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/april/brooke-kuhlmann-git-rebase-lrug-apr-2021.mp4 + published_at: TODO + slides_url: https://www.alchemists.io/presentations/git_rebase/ +- title: LRUG May 2021 + event_name: LRUG May 2021 + date: "2021-05-10" + published_at: "2021-04-25" + announced_at: "2021-04-25" + video_provider: children + video_id: lrug-may-2021 + description: https://lrug.org/meetings/2021/may/ + talks: + - title: "Your fortified cookie jar: Demystifying cookie security in Rails" + event_name: LRUG May 2021 + date: "2021-05-10" + announced_at: "2021-04-25" + speakers: + - Ayush Newatia + description: |- + You may have heard that cookie security is hard with the need to worry + special flags and encryption. Actually, Ruby on Rails makes it super + simple to securely store data in cookies. In this talk I'll explain the + different types of cookies supported by Rails and what Rails does under + the hood to secure the data they contain. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/may/ayush-newatia-your-fortified-cookie-jar-lrug-may-2021.mp4 + published_at: TODO + - title: Is this feature a waste of time? + event_name: LRUG May 2021 + date: "2021-05-10" + announced_at: "2021-04-25" + speakers: + - Tom Lord + description: |- + Sometimes a new feature may be objectively worthwhile; but often one + might be left wondering “Does this actually make our product better?”, + or “Is this making the business more money?”. + + In this talk, I will explore the virtues of defining North Star metrics, + AB testing product variations to statistical significance, and using + funnel analysis to quantify a feature's value. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/may/tom-lord-is-this-feature-a-waste-of-time-lrug-may-2021.mp4 + published_at: TODO +- title: LRUG July 2021 + event_name: LRUG July 2021 + date: "2021-07-12" + published_at: "2021-06-22" + announced_at: "2021-06-22" + video_provider: children + video_id: lrug-july-2021 + description: https://lrug.org/meetings/2021/july/ + talks: + - title: Breaking Up Monoliths With CRC cards + event_name: LRUG July 2021 + date: "2021-07-12" + announced_at: "2021-06-22" + speakers: + - Hemal Varambhia + description: |- + Rapid iteration and feedback is key to enhancing agility. This is an + experience report on how we appealed to a modelling technique from the + 1980s, CRC cards, to figure out how we might break away part of a monolith + at the architectural level and guide refactorings at the softer design + level. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/july/hemal-varambhia-breaking-up-monoliths-with-crc-cards-lrug-jul-2021.mp4 + published_at: TODO + - title: Ruby on Rails for Fun and Social Good + event_name: LRUG July 2021 + date: "2021-07-12" + announced_at: "2021-06-22" + speakers: + - Alex Rudall + description: |- + Beam is the world's first crowdfunding platform for homelessness. Alex + will talk about what Beam does and how Beam uses Ruby on Rails, + Airtable, Vue.js and Tailwind to help them change the lives of homeless + people. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/july/alex-rudall-ruby-on-rails-for-fun-and-social-good-lrug-jul-2021.mp4 + published_at: TODO + - title: Improving Rails scalability using modularity with enforced boundaries + event_name: LRUG July 2021 + date: "2021-07-12" + announced_at: "2021-06-22" + speakers: + - Rob Faldo + description: |- + One of the aspects of Ruby & Rails that gives it the reputation for not + scaling well is that unlike some languages/frameworks it has no way to + enforce modularity. Over time and with many developers this usually + leads to 'spaghetti code'. This talk will introduce a solution to this + problem called [packwerk](https://github.com/Shopify/packwerk) (a ruby + gem by Shopify), as well as touch on some alternatives. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/july/rob-faldo-improving-rails-scalability-using-modularity-with-enforced-boundaries-lrug-jul-2021.mp4 + published_at: TODO + slides_url: https://docs.google.com/presentation/d/12EjD9OtIOtFpRqBaFKWmu4y1ogJK-WsO8l5TgTt1EmI/edit?usp=sharing +- title: LRUG August 2021 + event_name: LRUG August 2021 + date: "2021-08-09" + published_at: "2021-07-21" + announced_at: "2021-07-21" + video_provider: children + video_id: lrug-august-2021 + description: https://lrug.org/meetings/2021/august/ + talks: + - title: 10 years on - building startups with Ruby on Rails + event_name: LRUG August 2021 + date: "2021-08-09" + announced_at: "2021-07-21" + speakers: + - Tom Blomfield + description: |- + Tom was the founder of GoCardless (built in Ruby) and Monzo. + He recently joined the board of Generation Home (also Ruby) - a + London-based mortgage provider. He's come back to talk about the evolution + of the London startup community and how successful fintechs are still + building on Ruby on Rails + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/august/tom-blomfield-10-years-on-building-startups-with-ruby-on-rails-lrug-aug-2021.mp4 + published_at: TODO + - title: Do regex dream of Turing Completeness? + event_name: LRUG August 2021 + date: "2021-08-09" + announced_at: "2021-07-21" + speakers: + - Daniel Magliola + description: |- + We're used to using Regular Expressions every day for pattern matching and + text replacement, but... What can Regexes actually do? How far can we push + them? Can we implement actual logic with them? + + What if I told you... You can actually implement Conway's Game of Life with + just a Regex? What if I told you... You can actually implement ANYTHING with + just a Regex? + + Join me on a wild ride exploring amazing Game of Life patterns, unusual Regex + techniques, Turing Completeness, programatically generating complex Regexes + with Ruby, and what all this means for ou understanding of what a Regex can + do. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/august/daniel-magliola-do-regex-dream-of-turing-completeness-lrug-aug-2021.mp4 + published_at: TODO +- title: LRUG September 2021 + event_name: LRUG September 2021 + date: "2021-09-13" + published_at: "2021-08-24" + announced_at: "2021-08-24" + video_provider: children + video_id: lrug-september-2021 + description: https://lrug.org/meetings/2021/september/ + talks: + - title: How to use flamegraphs to find performance problems + event_name: LRUG September 2021 + date: "2021-09-13" + announced_at: "2021-08-24" + speakers: + - Jade Dickinson + description: |- + [Jade Dickinson](https://twitter.com/_jadedickinson) will be running an interactive workshop: + + > Slow Ruby code can be a puzzle, but it doesn’t have to be that way. In this + > talk you will see how fun it can be to use flamegraphs to find performance + > problems. You’ll enjoy this talk if you know you have slow areas in your + > Ruby application\*, and would like to learn how to find the code responsible. + + You can find out more about what you need to prepare for the workshop via [Jade's + mailing list post about it](http://lists.lrug.org/pipermail/chat-lrug.org/2021-September/025800.html). + video_id: lrug-2021-09-13-how-to-use-flamegraphs-to-find-performance-problems + video_provider: not_published + published_at: Not published +- title: LRUG October 2021 + event_name: LRUG October 2021 + date: "2021-10-11" + published_at: "2021-09-20" + announced_at: "2021-09-20" + video_provider: children + video_id: lrug-october-2021 + description: https://lrug.org/meetings/2021/october/ + talks: + - title: "Solargraph: A Ruby language server to make your editor smart" + event_name: LRUG October 2021 + date: "2021-10-11" + announced_at: "2021-09-20" + speakers: + - Fritz Meissner + description: |- + Language servers like [Solargraph](https://solargraph.org) can give code + editing superpowers to your favourite editor (Emacs, Vim, VSCode, etc.). + I'll talk about the Language Server Protocol and its advantages over + editor-specific plugins, as well as how Solargraph learns about your + Ruby. I'll also talk about the challenges that Rails poses for such + tooling and how solargraph-rails attempts to overcome them. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/october/fritz-meissner-your-editor-language-server-protocol-and-solargraph-lrug-oct-2021.mp4 + published_at: TODO + slides_url: http://iftheshoefritz.com/lsp/intellisense/solargraph/lrug/2021/10/11/lrug-solargraph.html + - title: How denormalizing our Postgres turned great + event_name: LRUG October 2021 + date: "2021-10-11" + announced_at: "2021-09-20" + speakers: + - Thierry Deo + description: |- + It's often considered best practice to normalize the database structure + to avoid data redundancy and incoherence. In Pennylane's accounting + platform we've found that this actually does not always help with data + coherence, and even introduces additional complexity in managing data + access. Our combination of denormalizing some of our data, enhancing + some of ActiveRecord's methods, and introducing default behaviors in our + application models has enabled us to greatly simplify access control + management and given us confidence that our production data is in a + consistent state. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/october/thierry-deo-how-denormalizing-our-postgres-turned-great-lrug-oct-2021.mp4 + published_at: TODO + - title: "Memoization: My Favourite Antipattern" + event_name: LRUG October 2021 + date: "2021-10-11" + announced_at: "2021-09-20" + speakers: + - Joel Biffin + description: |- + As Rubyists we love to use built-in language features to set ourselves + apart for the rest. It's part of what makes programming in Ruby so + enjoyable! **Memoization** is no exception to this. But, *what if we + don't really need all of that memoization*? *Is memoization an + anti-pattern in its own right?* + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/october/joel-biffin-memoization-my-favourite-antipattern-lrug-oct-2021.mp4 + published_at: TODO +- title: LRUG November 2021 + event_name: LRUG November 2021 + date: "2021-11-08" + published_at: "2021-10-28" + announced_at: "2021-10-28" + video_provider: children + video_id: lrug-november-2021 + description: https://lrug.org/meetings/2021/november/ + talks: + - title: Failing better w/ Load Shedding & Deadline Propagation across services + event_name: LRUG November 2021 + date: "2021-11-08" + announced_at: "2021-10-28" + speakers: + - Christian Gregg + description: |- + As services start to split off from your majestic monolith, cascading + failures as a single service or endpoint slows down can become a + recurring problem which very quickly can lead to service unavailability. + Implementing load-shedding and deadline propagation across your services + is a technique which can help you provide a more resilient service to + your customers. This talk will introduce some of the concepts explored + in [CGA1123/loadshedding-experiment-ruby](https://github.com/CGA1123/loadshedding-experiment-ruby) + & [CGA1123/shed](https://github.com/CGA1123/shed). + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/november/christian-gregg-failing-better-with-load-shedding-and-deadline-propagation-across-services-lrug-nov-2021.mp4 + published_at: TODO + slides_url: https://github.com/lrug/lrug.org/files/7529520/presentation.pdf + - title: Why Rails is still relevant for startups in 2021 + event_name: LRUG November 2021 + date: "2021-11-08" + announced_at: "2021-10-28" + speakers: + - Chris Parsons + description: |- + With the rise of single page JavaScript apps, lo-code, and mobile-first, + is Rails consigned to the legacy dustbin of frameworks last cool in + 2008? The answer is emphatically “no” - Rails is as relevant as ever for + startups in 2021. Chris will talk about how Rails has supercharged the + early stage of his new startup, LollipopAI, and how Rails gave them + quick experiments, good-enough domain modelling and tooling that just + works. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/november/chris-parsons-why-rails-is-still-relevant-for-startups-in-2021-lrug-nov-2021.mp4 + published_at: TODO + slides_url: https://speakerdeck.com/chrismdp/why-rails-is-still-relevant-for-startups-in-2021 + - title: Service Objects and Domain objects differences + event_name: LRUG November 2021 + date: "2021-11-08" + announced_at: "2021-10-28" + speakers: + - Patricia Cupueran + description: |- + Understanding what a service and domain objects are. Distinguishing the + difference between procedures and objects. Why using service objects is + a bad idea. Advantages of using modules, concerns and PORO's instead of + service objects. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/november/patricia-cupueran-service-objects-and-domain-objects-differences-lrug-nov-2021.mp4 + published_at: TODO +- title: LRUG December 2021 + event_name: LRUG December 2021 + date: "2021-12-13" + published_at: "2021-11-28" + announced_at: "2021-11-28" + video_provider: children + video_id: lrug-december-2021 + description: https://lrug.org/meetings/2021/december/ + talks: + - title: Enough coverage to beat the band + event_name: LRUG December 2021 + date: "2021-12-13" + announced_at: "2021-11-28" + speakers: + - Kevin Murphy + description: |- + The lights cut out. The crowd roars. It’s time. The band takes the stage. + They’ve practiced the songs, particularly the *covers*. They’ve sound + checked the *coverage* of the speakers. They know the lighting rig has the + proper colored gels *covering* the lamps. They’re nervous, but they’ve got + it all __covered__. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/december/kevin-murphy-enough-coverage-to-beat-the-band-lrug-dec-2021.mp4 + published_at: TODO + - title: When ActiveRecord meets CTE!? + event_name: LRUG December 2021 + date: "2021-12-13" + announced_at: "2021-11-28" + speakers: + - Johnson Zhan + description: |- + CTE (`Common Table Expression`) is one of the ways we handle complicated + SQL queries. However, ActiveRecord does not support CTE directly so I used + to write some raw SQL to implement CTE. Now, I found there is a useful gem + called `activerecord-cte` which makes things different. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/december/johnson-zhan-when-activerecord-meets-cte-lrug-dec-2021.mp4 + published_at: TODO + - title: Finding, hiring and onboarding junior Ruby developers + event_name: LRUG December 2021 + date: "2021-12-13" + announced_at: "2021-11-28" + speakers: + - Alex Balhatchet + description: |- + The Ruby community in London has a huge number of junior + developers, largely thanks to bootcamps like Le Wagon and Makers Academy. + This talk describes my experiences finding, hiring and onboarding junior + devs. The aim is for the hiring managers in the room to feel more confident + hiring junior devs for their teams, and for the junior devs in the room to + feel more confident asking for support and learning opportunities. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2021/december/alex-balhatchet-finding-hiring-and-onboarding-junior-ruby-developers-lrug-dec-2021.mp4 + published_at: TODO + slides_url: https://alex.balhatchet.net/slides/2021-12-13-Hiring-Junior-Ruby-Devs.pdf +- title: LRUG January 2022 + event_name: LRUG January 2022 + date: "2022-01-10" + published_at: "2021-12-24" + announced_at: "2021-12-24" + video_provider: children + video_id: lrug-january-2022 + description: https://lrug.org/meetings/2022/january/ + talks: + - title: LRUG Pub quiz + event_name: LRUG January 2022 + date: "2022-01-10" + announced_at: "2021-12-24" + speakers: + - "" + description: |- + > Are you proud of your knowledge of Ruby and Ruby on Rails? Invite your + > friends, and win bragging rights. Or simply invite them and enjoy spending + > time with them. + + The quiz will have 4 categories, and each category will have between 20 and 30 + questions. The 4 categories are: + + - Ruby + - Ruby on Rails + - General computing + - London + video_id: lrug-2022-01-10-pub-quiz + video_provider: not_published + published_at: Not published +- title: LRUG February 2022 + event_name: LRUG February 2022 + date: "2022-02-21" + published_at: "2022-01-13" + announced_at: "2022-01-13" + video_provider: children + video_id: lrug-february-2022 + description: https://lrug.org/meetings/2022/february/ + talks: + - title: "Javascript in Rails: A New Hope" + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Frederick Cheung + description: |- + Tired of slow webpack builds and daunting configuration files? + Find out how the new css-bundling and js-bundling gems can roll back the years + and make javascript in rails fast and simple again. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-frederick-cheung-javascript-in-rails-a-new-hope-lrug-feb-2022.mp4 + published_at: TODO + - title: Getting past enemy images + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Pablo Dejuan + description: |- + Enemy images hinder our communication with people when we need them + the most: to agree with another colleague over a code review, to interview + a third party, to have an important conversation with our boss or direct + report (technical or non-technical topic). + In this talk we will raise awareness and cover one way of overcoming the + initial enemy image to get a better outcome for us and our team. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-pablo-dejuan-getting-past-enemy-images-lrug-feb-2022.mp4 + published_at: TODO + - title: The tale of the 60+ second page loads + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Jared Turner + description: |- + A monstrous mystery and a head-scratching hunt. Follow along to discover + why, just why, is that darn page so slow!? + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-jared-turner-the-tale-of-the-60-plus-second-page-loads-lrug-feb-2022.mp4 + published_at: TODO + slides_url: https://docs.google.com/presentation/d/1-vodmNcE930xHAjb5kyCiI3eJyZFPuUL48njnoPNlvM + - title: solargraph-dead_end + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Fritz Meissner + description: |- + The awesome dead_end gem gives really good feedback on where that elusive + missing `end` keyword is hiding in your Ruby file. + At a thoughtbot hackathon a few of us worked on a solargraph plugin + for it so you can get this feedback in your editor. Come hear about + the results! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-fritz-meissner-solargraph-dead-end-lrug-feb-2022.mp4 + published_at: TODO + - title: Introducing ViewComponent + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Simon Fish + description: |- + The view layer is the Wild West of Rails. Let's look at how ViewComponent + helps you break down and test your Rails views. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-simon-fish-introducing-viewcomponent-lrug-feb-2022.mp4 + published_at: TODO + - title: A Little Pessimism Never Killed Nobody + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Marija Mandić + description: |- + Come join and hear my experience on a real life example of concurrency problem + and different approaches to fixing it. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-marija-mandic-a-little-pessimism-never-killed-nobody-lrug-feb-2022.mp4 + published_at: TODO + - title: + Metaprogramming I Do In My Side Projects That My Colleagues Won't Let Me + Do In The Real App At Work :-( + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - PJ + description: + "Metaprogramming is fun but, more importantly, makes you feel *really*\nclever. + However, it's not always the best fit for codebases with multiple\ncontributors. + Let's take a few minutes to explore some neat tricks you can\ndo when you don't + need to worry about other people understanding your code \U0001F600" + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-pj-metaprogramming-my-colleagues-wont-let-me-do-at-work-lrug-feb-2022.mp4 + published_at: TODO + - title: How to think about Learning + event_name: LRUG February 2022 + date: "2022-02-21" + announced_at: "2022-01-13" + speakers: + - Hywel Carver + description: |- + Why do we learn? How do we learn? How do we learn well? + 3 mental models that will answer the first 3 of those questions and change how you think + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/february/speaker-hywel-carver-how-to-think-about-learning-lrug-feb-2022.mp4 + published_at: TODO +- title: LRUG March 2022 + event_name: LRUG March 2022 + date: "2022-03-14" + published_at: "2022-03-06" + announced_at: "2022-03-06" + video_provider: children + video_id: lrug-march-2022 + description: https://lrug.org/meetings/2022/march/ + talks: + - title: + "Running full builds after merging? \U0001F971: Ship faster with git tree + based caching" + event_name: LRUG March 2022 + date: "2022-03-14" + announced_at: "2022-03-06" + speakers: + - Christian Gregg + description: + "Fast deploy pipelines are an important facet of a fast moving engineering\nteam; + allowing you to ship smaller, safer units of value to production, [faster](https://xkcd.com/303/),\nand + more often.\n\nIn this talk we'll be covering how using [git tree objects](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects#_tree_objects)\ncan + allow you to run CI less or potentially not at all (in a not scary manner :)\nafter + merging your changes into your default branch, allowing you to get straight\nto + deploying! \U0001F682\n\nIn cases where your team can precompile deployment\nartefacts + your changes could make it into production in under 60s. If your\nteam uses + Heroku or Buildpacks to deploy your code, I'll point you to\n[some](https://buildpacks.io/docs/app-developer-guide/build-an-app/) + [tricks](https://github.com/CGA1123/slugcmplr)\nto help you do just that by + detaching building and releasing your application\nto production!" + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/march/christian-gregg-running-full-builds-after-merging-ship-faster-with-git-tree-based-caching-lrug-mar-2022.mp4 + published_at: TODO + - title: The Browser Environment - A Systems Programmer's Perspective + event_name: LRUG March 2022 + date: "2022-03-14" + announced_at: "2022-03-06" + speakers: + - Eleanor McHugh + description: |- + A quirky introduction to writing realtime web systems with Sinatra as + the backend. The highlight will be WebSockets but there'll also be + coverage of DOM manipulation, AJAX/fetch, and timer events. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/march/eleanor-mchugh-the-browser-environment-a-system-programmer-perspective-lrug-mar-2022.mp4 + published_at: TODO +- title: LRUG April 2022 + event_name: LRUG April 2022 + date: "2022-04-11" + published_at: "2022-04-04" + announced_at: "2022-04-04" + video_provider: children + video_id: lrug-april-2022 + description: https://lrug.org/meetings/2022/april/ + talks: + - title: Using React in a Ruby Project to Dynamically Generate PDF Documents + event_name: LRUG April 2022 + date: "2022-04-11" + announced_at: "2022-04-04" + speakers: + - Panos Matsinopoulos + description: |- + In the Ruby world, we traditionally address the PDF generation problem + using gems like [Prawn](https://github.com/prawnpdf/prawn) and [PDFKit](https://github.com/pdfkit/pdfkit) or + libraries like [whtmltopdf](https://wkhtmltopdf.org/). + + Recently, in one of our Ruby on Rails projects in which we wanted to generate PDF documents for + invoices, we decided to use another programming language and technology: React + and AWS Lambda. + + In this talk, we will be covering how we did it, what were + the challenges and what pros and cons over the incumbent tools for Ruby. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/april/panos-matsinopoulos-using-react-in-a-ruby-project-to-dynamically-generate-pdf-documents-lrug-apr-2022.mp4 + published_at: TODO + - title: + "A parse parse pitch: using JSON and custom parsers to create efficient + flexible data structures." + event_name: LRUG April 2022 + date: "2022-04-11" + announced_at: "2022-04-04" + speakers: + - Winston Ferguson + description: |- + JSON and custom parsers let you do neat things like: \ncomplex pricing, + map data to 3D models, auto generate images… + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/april/winston-ferguson-a-parse-parse-pitch-using-json-and-custom-parsers-to-create-efficient-flexible-data-structures-lrug-apr-2022.mp4 + published_at: TODO +- title: LRUG May 2022 + event_name: LRUG May 2022 + date: "2022-05-09" + published_at: "2022-04-22" + announced_at: "2022-04-22" + video_provider: children + video_id: lrug-may-2022 + description: https://lrug.org/meetings/2022/may/ + talks: + - title: + "Mining a gem: how to safely discover, extract and share useful code from + your Rails app" + event_name: LRUG May 2022 + date: "2022-05-09" + announced_at: "2022-04-22" + speakers: + - Duncan Brown + description: |- + We recently extracted a [gem for talking to Google BigQuery](https://github.com/DFE-Digital/dfe-analytics) + from 5 different Rails applications at the Department for Education + I'll talk through the process of pulling the code out, how to test gems + that work with Rails, figuring out how to deal with divergence among + existing implementations of the same functionality, and how we're + driving adoption of internal open source at DfE. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/may/duncan-brown-mining-a-gem-how-to-safely-discover-extract-and-share-useful-code-from-your-rails-app-lrug-may-2022.mp4 + published_at: TODO + - title: "[GOV.UK][]’s response to COVID-19" + event_name: LRUG May 2022 + date: "2022-05-09" + announced_at: "2022-04-22" + speakers: + - Leena Gupte + - Rosa Fox + description: |- + Leena and Rosa have been Senior Developers/Tech Leads on the [GOV.UK][] + Coronavirus team. The team’s work began in March 2020 when a service + they built over a weekend had nearly 50,000 registrations on the day it + launched. Two years later, after building lots more services (using + Ruby… of course) and serving millions of users, the [GOV.UK][] + Coronavirus team finally disbanded. + + Rosa and Leena will take LRUG through a timeline of [GOV.UK][]’s + response to the pandemic. We will discuss what we delivered, our + successes, failures and how the team supported each other to cope. We + will share how Ruby/Rails and tools such as the [GOV.UK][] Design System + enabled us to build and deploy critical services at pace. + video_id: lrug-2022-05-09-gov-uks-response-to-covid-19 + video_provider: not_published + published_at: Not published +- title: LRUG June 2022 + event_name: LRUG June 2022 + date: "2022-06-13" + published_at: "2022-05-15" + announced_at: "2022-05-15" + video_provider: children + video_id: lrug-june-2022 + description: https://lrug.org/meetings/2022/june/ + talks: + - title: Get your PRs merged, rebasing like a Pro + event_name: LRUG June 2022 + date: "2022-06-13" + announced_at: "2022-05-15" + speakers: + - Daniel Magliola + description: |- + You have a complex PR to submit. You've tried to keep it small, but sadly + you need to make many different changes all at once. Getting there took a + lot of effort and your branch has more than 30 commits with fixes and + reverting of dead ends. + + You know reviewing this will be a nightmare for your colleagues, and more + importantly, it will be almost impossible for someone in the future to + understand what happened if they ever look at the history. + + In this talk we will look at how Git branches work, and how to manicure + them using Rebase to build a commit history your colleagues will love you + for. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/june/daniel-magliola-get-your-prs-merged-rebasing-like-a-pro-lrug-jun-2022.mp4 + published_at: TODO + - title: + The messy middle – 5 Software Engineering lessons from a 5 years startup + journey + event_name: LRUG June 2022 + date: "2022-06-13" + announced_at: "2022-05-15" + speakers: + - Alfredo Motta + description: |- + These are some of the lessons that I have learned over my 5 years at a + Fintech startup that went from 0 to 100k customers and grew the team from 4 + to 50 people. I will present some of the software architecture tradeoffs I + have been presented with and I am still puzzled about today. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/june/alfredo-motta-the-messy-middle-5-software-engineering-lessons-from-a-5-years-startup-journey-lrug-jun-2022.mp4 + published_at: TODO +- title: LRUG July 2022 + event_name: LRUG July 2022 + date: "2022-07-11" + published_at: "2022-07-04" + announced_at: "2022-07-04" + video_provider: children + video_id: lrug-july-2022 + description: https://lrug.org/meetings/2022/july/ + talks: + - title: Building a Mortgage Lender at Generation Home + event_name: LRUG July 2022 + date: "2022-07-11" + announced_at: "2022-07-04" + speakers: + - André Barbosa + description: |- + It’s not often that you hear about a startup doings things differently in the mortgages world. And there’s some good reasons for it, the cost of entry is super high! + + It’s not just funding and regulations either. You also need to back it up with the right technology and tools to manage a highly complex business where mistakes can be very costly. On top of that, startups need to move fast to out-innovate the incumbents with only a fraction of the resources. + + At Generation Home Ruby has been a catalyst to help us deliver a product we’re proud of in a short time-scale. We’ll talk about some of the challenges we faced early on, how Ruby, Rails and the whole ecosystem helped us deliver and what still lays ahead of us. + video_id: lrug-2022-07-11-building-a-mortgage-lender-at-generation-home + video_provider: not_published + published_at: Not published +- title: LRUG August 2022 + event_name: LRUG August 2022 + date: "2022-08-08" + published_at: "2022-08-02" + announced_at: "2022-08-02" + video_provider: children + video_id: lrug-august-2022 + description: https://lrug.org/meetings/2022/august/ + talks: + - title: Low overhead Ruby profiling and tracing with rbperf + event_name: LRUG August 2022 + date: "2022-08-08" + announced_at: "2022-08-02" + speakers: + - Javier Honduvilla Coto + description: |- + Understanding our applications' performance can be tricky. Some of the readily available performance tools introduce a big overhead which makes them not suitable for use in production environments, where in many cases, it's the best place to troubleshoot performance issues. + + [rbperf](https://github.com/javierhonduco/rbperf/) is a low-overhead on-CPU profiler and tracer that is suitable for usage in production environments. It doesn't require the application under investigation to be restarted or disturbed in any way. + + We will discuss some of the tradeoffs in its design, its architecture, the features that make it unique, as well as its limitations compared to other tools. We will also take a look at how the Ruby stack is laid out in memory and the role BPF plays in rbperf. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/august/javier-honduvilla-coto-low-overhead-ruby-profiling-and-tracing-with-rbperf-lrug-aug-2022.mp4 + published_at: TODO +- title: LRUG September 2022 + event_name: LRUG September 2022 + date: "2022-09-12" + published_at: "2022-08-18" + announced_at: "2022-08-18" + video_provider: children + video_id: lrug-september-2022 + description: https://lrug.org/meetings/2022/september/ + talks: + - title: How music works, using Ruby + event_name: LRUG September 2022 + date: "2022-09-12" + announced_at: "2022-08-18" + speakers: + - Thijs Cadier + description: |- + That strange phenomenon where air molecules bounce against each other in a way that somehow comforts you, makes you cry, or makes you dance all night: music. Since the advent of recorded audio, a musician doesn't even need to be present anymore for this to happen (which makes putting "I will always love you" on repeat a little less awkward). + + Musicians and sound engineers have found many ways of creating music, and making music sound good when played from a record. Some of their methods have become industry staples used on every recording released today. + + Let's look at what they do and reproduce some of their methods in Ruby! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/september/thijs-cadier-how-music-works-using-ruby-lrug-sep-2022.mp4 + published_at: TODO + - title: Building a Mortgage Lender at Generation Home + event_name: LRUG September 2022 + date: "2022-09-12" + announced_at: "2022-08-18" + speakers: + - André Barbosa + description: |- + It’s not often that you hear about a startup doings things differently in the mortgages world. And there’s some good reasons for it, the cost of entry is super high! + + It’s not just funding and regulations either. You also need to back it up with the right technology and tools to manage a highly complex business where mistakes can be very costly. On top of that, startups need to move fast to out-innovate the incumbents with only a fraction of the resources. + + At Generation Home Ruby has been a catalyst to help us deliver a product we’re proud of in a short time-scale. We’ll talk about some of the challenges we faced early on, how Ruby, Rails and the whole ecosystem helped us deliver and what still lays ahead of us. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/september/andre-barbosa-buildin-a-mortgage-lender-at-generation-home-lrug-sep-2022.mp4 + published_at: TODO + - title: Fixing flaky tests, using RSpec's `--seed` option + event_name: LRUG September 2022 + date: "2022-09-12" + announced_at: "2022-08-18" + speakers: + - Shen Sat + description: |- + Fixing a flaky test in the build pipeline of your application often + requires first replicating the failing test locally. I'm going to show you + how I used RSpec's `--seed` to help me do this for a flaky test I was + recently grappling with, and how it led led me to a fix ✨ + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/september/shen-sat-fixing-flaky-tests-using-rspecs-seed-option-lrug-sep-2022.mp4 + published_at: TODO +- title: LRUG October 2022 + event_name: LRUG October 2022 + date: "2022-10-10" + published_at: "2022-09-18" + announced_at: "2022-09-18" + video_provider: children + video_id: lrug-october-2022 + description: https://lrug.org/meetings/2022/october/ + talks: + - title: How to be completely ignorant + event_name: LRUG October 2022 + date: "2022-10-10" + announced_at: "2022-09-18" + speakers: + - Paul Battley + description: |- + How much does a bit of code need to know to do its job? I'll show how I + transformed a bit of complicated, untested, flaky, and poorly understood code + into something pleasant to deal with and easy to test by applying the + principle of making it know as little as possible. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/october/paul-battley-how-to-be-completely-ignorant-lrug-oct-2022.mp4 + published_at: TODO + - title: The long road to ruby 3 vs. the short road to ruby 3.1 + event_name: LRUG October 2022 + date: "2022-10-10" + announced_at: "2022-09-18" + speakers: + - Murray Steele + description: |- + I'll share how the team at [Cleo](https://www.meetcleo.com/) + meticulously planned and delivered the upgrade to ruby 3.0 on our rails + app so smoothly that we became drunk on our own competence and totally + messed up our upgrade to ruby 3.1 the following week. A rare talk + where you will learn some best _and_ worst practices. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/october/murray-steele-the-long-road-to-ruby-3-0-vs-the-short-road-to-ruby-3-1-lrug-oct-2022.mp4 + published_at: TODO +- title: LRUG November 2022 + event_name: LRUG November 2022 + date: "2022-11-14" + published_at: "2022-10-20" + announced_at: "2022-10-20" + video_provider: children + video_id: lrug-november-2022 + description: https://lrug.org/meetings/2022/november/ + talks: + - title: Data Indexing with RGB (Ruby, Graphs and Bitmaps) + event_name: LRUG November 2022 + date: "2022-11-14" + announced_at: "2022-10-20" + speakers: + - Benji Lewis + description: |- + In this talk, we will go on a journey through Zappi’s data history and how + we are using Ruby, a graph database, and a bitmap store to build a unique + data engine. A journey that starts with the problem of a disconnected data + set and serialised data frames, and ends with the solution of an in-memory + index. + + We will explore how we used RedisGraph to model the relationships in our + data, connecting semantically equal nodes. Then delve into how a query + layer was used to index a bitmap store and, in turn, led to us being able + to interrogate our entire dataset orders of magnitude faster than before. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/november/benji-lewis-data-indexing-with-rgb-ruby-graphs-and-bitmaps-lrug-nov-2022.mp4 + published_at: TODO + - title: "`ruby/debug` - The best investment for your productivity" + event_name: LRUG November 2022 + date: "2022-11-14" + announced_at: "2022-10-20" + speakers: + - Stan Lo + description: |- + In this talk, I will demonstrate 3 powerful debugging techniques using Ruby's new debugger [`ruby/debug`](https://github.com/ruby/debug): + + * Step-debugging + * Frame navigation + * Breakpoint commands + + By using them together, we can reduce unnecessary context switching and make our debugging sessions more efficient. You will also learn more about `ruby/debug` while we walk through these techniques with its commands and console. + + And finally, I will show you how to level up our productivity even further by automating debugging steps using `ruby/debug`'s scriptable breakpoints. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/november/stan-lo-ruby-debug-the-best-investment-for-your-productivity-lrug-nov-2022.mp4 + published_at: TODO + slides_url: https://github.com/st0012/slides/blob/main/2022-11-14-lrug/Ruby%20debugger%20-%20The%20best%20investment%20for%20your%20productivity%20-%20LRUG.pdf + - title: Keeping developers happy with a fast CI + event_name: LRUG November 2022 + date: "2022-11-14" + announced_at: "2022-10-20" + speakers: + - Christian Bruckmayer + description: |- + When talking about performance, most developers think application speed, + faster algorithms or better data structures. But what about your test + suite? CI time is developer waiting time! + + At Shopify we have more than 170,000 Ruby tests and we add 30,000 more + annually. The sheer amount of tests and their growth requires some + aggressive methods. We will illustrate some of our techniques including + monitoring, test selection, timeouts and the 80/20 rule. If you have + experience in writing tests and want to learn tricks on how to speed up + your test suite, this talk is for you! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2022/november/christian-bruckmayer-keeping-developers-happy-with-a-fast-ci-lrug-nov-2022.mp4 + published_at: TODO + slides_url: https://bruckmayer.net/ruby-conf-2021 +- title: LRUG January 2023 + event_name: LRUG January 2023 + date: "2023-01-09" + published_at: "2022-12-13" + announced_at: "2022-12-13" + video_provider: children + video_id: lrug-january-2023 + description: https://lrug.org/meetings/2023/january/ + talks: + - title: Heaping on the Complexity + event_name: LRUG January 2023 + date: "2023-01-09" + announced_at: "2022-12-13" + speakers: + - Matt Valentine-House + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/january/matt-valentine-house-heaping-on-the-complexity-lrug-jan-2023.mp4 + published_at: TODO + - title: What does "high priority" mean? The secret to happy queues + event_name: LRUG January 2023 + date: "2023-01-09" + announced_at: "2022-12-13" + speakers: + - Daniel Magliola + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/january/daniel-magliola-what-does-high-priority-mean-the-secret-to-happy-queues-lrug-jan-2023.mp4 + published_at: TODO + - title: Solargraph-rails in 2022 + event_name: LRUG January 2023 + date: "2023-01-09" + announced_at: "2022-12-13" + speakers: + - Fritz Meissner + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/january/fritz-meissner-solargraph-rails-in-2022-lrug-jan-2023.mp4 + published_at: TODO +- title: LRUG February 2023 + event_name: LRUG February 2023 + date: "2023-02-13" + published_at: "2023-01-18" + announced_at: "2023-01-18" + video_provider: children + video_id: lrug-february-2023 + description: https://lrug.org/meetings/2023/february/ + talks: + - title: "A Supposedly Fun Thing I’ll Never Stream Again: live coding a Ruby project" + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Tom Stuart + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/tom-stuart-a-supposedly-fun-thing-ill-never-stream-again-live-coding-a-ruby-project-lrug-feb-2023.mp4 + published_at: TODO + - title: To mentor or to mentee - that is the question + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Matt Bee + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/matt-bee-to-mentor-or-to-mentee-that-is-the-question-lrug-feb-2023.mp4 + published_at: TODO + - title: "Data Structures in 3 Paradigms: Ruby Spotlight" + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Frank Kair + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/frank-kair-data-structures-in-3-paradigms-ruby-spotlight-lrug-feb-2023.mp4 + published_at: TODO + - title: Using the 'mob' tool for productive pairing + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Chris Zetter + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/chris-zetter-using-the-mob-tool-for-productive-pairing-lrug-feb-2023.mp4 + published_at: TODO + - title: "Strings: Interpolation, Optimisations and bugs" + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Matt Valentine-House + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/matt-valentine-house-strings-interpolation-optimisation-and-bugs-lrug-feb-2023.mp4 + published_at: TODO + - title: "WET: Why DRY isn't always best" + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Fell Sunderland + description: |- + An opinionated look at the pros and cons of + choosing abstractions early vs. waiting and duplicating effort + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/fell-sunderland-wet-why-dry-isnt-always-best-lrug-feb-2023.mp4 + published_at: TODO + - title: Using ChatGPT to Program in Ruby + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Jairo Diaz + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/jairo-diaz-using-chatgpt-to-program-in-ruby-lrug-feb-2023.mp4 + published_at: TODO + - title: "“Pure” OOP in Ruby" + event_name: LRUG February 2023 + date: "2023-02-13" + announced_at: "2023-01-18" + speakers: + - Dmitry Non + description: What if Ruby had NOTHING except classes and objects? + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/february/dmitry-non-pure-oop-in-ruby-lrug-feb-2023.mp4 + published_at: TODO +- title: LRUG March 2023 + event_name: LRUG March 2023 + date: "2023-03-13" + published_at: "2023-02-18" + announced_at: "2023-02-18" + video_provider: children + video_id: lrug-march-2023 + description: https://lrug.org/meetings/2023/march/ + talks: + - title: + "Native apps are dead, long live native apps: Using Turbo Native to make + hybrid apps that don’t suck." + event_name: LRUG March 2023 + date: "2023-03-13" + announced_at: "2023-02-18" + speakers: + - Ayush + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/march/ayush-newatia-native-apps-are-dead-long-live-native-apps-lrug-mar-2023.mp4 + published_at: TODO + - title: End to End typing for web applications + event_name: LRUG March 2023 + date: "2023-03-13" + announced_at: "2023-02-18" + speakers: + - Frederick Cheung + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/march/frederick-cheung-end-to-end-typing-for-web-applications-lrug-mar-2023.mp4 + published_at: TODO +- title: LRUG April 2023 + event_name: LRUG April 2023 + date: "2023-04-17" + published_at: "2023-03-23" + announced_at: "2023-03-23" + video_provider: children + video_id: lrug-april-2023 + description: https://lrug.org/meetings/2023/april/ + talks: + - title: Making a working upwards assignment operator + event_name: LRUG April 2023 + date: "2023-04-17" + announced_at: "2023-03-23" + speakers: + - Alex + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/april/alex-making-a-working-upwards-assignment-operator-lrug-apr-2023.mp4 + published_at: TODO + - title: Build a mini Ruby debugger in under 300 lines + event_name: LRUG April 2023 + date: "2023-04-17" + announced_at: "2023-03-23" + speakers: + - Stan Lo + description: |- + 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! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/april/stan-lo-build-a-mini-ruby-debugger-in-under-300-lines-lrug-apr-2023.mp4 + published_at: TODO +- title: LRUG May 2023 + event_name: LRUG May 2023 + date: "2023-05-15" + published_at: "2023-04-25" + announced_at: "2023-04-25" + video_provider: children + video_id: lrug-may-2023 + description: https://lrug.org/meetings/2023/may/ + talks: + - title: "GitHub Actions: an introduction" + event_name: LRUG May 2023 + date: "2023-05-15" + announced_at: "2023-04-25" + speakers: + - Gus Shaw Stewart + description: |- + An introductory talk about GitHub Actions - what they are, why they are + important, and how you can get started with them. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/may/gus-shaw-stewart-github-actions-an-introduction-lrug-may-2023.mp4 + published_at: TODO +- title: LRUG June 2023 + event_name: LRUG June 2023 + date: "2023-06-12" + published_at: "2023-05-16" + announced_at: "2023-05-16" + video_provider: children + video_id: lrug-june-2023 + description: https://lrug.org/meetings/2023/june/ + talks: + - title: Tech debt for the rest of us + event_name: LRUG June 2023 + date: "2023-06-12" + announced_at: "2023-05-16" + speakers: + - Alfredo Motta + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/june/alfredo-motta-tech-debt-for-the-rest-of-us-lrug-jun-2023.mp4 + published_at: TODO + - title: Mutation testing - study case + event_name: LRUG June 2023 + date: "2023-06-12" + announced_at: "2023-05-16" + speakers: + - Adam Piotrowski + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/june/adam-piotrowski-mutation-testing-study-case-lrug-jun-2023.mp4 + published_at: TODO + - title: How we used CQRS to structure our new Borrower Portal + event_name: LRUG June 2023 + date: "2023-06-12" + announced_at: "2023-05-16" + speakers: + - Shenthuran Satkunarasa + description: + "Funding Circle recently built a new application that allows borrowers + to\nmanage their loans themselves. We structured the application using a\n(new-to-me!) + design principle called Command Query Responsibility Segregation.\nJoin me as + I give a brief definition of what CQRS is before showing you the\npractical + application of it via our new borrower portal \U0001F4BB" + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/june/shenthuran-satkunarasa-how-we-used-cqrs-to-structure-our-new-borrower-portal-lrug-jun-2023.mp4 + published_at: TODO +- title: LRUG July 2023 + event_name: LRUG July 2023 + date: "2023-07-10" + published_at: "2023-06-28" + announced_at: "2023-06-28" + video_provider: children + video_id: lrug-july-2023 + description: https://lrug.org/meetings/2023/july/ + talks: + - title: Ruby to solve homelessness and the refugee crises + event_name: LRUG July 2023 + date: "2023-07-10" + announced_at: "2023-06-28" + speakers: + - Dan Hough + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/july/dan-hough-ruby-to-solve-homelessness-and-the-refugee-crises.mp4 + published_at: TODO +- title: LRUG August 2023 + event_name: LRUG August 2023 + date: "2023-08-14" + published_at: "2023-07-12" + announced_at: "2023-07-12" + video_provider: children + video_id: lrug-august-2023 + description: https://lrug.org/meetings/2023/august/ + talks: + - title: + Gain insight and better accessibility into your application's data by using + The Brick + event_name: LRUG August 2023 + date: "2023-08-14" + announced_at: "2023-07-12" + speakers: + - Lorin Thwaits + description: |- + Remarkable visibility into the structure of your application and its data + is available by using the open-source Rails gem "[The Brick]( + https://github.com/lorint/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. + video_id: lrug-2023-08-14-the-brick + video_provider: not_published + published_at: Not published +- title: LRUG September 2023 + event_name: LRUG September 2023 + date: "2023-09-11" + published_at: "2023-08-17" + announced_at: "2023-08-17" + video_provider: children + video_id: lrug-september-2023 + description: https://lrug.org/meetings/2023/september/ + talks: + - title: The Functional Alternative + event_name: LRUG September 2023 + date: "2023-09-11" + announced_at: "2023-08-17" + speakers: + - Ju Liu + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/september/ju-liu-the-functional-alternative-lrug-sep-2023.mp4 + published_at: TODO + - title: Back in my day... + event_name: LRUG September 2023 + date: "2023-09-11" + announced_at: "2023-08-17" + speakers: + - Paul Battley + description: |- + 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 + video_id: lrug-2023-09-11-back-in-my-day + video_provider: not_published + published_at: Not published +- title: LRUG October 2023 + event_name: LRUG October 2023 + date: "2023-10-09" + published_at: "2023-09-25" + announced_at: "2023-09-25" + video_provider: children + video_id: lrug-october-2023 + description: https://lrug.org/meetings/2023/october/ + talks: + - title: BorrowMyDoggy - Connecting dogs and people via Ruby + event_name: LRUG October 2023 + date: "2023-10-09" + announced_at: "2023-09-25" + speakers: + - Rikke Rosenlund + description: |- + 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. + video_id: lrug-2023-10-09-borrow-my-doggy-connecting-dogs-and-people-via-ruby + video_provider: not_published + published_at: Not published +- title: LRUG November 2023 + event_name: LRUG November 2023 + date: "2023-11-13" + published_at: "2023-10-18" + announced_at: "2023-10-18" + video_provider: children + video_id: lrug-november-2023 + description: https://lrug.org/meetings/2023/november/ + talks: + - title: "Outside Technology: Building bridges between engineers and everyone else" + event_name: LRUG November 2023 + date: "2023-11-13" + announced_at: "2023-10-18" + speakers: + - Naomi Christie + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/november/naomi-christie-outside-technology-building-bridges-between-engineers-and-everyone-else.mp4 + published_at: TODO + - title: The Art of Talk Design + event_name: LRUG November 2023 + date: "2023-11-13" + announced_at: "2023-10-18" + speakers: + - Melinda Seckington + description: |- + 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. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2023/november/melinda-seckington-the-art-of-talk-design.mp4 + published_at: TODO +- title: LRUG December 2023 + event_name: LRUG December 2023 + date: "2023-12-11" + published_at: "2023-11-09" + announced_at: "2023-11-09" + video_provider: children + video_id: lrug-december-2023 + description: https://lrug.org/meetings/2023/december/ + talks: + - title: Test Smarter, Not Harder - Crafting a Test Selection Framework from Scratch + event_name: LRUG December 2023 + date: "2023-12-11" + announced_at: "2023-11-09" + speakers: + - Christian Bruckmayer + description: |- + [Christian Bruckmayer](https://twitter.com/bruckmayer) says: + + > 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. + + This is a workshop, so bring your laptop! + video_id: lrug-2023-12-11-test-smarter-not-harder-crafting-a-test-selection-framework-from-scratch + video_provider: not_published + published_at: Not published +- title: LRUG January 2024 + event_name: LRUG January 2024 + date: "2024-01-08" + published_at: "2023-12-18" + announced_at: "2023-12-18" + video_provider: children + video_id: lrug-january-2024 + description: https://lrug.org/meetings/2024/january/ + talks: + - title: Sky Computing + event_name: LRUG January 2024 + date: "2024-01-08" + announced_at: "2023-12-18" + speakers: + - Kevin Sedgley + description: |- + What comes after cloud computing? Cloud computing is convenient, + ubiquitous and relatively cheap. But it also locks developers into proprietary + solutions that make migrating to another provider or bringing your solutions + back in-house difficult and expensive. If AWS, Google Cloud Computing, Azure + and all the others are clouds, then we also need a sky. Researchers at Berkeley + and other institutions have proposed sky computing: an interoperability layer + that removes technological lock-in and enables multi cloud application development.' + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/january/kevin-sedgley-sky-computing-lrug-jan-2024.mp4 + published_at: TODO + - title: "Leveraging Localised Gems (LLGems): Re-using Code the Ruby Way, Safely" + event_name: LRUG January 2024 + date: "2024-01-08" + announced_at: "2023-12-18" + speakers: + - Joel Biffin + description: |- + The talk takes a look under the hood of our Rails monolith, our Rails + Engines, and how we share code between them. It's a bit like a kitchen + experiment – blending the best of both worlds to enhance the Separation of + Concerns, while still keeping our favorite code recipes within reach. I'll + share our adventure of moving some Kafka infrastructure code from the main + Rails app into a local gem (with zero downtime!). Think of it as giving the + code a new home where it can be shared across our Rails Engines. We've also + managed to preserve our unique, in-house testing infrastructure in the + process which is a serious Brucie bonus! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/january/joel-biffin-leveraging-localised-gems-llgems-re-using-code-the-ruby-way-safely-lrug-jan-2024.mp4 + published_at: TODO + slides_url: https://github.com/joelbiffin/talks/blob/main/llgems/slides.pdf +- title: LRUG February 2024 + event_name: LRUG February 2024 + date: "2024-02-12" + published_at: "2024-01-14" + announced_at: "2024-01-14" + video_provider: children + video_id: lrug-february-2024 + description: https://lrug.org/meetings/2024/february/ + talks: + - title: Data pagination for jekyll-paginate-v2 + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - Jay Caines-Gooby + description: |- + A quick dive into getting data-pagination (.csv, .json, .tsv + & .yaml files in your _data directory) working with the [jekyll-paginate-v2](https://github.com/sverrirs/jekyll-paginate-v2) + gem. After deciding that I wanted to archive my posts to a Slack + #music-we-like channel, I wanted to also make the archived posts + paginatible... + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/jay-caines-gooby-data-pagination-for-jekyll-paginate-v2-lrug-feb-2024.mp4 + published_at: TODO + - title: Using devcontainers with Ruby + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - Jonathan James + description: |- + When an engineer joins your organisation, how long does it take for + them to configure their development environment? I will discuss using + [devcontainers with VSCode](https://code.visualstudio.com/docs/devcontainers/containers) to reduce this time from "days" to + "minutes''. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/jonathan-james-using-devcontainers-with-ruby-lrug-feb-2024.mp4 + published_at: TODO + slides_url: https://github.com/jonathanjames1729/talks/blob/main/2024-02-12-lrug/devcontainers.pdf + - title: Contract testing between Ruby applications + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - Katya Essina + - Sarah O'Grady + description: |- + - what is contract testing & how it works + - why we need contract testing at Funding Circle + - what a contract test looks like for a Ruby application + - how contract testing works in practice + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/katya-essina-and-sarah-o-grady-contract-testing-between-ruby-applications-lrug-feb-2024.mp4 + published_at: TODO + - title: What is ruby really capable of? + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - fell sunderland + description: |- + I'd like to do a whistlestop tour of a few different gems I've written over + the years, with the aim of talking about having fun whilst learning what + ruby is capable of. I'd like to showcase things like [aspectual](https://github.com/AgentAntelope/aspectual) + for bringing aspect oriented programming to ruby, [cherry-pick](https://github.com/AgentAntelope/cherry_pick) + for when you miss `import foo from bar`, [overload](https://github.com/AgentAntelope/overload) for when you + want to *really* have optional arguments do something different, and more! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/fell-sunderland-what-is-ruby-really-capable-of-lrug-feb-2024.mp4 + published_at: TODO + slides_url: https://docs.google.com/presentation/d/1GNzpKWO6aqqbfo4eOTixIL_r1GI08bFYWjyRhBOUmBk/edit?usp=sharing + - title: Phlex for a happy developer! + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - Martin Tomov + description: |- + More than 100 lines files are bad? Not if you have the right tools! Inline + your templates, JavaScript, business & controller logic for maximum + productivity! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/martin-tomov-phlex-for-a-happy-developer-lrug-feb-2024.mp4 + published_at: TODO + - title: "Be More GARY: How to up your RSpec Game" + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - Scott Matthewman + description: |- + Elevate your RSpec tests by questioning common DRY practices. Enter the GARY + method, where strategic repetition enhances test clarity and maintainability. + Resist premature refactoring and convoluted logic, leaving yourself with + clearer tests that document your code. Go ahead, repeat yourself. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/scott-matthewman-be-more-gary-how-to-up-your-rspec-game-lrug-feb-2024.mp4 + published_at: TODO + - title: Making games with ruby + event_name: LRUG February 2024 + date: "2024-02-12" + announced_at: "2024-01-14" + speakers: + - Paolo Fabbri + description: |- + Learn how the Dragonruby game engine makes game development faster and simpler for + everyone, from beginners to pros. Explore its key features, and jumpstart + your journey into the world of game creation. + Join us to transform your ideas into reality with ease! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/february/paolo-fabbri-making-games-with-ruby-lrug-feb-2024.mp4 + published_at: TODO +- title: LRUG March 2024 + event_name: LRUG March 2024 + date: "2024-03-11" + published_at: "2024-02-18" + announced_at: "2024-02-18" + video_provider: children + video_id: lrug-march-2024 + description: https://lrug.org/meetings/2024/march/ + talks: + - title: How to Stop Being a Subject Matter Expert + event_name: LRUG March 2024 + date: "2024-03-11" + announced_at: "2024-02-18" + speakers: + - Luke Thomas + description: |- + Tactics for helping that stressed-out single point of failure in your life + become a happier member of a team...of multiple points of failure. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/march/luke-thomas-how-to-stop-being-a-subject-matter-export-lrug-mar-2024.mp4 + published_at: TODO + - title: WTF is Technical Strategy + event_name: LRUG March 2024 + date: "2024-03-11" + announced_at: "2024-02-18" + speakers: + - Laurie Young + description: |- + The phrase "Technical Strategy" is often used by senior leaders when they want + something from their tech teams. However, it's an unclear phrase that doesn't + explain what is needed or why. In this talk, you will learn what's behind the + phrase, but also how anyone from a CTO to a new developer can use that + knowledge to drive conversations that will help not just the leadership but + the whole organisation. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/march/laurie-young-wtf-is-technical-strategry-lrug-mar-2024.mp4 + published_at: TODO +- title: LRUG April 2024 + event_name: LRUG April 2024 + date: "2024-04-08" + published_at: "2024-03-15" + announced_at: "2024-03-15" + video_provider: children + video_id: lrug-april-2024 + description: https://lrug.org/meetings/2024/april/ + talks: + - title: Do you want a flake with that? + event_name: LRUG April 2024 + date: "2024-04-08" + announced_at: "2024-03-15" + speakers: + - Murray Steele + description: |- + Flaky tests are awful, in this talk we'll explore why tests flake and look at + some techniques and tools you can use to discover why your tests are flaking. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/april/murray-steele-do-you-want-a-flake-with-that-lrug-apr-2024.mp4 + published_at: TODO + - title: What the Chernobyl disaster can teach us about incident response + event_name: LRUG April 2024 + date: "2024-04-08" + announced_at: "2024-03-15" + speakers: + - Frederick Cheung + description: |- + What does the worst nuclear disaster ever have in common with a web application being down? + On the face of it, vanishingly little, but the incredible series of events before, during and + after the disaster have plenty of insights to teach us about more mundane situations + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/april/frederick-cheung-what-the-chernobyl-disaster-can-teach-us-about-incident-response-lrug-apr-2024.mp4 + published_at: TODO +- title: LRUG May 2024 + event_name: LRUG May 2024 + date: "2024-05-13" + published_at: "2024-04-16" + announced_at: "2024-04-16" + video_provider: children + video_id: lrug-may-2024 + description: https://lrug.org/meetings/2024/may/ + talks: + - title: Build and maintain large Ruby applications + event_name: LRUG May 2024 + date: "2024-05-13" + announced_at: "2024-04-16" + speakers: + - Enrico Teotti + description: |- + This presentation will be about the challenges of building large + Ruby web applications and how to maintain existing ones. I will use examples + adapted from real applications that I worked on during my 10 years of experience + with Ruby outlining: technical limitations of the language, how to use a modular + dependency structure to enforce boundaries in complex domains.' + video_id: lrug-2024-05-13-build-and-maintain-large-ruby-applications + video_provider: not_published + published_at: Not published + - title: Building modern eCommerce applications using Rails 7 + event_name: LRUG May 2024 + date: "2024-05-13" + announced_at: "2024-04-16" + speakers: + - Winston Ferguson + description: |- + With the newest Rails version, we can create platforms that offer the + modern features customers and sellers expect, with less complexity. Combine + it with an established open-source gem like Spree, and you've got a + comprehensive commerce system. I'll share my learnings from three real-life + examples: a music label selling limited edition vinyl LPs, a wholesaler + shedding enterprise SaaS for a tailor-made setup, and my furniture startup, + where CAD brings bespoke pieces to life. + video_id: lrug-2024-05-13-building-modern-ecommerce-applications-using-rails-7 + video_provider: not_published + published_at: Not published +- title: LRUG June 2024 + event_name: LRUG June 2024 + date: "2024-06-10" + published_at: "2024-05-20" + announced_at: "2024-05-20" + video_provider: children + video_id: lrug-june-2024 + description: https://lrug.org/meetings/2024/june/ + talks: + - title: Things I've learned maintaining OpenStreetMap + event_name: LRUG June 2024 + date: "2024-06-10" + announced_at: "2024-05-20" + speakers: + - Andy Allan + description: |- + Maintaining one of the world's largest non-commercial websites, + [OpenStreetMap](https://openstreetmap.org), is a unique challenge. We're a + small, volunteer-based development team, not professional software + developers. I will illustrate some of these challenges with a mixture of + technical and organisational tips, tricks and recommendations, that you might + find useful for your own teams and projects too. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/june/andy-allan-things-ive-learned-maintaining-openstreetmap-lrug-jun-2024.mp4 + published_at: TODO + - title: "LiveView: stateful, server-rendered HTML" + event_name: LRUG June 2024 + date: "2024-06-10" + announced_at: "2024-05-20" + speakers: + - Yevhenii Kurtov + description: |- + LiveView is Elixir's analogue to Hotwire that also helps to keep it closer + to the server and contributes to the One Person Framework movement. In this talk, + we will explore how the stateful model makes it different from similar technologies + and what optimisations the Phoenix team did to make it feel snappy and deliver a world-class UX + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/june/yevhenii-kurtov-liveview-stateful-server-rendered-html-lrug-jun-2024.mp4 + published_at: TODO +- title: LRUG July 2024 + event_name: LRUG July 2024 + date: "2024-07-08" + published_at: "2024-06-23" + announced_at: "2024-06-23" + video_provider: children + video_id: lrug-july-2024 + description: https://lrug.org/meetings/2024/july/ + talks: + - title: That smells like time + event_name: LRUG July 2024 + date: "2024-07-08" + announced_at: "2024-06-23" + speakers: + - fell sunderland + description: |- + How does an experienced programmer solve problems? It's simpler (and more + complicated) than you might think! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/july/fell-sunderland-that-smells-like-time-lrug-jul-2024.mp4 + published_at: TODO + slides_url: https://docs.google.com/presentation/d/1eAdmyQVROnJzcLfC1rOo7RjwsABFR21AqVKgg-9irdE/edit?usp=sharing + - title: Finding unused Ruby methods + event_name: LRUG July 2024 + date: "2024-07-08" + announced_at: "2024-06-23" + speakers: + - Joel Biffin + description: |- + Whether code is safe to delete or not is a bit of a murky question in + Ruby - especially in untyped Ruby. Fear not though, as dangling unused + methods are a pretty safe place to start deleting things. Let's start there + and see where we get to. Introducing [the Thanatos + gem](https://github.com/joelbiffin/thanatos) to help you find those unused + methods lurking in your code. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/july/joel-biffin-finding-unused-ruby-methods-lrug-jul-2024.mp4 + published_at: TODO +- title: LRUG August 2024 + event_name: LRUG August 2024 + date: "2024-08-12" + published_at: "2024-07-20" + announced_at: "2024-07-20" + video_provider: children + video_id: lrug-august-2024 + description: https://lrug.org/meetings/2024/august/ + talks: + - title: + "Turn Left for Bridgetown: An overview of a next-generation static(ish) + site generator" + event_name: LRUG August 2024 + date: "2024-08-12" + announced_at: "2024-07-20" + speakers: + - Ayush + description: |- + Bridgetown is a modern progressive site generator with Jekyll ancestry. + Allow me to be your guide as I take you on a whistle-stop tour of its biggest + and best features; and show you how it brings Ruby-powered site generation into + 2024. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/august/ayush-newatia-turn-left-for-bridgetown-an-overview-of-a-next-generation-static-ish-site-generator-lrug-aug-2024.mp4 + published_at: TODO +- title: LRUG September 2024 + event_name: LRUG September 2024 + date: "2024-09-09" + published_at: "2024-08-16" + announced_at: "2024-08-16" + video_provider: children + video_id: lrug-september-2024 + description: https://lrug.org/meetings/2024/september/ + talks: + - title: B&W Rewards - Domains, Events & Ledgers + event_name: LRUG September 2024 + date: "2024-09-09" + announced_at: "2024-08-16" + speakers: + - Rachel Bingham + - Boaz Yehezkel + description: + "How we developed the B&W Rewards system. \nStarting from event storming + with stakeholders and technical planning across squads to clear domain boundaries + to \nhow we used an event bus and agnostic accounting system to keep things + clear, concise and extendable." + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/september/rachel-bingham-b-and-w-rewards-domains-events-and-ledgers-lrug-sep-2024.mp4 + published_at: TODO + - title: "From Spaghetti to Lasagna: Layering your code with DDD" + event_name: LRUG September 2024 + date: "2024-09-09" + announced_at: "2024-08-16" + speakers: + - Lily Stoney + description: |- + How to apply DDD to a monolithic codebase, the benefits and reasons why it can + be beneficial, and how the event storming process can make the process of + defining domain boundaries a simpler task! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/september/lily-stoney-from-spaghetti-to-lasagna-layering-your-code-with-ddd-lrug-sep-2024.mp4 + published_at: TODO +- title: LRUG October 2024 + event_name: LRUG October 2024 + date: "2024-10-14" + published_at: "2024-09-09" + announced_at: "2024-09-09" + video_provider: children + video_id: lrug-october-2024 + description: https://lrug.org/meetings/2024/october/ + talks: + - title: Fighting Enshittification with ActivityPub + event_name: LRUG October 2024 + date: "2024-10-14" + announced_at: "2024-09-09" + speakers: + - James Smith + description: |- + ActivityPub is the protocol that powers the Fediverse, a web of social sites + like Mastodon, PixelFed, and a host of other free and open source tools. I’ll + explain what ActivityPub is, how it works, and discuss the Federails Rails + engine which allows you to add federation into your existing Rails web apps. + By breaking open the silos of existing social media like this, we can fight + the enshittification of the web and reclaim a bit of power from the massive + companies that own our online lives. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/october/james-smith-fighting-enshittification-with-activity-pub-lrug-oct-2024.mp4 + published_at: TODO + slides_url: https://floppy.org.uk/activitypub-talk/ + - title: + "Plan to scale or plan to fail: an evidence-based approach for improving + systems performance" + event_name: LRUG October 2024 + date: "2024-10-14" + announced_at: "2024-09-09" + speakers: + - Jade Dickinson + description: |- + In this talk, I will present a methodology for replicating most standard + Rails systems, for the purpose of load testing. + + You can use this to find out how your system performs with more traffic than + you currently encounter. This will be useful if you are on a Rails team that + is starting to see scaling challenges. + + At Theta Lake we operate at scale and are applying this methodology to + proactively find ways to bring down our server costs. You don’t want to leave + it until either your server costs soar out of control, or your entire system + is about to fail. By seeing into the future just a little bit, you can find + bottlenecks in your system and so find where you can improve its scalability. + video_id: lrug-2024-10-14-plan-to-scale-or-plan-to-fail + video_provider: not_published + published_at: Not published +- title: LRUG December 2024 + event_name: LRUG December 2024 + date: "2024-12-09" + published_at: "2024-11-18" + announced_at: "2024-11-18" + video_provider: children + video_id: lrug-december-2024 + description: https://lrug.org/meetings/2024/december/ + talks: + - title: Saving My Relationship with Rails + event_name: LRUG December 2024 + date: "2024-12-09" + announced_at: "2024-11-18" + speakers: + - Adam Dawkins + description: |- + Setting healthy boundaries for a happy app. Our apps inevitably get more + complex over time, and Rails isn't always helpful when that happens. In this + talk we'll explore what a Rails app can look like with a 'functional core', + and where to draw the boundaries between the core and Rails to stop things + getting out of control. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/december/adam-dawkins-saving-my-relationship-with-rails-lrug-dec-2024.mp4 + published_at: TODO + - title: "Mistakes Were Made: Lessons from Failure" + event_name: LRUG December 2024 + date: "2024-12-09" + announced_at: "2024-11-18" + speakers: + - Clem Capel-Bird + description: |- + This is a story of failure: the things I broke delivering a big project, the + lessons those mistakes taught me, and why breaking things can be an + engineer’s best tool for learning. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2024/december/clem-capel-bird-mistakes-were-made-lessons-from-failure-lrug-dec-2024.mp4 + published_at: TODO +- title: LRUG January 2025 + event_name: LRUG January 2025 + date: "2025-01-13" + published_at: "2024-12-18" + announced_at: "2024-12-18" + video_provider: children + video_id: lrug-january-2025 + description: https://lrug.org/meetings/2025/january/ + talks: + - title: "Shape-up: the best parts" + event_name: LRUG January 2025 + date: "2025-01-13" + announced_at: "2024-12-18" + speakers: + - Pablo Dejuan Calzolari + description: |- + A talk about the 37 signals famous methodology and how we apply to 8 teams of + development which work in Ruby on Rails. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/january/pablo-dejuan-calzolari-shape-up-the-best-parts-jan-2025.mp4 + published_at: TODO + - title: They're not right, you're not wrong + event_name: LRUG January 2025 + date: "2025-01-13" + announced_at: "2024-12-18" + speakers: + - Yevhenii Kurtov + description: |- + We are going to look into the essence of what DDD is and why it came to + be in plain English, without any consultant lingo. We will also + evaluate its advantages, indicators of the possibility of successful + adoption, and reasons to do so. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/january/yevhenii-kurtov-they-re-not-right-you-re-not-wrong-jan-2025.mp4 + published_at: TODO +- title: LRUG February 2025 + event_name: LRUG February 2025 + date: "2025-02-10" + published_at: "2025-01-15" + announced_at: "2025-01-15" + video_provider: children + video_id: lrug-february-2025 + description: https://lrug.org/meetings/2025/february/ + talks: + - title: AI tools for programmers + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - fell sunderland + description: + Why I don't use AI programming tools, and I don't think you should + either. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/fell-sunderland-ai-tools-for-programmers-lrug-feb-2025.mp4 + published_at: TODO + - title: Why our schema files kept changing + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - David Lantos + description: |- + Tale of an investigation why a local `db:schema:load` would change our + `db/schema.rb` for seemingly no reason. Spoiler: varchar index + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/david-lantos-why-our-schema-files-kept-changing-lrug-feb-2025.mp4 + published_at: TODO + - title: 10 years of RSpec in 10 minutes + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - Jon Rowe + description: + A brief look into the history of [RSpec](https://rspec.info) and + a glance into the future. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/jon-rowe-10-years-of-rspec-in-10-minutes-lrug-feb-2025.mp4 + published_at: TODO + - title: Rails 8 + AI = Happy Life for Lazy Engineer to Create a Walking Skeleton + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - Zhiqiang Bian + description: |- + In this talk, I’ll explore how Rails 8, combined with AI-assisted + tools, can help engineers rapidly spin up a walking skeleton—a minimal + yet functional end-to-end system—with minimal effort. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/zhiqiang-bian-rails-8-ai-happy-life-for-lazy-engineer-lrug-feb-2025.mp4 + published_at: TODO + - title: Never say, "Never say die!" + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - Eleanor McHugh + description: |- + Ruby is a high-level language, and there's a general assumption that + it's ill-suited to low-level shenanigans. But is this true? + + In this lightning talk I'll introduce some basic Ruby tools for + accessing low-level system features, concentrating on *nix platforms, + and see if it's possible to replicate tenderlove's Never Say Die gem + for recovering from segfaults. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/eleanor-mchugh-never-say-never-say-die-lrug-feb-2025.mp4 + published_at: TODO + - title: The tag tale + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - Jaehurn Nam + description: |- + How we refactored Intercom's conversation tagging service to not fake + tag and made customers happy. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/jaehurn-nam-the-tag-tale-lrug-feb-2025.mp4 + published_at: TODO + - title: "Beyond current state: capturing how and why things changed" + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - Yevhenii Kurtov + description: |- + Introduction into managing state for objects with complex lifecycle + when auditability is a must. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/yevhenii-kurtov-beyond-current-state-capturing-how-and-why-things-changed-lrug-feb-2025.mp4 + published_at: TODO + - title: Self-Assessing against the Web Sustainability Guidelines + event_name: LRUG February 2025 + date: "2025-02-10" + announced_at: "2025-01-15" + speakers: + - James Smith + description: |- + Sustainability is important, but it's also hard, especially when + building web projects. How do you know you're doing it right? This + quick talk will explain a tool I made for self-assessments against the + Web Sustainability Guidelines, which you can use too! + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/february/james-smith-self-assessing-against-the-web-sustainability-guidelines-lrug-feb-2025.mp4 + published_at: TODO +- title: LRUG March 2025 + event_name: LRUG March 2025 + date: "2025-03-10" + published_at: "2025-02-14" + announced_at: "2025-02-14" + video_provider: children + video_id: lrug-march-2025 + description: https://lrug.org/meetings/2025/march/ + talks: + - title: Objects talking to objects + event_name: LRUG March 2025 + date: "2025-03-10" + announced_at: "2025-02-14" + speakers: + - Gavin Morrice + description: |- + A review on what makes OOP such an effective paradigm to work in, + followed by a critical discussion on some of the newer design trends in + the Ruby space. We will discuss the concerns of relying too heavily on + these patterns, and alternative approaches. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/march/gavin-morrice-objects-talking-to-objects-lrug-mar-2025.mp4 + published_at: TODO + - title: Unlocking the Awesome Power of Refactoring at Work + event_name: LRUG March 2025 + date: "2025-03-10" + announced_at: "2025-02-14" + speakers: + - Hemal Varambhia + description: |- + In this talk, I recount and discuss how I refactored some legacy ruby + code using the Simple Design Dynamo and ideas from "Tidy First" to make + it more agile, and then, using Domain-Driven Design, take that agility + to the next level. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/march/hemal-varambhia-unlocking-the-awesome-power-of-refactoring-at-work-lrug-mar-2025.mp4 + published_at: TODO + slides_url: https://assets.lrug.org/slides/2025/march/hemal-varambhia-unlocking-the-awesome-power-of-refactoring-at-work.pdf +- title: LRUG April 2025 + event_name: LRUG April 2025 + date: "2025-04-14" + published_at: "2025-03-12" + announced_at: "2025-03-12" + video_provider: children + video_id: lrug-april-2025 + description: https://lrug.org/meetings/2025/april/ + talks: + - title: From React to Hotwire – An Unexpected Journey + event_name: LRUG April 2025 + date: "2025-04-14" + announced_at: "2025-03-12" + speakers: + - Maciej Korsan + description: |- + For years, React has been the go-to choice for building frontend applications + — but is it always the best solution? In this talk, I’ll share my journey from + working extensively with React to discovering Hotwire, a radically different + approach that enables dynamic applications without heavy JavaScript or complex + state management. + + Rather than a theoretical comparison, I’ll walk through real-world examples, + demonstrating how I’ve implemented interactive features using Hotwire. I’ll + also discuss my experiences, the challenges I faced, and some surprising + discoveries along the way. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/april/maciej-korsan-from-react-to-hotwire-an-unexpected-journey-lrug-apr-2025.mp4 + published_at: TODO + - title: AI has many applications in our industry, we are just getting started + event_name: LRUG April 2025 + date: "2025-04-14" + announced_at: "2025-03-12" + speakers: + - Mario Gintili + description: |- + AI has many applications in our industry, we are just getting started. + + In this talk, I'll explore an approach to AI-powered observability + tooling that knows everything about you and your codebase. + + I'll demo some of the most recent tooling in AI-assisted development, + show you how to enrich an LLM with highly relevant contextual information and + display a little workflow that shows how to use AI to fix bugs faster as + they happen in production. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/april/mario-gintili-ai-has-many-applications-in-our-industry-we-are-just-getting-started-lrug-apr-2025.mp4 + published_at: TODO +- title: LRUG May 2025 + event_name: LRUG May 2025 + date: "2025-05-12" + published_at: "2025-04-23" + announced_at: "2025-04-23" + video_provider: children + video_id: lrug-may-2025 + description: https://lrug.org/meetings/2025/may/ + talks: + - title: An event-sourced programming model for Ruby + event_name: LRUG May 2025 + date: "2025-05-12" + announced_at: "2025-04-23" + speakers: + - Ismael Celis + description: |- + Exploring how Event Sourcing and Ruby can provide a cohesive programming + model where auditable data, durable workflows and reactive UIs are the default. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/may/ismael-celis-an-event-sourced-programming-model-for-ruby-lrug-may-2025.mp4 + published_at: TODO + - title: Mistakes were made, and definitely by me + event_name: LRUG May 2025 + date: "2025-05-12" + announced_at: "2025-04-23" + speakers: + - Andy Croll + description: |- + [CoverageBook](https://coveragebook.com/) is a decade-old Rails codebase + which has seen at least one full internal rewrite. + + Let’s have a walk through of perfectly “reasonable” decisions we made + at the time that we’re now unravelling, and the new Rails-y-ness we’re + using as we do it. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/may/andy-croll-mistakes-were-made-and-definitely-by-me-lrug-may-2025.mp4 + published_at: TODO + - title: + "Practical AI in Ruby: What LLMs Can (and Can't) Do For Your Projects + Today" + event_name: LRUG May 2025 + date: "2025-05-12" + announced_at: "2025-04-23" + speakers: + - Lorenzo Barasti + description: + A no-nonsense exploration of integrating LLM capabilities into Ruby + applications using ruby_llm and similar libraries, highlighting real-world use + cases without the Silicon Valley hyperbole. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/may/lorenzo-barasti-practical-ai-in-ruby-what-llms-can-and-cant-do-for-your-projects-today-may-2025.mp4 + published_at: TODO +- title: LRUG June 2025 + event_name: LRUG June 2025 + date: "2025-06-09" + published_at: "2025-05-27" + announced_at: "2025-05-27" + video_provider: children + video_id: lrug-june-2025 + description: https://lrug.org/meetings/2025/june/ + talks: + - title: Rethinking Service Objects in Ruby + event_name: LRUG June 2025 + date: "2025-06-09" + announced_at: "2025-05-27" + speakers: + - Vladimir Gorodulin + description: |- + Service Objects in Ruby can feel a bit off to use, so I’ll share some + experiments insights on some pragmatic ways to make them work better by + shifting toward a more procedural approach. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/june/vladimir-gorodulin-rethinking-service-objects-in-ruby-lrug-jun-2025.mp4 + published_at: TODO +- title: LRUG July 2025 + event_name: LRUG July 2025 + date: "2025-07-14" + published_at: "2025-06-24" + announced_at: "2025-06-24" + video_provider: children + video_id: lrug-july-2025 + description: https://lrug.org/meetings/2025/july/ + talks: + - title: If you wish it was better, change it! + event_name: LRUG July 2025 + date: "2025-07-14" + announced_at: "2025-06-24" + speakers: + - Fritz Meissner + description: |- + Wish you worked with understandable and easily changeable + code? Practice fixing the incomprehensible in an interactive, + zero-background-required exercise on the career-changing topic of + refactoring. + video_provider: mp4 + video_id: https://assets.lrug.org/videos/2025/july/fritz-meissner-if-you-wish-it-was-better-change-it-lrug-jul-2025.mp4 + published_at: TODO +- title: LRUG August 2025 + event_name: LRUG August 2025 + date: "2025-08-11" + published_at: "2025-07-26" + announced_at: "2025-07-26" + video_provider: children + video_id: lrug-august-2025 + description: https://lrug.org/meetings/2025/august/ + talks: + - title: "`stepper_motor`: effortless long-running workflows for Rails" + event_name: LRUG August 2025 + date: "2025-08-11" + announced_at: "2025-07-26" + speakers: + - Julik Tarkhanov + description: |- + Lately, there has been a lot of development in durable workflows in + Rails with tools like `active_job_continuation` and `acidic_job`. + [`stepper_motor`](https://github.com/stepper-motor/stepper_motor) is a + new tool allowing for identifiable, associable, orchestrated step + workflows for Rails applications - without gRPC, extra tools or data + stores. Let's explore where such a system comes from, why every durable + execution system is secretly a DAG, and how the `stepper_motor` + architecture is informed by VFX software instead of the imperative + `ActiveJob` methods. + video_id: lrug-2025-08-11-stepper-motor + video_provider: not_published + published_at: Not published + - title: "No Browser Required: Dynamic OpenGraph Images with Rails and Rust" + event_name: LRUG August 2025 + date: "2025-08-11" + announced_at: "2025-07-26" + speakers: + - James Edwards-Jones + description: + "How would you convert a `
` to a PNG? A technical deep dive + into\nhow [`Himg`](https://github.com/Jamedjo/himg) generates images from\nHTML + without using a browser.\n\nOur journey will include:\n\n* How a browser works: + from CSS parsing to image rendering\n* Practical tips: like how to call Rust + from Ruby\n* Rails internals: how rails calls render without you needing to + ask\n* Using the [Himg](https://github.com/Jamedjo/himg/) library\n* Server + side request forgery and injection attacks\n* What OpenGraph images are and + how they can help you go viral \U0001F98B" + video_id: lrug-2025-08-11-no-browser-required + video_provider: not_published + published_at: Not published diff --git a/data/lrug/playlists.yml b/data/lrug/playlists.yml new file mode 100644 index 000000000..f13c40a91 --- /dev/null +++ b/data/lrug/playlists.yml @@ -0,0 +1,10 @@ +- id: lrug-meetup + title: London Ruby User Group Meetup + location: "London, UK" + description: "LRUG is a London-based community for anyone who is interested in the Ruby programming language, especially beginners." + slug: lrug-meetup + featured_background: "#FFF7B9" + featured_color: "#c61300" + banner_background: "#FFF7B9" + website: https://lrug.org/meetings/ + type: "meetup" diff --git a/data/organisations.yml b/data/organisations.yml index c2ef68ba9..a0fa31d4d 100644 --- a/data/organisations.yml +++ b/data/organisations.yml @@ -1947,3 +1947,16 @@ slug: xoruby language: english youtube_channel_id: "" + +- name: London Ruby User Group + website: https://lrug.org + github: https://github.com/lrug + mastodon: https://ruby.social/@lrug + twitter: lrug + youtube_channel_name: '' + kind: meetup + frequency: monthly + slug: lrug + language: english + youtube_channel_id: '' + default_country_code: UK diff --git a/scripts/import_event.rb b/scripts/import_event.rb new file mode 100644 index 000000000..6df5193bd --- /dev/null +++ b/scripts/import_event.rb @@ -0,0 +1,84 @@ +org_slug = ARGV[0] + +organisations = YAML.load_file("#{Rails.root}/data/organisations.yml") +videos_to_ignore = YAML.load_file("#{Rails.root}/data/videos_to_ignore.yml") + +org = organisations.detect { |o| o["slug"] == org_slug } + +raise "uhoh #{org_slug} not present" if org.nil? + +MeiliSearch::Rails.deactivate! do + organisation = Organisation.find_or_initialize_by(slug: org["slug"]) + + organisation.update!( + name: org["name"], + website: org["website"], + twitter: org["twitter"] || "", + youtube_channel_name: org["youtube_channel_name"], + kind: org["kind"], + frequency: org["frequency"], + youtube_channel_id: org["youtube_channel_id"], + slug: org["slug"], + language: org["language"] || "" + ) + + events = YAML.load_file("#{Rails.root}/data/#{organisation.slug}/playlists.yml") + + events.each do |event_data| + event = Event.find_or_create_by(slug: event_data["slug"]) + + event.update( + name: event_data["title"], + date: event_data["date"] || event_data["published_at"], + date_precision: event_data["date_precision"] || "day", + organisation: organisation, + website: event_data["website"], + start_date: event.static_metadata.start_date, + end_date: event.static_metadata.end_date, + kind: event.static_metadata.kind, + cfp_close_date: event_data["cfp_close_date"], + cfp_link: event_data["cfp_link"], + cfp_open_date: event_data["cfp_open_date"] + ) + + puts event.slug unless Rails.env.test? + + talks = YAML.load_file("#{Rails.root}/data/#{organisation.slug}/#{event.slug}/videos.yml") + + talks.each do |talk_data| + if talk_data["title"].blank? || videos_to_ignore.include?(talk_data["video_id"]) + puts "Ignored video: #{talk_data["raw_title"]}" + next + end + + talk = Talk.find_by(video_id: talk_data["video_id"], video_provider: talk_data["video_provider"]) + talk = Talk.find_by(video_id: talk_data["video_id"]) if talk.blank? + talk = Talk.find_by(video_id: talk_data["id"].to_s) if talk.blank? + talk = Talk.find_by(slug: talk_data["slug"].to_s) if talk.blank? + + talk = Talk.find_or_initialize_by(video_id: talk_data["video_id"].to_s) if talk.blank? + + talk.video_provider = talk_data["video_provider"] || :youtube + talk.update_from_yml_metadata!(event: event) + + child_talks = Array.wrap(talk_data["talks"]) + + next if child_talks.none? + + child_talks.each do |child_talk_data| + child_talk = Talk.find_by(video_id: child_talk_data["video_id"], video_provider: child_talk_data["video_provider"]) + child_talk = Talk.find_by(video_id: child_talk_data["video_id"]) if child_talk.blank? + child_talk = Talk.find_by(video_id: child_talk_data["id"].to_s) if child_talk.blank? + child_talk = Talk.find_by(slug: child_talk_data["slug"].to_s) if child_talk.blank? + + child_talk = Talk.find_or_initialize_by(video_id: child_talk_data["video_id"].to_s) if child_talk.blank? + + child_talk.video_provider = child_talk_data["video_provider"] || :parent + child_talk.parent_talk = talk + child_talk.update_from_yml_metadata!(event: event) + end + rescue ActiveRecord::RecordInvalid => e + puts "Couldn't save: #{talk_data["title"]} (#{talk_data["video_id"]}), error: #{e.message}" + end + end +end