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 -~----------~----~----~----~------~----~------~--~---