New Features! Updated live notebook. Support for Sage!

1 view
Skip to first unread message

Dorian Raymer

unread,
Oct 16, 2009, 6:04:20 PM10/16/09
to codenod...@googlegroups.com, sage-devel
Hello everyone,
We have merged a big development effort into the master repository!

This represents a milestone in the ongoing effort to bring the whole design to a new stable point. The Frontend was re-implemented using Django earlier this year, and we now have completely re-done the Backend!

High level features:
- Engine plug-ins
  An engine is the computation process behind the notebook (Before today, Codenode only supported the regular Python engine).
  Engine types can be added without modifying library code!
- Sage Engine
  Template engine type for using Sage in codenode!
- Admin management of Backends
  A frontend can be associated with any number of backend servers, running anywhere on the network. Each of those backend servers can support any number of engine types.
- Development version of servers
  Improved work flow; development of running code. Raw support for reloading of modules with out restarting the process.

Updated documentation. These still need work, so please make as many comments and ask as many questions as you have. This will aid improving the quality of the documentation greatly.

Updated live public notebook, with two engine types: Python and Sage!!! This backend server is also much more powerful than what we had running on app engine. This makes the live site an actually useful service, so please use it for day to day python/sage things as much as you like.


Making it easy to develop codenode is an important design feature we are striving to fulfill. The major pieces of the system are becoming sufficiently modularized such that working on a specific component does not require deep knowledge of the entire system. We hope this will allow people with specific specializations to have a fun time developing features either independently, or with some counterpart collaborator who might have a complementary expertise.

As a project, codenode is finding a balance between providing a solid base design for long term viability/extendability, and writing useful features that people care about and need NOW! With this milestone, the focus of our efforts will noticeably shift back to fulling feature requests, fixing bugs, and sharing/proposing our own feature ideas.

A few quick mentions of features:
General plotting capability for plain Python that is compatible with Sage.
Sage version of notebook style and key bindings.
Collaborative running notebooks, portable notebook formats, etc.
Uploading code and data for use in a notebook.
Engines for other languages.

Looking forward to feedback!

Thanks,
Dorian and Alex
 

Maurizio

unread,
Oct 17, 2009, 6:11:32 AM10/17/09
to sage-devel
I don't understand: which is the difference between this codenode and
our new notebook? Did we manage to get two brand new (but different)
notebooks at the precisely same moment? This would be good in some
sense, but also bad, if you know what I mean for avoiding waste of
efforts

Regards

Maurizio

On 17 Ott, 00:04, Dorian Raymer <deldo...@gmail.com> wrote:
> Hello everyone,
> We have merged a big development effort into the master
> repository<http://github.com/codenode/codenode>
> !
>
> This represents a milestone in the ongoing effort to bring the whole design
> to a new stable point. The Frontend was re-implemented using Django earlier
> this year, and we now have completely re-done the Backend!
>
> High level features:
> - Engine plug-ins
>   An engine is the computation process behind the notebook (Before today,
> Codenode only supported the regular Python engine).
>   Engine types can be added without modifying library code!
> - Sage Engine
>   Template engine type for using Sage in codenode!
> - Admin management of Backends
>   A frontend can be associated with any number of backend servers, running
> anywhere on the network. Each of those backend servers can support any
> number of engine types.
> - Development version of servers
>   Improved work flow; development of running code. Raw support for reloading
> of modules with out restarting the process.
>
> Updated documentation <http://codenode.org/docs/>. These still need work, so
> please make as many comments and ask as many questions as you have. This
> will aid improving the quality of the documentation greatly.
>
> Updated live public notebook <http://live.codenode.org>, with two engine

Harald Schilly

unread,
Oct 17, 2009, 9:08:52 AM10/17/09
to sage-devel


On Oct 17, 12:11 pm, Maurizio <maurizio.gran...@gmail.com> wrote:
> I don't understand: which is the difference between this codenode and
> our new notebook?

I don't know much about codenode, but it seems to be more general with
it's "engines", it also has some administration. i tried the live
version, tried to plot(sin(x)) but it doesn't work and the interface
has some bugs [I'm using chrome, might be related to that]. So, they
have to do more towards supporting Sage (with plotting, probably
debugging, and whatnot). I don't think it's a problem at all. Maybe,
some long time in the future, there will be a third notebook
+administration interface that is better than both combined - and yes,
that's all in the spirit of open source ;)

h

William Stein

unread,
Oct 17, 2009, 4:08:03 PM10/17/09
to sage-...@googlegroups.com, sage-n...@googlegroups.com, codenode-devel
On Sat, Oct 17, 2009 at 3:11 AM, Maurizio <maurizio...@gmail.com> wrote:
>
> I don't understand: which is the difference between this codenode and
> our new notebook?

They are almost entirely different projects. I think the Sage
notebook overal has far more features (e.g., @interact, 3d plotting
integration, tinymce, etc.), but Codenode is built on top of Django,
has folders, and much of the architectural choices are different. It
is also definitely not the case that either project is in any way a
fork of the other.

> Did we manage to get two brand new (but different)
> notebooks at the precisely same moment?

Our "new notebook" is just an evolutionary improvement to the existing
notebook, which involved separating it out from Sage itself and
rewriting the worksheet process interface, the storage backend, and a
few other things.

> This would be good in some
> sense, but also bad, if you know what I mean for avoiding waste of
> efforts

I don't think any of the effort on either web app is wasted. For
example, I am currently reading through the codenode source code for
ideas right now. Very soon, we will release a BSD-licensed version
of the Sage notebook so that all the Codenode developers can do the
same! (They recently switched to BSD from GPL, so they can't read/use
our code.)

I think the best way to view the situation is like the situation with
"vim" and "emacs". Surely you would not consider it bad that both vim
and emacs are continually improved. I use both vim and emacs
regularly, and I'm really glad they are both available.

Also, I believe that in any industry/software project/etc., without
some other project doing something at least similar, there will be a
tendency to not innovate so much. I think having both the codenode
and sagenb project be very healthy is the best situation to encourage
innovation. I hope everybody reading this will be highly supportive
of both projects.

-- William


--
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

Alex Clemesha

unread,
Oct 19, 2009, 2:21:46 AM10/19/09
to codenod...@googlegroups.com, sage-...@googlegroups.com, sage-n...@googlegroups.com
> I don't think any of the effort on either web app is wasted.  For
> example, I am currently reading through the codenode source code for
> ideas right now.    Very soon, we will release a BSD-licensed version
> of the Sage notebook so that all the Codenode developers can do the
> same!  (They recently switched to BSD from GPL, so they can't read/use
> our code.)
I totally agree that each effort is extremely worthwhile in that both
are taking different approaches, and have some different short term goals,
but yet both are trying (in the big picture) to solve a similar general problem.
This pushes us both to create a better end product, and we can help each
other along the way by collaborating on sub-problems.

On the subject of collaborating on sub-problems, there is one that I
hope we can attack more in the near future, and that is @interact.
A couple months back I spent a couple of days thinking and coding
some stuff up related to making a jQuery plugin for @interact functionality.

I just spent a little more time cleaning up the code, and in particular
making the README more clear, and I made it public here:
http://github.com/clemesha/jquery-interact
It does *not* do "lots of useful" things yet, but I feel it's a solid beginning
and the proposed usage looks/feels really good.

One of the best features will be support for the <canvas> html5
element based plotting,
as well as pure javascript execution, and hence could be very useful
to all sorts
of different people/use cases. This might hopefully attract more
focused development on it (ala Cython, etc) and everyone would benefit
from that.
(Feedback/opinions greatly appreciated. Maybe a new thread should be started
if people do have feedback so we don't diverge this thread to badly...
which I'm sorta doing now :-)


> I think the best way to view the situation is like the situation with
> "vim" and "emacs".  Surely you would not consider it bad that both vim
> and emacs are continually improved.  I use both vim and emacs
> regularly, and I'm really glad they are both available.
>
> Also, I believe that in any industry/software project/etc., without
> some other project doing something at least similar, there will be a
> tendency to not innovate so much.  I think having both the codenode
> and sagenb project be very healthy is the best situation to encourage
> innovation.
This sums up my feelings perfectly, thanks very much for posting this.

-Alex


I hope everybody reading this will be highly supportive
> of both projects.
>
>  -- William
>
>
> --
> William Stein
> Associate Professor of Mathematics
> University of Washington
> http://wstein.org
>
> >
>



--
Alex Clemesha
clemesha.org

Dorian Raymer

unread,
Oct 19, 2009, 6:45:20 PM10/19/09
to codenod...@googlegroups.com, sage-devel
Hi Stan,
I looked in to the solve problem and I get the same error.

Solve does work when I log into the server and use Sage from the command line, and it works from the codenode notebook on my local linux install, so I am slightly baffled.

Does William or another sage person have any idea what would cause the 'Unable to start maxima' error? I'm thinking it might be some kind of environment problem that a sage expert would have better intuition on.

For plotting, this has been the number one first thing people try, and I'm currently working on getting plots to show up in the notebook. Most of the code supporting this already exists, it has just been a matter of updating/adapting it to work with the new backend/frontend, so it won't be long.

-Dorian


On Mon, Oct 19, 2009 at 4:39 AM, Stan Schymanski <schy...@gmail.com> wrote:

Hi Dorian,

I got all excited but the live public notebook in sage mode does not
seem to work for me.

plot(x^3 - 3*x^2 + 2*x -3, (x,-3,3))

produces an empty field for me, and

solve(0 == x^3 - a*x^2 + b*x -3, x)

results in a traceback:

Traceback (most recent call last):
[snip]
TypeError: Unable to start maxima

Is there a problem with the sage installation?

Cheers,
Stan


Dorian Raymer wrote:
> Hello everyone,
> We have merged a big development effort into the master repository
> This represents a milestone in the ongoing effort to bring the whole
> design to a new stable point. The Frontend was re-implemented using
> Django earlier this year, and we now have completely re-done the Backend!
>
> High level features:
> - Engine plug-ins
>   An engine is the computation process behind the notebook (Before
> today, Codenode only supported the regular Python engine).
>   Engine types can be added without modifying library code!
> - Sage Engine
>   Template engine type for using Sage in codenode!
> - Admin management of Backends
>   A frontend can be associated with any number of backend servers,
> running anywhere on the network. Each of those backend servers can
> support any number of engine types.
> - Development version of servers
>   Improved work flow; development of running code. Raw support for
> reloading of modules with out restarting the process.
>
> Updated documentation <http://codenode.org/docs/>. These still need

> work, so please make as many comments and ask as many questions as you
> have. This will aid improving the quality of the documentation greatly.
>
> Updated live public notebook <http://live.codenode.org>, with two

Alex Clemesha

unread,
Oct 19, 2009, 7:05:45 PM10/19/09
to codenod...@googlegroups.com, sage-devel
On Mon, Oct 19, 2009 at 3:45 PM, Dorian Raymer <deld...@gmail.com> wrote:
> Hi Stan,
> I looked in to the solve problem and I get the same error.
>
> Solve does work when I log into the server and use Sage from the command
> line, and it works from the codenode notebook on my local linux install, so
> I am slightly baffled.
>
> Does William or another sage person have any idea what would cause the
> 'Unable to start maxima' error? I'm thinking it might be some kind of
> environment problem that a sage expert would have better intuition on.
>
> For plotting, this has been the number one first thing people try, and I'm
> currently working on getting plots to show up in the notebook. Most of the
> code supporting this already exists, it has just been a matter of
> updating/adapting it to work with the new backend/frontend, so it won't be
> long.
Yeah, plotting and data management are incredibly important to actual
real-person-usability. I'm very excited about the fact that our architecture is
now feeling very solid and we can (finally) shift our main focus to usability.

We already have most of the plotting code in place, and I have a branch
going with some good data management functionality, so these features should
come along pretty quickly.


-Alex
--
Alex Clemesha
clemesha.org

William Stein

unread,
Oct 19, 2009, 7:39:26 PM10/19/09
to sage-...@googlegroups.com, codenod...@googlegroups.com
On Mon, Oct 19, 2009 at 3:45 PM, Dorian Raymer <deld...@gmail.com> wrote:
> Hi Stan,
> I looked in to the solve problem and I get the same error.
>
> Solve does work when I log into the server and use Sage from the command
> line, and it works from the codenode notebook on my local linux install, so
> I am slightly baffled.
>
> Does William or another sage person have any idea what would cause the
> 'Unable to start maxima' error? I'm thinking it might be some kind of
> environment problem that a sage expert would have better intuition on.

Precisely how do you start Sage? What command line is run?

William
Reply all
Reply to author
Forward
0 new messages