Player is loading...

Embed

Copy embed code

Transcriptions

Note: this content has been automatically generated.
00:00:00
um so thanks for coming early uh i have a survey which or restrain trick people into filling out um
00:00:08
it's not related to this talk particularly but that should not stop you from
00:00:11
filling out this survey you any thoughts about testing spark a one of these days
00:00:16
be really estimate estes park nodded trash fire uh i can i do that with your help
00:00:22
um but this talk is about why you need to be reviewing open
00:00:26
source code um i'm home either co presenter but unfortunately she ended up in
00:00:31
london uh so she's not with me uh but to talk about that a
00:00:34
little bit um if anyone wants the slides this is a bit the link
00:00:39
which has at least a seventy five percent chance of taking
00:00:42
you to the blog post where the slide will end up
00:00:47
eventually after they cut off the alcohol tonight at the party um
00:00:53
chris couldn't make it she did some of the analytic saying a show here i burn a
00:00:57
rather version of us at the bus with a slightly different take on some of the same data
00:01:01
uh i'm home i prefer pronounce if you're or i'm a developer advocated google
00:01:06
i'm on the sparking m. c. i. contribute to a lot of other projects um and in
00:01:11
doing so i have a lot of opinions about what we need to review open source code
00:01:16
um but that being said you know i'm not speaking as a member of the sparkly m. c. these are my own first audience
00:01:22
um i work it will but i'm at a whole bunch of other places they all pay
00:01:26
me money and were very nice people um i'm a co author of two books on sparc
00:01:32
uh if you don't own it the second one high performance park i got a much better world video on that one
00:01:38
uh and you should buy several copies of it uh learning spark whatever i don't care about that
00:01:45
uh informing and what or if you're the kind of people who are interested in
00:01:48
code reviews i have heard of you light streams we're gonna talk about those little bit
00:01:52
and i also collect feedback on my talks if you have a sort of
00:01:57
opinions about what i could do to make this talk better or other talks they do better in the future uh please you
00:02:02
know when you know the only thing i really care for his comments on my style i 'cause that's probably not gonna change
00:02:09
a cool in addition to who i am professionally i'm trends clear
00:02:14
canadian uh in americana with visa expires april uh and part of the leather maybe
00:02:21
and this is i mean not directly related to open source uh although certainly being from canada him
00:02:27
might see some more sort of communal aspects and maybe even reason america uh but i think it's it's important
00:02:34
for us in open source communities to try and build diverse communities amount of things that we need to do that
00:02:39
is talk about we're all from other backgrounds are and if only talk about our backgrounds we realise
00:02:44
that we're all from the same background it's maybe a sign that we need to work on improving art
00:02:50
um and also heather has this wonderful
00:02:54
collection of us go up fried logo is
00:02:58
um and you can buy t. shirts of these uh they are quite lovely i
00:03:03
own one i think actually to um and all were on the morrow and this
00:03:08
is the website if anyone wants to buy one of those will be t. shirts
00:03:13
um and actually the dress i'm wearing is not that but it is about would spark road uh it computes pie
00:03:19
unnecessarily on uh distribute yeah very very lovely okay i don't talk about what you can get
00:03:26
from participating open source code uh views why did you need your help reading open source curve
00:03:32
how to go about doing this um and then i'll probably try and putting you really quick
00:03:39
uh apache sparkled review at the very last minute uh will
00:03:43
review a p. r. together uh and maybe you'll find some
00:03:48
features that we cannot the original author no about together or maybe you know
00:03:52
will just be able say looks good to me and that's pretty fun too
00:03:56
okay so i'm hoping are nice people um you're not laughing at
00:04:00
my mediocre jokes though so i don't know um maybe you wanted
00:04:05
or your free or maybe you just wanna make open source less
00:04:07
terrible that's why you're here um is anyone here for another reason
00:04:14
now okay zero people how many people are here because they wanna make open source slightly more sustainable
00:04:21
okay so not everyone is that's lovely good good uh okay so this
00:04:25
is a picture of a cat um there will be more of these
00:04:30
okay uh okay this is a picture of a mermaid school
00:04:34
um and this is definitely for sure are related to open source
00:04:38
um because i expense mermaid school uh on my corporate credit card and my boss is like holden
00:04:46
does better have a good reason has like yes do not worry boss mermaid school is totally related to my job
00:04:53
i open source code reviews are like a mermaid school to help you grow your skills
00:04:58
meeting ways that you weren't necessarily expecting right i didn't expect to become a slightly better swimmer
00:05:03
by going the mermaid school you know that it's kind of a little bit of a surprise
00:05:07
on the building your existing skills so we can take our existing
00:05:10
knowledge swimming or existing knowledge of style and apply them in different ways
00:05:15
are you get better with time but but you you just need to start at some
00:05:18
point right if you're not just gonna put on a mermaid tail and get in the pool
00:05:22
you just never gonna become a mermaid right and and the same thing is true for open source countries
00:05:27
um and sometimes people will give you push back and uh not want to um
00:05:32
pay your expense or for for mermaid school or will be like
00:05:35
a a a what's with this like it did open source code reviews
00:05:39
on friday thing like that that doesn't sound like you do anything for
00:05:42
me and both of those situations um coffee makes it better and the
00:05:48
telling your boss too much information is a sed never gone well for
00:05:52
me um but but shudder to my boss for paying sixty six percent
00:05:56
of mermaid school uh and paying for my open source code preceded hit
00:06:00
take that uh expense report not not a hundred percent but you know
00:06:04
thank you uh i really hope you never watches my talks okay
00:06:10
so why does that meaning you um so a lot of projects
00:06:14
suffer from maintainer burnout uh if we look at the spur project there's
00:06:18
all kinds of people who can commit code in in theory and
00:06:22
in product is from this like a list of about like sixty people
00:06:26
we see maybe half of them remain active in a lot of them are just like oh it
00:06:31
i'm gonna go and do something else yeah you know i've i've worked on this
00:06:34
problem for so long it's not fun for me anymore um and the other one is
00:06:39
are reviewing code is less time and so we we have this thing where we like especially promote people
00:06:45
and you like open source projects and and just like promoting people in real life we tend to take
00:06:50
other skills you know reading code and then asked them to do something
00:06:54
different and just assume the skills are gonna translate and not provide any support
00:06:59
that goes as well as promoting engineers to managers um and it's it's often tends to be less fun right
00:07:05
we got into this 'cause we wanted to write code and now my job is we're viewing a lot of courage
00:07:11
right well it's up in the morning news like i'm gonna check out all the open pull requests on my favourite open source project
00:07:19
oh okay i wanna freak the three of you when becoming might open source projects um but that's that's lovely
00:07:26
um and some projects are limited by reviewers so even in situations or we don't
00:07:31
have burned out right we can get in the situation where projects become really really popular
00:07:36
all kinds of people are coming to train hopeless but then we don't have the time
00:07:40
to like figure out which of these things are good and which of them about writers just
00:07:44
too many changes being requested at the same time um another one is representing the user um
00:07:52
i didn't know a whole lot of sort of discussions on give
00:07:57
up on one could say where there's like really great technical insights
00:08:01
really good but then you know someone would actually coming to like so what what how are they gonna use this i i don't
00:08:08
although this looks like a really interesting solution but what was the problem
00:08:13
um and i'm sure we'd never have that happen in this colour community but you know
00:08:18
i think having people that can represent the users of the libraries present and participating
00:08:24
the review can help ensure that the things that we bill are actually useful to you
00:08:29
um some situations in in one of the projects their work on a we literally build in if you are an a.
00:08:34
p. i. that was designed to be called from java that could not be called from java but it was really beautiful
00:08:42
uh_huh so that took hundred for something but if we don't get a user they probably wouldn't like i can't
00:08:47
i can't pass you a class to a wide now with with with this i don't know anyway it's okay
00:08:54
um so you hear a bunch of open source projects are
00:08:58
without labels um and we're only gonna label the healthy ones
00:09:02
so the top people in the unhealthy ones don't yell at me um so please don't recreate this analysis so we
00:09:08
can say like hey people make pull requests um and then
00:09:12
they they open he orders and sometimes these players get merge
00:09:16
i'd say that the project is perhaps not super healthy if it's making a lot of p. r. s.
00:09:22
that are just getting close right that might be not design of the obvious to me i'm not saying
00:09:28
that we have to accept every poll request that comes our way i'm just saying
00:09:31
the ratio starts to look a little bit like that blue dot uh or that
00:09:36
well there's two blue dots okay the dark blue dot the the one over there yeah okay cool it might be set
00:09:42
i hear some happy project happy project happy project happy project happy project
00:09:49
i'm very happy project no oh no not so happy
00:09:53
project okay uh never mind was get that one okay cool
00:09:57
uh so how do we get into this situation so i think a lot of the time to get into the situation
00:10:02
'cause the rate of inbound pull requests and the rate of review comments looks
00:10:08
like this does anyone wanna guess which line is which oh a label to graph
00:10:13
just might not be such targets um but the blue line which is bigger is the
00:10:18
number of paul requests were receiving uh and this is not this part this is like
00:10:23
all projects and give hope for the data that i'm actually get my
00:10:26
little hands on um and then we see the the number of you know
00:10:30
were you comments they use a lot a lot smaller right and they can be kind of disappointing right 'cause you you know
00:10:36
maybe you're really excited you if you make a poll request to a project
00:10:41
you're like i fix my bo and hope to save the world or at the very least tell
00:10:45
people click on had more efficiently i live in san francisco supposed to wear the same thing um
00:10:52
and then no one no one comments on your poll request and who will take on those ads for you
00:10:59
that's true we should be set so okay um and then we could
00:11:03
we could look at stylish project this is kind of hard he uh uh
00:11:07
extraction of what's our projects are um discoveries made this morning
00:11:13
um but we can see we have sort of similar patterns
00:11:17
and uh we can we can still see the sadness that happens i'm there's probably some interesting
00:11:22
correlations but there's still more p. r.'s uh then there are reviews five that's needy little sound
00:11:29
um and then if we look at this think user accounts uh we can see that it looks pretty similar um and i
00:11:35
was honestly hoping for a slightly different result here i was hoping
00:11:39
that the red line would be even lower than it is here
00:11:42
uh but i figured i should show you it 'cause it disagrees with what i thought it would be on the spur project
00:11:47
the red line is really really low um but in the others cover projects it's not nearly as unhealthy as sparks so quickly
00:11:55
okay but still not healthy right we want these to be
00:11:58
more bounce right uh thirty to one ratio is kind and happy
00:12:05
okay so that's that's why that means you what benefit can you
00:12:10
get from doing these things so you can grow your skills and some
00:12:13
ways that will look at you can see the we're all the open source
00:12:18
it's uh yeah and if you do it enough you can see the real
00:12:22
world to be let us act um arguably you can get faster recognition um so
00:12:30
and and to anyone has contributed could spark i'm really sorry uh i have
00:12:33
no idea you are right uh but for the review words i i know them
00:12:38
because i see them again and again and it's a lot easier to learn if reviewers
00:12:44
judgement is like really really south summit yeah i would make the same call was that person
00:12:49
or i had that same question um and there can be picking review so many
00:12:53
more p. r. is then they could create um both good p. arsenal don't create
00:12:58
two hundred back here is another project just waiting and that's that's not gonna help
00:13:02
and and you get this deeper integration into the community right you tend to be interacting
00:13:07
the other people who are also involved in deciding the
00:13:11
direction of the curve right to where the project is going
00:13:14
um and you can also a time box sort of how much uh time you're gonna spend
00:13:20
on your open sort activity how many people here have like forty hours a week dismantle opens
00:13:27
yeah cool so uh not a lot of students ah that's not good
00:13:32
um and so i think one of the things is like like this honestly don't have enough time to me a large
00:13:38
number of p. r.'s anymore right like i i can make the p. r. is for the things that they really care about
00:13:43
but one of the things that i've done my life is being able to set
00:13:46
aside you know small amounts of time and allocate and one proving open source projects
00:13:52
so how do we see more of the world so starter issues often only touch a narrow parts
00:13:57
of the code for doing a code review though you can cover a lot more of the code
00:14:02
what is your to dig in 'cause we see what the proposed changes are along with descriptions of what these changes are
00:14:08
um and there's there's only so many hours in the day
00:14:11
that we could spend meeting changes to the code compared to spending
00:14:15
the same hours figuring out what's going on while looking at
00:14:18
someone else's proposal um and it gives you a better sort of
00:14:23
holistic picture of where the product is going and you know people will still yelling on the internet
00:14:28
but you know at the very least they want your annual but you're gonna be yelling
00:14:32
you about your decisions about someone else's kids that feel slightly less detached that's good okay
00:14:38
um so me he will get faster recognition from the community of viewers really stand out
00:14:44
in projects with large numbers of contributors um and it allows you to work with more people
00:14:50
um and it's easier to control your time right uh how many people here have tried to contribute upon request we're
00:14:56
really large project okay keep your hand up if that
00:15:00
folk um who less or equal time as you expect it
00:15:07
oh okay yeah um and so this this is this is okay it um but there was like one
00:15:14
person who was like maybe on the fence about that ah and the thing with meeting upon request is
00:15:19
wonderful reviewers will come to me with all of the suggestions of how to
00:15:22
improve my code nebula god damn it he to go to my day job now
00:15:27
i guess i'll get back to this and next tuesday um
00:15:31
but then i feel obliged to come back couldn't keep updating it
00:15:34
and if i don't do it it's gonna style it's not gonna move forward but if i come in
00:15:39
they can provide some us and you know feedback on how other co can move forward more quickly you
00:15:44
know i don't have to close that loop all the time i i can lead the suggestion and then
00:15:48
it's up to them whether or not they wanna listen to it or not ah yeah and you know
00:15:54
tend to be less frequently encounter in the one more bad situation we're like
00:15:58
i coat almost works i'll just drink another cup of coffee and everything all the
00:16:03
fine and it's it's a hammer like fungus off doing that with the cover view
00:16:08
stop it's nothing you know don't okay um and yeah it's not
00:16:13
it's not just like random projects uh it tends to be the larger
00:16:16
successful project which i need help uh with reviewers and we can see here
00:16:22
uh the apache euro project which is not our but it's it's another one out
00:16:26
was making me is probably the creator of uh we could say co creator or whatever
00:16:32
um and we can see that it's rapidly becoming a critical dependency blah blah blah or uh and we are
00:16:38
in quite serious knee of more project maintainer is um this is this is a really common thing right like
00:16:44
people are really excited about this project but no one stepping up to review the code 'cause it's not fun
00:16:50
so we can treat ourselves and tele sales there's
00:16:53
gonna be fun for all those reasons yea okey um
00:16:58
how many of you have experienced to wean code reviews of any sort
00:17:03
yeah yeah that's lovely keep your hands up if you
00:17:06
have experience with open source of requests reviews as a reviewer
00:17:11
okay that's a good number but not all of you so if you if you don't
00:17:14
pull request reviews internally or coders internally that's great uh if you're gonna start doing open source
00:17:20
code reviews there is some things to keep in mind if you probably don't know these
00:17:25
people um you may have less shared assumptions
00:17:28
and if you see things other accidentally mean
00:17:32
it's a lot harder to go to someone in the like i'm really sorry what i meant to say is that generator
00:17:38
looks slow not you're a terrible person can i buy you
00:17:41
a cup of coffee right um because it will be like
00:17:46
no i'm i'm in europe and you're in san francisco oh also
00:17:50
you're strange and from the internet i don't wanna work with you um right okay uh sometimes strangers
00:17:56
plus the internet become ass holes so it's it's true you might not be the person who's like
00:18:01
leaving you know for for full request a few common specs and maybe you know you
00:18:05
put your heart and soul into those out you you've really thoughtful really well thought out comments
00:18:10
and then you get back something that they don't interfere keyed on stage uh but it rhymes with
00:18:17
i don't know what rhymes with fuck um
00:18:21
okay well it rhymes with a yak yeah there that's not gonna get
00:18:26
it it is it oh whatever my boss as much michael it's okay um
00:18:31
and so hopefully the people that you work with your company are going to be also as
00:18:37
as much as strangers on the internet and if they are you should find a new job um
00:18:43
but you know this is one of the things you're gonna have to prepare yourself for is that unfortunately you might need some of
00:18:48
these wonderful people i am and alternatively you might just have very
00:18:52
different goals and visions for the project right um and that's totally okay
00:18:59
if you're new you're probably not gonna be able to steer it as much as you want but you can probably stuart
00:19:04
more by being the person who's making suggestions on people's proposed
00:19:08
changes uh then proposing the changes that are these that's my experience
00:19:12
okay if you want to watch videos of me sitting underneath
00:19:16
the bed in san francisco i because office space is really expensive
00:19:21
i'm doing open source for request reviews law right
00:19:26
and swearing a lot uh 'cause no one watches part sorry not know what are my boss definitely does
00:19:32
not watch those um you can go to this fine we're out here and you can watch some of those
00:19:38
how to perform okay right and if you're in the mood to reviewing
00:19:43
you can bring so much special value to our project um you can oh
00:19:49
uh that was not the special value of i was hoping for and you know just avoid touching my computer okay
00:19:55
and you can see the weird things that i've just been we've always done it this way or
00:19:59
like of course we start the python and then the j. v. m. and connect them with unix socket
00:20:04
what do you mean that's not normal right like you can be like whoa i um
00:20:10
and and you know maybe the i mean really does need to be
00:20:13
there sometimes we really do need to connect python to the j. v. m.
00:20:17
because my life is full of sadness up but sometimes we don't need to connect python to the
00:20:22
j. v. m. and you can be the person who can like point this out to someone and
00:20:27
just remove that blind spot on and this is this is really awesome and you can also do
00:20:32
a much better job of like being like a a uh this thing which you think is completely intuitive
00:20:38
i it's now i i have no idea what you're doing here right
00:20:43
and and nintendo as a newcomer to can also be much less threatening right
00:20:48
if you're pointing this out to someone else was also you
00:20:50
contributing it's like your hair her like barbies but like sometimes
00:20:56
uh if you like are working some has been our project for really really long time you're like oh my god
00:21:01
for so scary or so scary to hit my code i'm terrible but if
00:21:05
you have like another new person showing up and helping with you it's like
00:21:08
oh no it's cool we're we're in this together and you can you can
00:21:11
take advantage of this and be be less intimidating encourage you please be less intimidating
00:21:16
um okay yeah to do oh right and oh yeah you don't have the same assumption
00:21:21
uh sometimes uh it this is how we find out security box uh someone comes in to take a look at the
00:21:27
thing and they're like i'm i'm pretty sure you base sixty four in code that i wrote a letter to a file
00:21:33
pretty sure that was called password i. t. x. t. oh i have some questions and you'll be like uh
00:21:39
e. yeah yeah um and so you'll you'll look at a library and you can like actually spend the time
00:21:44
to configure their because it's the right thing to do but everyone else is just blind to that 'cause it's you know what they've always done
00:21:51
you don't you should take a project get familiar with the tools can find a p. r. review
00:21:57
i'm still taking a project works a lot better if it's in the same language that you already understand
00:22:03
i'm trying to learn a project by doing trying to bring evil programming language by doing code reviews
00:22:09
now language does not work well by my experience um and i think this is both someone who's been
00:22:17
doing that and on the receiving end that neither of those experiences good to try trying pick a project we're
00:22:23
you know the programming language at least a little bit that said morris teleconference so there is several options for you
00:22:30
um ideally one which needs review up right so if you're looking at a project
00:22:34
and it's got you know three pull requests and they're all actively commented on that
00:22:39
maybe they got snow pick another one um oh yeah and i'll pick something with uh let us goals
00:22:45
um right um i've checked the mailing list see if there's a code of conduct uh see if anyone's heady
00:22:52
unexpected gardening leave 'em or yeah that that that job did not translate um that
00:22:58
refers to when someone is put on suspension and it takes me from a project to
00:23:04
it's essentially the alternative to being fired um but yet so paper project that looks happy in in front of people
00:23:13
um this is a tool for mermaid school
00:23:17
and uh it's really important um if you're
00:23:21
not so good at not reading through your no so you can put this on your nose
00:23:25
so that you don't get a bunch of water up your nose when you're flipping around in circles and just like a mermaid school
00:23:32
uh yeah you need to get familiar with the projects what's right so like if i just showed you this much like okay cool
00:23:38
i go have fun emirates going might be via my school something different
00:23:43
uh right but yeah okay so we we need to like look at some of the other pull first don't just jump
00:23:48
in india like me what's up where is where is uh with this yeah system like put some time investigating what's going on
00:23:55
saying things you would do as if you were gonna start making poll request to it and but keep playing
00:24:01
get wall over all of those things are really learning
00:24:03
unless to make sure they're not hassles really good on figuring
00:24:07
out how to build upon request from the branch yeah c. i. systems are lovely the like actually being able to
00:24:13
verify that something works as intended locally as opposed to
00:24:17
just depending on the c. i. is is a good thing
00:24:20
um get familiar with the communication style or and yet for example i wouldn't take the
00:24:25
linux kernel as a place to try those um or some other projects um i think smaller
00:24:32
players are better if you can find something that you care about that's even better on
00:24:37
because then you can be like hey what's up this looks really close to solving my problem
00:24:42
well it's maybe we could do x. right um and so like one of the
00:24:46
things i care about is like price on packaging for java projects because i chose
00:24:53
i mean some interesting life choices early in my career and uh now every
00:24:57
six days i'm a screen virtual environment uh if you don't get that job that
00:25:02
that's good um and it's often easier to be one of the really reviewers so
00:25:06
if you look at a poll request it's got like six reviewers maybe they got it
00:25:10
maybe not you know definitely feel free to take a local um but i would probably pick something with less people
00:25:17
i'm doing your first review there are all kinds of like things
00:25:22
and i really encourage you like soften your language um which
00:25:27
is the thing that i still protect us um and this is this is very useful when you're working with people who don't know you yet
00:25:34
um i also when you are legitimately uncertain of what's going on
00:25:37
right ah sometimes you know when we're new rear projector like i
00:25:41
think this is what you wanna do is this really what you wanna do and that's actually really useful because they can come back and
00:25:47
be like no that's not what i wanna do we should clarify
00:25:50
that's um you can also read the style going to style checking
00:25:55
or you can also check to make sure that it works on your platform other someone out there who really cares about i'm sixty four
00:26:01
ah and then you show up a lot to tell us that things don't work
00:26:04
on 'em sixty four and that that provide value 'cause i'm not gonna do that
00:26:08
had that i just i don't i i haven't intel computer it's it's it's okay i
00:26:14
well no not is actually who knows um but it's it's not so bad right
00:26:18
um and also if you if you have an i. d. i
00:26:21
find uh i tend to working emacs because once again pour like choices
00:26:26
uh but when i work with other people who are new
00:26:29
uh to a project it and use gentle definition really fancy things
00:26:33
unlike fiasco anything do a lot better with that uh compared to
00:26:37
my like a job to fly all you get three um yeah
00:26:43
okay please communicate carefully i'm telling people the code socks it might be true
00:26:50
but you can do so much better right we can tell them hey i really appreciate the thought
00:26:57
you put into this it's a really great first
00:27:00
step i think the performance has some opportunities for improvement
00:27:05
right and that sounds like what my boss told me in our last performance review
00:27:09
cycle and it didn't saw can tell like i thought it through and i was like
00:27:13
she's telling impediment job right home but you know people won't think it
00:27:18
always looks good um you don't know how much time someone's but it might
00:27:21
like especially if you do viewing purpose from other new people maybe this
00:27:26
is been a week's worth of working you're gonna tell them that's all bad
00:27:29
so to speak and um and also it's okay for this
00:27:32
to be scary um i remember starting doing poll request reviews
00:27:37
and being like oh my god these people are making all these changes they must know so much more than i do
00:27:43
but i don't think i can use the software is like this but
00:27:46
i don't know this is really terrifying and it's okay to be scared um
00:27:52
yeah yeah whatever uh i drink um whatever you
00:27:55
do to cope with that uh is fine i recommend
00:28:00
if you do write your pupil request reviews about drinking us to make them the following day well so
00:28:07
uh we get have has really wonderful features for this um if you're using review board mm hum or whatever um
00:28:15
and also remember it's okay for people to be wrong on
00:28:18
the internet and it's okay for projects to choose suboptimal things
00:28:22
you don't have to fix everything if someone's too painful for you to work with just
00:28:27
move on and let someone else deal with them i'm cool yeah phrasing emmys matters what um
00:28:35
okay so i was gonna trying to eli apaches bar code
00:28:39
review because that seemed like a good way to kill i think
00:28:43
time yes um and so does anyone want me to do it in a project other than apache spark
00:28:51
thank god okay cool um 'cause i'd but like as as it's it's a lot easier okay
00:28:57
i'm also i'm going to do this live live it's also going to go on the internet
00:29:03
which is filled with cheese okay um to to to to to do
00:29:11
still good everything's fine okay cool so hopefully this works and we're
00:29:16
gonna do a life full request review um okay cool and uh
00:29:23
that is i'm gonna go to my good friend sparked
00:29:26
dash t. r. start ups quite dot com um which
00:29:33
it is really high quality python code uh which will one day have to be
00:29:38
updated to python free um which is very fitting for the theme of this conference
00:29:44
uh i think realistically actually this will just get stuck behind increasingly destructive web proxy
00:29:49
uh and then we'll just never update any of the security settings on it ah
00:29:53
goatee anyways um so this gives us a view of the
00:29:57
pole requests coming in the spark a i've sorted it by um
00:30:01
whose commented on usable requests 'cause i'm looking for things where people aren't involved
00:30:06
uh but we could also go ahead in like say like hey what's
00:30:09
up i'm interested in seeing paul requests that are like relatively up to date
00:30:14
um and then we could see someone's just propose one
00:30:18
thousand four hundred line change to do adaptive executions parks equal
00:30:24
we'll probably not gonna get through that one in ten minutes but
00:30:27
it sounds really exciting um although okay this one this one here
00:30:32
new no commenters and convert file past your ryan binary
00:30:38
file data source i mean and if you type bar who runs this
00:30:42
doesn't look so bad maybe let's let's put this one um i actually did
00:30:47
if we look at some other people requests so if i have nothing to say about this one i got
00:30:51
some other ones and i can pretend i except for the fact i told you my plan um but yeah okay
00:30:57
so take a look at this okay um so here's here's a proposal on
00:31:01
um okay and i was tested with unit tests that's that's nice oh someone
00:31:07
did leave a comment on at seven minutes ago um well i mean it's
00:31:11
okay so uh yeah this this magic pile python code of predates get hard
00:31:18
uh having a pushy p. i. n. instead does pauling so it is a uh
00:31:25
sometimes like the other day but it's it's not it gives us gives us an egg
00:31:28
okay oh and uh ignore that thing about my job
00:31:33
that nine okay um so okay we we
00:31:38
change the tapes that we've asked them work here
00:31:43
where you want it to be just change to
00:31:45
whom are okay ah okay files can r. d. d.
00:31:53
okay so this this is still stream or not actually taking a job
00:31:56
for your i object uh i'm converting it inside of here that works
00:32:05
like that thing it's not necessarily that okay sure um a super characters and found
00:32:11
in the require your encoding okay this tells us why they were actually doing let's
00:32:16
um so that's that's cool and uh we now we can load files with
00:32:20
spaces very exciting um and frequently does not work and spark 'cause software sorry okay
00:32:27
ah so let's take a look at this unit test so
00:32:33
there are gonna make a fire oh they're gonna write one two three into a very exciting
00:32:38
um and then we're gonna re a ah we don't like close the file
00:32:45
and can you wonder if there's a risk your your book of
00:32:50
java file right i have to uh because that's
00:32:58
mm mm or is that like oracle and they don't want to depend on stack overflow it's
00:33:06
uh have a seven hats and the best java okay um
00:33:14
and to do okay this
00:33:19
weekend's half do i have to
00:33:22
i specify all organising 'cause i can't i don't see it
00:33:32
wow okay ah so we we we need if
00:33:42
it does
00:33:47
nice okay cool so it's great so that's fine okay that's good um
00:33:53
so that's so now we're gonna go ahead and use or read format
00:33:59
binary file load geared i get ah okay and so
00:34:04
or deer is um with tender and that's worked uh in
00:34:11
yeah okay so but it looks fine actually is so it's like it's a pretty fine what's ah but
00:34:19
ah yeah so i guess mm the assertion that so
00:34:24
it's a pentium uh we could assert that we actually get
00:34:27
these bites back as a as a totally that would be a good thing that we could do to improve that's ah
00:34:38
i mean i think um
00:34:43
uh
00:34:45
men yeah maybe it would be good to assert that
00:34:50
we get the bites back a a just in case
00:34:55
let's see here yeah uh it just in case it's um it's getting files with
00:35:03
and also like this isn't actually gonna oh is this can we
00:35:10
no this isn't actually gonna test what how i don't think this is gonna test
00:35:15
eh i'll okay cool j. okay i'm excited sorry i i'm having ah okay
00:35:22
cool cool so um the thing that we're we're testing is nominally that uh and
00:35:28
the the target passes it's it's fine but um
00:35:33
we we only have a space in the file name right um so let's go take a look at the uh
00:35:39
interface that we change which one did we change here at this
00:35:46
ah okay suspicion fire ah
00:35:51
okay yeah um so
00:35:54
here's what we do here ah on is it okay that uh we only
00:36:02
have the space of file name uh or or do we need it in half
00:36:09
or providing a two
00:36:14
trigger spark too big for um and so that's just like a
00:36:19
union i'm not sure and i could spend like a lot of time
00:36:24
tracing lacquered figure it out but i don't really want to you so i'm just gonna ask question
00:36:30
ah um and then i can clarify the like yeah no it's fine or it'll be like oh
00:36:35
yeah whoops all all either space um to with ten year which is would actually be really annoying
00:36:41
will have to be factor uh i you chills function here there to allow us to specify um
00:36:48
chapters uh to have spaces inside of it but okay yeah cool uh
00:36:52
does anyone else have anything else to one i suggest to you uh_huh
00:37:13
yeah that's that's a good point um yeah
00:37:20
oh sure okay so yeah sorry the point is um but
00:37:23
this is touching more than just a binary file format um maybe
00:37:29
just has to belong somewhere else i think would would be uh how i would phrase it um so
00:37:38
um yeah change seems to
00:37:43
uh impact not just a binary
00:37:47
file format need be visible on this e.
00:37:51
one uh or a route data source tests
00:37:59
ah what do you think as you can see very we easily um which is just
00:38:06
like how i could be wrong but uh okay uh anyone anyone else one uh uh_huh
00:38:15
ah okay at ah this is the downside of taking the freshest p. r. is uh well let's hit refresh and see what
00:38:23
happened so that the the comment was that they've already made a commit ah what did they change oh the i didn't assertion dammit
00:38:31
oh
00:38:34
still close so close okay so at this maybe illustrates that yeah maybe we
00:38:38
should wait for paul request which is like and how we're all so they're not
00:38:42
actively pushing changes to it right now uh
00:38:46
but we can use this part here are comments still a a reasonable and the
00:38:51
comment about like where the uh to should live is is also probably so reasonable
00:38:56
um and oh actually but this vision yeah well let's let's see here
00:39:04
um yeah well yeah i mean
00:39:09
we could maybe make this better by 'cause
00:39:14
we call first and we could instead assert that we're getting one entry back first uh and i would be
00:39:20
a little bit clearer if it fails but like yeah that would be kind of pedantic so well with it
00:39:30
oh probably um
00:39:34
yeah we could test for your eye
00:39:36
constructor use exceptions are bubbling now um
00:39:43
but i think it's it's
00:39:45
off
00:39:50
yeah that's good take a look at what uh what it says it's going to
00:39:53
do when it fails here that's a that's a good point um yeah okay um
00:40:02
did you dudes maybe come and it's uh here that we see
00:40:11
for past uh in violet and your high um optional
00:40:19
mm actually i'm gonna go ahead and then and say
00:40:23
it and that's just that's the like hastens like
00:40:28
for for me when i we've done ads trying to say like if you um
00:40:33
this is like a small change that we could make and if we didn't have any other changes to
00:40:36
make a whatever just market but since we probably should consider some of the other things here as well
00:40:42
maybe you could make this change if you felt like it um which is you know
00:40:48
once again very very wobbly but for purpose that's happening reviews happening in like a hundred
00:40:54
i wanna be as waffle yes i can't um or if i was working on a
00:40:57
project i would also wanna be pretty wobbly uh okay so i'm gonna go ahead and uh
00:41:05
finish finish this week to uh to do thanks for me that's
00:41:14
whatever and thanks for concerts a proposal um
00:41:20
good to support space it's uh
00:41:26
oh oh uh do we want to maybe is support for u. t. f. a.
00:41:32
it's um hand or have tests for supporting
00:41:37
a fancy things like me with a snowman
00:41:42
if snowman mode he uh if you have fun doing your job
00:41:50
why bother showing up um okay to to to us
00:41:59
okay
00:42:04
uh at least people from the stem and entertaining um uh okay and yeah oh it
00:42:11
sounds sounds good and we can see actually it laughter outdated overpass common already that's weird um
00:42:19
we can pretend that we were indirectly send five to the
00:42:23
universe to cause them to add an assertion so that's good um
00:42:31
cool i think i'm in your time right okay cool uh so
00:42:35
i would be remiss if i did not trying to you to buy more
00:42:38
things that you don't need a 'cause i am a currently living in america um
00:42:45
right so you two channel remember to like unsubscribe something something over here
00:42:50
so much a blog posts about good things you can do well you're doing
00:42:54
a poll request reviews on most of them are focused on how to do
00:42:57
good poll request reviews inside of your company on and so occasionally suggest things like
00:43:03
walking over and talking to someone and that might be challenging to do depending on your travel budget
00:43:10
and or the comparability of other people doing poll request reviews an airport lounge um
00:43:17
hi hey we would be remiss affected not trendy you buy my book again please buy this it is
00:43:23
unrelated but that should not stop you um and if you're interested in learning more about how to teach children
00:43:31
distributed computing site you should go to distribute computing for
00:43:34
kids dot com um this is actually not a joke
00:43:41
unlike everything else um and you can sign up for the mailing list your
00:43:45
email address and i will not spam you because you all are in europe
00:43:49
um and you have no well as um uh okay uh so i think
00:43:56
it's time for like food and drinking how do we have time for question
00:44:03
oh okay okay good before the question is there is a very important and that's it like we had three that's who
00:44:10
are can mean where uh going from the to the question is it does not the deer which is very important right
00:44:18
so that it is at six forty five sets has has said then sixty after is you know we
00:44:28
can take which if you use local so she calls it i was using it for the international people it's
00:44:36
called the olympic museum and if you don't shame on you know i i i just want to see
00:44:44
but yeah uh lately is of your hands uh uh to count how many people are going to these dinner
00:44:51
this is perfect and how many of you actually registered for dinner
00:44:55
so we're going to have problems with the food you comes so you can go there
00:45:01
but uh yeah we order probably least little this last then as many people as except the first
00:45:08
bus is going in fifteen and so if you want to have some questions you have time okay
00:45:12
it was a quite your rent to you
00:45:19
it's or here and i i
00:45:25
do do you need to register as a contributor somehow get in the community you
00:45:29
really start to nothing to but uh yeah uh that's a that's a great question um
00:45:34
so spark just does get up a request reviews so you you could just do and have a
00:45:40
there are some projects where they use separate review tools and you have to
00:45:44
register to use them i think go is the one which comes to mind um
00:45:50
it it doesn't hurt to email they'd like to have list and say like high without
00:45:55
a first just so that like people know you're round um by e. certainly don't have to
00:46:03
you try to you but you discovered show a review in which
00:46:08
one one that what is it about contributing as a way to work
00:46:12
i think it's okay i've certainly learned many programming languages well
00:46:15
contributing code uh if you wanna see really bats colour code
00:46:19
uh you can go look at my early spark a stellar code actually wanna see moderately bats colour
00:46:24
code you can look at my current sparks delicate um i i think i think contributing is a
00:46:30
great way to learn language doing is is probably a very good with one language i think i
00:46:36
think reviewing is harder to learn a new language though um but i mean everyone's learning habits are different
00:46:45
um and the show when it comes to think one called the deal it decide
00:46:49
that that's all on this uh need to use it should be tolerated me and what
00:46:53
do you do then that's that's a really lovely question i 'cause that does happen
00:46:57
from time to time um sometimes you'll be like uh well we should we write this
00:47:02
and we should we write the same whoa maybe maybe you would just be
00:47:05
faster if i get that's and encouraged not to give in to that um
00:47:09
have it um it indeed might be faster to just we write it all
00:47:13
yourself um and if you need to go really sell or it's a security issue
00:47:19
or something that's very very important okay use use your judgement um
00:47:23
but i i think the art of of working with someone else you can you can treat it like uh you know we like working with an intern
00:47:30
if you just re write all the code that in in turn gives you um you're
00:47:34
not going to learn how to teach people and also the intern is not going to learn
00:47:38
how to do this to us not that random strangers on an outer interns but i i
00:47:42
find i'm having that mindset helps me like we're we're both there to learn from each other
00:47:48
um but at some point yeah you just go like oh
00:47:52
thank you for signing this issue and providing a proof of concept
00:47:56
how do you feel it may be we take it from here and that's that those are in situations where it's like we really
00:48:02
need this in this release or or like i really need this
00:48:06
for what i'm doing and i can't wait for for the other person
00:48:11
uh but i i try not to i'm starting to do curved in the other could this is where you're
00:48:19
not c. d. that's in the fishman to the yeah
00:48:22
the the concert and maternity did not because we're all the
00:48:27
someone external uh would start doing 'cause that's that's a really great question so i
00:48:32
personally have not dealt with that um i definitely done like with using apache airflow
00:48:37
and random projects where it's just like i it's mated one for requests and was fixing like doc start m. d.
00:48:44
um and people were like hey what's up welcome i'm part of
00:48:48
that is trying to pick places that are friendly and welcoming to newcomers
00:48:52
as you find push back from like trying to help people deserve used it's not worth
00:48:56
it just you know there are many many open source project that get up contacts something else
00:49:03
if you don't think that uh should be uh um question of cool
00:49:09
as a um don't you think there should be some kind of mentoring um
00:49:15
well at least some kind of a fair and people that you should be as as it
00:49:22
we view uh uh well eighty two in order to i mean most of the projects
00:49:29
uh uh well i started reviewing code uh
00:49:32
one point one the one the shoe use stock
00:49:37
yeah and and as a review uh it's it's
00:49:39
frustrating as well because you you think it's good that
00:49:43
you don't have the power to do anything else so most of the time i try to find like the
00:49:48
mm most usual people that in these parts
00:49:52
of code he's not h. knowledgeable enough to merit
00:49:56
should nasa quest but they have never seen a uh an open source project well these kind of
00:50:02
less possibilities where precisely the yeah
00:50:08
scene four focal commuters i i agree um
00:50:12
in so in apache uh uh suffer foundation there's the guide on mentoring and the guide is to do
00:50:19
um maybe someday someone will write it uh but i i think you one of the
00:50:25
benefits that you you can provide as someone who's reviewing code and and doing a first pass
00:50:29
used to reap menu credibility to this other person if you know if you really think it's
00:50:33
good then you go and you find the people who commit things and you can do this with
00:50:38
get blamed get logon looking like get up to see who was coming to uh and you you ping them and you try and help
00:50:45
get this on stock um and it that is a lot
00:50:49
of work unfortunately um for one of one of the things that
00:50:54
in in this part project and it's not it's certainly not perfect park has a lot of um
00:51:00
opportunities for improvement in our community management uh
00:51:05
mm thank you yes uh but one of the things that that that i find useful
00:51:09
is that we can see here are uh there's these little tiny pictures of the people who
00:51:13
have reviewed the hours uh and not all of those people are commuters um but as myself
00:51:19
as a commander there are people who are crossed and when i see them as a commenter
00:51:23
with the little green blocks surrounding name which means they said yeah yeah uh i go when i click on
00:51:29
it and because i know that it's not gonna be as much work for me to come after code right like
00:51:35
it is gonna be fine like i'll i'll do a second pass of course because
00:51:39
when they want to be able to nominate this other person to also become a commuter
00:51:43
uh so i can just say yeah just commit everything is an me but it's it's
00:51:47
uh informal structure i would say in the sparc project and i think in many other projects
00:51:52
uh there's informal structures exist but certainly um a
00:51:56
humour structures formal could be greatly beneficial but i
00:51:59
don't know anyone has bothered uh 'cause uh uh people are a lot harder than soft for i. e.
00:52:07
okay cool so no the question right now it's time to go give it

Share this talk: 


Conference Program

Welcome!
June 11, 2019 · 5:03 p.m.
1574 views
A Tour of Scala 3
Martin Odersky, Professor EPFL, Co-founder Lightbend
June 11, 2019 · 5:15 p.m.
8337 views
A story of unification: from Apache Spark to MLflow
Reynold Xin, Databricks
June 12, 2019 · 9:15 a.m.
1267 views
In Types We Trust
Bill Venners, Artima, Inc
June 12, 2019 · 10:15 a.m.
1569 views
Creating Native iOS and Android Apps in Scala without tears
Zahari Dichev, Bullet.io
June 12, 2019 · 10:16 a.m.
2232 views
Techniques for Teaching Scala
Noel Welsh, Inner Product and Underscore
June 12, 2019 · 10:17 a.m.
1296 views
Future-proofing Scala: the TASTY intermediate representation
Guillaume Martres, student at EPFL
June 12, 2019 · 10:18 a.m.
1157 views
Metals: rich code editing for Scala in VS Code, Vim, Emacs and beyond
Ólafur Páll Geirsson, Scala Center
June 12, 2019 · 11:15 a.m.
4695 views
Akka Streams to the Extreme
Heiko Seeberger, independent consultant
June 12, 2019 · 11:16 a.m.
1552 views
Scala First: Lessons from 3 student generations
Bjorn Regnell, Lund Univ., Sweden.
June 12, 2019 · 11:17 a.m.
577 views
Cellular Automata: How to become an artist with a few lines
Maciej Gorywoda, Wire, Berlin
June 12, 2019 · 11:18 a.m.
386 views
Why Netflix ❤'s Scala for Machine Learning
Jeremy Smith & Aish, Netflix
June 12, 2019 · 12:15 p.m.
5026 views
Massively Parallel Distributed Scala Compilation... And You!
Stu Hood, Twitter
June 12, 2019 · 12:16 p.m.
958 views
Polymorphism in Scala
Petra Bierleutgeb
June 12, 2019 · 12:17 p.m.
1113 views
sbt core concepts
Eugene Yokota, Scala Team at Lightbend
June 12, 2019 · 12:18 p.m.
1656 views
Double your performance: Scala's missing optimizing compiler
Li Haoyi, author Ammonite, Mill, FastParse, uPickle, and many more.
June 12, 2019 · 2:30 p.m.
837 views
Making Our Future Better
Viktor Klang, Lightbend
June 12, 2019 · 2:31 p.m.
1682 views
Testing in the postapocalyptic future
Daniel Westheide, INNOQ
June 12, 2019 · 2:32 p.m.
498 views
Context Buddy: the tool that knows your code better than you
Krzysztof Romanowski, sphere.it conference
June 12, 2019 · 2:33 p.m.
394 views
The Shape(less) of Type Class Derivation in Scala 3
Miles Sabin, Underscore Consulting
June 12, 2019 · 3:30 p.m.
2321 views
Refactor all the things!
Daniela Sfregola, organizer of the London Scala User Group meetup
June 12, 2019 · 3:31 p.m.
514 views
Integrating Developer Experiences - Build Server Protocol
Justin Kaeser, IntelliJ Scala
June 12, 2019 · 3:32 p.m.
551 views
Managing an Akka Cluster on Kubernetes
Markus Jura, MOIA
June 12, 2019 · 3:33 p.m.
735 views
Serverless Scala - Functions as SuperDuperMicroServices
Josh Suereth, Donna Malayeri & James Ward, Author of Scala In Depth; Google ; Google
June 12, 2019 · 4:45 p.m.
936 views
How are we going to migrate to Scala 3.0, aka Dotty?
Lukas Rytz, Lightbend
June 12, 2019 · 4:46 p.m.
709 views
Concurrent programming in 2019: Akka, Monix or ZIO?
Adam Warski, co-founders of SoftwareMill
June 12, 2019 · 4:47 p.m.
1974 views
ScalaJS and Typescript: an unlikely romance
Jeremy Hughes, Lightbend
June 12, 2019 · 4:48 p.m.
1377 views
Pure Functional Database Programming‚ without JDBC
Rob Norris
June 12, 2019 · 5:45 p.m.
6374 views
Why you need to be reviewing open source code
Gris Cuevas Zambrano & Holden Karau, Google Cloud;
June 12, 2019 · 5:46 p.m.
484 views
Develop seamless web services with Mu
Oli Makhasoeva, 47 Degrees
June 12, 2019 · 5:47 p.m.
785 views
Implementing the Scala 2.13 collections
Stefan Zeiger, Lightbend
June 12, 2019 · 5:48 p.m.
811 views
Introduction to day 2
June 13, 2019 · 9:10 a.m.
250 views
Sustaining open source digital infrastructure
Bogdan Vasilescu, Assistant Professor at Carnegie Mellon University's School of Computer Science, USA
June 13, 2019 · 9:16 a.m.
375 views
Building a Better Scala Community
Kelley Robinson, Developer Evangelist at Twilio
June 13, 2019 · 10:15 a.m.
245 views
Run Scala Faster with GraalVM on any Platform
Vojin Jovanovic, Oracle
June 13, 2019 · 10:16 a.m.
1342 views
ScalaClean - full program static analysis at scale
Rory Graves
June 13, 2019 · 10:17 a.m.
463 views
Flare & Lantern: Accelerators for Spark and Deep Learning
Tiark Rompf, Assistant Professor at Purdue University
June 13, 2019 · 10:18 a.m.
380 views
Metaprogramming in Dotty
Nicolas Stucki, Ph.D. student at LAMP
June 13, 2019 · 11:15 a.m.
1250 views
Fast, Simple Concurrency with Scala Native
Richard Whaling, data engineer based in Chicago
June 13, 2019 · 11:16 a.m.
624 views
Pick your number type with Spire
Denis Rosset, postdoctoral researcher at Perimeter Institute
June 13, 2019 · 11:17 a.m.
245 views
Scala.js and WebAssembly, a tale of the dangers of the sea
Sébastien Doeraene, Executive director of the Scala Center
June 13, 2019 · 11:18 a.m.
661 views
Performance tuning Twitter services with Graal and ML
Chris Thalinger, Twitter
June 13, 2019 · 12:15 p.m.
2003 views
Supporting the Scala Ecosystem: Stories from the Line
Justin Pihony, Lightbend
June 13, 2019 · 12:16 p.m.
163 views
Compiling to preserve our privacy
Manohar Jonnalagedda and Jakob Odersky, Inpher
June 13, 2019 · 12:17 p.m.
301 views
Building Scala with Bazel
Natan Silnitsky, wix.com
June 13, 2019 · 12:18 p.m.
565 views
244 views
Asynchronous streams in direct style with and without macros
Philipp Haller, KTH Royal Institute of Technology in Stockholm
June 13, 2019 · 3:45 p.m.
304 views
Interactive Computing with Jupyter and Almond
Sören Brunk, USU Software AG
June 13, 2019 · 3:46 p.m.
681 views
Scala best practices I wish someone'd told me about
Nicolas Rinaudo, CTO of Besedo
June 13, 2019 · 3:47 p.m.
2706 views
High performance Privacy By Design using Matryoshka & Spark
Wiem Zine El Abidine and Olivier Girardot, Scala Backend Developer at MOIA / co-founder of Lateral Thoughts
June 13, 2019 · 3:48 p.m.
754 views
Immutable Sequential Maps – Keeping order while hashed
Odd Möller
June 13, 2019 · 4:45 p.m.
277 views
All the fancy things flexible dependency management can do
Alexandre Archambault, engineer at the Scala Center
June 13, 2019 · 4:46 p.m.
389 views
ScalaWebTest - integration testing made easy
Dani Rey, Unic AG
June 13, 2019 · 4:47 p.m.
468 views
Mellite: An Integrated Development Environment for Sound
Hanns Holger Rutz, Institute of Electronic Music and Acoustics (IEM), Graz
June 13, 2019 · 4:48 p.m.
213 views
Closing panel
Panel
June 13, 2019 · 5:54 p.m.
400 views

Recommended talks

Lord of the rings: the Spire numerical towers
Denis Rosset, researcher in quantum physics
June 14, 2019 · 1:47 p.m.