On Jul 20, 2009, at 9:02 PM, Ondrej Certik wrote:

> Hi,
>
> I finally learned javascript and AJAX, so that I can help with the
> notebook. I also studied it's sources.
>
> First things I like:
>
> * I like the user interface, it's usable, especially the attention to
> little details, like borders around the cells, tab completion, tab
> indentation and things like that.
>
> Things I don't like:
>
> * the javascript is really hackish overall, but two things really
> caught my attention:
>   a) the keyboard handling is horrific, why not to use some standard
> library for that, that works across all browsers
>   b) it uses some custom format for transfering data (which has bugs,
> like http://groups.google.com/group/sage-devel/browse_thread/thread/ 
> 5ecd104b0aa85439),
> why not to use JSON?
> * it doesn't run on the google appengine (William mentioned in the
> past, that he doesn't see any benefit to do that, or that it would be
> slow)

Very cool! AJAX, and javascript libraries, and browsers have improved  
a lot since the notebook was first written--I think a lot of this can  
be cleaned up now.

> Well, talk is cheap, so here is the code (a sample Firefox screenshot
> is also attached in case it didn't work in your browser):
>
> http://pythonnb.appspot.com/
>
> it uses jQuery all over, it uses a keyboard plugin for jQuery, it uses
> JSON and it runs on the google appengine (and anywhere else too, it's
> just a standard django app). I tested in Firefox and IE8. The keyboard
> works, there are just some subtle bugs on IE8, see here:
>
> http://github.com/certik/notebook/blob/ 
> 375a2026ee7ea721904d05068724b3a7663d018e/todo
>
> but none of it seems major to me, the keyboard seems to be working
> just fine (or is IE8 not the most problematic? I'll try to test in
> other browsers like Opera and Safari too). Here is the index.html with
> all the javascript that I wrote:
>
> http://github.com/certik/notebook/blob/ 
> 375a2026ee7ea721904d05068724b3a7663d018e/templates/index.html
>
> It handles most of the keyboard interaction. It doesn't have TAB
> completion and inspection yet.
>
> Well, let me say that I really like to run things on the appengine,
> rather than to constantly maintain our own servers. I see no reason
> why the notebook cannot run on the appengine, only the AJAX would talk
> to our own server with Sage to actually evaluate the cells (and for
> many people, I think appengine itself could actually be enough). I
> have to think though what the best way to transfer data to the
> database with worksheets is though.

+1, though for Sage we rely heavily on compiled code. I wonder how  
much introduced latency there would be if the backend were served on  
a university computer, and the front end in appengine.

> I wanted to ask --- which parts of the Sage notebook are BSD licensed?
> I used a bit of the CSS styles and and maybe one javascript function,
> everything else was written by me. If possible, I'd like to use the
> BSD license for the notebook (if I find time to work on it further),
> so that ipython can use it by default.

I release everything I've contributed under sage/server/* under BSD.

Here's a complete list. It looks longer than it is, and I bet most of  
these people only contributed once. It'll be cleaner when it's  
separate into a separate spkg.

$ hg log sage/server/*/*.py* | grep "user:" | sort |  uniq
user:        "Justin C. Walker <jus...@mac.com>"
user:        'Martin Albrecht <m...@informatik.uni-bremen.de>'
user:        Alex Clemesha <cleme...@gmail.com>
user:        Alexandru Ghitza <aghi...@alum.mit.edu>
user:        Bobby Moretti <more...@u.washington.edu>
user:        Carl Witty <cwi...@newtonlabs.com>
user:        Christian Wuthrich <christian.wuthr...@gmail.com>
user:        Dan Drake <dr...@kaist.edu>
user:        Dan Drake <dr...@mathsci.kaist.ac.kr>
user:        Dorian Raymer <deldo...@gmail.com>
user:        Harald Schilly <harald.schi...@gmail.com>
user:        Igor Tolkov <itol...@gmail.com>
user:        J. H. Palmieri <palmi...@math.washington.edu>
user:        Jason Grout <gr...@rayunion.org>
user:        Jason Grout <jason-s...@creativetrax.com>
user:        John H. Palmieri <palmi...@math.washington.edu>
user:        Karl-Dieter Crisman <kcris...@gmail.com>
user:        Marshall Hampton <hampto...@gmail.com>
user:        Martin Albrecht <m...@informatik.uni-bremen.de>
user:        Mike Hansen <mhan...@gmail.com>
user:        Mitesh Patel <qed...@gmail.com>
user:        Nick Alexander <ncalexan...@gmail.com>
user:        Paul Dehaye <pauloliviers...@gmail.com>
user:        Paul Zimmermann <zimme...@loria.fr>
user:        Rob Beezer <bee...@ups.edu>
user:        Robert Bradshaw <rober...@math.washington.edu>
user:        Robert L. Miller <r...@rlmiller.org>
user:        Robert Miller <rlmills...@gmail.com>
user:        Timothy Clemans <timothy.clem...@gmail.com>
user:        Tom Boothby <boot...@u.washington.edu>
user:        Wilfried Huss <h...@finanz.math.tugraz.at>
user:        William Stein <wst...@gmail.com>
user:        William Stein <wst...@ucsd.edu>
user:        Yi Qiang <yqi...@gmail.com>
user:        a...@kubuntu
user:        boot...@eight.math.washington.edu
user:        boot...@localhost
user:        boot...@localhost.localdomain
user:        boot...@u.washington.edu
user:        mabsh...@localhost
user:        mabsh...@sage.math.washington.edu
user:        r...@sage
user:        s...@ubuntu-server.localdomain
user:        w...@bsd.local
user:        w...@keyah.local
user:        w...@localhost
user:        w...@localhost.localdomain
user:        w...@ubuntu
user:        wst...@gmail.com

> Also, question to all, do you like the In [3] and Out[3] lines?

No, but maybe that's just me.

> I don't have an opinion on it yet myself, so I implemented them, to  
> see
> how it looks like. Also, please let me know if it works in your
> browser.

Works great for me.

- Robert


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

Reply via email to