Re: [O] Babel more verbose?

2014-09-05 Thread Gary Oberbrunner
On Tue, Sep 2, 2014 at 11:01 AM, David Wagle david.wa...@gmail.com wrote:

 It sounds like perhaps the issue is code blocks with a long run-time that
 may or may not fail or hang in some way?

 If that's the case, the solution is probably simply breaking up your code
 blocks into smaller bits of code so that you more easily follow what's
 happening.

 If the code is emacs-lisp, it's easy enough to put (message ...) calls
 entering and leaving the code blocks.


The defadvice idea is great; I will try it and report back.  As for
breaking up my code blocks... I wish I could, but some of my SQL queries
are just very long running.  We have a lot of data.  I want to look into
indexing and other SQL optimizations -- but I need something in my org-mode
to at least show me which blocks are the long-running ones, so I can know
where to start!

Someone else mentioned that the message about Wrote sql input file
could be suppressed; just don't forget that we users need _something_ to
help debug our babel code.  If one of my sql queries goes wrong, I get
something like this in the messages buffer:

executing Sql code block (machines-by-week)...
mysql  ... -N   c:/tmp/babel-26204dNc/sql-in-26204uKN 
c:/tmp/babel-26204dNc/sql-out-262047UT
Wrote c:/tmp/babel-26204dNc/ob-input-26204IfZ
Babel evaluation exited with code 1

so in this case it'd be OK if the Wrote file went away, because the
entire mysql command is still there, so I can find that temp file (which
babel doesn't clean up, btw, and in my case that's a good thing!) and trace
it back to which code block it came from.

But it would be way better if mysql-mode would actually show the sql error!

-- 
Gary


[O] Babel more verbose?

2014-09-02 Thread Gary Oberbrunner
I have an org-mode babel program/document that takes about half an hour to
run (end result is a LaTeX or HTML doc with figures).  It's a mix of SQL
and python.  (The SQL is the slow part.)  I'd really like it if org-mode
could tell me, while it's running, which named block it's processing.  Is
there anything like that available?  An option perhaps?


-- 
Gary


Re: [O] Babel more verbose?

2014-09-02 Thread John Kitchin

Try this:

#+BEGIN_SRC emacs-lisp
(defadvice org-babel-execute-src-block (around progress nil activate)
  create a buffer indicating what is running
  (let ((code-block (org-element-property :name (org-element-at-point)))
(cb (current-buffer)))
(split-window-below)
(other-window 1)
(switch-to-buffer *My Babel*)
(insert (format Running %s code-block))
(other-window 1)
ad-do-it
(kill-buffer *My Babel*)
(delete-other-windows)))
#+END_SRC

It will mess with your windows a bit, but it does what you want I think.


Gary Oberbrunner ga...@oberbrunner.com writes:

 I have an org-mode babel program/document that takes about half an
 hour to run (end result is a LaTeX or HTML doc with figures). It's a
 mix of SQL and python. (The SQL is the slow part.) I'd really like it
 if org-mode could tell me, while it's running, which named block it's
 processing. Is there anything like that available? An option perhaps?

-- 
---
John Kitchin
Professor
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
http://kitchingroup.cheme.cmu.edu



Re: [O] Babel more verbose?

2014-09-02 Thread Nick Dokos
John Kitchin jkitc...@andrew.cmu.edu writes:

 Try this:

 #+BEGIN_SRC emacs-lisp
 (defadvice org-babel-execute-src-block (around progress nil activate)
   create a buffer indicating what is running
   (let ((code-block (org-element-property :name (org-element-at-point)))
   (cb (current-buffer)))
 (split-window-below)
 (other-window 1)
 (switch-to-buffer *My Babel*)
 (insert (format Running %s code-block))
 (other-window 1)
 ad-do-it
 (kill-buffer *My Babel*)
 (delete-other-windows)))
 #+END_SRC

 It will mess with your windows a bit, but it does what you want I think.


Wouldn't a (message (format Running %s code-block)) be enough?
That would avoid all the window munging.


 Gary Oberbrunner ga...@oberbrunner.com writes:

 I have an org-mode babel program/document that takes about half an
 hour to run (end result is a LaTeX or HTML doc with figures). It's a
 mix of SQL and python. (The SQL is the slow part.) I'd really like it
 if org-mode could tell me, while it's running, which named block it's
 processing. Is there anything like that available? An option perhaps?

--
Nick




Re: [O] Babel more verbose?

2014-09-02 Thread David Wagle
It sounds like perhaps the issue is code blocks with a long run-time that
may or may not fail or hang in some way?

If that's the case, the solution is probably simply breaking up your code
blocks into smaller bits of code so that you more easily follow what's
happening.

If the code is emacs-lisp, it's easy enough to put (message ...) calls
entering and leaving the code blocks.


On Tue, Sep 2, 2014 at 9:54 AM, Nick Dokos ndo...@gmail.com wrote:

 John Kitchin jkitc...@andrew.cmu.edu writes:

  Try this:
 
  #+BEGIN_SRC emacs-lisp
  (defadvice org-babel-execute-src-block (around progress nil activate)
create a buffer indicating what is running
(let ((code-block (org-element-property :name (org-element-at-point)))
(cb (current-buffer)))
  (split-window-below)
  (other-window 1)
  (switch-to-buffer *My Babel*)
  (insert (format Running %s code-block))
  (other-window 1)
  ad-do-it
  (kill-buffer *My Babel*)
  (delete-other-windows)))
  #+END_SRC
 
  It will mess with your windows a bit, but it does what you want I think.
 

 Wouldn't a (message (format Running %s code-block)) be enough?
 That would avoid all the window munging.

 
  Gary Oberbrunner ga...@oberbrunner.com writes:
 
  I have an org-mode babel program/document that takes about half an
  hour to run (end result is a LaTeX or HTML doc with figures). It's a
  mix of SQL and python. (The SQL is the slow part.) I'd really like it
  if org-mode could tell me, while it's running, which named block it's
  processing. Is there anything like that available? An option perhaps?

 --
 Nick





Re: [O] Babel more verbose?

2014-09-02 Thread Grant Rettke
I am curious about how to get more reporting when tangling is
occurring because I would like to narrow down what parts of my
document are slow to tangle so that I can refactor them and speed it
up.
Grant Rettke | ACM, ASA, FSF
g...@wisdomandwonder.com | http://www.wisdomandwonder.com/
“Wisdom begins in wonder.” --Socrates
((λ (x) (x x)) (λ (x) (x x)))
“Life has become immeasurably better since I have been forced to stop
taking it seriously.” --Thompson


On Tue, Sep 2, 2014 at 10:01 AM, David Wagle david.wa...@gmail.com wrote:
 It sounds like perhaps the issue is code blocks with a long run-time that
 may or may not fail or hang in some way?

 If that's the case, the solution is probably simply breaking up your code
 blocks into smaller bits of code so that you more easily follow what's
 happening.

 If the code is emacs-lisp, it's easy enough to put (message ...) calls
 entering and leaving the code blocks.


 On Tue, Sep 2, 2014 at 9:54 AM, Nick Dokos ndo...@gmail.com wrote:

 John Kitchin jkitc...@andrew.cmu.edu writes:

  Try this:
 
  #+BEGIN_SRC emacs-lisp
  (defadvice org-babel-execute-src-block (around progress nil activate)
create a buffer indicating what is running
(let ((code-block (org-element-property :name (org-element-at-point)))
(cb (current-buffer)))
  (split-window-below)
  (other-window 1)
  (switch-to-buffer *My Babel*)
  (insert (format Running %s code-block))
  (other-window 1)
  ad-do-it
  (kill-buffer *My Babel*)
  (delete-other-windows)))
  #+END_SRC
 
  It will mess with your windows a bit, but it does what you want I think.
 

 Wouldn't a (message (format Running %s code-block)) be enough?
 That would avoid all the window munging.

 
  Gary Oberbrunner ga...@oberbrunner.com writes:
 
  I have an org-mode babel program/document that takes about half an
  hour to run (end result is a LaTeX or HTML doc with figures). It's a
  mix of SQL and python. (The SQL is the slow part.) I'd really like it
  if org-mode could tell me, while it's running, which named block it's
  processing. Is there anything like that available? An option perhaps?

 --
 Nick






Re: [O] Babel more verbose?

2014-09-02 Thread John Kitchin
Nick Dokos ndo...@gmail.com writes:

I found a message is not sufficient because I get another message from
running the code block that looks like:

Wrote
/var/folders/5q/lllv2yf95hg_n6h6kjttbmdwgn/T/babel-27354lYd/ob-input-27354uxF

and it obscures the first message so you cannot tell what is happening.

Here is a another approach that simply puts an overlay to change the
color of the text in the code block while running.

#+BEGIN_SRC emacs-lisp
(defadvice org-babel-execute-src-block (around progress nil activate)
  create a buffer indicating what is running
  (let ((ol (make-overlay (org-element-property :begin (org-element-at-point))
  (org-element-property :end (org-element-at-point)

(overlay-put ol 'face '(foreground-color . blue))

ad-do-it

(delete-overlay ol)))
#+END_SRC



 John Kitchin jkitc...@andrew.cmu.edu writes:

 Try this:

 #+BEGIN_SRC emacs-lisp
 (defadvice org-babel-execute-src-block (around progress nil activate)
   create a buffer indicating what is running
   (let ((code-block (org-element-property :name (org-element-at-point)))
  (cb (current-buffer)))
 (split-window-below)
 (other-window 1)
 (switch-to-buffer *My Babel*)
 (insert (format Running %s code-block))
 (other-window 1)
 ad-do-it
 (kill-buffer *My Babel*)
 (delete-other-windows)))
 #+END_SRC

 It will mess with your windows a bit, but it does what you want I think.


 Wouldn't a (message (format Running %s code-block)) be enough?
 That would avoid all the window munging.


 Gary Oberbrunner ga...@oberbrunner.com writes:

 I have an org-mode babel program/document that takes about half an
 hour to run (end result is a LaTeX or HTML doc with figures). It's a
 mix of SQL and python. (The SQL is the slow part.) I'd really like it
 if org-mode could tell me, while it's running, which named block it's
 processing. Is there anything like that available? An option perhaps?

 --
 Nick




-- 
---
John Kitchin
Professor
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
http://kitchingroup.cheme.cmu.edu



Re: [O] Babel more verbose?

2014-09-02 Thread Nick Dokos
John Kitchin jkitc...@andrew.cmu.edu writes:


 I found a message is not sufficient because I get another message from
 running the code block that looks like:

 Wrote
 /var/folders/5q/lllv2yf95hg_n6h6kjttbmdwgn/T/babel-27354lYd/ob-input-27354uxF

 and it obscures the first message so you cannot tell what is happening.


Right - that seems to be quite accidental though: it is done by
write-region in ob-eval.el:org-babel--shell-command-on-region when it
writes the input file, before it is passed to the shell for execution;
hardly a significant milestone. I wonder if that call should be changed
to suppress the message, something like

  (write-region start end input-file nil 'no-message)

quite apart from the problem at hand.

--
Nick

 Try this:

 #+BEGIN_SRC emacs-lisp
 (defadvice org-babel-execute-src-block (around progress nil activate)
   create a buffer indicating what is running
   (let ((code-block (org-element-property :name (org-element-at-point)))
 (cb (current-buffer)))
 (split-window-below)
 (other-window 1)
 (switch-to-buffer *My Babel*)
 (insert (format Running %s code-block))
 (other-window 1)
 ad-do-it
 (kill-buffer *My Babel*)
 (delete-other-windows)))
 #+END_SRC

 It will mess with your windows a bit, but it does what you want I think.


 Wouldn't a (message (format Running %s code-block)) be enough?
 That would avoid all the window munging.


 Gary Oberbrunner ga...@oberbrunner.com writes:

 I have an org-mode babel program/document that takes about half an
 hour to run (end result is a LaTeX or HTML doc with figures). It's a
 mix of SQL and python. (The SQL is the slow part.) I'd really like it
 if org-mode could tell me, while it's running, which named block it's
 processing. Is there anything like that available? An option perhaps?

 --
 Nick




-- 
Nick