These are chat archives for ipython/ipython

24th
Feb 2015
Jessica B. Hamrick
@jhamrick
Feb 24 2015 17:56
Is there a meeting today?
Matthias Bussonnier
@Carreau
Feb 24 2015 17:56
I guess.
I'm almost ready.
Not much to talk about though.
Jessica B. Hamrick
@jhamrick
Feb 24 2015 17:57
Hah! Nice
Matthias Bussonnier
@Carreau
Feb 24 2015 17:58
How are you BTW ?
Jetlagged still ?
Jessica B. Hamrick
@jhamrick
Feb 24 2015 17:58
Pretty good, super busy as always :)
No, not jetlagged anymore
Min RK
@minrk
Feb 24 2015 17:59
shall I start the meeting?
Jonathan Frederic
@jdfreder
Feb 24 2015 18:00
Sure
Matthias Bussonnier
@Carreau
Feb 24 2015 18:00
depends, Where are you? BAck in Berkeley ?
Min RK
@minrk
Feb 24 2015 18:00
I'm at my house
Matthias Bussonnier
@Carreau
Feb 24 2015 18:00
ok
Min RK
@minrk
Feb 24 2015 18:00
If you are on campus, maybe you should start?
Matthias Bussonnier
@Carreau
Feb 24 2015 18:00
Are you jetlagged ?
Min RK
@minrk
Feb 24 2015 18:00
My internet's good, though
No
I've been home for 12 hours! Plenty of time to recover.
Matthias Bussonnier
@Carreau
Feb 24 2015 18:01
You have the IPython account, lets continue with that.
Min RK
@minrk
Feb 24 2015 18:01
ok
Jonathan Frederic
@jdfreder
Feb 24 2015 18:01
God internet!
Min RK
@minrk
Feb 24 2015 18:01
ha
Jonathan Frederic
@jdfreder
Feb 24 2015 18:01
:)
Jessica B. Hamrick
@jhamrick
Feb 24 2015 18:01
Haha
Min RK
@minrk
Feb 24 2015 18:01
no, not quite God.
Damian Avila
@damianavila
Feb 24 2015 18:01
jaja
@ellisonbg meeting this morning?
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:11
are you guys streaming on youtube?
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:11
thx
Jason Grout
@jasongrout
Feb 24 2015 18:16
3.0 is perfect? Yay!
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:17
totally absolutely no async :horse: and :rabbit:
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:27
everyone is echoing
except Fernando
Jason Grout
@jasongrout
Feb 24 2015 18:31
we can give an "advanced widget building" tutorial, especially covering changes in widgets from 2.x to 3.x
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:42
The async treatment of comm messages targeted to different comm instances on the js side causes race condition bugs
widget1.attr1 = ...
widget2.attr2 = ...
the js change handler of widget2.attr2 may require data from widget1, that is not yet processes
I guess a correction of this bug does not qualify for 3.0?
Jason Grout
@jasongrout
Feb 24 2015 18:46
where is the realtime work going on? Is it pushed somewhere?
I'd like to follow it
Kester - is this evaluating React for the whole UI?
Don't forget the experiments with Chris Colbert's phosphor ui stuff too.
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:50
Yeah, Chris is also working with virtual doms.
Jason Grout
@jasongrout
Feb 24 2015 18:51
Actually, it might be good if we got together with @KesterTong to talk about phosphorjs too.
@SylvainCorlay - I'm not sure anyone is hearing us
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 18:53
yeah it seems that we are in the talking to the wind.
:scream:
@fperez the octave kernel works really well
Matthias Bussonnier
@Carreau
Feb 24 2015 19:02
@jhamrick can you join back ?
Jessica B. Hamrick
@jhamrick
Feb 24 2015 19:05
@takluyver re your question in the hackpad, I think @ellisonbg actually extended the nbgrader extension to do grading in cell toolbars
He said that worked pretty well
Thomas Kluyver
@takluyver
Feb 24 2015 19:07
cool. And I guess you could use save hooks to record the scores to the database
Jessica B. Hamrick
@jhamrick
Feb 24 2015 19:07
That’s a great idea
Jason Grout
@jasongrout
Feb 24 2015 19:55
@minrk - is there documentation somewhere for what is in the ContentsManager file model?
Jonathan Frederic
@jdfreder
Feb 24 2015 19:55
@Sylvaincorlay @jasongrout I hear you! I think the react.js stuff would sit below phosphor.
Jason Grout
@jasongrout
Feb 24 2015 19:55
(i.e., documentation for the /api/contents/* rest service)
@jdfreder - it might. we should definitely discuss it
Jonathan Frederic
@jdfreder
Feb 24 2015 19:56
Afaik phosphor is still a to-investigate technology which the whole team is excited about.
Jason Grout
@jasongrout
Feb 24 2015 19:56
I'm working right now on seeing how the notebook and phosphor can integrate...
Jonathan Frederic
@jdfreder
Feb 24 2015 19:57
oh awesome!
Keep in mind things will probably change violently with the repo split...
Jason Grout
@jasongrout
Feb 24 2015 19:58
of course.
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 19:58
That is why I hope a lot of our stuff that were hanging because of the release will get in before the split
Jonathan Frederic
@jdfreder
Feb 24 2015 19:59
(And that the repo split is the next big thing in the agenda)
Jason Grout
@jasongrout
Feb 24 2015 19:59
but if we build to APIs, those should stay the same. Hence my question about the ContentsManager REST API
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 19:59
especially for things requiring things in both widgets and traitlets for example
will be much more difficult after the split
S. Chris Colbert
@sccolbert
Feb 24 2015 19:59
hay guys!
Jason Grout
@jasongrout
Feb 24 2015 20:00
hey Chris
S. Chris Colbert
@sccolbert
Feb 24 2015 20:00
Jon, are you aware of the new virtual DOM implementation in Phosphor?
it's like a mini-react
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 20:01
react-ts
Jonathan Frederic
@jdfreder
Feb 24 2015 20:01
Hey Chris, no I wasn't. I'll take a look (I'm walking to a desk now).
Jason Grout
@jasongrout
Feb 24 2015 20:01
@sccolbert - I think it would be good if you and @KesterTong and @Carreau talked about things like react, etc. I think it's @KesterTong that was especially thinking of exploring react.
S. Chris Colbert
@sccolbert
Feb 24 2015 20:03
@jdfreder - here's another example showing how virtual DOM (components) integrates with the rest of Phosphor (widgets): https://github.com/phosphorjs/phosphor-ui/blob/master/examples/image/index.ts
the idea is to do the heavy application layout lifting using phosphor widgets - and generate the leaf content with components
of course neither of those things are coupled, and you could use phosphor components for everything
if you wanted to
you could probably make the case to break the virtual dom stuff out into its own project
Jonathan Frederic
@jdfreder
Feb 24 2015 20:05
Yeah, @kestertong and @carreau will be working on the real-time collab. which is really what is raising the topic now.
S. Chris Colbert
@sccolbert
Feb 24 2015 20:08
I see
Jason Grout
@jasongrout
Feb 24 2015 20:08
I've thought a lot about the realtime stuff - is their stuff somewhere we can see it?
S. Chris Colbert
@sccolbert
Feb 24 2015 20:08
if anyone is curious about the differences betwen phosphor and react wrt to virtual dom, just ask
Jonathan Frederic
@jdfreder
Feb 24 2015 20:09
Ok, I'm at a desk now. Looking at the examples...
Jason Grout
@jasongrout
Feb 24 2015 20:09
has @KesterTong heard about phosphor? I don't think he was in on the dev meeting where Chris showed it.
Jonathan Frederic
@jdfreder
Feb 24 2015 20:10
@sccolbert why did you decide against using react?
Jason Grout
@jasongrout
Feb 24 2015 20:10
@jdfreder -brace yourself - phosphor is now written in TypeScript :)
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 20:10
react-ts
Jonathan Frederic
@jdfreder
Feb 24 2015 20:10
Ah!
now I understand @SylvainCorlay 's comment
Jason Grout
@jasongrout
Feb 24 2015 20:10
(which compiles to javascript, of course, so you don't need typescript to use it)
Jonathan Frederic
@jdfreder
Feb 24 2015 20:10
I was aware that it was written in typescript
S. Chris Colbert
@sccolbert
Feb 24 2015 20:10
a few reasons: 1) react is relatively large, 2) its not strongly typed, 3) i disagree with one of it's decisions about modelling the problem
Sylvain Corlay
@SylvainCorlay
Feb 24 2015 20:11
I am misunderstood in general
S. Chris Colbert
@sccolbert
Feb 24 2015 20:11
you can construct scenarios in React which result where the relationship between DOM node and component is many:1 instead of 1:1
i'm also not convinced a virtual event system is necessary
s/many:1/1:many
Jonathan Frederic
@jdfreder
Feb 24 2015 20:13
Ah
S. Chris Colbert
@sccolbert
Feb 24 2015 20:14
also, until React 0.13 (which isn't out yet), integrating react with typescript was prohibitively diffucult
the 0.13 branch has a ton of changes, and not all the issues are ironed out yet.
so, I just wrote my own
Jonathan Frederic
@jdfreder
Feb 24 2015 20:17
When .13 is released, how difficult would it phosphor on top of react (proxying react's models -> phosphor's models)?
Or is it a Phosphor OR React, never both situation?
S. Chris Colbert
@sccolbert
Feb 24 2015 20:17
If you wanted to use React with phosphor, it would be trivial
no reason to proxy, just use react
one sec i'll link
Jonathan Frederic
@jdfreder
Feb 24 2015 20:18
Just wondering, because if they do prototype using react, and the phosphor work is done later, I want to understand how much work we're looking at.
S. Chris Colbert
@sccolbert
Feb 24 2015 20:18
You would just need to write a widget which hosts a react component, similar to how I've done here: https://github.com/phosphorjs/phosphor-ui/blob/master/src/elementhost.ts
Ah, that case would be harder because the event and lifecycle models are different
In React the node returned from render is the DOM node which backs the component. In phosphor, the component node is created during construction and the render method populates that node.
I mean, the two aren't entire alien to each other
and porting would be straight forward, but it wouldn't be for free
The simplest would be to just host the react component in a phosphor widget
Jonathan Frederic
@jdfreder
Feb 24 2015 20:21
Ok
S. Chris Colbert
@sccolbert
Feb 24 2015 20:22
In reality though, if you are talking about using React to render the notebook, the entire point may be m00t
S. Chris Colbert
@sccolbert
Feb 24 2015 20:23
my intent is to treat the entire notebook as a unit
and write a Phophor widget which hosts a notebook
s/m00t/moot
Jonathan Frederic
@jdfreder
Feb 24 2015 20:23
m00t's okay ;)
Jason Grout
@jasongrout
Feb 24 2015 20:23
@minrk: ah, thanks. I was browsing the code. It would be great to have a link to the wiki page from the code...
Jonathan Frederic
@jdfreder
Feb 24 2015 20:26
So @sccolbert you're thinking about a single notebook model, and single notebook view? As opposed to a model/view per cell. I think @Carreau and @KesterTong are heading in the same direction. They just need a better way to separate the model/view of the notebook in the front-end, so the model can be synchronized across multiple machines appropriately.
S. Chris Colbert
@sccolbert
Feb 24 2015 20:29
@jdfreder I'm thinking at one level higher of generalization from the POV of embedding a notebook (or many notebooks) in a larger application. For that case, it doesn't matter how the model/view separation is done, I'll still treat "a notebook" as an entity for purposes of adding one to a larger application.
wrt to your point however, my intuition is to have a single notebook model/view as opposed to a per-cell thing
Jonathan Frederic
@jdfreder
Feb 24 2015 20:30
Ah yes
S. Chris Colbert
@sccolbert
Feb 24 2015 20:30
i'd like the ability to tease appart some of the dressing (toolbars etc.) of a notebook however
Jonathan Frederic
@jdfreder
Feb 24 2015 20:34
Yeah, the problem they are tackling is similar to the problem @jasongrout and I tackled with the widgets, but they also need to know who modified the state. I was talking to @Carreau about it at Strata and it seems like eventually, in the distant future, IPython widgets and their work could slowly become one... It's a little more complicated than that though, because the widget state sits in the kernel, and this 'notebook' state would sit in the webserver.
But still from the front-end's perspective, similar.
Jason Grout
@jasongrout
Feb 24 2015 20:35
interesting. I took the other approach - I wanted to work on real-time syncing, but decided it would be easier to get it working for widgets first. That's why I worked on the custom serializer stuff
Jonathan Frederic
@jdfreder
Feb 24 2015 20:36
@jasongrout that's something I wanted to try to do, rewrite the notebook using IPython widgets as they are. :)
(as a personal project though)
Jason Grout
@jasongrout
Feb 24 2015 20:39
Oh, I wasn't going that far
S. Chris Colbert
@sccolbert
Feb 24 2015 20:51
@jdfreder do you think Poster will be ready for prime-time in the near future?
Jonathan Frederic
@jdfreder
Feb 24 2015 20:53
@sccolbert yeah, I'm aiming to have something release worthy by May 1st. At least, that's the milestone I've set for myself.
S. Chris Colbert
@sccolbert
Feb 24 2015 20:53
nice
Jonathan Frederic
@jdfreder
Feb 24 2015 20:54
Integration with the IPython notebook is another question though, which won't be a good idea technically with the first release.
Jason Grout
@jasongrout
Feb 24 2015 20:54
do you have an in-progress demo anywhere?
Jonathan Frederic
@jdfreder
Feb 24 2015 20:55
Yup, I haven't advertised it yet though, but it's here: http://jdfreder.github.io/poster/
I manually push my progress to the gh-pages branch (which updates that page) every now and then.
@sccolbert I don't know if you saw, but I did finally get around to implementing partial layer compositing.
:P
Wrt to IPython notebook integration, I'll need to add support for resizing based on the height of the contents which opens another can of worms about the canvases. I'll need to be smart about not creating canvases larger than the screen and not updating Poster instances that are off screen.
Jason Grout
@jasongrout
Feb 24 2015 20:59
how do you do the syntax highlighting? regex-based?
Jonathan Frederic
@jdfreder
Feb 24 2015 20:59
prism.js
I allow for regions of text to be "tagged" in Poster with arbitrary key/value data.
The prism.js based highlighter tags the text using the "syntax" key.
Jason Grout
@jasongrout
Feb 24 2015 21:00
interesting
Jonathan Frederic
@jdfreder
Feb 24 2015 21:01
A lot of my work last weekend was optimizing the tagging.
It's challenging to store the tags without using too much memory, being able to fetch them quickly, and managing what happens on overwrite.
@jasongrout but yeah, I think prims.js uses regular expressions.
Jason Grout
@jasongrout
Feb 24 2015 21:05
okay
S. Chris Colbert
@sccolbert
Feb 24 2015 21:21
@jdfreder saw that! have yet to saw "awesome"
but now i have :)
Cedric GESTES
@cgestes
Feb 24 2015 22:11
@sccolbert do you have a prototype available somewhere of your UI using phosphor (and many notebook) ?
S. Chris Colbert
@sccolbert
Feb 24 2015 22:22
@ctaf42 no, nothing public
Cedric GESTES
@cgestes
Feb 24 2015 23:58
@sccolbert I'am playing with dockable notebooks and cells.