From 110d3ddf18386fc791882721d4e5995f7dff523a Mon Sep 17 00:00:00 2001 From: Adrien POLY Date: Thu, 19 Oct 2023 22:19:56 +0200 Subject: [PATCH] wip --- app/clients/youtube/playlists.rb | 2 + app/models/youtube/video_metadata.rb | 92 + .../youtube/video_metadata_rails_world.rb | 84 + config/credentials.yml.enc | 1 + data/railsconf/railsconf-2021/videos copy.yml | 1303 --------- data/railsconf/railsconf-2021/videos.yml | 2448 ++++++++--------- data_preparation/organisations.yml | 20 +- ...30625215935_add_twitter_to_organisation.rb | 6 + db/schema.rb | 2 + db/seeds.rb | 96 +- docs/contributing.md | 123 +- script/create_playlists.rb | 19 + script/extract_videos.rb | 33 + script/prepare_organisations.rb | 20 +- .../youtube/video_metadata_rails_worldtest.rb | 90 + test/models/youtube/video_metadata_test.rb | 90 + test/tasks/db_seed_test.rb | 22 + 17 files changed, 1843 insertions(+), 2608 deletions(-) create mode 100644 app/models/youtube/video_metadata.rb create mode 100644 app/models/youtube/video_metadata_rails_world.rb create mode 100644 config/credentials.yml.enc delete mode 100644 data/railsconf/railsconf-2021/videos copy.yml create mode 100644 db/migrate/20230625215935_add_twitter_to_organisation.rb create mode 100644 script/create_playlists.rb create mode 100644 script/extract_videos.rb create mode 100644 test/models/youtube/video_metadata_rails_worldtest.rb create mode 100644 test/models/youtube/video_metadata_test.rb create mode 100644 test/tasks/db_seed_test.rb diff --git a/app/clients/youtube/playlists.rb b/app/clients/youtube/playlists.rb index c2067157..a1dfe35c 100644 --- a/app/clients/youtube/playlists.rb +++ b/app/clients/youtube/playlists.rb @@ -1,5 +1,6 @@ module Youtube class Playlists < Youtube::Client + DEFAULT_METADATA_PARSER = "Youtube::VideoMetadata" def all(channel_id:, title_matcher: nil) items = all_items("/playlists", query: {channelId: channel_id, part: "snippet,contentDetails"}).map do |metadata| OpenStruct.new({ @@ -10,6 +11,7 @@ def all(channel_id:, title_matcher: nil) channel_id: metadata.snippet.channelId, year: metadata.snippet.title.match(/\d{4}/).to_s.presence || DateTime.parse(metadata.snippet.publishedAt).year, videos_count: metadata.contentDetails.itemCount, + metadata_parser: DEFAULT_METADATA_PARSER, slug: metadata.snippet.title.parameterize }) end diff --git a/app/models/youtube/video_metadata.rb b/app/models/youtube/video_metadata.rb new file mode 100644 index 00000000..d1b27171 --- /dev/null +++ b/app/models/youtube/video_metadata.rb @@ -0,0 +1,92 @@ +# require "active_support/core_ext/hash/keys" + +# This class is used to extract the metadata from a youtube video +# it will try to: +# - extract the speakers from the title +# - remove the event_name from the title to make less redondant +# - remove leading separators from the title +module Youtube + class VideoMetadata + SPEAKERS_SECTION_SEPARATOR = " by " + SEPARATOR_IN_BETWEEN_SPEAKERS = / & |, | and / + + def initialize(metadata:, event_name:, options: {}) + @metadata = metadata + @event_name = event_name + end + + def cleaned + OpenStruct.new( + { + title: title, + raw_title: raw_title, + speakers: speakers, + event_name: @event_name, + published_at: @metadata.published_at, + description: description, + video_id: @metadata.video_id + } + ) + end + + def keynote? + title_without_event_name.match(/keynote/i) + end + + def lighting? + title_without_event_name.match(/lightning talks/i) + end + + private + + def extract_info_from_title + title_parts = title_without_event_name.split(SPEAKERS_SECTION_SEPARATOR) + speakers = title_parts.last.split(SEPARATOR_IN_BETWEEN_SPEAKERS).map(&:strip) + title = title_parts[0..-2].join(SPEAKERS_SECTION_SEPARATOR).gsub(/^\s*-/, "").strip + + { + title: keynote? ? remove_leading_and_trailing_separators_from(title_without_event_name) : remove_leading_and_trailing_separators_from(title), + speakers: speakers + } + end + + def speakers + return [] if lighting? + + title_parts = title_without_event_name.split(SPEAKERS_SECTION_SEPARATOR) + title_parts.last.split(SEPARATOR_IN_BETWEEN_SPEAKERS).map(&:strip) + end + + def raw_title + @metadata.title + end + + def title_without_event_name + # RubyConf AU 2013: From Stubbies to Longnecks by Geoffrey Giesemann + # will return "From Stubbies to Longnecks by Geoffrey Giesemann" + remove_leading_and_trailing_separators_from(raw_title.gsub(@event_name, "").gsub(/\s+/, " ")) + end + + ## remove : - and other separators from the title + def remove_leading_and_trailing_separators_from(title) + title.gsub(/^[-:]?/, "").strip.then do |title| + title.gsub(/[-:,]$/, "").strip + end + end + + def title + if keynote? || lighting? + # when it is a keynote or lighting, usually we want to keep the full title without the event name + remove_leading_and_trailing_separators_from(title_without_event_name) + else + title_parts = title_without_event_name.split(SPEAKERS_SECTION_SEPARATOR) + title = title_parts[0..-2].join(SPEAKERS_SECTION_SEPARATOR).gsub(/^\s*-/, "").strip + remove_leading_and_trailing_separators_from(title) + end + end + + def description + @metadata.description + end + end +end diff --git a/app/models/youtube/video_metadata_rails_world.rb b/app/models/youtube/video_metadata_rails_world.rb new file mode 100644 index 00000000..20593927 --- /dev/null +++ b/app/models/youtube/video_metadata_rails_world.rb @@ -0,0 +1,84 @@ +# require "active_support/core_ext/hash/keys" + +# This class is used to extract the metadata from a youtube video +# it will try to: +# - extract the speakers from the title +# - remove the event_name from the title to make less redondant +# - remove leading separators from the title +module Youtube + class VideoMetadataRailsWorld + SPEAKERS_SECTION_SEPARATOR = " - " + SEPARATOR_IN_BETWEEN_SPEAKERS = / & |, | and / + + def initialize(metadata:, event_name:, options: {}) + @metadata = metadata + @event_name = event_name + end + + def cleaned + OpenStruct.new( + { + title: title, + raw_title: raw_title, + speakers: speakers, + event_name: @event_name, + published_at: @metadata.published_at, + description: description, + video_id: @metadata.video_id + } + ) + end + + def keynote? + title_without_event_name.match(/keynote/i) + end + + private + + def extract_info_from_title + title_parts = title_without_event_name.split(SPEAKERS_SECTION_SEPARATOR) + speakers = title_parts.last.split(SEPARATOR_IN_BETWEEN_SPEAKERS).map(&:strip) + title = title_parts[0..-2].join(SPEAKERS_SECTION_SEPARATOR).gsub(/^\s*-/, "").strip + + { + title: keynote? ? remove_leading_and_trailing_separators_from(title_without_event_name) : remove_leading_and_trailing_separators_from(title), + speakers: speakers + } + end + + def speakers + raw_title_parts.first.split(SEPARATOR_IN_BETWEEN_SPEAKERS).map(&:strip) + end + + def raw_title + @metadata.title + end + + def title_without_event_name + # RubyConf AU 2013: From Stubbies to Longnecks by Geoffrey Giesemann + # will return "From Stubbies to Longnecks by Geoffrey Giesemann" + remove_leading_and_trailing_separators_from(raw_title.gsub(@event_name, "").gsub(/\s+/, " ")) + end + + ## remove : - and other separators from the title + def remove_leading_and_trailing_separators_from(title) + return title if title.blank? + + title.gsub(/^[-:]?/, "").strip.then do |title| + title.gsub(/[-:,]$/, "").strip + end + end + + def title + remove_leading_and_trailing_separators_from(raw_title_parts[1]) + end + + def description + @metadata.description + end + + def raw_title_parts + title_without_event_name.split(SPEAKERS_SECTION_SEPARATOR) + end + end +end diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc new file mode 100644 index 00000000..fec12975 --- /dev/null +++ b/config/credentials.yml.enc @@ -0,0 +1 @@ +uAKB/HPZ9hm7lyAIpWgUe+24TG/N8bi2smtvEa7aD0nZNIU1sb0ctVEYNcSQbKJjHWSED68aF9/O7iYBt1QYU93in3J14rDvj0bHJ8GCWNEQFI6QekRPcOVrX4qehGn4Y29ikhsrc1/th6V0EHrkP4q3d+AtK0zazPLpLQgMFSMX5dYjck2vT8HfK3nOvX77+RUPXhyyO9roIBDBpSf8kEayzUi0q/h/k8cGsqbM3aL2InfXNM8gaQgJ7atEAzJsKoyt5yGoFxjWTDoOFEqnIIhXu1uRmW+S5aKUC/h0Kil/nEgsvufZGuPiDQgHvXZmO/3W3MmaCLaO2LHcp4qMySaH5SDBOXdzAmGuEl0SMhdyvtuZBCw60WmWRhh9GnhwBwJs/FdlaGnAGLZyB+lQhYYNTOww--9Tq1/zY6N+kujjV9--iOafU6Imt5fluW+yk+MPWQ== \ No newline at end of file diff --git a/data/railsconf/railsconf-2021/videos copy.yml b/data/railsconf/railsconf-2021/videos copy.yml deleted file mode 100644 index 10aea15a..00000000 --- a/data/railsconf/railsconf-2021/videos copy.yml +++ /dev/null @@ -1,1303 +0,0 @@ ---- -- title: - "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't - Do" - raw_title: - "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought - I Couldn't Do" - speakers: - - ": Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't Do" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/5bWE6GpN938/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/5bWE6GpN938/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/5bWE6GpN938/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/5bWE6GpN938/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/5bWE6GpN938/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: 5bWE6GpN938 -- title: "Game Show: Adam Cuppy - Syntax Error" - raw_title: "Game Show: Adam Cuppy - Syntax Error" - speakers: - - Adam Cuppy - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/vD08qTNYO9c/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/vD08qTNYO9c/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/vD08qTNYO9c/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/vD08qTNYO9c/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/vD08qTNYO9c/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: vD08qTNYO9c -- title: "Hiring is Not Hazing" - raw_title: "RailsConf 2021: Hiring is Not Hazing - Aja Hammerly" - speakers: - - Aja Hammerly - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ZzWRdAPjEgY/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ZzWRdAPjEgY/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ZzWRdAPjEgY/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ZzWRdAPjEgY/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ZzWRdAPjEgY/maxresdefault.jpg - published_at: "2022-09-27" - description: - Tech hiring has a bad reputation for a reason - it's usually awful. - But it doesn't have to be that way. In this talk, we'll dive into what is wrong - with many current tech hiring practices and what you can do instead. You'll learn - ways to effectively assess technical ability, what makes a great interview question, - how to be more inclusive, the pros and cons of giving homework assignments, and - much more. You'll leave with ideas to improve your interviews, and ways to influence - your company to change their hiring practices. - video_id: ZzWRdAPjEgY -- title: "What Poetry Workshops Teach Us about Code Review" - raw_title: - "RailsConf 2021: What Poetry Workshops Teach Us about Code Review - Andrew - Ek" - speakers: - - Andrew Ek - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/AQg_XZ5b5HU/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/AQg_XZ5b5HU/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/AQg_XZ5b5HU/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/AQg_XZ5b5HU/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/AQg_XZ5b5HU/maxresdefault.jpg - published_at: "2022-09-27" - description: - Code review is ostensibly about ensuring quality code and preventing - errors, bugs, and/or vulnerabilities from making their way to production systems. - Code review, as practiced, is often top-down, didactic, and in many cases not - particularly useful or effective. By looking at the creative writing workshop - model (and strategies for teaching and providing feedback on writing), we can - extract patterns that help us to have more effective, more efficient, and more - enjoyable code reviews. Not only can we make our code better, we can also help - our teams better understand the codebase and communicate better, and thus do more - effective and enjoyable work (with perhaps better team cohesion). - video_id: AQg_XZ5b5HU -- title: "The Trail to Scale Without Fail: Rails?" - raw_title: "RailsConf 2021: The Trail to Scale Without Fail: Rails? - Ariel Caplan" - speakers: - - Ariel Caplan - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/4F8hOebREe4/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/4F8hOebREe4/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/4F8hOebREe4/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/4F8hOebREe4/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/4F8hOebREe4/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - Let's be blunt: Most web apps aren’t so computation-heavy and won't hit scaling issues. - - What if yours is the exception? Can Rails handle it? - - Cue Exhibit A: Cloudinary, which serves billions of image and video requests daily, including on-the-fly edits, QUICKLY, running on Rails since Day 1. Case closed? - https://cloudinary.com/ - - Not so fast. Beyond the app itself, we needed creative solutions to ensure that, as traffic rises and falls at the speed of the internet, we handle the load gracefully, and no customer overwhelms the system. - - The real question isn't whether Rails is up to the challenge, but rather: Are you? - video_id: 4F8hOebREe4 -- title: "Effective Data Synchronization between Rails Microservices" - raw_title: - "RailsConf 2021: Effective Data Synchronization between Rails Microservices - - Austin Story" - speakers: - - Austin Story - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/1qrWYcdnrik/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/1qrWYcdnrik/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/1qrWYcdnrik/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/1qrWYcdnrik/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/1qrWYcdnrik/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - Data consistency in a microservice architecture can be a challenge, especially when your team grows to include data producers from data engineers, analysts, and others. - - How do we enable external processes to load data onto data stores owned by several applications while honoring necessary Rails callbacks? How do we ensure data consistency across the stack? - - Over the last five years, Doximity has built an elegant system that allows dozens of teams across our organization to independently load transformed data through our rich domain models while maintaining consistency. I'd like to show you how! - video_id: 1qrWYcdnrik -- title: "Self-Care on Rails" - raw_title: "RailsConf 2021: Self-Care on Rails - Ben Greenberg" - speakers: - - Ben Greenberg - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/7uuRV17e8gg/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/7uuRV17e8gg/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/7uuRV17e8gg/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/7uuRV17e8gg/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/7uuRV17e8gg/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - This past year has been one of the most challenging years in recent memory. The pandemic has taken a toll, including on children. - - Adults used their professional skills to help make the year a little better for the kids in our lives: Therapists counseled, entertainers delighted, teachers educated... and Rails developers developed! - - In this talk, I'll share the apps I built on Rails that helped my kids and me cope, celebrate and persevere through the year. - - In 2020, tech was pivotal in keeping us going, and for my kids, Rails made the year a little more manageable. - video_id: 7uuRV17e8gg -- title: Techniques for Uncertain Times - raw_title: - "RailsConf 2021: Debugging: Techniques for Uncertain Times - Chelsea - Troy" - speakers: - - Chelsea Troy - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/yhogm8HAd3o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/yhogm8HAd3o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/yhogm8HAd3o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/yhogm8HAd3o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/yhogm8HAd3o/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - When we learn to code, we focus on writing features while we understand what the code is doing. When we debug, we don’t understand what our code is doing. The less we understand, the less likely it is that our usual programming mindset—the one we use for feature development—can solve the problem. - - It turns out, the skills that make us calmer, more effective debuggers also equip us to deal with rapid, substantial changes to our lives. - - Whether you’re uncertain about what’s going on in your code, your life, or both, in this talk you’ll learn debugging techniques to get you moving forward safely. - video_id: yhogm8HAd3o -- title: Realtime Apps with Hotwire & ActionMailbox - raw_title: "RailsConf 2021: Realtime Apps with Hotwire & ActionMailbox - Chris Oliver" - speakers: - - Chris Oliver - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ItB848u3QR0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ItB848u3QR0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ItB848u3QR0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ItB848u3QR0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ItB848u3QR0/maxresdefault.jpg - published_at: "2022-09-27" - description: Realtime Apps with Hotwire & ActionMailbox - Chris Oliver - video_id: ItB848u3QR0 -- title: "Designing APIs: Less Data is More" - raw_title: "RailsConf 2021: Designing APIs: Less Data is More - Damir Svrtan" - speakers: - - Damir Svrtan - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/GbKOajKO46Y/default.jpg - thumbnail_md: https://i.ytimg.com/vi/GbKOajKO46Y/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/GbKOajKO46Y/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/GbKOajKO46Y/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - thumbnail_sm: https://i.ytimg.com/vi/GbKOajKO46Y/mqdefault.jpg - Often developers design APIs that expose more than is needed - unnecessary fields, redundant relationships, and endpoints that no one asked for. - - These kinds of practices later on introduce communication overhead, extra maintenance costs, negative performance impacts, and waste time that could have been spent better otherwise. - - We'll walk through how to design minimal APIs that are straight forward to use, and that are exactly what our consumers need! - video_id: GbKOajKO46Y -- title: Lightning Talks - raw_title: "RailsConf 2021: Lightning Talks: Steffani Brasil" - speakers: - - Steffani Brasil - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/H6MPMtf-Hd0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/H6MPMtf-Hd0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/H6MPMtf-Hd0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/H6MPMtf-Hd0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/H6MPMtf-Hd0/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: H6MPMtf-Hd0 -- title: "Keynote: Chatting with David" - raw_title: "RailsConf 2021: Keynote: Chatting with David" - speakers: - - David Heinemeier Hansson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/FzK0iHyQR0k/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/FzK0iHyQR0k/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/FzK0iHyQR0k/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/FzK0iHyQR0k/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/FzK0iHyQR0k/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: FzK0iHyQR0k -- title: "Keynote: Hardware/Software Co-design: The - Coming Golden Age" - raw_title: - "RailsConf 2021_ Keynote: Bryan Cantrill - Hardware/Software Co-design: - The Coming Golden Age" - speakers: - - Bryan Cantrill - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/jSE9fXgiqig/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/jSE9fXgiqig/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/jSE9fXgiqig/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/jSE9fXgiqig/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/jSE9fXgiqig/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: jSE9fXgiqig -- title: " Profiling to make your Rails app faster" - raw_title: "RailsConf 2021: Profiling to make your Rails app faster - Gannon McGibbon" - speakers: - - Gannon McGibbon - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/97d3f8r2qZ8/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/97d3f8r2qZ8/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/97d3f8r2qZ8/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/97d3f8r2qZ8/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/97d3f8r2qZ8/maxresdefault.jpg - published_at: "2022-09-28" - description: - As you grow your Rails app, is it starting to slow down? Let’s talk - about how to identify slow code, speed it up, and verify positive change within - your application. In this talk, you’ll learn about rack-mini-profiler, benchmark/ips, - and performance optimization best practices. - video_id: 97d3f8r2qZ8 -- title: "Why I'm Closing Your GitHub Issue" - raw_title: "RailsConf 2021: Why I'm Closing Your GitHub Issue - Henning Koch" - speakers: - - Henning Koch - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/veSRJUb8yuI/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/veSRJUb8yuI/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/veSRJUb8yuI/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/veSRJUb8yuI/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/veSRJUb8yuI/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Do you feel panic when receiving a notification from your open-source project? Is a backlog of unanswered issues wearing you down? - - You wanted to put something out there for others to use, but now it feels like a second job. Keep stressing out like this and you will burn out and leave another project abandoned on GitHub. - - In my talk we will rediscover your personal reasons for doing open source in the first place. We will practice dealing with issues effectively to free up time for the work that motivates you. - video_id: veSRJUb8yuI -- title: Hotwire Demystified - raw_title: "RailsConf 2021: Hotwire Demystified - Jamie Gaskins" - speakers: - - Jamie Gaskins - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/gllwoSoD5mk/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/gllwoSoD5mk/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/gllwoSoD5mk/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/gllwoSoD5mk/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/gllwoSoD5mk/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - DHH stunned the Rails world with his announcement of Hotwire from Basecamp. Even folks in the non-Rails web-development community took notice. - - In this talk, you will learn about the building blocks of Hotwire and how they compose to create a streamlined development experience while writing little to no JavaScript. - video_id: gllwoSoD5mk -- title: Engineer in Diversity & Inclusion - Tangible Steps for Teams - raw_title: - "RailsConf 2021: Engineer in Diversity & Inclusion - Tangible Steps for - Teams - Jeannie Evans" - speakers: - - Jeannie Evans - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/GRl5EWXM96o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/GRl5EWXM96o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/GRl5EWXM96o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/GRl5EWXM96o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/GRl5EWXM96o/maxresdefault.jpg - published_at: "2022-09-28" - description: - When it comes to implementing Diversity, Equity, and Inclusion (“DEI”), - where do software engineers fit in? The technology we build is used by diverse - groups of people, so our role is to build platforms for that diversity. At this - talk, you will learn why and how to make DEI a priority in your work with tangible - steps, goals, and examples. While the scope of these topics can feel overwhelming, - you will leave this talk empowered with the tools to attend your next standup - or write that next line of code as a better community member, ally, and software - engineer. - video_id: GRl5EWXM96o -- title: A day in the life of a Ruby object - raw_title: "RailsConf 2021: A Day in the Life of a Ruby Object - Jemma Issroff" - speakers: - - Jemma Issroff - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/NGOuPxqoPOs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/NGOuPxqoPOs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/NGOuPxqoPOs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/NGOuPxqoPOs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/NGOuPxqoPOs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Your code creates millions of Ruby objects every day, but do you actually know what happens to these objects? - - In this talk, we’ll walk through the lifespan of a Ruby object from birth to the grave: from .new to having its slot reallocated. We’ll discuss object creation, the Ruby object space, and an overview of garbage collection. - - Along the way, we’ll learn how to make our apps more performant, consume less memory, and have fewer memory leaks. We’ll learn specific tips and pointers for how to see what the garbage collector is doing and how to take advantage of the strategies it employs. - video_id: NGOuPxqoPOs -- title: Stimulating Events - raw_title: "RailsConf 2021: Stimulating Events - Jesse Spevack" - speakers: - - Jesse Spevack - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/XM9A53WUnN4/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/XM9A53WUnN4/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/XM9A53WUnN4/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/XM9A53WUnN4/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/XM9A53WUnN4/maxresdefault.jpg - published_at: "2022-09-28" - description: - Stimulus JS bills itself as a framework with modest ambitions that - fits nicely into the Rails as "omakase" paradigm. At its core, Stimulus gives - Rails developers a new set of low effort, high impact tools that can add much - more than the sheen of modernization to an everyday Rails application. Join me - as I live code three Stimulus JS examples that will help you save time, impress - your friends, and win new clients and opportunities. This will be great for JS - newbies and experts alike along with anyone interested in the potential schadenfreude - that watching me live code will likely elicit. - video_id: XM9A53WUnN4 -- title: Strategic Storytelling - raw_title: "RailsConf 2021: Strategic Storytelling - Jessica Hilt" - speakers: - - Jessica Hilt - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/rTEbYehXhdk/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/rTEbYehXhdk/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/rTEbYehXhdk/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/rTEbYehXhdk/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/rTEbYehXhdk/maxresdefault.jpg - published_at: "2022-09-28" - description: - We come from a world of facts and metrics so obviously the people with - the most data wins, right? Engineering comes from a place of logic but telling - the story behind that information is how the best leaders get buy-in and support - for their plans. In this talk, we'll examine the how and why of storytelling, - develop a framework of putting an idea into a narrative, and what tools you’ll - need to complement a good story. By the end, you’ll be able to break out a story - whenever you need to generate excitement, find advocates, or more budget. Is there - anything more irresistible than a good story? - video_id: rTEbYehXhdk -- title: ViewComponents in the Real World - raw_title: "RailsConf 2021: ViewComponents in the Real World - Joel Hawksley" - speakers: - - Joel Hawksley - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/xabosHqjOlM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/xabosHqjOlM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/xabosHqjOlM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/xabosHqjOlM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/xabosHqjOlM/maxresdefault.jpg - published_at: "2022-09-28" - description: - With the release of 6.1, Rails added support for rendering objects - that respond to render_in, a feature extracted from the GitHub application. This - change enabled the development of ViewComponent, a framework for building reusable, - testable & encapsulated view components. In this talk, we’ll share what we’ve - learned scaling to hundreds of ViewComponents in our application, open sourcing - a library of ViewComponents, and nurturing a thriving community around the project, - both internally and externally. - video_id: xabosHqjOlM -- title: Beautiful reactive web UIs, Ruby and you - raw_title: "RailsConf 2021: Beautiful reactive web UIs, Ruby and you - Jonas Jabari" - speakers: - - Jonas Jabari - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/VhIXLNIfk5s/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/VhIXLNIfk5s/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/VhIXLNIfk5s/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/VhIXLNIfk5s/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/VhIXLNIfk5s/maxresdefault.jpg - published_at: "2022-09-28" - description: - A lot of life changing things have happened in 2020. And I'm obviously - speaking about Stimulus Reflex and Hotwire and how we as Rails devs are finally - enabled to skip a lot of JS while implementing reactive web UIs. But what if I - told you, there's room for even more developer happiness? Imagine crafting beautiful - UIs in pure Ruby, utilizing a library reaching from simple UI components representing - basic HTML tags over styled UI concepts based on Bootstrap to something like a - collection, rendering reactive data sets. Beautiful, reactive web UIs implemented - in pure Ruby are waiting for you! - video_id: VhIXLNIfk5s -- title: "Refactoring: A developer's guide to writing well" - raw_title: "RailsConf 2021: Refactoring: A developer's guide to writing well - Jordan Raine" - speakers: - - Jordan Raine - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/jfK5miM5ZMs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/jfK5miM5ZMs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/jfK5miM5ZMs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/jfK5miM5ZMs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/jfK5miM5ZMs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - As a developer, you're asked to write an awful lot: commit messages, code review, achitecture docs, pull request write-ups, and more. When you write, you have the power to teach and inspire your teammates—the reader—or leave them confused. Like refactoring, it's a skill that can elevate you as a developer but it is often ignored. - - In this session, we'll use advice from fiction authors, book editors, and technical writers to take a pull request write-up from unhelpful to great. Along the way, you'll learn practical tips to make your code, ideas, and work more clear others. - video_id: jfK5miM5ZMs -- title: '"Junior" Devs are the Solution to Many of Your Problems' - raw_title: 'RailsConf 2021: "Junior" Devs are the Solution to Many of Your Problems - Josh Thompson' - speakers: - - Josh Thompson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/SQh-wqmuFxg/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/SQh-wqmuFxg/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/SQh-wqmuFxg/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/SQh-wqmuFxg/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/SQh-wqmuFxg/maxresdefault.jpg - published_at: "2022-09-28" - description: - "Our industry telegraphs: \"We don't want (or know how to handle) 'junior - developers*'.\"\n\nEarly-career Software Developers, or ECSDs, have incredible - value if their team/company/manager doesn't \"lock themselves out\" of accessing - this value.\n\nWhoever figures out how to embrace the value of ECSDs will outperform - their cohort. \U0001F4C8\U0001F4B0\U0001F917\n\nI will speak to:\n\nExecutives - (CTOs/Eng VPs)\nSenior Developers/Dev Managers\nECSDs themselves\nAbout how to:\n\nIdentify - which problems are solvable because of ECSDs\nGet buy-in for these problem/solution - sets\nStart solving these problems with ECSDs" - video_id: SQh-wqmuFxg -- title: Exploring Real-time Computer Vision Using ActionCable - raw_title: "RailsConf 2021: Exploring Real-time Computer Vision Using ActionCable - Justin Bowen" - speakers: - - Justin Bowen" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/VsTLXiv0H-g/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/VsTLXiv0H-g/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/VsTLXiv0H-g/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/VsTLXiv0H-g/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/VsTLXiv0H-g/maxresdefault.jpg - published_at: "2022-09-28" - description: - Learn about combining Rails and Python for Computer Vision. We'll be - analyzing images of cannabis plants in real-time and deriving insights from changes - in leaf area & bud site areas. We'll explore when to use traditional statistical - analysis versus ML approaches, as well as other ways CV has been deployed. We’ll - cover integrating OpenCV with ActionCable & Sidekiq for broadcasting camera analysis - to Rails and creating time-lapse style renderings with graphs. You will gain an - understanding of what tools to use and where to start if you’re interested in - using ML or CV with your Rails project! - video_id: VsTLXiv0H-g -- title: "Implicit to Explicit: Decoding Ruby's Magical Syntax" - raw_title: - "RailsConf 2021: Implicit to Explicit: Decoding Ruby's Magical Syntax - - Justin Gordon" - speakers: - - Justin Gordon - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/9ubmyfEdlMs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/9ubmyfEdlMs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/9ubmyfEdlMs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/9ubmyfEdlMs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/9ubmyfEdlMs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Does a Rails model or config file seem like a magical syntax? Or can you read any Ruby code and understand it as the interpreter does? - - Ruby's implicitness makes it great for readability and DSLs. But that also gives Ruby a "magical" syntax compared to JavaScript. - - In this talk, let's convert the implicit to explicit in some familiar Rails code. What was "magic" will become simple, understandable code. - - After this talk, you'll see Ruby through a new lens, and your Ruby reading comprehension will improve. As a bonus, I'll share a few Pry tips to demystify any Ruby code. - video_id: 9ubmyfEdlMs -- title: The History of Making Mistakes - raw_title: "RailsConf 2021: The History of Making Mistakes - Kerri Miller" - speakers: - - Kerri Miller - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ecUDTUihlPc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ecUDTUihlPc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ecUDTUihlPc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ecUDTUihlPc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ecUDTUihlPc/maxresdefault.jpg - published_at: "2022-09-28" - description: - We sometimes say “computers were a mistake”, as if clay tablets were - any better. From the very beginning, humans have been screwing up, and it’s only - gotten worse from there. Each time, though, we’ve learned something and moved - forward. Sometimes we forget those lessons, so let’s look through the lens of - software engineering at a few of these oopsie-daisies, and see the common point - of failure - humans themselves. - video_id: ecUDTUihlPc -- title: How to teach your code to describe its own architecture - raw_title: - "RailsConf 2021: How to teach your code to describe its own architecture - - Kevin Gilpin" - speakers: - - Kevin Gilpin - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/SZHFnRkAcU0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/SZHFnRkAcU0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/SZHFnRkAcU0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/SZHFnRkAcU0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/SZHFnRkAcU0/maxresdefault.jpg - published_at: "2022-09-28" - description: - Architecture documents and diagrams are always out of date. Unfortunately, - lack of accurate, up-to-date information about software architecture is really - harmful to developer productivity and happiness. Historically, developers have - overcome other frustrations by making code the “source of truth”, and then using - the code as a foundation for automated tools and processes. In this talk, I will - describe how to automatically generate docs and diagrams of code architecture, - and discuss how to use to use this information to improve code understanding and - code quality. - video_id: SZHFnRkAcU0 -- title: "High availability by offloading work" - raw_title: "RailsConf 2021: High availability by offloading work - Kerstin Puschke" - speakers: - - Kerstin Puschke - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/AWe70zT2z_c/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/AWe70zT2z_c/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/AWe70zT2z_c/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/AWe70zT2z_c/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/AWe70zT2z_c/maxresdefault.jpg - published_at: "2022-09-28" - description: - "Unpredictable traffic spikes, slow requests to a third party, and - time-consuming tasks like image processing shouldn’t degrade the user facing availability - of an application. In this talk, you’ll learn about different approaches to maintain - high availability by offloading work into the background: background jobs, message - oriented middleware based on queues, and event logs like Kafka. I’ll explain their - foundations and how they compare to each other, helping you to choose the right - tool for the job." - video_id: AWe70zT2z_c -- title: "Engineering MBA: Be The Boss of Your Own Work" - raw_title: - "RailsConf 2021: Engineering MBA: Be The Boss of Your Own Work - Kevin - Murphy" - speakers: - - Kevin Murphy - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/HMppLTUyewE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/HMppLTUyewE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/HMppLTUyewE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/HMppLTUyewE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/HMppLTUyewE/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Improve your work as a developer with an introduction to strategic planning, situational leadership, and process management. No balance sheets or income statements here; join me to learn the MBA skills valuable to developers without the opportunity costs of lost wages or additional student loans. - - Demystify the strategic frameworks your management team may use to make decisions and learn how you can use those same concepts in your daily work. Explore the synergy one developer achieved by going to business school (sorry, the synergy comment slipped out - old habit). - video_id: HMppLTUyewE -- title: "ho Are You? Delegation, Federation, Assertions and Claims" - raw_title: - "RailsConf 2021: ho Are You? Delegation, Federation, Assertions and Claims - - Lyle Mullican" - speakers: - - Lyle Mullican - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/oktaIPZqD0E/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/oktaIPZqD0E/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/oktaIPZqD0E/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/oktaIPZqD0E/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/oktaIPZqD0E/maxresdefault.jpg - published_at: "2022-09-28" - description: - Identity management? Stick a username and (hashed) password in a database, - and done! That's how many apps get started, at least. But what happens once you - need single sign-on across multiple domains, or if you'd rather avoid the headache - of managing those passwords to begin with? This session will cover protocols (and - pitfalls) for delegating the responsibility of identity management to an outside - source. We'll take a look at SAML, OAuth, and OpenID Connect, considering both - the class of problems they solve, and some new ones they introduce! - video_id: oktaIPZqD0E -- title: "API Optimization Tale: Monitor, Fix and Deploy (on Friday)" - raw_title: - "RailsConf 2021: API Optimization Tale: Monitor, Fix and Deploy (on Friday) - - Maciek Rzasa" - speakers: - - Maciek Rzasa - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/8DKo5jefJeM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/8DKo5jefJeM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/8DKo5jefJeM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/8DKo5jefJeM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/8DKo5jefJeM/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - I saw a green build on a Friday afternoon. I knew I need to push it to production before the weekend. My gut told me it was a trap. I had already stayed late to revert a broken deploy. I knew the risk. - - In the middle of a service extraction project, we decided to migrate from REST to GraphQL and optimize API usage. My deploy was a part of this radical change. - - Why was I deploying so late? How did we measure the migration effects? And why was I testing on production? I'll tell you a tale of small steps, monitoring, and old tricks in a new setting. Hope, despair, and broken production included. - video_id: 8DKo5jefJeM -- title: "Using Rails to communicate with the New York Stock Exchange" - raw_title: - "RailsConf 2021: Using Rails to communicate with the New York Stock Exchange - - Martin Jaime" - speakers: - - Martin Jaime - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/sPLngvzOuqE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/sPLngvzOuqE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/sPLngvzOuqE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/sPLngvzOuqE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/sPLngvzOuqE/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - This is a timely talk because of what happened with Gamestop/Robinhood, introducing a case of a high-frequency trading app like Robinhood, built on top of Rails, and how it proves it can scale, managing not only over a complex HTTP API but also communicating over an internal protocol TCP with one New York Stock Exchange server by making use of Remote Procedure Calls (RPC) with RabbitMQ to be able to manage transactional messages (orders). - - So, how can we make use of Rails to deliver a huge amount of updates (through WSS) and have solid transactions (through HTTPS)? - video_id: sPLngvzOuqE -- title: rails db:migrate:even_safer - raw_title: "RailsConf 2021: rails db:migrate:even_safer - Matt Duszynski" - speakers: - - Matt Duszynski - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/uMcRCSiNzuc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/uMcRCSiNzuc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/uMcRCSiNzuc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/uMcRCSiNzuc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/uMcRCSiNzuc/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - It's been a few years, your Rails app is wildly successful, and your database is bigger than ever. With that, comes new challenges when making schema changes. You have types to change, constraints to add, and data to migrate... and even an entire table that needs to be replaced. - - Let's learn some advanced techniques for evolving your database schema in a large production application, while avoiding errors and downtime. Remember, uptime begins at $HOME! - Play - video_id: uMcRCSiNzuc -- title: Rescue Mission Accomplished - raw_title: "RailsConf 2021: Rescue Mission Accomplished - Mercedes Bernard" - speakers: - - Mercedes Bernard - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/_8BklZo-FC0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/_8BklZo-FC0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/_8BklZo-FC0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/_8BklZo-FC0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/_8BklZo-FC0/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - "Your mission, should you choose to accept it..." A stakeholder has brought you a failing project and wants you to save it. - - Do you accept your mission? Do you scrap the project and rewrite it? Deciding to stabilize a failing project can be a scary challenge. By the end of this talk, you will have tangible steps to take to incrementally refactor a failing application in place. We will also be on the lookout for warning signs of too much tech debt, learn when tech debt is OK, and walk away with useful language to use when advocating to pay down the debt. - video_id: _8BklZo-FC0 -- title: Writing design docs for wide audiences - raw_title: "RailsConf 2021: Writing design docs for wide audiences - Michele Titolo" - speakers: - - Michele Titolo - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/TxBPuAzFkHE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/TxBPuAzFkHE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/TxBPuAzFkHE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/TxBPuAzFkHE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/TxBPuAzFkHE/maxresdefault.jpg - published_at: "2022-09-28" - description: - "What would you do to convince a large audience, who has little context, - to use your solution to a problem? One way is to write a design document, which - helps scale technical communication and build alignment among stakeholders. The - wider the scope of the problem, the more important alignment is. A design document - achieves this by addressing three key questions: “what is the goal?”, “how will - we achieve it?” and “why are we doing it this way?”. This talk will cover identifying - your audience, effectively writing answers to these questions, and involving the - right people at the right time." - video_id: TxBPuAzFkHE -- title: How Reference Librarians Can Help Us Help Each Other - raw_title: - "RailsConf 2021: How Reference Librarians Can Help Us Help Each Other - - Mike Calhoun" - speakers: - - Mike Calhoun - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/joZYMpoHrao/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/joZYMpoHrao/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/joZYMpoHrao/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/joZYMpoHrao/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/joZYMpoHrao/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - In 1883, The Boston Public Library began hiring librarians for reference services. Since then, a discipline has grown around personally meeting the needs of the public, as Library Science has evolved into Information Science. Yet, the goal of assisting with information needs remains the same. There is disciplinary overlap between programming and information science, but there are cultural differences that can be addressed. In other words, applying reference library practices to our teams can foster environments where barriers to asking for and providing help are broken down. - Play - video_id: joZYMpoHrao -- title: A Third Way For Open-Source Maintenance - raw_title: "RailsConf 2021: A Third Way For Open-Source Maintenance - Nate Berkopec" - speakers: - - Nate Berkopec - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/gvW0htMx_2o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/gvW0htMx_2o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/gvW0htMx_2o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/gvW0htMx_2o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/gvW0htMx_2o/maxresdefault.jpg - published_at: "2022-09-28" - description: - 'Drawing on my experiences maintaining Puma and other open-source projects, - both volunteer and for pay, I''d like to share what I think is a "third way" for - sustainable open source, between the extremes of "everyone deserves to be paid" - and "everyone''s on their own". Instead of viewing maintainers as valuable resources, - this third way posits that maintainers are blockers to a potentially-unlimited - pool of contributors, and a maintainer''s #1 job is encouraging contribution.' - video_id: gvW0htMx_2o -- title: "Can I break this?: Writing resilient “save” methods" - raw_title: - "RailsConf 2021: Can I break this?: Writing resilient “save” methods - - Nathan Griffith" - speakers: - - Nathan Griffith - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/jbOM_tvWv3o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/jbOM_tvWv3o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/jbOM_tvWv3o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/jbOM_tvWv3o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/jbOM_tvWv3o/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - An alert hits your radar, leaving you and your team perplexed. An “update” action that had worked for years suddenly ... didn't. You dig in to find that a subtle race condition had been hiding in plain sight all along. How could this happen? And why now? - - In this talk, we'll discover that seemingly improbable failures happen all the time, leading to data loss, dropped messages, and a lot of head-scratching. Plus, we'll see that anyone can become an expert in spotting these errors before they occur. Join us as we learn to write resilient save operations, without losing our minds. - video_id: jbOM_tvWv3o -- title: How to be a great developer without being a great coder - raw_title: - "RailsConf 2021: How to be a great developer without being a great coder - - Nicole Carpenter" - speakers: - - Nicole Carpenter - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/U6DlbMuHgoQ/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/U6DlbMuHgoQ/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/U6DlbMuHgoQ/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/U6DlbMuHgoQ/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/U6DlbMuHgoQ/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Learning to code is an individual journey filled with highs and lows, but for some, the lows seem far more abundant. For some learning to code, and even for some professionals, it feels like we're struggling to tread water while our peers swim laps around us. Some developers take more time to build their technical skills, and that’s ok, as being a great developer is about far more than writing code. - - This talk looks at realistic strategies for people who feel like they are average-or-below coding skill level, to keep their head above water while still excelling in their career as a developer. - video_id: U6DlbMuHgoQ -- title: "RailsConf 2021: Keynote: Aaron Patterson" - raw_title: "RailsConf 2021: Keynote: Aaron Patterson" - speakers: - - Aaron Patterson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/TNFljhcoHvQ/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/TNFljhcoHvQ/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/TNFljhcoHvQ/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/TNFljhcoHvQ/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/TNFljhcoHvQ/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: TNFljhcoHvQ -- title: Missing Guide to Service Objects in Rails - raw_title: "RailsConf 2021: Missing Guide to Service Objects in Rails - Riaz Virani" - speakers: - - Riaz Virani - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/MCTwjE-vp2s/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/MCTwjE-vp2s/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/MCTwjE-vp2s/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/MCTwjE-vp2s/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/MCTwjE-vp2s/maxresdefault.jpg - published_at: "2022-09-28" - description: - What happens with Rails ends and our custom business logic begins? - Many of us begin writing "service objects", but what exactly is a service object? - How do we break down logic within the service object? What happens when a step - fails? In this talk, we'll go over some of the most common approaches to answering - these questions. We'll survey options to handle errors, reuse code, organize our - directories, and even OO vs functional patterns. There isn't a perfect pattern, - but by the end, we'll be much more aware of the tradeoffs between them. - video_id: MCTwjE-vp2s -- title: Accessibility is a Requirement - raw_title: "RailsConf 2021: Accessibility is a Requirement - Ryan Boone" - speakers: - - Ryan Boone - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/0r1rBNM3Wao/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/0r1rBNM3Wao/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/0r1rBNM3Wao/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/0r1rBNM3Wao/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/0r1rBNM3Wao/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Accessible web applications reach wider audiences, ensure businesses are in compliance with the law, and, most importantly, remove barriers for the one in seven worldwide living with a permanent disability. But limited time, lack of knowledge, and even good intentions get in the way of building them. - - Come hear my personal journey toward accessibility awareness. You will learn what accessibility on the web means, how to improve the accessibility of your applications today, and how to encourage an environment where accessibility is seen as a requirement, not simply a feature. - video_id: 0r1rBNM3Wao -- title: You are Your Own Worst Critic - raw_title: "RailsConf 2021: You Are Your Own Worst Critic - Ryan Brushett" - speakers: - - Ryan Brushett - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/EHZzyVmOrGI/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/EHZzyVmOrGI/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/EHZzyVmOrGI/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/EHZzyVmOrGI/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/EHZzyVmOrGI/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Advancing through one's career can be challenging. As we experience setbacks, impostor syndrome, and uncertainty at various points of our career, we may develop some habits which, when taken too far, could see us sabotaging our own progress. You are your own worst critic. - - Despite my own experience with anxiety, a bullying internal critic, and “self-deprecating humour”, I'm now a senior engineer and I've noticed these habits in people I mentor. I hope to help you identify signs of these bad habits in yourself and others, and to talk about what has helped me work through it. - video_id: EHZzyVmOrGI -- title: All you need to know to build Dynamic Forms (JS FREE) - raw_title: - "RailsConf 2021: All you need to know to build Dynamic Forms (JS FREE) - - Santiago Bartesaghi" - speakers: - - Santiago Bartesaghi - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/6WlFjFOuYGM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/6WlFjFOuYGM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/6WlFjFOuYGM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/6WlFjFOuYGM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/6WlFjFOuYGM/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Working with forms is pretty common in web apps, but this time my team was requested to give support for dynamic forms created by admins in an admin panel and used in several places (real story). There are many ways to implement it, but our goal was to build it in a way that felt natural in Rails. - - This talk is for you if you’d like to learn how we used the ActiveModel's API together with the Form Objects pattern to support our dynamic forms feature, and the cherry on top is the usage of Hotwire to accomplish some more advanced features. And all of this is done without a single line of JS :) - video_id: 6WlFjFOuYGM -- title: How To Get A Project Unstuck - raw_title: "RailsConf 2021: How To Get A Project Unstuck - Sumana Harihareswara" - speakers: - - Sumana Harihareswara - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/olqhg0aNfZc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/olqhg0aNfZc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/olqhg0aNfZc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/olqhg0aNfZc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/olqhg0aNfZc/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - When an open source project has gotten stuck, how do you get it unstuck? Especially if you aren't already its maintainer? My teams have done this with several projects. A new contributor, who's never worked on a project before, can be the catalyst that revives a project or gets a long-delayed release out the door. I'll share a few case studies, principles, & gotchas. - - More than developer time, coordination & leadership are a bottleneck in software sustainability. You'll come away from this talk with steps you can take, in the short and long runs, to address this for projects you care about. - video_id: olqhg0aNfZc -- title: "Growing Software From Seed" - raw_title: "RailsConf 2021: Growing Software From Seed - Sweta Sanghavi" - speakers: - - Sweta Sanghavi - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/HiByvxqvH-8/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/HiByvxqvH-8/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/HiByvxqvH-8/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/HiByvxqvH-8/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/HiByvxqvH-8/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Pam Pierce writes, “Look at your garden every day. Study a plant or a square foot of ground until you’ve learned something new". In debugging my own garden, the practice of daily observation has revealed signals previously overlooked. This practice has followed me to the work of tending to our growing application. - - This talk visits some familiar places, code that should work, or seems unnecessarily complicated, and digs deeper to find what we missed at first glance. Let’s explore how we can learn to hear all our application tells us and cultivate a methodical approach to these sticky places. - video_id: HiByvxqvH-8 -- title: "" - raw_title: - "RailsConf 2021: Scaling Rails API to Write-Heavy Traffic - Takumasa - Ochi" - speakers: - - ": Scaling Rails API to Write-Heavy Traffic - Takumasa Ochi" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/R6EkPSo_7PA/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/R6EkPSo_7PA/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/R6EkPSo_7PA/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/R6EkPSo_7PA/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/R6EkPSo_7PA/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Tens of millions of people can download and play the same game thanks to mobile app distribution platforms. Highly scalable and reliable API backends are critical to offering a good game experience. Notable characteristics here is not only the magnitude of the traffic but also the ratio of write traffic. How do you serve millions of database transactions per minute with Rails? - - The keyword to solve this issue is "multiple databases," especially sharding. From system architecture to coding guidelines, we'd like to share the practical techniques derived from our long-term experience. - video_id: R6EkPSo_7PA -- title: "" - raw_title: "RailsConf 2021: What is Developer Empathy? - Tim Tyrrell" - speakers: - - ": What is Developer Empathy? - Tim Tyrrell" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/PvoGihwh0Ao/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/PvoGihwh0Ao/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/PvoGihwh0Ao/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/PvoGihwh0Ao/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/PvoGihwh0Ao/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Dev teams should employ empathetic patterns of behavior at all levels from junior developer to architect. Organizations can create the safety and security necessary to obtain a high functioning team environment that values courageous feedback if they simply have the language and tools to do so. How can leadership provide a framework for equitable practices and empathetic systems that promotes learning fluency across the team? - - I have ideas. Find out what I've learned through countless hours of mentorship, encouragement, and support both learning from and teaching others to code. - video_id: PvoGihwh0Ao -- title: "" - raw_title: "RailsConf 2021: The Curious Case of the Bad Clone - Ufuk Kayserilioglu" - speakers: - - ": The Curious Case of the Bad Clone - Ufuk Kayserilioglu" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/eTAXHmBSlxs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/eTAXHmBSlxs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/eTAXHmBSlxs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/eTAXHmBSlxs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/eTAXHmBSlxs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - On Sept 4th 2020, I got pinged on a revert PR to fix a 150% slowdown on the Shopify monolith. It was a two-line change reverting the addition of a Sorbet signature on a Shop method, implicating Sorbet as the suspect. - - That was the start of a journey that took me through a deeper understanding of the Sorbet, Rails and Ruby codebases. The fix is in Ruby 3.0 and I can sleep better now. - - This talk will take you on that journey with me. Along the way, you will find tools and tricks that you can use for debugging similar problems. We will also delve into some nuances of Ruby, which is always fun. - video_id: eTAXHmBSlxs -- title: "" - raw_title: "RailsConf 2021: The Cost of Data - Vaidehi Joshi" - speakers: - - ": The Cost of Data - Vaidehi Joshi" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/EfTZXvif9hg/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/EfTZXvif9hg/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/EfTZXvif9hg/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/EfTZXvif9hg/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/EfTZXvif9hg/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - The internet grows every day. Every second, one of us is making calls to an API, uploading some images, or streaming the latest video content. But what is the cost of all this? - - Every day, a data center stores information on our behalf. As engineers, it's easy to focus on the code and forget the tangible impact of our work. This talk explores the physical reality of creating and storing data today, as well as the challenges and technological advancements currently being made in this part of the tech sector. Together, we'll see how our code affects the physical world, and what we can do about it. - Play - video_id: EfTZXvif9hg -- title: "" - raw_title: "RailsConf 2021: Frontendless Rails frontend - Vladimir Dementyev" - speakers: - - ": Frontendless Rails frontend - Vladimir Dementyev" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/UylEOXuAmo0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/UylEOXuAmo0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/UylEOXuAmo0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/UylEOXuAmo0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/UylEOXuAmo0/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Everything is cyclical, and web development is not an exception: ten years ago, we enjoyed developing Rails apps using HTML forms, a bit of AJAX, and jQuery—our productivity had no end! As interfaces gradually became more sophisticated, the "classic" approach began to give way to frontend frameworks, pushing Ruby into an API provider's role. - - The situation started to change; the "new wave" is coming, and ViewComponent, StimulusReflex, and Hotwire are riding the crest. - - In this talk, I'd like to demonstrate how we can develop modern "frontend" applications in the New Rails Way. - video_id: UylEOXuAmo0 -- title: "" - raw_title: "RailsConf 2021: What the fork()? - Will Jordan" - speakers: - - ": What the fork()? - Will Jordan" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/Cq3Vd4KIvFk/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/Cq3Vd4KIvFk/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/Cq3Vd4KIvFk/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/Cq3Vd4KIvFk/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/Cq3Vd4KIvFk/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - How does Spring boot your Rails app instantly, or Puma route requests across many processes? How can you fine-tune your app for memory efficiency, or simply run Ruby code in parallel? Find out with a deep dive on that staple Unix utensil, the fork() system call! - - After an operating systems primer on children, zombies, processes and pipes, we'll dig into how exactly Spring and Puma use fork() to power Rails in development and production. We'll finish by sampling techniques for measuring and maximizing copy-on-write efficiency, including a new trick that can reduce memory usage up to 80%. - video_id: Cq3Vd4KIvFk -- title: "" - raw_title: "RailsConf 2021: Talmudic Gems For Rails Developers - Yechiel Kalmenson" - speakers: - - ": Talmudic Gems For Rails Developers - Yechiel Kalmenson" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/7bPFm1CWaws/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/7bPFm1CWaws/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/7bPFm1CWaws/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/7bPFm1CWaws/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/7bPFm1CWaws/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Am I my colleague’s keeper? To what extent are we responsible for the consequences of our code? - - More than two thousand years ago conversations on central questions of human ethics were enshrined in one of the primary ancient wisdom texts, the Talmud. - - Now, as the tech industry is beginning to wake up to the idea that we can not separate our work from its ethical and moral ramifications these questions take on a new urgency. - - In this talk, we will delve into questions of our responsibility to our teammates, to our code, and to the world through both the ancient texts and modern examples. - video_id: 7bPFm1CWaws -- title: "" - raw_title: "RailsConf 2021: Turning DevOps Inside-Out - Darren Broemmer" - speakers: - - ": Turning DevOps Inside-Out - Darren Broemmer" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/sJ-Be85vCcc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/sJ-Be85vCcc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/sJ-Be85vCcc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/sJ-Be85vCcc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/sJ-Be85vCcc/maxresdefault.jpg - published_at: "2022-09-28" - description: - We often think of automation and deployment scripts when we discuss - DevOps, however the true value is in reacting to how customers use your application - and incorporating this feedback into your development lifecycle. In this talk, - we will discuss how you can turning DevOps around to increase your feature velocity, - including some Rails specific strategies and gems you can use to get things done - faster. - video_id: sJ-Be85vCcc -- title: "" - raw_title: - "RailsConf 2021: New dev, old codebase: A series of mentorship stories - - Ramón Huidobro" - speakers: - - ": New dev" - - "old codebase: A series of mentorship stories - Ramón Huidobro" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/NcQqEurV4vo/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/NcQqEurV4vo/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/NcQqEurV4vo/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/NcQqEurV4vo/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/NcQqEurV4vo/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Mentorship in software development carries a lot of responsibility, but plays an integral part in making tech communities as well as individuals thrive. - - In this talk, we'll go over some of my mentorship experiences, adopting techniques and learning to teach, so we can teach to learn. - - Anyone can be a great mentor! - - The excellent mentorship.guide (also cited in the resources section) has an even more detailed answer to “Why be a mentor?” — here's the relevant section: https://mentorship.gitbook.io/guide/m... - video_id: NcQqEurV4vo -- title: "" - raw_title: "RailsConf 2021: Lightning Talks: Robson Port" - speakers: - - ": Lightning Talks: Robson Port" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/LWa465inCxQ/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/LWa465inCxQ/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/LWa465inCxQ/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/LWa465inCxQ/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/LWa465inCxQ/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: LWa465inCxQ -- title: "" - raw_title: "RailsConf 2021: Lightning Talks: Emily Harber" - speakers: - - ": Lightning Talks: Emily Harber" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/teyMgaqg-1M/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/teyMgaqg-1M/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/teyMgaqg-1M/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/teyMgaqg-1M/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/teyMgaqg-1M/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: teyMgaqg-1M -- title: "" - raw_title: "RailsConf 2021: Lightning Talks: Dorian Marie" - speakers: - - ": Lightning Talks: Dorian Marie" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/lpfEnIsF1QM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/lpfEnIsF1QM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/lpfEnIsF1QM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/lpfEnIsF1QM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/lpfEnIsF1QM/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: lpfEnIsF1QM -- title: "" - raw_title: "RailsConf 2021: Lightning Talks: Brandon Shar" - speakers: - - ": Lightning Talks: Brandon Shar" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/-JT1RF-IhKs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/-JT1RF-IhKs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/-JT1RF-IhKs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/-JT1RF-IhKs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/-JT1RF-IhKs/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: "-JT1RF-IhKs" -- title: "" - raw_title: "RailsConf 2021: Lightning Talks: Sarah Sausan" - speakers: - - ": Lightning Talks: Sarah Sausan" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/5LBzWDbLu1I/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/5LBzWDbLu1I/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/5LBzWDbLu1I/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/5LBzWDbLu1I/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/5LBzWDbLu1I/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: 5LBzWDbLu1I -- title: "" - raw_title: "RailsConf 2021: Lightning Talks: Lauren Billington" - speakers: - - ": Lightning Talks: Lauren Billington" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/GOmTVqH-eZE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/GOmTVqH-eZE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/GOmTVqH-eZE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/GOmTVqH-eZE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/GOmTVqH-eZE/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: GOmTVqH-eZE -- title: "" - raw_title: - "RailsConf 2021: Serverless Rails: Understanding the pros and cons - - Daniel Azuma" - speakers: - - ": Serverless Rails: Understanding the pros" - - cons - Daniel Azuma - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/C3LMNdhVS2U/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/C3LMNdhVS2U/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/C3LMNdhVS2U/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/C3LMNdhVS2U/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/C3LMNdhVS2U/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Serverless is widely lauded as the ops-free future of deployment. Serverless is widely panned as a gimmick with little utility for the price. Who’s right? And what does it mean for my Rails app? - - This session takes a critical look at serverless hosting. We’ll consider the abstractions underlying environments such as AWS Lambda and Google Cloud Run, their assumptions and trade-offs, and their implications for Ruby apps and frameworks. You’ll come away better prepared to decide whether or not to adopt serverless deployment, and to understand how your code might need to change to accommodate it. - video_id: C3LMNdhVS2U -- title: "" - raw_title: - "RailsConf 2021: Make a Difference with Simple A/B Testing - Danielle - Gordon" - speakers: - - ": Make a Difference with Simple A/B Testing - Danielle Gordon" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/MnYmZKtj9Lc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/MnYmZKtj9Lc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/MnYmZKtj9Lc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/MnYmZKtj9Lc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/MnYmZKtj9Lc/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - There are a lot of myths around A/B testing. They’re difficult to implement, difficult to keep track of, difficult to remove, and the costs don’t seem to outweigh the benefits unless you’re at a large company. But A/B tests don’t have to be a daunting task. And let’s be honest, how can you say you’ve made positive changes in your app without them? - - A/B tests are a quick way to gain more user insight. We'll first start with a few easy A/B tests, then create a simple system to organise them. By then end, we'll see how easy it is to convert to a (A/B) Test Driven Development process. - video_id: MnYmZKtj9Lc -- title: "Speed up your test suite by throwing computers at it" - raw_title: - "RailsConf 2021: Speed up your test suite by throwing computers at it - - Daniel Magliola" - speakers: - - Daniel Magliola - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ntTT64hK1no/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ntTT64hK1no/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ntTT64hK1no/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ntTT64hK1no/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ntTT64hK1no/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - You've probably experienced this. CI times slowly creep up over time and now it takes 20, 30, 40 minutes to run your suite. Multi-hour runs are not uncommon. - - All of a sudden, all you're doing is waiting for CI all day, trying to context switch between different PRs. And then, a flaky test hits, and you start waiting all over again. - - It doesn't have to be like this. In this talk I'll cover several strategies for improving your CI times by making computers work harder for you, instead of having to painstakingly rewrite your tests. - video_id: ntTT64hK1no -- title: "" - raw_title: "RailsConf 2021: The Power of Visual Narrative - Denise Yu" - speakers: - - ": The Power of Visual Narrative - Denise Yu" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/a36JR0-rxz0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/a36JR0-rxz0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/a36JR0-rxz0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/a36JR0-rxz0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/a36JR0-rxz0/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - As technologists, we spend a great deal of time trying to become better communicators. One secret to great communication is... to actually say less. And draw more! - - I've been using sketchnotes, comics, and abstractly-technical doodles for the last few years to teach myself and others about technical concepts. Lo-fi sketches and lightweight storytelling devices can create unlikely audiences for any technical subject matter. I'll break down how my brain translates complex concepts into approachable art, and how anyone can start to do the same, regardless of previous artistic experience. - video_id: a36JR0-rxz0 -- title: "" - raw_title: - "RailsConf 2021: When words are more than just words: Don't BlackList - us - Espartaco Palma" - speakers: - - ": When words are more than just words: Don't BlackList us - Espartaco Palma" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/nLGvYfeLMbM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/nLGvYfeLMbM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/nLGvYfeLMbM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/nLGvYfeLMbM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/nLGvYfeLMbM/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - ow we communicate words is important, the code, test and documentation needs to be part of the ongoing process to treat better our coworkers, be clear on what we do without the need of established words as "blacklist". Do you mean restricted? rejected? undesirable? think again. - - Master, slave, fat, archaic, blacklist are just a sample of actions you may not be aware of hard are for underrepresented groups. We, your coworkers can't take it anymore because all the suffering it create on us, making us unproductive, feeling second class employee or simply sad. - - Let's make our code, a better code. - video_id: nLGvYfeLMbM -- title: "" - raw_title: "RailsConf 2021: How to A/B test with confidence - Frederick Cheung" - speakers: - - ": How to A/B test with confidence - Frederick Cheung" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/IsgQ9RJ0rJE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/IsgQ9RJ0rJE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/IsgQ9RJ0rJE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/IsgQ9RJ0rJE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/IsgQ9RJ0rJE/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - A/B tests should be a surefire way to make confident, data-driven decisions about all areas of your app - but it's really easy to make mistakes in their setup, implementation or analysis that can seriously skew results! - - After a quick recap of the fundamentals, you'll learn the procedural, technical and human factors that can affect the trustworthiness of a test. More importantly, I'll show you how to mitigate these issues with easy, actionable tips that will have you A/B testing accurately in no time! - video_id: IsgQ9RJ0rJE -- title: "" - raw_title: - "RailsConf 2021: The Rising Storm of Ethics in Open Source - Coraline - Ada Ehmke" - speakers: - - ": The Rising Storm of Ethics in Open Source - Coraline Ada Ehmke" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/CX3htKOeB14/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/CX3htKOeB14/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/CX3htKOeB14/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/CX3htKOeB14/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/CX3htKOeB14/maxresdefault.jpg - published_at: "2022-10-12" - description: - 'The increased debate around ethical source threatens to divide the - OSS community. In his book "The Structure of Scientific Revolutions", philosopher - Thomas Kuhn posits that there are three possible solutions to a crisis like the - one we''re facing: procrastination, assimilation, or revolution. Which will we - choose as we prepare for the hard work of reconciling ethics and open source?' - video_id: CX3htKOeB14 -- title: "" - raw_title: "RailsConf 2021: Processing data at scale with Rails - Corey Martin" - speakers: - - ": Processing data at scale with Rails - Corey Martin" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/8zTbcGDEDz4/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/8zTbcGDEDz4/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/8zTbcGDEDz4/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/8zTbcGDEDz4/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/8zTbcGDEDz4/maxresdefault.jpg - published_at: "2022-10-12" - description: - More of us are building apps to make sense of massive amounts of data. - From public datasets like lobbying records and insurance data, to shared resources - like Wikipedia, to private data from IoT, there is no shortage of large datasets. - This talk covers strategies for ingesting, transforming, and storing large amounts - of data, starting with familiar tools and frameworks like ActiveRecord, Sidekiq, - and Postgres. By turning a massive data job into successively smaller ones, you - can turn a data firehose into something manageable. - video_id: 8zTbcGDEDz4 -- title: "" - raw_title: - "RailsConf 2021: Type Is Design:Fix Your UI with Better Typography and - CSS - John Athayde" - speakers: - - ": Type Is Design:Fix Your UI with Better Typography" - - CSS - John Athayde - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/1Pe7oGIKkqc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/1Pe7oGIKkqc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/1Pe7oGIKkqc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/1Pe7oGIKkqc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/1Pe7oGIKkqc/maxresdefault.jpg - published_at: "2022-10-12" - description: - The written word is the medium through which most information exchanges - hands in the tools we build. Digital letterforms can help or hinder the ability - for people to communicate and understand. We'll work through some typographic - principles and then apply them to the web with HTML and CSS for implementation. - We'll look at some of the newer OpenType features and touch on the future of digital - type, variable fonts, and more. - video_id: 1Pe7oGIKkqc -- title: "" - raw_title: - "RailsConf 2021: 10 Years In - The Realities of Running a Rails App Long - Term - Anthony Eden" - speakers: - - ": 10 Years In - The Realities of Running a Rails App Long Term - Anthony Eden" - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/BWNWOxU8KCo/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/BWNWOxU8KCo/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/BWNWOxU8KCo/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/BWNWOxU8KCo/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/BWNWOxU8KCo/maxresdefault.jpg - published_at: "2022-10-12" - description: - The first commit for the DNSimple application was performed in April - 2010, when Ruby on Rails was on version 2.3. Today DNSimple still runs Ruby on - Rails, version 6.0. The journey from of the DNSimple application to today's version - is a study in iterative development. In this talk I will walk through the evolution - of the DNSimple application as it has progressed in step with the development - of Ruby on Rails. I'll go over what's changed, what's stayed the same, what worked, - and where we went wrong. - video_id: BWNWOxU8KCo diff --git a/data/railsconf/railsconf-2021/videos.yml b/data/railsconf/railsconf-2021/videos.yml index 5195ed03..3e692245 100644 --- a/data/railsconf/railsconf-2021/videos.yml +++ b/data/railsconf/railsconf-2021/videos.yml @@ -1,446 +1,446 @@ ---- -- title: - "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't - Do" - raw_title: - "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought - I Couldn't Do" - speakers: - - Eileen Uchitelle - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/5bWE6GpN938/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/5bWE6GpN938/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/5bWE6GpN938/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/5bWE6GpN938/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/5bWE6GpN938/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: 5bWE6GpN938 -- title: "Game Show: Adam Cuppy - Syntax Error" - raw_title: "Game Show: Adam Cuppy - Syntax Error" - speakers: - - Adam Cuppy - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/vD08qTNYO9c/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/vD08qTNYO9c/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/vD08qTNYO9c/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/vD08qTNYO9c/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/vD08qTNYO9c/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: vD08qTNYO9c -- title: Hiring is Not Hazing - raw_title: "RailsConf 2021: Hiring is Not Hazing - Aja Hammerly" - speakers: - - Aja Hammerly - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ZzWRdAPjEgY/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ZzWRdAPjEgY/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ZzWRdAPjEgY/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ZzWRdAPjEgY/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ZzWRdAPjEgY/maxresdefault.jpg - published_at: "2022-09-27" - description: - Tech hiring has a bad reputation for a reason - it's usually awful. - But it doesn't have to be that way. In this talk, we'll dive into what is wrong - with many current tech hiring practices and what you can do instead. You'll learn - ways to effectively assess technical ability, what makes a great interview question, - how to be more inclusive, the pros and cons of giving homework assignments, and - much more. You'll leave with ideas to improve your interviews, and ways to influence - your company to change their hiring practices. - video_id: ZzWRdAPjEgY -- title: What Poetry Workshops Teach Us about Code Review - raw_title: - "RailsConf 2021: What Poetry Workshops Teach Us about Code Review - Andrew - Ek" - speakers: - - Andrew Ek - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/AQg_XZ5b5HU/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/AQg_XZ5b5HU/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/AQg_XZ5b5HU/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/AQg_XZ5b5HU/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/AQg_XZ5b5HU/maxresdefault.jpg - published_at: "2022-09-27" - description: - Code review is ostensibly about ensuring quality code and preventing - errors, bugs, and/or vulnerabilities from making their way to production systems. - Code review, as practiced, is often top-down, didactic, and in many cases not - particularly useful or effective. By looking at the creative writing workshop - model (and strategies for teaching and providing feedback on writing), we can - extract patterns that help us to have more effective, more efficient, and more - enjoyable code reviews. Not only can we make our code better, we can also help - our teams better understand the codebase and communicate better, and thus do more - effective and enjoyable work (with perhaps better team cohesion). - video_id: AQg_XZ5b5HU -- title: "The Trail to Scale Without Fail: Rails?" - raw_title: "RailsConf 2021: The Trail to Scale Without Fail: Rails? - Ariel Caplan" - speakers: - - Ariel Caplan - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/4F8hOebREe4/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/4F8hOebREe4/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/4F8hOebREe4/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/4F8hOebREe4/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/4F8hOebREe4/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - Let's be blunt: Most web apps aren’t so computation-heavy and won't hit scaling issues. +# --- +# - title: +# "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't +# Do" +# raw_title: +# "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought +# I Couldn't Do" +# speakers: +# - Eileen Uchitelle +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/5bWE6GpN938/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/5bWE6GpN938/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/5bWE6GpN938/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/5bWE6GpN938/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/5bWE6GpN938/maxresdefault.jpg +# published_at: "2022-09-27" +# description: "" +# video_id: 5bWE6GpN938 +# - title: "Game Show: Adam Cuppy - Syntax Error" +# raw_title: "Game Show: Adam Cuppy - Syntax Error" +# speakers: +# - Adam Cuppy +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/vD08qTNYO9c/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/vD08qTNYO9c/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/vD08qTNYO9c/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/vD08qTNYO9c/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/vD08qTNYO9c/maxresdefault.jpg +# published_at: "2022-09-27" +# description: "" +# video_id: vD08qTNYO9c +# - title: Hiring is Not Hazing +# raw_title: "RailsConf 2021: Hiring is Not Hazing - Aja Hammerly" +# speakers: +# - Aja Hammerly +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/ZzWRdAPjEgY/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/ZzWRdAPjEgY/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/ZzWRdAPjEgY/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/ZzWRdAPjEgY/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/ZzWRdAPjEgY/maxresdefault.jpg +# published_at: "2022-09-27" +# description: +# Tech hiring has a bad reputation for a reason - it's usually awful. +# But it doesn't have to be that way. In this talk, we'll dive into what is wrong +# with many current tech hiring practices and what you can do instead. You'll learn +# ways to effectively assess technical ability, what makes a great interview question, +# how to be more inclusive, the pros and cons of giving homework assignments, and +# much more. You'll leave with ideas to improve your interviews, and ways to influence +# your company to change their hiring practices. +# video_id: ZzWRdAPjEgY +# - title: What Poetry Workshops Teach Us about Code Review +# raw_title: +# "RailsConf 2021: What Poetry Workshops Teach Us about Code Review - Andrew +# Ek" +# speakers: +# - Andrew Ek +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/AQg_XZ5b5HU/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/AQg_XZ5b5HU/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/AQg_XZ5b5HU/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/AQg_XZ5b5HU/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/AQg_XZ5b5HU/maxresdefault.jpg +# published_at: "2022-09-27" +# description: +# Code review is ostensibly about ensuring quality code and preventing +# errors, bugs, and/or vulnerabilities from making their way to production systems. +# Code review, as practiced, is often top-down, didactic, and in many cases not +# particularly useful or effective. By looking at the creative writing workshop +# model (and strategies for teaching and providing feedback on writing), we can +# extract patterns that help us to have more effective, more efficient, and more +# enjoyable code reviews. Not only can we make our code better, we can also help +# our teams better understand the codebase and communicate better, and thus do more +# effective and enjoyable work (with perhaps better team cohesion). +# video_id: AQg_XZ5b5HU +# - title: "The Trail to Scale Without Fail: Rails?" +# raw_title: "RailsConf 2021: The Trail to Scale Without Fail: Rails? - Ariel Caplan" +# speakers: +# - Ariel Caplan +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/4F8hOebREe4/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/4F8hOebREe4/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/4F8hOebREe4/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/4F8hOebREe4/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/4F8hOebREe4/maxresdefault.jpg +# published_at: "2022-09-27" +# description: |- +# Let's be blunt: Most web apps aren’t so computation-heavy and won't hit scaling issues. - What if yours is the exception? Can Rails handle it? +# What if yours is the exception? Can Rails handle it? - Cue Exhibit A: Cloudinary, which serves billions of image and video requests daily, including on-the-fly edits, QUICKLY, running on Rails since Day 1. Case closed? - https://cloudinary.com/ +# Cue Exhibit A: Cloudinary, which serves billions of image and video requests daily, including on-the-fly edits, QUICKLY, running on Rails since Day 1. Case closed? +# https://cloudinary.com/ - Not so fast. Beyond the app itself, we needed creative solutions to ensure that, as traffic rises and falls at the speed of the internet, we handle the load gracefully, and no customer overwhelms the system. +# Not so fast. Beyond the app itself, we needed creative solutions to ensure that, as traffic rises and falls at the speed of the internet, we handle the load gracefully, and no customer overwhelms the system. - The real question isn't whether Rails is up to the challenge, but rather: Are you? - video_id: 4F8hOebREe4 -- title: Effective Data Synchronization between Rails Microservices - raw_title: - "RailsConf 2021: Effective Data Synchronization between Rails Microservices - - Austin Story" - speakers: - - Austin Story - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/1qrWYcdnrik/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/1qrWYcdnrik/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/1qrWYcdnrik/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/1qrWYcdnrik/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/1qrWYcdnrik/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - Data consistency in a microservice architecture can be a challenge, especially when your team grows to include data producers from data engineers, analysts, and others. +# The real question isn't whether Rails is up to the challenge, but rather: Are you? +# video_id: 4F8hOebREe4 +# - title: Effective Data Synchronization between Rails Microservices +# raw_title: +# "RailsConf 2021: Effective Data Synchronization between Rails Microservices +# - Austin Story" +# speakers: +# - Austin Story +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/1qrWYcdnrik/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/1qrWYcdnrik/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/1qrWYcdnrik/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/1qrWYcdnrik/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/1qrWYcdnrik/maxresdefault.jpg +# published_at: "2022-09-27" +# description: |- +# Data consistency in a microservice architecture can be a challenge, especially when your team grows to include data producers from data engineers, analysts, and others. - How do we enable external processes to load data onto data stores owned by several applications while honoring necessary Rails callbacks? How do we ensure data consistency across the stack? +# How do we enable external processes to load data onto data stores owned by several applications while honoring necessary Rails callbacks? How do we ensure data consistency across the stack? - Over the last five years, Doximity has built an elegant system that allows dozens of teams across our organization to independently load transformed data through our rich domain models while maintaining consistency. I'd like to show you how! - video_id: 1qrWYcdnrik -- title: Self-Care on Rails - raw_title: "RailsConf 2021: Self-Care on Rails - Ben Greenberg" - speakers: - - Ben Greenberg - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/7uuRV17e8gg/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/7uuRV17e8gg/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/7uuRV17e8gg/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/7uuRV17e8gg/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/7uuRV17e8gg/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - This past year has been one of the most challenging years in recent memory. The pandemic has taken a toll, including on children. +# Over the last five years, Doximity has built an elegant system that allows dozens of teams across our organization to independently load transformed data through our rich domain models while maintaining consistency. I'd like to show you how! +# video_id: 1qrWYcdnrik +# - title: Self-Care on Rails +# raw_title: "RailsConf 2021: Self-Care on Rails - Ben Greenberg" +# speakers: +# - Ben Greenberg +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/7uuRV17e8gg/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/7uuRV17e8gg/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/7uuRV17e8gg/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/7uuRV17e8gg/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/7uuRV17e8gg/maxresdefault.jpg +# published_at: "2022-09-27" +# description: |- +# This past year has been one of the most challenging years in recent memory. The pandemic has taken a toll, including on children. - Adults used their professional skills to help make the year a little better for the kids in our lives: Therapists counseled, entertainers delighted, teachers educated... and Rails developers developed! +# Adults used their professional skills to help make the year a little better for the kids in our lives: Therapists counseled, entertainers delighted, teachers educated... and Rails developers developed! - In this talk, I'll share the apps I built on Rails that helped my kids and me cope, celebrate and persevere through the year. +# In this talk, I'll share the apps I built on Rails that helped my kids and me cope, celebrate and persevere through the year. - In 2020, tech was pivotal in keeping us going, and for my kids, Rails made the year a little more manageable. - video_id: 7uuRV17e8gg -- title: Techniques for Uncertain Times - raw_title: - "RailsConf 2021: Debugging: Techniques for Uncertain Times - Chelsea - Troy" - speakers: - - Chelsea Troy - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/yhogm8HAd3o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/yhogm8HAd3o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/yhogm8HAd3o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/yhogm8HAd3o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/yhogm8HAd3o/maxresdefault.jpg - published_at: "2022-09-27" - description: |- - When we learn to code, we focus on writing features while we understand what the code is doing. When we debug, we don’t understand what our code is doing. The less we understand, the less likely it is that our usual programming mindset—the one we use for feature development—can solve the problem. +# In 2020, tech was pivotal in keeping us going, and for my kids, Rails made the year a little more manageable. +# video_id: 7uuRV17e8gg +# - title: Techniques for Uncertain Times +# raw_title: +# "RailsConf 2021: Debugging: Techniques for Uncertain Times - Chelsea +# Troy" +# speakers: +# - Chelsea Troy +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/yhogm8HAd3o/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/yhogm8HAd3o/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/yhogm8HAd3o/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/yhogm8HAd3o/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/yhogm8HAd3o/maxresdefault.jpg +# published_at: "2022-09-27" +# description: |- +# When we learn to code, we focus on writing features while we understand what the code is doing. When we debug, we don’t understand what our code is doing. The less we understand, the less likely it is that our usual programming mindset—the one we use for feature development—can solve the problem. - It turns out, the skills that make us calmer, more effective debuggers also equip us to deal with rapid, substantial changes to our lives. +# It turns out, the skills that make us calmer, more effective debuggers also equip us to deal with rapid, substantial changes to our lives. - Whether you’re uncertain about what’s going on in your code, your life, or both, in this talk you’ll learn debugging techniques to get you moving forward safely. - video_id: yhogm8HAd3o -- title: Realtime Apps with Hotwire & ActionMailbox - raw_title: "RailsConf 2021: Realtime Apps with Hotwire & ActionMailbox - Chris Oliver" - speakers: - - Chris Oliver - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ItB848u3QR0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ItB848u3QR0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ItB848u3QR0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ItB848u3QR0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ItB848u3QR0/maxresdefault.jpg - published_at: "2022-09-27" - description: Realtime Apps with Hotwire & ActionMailbox - Chris Oliver - video_id: ItB848u3QR0 -- title: "Designing APIs: Less Data is More" - raw_title: "RailsConf 2021: Designing APIs: Less Data is More - Damir Svrtan" - speakers: - - Damir Svrtan - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/GbKOajKO46Y/default.jpg - thumbnail_md: https://i.ytimg.com/vi/GbKOajKO46Y/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/GbKOajKO46Y/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/GbKOajKO46Y/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - thumbnail_sm: |- - https://i.ytimg.com/vi/GbKOajKO46Y/mqdefault.jpg Often developers design APIs that expose more than is needed - unnecessary fields, redundant relationships, and endpoints that no one asked for. - These kinds of practices later on introduce communication overhead, extra maintenance costs, negative performance impacts, and waste time that could have been spent better otherwise. - We'll walk through how to design minimal APIs that are straight forward to use, and that are exactly what our consumers need! - video_id: GbKOajKO46Y -- title: Lightning Talks - raw_title: "RailsConf 2021: Lightning Talks: Steffani Brasil" - speakers: - - Steffani Brasil - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/H6MPMtf-Hd0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/H6MPMtf-Hd0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/H6MPMtf-Hd0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/H6MPMtf-Hd0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/H6MPMtf-Hd0/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: H6MPMtf-Hd0 -- title: "Keynote: Chatting with David" - raw_title: "RailsConf 2021: Keynote: Chatting with David" - speakers: - - David Heinemeier Hansson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/FzK0iHyQR0k/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/FzK0iHyQR0k/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/FzK0iHyQR0k/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/FzK0iHyQR0k/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/FzK0iHyQR0k/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: FzK0iHyQR0k -- title: "Keynote: Hardware/Software Co-design: The Coming Golden Age" - raw_title: - "RailsConf 2021_ Keynote: Bryan Cantrill - Hardware/Software Co-design: - The Coming Golden Age" - speakers: - - Bryan Cantrill - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/jSE9fXgiqig/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/jSE9fXgiqig/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/jSE9fXgiqig/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/jSE9fXgiqig/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/jSE9fXgiqig/maxresdefault.jpg - published_at: "2022-09-27" - description: "" - video_id: jSE9fXgiqig -- title: " Profiling to make your Rails app faster" - raw_title: "RailsConf 2021: Profiling to make your Rails app faster - Gannon McGibbon" - speakers: - - Gannon McGibbon - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/97d3f8r2qZ8/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/97d3f8r2qZ8/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/97d3f8r2qZ8/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/97d3f8r2qZ8/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/97d3f8r2qZ8/maxresdefault.jpg - published_at: "2022-09-28" - description: - As you grow your Rails app, is it starting to slow down? Let’s talk - about how to identify slow code, speed it up, and verify positive change within - your application. In this talk, you’ll learn about rack-mini-profiler, benchmark/ips, - and performance optimization best practices. - video_id: 97d3f8r2qZ8 -- title: Why I'm Closing Your GitHub Issue - raw_title: "RailsConf 2021: Why I'm Closing Your GitHub Issue - Henning Koch" - speakers: - - Henning Koch - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/veSRJUb8yuI/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/veSRJUb8yuI/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/veSRJUb8yuI/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/veSRJUb8yuI/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/veSRJUb8yuI/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Do you feel panic when receiving a notification from your open-source project? Is a backlog of unanswered issues wearing you down? +# Whether you’re uncertain about what’s going on in your code, your life, or both, in this talk you’ll learn debugging techniques to get you moving forward safely. +# video_id: yhogm8HAd3o +# - title: Realtime Apps with Hotwire & ActionMailbox +# raw_title: "RailsConf 2021: Realtime Apps with Hotwire & ActionMailbox - Chris Oliver" +# speakers: +# - Chris Oliver +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/ItB848u3QR0/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/ItB848u3QR0/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/ItB848u3QR0/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/ItB848u3QR0/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/ItB848u3QR0/maxresdefault.jpg +# published_at: "2022-09-27" +# description: Realtime Apps with Hotwire & ActionMailbox - Chris Oliver +# video_id: ItB848u3QR0 +# - title: "Designing APIs: Less Data is More" +# raw_title: "RailsConf 2021: Designing APIs: Less Data is More - Damir Svrtan" +# speakers: +# - Damir Svrtan +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/GbKOajKO46Y/default.jpg +# thumbnail_md: https://i.ytimg.com/vi/GbKOajKO46Y/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/GbKOajKO46Y/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/GbKOajKO46Y/maxresdefault.jpg +# published_at: "2022-09-27" +# description: "" +# thumbnail_sm: |- +# https://i.ytimg.com/vi/GbKOajKO46Y/mqdefault.jpg Often developers design APIs that expose more than is needed - unnecessary fields, redundant relationships, and endpoints that no one asked for. +# These kinds of practices later on introduce communication overhead, extra maintenance costs, negative performance impacts, and waste time that could have been spent better otherwise. +# We'll walk through how to design minimal APIs that are straight forward to use, and that are exactly what our consumers need! +# video_id: GbKOajKO46Y +# - title: Lightning Talks +# raw_title: "RailsConf 2021: Lightning Talks: Steffani Brasil" +# speakers: +# - Steffani Brasil +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/H6MPMtf-Hd0/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/H6MPMtf-Hd0/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/H6MPMtf-Hd0/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/H6MPMtf-Hd0/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/H6MPMtf-Hd0/maxresdefault.jpg +# published_at: "2022-09-27" +# description: "" +# video_id: H6MPMtf-Hd0 +# - title: "Keynote: Chatting with David" +# raw_title: "RailsConf 2021: Keynote: Chatting with David" +# speakers: +# - David Heinemeier Hansson +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/FzK0iHyQR0k/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/FzK0iHyQR0k/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/FzK0iHyQR0k/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/FzK0iHyQR0k/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/FzK0iHyQR0k/maxresdefault.jpg +# published_at: "2022-09-27" +# description: "" +# video_id: FzK0iHyQR0k +# - title: "Keynote: Hardware/Software Co-design: The Coming Golden Age" +# raw_title: +# "RailsConf 2021_ Keynote: Bryan Cantrill - Hardware/Software Co-design: +# The Coming Golden Age" +# speakers: +# - Bryan Cantrill +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/jSE9fXgiqig/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/jSE9fXgiqig/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/jSE9fXgiqig/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/jSE9fXgiqig/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/jSE9fXgiqig/maxresdefault.jpg +# published_at: "2022-09-27" +# description: "" +# video_id: jSE9fXgiqig +# - title: " Profiling to make your Rails app faster" +# raw_title: "RailsConf 2021: Profiling to make your Rails app faster - Gannon McGibbon" +# speakers: +# - Gannon McGibbon +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/97d3f8r2qZ8/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/97d3f8r2qZ8/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/97d3f8r2qZ8/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/97d3f8r2qZ8/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/97d3f8r2qZ8/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# As you grow your Rails app, is it starting to slow down? Let’s talk +# about how to identify slow code, speed it up, and verify positive change within +# your application. In this talk, you’ll learn about rack-mini-profiler, benchmark/ips, +# and performance optimization best practices. +# video_id: 97d3f8r2qZ8 +# - title: Why I'm Closing Your GitHub Issue +# raw_title: "RailsConf 2021: Why I'm Closing Your GitHub Issue - Henning Koch" +# speakers: +# - Henning Koch +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/veSRJUb8yuI/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/veSRJUb8yuI/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/veSRJUb8yuI/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/veSRJUb8yuI/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/veSRJUb8yuI/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Do you feel panic when receiving a notification from your open-source project? Is a backlog of unanswered issues wearing you down? - You wanted to put something out there for others to use, but now it feels like a second job. Keep stressing out like this and you will burn out and leave another project abandoned on GitHub. +# You wanted to put something out there for others to use, but now it feels like a second job. Keep stressing out like this and you will burn out and leave another project abandoned on GitHub. - In my talk we will rediscover your personal reasons for doing open source in the first place. We will practice dealing with issues effectively to free up time for the work that motivates you. - video_id: veSRJUb8yuI -- title: Hotwire Demystified - raw_title: "RailsConf 2021: Hotwire Demystified - Jamie Gaskins" - speakers: - - Jamie Gaskins - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/gllwoSoD5mk/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/gllwoSoD5mk/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/gllwoSoD5mk/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/gllwoSoD5mk/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/gllwoSoD5mk/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - DHH stunned the Rails world with his announcement of Hotwire from Basecamp. Even folks in the non-Rails web-development community took notice. +# In my talk we will rediscover your personal reasons for doing open source in the first place. We will practice dealing with issues effectively to free up time for the work that motivates you. +# video_id: veSRJUb8yuI +# - title: Hotwire Demystified +# raw_title: "RailsConf 2021: Hotwire Demystified - Jamie Gaskins" +# speakers: +# - Jamie Gaskins +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/gllwoSoD5mk/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/gllwoSoD5mk/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/gllwoSoD5mk/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/gllwoSoD5mk/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/gllwoSoD5mk/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# DHH stunned the Rails world with his announcement of Hotwire from Basecamp. Even folks in the non-Rails web-development community took notice. - In this talk, you will learn about the building blocks of Hotwire and how they compose to create a streamlined development experience while writing little to no JavaScript. - video_id: gllwoSoD5mk -- title: Engineer in Diversity & Inclusion - Tangible Steps for Teams - raw_title: - "RailsConf 2021: Engineer in Diversity & Inclusion - Tangible Steps for - Teams - Jeannie Evans" - speakers: - - Jeannie Evans - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/GRl5EWXM96o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/GRl5EWXM96o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/GRl5EWXM96o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/GRl5EWXM96o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/GRl5EWXM96o/maxresdefault.jpg - published_at: "2022-09-28" - description: - When it comes to implementing Diversity, Equity, and Inclusion (“DEI”), - where do software engineers fit in? The technology we build is used by diverse - groups of people, so our role is to build platforms for that diversity. At this - talk, you will learn why and how to make DEI a priority in your work with tangible - steps, goals, and examples. While the scope of these topics can feel overwhelming, - you will leave this talk empowered with the tools to attend your next standup - or write that next line of code as a better community member, ally, and software - engineer. - video_id: GRl5EWXM96o -- title: A day in the life of a Ruby object - raw_title: "RailsConf 2021: A Day in the Life of a Ruby Object - Jemma Issroff" - speakers: - - Jemma Issroff - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/NGOuPxqoPOs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/NGOuPxqoPOs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/NGOuPxqoPOs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/NGOuPxqoPOs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/NGOuPxqoPOs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Your code creates millions of Ruby objects every day, but do you actually know what happens to these objects? +# In this talk, you will learn about the building blocks of Hotwire and how they compose to create a streamlined development experience while writing little to no JavaScript. +# video_id: gllwoSoD5mk +# - title: Engineer in Diversity & Inclusion - Tangible Steps for Teams +# raw_title: +# "RailsConf 2021: Engineer in Diversity & Inclusion - Tangible Steps for +# Teams - Jeannie Evans" +# speakers: +# - Jeannie Evans +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/GRl5EWXM96o/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/GRl5EWXM96o/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/GRl5EWXM96o/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/GRl5EWXM96o/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/GRl5EWXM96o/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# When it comes to implementing Diversity, Equity, and Inclusion (“DEI”), +# where do software engineers fit in? The technology we build is used by diverse +# groups of people, so our role is to build platforms for that diversity. At this +# talk, you will learn why and how to make DEI a priority in your work with tangible +# steps, goals, and examples. While the scope of these topics can feel overwhelming, +# you will leave this talk empowered with the tools to attend your next standup +# or write that next line of code as a better community member, ally, and software +# engineer. +# video_id: GRl5EWXM96o +# - title: A day in the life of a Ruby object +# raw_title: "RailsConf 2021: A Day in the Life of a Ruby Object - Jemma Issroff" +# speakers: +# - Jemma Issroff +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/NGOuPxqoPOs/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/NGOuPxqoPOs/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/NGOuPxqoPOs/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/NGOuPxqoPOs/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/NGOuPxqoPOs/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Your code creates millions of Ruby objects every day, but do you actually know what happens to these objects? - In this talk, we’ll walk through the lifespan of a Ruby object from birth to the grave: from .new to having its slot reallocated. We’ll discuss object creation, the Ruby object space, and an overview of garbage collection. +# In this talk, we’ll walk through the lifespan of a Ruby object from birth to the grave: from .new to having its slot reallocated. We’ll discuss object creation, the Ruby object space, and an overview of garbage collection. - Along the way, we’ll learn how to make our apps more performant, consume less memory, and have fewer memory leaks. We’ll learn specific tips and pointers for how to see what the garbage collector is doing and how to take advantage of the strategies it employs. - video_id: NGOuPxqoPOs -- title: Stimulating Events - raw_title: "RailsConf 2021: Stimulating Events - Jesse Spevack" - speakers: - - Jesse Spevack - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/XM9A53WUnN4/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/XM9A53WUnN4/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/XM9A53WUnN4/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/XM9A53WUnN4/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/XM9A53WUnN4/maxresdefault.jpg - published_at: "2022-09-28" - description: - Stimulus JS bills itself as a framework with modest ambitions that - fits nicely into the Rails as "omakase" paradigm. At its core, Stimulus gives - Rails developers a new set of low effort, high impact tools that can add much - more than the sheen of modernization to an everyday Rails application. Join me - as I live code three Stimulus JS examples that will help you save time, impress - your friends, and win new clients and opportunities. This will be great for JS - newbies and experts alike along with anyone interested in the potential schadenfreude - that watching me live code will likely elicit. - video_id: XM9A53WUnN4 -- title: Strategic Storytelling - raw_title: "RailsConf 2021: Strategic Storytelling - Jessica Hilt" - speakers: - - Jessica Hilt - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/rTEbYehXhdk/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/rTEbYehXhdk/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/rTEbYehXhdk/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/rTEbYehXhdk/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/rTEbYehXhdk/maxresdefault.jpg - published_at: "2022-09-28" - description: - We come from a world of facts and metrics so obviously the people with - the most data wins, right? Engineering comes from a place of logic but telling - the story behind that information is how the best leaders get buy-in and support - for their plans. In this talk, we'll examine the how and why of storytelling, - develop a framework of putting an idea into a narrative, and what tools you’ll - need to complement a good story. By the end, you’ll be able to break out a story - whenever you need to generate excitement, find advocates, or more budget. Is there - anything more irresistible than a good story? - video_id: rTEbYehXhdk -- title: ViewComponents in the Real World - raw_title: "RailsConf 2021: ViewComponents in the Real World - Joel Hawksley" - speakers: - - Joel Hawksley - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/xabosHqjOlM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/xabosHqjOlM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/xabosHqjOlM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/xabosHqjOlM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/xabosHqjOlM/maxresdefault.jpg - published_at: "2022-09-28" - description: - With the release of 6.1, Rails added support for rendering objects - that respond to render_in, a feature extracted from the GitHub application. This - change enabled the development of ViewComponent, a framework for building reusable, - testable & encapsulated view components. In this talk, we’ll share what we’ve - learned scaling to hundreds of ViewComponents in our application, open sourcing - a library of ViewComponents, and nurturing a thriving community around the project, - both internally and externally. - video_id: xabosHqjOlM -- title: Beautiful reactive web UIs, Ruby and you - raw_title: "RailsConf 2021: Beautiful reactive web UIs, Ruby and you - Jonas Jabari" - speakers: - - Jonas Jabari - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/VhIXLNIfk5s/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/VhIXLNIfk5s/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/VhIXLNIfk5s/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/VhIXLNIfk5s/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/VhIXLNIfk5s/maxresdefault.jpg - published_at: "2022-09-28" - description: - A lot of life changing things have happened in 2020. And I'm obviously - speaking about Stimulus Reflex and Hotwire and how we as Rails devs are finally - enabled to skip a lot of JS while implementing reactive web UIs. But what if I - told you, there's room for even more developer happiness? Imagine crafting beautiful - UIs in pure Ruby, utilizing a library reaching from simple UI components representing - basic HTML tags over styled UI concepts based on Bootstrap to something like a - collection, rendering reactive data sets. Beautiful, reactive web UIs implemented - in pure Ruby are waiting for you! - video_id: VhIXLNIfk5s -- title: "Refactoring: A developer's guide to writing well" - raw_title: "RailsConf 2021: Refactoring: A developer's guide to writing well - - Jordan Raine" - speakers: - - Jordan Raine - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/jfK5miM5ZMs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/jfK5miM5ZMs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/jfK5miM5ZMs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/jfK5miM5ZMs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/jfK5miM5ZMs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - As a developer, you're asked to write an awful lot: commit messages, code review, achitecture docs, pull request write-ups, and more. When you write, you have the power to teach and inspire your teammates—the reader—or leave them confused. Like refactoring, it's a skill that can elevate you as a developer but it is often ignored. +# Along the way, we’ll learn how to make our apps more performant, consume less memory, and have fewer memory leaks. We’ll learn specific tips and pointers for how to see what the garbage collector is doing and how to take advantage of the strategies it employs. +# video_id: NGOuPxqoPOs +# - title: Stimulating Events +# raw_title: "RailsConf 2021: Stimulating Events - Jesse Spevack" +# speakers: +# - Jesse Spevack +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/XM9A53WUnN4/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/XM9A53WUnN4/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/XM9A53WUnN4/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/XM9A53WUnN4/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/XM9A53WUnN4/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# Stimulus JS bills itself as a framework with modest ambitions that +# fits nicely into the Rails as "omakase" paradigm. At its core, Stimulus gives +# Rails developers a new set of low effort, high impact tools that can add much +# more than the sheen of modernization to an everyday Rails application. Join me +# as I live code three Stimulus JS examples that will help you save time, impress +# your friends, and win new clients and opportunities. This will be great for JS +# newbies and experts alike along with anyone interested in the potential schadenfreude +# that watching me live code will likely elicit. +# video_id: XM9A53WUnN4 +# - title: Strategic Storytelling +# raw_title: "RailsConf 2021: Strategic Storytelling - Jessica Hilt" +# speakers: +# - Jessica Hilt +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/rTEbYehXhdk/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/rTEbYehXhdk/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/rTEbYehXhdk/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/rTEbYehXhdk/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/rTEbYehXhdk/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# We come from a world of facts and metrics so obviously the people with +# the most data wins, right? Engineering comes from a place of logic but telling +# the story behind that information is how the best leaders get buy-in and support +# for their plans. In this talk, we'll examine the how and why of storytelling, +# develop a framework of putting an idea into a narrative, and what tools you’ll +# need to complement a good story. By the end, you’ll be able to break out a story +# whenever you need to generate excitement, find advocates, or more budget. Is there +# anything more irresistible than a good story? +# video_id: rTEbYehXhdk +# - title: ViewComponents in the Real World +# raw_title: "RailsConf 2021: ViewComponents in the Real World - Joel Hawksley" +# speakers: +# - Joel Hawksley +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/xabosHqjOlM/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/xabosHqjOlM/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/xabosHqjOlM/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/xabosHqjOlM/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/xabosHqjOlM/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# With the release of 6.1, Rails added support for rendering objects +# that respond to render_in, a feature extracted from the GitHub application. This +# change enabled the development of ViewComponent, a framework for building reusable, +# testable & encapsulated view components. In this talk, we’ll share what we’ve +# learned scaling to hundreds of ViewComponents in our application, open sourcing +# a library of ViewComponents, and nurturing a thriving community around the project, +# both internally and externally. +# video_id: xabosHqjOlM +# - title: Beautiful reactive web UIs, Ruby and you +# raw_title: "RailsConf 2021: Beautiful reactive web UIs, Ruby and you - Jonas Jabari" +# speakers: +# - Jonas Jabari +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/VhIXLNIfk5s/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/VhIXLNIfk5s/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/VhIXLNIfk5s/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/VhIXLNIfk5s/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/VhIXLNIfk5s/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# A lot of life changing things have happened in 2020. And I'm obviously +# speaking about Stimulus Reflex and Hotwire and how we as Rails devs are finally +# enabled to skip a lot of JS while implementing reactive web UIs. But what if I +# told you, there's room for even more developer happiness? Imagine crafting beautiful +# UIs in pure Ruby, utilizing a library reaching from simple UI components representing +# basic HTML tags over styled UI concepts based on Bootstrap to something like a +# collection, rendering reactive data sets. Beautiful, reactive web UIs implemented +# in pure Ruby are waiting for you! +# video_id: VhIXLNIfk5s +# - title: "Refactoring: A developer's guide to writing well" +# raw_title: "RailsConf 2021: Refactoring: A developer's guide to writing well - +# Jordan Raine" +# speakers: +# - Jordan Raine +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/jfK5miM5ZMs/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/jfK5miM5ZMs/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/jfK5miM5ZMs/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/jfK5miM5ZMs/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/jfK5miM5ZMs/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# As a developer, you're asked to write an awful lot: commit messages, code review, achitecture docs, pull request write-ups, and more. When you write, you have the power to teach and inspire your teammates—the reader—or leave them confused. Like refactoring, it's a skill that can elevate you as a developer but it is often ignored. - In this session, we'll use advice from fiction authors, book editors, and technical writers to take a pull request write-up from unhelpful to great. Along the way, you'll learn practical tips to make your code, ideas, and work more clear others. - video_id: jfK5miM5ZMs -- title: '"Junior" Devs are the Solution to Many of Your Problems' - raw_title: - 'RailsConf 2021: "Junior" Devs are the Solution to Many of Your Problems - - Josh Thompson' - speakers: - - Josh Thompson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/SQh-wqmuFxg/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/SQh-wqmuFxg/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/SQh-wqmuFxg/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/SQh-wqmuFxg/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/SQh-wqmuFxg/maxresdefault.jpg - published_at: "2022-09-28" - description: - "Our industry telegraphs: \"We don't want (or know how to handle) 'junior - developers*'.\"\n\nEarly-career Software Developers, or ECSDs, have incredible - value if their team/company/manager doesn't \"lock themselves out\" of accessing - this value.\n\nWhoever figures out how to embrace the value of ECSDs will outperform - their cohort. \U0001F4C8\U0001F4B0\U0001F917\n\nI will speak to:\n\nExecutives - (CTOs/Eng VPs)\nSenior Developers/Dev Managers\nECSDs themselves\nAbout how to:\n\nIdentify - which problems are solvable because of ECSDs\nGet buy-in for these problem/solution - sets\nStart solving these problems with ECSDs" - video_id: SQh-wqmuFxg +# In this session, we'll use advice from fiction authors, book editors, and technical writers to take a pull request write-up from unhelpful to great. Along the way, you'll learn practical tips to make your code, ideas, and work more clear others. +# video_id: jfK5miM5ZMs +# - title: '"Junior" Devs are the Solution to Many of Your Problems' +# raw_title: +# 'RailsConf 2021: "Junior" Devs are the Solution to Many of Your Problems +# - Josh Thompson' +# speakers: +# - Josh Thompson +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/SQh-wqmuFxg/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/SQh-wqmuFxg/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/SQh-wqmuFxg/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/SQh-wqmuFxg/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/SQh-wqmuFxg/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# "Our industry telegraphs: \"We don't want (or know how to handle) 'junior +# developers*'.\"\n\nEarly-career Software Developers, or ECSDs, have incredible +# value if their team/company/manager doesn't \"lock themselves out\" of accessing +# this value.\n\nWhoever figures out how to embrace the value of ECSDs will outperform +# their cohort. \U0001F4C8\U0001F4B0\U0001F917\n\nI will speak to:\n\nExecutives +# (CTOs/Eng VPs)\nSenior Developers/Dev Managers\nECSDs themselves\nAbout how to:\n\nIdentify +# which problems are solvable because of ECSDs\nGet buy-in for these problem/solution +# sets\nStart solving these problems with ECSDs" +# video_id: SQh-wqmuFxg - title: Exploring Real-time Computer Vision Using ActionCable raw_title: "RailsConf 2021: Exploring Real-time Computer Vision Using ActionCable @@ -464,839 +464,839 @@ understanding of what tools to use and where to start if you’re interested in using ML or CV with your Rails project! video_id: VsTLXiv0H-g -- title: "Implicit to Explicit: Decoding Ruby's Magical Syntax" - raw_title: - "RailsConf 2021: Implicit to Explicit: Decoding Ruby's Magical Syntax - - Justin Gordon" - speakers: - - Justin Gordon - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/9ubmyfEdlMs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/9ubmyfEdlMs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/9ubmyfEdlMs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/9ubmyfEdlMs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/9ubmyfEdlMs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Does a Rails model or config file seem like a magical syntax? Or can you read any Ruby code and understand it as the interpreter does? +# - title: "Implicit to Explicit: Decoding Ruby's Magical Syntax" +# raw_title: +# "RailsConf 2021: Implicit to Explicit: Decoding Ruby's Magical Syntax +# - Justin Gordon" +# speakers: +# - Justin Gordon +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/9ubmyfEdlMs/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/9ubmyfEdlMs/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/9ubmyfEdlMs/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/9ubmyfEdlMs/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/9ubmyfEdlMs/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Does a Rails model or config file seem like a magical syntax? Or can you read any Ruby code and understand it as the interpreter does? - Ruby's implicitness makes it great for readability and DSLs. But that also gives Ruby a "magical" syntax compared to JavaScript. +# Ruby's implicitness makes it great for readability and DSLs. But that also gives Ruby a "magical" syntax compared to JavaScript. - In this talk, let's convert the implicit to explicit in some familiar Rails code. What was "magic" will become simple, understandable code. +# In this talk, let's convert the implicit to explicit in some familiar Rails code. What was "magic" will become simple, understandable code. - After this talk, you'll see Ruby through a new lens, and your Ruby reading comprehension will improve. As a bonus, I'll share a few Pry tips to demystify any Ruby code. - video_id: 9ubmyfEdlMs -- title: The History of Making Mistakes - raw_title: "RailsConf 2021: The History of Making Mistakes - Kerri Miller" - speakers: - - Kerri Miller - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ecUDTUihlPc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ecUDTUihlPc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ecUDTUihlPc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ecUDTUihlPc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ecUDTUihlPc/maxresdefault.jpg - published_at: "2022-09-28" - description: - We sometimes say “computers were a mistake”, as if clay tablets were - any better. From the very beginning, humans have been screwing up, and it’s only - gotten worse from there. Each time, though, we’ve learned something and moved - forward. Sometimes we forget those lessons, so let’s look through the lens of - software engineering at a few of these oopsie-daisies, and see the common point - of failure - humans themselves. - video_id: ecUDTUihlPc -- title: How to teach your code to describe its own architecture - raw_title: - "RailsConf 2021: How to teach your code to describe its own architecture - - Kevin Gilpin" - speakers: - - Kevin Gilpin - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/SZHFnRkAcU0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/SZHFnRkAcU0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/SZHFnRkAcU0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/SZHFnRkAcU0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/SZHFnRkAcU0/maxresdefault.jpg - published_at: "2022-09-28" - description: - Architecture documents and diagrams are always out of date. Unfortunately, - lack of accurate, up-to-date information about software architecture is really - harmful to developer productivity and happiness. Historically, developers have - overcome other frustrations by making code the “source of truth”, and then using - the code as a foundation for automated tools and processes. In this talk, I will - describe how to automatically generate docs and diagrams of code architecture, - and discuss how to use to use this information to improve code understanding and - code quality. - video_id: SZHFnRkAcU0 -- title: High availability by offloading work - raw_title: "RailsConf 2021: High availability by offloading work - Kerstin Puschke" - speakers: - - Kerstin Puschke - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/AWe70zT2z_c/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/AWe70zT2z_c/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/AWe70zT2z_c/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/AWe70zT2z_c/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/AWe70zT2z_c/maxresdefault.jpg - published_at: "2022-09-28" - description: - "Unpredictable traffic spikes, slow requests to a third party, and - time-consuming tasks like image processing shouldn’t degrade the user facing availability - of an application. In this talk, you’ll learn about different approaches to maintain - high availability by offloading work into the background: background jobs, message - oriented middleware based on queues, and event logs like Kafka. I’ll explain their - foundations and how they compare to each other, helping you to choose the right - tool for the job." - video_id: AWe70zT2z_c -- title: "Engineering MBA: Be The Boss of Your Own Work" - raw_title: - "RailsConf 2021: Engineering MBA: Be The Boss of Your Own Work - Kevin - Murphy" - speakers: - - Kevin Murphy - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/HMppLTUyewE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/HMppLTUyewE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/HMppLTUyewE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/HMppLTUyewE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/HMppLTUyewE/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Improve your work as a developer with an introduction to strategic planning, situational leadership, and process management. No balance sheets or income statements here; join me to learn the MBA skills valuable to developers without the opportunity costs of lost wages or additional student loans. +# After this talk, you'll see Ruby through a new lens, and your Ruby reading comprehension will improve. As a bonus, I'll share a few Pry tips to demystify any Ruby code. +# video_id: 9ubmyfEdlMs +# - title: The History of Making Mistakes +# raw_title: "RailsConf 2021: The History of Making Mistakes - Kerri Miller" +# speakers: +# - Kerri Miller +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/ecUDTUihlPc/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/ecUDTUihlPc/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/ecUDTUihlPc/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/ecUDTUihlPc/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/ecUDTUihlPc/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# We sometimes say “computers were a mistake”, as if clay tablets were +# any better. From the very beginning, humans have been screwing up, and it’s only +# gotten worse from there. Each time, though, we’ve learned something and moved +# forward. Sometimes we forget those lessons, so let’s look through the lens of +# software engineering at a few of these oopsie-daisies, and see the common point +# of failure - humans themselves. +# video_id: ecUDTUihlPc +# - title: How to teach your code to describe its own architecture +# raw_title: +# "RailsConf 2021: How to teach your code to describe its own architecture +# - Kevin Gilpin" +# speakers: +# - Kevin Gilpin +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/SZHFnRkAcU0/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/SZHFnRkAcU0/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/SZHFnRkAcU0/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/SZHFnRkAcU0/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/SZHFnRkAcU0/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# Architecture documents and diagrams are always out of date. Unfortunately, +# lack of accurate, up-to-date information about software architecture is really +# harmful to developer productivity and happiness. Historically, developers have +# overcome other frustrations by making code the “source of truth”, and then using +# the code as a foundation for automated tools and processes. In this talk, I will +# describe how to automatically generate docs and diagrams of code architecture, +# and discuss how to use to use this information to improve code understanding and +# code quality. +# video_id: SZHFnRkAcU0 +# - title: High availability by offloading work +# raw_title: "RailsConf 2021: High availability by offloading work - Kerstin Puschke" +# speakers: +# - Kerstin Puschke +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/AWe70zT2z_c/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/AWe70zT2z_c/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/AWe70zT2z_c/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/AWe70zT2z_c/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/AWe70zT2z_c/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# "Unpredictable traffic spikes, slow requests to a third party, and +# time-consuming tasks like image processing shouldn’t degrade the user facing availability +# of an application. In this talk, you’ll learn about different approaches to maintain +# high availability by offloading work into the background: background jobs, message +# oriented middleware based on queues, and event logs like Kafka. I’ll explain their +# foundations and how they compare to each other, helping you to choose the right +# tool for the job." +# video_id: AWe70zT2z_c +# - title: "Engineering MBA: Be The Boss of Your Own Work" +# raw_title: +# "RailsConf 2021: Engineering MBA: Be The Boss of Your Own Work - Kevin +# Murphy" +# speakers: +# - Kevin Murphy +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/HMppLTUyewE/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/HMppLTUyewE/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/HMppLTUyewE/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/HMppLTUyewE/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/HMppLTUyewE/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Improve your work as a developer with an introduction to strategic planning, situational leadership, and process management. No balance sheets or income statements here; join me to learn the MBA skills valuable to developers without the opportunity costs of lost wages or additional student loans. - Demystify the strategic frameworks your management team may use to make decisions and learn how you can use those same concepts in your daily work. Explore the synergy one developer achieved by going to business school (sorry, the synergy comment slipped out - old habit). - video_id: HMppLTUyewE -- title: ho Are You? Delegation, Federation, Assertions and Claims - raw_title: - "RailsConf 2021: ho Are You? Delegation, Federation, Assertions and Claims - - Lyle Mullican" - speakers: - - Lyle Mullican - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/oktaIPZqD0E/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/oktaIPZqD0E/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/oktaIPZqD0E/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/oktaIPZqD0E/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/oktaIPZqD0E/maxresdefault.jpg - published_at: "2022-09-28" - description: - Identity management? Stick a username and (hashed) password in a database, - and done! That's how many apps get started, at least. But what happens once you - need single sign-on across multiple domains, or if you'd rather avoid the headache - of managing those passwords to begin with? This session will cover protocols (and - pitfalls) for delegating the responsibility of identity management to an outside - source. We'll take a look at SAML, OAuth, and OpenID Connect, considering both - the class of problems they solve, and some new ones they introduce! - video_id: oktaIPZqD0E -- title: "API Optimization Tale: Monitor, Fix and Deploy (on Friday)" - raw_title: - "RailsConf 2021: API Optimization Tale: Monitor, Fix and Deploy (on Friday) - - Maciek Rzasa" - speakers: - - Maciek Rzasa - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/8DKo5jefJeM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/8DKo5jefJeM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/8DKo5jefJeM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/8DKo5jefJeM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/8DKo5jefJeM/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - I saw a green build on a Friday afternoon. I knew I need to push it to production before the weekend. My gut told me it was a trap. I had already stayed late to revert a broken deploy. I knew the risk. +# Demystify the strategic frameworks your management team may use to make decisions and learn how you can use those same concepts in your daily work. Explore the synergy one developer achieved by going to business school (sorry, the synergy comment slipped out - old habit). +# video_id: HMppLTUyewE +# - title: ho Are You? Delegation, Federation, Assertions and Claims +# raw_title: +# "RailsConf 2021: ho Are You? Delegation, Federation, Assertions and Claims +# - Lyle Mullican" +# speakers: +# - Lyle Mullican +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/oktaIPZqD0E/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/oktaIPZqD0E/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/oktaIPZqD0E/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/oktaIPZqD0E/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/oktaIPZqD0E/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# Identity management? Stick a username and (hashed) password in a database, +# and done! That's how many apps get started, at least. But what happens once you +# need single sign-on across multiple domains, or if you'd rather avoid the headache +# of managing those passwords to begin with? This session will cover protocols (and +# pitfalls) for delegating the responsibility of identity management to an outside +# source. We'll take a look at SAML, OAuth, and OpenID Connect, considering both +# the class of problems they solve, and some new ones they introduce! +# video_id: oktaIPZqD0E +# - title: "API Optimization Tale: Monitor, Fix and Deploy (on Friday)" +# raw_title: +# "RailsConf 2021: API Optimization Tale: Monitor, Fix and Deploy (on Friday) +# - Maciek Rzasa" +# speakers: +# - Maciek Rzasa +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/8DKo5jefJeM/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/8DKo5jefJeM/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/8DKo5jefJeM/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/8DKo5jefJeM/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/8DKo5jefJeM/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# I saw a green build on a Friday afternoon. I knew I need to push it to production before the weekend. My gut told me it was a trap. I had already stayed late to revert a broken deploy. I knew the risk. - In the middle of a service extraction project, we decided to migrate from REST to GraphQL and optimize API usage. My deploy was a part of this radical change. +# In the middle of a service extraction project, we decided to migrate from REST to GraphQL and optimize API usage. My deploy was a part of this radical change. - Why was I deploying so late? How did we measure the migration effects? And why was I testing on production? I'll tell you a tale of small steps, monitoring, and old tricks in a new setting. Hope, despair, and broken production included. - video_id: 8DKo5jefJeM -- title: Using Rails to communicate with the New York Stock Exchange - raw_title: - "RailsConf 2021: Using Rails to communicate with the New York Stock Exchange - - Martin Jaime" - speakers: - - Martin Jaime - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/sPLngvzOuqE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/sPLngvzOuqE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/sPLngvzOuqE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/sPLngvzOuqE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/sPLngvzOuqE/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - This is a timely talk because of what happened with Gamestop/Robinhood, introducing a case of a high-frequency trading app like Robinhood, built on top of Rails, and how it proves it can scale, managing not only over a complex HTTP API but also communicating over an internal protocol TCP with one New York Stock Exchange server by making use of Remote Procedure Calls (RPC) with RabbitMQ to be able to manage transactional messages (orders). +# Why was I deploying so late? How did we measure the migration effects? And why was I testing on production? I'll tell you a tale of small steps, monitoring, and old tricks in a new setting. Hope, despair, and broken production included. +# video_id: 8DKo5jefJeM +# - title: Using Rails to communicate with the New York Stock Exchange +# raw_title: +# "RailsConf 2021: Using Rails to communicate with the New York Stock Exchange +# - Martin Jaime" +# speakers: +# - Martin Jaime +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/sPLngvzOuqE/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/sPLngvzOuqE/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/sPLngvzOuqE/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/sPLngvzOuqE/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/sPLngvzOuqE/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# This is a timely talk because of what happened with Gamestop/Robinhood, introducing a case of a high-frequency trading app like Robinhood, built on top of Rails, and how it proves it can scale, managing not only over a complex HTTP API but also communicating over an internal protocol TCP with one New York Stock Exchange server by making use of Remote Procedure Calls (RPC) with RabbitMQ to be able to manage transactional messages (orders). - So, how can we make use of Rails to deliver a huge amount of updates (through WSS) and have solid transactions (through HTTPS)? - video_id: sPLngvzOuqE -- title: rails db:migrate:even_safer - raw_title: "RailsConf 2021: rails db:migrate:even_safer - Matt Duszynski" - speakers: - - Matt Duszynski - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/uMcRCSiNzuc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/uMcRCSiNzuc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/uMcRCSiNzuc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/uMcRCSiNzuc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/uMcRCSiNzuc/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - It's been a few years, your Rails app is wildly successful, and your database is bigger than ever. With that, comes new challenges when making schema changes. You have types to change, constraints to add, and data to migrate... and even an entire table that needs to be replaced. +# So, how can we make use of Rails to deliver a huge amount of updates (through WSS) and have solid transactions (through HTTPS)? +# video_id: sPLngvzOuqE +# - title: rails db:migrate:even_safer +# raw_title: "RailsConf 2021: rails db:migrate:even_safer - Matt Duszynski" +# speakers: +# - Matt Duszynski +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/uMcRCSiNzuc/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/uMcRCSiNzuc/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/uMcRCSiNzuc/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/uMcRCSiNzuc/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/uMcRCSiNzuc/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# It's been a few years, your Rails app is wildly successful, and your database is bigger than ever. With that, comes new challenges when making schema changes. You have types to change, constraints to add, and data to migrate... and even an entire table that needs to be replaced. - Let's learn some advanced techniques for evolving your database schema in a large production application, while avoiding errors and downtime. Remember, uptime begins at $HOME! - Play - video_id: uMcRCSiNzuc -- title: Rescue Mission Accomplished - raw_title: "RailsConf 2021: Rescue Mission Accomplished - Mercedes Bernard" - speakers: - - Mercedes Bernard - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/_8BklZo-FC0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/_8BklZo-FC0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/_8BklZo-FC0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/_8BklZo-FC0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/_8BklZo-FC0/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - "Your mission, should you choose to accept it..." A stakeholder has brought you a failing project and wants you to save it. +# Let's learn some advanced techniques for evolving your database schema in a large production application, while avoiding errors and downtime. Remember, uptime begins at $HOME! +# Play +# video_id: uMcRCSiNzuc +# - title: Rescue Mission Accomplished +# raw_title: "RailsConf 2021: Rescue Mission Accomplished - Mercedes Bernard" +# speakers: +# - Mercedes Bernard +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/_8BklZo-FC0/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/_8BklZo-FC0/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/_8BklZo-FC0/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/_8BklZo-FC0/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/_8BklZo-FC0/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# "Your mission, should you choose to accept it..." A stakeholder has brought you a failing project and wants you to save it. - Do you accept your mission? Do you scrap the project and rewrite it? Deciding to stabilize a failing project can be a scary challenge. By the end of this talk, you will have tangible steps to take to incrementally refactor a failing application in place. We will also be on the lookout for warning signs of too much tech debt, learn when tech debt is OK, and walk away with useful language to use when advocating to pay down the debt. - video_id: _8BklZo-FC0 -- title: Writing design docs for wide audiences - raw_title: "RailsConf 2021: Writing design docs for wide audiences - Michele Titolo" - speakers: - - Michele Titolo - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/TxBPuAzFkHE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/TxBPuAzFkHE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/TxBPuAzFkHE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/TxBPuAzFkHE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/TxBPuAzFkHE/maxresdefault.jpg - published_at: "2022-09-28" - description: - "What would you do to convince a large audience, who has little context, - to use your solution to a problem? One way is to write a design document, which - helps scale technical communication and build alignment among stakeholders. The - wider the scope of the problem, the more important alignment is. A design document - achieves this by addressing three key questions: “what is the goal?”, “how will - we achieve it?” and “why are we doing it this way?”. This talk will cover identifying - your audience, effectively writing answers to these questions, and involving the - right people at the right time." - video_id: TxBPuAzFkHE -- title: How Reference Librarians Can Help Us Help Each Other - raw_title: - "RailsConf 2021: How Reference Librarians Can Help Us Help Each Other - - Mike Calhoun" - speakers: - - Mike Calhoun - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/joZYMpoHrao/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/joZYMpoHrao/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/joZYMpoHrao/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/joZYMpoHrao/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/joZYMpoHrao/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - In 1883, The Boston Public Library began hiring librarians for reference services. Since then, a discipline has grown around personally meeting the needs of the public, as Library Science has evolved into Information Science. Yet, the goal of assisting with information needs remains the same. There is disciplinary overlap between programming and information science, but there are cultural differences that can be addressed. In other words, applying reference library practices to our teams can foster environments where barriers to asking for and providing help are broken down. - Play - video_id: joZYMpoHrao -- title: A Third Way For Open-Source Maintenance - raw_title: "RailsConf 2021: A Third Way For Open-Source Maintenance - Nate Berkopec" - speakers: - - Nate Berkopec - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/gvW0htMx_2o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/gvW0htMx_2o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/gvW0htMx_2o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/gvW0htMx_2o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/gvW0htMx_2o/maxresdefault.jpg - published_at: "2022-09-28" - description: - 'Drawing on my experiences maintaining Puma and other open-source projects, - both volunteer and for pay, I''d like to share what I think is a "third way" for - sustainable open source, between the extremes of "everyone deserves to be paid" - and "everyone''s on their own". Instead of viewing maintainers as valuable resources, - this third way posits that maintainers are blockers to a potentially-unlimited - pool of contributors, and a maintainer''s #1 job is encouraging contribution.' - video_id: gvW0htMx_2o -- title: "Can I break this?: Writing resilient “save” methods" - raw_title: - "RailsConf 2021: Can I break this?: Writing resilient “save” methods - - Nathan Griffith" - speakers: - - Nathan Griffith - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/jbOM_tvWv3o/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/jbOM_tvWv3o/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/jbOM_tvWv3o/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/jbOM_tvWv3o/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/jbOM_tvWv3o/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - An alert hits your radar, leaving you and your team perplexed. An “update” action that had worked for years suddenly ... didn't. You dig in to find that a subtle race condition had been hiding in plain sight all along. How could this happen? And why now? +# Do you accept your mission? Do you scrap the project and rewrite it? Deciding to stabilize a failing project can be a scary challenge. By the end of this talk, you will have tangible steps to take to incrementally refactor a failing application in place. We will also be on the lookout for warning signs of too much tech debt, learn when tech debt is OK, and walk away with useful language to use when advocating to pay down the debt. +# video_id: _8BklZo-FC0 +# - title: Writing design docs for wide audiences +# raw_title: "RailsConf 2021: Writing design docs for wide audiences - Michele Titolo" +# speakers: +# - Michele Titolo +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/TxBPuAzFkHE/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/TxBPuAzFkHE/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/TxBPuAzFkHE/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/TxBPuAzFkHE/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/TxBPuAzFkHE/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# "What would you do to convince a large audience, who has little context, +# to use your solution to a problem? One way is to write a design document, which +# helps scale technical communication and build alignment among stakeholders. The +# wider the scope of the problem, the more important alignment is. A design document +# achieves this by addressing three key questions: “what is the goal?”, “how will +# we achieve it?” and “why are we doing it this way?”. This talk will cover identifying +# your audience, effectively writing answers to these questions, and involving the +# right people at the right time." +# video_id: TxBPuAzFkHE +# - title: How Reference Librarians Can Help Us Help Each Other +# raw_title: +# "RailsConf 2021: How Reference Librarians Can Help Us Help Each Other +# - Mike Calhoun" +# speakers: +# - Mike Calhoun +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/joZYMpoHrao/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/joZYMpoHrao/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/joZYMpoHrao/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/joZYMpoHrao/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/joZYMpoHrao/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# In 1883, The Boston Public Library began hiring librarians for reference services. Since then, a discipline has grown around personally meeting the needs of the public, as Library Science has evolved into Information Science. Yet, the goal of assisting with information needs remains the same. There is disciplinary overlap between programming and information science, but there are cultural differences that can be addressed. In other words, applying reference library practices to our teams can foster environments where barriers to asking for and providing help are broken down. +# Play +# video_id: joZYMpoHrao +# - title: A Third Way For Open-Source Maintenance +# raw_title: "RailsConf 2021: A Third Way For Open-Source Maintenance - Nate Berkopec" +# speakers: +# - Nate Berkopec +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/gvW0htMx_2o/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/gvW0htMx_2o/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/gvW0htMx_2o/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/gvW0htMx_2o/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/gvW0htMx_2o/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# 'Drawing on my experiences maintaining Puma and other open-source projects, +# both volunteer and for pay, I''d like to share what I think is a "third way" for +# sustainable open source, between the extremes of "everyone deserves to be paid" +# and "everyone''s on their own". Instead of viewing maintainers as valuable resources, +# this third way posits that maintainers are blockers to a potentially-unlimited +# pool of contributors, and a maintainer''s #1 job is encouraging contribution.' +# video_id: gvW0htMx_2o +# - title: "Can I break this?: Writing resilient “save” methods" +# raw_title: +# "RailsConf 2021: Can I break this?: Writing resilient “save” methods +# - Nathan Griffith" +# speakers: +# - Nathan Griffith +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/jbOM_tvWv3o/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/jbOM_tvWv3o/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/jbOM_tvWv3o/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/jbOM_tvWv3o/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/jbOM_tvWv3o/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# An alert hits your radar, leaving you and your team perplexed. An “update” action that had worked for years suddenly ... didn't. You dig in to find that a subtle race condition had been hiding in plain sight all along. How could this happen? And why now? - In this talk, we'll discover that seemingly improbable failures happen all the time, leading to data loss, dropped messages, and a lot of head-scratching. Plus, we'll see that anyone can become an expert in spotting these errors before they occur. Join us as we learn to write resilient save operations, without losing our minds. - video_id: jbOM_tvWv3o -- title: How to be a great developer without being a great coder - raw_title: - "RailsConf 2021: How to be a great developer without being a great coder - - Nicole Carpenter" - speakers: - - Nicole Carpenter - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/U6DlbMuHgoQ/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/U6DlbMuHgoQ/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/U6DlbMuHgoQ/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/U6DlbMuHgoQ/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/U6DlbMuHgoQ/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Learning to code is an individual journey filled with highs and lows, but for some, the lows seem far more abundant. For some learning to code, and even for some professionals, it feels like we're struggling to tread water while our peers swim laps around us. Some developers take more time to build their technical skills, and that’s ok, as being a great developer is about far more than writing code. +# In this talk, we'll discover that seemingly improbable failures happen all the time, leading to data loss, dropped messages, and a lot of head-scratching. Plus, we'll see that anyone can become an expert in spotting these errors before they occur. Join us as we learn to write resilient save operations, without losing our minds. +# video_id: jbOM_tvWv3o +# - title: How to be a great developer without being a great coder +# raw_title: +# "RailsConf 2021: How to be a great developer without being a great coder +# - Nicole Carpenter" +# speakers: +# - Nicole Carpenter +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/U6DlbMuHgoQ/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/U6DlbMuHgoQ/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/U6DlbMuHgoQ/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/U6DlbMuHgoQ/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/U6DlbMuHgoQ/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Learning to code is an individual journey filled with highs and lows, but for some, the lows seem far more abundant. For some learning to code, and even for some professionals, it feels like we're struggling to tread water while our peers swim laps around us. Some developers take more time to build their technical skills, and that’s ok, as being a great developer is about far more than writing code. - This talk looks at realistic strategies for people who feel like they are average-or-below coding skill level, to keep their head above water while still excelling in their career as a developer. - video_id: U6DlbMuHgoQ -- title: "RailsConf 2021: Keynote: Aaron Patterson" - raw_title: "RailsConf 2021: Keynote: Aaron Patterson" - speakers: - - Aaron Patterson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/TNFljhcoHvQ/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/TNFljhcoHvQ/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/TNFljhcoHvQ/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/TNFljhcoHvQ/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/TNFljhcoHvQ/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: TNFljhcoHvQ -- title: Missing Guide to Service Objects in Rails - raw_title: "RailsConf 2021: Missing Guide to Service Objects in Rails - Riaz Virani" - speakers: - - Riaz Virani - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/MCTwjE-vp2s/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/MCTwjE-vp2s/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/MCTwjE-vp2s/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/MCTwjE-vp2s/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/MCTwjE-vp2s/maxresdefault.jpg - published_at: "2022-09-28" - description: - What happens with Rails ends and our custom business logic begins? - Many of us begin writing "service objects", but what exactly is a service object? - How do we break down logic within the service object? What happens when a step - fails? In this talk, we'll go over some of the most common approaches to answering - these questions. We'll survey options to handle errors, reuse code, organize our - directories, and even OO vs functional patterns. There isn't a perfect pattern, - but by the end, we'll be much more aware of the tradeoffs between them. - video_id: MCTwjE-vp2s -- title: Accessibility is a Requirement - raw_title: "RailsConf 2021: Accessibility is a Requirement - Ryan Boone" - speakers: - - Ryan Boone - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/0r1rBNM3Wao/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/0r1rBNM3Wao/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/0r1rBNM3Wao/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/0r1rBNM3Wao/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/0r1rBNM3Wao/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Accessible web applications reach wider audiences, ensure businesses are in compliance with the law, and, most importantly, remove barriers for the one in seven worldwide living with a permanent disability. But limited time, lack of knowledge, and even good intentions get in the way of building them. +# This talk looks at realistic strategies for people who feel like they are average-or-below coding skill level, to keep their head above water while still excelling in their career as a developer. +# video_id: U6DlbMuHgoQ +# - title: "RailsConf 2021: Keynote: Aaron Patterson" +# raw_title: "RailsConf 2021: Keynote: Aaron Patterson" +# speakers: +# - Aaron Patterson +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/TNFljhcoHvQ/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/TNFljhcoHvQ/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/TNFljhcoHvQ/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/TNFljhcoHvQ/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/TNFljhcoHvQ/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: TNFljhcoHvQ +# - title: Missing Guide to Service Objects in Rails +# raw_title: "RailsConf 2021: Missing Guide to Service Objects in Rails - Riaz Virani" +# speakers: +# - Riaz Virani +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/MCTwjE-vp2s/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/MCTwjE-vp2s/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/MCTwjE-vp2s/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/MCTwjE-vp2s/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/MCTwjE-vp2s/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# What happens with Rails ends and our custom business logic begins? +# Many of us begin writing "service objects", but what exactly is a service object? +# How do we break down logic within the service object? What happens when a step +# fails? In this talk, we'll go over some of the most common approaches to answering +# these questions. We'll survey options to handle errors, reuse code, organize our +# directories, and even OO vs functional patterns. There isn't a perfect pattern, +# but by the end, we'll be much more aware of the tradeoffs between them. +# video_id: MCTwjE-vp2s +# - title: Accessibility is a Requirement +# raw_title: "RailsConf 2021: Accessibility is a Requirement - Ryan Boone" +# speakers: +# - Ryan Boone +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/0r1rBNM3Wao/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/0r1rBNM3Wao/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/0r1rBNM3Wao/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/0r1rBNM3Wao/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/0r1rBNM3Wao/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Accessible web applications reach wider audiences, ensure businesses are in compliance with the law, and, most importantly, remove barriers for the one in seven worldwide living with a permanent disability. But limited time, lack of knowledge, and even good intentions get in the way of building them. - Come hear my personal journey toward accessibility awareness. You will learn what accessibility on the web means, how to improve the accessibility of your applications today, and how to encourage an environment where accessibility is seen as a requirement, not simply a feature. - video_id: 0r1rBNM3Wao -- title: You are Your Own Worst Critic - raw_title: "RailsConf 2021: You Are Your Own Worst Critic - Ryan Brushett" - speakers: - - Ryan Brushett - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/EHZzyVmOrGI/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/EHZzyVmOrGI/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/EHZzyVmOrGI/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/EHZzyVmOrGI/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/EHZzyVmOrGI/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Advancing through one's career can be challenging. As we experience setbacks, impostor syndrome, and uncertainty at various points of our career, we may develop some habits which, when taken too far, could see us sabotaging our own progress. You are your own worst critic. +# Come hear my personal journey toward accessibility awareness. You will learn what accessibility on the web means, how to improve the accessibility of your applications today, and how to encourage an environment where accessibility is seen as a requirement, not simply a feature. +# video_id: 0r1rBNM3Wao +# - title: You are Your Own Worst Critic +# raw_title: "RailsConf 2021: You Are Your Own Worst Critic - Ryan Brushett" +# speakers: +# - Ryan Brushett +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/EHZzyVmOrGI/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/EHZzyVmOrGI/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/EHZzyVmOrGI/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/EHZzyVmOrGI/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/EHZzyVmOrGI/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Advancing through one's career can be challenging. As we experience setbacks, impostor syndrome, and uncertainty at various points of our career, we may develop some habits which, when taken too far, could see us sabotaging our own progress. You are your own worst critic. - Despite my own experience with anxiety, a bullying internal critic, and “self-deprecating humour”, I'm now a senior engineer and I've noticed these habits in people I mentor. I hope to help you identify signs of these bad habits in yourself and others, and to talk about what has helped me work through it. - video_id: EHZzyVmOrGI -- title: All you need to know to build Dynamic Forms (JS FREE) - raw_title: - "RailsConf 2021: All you need to know to build Dynamic Forms (JS FREE) - - Santiago Bartesaghi" - speakers: - - Santiago Bartesaghi - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/6WlFjFOuYGM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/6WlFjFOuYGM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/6WlFjFOuYGM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/6WlFjFOuYGM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/6WlFjFOuYGM/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Working with forms is pretty common in web apps, but this time my team was requested to give support for dynamic forms created by admins in an admin panel and used in several places (real story). There are many ways to implement it, but our goal was to build it in a way that felt natural in Rails. +# Despite my own experience with anxiety, a bullying internal critic, and “self-deprecating humour”, I'm now a senior engineer and I've noticed these habits in people I mentor. I hope to help you identify signs of these bad habits in yourself and others, and to talk about what has helped me work through it. +# video_id: EHZzyVmOrGI +# - title: All you need to know to build Dynamic Forms (JS FREE) +# raw_title: +# "RailsConf 2021: All you need to know to build Dynamic Forms (JS FREE) +# - Santiago Bartesaghi" +# speakers: +# - Santiago Bartesaghi +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/6WlFjFOuYGM/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/6WlFjFOuYGM/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/6WlFjFOuYGM/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/6WlFjFOuYGM/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/6WlFjFOuYGM/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Working with forms is pretty common in web apps, but this time my team was requested to give support for dynamic forms created by admins in an admin panel and used in several places (real story). There are many ways to implement it, but our goal was to build it in a way that felt natural in Rails. - This talk is for you if you’d like to learn how we used the ActiveModel's API together with the Form Objects pattern to support our dynamic forms feature, and the cherry on top is the usage of Hotwire to accomplish some more advanced features. And all of this is done without a single line of JS :) - video_id: 6WlFjFOuYGM -- title: How To Get A Project Unstuck - raw_title: "RailsConf 2021: How To Get A Project Unstuck - Sumana Harihareswara" - speakers: - - Sumana Harihareswara - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/olqhg0aNfZc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/olqhg0aNfZc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/olqhg0aNfZc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/olqhg0aNfZc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/olqhg0aNfZc/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - When an open source project has gotten stuck, how do you get it unstuck? Especially if you aren't already its maintainer? My teams have done this with several projects. A new contributor, who's never worked on a project before, can be the catalyst that revives a project or gets a long-delayed release out the door. I'll share a few case studies, principles, & gotchas. +# This talk is for you if you’d like to learn how we used the ActiveModel's API together with the Form Objects pattern to support our dynamic forms feature, and the cherry on top is the usage of Hotwire to accomplish some more advanced features. And all of this is done without a single line of JS :) +# video_id: 6WlFjFOuYGM +# - title: How To Get A Project Unstuck +# raw_title: "RailsConf 2021: How To Get A Project Unstuck - Sumana Harihareswara" +# speakers: +# - Sumana Harihareswara +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/olqhg0aNfZc/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/olqhg0aNfZc/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/olqhg0aNfZc/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/olqhg0aNfZc/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/olqhg0aNfZc/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# When an open source project has gotten stuck, how do you get it unstuck? Especially if you aren't already its maintainer? My teams have done this with several projects. A new contributor, who's never worked on a project before, can be the catalyst that revives a project or gets a long-delayed release out the door. I'll share a few case studies, principles, & gotchas. - More than developer time, coordination & leadership are a bottleneck in software sustainability. You'll come away from this talk with steps you can take, in the short and long runs, to address this for projects you care about. - video_id: olqhg0aNfZc -- title: Growing Software From Seed - raw_title: "RailsConf 2021: Growing Software From Seed - Sweta Sanghavi" - speakers: - - Sweta Sanghavi - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/HiByvxqvH-8/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/HiByvxqvH-8/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/HiByvxqvH-8/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/HiByvxqvH-8/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/HiByvxqvH-8/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Pam Pierce writes, “Look at your garden every day. Study a plant or a square foot of ground until you’ve learned something new". In debugging my own garden, the practice of daily observation has revealed signals previously overlooked. This practice has followed me to the work of tending to our growing application. +# More than developer time, coordination & leadership are a bottleneck in software sustainability. You'll come away from this talk with steps you can take, in the short and long runs, to address this for projects you care about. +# video_id: olqhg0aNfZc +# - title: Growing Software From Seed +# raw_title: "RailsConf 2021: Growing Software From Seed - Sweta Sanghavi" +# speakers: +# - Sweta Sanghavi +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/HiByvxqvH-8/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/HiByvxqvH-8/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/HiByvxqvH-8/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/HiByvxqvH-8/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/HiByvxqvH-8/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Pam Pierce writes, “Look at your garden every day. Study a plant or a square foot of ground until you’ve learned something new". In debugging my own garden, the practice of daily observation has revealed signals previously overlooked. This practice has followed me to the work of tending to our growing application. - This talk visits some familiar places, code that should work, or seems unnecessarily complicated, and digs deeper to find what we missed at first glance. Let’s explore how we can learn to hear all our application tells us and cultivate a methodical approach to these sticky places. - video_id: HiByvxqvH-8 -- title: Scaling Rails API to Write - raw_title: - "RailsConf 2021: Scaling Rails API to Write-Heavy Traffic - Takumasa - Ochi" - speakers: - - Takumasa Ochi - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/R6EkPSo_7PA/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/R6EkPSo_7PA/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/R6EkPSo_7PA/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/R6EkPSo_7PA/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/R6EkPSo_7PA/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Tens of millions of people can download and play the same game thanks to mobile app distribution platforms. Highly scalable and reliable API backends are critical to offering a good game experience. Notable characteristics here is not only the magnitude of the traffic but also the ratio of write traffic. How do you serve millions of database transactions per minute with Rails? +# This talk visits some familiar places, code that should work, or seems unnecessarily complicated, and digs deeper to find what we missed at first glance. Let’s explore how we can learn to hear all our application tells us and cultivate a methodical approach to these sticky places. +# video_id: HiByvxqvH-8 +# - title: Scaling Rails API to Write +# raw_title: +# "RailsConf 2021: Scaling Rails API to Write-Heavy Traffic - Takumasa +# Ochi" +# speakers: +# - Takumasa Ochi +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/R6EkPSo_7PA/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/R6EkPSo_7PA/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/R6EkPSo_7PA/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/R6EkPSo_7PA/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/R6EkPSo_7PA/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Tens of millions of people can download and play the same game thanks to mobile app distribution platforms. Highly scalable and reliable API backends are critical to offering a good game experience. Notable characteristics here is not only the magnitude of the traffic but also the ratio of write traffic. How do you serve millions of database transactions per minute with Rails? - The keyword to solve this issue is "multiple databases," especially sharding. From system architecture to coding guidelines, we'd like to share the practical techniques derived from our long-term experience. - video_id: R6EkPSo_7PA -- title: What is Developer Empathy? - raw_title: "RailsConf 2021: What is Developer Empathy? - Tim Tyrrell" - speakers: - - Tim Tyrrell - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/PvoGihwh0Ao/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/PvoGihwh0Ao/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/PvoGihwh0Ao/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/PvoGihwh0Ao/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/PvoGihwh0Ao/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Dev teams should employ empathetic patterns of behavior at all levels from junior developer to architect. Organizations can create the safety and security necessary to obtain a high functioning team environment that values courageous feedback if they simply have the language and tools to do so. How can leadership provide a framework for equitable practices and empathetic systems that promotes learning fluency across the team? +# The keyword to solve this issue is "multiple databases," especially sharding. From system architecture to coding guidelines, we'd like to share the practical techniques derived from our long-term experience. +# video_id: R6EkPSo_7PA +# - title: What is Developer Empathy? +# raw_title: "RailsConf 2021: What is Developer Empathy? - Tim Tyrrell" +# speakers: +# - Tim Tyrrell +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/PvoGihwh0Ao/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/PvoGihwh0Ao/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/PvoGihwh0Ao/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/PvoGihwh0Ao/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/PvoGihwh0Ao/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Dev teams should employ empathetic patterns of behavior at all levels from junior developer to architect. Organizations can create the safety and security necessary to obtain a high functioning team environment that values courageous feedback if they simply have the language and tools to do so. How can leadership provide a framework for equitable practices and empathetic systems that promotes learning fluency across the team? - I have ideas. Find out what I've learned through countless hours of mentorship, encouragement, and support both learning from and teaching others to code. - video_id: PvoGihwh0Ao -- title: The Curious Case of the Bad Clone - raw_title: "RailsConf 2021: The Curious Case of the Bad Clone - Ufuk Kayserilioglu" - speakers: - - Ufuk Kayserilioglu - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/eTAXHmBSlxs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/eTAXHmBSlxs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/eTAXHmBSlxs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/eTAXHmBSlxs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/eTAXHmBSlxs/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - On Sept 4th 2020, I got pinged on a revert PR to fix a 150% slowdown on the Shopify monolith. It was a two-line change reverting the addition of a Sorbet signature on a Shop method, implicating Sorbet as the suspect. +# I have ideas. Find out what I've learned through countless hours of mentorship, encouragement, and support both learning from and teaching others to code. +# video_id: PvoGihwh0Ao +# - title: The Curious Case of the Bad Clone +# raw_title: "RailsConf 2021: The Curious Case of the Bad Clone - Ufuk Kayserilioglu" +# speakers: +# - Ufuk Kayserilioglu +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/eTAXHmBSlxs/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/eTAXHmBSlxs/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/eTAXHmBSlxs/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/eTAXHmBSlxs/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/eTAXHmBSlxs/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# On Sept 4th 2020, I got pinged on a revert PR to fix a 150% slowdown on the Shopify monolith. It was a two-line change reverting the addition of a Sorbet signature on a Shop method, implicating Sorbet as the suspect. - That was the start of a journey that took me through a deeper understanding of the Sorbet, Rails and Ruby codebases. The fix is in Ruby 3.0 and I can sleep better now. +# That was the start of a journey that took me through a deeper understanding of the Sorbet, Rails and Ruby codebases. The fix is in Ruby 3.0 and I can sleep better now. - This talk will take you on that journey with me. Along the way, you will find tools and tricks that you can use for debugging similar problems. We will also delve into some nuances of Ruby, which is always fun. - video_id: eTAXHmBSlxs -- title: The Cost of Data - raw_title: "RailsConf 2021: The Cost of Data - Vaidehi Joshi" - speakers: - - Vaidehi Joshi - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/EfTZXvif9hg/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/EfTZXvif9hg/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/EfTZXvif9hg/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/EfTZXvif9hg/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/EfTZXvif9hg/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - The internet grows every day. Every second, one of us is making calls to an API, uploading some images, or streaming the latest video content. But what is the cost of all this? +# This talk will take you on that journey with me. Along the way, you will find tools and tricks that you can use for debugging similar problems. We will also delve into some nuances of Ruby, which is always fun. +# video_id: eTAXHmBSlxs +# - title: The Cost of Data +# raw_title: "RailsConf 2021: The Cost of Data - Vaidehi Joshi" +# speakers: +# - Vaidehi Joshi +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/EfTZXvif9hg/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/EfTZXvif9hg/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/EfTZXvif9hg/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/EfTZXvif9hg/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/EfTZXvif9hg/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# The internet grows every day. Every second, one of us is making calls to an API, uploading some images, or streaming the latest video content. But what is the cost of all this? - Every day, a data center stores information on our behalf. As engineers, it's easy to focus on the code and forget the tangible impact of our work. This talk explores the physical reality of creating and storing data today, as well as the challenges and technological advancements currently being made in this part of the tech sector. Together, we'll see how our code affects the physical world, and what we can do about it. - Play - video_id: EfTZXvif9hg -- title: Frontendless Rails frontend - raw_title: "RailsConf 2021: Frontendless Rails frontend - Vladimir Dementyev" - speakers: - - Vladimir Dementyev - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/UylEOXuAmo0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/UylEOXuAmo0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/UylEOXuAmo0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/UylEOXuAmo0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/UylEOXuAmo0/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Everything is cyclical, and web development is not an exception: ten years ago, we enjoyed developing Rails apps using HTML forms, a bit of AJAX, and jQuery—our productivity had no end! As interfaces gradually became more sophisticated, the "classic" approach began to give way to frontend frameworks, pushing Ruby into an API provider's role. +# Every day, a data center stores information on our behalf. As engineers, it's easy to focus on the code and forget the tangible impact of our work. This talk explores the physical reality of creating and storing data today, as well as the challenges and technological advancements currently being made in this part of the tech sector. Together, we'll see how our code affects the physical world, and what we can do about it. +# Play +# video_id: EfTZXvif9hg +# - title: Frontendless Rails frontend +# raw_title: "RailsConf 2021: Frontendless Rails frontend - Vladimir Dementyev" +# speakers: +# - Vladimir Dementyev +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/UylEOXuAmo0/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/UylEOXuAmo0/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/UylEOXuAmo0/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/UylEOXuAmo0/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/UylEOXuAmo0/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Everything is cyclical, and web development is not an exception: ten years ago, we enjoyed developing Rails apps using HTML forms, a bit of AJAX, and jQuery—our productivity had no end! As interfaces gradually became more sophisticated, the "classic" approach began to give way to frontend frameworks, pushing Ruby into an API provider's role. - The situation started to change; the "new wave" is coming, and ViewComponent, StimulusReflex, and Hotwire are riding the crest. +# The situation started to change; the "new wave" is coming, and ViewComponent, StimulusReflex, and Hotwire are riding the crest. - In this talk, I'd like to demonstrate how we can develop modern "frontend" applications in the New Rails Way. - video_id: UylEOXuAmo0 -- title: What the fork()? - raw_title: "RailsConf 2021: What the fork()? - Will Jordan" - speakers: - - Will Jordan - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/Cq3Vd4KIvFk/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/Cq3Vd4KIvFk/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/Cq3Vd4KIvFk/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/Cq3Vd4KIvFk/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/Cq3Vd4KIvFk/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - How does Spring boot your Rails app instantly, or Puma route requests across many processes? How can you fine-tune your app for memory efficiency, or simply run Ruby code in parallel? Find out with a deep dive on that staple Unix utensil, the fork() system call! +# In this talk, I'd like to demonstrate how we can develop modern "frontend" applications in the New Rails Way. +# video_id: UylEOXuAmo0 +# - title: What the fork()? +# raw_title: "RailsConf 2021: What the fork()? - Will Jordan" +# speakers: +# - Will Jordan +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/Cq3Vd4KIvFk/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/Cq3Vd4KIvFk/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/Cq3Vd4KIvFk/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/Cq3Vd4KIvFk/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/Cq3Vd4KIvFk/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# How does Spring boot your Rails app instantly, or Puma route requests across many processes? How can you fine-tune your app for memory efficiency, or simply run Ruby code in parallel? Find out with a deep dive on that staple Unix utensil, the fork() system call! - After an operating systems primer on children, zombies, processes and pipes, we'll dig into how exactly Spring and Puma use fork() to power Rails in development and production. We'll finish by sampling techniques for measuring and maximizing copy-on-write efficiency, including a new trick that can reduce memory usage up to 80%. - video_id: Cq3Vd4KIvFk -- title: Talmudic Gems For Rails Developers - raw_title: "RailsConf 2021: Talmudic Gems For Rails Developers - Yechiel Kalmenson" - speakers: - - Yechiel Kalmenson - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/7bPFm1CWaws/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/7bPFm1CWaws/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/7bPFm1CWaws/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/7bPFm1CWaws/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/7bPFm1CWaws/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Am I my colleague’s keeper? To what extent are we responsible for the consequences of our code? +# After an operating systems primer on children, zombies, processes and pipes, we'll dig into how exactly Spring and Puma use fork() to power Rails in development and production. We'll finish by sampling techniques for measuring and maximizing copy-on-write efficiency, including a new trick that can reduce memory usage up to 80%. +# video_id: Cq3Vd4KIvFk +# - title: Talmudic Gems For Rails Developers +# raw_title: "RailsConf 2021: Talmudic Gems For Rails Developers - Yechiel Kalmenson" +# speakers: +# - Yechiel Kalmenson +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/7bPFm1CWaws/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/7bPFm1CWaws/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/7bPFm1CWaws/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/7bPFm1CWaws/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/7bPFm1CWaws/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Am I my colleague’s keeper? To what extent are we responsible for the consequences of our code? - More than two thousand years ago conversations on central questions of human ethics were enshrined in one of the primary ancient wisdom texts, the Talmud. +# More than two thousand years ago conversations on central questions of human ethics were enshrined in one of the primary ancient wisdom texts, the Talmud. - Now, as the tech industry is beginning to wake up to the idea that we can not separate our work from its ethical and moral ramifications these questions take on a new urgency. +# Now, as the tech industry is beginning to wake up to the idea that we can not separate our work from its ethical and moral ramifications these questions take on a new urgency. - In this talk, we will delve into questions of our responsibility to our teammates, to our code, and to the world through both the ancient texts and modern examples. - video_id: 7bPFm1CWaws -- title: Turning DevOps Inside - raw_title: "RailsConf 2021: Turning DevOps Inside-Out - Darren Broemmer" - speakers: - - Darren Broemmer - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/sJ-Be85vCcc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/sJ-Be85vCcc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/sJ-Be85vCcc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/sJ-Be85vCcc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/sJ-Be85vCcc/maxresdefault.jpg - published_at: "2022-09-28" - description: - We often think of automation and deployment scripts when we discuss - DevOps, however the true value is in reacting to how customers use your application - and incorporating this feedback into your development lifecycle. In this talk, - we will discuss how you can turning DevOps around to increase your feature velocity, - including some Rails specific strategies and gems you can use to get things done - faster. - video_id: sJ-Be85vCcc -- title: "New dev, old codebase: A series of mentorship stories" - raw_title: - "RailsConf 2021: New dev, old codebase: A series of mentorship stories - - Ramón Huidobro" - speakers: - - Ramón Huidobro - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/NcQqEurV4vo/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/NcQqEurV4vo/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/NcQqEurV4vo/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/NcQqEurV4vo/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/NcQqEurV4vo/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Mentorship in software development carries a lot of responsibility, but plays an integral part in making tech communities as well as individuals thrive. +# In this talk, we will delve into questions of our responsibility to our teammates, to our code, and to the world through both the ancient texts and modern examples. +# video_id: 7bPFm1CWaws +# - title: Turning DevOps Inside +# raw_title: "RailsConf 2021: Turning DevOps Inside-Out - Darren Broemmer" +# speakers: +# - Darren Broemmer +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/sJ-Be85vCcc/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/sJ-Be85vCcc/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/sJ-Be85vCcc/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/sJ-Be85vCcc/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/sJ-Be85vCcc/maxresdefault.jpg +# published_at: "2022-09-28" +# description: +# We often think of automation and deployment scripts when we discuss +# DevOps, however the true value is in reacting to how customers use your application +# and incorporating this feedback into your development lifecycle. In this talk, +# we will discuss how you can turning DevOps around to increase your feature velocity, +# including some Rails specific strategies and gems you can use to get things done +# faster. +# video_id: sJ-Be85vCcc +# - title: "New dev, old codebase: A series of mentorship stories" +# raw_title: +# "RailsConf 2021: New dev, old codebase: A series of mentorship stories +# - Ramón Huidobro" +# speakers: +# - Ramón Huidobro +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/NcQqEurV4vo/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/NcQqEurV4vo/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/NcQqEurV4vo/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/NcQqEurV4vo/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/NcQqEurV4vo/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Mentorship in software development carries a lot of responsibility, but plays an integral part in making tech communities as well as individuals thrive. - In this talk, we'll go over some of my mentorship experiences, adopting techniques and learning to teach, so we can teach to learn. +# In this talk, we'll go over some of my mentorship experiences, adopting techniques and learning to teach, so we can teach to learn. - Anyone can be a great mentor! +# Anyone can be a great mentor! - The excellent mentorship.guide (also cited in the resources section) has an even more detailed answer to “Why be a mentor?” — here's the relevant section: https://mentorship.gitbook.io/guide/m... - video_id: NcQqEurV4vo -- title: "Lightning Talks: Robson Port" - raw_title: "RailsConf 2021: Lightning Talks: Robson Port" - speakers: - - Robson Port - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/LWa465inCxQ/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/LWa465inCxQ/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/LWa465inCxQ/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/LWa465inCxQ/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/LWa465inCxQ/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: LWa465inCxQ -- title: "Lightning Talks: Emily Harber" - raw_title: "RailsConf 2021: Lightning Talks: Emily Harber" - speakers: - - Emily Harber - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/teyMgaqg-1M/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/teyMgaqg-1M/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/teyMgaqg-1M/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/teyMgaqg-1M/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/teyMgaqg-1M/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: teyMgaqg-1M -- title: "Lightning Talks: Dorian Marie" - raw_title: "RailsConf 2021: Lightning Talks: Dorian Marie" - speakers: - - Dorian Marie - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/lpfEnIsF1QM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/lpfEnIsF1QM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/lpfEnIsF1QM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/lpfEnIsF1QM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/lpfEnIsF1QM/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: lpfEnIsF1QM -- title: "Lightning Talks: Brandon Shar" - raw_title: "RailsConf 2021: Lightning Talks: Brandon Shar" - speakers: - - Brandon Shar - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/-JT1RF-IhKs/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/-JT1RF-IhKs/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/-JT1RF-IhKs/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/-JT1RF-IhKs/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/-JT1RF-IhKs/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: "-JT1RF-IhKs" -- title: "Lightning Talks: Sarah Sausan" - raw_title: "RailsConf 2021: Lightning Talks: Sarah Sausan" - speakers: - - Sarah Sausan - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/5LBzWDbLu1I/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/5LBzWDbLu1I/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/5LBzWDbLu1I/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/5LBzWDbLu1I/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/5LBzWDbLu1I/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: 5LBzWDbLu1I -- title: "Lightning Talks: Lauren Billington" - raw_title: "RailsConf 2021: Lightning Talks: Lauren Billington" - speakers: - - Lauren Billington - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/GOmTVqH-eZE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/GOmTVqH-eZE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/GOmTVqH-eZE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/GOmTVqH-eZE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/GOmTVqH-eZE/maxresdefault.jpg - published_at: "2022-09-28" - description: "" - video_id: GOmTVqH-eZE -- title: "Serverless Rails: Understanding the pros and cons" - raw_title: - "RailsConf 2021: Serverless Rails: Understanding the pros and cons - - Daniel Azuma" - speakers: - - Daniel Azuma - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/C3LMNdhVS2U/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/C3LMNdhVS2U/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/C3LMNdhVS2U/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/C3LMNdhVS2U/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/C3LMNdhVS2U/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - Serverless is widely lauded as the ops-free future of deployment. Serverless is widely panned as a gimmick with little utility for the price. Who’s right? And what does it mean for my Rails app? +# The excellent mentorship.guide (also cited in the resources section) has an even more detailed answer to “Why be a mentor?” — here's the relevant section: https://mentorship.gitbook.io/guide/m... +# video_id: NcQqEurV4vo +# - title: "Lightning Talks: Robson Port" +# raw_title: "RailsConf 2021: Lightning Talks: Robson Port" +# speakers: +# - Robson Port +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/LWa465inCxQ/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/LWa465inCxQ/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/LWa465inCxQ/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/LWa465inCxQ/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/LWa465inCxQ/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: LWa465inCxQ +# - title: "Lightning Talks: Emily Harber" +# raw_title: "RailsConf 2021: Lightning Talks: Emily Harber" +# speakers: +# - Emily Harber +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/teyMgaqg-1M/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/teyMgaqg-1M/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/teyMgaqg-1M/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/teyMgaqg-1M/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/teyMgaqg-1M/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: teyMgaqg-1M +# - title: "Lightning Talks: Dorian Marie" +# raw_title: "RailsConf 2021: Lightning Talks: Dorian Marie" +# speakers: +# - Dorian Marie +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/lpfEnIsF1QM/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/lpfEnIsF1QM/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/lpfEnIsF1QM/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/lpfEnIsF1QM/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/lpfEnIsF1QM/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: lpfEnIsF1QM +# - title: "Lightning Talks: Brandon Shar" +# raw_title: "RailsConf 2021: Lightning Talks: Brandon Shar" +# speakers: +# - Brandon Shar +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/-JT1RF-IhKs/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/-JT1RF-IhKs/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/-JT1RF-IhKs/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/-JT1RF-IhKs/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/-JT1RF-IhKs/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: "-JT1RF-IhKs" +# - title: "Lightning Talks: Sarah Sausan" +# raw_title: "RailsConf 2021: Lightning Talks: Sarah Sausan" +# speakers: +# - Sarah Sausan +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/5LBzWDbLu1I/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/5LBzWDbLu1I/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/5LBzWDbLu1I/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/5LBzWDbLu1I/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/5LBzWDbLu1I/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: 5LBzWDbLu1I +# - title: "Lightning Talks: Lauren Billington" +# raw_title: "RailsConf 2021: Lightning Talks: Lauren Billington" +# speakers: +# - Lauren Billington +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/GOmTVqH-eZE/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/GOmTVqH-eZE/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/GOmTVqH-eZE/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/GOmTVqH-eZE/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/GOmTVqH-eZE/maxresdefault.jpg +# published_at: "2022-09-28" +# description: "" +# video_id: GOmTVqH-eZE +# - title: "Serverless Rails: Understanding the pros and cons" +# raw_title: +# "RailsConf 2021: Serverless Rails: Understanding the pros and cons - +# Daniel Azuma" +# speakers: +# - Daniel Azuma +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/C3LMNdhVS2U/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/C3LMNdhVS2U/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/C3LMNdhVS2U/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/C3LMNdhVS2U/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/C3LMNdhVS2U/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# Serverless is widely lauded as the ops-free future of deployment. Serverless is widely panned as a gimmick with little utility for the price. Who’s right? And what does it mean for my Rails app? - This session takes a critical look at serverless hosting. We’ll consider the abstractions underlying environments such as AWS Lambda and Google Cloud Run, their assumptions and trade-offs, and their implications for Ruby apps and frameworks. You’ll come away better prepared to decide whether or not to adopt serverless deployment, and to understand how your code might need to change to accommodate it. - video_id: C3LMNdhVS2U -- title: Make a Difference with Simple A/B Testing - raw_title: - "RailsConf 2021: Make a Difference with Simple A/B Testing - Danielle - Gordon" - speakers: - - Danielle Gordon - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/MnYmZKtj9Lc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/MnYmZKtj9Lc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/MnYmZKtj9Lc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/MnYmZKtj9Lc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/MnYmZKtj9Lc/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - There are a lot of myths around A/B testing. They’re difficult to implement, difficult to keep track of, difficult to remove, and the costs don’t seem to outweigh the benefits unless you’re at a large company. But A/B tests don’t have to be a daunting task. And let’s be honest, how can you say you’ve made positive changes in your app without them? +# This session takes a critical look at serverless hosting. We’ll consider the abstractions underlying environments such as AWS Lambda and Google Cloud Run, their assumptions and trade-offs, and their implications for Ruby apps and frameworks. You’ll come away better prepared to decide whether or not to adopt serverless deployment, and to understand how your code might need to change to accommodate it. +# video_id: C3LMNdhVS2U +# - title: Make a Difference with Simple A/B Testing +# raw_title: +# "RailsConf 2021: Make a Difference with Simple A/B Testing - Danielle +# Gordon" +# speakers: +# - Danielle Gordon +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/MnYmZKtj9Lc/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/MnYmZKtj9Lc/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/MnYmZKtj9Lc/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/MnYmZKtj9Lc/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/MnYmZKtj9Lc/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# There are a lot of myths around A/B testing. They’re difficult to implement, difficult to keep track of, difficult to remove, and the costs don’t seem to outweigh the benefits unless you’re at a large company. But A/B tests don’t have to be a daunting task. And let’s be honest, how can you say you’ve made positive changes in your app without them? - A/B tests are a quick way to gain more user insight. We'll first start with a few easy A/B tests, then create a simple system to organise them. By then end, we'll see how easy it is to convert to a (A/B) Test Driven Development process. - video_id: MnYmZKtj9Lc -- title: Speed up your test suite by throwing computers at it - raw_title: - "RailsConf 2021: Speed up your test suite by throwing computers at it - - Daniel Magliola" - speakers: - - Daniel Magliola - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/ntTT64hK1no/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/ntTT64hK1no/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/ntTT64hK1no/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/ntTT64hK1no/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/ntTT64hK1no/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - You've probably experienced this. CI times slowly creep up over time and now it takes 20, 30, 40 minutes to run your suite. Multi-hour runs are not uncommon. +# A/B tests are a quick way to gain more user insight. We'll first start with a few easy A/B tests, then create a simple system to organise them. By then end, we'll see how easy it is to convert to a (A/B) Test Driven Development process. +# video_id: MnYmZKtj9Lc +# - title: Speed up your test suite by throwing computers at it +# raw_title: +# "RailsConf 2021: Speed up your test suite by throwing computers at it +# - Daniel Magliola" +# speakers: +# - Daniel Magliola +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/ntTT64hK1no/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/ntTT64hK1no/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/ntTT64hK1no/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/ntTT64hK1no/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/ntTT64hK1no/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# You've probably experienced this. CI times slowly creep up over time and now it takes 20, 30, 40 minutes to run your suite. Multi-hour runs are not uncommon. - All of a sudden, all you're doing is waiting for CI all day, trying to context switch between different PRs. And then, a flaky test hits, and you start waiting all over again. +# All of a sudden, all you're doing is waiting for CI all day, trying to context switch between different PRs. And then, a flaky test hits, and you start waiting all over again. - It doesn't have to be like this. In this talk I'll cover several strategies for improving your CI times by making computers work harder for you, instead of having to painstakingly rewrite your tests. - video_id: ntTT64hK1no -- title: The Power of Visual Narrative - raw_title: "RailsConf 2021: The Power of Visual Narrative - Denise Yu" - speakers: - - Denise Yu - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/a36JR0-rxz0/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/a36JR0-rxz0/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/a36JR0-rxz0/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/a36JR0-rxz0/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/a36JR0-rxz0/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - As technologists, we spend a great deal of time trying to become better communicators. One secret to great communication is... to actually say less. And draw more! +# It doesn't have to be like this. In this talk I'll cover several strategies for improving your CI times by making computers work harder for you, instead of having to painstakingly rewrite your tests. +# video_id: ntTT64hK1no +# - title: The Power of Visual Narrative +# raw_title: "RailsConf 2021: The Power of Visual Narrative - Denise Yu" +# speakers: +# - Denise Yu +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/a36JR0-rxz0/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/a36JR0-rxz0/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/a36JR0-rxz0/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/a36JR0-rxz0/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/a36JR0-rxz0/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# As technologists, we spend a great deal of time trying to become better communicators. One secret to great communication is... to actually say less. And draw more! - I've been using sketchnotes, comics, and abstractly-technical doodles for the last few years to teach myself and others about technical concepts. Lo-fi sketches and lightweight storytelling devices can create unlikely audiences for any technical subject matter. I'll break down how my brain translates complex concepts into approachable art, and how anyone can start to do the same, regardless of previous artistic experience. - video_id: a36JR0-rxz0 -- title: "When words are more than just words: Don't BlackList us" - raw_title: - "RailsConf 2021: When words are more than just words: Don't BlackList - us - Espartaco Palma" - speakers: - - Espartaco Palma - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/nLGvYfeLMbM/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/nLGvYfeLMbM/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/nLGvYfeLMbM/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/nLGvYfeLMbM/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/nLGvYfeLMbM/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - ow we communicate words is important, the code, test and documentation needs to be part of the ongoing process to treat better our coworkers, be clear on what we do without the need of established words as "blacklist". Do you mean restricted? rejected? undesirable? think again. +# I've been using sketchnotes, comics, and abstractly-technical doodles for the last few years to teach myself and others about technical concepts. Lo-fi sketches and lightweight storytelling devices can create unlikely audiences for any technical subject matter. I'll break down how my brain translates complex concepts into approachable art, and how anyone can start to do the same, regardless of previous artistic experience. +# video_id: a36JR0-rxz0 +# - title: "When words are more than just words: Don't BlackList us" +# raw_title: +# "RailsConf 2021: When words are more than just words: Don't BlackList +# us - Espartaco Palma" +# speakers: +# - Espartaco Palma +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/nLGvYfeLMbM/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/nLGvYfeLMbM/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/nLGvYfeLMbM/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/nLGvYfeLMbM/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/nLGvYfeLMbM/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# ow we communicate words is important, the code, test and documentation needs to be part of the ongoing process to treat better our coworkers, be clear on what we do without the need of established words as "blacklist". Do you mean restricted? rejected? undesirable? think again. - Master, slave, fat, archaic, blacklist are just a sample of actions you may not be aware of hard are for underrepresented groups. We, your coworkers can't take it anymore because all the suffering it create on us, making us unproductive, feeling second class employee or simply sad. +# Master, slave, fat, archaic, blacklist are just a sample of actions you may not be aware of hard are for underrepresented groups. We, your coworkers can't take it anymore because all the suffering it create on us, making us unproductive, feeling second class employee or simply sad. - Let's make our code, a better code. - video_id: nLGvYfeLMbM -- title: How to A/B test with confidence - raw_title: "RailsConf 2021: How to A/B test with confidence - Frederick Cheung" - speakers: - - Frederick Cheung - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/IsgQ9RJ0rJE/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/IsgQ9RJ0rJE/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/IsgQ9RJ0rJE/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/IsgQ9RJ0rJE/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/IsgQ9RJ0rJE/maxresdefault.jpg - published_at: "2022-09-28" - description: |- - A/B tests should be a surefire way to make confident, data-driven decisions about all areas of your app - but it's really easy to make mistakes in their setup, implementation or analysis that can seriously skew results! +# Let's make our code, a better code. +# video_id: nLGvYfeLMbM +# - title: How to A/B test with confidence +# raw_title: "RailsConf 2021: How to A/B test with confidence - Frederick Cheung" +# speakers: +# - Frederick Cheung +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/IsgQ9RJ0rJE/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/IsgQ9RJ0rJE/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/IsgQ9RJ0rJE/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/IsgQ9RJ0rJE/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/IsgQ9RJ0rJE/maxresdefault.jpg +# published_at: "2022-09-28" +# description: |- +# A/B tests should be a surefire way to make confident, data-driven decisions about all areas of your app - but it's really easy to make mistakes in their setup, implementation or analysis that can seriously skew results! - After a quick recap of the fundamentals, you'll learn the procedural, technical and human factors that can affect the trustworthiness of a test. More importantly, I'll show you how to mitigate these issues with easy, actionable tips that will have you A/B testing accurately in no time! - video_id: IsgQ9RJ0rJE -- title: The Rising Storm of Ethics in Open Source - raw_title: - "RailsConf 2021: The Rising Storm of Ethics in Open Source - Coraline - Ada Ehmke" - speakers: - - Coraline Ada Ehmke - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/CX3htKOeB14/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/CX3htKOeB14/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/CX3htKOeB14/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/CX3htKOeB14/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/CX3htKOeB14/maxresdefault.jpg - published_at: "2022-10-12" - description: - 'The increased debate around ethical source threatens to divide the - OSS community. In his book "The Structure of Scientific Revolutions", philosopher - Thomas Kuhn posits that there are three possible solutions to a crisis like the - one we''re facing: procrastination, assimilation, or revolution. Which will we - choose as we prepare for the hard work of reconciling ethics and open source?' - video_id: CX3htKOeB14 -- title: Processing data at scale with Rails - raw_title: "RailsConf 2021: Processing data at scale with Rails - Corey Martin" - speakers: - - Corey Martin - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/8zTbcGDEDz4/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/8zTbcGDEDz4/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/8zTbcGDEDz4/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/8zTbcGDEDz4/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/8zTbcGDEDz4/maxresdefault.jpg - published_at: "2022-10-12" - description: - More of us are building apps to make sense of massive amounts of data. - From public datasets like lobbying records and insurance data, to shared resources - like Wikipedia, to private data from IoT, there is no shortage of large datasets. - This talk covers strategies for ingesting, transforming, and storing large amounts - of data, starting with familiar tools and frameworks like ActiveRecord, Sidekiq, - and Postgres. By turning a massive data job into successively smaller ones, you - can turn a data firehose into something manageable. - video_id: 8zTbcGDEDz4 -- title: Type Is Design:Fix Your UI with Better Typography and CSS - raw_title: - "RailsConf 2021: Type Is Design:Fix Your UI with Better Typography and - CSS - John Athayde" - speakers: - - John Athayde - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/1Pe7oGIKkqc/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/1Pe7oGIKkqc/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/1Pe7oGIKkqc/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/1Pe7oGIKkqc/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/1Pe7oGIKkqc/maxresdefault.jpg - published_at: "2022-10-12" - description: - The written word is the medium through which most information exchanges - hands in the tools we build. Digital letterforms can help or hinder the ability - for people to communicate and understand. We'll work through some typographic - principles and then apply them to the web with HTML and CSS for implementation. - We'll look at some of the newer OpenType features and touch on the future of digital - type, variable fonts, and more. - video_id: 1Pe7oGIKkqc -- title: 10 Years In - raw_title: - "RailsConf 2021: 10 Years In - The Realities of Running a Rails App Long - Term - Anthony Eden" - speakers: - - Anthony Eden - event_name: RailsConf 2021 - thumbnail_xs: https://i.ytimg.com/vi/BWNWOxU8KCo/default.jpg - thumbnail_sm: https://i.ytimg.com/vi/BWNWOxU8KCo/mqdefault.jpg - thumbnail_md: https://i.ytimg.com/vi/BWNWOxU8KCo/hqdefault.jpg - thumbnail_lg: https://i.ytimg.com/vi/BWNWOxU8KCo/sddefault.jpg - thumbnail_xl: https://i.ytimg.com/vi/BWNWOxU8KCo/maxresdefault.jpg - published_at: "2022-10-12" - description: - The first commit for the DNSimple application was performed in April - 2010, when Ruby on Rails was on version 2.3. Today DNSimple still runs Ruby on - Rails, version 6.0. The journey from of the DNSimple application to today's version - is a study in iterative development. In this talk I will walk through the evolution - of the DNSimple application as it has progressed in step with the development - of Ruby on Rails. I'll go over what's changed, what's stayed the same, what worked, - and where we went wrong. - video_id: BWNWOxU8KCo +# After a quick recap of the fundamentals, you'll learn the procedural, technical and human factors that can affect the trustworthiness of a test. More importantly, I'll show you how to mitigate these issues with easy, actionable tips that will have you A/B testing accurately in no time! +# video_id: IsgQ9RJ0rJE +# - title: The Rising Storm of Ethics in Open Source +# raw_title: +# "RailsConf 2021: The Rising Storm of Ethics in Open Source - Coraline +# Ada Ehmke" +# speakers: +# - Coraline Ada Ehmke +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/CX3htKOeB14/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/CX3htKOeB14/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/CX3htKOeB14/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/CX3htKOeB14/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/CX3htKOeB14/maxresdefault.jpg +# published_at: "2022-10-12" +# description: +# 'The increased debate around ethical source threatens to divide the +# OSS community. In his book "The Structure of Scientific Revolutions", philosopher +# Thomas Kuhn posits that there are three possible solutions to a crisis like the +# one we''re facing: procrastination, assimilation, or revolution. Which will we +# choose as we prepare for the hard work of reconciling ethics and open source?' +# video_id: CX3htKOeB14 +# - title: Processing data at scale with Rails +# raw_title: "RailsConf 2021: Processing data at scale with Rails - Corey Martin" +# speakers: +# - Corey Martin +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/8zTbcGDEDz4/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/8zTbcGDEDz4/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/8zTbcGDEDz4/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/8zTbcGDEDz4/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/8zTbcGDEDz4/maxresdefault.jpg +# published_at: "2022-10-12" +# description: +# More of us are building apps to make sense of massive amounts of data. +# From public datasets like lobbying records and insurance data, to shared resources +# like Wikipedia, to private data from IoT, there is no shortage of large datasets. +# This talk covers strategies for ingesting, transforming, and storing large amounts +# of data, starting with familiar tools and frameworks like ActiveRecord, Sidekiq, +# and Postgres. By turning a massive data job into successively smaller ones, you +# can turn a data firehose into something manageable. +# video_id: 8zTbcGDEDz4 +# - title: Type Is Design:Fix Your UI with Better Typography and CSS +# raw_title: +# "RailsConf 2021: Type Is Design:Fix Your UI with Better Typography and +# CSS - John Athayde" +# speakers: +# - John Athayde +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/1Pe7oGIKkqc/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/1Pe7oGIKkqc/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/1Pe7oGIKkqc/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/1Pe7oGIKkqc/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/1Pe7oGIKkqc/maxresdefault.jpg +# published_at: "2022-10-12" +# description: +# The written word is the medium through which most information exchanges +# hands in the tools we build. Digital letterforms can help or hinder the ability +# for people to communicate and understand. We'll work through some typographic +# principles and then apply them to the web with HTML and CSS for implementation. +# We'll look at some of the newer OpenType features and touch on the future of digital +# type, variable fonts, and more. +# video_id: 1Pe7oGIKkqc +# - title: 10 Years In +# raw_title: +# "RailsConf 2021: 10 Years In - The Realities of Running a Rails App Long +# Term - Anthony Eden" +# speakers: +# - Anthony Eden +# event_name: RailsConf 2021 +# thumbnail_xs: https://i.ytimg.com/vi/BWNWOxU8KCo/default.jpg +# thumbnail_sm: https://i.ytimg.com/vi/BWNWOxU8KCo/mqdefault.jpg +# thumbnail_md: https://i.ytimg.com/vi/BWNWOxU8KCo/hqdefault.jpg +# thumbnail_lg: https://i.ytimg.com/vi/BWNWOxU8KCo/sddefault.jpg +# thumbnail_xl: https://i.ytimg.com/vi/BWNWOxU8KCo/maxresdefault.jpg +# published_at: "2022-10-12" +# description: +# The first commit for the DNSimple application was performed in April +# 2010, when Ruby on Rails was on version 2.3. Today DNSimple still runs Ruby on +# Rails, version 6.0. The journey from of the DNSimple application to today's version +# is a study in iterative development. In this talk I will walk through the evolution +# of the DNSimple application as it has progressed in step with the development +# of Ruby on Rails. I'll go over what's changed, what's stayed the same, what worked, +# and where we went wrong. +# video_id: BWNWOxU8KCo diff --git a/data_preparation/organisations.yml b/data_preparation/organisations.yml index be8a91da..cca97c27 100644 --- a/data_preparation/organisations.yml +++ b/data_preparation/organisations.yml @@ -1,12 +1,12 @@ --- -# edit this file to add your conference -- name: RubyConf AU - website: https://www.rubyconf.org.au/ - twitter: rubyconf_au - kind: conference # conference, meetup - frequency: yearly # yearly, monthly - playlist_matcher: # leave empty if the channel has only one event, otherwise use a regex to match the playlist name - default_country_code: AU - youtube_channel_name: RubyAustralia - slug: rubyconf-au +- name: RailsWorld + website: https://rubyonrails.org/world + twitter: rails + kind: conference + frequency: yearly + playlist_matcher: + default_country_code: + youtube_channel_name: railsofficial + slug: railsworld language: english + youtube_channel_id: UC9zbLaqReIdoFfzdUbh13Nw diff --git a/db/migrate/20230625215935_add_twitter_to_organisation.rb b/db/migrate/20230625215935_add_twitter_to_organisation.rb new file mode 100644 index 00000000..517d941e --- /dev/null +++ b/db/migrate/20230625215935_add_twitter_to_organisation.rb @@ -0,0 +1,6 @@ +class AddTwitterToOrganisation < ActiveRecord::Migration[7.1] + def change + add_column :organisations, :twitter, :string, default: "", null: false + add_column :organisations, :language, :string, default: "", null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 57157f5e..e1714080 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -82,6 +82,8 @@ t.string "youtube_channel_id", default: "", null: false t.string "youtube_channel_name", default: "", null: false t.string "slug", default: "", null: false + t.string "twitter", default: "", null: false + t.string "language", default: "", null: false t.index ["frequency"], name: "index_organisations_on_frequency" t.index ["kind"], name: "index_organisations_on_kind" t.index ["name"], name: "index_organisations_on_name" diff --git a/db/seeds.rb b/db/seeds.rb index 50afd5b7..dc9ac66a 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,25 +1,3 @@ -## This file should ensure the existence of records required to run the application in every environment (production, -# development, test). The code here should be idempotent so that it can be executed at any point in every environment. -# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). -# -# Example: -# -# ["Action", "Comedy", "Drama", "Horror"].each do |genre_name| -# MovieGenre.find_or_create_by!(name: genre_name) -# end - -# open the yaml file in ../data/rails_conf_2021.yml - -# scp root@91.107.208.207:/var/lib/docker/volumes/storage/_data/production_rubyvideo.sqlite3 /storage/backup/production_rubyvideo.sqlite3 - -# if Rails.env.development? -# SpeakerTalk.delete_all -# Speaker.delete_all -# Talk.delete_all -# Event.delete_all -# Organisation.delete_all -# end - speakers = YAML.load_file("#{Rails.root}/data/speakers.yml") organisations = YAML.load_file("#{Rails.root}/data/organisations.yml") videos_to_ignore = YAML.load_file("#{Rails.root}/data/videos_to_ignore.yml") @@ -34,57 +12,49 @@ end end -MeiliSearch::Rails.deactivate! do - organisations.each do |organisation| - organisation = Organisation.find_or_create_by!(name: organisation["name"]) do |org| - org.website = organisation["website"] - # org.twitter = organisation["twitter"] - org.youtube_channel_name = organisation["youtube_channel_name"] - org.kind = organisation["kind"] - org.frequency = organisation["frequency"] - org.youtube_channel_id = organisation["youtube_channel_id"] - # org.language = organisation["language"] - end +organisations.each do |organisation| + organisation = Organisation.find_or_create_by!(name: organisation["name"]) do |org| + org.website = organisation["website"] + org.twitter = organisation["twitter"] + org.youtube_channel_name = organisation["youtube_channel_name"] + org.kind = organisation["kind"] + org.frequency = organisation["frequency"] + org.youtube_channel_id = organisation["youtube_channel_id"] + org.language = organisation["language"] + end - events = YAML.load_file("#{Rails.root}/data/#{organisation.slug}/playlists.yml") + events = YAML.load_file("#{Rails.root}/data/#{organisation.slug}/playlists.yml") - events.each do |event| - event = Event.find_or_create_by!(name: event["title"]) do |evt| - evt.date = event["published_at"] - evt.organisation = organisation - end + events.each do |event| + event = Event.find_or_create_by!(name: event["title"]) do |evt| + evt.date = event["published_at"] + evt.organisation = organisation + end - puts event.slug - talks = YAML.load_file("#{Rails.root}/data/#{organisation.slug}/#{event.slug}/videos.yml") + events = YAML.load_file("#{Rails.root}/data/#{organisation.slug}/playlists.yml") - talks.each do |talk_data| - next if talk_data["title"].blank? || videos_to_ignore.include?(talk_data["video_id"]) + talks.each do |talk_data| + next if talk_data["title"].blank? || videos_to_ignore.include?(talk_data["video_id"]) - talk = Talk.find_or_create_by!(title: talk_data["title"], event: event) do |tlk| - tlk.description = talk_data["description"] - tlk.year = talk_data["year"] - tlk.video_id = talk_data["video_id"] - tlk.video_provider = :youtube - tlk.date = talk_data["published_at"] - tlk.thumbnail_xs = talk_data["thumbnail_xs"] || "" - tlk.thumbnail_sm = talk_data["thumbnail_sm"] || "" - tlk.thumbnail_md = talk_data["thumbnail_md"] || "" - tlk.thumbnail_lg = talk_data["thumbnail_lg"] || "" - tlk.thumbnail_xl = talk_data["thumbnail_xl"] || "" - tlk.slug = talk_data["raw_title"].parameterize - end + talk = Talk.find_or_create_by!(title: talk_data["title"], event: event) do |tlk| + tlk.description = talk_data["description"] + tlk.year = talk_data["year"] + tlk.video_id = talk_data["video_id"] + tlk.video_provider = :youtube + tlk.date = talk_data["published_at"] + tlk.slug = talk_data["raw_title"].parameterize + end - talk_data["speakers"]&.each do |speaker_name| - next if speaker_name.blank? + talk_data["speakers"]&.each do |speaker| + next if speaker.blank? - speaker = Speaker.find_by(slug: speaker_name.parameterize) || Speaker.find_or_create_by(name: speaker_name.strip) - SpeakerTalk.create(speaker: speaker, talk: talk) if speaker - end - rescue ActiveRecord::RecordInvalid => e - puts "#{talk.title} is duplicated #{e.message}" + new_speaker = Speaker.find_or_create_by(slug: speaker.parameterize.strip) + SpeakerTalk.create!(speaker: new_speaker, talk: talk) end end end +rescue ActiveRecord::RecordInvalid => e + puts "#{organisation[:name]} is duplicated #{e.message}" end # reindex all talk in MeiliSearch diff --git a/docs/contributing.md b/docs/contributing.md index 8c777119..5cfd76fc 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -2,9 +2,126 @@ This guide provides steps on how to contribute new videos to the platform. If you wish to make a contribution, please submit a Pull Request (PR) with the necessary information detailed below. +There are a few scripts available to help you build those data files by scraping the Youtube API. To use them, you must first create a Youtube API Key and add it to your .env file. Here are the guidlines to get a key https://developers.google.com/youtube/registering_an_application + +``` +YOUTUBE_API_KEY=some_key +``` + +## Proposed Workflow + +The proposed workflow is to create the data files in the `/data_preparation` folder using the scripts. Once you have validated those files and eventually cleaned a few errors, you can copy them to `/data` and open a PR with that content. + +### Step 1 - Prepare the Organization + +Everything starts with an organization. An organization is the entity organizing the events. + +Add the following information to the `data_preparation/organisations.yml` file: + +```yml +- name: Railsconf + website: https://railsconf.org/ + twitter: railsconf + youtube_channel_name: confreaks + kind: conference # Choose either 'conference' or 'meetup' + frequency: yearly # Specify if it's 'yearly' or 'monthly'; if you need something else, open a PR with this new frequency + language: english # Default language of the talks from this conference + default_country_code: AU # default country to be assigned to the associated events +``` + +Then run this script: + +```bash +rails runner script/prepare_organisations.rb +``` + +This will update your `data_preparation/organisations.yml` file with the youtube_channel_id information. + +### Step 2 - Create the Playlists + +This workflow assumes the Youtube channel is organized by playlist with 1 event equating to 1 playlist. Run the following script to create the playlist file: + +``` +rails runner script/create_playlists.rb +``` + +You will end up with a data structure like this: + +``` +data/ +├── organisations.yml +├── railsconf + └── playlists.yml +``` + +At this point, go through the `playlists.yml` and perform a bit of verification and editing: + +- Add missing descriptions. +- Ensure all playlists are relevant. +- Ensure the year is correct. + +**Multi-Events Channels** + +Some YouTube channels will host multiple conferences. For example, RubyCentral hosts Rubyconf and RailsConf. To cope with that, you can specify in the organization a regex to filter the playlists of this channel. The regex is case insensitive. + +Here is an example for RailsConf/RubyConf: + +```yml +- name: RailsConf + youtube_channel_name: confreaks + playlist_matcher: rails # will only select the playlist where there title match rails + youtube_channel_id: UCWnPjmqvljcafA0z2U1fwKQ + ... +- name: RubyConf + youtube_channel_name: confreaks + playlist_matcher: ruby # will only select the playlist where there title match ruby + youtube_channel_id: UCWnPjmqvljcafA0z2U1fwKQ + ... +``` + +### Step 3 - Create the Videos + +Once your playlists are currated, you can run the next script to extract the video information. It will iterate the playlist and extract all videos. + +```bash +rails runner script/extract_videos.rb +``` + +At this point you have this structure + +``` +data/ +├── organisations.yml +├── railsconf +│ ├── railsconf-2021 +│ │ └── videos.yml +│ ├── railsconf-2022 +│ │ └── videos.yml +│ ├── playlists.yml +├── speakers.yml +``` + +To extract a maximum of information from the Youbute metadata, the raw video information is parsed by a class `Youtube::VideoMetadata`. This class will try to extract speakers from the title. This is the default parser but sometime the speakers ar you can create a new class and specify it in the `playlists.yml` file. + +```yml +- id: PL9_jjLrTYxc2uUcqG2wjZ1ppt-TkFG-gm + title: RubyConf AU 2015 + description: "" + published_at: "2017-05-20" + channel_id: UCr38SHAvOKMDyX3-8lhvJHA + year: "2015" + videos_count: 21 + slug: rubyconf-au-2015 + metadata_parser: "Youtube::VideoMetadata::RubyConfAu" # custom parser +``` + +### Step 4 - move the data + +Once the data is prepared you can move it to the main `/data` folder + ### Organization -Firstly, the organization associated with the videos needs to be added to [organisations.yml](/data/organisations.yml). Here is a typical example using Railsconf as a reference: +Firstly, the organization associated with the videos needs to be added to [organisations.yml](/data/organisations.yml). Here is a typical example using RailsConf as a reference: ```yml - name: Railsconf @@ -15,9 +132,11 @@ Firstly, the organization associated with the videos needs to be added to [organ youtube_channel_id: UCWnPjmqvljcafA0z2U1fwKQ # This is optional kind: conference # Choose either 'conference' or 'meetup' frequency: yearly # Specify if it's 'yearly' or 'monthly' - language: english # Default language of the talks from this conference + language: english # Default language of ``` +Finding the youtube_channel_id is not always easy, you might have to dig into There is a script available + ### Playlist For each organisation create a folder using the slug diff --git a/script/create_playlists.rb b/script/create_playlists.rb new file mode 100644 index 00000000..8825db4a --- /dev/null +++ b/script/create_playlists.rb @@ -0,0 +1,19 @@ +# start this script with the rails runner command +# rails runner script/create_playlists.rb +# +organisations = YAML.load_file("#{Rails.root}/data_preparation/organisations.yml") + +# create a directory for each organisation and add a playlist.yml file +def create_playlists(organisation) + playlists = Youtube::Playlists.new.all(channel_id: organisation["youtube_channel_id"], title_matcher: organisation["playlist_matcher"]) + playlists.sort_by! { |playlist| playlist.year.to_i } + playlists.select! { |playlist| playlist.videos_count.positive? } + + File.write("#{Rails.root}/data_preparation/#{organisation["slug"]}/playlists.yml", playlists.map { |item| item.to_h.stringify_keys }.to_yaml) +end + +# This is the main loop +organisations.each do |organisation| + FileUtils.mkdir_p(File.join("#{Rails.root}/data_preparation", organisation["slug"])) + create_playlists(organisation) +end diff --git a/script/extract_videos.rb b/script/extract_videos.rb new file mode 100644 index 00000000..1d232bd0 --- /dev/null +++ b/script/extract_videos.rb @@ -0,0 +1,33 @@ +# start this script with the rails runner command +# $ rails runner script/extract_videos.rb +# Once you have created the playlists it will retrieve the videos +# + +organisations = YAML.load_file("#{Rails.root}/data_preparation/organisations.yml") + +# for each playlist create a directory and add a videos.yml file +def create_playlist_items(playlist, organisation_slug) + puts "extracting videos for playlist : #{playlist.title}" + playlist_videos = Youtube::PlaylistItems.new.all(playlist_id: playlist.id) + playlist_videos.sort_by! { |video| video.published_at } + + FileUtils.mkdir_p(File.join(Rails.root, "data_preparation", organisation_slug, playlist.slug)) + + # by default we use Youtube::VideoMetadata but in playlists.yml you can specify a different parser + parser = playlist.metadata_parser.constantize + playlist_videos.map! { |metadata| parser.new(metadata: metadata, event_name: playlist.title).cleaned } + + path = "#{File.join(Rails.root, "data_preparation", organisation_slug, playlist.slug)}/videos.yml" + puts "#{playlist_videos.length} videos have ben added to : #{playlist.title}" + File.write(path, playlist_videos.map { |item| item.to_h.stringify_keys }.to_yaml) +end + +# this is the main loop +organisations.each do |organisation| + puts "extracting videos for #{organisation["slug"]}" + playlists = YAML.load_file("#{Rails.root}/data_preparation/#{organisation["slug"]}/playlists.yml").map { |item| OpenStruct.new(item) } + + playlists.each do |playlist| + create_playlist_items(playlist, organisation["slug"]) + end +end diff --git a/script/prepare_organisations.rb b/script/prepare_organisations.rb index 7c0ef8da..e6445451 100644 --- a/script/prepare_organisations.rb +++ b/script/prepare_organisations.rb @@ -1,17 +1,25 @@ # start this script with the rails runner command # $ rails runner script/prepare_organisations.rb -# it will load the data_tmp/organisations.yml file and add the youtube_channel_id to each organisation -# this simplify the workflow as this id is not always easy to find from the channel name # -organisations = YAML.load_file("#{Rails.root}/data_tmp/organisations.yml") +organisations = YAML.load_file("#{Rails.root}/data_preparation/organisations.yml") +def add_youtube_channel_id(organisation) + return organisation if organisation["youtube_channel_id"].present? + + youtube_channel_id = Youtube::Channels.new.id_by_name(channel_name: organisation["youtube_channel_name"]) + + puts "youtube_channel_id: #{youtube_channel_id} is added to #{organisation["name"]}" + organisation["youtube_channel_id"] = youtube_channel_id + organisation +end # add youtube_channel_id to organisations if missing organisations.map! do |organisation| + puts "processing #{organisation["name"]}" organisation["slug"] ||= organisation["name"].parameterize - organisation["youtube_channel_id"] ||= Youtube::Channels.new.id_by_name(channel_name: organisation["youtube_channel"]) - organisation + add_youtube_channel_id(organisation) end +puts "processing all organisations done writing the result to #{Rails.root}/data_preparation/organisations.yml" # save the Youtube channel id to the data_tmp/organisations.yml file -File.write("#{Rails.root}/data_tmp/organisations.yml", organisations.to_yaml) +File.write("#{Rails.root}/data_preparation/organisations.yml", organisations.to_yaml) diff --git a/test/models/youtube/video_metadata_rails_worldtest.rb b/test/models/youtube/video_metadata_rails_worldtest.rb new file mode 100644 index 00000000..e5e8ffb9 --- /dev/null +++ b/test/models/youtube/video_metadata_rails_worldtest.rb @@ -0,0 +1,90 @@ +# rubocop:disable Layout/LineLength +# == Schema Information +# +# Table name: events +# +# id :integer not null, primary key +# date :date +# city :string +# country_code :string +# organisation_id :integer not null +# created_at :datetime not null +# updated_at :datetime not null +# name :string default(""), not null +# slug :string default(""), not null +# +# rubocop:enable Layout/LineLength +require "test_helper" + +class Youtube::VideoMetadataRailsWorldTest < ActiveSupport::TestCase + test "remove the event name from the title and preserve the keynote mention" do + metadata = OpenStruct.new({ + title: "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't Do", + description: "RailsConf 2021 lorem ipsum" + }) + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RailsConf 2021") + assert_equal results.cleaned.title, "Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't Do" + assert results.keynote? + end + + test "extract mutiple speakers" do + metadata = OpenStruct.new({ + title: "RailsConf 2022 - Spacecraft! The care and keeping of a legacy ... by Annie Lydens & Jenny Allar", + description: "lorem ipsum" + }) + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RailsConf 2022").cleaned + assert_equal results.title, "Spacecraft! The care and keeping of a legacy ..." + assert_equal ["Annie Lydens", "Jenny Allar"], results.speakers + end + + test "extract mutiple speakers with 'and' in the name" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2013: From Stubbies to Longnecks by Geoffrey Giesemann", + description: "lorem ipsum" + }) + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RubyConf AU 2013").cleaned + assert_equal results.title, "From Stubbies to Longnecks" + assert_equal ["Geoffrey Giesemann"], results.speakers + end + + test "lighting talks" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2013: Lightning Talks", + description: "lorem ipsum" + }) + + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RubyConf AU 2013").cleaned + assert_equal results.title, "Lightning Talks" + assert_equal [], results.speakers + end + + test "speaker name containing and" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2017 - Writing a Gameboy emulator in Ruby, by Colby Swandale" + }) + + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RubyConf AU 2017").cleaned + assert_equal ["Colby Swandale"], results.speakers + assert_equal results.title, "Writing a Gameboy emulator in Ruby" + end + + test "speaker name containing &" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2017 - VR backend rails vs serverless: froth or future? Ram Ramakrishnan & Janet Brown" + }) + + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RubyConf AU 2017").cleaned + assert_equal ["Ram Ramakrishnan", "Janet Brown"], results.speakers + assert_equal results.title, "VR backend rails vs serverless: froth or future?" + end + + test "By separator should be case insensitive" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2017 - Simple and Awesome Database Tricks, By Barrett Clark" + }) + + results = Youtube::VideoMetadataRailsWorld.new(metadata: metadata, event_name: "RubyConf AU 2017").cleaned + assert_equal ["Barrett Clark"], results.speakers + assert_equal results.title, "Simple and Awesome Database Tricks" + end +end diff --git a/test/models/youtube/video_metadata_test.rb b/test/models/youtube/video_metadata_test.rb new file mode 100644 index 00000000..47f946a9 --- /dev/null +++ b/test/models/youtube/video_metadata_test.rb @@ -0,0 +1,90 @@ +# rubocop:disable Layout/LineLength +# == Schema Information +# +# Table name: events +# +# id :integer not null, primary key +# date :date +# city :string +# country_code :string +# organisation_id :integer not null +# created_at :datetime not null +# updated_at :datetime not null +# name :string default(""), not null +# slug :string default(""), not null +# +# rubocop:enable Layout/LineLength +require "test_helper" + +class Youtube::VideoMetadataTest < ActiveSupport::TestCase + test "remove the event name from the title and preserve the keynote mention" do + metadata = OpenStruct.new({ + title: "RailsConf 2021: Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't Do", + description: "RailsConf 2021 lorem ipsum" + }) + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RailsConf 2021") + assert_equal results.cleaned.title, "Keynote: Eileen Uchitelle - All the Things I Thought I Couldn't Do" + assert results.keynote? + end + + test "extract mutiple speakers" do + metadata = OpenStruct.new({ + title: "RailsConf 2022 - Spacecraft! The care and keeping of a legacy ... by Annie Lydens & Jenny Allar", + description: "lorem ipsum" + }) + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RailsConf 2022").cleaned + assert_equal results.title, "Spacecraft! The care and keeping of a legacy ..." + assert_equal ["Annie Lydens", "Jenny Allar"], results.speakers + end + + test "extract mutiple speakers with 'and' in the name" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2013: From Stubbies to Longnecks by Geoffrey Giesemann", + description: "lorem ipsum" + }) + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RubyConf AU 2013").cleaned + assert_equal results.title, "From Stubbies to Longnecks" + assert_equal ["Geoffrey Giesemann"], results.speakers + end + + test "lighting talks" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2013: Lightning Talks", + description: "lorem ipsum" + }) + + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RubyConf AU 2013").cleaned + assert_equal results.title, "Lightning Talks" + assert_equal [], results.speakers + end + + test "speaker name containing and" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2017 - Writing a Gameboy emulator in Ruby, by Colby Swandale" + }) + + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RubyConf AU 2017").cleaned + assert_equal ["Colby Swandale"], results.speakers + assert_equal results.title, "Writing a Gameboy emulator in Ruby" + end + + test "speaker name containing &" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2017 - VR backend rails vs serverless: froth or future? Ram Ramakrishnan & Janet Brown" + }) + + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RubyConf AU 2017").cleaned + assert_equal ["Ram Ramakrishnan", "Janet Brown"], results.speakers + assert_equal results.title, "VR backend rails vs serverless: froth or future?" + end + + test "By separator should be case insensitive" do + metadata = OpenStruct.new({ + title: "RubyConf AU 2017 - Simple and Awesome Database Tricks, By Barrett Clark" + }) + + results = Youtube::VideoMetadata.new(metadata: metadata, event_name: "RubyConf AU 2017").cleaned + assert_equal ["Barrett Clark"], results.speakers + assert_equal results.title, "Simple and Awesome Database Tricks" + end +end diff --git a/test/tasks/db_seed_test.rb b/test/tasks/db_seed_test.rb new file mode 100644 index 00000000..549a910e --- /dev/null +++ b/test/tasks/db_seed_test.rb @@ -0,0 +1,22 @@ +require "test_helper" + +class DbSeedTest < ActiveSupport::TestCase + setup do + @event = events(:one) + Rails.application.load_tasks + Rake::Task["db:environment:set"].reenable + Rake::Task["db:schema:load"].invoke + end + + test "db:seed runs successfully" do + assert_nothing_raised do + Rake::Task["db:seed"].invoke + end + + # Ensuring idempotency + assert_no_difference "Talk.maximum(:created_at)" do + Rake::Task["db:seed"].reenable + Rake::Task["db:seed"].invoke + end + end +end