emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Sage Math - Maybe some inspiration for org-babel


From: Darlan Cavalcante Moreira
Subject: [Orgmode] Sage Math - Maybe some inspiration for org-babel
Date: Mon, 19 Oct 2009 19:20:08 -0300
User-agent: Wanderlust/2.15.6 (Almost Unreal) Emacs/23.1 Mule/6.0 (HANACHIRUSATO)

Hello org-users

I have been reading with attention the E-Mails about org-babel here on the list
and decided to play with it a little this weekend. It reminded me about another
great piece of software called "Sage Math" (Some screencasts here ->
http://www.sagemath.org/help-video.html) that I have tested sometime ago.

"Sage is a free open-source mathematics software system licensed under the
GPL. It combines the power of many existing open-source packages into a common
Python-based interface."

Although Sage and org-babel are very different, I think that Sage may be a good
source of inspiration for org-babel. Probably the most practical way of using
sage is though the notebook: a front-end that runs inside the browser and
communicates with the sage server (may be remote or local).

In the sage notebook one creates worksheets. Each worksheet starts with a text
area where you type the code. The main language is python, but others may be
used if specified with a comment. When the code is evaluated any output is shown
in addition to the last value. Therefore, the code

,----
| print "hello"
| 10
| print "world"
| 9
| 15
`----
will show
,----
| hello
| world
| 15
`----

This is similar to a "combination" of :results output and :results value in
org-babel. A really nice feature is that if an image is created by the last
command in the block it is automatically shown. Therefore, it doesn't matter
which library was used to generate the plot as long as it creates an image (for
instance, plotting to a file with matplotlib will shown the plot when the code
is evaluated). Maybe the same approach could be used in org-mode.

In the text area, RET only creates a new line, Shift+RET evaluates the code in
the text area and creates a new one below the output keeping all the variables
similar to the multiple source blocks within a single session in org-babel.

Two things I find interesting is that you can easily evaluate all blocks in the
worksheet (org-mode already has org-babel-execute-buffer) and if any block
starts with the comment "%hide" the code is not shown, only its output. I think
that a header argument ":hide" for a source block could be useful.


That's my two cents. It is really amazing what you can do with org-mode and
org-babel and I'm not saying in that org-babel should became more similar to
sage. I only think that getting some inspiration from sage could be nice.

Regards,

Darlan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]