emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Thomas S. Dye" <tsd@tsdye.com>
To: emacs-orgmode ml <emacs-orgmode@gnu.org>
Subject: Fwd: [RFC] Self-configuring Org-mode files
Date: Sat, 11 Dec 2010 17:49:02 -1000	[thread overview]
Message-ID: <CD3E0402-4E93-4C28-BD88-3ADFEFCCF0DD@tsdye.com> (raw)
In-Reply-To: t5xd3p8qlct.fsf@rgc.damtp.cam.ac.uk


[-- Attachment #1.1: Type: text/plain, Size: 5085 bytes --]

Forwarding off-list replies from Stephen Eglen, most recent at the top.


> One caveat of course with the idea: what software other than emacs
> should be assumed to be available? e.g. if someone has some R code in
> the doc, you'll need R on the system, likewise, perl, python.  (I
> considered whether it was worth setting up a system for processing
> Sweave documents -- but a colleague pointed out that unless you can
> preload R with most of the popular R packages that are likely to be
> needed in a Sweave document, some form of intervention/curation is
> always needed.)

Begin forwarded message:

> From: Stephen Eglen <S.J.Eglen@damtp.cam.ac.uk>
> Date: December 11, 2010 7:18:26 AM HST
> To: "Thomas S. Dye" <tsd@tsdye.com>
> Cc: S.J.Eglen@damtp.cam.ac.uk
> Subject: Re: [RFC] Self-configuring Org-mode files
>
> Hi Tom,
>
> I think you have hit the nail on the head -- it took me ages to get  
> org
> up and running with all the extra config to generate a beamer doc.   
> part
> of the trouble in that case was that i was following emails that  
> were a
> year old, but still I think the problem you outline is clear.  As to  
> the
> solution, your ideas sound sensible.
>
> To add one extra suggestion: how about a web-service of some sort  
> where
> you upload your .org file, and it returns the 'output' (e.g. pdf doc)
> produced by a native Emacs 23.X session running a stable version of  
> org
> with zero extra configuration?  I realise that it may be a lot of work
> to produce such a web service and expensive to maintain, but those
> issues aside, having a "vanilla" system to test RR org documents on  
> would
> be great.
>
> best wishes, Stephen
>
> "Thomas S. Dye" <tsd@tsdye.com> writes:
>
>> Aloha all,
>>
>> I'm eager to learn how to build a self-configuring Org-mode file.
>>
>> I think Org-mode is uniquely positioned to produce reproducible  
>> research
>> documents, but frankly speaking, the author of a reproducible Org- 
>> mode
>> research document would be foolish to release it.   The probability  
>> that it
>> would run out-of-the-box on a reader's computer is quite a bit less  
>> than 1.
>> Multiply this fraction by the number of potential readers and the  
>> probability
>> that the author will receive one or more emails entitled something  
>> like "Your
>> reproducible research isn't reproducible" rapidly approaches 1.
>>
>> A desire to produce reproducible research with Org-mode shouldn't  
>> reduce to an
>> open-ended commitment to solve configuration problems on users'  
>> computers
>> around the world.  An Org-mode file that reliably self-configures  
>> might solve
>> this problem.
>>
>> Based on the kind comments of several list members, I've come up  
>> with what I
>> hope are the rudiments of such a self-configuring Org-mode file.  I'm
>> requesting your comments because I believe, individually and  
>> collectively, you
>> know way more about this than I do.
>>
>> 1) At the end of the Org-mode file are some instructions saying  
>> something like
>> "To use this document, first
>> evaluate this code block", as suggested by Dan Davison:
>>
>> # Local variables:
>> # eval:(sbe "essential-document-config")
>> # End:
>>
>> 2) the source code block "essential-document-config" would consist  
>> of noweb
>> calls to Library of Babel functions:
>>
>> #+source: essential-document-config
>> #+begin_src emacs-lisp :noweb yes
>> <<lob-set-this-variable(x=t)>>
>> <<lob-set-that-variable(x=nil)>>
>> #+end_src
>>
>> 3) The Library of Babel would be
>> populated with little functions, each of which sets a single  
>> variable in a buffer-local way
>> (as suggested several times to me on the list):
>>
>> #+source: lob-set-this-variable
>> #+begin_src emacs-lisp :var x=nil
>> (set (make-local-variable 'this-variable) x)
>> #+end_src
>>
>> 4) A super-function in the Library of Babel would set the buffer- 
>> local
>> instance of every relevant Org-mode variable to its default state:
>>
>> #+source: lob-set-local-defaults
>> #+begin_src emacs-lisp
>> ...
>> #+end_src
>>
>> 5)
>> The Org-mode community would be responsible for populating the  
>> Library of Babel with the relevant little functions--whenever a new  
>> configuration variable is introduced, then a little function for it  
>> would be deposited in the Library of Babel.
>> The name of the configuration function would be part of the  
>> variable's
>> docstring.
>>
>> 6) The author of a reproducible Org-mode document could reasonably  
>> expect to
>> produce a document that self-configures on computers around the  
>> world, in a
>> way that is safe and effective.  The author would call the super- 
>> function,
>> then add noweb calls to little functions until the reproducible  
>> research
>> document works as expected.
>>
>> I'm happy for any comments, positive or negative.
>>
>> All the best,
>> Tom
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[-- Attachment #1.2: Type: text/html, Size: 10021 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

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

       reply	other threads:[~2010-12-12  3:49 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <t5xd3p8qlct.fsf@rgc.damtp.cam.ac.uk>
2010-12-12  3:49 ` Thomas S. Dye [this message]
2012-01-12 12:38   ` Rsquared for reproductible research Stephen Eglen
2012-01-12 15:27     ` brian powell
2012-01-12 15:40       ` Stephen Eglen
2012-01-12 16:29         ` Eric Schulte
2012-01-12 18:24           ` Thomas S. Dye
2012-01-12 20:54           ` Stephen Eglen

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=CD3E0402-4E93-4C28-BD88-3ADFEFCCF0DD@tsdye.com \
    --to=tsd@tsdye.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).