Player is loading...

Embed

Copy embed code

Transcriptions

Note: this content has been automatically generated.
00:00:00
we can get started now
00:00:03
sell welcome to the session
00:00:06
um and so on um and i'm a software engineer on the cat and the
00:00:10
data sense that from a a interactive computing is something i'm very excited about so
00:00:17
i really hope i can share some of this excitement you today so let's get started
00:00:25
learning is a fundamental part of our daily work
00:00:28
uh software developers problem solving is essentially learning right
00:00:33
so we need to understand the problem and then learn about the right approach how to solve it
00:00:39
and then the technology we using is conch constantly evolving
00:00:43
languages libraries tools and we wanna keep back so we learn
00:00:49
but how do we learn
00:00:51
turns out that often we can look at learning as
00:00:54
a three phase process we usually start with observing things
00:01:00
and then we try to replicate um that the the things
00:01:03
we've observed like i'm trying i'm trying some example code ourselves
00:01:11
and finally we start exploring start changing things and and try something new
00:01:16
and um that exploration phase is essentially a an interactive feedback loop so
00:01:23
in that loop we start was trying trying something new um
00:01:28
and then we observed the feedback we get from the rolled and um
00:01:32
based on that feedback we update our internal model um so we learn
00:01:38
and then we try the next thing i'm observe new
00:01:41
feedback uh and so on and um this feedback is
00:01:47
is very important because this is essentially what enables us to learn and um we really wanted to be fast
00:01:55
um in some situations um because it's essential to our survival um
00:02:02
no one was aren't memories but more generally because only with
00:02:07
fast feedback we get a truly interactive a feedback loop
00:02:10
and that gives us a much better learning experience of
00:02:15
so what about exploring coder beta um one approach for
00:02:20
for creating this this fast feedback loop is a interactive computing
00:02:26
so interactive computing basically means we have the system which lets us um
00:02:32
right a block of code immediately returns a immediately runs that code and to inspect the
00:02:38
results and we can do that in the loop giving us this this fast feedback cycle
00:02:44
and if you think about it that definition essentially describes the rubble so
00:02:50
how many of you use of apple at least from time to time
00:02:55
okay that so that's almost hundred percent almost everyone cool um
00:03:01
so yeah the rap lettuce and an expression evaluates it immediately
00:03:06
and prints the result value and so we can do this in the loop and continuously we find things
00:03:12
huh or we can use previous results and we don't have
00:03:15
to explicitly print things because the rubble does that for us automatically
00:03:20
and this is really great for for exploring the language or or
00:03:24
or trying out things because yeah because we have this fast feedback loop
00:03:29
um but the rattle that's got to wrap all also has a few pinpoints
00:03:35
um there's um no support for for for editing multi line expressions um
00:03:43
there was no no pretty printing and limited syntax highlighting and all the completion
00:03:50
and most importantly there's no native support
00:03:53
for for loading maybe dependencies uh for
00:03:56
solving dependencies and that makes it much harder to exploring the new libraries right
00:04:03
um fortunately there's another apple implementation i'm from howie
00:04:07
i mean i'd so how many of you use them a night at least from time to time
00:04:13
okay i'd say still for fifty percent that's all that's
00:04:18
cool um so i mean i'd address many of the
00:04:22
of the issues that none of the default grapple it
00:04:24
has nicer nicer formatting and and and syntax highlighting um
00:04:30
um proper multiply next uh expression editing um but most most importantly
00:04:36
it has um support for dynamic a dependency resolution um with this um
00:04:44
import so id syntax so we can basically um import any j. v. m. library
00:04:51
and use it immediately and in the same um in the same rabble session
00:04:56
which is really cool for yeah exploring new libraries and
00:04:59
trying uh and and learning new libraries trying out new things
00:05:05
regardless of whether we use the default grapple or i mean i'd though um there
00:05:09
are some limitations that are that are inherent to the to the rapid design and um
00:05:16
this is mostly because uh the rap was optimised for for expiration
00:05:20
from scratch for for writing writing some code in seeing results fast
00:05:26
um it's it's but can cut out again is is
00:05:31
harder reading copying code um is is not not as easy
00:05:36
and that's because we have these interleaved inputs and outputs
00:05:40
and um all these refinement attends in in our history
00:05:44
and also changing all the expression can be up a bit hard we we have to find it
00:05:50
and if we have dependent expressions um we have to find them all and
00:05:54
um um and then to run by one and that can quickly become tedious
00:06:01
yeah sharing salsa difficult because we don't don't really have a system document all only the the history file
00:06:09
so because of this this focus on exploration um the observed
00:06:12
in the replicate faces are are not part of the rapid design
00:06:17
um but from learning perspective we rally to
00:06:20
start exploring um we usually need some input first
00:06:25
so what often happens is that we have something like ah like here on the screen shot so we have um
00:06:32
we have a browser window some some tutorial of for the observed face
00:06:37
and then we have a rapport window um where we have to copy the code over
00:06:41
for for the replicate phase and this is just at some overhead so can we do better
00:06:49
let's look at the captain of the rubble worksheets
00:06:54
so i'll worksheets are quite similar to the rabble but
00:06:58
we had this full editor window where we can write expressions
00:07:01
and uh when we get run or save the worksheet uh the expressions will be evaluated
00:07:06
it evaluated and um and the results are shown on the on the right hand side
00:07:13
and um yeah because we have this editor window um without the the interleaved inputs and outputs
00:07:21
i'm reading popping in and changing code um it's
00:07:23
much easier and changing is also easier because um
00:07:29
because when he'd run all the expressions are evaluated in one go
00:07:33
so in contrast to the rapid we don't have to to manually track dependent expressions
00:07:39
um the drawback is that we lose control over um uh only went to execute which expression
00:07:46
and therefore worksheets aren't aren't very well suited for
00:07:50
for longer running computations like like loading large data sets
00:07:55
um so it's also nice about them is the nice id integration
00:08:00
especially in and in the the doggy worksheets like like we see here
00:08:05
and um
00:08:07
and that they are actually back i file so we can save them put them in version control and ensure that
00:08:14
and then we also have these online worksheets with uh which make sharing in easier so
00:08:20
because they don't have the nice id integration um but it's
00:08:26
um yeah chang's really nice you can just create a link and send it to someone and
00:08:31
um they don't have to to they don't need any local set up so we have um
00:08:37
we have a scares the forty grams gala and um stella fill force coloured yes um
00:08:45
so looking at a worksheet from learning perspective um what's different compared to the rubble
00:08:51
well replication works a bit better um because it could provide worksheets
00:08:56
refilled with examples and copy and paste is also a bit easier um
00:09:03
but it's still not in a very integrated experience
00:09:06
we still have these these separate things right so
00:09:12
looking again at this this ballot for example um we
00:09:16
already have an an example code code snippet here right so
00:09:22
what is this joe wasn't just just static um what if you actually could
00:09:27
run the sink and turns out we can so if i hit control into here
00:09:33
um this will be evaluated a ride in my slides and we
00:09:37
get our double salary which three nice um but we can
00:09:42
also um at the sink so you have a real editor here
00:09:48
um so double salaries nice but
00:09:53
what about more
00:10:02
so let's give us a triple salary and now we can run the thing again and you will go more money
00:10:12
so
00:10:14
how does this work um turns out we actually need to put a note here
00:10:20
uh it's just shown as a slide show i'm using a plug in cold
00:10:24
rice and usually it looks much but it looks more like my more like this
00:10:30
which is the the classic uh jupiter interface um which lets us interact
00:10:35
with with these these notebooks of um but but what what are these notebooks
00:10:45
notebooks are interactive web based documents so their web based the run in the browser
00:10:49
the interactive we can we can added things and and and one code and we have
00:10:54
um they're made of cells with two types of cells uh one s. documentation and one is code
00:11:01
so um documentation cells are just just marked down
00:11:06
we we have all the usual marked on formatting options
00:11:10
um we can include images skilled fences um lake equations um
00:11:16
but the cool thing is that we can um added them right in the browser
00:11:21
so if i double click on this this uh will change to turn editor window
00:11:27
and i can write something here
00:11:37
and um when i had control enter again and this will be
00:11:42
the updated um you get updated rendered you and then we have
00:11:49
got cell three for it already seen one so they're basically added
00:11:52
first that lead us right right code similar to to work sheet
00:11:58
and we can of course evaluate that so let's try this again
00:12:03
and oops i we get a compile error so we get all these not the
00:12:07
error messages uh if something something is wrong and so let's just fix that tough
00:12:14
and when it began and here we go and um but we aren't restricted to single single
00:12:22
cells we can uh have any number of cells in the notebook and we can freely um um
00:12:28
makes coats else's documentation sell so here we have one talk talk sell a full by
00:12:36
but to called cells and of course we can evaluate them
00:12:40
and with black and we can even put these things side by side so displayed nice um
00:12:49
so instead of having these two separate things documentation and and and code um
00:12:56
we now have an integrated a document containing both of
00:13:02
and that's really nice for for teaching an interactive learning um
00:13:07
yeah because we have we we know have integrated all these these learning phases in one day
00:13:15
um but not books are more and so
00:13:18
they also integrates a worksheets uh with freckles
00:13:24
and uh how this works is best seen in a little demo so let's switch to another notebook
00:13:32
uh_huh
00:13:38
so
00:13:41
if we look at a single code sell 'em that base
00:13:48
mostly like a worksheet so we have multiple expressions we have
00:13:51
this editor window and um we can about it this thing
00:13:59
oh i should be able to well we had a thing i let's give it another try
00:14:09
and he we go um
00:14:13
i liken worksheets when when we had run um would always uh evaluates all all
00:14:18
cells in one go so we we don't have to track a dependent expressions manually
00:14:24
it's also persistent um but it all uh it also saves the outputs so this
00:14:31
really cool for for sharing of putting these things online uh or exporting them into
00:14:36
into the p. d. f. or something like that um
00:14:43
on the other hand there are a little bit um limited for um
00:14:48
when it comes to to id features though there's not the nice lady integration
00:14:53
and i'm also the outputs are shown below the cell by default not on the right hand side
00:15:00
but it shouldn't be too easy to actually change uh the front
00:15:04
end to to have this the side by side you in notebooks to
00:15:09
um so if you look at school cells of note because the whole mm they behave more like a rap well
00:15:16
and that's because we we can run all the cells independently
00:15:19
um which gives us better control when to run specific code
00:15:24
and also all previous um results like s. to memory
00:15:27
so if we have this this um huge data set here
00:15:34
which takes a long time to load of the if we uh would run that's in the in the worksheet
00:15:41
and um if you want to to change something here we'd have to run the whole thing
00:15:46
again which uh takes takes some time right i'm gonna not okay we can just split the cells
00:15:57
and um run them independently so we can load that data
00:16:05
and then it's cached in memory and we can uh use it in our computations and
00:16:11
a change things and it's much faster
00:16:21
not books also give us um more uh flexibility for
00:16:25
for prototyping we can we can select multiple cells and um
00:16:31
run them in one go oh we can run all cells um we
00:16:36
can move cells around so we have this a drag and drop support here
00:16:41
ah cut copy and paste uh even between different
00:16:45
notebooks a split in merchant all these convenience features
00:16:49
um that make 'em in that that make this is a good thing for for prototyping
00:16:59
yeah so
00:17:03
what about exploring data
00:17:06
with something rattle like like like this part sell here of course we can do that
00:17:12
um but because this is eternal and cuts text based it's
00:17:18
usually not not the best option to show data or or
00:17:23
the lights things so what often happens is that
00:17:28
we have these these separate things so we we render
00:17:33
um we use an external graphics system to render our our our
00:17:37
visualisation so um and have them in a in a separate window
00:17:42
and yeah so this can not not the the best the most integrated experience
00:17:48
and with notebooks on the other hand um we can do you can do a little bit better
00:17:56
so let's stay with this um this very same
00:18:00
example just said and screenshot the titanic data set
00:18:05
and run this and now we have a nice um h. t. m. l. representation of of our data nice table
00:18:12
and we can even sorta things and um so i i'd argue this if this is a much better to read um
00:18:21
and the same for visualisation so we um also have an integration for this
00:18:26
for that i guess library here and notebooks and we can just on that
00:18:32
and he we go we have our our plots um to uh in in an
00:18:40
embedded in the notebook with our code and we can share these things together um and
00:18:48
we aren't even restricted to to static images because we have a browser we have javascript
00:18:54
available um when we use the the partly
00:18:58
library we um can create these these interactive um
00:19:03
oops these interactive um plots we consumed in
00:19:08
and uh you have basically interact with the plot
00:19:13
and um i we also not restricted to data we can also
00:19:19
visualise code which is a great for for for teaching for instance so
00:19:24
hey we use the the the ref three library which lets us um visualise they distract us um
00:19:33
and we prayed a simple a simple case class here and the a list of people
00:19:39
and then we use ref three to to render under this list so let's give it a try
00:19:48
and here we go so we have um this nice structure showing uh how
00:19:54
uh how how the list of how the elements of the list are connected um
00:20:00
this this i think this is really cool example for for actually explaining these things we can we can even
00:20:06
change things in one one this again that the the update and all that just within the notebook um so
00:20:16
like with this learning example um
00:20:20
um we have with the rapport we have this this this separate use um
00:20:27
but in notebook we have um we have our output and the
00:20:33
and the source code integrated so we have our output embedded with the code that produces it
00:20:38
so it stays in the same context and i think this is really cool cool feature uh
00:20:46
so
00:20:49
what i want to next is look a little bit uh at the technologies behind this so um
00:20:59
the examples here they were all run an egyptian notebook and tip there is uh
00:21:05
there's a huge project a devoted off to
00:21:09
develop open source software open standards and services for
00:21:14
for interactive computing and um the flexible is this as the jupiter
00:21:19
notebook inflected software but there's also a huge ecosystem around this um
00:21:26
and it's not restricted to a to a single programming language so we have um
00:21:32
we have support for um python and our
00:21:36
um c. sharp and uh and it's java
00:21:41
but also functional languages like f. sharp pascal and of course um of course canada i
00:21:50
um so jupiter came out of the type item shell um i pricing is yeah basically an
00:21:59
advance interactive python shell a similar to to what we have of i mean i'd first gotta
00:22:07
and um in two thousand eleven and
00:22:10
the eye python creators um released the the
00:22:16
the i price notebook interface which is yep still pretty similar to what we what we have today
00:22:23
so we have this this documentation and rubble code and uh
00:22:29
also rich output integrated and and and just the output document
00:22:34
um
00:22:36
but then i realise that this is actually something language agnostic um so
00:22:43
with project to putter they um added support for for other
00:22:47
languages basically moving the little language agnostic part out of high python
00:22:53
and um initially the support it um actually a a hyphen and our two guitar
00:23:00
and in two thousand eighteen um they released a jupiter lap so last year um which is
00:23:07
yeah basically the next generation user interface for notebooks and more
00:23:13
so let's have a brief look at at the uh at the components of the the church
00:23:18
stacked so we have the the user interface the notebook interface um which ones in the browser um
00:23:26
and lets users interact with with notebooks and then we have the notebook
00:23:31
server which um basically sets everything up
00:23:35
communication and delivers to the u. i.
00:23:38
and also manages the the notebook files and um we also have the carl
00:23:44
uh which is responsible for actually running running our code
00:23:49
and returning results uh and they're connected through the jupiter particle
00:23:55
um which does does this loosely coupled architecture um i um and that that
00:24:02
enables to to basically develop these components independently and controls the scale and distribute things
00:24:15
so there are um the bonds of how um different fronts available so we have the the classic notebook
00:24:22
and to to lap as it's a designated successor and
00:24:26
there's also an tracked from the net flicks fox um
00:24:30
and i'm up a plug in for for the atom and interpret
00:24:34
hydrogen which is a little bit more worksheet like but with the jupiter
00:24:39
with the jupiter back and and then uh the the major ideas
00:24:44
also have some limit that i'm not support but currently it's um restricted to pipe and
00:24:51
um but i've been hearing some rumours here but um
00:24:56
there's some ideas to to actually improve this colour story here
00:25:04
yeah and then when we have kernels and they're responsible for for running running the code or um
00:25:11
or also compiling or talking to the compiler for compiled languages
00:25:16
and they don't know anything about notebook so they just get a bunch of code and um
00:25:22
and uh on that code and and return results or error messages
00:25:28
and in principle that can be implemented in any language as
00:25:31
long as they support at the typical and nowadays they're around
00:25:36
one hundred different trials available for for all kinds of languages
00:25:42
so all these examples we've seen so far they um were executed on the common colonel
00:25:50
um this actually bans of of kernels available to to girls available for scholar
00:25:55
um and most of them are based on the on the default rabble
00:26:01
i mean i'd on the other hand is spilled on top of tonight and
00:26:05
we've seen that i mean i this was um all these nice convenience features home
00:26:11
and in in town and we inherent not inherit most of these features so for instance
00:26:19
um we have dynamic dependency resolution um which uses a course here in in in the
00:26:25
background so we can import any any um j. v. m. library any maven dependency basically
00:26:33
and it's just wondered and and or no notebook so here we have the discounts library
00:26:40
and we just import bad and use it for in our
00:26:44
calculations and so this really nice um we also get the
00:26:50
and syntax highlighting pretty printing
00:26:55
and um i
00:27:00
something that was recently at it is um uh
00:27:04
also uh tonight um his other completion for um
00:27:11
for for main um dependency so this really nice if you
00:27:15
don't know what the latest version of library you can just um
00:27:21
could um it shift and and it will show you what's what's available
00:27:28
um and of course we also have um on the completion on on on regular code
00:27:33
so here we uh knows that we're mapping over string and uses all those completions oh
00:27:41
on one string of so there's another feature type things and not across integration it
00:27:50
but it is a little bit unstable and and i'm gonna try them unless it's a
00:27:57
so if i hit um shifts shift tab i hope i don't kill the colonel multiple times
00:28:07
um can you see that yeah if um this
00:28:12
will give us a nice uh type hints here so
00:28:16
some some id like features and um
00:28:20
so what can you see from this from this type and from the map function
00:28:26
anyone
00:28:30
exactly so this is uh still not to to thirteen but it's coming uh i think we
00:28:38
waiting for cats or something like that and so and we when we click on that um
00:28:45
this actually fires up amanda browse server um which lets us um
00:28:51
look at the source code on this so this really cool to yeah to to see
00:28:56
uh to see the the code of of of something of a okay so let's go back
00:29:07
are you close that
00:29:12
we can also use the the i'm not i mean i'd a. p. i. in um
00:29:16
so not everything uh make sense but for instance we could take the um
00:29:22
the history so you you basically see the three uh
00:29:29
uh latest cells we've sent uh we we we for an
00:29:33
um which is sometimes sometimes handy horror to look at at
00:29:39
the repositories of calls at at new you may even repositories here
00:29:45
and um some and also gives us an a. p. i.
00:29:48
to talk to the to the front end for the browser
00:29:52
and this is what powers um these rich outputs
00:29:57
we've seen um in in in the data exploration examples
00:30:02
so if you import the the element display a message methods on
00:30:06
on and on the display i think they're actually automatically imported um
00:30:12
we get all these these methods uh for output so we can
00:30:18
and send some h. t. m. l. or and as e. g.
00:30:24
or um load an image and don't send that to the browser
00:30:30
um i like take equations and even cellist tripped
00:30:37
um
00:30:39
but this is somewhat restricted in your front ends like jupiter lap because of um security concerns
00:30:49
and basically we can uh if the fountain supports
00:30:53
something we can we can basically send any mime
00:30:58
type and if it from the knows how to display it uh we get we get these which outputs
00:31:04
so we could also have plug ins for for other things uh and based on
00:31:09
on this we have um some ah high level which it's like a progress bar
00:31:17
and if we keep this handle here um we can also update
00:31:24
the progress bar and an later i'm like yourself so let's try this
00:31:34
so this gives us a way to get to to
00:31:37
basically show show some progress unloading data things like that oh
00:31:44
uh_huh we can also read user input um hum
00:31:51
so this just don't be um a written into into this well
00:31:58
and um i oh yeah we also have a um a nice feature um for seeing what's
00:32:05
going on when there's some crack calculation in the background so if we have this future here
00:32:11
um that that's just on this uh we can see um this animation while it's running
00:32:19
and as soon as it's finished it should actually update
00:32:23
on to get to the final value um and the same
00:32:29
we have the same for four hours so iffy up that that x. here
00:32:36
we get this this would be updated value in in in the in the output
00:32:41
yeah and we can use this uh these eight guys in in our own libraries which we
00:32:47
can then provide a notebook users so we we could depend on the on the skull acrylic guy
00:32:54
and then in in our library um um use it so we
00:32:59
we let's just let's just simulate that here in in the cell
00:33:04
so we'd have um this i implicit instance of jupiter a. p. i.
00:33:09
available um to use and we we can use that to send
00:33:14
output to the front and uh and so let's just run that here
00:33:19
and then in our library we we can uh uh sorry not not that we can just him
00:33:24
a import this this library and and use it so um i think that we can do better right
00:33:32
oh not better okay okay i like this one i
00:33:39
and so far we've most look look at this um from the learners perspective
00:33:46
but um what about teaching um so one
00:33:51
thing i hope has become clears that i'm not
00:33:55
books are nice way for actually demonstrating life
00:33:58
code in slides um but what about library documentation
00:34:07
or so of course we could just great notebooks uh from scratch
00:34:12
um but usually or a has some documentation available
00:34:16
and uh most of the time this is um
00:34:19
mark down was cut fences for the examples i um
00:34:25
and if you think about notebooks are are quite similar
00:34:27
we also have um the smart down cells and then um
00:34:31
i told cells and just that the that we can actually run that
00:34:36
and there are encoded differently so notebooks are basically it adjacent document um
00:34:43
um fortunately we have a tools like note down that led us convert um this
00:34:50
martin with code fences to notebooks and also
00:34:53
converts the decode fans the actual code cells
00:34:58
and i'm i'm currently working on something that works a little bet a little bit better with
00:35:03
uh with took over and dark um and all this modify is um but it's not finished yet
00:35:12
and and then if you had that these notebooks with the documentation on of course you want to
00:35:18
to share then let someone uh actually use them
00:35:21
um without without uh too much too much effort right
00:35:27
and this is where binder comes into play which is really cool service um
00:35:32
so basically what we can just give it a a it get people and
00:35:41
um what it does is it creates a doctor contain no with a notebook
00:35:46
server and our um our notebooks and that we pull and give suspect the link
00:35:54
and um we can and and when you click on that link we we get
00:36:00
uh i'm running notebook service are not books so this one summer in the cloud
00:36:05
that's it but it's a free service and i think we got a little bit of time so let's just try this
00:36:14
so here we have the binder website
00:36:17
and um we're using the the um and example three people
00:36:24
and um
00:36:26
just launching this thing
00:36:29
and the first time you add a a ripple over if it up they something this
00:36:34
this will build the the doctor and the doctor image but now it's already built
00:36:39
so it should be a little bit faster if the engine networks yeah looks good so
00:36:45
he uh he we have a running up big server with with jupiter lap
00:36:51
and and the the common examples and we can
00:36:54
just try them out so we can uh for instance
00:37:00
look at this colour matter tree guide
00:37:04
and
00:37:06
just want things and i think it takes a little longer here
00:37:12
because the the the resources are limited and the top has to
00:37:17
to uh compile under nite stuff first but after some time it should actually around
00:37:27
let's give it a few more seconds
00:37:29
oh yeah that it also has to download things of course because um it's not cached so
00:37:36
here we secrecy in action
00:37:41
oh
00:37:44
oh
00:37:47
and ah okay the internet is no no not around
00:37:52
so um now we can use it here and um
00:37:59
just try things are and there's also
00:38:05
um other examples like um spark
00:38:11
um so here we can see the devious park integration of
00:38:17
hum of um and an action so i encourage you to to give it a try and just
00:38:22
there's a link in the in the comment box and in the example report to on this
00:38:36
so if you're interested um there's the jupiter website um for
00:38:42
information about people in general and how to run the sings
00:38:46
and element also has a shiny website with documentation for for
00:38:50
installation and um and use it um so check it out
00:38:56
and then uh we've just seen the example three people so they can just
00:39:01
sh try try these things out without without any local settlement and get a feeling um how this works i
00:39:09
and we'd also laugh to see contributors so um we want to
00:39:14
have more librarian framework integrations um and of course more examples um
00:39:21
then there's the story of better id integration and we also need a logo so if you're
00:39:28
if you have better design skills than me i'm kind of interested just talk to to to like song
00:39:37
um or me or john added up channel um or check out the the on and people
00:39:46
so to recap we we've seen that um
00:39:51
that apples and worksheets are really great
00:39:54
tools for for exploration and rapid prototyping
00:39:59
but they don't really cover these these other learning phases and um
00:40:04
to to the notebooks with notebooks we get this
00:40:08
disintegrated to use so we have to integrate a documentation
00:40:14
uh ronald code and also which output in a
00:40:17
single document in a single in a single view um
00:40:23
and that makes them a very powerful tool for for teaching
00:40:28
and for interactive learning um but of course also forte designs and stayed expiration
00:40:35
um and element
00:40:39
yeah by combining the the power of jupiter and i'm a night i'm being said experience discover
00:40:47
so thank you very much and i still we i
00:40:52
think we still got some time for for a few questions
00:41:02
thank you um
00:41:06
uh_huh
00:41:09
thing
00:41:11
uh_huh oh yeah bye sorry uh_huh uh_huh so okay so that's all have
00:41:18
i just got a question at that i'm using element in a in
00:41:22
a teaching environment 'cause i think the problem right now that i'm ah
00:41:26
how the orgasms colour work shops and the number one problem is always
00:41:30
yeah getting to but it's but this at the moment correctly sorting um
00:41:34
element is actually quite a and that the that that solution for that but
00:41:39
what i'm thinking of is danny stuff like um solution and actually ah
00:41:45
thought the participants to have a separate sessions in say a lot but or
00:41:51
uh i mean i just using one several level unconnected one seven having their own stuff like session
00:41:57
uh yes there's actually a solution uh i didn't have that on the slides but it's called jupiter ha
00:42:04
which is basically a multiuser notebook server on
00:42:09
and has all kinds of integrations i'm still
00:42:14
you can but what what it basically does is it advance it's
00:42:18
all in a notebook server for uh for every user so they're isolated
00:42:24
and we also have a authentication um likeable
00:42:28
affected authentication and you can on that in
00:42:33
and in in the clouds um could native son and things
00:42:36
like set that so this is this might be useful solution
00:42:41
uh_huh uh so sorry so um this is something that can easily easily done so you just
00:42:46
plug kalman into this year how how yeah so this is this is basically separate because um
00:42:53
um yeah it runs the uh to jupiter server and
00:42:57
of course in that in that server you'd have to
00:43:02
you'd have to prepare a provide um almond up
00:43:05
front so you'd have to to install that there perhaps
00:43:08
provided doctor an inch or so depending on your setup with the formant installed already yeah okay awesome thank you
00:43:16
uh_huh but
00:43:19
it's an presently for that or i'm still questions first of
00:43:24
all if could you just used to using the presentation because
00:43:28
it's kind of interesting to see oh yeah um so the black and it's called a rise um
00:43:36
just go back
00:43:39
mm
00:43:42
yeah that's
00:43:48
uh_huh
00:44:07
and then when the slide was but it's called rice uh i think if you should just um
00:44:14
if you just cool it don't lose with the sun rises in the nose and we we should
00:44:22
because he's far is there some way of t. p. g.
00:44:26
'cause she did it continues you that you just to do the sparkly
00:44:33
let's stick to the u. k. e. um uh years to
00:44:38
some points of you mean if you're for instance a display a
00:44:43
table uh data frame or something like that and and then
00:44:48
you wanna page instead of having all all the data or um
00:44:53
yeah there's no oh no built in support so this but this is something
00:45:00
you you you you could create a helper function that actually um
00:45:05
allows you to to to page two things but do it depends a little bit on how
00:45:12
i'm the user experience right so if you want something where
00:45:16
you can actually paid uh the paging through a button in uh
00:45:21
like having having a and an interactive table waken page two things
00:45:25
then you'd need to to build a a which it that allows the
00:45:28
so this is a little bit more involved in the twins couldn't
00:45:31
has its dues widgets okay uh so this not not available now and
00:45:36
distill it will you recently that it should use
00:45:40
really to load 'cause of the the the trendy to
00:45:43
you could a recluse like resume look mushy right
00:45:48
yeah so if you publish it locally yeah it shot
00:45:52
i think it should pick that yeah i to pick them up so if you if you just published this uh
00:45:58
if you do and uh s. p. t. for instance to publish
00:46:01
local problems that into a local i. b. ripple that it'll just work
00:46:07
uh which is the screen you are one more question
00:46:16
if
00:46:19
um first super quick question begins to twelve when
00:46:26
okay i actually is a very good question that i actually uh that uh
00:46:34
talk to uh to h. the men maintainer of
00:46:37
this um gives the day at the the community painter
00:46:43
and he promised to do it soon but okay
00:46:46
tomorrow at uh at tried ah start yes tight on
00:46:52
so many shows on it and then shall not job like you know call python so we can basically use
00:46:58
ah all tight and stuff and then destroy a um yeah so
00:47:06
there is no uh no native support for that at the moment but there's this um library
00:47:14
from what's it called high i i forgot the name but there's this library are independent of
00:47:21
of of notebooks we can actually call a whole private firms colossal but might be an option
00:47:31
that one

Share this talk: 


Conference Program

Welcome!
June 11, 2019 · 5:03 p.m.
1575 views
A Tour of Scala 3
Martin Odersky, Professor EPFL, Co-founder Lightbend
June 11, 2019 · 5:15 p.m.
8340 views
A story of unification: from Apache Spark to MLflow
Reynold Xin, Databricks
June 12, 2019 · 9:15 a.m.
1271 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.
2233 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.
1159 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.
4697 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.
5030 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.
839 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.
736 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.
710 views
Concurrent programming in 2019: Akka, Monix or ZIO?
Adam Warski, co-founders of SoftwareMill
June 12, 2019 · 4:47 p.m.
1975 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.
6389 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.
376 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.
662 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.
682 views
Scala best practices I wish someone'd told me about
Nicolas Rinaudo, CTO of Besedo
June 13, 2019 · 3:47 p.m.
2713 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.
278 views
All the fancy things flexible dependency management can do
Alexandre Archambault, engineer at the Scala Center
June 13, 2019 · 4:46 p.m.
390 views
ScalaWebTest - integration testing made easy
Dani Rey, Unic AG
June 13, 2019 · 4:47 p.m.
468 views
Mellite: An Integrated Development Environment for Sound
Hanns Holger Rutz, Institute of Electronic Music and Acoustics (IEM), Graz
June 13, 2019 · 4:48 p.m.
213 views
Closing panel
Panel
June 13, 2019 · 5:54 p.m.
400 views

Recommended talks

Keynote: Some Mistakes We Made When Designing Implicits (And Some Things We Got Right)
Martin Odersky, Professor EPFL, Chairman Typesafe
June 14, 2019 · 9:13 a.m.
303 views