Player is loading...

Embed

Copy embed code

Transcriptions

Note: this content has been automatically generated.
00:00:00
invoke compilers by hand we would manually run tar
00:00:05
and a bunch of compilation products just to package done
00:00:09
and maybe more sophisticated engineers word and where they're
00:00:14
dependencies and bill grass into a make file maybe
00:00:19
some of us to do that but personally i find that to be still too much manual labour
00:00:26
so along came the i. d. e. e. uh to offer an
00:00:31
interface for the whole software development life cycle from editing formatting re factoring
00:00:39
and giving a structured to your whole code base too structured into projects and modules
00:00:46
and on those projects somebody owes you could build and run and test
00:00:51
and debug and package and deploy all at the click of a button
00:00:56
uh so buttons are great but uh some people pray for key presses
00:01:06
but anyway so what does that have to do with me ah and
00:01:10
my talk and just and i work on the uh on an i. d.
00:01:16
uh the intelligence colour plugin
00:01:19
and i actually most of my team is here at this conference you
00:01:25
can meet us at our at the checkpoints booth and talk to us there
00:01:31
ah i already know most people probably use intelligent a for
00:01:36
this colour editing uh did you also know that we are
00:01:41
open source mostly and you can find some get up just please raise
00:01:44
your hand if you did okay that's it's a growing number to actually
00:01:50
new this net ah so the purpose of this talk is to
00:01:57
ah and give you another approach to integration so integrating another i. d.
00:02:02
e. integrating developer experiences uh and specifically
00:02:07
i'm talking about the build server protocol
00:02:10
and some of the implementation details
00:02:16
or design details of this protocol
00:02:20
which is supported now by intelligent a as a client are
00:02:25
by loop as a server also by metal so the client all of
00:02:29
us talking earlier about it but more to and what well that is later
00:02:36
so we're coming from a place where we have uh integrated
00:02:41
development environment where everything is in uh interface in front of you
00:02:47
but that doesn't work for everybody now all the work flows
00:02:53
that you'd like to have are supported by the i. d. so
00:02:58
yeah one size does not fit all so so we have uh we re
00:03:01
proliferation of special purpose tools such as
00:03:05
dependency managers build tools um test frameworks
00:03:12
and so on ah m. and they have the advantage of being to some
00:03:19
degree cross platform on they offer you a command line interface which is programmable
00:03:25
to some degree again and come and an override a count of contexts mostly
00:03:30
and uh that machine on a c. i. pipeline on different types of that machines
00:03:38
um and that's great but what about my a
00:03:44
general purpose development front and i'd still like to
00:03:47
keep using intelligent and like you to keep using
00:03:50
intelligent even when you speak specific tools for specific tasks
00:03:56
but there's some integration issues so many of these tools that really have matching interfaces
00:04:04
and i mean just look at these faces they they they don't really fit together right
00:04:09
yeah so so you you're gonna try to you gonna have a bill tool like s. p. t. which has
00:04:17
one way of interfacing with that you can dumb stuff to the
00:04:23
shallow or to some files and then you have to write a
00:04:26
special purpose integration in intelligent a or in lupin your compile server
00:04:33
and that's a lot of work a string things together
00:04:38
so i just as an example are the
00:04:43
s. p. t. integration in intelligent a involves a
00:04:48
a special purpose plugin or two or three for several purposes
00:04:52
uh that we inject over some special s. p. t.
00:04:56
mechanism which sometimes breaks because i don't know why uh
00:05:03
some old s. p. t. code doesn't do the caching write something
00:05:08
and and then some special code in intelligent a to map this
00:05:13
structure that if extracted and them to an x. m. l. file
00:05:17
and just read immediately again and then try to map the s. p. t. project
00:05:21
structure to be intelligent project structure which works most of the time but not always
00:05:28
um
00:05:30
yeah i uh another plug in just for show integration a ah
00:05:34
and that doesn't even give us nice compile output an intelligent a
00:05:40
and and we have this problem for a variety of tools
00:05:43
like for each test framework we have special purpose code for
00:05:46
each bill tool for our various libraries we have special support
00:05:51
like our cup play uh for for matters like stylised empty
00:05:57
and your other projects like group have the same integration issue
00:06:05
oh yeah i mentioned bill tools ah we have lots of choices in this space especially
00:06:13
in scholar nobody seems to be entirely happy with little tool so they create a new one
00:06:20
and i'd have to duplicate the s. p. t. a. uh that uh it s.
00:06:27
s. p. t. effort for every one of them if i wanted to support them
00:06:32
and
00:06:33
for the more we have yeah the little coherence between these tools
00:06:39
uh i'm between the interface so you
00:06:42
might have context switches terminal id id terminal
00:06:47
and that does interrupt your work flow a bit and i still wanna just work from intelligent and maybe not
00:06:55
switch around too much and learn different command line interfaces as well
00:07:01
say we we have this haphazard tangle of tools uh
00:07:06
and we have haphazard integrations the like sort of seem to keep stuff to get there
00:07:13
but you don't really know where less than your right arm is so that that's all not very very coherent
00:07:20
so i've been trying to to uh type these loose threads of
00:07:26
tooling together with other tooling developers to create a more integrated development experience
00:07:35
uh but first some prior art you you might have heard have you heard of a language server protocol
00:07:42
yeah that's most of you that's that's very sophisticated audience today
00:07:48
um yeah this address is one
00:07:51
major integration bottleneck between editors and compilers
00:07:57
so by offering a standard way to communicate between them and i offer a
00:08:04
specific actions and reporting errors and warnings and so on
00:08:09
this works pretty well for editor integrations
00:08:14
um but and it has been been very successful so much so
00:08:20
that people keep asking us if we're gonna support it in intelligent a
00:08:25
the the answers it'd probably not
00:08:28
because of various challenges
00:08:32
so one of them is that the l. s. p. doesn't really model the structure
00:08:37
of the co pays it just tells you you got a bunch of files here um
00:08:41
this this is your workspace within these files um you'll have a
00:08:46
you might have some errors warnings going on uh you can have certain
00:08:51
actions on points in the code but it doesn't give us the it
00:08:58
the model of the whole code base that we need an intelligent for some of the advanced features
00:09:05
or alternatively it would require each server to support and uh even though we have
00:09:13
we can support them relatively easily with our own infrastructure
00:09:17
and there's no they're a mapping from r. l. s. p. which just gives you
00:09:22
messages and actions too intelligent a which
00:09:25
has a whole syntax three that represents our
00:09:30
also errors so represents the syntax three of the
00:09:35
code and allows a re factoring actions on it
00:09:43
and well some other things like there is maybe no common cons of
00:09:48
building testing running to some degree that is fine you just save and the
00:09:53
server knows okay need to recompile the maybe like more fine grained support for that
00:10:01
okay i mention lots of bill tools so uh what if a new bill
00:10:05
to emerges from the desert sands such
00:10:09
as fury which john pretty is probably uh
00:10:14
talking about right now or later or earlier
00:10:19
anyway he he's here and talking about it um so fury doesn't really have
00:10:24
users yet so i can't quite get
00:10:28
justify spending several weeks on supporting yeah
00:10:34
a given that it would also increase the complexity of our code base
00:10:41
perry quite a bit for if i worked on this for each bill tool
00:10:47
and uh even s. p. t. is still an ongoing effort to support correctly
00:10:52
because there's always new age cases to be found where things don't work right together
00:11:00
but i wanna i wanna do this anyway right uh and adjusts opening here
00:11:07
intelligent the import project i i got fury here which is of
00:11:13
course a project defined in fury and widget wanna just import it
00:11:22
and let's see if this works
00:11:28
it up over on my screen
00:11:31
yep so i i just important fury
00:11:34
into into the j.
00:11:37
and you see here oh oh the whole structure now the the the
00:11:41
two modules to record few rebuild fury has this concept of source dependencies ah
00:11:48
the right and so you see all the source dependencies nap to a separate module here and uh i don't know
00:11:56
oops
00:11:58
f. o. open a file
00:12:03
oh
00:12:05
and
00:12:07
i have a hard time you in this okay but all the stuff seems to work like syntax highlighting or
00:12:16
navigating to sources and so for their available
00:12:24
so yeah how how did i do this
00:12:28
i i i did not if implement fury support in p. s.
00:12:33
p. uh i know i did not implement fury support in intelligent a
00:12:38
but what i did do is implemented d. s. p. servers support into fury
00:12:45
and i implemented a b. s. p. clients afford into intelligent so
00:12:52
neither of these know about the other so there's no special
00:12:55
purpose integration between them but they work together to some degree already
00:13:03
um
00:13:06
so
00:13:11
by the way of fury is also a a p.
00:13:15
s. p. client because it uses and loop and which
00:13:22
i don't know who is talking about look at this conference
00:13:26
or how he's not talking but he's here you can talk to him about look uh
00:13:32
anyway uh bloopers or compile server and which
00:13:37
supports various bill tools from maya export to loop
00:13:42
but fury is not special in that it uses loop as its compilation back and
00:13:48
so it doesn't have a compiler integrated like most bill tools
00:13:54
so um yeah i i was kind of inspired by a crowd of
00:14:00
supposedly and rambling cone give me six hours developed three
00:14:04
and i will spend the first for sharpening my x.
00:14:07
and uh well i i thought yeah i'd give me one month to support a bill
00:14:12
tool and i will spend the first year developing a protocol s. so here we are
00:14:19
the build server protocol
00:14:23
so this is um very much
00:14:26
inspired by ah oriented
00:14:30
to be compatible to compliment ellis p. language server protocol
00:14:37
uh it was originally wrote up as a draft by all off from this colour
00:14:42
centre he earlier talked about um metals metals
00:14:46
also uses the s. p. as it's uh
00:14:51
yeah the ford score compilation backend
00:14:56
and uh so yeah like a list he integrates editors and
00:15:04
compilers language servers uh p. s. p. integrates build tools
00:15:10
and i. d.s or language servers as in the case of metals which
00:15:14
is uh my language server so in the case of metals you have
00:15:17
a three step process you go from bill tool to language server to
00:15:20
editor a wit and intelligence aegis interface between bill tool and i. d.
00:15:28
so like alice p. o. abused he has the concept of a project structure which
00:15:35
it yeah abstracts interview generic concepts which i'll talk
00:15:39
about right away and a few common operations that
00:15:43
like most still tools will having common searches build or even test
00:15:51
and they have some defined a request reply semantics
00:15:59
so some
00:16:01
base concepts of the s. p.
00:16:05
it is technically appliance server protocol but you
00:16:09
can also send directions yeah you can send messages
00:16:13
in both directions either from the server to the client or from the client to the server
00:16:17
uh they can be messages which don't expect a
00:16:21
reply or typically requests which do expect a reply
00:16:26
and most of the time it it'll be the client
00:16:29
sending the request and the server replying or sending notifications
00:16:36
ah one edition over l. s. p. that we
00:16:40
have is the server discovery protocol so we'd like
00:16:46
servers inclines to be able to talk to each other without
00:16:50
implementing any client or server specific support unless we really want to
00:16:55
support this extensions for a specific tool so what we did is
00:17:02
we defined a few system specific locations where a bill to make place configuration files
00:17:10
uh and the client knows where to look for these configuration files and
00:17:16
reads information about how to start a build server so we wouldn't need any
00:17:24
ah ports or
00:17:27
when the need to configure any ports or i. p. addresses or anything it's all in the file
00:17:34
and the server is then simply uh
00:17:38
an executable
00:17:40
which communicates over standard input standard output
00:17:46
so this is very portable so we
00:17:49
don't need any assistance specific uh communication protocols
00:17:57
and the life cycle of that once the servers start it looks a bit like this
00:18:02
um the client will send start the server
00:18:05
and then send a build initialise request the server
00:18:10
well answer and will eventually give a initialised um message notification
00:18:20
and then all the interesting stuff happens and when they're done
00:18:23
the client request to the server to shut down and exit
00:18:30
now the interesting part is uh one of the interesting parts is the definition of the build structure
00:18:39
so most bill tools have some concept of projects and
00:18:44
modules i. n. b. s. p. we call that targets
00:18:50
uh our target comprises um set of source files that
00:18:55
works on ah it has some um capabilities so you
00:19:02
like can tester can compile can run some stuff you can do with this target and
00:19:10
it will give you some meta data uh which can be language specific so force colour
00:19:14
it could be the sky library that is being used and the or maybe julianne moore depending
00:19:20
and in the cases colours well it won't know in
00:19:24
the general case it will also have dependencies on other targets
00:19:30
and get any target can be associated with a set of
00:19:34
sources likewise any source can be associated with a number of targets
00:19:47
now on these targets you can do some predefined
00:19:50
actions the most common one will probably be compilation ah
00:19:56
and another justly you may some targets may support testing
00:20:01
or even running if it will tool is so inclined
00:20:09
now you see here
00:20:13
after a a compilation request for some targets
00:20:16
you may get numbers of diagnostics in progress
00:20:21
it's a diagnostics is the word for
00:20:27
messages relating to your source code so such
00:20:31
as ah errors warnings um anything else going on
00:20:38
at a specific code location
00:20:41
these are exactly an allergist to l. s. p. diagnostics
00:20:46
so they can be forwarded by a a language server
00:20:51
as well as p. diagnostics
00:20:55
oh
00:20:57
and yeah
00:21:01
another thing we have is a progress notifications tasks so
00:21:08
since of build server might have some long running tasks
00:21:11
such as compilation will for longer your projects take awhile
00:21:17
um we want to give progress updates so for that we have
00:21:22
to find a specific notifications task start past progress and task finish
00:21:32
and i'll show you have that looks in a minute
00:21:37
or about right now so i'll close fury here
00:21:44
and opened occur which i imported as a loop project just before
00:21:55
and i'll try to run a build on it
00:22:01
and that didn't quite work out because of some bug or other uh just to refresh
00:22:10
oh yeah ours i love those
00:22:14
okay now it should work
00:22:17
so you see here that there is ongoing progress notifications
00:22:21
about the individual targets within the our car project and
00:22:26
you see and uh progress thirty five forty percent fifty and so on
00:22:32
and how long they take so with this this can help you to actually
00:22:37
get an overview of which part of your
00:22:39
compilation is eating all the time which modules
00:22:45
or taking longer than all the others so we so here actors
00:22:49
to twenty three seconds to compile while others here uh uh something
00:22:57
a cowboys t. i. was not even a second
00:23:04
and in the same window you'll get a whole bunch
00:23:06
of yet the diagnostics so warnings which you can navigate
00:23:11
to directly so i think this is an him prove
00:23:14
meant over the existing integration we have four s. p. t.
00:23:25
so this this is basically already uh released feature you can use it
00:23:30
pretty well with blue put our it works with fury at least for import
00:23:35
uh after currently got an intern working on supporting it for no
00:23:41
uh i hope people are inspired to uh write
00:23:47
these p. support for other bill tools as well because
00:23:52
that will yeah enable integration with intelligent a and medals at the same time so
00:23:59
what more could you want
00:24:03
um some
00:24:07
sons intelligent a specific challenges i wanted to talk about
00:24:11
so mapping the loop and no mapping the d. s. p.
00:24:18
project structure too intelligent a
00:24:22
here's got another step in there because we have on the top we have s. p. t.
00:24:29
so it's p. t. has projects which have multiple scopes
00:24:34
uh most commonly you'll be using testing compile some people also use integration test or
00:24:41
something that they made up a but that doesn't really work so well so i at least four come
00:24:48
for importing intelligence so it's more a commendable to use separate projects for that
00:24:54
a a speech he can has approached concept of salsa shared between
00:25:01
projects
00:25:04
so that we can map straightforwardly onto
00:25:08
b. s. p. uh huh that's also how the structure looks in the loop which was built basically
00:25:17
to be compatible with p. s. p. directly
00:25:22
so if you install the blue plugin in s. p. t. and when the blue
00:25:27
install it will create some blue configuration files which basically match the p. s. p. structure
00:25:34
but in these p. we don't have scopes so we
00:25:38
map the uh compile and the test scope to separate targets
00:25:45
now once we start importing this into intelligent way
00:25:49
um what we currently do is we get these compile and test
00:25:53
targets and match them together to go back to a single intelligent module
00:25:59
that's
00:26:01
maybe not ideal well we're currently reconsidering if we want to happen to separate modules but
00:26:08
in tele j. does support compile and test skills but no other stops so
00:26:13
that's one reason it doesn't work well with integration tests go up in s. p. t. another challenge is
00:26:21
a shared sources intelligent for technical reasons doesn't support sharing
00:26:26
sources between models you have a one to one correspondence
00:26:30
so what we do instead is to create synthetic modules
00:26:35
that are depended depended upon by the modules that share the source
00:26:41
yeah
00:26:44
i shared sources i'm i'm with that i mean source
00:26:48
to shared between different modules or targets so so if
00:26:56
ooh it's pretty common so um
00:27:00
for example if you want to share sources between different versions
00:27:06
of a compilation so if you are compiling force colour g.
00:27:09
s. and uh it's got a native and j. v. and
00:27:13
then shortly wisdom can you ask your question into the microphone piece because everything
00:27:18
was recorded and if we don't speak into the mike no recording thank you
00:27:24
i i hope my answer had been of context for the question to be recorded right um
00:27:32
so yeah those are shared sources are you might also share
00:27:37
sources between different when you compile against different versions of skylark
00:27:43
and i think there's other reasons to like compiling certain tests
00:27:51
and different types of tests against the same sources maybe but usually you'd model that as a dependencies
00:27:59
right so intelligent doesn't support the shared sources between modules so
00:28:03
we map it to us pacific uh to a synthetic module
00:28:09
and that works as long as these
00:28:13
modules don't have conflicting dependencies which is
00:28:17
often the case so uh you might get rid
00:28:20
code where in intelligent where that doesn't happen in
00:28:26
uh the bill tool itself
00:28:29
that's unfortunate but right now it's what we got
00:28:36
so i've already showed you how a compile looks when
00:28:41
run from my obvious p. this is just a backup slide
00:28:47
and
00:28:49
that brings me ready to the
00:28:52
these p. road map ah so any questions so far
00:29:01
okay so the version two zero of the d. s.
00:29:06
p. protocol is more less around the corner how we're still
00:29:14
figuring out some details and need to coordinate with a blue
00:29:18
and metals to get the these minor breaking changes up to date
00:29:28
but other than that it it's already perfectly
00:29:30
viable to write support for specific build tools
00:29:36
uh as i said in tele jade loop on the fury
00:29:41
support this and we're coordinating to make them work
00:29:46
together on the same version uh once we got get
00:29:49
out version two zero we intend to have it
00:29:51
a stable for the forseeable future so only compatible changes
00:29:59
more build tools are already being worked on specifically mail
00:30:02
i think somebody was already ah so looking it pays off
00:30:07
and within intelligent they like the support is the love it it's body so
00:30:13
so we might want to support more languages have better java specific support right
00:30:18
now it's only this colour and it's the java is a subset of scholar
00:30:26
uh and some robustness and mapping projects
00:30:30
and i'm sure once you start using it you'll figure out find out lots of problems with that that our then six
00:30:40
ah going beyond that
00:30:44
tooling protocols it's uh
00:30:51
when we might want to think about if we can replicate the
00:30:56
l. s. p. success for more uh tooling specific tasks to integrate tooling
00:31:05
um so some of them might fall into the scope of existing
00:31:11
protocols and searches remote building up p. s. p. is currently not
00:31:17
dedicated to the remote but it's made to be a extensible enough that it would work with remote servers um
00:31:25
re support more fine grained support for testing so n. b.
00:31:29
s. p. we only have a basic support test this target but
00:31:35
if you want to support specific or different test frameworks in a
00:31:39
generic way you could think about how a protocol for that looks
00:31:46
um
00:31:48
challenges that are of course that sometimes tools are
00:31:54
not generic enough or don't share enough common surface area
00:32:00
to make this standardisation necessary or useful
00:32:08
and of course uh adoption so i'm talking to
00:32:11
you here in hopes of getting more adoption for
00:32:16
is he to make it actually useful because as long as it's otherwise it's just some that code sitting there
00:32:23
out of interest does anyone already use uh abuse p.
00:32:27
in some form like loop with intelligent a or with metals
00:32:32
right yeah that it's a few but i hope more if you will uh get to try it out soon
00:32:41
now that brings me to the end of the park as such
00:32:47
i'd very much welcome uh any discussion or questions or comments by you
00:32:55
yeah you do it
00:33:04
well thanks for the great introduction moral review obviously on
00:33:09
could you go back to the all the point you're making out the all the
00:33:12
input unhelpful was going to be basically standard and then standard i'll so desert me
00:33:18
can you live in dallas p. everything is basically all like a socket communication
00:33:24
you can just um some jeez on on this in the batteries all right
00:33:27
right on the it's the same with b. s. p.
00:33:31
and in principle you could use any communication protocol you want
00:33:35
but with a connection protocol specifically we defined the all the communication goes over
00:33:41
standard in standard out it will still be a jason's r. p. c. messages
00:33:46
that just get printed to standard instead of a
00:33:49
of a dedicated process so this process can be
00:33:54
part of the regular build tool are like you were
00:33:58
like with fury run and fury b. s. p. and then it
00:34:02
just waits for messages from standard in in response to stand about
00:34:07
with these days not busy messages uh or it could be a separate uh executable that
00:34:16
handles this are indirectly so connects to a remote server for instance and
00:34:23
buy a t. c. p. i. p. or anything really but this way
00:34:27
we have a standardised way to communicate with the t. s. p. server
00:34:34
so so does that mean the intelligent will always be dull on the start stop processes initially
00:34:40
right all yeah cause a loss p. e. you can basically
00:34:44
do the handshake after both all programs or come up and running
00:34:49
yeah um so in this case you just have a
00:34:53
you you could have a residence server for b. s. p.
00:34:56
and in this case you just have a separate executable that just connects to this resident process and just
00:35:02
pushes the messages to that standard out interest okay cool thank you
00:35:07
okay any other questions yes
00:35:12
with the uh yeah my question is for example metal c.
00:35:19
uses up and the d. s. p. two contact with blood
00:35:25
then again you another i. d. e. that also uses
00:35:28
metal an editor that supports metal that also wants to use
00:35:32
yeah yeah the should be used it to metals or should directly
00:35:39
and then the billboard b. s. p. supports
00:35:43
not till tools working on the same code base
00:35:47
contact it at the same time it's not possible on principle
00:35:51
sure that that depends on the little tool if you allow concurrent
00:35:56
access but you can have multiple b. s. p. servers uh
00:36:00
connecting to the same bill to or running on the same workspace
00:36:04
oh okay yeah it it's only a matter of the bill tool itself allows
00:36:10
concurrent access as or or or if it will get confused and
00:36:15
break caching when when you talk about the bill till you mean
00:36:18
below or you mean is big deal i'm a little tool in general
00:36:23
uh whatever you use um so to your first part of the question uh
00:36:27
so intelligent they can use loop as it's built service build server protocol server
00:36:35
and in which case you import directly from loop um no loop has its own
00:36:41
configuration file which you could write by hand but the more typical use cases that you
00:36:47
export and existing project from s. p. t. or mail or baseball or may even
00:36:53
to the blue configuration format and then you imported into intelligent via b. s. p.
00:37:02
so and and that's basically also uh metals does
00:37:07
oh well it's possible to work both with metals and then something and then let
00:37:13
it or that uses the l. the t. b. s. p. at the same thing
00:37:18
yeah in principle there's no problem with that okay thank you
00:37:25
a big hello huh thank you i'm i'm single things one uh i think is
00:37:30
an ins and a and a thesis or something that is is really fantastic that would
00:37:34
it be to one uh is the next user in and i can just printed
00:37:37
the terminal divide it and then you would also want and it seems to support multiple
00:37:42
not all the same time i think really actually um but i haven't had any to figure out like it's not gonna say so
00:37:47
but that was really cool not the module cutting solutions also fantastic 'cause
00:37:52
that was my main concern and wounded knee thinking about how did intelligent
00:37:55
we should sources and immediately you just described it so i wanted to and you can see that and then the next one to ask those
00:38:02
uh is it possible for a tool to support a subset uh oh the the protocol
00:38:08
uh is a snake we should can be declared that but also it's not me i mean it's not hardens too hard with
00:38:16
all that that subject so that that's the appropriate or opinion yes
00:38:19
uh so the other speed and use p. protocol already has a
00:38:25
messages and uh has that so you take the
00:38:29
the server and both server and client can declare there
00:38:33
capabilities there's some minimum set of capabilities that
00:38:36
you need to support to have reasonable integration
00:38:41
but for instance a bill to doesn't even need to be able to support compile
00:38:47
you can already import it into intelligent a if
00:38:50
it just uh supports a some basic messages like uh
00:38:56
give me targets and give me sources associate with the targets that's enough to imported and intelligent
00:39:03
i look at the disney critical now and thank you very much yeah
00:39:07
yeah
00:39:09
next question here
00:39:12
you can you give us a rough idea of the magnitude of the task of adding
00:39:19
a new build tool like you know how many lines of code to add to right
00:39:23
uh into in tele j. or creating a b. s. p.
00:39:28
support within the bill tool for creating d. s. p.s support
00:39:32
i think it would depend a lot on the bill to uh so the
00:39:35
basic use p. support i had in winter fury was of four five hundred lines
00:39:43
yeah
00:39:46
was not too complicated most of it was understanding how fury works i um
00:39:55
but it is it has to be the that if we have an imitation and you couldn't just begins i think there
00:40:00
probably is a invisible and there's a test kit in the
00:40:03
u. s. p. implementation or so there is a set of
00:40:09
tests that you can run against the server uh there is
00:40:15
it's colour checked generators for all the messages in p. s. p.
00:40:20
and a few other things oh it's not complete but it should give you a start yeah any other
00:40:31
well yeah
00:40:37
uh_huh so elsewhere with joe brains um
00:40:40
have you made strides with getting other language
00:40:45
support in ontology a chicken's m. b. s. p. to interact with their build tools
00:40:50
not him but we've talked about it internally so so um my approaches
00:40:55
if this had gets any traction and skylark and we have a reasonably
00:41:01
a stable support for the then we'll extracted to a separate
00:41:06
plugin which could also make it into the core distribution of intelligent
00:41:14
uh anymore comments
00:41:19
okay ah
00:41:22
that's it then i'll just ask a few things uh
00:41:26
want to give me honest feedback it's anonymous so you can be honest on the scale uh they zap
00:41:33
such as a vote
00:41:36
and the and the next is some shameless plug so i mentioned my
00:41:43
most of our team is here are and the two of them
00:41:48
will be giving talks that the developer jungle hosted by word of
00:41:52
slab if you have seen it the place without the plants uh one of them is going to be by dimitri his over here
00:42:00
uh on some cool new tools for big data if in developing
00:42:07
so check that out please and the other is about some
00:42:12
work we're doing and uh scallop plugin so about data flow analysis
00:42:20
so i'm looking forward to that one as well because i don't really understand what's going on there
00:42:26
so um i collect toby will explain more about
00:42:31
how we're gonna give more insight into the code
00:42:37
from the scallop like and these are both lightning talks ten to fifteen minutes
00:42:43
and lastly i oh we have a booth and this is
00:42:47
as so come talk to us any time during the conference
00:42:53
we have these two talks are tomorrow
00:42:56
fourteen forty sixteen thirty

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.
6375 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.
302 views
Building Scala with Bazel
Natan Silnitsky, wix.com
June 13, 2019 · 12:18 p.m.
565 views
245 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.
2707 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