Player is loading...

Embed

Copy embed code

Transcriptions

Note: this content has been automatically generated.
00:00:01
okay
00:00:03
hello everyone um my name's christophe and shocking to my presentation i know this like
00:00:10
the laces versions of the lunch so i hope our will not bored you to death
00:00:15
uh before i go to the topic of his presentation which is context body
00:00:18
in utah i want to talk about i want to say if you force
00:00:22
of me and and other stuff so i'm gonna programmer for like
00:00:27
seven years now i think for over five i'm doing scott wink for
00:00:31
peaks colour projects i'd bet i can double the size of your project and triple and project might
00:00:38
project i'm working on that like providing funding for those is probably right
00:00:42
now is like few few million lines of code like eight or nine
00:00:46
and it's a few hundred developers all uh doing or core programming or and and in developing on
00:00:52
the same single branch so there's plenty of problems imprint so it means that as like plenty of
00:00:57
of things i need to to fix and sorta making them work basically
00:01:01
we're saying if something works in our code base it means it works everywhere
00:01:05
uh yeah i'm i'm from his up which is what we are the train the company ducks except
00:01:11
for like doing skull ah the data bit of course in front and stuff are we trying to
00:01:17
support can be just as possible are we run a lot of the user
00:01:21
groups incorrect if you can see some of the laws here as well as uh
00:01:26
big conference drops i want to invite you in due in october in crackle for example under the discover
00:01:31
there's multiple spheres with different topics all in the same time so sec plenty of opportunity to actually share experience
00:01:38
so there's colour there's some real stuff i'm i'm one of go recogniser
00:01:42
so i'm probably biased but i think is like the biggest event in krakow
00:01:46
this for me uh yeah and the last thing that does not related the presentation or to talk about
00:01:53
is a developer triangle so this is our stand and there are so many many many
00:01:57
many small lightning talks about different topics because if you don't talking about one of his libraries
00:02:03
compute power sent there is on this website there's a full schedule so
00:02:08
we can pick whatever you like with pretty much running all the time
00:02:11
in the brakes and during the talk so we don't find anything interesting maybe we can offer something nice
00:02:17
so that's o. of the things that are not related to the presentation so slight are here
00:02:22
i probably need to do a push i don't know if i push the astronauts version but there's
00:02:26
not much in the slide because i would do i would do some the most as well so
00:02:33
now let's consider presentation so i want to talk about the complex body
00:02:38
you probably have no idea what is that because the first time i'm like speaking publicly about it does it tulips i'm
00:02:44
and every that are developing the and how am is that our the distal will know we are called better than you do
00:02:52
for now is long way together but for now there's like few aspect of the
00:02:58
developing the software that we want to cover the complex body uh that you usually
00:03:03
do ourselves as the developers so basically the knowledge that we got there during our
00:03:09
develop and they'd have a like fighting the cold provide the new features would be like this kind of big pile of knowledge overheads
00:03:15
and okay this is nice but you want to make it more robust
00:03:21
make each more much like some machine can habits as well here computers
00:03:25
it means that this not that stage of the project not like when changing our product meets
00:03:30
all the knowledge of my previous project is pretty much useless from the experience i can i'm from
00:03:35
but i will not put like there was this change has that fates like once in a while and the everybody knows
00:03:40
about that and ignores that there's like a piece of knowledge that there is in the projects and connection to project is gone
00:03:46
and new developer joining and yeah the test phase and got forty broke
00:03:50
what does not fall actually trying to like the bargain debugging nothing nothing and
00:03:55
then there's like someone called the distance they thwarted nor it like we know
00:03:58
it's like on fridays always face like that in the model will be fine
00:04:03
so all this is the context but these maybe not aim for this kind of long people that live
00:04:09
long like stay long in the project because they usually do this kind of math in their heads and
00:04:16
this is more for did did you join nurse especially the one like entering a new
00:04:20
project is like if maybe first time i'm doing scott and f. b. i. f. was
00:04:24
collides complicated and i feel that everyone in the project is like way smarter than i
00:04:29
am and i don't know how i passed the direction process so i'm scared to ask
00:04:34
another thing like there was projects escalates quite or like we got this the tenths coloured ace
00:04:41
and scully it it's before that so there's a code bases that has
00:04:44
five six ten years so there's plenty of legacy of colour code nobody
00:04:48
probably realise that there's plenty of locusts colour code incentive to the king those code this is not the code is wrong is the false is always
00:04:55
it was developed like long long time ago and there was reasons why it was that worldwide was
00:04:59
good but right now you see and it's like what is that how does it work wise there
00:05:05
um or other place where we lack of knowledge and black when some
00:05:11
to is like there's a code formatting also at a low projects like
00:05:15
for example skull at and t. was introduced like two years ago something like that and and that's that's eve uh
00:05:22
if all offer gets credit for each of the line that's the skull evan to change people like
00:05:26
mostly you know the the top the top contributor to most of the project including like exotic ones
00:05:32
and this is the case that we there's says that the is it different for us we prefer
00:05:36
not the coach and like that ten percent of lines actually showing d. uh the actual either those changed
00:05:44
and yeah going past that i dunno you have tried is not with our show you how we can do it quickly but to be out any any help
00:05:51
and there's plenty more reasons why e. you want to dig into the
00:05:55
history so and and try to find out about something strange like this think
00:06:01
a different menu like this in the like single area i think nebraska starting from nineteen centuries
00:06:08
and this is the i got this kind of feeling when many times when i am looking in the local like
00:06:14
okay it looks there's us like symmetry there is something there but i have no idea why i don't
00:06:19
have no idea what does that and it was the same possible for the u. penn ontologies for awhile
00:06:24
they've got different ideas and there was there is no good there's no contest but before part ontology
00:06:29
so they have to like you know research research and try to find out what is the art wise
00:06:33
buys their what how does it look like because there's no way that this thing is actually like something
00:06:39
not made about living creature because it's like there is i don't see
00:06:43
any process of any think except for the pictures to make something like this
00:06:48
and we get the same problems with our caught so let me show you
00:06:53
something that's all of you i think who who screws not using s. p. t.
00:07:00
what are using a a cradle great also supposing so this is the part of zinc so does the incremental compiler first colour
00:07:08
this is the thing that actually makes yours colour compilation relatively short for a
00:07:12
small small changes probably the most to the piece of software dots we eve
00:07:18
like if it's not even think is not there like if we don't
00:07:22
have incremental compiler nobody is gonna that's my but that doesn't make it and
00:07:26
uh this is like the heart the heart of the zinc this is the matter that actually doing the cycles things
00:07:32
working cycles so try to recompile x. small piece of colour try something else has to be compartment doing it until
00:07:38
we will compare everything or there's no more things to recompile
00:07:43
inch you may see this quite all if you go into d. them at some point bird was more so is not really
00:07:49
file it but there is a plenty of coatings inc that was written by mark car
00:07:54
like long long time ago it's probably pieces of that code is as long as as b. t. so i've but like ten years
00:08:00
ants i need you to my work my project we we using have we to actually catch the compilations
00:08:07
and try to reduce completion time using using the casing artifacts and they didn't have windows in court and
00:08:12
does for sale uh uh moments that with many of those q. so one of this thing is like
00:08:18
there is i love you can see he it clearly there's like his class for a manager and i
00:08:23
think okay and do compilations lose so why complain complied comply there is doing the managing the classified so
00:08:28
well i like i like like he was introduce you and they want to find like a commie that into does that so yeah i can do the dime
00:08:35
uh i don't like using it dame uh from command line because the outputs really light there
00:08:40
is like usually there's like some ooh you are moves there is like a pop to d.
00:08:45
five where it is so i need like three screens to to see anything in
00:08:48
the output file in that to the common line output box i can using today
00:08:53
there's this nice at the day should come out and yeah i can see that this line was strange
00:08:59
by x. a. go and look at the comic is like
00:09:03
prefix in all types of excessive comes from different package soap
00:09:08
it gives me look i mean i i dunno whites here is i can always was prefixed so i
00:09:12
have to begin as the scientists trying to you know to find out what was this strange thing is
00:09:18
so i can code using did like i can come back to the history like check out too
00:09:23
the punch on that comment going to the upper end and do other other stuff like that button to eject
00:09:29
really convenient we asked us to do this or not take previous
00:09:33
revision comment so it basically doing all the nice stuff for us and
00:09:37
open your windows and i can see like the code as was before the comic and yeah you can guess what does or does not commit
00:09:44
before whatever fingers coloured empty and yeah we can go back again and
00:09:51
and we actually in order to get to the point when you actually know who introduce these colour curve costly manager
00:09:57
we actually go to the end of the history because it's pretty much the first come in the file that into does it so
00:10:03
but what about that yeah men in most cases will find what is there
00:10:06
and who need to do like many many many many steps back because this piece
00:10:10
was a quite a change quite a few times during the the five history
00:10:15
in order to prove my what you can see here how all this is by looking got the um one
00:10:21
of the dates maybe that one it's like twelve sixteen so it's quite you but there's like all the one
00:10:27
yeah and we can do it manually like no try to do you can try to find remains an attractive sorta part also
00:10:34
do the same thing we've got to scientists trying to solve the spots of those many theories
00:10:39
like there's like some kind of plant that grows around other plans there is a uh like a sea sponge
00:10:46
but at some point that then that examine closely they found like small balls and
00:10:51
more and more that's models and it appears that they come from the same animal
00:10:56
and the problem will solve one they actually find they want within that think so this is not the
00:11:01
plant this is not the ball not everything but is rather a borough doubles force us so there was a
00:11:08
there's a there's nice creature that is called by your cost or at least is like a beaver dot listen desert
00:11:15
there was accent things in the past and he actually did this kind of did burroughs because it was
00:11:20
can you dig deep in order to get like a nice temperature to leaving because that night was
00:11:26
recalled into dave's really hot and if you dig deep that the temperature is pretty much the same
00:11:31
and apparently the easiest reasoned the this week actually dig deep is actually doing the spiral
00:11:35
don't don't on there and if you did because we just go straight you would be trapped on the bottom and i
00:11:41
don't like maiming curve players got the problems of dot so they dig deep and there was like no way to get up
00:11:46
and this was filled like harder sound and this fossil asked to select
00:11:51
so yeah it was there and how we can do better with d.
00:11:56
with our history let me show you uh and i have to come back to
00:12:03
to the original file and then i have to turn
00:12:07
something that is called smarty sir you are not going to find this
00:12:11
in your i. d. this is something complex body provide and no fireworks
00:12:18
but we can see that's the we got the this kind of strange thoughts and just
00:12:22
i mean you can see the thought that different names good different colours in the background
00:12:27
i kind of the way how the presentation mode synergy works means that the underscores that should be like most visible
00:12:33
gets smart they get the same size as we've normal text so it's maybe harder to read than you know remote
00:12:39
but now we can see there is like a pensive colours here so for example this is okay
00:12:44
outdated with d. this extract from a letter and just a little bit but it's able as we start
00:12:50
and then you do it there is another thing that was introduced vector gosh 'cause the cost a long long time ago
00:12:55
as you can see is like in the seventies uh actually for this as someone just because of the d. r. mike he
00:13:03
does not smart enough to find out the correct date but yeah it's pointed to the actual comic words to this thing was introduced
00:13:09
and the uh it got and you guys you just not only there's no
00:13:13
sign of d. r. had changed to reformat everything i can to keep them again
00:13:18
nothing here is just dust where x. where the actual of change to plague movie in the actual out okay
00:13:24
with actual think and she my guess how does it work was a kind of magic there
00:13:29
is no information get nautilus all yes in your right and this is where context body ah
00:13:37
is and and in the context of the work so let me show you i have to change repository
00:13:41
because i think it's quite began actually showing everything there is would be like really really hard um
00:13:47
how does it work more or less i guess ask click two more times
00:13:53
uh so we got i guess it pretty simple grass it makes no sense they're not find any sense
00:13:59
you just put like you know and everything that comes to my mind and as you can see maybe i'll
00:14:06
i think i'll get uh as you can see here there's like a normal class not nothing 'cause and there is a his records
00:14:12
are good multiple dogs hear a different colours so how do i
00:14:16
know that information this is all because i'm using talk us so
00:14:22
let me show you how context but this is that finds the file it's something like
00:14:26
that so it's basically the list of everything important from that they can get from code
00:14:31
i probably should at some uh ah int literature as well but you can put
00:14:36
them that they're here as well and now we invite invited for the filing that
00:14:41
mode i pity to keep it part of the history what was going on because
00:14:46
if i for example change the i introduce a parameter if you like like this one
00:14:51
then it means that she uh a round uh at my my top ten type is not changed and it will be
00:14:57
in the same order so using like simple the if i can compare those and and and keep track of the history
00:15:05
so you basically metal contacts body doubles the first thing that contains but
00:15:09
it doesn't the hope and for now is the thing that the dust best
00:15:14
that's actually looking at the simple code is really useful i mean but it's not
00:15:19
it's i'm not satisfied with i want to get more because i think there's more so
00:15:27
this thing again this is still the for sale but false it isn't
00:15:31
part of leaving thing typed was fussy last but those borrow those those spiral
00:15:37
is is is not the first is just a trace forces so it's something that living creature
00:15:41
like did make some sign of what happened outside work and
00:15:45
it's past information to us and they're more other examples like
00:15:50
the footprints of dinosaurs are quite come on the wrist like footprints of other or maybe less
00:15:56
sexy uh creatures like a small minds or or otherwise ones
00:16:02
but they're also like more exotic ones like they also for like a pool of vision than others and to be honest to
00:16:07
speed this more in many cases this is more whites more information
00:16:12
then the actual bone because if we got like two hundred bones
00:16:17
okay we know the baltic under stuff like the amount of information people can get from was like
00:16:22
crazy but when good does that thing it was like okay this is a trace of that plan
00:16:27
so this think this bundles how i saw it was high as well although jumping or flank whatever
00:16:34
and if you think about the coach is the same thing with the caught the all the tokens all the the things all the call itself you can
00:16:41
the thing that is a bone so it's it's the thing that makes our
00:16:44
coat but there's plenty of information there as well that's that's different so that's
00:16:51
in most cases colour we don't have to other types in many many place we only need to either really need them but not only types
00:16:58
at each of you i'm using a library cool screws got a problem
00:17:02
with like using the wrong library your having problem of dependency resolution in last
00:17:07
three months raise your hand yeah so for the no the uh well that what what i want to say is that
00:17:14
sometimes you want to do something disks fail to comply because like the library
00:17:17
of the week that and it's changed so that there's also i get trace
00:17:22
information is all with moving the coach but this other the environment and you
00:17:26
can think about more stuff like output from test locks the or test results
00:17:32
a performance characteristics more more more press that more more things like that are can be
00:17:37
can take the called a fake the effects the word of site or or or the things that affects the code
00:17:44
so can we ask on things body to provide this information to let me show you so let's start with something huh
00:17:54
i've called them up about so much and this is like a not simple
00:17:58
thing that feed on the slide but is actual application so we got this think
00:18:04
it works fine for a cover here there was some some minor changes see i use green everything is fine
00:18:10
there is not much traffic our application right now let's say you go the stardust application for students the summer
00:18:16
nothing going on and then the next september october the application is like you know and the servers lycra taught
00:18:22
and it was last year that was not the features introduced new
00:18:25
like everything works fine was going on so smart people actually debugged
00:18:29
ability to some kind of these actresses or stuff like that and it turns out that we do some question sure in that line
00:18:37
and it turns out it doesn't work
00:18:40
like cash that you create doesn't work so what's going on here so the first thing let's say you are just joined a project
00:18:47
you were given to stuff like diversion was erected so the production is not on fire but you have to investigate was going on here
00:18:54
so you want to say okay well those change so it was introduced like a month ago probably
00:18:59
there is a change summer here let's use a good line and its initial comment in the project
00:19:05
so with the dying was wasn't change that was like if you smile small changes like in different cash on the top
00:19:12
and there was like probably line delete or something in the in in the top of the file and imagine that there is a two hundred lines of
00:19:17
code here so you probably won't be able to see those two i strange if you look at the file any idea was what what went wrong here
00:19:25
yes let me and context bodies easy some so you can see there is this this brown dots whew
00:19:31
but since the court wasn't that there was no change there that the kinds
00:19:35
itself in the court room it cannot have beef with the term this march
00:19:40
so all we can actually be smarter and
00:19:47
uh_huh uh_huh
00:19:51
are you yes and thus contains body for hat so we got
00:19:54
this money here i'm not really good in designing user interfaces so
00:19:59
probably it can be done way way better by default there's a talk as that are selected you can see
00:20:04
also the commies the effect this line yeah this is really small refer to show so there's not so recent long
00:20:10
and now we can few things to pick from let's go of symbols
00:20:16
did you notice a change there's two dots in the new cash so there was
00:20:21
a change so the actual symbols or the types or whatever you want to call it
00:20:25
something affected that line the history even though the code was not changed
00:20:31
okay it ah you looking that that's you can go and try to even
00:20:36
try to understand what's going on here but contains body ho chi do here
00:20:40
so we know that this is was introduced by as part and
00:20:43
it was many many problems so let's see what problems was there
00:20:49
not just it's become rich and now when i call for a whole the rubber dart it to show me what was the previous talk on there
00:20:56
the changes really small basically you just to be your table but it becomes in your table
00:21:02
you might ask yeah this was a good move like it should work now when you do a caching and this way you really wanted it maps
00:21:10
this isn't about that we should probably not the dot dot com one does i guess
00:21:13
you got it was there from the beginning someone's for buildings colour when developed i think
00:21:18
uh so yeah what what was the problem so that we share with the diff from that commits
00:21:23
for for this file so basically there was in the table not important top level and probably someone when diskette was introduced
00:21:30
but it doesn't the review is that okay usually remove this this import on the top of the file and out
00:21:34
the added into the the the place where it should be and this is a complete people think about here there
00:21:41
is this map that was me table and right now it's not and discuss the problems and sees me table mapping
00:21:45
in the table top works the same way it's uh for that affected in we've needed to map there is not discussed
00:21:53
the production works fine for a long time to take this was green everything was fine
00:21:58
so that's the first first first base was convex body can help us like actually we can see what was
00:22:03
the change within the symbols within the types that that was there there's other situation i want to show you
00:22:10
as well so another case but this time it ability no
00:22:14
side effects except for when line but it's doesn't matter yeah
00:22:19
we've got like weeds there's application and you try to get like
00:22:23
to pass the arguments and convert them into to the the the ah
00:22:27
the person to the inks and there are in our i so we don't on the narrow
00:22:31
so with this collection break out and then we this prayer present the rest of the application
00:22:35
and also there was a change so more and the results are different so what
00:22:40
was the change here in that file let me show you maybe this time started history
00:22:46
ah it's again basically the some of the traits was strange somewhere else
00:22:51
it's all in the same file but in your application probably would be completed a different place
00:22:55
and how can i get a hearing diplomatic place where the up a little strange are not not the fact that
00:23:01
there was no change here so we can use symbols here as well but we've got other thing called definition types
00:23:08
and this is like way less instances like as you can see it
00:23:11
it's there's two changes from point of the diffusion that's in the middle
00:23:16
so basically where we got the t. twenty five and yet this makes sense because we change anyways but we also tends something here
00:23:24
let me show you what was changed again we're using this is also also a tiny
00:23:29
change really hard to spot twenty the code review basically the set was replaced with sec
00:23:34
it it means when you got like on the input like one one five because it was
00:23:37
just one five coming out of that because so the remote duplicate when you change it to seek
00:23:42
we got all the output and is only because we change like the diffusion type you wanna that's right
00:23:47
with what we should put a correct concrete definition of the type here in use of the problem but again
00:23:53
this is a legacy got this is called written like long time ago and probably someone whisper proud once
00:23:58
you wrote that code that you don't need to provide he types here because this was collides for yeah
00:24:03
it hides our company can guess that for us okay for another things as we can
00:24:10
inspect so this time there is not changing that file is all the same initial comment
00:24:19
and there is no around that but the output is change a
00:24:23
bit like formatting of the data was change like what was going on
00:24:27
the fire was not trains not not that there was no no no any change what what was that
00:24:32
let's use the origins and again you can see there's something
00:24:35
change here so i can let's try was like the affecting think
00:24:40
and you may see that it actually grabs the origin of the
00:24:44
five so if there was anything that caught it comes from somewhere i
00:24:47
there is a source file or jar at we can just you
00:24:50
know see that and okay someone just downgraded the guard got time library
00:24:56
how that might happen uh the way how would use of the pandas or project might be surprising basically surprising
00:25:03
many times before because that and this may be removed which may affect other libraries because of the eviction transit dependencies
00:25:10
not depend this year mess and this is a simple case part i've to back
00:25:15
many many problems for example the worst one or whatever because what
00:25:19
are not binary compatible and sometimes there including some other libraries and die
00:25:24
to back many times the prime that application was fading with abstract metal errors on the production even though
00:25:29
the good old compiled code comprise because the cost of a stranger bit yeah it's kind of for us
00:25:35
so and the last one i want to show here
00:25:37
is my favourite because ah school actually in the compiler
00:25:44
itself into does a lot of stuff when the coach like for example implicit so there's the same example as before
00:25:50
and when we do when you are not tapes synthesis so basically the solos
00:25:54
injected by the compiler we can also see that the increase if you're is changed
00:25:59
and i a what it does the test i wanted to to to to find out if something about the actually can't
00:26:06
solve action what bothers fronts colour and i'll put that link i don't have heard about that
00:26:11
is one of the problems so basically you you change something difficult and there is something that can
00:26:18
accept an object or anything but top apples can match and before
00:26:22
it accept like different amount of parameters so scholastic oh i can
00:26:26
i can topple it so but there's i can make it and turn into the double so here when i get in their own sentences
00:26:32
it will show me dutch there isn't apply metadata strange so with could topple was introduced
00:26:38
so yeah that's that's the first few things that context but because happy with this kind of
00:26:44
trace the information from the code that are not there but affect your coat
00:26:51
so my what you might want to ask how we can try it the problem is that you there's no will open its context but he's not open yet
00:26:58
uh it's not because i don't want to open it but i don't want to open it
00:27:02
too early at because c. is the the the things i show you with to how we
00:27:06
can read the data are simple or relatively simple or simple loose you have to deal with
00:27:12
the i. d. like f. record you i go to display it which i'm not really good at
00:27:16
but i would try to find some hot on orange and but the actual price actually to produce that history data and this is really tight
00:27:23
to the way how you develop your software so how do you how
00:27:25
we or c. i. pipelines work how do you play with your branching strategy
00:27:31
and i really want to try it out on
00:27:34
few like different projects before i will go to public
00:27:40
that if you really want to try to contact me either you can write complex but it was up on
00:27:45
like the thing your teacher find in the top grab me on some more on
00:27:49
the conference of like contact me anywhere else i would be more than happy to talk
00:27:53
worth like i will ask you some question about how you can get it running in your application
00:27:58
and yeah and would like this i like how ruling on in the introduce it and i will ask for feedback because the
00:28:04
feedback is the thing that tracks this this kind of programs and one it's it's it's ready i think we will at least
00:28:10
because i'm not sure how much of that part like go completely uh open
00:28:15
to public and for free but ugly some part of that would be probably
00:28:20
i can and my talks here butts i really want to talk about the future
00:28:24
so what what i what i'm currently working on complex body and what would be there because i know i want to get there
00:28:31
well they showed you right now is not much of actually gathering the history i i'm gathering the context
00:28:37
and that knowing the code better than you do is like smart history and this is like probably diff
00:28:41
the thing that starts everything's like uh i was thinking how i can make the
00:28:46
the draw some of the history better and this probably should like ends up like
00:28:50
right now sorting twenty means of the talk not my first call it but then i
00:28:54
was thinking probably catch it out and try to implement some stuff and i that's i
00:28:57
can do more i can gather more knowledge because the things i needed for the history
00:29:02
i really good or i hope that that would be really good structure where you learn
00:29:06
more about the caught you might have quieted this fingers of background isn't much be chewing perl
00:29:14
uh i ought abundant impressive this way it put us as they're in the background for future it should be like a path
00:29:21
well i was there the i was told really
00:29:24
heartwarming story how they uh schools in that binds works
00:29:28
so basically if you are like if we're building this the this kind of
00:29:33
houses they were like really amazing because they were able to withstand the earthquakes
00:29:38
so much there's more people at quasar on the much but show and most
00:29:41
of the buildings everything there is still intact and the spaniards came there like
00:29:45
pretty much every church was rebuilt every one hundred years because of the earthquake and those weightings can last liked
00:29:51
and the funny thing was like if there's a building built in like on top of the some kind of holding probably think it was fine
00:29:57
because of the school how that people get actually putting distance we've pretty much primitive tools but coming back
00:30:02
to the history was thought uh if your building discuss that kind of thing for like let's say twenty years
00:30:07
and you're really good at that just stop even though we can to build more and stuff like teaching others
00:30:12
so there was a scroll sole factor yeah people are projectiles go there and they learn how to be stuff
00:30:19
and i was think yeah this is really nice and they left
00:30:22
the projects there's like all senior developer of actual is there for ever
00:30:27
and there is a new guy coming in and he says with him and
00:30:30
showing everything about the project about the technologies designs and whatever it is really nice
00:30:36
but there's a problem like they spend your cans and like twenty twenty years or more there was towing kind buyer
00:30:43
that was many many many many reason b. b. a. because the way it happened so fast but one of those
00:30:48
was like in gas doesn't have a writing so they don't have any kind of no honey isn't to preserve knowledge
00:30:54
and see my and i i want to claim that that does the same thing for us for software developers
00:31:00
we've got okay you gotta writing good develop good documentation like you go to tweak you've ever think
00:31:06
yeah we got that but to be honest do you seen a project with
00:31:10
good like developer information like that is really up to date and thought oh i
00:31:17
i do not so if you got one like like you for you but most
00:31:20
project there is a competition for users there's documentation how to start your like to
00:31:25
to set that environment that is the documentation to deploy it or use it or
00:31:29
if this library there is a good documentation about you know the i. p. s.
00:31:34
but the actual what if the knowledge that this is this test it's eighty or do not touch this piece of
00:31:39
code because like it's complicated and introduce anything it may
00:31:42
break all that over that got there's no documentation for that
00:31:47
and
00:31:49
the place where i think we can introduce a context that because there's because of
00:31:55
that reason of that this one single developer there was that we got the boss factor
00:32:02
alright possible three nasty the conference factor so how many developers have to go to the conference
00:32:06
of the project is not able to be developed anymore because there is no one to ask
00:32:11
aunts or even like think their thing so we just
00:32:14
starting your does your first day in the project ants
00:32:19
got the problem and you might ask your friend and you probably know that but you are to
00:32:24
have too too scared or or or you he's working remotely and he's away and you're basically start
00:32:29
for for for for for the development and i i'm right now i'm helping with like i'm just walking may product but i'm also like
00:32:37
helping to organise and like then the work of others like for example stuff for coupling
00:32:42
and there there there there's not many developers stops working to link so
00:32:46
the good like racially problems in the beginning because someone told them and
00:32:50
they are afraid to ask me or i'm like in different rooms so there's not easy for
00:32:55
them to ask me so i have to come multiple times then asking about the problem asking questions
00:32:59
and then sometimes in like after five or ten questions and one suggestion from me they're able to solve
00:33:04
the problem you twenty minutes does because i saw this for like twenty with ear i go somewhere else
00:33:11
so we've got the data and they figure out that that's in the in the history that's maybe we can use
00:33:18
that data to actually maybe not provide like f. to ask every the answer every question the developer might have but
00:33:25
just you know point should the right person or pointed to the right thing
00:33:29
so does not this kind of working right now but it's not
00:33:35
way ready to be shipped to anyone for but that that's think
00:33:38
but they want to share with that it's possible so let me go to
00:33:45
or to depict playground wears like nothing nothing yeah so i mean the developer and somebody
00:33:50
told me let's build something around times i'm
00:33:53
doing well now because new day it's time
00:34:01
okay i'm just want important i'm completely you know ricky in there
00:34:07
uh_huh and i i let me introduce like some question marks someone told me that if there is
00:34:13
uh something like construct or if i'd known only are recorded arguments is the the now not you
00:34:20
uh that i can just feel like this question marks okay i'm really good to go like until that's all i want to compile the stuff yay
00:34:30
interface they lies to me what's going on here like a yeah it should
00:34:36
work like and there was a reason why doesn't work and they're not that complicated
00:34:40
this will something quickly demonstrate and now i can is under action from complex body
00:34:47
showing context and here there's a complex and now contains body so does that mean that there's like to developers i can talk to
00:34:54
oh it's me yeah there is like no that that that that time is overloaded so we don't you can use like the question marks here
00:35:00
that is so one of the and just developers is one like this this is this idea that the simplest thing i can do
00:35:07
because i've got it coming out person so what for so long but i'm working on right now to provide you more stuff like
00:35:14
if you are working copies of daytime and okay there's some other than to does the
00:35:17
caught up for example there is a guy but do a code review and comments a lot
00:35:22
on an option also double arc i even though he's not right then you could not go so if you do is it doing girl called reviews
00:35:29
and send comments on some probably he's also good candidate to ask about our car
00:35:34
with that information you can also turned around so you can imagine that instead of like marking the
00:35:39
court i consider change and i can use that information i can suggest cory viewers or piggy reviewers
00:35:45
so someone sexually maybe better to leave it to court or like some
00:35:48
random guy that big i don't know how big your project are but the
00:35:54
in some cases like because i'm working with is really hard to find the owner of that piece
00:35:58
of the code because it it is very likely their ownership is very deeply within the coach history
00:36:06
let me come back to my slides um but here i was trying
00:36:11
to find the way to you know provide habitat tests and stuff like that
00:36:17
so something fate i want to know what compilation errors and it wasn't working
00:36:23
like from like positive part of the call the code that is good i've got the information wasn't the
00:36:29
problem but whenever i i stumble across the error is like no information is there so is my model rock
00:36:37
to introduce the to do explain why does is not wrong but i'm looking bottles wrongly
00:36:42
i didn't tell you another story i'm sorry i forgot about that we come back to this later on so um uh
00:36:49
this is the the twenty five mitchell if i'm not mistaken from does the picture taken luxembourg like forties during
00:36:54
the second world war and you can see how much like orbital this doesn't land use like this from the ground
00:37:00
but actually bumpers that come back from the mission was really buttered but the different was the members that do
00:37:05
not come bach and like this was not the biggest one about eight people where there and this work super expensive
00:37:11
so the us a air force trying to find a way how
00:37:14
to mini mart minimise the loss us so they try to introduce the
00:37:18
are more into that place but see planes butts you cannot armour before playing because the back way too
00:37:24
heavy order more black to think that to fin and what not non non protection so they each tried there
00:37:30
find a ways when they can actually apply this summer for like the most effective in most effective way
00:37:35
so they build up actually does a quite amazing story did below that dean of mathematicians actually solve this problem
00:37:41
and we l. b. data ass part anything like that they have to solve it so the
00:37:45
create this kind of charts where the uh like the cross
00:37:49
of the uh the the air for other airfields and so on
00:37:52
used to mark like whenever the pick the plane comebacks they need to
00:37:56
mark where the it was hit where is like some kind of damage
00:37:59
and just like after the data was gathered this this was the results will be showing to
00:38:04
the the general so okay we got that you want to work on but there to be more
00:38:08
there's also that's like yes you just for the problem so we need to put the armour whenever the the damages and we're the the
00:38:14
place will come back more like it better stripe and they all those
00:38:18
like send it to to the this kind of order to the factories
00:38:21
but luckily the uh the uh uh the guy that runs the things like the
00:38:26
then about that thing can like go complain screaming like noah's the computer on think
00:38:32
because you're looking at the data rock the fact that there isn't that much here and that they
00:38:37
come box so it is not the problem the pain can come up with them actually that part
00:38:42
if you look at the the screen like the the the the the place where the
00:38:45
pilots it's over here or there was there there was the it was done so the energies
00:38:50
there's not that much your means whenever the plane is he did there is going down
00:38:56
um and this is this is an unfair norman does like logical problem call the survivor should bias and this applies to
00:39:03
work out when you want to learn from the history this is like the coolest coming from the uh i think the colour
00:39:09
and as you can see it was like three weeks on their right which means the call that even your history is
00:39:14
the call that is good the code that's why the test and everything so you cannot there in march from that coat
00:39:21
because it's good and if you've got a mistake you have to learn from this really um
00:39:27
nasty part of the application that you that that that do mice might missed
00:39:32
like the coat fails to compile this is the place where the learning actually take place
00:39:37
and this is the place where companies but they will provide more and more information i don't want to show that that is not ready yet
00:39:45
so basically to their you actually go to them from that kind of
00:39:51
put that this all over the place and says they should stop here
00:39:56
but i want to really mention one think come back to this to gives
00:40:00
because like quite a new development that we got yeah uh this is the and that gives that unless the code based on
00:40:08
this is the based on the data from context but uh we we analysing the call does a grass there will be a talk
00:40:14
uh tomorrow i'll check that shit here would do that on our stance as any product
00:40:19
but basically this is the one of the place work and that's why the other like uh almost all also got hot
00:40:24
because as you can see whenever you click on the id the graph bit so basically in this though the
00:40:29
graph of what you do what to read them up and the stuff and it's can be use like two ways
00:40:35
because uh it can be used as a like you can build the query for complex body so can go go there
00:40:42
and you will actually analyse because of got and now you can ask on this
00:40:45
body this time you can have with that piece because this seems to be a problematic
00:40:50
and yeah and the other way context but you can also fits
00:40:54
a lot of information make this graph even better like providing comics
00:40:58
i hope it was started with point but there is you're seeing
00:41:03
uh uh there is the information that is about the about comics and with precise history and some knowledge about the coat
00:41:09
this would be even better so i don't know if you've got any questions if you do it is the perfect time
00:41:25
right uh that looks interesting uh just one question uh uh
00:41:30
regarding the you need to have the the committee see let's in that file let's see someone
00:41:36
shane copy the file or change the for location it was not the data there's a little
00:41:41
uh would it be possible to austin of data that is three oh or uh this is the first thing carrier
00:41:47
punter carpal implement after confirms percentage okay because it was in in my mind for a long time and is like
00:41:53
uh whenever i'm like no uh explaining this idea to anyone does the the first
00:41:58
question i or i was getting so yeah i i want that's also other case starts
00:42:03
could get is not really help helping us with much is the way when you
00:42:06
got the big file and you extract the piece of that file into at the other
00:42:10
your you want because there is no way that rename can pick that because the difference too big but you know that
00:42:14
is uh the the with it's hard to do on basie
00:42:18
only basic based on the um uh the history from the ah
00:42:23
from that you'd like us that file but with the information about i've never think it should be way way easier okay cool
00:42:34
uh you have really interesting talk a good stuff um
00:42:37
after after the last story uh about this on the plane
00:42:41
yeah you mentioned that having a eek eek comets in history the to
00:42:46
for example doesn't compile actually give a quite a bit of information right
00:42:50
uh my point is like you should not have a comics that failed to comply in your history yeah exactly should learn
00:42:56
for that comment so whenever you do that like exchange locally and you play with w. a. future project called doesn't compile
00:43:03
this is the place where we should learn from does the uh context but you can learn from those kind of things so i mean the ending
00:43:08
the at the engines ready everything is ready it doesn't implement up and
00:43:12
this is and this is tricky because i need to liking to different because
00:43:16
you know there's no single place where the compilation happens or that that's harder on it
00:43:21
it's so does that mean like in the rage in the regular um good have kind of a um
00:43:28
work situations when when you have to be our son when you're amending your p. r. s. but different comments
00:43:33
and sometimes different projects do differently but you at the end before
00:43:37
but you actually squash all the comments and all that history is lost
00:43:40
so does that mean that for context body to bore you shouldn't
00:43:44
actually squash the comments you should you know the good the the
00:43:47
best part of context but it is it's not either not tight just colour because it's quite abstract is also not try to get
00:43:54
so i'm using conscious but countries can be anything and i do not have like come like
00:43:59
change for each common in the history i can work with ranges or even i can do
00:44:02
some mappings between the commies and and that and everything else so or even more i can
00:44:07
provide like alternative way of how the project was strange because i can to that as well so
00:44:13
i well i was thinking about that because the other thing i really want to supports not only like
00:44:17
i'm doing on the c. i. when you got test and everything but then you develop low level of lookout
00:44:21
and your test fails and you feed start and you forgot about those fingers like exchange or or
00:44:26
that's comes from somewhere and completely forgot that and you get the same error like a year a a a a
00:44:32
after dots and you don't want to like you know going to back it what you want to ask at all
00:44:36
was it fixed before yes you did it like a year ago this is the change oh yeah it yes it's good that's the that's the goal
00:44:47
so context by the and me a a show the list of a person's will have a context
00:44:54
over some code uh and what about the persons who made for example for martin uses cough how much
00:45:01
well they have a context over are all the files and project on i mean depends how far you
00:45:07
want to come back with your data put together because in order to get something more than just because
00:45:12
you have to come by the code and this is how the complete but is quite quick to work
00:45:15
but i'm using caught a semantic d. b. to get most data out of the court and some more
00:45:20
uh that's a compiler plucking integrations but uh yeah you need to
00:45:25
compare the code is the most at the heavier have his part
00:45:28
so you get us not that that as much data as want to pay for girls but if you develop a look from
00:45:33
does on the news that contains body you'll get it for free because you are comparing the court all the time you get
00:45:42
uh_huh
00:45:44
there's a week or so um okay
00:45:49
okay so i think we are yes thank you everyone and for for coming and if
00:45:53
you've got more questions grams on or or come to our stands it's near the exit
00:45:59
and thank you so much for high

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.
8330 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.
2230 views
Techniques for Teaching Scala
Noel Welsh, Inner Product and Underscore
June 12, 2019 · 10:17 a.m.
1292 views
Future-proofing Scala: the TASTY intermediate representation
Guillaume Martres, student at EPFL
June 12, 2019 · 10:18 a.m.
1152 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.
1551 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.
5016 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.
1112 views
sbt core concepts
Eugene Yokota, Scala Team at Lightbend
June 12, 2019 · 12:18 p.m.
1651 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.
833 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.
393 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.
513 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.
935 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.
1973 views
ScalaJS and Typescript: an unlikely romance
Jeremy Hughes, Lightbend
June 12, 2019 · 4:48 p.m.
1376 views
Pure Functional Database Programming‚ without JDBC
Rob Norris
June 12, 2019 · 5:45 p.m.
6365 views
Why you need to be reviewing open source code
Gris Cuevas Zambrano & Holden Karau, Google Cloud;
June 12, 2019 · 5:46 p.m.
483 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.
810 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.
373 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.
1337 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.
623 views
Pick your number type with Spire
Denis Rosset, postdoctoral researcher at Perimeter Institute
June 13, 2019 · 11:17 a.m.
244 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.
162 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.
564 views
242 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.
303 views
Interactive Computing with Jupyter and Almond
Sören Brunk, USU Software AG
June 13, 2019 · 3:46 p.m.
680 views
Scala best practices I wish someone'd told me about
Nicolas Rinaudo, CTO of Besedo
June 13, 2019 · 3:47 p.m.
2679 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.
752 views
Immutable Sequential Maps – Keeping order while hashed
Odd Möller
June 13, 2019 · 4:45 p.m.
274 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.
466 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