emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: Darlan Cavalcante Moreira <darcamo@gmail.com>
Cc: org-mode Mailinglist <emacs-orgmode@gnu.org>
Subject: Re: Sage Math - Maybe some inspiration for org-babel
Date: Wed, 21 Oct 2009 09:11:50 -0600	[thread overview]
Message-ID: <m24ops3ho6.fsf@gmail.com> (raw)
In-Reply-To: 4adce61d.0508d00a.3475.2d8d@mx.google.com

Hi Darlan,

Thanks for pointing out this interesting tool.

my comment are inline below

Darlan Cavalcante Moreira <darcamo@gmail.com> writes:

> 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."
>

This is the first I'd heard about sage, after watching the first intro
video it looks like a very relevant tool.

It seems like the biggest difference between Sage and Org-babel is that
sage wraps all of it's component-languages into a single top level
environment (which is basically python) and somehow puts the
functionality of each language behind an API of function/library calls
(I may be misunderstanding here).  Where as babel doesn't provide any
unified top level, but rather evaluates each language in it's own
separate environment and allows it's supported languages to share
results via a lowest-common-denominator of elisp and org-mode constructs
(like tables).

>
> 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).
>

As soon as someone implements an emacs-run browser which can render
org-mode files on demand and supports an elisp REPL we should be very
close to similar functionality in Org-babel. :)

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

I'd be interested to see how sage captures images created by it's
sub-languages.  It looks to me like sage has tighter coupling with it's
components (perhaps making more requirements of it's sub-languages) than
org-babel.  I know that for languages (like R) which support changing
the default graphical output to a file it would be possible (in fact I
believe Dan may already have this implemented to some degree) to
automatically capture any image output and place it in the org-mode
buffer.

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

There have been a couple of people expressing the desire to hide the
body of source-code blocks recently.  It seems that there is some need
here which is not met by any of the existing source-block hiding methods
- pressing tab while at the head of the source-code block
- adding #+STARTUP hideblocks to the top of an org-mode file
- saving source-code blocks as library-of-babel functions

what behavior would you suggest results from a :hide header argument?

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

I agree completely, I'm sure that there are lessons to be learned from a
project with such similarities.  Now it's just a matter of getting to
know a little bit more about Sage.

Thanks -- Eric

>
> Regards,
>
> Darlan
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2009-10-21 15:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-19 22:20 Sage Math - Maybe some inspiration for org-babel Darlan Cavalcante Moreira
2009-10-21 15:11 ` Eric Schulte [this message]
2009-10-22  5:30   ` Darlan Cavalcante Moreira
2009-10-22 14:23     ` Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m24ops3ho6.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=darcamo@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).