[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: orgmode and physical fitness training
From: |
Mikael Fornius |
Subject: |
[Orgmode] Re: orgmode and physical fitness training |
Date: |
Fri, 07 Nov 2008 18:54:04 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Thanks for org-collector.el, now I have read it and tried it out.
It is very nice to have the possibility to evaluate lisp expressions as
values, that is something missing in org-columns!
But it was only a few seconds faster than column-view and column dblock
and therefore not fast enough for my slow computer ;-). I timed it to 62
seconds to insert exercise data table for one year (83 headings) with 4
columns and no calculations.
* ELP Profiling Results
|---------------------------+-------+--------------+--------------|
| org-dblock-write:propview | 1 | 62.158395 | 62.158395 |
| org-propview-collect | 1 | 60.578724 | 60.578724 |
| org-map-entries | 1 | 60.519551 | 60.519551 |
| org-scan-tags | 1 | 60.267157 | 60.267157 |
| org-entry-properties | 94 | 57.451918999 | 0.6111906276 |
| org-get-tags-at | 94 | 54.069399999 | 0.5752063829 |
| org-up-heading-all | 365 | 53.664638999 | 0.1470264082 |
| outline-up-heading | 365 | 53.647627 | 0.1469798 |
| outline-previous-heading | 29751 | 39.418412999 | 0.0013249441 |
| org-outline-level | 30306 | 6.0971540000 | 0.0002011863 |
| org-split-string | 555 | 2.0629750000 | 0.0037170720 |
|---------------------------+-------+--------------+--------------|
It is clear from above who is the time thief.
* Comment
It did not work at first because sometimes I have properties without
values, they then gets the empty string assigned, "".
I had to adjust function org-read-prop because in my emacs (GNU Emacs
23.0.60.5):
(stringp "") -> t
and
(string-to-number "") -> 0
(string-to-number "0") -> 0
and then at line 34 it tries to take substring out of "".
Attaches diff if interested :-)
*** /home/mfo/org/org-collector.el~ 2008-11-07 17:19:12.000000000 +0100
--- /home/mfo/org/org-collector.el 2008-11-07 18:14:23.000000000 +0100
***************
*** 27,45 ****
Otherwise if prop looks like a list (meaning it starts with a
'(') then read it as lisp, otherwise return it unmodified as a
string."
! (if (stringp prop)
! (if prop
! (let ((out (string-to-number prop)))
! (if (equal out 0)
! (if (or (equal "(" (substring prop 0 1)) (equal "'" (substring
prop 0 1)))
! (read prop)
! (if (string-match "^\\(+0\\|-0\\|0\\)$" prop)
! 0
! (progn (set-text-properties 0 (length prop) nil prop)
! prop)))
! out))
! nil)
! prop))
(defun org-dblock-write:propview (params)
"collect the column specification from the #+cols line
--- 27,43 ----
Otherwise if prop looks like a list (meaning it starts with a
'(') then read it as lisp, otherwise return it unmodified as a
string."
! (if (and (stringp prop) (not (equal prop "")))
! (let ((out (string-to-number prop)))
! (if (equal out 0)
! (if (or (equal "(" (substring prop 0 1)) (equal "'" (substring prop
0 1)))
! (read prop)
! (if (string-match "^\\(+0\\|-0\\|0\\)$" prop)
! 0
! (progn (set-text-properties 0 (length prop) nil prop)
! prop)))
! out))
! prop))
(defun org-dblock-write:propview (params)
"collect the column specification from the #+cols line
/Mikael Fornius
Re: [Orgmode] Re: orgmode and physical fitness training, Carsten Dominik, 2008/11/07