Ruby Galaxy v0.2
Open Source Maintainer Interviews: Open Source Contributing (Part 1)
See all speakers
See all 3 speakers

Open Source Maintainer Interviews: Open Source Contributing (Part 1)
Aaron Patterson, Jonan Scheffler, and Rachael Wright-Munn • February 25, 2021 • online

For version 0.2 of Ruby Galaxy, we interviewed Open Source Maintainers ✨

Aaron Patterson (@tenderlove) is on the Ruby and Rails core team. He is currently working over at Shopify. He also makes a lot of cheese.

Hosted by Jonan Scheffler (@thejonanshow) and Rachael Wright-Munn(@ChaelCodes) 🛸

This was originally streamed on our Twitch channel where you can find our releases every last Thursday of the month (https://www.twitch.tv/therubygalaxy).

Interested in talking? Take a look at our CFP at rubygalaxy.io 🚀
We are always interested in talks of all sorts, whether you are an experienced presenter, or are looking for a great place to give your first talk ever.

Follow us on Twitter @therubygalaxy and visit our website at https://rubygalaxy.io/ 👽

Soundtrack for the game DojoKratos done with Game Boy. Available as CC-BY. Found on the Free Music Archive under Boss Splash by sawsquarenoise.

Background Space Video by Space Space from Pexels

Ruby Galaxy v0.2

00:00:07.279 all three voices are good we have audio
00:00:10.240 i sound fine can you hear that
00:00:14.400 yeah we did it yay
00:00:17.680 all right excellent this is exciting now
00:00:21.520 we have a stream and we can talk to
00:00:22.960 people and everyone and
00:00:23.920 they all did the emojis for us thank you
00:00:27.760 we're like fish in a stream they're made
00:00:30.080 like fish in a stream
00:00:31.840 and let the puns begin
00:00:36.559 well done erin aaron do you want to
00:00:38.960 introduce yourself
00:00:40.719 we should do introductions erin you go
00:00:42.879 first
00:00:44.480 okay hi uh my name is aaron
00:00:49.600 that was a really good you nailed it
00:00:52.719 i could tell that you've done this
00:00:54.160 before that was some expert
00:00:56.160 intro i'm gonna follow up hi all right
00:00:59.520 hi my name is aaron my name is aaron
00:01:01.359 patterson um i'm known on the internet
00:01:03.680 my my internet name is tenderlove
00:01:08.000 although on apparently on switch it's
00:01:09.680 tender love without an e
00:01:11.119 because somebody else took my name i
00:01:12.720 don't like
00:01:14.640 anyway um
00:01:18.000 what else i am on the ruby core team and
00:01:21.520 the rails core team and i work
00:01:23.360 at shopify doing ruby and rails score
00:01:26.960 stuff
00:01:27.680 that is what i do oh thank you i like so
00:01:32.640 someone says they like my chef's hat i
00:01:34.479 can't cult oh
00:01:35.759 kps kps
00:01:39.040 likes your chef hat thank you and your
00:01:41.920 video is out of sync but that is
00:01:43.520 technically impossible to fix
00:01:45.439 i will just pretend that's the case yes
00:01:47.439 this is some this is how streaming works
00:01:49.920 it's it's actually impossible to sync
00:01:51.520 video up to sound
00:01:53.680 we're having some technical difficulties
00:01:54.960 today we're just going to call it good
00:01:56.079 for now
00:01:57.680 aaron you commit to both ruby and rails
00:02:01.200 and some other things on this page here
00:02:03.040 and we're going to come back around and
00:02:04.000 talk about that for a second
00:02:05.280 but you also make a lot of cheese and i
00:02:07.840 think we should spend most of our time
00:02:09.039 talking about the cheese
00:02:10.640 yeah i do make cheese so i'm currently
00:02:13.599 making
00:02:14.319 i'm currently making camembert camembert
00:02:16.959 cheese
00:02:18.080 um and i just
00:02:21.599 like so so
00:02:24.800 it's kind of impacting my life right now
00:02:26.800 well it's impacting the family
00:02:28.239 family life right now because like it's
00:02:31.120 down
00:02:31.519 so it's downstairs i've got a our house
00:02:33.760 has central heating so we have one
00:02:35.680 like one heater that blows air through
00:02:38.160 the house
00:02:39.280 and i've got these curing fridges down
00:02:42.239 in the basement
00:02:43.360 and they're fairly close to like the air
00:02:46.000 intake
00:02:46.640 essentially and i have to flip these
00:02:49.120 cheeses twice
00:02:50.239 twice a day and like right now
00:02:53.680 they are particularly smelly so
00:02:58.400 whenever i open the fridge downstairs
00:03:02.159 the whole house becomes
00:03:05.200 cheese smell that's a nice question
00:03:09.280 i mean i enjoy it
00:03:12.400 but i understand how other people in the
00:03:14.640 house may not
00:03:15.760 enjoy i could see that
00:03:19.120 i could see that well um let's see what
00:03:22.319 cm gordon has to say here like we make
00:03:24.799 goat cheese it smells good though
00:03:27.760 because like i'm just i'm picturing just
00:03:30.480 like the smell
00:03:31.680 traveling throughout the house i'm
00:03:34.720 wondering does it ever get caught in the
00:03:36.159 filter and there's like a little bit of
00:03:37.440 a delayed release
00:03:38.799 it's just like lingering cheese smell
00:03:40.560 everywhere well
00:03:42.000 well when i went down i can tell you i
00:03:43.760 chafe i i flipped the cheese over
00:03:46.239 um time's at 11. i flipped it over maybe
00:03:49.760 90 minutes ago and i went downstairs
00:03:52.560 just now to get this hat and let me tell
00:03:54.480 you the basement it like
00:03:56.080 it still is
00:03:59.120 pungent cheesy yes
00:04:02.400 there is a pungent aroma rachel
00:04:05.920 would you like to introduce yourself
00:04:09.200 hi i'm gel codes i stream in the science
00:04:11.840 and technology category i focus my work
00:04:14.319 around
00:04:15.040 maintaining my open source repo hunter's
00:04:17.120 keepers which is used for managing games
00:04:18.799 of monster of the week
00:04:19.919 and i also play programming games it's a
00:04:21.600 lot of fun a couple of you here i
00:04:23.759 recognize and i'm so grateful to see
00:04:25.520 y'all here
00:04:26.400 thank you jonathan who are you
00:04:29.520 i'm jonah i took introduction classes
00:04:33.759 from aaron
00:04:38.000 i am the jonen show on the internet
00:04:41.199 and on twitch here and i have been
00:04:44.960 a member of the ruby community for i
00:04:47.520 don't know maybe 10 years
00:04:49.280 when i first came in i met a silly man
00:04:52.720 who
00:04:53.759 liked magic the gathering and puns and
00:04:56.080 eventually transitioned to making cheese
00:04:58.320 from making salami
00:04:59.919 i distinctly remember a talk about a
00:05:02.639 salami fridge that was well instrumented
00:05:04.960 with some raspberry pies
00:05:06.479 um i've known aaron for a while i've
00:05:08.320 been around in the ruby community
00:05:10.080 i don't maintain any major open source
00:05:12.320 projects
00:05:13.120 mostly i build silly robots and i talk
00:05:15.600 on the internet
00:05:16.560 but i know people who build things and i
00:05:19.520 am fascinated by the work that they do
00:05:21.120 and i know that they don't very often
00:05:22.560 get to share
00:05:23.680 the real life experience of of being an
00:05:26.240 open source maintainer
00:05:28.240 which i understand i'm just going to
00:05:30.320 just summarize real fast
00:05:32.479 people yell at you on the internet for
00:05:34.400 not doing free work
00:05:36.000 fast enough or particularly the free
00:05:38.000 work they would like you to have done
00:05:39.919 yesterday and then they rage quit your
00:05:43.199 project
00:05:44.000 well fine i'm gonna uninstall it i think
00:05:46.479 that's like a
00:05:47.600 effective summary is that pretty close
00:05:50.840 aaron
00:05:52.400 i mean yeah i guess i guess so like
00:05:54.800 there's there's some of that
00:05:56.160 but i don't know i'd say that's like a
00:06:00.319 vocal minority how's that that's good
00:06:03.199 vocal minority i think is a good way to
00:06:04.960 describe that i actually
00:06:06.880 i get the impression that by and large
00:06:08.479 this open source thing is working out
00:06:10.319 i think your career might be well on
00:06:12.880 track here
00:06:13.520 you are you worry that someday you might
00:06:14.960 have a hard time finding a job in
00:06:16.240 software
00:06:19.600 no i think i'll be able to find a job in
00:06:21.440 software hopefully yeah
00:06:22.960 i hope so i hope so
00:06:27.440 i think it'll be okay so
00:06:30.960 sometimes they gently guilt you about
00:06:32.800 not merging their pr
00:06:34.000 yes that so that resonates
00:06:37.440 that resonates a lot more than the rage
00:06:40.080 the rage quit thing
00:06:41.600 because like i what was it somebody
00:06:44.960 oh i don't remember his name one person
00:06:46.800 from the one person from the go team i
00:06:48.800 saw him tweet recently like
00:06:51.039 oh i just merged this like i just ran
00:06:53.840 into this bug i fixed this bug it was
00:06:56.080 two years old that's open source
00:07:01.759 which i think is more like that's more
00:07:05.120 i don't know i think that's like more
00:07:07.520 what it's like it's like oh i should do
00:07:09.280 this thing and then
00:07:10.319 it doesn't happen for years you're like
00:07:12.639 oh okay i did it
00:07:14.840 finally am i allowed to ask like serious
00:07:18.000 questions
00:07:18.800 yeah that's the goal the goal is well i
00:07:20.720 mean with aaron you're allowed to try i
00:07:22.960 should say
00:07:25.120 that's aaron's series on this one it is
00:07:28.160 kind of like a serious question because
00:07:29.759 there
00:07:30.000 are a lot of like repos that have these
00:07:32.960 very
00:07:33.919 long issue lists and like it's not like
00:07:37.039 it's not only specific repos it's it's a
00:07:39.039 lot of them like pretty much any
00:07:40.560 large open source project and they have
00:07:42.160 long lists of pr's like how do you
00:07:44.400 manage that workload and how do you like
00:07:46.720 prioritize which issues like you want
00:07:49.520 people
00:07:50.160 i have like a ton of questions around
00:07:51.440 this let's start with like how do you
00:07:53.039 prioritize like which issues to work on
00:07:55.440 and which prs to merge
00:07:59.599 oh my god
00:08:05.759 i think this is part of this is part of
00:08:07.680 the the problem of why
00:08:09.520 why we have ones that stay open for so
00:08:11.680 long it's like there's no
00:08:13.280 i don't know there's no like at least on
00:08:17.120 the teams i'm part of there's no like
00:08:20.240 we don't all coordinate we're like oh
00:08:21.840 yeah we gotta prioritize like this this
00:08:24.160 this
00:08:24.560 it's it's really up to individual i
00:08:27.520 guess
00:08:27.840 individual contributors to the
00:08:29.199 particular projects to decide which ones
00:08:31.120 that they
00:08:31.919 they prioritize so i think what happens
00:08:34.880 is a lot of it ends up being
00:08:37.120 um i don't know essentially
00:08:41.039 just like pet projects mostly stuff that
00:08:43.599 the particular maintainer is interested
00:08:45.360 in
00:08:46.320 uh but that's also why like matthew
00:08:48.959 brings up i don't know the nag
00:08:51.279 nag driven development which i think
00:08:54.800 it's like part of it too so like
00:08:59.279 i don't know i yeah that's
00:09:02.320 basically the way that i prioritize
00:09:04.000 stuff is whether or not it like if i'm
00:09:05.680 interested in it
00:09:07.279 so if it's something that i really like
00:09:08.640 working on um
00:09:11.120 or a very very good way
00:09:14.480 for me to work on a pull request is um
00:09:17.760 i'll go to a conference and then
00:09:19.680 there'll be somebody there and they're
00:09:21.120 like hey
00:09:22.480 i sent you this pull request why haven't
00:09:25.040 you merged it yet and like when it's
00:09:26.800 like face to face you're like
00:09:28.080 oh yeah i should have merged
00:09:35.600 and then it emerges so that's basically
00:09:38.880 the priority
00:09:41.920 or or actually also co-workers too
00:09:45.040 so if it's my free like if it's
00:09:46.959 something i'm doing in my free time it
00:09:48.399 has to be something i want to do or i'm
00:09:50.080 interested in
00:09:56.160 yes that is my priorities i hope that
00:09:58.560 answers the question
00:09:59.760 is it it does you have many projects
00:10:03.120 that you work on yeah you
00:10:06.240 across all of these you are just using
00:10:08.160 issues to manage all of that complexity
00:10:10.079 you don't have like a
00:10:12.000 your own internal asana jira
00:10:15.200 trello hybrid board that you have been
00:10:17.440 using to track this work
00:10:20.640 no but i do have one up here
00:10:26.320 i keep it all upstairs yes keep it up
00:10:28.959 keep it up here like
00:10:30.079 we use github issues and stuff for sure
00:10:32.240 but like um
00:10:33.680 i mean sometimes with the rails team
00:10:35.360 with the rails team will use
00:10:36.959 we'll use basecamp to plan some stuff um
00:10:41.120 with the ruby team we'll use redmine but
00:10:44.079 we also use issues and
00:10:45.760 issues and pull requests issues and pull
00:10:47.680 requests too
00:10:52.480 shame truth development is me to myself
00:11:00.880 yes i actually kind of have a funny
00:11:04.720 story about storing things in jira
00:11:06.720 so like ao3 as a project stores all of
00:11:09.040 their issues and everything that they'd
00:11:10.320 like people to work on inside jira
00:11:12.240 but they don't give anybody access to
00:11:13.760 the jira board
00:11:16.000 so you just kind of have to like guess
00:11:18.880 what it is that they want or email a
00:11:20.880 contributor and hope they add you to the
00:11:22.560 jira board
00:11:27.360 i kind of had a question though related
00:11:29.200 to organization
00:11:30.560 um i assume that you have like major
00:11:32.720 pushes and things that need to happen
00:11:34.320 like
00:11:35.120 ruby there's a ruby3 upgrade coming for
00:11:37.279 like reels and everything like how did
00:11:38.800 those get
00:11:39.360 coordinated and organized and chopped up
00:11:41.360 into little bits for people to handle
00:11:43.920 epic orchestra says did i hear a03 no
00:11:46.720 those words never left my mouth
00:11:54.839 uh rails project by the way
00:12:00.480 push towards the end uh let's see
00:12:04.160 so
00:12:08.320 it's kind of different um
00:12:12.320 i don't know i have an answer for that
00:12:13.519 but it's like not good
00:12:16.240 uh basically like so for
00:12:19.440 let's i'll talk about the rail or the
00:12:21.200 ruby team so
00:12:22.720 we have like essentially what happens is
00:12:26.240 mats will be like hey i'm gonna make
00:12:28.560 ruby three
00:12:29.360 three times fast or whatever and
00:12:32.720 uh he then he doesn't do any of the work
00:12:36.639 uh so basically like
00:12:41.920 it's it is what it is right like
00:12:45.200 it's like yeah basically it's up to the
00:12:48.800 rest of the team to figure out how to
00:12:49.920 make that
00:12:50.399 how to make that happen in particular um
00:12:53.120 but since like
00:12:54.000 since the team is like
00:12:57.360 i mean we have the team is just
00:12:59.760 different people from
00:13:01.120 all over the world it's i think it's a
00:13:03.760 lot harder to organize
00:13:05.839 into particular projects so like when
00:13:08.720 you're working together at a company
00:13:09.920 it's like okay we've got this
00:13:11.120 we got this project we want to focus on
00:13:12.880 we put together this team to do that
00:13:14.639 we don't have any like overall
00:13:16.720 management team in order to handle
00:13:18.880 a project like that so what ends up
00:13:21.040 happening is
00:13:22.160 a lot of the i think a lot of the
00:13:24.399 projects are
00:13:25.440 um it's maybe up to one or two people
00:13:29.440 like for example the raptor feature that
00:13:32.000 was put into ruby i think that's
00:13:33.600 basically all developed by koichi um
00:13:38.240 oh uh uh gc compaction was all
00:13:41.519 just me uh but
00:13:44.639 i don't know i think like i guess that's
00:13:47.760 basically the way it goes
00:13:49.680 um and we just have a push
00:13:52.720 towards like each person just pushes
00:13:54.800 their project forward until they can get
00:13:56.320 it done
00:13:57.519 um we're doing i think it's gonna change
00:14:01.279 a little bit
00:14:02.160 because like well
00:14:05.839 it'll kind of change a little bit
00:14:07.279 because at shopify we're doing a lot of
00:14:10.240 like we're investing a lot into
00:14:12.639 doing development on ruby so we actually
00:14:14.959 have a team of people that is working on
00:14:17.279 that are working on a particular feature
00:14:18.880 like we want right now one of the
00:14:20.880 projects we're working on is uh
00:14:22.560 a jit we're also working on a
00:14:27.360 doing some improvements to the memory
00:14:29.760 allocation and garbage collection
00:14:31.760 but we have particular teams working on
00:14:34.000 that though those teams are not part of
00:14:35.839 the ruby core team
00:14:37.279 what is the we have what's the new is it
00:14:39.760 a new jet
00:14:41.440 yeah yeah yeah yes interesting we're
00:14:45.199 yeah we're working on a j legit we call
00:14:47.519 it micro jit
00:14:48.720 that's what we're working on but this is
00:14:50.800 not part of the ruby core team itself
00:14:54.079 nope we're developing it independently
00:14:56.800 so we have
00:14:58.079 i i mean i'm on the team i'm helping
00:15:00.320 with it
00:15:01.279 so we're all working on it together and
00:15:03.199 we're focusing on that and then we're
00:15:04.720 going to like with the goal the goal is
00:15:06.720 to essentially push it upstream one of
00:15:08.480 these days
00:15:10.839 um that is i think that's the goal
00:15:13.920 but we're developing it as kind of a
00:15:16.320 research project
00:15:18.160 hitokidi wants to know how close we are
00:15:20.079 to strata
00:15:26.880 what is that what is strata he's a kitty
00:15:36.000 tito kitty's not going to tell us it's a
00:15:37.519 secret okay
00:15:39.440 yeah stratos is that kerry likes to make
00:15:41.600 anime jokes and stuff like that
00:15:43.440 i think this is that okay at first i
00:15:45.839 mistook it for stadia and
00:15:47.680 then i realized that it was a different
00:15:49.519 word when you said it out loud which
00:15:50.959 means that what i thought was the joke
00:15:52.480 in my head wasn't the joke in my head
00:15:53.839 but i promise you this is a different
00:15:55.279 joke
00:15:55.839 i'm sure it's a good one html over the
00:15:58.639 wire
00:15:59.680 hot wire oh hot wire yeah
00:16:03.759 yeah i have no idea yeah
00:16:08.079 it's good though we did it we nailed it
00:16:10.240 it's the third oh it's a real question
00:16:12.399 i'm sorry kerry yeah so strata is the
00:16:15.199 third portion
00:16:17.040 of hot wire
00:16:20.320 the the website wasn't hotwire it was a
00:16:23.440 news site
00:16:26.639 oh search engine what was hotwire this
00:16:28.720 used to be a thing
00:16:29.839 hotwire is the new thing um that's gonna
00:16:33.040 replace
00:16:33.759 like okay so you know how reels was like
00:16:37.279 okay we're going to integrate webpacker
00:16:38.720 and that's going to give us like cool
00:16:39.920 front end stuff that we can use
00:16:42.160 hotwire is the new version of that and
00:16:43.759 what it is is it passes around like
00:16:45.199 little bits of html versus like passing
00:16:47.199 around json and stuff
00:16:48.720 and it uses web sockets instead of http
00:16:52.160 and aaron is not interested i feel very
00:16:54.240 proud right now oh it's a travel website
00:16:56.720 it's also a travel website so it's these
00:16:59.120 two things
00:16:59.759 yes that's what it is hot wire i was
00:17:01.680 thinking hotwire.com
00:17:05.439 hotwire is a way for us to
00:17:09.199 kind of circumvent the need for
00:17:10.959 front-end frameworks to some degree
00:17:13.280 allowing us to just use html and css as
00:17:15.520 we would expect
00:17:16.480 but still have very fast responsive
00:17:19.199 websites without
00:17:20.480 a single page application structure
00:17:24.000 and book flights at low low prices and
00:17:26.799 you can
00:17:27.360 book flights at low low prices
00:17:30.720 i want to go to hotwire.dev and show
00:17:33.120 people that thing
00:17:35.280 can we go back to the coordination piece
00:17:37.039 first of all matthew d has a great
00:17:38.640 comment on this which is there's less
00:17:40.000 coordination than a lot of people expect
00:17:41.760 and the truth is that the content of a
00:17:43.200 release is 90
00:17:44.320 just whatever gets merged before someone
00:17:46.000 decides to release is overdue
00:17:48.160 i i have feelings about this as like
00:17:51.280 somebody who uses
00:17:52.559 and somebody who contributes but i'm
00:17:54.400 curious about what the experience is for
00:17:55.919 somebody who
00:17:56.880 maintains right like you don't have a pm
00:17:59.919 you don't have somebody telling you this
00:18:01.440 is the next task you will work on you
00:18:03.200 must do this you must do that it must
00:18:05.200 meet these guidelines
00:18:06.640 as a developer how does that feel
00:18:11.919 liberating yeah
00:18:18.320 it feels it feels good i mean okay so so
00:18:21.360 like
00:18:23.520 a lot of the stuff so a lot of the
00:18:24.960 changes we make to rails
00:18:26.720 or a lot of the changes i like to make
00:18:28.400 to rails are basically derived from our
00:18:30.880 application i do a lot of like
00:18:32.480 performance-based stuff
00:18:33.919 so most of the things i focus on are
00:18:35.600 like how can i make it faster
00:18:38.240 uh so we'll find like bottlenecks or
00:18:40.400 whatever in our application i'll push
00:18:42.000 those in to push those into rails what's
00:18:44.799 nice about rails is we don't have a
00:18:46.320 particular
00:18:47.120 release schedule like i think we try to
00:18:49.919 release around
00:18:51.039 rails cough but it doesn't always happen
00:18:53.760 so
00:18:54.720 like whatever we can get in whatever i
00:18:56.400 can get merged in before we cut that
00:18:57.919 release is good
00:18:59.440 um same thing with ruby
00:19:02.480 although it kind of like the downside
00:19:04.640 with ruby is we have a pretty strict
00:19:06.400 release schedule which is christmas
00:19:08.160 every year
00:19:09.120 so if you don't get it in before
00:19:11.120 christmas it doesn't go in until the
00:19:13.200 next year
00:19:14.400 where rails we could and have had
00:19:17.120 multiple
00:19:18.320 fairly major releases per year
00:19:22.320 so when you're deciding what to work on
00:19:23.919 it's just up to you to pick it out of
00:19:25.520 the
00:19:26.240 the crowd you get to kind of follow your
00:19:27.840 curiosity but at the same time then you
00:19:29.280 don't have anyone
00:19:30.559 in a role that's organizing the work
00:19:32.160 across team have you worked on a
00:19:33.760 an open source project where someone
00:19:35.200 existed in kind of a pm role because you
00:19:37.200 there are
00:19:37.679 plenty of people who work with
00:19:39.039 documentation and kind of like a
00:19:41.280 a release coordinator you have someone
00:19:44.080 in charge of the release every time you
00:19:45.679 do a release with rails right
00:19:48.080 yeah but they don't say so we have a
00:19:50.400 release like we have release managers
00:19:52.320 but they don't particularly say what
00:19:54.160 is um what's going to be in that like
00:19:57.600 if we're doing a major release they
00:19:59.200 don't they don't define what is in that
00:20:01.039 major release
00:20:02.000 like we define that as a team okay the
00:20:04.640 the um
00:20:06.480 release managers we have they're more in
00:20:08.559 charge of like what go
00:20:10.159 what goes into um like bug fix releases
00:20:15.039 so it'll be like oh hey we got a bug
00:20:17.039 fixed we got to backboard this so
00:20:18.480 they'll make sure that the back ports go
00:20:20.240 through and that we actually ship
00:20:21.760 ship that version that and that like
00:20:25.120 i think that's basically just raphael on
00:20:27.120 the rails
00:20:29.120 as if somebody does all that yeah as
00:20:31.840 with all of it yeah
00:20:34.240 because like doing the release doing the
00:20:36.240 release is not fun because as soon as
00:20:37.760 you release it somebody complains like
00:20:39.440 yeah
00:20:39.840 just it just that's life you broke my
00:20:43.919 windows 3.1 vm that i'm running on
00:20:46.640 solaris
00:20:47.360 yeah that's tough so what do you um
00:20:50.720 we have a question from oh i'm sorry go
00:20:53.120 ahead rachel
00:20:54.720 thank you i need to issue a correction
00:20:56.400 so hotwire is a base camp project it is
00:20:58.799 not a rails project
00:21:00.400 yes
00:21:05.760 has something to add on to that which is
00:21:07.120 i wrote a twitch overlay app in
00:21:08.960 24 lines of js i saw the original
00:21:11.840 version of this app and it had
00:21:14.000 significantly more lines of js in it
00:21:16.080 it's actually pretty cool it's like a
00:21:17.280 question app that like shows questions
00:21:18.880 on the screen
00:21:20.000 maybe you could help me level up my game
00:21:22.240 here with the uh
00:21:23.520 the screen sharing from zoom plan of
00:21:26.080 streaming is not working out great today
00:21:28.080 we had a bit of a last-minute shift into
00:21:31.039 who was responsible for producing this
00:21:32.640 stream and when these things fall to me
00:21:34.000 they go more poorly
00:21:35.200 um than some might expect but so uh
00:21:38.960 my question oh i wanted to point out too
00:21:40.960 that like though hotwire is a basecamp
00:21:43.200 project that should not stop you from
00:21:45.039 emailing or tweeting at aaron
00:21:46.880 about hotwire to get your bugs fixed
00:21:49.120 please
00:21:50.480 i could i could provide you with aaron's
00:21:52.400 home phone number if you'd like to call
00:21:53.840 him
00:21:54.480 um he'll let him go now i'm just going
00:21:56.000 to give you deals on on flights
00:22:03.360 flights that you can't fly right now
00:22:06.400 apocalypse says wow everyone seems to
00:22:08.640 know each other here i feel like the
00:22:09.600 whole ruby community is here
00:22:10.799 all 30 people that's a good joke that we
00:22:13.919 have a huge community
00:22:15.200 um of people who actually know each
00:22:16.880 other really well i
00:22:18.240 um i think that i i misread the all 30
00:22:20.960 people
00:22:21.440 they were saying all 30 people here all
00:22:23.200 know each other which is actually true
00:22:25.600 um
00:22:26.159 i think the ruby community as compared
00:22:28.000 to a lot of communities
00:22:29.360 is inordinately tight like there are a
00:22:31.120 lot of people who
00:22:32.640 um have described the ruby community as
00:22:34.559 the most welcoming community
00:22:36.000 that they've joined uh it certainly has
00:22:38.159 been my experience i think it's not a
00:22:39.520 fair comparison in my case because i
00:22:40.960 joined
00:22:41.919 early on in my career it was my one of
00:22:43.919 my first languages
00:22:45.200 but i want to actually hear from you
00:22:48.880 i think that you're a huge part of why
00:22:51.520 that's true like
00:22:53.120 i have a hard time even describing the
00:22:54.720 ethos that is tender love right
00:22:56.480 but like there is something about you
00:22:59.360 and the way you operate in the community
00:23:00.799 and the way other people who
00:23:02.400 feel a similar role for us operate that
00:23:04.799 makes it by far one of the most
00:23:06.159 welcoming communities i've ever been in
00:23:07.520 i wonder if you can just speak to that
00:23:08.640 for a moment
00:23:11.760 hmm
00:23:15.360 now i feel like i have to be mean to
00:23:16.799 somebody yeah like we have to dog on
00:23:19.120 another community not even that
00:23:20.799 i think that it's just is it the hat is
00:23:23.679 that why people like it
00:23:25.919 i don't know i don't know i think
00:23:29.600 i think probably the ruby community is
00:23:31.919 like um
00:23:36.000 what it's small enough that we still
00:23:37.600 have it's not
00:23:42.320 it's not as corporate as say like maybe
00:23:44.960 a java community or something we have a
00:23:47.039 good community of hackers
00:23:49.039 and fortunately our community of hackers
00:23:52.159 likes to teach each other new stuff so
00:23:56.000 at least i do anyway it's a lot of fun
00:23:58.480 like
00:23:59.520 for me in particular i like to show
00:24:00.960 people i don't know i like to work on
00:24:02.640 stuff and tell people about the things
00:24:04.000 that i'm working on
00:24:05.200 so so that they can do it too uh
00:24:09.120 also because like one day i'm one day
00:24:12.400 i'm not going to be part of the ruby
00:24:13.840 community
00:24:15.840 that's not possible i mean i mean one
00:24:18.400 day
00:24:18.960 like one day i'm gonna die right like
00:24:20.640 it's gonna happen and somebody else will
00:24:22.480 have to do it
00:24:23.200 so we're all doomed
00:24:26.400 i wonder yeah exactly
00:24:29.760 i wonder if there's like okay i was
00:24:32.480 gonna start with one thing but now i've
00:24:34.000 got like three different things that i
00:24:35.600 think
00:24:36.080 can like kind of push ruby right like
00:24:37.840 there's the keeper be weird aspect of it
00:24:40.320 then there's the fact that ruby as a
00:24:42.080 language was designed
00:24:43.520 to like help promote developer happiness
00:24:47.600 and then there's also like maths is nice
00:24:49.279 so we are nice so that's like
00:24:50.960 three like pillars of the language or
00:24:53.520 pillars of the language community
00:24:55.520 that are kind of driving it towards that
00:24:57.520 like cozy happy beautiful feeling that
00:24:59.919 ruby always gives me
00:25:02.159 and i think the sunglasses help i think
00:25:06.080 between the sunglasses and the hats
00:25:09.360 it's it is a much less corporate
00:25:10.960 community it's much warmer i think like
00:25:13.039 from a
00:25:14.640 open source perspective
00:25:18.159 that might work to our detriment
00:25:20.240 sometimes
00:25:21.279 that as a community like i know that
00:25:23.919 other languages have major corporate
00:25:26.880 involvement in a lot of their things
00:25:28.960 we've got shopify and github
00:25:32.240 really like actively contributing to our
00:25:34.720 projects
00:25:35.279 and and dumping money on us but
00:25:39.039 when you think about like the teams that
00:25:40.480 exist that work on
00:25:42.480 python development inside of google
00:25:44.480 right like
00:25:45.919 maybe if maybe there's an advantage
00:25:50.000 to being more corporate
00:25:54.799 ah yeah i guess i mean there's more
00:25:57.840 money
00:25:58.559 right yeah is that the goal i don't
00:26:00.559 think so i don't think it is for me or
00:26:02.320 for rubyists kind of i feel like it is
00:26:04.400 just kind of this hacker collective
00:26:08.840 well
00:26:10.320 i think about here like i don't know i
00:26:12.559 don't know that it's bad
00:26:14.159 i can't i can't say in particular that
00:26:16.400 it's bad necessarily to get more
00:26:18.799 get more corporate sponsors or more
00:26:20.400 money behind it
00:26:21.840 i mean i think
00:26:24.960 because like if you look for example if
00:26:26.640 you look at the linux kernel
00:26:28.159 like linux kernel development there's
00:26:29.840 tons of i
00:26:32.159 i think that might be considered
00:26:33.520 corporate maybe because there's tons of
00:26:35.760 companies behind that thing
00:26:37.520 yeah and if you try to contribute to the
00:26:40.320 linux kernel
00:26:41.520 like we we've all heard
00:26:44.720 stories about that so
00:26:47.760 uh i don't know i don't think that i
00:26:50.240 don't think that happened i mean that
00:26:52.159 that type of stuff definitely happens in
00:26:54.080 the ruby community just not as
00:26:55.919 i don't think it's as frequently yeah so
00:26:59.039 i think we we try to i mean
00:27:03.120 i know i try to like
00:27:07.120 target folks who are new to programming
00:27:10.320 or
00:27:10.640 new to the community and try to
00:27:12.799 essentially try to make a
00:27:14.159 welcoming environment so
00:27:17.440 i don't know i mean i don't know if it's
00:27:21.679 i don't know what makes a community what
00:27:23.840 it is
00:27:25.200 yeah i think if
00:27:28.720 i think there's there's we're having
00:27:31.200 worked in community for a long time
00:27:33.120 right this is effectively my job in deaf
00:27:35.120 rel is to figure out how communities
00:27:37.600 work and grow i kind of agree with you
00:27:40.880 there is something mysterious there's
00:27:43.120 like this this
00:27:44.880 x factor that is real hard to pin down
00:27:47.120 but i think it has something to do with
00:27:49.440 exactly people like you aaron that that
00:27:51.919 you go to a conference
00:27:53.440 i've watched you try to walk across a
00:27:55.200 conference hall with
00:27:56.640 with a podcast so comfortable right now
00:27:58.640 erin yeah
00:27:59.760 this is a very serious like when you go
00:28:02.399 to a conference and you go walking
00:28:03.520 across the conference hall you will get
00:28:04.880 stopped
00:28:06.159 over a 50-foot distance 50 times for
00:28:08.960 someone to like have a conversation and
00:28:10.559 you will stop every time
00:28:12.960 every time i think it's i think it's
00:28:14.720 just important to set a good example for
00:28:16.559 other people in the community
00:28:17.919 like that's basically like that's
00:28:21.039 basically it
00:28:22.559 i don't know i mean i will i like being
00:28:24.480 around so personally i like being around
00:28:26.640 nice people
00:28:27.520 yeah it's more it's more fun
00:28:31.600 right yeah yep yeah
00:28:35.360 so that's i don't know basically that's
00:28:37.600 something i want to encourage
00:28:39.120 yeah i'm sold
00:28:42.480 so all right yeah in in that vein then
00:28:45.760 if we want to help new people get into
00:28:48.080 working on open source should you think
00:28:51.600 they should jump into the kernel or they
00:28:53.279 should start maybe on a different
00:28:54.799 project
00:28:56.320 uh i think it depends on what you do i
00:28:58.720 think like the best place to start is
00:29:00.720 where
00:29:01.200 stuff that you're already working with
00:29:02.960 so if you're doing web development then
00:29:05.200 start with
00:29:06.080 you know start contributing to rails or
00:29:08.799 i don't know maybe
00:29:10.559 any of the like gems that you're using
00:29:13.760 uh just something that you work with day
00:29:15.279 to day because you'll have more
00:29:16.640 familiarity with it
Explore all talks recorded at Ruby Galaxy v0.2
+1