Bridgewater / scala-notebook

Interactive Scala REPL in a browser
Other
741 stars 155 forks source link

Question about IPython notebook. #7

Open Carreau opened 11 years ago

Carreau commented 11 years ago

Hi !

Really impressive, And I like how the interface look like ! May I ask how long it took you to do it ?

On IPython side we are moving toward allowing multiple type of kernel for the notebooks and other frontend, to avoid other languages to have to reinvent the weel and keep the pain of synchronizing the javascript and duplicating code.

Do you think it would be feasible / would you be interesting in merging this/and or making this compatible with the IPython notebook ?

Thanks !

Carreau commented 11 years ago

And, by the way, for now your notebooks are compatible with nbviewer even if syntactic coloration is still python, but it shoudln't be too hard to inspect the default language of cells to highlight as scala.

Still we will most probably make a few changes on notebook structure in the next few month. Just FYI.

MasseGuillaume commented 11 years ago

@Carreau you could submit a webjar so we can share frontend code

http://www.webjars.org/

Carreau commented 11 years ago

We are refactoring the javascript to make it more modular, and we'll have at some point the javascript/templats as aalmost.standalone. But I was also thinking of sharing the all server thing.

Our current server does not make assumption that the kernel behind is python. And we would like in the end that the user could have both python/ruby/scala/... Accessible through the same server. That would just spawn the kernel the user want to start. Le 14 mars 2013 14:07, "Guillaume Massé" notifications@github.com a écrit :

@Carreau https://github.com/Carreau you could submit a webjar so we can share frontend code

http://www.webjars.org/

— Reply to this email directly or view it on GitHubhttps://github.com/Bridgewater/scala-notebook/issues/7#issuecomment-14900957 .

KenCoder commented 11 years ago

I'd love to have a shared front-end with iPython. One feature we support in Scala Notebook is live, two-way eventing between Knockout.js and the kernel. This allows things like drop-downs that trigger back-end events, and back-end events that update the DOM. It's implemented as another web socket through the infra.

It's still an alpha feature -- can be a little flaky, but I think it has the potential to be pretty sweet. So we'd want to talk about adding support for that through the stack. We're also interested internally in having layouts other than vertical cells.

Carreau commented 11 years ago

I'd love to have a shared front-end with iPython. One feature we support in Scala Notebook is live, two-way eventing between Knockout.js and the kernel. This allows things like drop-downs that trigger back-end events, and back-end events that update the DOM. It's implemented as another web socket through the infra.

You just describe one of the feature that got us the sloan grant !

Build interactive JavaScript widgets for the IPython Notebook that enable computations and visualizations to be controlled with UI controls (sliders, buttons, etc.). IPython + flot.js

It's still an alpha feature -- can be a little flaky, but I think it has the potential to be pretty sweet. So we'd want to talk about adding support for that through the stack

Yes, we had prototype of that to in python, but we found out that there would be better API with some restructuration of internals, but that's definitively in the roadmap. We have some concern about JS injection, so right now we are move carefully on this one. We are not expert on that, and if you have any experiences, that would be great !

We're also interested internally in having layouts other than vertical cells.

I can't speak for the rest of the core team as I don't remember having a real discussion about that, but I myself played with gridster. I found that the current html/css is not ready for that because of hadrcoded vertical and horizontal flexbox. I think that the introduction of less should help to do things like

.codecell{
  .hbox()
}

And allow the notebook to be highly theme-able. We have also some request to have code/ output side by side, and I believe it would be pretty sweet.

Right now I think most of the other core-dev are at PyCon until March 21st, so they will probably not answer imediatlely, but I'll send a personal mail for them to come here.

I have to run now, but things start to look great !

Thanks !

fperez commented 11 years ago

Hi @KenCoder, we're indeed pretty swamped right now, but it's good to have these discussions. Pinging @ellisonbg, @minrk @takluyver @ivanov @bfroehle in case they want to pitch in too.

As Matthias said, a design for JS with full two-way kernel communication and callbacks is part of our roadmap. We'll be working on that full-time in the fall, but this spring our bandwidth will be mostly allocated to our notebook conversion machinery.

Of course, any progress/ideas you may have will be very useful for us to think through our own design, and we'll do our best to engage you in the meantime.

ellisonbg commented 11 years ago

I definitely want to watch where this goes...

sirinath commented 10 years ago

Any body have seen this: https://github.com/mattpap/IScala

Might be of some interest for a 3 way collaboration if it may workout.