diff --git a/app/assets/images/events/railsconf/railsconf-2024/poster.webp b/app/assets/images/events/railsconf/railsconf-2024/poster.webp new file mode 100644 index 000000000..f3f5f5642 Binary files /dev/null and b/app/assets/images/events/railsconf/railsconf-2024/poster.webp differ diff --git a/app/controllers/events/schedules_controller.rb b/app/controllers/events/schedules_controller.rb new file mode 100644 index 000000000..5f0300093 --- /dev/null +++ b/app/controllers/events/schedules_controller.rb @@ -0,0 +1,39 @@ +class Events::SchedulesController < ApplicationController + skip_before_action :authenticate_user!, only: %i[index show] + before_action :set_event, only: %i[index show] + + def index + @day = @days.first + + set_talks(@day) + end + + def show + @day = @days.find { |day| day["date"] == params[:date] } + + set_talks(@day) + end + + private + + def set_event + @event = Event.includes(organisation: :events).find_by!(slug: params[:event_slug]) + + @days = @event.schedule.days + @tracks = @event.schedule.tracks + + redirect_to schedule_event_path(@event.canonical), status: :moved_permanently if @event.canonical.present? + redirect_to event_path(@event), notice: "Event doesn't have a schedule" unless @event.schedule.exist? + end + + def set_talks(day) + raise "day blank with #{params[:date]}" if day.blank? + + index = @days.index(day) + + talk_count = @event.schedule.talk_offsets[index] + talk_offset = @event.schedule.talk_offsets.first(index).sum + + @talks = @event.talks_in_running_order.to_a.from(talk_offset).first(talk_count) + end +end diff --git a/app/controllers/events/talks_controller.rb b/app/controllers/events/talks_controller.rb index 355182e97..a40846f91 100644 --- a/app/controllers/events/talks_controller.rb +++ b/app/controllers/events/talks_controller.rb @@ -4,7 +4,7 @@ class Events::TalksController < ApplicationController before_action :set_event, only: %i[index] def index - @talks = @event.talks + @talks = @event.talks_in_running_order @active_talk = Talk.find_by(slug: params[:active_talk]) end diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index f1ba8de36..fbb886cd9 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -16,12 +16,19 @@ def index def show set_meta_tags(@event) - event_talks = @event.talks.where(meta_talk: false) + event_talks = if @event.organisation.meetup? + @event.talks_in_running_order.where(meta_talk: true).or( + @event.talks_in_running_order.where.not(video_provider: "parent") + ).order(date: :desc) + else + @event.talks_in_running_order.order(date: :asc) + end + if params[:q].present? talks = event_talks.pagy_search(params[:q]) @pagy, @talks = pagy_meilisearch(talks, limit: 21) else - @pagy, @talks = pagy(event_talks.with_essential_card_data.order(date: :desc), limit: 21) + @pagy, @talks = pagy(event_talks.with_essential_card_data, limit: 21) end end diff --git a/app/models/event.rb b/app/models/event.rb index acd0710c5..b4275b702 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -42,6 +42,12 @@ class Event < ApplicationRecord belongs_to :canonical, class_name: "Event", optional: true has_many :aliases, class_name: "Event", foreign_key: "canonical_id" + has_object :schedule + + def talks_in_running_order + talks.in_order_of(:video_id, video_ids_in_running_order) + end + # validations validates :name, presence: true VALID_COUNTRY_CODES = ISO3166::Country.codes @@ -68,6 +74,30 @@ def managed_by?(user) Current.user&.admin? end + def data_folder + Rails.root.join("data", organisation.slug, slug) + end + + def videos_file? + videos_file_path.exist? + end + + def videos_file_path + data_folder.join("videos.yml") + end + + def videos_file + YAML.load_file(videos_file_path) + end + + def video_ids_in_running_order + videos_file.flat_map { |talk| + [talk.dig("video_id"), *talk["talks"]&.map { |child_talk| + child_talk.dig("video_id") + }] + } + end + def suggestion_summary <<~HEREDOC Event: #{name} diff --git a/app/models/event/schedule.rb b/app/models/event/schedule.rb new file mode 100644 index 000000000..324b9d30e --- /dev/null +++ b/app/models/event/schedule.rb @@ -0,0 +1,29 @@ +class Event::Schedule < ActiveRecord::AssociatedObject + def file_path + event.data_folder.join("schedule.yml") + end + + def exist? + file_path.exist? + end + + def file + YAML.load_file(file_path) + end + + def days + file.fetch("days", []) + end + + def tracks + file.fetch("tracks", []) + end + + def talk_offsets + days.map { |day| + grid = day.fetch("grid", []) + + grid.sum { |item| item.fetch("items", []).any? ? 0 : item["slots"] } + } + end +end diff --git a/app/views/events/_navigation.html.erb b/app/views/events/_navigation.html.erb index 398a9dfff..3caa9e194 100644 --- a/app/views/events/_navigation.html.erb +++ b/app/views/events/_navigation.html.erb @@ -2,8 +2,11 @@ <%= active_link_to "Talks", event_path(event), class: "tab", active_class: "tab-active", role: "tab" %> <%= active_link_to "Speakers", event_speakers_path(event), class: "tab", active_class: "tab-active", role: "tab" %> + <% if event.schedule.exist? %> + <%= active_link_to "Schedule", event_schedules_path(event), class: "tab", active_class: "tab-active", role: "tab" %> + <% end %> + <% if false %> - Schedule Organizers Photos Sponsors diff --git a/app/views/events/schedules/_day.html.erb b/app/views/events/schedules/_day.html.erb new file mode 100644 index 000000000..4f7203300 --- /dev/null +++ b/app/views/events/schedules/_day.html.erb @@ -0,0 +1,94 @@ +<% talk_count ||= 0 %> +<% date_string = Date.parse(day.dig("date")).strftime("%A (%b %d, %Y)") %> +<% day_string = "#{day.dig("name")} - #{date_string}" %> + +
+

<%= day_string %>

+ + <% date = day.dig("date") %> + <% max_cols = day.dig("grid").map { |grid| grid["slots"] }.max %> + <% multi_track = max_cols > 1 %> + +
+ <% day.dig("grid").each do |grid| %> + <% start_time = grid["start_time"] %> + <% end_time = grid["end_time"] %> + <% slots = grid["slots"] %> + <% items = grid.fetch("items", []) %> + <% colspan = (slots != max_cols) ? (max_cols / slots) : 1 %> + +
+
+
+ <%= [start_time, end_time].uniq.join(" - ") %> +
+
+ +
+ <% slots.times do |i| %> + <% talk = items.any? ? nil : talks[talk_count] %> + <% talk_tag = items.any? ? :div : :a %> + <% href_attrs = talk ? {href: talk_path(talk, back_to: day_event_schedules_path(event, date), back_to_title: "Schedule: #{day_string}")} : {href: "#"} %> + <% css_classes = token_list("group bg-white text-black text-xs p-3 content-center", "hover:bg-primary hover:text-white" => items.none?) %> + + <%= content_tag talk_tag, **href_attrs, class: css_classes, data: {turbo_frame: "_top"} do %> + <% if items.any? %> + <% item = items[i] %> + +
+ <% if item.is_a?(String) %> + <%= item %> + <% else %> + <%= item.fetch("title", "no title") %> +
+ <%= markdown_to_html(item.fetch("description", "-")) %> +
+ <% end %> +
+ <% elsif talk %> + <% talk_track = talk.static_metadata&.track %> + <% track = talk_track && tracks.find { |track| track["name"] == talk_track } %> + + <% if track && talk_track %> + ; color: <%= track["text_color"] %>"> + <%= talk_track %> + + + <% if multi_track %> +
 
+ <% end %> + <% elsif slots == max_cols && multi_track %> +   +
 
+ <% end %> + +
+
<%= talk.title %>

+
+ <% talk.speakers.each do |speaker| %> + +
+
+ <%= image_tag speaker.avatar_url(size: 48) %> +
+
+ + <% end %> +
+ +
+ <%= talk.speakers.map(&:name).join(", ") %> +
+
+ + <% talk_count += 1 %> + <% else %> + No talk found + <% end %> + <% end %> + <% end %> +
+
+ <% end %> +
+
diff --git a/app/views/events/schedules/_schedule.html.erb b/app/views/events/schedules/_schedule.html.erb new file mode 100644 index 000000000..a0a811a2d --- /dev/null +++ b/app/views/events/schedules/_schedule.html.erb @@ -0,0 +1,24 @@ +<%= render partial: "events/header", locals: {event: event} %> + +<%= turbo_frame_tag dom_id(event), data: {turbo_action: "advance", turbo_frame: "_top"} do %> +
+ <%= render partial: "events/navigation", locals: {event: event} %> + +
+
+
+
+ <% days.each_with_index do |day, index| %> + <% date_string = Date.parse(day.dig("date")).strftime("%A (%b %d, %Y)") %> + <% kind = (day == current_day) ? :primary : :none %> + + <%= ui_button date_string, url: day_event_schedules_path(event, day.dig("date")), kind: kind, size: :sm, role: :button %> + <% end %> +
+ + <%= render partial: "day", locals: {event: event, day: current_day, tracks: tracks, talks: talks} %> +
+
+
+
+<% end %> diff --git a/app/views/events/schedules/index.html.erb b/app/views/events/schedules/index.html.erb new file mode 100644 index 000000000..72730ccbe --- /dev/null +++ b/app/views/events/schedules/index.html.erb @@ -0,0 +1 @@ +<%= render partial: "schedule", locals: {event: @event, days: @days, tracks: @tracks, talks: @talks, current_day: @day} %> diff --git a/app/views/events/schedules/show.html.erb b/app/views/events/schedules/show.html.erb new file mode 100644 index 000000000..72730ccbe --- /dev/null +++ b/app/views/events/schedules/show.html.erb @@ -0,0 +1 @@ +<%= render partial: "schedule", locals: {event: @event, days: @days, tracks: @tracks, talks: @talks, current_day: @day} %> diff --git a/app/views/talks/video_providers/_not_recorded.html.erb b/app/views/talks/video_providers/_not_recorded.html.erb index 0007694ca..8c53a94e2 100644 --- a/app/views/talks/video_providers/_not_recorded.html.erb +++ b/app/views/talks/video_providers/_not_recorded.html.erb @@ -6,6 +6,6 @@ <%= fa("video-slash", size: :lg, class: "fill-white") %> - Unfortunately, this talk was not recorded. + Unfortunately, this <%= talk.kind.humanize.downcase %> was not recorded. diff --git a/config/routes.rb b/config/routes.rb index 4b786eb6f..db0f048f3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -54,11 +54,15 @@ resources :speakers, param: :slug, only: [:index, :show, :update, :edit] resources :events, param: :slug, only: [:index, :show, :update, :edit] do scope module: :events do + resources :schedules, only: [:index], path: "/schedule" do + get "/day/:date", action: :show, on: :collection, as: :day + end resources :speakers, only: [:index] resources :talks, only: [:index] end end resources :organisations, param: :slug, only: [:index, :show] + namespace :speakers do resources :enhance, only: [:update], param: :slug end diff --git a/data/balkanruby/balkanruby-2024/schedule.yml b/data/balkanruby/balkanruby-2024/schedule.yml new file mode 100644 index 000000000..5d9a709de --- /dev/null +++ b/data/balkanruby/balkanruby-2024/schedule.yml @@ -0,0 +1,154 @@ +# Schedule: https://web.archive.org/web/20240423072255/https://balkanruby.com/ + +days: + - name: "Day 1" + date: "2024-04-26" + grid: + - start_time: "09:00" + end_time: "10:00" + slots: 1 + items: + - Registration + + - start_time: "10:00" + end_time: "10:10" + slots: 1 + items: + - Introduction + + - start_time: "10:10" + end_time: "10:40" + slots: 1 + + - start_time: "10:40" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "12:00" + slots: 1 + items: + - Break + + - start_time: "12:00" + end_time: "12:30" + slots: 1 + + - start_time: "12:30" + end_time: "14:30" + slots: 1 + items: + - Lunch break + + - start_time: "14:30" + end_time: "15:00" + slots: 1 + + - start_time: "15:00" + end_time: "15:30" + slots: 1 + items: + - Break + + - start_time: "15:30" + end_time: "16:00" + slots: 1 + + - start_time: "16:00" + end_time: "16:40" + slots: 1 + items: + - Coffee break + + - start_time: "16:40" + end_time: "17:10" + slots: 1 + + - start_time: "17:10" + end_time: "17:10" + slots: 1 + items: + - Closing + + - name: "Day 2" + date: "2024-04-27" + grid: + - start_time: "09:00" + end_time: "10:00" + slots: 1 + items: + - Registration + + - start_time: "10:00" + end_time: "10:10" + slots: 1 + items: + - Introduction + + - start_time: "10:10" + end_time: "10:40" + slots: 1 + + - start_time: "10:40" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "12:00" + slots: 1 + items: + - Break + + - start_time: "12:00" + end_time: "12:30" + slots: 1 + + - start_time: "12:30" + end_time: "14:30" + slots: 1 + items: + - Lunch break + + - start_time: "14:30" + end_time: "15:00" + slots: 1 + + - start_time: "15:00" + end_time: "15:30" + slots: 1 + items: + - Break + + - start_time: "15:30" + end_time: "16:00" + slots: 1 + + - start_time: "16:00" + end_time: "16:40" + slots: 1 + items: + - Coffee break + + - start_time: "16:40" + end_time: "17:10" + slots: 1 + + - start_time: "17:10" + end_time: "17:10" + slots: 1 + items: + - Closing + +tracks: [] diff --git a/data/balkanruby/balkanruby-2024/videos.yml b/data/balkanruby/balkanruby-2024/videos.yml index b65f84f29..bf2a26327 100644 --- a/data/balkanruby/balkanruby-2024/videos.yml +++ b/data/balkanruby/balkanruby-2024/videos.yml @@ -1,21 +1,8 @@ --- -# TODO: talks running order -# TODO: talk dates -# TODO: conference website -# TODO: schedule website +# Website: https://balkanruby.com/2024 +# Schedule: https://web.archive.org/web/20240423072255/https://balkanruby.com/ -- title: "Build a business on Open Source and Ruby" - raw_title: Adrian Marin – Build a business on Open Source and Ruby - speakers: - - Adrian Marin - event_name: Balkan Ruby 2024 - published_at: "2024-06-05" - description: |- - Adrian Marin is a self-thought engineer and entrepreneur running Avo. Avo started as a side project, and now is a lively project with about 150 paying customers, and more than 400 apps running it in production. - - Building a business is not easy. Selling to developers is even harder. Adrian chose the difficult path to do both and he's been lucky enough to survive it. - video_provider: youtube - video_id: XuUg_cg1lew +## Day 1 - April 26, 2024 - title: "How to do well in consulting" raw_title: Irina Nazarova – How to do well in consulting @@ -31,20 +18,18 @@ video_provider: youtube video_id: ZR-Mk4u3m7Q -- title: "Trailblazer, the almost sustainable underdog" - raw_title: Nick Sutterer – Trailblazer, the almost sustainable underdog +- title: "Build a business on Open Source and Ruby" + raw_title: Adrian Marin – Build a business on Open Source and Ruby speakers: - - Nick Sutterer + - Adrian Marin event_name: Balkan Ruby 2024 - published_at: "2024-06-06" - description: - Nick is a rock star who happens to be a rock-star Ruby developer too. - He has been crafting approaches way before their time like cells. He is the creator - of Trailblazer, a business-focused framework and a business by itself. In this - deep-and-profound talk, Nick tells us how he runs Trailblazer, the business, and - how it is ALMOST sustainable. + published_at: "2024-06-05" + description: |- + Adrian Marin is a self-thought engineer and entrepreneur running Avo. Avo started as a side project, and now is a lively project with about 150 paying customers, and more than 400 apps running it in production. + + Building a business is not easy. Selling to developers is even harder. Adrian chose the difficult path to do both and he's been lucky enough to survive it. video_provider: youtube - video_id: hADHELW066k + video_id: XuUg_cg1lew - title: "Sustainable OSS Development" raw_title: Bozhidar Batsov – Sustainable OSS Development @@ -59,19 +44,37 @@ video_provider: youtube video_id: FUDxvFUtWH0 -- title: "A Dateless Mindset" - raw_title: Xavier Noria – A Dateless Mindset +# Lunch + +- title: "Running a Fintech with Ruby" + raw_title: Aitor Garcia Rey – Running a Fintech with Ruby (Balkan Ruby 2024) speakers: - - Xavier Noria + - Aitor Garcia Rey event_name: Balkan Ruby 2024 published_at: "2024-06-07" description: - Xavier Noria is an everlasting student, a Ruby on Rails Core team member, - the creator of Zeitwerk, a freelancer, and a life lover. In this talk, Xavi is - sharing his experience of working without dates as a freelancer for the last 14 - years. + Aitor García Rey is a founder, staff engineer, and fractional CTO. + He has been shipping software used by small companies, VC-backed startups, and + big publicly traded multinationals for over 20 years, leading and mentoring highly + technical teams. video_provider: youtube - video_id: cKxfaHfiZyc + video_id: t1vT3a5cQ8g + +- title: "The History of a Rails Monolith" + raw_title: Cristian Planas & Anatoly Mikhaylov – The history of a Rails monolith + speakers: + - Cristian Planas + - Anatoly Mikhaylov + event_name: Balkan Ruby 2024 + published_at: "2024-06-07" + description: |- + Cristian Planas is a software engineer working primarily with Rails since the release of Rails 3, more than 10 years ago. Currently, a group tech lead and senior staff engineer at Zendesk. + + Anatoly Mikhaylov is a Performance and Reliability engineer with over 15 years of experience. He's a part of the Capacity and Performance team at Zendesk. + + They're delivering a story about a long-running Ruby monolith powering a successful business at scale. + video_provider: youtube + video_id: 2mu1B75UHAE - title: 'Writing and marketing "Deployment from Scratch"' raw_title: Josef Strzibny – Writing and marketing "Deployment from Scratch" @@ -86,49 +89,63 @@ video_provider: youtube video_id: 11ihYaEhi1g -- title: "How (and why) to run SQLite in production" - raw_title: Stephen Margheim – How (and why) to run SQLite in production +## Day 2 - April 27, 2024 + +- title: "A Dateless Mindset" + raw_title: Xavier Noria – A Dateless Mindset speakers: - - Stephen Margheim + - Xavier Noria event_name: Balkan Ruby 2024 published_at: "2024-06-07" - slides_url: https://speakerdeck.com/fractaledmind/wroclove-dot-rb-2024-how-and-why-to-run-sqlite-on-rails-in-production - description: |- - Stephen is an American expat living in Berlin with his wife and two dogs. He is a contributor to Ruby on Rails, sqlite3-ruby gem, and the maintainer of a handful of gems aimed at making Ruby and Rails the absolute best platforms in the world to run SQLite projects. For his day job, he is an engineering manager at Test IO. - - Join him on a journey to explore the use-cases and benefits of running SQLite in a production environment. + description: + Xavier Noria is an everlasting student, a Ruby on Rails Core team member, + the creator of Zeitwerk, a freelancer, and a life lover. In this talk, Xavi is + sharing his experience of working without dates as a freelancer for the last 14 + years. video_provider: youtube - video_id: 7QMYfpU6_-s + video_id: cKxfaHfiZyc -- title: "The history of a Rails monolith" - raw_title: Cristian Planas & Anatoly Mikhaylov – The history of a Rails monolith +- title: "20 Years and Going: Making it as a Consultancy" + raw_title: "Dimiter Petrov – 20 years and going: making it as a consultancy" speakers: - - Cristian Planas - - Anatoly Mikhaylov + - Dimiter Petrov event_name: Balkan Ruby 2024 published_at: "2024-06-07" description: |- - Cristian Planas is a software engineer working primarily with Rails since the release of Rails 3, more than 10 years ago. Currently, a group tech lead and senior staff engineer at Zendesk. - - Anatoly Mikhaylov is a Performance and Reliability engineer with over 15 years of experience. He's a part of the Capacity and Performance team at Zendesk. + Dimiter is a development team lead at thoughtbot and the co-organizer of the Helvetic Ruby conference. He likes spending time away from the computer running and hiking. - They're delivering a story about a long-running Ruby monolith powering a successful business at scale. + thoughtbot gets leads thanks to its strong presence in the community: open source contributions, blog posts, podcasts, conference talks. This talk is about how they do it. video_provider: youtube - video_id: 2mu1B75UHAE + video_id: 2XsrA-dXDGw -- title: "Running a Fintech with Ruby" - raw_title: Aitor Garcia Rey – Running a Fintech with Ruby (Balkan Ruby 2024) +- title: "One Engineer Company with Ruby on Rails" + raw_title: Radoslav Stankov – One engineer company with Ruby on Rails speakers: - - Aitor Garcia Rey + - Radoslav Stankov event_name: Balkan Ruby 2024 published_at: "2024-06-07" description: - Aitor García Rey is a founder, staff engineer, and fractional CTO. - He has been shipping software used by small companies, VC-backed startups, and - big publicly traded multinationals for over 20 years, leading and mentoring highly - technical teams. + Radoslav was the CTO of Product Hunt. He recently built Angry Buildings + as the single technical person on the team. This talks is about how he did it + all by himself. video_provider: youtube - video_id: t1vT3a5cQ8g + video_id: lUM4KIrsaQo + +# Lunch + +- title: "How (and why) to run SQLite in production" + raw_title: Stephen Margheim – How (and why) to run SQLite in production + speakers: + - Stephen Margheim + event_name: Balkan Ruby 2024 + published_at: "2024-06-07" + slides_url: https://speakerdeck.com/fractaledmind/wroclove-dot-rb-2024-how-and-why-to-run-sqlite-on-rails-in-production + description: |- + Stephen is an American expat living in Berlin with his wife and two dogs. He is a contributor to Ruby on Rails, sqlite3-ruby gem, and the maintainer of a handful of gems aimed at making Ruby and Rails the absolute best platforms in the world to run SQLite projects. For his day job, he is an engineering manager at Test IO. + + Join him on a journey to explore the use-cases and benefits of running SQLite in a production environment. + video_provider: youtube + video_id: 7QMYfpU6_-s - title: "Тоо much of a Good Thing" raw_title: Monica Giambitto – Тоо much of a Good Thing @@ -144,28 +161,17 @@ video_provider: youtube video_id: rcucUXnsE7s -- title: "One engineer company with Ruby on Rails" - raw_title: Radoslav Stankov – One engineer company with Ruby on Rails +- title: "Trailblazer, the almost sustainable underdog" + raw_title: Nick Sutterer – Trailblazer, the almost sustainable underdog speakers: - - Radoslav Stankov + - Nick Sutterer event_name: Balkan Ruby 2024 - published_at: "2024-06-07" + published_at: "2024-06-06" description: - Radoslav was the CTO of Product Hunt. He recently built Angry Buildings - as the single technical person on the team. This talks is about how he did it - all by himself. - video_provider: youtube - video_id: lUM4KIrsaQo - -- title: "20 years and going: making it as a consultancy" - raw_title: "Dimiter Petrov – 20 years and going: making it as a consultancy" - speakers: - - Dimiter Petrov - event_name: Balkan Ruby 2024 - published_at: "2024-06-07" - description: |- - Dimiter is a development team lead at thoughtbot and the co-organizer of the Helvetic Ruby conference. He likes spending time away from the computer running and hiking. - - thoughtbot gets leads thanks to its strong presence in the community: open source contributions, blog posts, podcasts, conference talks. This talk is about how they do it. + Nick is a rock star who happens to be a rock-star Ruby developer too. + He has been crafting approaches way before their time like cells. He is the creator + of Trailblazer, a business-focused framework and a business by itself. In this + deep-and-profound talk, Nick tells us how he runs Trailblazer, the business, and + how it is ALMOST sustainable. video_provider: youtube - video_id: 2XsrA-dXDGw + video_id: hADHELW066k diff --git a/data/balticruby/balticruby-2024/schedule.yml b/data/balticruby/balticruby-2024/schedule.yml new file mode 100644 index 000000000..2ac889bbb --- /dev/null +++ b/data/balticruby/balticruby-2024/schedule.yml @@ -0,0 +1,169 @@ +# Schedule: https://balticruby.org/archive/2024/mainstage + +days: + - name: "Day 1" + date: "2024-06-13" + grid: + - start_time: "09:00" + end_time: "09:30" + slots: 1 + items: + - Door Opening + + - start_time: "09:30" + end_time: "10:00" + slots: 1 + items: + - Opening Notes + + - start_time: "10:00" + end_time: "10:45" + slots: 1 + + - start_time: "11:00" + end_time: "11:45" + slots: 1 + + - start_time: "12:00" + end_time: "12:45" + slots: 1 + + - start_time: "13:00" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "14:45" + slots: 1 + + - start_time: "15:00" + end_time: "15:45" + slots: 1 + + - start_time: "16:00" + end_time: "16:45" + slots: 1 + + - start_time: "17:00" + end_time: "17:45" + slots: 1 + + - start_time: "18:30" + end_time: "22:00" + slots: 1 + items: + - Opening Party + + - start_time: "22:00" + end_time: "22:00" + slots: 1 + items: + - Wrapping Up + + - name: "Day 2" + date: "2024-06-14" + grid: + - start_time: "09:00" + end_time: "09:30" + slots: 1 + items: + - Door Opening + + - start_time: "09:30" + end_time: "10:00" + slots: 1 + items: + - Org Notes + + - start_time: "10:00" + end_time: "10:45" + slots: 1 + + - start_time: "11:00" + end_time: "11:45" + slots: 1 + + - start_time: "12:00" + end_time: "12:45" + slots: 1 + + - start_time: "13:00" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "18:00" + slots: 1 + items: + - title: OSS Expo & Campfire Sessions + description: |- + Join everyone at our OSS campfires to collaborate on various open-source projects like Hotwire, ActiveRecord, ViewComponent, Litestack, Kommandant, Pundit, LoggableActivity, and Oaken, and engage in discussions with their maintainers about the tools and the problems they solve. + + - start_time: "18:00" + end_time: "18:00" + slots: 1 + items: + - Wrapping Up + + - name: "Day 3" + date: "2024-06-15" + grid: + - start_time: "09:00" + end_time: "09:30" + slots: 1 + items: + - Door Opening + + - start_time: "09:30" + end_time: "10:00" + slots: 1 + items: + - Org Notes + + - start_time: "10:00" + end_time: "10:45" + slots: 1 + + - start_time: "11:00" + end_time: "11:45" + slots: 1 + + - start_time: "12:00" + end_time: "12:45" + slots: 1 + + - start_time: "13:00" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "14:45" + slots: 1 + + - start_time: "15:00" + end_time: "15:45" + slots: 1 + + - start_time: "16:00" + end_time: "16:45" + slots: 1 + + - start_time: "17:00" + end_time: "17:30" + slots: 1 + items: + - Closing Notes + + - start_time: "17:30" + end_time: "17:30" + slots: 1 + items: + - Wrapping Up + +tracks: [] diff --git a/data/brightonruby/brightonruby-2024/schedule.yml b/data/brightonruby/brightonruby-2024/schedule.yml new file mode 100644 index 000000000..b987ec953 --- /dev/null +++ b/data/brightonruby/brightonruby-2024/schedule.yml @@ -0,0 +1,90 @@ +# Schedule: Brighton Ruby + +days: + - name: "Day 1" + date: "2024-06-28" + grid: + - start_time: "09:30" + end_time: "09:45" + slots: 1 + items: + - Welcome + + - start_time: "09:45" + end_time: "10:30" + slots: 1 + + - start_time: "10:30" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + items: + - Coffee + + - start_time: "11:30" + end_time: "12:00" + slots: 1 + + - start_time: "12:00" + end_time: "12:30" + slots: 1 + + - start_time: "12:30" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "14:30" + slots: 1 + + - start_time: "14:30" + end_time: "15:00" + slots: 1 + + - start_time: "15:00" + end_time: "15:30" + slots: 1 + items: + - Ice Cream + + - start_time: "15:30" + end_time: "15:36" + slots: 1 + + - start_time: "15:36" + end_time: "15:42" + slots: 1 + + - start_time: "15:42" + end_time: "15:48" + slots: 1 + + - start_time: "15:48" + end_time: "15:54" + slots: 1 + + - start_time: "15:54" + end_time: "16:00" + slots: 1 + + - start_time: "16:00" + end_time: "16:30" + slots: 1 + + - start_time: "16:30" + end_time: "17:00" + slots: 1 + + - start_time: "17:00" + end_time: "18:00" + slots: 1 + items: + - title: Drinks + description: Medium & Soft ones, in the Bar + +tracks: [] diff --git a/data/friendly-rb/friendly-rb-2024/schedule.yml b/data/friendly-rb/friendly-rb-2024/schedule.yml new file mode 100644 index 000000000..cc0585ad5 --- /dev/null +++ b/data/friendly-rb/friendly-rb-2024/schedule.yml @@ -0,0 +1,129 @@ +# Schedule: https://friendlyrb.com + +days: + - name: "Day 1" + date: "2024-09-18" + grid: + - start_time: "09:00" + end_time: "10:00" + slots: 1 + items: + - Registration + + - start_time: "10:00" + end_time: "10:15" + slots: 1 + items: + - Opening + + - start_time: "10:15" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:45" + slots: 1 + + - start_time: "11:45" + end_time: "12:30" + slots: 1 + + - start_time: "12:30" + end_time: "13:00" + slots: 1 + + - start_time: "13:00" + end_time: "15:00" + slots: 1 + items: + - Lunch Break + + - start_time: "15:00" + end_time: "15:45" + slots: 1 + + - start_time: "15:45" + end_time: "16:30" + slots: 1 + + - start_time: "16:30" + end_time: "18:00" + slots: 1 + + - start_time: "18:30" + end_time: "20:00" + slots: 1 + items: + - Guided Bucharest Walking Tour + + - start_time: "20:00" + end_time: "22:00" + slots: 1 + items: + - Afterparty at Cross Fire + + - name: "Day 2" + date: "2024-09-19" + grid: + - start_time: "10:00" + end_time: "10:45" + slots: 1 + + - start_time: "10:45" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "12:15" + slots: 1 + + - start_time: "12:15" + end_time: "13:00" + slots: 1 + + - start_time: "13:00" + end_time: "15:00" + slots: 1 + items: + - Lunch Break + + - start_time: "15:00" + end_time: "15:45" + slots: 1 + items: + - Surprise 💃 + + - start_time: "15:45" + end_time: "16:30" + slots: 1 + + - start_time: "16:30" + end_time: "17:15" + slots: 1 + + - start_time: "17:15" + end_time: "18:00" + slots: 1 + + - start_time: "18:00" + end_time: "18:30" + slots: 1 + items: + - Closing + + - start_time: "18:30" + end_time: "19:00" + slots: 1 + items: + - Drinks at Ironic Taproom + + - name: "Day 3" + date: "2024-09-20" + grid: + - start_time: "09:20" + end_time: "17:00" + slots: 1 + items: + - Day Trip to Buşteni + +tracks: [] diff --git a/data/helveticruby/helveticruby-2023/schedule.yml b/data/helveticruby/helveticruby-2023/schedule.yml new file mode 100644 index 000000000..e85d087ab --- /dev/null +++ b/data/helveticruby/helveticruby-2023/schedule.yml @@ -0,0 +1,108 @@ +# Schedule: https://helvetic-ruby.ch/2023/schedule/ + +days: + - name: "Day 1" + date: "2023-11-24" + grid: + - start_time: "08:45" + end_time: "09:30" + slots: 1 + items: + - Arrival & Registration + + - start_time: "09:30" + end_time: "09:45" + slots: 1 + items: + - Conference Start + + - start_time: "09:45" + end_time: "10:15" + slots: 1 + + - start_time: "10:15" + end_time: "10:30" + slots: 1 + items: + - Break + + - start_time: "10:30" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:10" + slots: 1 + items: + - Break + + - start_time: "11:10" + end_time: "11:40" + slots: 1 + + - start_time: "11:40" + end_time: "12:00" + slots: 1 + + - start_time: "12:00" + end_time: "14:00" + slots: 1 + items: + - Lunch Break + + - start_time: "14:00" + end_time: "14:40" + slots: 1 + + - start_time: "14:40" + end_time: "15:10" + slots: 1 + + - start_time: "14:40" + end_time: "15:10" + slots: 1 + + - start_time: "14:40" + end_time: "15:10" + slots: 1 + + - start_time: "14:40" + end_time: "15:10" + slots: 1 + + - start_time: "15:30" + end_time: "16:00" + slots: 1 + + - start_time: "16:00" + end_time: "16:30" + slots: 1 + + - start_time: "16:30" + end_time: "16:50" + slots: 1 + items: + - Break + + - start_time: "16:50" + end_time: "17:30" + slots: 1 + + - start_time: "17:30" + end_time: "17:45" + slots: 1 + items: + - Final Words + + - start_time: "17:45" + end_time: "19:00" + slots: 1 + items: + - Socializing and Drinks + + - start_time: "19:00" + end_time: "19:00" + slots: 1 + items: + - title: Conference Hall Closes + description: "You are welcome to continue at the Turnhalle bar downstairs." diff --git a/data/helveticruby/helveticruby-2023/videos.yml b/data/helveticruby/helveticruby-2023/videos.yml index 055b0bc03..af29fb0bb 100644 --- a/data/helveticruby/helveticruby-2023/videos.yml +++ b/data/helveticruby/helveticruby-2023/videos.yml @@ -4,11 +4,15 @@ # TODO: conference website # TODO: schedule website +# Website: https://helvetic-ruby.ch/2023/ +# Schedule: https://helvetic-ruby.ch/2023/schedule/ + - title: Profiling Ruby tests with Swiss precision raw_title: Profiling Ruby tests with Swiss precision by Vladimir Dementyev speakers: - Vladimir Dementyev event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: |- Tests occupy a significant amount of developers’ time. We write them, run locally, and wait for CI builds to complete—the latter can last from a cup of coffee to a good day nap. And unfortunately, such “naps” are pretty common in the Ruby and Rails world. @@ -25,6 +29,7 @@ speakers: - Abiodun Olowode event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: Are you tired of dealing with race conditions in your Ruby code? Introducing @@ -40,6 +45,7 @@ speakers: - Karen Jex event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: |- You don't want to spend too much time looking after your database; you've got better things to do with your time, but you do want your database to run smoothly and perform well. Fortunately, there are a few simple things that you can do to make sure your database ticks along nicely in the background. @@ -52,6 +58,7 @@ speakers: - Harriet Oughton event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: |- Postcards From An Early-Career Developer's First Months: Recognising the Struggles and the Joys. @@ -60,13 +67,34 @@ video_provider: youtube video_id: jNY4CViM76U -- title: "Lightning talk: Five Minutes of a Random Stranger Talking About Creativity" +# Lunch + +- title: The Functional Alternative + raw_title: The Functional Alternative by Ju Liu + speakers: + - Ju Liu + event_name: Helvetic Ruby 2023 + date: "2023-11-24" + published_at: "2023-12-06" + description: + We'll start with a simple Ruby Kata and solve it together, live, with + imperative programming. We'll then fix the many, many, many things we got wrong. + Then we'll solve the problem again using patterns from functional programming. + You'll leave this talk with a clear and concrete example of why functional programming + matters, why immutable code matters, and why it can help you writing bug-free + code. The next time you find yourself writing imperative code, you'll think about... + the functional alternative. + video_provider: youtube + video_id: Fm099cLXdV8 + +- title: "Lightning Talk: Five Minutes of a Random Stranger Talking About Creativity" raw_title: Five Minutes of a Random Stranger Talking About Creativity by Christina Serra speakers: - Christina Serra event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: |- Five Minutes of a Random Stranger Talking About Creativity (and why you should squeeze it into your life) @@ -77,42 +105,14 @@ video_provider: youtube video_id: l1UG9lYDnNk -- title: How to bootstrap your software startup - raw_title: How to bootstrap your software startup by Isabel Steiner - speakers: - - Isabel Steiner - event_name: Helvetic Ruby 2023 - published_at: "2023-12-01" - description: |- - In 2022, a close friend and former co-worker and myself founded The Happy Lab GmbH and we only had one purpose for the company: A place where happy co-workers develop products to make users happy. - - In 6 months we went from exploring the problem space to come up with the first hypotheses a to a platform with recurring revenue by following the principles of lean startup and applying all the techniques and methods we have learned in our 15+ years in product management, engineering and leadership positions. In my talk, I will walk the audience through our bootstrapping steps and learnings. - video_provider: youtube - video_id: 20gPjHP5szQ - -- title: "A Rails performance guidebook: from 0 to 1B requests/day" - raw_title: - "A Rails performance guidebook: from 0 to 1B requests/day by Cristian - Planas and Anatoly Mikhaylov" - speakers: - - Cristian Planas - - Anatoly Mikhaylov - event_name: Helvetic Ruby 2023 - published_at: "2023-12-01" - description: |- - Building a feature is not good enough anymore: all your work won't be of use if it's not performant enough. So how to improve performance? After all, performance is not an easy discipline to master: all slow applications are slow in their own way, meaning that there is no silver bullet for these kinds of problems. - - In this presentation, we will guide you across patterns, strategies, and little tricks to improve performance. We will do that by sharing real stories of our daily experience facing and solving real performance issues in an application that daily serves billions of requests per day. - video_provider: youtube - video_id: uDb71s9MtVk - -- title: "Lightning talk: Sliced Ruby - Enforcing module boundaries with private_const and packwerk" +- title: "Lightning Talk: Sliced Ruby - Enforcing Module Boundaries with private_const and packwerk" raw_title: "Sliced Ruby: Enforcing module boundaries with private_const and packwerk by Severin Ráz" speakers: - Severin Ráz event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: |- A lightning talk from the Helvetic Ruby 2023 conference. @@ -121,11 +121,12 @@ video_provider: youtube video_id: ZBoiu0yUrwI -- title: "Lightning talk: Conventionally-typed Ruby" +- title: "Lightning Talk: Conventionally-Typed Ruby" raw_title: Conventionally-typed Ruby by Josua Schmid speakers: - Josua Schmid event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: |- A lightning talk from Helvetic Ruby 2023. @@ -134,11 +135,12 @@ video_provider: youtube video_id: MIl1AFWoAXQ -- title: "Lightning talk: Ideas for growing our Ruby community" +- title: "Lightning Talk: Ideas For Growing Our Ruby Community" raw_title: Ideas for growing our Ruby community by Lucian Ghinda speakers: - Lucian Ghinda event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-01" description: "A lightning talk from the Helvetic Ruby 2023 conference.\n\nI want @@ -150,11 +152,43 @@ video_provider: youtube video_id: qrXscRsObvo +- title: How To Bootstrap Your Software Startup + raw_title: How to bootstrap your software startup by Isabel Steiner + speakers: + - Isabel Steiner + event_name: Helvetic Ruby 2023 + date: "2023-11-24" + published_at: "2023-12-01" + description: |- + In 2022, a close friend and former co-worker and myself founded The Happy Lab GmbH and we only had one purpose for the company: A place where happy co-workers develop products to make users happy. + + In 6 months we went from exploring the problem space to come up with the first hypotheses a to a platform with recurring revenue by following the principles of lean startup and applying all the techniques and methods we have learned in our 15+ years in product management, engineering and leadership positions. In my talk, I will walk the audience through our bootstrapping steps and learnings. + video_provider: youtube + video_id: 20gPjHP5szQ + +- title: "A Rails performance guidebook: from 0 to 1B requests/day" + raw_title: + "A Rails performance guidebook: from 0 to 1B requests/day by Cristian + Planas and Anatoly Mikhaylov" + speakers: + - Cristian Planas + - Anatoly Mikhaylov + event_name: Helvetic Ruby 2023 + date: "2023-11-24" + published_at: "2023-12-01" + description: |- + Building a feature is not good enough anymore: all your work won't be of use if it's not performant enough. So how to improve performance? After all, performance is not an easy discipline to master: all slow applications are slow in their own way, meaning that there is no silver bullet for these kinds of problems. + + In this presentation, we will guide you across patterns, strategies, and little tricks to improve performance. We will do that by sharing real stories of our daily experience facing and solving real performance issues in an application that daily serves billions of requests per day. + video_provider: youtube + video_id: uDb71s9MtVk + - title: Anatomy of a Sonic Pi Song raw_title: Anatomy of a Sonic Pi Song by Raia speakers: - Raia event_name: Helvetic Ruby 2023 + date: "2023-11-24" published_at: "2023-12-02" description: 'Have you ever considered what makes a "good" song? Maybe it''s a sweet @@ -166,20 +200,3 @@ learn some key elements of what makes Sonic Pi "sing.”' video_provider: youtube video_id: A7owAl1Q6PQ - -- title: The Functional Alternative - raw_title: The Functional Alternative by Ju Liu - speakers: - - Ju Liu - event_name: Helvetic Ruby 2023 - published_at: "2023-12-06" - description: - We'll start with a simple Ruby Kata and solve it together, live, with - imperative programming. We'll then fix the many, many, many things we got wrong. - Then we'll solve the problem again using patterns from functional programming. - You'll leave this talk with a clear and concrete example of why functional programming - matters, why immutable code matters, and why it can help you writing bug-free - code. The next time you find yourself writing imperative code, you'll think about... - the functional alternative. - video_provider: youtube - video_id: Fm099cLXdV8 diff --git a/data/helveticruby/helveticruby-2024/schedule.yml b/data/helveticruby/helveticruby-2024/schedule.yml new file mode 100644 index 000000000..2eab1c773 --- /dev/null +++ b/data/helveticruby/helveticruby-2024/schedule.yml @@ -0,0 +1,168 @@ +# Schedule: https://helvetic-ruby.ch/2024/schedule/ + +days: + - name: "Day 0" + date: "2024-05-16" + grid: + - start_time: "14:30" + end_time: "17:30" + slots: 1 + items: + - title: Open Source Pairing and Office Hours + description: | + We've booked a room in the Colab co-working space for community members to gather and work together on open source. Some ideas: + + * showcase a library you've been working on, + * talk about features you'd like to see in a library or framework, + * collaborate on a bug report, + * improve documentation, + * hang out with like-minded individuals even if you don't have an idea what to work on in advance. + + The open source office hours are also an opportunity to meet maintainers from the Ruby ecosystem in person. Ask questions, discuss new ideas, fix bugs together. + + Who will be there? + + * Marco Roth, open source contributor currently focusing on the Hotwire ecosystem + * Sarah Lima and Dimiter Petrov from thoughtbot + * Yves Senn, Rails Core team Alumnus + * Pascal Simon from Puzzle, maintainers of Hitobito + + You! Bring your ideas and questions. + + - name: "Day 1" + date: "2024-05-17" + grid: + - start_time: "08:45" + end_time: "09:30" + slots: 1 + items: + - Arrival & Registration + + - start_time: "09:30" + end_time: "09:45" + slots: 1 + items: + - Conference Start + + - start_time: "09:45" + end_time: "10:15" + slots: 1 + + - start_time: "10:15" + end_time: "10:45" + slots: 1 + items: + - Break + + - start_time: "10:45" + end_time: "11:15" + slots: 1 + + - start_time: "11:15" + end_time: "11:45" + slots: 1 + items: + - Break + + - start_time: "11:45" + end_time: "12:15" + slots: 1 + + - start_time: "12:15" + end_time: "14:00" + slots: 1 + items: + - Lunch Break + + - start_time: "14:00" + end_time: "14:30" + slots: 1 + + - start_time: "14:30" + end_time: "15:00" + slots: 1 + items: + - Break + + - start_time: "15:00" + end_time: "15:30" + slots: 1 + + - start_time: "15:30" + end_time: "15:36" + slots: 1 + + - start_time: "15:36" + end_time: "15:42" + slots: 1 + + - start_time: "15:42" + end_time: "15:48" + slots: 1 + + - start_time: "15:48" + end_time: "15:54" + slots: 1 + + - start_time: "15:54" + end_time: "16:00" + slots: 1 + + - start_time: "16:00" + end_time: "16:30" + slots: 1 + items: + - Break + + - start_time: "16:30" + end_time: "17:00" + slots: 1 + + - start_time: "17:00" + end_time: "17:30" + slots: 1 + items: + - Break + + - start_time: "17:30" + end_time: "18:00" + slots: 1 + + - start_time: "18:00" + end_time: "18:15" + slots: 1 + items: + - Final Words + + - start_time: "18:15" + end_time: "19:45" + slots: 1 + items: + - After Party at the Conference Venue + + - start_time: "19:45" + end_time: "21:00" + slots: 1 + items: + - After After Party at "Frau Gerolds Garten" + + - name: "Post Conference" + date: "2024-05-18" + grid: + - start_time: "09:30" + end_time: "11:00" + slots: 1 + items: + - Hike from Triemli to Uetliberg Peak + + - start_time: "11:00" + end_time: "12:00" + slots: 1 + items: + - Arrival at Uetliberg Peak + + - start_time: "12:00" + end_time: "12:00" + slots: 1 + items: + - Open End diff --git a/data/rails-world/rails-world-2023/schedule.yml b/data/rails-world/rails-world-2023/schedule.yml new file mode 100644 index 000000000..5b18fe224 --- /dev/null +++ b/data/rails-world/rails-world-2023/schedule.yml @@ -0,0 +1,204 @@ +# Schedule: https://rubyonrails.org/world/2023/agenda + +days: + - name: "Day 0" + date: "2023-10-04" + grid: + - start_time: "16:00" + end_time: "19:00" + slots: 1 + items: + - title: Early Registration + description: |- + Registration opens for those who are in town early. Avoid the Thursday morning line and get your badge early. + + - start_time: "17:00" + end_time: "20:00" + slots: 1 + items: + - title: Drinks sponsored by Clear Code Wizards + description: |- + Pre-event drinks sponsored by Clear Code Wizards. The location of these drinks will be shared with registered attendees. Badge required. + + - name: "Day 1" + date: "2023-10-05" + grid: + - start_time: "09:00" + end_time: "10:00" + slots: 1 + items: + - title: Doors Open + description: |- + Rails World attendees are welcome to register, enter, and get breakfast before the keynote begins. + + - start_time: "10:00" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:30" + slots: 2 + + - start_time: "11:30" + end_time: "11:45" + slots: 1 + items: + - Break + + - start_time: "11:45" + end_time: "12:15" + slots: 2 + + - start_time: "12:30" + end_time: "13:30" + slots: 1 + items: + - Lunch + + - start_time: "13:30" + end_time: "14:00" + slots: 2 + + - start_time: "14:00" + end_time: "14:15" + slots: 1 + items: + - Break + + - start_time: "14:15" + end_time: "14:45" + slots: 2 + + - start_time: "14:45" + end_time: "15:00" + slots: 1 + items: + - Break + + - start_time: "15:00" + end_time: "15:30" + slots: 2 + + - start_time: "15:30" + end_time: "15:45" + slots: 1 + items: + - Break + + - start_time: "15:45" + end_time: "16:15" + slots: 2 + + - start_time: "16:15" + end_time: "16:30" + slots: 1 + items: + - Break + + - start_time: "16:30" + end_time: "17:15" + slots: 1 + + - name: "Day 2" + date: "2023-10-06" + grid: + - start_time: "08:00" + end_time: "09:30" + slots: 1 + items: + - title: WNB.rb Breakfast sponsored by Shopify + description: |- + A networking breakfast for women and non-binary Rails World attendees. Hosted by WNB.rb and sponsored by Shopify. The location of this breafast will be shared with registered attendees. Badge required. + + - start_time: "09:00" + end_time: "09:45" + slots: 1 + items: + - title: Doors Open + description: |- + Rails World attendees are welcome to get breakfast and get settled before the day 2 keynote begins. + + - start_time: "09:45" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:40" + slots: 2 + + - start_time: "11:40" + end_time: "11:45" + slots: 1 + items: + - Break + + - start_time: "11:45" + end_time: "12:15" + slots: 2 + + - start_time: "12:30" + end_time: "13:30" + slots: 1 + items: + - Lunch + + - start_time: "13:30" + end_time: "14:00" + slots: 2 + + - start_time: "14:00" + end_time: "14:15" + slots: 1 + items: + - Break + + - start_time: "14:15" + end_time: "14:45" + slots: 2 + + - start_time: "14:45" + end_time: "15:00" + slots: 1 + items: + - Break + + - start_time: "15:00" + end_time: "15:30" + slots: 2 + + - start_time: "15:30" + end_time: "15:45" + slots: 1 + items: + - Break + + - start_time: "15:45" + end_time: "16:15" + slots: 2 + + - start_time: "16:15" + end_time: "16:30" + slots: 1 + items: + - Break + + - start_time: "16:30" + end_time: "17:30" + slots: 1 + + - start_time: "17:30" + end_time: "19:00" + slots: 1 + items: + - title: Rails 20th Anniversary Celebration + description: |- + Join us for the closing party of the first edition of Rails World. Let’s celebrate the first 20 years of Ruby on Rails, and look into the future at the next 20 years and beyond. + +tracks: + - name: Track 1 + color: "#BF281C" + text_color: "#FFFFFF" + + - name: Track 2 + color: "#3B1D62" + text_color: "#FFFFFF" diff --git a/data/rails-world/rails-world-2023/videos.yml b/data/rails-world/rails-world-2023/videos.yml index d456bd76f..9710ce97e 100644 --- a/data/rails-world/rails-world-2023/videos.yml +++ b/data/rails-world/rails-world-2023/videos.yml @@ -1,15 +1,17 @@ --- -# TODO: talks running order -# TODO: talk dates -# TODO: conference website -# TODO: schedule website +# Website: https://rubyonrails.org/world/2023 +# Schedule: https://rubyonrails.org/world/2023/agenda + +## Day 1: October 5, 2023 - title: Opening Keynote raw_title: Rails World 2023 Opening Keynote - David Heinemeier Hansson speakers: - David Heinemeier Hansson event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-11" + track: Track 1 description: |- In the Opening Keynote of the first Rails World, Ruby on Rails creator and @37signals CTO David Heinemeier Hansson (@davidheinemeierhansson9989) covered a lot of ground, including introducing 7 major tools: Propshaft, Turbo 8, Strada, Solid Cache, Solid Queue, Mission Control, and Kamal. @@ -24,31 +26,14 @@ video_provider: youtube video_id: iqXjGiQ_D-A -- title: Implementing Native Composite Primary Key Support in Rails 7.1 - raw_title: Nikita Vasilevsky - Implementing Native Composite Primary Key Support in Rails 7.1 - Rails World '23 - speakers: - - Nikita Vasilevsky - event_name: Rails World 2023 - published_at: "2023-10-12" - slides_url: https://speakerdeck.com/nikitavasilevsky/rails-world-2023-composite-primary-keys-in-rails-7-dot-1 - description: |- - Explore the new feature of composite primary keys in Rails 7.1! @shopify developer and member of the Rails triage team Nikita Vasilevsky provides a thorough understanding of composite primary keys, the significance of the “ID” concept in Rails, and the crucial role of the “query constraints” feature in making this powerful feature work seamlessly. - - Slides are available at https://speakerdeck.com/nikitavasilevsky/rails-world-2023-composite-primary-keys-in-rails-7-dot-1 - - Links: - https://rubyonrails.org/ - - #RailsWorld #RubyonRails #Rails7 #compositeprimarykey - video_provider: youtube - video_id: aOD0bZfQvoY - - title: "Strada: Bridging The Web and Native Worlds" raw_title: "Jay Ohms - Strada: Bridging the web and native worlds - Rails World 2023" speakers: - Jay Ohms event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-12" + track: Track 1 description: "Strada is the missing library to take your Turbo Native apps to the next level. Turbo Native enables web developers to ship native apps, but the experience @@ -67,7 +52,9 @@ speakers: - Donal McBreen event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-12" + track: Track 2 description: "A disk cache can hold much more data than a memory one. But is it fast enough?\n\nAt @37signals they built Solid Cache, a database backed ActiveSupport @@ -78,97 +65,14 @@ video_provider: youtube video_id: wYeVne3aRow -- title: "Keynote: Future of Developer Acceleration with Rails" - raw_title: Aaron Patterson - Future of Developer Acceleration with Rails - Rails World 2023 - speakers: - - Aaron Patterson - event_name: Rails World 2023 - published_at: "2023-10-16" - description: - "What would development be like if Rails had tight integration with - Language Servers? Rails Core member and Shopify Senior Staff Engineer Aaron Patterson - takes a look at how language servers work, how we can improve language server - support in Rails, and how this will increase our productivity as Rails developers. - \n\n#RailsWorld #RubyonRails #Rails #languageserver #LSP #opensource\n\nLinks:\nhttps://rubyonrails.org/" - video_provider: youtube - video_id: GnqRMQ0iQTg - -- title: Building an Offline Experience with a Rails-powered PWA - raw_title: Alicia Rojas - Building an offline experience with a Rails-powered PWA - Rails World 2023 - speakers: - - Alicia Rojas - event_name: Rails World 2023 - published_at: "2023-10-16" - description: - "Progressive web apps (PWAs) allow us to provide rich offline experiences - as native apps would, while still being easy to use and share, as web apps are. - Learn how to turn your regular Rails app into a PWA, taking advantage of the front-end - tools that come with Rails by default since version 7.\n\nTelos Labs Software - Engineer Alicia Rojas covers exciting stuff such as: caching and providing an - offline fallback, how to make your app installable, and performing offline CRUD - actions with IndexedDB and Hotwire.\n\nNote: Most code samples from this talk - belong to a case study of an application conceived for rural people living in - areas lacking stable internet access, such as farmers and agricultural technicians. - \n\nLinks:\nhttps://rubyonrails.org/\nhttps://hotwired.dev/\n\n#RailsWorld #RubyonRails - #progressivewebapps #Rails #Rails7 #Hotwire" - video_provider: youtube - video_id: Gj8ov0cOuA0 - -- title: Rails Core AMA - raw_title: Rails Core AMA - Rails World 2023 - speakers: - - Aaron Patterson - - Carlos Antonio Da Silva - - David Heinemeier Hansson - - Eileen M. Uchitelle - - Jean Boussier - - Jeremy Daer - - John Hawthorn - - Matthew Draper - - Rafael Mendonça França - - Xavier Noria - - Robby Russell - event_name: Rails World 2023 - published_at: "2023-10-16" - description: - "Ten of the current 12 Rails Core members sat down to answer questions - submitted by the Rails World audience in Amsterdam, such as: How do they decide - on which features to add? How should Rails evolve in the future? What does it - take to join the Core team? \n\nRails Core members present were: Aaron Patterson, - Carlos Antonio Da Silva, David Heinemeier Hansson, Eileen M. Uchitelle, Jean Boussier, - Jeremy Daer, John Hawthorn, Matthew Draper, Rafael Mendonça França, and Xavier Noria.\n\nHosted - by @Planetargon founder and CEO @RobbyRussell. \n\nLinks:\nhttps://rubyonrails.org/community\nhttps://rubyonrails.org/\nhttps://github.com/rails\nhttps://www.planetargon.com/\n\n#RubyonRails - #Rails #RailsCore #AMA #RailsWorld #opensource" - video_provider: youtube - video_id: 9GzYoUFIkwE - -- title: Powerful Rails Features You Might Not Know - raw_title: Chris Oliver - Powerful Rails Features You Might Not Know - Rails World 2023 - speakers: - - Chris Oliver - event_name: Rails World 2023 - published_at: "2023-10-16" - description: - "An unbelievable amount of features are packed into Rails making it - one of the most powerful web frameworks you can use. @GorailsTV creator Chris - Oliver takes a look at some little known, underused, and new things in Rails 7.\n\nA - few of the topics covered:\n- ActiveRecord features like “excluding”, strict_loading, - virtual columns, with_options, attr_readonly, etc\n- ActiveStorage named variants\n- - ActionText embedding any database record\n- Custom Turbo Stream Actions with Hotwire\n- - Turbo Native authentication with your Rails backend\n- ActiveSupport features - like truncate_words\n- Rails 7.1’s new features: authentication, normalizes, logging - background enqueue callers, and more.\n\nLinks:\nhttps://rubyonrails.org/\nhttps://rubyonrails.org/2023/10/5/Rails-7-1-0-has-been-released - \n\n#RailsWorld #RubyonRails #Rails7 #opensource #OSS #Rails #ActiveRecord #ActiveStorage - #ActiveSupport" - video_provider: youtube - video_id: iPCqwZ9Ouc4 - - title: Making a Difference with Turbo raw_title: Jorge Manrubia - Making a difference with Turbo - Rails World 2023 speakers: - Jorge Manrubia event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-16" + track: Track 1 slides_url: https://dev.37signals.com/assets/files/a-happier-happy-path-in-turbo-with-morphing/rails-world-2023-making-difference-with-turbo.pdf description: |- Hotwire is about building snappy user interfaces while maximizing developer happiness, about bringing innovations while respecting how the web works. What if we could make a step forward on all those fronts? @@ -186,12 +90,41 @@ video_provider: youtube video_id: m97UsXa6HFg +- title: "Everything We Learned While Implementing ActiveRecord::Encryption" + raw_title: "Kylie Stradley - Everything We Learned While Implementing ActiveRecord::Encryption - Rails World" + speakers: + - Kylie Stradley + event_name: Rails World 2023 + date: "2023-10-05" + published_at: "2023-10-16" + track: Track 2 + description: |- + ‪@GitHub‬ encrypts your data at rest, as well as specific sensitive database columns. What you may not know is that they recently replaced their in-house db column encryption strategy with ActiveRecord::Encryption, in place. While they were able to complete this transition seamlessly for GitHub’s developers, the process was not quite seamless for our team and some of our customers, and mistakes were made along the way. + + Senior Product Security Engineer Kylie Stradley shares why despite the mistakes they feel the migration was worth it for their team, GitHub developers and most importantly, GitHub customers. + + Slides available here: https://speakerdeck.com/kyfast/railsw... + + Links: + https://rubyonrails.org/ + https://github.blog/changelog/2022-08-18-false-alert-flags-will-appear-in-users-security-log-due-to-a-bug-in-2fa-recovery-events/ + + #RailsWorld #RubyonRails #Rails7 #opensource #OSS #Rails #ActiveRecord #encryption #GitHub + + Thank you Dell APEX for sponsoring the editing and post-production of these videos. Visit them at: https://dell.com/APEX + video_provider: youtube + video_id: IR2demNrMwQ + +# Lunch + - title: The Future of Rails as a Full-Stack Framework powered by Hotwire raw_title: Marco Roth - The Future of Rails as a Full-Stack Framework powered by Hotwire - Rails World 2023 speakers: - Marco Roth event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-16" + track: Track 1 slides_url: https://speakerdeck.com/marcoroth/the-future-of-rails-as-a-full-stack-framework-powered-by-hotwire description: "Hotwire has revolutionized the way we build interactive web applications @@ -203,53 +136,99 @@ video_provider: youtube video_id: iRjei4nj41o -- title: Using Multiple Databases with Active Record - raw_title: Julia López - Using Multiple Databases with Active Record - Rails World 2023 +- title: Migrating Shopify's Core Rails Monolith to Trilogy + raw_title: Adrianna Chang - Migrating Shopify’s Core Rails Monolith to Trilogy - Rails World 2023 speakers: - - Julia López + - Adrianna Chang event_name: Rails World 2023 - published_at: "2023-10-16" - slides_url: https://speakerdeck.com/yukideluxe/using-multiple-databases-with-active-record + date: "2023-10-05" + published_at: "2023-10-17" + track: Track 2 description: - "ActiveRecord is one of the core modules of Rails. Not-so-well-known - features like support for multiple databases added in Rails 6.0 are very easy - to set up and customize.\n\nHarvest Senior Software Engineer Julia López introduces - some of the reasons why having multiple databases makes sense, and how you can - extend Rails’ capabilities to match your application needs.\n\nSlides available - at: https://speakerdeck.com/yukideluxe/using-multiple-databases-with-active-record\n\nLinks:\nhttps://rubyonrails.org/\nhttps://guides.rubyonrails.org/active_record_basics.html - \nhttps://guides.rubyonrails.org/active_record_multiple_databases.html \n\n#RubyonRails - #Rails #database #ActiveRecord #multipledatabases" + "Trilogy is a client library for MySQL-compatible database servers. + It was open sourced along with an Active Record adapter by GitHub this past year. + With promises of improved performance, better portability and compatibility, and + fewer dependencies, Shopify’s Rails Infrastructure team decided to migrate our + core Rails monolith from Mysql2 to Trilogy.\n\n@shopify Senior Software Developer + Adrianna Chang explores why the Trilogy client was built and why Shopify wanted + to adopt it. \n\nLinks:\nhttps://rubyonrails.org/\n\n#RailsWorld #RubyonRails + #rails #opensource #MySQL #ActiveRecord #Trilogy" video_provider: youtube - video_id: XjCqiyYVypI + video_id: AUV3Xgy-zuE -- title: "Keynote: The Magic of Rails" - raw_title: Eileen Uchitelle - The Magic of Rails - Rails World 2023 +# 13:30 - 14:30 - Workshop - Test Smarter, Not Harder - Crafting a Test Selection Framework from Scratch - Christian Bruckmayer, Staff Engineer, Shopify + +- title: Building an Offline Experience with a Rails-powered PWA + raw_title: Alicia Rojas - Building an offline experience with a Rails-powered PWA - Rails World 2023 speakers: - - Eileen M. Uchitelle + - Alicia Rojas event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-16" - slides_url: https://speakerdeck.com/eileencodes/rails-world-2023-day-1-closing-keynote-the-magic-of-rails + track: Track 1 description: - "Rails Core member and @shopify Senior Staff Software Engineer Eileen - Uchitelle explores the magic of Rails in her keynote at Rails World. From taking - a look at the philosophy behind the framework to exploring some of the common - patterns that Rails uses to build agnostic and beautiful interfaces, Eileen helps - you navigate the Rails codebase to better understand the patterns it uses to create - the framework we all know and love. \n\nBut Rails is so much more than its design - and architecture. Eileen also shares her motivation for working on the framework - and why the community is so important to the long term success of Rails.\n\nSlides - available at: https://speakerdeck.com/eileencodes/rails-world-2023-day-1-closing-keynote-the-magic-of-rails\n\nOther - links:\nhttps://rubyonrails.org/\nhttps://github.com/rails \nhttps://rubyonrails.org/community\n\n#RailsWorld - #RubyonRails #rails #Rails7 #opensource #oss #community #RailsCore" + "Progressive web apps (PWAs) allow us to provide rich offline experiences + as native apps would, while still being easy to use and share, as web apps are. + Learn how to turn your regular Rails app into a PWA, taking advantage of the front-end + tools that come with Rails by default since version 7.\n\nTelos Labs Software + Engineer Alicia Rojas covers exciting stuff such as: caching and providing an + offline fallback, how to make your app installable, and performing offline CRUD + actions with IndexedDB and Hotwire.\n\nNote: Most code samples from this talk + belong to a case study of an application conceived for rural people living in + areas lacking stable internet access, such as farmers and agricultural technicians. + \n\nLinks:\nhttps://rubyonrails.org/\nhttps://hotwired.dev/\n\n#RailsWorld #RubyonRails + #progressivewebapps #Rails #Rails7 #Hotwire" video_provider: youtube - video_id: nvuPisDQ1hI + video_id: Gj8ov0cOuA0 + +- title: "Guardrails: Keeping Customer Data Separate in a Multi Tenant System" + raw_title: "Miles McGuire - Guardrails: Keeping customer data separate in a multi tenant system - Rails World" + speakers: + - Miles McGuire + event_name: Rails World 2023 + date: "2023-10-05" + published_at: "2023-10-17" + track: Track 2 + description: + "@Intercominc Staff Engineer Miles McGuire shares the solution they + created to ensure that they never “cross the streams” on customer data using ActiveRecord + and Rails’ MemCacheStore, as well as the exciting knock-on benefits it offered + for observability. \n\nLinks:\nhttps://rubyonrails.org/\nhttps://api.rubyonrails.org/classes/ActiveSupport/Cache/MemCacheStore.html + \n\n#RailsWorld #RubyonRails #Rails7 #security #datasecurity #observability #ActiveRecord" + video_provider: youtube + video_id: 5MLT-QP4S74 + +# 14:45 - 16:15 -Workshop - AI Driven Development - Sean Marcia, Founder, Ruby for Good + +- title: Implementing Native Composite Primary Key Support in Rails 7.1 + raw_title: Nikita Vasilevsky - Implementing Native Composite Primary Key Support in Rails 7.1 - Rails World '23 + speakers: + - Nikita Vasilevsky + event_name: Rails World 2023 + date: "2023-10-05" + published_at: "2023-10-12" + track: Track 1 + slides_url: https://speakerdeck.com/nikitavasilevsky/rails-world-2023-composite-primary-keys-in-rails-7-dot-1 + description: |- + Explore the new feature of composite primary keys in Rails 7.1! @shopify developer and member of the Rails triage team Nikita Vasilevsky provides a thorough understanding of composite primary keys, the significance of the “ID” concept in Rails, and the crucial role of the “query constraints” feature in making this powerful feature work seamlessly. + + Slides are available at https://speakerdeck.com/nikitavasilevsky/rails-world-2023-composite-primary-keys-in-rails-7-dot-1 + + Links: + https://rubyonrails.org/ + + #RailsWorld #RubyonRails #Rails7 #compositeprimarykey + video_provider: youtube + video_id: aOD0bZfQvoY - title: Zeitwerk Internals raw_title: Xavier Noria - Zeitwerk Internals - Rails World 2023 speakers: - Xavier Noria event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-16" + track: Track 2 slides_url: https://www.slideshare.net/fxn/zeitwerk-internals description: "Zeitwerk is the Ruby gem responsible for autoloading code in modern @@ -264,45 +243,35 @@ video_provider: youtube video_id: YTMS1N7jI78 -- title: Migrating Shopify's Core Rails Monolith to Trilogy - raw_title: Adrianna Chang - Migrating Shopify’s Core Rails Monolith to Trilogy - Rails World 2023 - speakers: - - Adrianna Chang - event_name: Rails World 2023 - published_at: "2023-10-17" - description: - "Trilogy is a client library for MySQL-compatible database servers. - It was open sourced along with an Active Record adapter by GitHub this past year. - With promises of improved performance, better portability and compatibility, and - fewer dependencies, Shopify’s Rails Infrastructure team decided to migrate our - core Rails monolith from Mysql2 to Trilogy.\n\n@shopify Senior Software Developer - Adrianna Chang explores why the Trilogy client was built and why Shopify wanted - to adopt it. \n\nLinks:\nhttps://rubyonrails.org/\n\n#RailsWorld #RubyonRails - #rails #opensource #MySQL #ActiveRecord #Trilogy" - video_provider: youtube - video_id: AUV3Xgy-zuE - -- title: "Guardrails: Keeping Customer Data Separate in a Multi Tenant System" - raw_title: "Miles McGuire - Guardrails: Keeping customer data separate in a multi tenant system - Rails World" +- title: Using Multiple Databases with Active Record + raw_title: Julia López - Using Multiple Databases with Active Record - Rails World 2023 speakers: - - Miles McGuire + - Julia López event_name: Rails World 2023 - published_at: "2023-10-17" + date: "2023-10-05" + published_at: "2023-10-16" + track: Track 1 + slides_url: https://speakerdeck.com/yukideluxe/using-multiple-databases-with-active-record description: - "@Intercominc Staff Engineer Miles McGuire shares the solution they - created to ensure that they never “cross the streams” on customer data using ActiveRecord - and Rails’ MemCacheStore, as well as the exciting knock-on benefits it offered - for observability. \n\nLinks:\nhttps://rubyonrails.org/\nhttps://api.rubyonrails.org/classes/ActiveSupport/Cache/MemCacheStore.html - \n\n#RailsWorld #RubyonRails #Rails7 #security #datasecurity #observability #ActiveRecord" + "ActiveRecord is one of the core modules of Rails. Not-so-well-known + features like support for multiple databases added in Rails 6.0 are very easy + to set up and customize.\n\nHarvest Senior Software Engineer Julia López introduces + some of the reasons why having multiple databases makes sense, and how you can + extend Rails’ capabilities to match your application needs.\n\nSlides available + at: https://speakerdeck.com/yukideluxe/using-multiple-databases-with-active-record\n\nLinks:\nhttps://rubyonrails.org/\nhttps://guides.rubyonrails.org/active_record_basics.html + \nhttps://guides.rubyonrails.org/active_record_multiple_databases.html \n\n#RubyonRails + #Rails #database #ActiveRecord #multipledatabases" video_provider: youtube - video_id: 5MLT-QP4S74 + video_id: XjCqiyYVypI - title: Propshaft and the Modern Asset Pipeline raw_title: Breno Gazzola - Propshaft and the Modern Asset Pipeline - Rails World 2023 speakers: - Breno Gazzola event_name: Rails World 2023 + date: "2023-10-05" published_at: "2023-10-17" + track: Track 2 description: "Breno Gazzola, Co-Founder & CTO of FestaLab, discusses Propshaft, the heart of the new asset pipeline introduced in Rails 7. \n\nRails 7 brought @@ -320,12 +289,114 @@ video_provider: youtube video_id: yFgQco_ccgg -- title: "Rails::HTML5: The Strange and Remarkable Three-Year Journey" +- title: "Keynote: The Magic of Rails" + raw_title: Eileen Uchitelle - The Magic of Rails - Rails World 2023 + speakers: + - Eileen M. Uchitelle + event_name: Rails World 2023 + date: "2023-10-05" + published_at: "2023-10-16" + track: Track 1 + slides_url: https://speakerdeck.com/eileencodes/rails-world-2023-day-1-closing-keynote-the-magic-of-rails + description: + "Rails Core member and @shopify Senior Staff Software Engineer Eileen + Uchitelle explores the magic of Rails in her keynote at Rails World. From taking + a look at the philosophy behind the framework to exploring some of the common + patterns that Rails uses to build agnostic and beautiful interfaces, Eileen helps + you navigate the Rails codebase to better understand the patterns it uses to create + the framework we all know and love. \n\nBut Rails is so much more than its design + and architecture. Eileen also shares her motivation for working on the framework + and why the community is so important to the long term success of Rails.\n\nSlides + available at: https://speakerdeck.com/eileencodes/rails-world-2023-day-1-closing-keynote-the-magic-of-rails\n\nOther + links:\nhttps://rubyonrails.org/\nhttps://github.com/rails \nhttps://rubyonrails.org/community\n\n#RailsWorld + #RubyonRails #rails #Rails7 #opensource #oss #community #RailsCore" + video_provider: youtube + video_id: nvuPisDQ1hI + +## Day 2 - October 6, 2023 + +- title: Rails Core AMA + raw_title: Rails Core AMA - Rails World 2023 + speakers: + - Aaron Patterson + - Carlos Antonio Da Silva + - David Heinemeier Hansson + - Eileen M. Uchitelle + - Jean Boussier + - Jeremy Daer + - John Hawthorn + - Matthew Draper + - Rafael Mendonça França + - Xavier Noria + - Robby Russell + event_name: Rails World 2023 + published_at: "2023-10-16" + date: "2023-10-06" + track: Track 1 + description: + "Ten of the current 12 Rails Core members sat down to answer questions + submitted by the Rails World audience in Amsterdam, such as: How do they decide + on which features to add? How should Rails evolve in the future? What does it + take to join the Core team? \n\nRails Core members present were: Aaron Patterson, + Carlos Antonio Da Silva, David Heinemeier Hansson, Eileen M. Uchitelle, Jean Boussier, + Jeremy Daer, John Hawthorn, Matthew Draper, Rafael Mendonça França, and Xavier Noria.\n\nHosted + by @Planetargon founder and CEO @RobbyRussell. \n\nLinks:\nhttps://rubyonrails.org/community\nhttps://rubyonrails.org/\nhttps://github.com/rails\nhttps://www.planetargon.com/\n\n#RubyonRails + #Rails #RailsCore #AMA #RailsWorld #opensource" + video_provider: youtube + video_id: 9GzYoUFIkwE + +- title: Powerful Rails Features You Might Not Know + raw_title: Chris Oliver - Powerful Rails Features You Might Not Know - Rails World 2023 + speakers: + - Chris Oliver + event_name: Rails World 2023 + date: "2023-10-06" + published_at: "2023-10-16" + track: Track 1 + description: + "An unbelievable amount of features are packed into Rails making it + one of the most powerful web frameworks you can use. @GorailsTV creator Chris + Oliver takes a look at some little known, underused, and new things in Rails 7.\n\nA + few of the topics covered:\n- ActiveRecord features like “excluding”, strict_loading, + virtual columns, with_options, attr_readonly, etc\n- ActiveStorage named variants\n- + ActionText embedding any database record\n- Custom Turbo Stream Actions with Hotwire\n- + Turbo Native authentication with your Rails backend\n- ActiveSupport features + like truncate_words\n- Rails 7.1’s new features: authentication, normalizes, logging + background enqueue callers, and more.\n\nLinks:\nhttps://rubyonrails.org/\nhttps://rubyonrails.org/2023/10/5/Rails-7-1-0-has-been-released + \n\n#RailsWorld #RubyonRails #Rails7 #opensource #OSS #Rails #ActiveRecord #ActiveStorage + #ActiveSupport" + video_provider: youtube + video_id: iPCqwZ9Ouc4 + +- title: "Rails and the Ruby Garbage Collector: How to Speed Up Your Rails App" + raw_title: "Peter Zhu - Rails and the Ruby Garbage Collector: How to Speed Up Your Rails App - Rails World 2023" + speakers: + - Peter Zhu + event_name: Rails World 2023 + date: "2023-10-06" + published_at: "2023-10-18" + track: Track 2 + slides_url: https://blog.peterzhu.ca/assets/rails_world_2023_slides.pdf + description: + "The Ruby garbage collector is a highly configurable component of Ruby. + However, it’s a black box to most Rails developers. \n\nIn this talk, @shopify + Senior Developer & member of the Ruby Core team Peter Zhu shows you how Ruby's + garbage collector works, ways to collect garbage collector metrics, how Shopify + sped up their highest traffic app, Storefront Renderer, by 13%, and finally, introduces + Autotuner, a new tool designed to help you tune the garbage collector of your + Rails app.\n\nSlides available at: https://blog.peterzhu.ca/assets/rails_world_2023_slides.pdf\n\nLinks:\nhttps://rubyonrails.org/\nhttps://railsatscale.com/2023-08-08-two-garbage-collection-improvements-made-our-storefronts-8-faster/\nhttps://github.com/shopify/autotuner\nhttps://blog.peterzhu.ca/notes-on-ruby-gc/\nhttps://shopify.engineering/adventures-in-garbage-collection\n\n#RailsWorld + #RubyonRails #rails #rubygarbagecollection #autotuner" + video_provider: youtube + video_id: IcN7yFTS8jY + +- title: "Rails::HTML5: The Strange and Remarkable Three-Year Journey" raw_title: "Mike Dalessio - Rails::HTML5: the strange and remarkable three-year journey - Rails World 2023" speakers: - Mike Dalessio event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-17" + track: Track 1 slides_url: https://mike.daless.io/prez/2023/10/06/rails-world-rails-html5 description: "Rails 7.1 improved Rails’s security posture and made Rails more friendly @@ -341,40 +412,14 @@ video_provider: youtube video_id: USPLEASZ0Dc -- title: "Hotwire Cookbook: Common Uses, Essential Patterns & Best Practices" - raw_title: "Yaroslav Shmarov - Hotwire Cookbook: Common Uses, Essential Patterns & Best Practices - Rails World" - speakers: - - Yaroslav Shmarov - event_name: Rails World 2023 - published_at: "2023-10-18" - slides_url: https://www.icloud.com/keynote/031WsmVqF1yJVtjl2riyTgw_A#RailsWorld_2023_Hotwire_Cookbook_Yaroslav_Shmarov - description: |- - @SupeRails creator and Rails mentor Yaroslav Shmarov shares how some of the most common frontend problems can be solved with Hotwire. - - He covers: - - Pagination, search and filtering, modals, live updates, dynamic forms, inline editing, drag & drop, live previews, lazy loading & more - - How to achieve more by combining tools (Frames + Streams, StimulusJS, RequestJS, Kredis & more) - - What are the limits of Hotwire? - - How to write readable and maintainable Hotwire code - - Bad practices - - Slides available at: https://www.icloud.com/keynote/031WsmVqF1yJVtjl2riyTgw_A#RailsWorld_2023_Hotwire_Cookbook_Yaroslav_Shmarov - - Links: - https://rubyonrails.org/ - https://superails.com/ - https://hotwired.dev/ - - #RailsWorld #RubyonRails #rails #hotwire #stimulusjs #turbo #turbolinks #domid #kredis #turboframes #turbostreams - video_provider: youtube - video_id: F75k4Oc6g9Q - - title: Demystifying the Ruby Package Ecosystem raw_title: Jenny Shen - Demystifying the Ruby package ecosystem - Rails World 2023 speakers: - Jenny Shen event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" + track: Track 2 slides_url: https://github.com/jenshenny/demystifying-ruby-ecosystem description: |- RubyGems is the Ruby community’s go to package manager. It hosts over 175 thousand gems – one of which is Rails and others that we use to customize our applications. RubyGems and Bundler do an excellent job in removing the complexities of gem resolution and installation so developers can focus on building great software. @@ -394,12 +439,38 @@ video_provider: youtube video_id: kaRhg3QDzFY +# Lunch + +- title: Just enough Turbo Native to be dangerous + raw_title: Joe Masilotti - Just enough Turbo Native to be dangerous - Rails World 2023 + speakers: + - Joe Masilotti + event_name: Rails World 2023 + date: "2023-10-06" + published_at: "2023-10-18" + track: Track 1 + slides_url: https://speakerdeck.com/joemasilotti/just-enough-turbo-native-to-be-dangerous + description: + "Turbo Native gives Rails developers superpowers, enabling us to launch + low maintenance but high-fidelity hybrid apps across multiple platforms. All while + keeping the core business logic where it matters - in the Ruby code running on + the server.\n\n@joemasilotti, ‘The Turbo Native guy’ will walk you through how + to build a Turbo Native iOS app from scratch along with the benefits and pain + points that come with it. You’ll dive into ways to make the app feel more native, + and how to integrate with native Swift SDKs, and more.\n\nSlides available at: + https://masilotti.com/slides/rails-world-2023/\n\nLinks:\nhttps://rubyonrails.org/\nhttps://masilotti.com/ + \n\n#RailsWorld #RubyonRails #rails #turbo #turbonative #ios #swift #xcode" + video_provider: youtube + video_id: hAq05KSra2g + - title: Applying Shape Up in the Real World raw_title: Ryan Singer - Applying Shape Up in the Real World - Rails World 2023 speakers: - Ryan Singer event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" + track: Track 2 description: |- Teams everywhere are tired of scrum and curious about Shape Up. But very few of them are able to apply it by-the-book, because their companies are structured differently than 37signals, where Shape Up was created. @@ -415,12 +486,38 @@ video_provider: youtube video_id: mYbxQwQAkes +# 13:30 - 15:00 Workshop - AI Driven Development - Cynthia Lo, Program Manager, GitHub + +- title: Untangling Cables and Demystifying Twisted Transistors + raw_title: Vladimir Dementyev - Untangling cables and demystifying twisted transistors - Rails World 2023 + speakers: + - Vladimir Dementyev + event_name: Rails World 2023 + date: "2023-10-06" + published_at: "2023-10-18" + track: Track 1 + slides_url: https://speakerdeck.com/palkan/railsworld-2023-untangling-cables-and-demystifying-twisted-transistors + description: + "More and more Rails applications adopt real-time features, and it’s + not surprising - Action Cable and Hotwire brought development experience to the + next level regarding dealing with WebSockets. You need zero knowledge of the underlying + tech to start crafting a new masterpiece of web art. \n\nHowever, you will need + this knowledge later to deal with ever-sophisticated feature requirements and + security and scalability concerns. @evil.martians Cable Engineer Vladimir Dementyev + helps you understand Rails’ real-time component, Action Cable so you can work + with it efficiently and confidently.\n\nSlides available at: https://speakerdeck.com/palkan/railsworld-2023-untangling-cables-and-demystifying-twisted-transistors\n\nLinks:\nhttps://rubyonrails.org/\n\n#RailsWorld + #RubyonRails #rails #actioncable" + video_provider: youtube + video_id: GrHpop5HtxM + - title: "Tailwind CSS: It looks awful, and it works" raw_title: "Adam Wathan - Tailwind CSS: It looks awful, and it works - Rails World 2023" speakers: - Adam Wathan event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" + track: Track 2 description: |- In his talk at #RailsWorld, Tailwind CSS creator @AdamWathan of @TailwindLabs will explain why “separation of concerns” isn’t the right way to think about the relationship between HTML and CSS, why presentational class names lead to code that’s so much easier to maintain, as well as loads of tips, tricks, and best practices for getting the most out of Tailwind CSS. @@ -432,90 +529,68 @@ video_provider: youtube video_id: TNXM4bqGqek -- title: Wildest Dreams of Making Profit on Open Source - raw_title: Irina Nazarova - Wildest Dreams of Making Profit on Open Source - Rails World 2023 +- title: "Hotwire Cookbook: Common Uses, Essential Patterns & Best Practices" + raw_title: "Yaroslav Shmarov - Hotwire Cookbook: Common Uses, Essential Patterns & Best Practices - Rails World" speakers: - - Irina Nazarova + - Yaroslav Shmarov event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" - slides_url: https://speakerdeck.com/irinanazarova/wildest-dreams-of-making-profit-on-open-source-rails-world-2023-irina-nazarova + track: Track 1 + slides_url: https://www.icloud.com/keynote/031WsmVqF1yJVtjl2riyTgw_A#RailsWorld_2023_Hotwire_Cookbook_Yaroslav_Shmarov description: |- - Commercialized open source has effectively supported authors while also maintaining the benefits that open principles have on the industry. By obtaining an adequate share of the value we create, we’ll be able to work on industry-changing projects we’re passionate about for years to come. + @SupeRails creator and Rails mentor Yaroslav Shmarov shares how some of the most common frontend problems can be solved with Hotwire. - Yet, achieving success in this domain is not without its challenges. We must be willing to learn, experiment, and overcome obstacles along the way. In this talk, @evil.martians CEO Irina Nazarova will unveil her insights on navigating this journey, harnessing the power of Rails at every stage. + He covers: + - Pagination, search and filtering, modals, live updates, dynamic forms, inline editing, drag & drop, live previews, lazy loading & more + - How to achieve more by combining tools (Frames + Streams, StimulusJS, RequestJS, Kredis & more) + - What are the limits of Hotwire? + - How to write readable and maintainable Hotwire code + - Bad practices + + Slides available at: https://www.icloud.com/keynote/031WsmVqF1yJVtjl2riyTgw_A#RailsWorld_2023_Hotwire_Cookbook_Yaroslav_Shmarov Links: https://rubyonrails.org/ - https://evilmartians.com/ + https://superails.com/ + https://hotwired.dev/ - #RailsWorld #RubyonRails #rails #opensource #OSS + #RailsWorld #RubyonRails #rails #hotwire #stimulusjs #turbo #turbolinks #domid #kredis #turboframes #turbostreams video_provider: youtube - video_id: gHUSoXJtatc + video_id: F75k4Oc6g9Q -- title: Monolith-ifying Perfectly Good Microservices - raw_title: Brian Scalan - Monolith-ifying perfectly good microservices - Rails World 2023 +- title: Wildest Dreams of Making Profit on Open Source + raw_title: Irina Nazarova - Wildest Dreams of Making Profit on Open Source - Rails World 2023 speakers: - - Brian Scalan + - Irina Nazarova event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" + track: Track 2 + slides_url: https://speakerdeck.com/irinanazarova/wildest-dreams-of-making-profit-on-open-source-rails-world-2023-irina-nazarova description: |- - Many conference talks have been created from engineers splitting services out of dusty old monolith apps. However, @Intercominc did the exact opposite - they moved multiple services back into their monolith and got huge productivity and reliability wins, allowing them to ship better features to their customers. + Commercialized open source has effectively supported authors while also maintaining the benefits that open principles have on the industry. By obtaining an adequate share of the value we create, we’ll be able to work on industry-changing projects we’re passionate about for years to come. - Senior Principal Systems Engineer Brian Scanlan covers the reasons why these services existed in the first place, why they felt the need to move them into their monolith, whether the moves back into the monolith were successful and what they learned along the way, including which parts of Ruby on Rails helped or hindered them! + Yet, achieving success in this domain is not without its challenges. We must be willing to learn, experiment, and overcome obstacles along the way. In this talk, @evil.martians CEO Irina Nazarova will unveil her insights on navigating this journey, harnessing the power of Rails at every stage. Links: https://rubyonrails.org/ + https://evilmartians.com/ - #RailsWorld #RubyonRails #rails #Rails7 #opensource #monolith #microservices - video_provider: youtube - video_id: wV1Yva-Dp4Y - -- title: Just enough Turbo Native to be dangerous - raw_title: Joe Masilotti - Just enough Turbo Native to be dangerous - Rails World 2023 - speakers: - - Joe Masilotti - event_name: Rails World 2023 - published_at: "2023-10-18" - slides_url: https://speakerdeck.com/joemasilotti/just-enough-turbo-native-to-be-dangerous - description: - "Turbo Native gives Rails developers superpowers, enabling us to launch - low maintenance but high-fidelity hybrid apps across multiple platforms. All while - keeping the core business logic where it matters - in the Ruby code running on - the server.\n\n@joemasilotti, ‘The Turbo Native guy’ will walk you through how - to build a Turbo Native iOS app from scratch along with the benefits and pain - points that come with it. You’ll dive into ways to make the app feel more native, - and how to integrate with native Swift SDKs, and more.\n\nSlides available at: - https://masilotti.com/slides/rails-world-2023/\n\nLinks:\nhttps://rubyonrails.org/\nhttps://masilotti.com/ - \n\n#RailsWorld #RubyonRails #rails #turbo #turbonative #ios #swift #xcode" + #RailsWorld #RubyonRails #rails #opensource #OSS video_provider: youtube - video_id: hAq05KSra2g + video_id: gHUSoXJtatc -- title: Untangling Cables and Demystifying Twisted Transistors - raw_title: Vladimir Dementyev - Untangling cables and demystifying twisted transistors - Rails World 2023 - speakers: - - Vladimir Dementyev - event_name: Rails World 2023 - published_at: "2023-10-18" - slides_url: https://speakerdeck.com/palkan/railsworld-2023-untangling-cables-and-demystifying-twisted-transistors - description: - "More and more Rails applications adopt real-time features, and it’s - not surprising - Action Cable and Hotwire brought development experience to the - next level regarding dealing with WebSockets. You need zero knowledge of the underlying - tech to start crafting a new masterpiece of web art. \n\nHowever, you will need - this knowledge later to deal with ever-sophisticated feature requirements and - security and scalability concerns. @evil.martians Cable Engineer Vladimir Dementyev - helps you understand Rails’ real-time component, Action Cable so you can work - with it efficiently and confidently.\n\nSlides available at: https://speakerdeck.com/palkan/railsworld-2023-untangling-cables-and-demystifying-twisted-transistors\n\nLinks:\nhttps://rubyonrails.org/\n\n#RailsWorld - #RubyonRails #rails #actioncable" - video_provider: youtube - video_id: GrHpop5HtxM +# 15:00 - 16:00 - Workshop - Test Smarter, Not Harder - Crafting a Test Selection Framework from Scratch - Christian Bruckmayer, Staff Engineer, Shopify - title: Don't Call It a Comeback raw_title: Jason Charnes - Don't Call It a Comeback - Rails World 2023 speakers: - Jason Charnes event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" + track: Track 1 slides_url: https://railsworld2023.jasoncharnes.com description: |- Jason Charnes, Staff Product Developer at Podia, encourages you to celebrate Rails and contribute to the movement. But don’t call it a comeback, because Rails never left. @@ -529,21 +604,39 @@ video_provider: youtube video_id: Dj8VGizRT6E -- title: "Rails and the Ruby Garbage Collector: How to Speed Up Your Rails App" - raw_title: "Peter Zhu - Rails and the Ruby Garbage Collector: How to Speed Up Your Rails App - Rails World 2023" +- title: Monolith-ifying Perfectly Good Microservices + raw_title: Brian Scalan - Monolith-ifying perfectly good microservices - Rails World 2023 speakers: - - Peter Zhu + - Brian Scalan event_name: Rails World 2023 + date: "2023-10-06" published_at: "2023-10-18" - slides_url: https://blog.peterzhu.ca/assets/rails_world_2023_slides.pdf + track: Track 2 + description: |- + Many conference talks have been created from engineers splitting services out of dusty old monolith apps. However, @Intercominc did the exact opposite - they moved multiple services back into their monolith and got huge productivity and reliability wins, allowing them to ship better features to their customers. + + Senior Principal Systems Engineer Brian Scanlan covers the reasons why these services existed in the first place, why they felt the need to move them into their monolith, whether the moves back into the monolith were successful and what they learned along the way, including which parts of Ruby on Rails helped or hindered them! + + Links: + https://rubyonrails.org/ + + #RailsWorld #RubyonRails #rails #Rails7 #opensource #monolith #microservices + video_provider: youtube + video_id: wV1Yva-Dp4Y + +- title: "Keynote: Future of Developer Acceleration with Rails" + raw_title: Aaron Patterson - Future of Developer Acceleration with Rails - Rails World 2023 + speakers: + - Aaron Patterson + event_name: Rails World 2023 + date: "2023-10-06" + published_at: "2023-10-16" + track: Track 1 description: - "The Ruby garbage collector is a highly configurable component of Ruby. - However, it’s a black box to most Rails developers. \n\nIn this talk, @shopify - Senior Developer & member of the Ruby Core team Peter Zhu shows you how Ruby's - garbage collector works, ways to collect garbage collector metrics, how Shopify - sped up their highest traffic app, Storefront Renderer, by 13%, and finally, introduces - Autotuner, a new tool designed to help you tune the garbage collector of your - Rails app.\n\nSlides available at: https://blog.peterzhu.ca/assets/rails_world_2023_slides.pdf\n\nLinks:\nhttps://rubyonrails.org/\nhttps://railsatscale.com/2023-08-08-two-garbage-collection-improvements-made-our-storefronts-8-faster/\nhttps://github.com/shopify/autotuner\nhttps://blog.peterzhu.ca/notes-on-ruby-gc/\nhttps://shopify.engineering/adventures-in-garbage-collection\n\n#RailsWorld - #RubyonRails #rails #rubygarbagecollection #autotuner" + "What would development be like if Rails had tight integration with + Language Servers? Rails Core member and Shopify Senior Staff Engineer Aaron Patterson + takes a look at how language servers work, how we can improve language server + support in Rails, and how this will increase our productivity as Rails developers. + \n\n#RailsWorld #RubyonRails #Rails #languageserver #LSP #opensource\n\nLinks:\nhttps://rubyonrails.org/" video_provider: youtube - video_id: IcN7yFTS8jY + video_id: GnqRMQ0iQTg diff --git a/data/rails-world/rails-world-2024/schedule.yml b/data/rails-world/rails-world-2024/schedule.yml new file mode 100644 index 000000000..93565aa24 --- /dev/null +++ b/data/rails-world/rails-world-2024/schedule.yml @@ -0,0 +1,210 @@ +# Schedule: https://rubyonrails.org/world/2024/agenda + +days: + - name: "Day 0" + date: "2024-09-25" + grid: + - start_time: "16:00" + end_time: "19:00" + slots: 1 + items: + - title: Early registration, sponsored by Shopify + description: |- + Registration opens for those who are already in town. Avoid the Thursday morning line, get your badge, and grab a drink with other attendees. Sponsored by Shopify, Rails World City Host. + + - start_time: "16:00" + end_time: "19:00" + slots: 1 + items: + - title: WNB.rb pre-Rails World meetup, sponsored by Shopify + description: |- + A chance for women and non-binary Rails World attendees to meet up before Rails World. Hosted by WNB.rb and sponsored by Shopify. The location and time of this event will be shared with registered attendees via the event app. + + - name: "Day 1" + date: "2024-09-26" + grid: + - start_time: "08:30" + end_time: "09:45" + slots: 1 + items: + - title: Doors Open + description: |- + Rails World attendees are welcome to register, enter, and grab a coffee before the keynote begins. + + - start_time: "09:45" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:15" + slots: 1 + items: + - Break + + # TODO: Lightning Talk slot is not exactly correct + - start_time: "11:15" + end_time: "11:45" + slots: 3 + + - start_time: "11:45" + end_time: "13:00" + slots: 1 + items: + - Lunch + + # TODO: Workshop slot is not exactly correct + - start_time: "13:00" + end_time: "13:30" + slots: 3 + + - start_time: "13:30" + end_time: "13:45" + slots: 1 + items: + - Break + + # TODO: Lightning Talk slot is not exactly correct + - start_time: "13:45" + end_time: "14:15" + slots: 3 + + - start_time: "14:15" + end_time: "14:45" + slots: 1 + items: + - Break + + # TODO: Lightning Talk slot is not exactly correct + - start_time: "14:45" + end_time: "15:15" + slots: 3 + + - start_time: "15:15" + end_time: "15:45" + slots: 1 + items: + - Break + + - start_time: "15:45" + end_time: "16:15" + slots: 2 + + - start_time: "16:15" + end_time: "16:30" + slots: 1 + items: + - Break + + - start_time: "16:30" + end_time: "17:30" + slots: 1 + + - start_time: "18:30" + end_time: "23:00" + slots: 1 + items: + - title: Toronto Ruby Drinks sponsored by Clio + description: |- + Come hang out with the local Toronto Ruby meetup group. Grab a beer and have a bite, and recharge for Day 2. + + This evening event wouldn’t be possible without the generous support and sponsorship of our Gold sponsor, Clio. Stop by their booth for a ticket to the event. Badges still required. + + - name: "Day 2" + date: "2024-09-27" + grid: + - start_time: "08:30" + end_time: "10:00" + slots: 1 + items: + - title: Doors Open + description: |- + Rails World attendees are welcome to register, enter, and grab a coffee and light breakfast before the keynote begins. + + - start_time: "10:00" + end_time: "11:00" + slots: 1 + + - start_time: "11:00" + end_time: "11:15" + slots: 1 + items: + - Break + + # TODO: Lightning Talk slot is not exactly correct + - start_time: "11:15" + end_time: "11:45" + slots: 3 + + - start_time: "11:45" + end_time: "13:00" + slots: 1 + items: + - Lunch + + # TODO: Workshop slot is not exactly correct + - start_time: "13:00" + end_time: "13:30" + slots: 3 + + - start_time: "13:30" + end_time: "13:45" + slots: 1 + items: + - Break + + # TODO: Lightning Talk slot is not exactly correct + - start_time: "13:45" + end_time: "14:15" + slots: 3 + + - start_time: "14:15" + end_time: "14:45" + slots: 1 + items: + - Break + + # TODO: Lightning Talk slot is not exactly correct + - start_time: "14:45" + end_time: "15:15" + slots: 3 + + - start_time: "15:15" + end_time: "15:45" + slots: 1 + items: + - Break + + - start_time: "15:45" + end_time: "16:15" + slots: 2 + + - start_time: "16:15" + end_time: "16:30" + slots: 1 + items: + - Break + + - start_time: "16:30" + end_time: "17:30" + slots: 1 + + - start_time: "18:30" + end_time: "22:00" + slots: 1 + items: + - title: Shopify Closing Party + description: |- + Join us as we close out Rails World with a takeover at the Shopify Port. Three floors of music, games, food, drink, and fun, with plenty of space for pair programming if you have any code you need to tackle. Pre-registration will be required (attendees will be sent more details). Don’t forget your badge! + +tracks: + - name: "Track 1 (Hosted by GitHub)" + color: "#000000" + text_color: "#ffffff" + + - name: "Track 2 (Hosted by AppSignal)" + color: "#04246E" + text_color: "#ffffff" + + - name: "Lightning Talk Track (Hosted by Shopify)" + color: "#95BF47" + text_color: "#ffffff" diff --git a/data/rails-world/rails-world-2024/videos.yml b/data/rails-world/rails-world-2024/videos.yml index 9a0a76034..b64a351f3 100644 --- a/data/rails-world/rails-world-2024/videos.yml +++ b/data/rails-world/rails-world-2024/videos.yml @@ -1,13 +1,13 @@ --- ## Day 1 -# Track 1 - title: Opening Keynote raw_title: Rails World 2024 Opening Keynote - David Heinemeier Hansson speakers: - David Heinemeier Hansson event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: |- During DHH's Opening Keynote of Rails World 2024 in Toronto, Rails 8 beta was shipped with Authentication, Propshaft, Solid Cache, Solid Queue, Solid Cable, Kamal 2, and Thruster. No PaaS needed when building with the One Person Framework. @@ -23,13 +23,13 @@ Thank you Shopify for sponsoring the editing and post-production of these videos. Check out insights from the Engineering team at: https://shopify.engineering/ video_id: "-cEn_83zRFw" -# Track 1 - title: Solid Queue Internals, Externals and all the things in between raw_title: Rosa Gutiérrez - Solid Queue internals, externals and all the things in between - Rails World 2024 speakers: - Rosa Gutiérrez event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: "After years of tackling background job complexities with Resque and Redis at 37signals, the team finally decided to build an out-of-the-box solution. @@ -44,13 +44,13 @@ on Rails. https://www.happyscribe.com/" video_id: sEv2AYJiz1U -# Track 2 - title: Going Beyond a Single Postgres Instance with Rails raw_title: Mostafa Abdelraouf - Going beyond a Single Postgres Instance with Rails - Rails World 2024 speakers: - Mostafa Abdelraouf event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 2 (Hosted by AppSignal) description: "Mostafa Abdelraouf shares the journey of evolving Instacart's Rails application beyond a single Postgres instance. He discusses how they managed the @@ -64,49 +64,53 @@ on Rails. https://www.happyscribe.com/" video_id: aPsstRiNocY -# Lightning Track -- title: "Lightning Talk: An Intern's Guide to Tackling Tech Debt" - raw_title: "An intern's guide to tackling tech debt (Mathyas Papp)" - event_name: "Rails World 2024" - speakers: - - Mathyas Papp - video_id: "mathyas-papp-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-26" - description: "Maintenance is not as bad as it sounds, follow this guide to give your web app a second life!" - -# Lightning Track -- title: "Lightning Talk: Speeding up CI at Framework: From 21 to 7 Minutes" - raw_title: "Speeding up CI at Framework: from 21 to 7 minutes (Zach Feldman)" - event_name: "Rails World 2024" - speakers: - - Zach Feldman - video_id: "zach-feldman-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-26" - description: "21 minutes isn't *terrible* for a full CI run, but what if we could get our build times down to 1/3 of that?" - -# Lightning Track -- title: "Lightning Talk: Writing Tests That Fail" - raw_title: "Writing tests that fail (Thomas Marshall)" - event_name: "Rails World 2024" - speakers: - - Thomas Marshall - video_id: "thomas-marshall-rails-world-2024" +- title: "Lightning Talks 1" + raw_title: "Lightning Talks 1 - Rails World 2024" video_provider: "not_recorded" + video_id: "lightning-talks-1-rails-world-2024" date: "2024-09-26" - description: "Why failing tests are much more useful than passing ones, and how to write them." + track: Lightning Talk Track (Hosted by Shopify) + talks: + - title: "Lightning Talk: An Intern's Guide to Tackling Tech Debt" + raw_title: "An intern's guide to tackling tech debt (Mathyas Papp)" + event_name: "Rails World 2024" + speakers: + - Mathyas Papp + video_id: "mathyas-papp-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "Maintenance is not as bad as it sounds, follow this guide to give your web app a second life!" + + - title: "Lightning Talk: Speeding up CI at Framework: From 21 to 7 Minutes" + raw_title: "Speeding up CI at Framework: from 21 to 7 minutes (Zach Feldman)" + event_name: "Rails World 2024" + speakers: + - Zach Feldman + video_id: "zach-feldman-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "21 minutes isn't *terrible* for a full CI run, but what if we could get our build times down to 1/3 of that?" + + - title: "Lightning Talk: Writing Tests That Fail" + raw_title: "Writing tests that fail (Thomas Marshall)" + event_name: "Rails World 2024" + speakers: + - Thomas Marshall + video_id: "thomas-marshall-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "Why failing tests are much more useful than passing ones, and how to write them." -# Lighting Track -# TODO: missing workshop: The Modern Pro­gram­mer’s Guide to Neovim and Zel­lij by Chris Power and Robert Beene - -# Track 1 - title: "Kamal 2.0: Deploy Web Apps Anywhere" raw_title: "Donal McBreen - Kamal 2.0: Deploy web apps anywhere - Rails World 2024" speakers: - Donal McBreen event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: |- Kamal is an imperative deployment tool from 37signals for running your apps with Docker. Donal McBreen, from the Security, Infrastructure and Performance team at 37signals will run through how it works, what they've learned from v1.0 and the changes they've made for v2.0 at his talk at #RailsWorld. @@ -117,13 +121,13 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: nsgwFWvye8I -# Track 2 - title: Repurposing the Rails CLI raw_title: Jamis Buck - Repurposing the Rails CLI - Rails World 2024 speakers: - Jamis Buck event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 2 (Hosted by AppSignal) description: |- At MongoDB, they wanted to add a tighter integration between Rails and Mongoid (their ODM), so they created their our own CLI tool that extends the Rails CLI, adding the additional functionality they seeked. Former Rails core alumnus and Capistrano-creator Jamis Buck shows how they did it at #RailsWorld, and how you can do it yourself. @@ -132,13 +136,42 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: A2NnemrKHNI -# Track 1 +- title: "Workshop: The Modern Programmer's Guide to Neovim and Zellij" + raw_title: "The Modern Programmer's Guide to Neovim and Zellij - Chris Power and Robert Beene - Rails World 2024" + speakers: + - Chris Power + - Robert Beene + event_name: Rails World 2024 + published_at: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: |- + Are you ready to revolutionize your coding environment? In a world dominated by VS Code and other Electron-based editors, there’s a hidden gem that developers are rediscovering: Vim. Or rather, Neovim. Just as Rails transformed web development, Neovim is redefining how we write code, blending decades-old technology with modern tooling for an unparalleled experience. + + **Workshop overview** In this hands-on workshop, we dive into the world of Neovim and Zellij — showing you how to streamline your development process and achieve a true flow state. + + **Here's what you can expect** + * Introduction to Neovim: Understand the core principles that make Neovim a game-changer in the modern programming landscape. + * Learn how to effortlessly manage and customize plugins to suit your unique workflow, shedding the bloat of heavier editors. + * Combine the power of Neovim and Zellij to increase developer productivity by achieving your optimal flow state. + + **Key takeaways** By the end of this 75-minute workshop, you will: + * Have a solid understanding of Neovim's capabilities and how it can enhance your productivity. + * Manage workspaces using Zellij to jump in and out of projects with ease. + * Walk away with a Neovim setup that empowers you to code with minimal distractions, maximizing your efficiency and creativity. + + **Why Attend?** This workshop is perfect for developers of all levels (with some familiarity with Vim) who are looking to optimize their workflow and embrace a lightweight, powerful, and highly customizable editor. Whether you’re new to Neovim or looking to deepen your understanding, this session will provide you with practical skills and insights that you can apply immediately. + + **Thank you Coder!** This workshop is brought to you by [Coder](https://coder.com/), and will be repeated on both days. It will be first-come, first-served. + video_provider: "not_recorded" + video_id: workshop-neovim-zellij-day-1-rails-world-2024 + - title: Introducing Kamal Proxy raw_title: Kevin McConnell - Introducing Kamal Proxy - Rails World 2024 speakers: - Kevin McConnell event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: "Kamal Proxy is a new, purpose-built HTTP proxy service that powers Kamal 2.0. It is designed to make zero-downtime deployments simpler, and comes @@ -152,13 +185,13 @@ on Rails. https://www.happyscribe.com/" video_id: hQXjbnh18XM -# Track 2 - title: The State of Security in Rails 8 raw_title: Greg Molnar - The state of security in Rails 8 - Rails World 2024 speakers: - Greg Molnar event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 2 (Hosted by AppSignal) description: "In his #RailsWorld talk, Greg Molnar highlights the recent security related improvements in Rails and why Rails is one of the best options for an @@ -170,36 +203,43 @@ on Rails. https://www.happyscribe.com/\"" video_id: Z3DgOix0rIg -# Lightning Track -- title: "Lightning Talk: Rails as a Real-Time, Multiplayer Game Engine" - raw_title: "Rails as a real-time, multiplayer game engine (Pawel Strzalkowski)" - event_name: "Rails World 2024" - speakers: - - Paweł Strzałkowski - video_id: "pawel-strzalkowski-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-26" - description: "Shows how pure Rails with Hotwire can be used to create beautiful, multiplayer, real-time games." - -# Lightning Track -- title: "Lightning Talk: How to Keep Rails App Development Fast" - raw_title: "How to keep Rails app development fast (Gannon McGibbon)" - event_name: "Rails World 2024" - speakers: - - Gannon McGibbon - video_id: "gannon-mcgibbon-rails-world-2024" +- title: "Lightning Talks 2" + raw_title: "Lightning Talks 2 - Rails World 2024" video_provider: "not_recorded" + video_id: "lightning-talks-2-rails-world-2024" date: "2024-09-26" - description: "Tips and tricks on optimizing Rails application startup in development and test." - slides_url: https://gmcgibbon.github.io/how-to-keep-rails-app-development-fast + track: Lightning Talk Track (Hosted by Shopify) + talks: + - title: "Lightning Talk: Rails as a Real-Time, Multiplayer Game Engine" + raw_title: "Rails as a real-time, multiplayer game engine (Pawel Strzalkowski)" + event_name: "Rails World 2024" + speakers: + - Paweł Strzałkowski + video_id: "pawel-strzalkowski-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "Shows how pure Rails with Hotwire can be used to create beautiful, multiplayer, real-time games." + + - title: "Lightning Talk: How to Keep Rails App Development Fast" + raw_title: "How to keep Rails app development fast (Gannon McGibbon)" + event_name: "Rails World 2024" + speakers: + - Gannon McGibbon + video_id: "gannon-mcgibbon-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "Tips and tricks on optimizing Rails application startup in development and test." + slides_url: https://gmcgibbon.github.io/how-to-keep-rails-app-development-fast -# Track 1 - title: An Upgrade Handbook to Rails 8 raw_title: Jenny Shen - An upgrade handbook to Rails 8 - Rails World 2024 speakers: - Jenny Shen event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: |- Rails 8 is here, and in her talk at #RailsWorld, Jenny Shen explores how to get your Rails app upgraded to the latest version in no time! Have too many applications to upgrade? She will also share how Shopify was able to automate the Rails upgrade process for hundreds of their applications. @@ -210,13 +250,13 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: HTRNa-U_KKk -# Track 2 - title: The Empowered Programmer raw_title: Justin Searls - The Empowered Programmer - Rails World 2024 speakers: - Justin Searls event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 2 (Hosted by AppSignal) description: "In 2019, Justin Searls gave a talk, \"The Selfish Programmer\" all about building a Rails 5 app as a one-man show. Now, he is back to share how he @@ -230,35 +270,42 @@ https://www.happyscribe.com/" video_id: mhqf2uK0doU -# Lightning Track -- title: "Lightning Talk: How to Run a Ruby Meetup and Get Inspired By It" - raw_title: "How to run a Ruby meetup and get inspired by it (Irina Nazarova)" - event_name: "Rails World 2024" - speakers: - - Irina Nazarova - video_id: "irina-nazarova-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-26" - description: "I re-started the SF Ruby Meetup and it brought the local community together: here’s my how-to." - -# Lightning Track -- title: "Lightning Talk: Tips for AI Augmented Web Dev with Cursor" - raw_title: "Tips for AI Augmented web dev with cursor (Ignacio Alonso)" - event_name: "Rails World 2024" - speakers: - - Ignacio Alonso - video_id: "ignacio-alonso-rails-world-2024" +- title: "Lightning Talks 3" + raw_title: "Lightning Talks 3 - Rails World 2024" video_provider: "not_recorded" + video_id: "lightning-talks-3-rails-world-2024" date: "2024-09-26" - description: "How I use Cursor for Ultra Fast Ruby Development." + track: Lightning Talk Track (Hosted by Shopify) + talks: + - title: "Lightning Talk: How to Run a Ruby Meetup and Get Inspired By It" + raw_title: "How to run a Ruby meetup and get inspired by it (Irina Nazarova)" + event_name: "Rails World 2024" + speakers: + - Irina Nazarova + video_id: "irina-nazarova-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "I re-started the SF Ruby Meetup and it brought the local community together: here's my how-to." + + - title: "Lightning Talk: Tips for AI Augmented Web Dev with Cursor" + raw_title: "Tips for AI Augmented web dev with cursor (Ignacio Alonso)" + event_name: "Rails World 2024" + speakers: + - Ignacio Alonso + video_id: "ignacio-alonso-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-26" + track: Lightning Talk Track (Hosted by Shopify) + description: "How I use Cursor for Ultra Fast Ruby Development." -# Track 1 - title: Frontiers of Development Productivity in Rails raw_title: Rafael França - Frontiers of development productivity in Rails - Rails World 2024 speakers: - Rafael Mendonça França event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: "Rails is known to be one of the best frameworks in terms of empowering developers to build great products, and has kept this place for 20 years. But...can @@ -272,13 +319,13 @@ on Rails. https://www.happyscribe.com/" video_id: G9xwfEOXnb0 -# Track 2 - title: Progressive Web Apps for Rails Developers raw_title: Emmanuel Hayford - Progressive Web Apps for Rails developers - Rails World 2024 speakers: - Emmanuel Hayford event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 2 (Hosted by AppSignal) slides_url: https://speakerdeck.com/siaw23/progressive-web-apps-for-rails-developers description: "Rails 8 will simplify PWA development by generating essential PWA @@ -291,7 +338,6 @@ Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/" video_id: Oh1mlNJJonE -# Track 1 - title: Fireside Chat raw_title: Fireside Chat with DHH, Matz and Tobias Lütke - Rails World 2024 speakers: @@ -300,6 +346,7 @@ - Tobias Lütke event_name: Rails World 2024 published_at: "2024-09-26" + track: Track 1 (Hosted by GitHub) description: "In a special #RailsWorld session, DHH (creator of Rails), Matz (creator of Ruby), and Shopify CEO Tobias Lütke sat down for a fireside chat about #Ruby, @@ -315,13 +362,13 @@ ## Day 2 -# Track 1 - title: "Opening Keynote: The Myth of the Modular Monolith" raw_title: Eileen Uchitelle - The Myth of the Modular Monolith - Rails World 2024 speakers: - Eileen M. Uchitelle event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) slides_url: https://speakerdeck.com/eileencodes/the-myth-of-the-modular-monolith-day-2-keynote-rails-world-2024 description: |- As Rails applications grow over time, organizations ask themselves: 'What’s next? Should we stay the course with a monolith or migrate to microservices?' At @Shopify they chose to modularize their monolith, but after 6 years they are asking: 'Did we fix what we set out to fix? Is this better than before?' Join Rails Core member Eileen Uchitelle as she poses these questions during her #RailsWorld Day 2 Opening Keynote. @@ -333,13 +380,13 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: olxoNDBp6Rg -# Track 1 - title: "SQLite on Rails: Supercharging the One-Person Framework" raw_title: "Stephen Margheim - SQLite on Rails: Supercharging the One-Person Framework - Rails World 2024" speakers: - Stephen Margheim event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) slides_url: https://fractaledmind.github.io/2024/10/16/sqlite-supercharges-rails description: "The Rails 8 feature set perfectly complements SQLite's power in creating @@ -354,13 +401,13 @@ Scribe, a transcription service built on Rails. https://www.happyscribe.com/" video_id: wFUy120Fts8 -# Track 2 - title: Demystifying Some of The Magic Behind Rails raw_title: Ridhwana Khan - Demystifying some of the magic behind Rails - Rails World 2024 speakers: - Ridhwana Khan event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 2 (Hosted by AppSignal) slides_url: https://speakerdeck.com/ridhwana/demystifying-some-of-the-magic-behind-rails description: |- Rails is renowned for its elegance, productivity, and "magic" which simplifies web development. As a recent technical writer for the official Ruby on Rails guides, Ridhwana Khan has had the opportunity to dive into the "magic" of Rails to understand the source code and translate that into clear explanations in the guides. At #RailsWorld, she shared insights gained from her experience demystifying the framework's inner workings for the good of the greater community. @@ -375,49 +422,53 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: DuPQYYWlhAY -# Lightning Track -- title: "Lightning Talk: AI-Enabled Marketplace Built on Monolithic Rails" - raw_title: "AI-Enabled Marketplace Built on Monolithic Rails (Avinash Joshi)" - event_name: "Rails World 2024" - speakers: - - Avinash Joshi - video_id: "avinash-joshi-rails-world-2024" +- title: "Lightning Talks 4" + raw_title: "Lightning Talks 4 - Rails World 2024" video_provider: "not_recorded" + video_id: "lightning-talks-4-rails-world-2024" date: "2024-09-27" - description: "Sharing insights from building a marketplace web app using Rails, including integrating AI features to enhance functionality." + track: Lightning Talk Track (Hosted by Shopify) + talks: + - title: "Lightning Talk: AI-Enabled Marketplace Built on Monolithic Rails" + raw_title: "AI-Enabled Marketplace Built on Monolithic Rails (Avinash Joshi)" + event_name: "Rails World 2024" + speakers: + - Avinash Joshi + video_id: "avinash-joshi-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: "Sharing insights from building a marketplace web app using Rails, including integrating AI features to enhance functionality." + + - title: "Lightning Talk: You Don't Need a Static Site Generator" + raw_title: "You Don't Need a Static Site Generator (Adam McCrea)" + event_name: "Rails World 2024" + speakers: + - Adam McCrea + video_id: "adam-mccrea-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: "Rails might feel like overkill for a basic website, but I'll show you why it's actually perfect." + + - title: "Lightning Talk: React to Hotwire Migration" + raw_title: "React to Hotwired migration (Carlos Marchal)" + event_name: "Rails World 2024" + speakers: + - Carlos Marchal + video_id: "carlos-marchal-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: "Migrating a complex, interactive UI from React to Hotwire taught us some useful tricks and patterns." -# Lightning Track -- title: "Lightning Talk: You Don't Need a Static Site Generator" - raw_title: "You Don't Need a Static Site Generator (Adam McCrea)" - event_name: "Rails World 2024" - speakers: - - Adam McCrea - video_id: "adam-mccrea-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-27" - description: "Rails might feel like overkill for a basic website, but I'll show you why it's actually perfect." - -# Lightning Track -- title: "Lightning Talk: React to Hotwire Migration" - raw_title: "React to Hotwired migration (Carlos Marchal)" - event_name: "Rails World 2024" - speakers: - - Carlos Marchal - video_id: "carlos-marchal-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-27" - description: "Migrating a complex, interactive UI from React to Hotwire taught us some useful tricks and patterns." - -# Lighting Track -# TODO: missing workshop: The Modern Pro­gram­mer’s Guide to Neovim and Zel­lij by Chris Power and Robert Beene - -# Track 1 - title: Making The Best of a Bad Situation - Lessons from one of Intercom's most painful outages raw_title: Miles McGuire - Making the best of a bad situation - Rails World 2024 speakers: - Miles McGuire event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) description: |- Incidents are an opportunity to level up, and on 22 Feb 2024 Intercom had one of its most painful outages in recent memory. The root cause? A 32-bit foreign key referencing a 64-bit primary key. Miles McGuire shared what happened, why it happened, and what they are doing to ensure it won't happen again (including some changes you can make to your own Rails apps to help make sure you don’t make the same mistakes.) @@ -428,13 +479,13 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: xMICEHWkp58 -# Track 2 - title: Pushing the Boundaries with ActiveStorage raw_title: Andrea Fomera - Pushing the boundaries with ActiveStorage - Rails World 2024 speakers: - Andrea Fomera event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 2 (Hosted by AppSignal) slides_url: https://docs.google.com/presentation/d/1CXN9yAh4o_rmc85WfTHGyH-MchHS-ZM4YAwmroCdSBc description: |- In her talk at #RailsWorld, Andrea Fomera showed how she works with #ActiveStorage using custom services for external providers. @@ -444,13 +495,42 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/" video_id: 20TwZvuvg2Q -# Track 1 +- title: "Workshop: The Modern Programmer's Guide to Neovim and Zellij" + raw_title: "The Modern Programmer's Guide to Neovim and Zellij - Chris Power and Robert Beene - Rails World 2024" + speakers: + - Chris Power + - Robert Beene + event_name: Rails World 2024 + published_at: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: |- + Are you ready to revolutionize your coding environment? In a world dominated by VS Code and other Electron-based editors, there’s a hidden gem that developers are rediscovering: Vim. Or rather, Neovim. Just as Rails transformed web development, Neovim is redefining how we write code, blending decades-old technology with modern tooling for an unparalleled experience. + + **Workshop overview** In this hands-on workshop, we dive into the world of Neovim and Zellij — showing you how to streamline your development process and achieve a true flow state. + + **Here's what you can expect** + * Introduction to Neovim: Understand the core principles that make Neovim a game-changer in the modern programming landscape. + * Learn how to effortlessly manage and customize plugins to suit your unique workflow, shedding the bloat of heavier editors. + * Combine the power of Neovim and Zellij to increase developer productivity by achieving your optimal flow state. + + **Key takeaways** By the end of this 75-minute workshop, you will: + * Have a solid understanding of Neovim's capabilities and how it can enhance your productivity. + * Manage workspaces using Zellij to jump in and out of projects with ease. + * Walk away with a Neovim setup that empowers you to code with minimal distractions, maximizing your efficiency and creativity. + + **Why Attend?** This workshop is perfect for developers of all levels (with some familiarity with Vim) who are looking to optimize their workflow and embrace a lightweight, powerful, and highly customizable editor. Whether you’re new to Neovim or looking to deepen your understanding, this session will provide you with practical skills and insights that you can apply immediately. + + **Thank you Coder!** This workshop is brought to you by [Coder](https://coder.com/), and will be repeated on both days. It will be first-come, first-served. + video_provider: "not_recorded" + video_id: workshop-neovim-zellij-day-2-rails-world-2024 + - title: Making Accessible Web Apps with Rails and Hotwire raw_title: Bruno Prieto - Making accessible web apps with Rails and Hotwire - Rails World 2024 speakers: - Bruno Prieto event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) description: "Is your web app accessible? In his talk at #RailsWorld, Bruno Prieto shares his first-hand perspective as a blind developer on building accessible @@ -463,13 +543,13 @@ on Rails. https://www.happyscribe.com/" video_id: zqBNEBnjzXM -# Track 2 - title: "Prepare to Tack: Steering Rails Apps Out of Technical Debt" raw_title: "Robby Russell - Prepare to tack: Steering Rails apps out of technical debt - Rails World 2024" speakers: - Robby Russell event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 2 (Hosted by AppSignal) slides_url: https://maintainablerails.com/railsworld-2024-talk-resources description: "If your Rails app is drowning in a sea of compromises and quick fixes, @@ -487,35 +567,41 @@ on Rails. https://www.happyscribe.com/" video_id: eT7hJz_GXGo -# Lightning Track -- title: "Lightning Talk: Ruby on Rails on WebAssembly" - raw_title: "Ruby on Rails on WebAssembly (Vladimir Dementyev)" - event_name: "Rails World 2024" - speakers: - - Vladimir Dementyev - video_id: "vladimir-dementyev-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-27" - description: "Bring your Rails application right into the browser for the win!" - -# Lightning Track -- title: "Lightning Talk: Callbacks: A Code-pendent Love Affair" - raw_title: "Callbacks: A Code-pendent Love Affair (Daniela Velasquez)" - event_name: "Rails World 2024" - speakers: - - Daniela Velasquez - video_id: "daniela-velasquez-rails-world-2024" +- title: "Lightning Talks 5" + raw_title: "Lightning Talks 5 - Rails World 2024" video_provider: "not_recorded" + video_id: "lightning-talks-5-rails-world-2024" date: "2024-09-27" - description: "Journey through the highs and lows of working with Rails callbacks, from initial excitement to frustration, leading to a deeper appreciation." + track: Lightning Talk Track (Hosted by Shopify) + talks: + - title: "Lightning Talk: Ruby on Rails on WebAssembly" + raw_title: "Ruby on Rails on WebAssembly (Vladimir Dementyev)" + event_name: "Rails World 2024" + speakers: + - Vladimir Dementyev + video_id: "vladimir-dementyev-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: "Bring your Rails application right into the browser for the win!" + + - title: "Lightning Talk: Callbacks: A Code-pendent Love Affair" + raw_title: "Callbacks: A Code-pendent Love Affair (Daniela Velasquez)" + event_name: "Rails World 2024" + speakers: + - Daniela Velasquez + video_id: "daniela-velasquez-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-27" + description: "Journey through the highs and lows of working with Rails callbacks, from initial excitement to frustration, leading to a deeper appreciation." -# Track 1 - title: The Rails Boot Process raw_title: Xavier Noria - The Rails Boot Process - Rails World 2024 speakers: - Xavier Noria event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) description: |- What happens when a Rails application boots? When is the logger ready? When is $LOAD_PATH set? When do initializers run or when are the autoloaders are set up? Rails Core member Xavier Noria covered all this and more in his talk at #RailsWorld. @@ -526,36 +612,13 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: Kx0ihLCTEgE -# Lightning Track -- title: "Lightning Talk: Hotwire Native - Turn any Rails App into a Mobile (iOS/Android) App" - raw_title: "Turbo Native: turn any Rails app into a mobile (iOS/Android) app (Yaroslav Shmarov)" - event_name: "Rails World 2024" - speakers: - - Yaroslav Shmarov - video_id: "kLPw34FQomI" - video_provider: "youtube" - date: "2024-09-27" - description: "Learn to make your Rails app Hotwire Native & App Store compatible." - slides_url: https://speakerdeck.com/yshmarov/yaroslav-shmarov-hotwire-native-rails-world-2024-lightning-talk - -# Lightning Track -- title: "Lightning Talk: Beyond Meetups - Creating a Ruby Ecosystem" - raw_title: "Beyond Meetups: Creating a Ruby Ecosystem (Mariusz Kozieł)" - event_name: "Rails World 2024" - speakers: - - Mariusz Kozieł - video_id: "mariusz-koziel-rails-world-2024" - video_provider: "not_recorded" - date: "2024-09-27" - description: "Discover how Ruby Europe is revolutionizing developer communities and learn how to apply these strategies globally." - -# Track 2 - title: "Testing Integrations: The Good, the Bad, and the Ugly" raw_title: "Julia López - Testing Integrations: The Good, the Bad, and the Ugly - Rails World 2024" speakers: - Julia López event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 2 (Hosted by AppSignal) slides_url: https://speakerdeck.com/yukideluxe/testing-integrations-the-good-the-bad-and-the-ugly description: "Enhancing your app's features through third-party APIs can be so powerful, @@ -570,13 +633,43 @@ on Rails. https://www.happyscribe.com/" video_id: j0FDwx4P-WU -# Track 1 +- title: "Lightning Talks 6" + raw_title: "Lightning Talks 6 - Rails World 2024" + video_provider: "not_recorded" + video_id: "lightning-talks-6-rails-world-2024" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + talks: + - title: "Lightning Talk: Hotwire Native - Turn any Rails App into a Mobile (iOS/Android) App" + raw_title: "Turbo Native: turn any Rails app into a mobile (iOS/Android) app (Yaroslav Shmarov)" + event_name: "Rails World 2024" + speakers: + - Yaroslav Shmarov + video_id: "kLPw34FQomI" + video_provider: "youtube" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: "Learn to make your Rails app Hotwire Native & App Store compatible." + slides_url: https://speakerdeck.com/yshmarov/yaroslav-shmarov-hotwire-native-rails-world-2024-lightning-talk + + - title: "Lightning Talk: Beyond Meetups - Creating a Ruby Ecosystem" + raw_title: "Beyond Meetups: Creating a Ruby Ecosystem (Mariusz Kozieł)" + event_name: "Rails World 2024" + speakers: + - Mariusz Kozieł + video_id: "mariusz-koziel-rails-world-2024" + video_provider: "not_recorded" + date: "2024-09-27" + track: Lightning Talk Track (Hosted by Shopify) + description: "Discover how Ruby Europe is revolutionizing developer communities and learn how to apply these strategies globally." + - title: "Empowering the Individual: Rails on AI" raw_title: "Obie Fernandez - Empowering the Individual: Rails on AI - Rails World 2024" speakers: - Obie Fernandez event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) description: |- Integrating AI with Ruby on Rails can transform a solo developer's workflow into an incredibly potent force, capable of competing at an unprecedented scale, bringing the dream of the "One Person Framework" even closer. At #RailsWorld Obie Fernandez shared a roadmap for integrating AI tools and techniques into your projects, insights into the potential pitfalls and best practices, and inspiration to explore the boundaries of what a single developer or a small team can achieve with the right tools. @@ -587,13 +680,13 @@ Stay tuned: all 2024 Rails World videos will be subtitled in Japanese and Brazilian Portuguese soon thanks to our sponsor Happy Scribe, a transcription service built on Rails. https://www.happyscribe.com/ video_id: Me_USd1TeYM -# Track 2 - title: Level Up Performance With Simple Coding Changes raw_title: David Henner - Level up performance with simple coding changes - Rails World 2024 speakers: - David Henner event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 2 (Hosted by AppSignal) description: "David Henner highlights some of the major improvements Zendesk has achieved using straightforward #Ruby techniques to get even better performance @@ -607,13 +700,13 @@ on Rails. https://www.happyscribe.com/" video_id: tBRBFcCWqcg -# Track 1 - title: Closing Keynote raw_title: Aaron Patterson - Rails World 2024 Closing Keynote speakers: - Aaron Patterson event_name: Rails World 2024 published_at: "2024-09-27" + track: Track 1 (Hosted by GitHub) description: |- Rails Core member Aaron Patterson (@TenderlovesCoolStuff) delivered the Closing Keynote at this year's #RailsWorld about speeding up the Rails Router. With his unique blend of humor and presentation style (a little bit technical, a lot of tomfoolery) he also introduced a new feature that may or may not* be in Rails 8: LamboRoutes. diff --git a/data/railsconf/railsconf-2024/schedule.yml b/data/railsconf/railsconf-2024/schedule.yml new file mode 100644 index 000000000..b6b3f1df9 --- /dev/null +++ b/data/railsconf/railsconf-2024/schedule.yml @@ -0,0 +1,226 @@ +# Schedule: https://railsconf.org/schedule/ +# Embed: https://sessionize.com/api/v2/zu53k32c/view/GridSmart?under=True + +days: + - name: "Day 1" + date: "2024-05-07" + grid: + - start_time: "08:30" + end_time: "09:30" + slots: 1 + items: + - Registration & Breakfast + + - start_time: "09:30" + end_time: "09:50" + slots: 1 + items: + - Introduction + + - start_time: "09:50" + end_time: "10:50" + slots: 1 + + - start_time: "10:50" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:45" + slots: 4 + + - start_time: "11:45" + end_time: "12:00" + slots: 1 + items: + - Break + + - start_time: "12:00" + end_time: "12:45" + slots: 4 + + - start_time: "12:45" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "14:45" + slots: 4 + + - start_time: "14:45" + end_time: "15:00" + slots: 1 + items: + - Break + + - start_time: "15:00" + end_time: "15:45" + slots: 4 + + - start_time: "15:45" + end_time: "16:00" + slots: 1 + items: + - Break + + - start_time: "16:00" + end_time: "16:45" + slots: 4 + + - start_time: "16:45" + end_time: "17:00" + slots: 1 + items: + - Break + + - start_time: "17:00" + end_time: "18:00" + slots: 1 + + - start_time: "18:00" + end_time: "18:05" + slots: 1 + + - name: "Day 2" + date: "2024-05-08" + grid: + - start_time: "08:00" + end_time: "09:00" + slots: 1 + items: + - Breakfast + + - start_time: "09:00" + end_time: "09:20" + slots: 1 + items: + - Introduction + + - start_time: "09:20" + end_time: "10:20" + slots: 1 + + - start_time: "10:20" + end_time: "10:30" + slots: 1 + items: + - Break + + - start_time: "10:30" + end_time: "12:30" + slots: 3 + + - start_time: "12:20" + end_time: "14:20" + slots: 1 + items: + - Lunch + + - start_time: "14:30" + end_time: "16:30" + slots: 3 + + - start_time: "16:30" + end_time: "17:00" + slots: 1 + items: + - Break + + - start_time: "17:00" + end_time: "19:00" + slots: 1 + items: + - Happy Hour + + - start_time: "19:00" + end_time: "23:00" + slots: 1 + items: + - title: Game Night + description: |- + Game night is ON! This is a B.Y.O.G. (Bring Your Own Game) special event space where you can get together, drink, snack, and play with #RubyFriends for the night. + + **Please NO games that include throwing or kicking objects!** + + Marriott - 42 Degree room, 3rd Floor Sponsored by Mike Perham (Sidekiq) + + - name: "Day 3" + date: "2024-05-09" + grid: + - start_time: "08:00" + end_time: "09:00" + slots: 1 + items: + - Breakfast + + - start_time: "09:00" + end_time: "09:45" + slots: 3 + + - start_time: "09:45" + end_time: "10:00" + slots: 1 + items: + - Break + + - start_time: "10:00" + end_time: "10:45" + slots: 3 + + - start_time: "10:45" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:45" + slots: 3 + + - start_time: "12:00" + end_time: "13:30" + slots: 1 + items: + - Lunch + + - start_time: "13:30" + end_time: "14:15" + slots: 4 + + - start_time: "14:15" + end_time: "14:30" + slots: 1 + items: + - Break + + - start_time: "14:30" + end_time: "15:15" + slots: 4 + + - start_time: "15:15" + end_time: "15:30" + slots: 1 + items: + - Break + + - start_time: "15:30" + end_time: "16:30" + slots: 1 + + - start_time: "16:30" + end_time: "17:00" + slots: 1 + + - start_time: "17:00" + end_time: "18:30" + slots: 1 + items: + - Closing Reception + +tracks: + - name: "Supporter Talk" + color: "#E1CD00" diff --git a/data/railsconf/railsconf-2024/videos.yml b/data/railsconf/railsconf-2024/videos.yml index df9783249..0132030ce 100644 --- a/data/railsconf/railsconf-2024/videos.yml +++ b/data/railsconf/railsconf-2024/videos.yml @@ -14,6 +14,34 @@ video_provider: youtube video_id: TWi-cSHNr5s +- title: Ask your logs + raw_title: RailsConf 2024 - Ask your logs by Youssef Boulkaid + speakers: + - Youssef Boulkaid + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + Logging is often an afterthought when we put our apps in production. It's there, it's configured by default and it's... good enough? + + If you have ever tried to debug a production issue by digging in your application logs, you know that it is a challenge to find the information you need in the gigabyte-sized haystack that is the default rails log output. + + In this talk, let's explore how we can use structured logging to turn our logs into data and use dedicated tools to ask — and answer — some non-obvious questions of our logs. + video_provider: youtube + video_id: y-VMajyrQnU + +- title: So writing tests feels painful. What now? + raw_title: RailsConf 2024 - So writing tests feels painful. What now? by Stephanie Minn + speakers: + - Stephanie Minn + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + When you write tests, you are interacting with your code. Like any user experience, you may encounter friction. Stubbing endless methods to get to green. Fixing unrelated spec files after a minor change. Rather than push on, let this tedium guide you toward better software design. + + With examples in RSpec, this talk will take you step-by-step from a troublesome test to an informed refactor. Join me in learning how to attune to the right signals and manage complexity familiar to any Rails developer. You’ll leave with newfound inspiration to write clear, maintainable tests in peace. Your future self will thank you! + video_provider: youtube + video_id: VmWCJFiU1oM + - title: How to Accessibility if You’re Mostly Back-End raw_title: RailsConf 2024 - How to Accessibility if You’re Mostly Back-End by Hilary Stohs-Krause speakers: @@ -28,33 +56,49 @@ video_provider: youtube video_id: GyUxe7PMD4A -- title: So writing tests feels painful. What now? - raw_title: RailsConf 2024 - So writing tests feels painful. What now? by Stephanie Minn +- title: "Supporter Talk by Revela: Scenic Views: Using the Scenic Gem to Leverage Database Views in ActiveRecord" + raw_title: "RailsConf 2024 - Scenic Views: Using the Scenic Gem to Leverage Database Views in ActiveRecord by John DeSilva and Grant Drzyzga" speakers: - - Stephanie Minn + - John DeSilva + - Grant Drzyzga event_name: RailsConf 2024 published_at: "2024-05-24" + track: "Supporter Talk" description: |- - When you write tests, you are interacting with your code. Like any user experience, you may encounter friction. Stubbing endless methods to get to green. Fixing unrelated spec files after a minor change. Rather than push on, let this tedium guide you toward better software design. + Learn how to take the Scenic Gem route for enterprise reporting. In this talk, you'll learn how to transform the complex terrain of database reporting into + much more pleasant views. - With examples in RSpec, this talk will take you step-by-step from a troublesome test to an informed refactor. Join me in learning how to attune to the right signals and manage complexity familiar to any Rails developer. You’ll leave with newfound inspiration to write clear, maintainable tests in peace. Your future self will thank you! - video_provider: youtube - video_id: VmWCJFiU1oM + John DeSilva and Grant Drzyzga, co-founders of Revela, will provide insight into their startup success and how Ruby on Rails helped them overcome a variety of challenges they faced in building a next-gen enterprise real estate software that is rapidly disrupting the market. The Revela platform now manages billions of dollars in real estate assets. -- title: Ask your logs - raw_title: RailsConf 2024 - Ask your logs by Youssef Boulkaid + John will discuss how database views can be leveraged in ActiveRecord to optimize reporting performance and other challenges you will encounter when faced with ever-expanding datasets and requirements. + video_provider: not_recorded + video_id: supporter-talk-revela-railsconf-2024 + +- title: "Look Ma, No Background Jobs: A Peek into the Async Future" + raw_title: "RailsConf 2024 - Look Ma, No Background Jobs: A Peek into the Async Future by Manu J" speakers: - - Youssef Boulkaid + - Manu Janardhanan event_name: RailsConf 2024 published_at: "2024-05-24" description: |- - Logging is often an afterthought when we put our apps in production. It's there, it's configured by default and it's... good enough? + Executing a long running task like external API requests in the request-response cycle is guaranteed to bring your Rails app to its knees sooner or later. We have relied on background jobs to offload long running tasks due to this. - If you have ever tried to debug a production issue by digging in your application logs, you know that it is a challenge to find the information you need in the gigabyte-sized haystack that is the default rails log output. + But it doesn't always have to be. Learn how you can leverage Falcon and the Async gem to unlock the full potential of ruby fibers and eliminate background jobs for IO-bound tasks and execute them directly with clean, simple, performant and scalable code. + video_provider: youtube + video_id: QeYcKw7nOkg - In this talk, let's explore how we can use structured logging to turn our logs into data and use dedicated tools to ask — and answer — some non-obvious questions of our logs. +- title: "Ruby on Fails: effective error handling with Rails conventions" + raw_title: "RailsConf 2024 - Ruby on Fails: effective error handling with... by Talysson Oliveira Cassiano" + speakers: + - Talysson Oliveira Cassiano + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + Ruby on Fails - effective error handling with Rails conventions by Talysson Oliveira Cassiano + + You ask 10 different developers how they handle errors in their applications, you get 10 very different answers or more, that’s wild. From never raising errors to using custom errors, rescue_from, result objects, monads, we see all sorts of opinions out there. Is it possible that all of them are right? Maybe none of them? Do they take advantage of Rails conventions? In this talk, I will show you error-handling approaches based on patterns we see on typical everyday Rails applications, what their tradeoffs are, and which of them are safe defaults to use as a primary choice when defining the architecture of your application video_provider: youtube - video_id: y-VMajyrQnU + video_id: qFZb9fMz8bs - title: How to make your application accessible (and keep it that way!) raw_title: RailsConf 2024 - How to make your application accessible (and keep it that way!) by Joel Hawksley @@ -71,45 +115,53 @@ video_provider: youtube video_id: ZRUn-yRH0ks -- title: "Ruby on Fails: effective error handling with Rails conventions" - raw_title: "RailsConf 2024 - Ruby on Fails: effective error handling with... by Talysson Oliveira Cassiano" +- title: "Supporter Talk by Shopify: Meet the Shopify Engineering Team" + raw_title: RailsConf 2024 - Meet the Shopify Engineering team by Aaron Patterson, Adrianna Chang, Andrew Novoselac, Andy Waite, Eileen Uchitelle, Betty Li, Gabi Stefanini, Gannon McGibbon, George Ma, Jenny Shen, Nikita Vasilevsky speakers: - - Talysson Oliveira Cassiano + - Aaron Patterson + - Adrianna Chang + - Andrew Novoselac + - Andy Waite + - Eileen M. Uchitelle + - Betty Li + - Gabi Stefanini + - Gannon McGibbon + - George Ma + - Jenny Shen + - Nikita Vasilevsky event_name: RailsConf 2024 published_at: "2024-05-24" + track: "Supporter Talk" description: |- - Ruby on Fails - effective error handling with Rails conventions by Talysson Oliveira Cassiano + Interested in Shopify's Rails-related projects this past year? Join our Meet the Team session! - You ask 10 different developers how they handle errors in their applications, you get 10 very different answers or more, that’s wild. From never raising errors to using custom errors, rescue_from, result objects, monads, we see all sorts of opinions out there. Is it possible that all of them are right? Maybe none of them? Do they take advantage of Rails conventions? In this talk, I will show you error-handling approaches based on patterns we see on typical everyday Rails applications, what their tradeoffs are, and which of them are safe defaults to use as a primary choice when defining the architecture of your application - video_provider: youtube - video_id: qFZb9fMz8bs + We'll have folks ready to chat about: + * Trilogy: Migrating our monolith to the Trilogy database client. + * Composite Primary Keys: Adopting composite primary keys in our monolith. + * Rails upgrades: Running our monolith on Rails edge and our tooling for automating Rails upgrades. + * devcontainer: Creating a convenient and consistent dev env for working on Rails apps. + * Packwerk 3: Evolving how we use Packwerk based on our learnings. (https://railsatscale.com/2024-01-26-a-packwerk-retrospective/) -- title: "Look Ma, No Background Jobs: A Peek into the Async Future" - raw_title: "RailsConf 2024 - Look Ma, No Background Jobs: A Peek into the Async Future by Manu J" - speakers: - - Manu Janardhanan - event_name: RailsConf 2024 - published_at: "2024-05-24" - description: |- - Executing a long running task like external API requests in the request-response cycle is guaranteed to bring your Rails app to its knees sooner or later. We have relied on background jobs to offload long running tasks due to this. + Stop by to get and offer feedback, ask a question, or to pair program! + video_provider: not_recorded + video_id: supporter-talk-shopify-railsconf-2024 - But it doesn't always have to be. Learn how you can leverage Falcon and the Async gem to unlock the full potential of ruby fibers and eliminate background jobs for IO-bound tasks and execute them directly with clean, simple, performant and scalable code. - video_provider: youtube - video_id: QeYcKw7nOkg +# Lunch -- title: Ruby & Rails Versioning at Scale - raw_title: RailsConf 2024 - Ruby & Rails Versioning at Scale by George Ma +- title: Crafting Rails Plugins + raw_title: RailsConf 2024 - Crafting Rails Plugins by Chris Oliver speakers: - - George Ma + - Chris Oliver event_name: RailsConf 2024 published_at: "2024-05-24" description: - In this talk we will dive into how Shopify automated Rails upgrades - as well as leveraged Dependabot, Rubocop, and Bundler to easily upgrade and maintain - 300+ Ruby Services at Shopify to be on the latest Ruby & Rails versions. You'll - learn how you can do the same! + Ever wanted to build a plugin for Rails to add new features? Rails + plugins allow you to hook into the lifecycle of a Rails application to add routes, + configuration, migrations, models, controllers, views and more. In this talk, + we'll learn how to do this by looking at some examples Rails gems to see how they + work. video_provider: youtube - video_id: XBdsKmxS2lw + video_id: LxTCpTXhpzw - title: "What's in a Name: From Variables to Domain-Driven Design" raw_title: "RailsConf 2024 - What's in a Name: From Variables to Domain-Driven Design by Karynn Ikeda" @@ -127,39 +179,48 @@ video_provider: youtube video_id: 1flw60hwcLg -- title: Crafting Rails Plugins - raw_title: RailsConf 2024 - Crafting Rails Plugins by Chris Oliver +- title: Ruby & Rails Versioning at Scale + raw_title: RailsConf 2024 - Ruby & Rails Versioning at Scale by George Ma speakers: - - Chris Oliver + - George Ma event_name: RailsConf 2024 published_at: "2024-05-24" description: - Ever wanted to build a plugin for Rails to add new features? Rails - plugins allow you to hook into the lifecycle of a Rails application to add routes, - configuration, migrations, models, controllers, views and more. In this talk, - we'll learn how to do this by looking at some examples Rails gems to see how they - work. + In this talk we will dive into how Shopify automated Rails upgrades + as well as leveraged Dependabot, Rubocop, and Bundler to easily upgrade and maintain + 300+ Ruby Services at Shopify to be on the latest Ruby & Rails versions. You'll + learn how you can do the same! video_provider: youtube - video_id: LxTCpTXhpzw + video_id: XBdsKmxS2lw -- title: From Cryptic Error Messages To Rails Contributor - raw_title: RailsConf 2024 - From Cryptic Error Messages To Rails Contributor by Collin Jilbert +- title: "Supporter Talk by Gusto: Gusto Spark Sessions - Lighting Talks by Gusto Engineering" + raw_title: RailsConf 2024 - Gusto Spark Sessions - Lighting Talks by Gusto Engineering speakers: - - Collin Jilbert + - Ivy Evans + - Junji Zhi + - Gusto Engineering Team event_name: RailsConf 2024 published_at: "2024-05-24" - description: - Discover how encountering perplexing and misleading error messages - in Ruby on Rails can lead to opportunities for contribution by delving into a - real-world example. Join me as we dissect a perplexing Ruby on Rails error by - navigating the source code. Discover how seemingly unrelated errors can be intertwined. - As responsible community members, we'll explore turning this into an opportunity - for contribution. Learn to navigate Rails, leverage Ruby fundamentals, and make - impactful changes. From local experiments to contribution submission, empower - yourself to enhance the experience of building with Rails for yourself and the - community. + track: "Supporter Talk" + description: |- + Lighting Talks hosted by Gusto will feature talks from members of the Gusto engineering team. Talks will cater to attendees of all experience levels. + video_provider: not_recorded + video_id: supporter-talk-gusto-railsconf-2024 + +- title: "A Rails server in your editor: Using Ruby LSP to extract runtime information" + raw_title: "RailsConf 2024 - A Rails server in your editor: Using Ruby LSP to extract runtime... by Andy Waite" + speakers: + - Andy Waite + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + A Rails server in your editor: Using Ruby LSP to extract runtime information by Andy Waite + + Language servers, like the Ruby LSP, typically use only static information about the code to provide editor features. But Ruby is a dynamic language and Rails makes extensive use of its meta-programming features. Can we get information from the runtime instead and use that to increase developer happiness? + + In this talk, we're going to explore how the Ruby LSP connects with the runtime of your Rails application to expose information about the database, migrations, routes and more. Join us for an in-depth exploration of Ruby LSP Rails, and learn how to extend it to support the Rails features most important to your app. video_provider: youtube - video_id: 7EpJQn6ObEw + video_id: oYTwUHAdH_A - title: "Plain, Old, but Mighty: Leveraging POROs in Greenfield and Legacy Code" raw_title: "RailsConf 2024 - Plain, Old, but Mighty: Leveraging POROs in Greenfield and... by Sweta Sanghavi" @@ -178,34 +239,53 @@ video_provider: youtube video_id: KQHD-0y8tDw -- title: "A Rails server in your editor: Using Ruby LSP to extract runtime information" - raw_title: "RailsConf 2024 - A Rails server in your editor: Using Ruby LSP to extract runtime... by Andy Waite" +- title: From Cryptic Error Messages To Rails Contributor + raw_title: RailsConf 2024 - From Cryptic Error Messages To Rails Contributor by Collin Jilbert speakers: - - Andy Waite + - Collin Jilbert event_name: RailsConf 2024 published_at: "2024-05-24" - description: |- - A Rails server in your editor: Using Ruby LSP to extract runtime information by Andy Waite - - Language servers, like the Ruby LSP, typically use only static information about the code to provide editor features. But Ruby is a dynamic language and Rails makes extensive use of its meta-programming features. Can we get information from the runtime instead and use that to increase developer happiness? - - In this talk, we’re going to explore how the Ruby LSP connects with the runtime of your Rails application to expose information about the database, migrations, routes and more. Join us for an in-depth exploration of Ruby LSP Rails, and learn how to extend it to support the Rails features most important to your app. + description: + Discover how encountering perplexing and misleading error messages + in Ruby on Rails can lead to opportunities for contribution by delving into a + real-world example. Join me as we dissect a perplexing Ruby on Rails error by + navigating the source code. Discover how seemingly unrelated errors can be intertwined. + As responsible community members, we'll explore turning this into an opportunity + for contribution. Learn to navigate Rails, leverage Ruby fundamentals, and make + impactful changes. From local experiments to contribution submission, empower + yourself to enhance the experience of building with Rails for yourself and the + community. video_provider: youtube - video_id: oYTwUHAdH_A + video_id: 7EpJQn6ObEw -- title: Implementing Native Composite Primary Key Support in Rails 7.1 - raw_title: RailsConf 2024 - Implementing Native Composite Primary Key Support in Rails 7.1 by Nikita Vasilevsky +- title: "Supporter Talk by Cisco Meraki: You Could Learn a Lot from a Dummy" + raw_title: RailsConf 2024 - You Could Learn a Lot from a Dummy by Kevin Hurley and Fito Von Zastrow speakers: - - Nikita Vasilevsky + - Kevin Hurley + - Fito Von Zastrow event_name: RailsConf 2024 published_at: "2024-05-24" + track: "Supporter Talk" + description: |- + The automotive industry has learned a great deal and significantly improved the design of their safety systems through baseline regression testing, otherwise known as crash testing. Manufacturers use sophisticated dummies to record how a collision affects the occupants of a vehicle, then analyze the data to help create improved designs which can be evaluated in another test. What can Rails developers learn from this technique? How can and when should we leverage baseline regression tests to safely improve the design of our mission critical systems? What exactly can we learn from crash test dummies? + video_provider: not_recorded + video_id: supporter-talk-cisco-meraki-railsconf-2024 + +- title: Save Time with Custom Rails Generators + raw_title: RailsConf 2024 - Save Time with Custom Rails Generators by Garrett Dimon + speakers: + - Garrett Dimon + event_name: RailsConf 2024 + published_at: "2024-05-24" + slides_url: https://speakerdeck.com/garrettdimon/save-time-by-creating-custom-rails-generators description: - Explore the new feature of composite primary keys in Rails! Learn how - to harness this powerful feature to optimize your applications, and gain insights - into the scenarios where it can make a significant difference in database performance. - Elevate your Rails expertise and stay ahead of the curve! + Become skilled at quickly creating well-tested custom generators and + turn those tedious and repetitive ten-minute distractions into ten-second commands—not + just for you but for your entire team. With some curated knowledge and insights + about custom generators and some advanced warning about the speed bumps, it can + save time in far more scenarios than you might think. video_provider: youtube - video_id: Gm5Aiai368Y + video_id: kKhzSge226g - title: "Riffing on Rails: sketch your way to better designed code" raw_title: "RailsConf 2024 - Riffing on Rails: sketch your way to better designed code by Kasper Timm Hansen" @@ -223,31 +303,31 @@ video_provider: youtube video_id: vH-mNygyXs0 -- title: Save Time with Custom Rails Generators - raw_title: RailsConf 2024 - Save Time with Custom Rails Generators by Garrett Dimon +- title: Implementing Native Composite Primary Key Support in Rails 7.1 + raw_title: RailsConf 2024 - Implementing Native Composite Primary Key Support in Rails 7.1 by Nikita Vasilevsky speakers: - - Garrett Dimon + - Nikita Vasilevsky event_name: RailsConf 2024 published_at: "2024-05-24" - slides_url: https://speakerdeck.com/garrettdimon/save-time-by-creating-custom-rails-generators description: - Become skilled at quickly creating well-tested custom generators and - turn those tedious and repetitive ten-minute distractions into ten-second commands—not - just for you but for your entire team. With some curated knowledge and insights - about custom generators and some advanced warning about the speed bumps, it can - save time in far more scenarios than you might think. + Explore the new feature of composite primary keys in Rails! Learn how + to harness this powerful feature to optimize your applications, and gain insights + into the scenarios where it can make a significant difference in database performance. + Elevate your Rails expertise and stay ahead of the curve! video_provider: youtube - video_id: kKhzSge226g + video_id: Gm5Aiai368Y -- title: Closing Day 1 - raw_title: RailsConf 2024 - Closing Day 1 with Andy Croll +- title: "Supporter Talk by Weedmaps: Local Dev Automation & Orchestration" + raw_title: RailsConf 2024 - Local Dev Automation & Orchestration by Brad Leslie speakers: - - Andy Croll + - Brad Leslie event_name: RailsConf 2024 published_at: "2024-05-24" - description: Closing Day 1 with Andy Croll - video_provider: youtube - video_id: 1-cPB5Ft9Kk + track: "Supporter Talk" + description: |- + Level up your local development! Explore automation & orchestration with Docker, Makefiles, and bash scripts. Learn how to integrate apps seamlessly, tackle dependency challenges, and supercharge local development & testing. + video_provider: not_recorded + video_id: supporter-talk-weedmaps-railsconf-2024 - title: "Keynote: Startups on Rails in 2024" raw_title: "RailsConf 2024 - Keynote: Startups on Rails in 2024 by Irina Nazarova" @@ -257,14 +337,26 @@ published_at: "2024-05-24" slides_url: https://speakerdeck.com/irinanazarova/railsconf-2024-keynote-startups-on-rails-in-2024 description: |- - Let’s hear from startups that chose Rails in recent years. Would you be surprised to hear that Rails is quietly recommended founder to founder in the corridors of Y Combinator? But it’s not only the praise that is shared. + Let's hear from startups that chose Rails in recent years. Would you be surprised to hear that Rails is quietly recommended founder to founder in the corridors of Y Combinator? But it’s not only the praise that is shared. Rails is a 1-person framework, and the framework behind giants like Shopify. Airbnb, Twitter and Figma started on Rails back in the days, but those are stories of the past. As the new businesses switched to prioritizing productivity and pragmatism again, Rails 7 had stepped up its game with Hotwire. But is the startup community ready to renew the vows with Rails and commit to each other again? The answer is: Maybe! - Let’s use feedback from those founders to discuss how Rails has aided their growth and what improvements would help more founders start-up on Rails! + Let's use feedback from those founders to discuss how Rails has aided their growth and what improvements would help more founders start-up on Rails! video_provider: youtube video_id: "-sFYiyFQMU8" +- title: Closing Day 1 + raw_title: RailsConf 2024 - Closing Day 1 with Andy Croll + speakers: + - Andy Croll + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: Closing Day 1 with Andy Croll + video_provider: youtube + video_id: 1-cPB5Ft9Kk + +## Day 2 + - title: "Keynote: Vernier - A next Generation Ruby Profiler" raw_title: RailsConf 2024 - Day 2 Keynote by John Hawthorn speakers: @@ -278,34 +370,7 @@ video_provider: youtube video_id: WFtZjGT8Ih0 -- title: "Workshop: From slow to go: Rails test profiling hands-on" - raw_title: "RailsConf 2024 - From slow to go: Rails test profiling hands-on by Vladimir Dementyev" - speakers: - - Vladimir Dementyev - event_name: RailsConf 2024 - published_at: "2024-05-24" - description: |- - Ever wished your Rails test suite to complete faster so you don’t waste your time procrastinating while waiting for the green light (or red, who knows—it’s still running)? Have you ever tried increasing the number of parallel workers on CI to solve the problem and reached the limit so there is no noticeable difference anymore? - - If these questions catch your eye, come to my workshop on test profiling and learn how to identify and fix test performance bottlenecks in the most efficient way. And let your CI providers not complain about the lower bills afterward. - - I will guide you through the test profiling upside-down pyramid, from trying to apply common Ruby profilers (Stackprof, Vernier) and learn from flamegrpahs to identifying test-specific performance issues via the TestProf toolbox. - video_provider: youtube - video_id: PvZw0CnZNPc - -- title: "Workshop: TDD for Absolute Beginners" - raw_title: RailsConf 2024 - TDD for Absolute Beginners by Jason Swett - speakers: - - Jason Swett - event_name: RailsConf 2024 - published_at: "2024-05-24" - description: - We're often taught that test-driven development is all about red-green-refactor. - But WHY do we do it that way? And could it be that they way TDD is usually taught - is actually misleading, and that there's a different and better way? In this workshop - you'll discover a different, easier way to approach test-driven development. - video_provider: youtube - video_id: I5KnvTttfOM +# TODO: missing hackday - title: "Workshop: SQLite on Rails: From rails new to 50k concurrent users and everything in between" raw_title: "RailsConf 2024 - SQLite on Rails: From rails new to 50k concurrent... by Stephen Margheim" @@ -329,24 +394,34 @@ video_provider: youtube video_id: cPNeWdaJrL0 -- title: "Workshop: Let’s Extend Rails With A Gem" - raw_title: RailsConf 2024 - Let’s Extend Rails With A Gem by Noel Rappin +- title: "Workshop: TDD for Absolute Beginners" + raw_title: RailsConf 2024 - TDD for Absolute Beginners by Jason Swett speakers: - - Noel Rappin + - Jason Swett event_name: RailsConf 2024 published_at: "2024-05-24" description: - Rails is powerful, but it doesn’t do everything. Sometimes you want - to build your own tool that adds functionality to Rails. If it’s something that - might be useful for other people, you can write a Ruby Gem and distribute it. - In this workshop, we will go through the entire process of creating a gem, starting - with “bundle gem” and ending with how to publish it with “gem push”. Along the - way, we’ll show how to get started, how to manage configuration, how to be part - of Rails configuration, whether you want to be a Rails Engine, and how to test - against multiple versions of Rails. After this workshop, you will have all the - tools you need to contribute your own gem to the Rails community. + We're often taught that test-driven development is all about red-green-refactor. + But WHY do we do it that way? And could it be that they way TDD is usually taught + is actually misleading, and that there's a different and better way? In this workshop + you'll discover a different, easier way to approach test-driven development. video_provider: youtube - video_id: eQvwn8p4HnE + video_id: I5KnvTttfOM + +- title: "Workshop: From slow to go: Rails test profiling hands-on" + raw_title: "RailsConf 2024 - From slow to go: Rails test profiling hands-on by Vladimir Dementyev" + speakers: + - Vladimir Dementyev + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + Ever wished your Rails test suite to complete faster so you don't waste your time procrastinating while waiting for the green light (or red, who knows—it’s still running)? Have you ever tried increasing the number of parallel workers on CI to solve the problem and reached the limit so there is no noticeable difference anymore? + + If these questions catch your eye, come to my workshop on test profiling and learn how to identify and fix test performance bottlenecks in the most efficient way. And let your CI providers not complain about the lower bills afterward. + + I will guide you through the test profiling upside-down pyramid, from trying to apply common Ruby profilers (Stackprof, Vernier) and learn from flamegrpahs to identifying test-specific performance issues via the TestProf toolbox. + video_provider: youtube + video_id: PvZw0CnZNPc - title: "Workshop: Build High Performance Active Record Apps" raw_title: RailsConf 2024 - Build High Performance Active Record Apps by Andrew Atkinson @@ -357,40 +432,45 @@ description: |- In this workshop, you'll learn to leverage powerful Active Record capabilities to bring your applications to the next level. We'll start from scratch and focus on two major areas. We’ll work with high performance queries and we’ll configure and use multiple databases. - You’ll learn how to write efficient queries with good visibility from your Active Record code. You’ll use a variety of index types to lower the cost and improve the performance of your queries. You'll use query planner info with Active Record. + You'll learn how to write efficient queries with good visibility from your Active Record code. You'll use a variety of index types to lower the cost and improve the performance of your queries. You'll use query planner info with Active Record. Next we'll shift gears into multi-database application design. You'll introduce a second database instance, set up replication between them, and configure Active Record for writer and reader roles. With that in place, you’ll configure automatic role switching. video_provider: youtube video_id: 4SERkjBF-es -- title: This or that? Similar methods & classes in Ruby && Rails - raw_title: RailsConf 2024 - This or that? Similar methods & classes in Ruby && Rails by Andy Andrea +- title: "Workshop: Let's Extend Rails With A Gem" + raw_title: RailsConf 2024 - Let's Extend Rails With A Gem by Noel Rappin speakers: - - Andy Andrea + - Noel Rappin event_name: RailsConf 2024 published_at: "2024-05-24" - description: |- - Working with Ruby and Rails affords access to a wealth of convenience, power and productivity. It also gives us a bunch of similar but distinct ways for checking objects' equality, modeling datetimes, checking strings against regular expressions and accomplishing other common tasks. Sometimes, this leads to confusion; other times, we simply pick one option that works and might miss out something that handles a particular use case better. - - In this talk, we'll take a look at groups of patterns, classes and methods often seen in Rails code that might seem similar or equivalent at first glance. We’ll see how they differ and look at any pros, cons or edge cases worth considering for each group so that we can make more informed decisions when writing our code. + description: + Rails is powerful, but it doesn't do everything. Sometimes you want + to build your own tool that adds functionality to Rails. If it's something that + might be useful for other people, you can write a Ruby Gem and distribute it. + In this workshop, we will go through the entire process of creating a gem, starting + with `bundle gem` and ending with how to publish it with `gem push`. Along the + way, we'll show how to get started, how to manage configuration, how to be part + of Rails configuration, whether you want to be a Rails Engine, and how to test + against multiple versions of Rails. After this workshop, you will have all the + tools you need to contribute your own gem to the Rails community. video_provider: youtube - video_id: tfxJyya6P6A + video_id: eQvwn8p4HnE -- title: Revisiting the Hotwire Landscape after Turbo 8 - raw_title: RailsConf 2024 - Revisiting the Hotwire Landscape after Turbo 8 by Marco Roth +- title: "Workshop: Vision for Inclusion" + raw_title: RailsConf 2024 - Vision for Inclusion workshop by Todd Sedano speakers: - - Marco Roth + - Todd Sedano event_name: RailsConf 2024 published_at: "2024-05-24" - slides_url: https://speakerdeck.com/marcoroth/revisiting-the-hotwire-landscape-after-turbo-8 description: |- - Hotwire has significantly altered the landscape of building interactive web applications with Ruby on Rails, marking a pivotal evolution toward seamless Full-Stack development. + Please arrive on time, we will close the workshop after the first 10 minutes. - With the release of Turbo 8, the ecosystem has gained new momentum, influencing how developers approach application design and interaction. + This interactive workshop will be centered around real, personal stories from across the industry pertaining to feelings of inclusion or exclusion. Several of the stories describe how discrimination affected the author of the story. The goal is to challenge ourselves to continue to create an inclusive engineering culture. We hope to shine a light on some of the subtle behaviors that can unknowingly lead to others feeling excluded. + video_provider: not_recorded + video_id: vision-for-inclusion-workshop-railsconf-2024 - This session, led by Marco, a core maintainer of Stimulus, StimulusReflex, and CableReady, delves into capabilities introduced with Turbo 8, reevaluating its impact on the whole Rails and Hotwire ecosystem. - video_provider: youtube - video_id: eh2joX5n58o +## Day 3 - title: "Undervalued: The Most Useful Design Pattern" raw_title: "RailsConf 2024 - Undervalued: The Most Useful Design Pattern by Jared Norman" @@ -409,33 +489,34 @@ video_provider: youtube video_id: 4r6D0niRszw -- title: The Very Hungry Transaction - raw_title: RailsConf 2024 - The Very Hungry Transaction by Daniel Colson +- title: Revisiting the Hotwire Landscape after Turbo 8 + raw_title: RailsConf 2024 - Revisiting the Hotwire Landscape after Turbo 8 by Marco Roth speakers: - - Daniel Colson + - Marco Roth event_name: RailsConf 2024 published_at: "2024-05-24" - slides_url: https://speakerdeck.com/dodecadaniel/the-very-hungry-transaction + slides_url: https://speakerdeck.com/marcoroth/revisiting-the-hotwire-landscape-after-turbo-8 description: |- - The story begins with a little database transaction. As the days go by, more and more business requirements cause the transaction to grow in size. We soon discover that it isn't a little transaction anymore, and it now poses a serious risk to our application and business. What went wrong, and how can we fix it? + Hotwire has significantly altered the landscape of building interactive web applications with Ruby on Rails, marking a pivotal evolution toward seamless Full-Stack development. - In this talk we'll witness a database transaction gradually grow into a liability. We'll uncover some common but problematic patterns that can put our data integrity and database health at risk, and then offer strategies for fixing and preventing these patterns. + With the release of Turbo 8, the ecosystem has gained new momentum, influencing how developers approach application design and interaction. + + This session, led by Marco, a core maintainer of Stimulus, StimulusReflex, and CableReady, delves into capabilities introduced with Turbo 8, reevaluating its impact on the whole Rails and Hotwire ecosystem. video_provider: youtube - video_id: L1gQL_nw73s + video_id: eh2joX5n58o -- title: Insights Gained from Developing a Hybrid Application Using Turbo Native and Strada - raw_title: RailsConf 2024 - Insights Gained from Developing a Hybrid Application Using... by John Pollard +- title: This or that? Similar methods & classes in Ruby && Rails + raw_title: RailsConf 2024 - This or that? Similar methods & classes in Ruby && Rails by Andy Andrea speakers: - - John Pollard + - Andy Andrea event_name: RailsConf 2024 published_at: "2024-05-24" - slides_url: https://www.slideshare.net/slideshow/johnpollard-hybrid-app-railsconf2024-pptx/268167413 description: |- - Insights Gained from Developing a Hybrid Application Using Turbo-Native and Strada by John Pollard + Working with Ruby and Rails affords access to a wealth of convenience, power and productivity. It also gives us a bunch of similar but distinct ways for checking objects' equality, modeling datetimes, checking strings against regular expressions and accomplishing other common tasks. Sometimes, this leads to confusion; other times, we simply pick one option that works and might miss out something that handles a particular use case better. - In this session, we delve into the complexities and benefits of hybrid app development with Turbo-Native and Strada. We cover implementation intricacies, emphasizing strategic decisions and technical nuances. Key topics include crafting seamless mobile navigation and integrating native features for enhanced functionality. We also discuss the decision-making process for rendering pages, considering performance, user interaction, and feature complexity. Additionally, we explore creating usable native components that maintain app standards. Join us for practical insights learned from our hybrid app development journey. + In this talk, we'll take a look at groups of patterns, classes and methods often seen in Rails code that might seem similar or equivalent at first glance. We’ll see how they differ and look at any pros, cons or edge cases worth considering for each group so that we can make more informed decisions when writing our code. video_provider: youtube - video_id: fi9wytUSAYY + video_id: tfxJyya6P6A - title: "Pairing with Intention: A Guide for Mentors" raw_title: "RailsConf 2024 - Pairing with Intention: A Guide for Mentors by Alistair Norman" @@ -454,18 +535,48 @@ video_provider: youtube video_id: aEqMNVbUzew -- title: From Request To Response And Everything In Between - raw_title: RailsConf 2024 - From Request To Response And Everything In Between by Kevin Lesht +- title: Insights Gained from Developing a Hybrid Application Using Turbo Native and Strada + raw_title: RailsConf 2024 - Insights Gained from Developing a Hybrid Application Using... by John Pollard speakers: - - Kevin Lesht + - John Pollard event_name: RailsConf 2024 published_at: "2024-05-24" + slides_url: https://www.slideshare.net/slideshow/johnpollard-hybrid-app-railsconf2024-pptx/268167413 description: |- - How does a web request make it through a Rails app? And, what happens when a lot of them are coming in, all at once? If you've ever been curious about how requests are handled, or about how to analyze and configure your infrastructure for optimally managing throughput, then this talk is for you! + Insights Gained from Developing a Hybrid Application Using Turbo-Native and Strada by John Pollard - In this session, you'll learn about the makeup of an individual web request, how Rails environments can best be setup to handle many requests at once, and how to keep your visitors happy along the way. We'll start by following a single request to its response, and scale all the way up through navigating high traffic scenarios. + In this session, we delve into the complexities and benefits of hybrid app development with Turbo-Native and Strada. We cover implementation intricacies, emphasizing strategic decisions and technical nuances. Key topics include crafting seamless mobile navigation and integrating native features for enhanced functionality. We also discuss the decision-making process for rendering pages, considering performance, user interaction, and feature complexity. Additionally, we explore creating usable native components that maintain app standards. Join us for practical insights learned from our hybrid app development journey. video_provider: youtube - video_id: ExHNp0LGCVs + video_id: fi9wytUSAYY + +- title: The Very Hungry Transaction + raw_title: RailsConf 2024 - The Very Hungry Transaction by Daniel Colson + speakers: + - Daniel Colson + event_name: RailsConf 2024 + published_at: "2024-05-24" + slides_url: https://speakerdeck.com/dodecadaniel/the-very-hungry-transaction + description: |- + The story begins with a little database transaction. As the days go by, more and more business requirements cause the transaction to grow in size. We soon discover that it isn't a little transaction anymore, and it now poses a serious risk to our application and business. What went wrong, and how can we fix it? + + In this talk we'll witness a database transaction gradually grow into a liability. We'll uncover some common but problematic patterns that can put our data integrity and database health at risk, and then offer strategies for fixing and preventing these patterns. + video_provider: youtube + video_id: L1gQL_nw73s + +- title: Attraction Mailbox - Why I love Action Mailbox + raw_title: RailsConf 2024 - Attraction Mailbox - Why I love Action Mailbox by Cody Norman + speakers: + - Cody Norman + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + Email is a powerful and flexible way to extend the capabilities of your Rails application. It’s a familiar and low friction way for users to interact with your app. + + As much as you may want your users to access your app, they may not need to. Email is a great example of focusing on the problem at hand instead of an over-complicated solution. + + We’ll take a deeper look at Action Mailbox and how to route and process your inbound emails. + video_provider: youtube + video_id: i-RwxAVMP-k - title: Dungeons & Dragons & Rails raw_title: RailsConf 2024 - Dungeons & Dragons & Rails by Joël Quenneville @@ -485,33 +596,39 @@ video_provider: youtube video_id: T7GdshXgQZE -- title: Attraction Mailbox - Why I love Action Mailbox - raw_title: RailsConf 2024 - Attraction Mailbox - Why I love Action Mailbox by Cody Norman +- title: From Request To Response And Everything In Between + raw_title: RailsConf 2024 - From Request To Response And Everything In Between by Kevin Lesht speakers: - - Cody Norman + - Kevin Lesht event_name: RailsConf 2024 published_at: "2024-05-24" description: |- - Email is a powerful and flexible way to extend the capabilities of your Rails application. It’s a familiar and low friction way for users to interact with your app. - - As much as you may want your users to access your app, they may not need to. Email is a great example of focusing on the problem at hand instead of an over-complicated solution. + How does a web request make it through a Rails app? And, what happens when a lot of them are coming in, all at once? If you've ever been curious about how requests are handled, or about how to analyze and configure your infrastructure for optimally managing throughput, then this talk is for you! - We’ll take a deeper look at Action Mailbox and how to route and process your inbound emails. + In this session, you'll learn about the makeup of an individual web request, how Rails environments can best be setup to handle many requests at once, and how to keep your visitors happy along the way. We'll start by following a single request to its response, and scale all the way up through navigating high traffic scenarios. video_provider: youtube - video_id: i-RwxAVMP-k + video_id: ExHNp0LGCVs -- title: "Dungeons and Developers: Uniting Experience Levels in Engineering Teams" - raw_title: "RailsConf 2024 - Dungeons and Developers: Uniting Experience Levels in... by Chantelle Isaacs" +# TODO: missing panel: Ruby Central Board + +- title: "Glimpses of Humanity: My Game-Building AI Pair" + raw_title: "RailsConf 2024 - Glimpses of Humanity: My Game-Building AI Pair by Louis Antonopoulos" speakers: - - Chantelle Isaacs + - Louis Antonopoulos event_name: RailsConf 2024 published_at: "2024-05-24" description: |- - Dungeons and Developers: Uniting Experience Levels in Engineering Teams by Chantelle Isaacs + I built a Rails-based game with a partner...an AI partner! - Join us in “Dungeons and Developers,” a unique exploration of team dynamics through the lens of Dungeons & Dragons. Discover how the roles and skills in D&D can enlighten the way we build, manage, and nurture diverse engineering teams. Whether you’re a manager aiming to construct a formidable team (Constitution) or an individual seeking to self-assess and advance your career (Charisma), this talk will guide you in leveraging technical and transferable talents. Together we’ll identify your developer archetype and complete a 'Developer Character Sheet'—our tool for highlighting abilities, proficiencies, and alignment in a fun, D&D-inspired format. Developers and managers alike will leave this talk with a newfound appreciation for the varied skills and talents each person brings to the table. + Come see how I worked with my associate, Atheniel-née-ChatGPT, and everything we achieved. + + Leave with an improved understanding of how to talk to that special machine in your life ❤️❤️❤️ and an increased sense of wonder at how magical an extended machine-human conversation can be. + + I'll be taking you through our entire shared experience, from discovering and iterating on our initial goals, to coming up with a project plan, to developing a working product. + + This is not "AI wrote a game" -- this is "Learn how to pair with an artificial intelligence as if they were a human partner, and push the boundaries of possibility!" video_provider: youtube - video_id: NHuJNDB8Dt8 + video_id: tOhJ-OHmQRs - title: "From RSpec to Jest: JavaScript testing for Rails devs" raw_title: "RailsConf 2024 - From RSpec to Jest: JavaScript testing for Rails devs by Stefanni Brasil" @@ -527,38 +644,44 @@ video_provider: youtube video_id: 9ewZf4gK_Gg -- title: "Glimpses of Humanity: My Game-Building AI Pair" - raw_title: "RailsConf 2024 - Glimpses of Humanity: My Game-Building AI Pair by Louis Antonopoulos" +- title: "Dungeons and Developers: Uniting Experience Levels in Engineering Teams" + raw_title: "RailsConf 2024 - Dungeons and Developers: Uniting Experience Levels in... by Chantelle Isaacs" speakers: - - Louis Antonopoulos + - Chantelle Isaacs event_name: RailsConf 2024 published_at: "2024-05-24" description: |- - I built a Rails-based game with a partner...an AI partner! - - Come see how I worked with my associate, Atheniel-née-ChatGPT, and everything we achieved. - - Leave with an improved understanding of how to talk to that special machine in your life ❤️❤️❤️ and an increased sense of wonder at how magical an extended machine-human conversation can be. - - I'll be taking you through our entire shared experience, from discovering and iterating on our initial goals, to coming up with a project plan, to developing a working product. + Dungeons and Developers: Uniting Experience Levels in Engineering Teams by Chantelle Isaacs - This is not "AI wrote a game" -- this is "Learn how to pair with an artificial intelligence as if they were a human partner, and push the boundaries of possibility!" + Join us in “Dungeons and Developers,” a unique exploration of team dynamics through the lens of Dungeons & Dragons. Discover how the roles and skills in D&D can enlighten the way we build, manage, and nurture diverse engineering teams. Whether you’re a manager aiming to construct a formidable team (Constitution) or an individual seeking to self-assess and advance your career (Charisma), this talk will guide you in leveraging technical and transferable talents. Together we’ll identify your developer archetype and complete a 'Developer Character Sheet'—our tool for highlighting abilities, proficiencies, and alignment in a fun, D&D-inspired format. Developers and managers alike will leave this talk with a newfound appreciation for the varied skills and talents each person brings to the table. video_provider: youtube - video_id: tOhJ-OHmQRs + video_id: NHuJNDB8Dt8 -- title: "Beyond senior: lessons from the technical career path" - raw_title: "RailsConf 2024 - Beyond senior: lessons from the technical career path by Dawn Richardson" +- title: "Lightning Talks Part 1" + raw_title: RailsConf 2024 - Lightning Talks Part 1 speakers: - - Dawn Richardson + - TODO event_name: RailsConf 2024 published_at: "2024-05-24" - description: - Staff, principal, distinguished engineer - there is an alternate path - to people management if continuing up the "career ladder" into technical leadership. - As a relatively new 'Principal Engineer', I want to report back on my learnings - so far; things I wish I had known before stepping into this role 3 years ago. + description: |- + A lightning talk is a short presentation (up to 5 mins) on your chosen topic. Talks will take place in 2 time blocks - 45 minutes each with 15 minute break in between. Signups are required for presenting. There will be an announcement on the conference Slack when signups will begin. There will be 18 slots total. + video_provider: not_recorded + video_id: lightning-talks-part-1-railsconf-2024 + +- title: Using Postgres + OpenAI to power your AI Recommendation Engine + raw_title: RailsConf 2024 - Using Postgres + OpenAI to power your AI Recommendation... by Chris Winslett + speakers: + - Chris Winslett + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: |- + Using Postgres + OpenAI to power your AI Recommendation Engine by Chris Winslett + + Did you know that Postgres can easily power a recommendation engine using data from OpenAI? It's so simple, it will blow your mind. + + For this talk, we will use Rails, ActiveRecord + Postgres, and OpenAI to build a recommendation engine. Then, in the second half, we'll present optimization and scaling techniques because AI data is unique for the scaling needs. video_provider: youtube - video_id: r7g6XicVZ1c + video_id: eG_vFj5x4Aw - title: Progressive Web Apps with Ruby on Rails raw_title: RailsConf 2024 - Progressive Web Apps with Ruby on Rails by Avi Flombaum @@ -579,31 +702,30 @@ video_provider: youtube video_id: g_0OaFreX3U -- title: Using Postgres + OpenAI to power your AI Recommendation Engine - raw_title: RailsConf 2024 - Using Postgres + OpenAI to power your AI Recommendation... by Chris Winslett +- title: "Beyond Senior: Lessons From the Technical Career Path" + raw_title: "RailsConf 2024 - Beyond senior: lessons from the technical career path by Dawn Richardson" speakers: - - Chris Winslett + - Dawn Richardson event_name: RailsConf 2024 published_at: "2024-05-24" - description: |- - Using Postgres + OpenAI to power your AI Recommendation Engine by Chris Winslett - - Did you know that Postgres can easily power a recommendation engine using data from OpenAI? It's so simple, it will blow your mind. - - For this talk, we will use Rails, ActiveRecord + Postgres, and OpenAI to build a recommendation engine. Then, in the second half, we'll present optimization and scaling techniques because AI data is unique for the scaling needs. + description: + Staff, principal, distinguished engineer - there is an alternate path + to people management if continuing up the "career ladder" into technical leadership. + As a relatively new 'Principal Engineer', I want to report back on my learnings + so far; things I wish I had known before stepping into this role 3 years ago. video_provider: youtube - video_id: eG_vFj5x4Aw + video_id: r7g6XicVZ1c -- title: Day 3 Closing - raw_title: RailsConf 2024 - Day 3 Closing with Ufuk Kayserilioglu and Andy Croll +- title: "Lightning Talks Part 2" + raw_title: RailsConf 2024 - Lightning Talks Part 2 speakers: - - Ufuk Kayserilioglu - - Andy Croll + - TODO event_name: RailsConf 2024 published_at: "2024-05-24" - description: "" - video_provider: youtube - video_id: gHANy_j0nEQ + description: |- + A lightning talk is a short presentation (up to 5 mins) on your chosen topic. Talks will take place in 2 time blocks - 45 minutes each with 15 minute break in between. Signups are required for presenting. There will be an announcement on the conference Slack when signups will begin. There will be 18 slots total. + video_provider: not_recorded + video_id: lightning-talks-part-2-railsconf-2024 - title: Closing Keynote raw_title: RailsConf 2024 - Closing Keynote by Aaron Patterson @@ -614,3 +736,14 @@ description: "" video_provider: youtube video_id: "--0pXVadtII" + +- title: Day 3 Closing + raw_title: RailsConf 2024 - Day 3 Closing with Ufuk Kayserilioglu and Andy Croll + speakers: + - Ufuk Kayserilioglu + - Andy Croll + event_name: RailsConf 2024 + published_at: "2024-05-24" + description: "" + video_provider: youtube + video_id: gHANy_j0nEQ diff --git a/data/rocky-mountain-ruby/rocky-mountain-ruby-2024/schedule.yml b/data/rocky-mountain-ruby/rocky-mountain-ruby-2024/schedule.yml new file mode 100644 index 000000000..26e2fe907 --- /dev/null +++ b/data/rocky-mountain-ruby/rocky-mountain-ruby-2024/schedule.yml @@ -0,0 +1,134 @@ +# Schedule: https://rockymtnruby.dev/schedule + +days: + - name: "Day 1" + date: "2024-10-07" + grid: + - start_time: "08:00" + end_time: "09:00" + slots: 1 + items: + - Check-in/Breakfast + + - start_time: "09:00" + end_time: "09:15" + slots: 1 + + - start_time: "09:15" + end_time: "09:50" + slots: 1 + + - start_time: "09:50" + end_time: "10:25" + slots: 1 + + - start_time: "10:25" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "12:00" + slots: 1 + + - start_time: "12:00" + end_time: "14:00" + slots: 1 + items: + - Open Lunch + + - start_time: "14:00" + end_time: "14:35" + slots: 1 + + - start_time: "14:35" + end_time: "15:10" + slots: 1 + + - start_time: "15:10" + end_time: "15:40" + slots: 1 + items: + - Break/Snacks + + - start_time: "15:40" + end_time: "16:15" + slots: 1 + + - start_time: "16:15" + end_time: "16:50" + slots: 1 + + - start_time: "16:50" + end_time: "17:00" + slots: 1 + items: + - Wrap up + + - name: "Day 2" + date: "2024-10-08" + grid: + - start_time: "08:00" + end_time: "09:00" + slots: 1 + items: + - Breakfast + + - start_time: "09:00" + end_time: "09:15" + slots: 1 + items: + - Welcome + + - start_time: "09:15" + end_time: "09:50" + slots: 1 + + - start_time: "09:50" + end_time: "10:25" + slots: 1 + + - start_time: "10:25" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "12:00" + slots: 1 + + - start_time: "12:00" + end_time: "14:00" + slots: 1 + items: + - Open Lunch + + - start_time: "14:00" + end_time: "15:10" + slots: 1 + + - start_time: "15:10" + end_time: "15:40" + slots: 1 + items: + - Break/Snacks + + - start_time: "15:40" + end_time: "16:15" + slots: 1 + + - start_time: "16:15" + end_time: "17:00" + slots: 1 + +tracks: [] diff --git a/data/ruby-banitsa/ruby-banitsa-conf-2024/schedule.yml b/data/ruby-banitsa/ruby-banitsa-conf-2024/schedule.yml new file mode 100644 index 000000000..333d71e6f --- /dev/null +++ b/data/ruby-banitsa/ruby-banitsa-conf-2024/schedule.yml @@ -0,0 +1,69 @@ +# Schedule: https://conf.rubybanitsa.com + +days: + - name: "Day 1" + date: "2024-12-07" + grid: + - start_time: "09:30" + end_time: "10:00" + slots: 1 + items: + - Registration + + - start_time: "10:00" + end_time: "10:10" + slots: 1 + items: + - Introduction + + - start_time: "10:10" + end_time: "10:50" + slots: 1 + + - start_time: "10:50" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:40" + slots: 1 + + - start_time: "11:40" + end_time: "12:00" + slots: 1 + items: + - Break + + - start_time: "12:00" + end_time: "12:40" + slots: 1 + + - start_time: "12:40" + end_time: "14:30" + slots: 1 + items: + - Lunch Break + + - start_time: "14:30" + end_time: "15:10" + slots: 1 + + - start_time: "15:10" + end_time: "15:40" + slots: 1 + items: + - Coffee Break + + - start_time: "15:40" + end_time: "16:20" + slots: 1 + + - start_time: "16:20" + end_time: "16:30" + slots: 1 + items: + - Give Thanks & Praises + +tracks: [] diff --git a/data/rubyconf/rubyconf-2016/schedule.yml b/data/rubyconf/rubyconf-2016/schedule.yml new file mode 100644 index 000000000..dba1ec684 --- /dev/null +++ b/data/rubyconf/rubyconf-2016/schedule.yml @@ -0,0 +1,178 @@ +days: + - name: "Day 1" + date: "2016-11-10" + grid: + - start_time: "09:30" + end_time: "10:30" + slots: 1 + + - start_time: "10:40" + end_time: "11:25" + slots: 4 + + - start_time: "11:35" + end_time: "12:20" + slots: 4 + + - start_time: "12:20" + end_time: "13:30" + slots: 1 + items: + - Lunch + + - start_time: "13:30" + end_time: "14:00" + slots: 1 + + - start_time: "14:10" + end_time: "14:55" + slots: 4 + + - start_time: "15:05" + end_time: "15:50" + slots: 4 + + - start_time: "15:50" + end_time: "16:20" + slots: 1 + items: + - Break + + - start_time: "16:20" + end_time: "17:05" + slots: 4 + + - start_time: "17:15" + end_time: "18:00" + slots: 1 + + - name: "Day 2" + date: "2016-11-11" + grid: + - start_time: "09:30" + end_time: "10:15" + slots: 1 + + - start_time: "10:25" + end_time: "11:10" + slots: 4 + + - start_time: "11:20" + end_time: "12:05" + slots: 4 + + - start_time: "12:05" + end_time: "13:15" + slots: 1 + items: + - Lunch + + - start_time: "13:15" + end_time: "14:00" + slots: 4 + + - start_time: "14:10" + end_time: "14:55" + slots: 4 + + - start_time: "15:05" + end_time: "15:50" + slots: 4 + + - start_time: "15:50" + end_time: "16:20" + slots: 1 + items: + - Break + + - start_time: "16:20" + end_time: "17:05" + slots: 4 + + - start_time: "17:15" + end_time: "18:45" + slots: 1 + + - name: "Day 3" + date: "2016-11-12" + grid: + - start_time: "09:30" + end_time: "10:15" + slots: 1 + + - start_time: "10:25" + end_time: "11:10" + slots: 4 + + - start_time: "11:20" + end_time: "12:05" + slots: 4 + + - start_time: "12:05" + end_time: "13:15" + slots: 1 + items: + - Lunch + + - start_time: "13:15" + end_time: "14:00" + slots: 4 + + - start_time: "14:10" + end_time: "14:55" + slots: 4 + + - start_time: "15:05" + end_time: "15:50" + slots: 1 + + - start_time: "15:50" + end_time: "16:30" + slots: 1 + items: + - Closing Social + +tracks: + - name: Learning and Teaching + color: "#FFD54F" + text_color: "#000000" + + - name: Comparative Ruby + color: "#BA68C8" + text_color: "#FFFFFF" + + - name: Tools and Toys + color: "#4DD0E1" + text_color: "#000000" + + - name: Ruby Deep Dive + color: "#42A5F5" + text_color: "#FFFFFF" + + - name: Ruby and Hardware + color: "#FF7043" + text_color: "#fff" + + - name: Testing + color: "#66BB6A" + text_color: "#000000" + + - name: Lessons Learned + color: "#FFCA28" + text_color: "#000000" + + - name: Performance + color: "#EF5350" + text_color: "#FFFFFF" + + - name: War Stories + color: "#8D6E63" + text_color: "#FFFFFF" + + - name: Life Beyond Bootcamps + color: "#26A69A" + text_color: "#FFFFFF" + + - name: Weird Ruby + color: "#78909C" + text_color: "#FFFFFF" diff --git a/data/rubyconf/rubyconf-2016/videos.yml b/data/rubyconf/rubyconf-2016/videos.yml index 738866ae2..962e68b28 100644 --- a/data/rubyconf/rubyconf-2016/videos.yml +++ b/data/rubyconf/rubyconf-2016/videos.yml @@ -10,8 +10,8 @@ event_name: RubyConf 2016 published_at: "2016-11-10" description: RubyConf 2016 - Opening Keynote by Yukihiro 'Matz' Matsumoto - video_provider: youtube video_id: 1l3U1X3z0CE + track: null # --- @@ -30,8 +30,8 @@ Luckily, Rubyists have recently improved OpenStruct performance and provided some alternatives. We'll study their approaches, learning to take advantage of the tools in our ecosystem while advancing the state our community. Sometimes, we can have our cake and eat it too. But it takes creativity, hard work, and willingness to question why things are the way they are. - video_provider: youtube video_id: 2IbJFCbBnQk + track: null # Track: Learning and Teaching - title: Bootcamp Grads Have Feelings, Too @@ -46,8 +46,8 @@ You’re a bootcamp student. You’re so excited to become a developer! Amidst your excitement about this new industry, you hear everyone say that bootcamps are a blemish on the community, that they’re a waste of time and money. “Maybe I’ve made a huge mistake,” you think. “I don’t know how I’ll fit in here." But you can make this community better! In this session, you’ll learn about the varied experiences of bootcamp students and grads, how exclusionary behavior can end up stunting our community as a whole, and what you can to do make a more inclusive environment for everyone of all skill levels. - video_provider: youtube video_id: 133HhIjmfRE + track: Learning and Teaching # Track: General 2 - title: "Attention Rubyists: You Can Write Video Games" @@ -62,8 +62,8 @@ Ruby may seem like a humdrum language best suited for writing web apps, but underneath that cool exterior lies plenty of power -- power we can harness for making our own games! In this talk, we'll introduce Gosu, a sweet little game library. We'll talk about how games are structured in pretty much every language and framework ever, where to get ideas for things to make, and ways you can share your game with your friends and the world. - video_provider: youtube video_id: bK9RX_CzCeI + track: null # Track: Comparative Ruby - title: Building Maintainable Command-Line Tools with MRuby @@ -78,8 +78,8 @@ mruby and mruby-cli makes it possible to ship single binary command-line tools that can be used without setup effort, but how difficult is development in MRuby? In this talk we'll explore how to work with MRuby and mruby-cli. We'll cover the differences in development patterns when using MRuby, the maturity of the MRuby ecosystem, and development patterns when using mruby-cli to build a command-line tool. - video_provider: youtube video_id: 96YgJSGaB3M + track: Comparative Ruby # --- @@ -96,8 +96,8 @@ Ever wanted to rewrite performance sensitive code as a native Ruby extension, but got stuck trying to navigate the depths of Ruby’s C API before you could get anything done? Or maybe you’re just not comfortable with C and want an easier path. Do you know any Go? Well, if you do, you’re in luck! Join us for this talk about a tool named gorb that will quickly and easily let you generate native Ruby extension wrappers for your Go programs. And if you don’t know Go, come anyway, it’s really easy to learn! We’ll have you writing blazing fast code that you can use right from Ruby, in no time at all. - video_provider: youtube video_id: V1ZMQjm9I50 + track: Tools and Toys # Track: Learning and Teaching - title: Continuing Education at Work @@ -110,8 +110,8 @@ RubyConf 2016 - Continuing Education at Work by Katherine Wu The list of things we want to learn is infinite. How many of us have marked items to read/watch, yet never go back to them? Despite the best of intentions, I often only learn what I directly need. It wasn’t until I started running a couple lightweight continuing education programs at work that I followed through on my goals. We’ll discuss strategies for making these programs low maintenance and long-lived, as well as flexible enough to help both more and less experienced folks. If you’ve been looking for a more effective approach to learning, but still outside classrooms, this talk is for you! - video_provider: youtube video_id: 9uRho69xSAI + track: Learning and Teaching # Track: General 2 - title: "Deletion Driven Development: Code to Delete Code!" @@ -124,8 +124,8 @@ RubyConf 2016 - Deletion Driven Development: Code to delete code! by Chris Arcand Good news! Ruby is a successful and mature programming language with a wealth of libraries and legacy applications that have been contributed to for many years. The bad news: Those projects might contain a large amount of useless, unused code which adds needless complexity and confuses new developers. In this talk I'll explain how to build a static analysis tool to help you find unused code and remove it - because there's no code that's easier to maintain than no code at all! - video_provider: youtube video_id: OfiIyNV00uI + track: null # Track: Comparative Ruby - title: Composition @@ -138,8 +138,8 @@ RubyConf 2016 - Composition by James Dabbs Our work as programmers consists largely of problem decomposition and solution recomposition. This talk is interested in how we cobble small units together into cohesive solutions. We'll examine and compare both object and functional composition, using a Haskell-inspired, functional style of Ruby. Along the way, we'll see how good functional principles can improve our object-oriented design, and vice versa. - video_provider: youtube video_id: zwo7ZTHS8Wg + track: Comparative Ruby # Lunch @@ -157,8 +157,8 @@ RubyConf 2016 - Just a Ruby Minute by Andrew Faraday Just a Minute is a game show that's a part of the British national consciousness, delighting audiences across the country for almost half a century. In it, speakers are challenged to speak for one minute without hesitation, repetition or deviation, it's much harder than it sounds. It's fast paced, funny, insightful and you might even learn something. - video_provider: youtube video_id: 1hpoyjCB2WY + track: null # --- @@ -173,8 +173,8 @@ RubyConf 2016 - Evaluate Ruby Without Ruby by Takashi Kokubun Have you ever wanted to implement a tool that can be configured by Ruby code? You may think such tools require MRI, JRuby or Rubinius to evaluate the configuration. But that's not true! Let's see how we can build a tool that evaluates Ruby without dependency on Ruby interpreter using mruby. - video_provider: youtube video_id: jD0q8uHV5cA + track: Tools and Toys # Track: Learning and Teaching - title: '"Am I Senior Yet?" Grow Your Career by Teaching Your Peers' @@ -189,8 +189,8 @@ “How do I become a senior engineer?” It’s a question every bootcamp grad will ask. Most engineers look at advancement through a lens of increasing technical skill. More than ever, though, being “senior” means more than just parsing Ruby in your sleep. As our companies grow and as our industry grows, seniority means helping new teammates and colleagues advance their own skills. It means knowing how to teach. You don’t need Matz-level knowledge to be a great teacher. With social awareness, a dash of psychology, and some proven approaches, by helping others learn, you’ll earn senior-level respect. - video_provider: youtube video_id: jcTmoOHhG9A + track: Learning and Teaching # Track: Ruby Deep Dive - title: A Look at Hooks @@ -205,8 +205,8 @@ Ruby has several methods that are invoked implicitly under certain circumstances. These methods are called "hooks", and they provide points to extend behavior. While hooks might seem like "spooky action at a distance", they can be really powerful. In fact, hooks are one of the primary ways that Ruby provides for meta-programming. Unfortunately, Ruby's hooks are not all documented very well. We'll take a look at what hooks are available and how to use them. We'll also talk about when to avoid using hooks and provide some tips on how to troubleshoot when hooks are involved. - video_provider: youtube video_id: x7F4kkdKQbQ + track: Ruby Deep Dive # Track: Comparative Ruby - title: Why Recursion Matters @@ -221,8 +221,8 @@ In modern programming, recursion is so common that we take it for granted. We work with recursive processes and structures every day, and it's easy to forget that recursion was once a highly contentious issue in programming language design. But there's more to recursion than meets the eye. In this talk I'll discuss how it is fundamental to computing; how it can prove programs are correct, make them run faster, and even let you run programs backwards! Along the way we'll meet maths, Haskell, Bash, JavaScript, and our old friend Ruby doing some very surprising things. - video_provider: youtube video_id: qhwG2B77fQk + track: Comparative Ruby # --- @@ -237,8 +237,8 @@ RubyConf 2016 - Improving Coverage Analysis by Ryan Davis If you follow modern practices, test coverage analysis is a lie, plain and simple. What it reports is a false positive and leaves you with a false sense of security, vulnerable to regression, and unaware that this is even the case. Come figure out how this happens, why it isn’t your fault, and how coverage analysis can be improved. - video_provider: youtube video_id: ljTO3HDw1sI + track: Tools and Toys # Track: General 1 - title: "Dōmo Arigatō, Mr. Roboto: Machine Learning with Ruby" @@ -256,8 +256,8 @@ you've got to do it in Python or Java. Not so! In this talk, we'll walk through training a neural network written in Ruby on the MNIST dataset, then develop an application to use that network to classify handwritten numbers. - video_provider: youtube video_id: T1nFQ49TyeA + track: null # Track: Ruby Deep Dive - title: Keyword Args — The Killer Ruby Feature You Aren't Using @@ -274,8 +274,8 @@ Ruby 2.0's KWArgs feature isn't just an easier way to write functions that take keyword arguments; KWArgs turn Ruby into a lean, mean Hash processing machine. In this talk, you'll learn the details of how to write the next generation of Ruby code. Code that is easier to read, easier to write, more flexible and easier to change, all based on this one simple Ruby feature. - video_provider: youtube video_id: 4e-_bbFjPRg + track: Ruby Deep Dive # Track: Comparative Ruby - title: "To Clojure and Back: Writing and Rewriting in Ruby" @@ -302,8 +302,8 @@ Act 4 - Reconciliation How I write Ruby has changed: a discussion. - video_provider: youtube video_id: doZ0XAc9Wtc + track: Comparative Ruby # Break @@ -320,8 +320,8 @@ We often use color as a way to add information, whether in design, in UX, or for visualizations. When we visualize information, what's the best possible color scheme to use? How can we display the most possible information? The only way to know is to explore the nature of color! We'll build up to the color-handling code that exists in 'graphics.rb', a Ruby-language visualizations library. For free, we'll end up with intuitive models of computer color spaces and tricks for how to think about common color concepts like gradients and paint mixing. - video_provider: youtube video_id: pGGY5P9ZCUA + track: null # Track: General 2 - title: Problem Solved! Using Logic Programming to Find Answers @@ -336,8 +336,8 @@ We love Ruby's object orientation, and you might have heard functional programming is the new hotness. But don't leave home without one more paradigm! Logic programs express relations and constraints, allowing us to work with incomplete information, build knowledge systems, and find outputs of a system given whatever inputs are available. You'll see examples of logic programs using Ruby, learn about an algorithm that searches for a solution in a finite problem space, and explore potential applications for logic programming approaches, both in practical areas and for your mental models. - video_provider: youtube video_id: f5Bi6_GOIB8 + track: null # Track: Ruby Deep Dive - title: Lies, Damned Lies, and Substrings @@ -352,8 +352,8 @@ Generate all of the substrings of a string—a classic coding problem. But what's its time complexity? In many languages this is a pretty straightforward question, but in Ruby it turns out, it depends. Follow me into the matrix as I explore copy-on-write optimization, how substrings are created in MRI, and eventually create a custom build of Ruby to try to speed up this classic coding problem. This talk will be a mix of computer science and a deep dive into how Ruby strings work in MRI. - video_provider: youtube video_id: piLmdh3Am3o + track: Ruby Deep Dive # Track: General 3 - title: Diving into the Details with DTrace @@ -369,8 +369,8 @@ But what if we had a friend who could see things we can't? Someone who could say whether our guesses were right, and what to look at next? DTrace is that friend, and it's here to help! In this talk, I'll show you how DTrace can answer incredibly general and specific questions about systems performance, and help us to generate new ones. Along the way, we'll see that it's easier to use than you might think! - video_provider: youtube video_id: ZzYyl5vAWcA + track: null # --- @@ -384,8 +384,8 @@ RubyConf 2016 - Computer Science: The Good Parts by Jeffrey Cohen You don't need a 4-year degree to learn the best parts of computer science. Maybe you've seen jargon like "Big O Notation," "binary trees", "graph theory", "map-reduce", or the "Turing test", but have been afraid to ask. But did you know that that these concepts are responsible for Mars rovers, self-driving cars, mobile databases, our air traffic control system, and and even how we elect presidents? In this beginner-focused talk, I will present some simple and very practical ways apply the "good parts" of computer science to your next app. - video_provider: youtube video_id: 4V2kwMSDEsE + track: null ## Day 2 - 2016-11-11 @@ -407,8 +407,8 @@ needs, what we’re doing wrong, and then we’ll outline the winning formula. If things go really well with your empathetic documentation, you can reduce costs, justify a salary increase, and even become famous. No, really. I’m not KIDding." - video_provider: youtube video_id: 0Szd52CY9hE + track: null # --- @@ -423,8 +423,8 @@ RubyConf 2016 - (m)Ruby on small devices by Shashank Daté mruby is the lightweight implementation of the Ruby language for linking and embedding within your applications. This talk will show how it can be used on small resource constrained devices like Raspberry Pi Zero and exploring some techniques of memory and run-time optimizations. - video_provider: youtube video_id: 0q2HRwP7Vzo + track: Ruby and Hardware # Track: Testing - title: Better Code Through Boring(er) Tests @@ -437,8 +437,8 @@ RubyConf 2016 - Better Code Through Boring(er) Tests by Betsy Haibel Your tests are annoying. Whenever you update your application code, you need to change a lot of them. You've built yourself some test macros, and some nice FactoryGirl factories, and installed this really cool matcher gem... and your tests are still annoying. What if you changed your application code instead? In this talk, you'll learn what "listening to your tests" means in the real world: no mysticism, no arrogant TDD purism, just a few practical refactorings you can use tomorrow at work. - video_provider: youtube video_id: tTQpD3o_FAw + track: Testing # Track: General 1 - title: From no OSS Experience to the Core Team in 15 Minutes a Day @@ -451,8 +451,8 @@ RubyConf 2016 - From no OSS experience to the core team in 15 minutes a day by André Arko Using and contributing to open source has been a cornerstone of the Ruby community for many years. Despite this strong tradition, it’s hard to find anything collecting the likely advantages and costs of working on open source. This talk will introduce open source work, the benefits and costs of doing that work, and then provide a straightforward list of activities that can be done by anyone, no matter their level of experience with programming. Pick a project, schedule at least 15 minutes per day, join the core team. It’s your destiny! - video_provider: youtube video_id: 6jUe-9Y__KM + track: null # Track: Lessons Learned - title: Finding Your Edge Through a Culture of Feedback @@ -467,8 +467,8 @@ Have you ever wished for more feedback from colleagues to help you get better at your job? When’s the last time you offered helpful feedback to someone else? Imagine an entire company fluent in the daily practice of giving and receiving constructive feedback. Would your experience improve? What does a team lose when feedback doesn’t flow? Feedback conversations can be difficult. But giving and receiving feedback pushes us to the edge of our growth potential, where the biggest payoffs occur. Join this session to grow your career by learning how to get real. - video_provider: youtube video_id: EkLdO-SphxA + track: Lessons Learned # --- @@ -487,8 +487,8 @@ We’re going to learn to use voice recognition to run our Ruby code so we won’t need to depend on archaic plastic input methods to live our megalomaniacal dreams. I think we can all agree that the world needs more robots listening to our every word, let’s build an army of them and arm them with Ruby! - video_provider: youtube video_id: znvpPsLBZyg + track: Ruby and Hardware # Track: Testing - title: Surgically Refactoring Ruby with Suture @@ -510,8 +510,8 @@ In staging, old & new code is ensured side-by-side In production, unexpected errors fall back to the old code With renewed confidence and without fear, you grab the card. You've got this. - video_provider: youtube video_id: pBginuIW2WU + track: Testing # Track: General 1 - title: Implementing Virtual Machines in Ruby (and C) @@ -526,8 +526,8 @@ Most of us who've played games or worked in any one of a number of popular programming languages will have used virtual machines but unless we've taken a course in programming language design we probably have only a loose idea of what these are and how they work. In this talk I'll look at the various parts necessary to model a computer-like machine in code, borrowing ideas as I go from real-world hardware design. We'll use a mixture of C and Ruby as our modelling languages: C is the lingua franca of the VM world whilst Ruby is the language which brought us monkey-patching... - video_provider: youtube video_id: wN-pNr2arxI + track: null # Track: Lessons Learned - title: My Meta Moments @@ -542,8 +542,8 @@ Meta-programming is alluring. To write code that writes more code sounds like the peak of efficiency, but learning it is filled with infinite loops and confusing stack traces. It is a place with lots of hair pulling and endless puts debugging. Meta-programming in ruby can be intimidating. Yet, even with all that, it is fun. It is learnable. It is quintessentially ruby. If you’re interested in getting your feet wet, come share my journey of learning things like method dispatch, BasicObject, class ancestry, and the joy of things you should think twice about before doing in production code. - video_provider: youtube video_id: 0OAgZBNIixU + track: Lessons Learned # Lunch @@ -558,8 +558,8 @@ RubyConf 2016 - How I Taught My Dog To Text Selfies by Greg Baugues This talk is for the Rubyist who wants to get into hardware hacking but feels intimidated or unsure of where to start. The Arduino Yun is wifi-enabled and runs a stripped-down version of Linux. That means that you can build hardware hacks that execute Ruby scripts and interact with web APIs. In this talk, we'll start from scratch and live code a hardware hack that my dog uses to text me selfies using a webcam, Twilio, and a big red button. - video_provider: youtube video_id: 7ysfTZT_-tY + track: Ruby and Hardware # Track: Testing - title: Test Doubles are Not To Be Mocked @@ -572,8 +572,8 @@ RubyConf 2016 - Test Doubles are Not To Be Mocked by Noel Rappin Test doubles (which you may know under the alias “mock objects”) are the most misunderstood and misused testing tools we've got. Starting with the fact that nobody can agree on what to call them. Contrary to what you may have heard, test doubles do not inherently lead to fragile tests. What they do is hold up a harsh mirror to the assumptions in our code. They are the light saber of testing tools: a more elegant weapon for a more civilized age. But be careful not to cut your code in half, so to speak. Herein: a guide to using test doubles without losing your sanity. - video_provider: youtube video_id: qgZu6vEuqBU + track: Testing # Track: Performance - title: Ruby 3 Concurrency @@ -586,8 +586,8 @@ RubyConf 2016 - Ruby 3 Concurrency by Koichi Sasada Learn from Koichi about the work he's doing to bring a new concurrency model to Ruby 3! - video_provider: youtube video_id: mjzmUUQWqco + track: Performance # Track: Lessons Learned - title: Why Is Open Source So Closed? @@ -600,8 +600,8 @@ RubyConf 2016 - Why Is Open Source So Closed? by Ra'Shaun Stovall Why is Open Source So Closed? With the rapidly increasing amount of students coming out of bootcamp schools we have now created a gap within our communities of the "haves", and the "Looking for job"s. Being the organizer of New York City's 4,500+ member Ruby community with NYC.rb I have discovered ways we can ensure the generations of rubyists after us have a path paved before them. "Cyclical Mentorship" is the answer. Best part is we will know individually how we can immediately begin the feedback loop of not computers, but people! - video_provider: youtube video_id: A5ad52AogJ8 + track: Lessons Learned # --- @@ -618,8 +618,8 @@ Come with us now on a journey through time and space. As we explore the world of analog/digital synthesis. From computer generated music to physical synthesisers and everything in between. So you want to write music with code, but don’t know the difference between an LFO, ADSR, LMFAO, etc. Or a Sine wave, Saw wave, Google wave. We’ll explore what these mean, and how Ruby can be used to make awesome sounds. Ever wondered what Fizz Buzz sounds like, or which sounds better bubble sort or quick sort? So hey Ruby, let’s make music! - video_provider: youtube video_id: v3wYX-HSkr0 + track: Ruby and Hardware # Track: General 1 - title: Ruby for Home-Ec @@ -632,8 +632,8 @@ RubyConf 2016 - Ruby for Home-Ec by Adam Forsyth Come learn how to design your own algorithms and code to solve problems around the house. Trying to use your scrap wood efficiently? Want to sort your pantry to maximize variety? I’ll talk about the problem-solving process, walk through code, and touch on the computer science behind it all. - video_provider: youtube video_id: iosgoDJl8VY + track: null # Track: Performance - title: Ruby’s C Extension Problem and How We're Solving It @@ -648,8 +648,8 @@ Ruby’s C extensions have so far been the best way to improve the performance of Ruby code. Ironically, they are now holding performance back, because they expose the internals of Ruby and mean we aren’t free to make major changes to how Ruby works. In JRuby+Truffle we have a radical solution to this problem – we’re going to interpret the source code of your C extensions, like how Ruby interprets Ruby code. Combined with a JIT this lets us optimise Ruby but keep support for C extensions. - video_provider: youtube video_id: YLtjkP9bD_U + track: Performance # Track: General 2 - title: Ruby, Red Pandas, and You @@ -662,8 +662,8 @@ RubyConf 2016 - Ruby, Red Pandas, and You by Sean Marcia Red pandas are adorable, playful, curious, and super cute. Unfortunately, they are in serious trouble. Over 50% of red panda newborns born in captivity do not survive long enough to leave their den and no one knows why. Come find out why red pandas are so amazing, how I met a Smithsonian Zoo researcher studying this and how we’re solving this important problem using Ruby and machine learning. You will also leave this talk knowing how you can get involved (no matter your skill level) with great projects like this. - video_provider: youtube video_id: jm9gEhXFUro + track: null # --- @@ -681,8 +681,8 @@ After several years of programming in Ruby using Shoes, my daughter and I were hunting for a new project. Something more useful than a game. Something with a real-world connection. Then it struck us: Chickens! Join us as we show you how we built our coop monitoring system. It’ll be a wild ride of hardware hacking, weather-proofing, and father-daughter bonding, with Ruby sprinkled throughout. You’ll learn how to modernize your surroundings, and about engaging the young people in your life in technology along the way. - video_provider: youtube video_id: Iah2t1_iSYE + track: Ruby and Hardware # Track: General 1 - title: JRuby Everywhere! Server, Client, and Embedded @@ -695,8 +695,8 @@ RubyConf 2016 - JRuby Everywhere! Server, Client, and Embedded by Thomas Enebo Ruby has seen its heaviest on servers; Client-side Ruby has been limited to experiments and toys, and Ruby C extensions complicate embedded use. But there's a better way: JRuby. Using frameworks like JRubyFX and Shoes 4, among many GUI and graphics libraries, JRuby makes client-side development fast and powerful. With an embedded JVM, JRuby runs your app on mid-level embedded devices without compiling a line of code. And JRuby is still the best way to power up your Rails 5 app. Come learn how to use JRuby everwhere! - video_provider: youtube video_id: Xl7LVkvSnoc + track: null # Track: Performance - title: Slo Mo @@ -709,8 +709,8 @@ RubyConf 2016 - Slo Mo by Richard Schneeman No one wants to be stuck in the slow lane, especially Rubyists. In this talk we'll look at the slow process of writing fast code. We'll look at several real world performance optimizations that may surprise you. We'll then rewind to see how these slow spots were found and fixed. Come to this talk and we will "C" how fast your Ruby can "Go". - video_provider: youtube video_id: xii1oyad_kc + track: Performance # Track: General 2 - title: The Little Server That Could @@ -723,8 +723,8 @@ RubyConf 2016 - The Little Server That Could by Stella Cotton Have you ever wondered what dark magic happens when you start up your Ruby server? Let’s explore the mysteries of the web universe by writing a tiny web server in Ruby! Writing a web server lets you dig deeper into the Ruby Standard Library and the Rack interface. You’ll get friendlier with I/O, signal trapping, file handles, and threading. You’ll also explore dangers first hand that can be lurking inside your production code- like blocking web requests and shared state with concurrency. - video_provider: youtube video_id: AFgDPssfZ9k + track: null # Break @@ -739,8 +739,8 @@ RubyConf 2016 - Running Global Manufacturing on Ruby (among other things) by Lee Edwards A few miles from this convention center, Teespring prints millions of short-run custom products every year from modern direct-to-garment printers and ships them all over the world. Like most companies, Teespring's architecture is polyglot, but the core business logic is in Ruby. We'll discuss how we use large at-scale manufacturing and production systems to help anyone, anywhere turn their ideas into reality. - video_provider: youtube video_id: fbNfz_Npbic + track: Ruby and Hardware # Track: General 1 - title: The Long Strange Trip of a Senior Developer @@ -755,8 +755,8 @@ Have you ever felt like you are in the passenger seat of your career? By simply looking around and seeing how few 20+ year veterans you work with, you're actually staring our industry's sustainability problem right in the face. But the software industry needs you still contributing 20 years from now! Fret not, we can start fixing these problems, right now, in your own job. Using in-depth research across companies of all sizes, you'll come away with a plan to start designing a sustainable career track to help you grow in skill, influence, and income now and long into the future. - video_provider: youtube video_id: egntf0nykzk + track: null # Track: Performance - title: Halve Your Memory Usage With These 12 Weird Tricks @@ -769,8 +769,8 @@ RubyConf 2016 - Halve Your Memory Usage With These 12 Weird Tricks by Nate Berkopec How does Ruby allocate memory? Ever wonder why that poor application of yours is using hundreds of megabytes of RAM? Ruby's garbage collector means that we don't have to worry about allocating memory in our programs, but an understanding of how C Ruby uses memory can help us avoid bloat and even write faster programs. We'll talk about what causes memory allocation, how the garbage collector works, and how to measure memory activity in our own Ruby programs. - video_provider: youtube video_id: kZcqyuPeDao + track: Performance # Track: General 2 - title: Grow Your Team In 90 Days @@ -785,8 +785,8 @@ So you want to work with an awesome ruby developer? Great! But finding one is hard. It’s much easier to hire that apprentice or bootcamp grad, but that person is not an awesome developer. How do you help them get there? You will learn how to build a learning plan and become the best mentor to a budding software developer. You have the opportunity to mold your apprentice’s skill set into exactly what you need, while benefiting from their diverse skills and experiences. We will build an example learning plan of a developer learning Ruby, showing clear and specific choices and likely outcomes. - video_provider: youtube video_id: pHABlefSVZk + track: null # --- @@ -798,6 +798,7 @@ A lightning talk is a short presentation (up to 5 mins) on your chosen topic. video_provider: youtube video_id: SswGJpZVNFg + track: null talks: - title: "Lightning Talk: André Arko" # TODO: missing talk title start_cue: "00:00:00" @@ -1011,8 +1012,8 @@ RubyConf 2016 - Ruby versus the Titans of FP by Cassandra Cruz Clojure, Haskell and Javascript reign as the dominant functional languages of our era. But surely anything they can do, Ruby can do better? And what is it that they actually do? Come learn about three core concepts of functional programming, and see how Ruby stacks up against its peers when it comes to making them powerful. - video_provider: youtube video_id: 25u-pp-7PHE + track: null # --- @@ -1027,8 +1028,8 @@ RubyConf 2016 - How I Corrupted Survey Results and (Maybe) Ruined a Business by Mike Calhoun It was the perfect storm of events and circumstances: a first job, naïveté of inexperience, a fear of getting fired, and a loud boss prone to yelling. One morning, I realized that the first web “project” of my first job in my new career had gone horribly off track. What came to pass in the following weeks was the most involved and tense coverup I’ve undertaken in my life. This experience can tell us all about how we communicate with each other. How we can create environments where people can ask for help and how an atmosphere of pressure and tension can ruin a business. - video_provider: youtube video_id: NFkym21cl4E + track: War Stories # Track: General 1 - title: The Truth About Mentoring Minorities @@ -1041,8 +1042,8 @@ RubyConf 2016 - The Truth About Mentoring Minorities by Byron Woodfork In the tech industry, we currently lack the ability to produce mentors who are able to effectively teach and connect with their minority protégés. In this talk, we discuss what changes we can make in the way we mentor to give our minority protégés the best chance to succeed. We will take a look at some of the struggles that I faced throughout my software developer apprenticeship, and pinpoint the sources of my success. In conjunction, we will also look at various case studies of other minority professionals who were both successful and unsuccessful in their attempts to climb the corporate ladder. - video_provider: youtube video_id: 1Dttd0eJG94 + track: null # Track: Ruby Deep Dive - title: Methods of Memory Management in MRI @@ -1056,8 +1057,8 @@ RubyConf 2016 - Methods of Memory Management in MRI by Aaron Patterson Let's talk about MRI's GC! In this talk we will cover memory management algorithms in MRI. We will cover how objects are allocated and how they are freed. We will start by looking at Ruby's memory layout, including page allocation and object allocations within those pages. Next we'll cover collection algorithms used by MRI starting with the mark and sweep algorithm, followed by generational collection, and the tri color abstraction. Finally we'll cover experimental developments for the GC like heap splitting. Expect to leave this talk with heaps of pointers to add to your remembered set! - video_provider: youtube video_id: r0UjXixkBV8 + track: Ruby Deep Dive # Track: General 2 - title: The Neuroscience and Psychology of Open Source Communities @@ -1072,7 +1073,6 @@ ***Contains explicit language*** Because people are complex, diverse creatures, ensuring that your open source community is healthy, vibrant, and welcoming can be challenging. The good news is, science can help you understand human thoughts and behaviors, and the complexities of interacting in a collaborative way online. We'll discuss cognitive biases, the SCARF collaboration model, the online community life cycle, and how these things interact. You'll come away from this talk with a deeper understanding of yourself, your fellow humans, & the knowledge to improve personal interactions and the open source communities you belong to. - video_provider: youtube video_id: VXE42FyFFX4 # --- @@ -1084,13 +1084,12 @@ - Aja Hammerly event_name: RubyConf 2016 published_at: "2016-11-12" - slides_url: https://thagomizer.com/files/rubyconf_16.pdf description: |- RubyConf 2016 - Datacenter Fires and Other "Minor" Disasters by Aja Hammerly Most of us have a "that day I broke the internet" story. Some are amusing and some are disastrous but all of these stories change how we operate going forward. I'll share the amusing stories behind why I always take a database backup, why feature flags are important, the importance of automation, and how having a team with varied backgrounds can save the day. Along the way I'll talk about a data center fire, deleting a production database, and accidentally setting up a DDOS attack against our own site. I hope that by learning from my mistakes you won't have to make them yourself. - video_provider: youtube video_id: ygu45C7bMHk + track: War Stories # Track: Life Beyond Bootcamps - title: "Becoming a Mid: Two Perspectives on Leveling Up" @@ -1104,8 +1103,8 @@ RubyConf 2016 - Becoming a Mid: Two Perspectives on Leveling Up by Kimberly D. Barnes & Kinsey Ann Durham What does becoming a mid-level developer mean? How can a junior set goals and make steps to achieve this? It's difficult to shed the title of 'junior', not only in your own mind, but in the minds of others. It is important to keep progressing in your career as a developer to be able to level up and no longer be seen as the junior on the team. Kim and Kinsey will provide two perspectives to enable you to leave this talk with tangible action items. They will also dive into what employers can do to help build frameworks to allow for this transition. - video_provider: youtube video_id: i_RisLTNZEY + track: Life Beyond Bootcamps # Track: Ruby Deep Dive - title: Optimizing Ruby Core @@ -1118,8 +1117,8 @@ RubyConf 2016 - Optimizing ruby core by Shyouhei Urabe I made ruby interpreter 10 times faster. Let me show you how - video_provider: youtube video_id: MqhapcDyP00 + track: Ruby Deep Dive # Track: Weird Ruby - title: Metaprogramming? Not Good Enough! @@ -1134,8 +1133,8 @@ If you know how to metaprogram in Ruby, you can create methods and objects on the fly, build Domain Specific Languages, or just save yourself a lot of typing. But can you change how methods are dispatched? Can you decide that the normal inheritance rules don't apply to some object? In order to change those core parts of the language, there can't be much difference between how a language is implemented and how it's used. In this talk, you'll make that difference smaller, building a totally extensible object model on top of Ruby, using less than a dozen new classes and methods. - video_provider: youtube video_id: JOvBmhukWI0 + track: Weird Ruby # Lunch @@ -1152,8 +1151,8 @@ In the summer of 1978, structural engineer William LeMessurier got a phone call that terrified him. An undergraduate student claimed that LeMessurier's acclaimed 59-story Citicorp Center in Manhattan, just completed the year prior, was dangerously unstable under certain wind conditions. The student was right, and it was almost hurricane season. The key to building a culture of innovation in your team is learning how to respond when mistakes inevitably happen. Let's let Bill LeMessurier teach us how to respond when it all goes wrong so that our creations can thrive despite our mistakes. - video_provider: youtube video_id: "-ES1wlV-8lU" + track: War Stories # Track: Life Beyond Bootcamps - title: Learning Fluency @@ -1168,8 +1167,8 @@ All languages work in formulaic ways. Cracking these formulas takes discipline, time, creativity, trial and error. But is there an overarching formula to crack these formulas? Is there a designated set of steps we can take to guarantee fluency? In this talk, you will learn about the methods people use to learn both foreign languages and programming languages. As developers, we often just jump in and start building. Why is this? Does full immersion work best always and for everyone? What is fluency, and is it ever something we can achieve in Ruby? Let’s explore. - video_provider: youtube video_id: AZlOjCZlPLU + track: Life Beyond Bootcamps # Track: Ruby Deep Dive - title: Seeing Metaprogramming and Lambda Function Patterns in Ruby @@ -1182,8 +1181,8 @@ RubyConf 2016 - Seeing Metaprogramming and Lambda Function Patterns in Ruby by Lukas Nimmo Metaprogramming and lambda functions in Ruby should be explained within their rightful place: living examples. You may have read tutorials on what these concepts are, but still do not understand when or why to use them. I dredged through over 50 prominent Open Source Ruby projects to bring you ten successful patterns that are used time and time again to create some of the most expressive and popular Ruby DSLs. Join me as we cover these patterns so that you can immediately begin using them in your own code to implement powerful DSLs. No vacuum-living, esoteric concepts here. - video_provider: youtube video_id: poAxCd7Z0Kg + track: Ruby Deep Dive # Track: Weird Ruby - title: Rhythmic Recursion @@ -1198,8 +1197,8 @@ One of the best things about multi-disciplinary work is recognizing familiar ideas in a different setting. It’s like running into an old friend while you’re on vacation halfway around the world-- “I had no idea you’d be here! It’s so great to see you!” In this talk we’ll run into our old friend recursion in the faraway land of minimalist music, by rewriting a piece of rhythmic music in Ruby. - video_provider: youtube video_id: cSPhgRgjwZs + track: Weird Ruby # --- @@ -1216,8 +1215,8 @@ All abstractions are lies, if they are abstractions at all, and as developers, we live our lives surrounded by them. What makes a some abstractions better than others? This will be an opinionated and empowering look at the value and nature of abstractions, with a jaunt through quantum mechanics and the nature of reality. You know, just your average, light discussion. - video_provider: youtube video_id: Avf65oHa5vc + track: null # Track: Life Beyond Bootcamps - title: You Graduated From Bootcamp, Now What? @@ -1230,8 +1229,8 @@ RubyConf 2016 - You graduated from bootcamp, now what? by Melanie Gilman Throughout bootcamp, your biggest worry was finding a job. Now that you’ve found one and you’ve started your career as a developer, what comes next? In this talk, we’ll explore what the career of a bootcamp graduate looks like a few years after the program. We’ll talk about the good and not-so-good parts of being a newly-minted developer. We’ll come away with actionable steps we can take to continue to grow as developers post-bootcamp and be happy and successful, even when we don’t have the mythical perfect job. - video_provider: youtube video_id: pCnvpB9tGws + track: Life Beyond Bootcamps # Track: General 2 - title: Even the Justice League Works Remotely @@ -1244,8 +1243,8 @@ RubyConf 2016 - Even the Justice League Works Remotely by Allison McMillan "Remote welcome for senior level". This appears in countless job descriptions. Remote work is largely accepted in the developer community, but often only for very experienced developers. This fear is not without cause. Sometimes hiring remote developers at any level doesn’t turn out well but there’s generally a reason for that. Newer developers can also be very successful remote workers. In this talk, you’ll learn what to look for when hiring remote developers at any level and non-senior developers will learn what characteristics to keep in mind in order to have a successful remote experience. - video_provider: youtube video_id: d7Z0uS2x_cY + track: null # Track: Weird Ruby - title: That Works?! Quines and Other Delightfully Useless Programs @@ -1262,8 +1261,8 @@ Let's take a break from the practical and laugh at some of the most unbelievable code you've ever seen. Then let's pull out the magnifying glass to figure out how it actually works. Learn how to read the unreadable and how to write code that—to borrow a phrase from the Ig Nobel Awards—makes people laugh, then think. - video_provider: youtube video_id: DC-bjR6WeaM + track: Weird Ruby # --- @@ -1277,5 +1276,5 @@ RubyConf 2016 - Matz Q&A by Yukihiro 'Matz' Matsumoto Part of our annual tradition, Matz answers questions from Evan as well as the audience - video_provider: youtube video_id: Ohs2hZBzif8 + track: null diff --git a/data/tropicalrb/tropicalrb-2024/schedule.yml b/data/tropicalrb/tropicalrb-2024/schedule.yml new file mode 100644 index 000000000..a9a9a380d --- /dev/null +++ b/data/tropicalrb/tropicalrb-2024/schedule.yml @@ -0,0 +1,208 @@ +# Schedule: https://www.tropicalonrails.com/en/archive-2024#agenda2024 + +days: + - name: "Day 1" + date: "2024-04-04" + grid: + - start_time: "08:30" + end_time: "09:45" + slots: 1 + items: + - Registration + + - start_time: "09:45" + end_time: "10:00" + slots: 1 + items: + - Opening + + - start_time: "10:00" + end_time: "10:50" + slots: 1 + + - start_time: "10:50" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "12:40" + slots: 1 + items: + - Break + + - start_time: "11:40" + end_time: "12:10" + slots: 1 + + - start_time: "12:15" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "14:45" + slots: 1 + + - start_time: "14:45" + end_time: "14:50" + slots: 1 + items: + - Break + + - start_time: "14:50" + end_time: "15:20" + slots: 1 + + - start_time: "15:20" + end_time: "15:30" + slots: 1 + items: + - Break + + - start_time: "15:30" + end_time: "16:00" + slots: 1 + + - start_time: "16:05" + end_time: "16:50" + slots: 1 + items: + - Coffee Break + + - start_time: "16:50" + end_time: "17:20" + slots: 1 + + - start_time: "17:20" + end_time: "17:30" + slots: 1 + items: + - Break + + - start_time: "17:30" + end_time: "18:00" + slots: 1 + + - start_time: "18:00" + end_time: "18:10" + slots: 1 + items: + - Break + + - start_time: "18:10" + end_time: "19:00" + slots: 1 + + - start_time: "19:00" + end_time: "19:15" + slots: 1 + items: + - Closing + + - name: "Day 2" + date: "2024-04-05" + grid: + - start_time: "09:45" + end_time: "10:00" + slots: 1 + items: + - Opening + + - start_time: "10:00" + end_time: "10:50" + slots: 1 + + - start_time: "10:50" + end_time: "11:00" + slots: 1 + items: + - Break + + - start_time: "11:00" + end_time: "11:30" + slots: 1 + + - start_time: "11:30" + end_time: "11:40" + slots: 1 + items: + - Break + + - start_time: "11:40" + end_time: "12:10" + slots: 1 + + - start_time: "12:15" + end_time: "14:00" + slots: 1 + items: + - Lunch + + - start_time: "14:00" + end_time: "14:45" + slots: 1 + + - start_time: "14:45" + end_time: "14:50" + slots: 1 + items: + - Break + + - start_time: "14:50" + end_time: "15:20" + slots: 1 + + - start_time: "15:20" + end_time: "15:30" + slots: 1 + items: + - Break + + - start_time: "15:30" + end_time: "16:00" + slots: 1 + + - start_time: "16:05" + end_time: "16:50" + slots: 1 + items: + - Coffee Break + + - start_time: "16:50" + end_time: "17:20" + slots: 1 + + - start_time: "17:20" + end_time: "17:30" + slots: 1 + items: + - Break + + - start_time: "17:30" + end_time: "18:00" + slots: 1 + + - start_time: "18:00" + end_time: "18:10" + slots: 1 + items: + - Break + + - start_time: "18:10" + end_time: "19:00" + slots: 1 + + - start_time: "19:00" + end_time: "19:15" + slots: 1 + items: + - Closing + +tracks: [] diff --git a/tailwind.config.js b/tailwind.config.js index dbd9abdea..3bc66875f 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -53,6 +53,10 @@ module.exports = { } } }, + safelist: [ + { pattern: /grid-cols-(1|2|3|4|5|6|7|8|9|10)/ }, + { pattern: /col-span-(1|2|3|4|5|6|7|8|9|10)/ } + ], daisyui: { logs: false, themes: [ diff --git a/test/controllers/events/schedule_controller_test.rb b/test/controllers/events/schedule_controller_test.rb new file mode 100644 index 000000000..4e7075675 --- /dev/null +++ b/test/controllers/events/schedule_controller_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class Events::ScheduleControllerTest < ActionDispatch::IntegrationTest + # test "the truth" do + # assert true + # end +end diff --git a/test/fixtures/events.yml b/test/fixtures/events.yml index 739b8045c..f7f1fd75a 100644 --- a/test/fixtures/events.yml +++ b/test/fixtures/events.yml @@ -35,7 +35,7 @@ railsconf_2017: organisation: railsconf city: Phoenix name: RailsConf 2017 - slug: rails-conf-2017 + slug: railsconf-2017 rubyconfth_2022: date: 2022-05-01 diff --git a/test/fixtures/organisations.yml b/test/fixtures/organisations.yml index 32506b072..b9c54f3e3 100644 --- a/test/fixtures/organisations.yml +++ b/test/fixtures/organisations.yml @@ -54,7 +54,7 @@ rails_world: frequency: 1 youtube_channel_id: UC9zbLaqReIdoFfzdUbh13Nw youtube_channel_name: railsofficial - slug: railsworld + slug: rails-world twitter: rails brightonruby: