jupyter / design

Design related materials for Project Jupyter
BSD 3-Clause "New" or "Revised" License
82 stars 59 forks source link

Possible design for a multi-window Jupyter Notebook #18

Closed cameronoelsen closed 8 years ago

cameronoelsen commented 9 years ago

After checking out out the dockarea demo online (http://phosphorjs.github.io/dockarea-demo/) and talking with @ellisonbg about the where the notebook will be heading, I have mocked up an option on what the new notebook may potentially look like. I have taken some cues from material design, but have strayed away for areas where we need more complex content. Will continue to iterate based on feedback!

notebookmaterial1

ellisonbg commented 9 years ago

Great!

Can you also tab the terminals and see what it looks like with a white background?

On Wed, Sep 9, 2015 at 11:34 AM, Cameron Oelsen notifications@github.com wrote:

After checking out out the dockarea demo online ( http://phosphorjs.github.io/dockarea-demo/) and talking with @ellisonbg https://github.com/ellisonbg about the where the notebook will be heading, I have mocked up an option on what the new notebook may potentially look like. I have taken some cues from material design, but have strayed away for areas where we need more complex content. Will continue to iterate based on feedback!

[image: notebookmaterial1] https://cloud.githubusercontent.com/assets/6437976/9770666/47bed546-56e6-11e5-86ca-2383abe99760.png

— Reply to this email directly or view it on GitHub https://github.com/jupyter/design/issues/18.

Brian E. Granger Associate Professor of Physics and Data Science Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger@calpoly.edu and ellisonbg@gmail.com

cameronoelsen commented 9 years ago

terminal-white Made the terminal white and changed some grays to make windows easier to see

ellisonbg commented 9 years ago

@cameronoelsen - so how do we convince you to stick around and work with us next summer ;-)

ellisonbg commented 9 years ago

@jupyter/steeringcouncil perrtty things to look at...

rgbkrk commented 9 years ago

Love the cleaned up toolbar at the top.

I really hope the paneled/tabbed layout grows on me, because I currently don't want to work in that environment unless I can dock those separately. :wink:

ellisonbg commented 9 years ago

@rgbkrk - can you describe what you mean by "dock those separately"? What is the "those"? And the "separately"? As we start to design this stuff, there are tons of usability questions that are coming up in our heads - would love to start collecting ideas about it.

On Wed, Sep 9, 2015 at 9:14 PM, Kyle Kelley notifications@github.com wrote:

Love the cleaned up toolbar at the top.

I really hope the paneled/tabbed layout grows on me, because I currently don't want to work in that environment unless I can dock those separately. [image: :wink:]

— Reply to this email directly or view it on GitHub https://github.com/jupyter/design/issues/18#issuecomment-139111540.

Brian E. Granger Associate Professor of Physics and Data Science Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger@calpoly.edu and ellisonbg@gmail.com

rgbkrk commented 9 years ago

Can you describe what you mean by "dock those separately"? What is the "those"?

The individual panels for the notebook, terminal, etc.

As for docking I mean that I will more than hate if I can't take any of those panels and turn them into full fledged windows (browser windows in this case).

minrk commented 9 years ago

I, too, typically don't like fake windows in a single real window, but I think the design looks nice for those who want the panes. For my use, I will want to keep the notebook view as notebook-only with usually-off file drawer (c.f. TextMate, Sublime, Atom, etc.), and will only ever open terminal, text editor, etc. in new Windows. I think a popular desire will be to tear off a pane (e.g. terminal) into a dedicated window/tab.

Carreau commented 9 years ago

I, too, typically don't like fake windows in a single real window, but I think the design looks nice for those who want the panes. For my use, I will want to keep the notebook view as notebook-only with usually-off file drawer (c.f. TextMate, Sublime, Atom, etc.), and will only ever open terminal, text editor, etc. in new Windows. I think a popular desire will be to tear off a pane (e.g. terminal) into a dedicated window/tab.

+1 but that will need state to be on the server, and to actually create a new window and load the content inside.

so it will be a bit of a hack .

if we do that, we will be asked for a way to re-merge, which is more complicated...

damianavila commented 9 years ago

As for docking I mean that I will more than hate if I can't take any of those panels and turn them into full fledged windows (browser windows in this case).

I agree...

jdfreder commented 9 years ago

@cameronoelsen the design is pretty! Except the close button on the panes are ugly... I'm guessing that's temporary though..

ellisonbg commented 9 years ago

Kyle, thanks for clarifying. I completely agree!

One of the main properties of the existing notebook is that all of the top-level entities (notebooks, text, files, dirs, terminals) are addressable - that is, they have well defined URLs that show you just that entity. This feature is absolutely critical as it allows for internal and external links to these entities. Furthermore, these URLs are patterned after file-system ideas, with meaningful paths and filenames (rather than opaque uuids).

Whatever we do, we have to preserve those characteristics and that means we should be able to open/dock any addressable item in a dedicated browser window/tab. Furthermore, I think it makes sense for us to start thinking about making other things addressable in the same manner (outputs, widgets, etc.).

This will allow us to offer finer grained building blocks that can be assembled and used across a wide range of contexts. An example:

Let's say I am coding in a notebook and have a code cell + output that I want to promote to being a top level text editor+output area panels in the single page app. I should be able to do that immediately. Furthermore, I should be able to go one step further and even send you a URL to points to a single one of those things, like "hey look at this cool output at this URL" - all that should work dynamically so that as the original notebook runs code, all instances of the output get updated magically.

In my mind, the addressability of all entities lies at the heart of all this. This addressability is also likely going to be required in building the real-time stuff as well.

Cheers,

Brian

On Thu, Sep 10, 2015 at 9:35 AM, Jonathan Frederic <notifications@github.com

wrote:

@cameronoelsen https://github.com/cameronoelsen the design is pretty!

— Reply to this email directly or view it on GitHub https://github.com/jupyter/design/issues/18#issuecomment-139304066.

Brian E. Granger Associate Professor of Physics and Data Science Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger@calpoly.edu and ellisonbg@gmail.com

ebeisaac commented 8 years ago

Very much moved by the design. It's just like what I always dreamed of. @ellisonbg, how is the progress on the integration of this design in Jupyter Notebook? Is is complete?

ellisonbg commented 8 years ago

The work shown here is now in the jupyterlab repo:

https://github.com/jupyter/jupyterlab

It is far from being done, but many things do work. Most importantly you can install it in the existing notebook (see the README). But again, this is not ready for general usage. It is both feature incomplete and has many usabilty and design gaps. If you can live with that, we would love feedback!

Cheers, Brian

On Tue, Jun 7, 2016 at 10:05 PM, Ébe Isaac notifications@github.com wrote:

Very much moved by the design. It's just like what I always dreamed of. @ellisonbg https://github.com/ellisonbg, how is the progress on the integration of this design in Jupyter Notebook? Is is complete?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jupyter/design/issues/18#issuecomment-224488374, or mute the thread https://github.com/notifications/unsubscribe/AABr0OLNrM2GdwNpQvR98IGdDz3dW4eLks5qJk2SgaJpZM4F6enr .

Brian E. Granger Associate Professor of Physics and Data Science Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger@calpoly.edu and ellisonbg@gmail.com

ebeisaac commented 8 years ago

Thank you, @ellisonbg. This is great! JupyterLab feels much more flexible than Jupyter Notebook by itself. I have a couple of feedback (along with some minor bugs) I'd like to share. May I know where can I provide this feedback, Mr. Brian?

jasongrout commented 8 years ago

@ebeisaac - you can open an issue in the jupyterlab github repo. Thanks!

ebeisaac commented 8 years ago

Thank you, @jasongrout; I'll do just that.

ebeisaac commented 8 years ago

Apart from the multiple windows, I was wondering if a variable explorer is possible (like in Spyder) -- one that is sensitive to the current focused notebook. Would this be a good idea?

jasongrout commented 8 years ago

@ebeisaac - whether it's a good idea is up to the user, of course. R has one, Spyder has one, and Sage used to have one, so there's at least precedence. A variable explorer is certainly possible. We'd need to expose the currently focused document to the environment. Another option is to have a variable explorer you can open for each kernel. (We're trying to help the user distinguish between kernels and documents - and the variable explorer is really associated with the kernel)

ebeisaac commented 8 years ago

@jasongrout - I was thinking of making this as an optional feature suggest in JupyterLab, but was wondering if the idea was thought of before and not implemented for some reason. Or this there a way to open an IPython notebook in Spyder? There was a discussion about it.

jasongrout commented 8 years ago

but was wondering if the idea was thought of before and not implemented for some reason.

The idea hasn't been thought and discarded, just no one has had time to look at it.

Or this there a way to open an IPython notebook in Spyder?

I don't know. @sylvaincorlay or @blink1073 would probably know.

blink1073 commented 8 years ago

That effort has been put on the back burner.

fperez commented 8 years ago

It's worth noting that in ipywidgets, we have an example of a variable inspector built out of widgets. Turning that into a minimal plugin example might be a nice addition to the JLab tutorial, and then someone in the community could take up the banner of developing such a small prototype into a production tool. We don't have the bandwidth for that full-blown effort right now, but making a little demo plugin might be within scope for our documentation effort, and it would be with a use case that we know many people care about.

Just a suggestion...

pluviosilla commented 7 years ago

Perhaps this is orthogonal to multi-window Jupyter, but what I'd like to see is a means of creating a multi-notebook Table of Contents (TOC). Currently, we can jump to a second notebook with a Markdown link something like this:

[Pandas](Pandas.ipynb#DataFrames)

But clicking on the link a second time opens a second instance of the notebook, rendering the link useless for purposes of creating a multi-notebook TOC.

I have some huge notebooks with lots of internal links in them, and they become very sluggish as they grow. It would be very nice to be able to break them up and organize them with a separate notebook having nothing but TOC links to sections residing in different .ipynb files.

ellisonbg commented 7 years ago

John,

Thanks for your feedback. These days, we are using this repo is mostly for visual design the spans Jupyter. The issue you brough up is probably most relevant to our ongoing work on JupyterLab. Could you open an issue over there:

https://github.com/jupyterlab/jupyterlab/issues

Thanks!

Brian

On Sun, Jun 4, 2017 at 12:41 PM, John Strong notifications@github.com wrote:

Perhaps this is orthogonal to multi-window Jupyter, but what I'd like to see is a means of creating a multi-notebook Table of Contents (TOC). Currently, we can jump to a second notebook with a Markdown link something like this:

Pandas http://Pandas.ipynb#DataFrames

But clicking on the link a second time opens a second instance of the notebook, rendering the link useless for purposes of creating a multi-notebook TOC.

I have some huge notebooks with lots of internal links in them, and they become very sluggish as they grow. It would be very nice to be able to break them up and organize them with a separate notebook having nothing but links to sections residing in different .ipynb files.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/jupyter/design/issues/18#issuecomment-306062264, or mute the thread https://github.com/notifications/unsubscribe-auth/AABr0OAp3FvVIbn0kySPtBKfj41qckkXks5sAwh6gaJpZM4F6enr .

-- Brian E. Granger Associate Professor of Physics and Data Science Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger@calpoly.edu and ellisonbg@gmail.com