Hi,

just wanted to give a brief status update. I improved the pyjamas
version of the notebook here:

http://gamma.sympy.org/nb/

it now shows the evaluate button, adding new cells work, joining cells
work. Click on the "About" to get the sourcecode (BSD licensed).

Compared to the current Sage notebook at sagenb.org:

sage notebook

* lot's of handwritten javascript
* enter in the cell behaves funny, it first moves out of sight almost,
only then the textarea updates (in chromium, the top line actually
goes out of the window temporarily too...)
* backspace doesn't join the cells, unless the cell is empty
* backspace doesn't delete 4 spaces (if only spaces are on the left of
the current line)
* shift+enter doesn't move to the next cell in my Chromium browser


sympy gamma notebook

* only pure Python (here is the code that runs in the browser:
http://github.com/certik/sympy_gamma/blob/master/templates/nb.py
* it doesn't highlights the current cell by blue color (I'll implement
this too, didn't get to it yet, but Chromium highlights the cell by
itself, so it looks good there even now)
* TAB completion isn't implemented yet
* TAB doesn't indent the selection (it only inserts 4 spaces so far)
* only tested in firefox and chromium in Linux. In opera (on linux),
shift+enter and backspace (when deleting cells) behaves funny, for
some reason, preventDefault (event) doesn't work in Opera. I didn't
test on IE8 yet, I hope it works, I'll report back once I test it.




Some observations:

* it was easy for me to continue working on this after couple months
of not seeing the code at all. It's pure Python, so it's very easy and
readable for me.
* it's very pleasant to work with pyjamas, I just learn from the
source code (UI library in pyjamas), if something doesn't work, I just
put there print statements into the pyjamas source code, no need to
recompile anything, I just compile my project and everything shows
immediately.
* I'll implement sessions and logging in now (well, when I find a bit
of time for this again), allow to publish worksheets etc. Only then we
can really start comparing it with the Sage notebook


I will try to pursue this further, I feel that having this in pure
Python makes it very hackable and more people can join in and fix bugs
in the code then. It's sort of reimplementation from scratch, but the
javascript in the Sage notebook should imho be rewritten anyway. My
code pyjamas could eventually be ported to the Sage notebook too, it
really is just the reimplementation of the code that runs in the
browser itself. I am still learning pyjamas, but it seems to me now,
that I will be able to have pyjamas widgets, implementing the notebook
cells, and it doesn't matter how you use it (e.g. if you use it from
the sage notebook, or my own notebook implementation in django, or
codenode). So I think it's a very cool and reusable technology.

If you want to try it out, use my "ondrej" branch of pyjamas from here:

http://github.com/certik/pyjamas

it contains some patches that are not yet incorporated upstream (I
sent them to pyjamas dev though).

Ondrej

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to