JupyterLab: The Next-Generation Jupyter Frontend

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
thanks everyone for being here and I'm pleased to talk to you today with Chris and Ian about Jupiter lab and we are here really as ambassadors for the rest of the Jupiter lab team and project Jupiter as a whole this is a huge effort that's been going on for about two years now and has involved many people some of the key people are listed here and just want to acknowledge also the broader community that's participated in a wide range of ways in terms of figuring out what do we need to build the vision for Jupiter lab etc just a quick outline so I'm gonna begin mentioning our user experience testing that we're doing here at Jupiter con that you can participate in give a brief motivation for Jupiter lab a roadmap and then Chris and Ian are gonna come up and do the majority of the talk with a live demo so we are doing in-person user experience testing here at Jupiter con right down the hallway here in the Gramercy room and we would love your help in improving our software we have four different activities that you can participate in all day today and tomorrow you can either just drop in or there's a sign-up sheet here if you want to pick a particular time bitly jupiter con - user testing and you can do anywhere from just one activity to all four activities the different activities take between 15 minutes and 30 minutes and are covering a wide range of things from Jupiter lab to our documentation etc so please please stop by and help us out so what motivated us to begin thinking about in building Jupiter lab in the earlier talk this morning we addressed some of the challenges with the existing notebook the difficulty of maintaining it of extending it the fact that the classic notebook is written using web technology of many years ago and that that world is moving speed ahead but but from a user's perspective what's motivating Jupiter lab so the classic Jupiter notebook as you may know is about more than just notebooks at this point the Jupiter notebook in addition to having notebooks has a text editor it has an in-browser terminal it has a full-blown file browser and all of these different things are needed for doing interactive computing with data or whether you're doing data science or scientific computing or machine learning usually you want to run the computation where your your data is and that's often not on your laptop and so a lot of our users are starting to run Jupiter in a context where the data is not on their laptop they're connecting to some remote system and at that point the Jupiter notebook is your user interface not just to writing that code but to the entire system so having the file browser the terminal all these other things become really important building blocks for interactive computing and so that's really how we've come to think of these different things they're building blocks for interactive computing and the important thing is that the classic Jupiter notebook is not the only way of assembling and integrating these different building blocks for example a fantastic workflow that a lot of people love is that of our studio traditionally our studio allowed you to just edit standalone our scripts and then select blocks of our code to run them in something like a console a code console it's a different workflow it still uses the same abstractions for interactive computing of having a place to type code output etc but it's a different way of assembling those building blocks and so the original vision for Jupiter lab from the users perspective was to provide a more flexible way of working with those same building blocks and assembling them into however you need to be working with your data so Jupiter lab is those same familiar building blocks plus the following so the more flexible way of using the building blocks a modern JavaScript development environment NPM based packaging we're using typescript our underlying library that we're using for sort of the application level logic is Foster ojs we've got a clean model view separation to enable things like real-time collaboration that we'll be talking about one of the really nice benefits of typescript is that there's very cleanly separated distinctions between public and private api's and so we're working really hard to have public api's that are clean stable and as minimal as possible while still owing a lot still allowing you to do the things you need with them and the whole vision here is that yes jupiter lab out of the box ships with these default building blocks that you're familiar with but we want to enable other people to go build additional things that plug into jupiter lab and extend it in many ways and then we're also taking the chance to rethink about the the design of these building blocks both the visual design the user experience design and and modernizing that aspect of it so next is a bit of roadmap we hear a lot of questions of where's Jupiter live today when can we start using it so again we've been working on Jupiter lab for about two years now and even a little bit before that there was a lot of planning we've had 69 contributors to date and this is a little crazy a thousand and eighty two releases of our NPM packages and Python packages already that's releases not commits and this is largely due to the semi insane way that front-end development is happening now with many many NPM packages and we we have fought it and lost and so we have many NPM packages we have around 11,000 commits in the main repositories in the Jupiter lab organization this is already more commits than we have in the classic notebook so to give you a sense of the magnitude of work that's gone into Jupiter lab we're currently working through a series of pre beta releases our current release number is 0.27 which is not particularly meaningful what you're more interested in is the question when should you start to use it and it really depends on how adventurous you are here's the here's my short summary the current pre beta releases are fantastic for adventurous users and developers right I'm actually using Jupiter lab day-to-day when I'm using the notebook and it's fantastic but obviously I'm adventurous in that sense the beta release which we're hoping to come out relatively soon we will recommend it for all users so from the user perspective the beta release will essentially be like a one dot over zh n' but for developers the beta release will still be for the adventurous of you the one doto release that we're hoping to get out late 2017 we will recommend for all users and developers and the main thing we have going on here is really wanting to stabilize these api's because we will want all of you to go and build things on top of them and right now we are still breaking the api's far too often to recommend it for for general purpose development eventually our plan is to retire the classic notebook there's definitely going to be a transition period once Jupiter Labuan dot o comes out we're not going to immediately retire the notebook we know a lot of you who've built things on the classic notebook and there's going to be a transition there of everyone shifting over to Jupiter lab and so we're aware of that process and it will definitely go on for a while and so at this point i would like to introduce jupiter lab almost beta and have Chris Kohlberg come up and start to show you a live demo of where we're at today you're good oh good afternoon I think it's almost afternoon is it afternoon yet it's afternoon good afternoon so my name is Chris Kolbert I'm a Software Architect at continuum continuum analytics I'm also a co-creator of Jupiter lab and lately I've been having the honor of breaking all the rules and giving live demos on alpha software so I'm gonna continue that today and you know there's some disclaimers there hopefully everything works we're gonna we're gonna hope some of them that might not but I appreciate your patience with all of that so as Brian mentioned Jupiter lab well one of the main goals that we're trying to do with Jupiter lab is bring all of those building blocks that are in the classic notebook plus some new stuff under under one roof and so what does that mean when we say under one roof well what you're seeing here is Jupiter lab this is live this is the 0.27 release that was released 26 hours ago and so when you start it you're gonna you're gonna see this actually in fact if i refresh it when you when you first start it you're gonna see a nice little splash screen while it loads the background for a couple seconds and then I transition so this is what you see when when you start Jupiter lab and what you're presented with is the launcher screen which is basically how you can start all of these separate individual building blocks within Jupiter lab and so I can just click on this button here and you know I'll get a notebook and this is a this is a notebook like everybody is familiar with that's you know start to kernel automatically in the background I can do my regular notebook analysis sort of stuff on that we have consoles for anybody that's used to a QT console type development make sure it my Python 3 syntax right which I don't so it's a regular console so this is more of a linear type repple console that you would get and maybe the classes guide Python or QT console I can't go back and edit anything or any of that sort of stuff but it's useful to have and we'll see more how that ties into the system as we go along in this talk some of the other things we have we have text editors just like the you have the classic notebook or the you know the classic notebook text editor this is a typical code mirror editor not much has changed in this between classic notebook and what you see here we also have the same terminal experience so this is a full terminal terminal emulator so I can actually run them in it I can also exit vim in it so so that that all works nice and so so this is nice so notice I'm not in multiple browser tabs here it's it's this is just Jupiter lab but when we say we want to bring all those under one roof this isn't that great of a experience above a normal browser tab if I can only see one thing at one time and so what Brian mentioned is that something about the phosphor jazz project which I develop which I created in concert in parallel with Jupiter lab and what that serves for us is the low-level widget architecture you know widgets a very overloaded term the low level JavaScript tooling architecture that allows us to build applications like super lab and applications like Jupiter lab one of the things that it gives us is are very flexible layout system which allows me to take these tabs drag them side-by-side and I can resize them and arrange really arrange my whole environment here to look exactly how I want with almost unlimited flexibility so if you've got multiple 30-inch monitors and you want to drag all this stuff across multiple screens you can do that and you can arrange the system however it makes sense for your monitor and your workflow and so that's really what we mean by we say we want to bring all of this under one roof we don't want to constantly have two contacts which mentally between different browser tabs and interrupt interrupt our workflows clean up my screen here a little bit so one thing I want to show is over shot over here I've got file browser I'll talk about a little bit in a second but one of the ways that I can open things which you can't do as easily in the classic notebook is I can just drag and drop from my file browser onto my my page and I can open literally whatever I have in my file system that's accessible to me and so this is a reasonably complex notebook and it exists to show that notebooks are still notebooks so this is not the classic notebook we're not a framing classic notebook into Jupiter lab here this is a brand new implementation of the ipython notebook uses the same protocols under the covers uses the same notebook format an important thing to point out is that Jupiter lab is not a reimplementation or a new implementation of the notebook format or any of the protocols or any of that kind of stuff it's just a new front end that exists on top of all of that existing architecture but what this new implementation is allowed us to do is more flexibly implement some of the features that lots of people have been asking for for example I can expand and collapse cells which we haven't been able to do in the classic notebook I can also drag and drop cells move them around my notebook one of the other things I can do is now that we have this flexible doc panel arrangement system I can actually drag and drop cells between notebooks so if you have some notebooks that are just scratched pads of stuff and you want to start dragging and dropping to build up more complex workflows more complex notebooks we can now do that one of the features that that landed just last night or just in the 27 release if I right-click on this I can actually get a new view into the same notebook so this is a view that's actually that's a bug it opened up on the wrong one so live software so let's try that one more time new view into file here there we go this one worked so I get a new view into the same notebook I can drag them side-by-side and if I've got a really large notebook like this is and I need to scroll down to the bottom of it to do work in one part of the notebook whilst a scrolled up to do view in the different part of the document I can do that so anybody that's used to the workflow and like sublime text or your editor where you've got to huge a document two of them side-by-side I do that all the time so we have that in Jupiter lab now so some of the other things some of the other features that are in the classic notebook experience that it made its way over to Jupiter lab but in a different form of the UI one of them is this file browser that I kind of been dragging and dropping stuff around before so this is also bread come Britt bread crumbs based like in the classic notebook except it just exists in the sidebar tab that I can expand and collapse depending on you know how much space I want it to take up on my screen all of that's resizable you can you know navigate your filesystem just like you would in a regular in a regular file browser so that should be you know pretty pretty familiar to most people another thing that we have that now exists in the classic notebook but again in a different UI form is a command palette ours exists in a side side panel now so it's searchable and filterable it's fuzzy search so basically any any command that you might want to execute for all the different plugins that are existing in Jupiter lab will show up in this fuzzy searchable command palette which if you don't know what you're looking for can't be a lot faster than trying to hunt for it in one of these top-level menus okay let's see so now one of the things that Jupiter lab is intended to do when we're talking about bringing everything under one roof it wouldn't be that great if all we could do was you know see multiple things simultaneously and working them independently I mean that's good but it's not great one of the things that would make it great is if we can get those things to communicate with each other across the different UI views of the same data models and one way that we can do that is with our support for markdown now typically the data scientist we like to write a lot of markdown code whether you're doing it in the actual notebook whether you're doing in a readme file you're trying to build the narrative around the project that you're doing and around your data and a typical workflow for that might you might be right your markdown and hit compile and then open it up in another tab of your browser see what it looks like rinse and repeat it's a very laborious way of writing markdown because it takes a long time what we can do in Jupiter lab is I can open a new view into this markdown file and I can open it with a markdown preview and I can set these two things right next to each other and now as i write my markdown code if I can type live as I write my markdown code my live preview updates and the reason that it does this is because at the core fundamental architecture of Jupiter lab we've separated our views from our models so I've only got one model of that markdown document loaded in memory and I've got multiple views that are pointing into that that transformed that data into whatever representation I want to see it on the screen now this is really cool so I can write my bark down that's a lot faster to do it you know I can see what it's going to look like as I'm doing it one of the other advantages that we had to this is I can actually create a console attached to my text editor now and I'm gonna run it with Python 3 and you know you put it over here so I can see it and now all these blocks of code and markdown that typically you'd have to copy and paste into another runtime to figure out if they're gonna execute it or not I can just put my cursor in these blocks of code hit shift enter and I'll send that code to the console and it'll run and it'll make sure that my code actually runs correctly before I ever save and commit my markdown files and so that's the kind of interaction and the linking between the datas and our views and the transformations between models and views that that's really what we're talking about we're saying bringing all of this under under one roof so it's not just how we're gonna lay it on our page but it's how these various components can now communicate with each other in the same environment so one of the other things that we have on this in terms of trying to make your workflow a bit easier this type of multiple multi pane panel layout that's really cool cuz I can see a lot of stuff at one time but sometimes I want to see just what I'm working on like right now like all I really care about is what's in this console and I might want to have that take up you know more more real estate on my screen and I can kind of do that manually by starting to you know collapse some stuff down but that's a little bit of a manual laborious process and so let me go back to how it was before what we've added in Jupiter lab is what we call single document mode so if I'm in a tab that's focused I can hit command shift enter and go into single document mode which blows that thing up that I care about to full script more or less full screen you know if I close my my file down here now or more or less full screen but it's it's kind of like what I'm focused on at the moment and so I can do what I care about and see you have all my real estate look at my big box maybe interact with some widgets and when I'm done with that I hit command shift enter again and it takes me back to where I was so we're really trying to add the features that allow you as a data science developer when you're interactively working with stuff to work on what you care about and how you care about it in the ways that you want to do it pick up some more my screen here so now I want to talk a little bit about some of the other support for different file types that we have here so I've got kind of a demo directory set up here and it's got some stuff in it that you might find in your regular workflow so you know we have some images and I can drag and drop I can see an image or image viewer you can zoom + - reset so you know p.m. G's gifts gifs however you say it JPEGs whatever you want all those are supported so standard browser format images we have those we have support for geo JSON so if you've got geo JSON files this just brought users leaflet to show that immediately what else do we have so you got support for Vega light so I can bring a big a light file in here and what I like to point out with the Vega light so Vega light is just a JSON format right it's just a plot rendering based on some JSON data so that means we can actually look at the underlying JSON data at the same time so I'm going to open up a JSON editor here and I want to use these side-by-side and so now I can actually interactively introspect the content of that Vega light plot because we've got a little interactive JSON viewer but at the same time since all of these are actually viewing just the same underlying data model I can actually open up that JSON file the Vega light JSON file in an editor and I can actually go down here and change this point mark to circle and in just a couple seconds my plot will refresh because again these are all live linked views to the same underlying data models so it's not like we special cased markdown files and said okay we're gonna have live marked on preview and whenever you whenever you add in a markdown file we'll make sure we update all abuse this works for any file you write a viewer for in Jupiter lab like it's something you get for free it's not and the people that wrote the viewers for these there's no extra code they had to write you just write a viewer as if it's just a viewer and our architecture under the covers takes care of making sure everything is synchronized so you get that for free one of the other things we we use a lot in data science or our CSV files see if I can come out of full screen here but what about really big CSV files so on my desktop here I've got big CSV it's about a 200 megabyte CSV file and we might just double-click it and try to open an excel now I've done this before this is going to take a while and so I'm gonna let it run but in the meantime I'm going to open up a different file on my system here in Jupiter lab called small CSV and small is relative it's about twelve thousand twelve thousand rows but it opened instantly and if he tried to do this in the classic notebook it would take about 45 seconds they need to end up with a table that has pagers and you page through a thousand rows at a time and every time you hit a page it takes a couple seconds to load the next few thousand rows and the new CSV grid viewer widget that's still in development so this is still pre-alpha but it's just butter smooth and I can I can scroll through all twelve thousand rows of this all the columns are interactively resizable and there's absolutely no lag between loading the data and viewing your data so I think Excel is has done something it says file not loaded completely alright so let's see what it gave us so I think this is 1.2 million rows it didn't load all of them because it exceeded excels capacity but as I scroll through this it's really janky like I like I would I wouldn't work with this because it's awful but so let's try opening this in in Jupiter lab so this is transferring to our megabytes across the network CSV file and then parsing it and then throwing in a data grid so it's going to take a couple seconds Excel took a couple minutes but it loads in about eight or nine seconds and this is and this is all 1.2 million rows and there's no perceptible lag when I scroll through this now some of you might say like 1.2 million rows that's not that big I've got bigger data sets than that so I have what I call to keep me honest example and this actually exists as an example on foster Genesis page so the grid itself is a phosphor JS component and what I have here I've got you know five different grids some of them have streaming rows some of them have ticking data some of them are all highlighted based on data values let's try not to change page here some of them are highlighted based on their their data values but the one in the top left corner is actually a 1 trillion row by 1 trillion column data set and I could scroll through that in real time - and I can also interactively resize the rows and columns with trillion row datasets so again this this grid widgets in development we still need to add things like selections and editing and some other stuff standard features that you'd want from an interactive grid but the read-only side of showing big data is there and the rendering pipeline and the performance is there so just more work to do but we'll eventually get there so what I want to wrap up with here in terms of this feature demonstration everything that I've demoed today from the terminals to the consoles to the notebooks to the grid viewers to the Geo JSON to the JSON viewers to the vago Lite they're all implemented as extensions to Jupiter lab that are no more or less privileged than the extensions you would write yourself we're using the same API is the same plug-in architecture everything that you would want to do to write the extensions for your workflow or customize your UI's or your views like if you we can do it like we use that same API so really this guy is literally the limit and one of the most promising extensions that we have actually working in development right now ian's going to come up and demo for us and it's talking about real time collaboration with in super lab [Applause] is this working okay so one of the most commonly requested features for jupiter notebooks is better support for all kinds of collaboration as scientists we like to collaborate and notebooks have not always had the cleanest story for that for for collaboration and collaboration can exist on many timescales that you know ranging from emailing things back and forth to things that are more familiar to developers like us like get based workflows to things that happen in real time and i'm going to be focusing on real time collaboration i will note in passing that brian has some students who are working on a git plugin for jupiter lab which is still in early development but is looking very promising so keep your eyes peeled for that if you like get based workflows but for now I'm going to be pointing your attention to this tab at the side here this is a third-party extension that I've been working on for Jupiter lab which it gives integration with Google Drive so you can upload your files to Google Drive access them from anywhere but what it also provides is integration with Google drive's real time capabilities these are the things that power Google Docs that you that presumably many people have seen and collaborated with on with colleagues so central to most collaboration workflows is the idea of resolving conflicts and that sounds like a bit of a sociological statement but and it is but but it's also a technical problem if two people are editing the same document you're gonna run into conflicts you know you're going to need some way of resolving those now with uh with get frequently you resolve those manually in a real-time context it's much more difficult because manually manually resolving conflicts while more than one person is in the same document is going to be such a pain that you're pretty much never going to want to do it if the typing experience is so you're always having to resolve conflicts nobody's going to want to use the tool so one of the reasons that we're starting out using Google Drive is that it provides a it provides an API for resolving these conflicts and that winds up being a good place for us to start in terms of doing real-time collaboration so I'm going to start off by opening an example markdown file which hopefully so you can see right right that was this yeah yes I can try to enlarge the font if I can exit full-screen mode shift-command enter now that's single document there we go okay so this is the this is the same split screen that that Krista demoed a moment ago but right now I'm not doing any of the editing so my hands are up but we can see that we can see that Brian and Chris are both editing this document if I hover over this caret you can see Brian's name shows up and there's Chris and they're you know I guess adding various things that we did not plan to have planned ahead of time okay so this is cool but you're presumably not here only for markdown files you're also here to look at notebooks so I'm also going to open a demo notebook that we set it for this equation just for some context what happened here what was that yeah but thanks thanks was that Paul okay so just for some context this notebook is a as a demo notebook I set up that solves the one-dimensional heat equation this is the equation that prompted Fourier to invent Fourier analysis so we you know I'm not going to really talk about what it does except to say that it you set up you give it some initial conditions and watch heat flow away from your initial conditions so if I run this notebook oh that's funny that that equation doesn't really look right that's that's not the equation for the 1d heat equation that's the equation for the quadratic formula okay so what I've done here is I've opened up the the chat box that we've set up for this and Brian has hopefully given me the correct equation so the neat thing about this chat box is that this is these are markdown cells so I can actually click and drag them into the notebook and now I have the right equation and now we'll delete this incorrect one okay so so now I'm gonna try to run this notebook so I'm stepping through running these cells and I'll run this last one okay so this gave me an error because it turns out that Brian's laptop doesn't actually have the libraries installed that I wanted so hope so thankfully Brian just reran it on my laptop which is sitting right there which gave the which ran the simulation made an HTML video pushed that video across the network and showed up right here without me having to run it on this machine so this is let's see and the same thing you saw previously in the markdown file is the case here there are cursors that we can see moving around and editing text so for instance we could change the initial conditions to something else and Cincy it live update there we go in any event so I would note that what we saw here was two different laptops that were running two different kernels and that was why we wound up seeing you know a different set of libraries installed this is one of the things that makes a real-time collaboration in a notebook setting different from just a plain document setting where there's actually live computation involved in there are different models we're talking about for how to actually handle this ranging for something like this where you actually do have multiple kernels and people have can have different types of execution results two more shared kernel environments and sort of hybrid hybrid approaches so this is this is all very much a work in progress and we're trying to still hammer out the best ways that are the ways that are most useful to people so we're interested in feedback we're interested in people to play we're interested in people playing with this and letting us know what they think and with that I think I'll invite Brian and Chris back up here and we can field questions [Applause] [Music] so so the question was if we had plan upon having the real-time collaboration available at the first beta beta release its available now for experimentation I would say it's lagging a little behind Jupiter lab in terms of recommended for general usage and I would recommend it more for experimentation right now [Music] yeah it requires you to log in through your Google account yes [Music] so we have support so the question is we talked a lot about markdown and moreless what about restructured text and so they're there so there's two different languages essentially for creating a documents restructure text is much more complicated than markdown so markdown is really handy for things like where you want to annotate some cells in a notebook or write some readme files where you don't need a lot of complex cross linking or other other post-processing of documents writing a Jupiter super lab extension that supported restructured text is immediately like you could do that today so there aren't any immediate plans for us to do that as part of core the core Jupiter lab team but that's definitely something that could be community driven so another answer to that that we didn't show in the recent release Ian added a PDF viewer that's within the doc panel and so what what this opens the door for is other input formats lot tack restructured text that can generate PDF files for us to begin building workflows that involve those other formats and can render the appropriate format such as PDF or HTML but again the important thing is all the infrastructure of real-time collaboration of the modelview separation all still works with those other formats so that's shouldn't be hard for us or some of you to implement the TS so the question is what if you're using Jupiter lab and something doesn't work and you want to go to the classic notebook what what can you do at that point and the answer is in the help menu we have a launch classic notebook that Chris is showing right now that will launch the classic notebook and it's not showing the treeview here because I'm running a version of the classic notebook that has a bug a dev version but that's an issue a bug with the classic notebook that we've fixed in the release version of it so go to help launch classic notebook and you've got everything that you have been using so far great question thanks yeah so the question is can we talk about the git plugin so this summer we've had some interns at Cal Poly and one of the teams of interns has been building a git plugin it consists both of a server extension that exposes a REST API to sort of common git commands and then a user interface that appears in the Left panel that basically are our target audience there is beginner-to-intermediate get users trying to simplify the the daily aspects of working with git so we're thinking very carefully about how to encode to get abstractions with good visual encoding giving you access to sort of the type of information that you get from git status and get logged but with a very nice carefully thought through and designed user interface and so that we're getting close to having a release ready of that it's not not out yet but it's going to be basically a Python package that has the notebook server extension and then a standard Jupiter lab extension for the user interface and and we'd love feedback about that as well the answer is yes for further camera steve demoed trooper lab with jupiter hub yesterday during the live tutorial I think Aaron give a question [Music] so those two should be linked since they're gonna have a common object on the server where you talking about cheaper widgets so those two will reflect the same state they both notebooks so the question is if you have multiple views into the same file how does how does state sharing between jupiter widgets in those multiple notebooks how has that taken care of and if somebody in the audience might correct me if i'm wrong about this but if I understand correctly all of this state that's necessary to recreate the UI for a particular widget is share is actually lives on the server as well as on the front-end and so when one widget changes the state changes his own state that state is shipped to the server which will have which will make its modification and then broadcast those same updates back to any listening views so then the other view that is displaying the equivalent front-end widget for that back-end server object will have the same state yes decent ground over on the right I can see him smiling and thinking about this it in principle what what we're saying should be the case I think Jason is Wiley hedging a little bit [Music] okay so for the second one I'll come find you afterwards and we'll get it working and then for the first one it's important to note that the The Notebook document format is the same for the classic notebook and for Jupiler lab and so the the rendering capabilities that github has should be maintained [Music] yes so that's it that's a really good question so so the question is what about classic notebook extensions and do they run in Jaipur lab so I know Brian mentioned the previous talk I don't know if he touched on it in this talk but historically the the the JavaScript API is there the structure of the DOM and the CSS classes that exist in classic notebook kind of became a de-facto public API but they were never intended as a public API and since they were never intended as a public API it makes extending and modifications and enhancing the features of the classic notebook very difficult that's one of the reasons we wrote Jupiter lab and rewrote the notebook in the process of that is because like we were basically our hands were hands were tied in terms of what we can do with the classic notebook so the answer to the direct answer that question is that it depends on the complexity of the extension for extensions that are basically just using the the notebook cell as a host for content that's managed by another library those are those will be very easy to almost trivial support because all you need is a host node and everything else is kind of its kind of like separation boundary there but for extensions that are using jQuery to look up particular parts of the notebook in particular nodes that exist in a Cell based on class ain't none of that's going to work because all of that has changed so the Dom structure itself has changed and now explicitly our Dom structure is now not a public API and that's enforced with our extension system and with typescript so we give you the API is that you need to put any content that you want in the right place that's completely independent of our Dom structure and CSS classes and all of that so so the answer is that it really it really depends on the extension so actually everything that you see in this jupiter lab is an extension so though that menu bar was populated by extensions into jupiter left absolutely you could you could you could you can add to the menu bar you can add to context menus you can add to the command palette you can add your own stuff to the side bars you can add your own document renderers like that everything that you saw in the demo today is an extension no I would say not four not four beta so we're calling beta as a 1 dot o for users so as a user of Jupiter lab we're not we're gonna make sure that the experience that you get would you feel a beta it doesn't doesn't change as it can as a keyboard user as a developer we just need a little we need till the end of 2017 to settle things down if you have if you can tolerate that level of turn go for it but but it is even we have trouble of just updating our own extensions right now I guess we're out of time we will be around the particular finest at the Jupiter booth thank you very much [Applause] [Music]
Info
Channel: O'Reilly
Views: 38,538
Rating: undefined out of 5
Keywords: O'Reilly Media (Publisher), O'Reilly, OReilly, OReilly Media
Id: w7jq4XgwLJQ
Channel Id: undefined
Length: 42min 42sec (2562 seconds)
Published: Thu Nov 09 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.