From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikael Fornius Subject: Re: orgmode and physical fitness training Date: Fri, 07 Nov 2008 18:54:04 +0100 Message-ID: <87od0rl8w3.fsf@abc.se> References: <1223994514.15613.17.camel@monad.lab> <87abceez2z.fsf@abc.se> <87abccu71x.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KyVXU-0007GF-NP for emacs-orgmode@gnu.org; Fri, 07 Nov 2008 12:54:32 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KyVXU-0007FT-6r for emacs-orgmode@gnu.org; Fri, 07 Nov 2008 12:54:32 -0500 Received: from [199.232.76.173] (port=56905 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KyVXU-0007FD-18 for emacs-orgmode@gnu.org; Fri, 07 Nov 2008 12:54:32 -0500 In-Reply-To: <87abccu71x.fsf@gmail.com> (Eric Schulte's message of "Thu, 06 Nov 2008 08:56:42 -0800") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: David O'Toole , emacs-orgmode@gnu.org --=-=-= 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 :-) --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=org-collector.diff Content-Description: org-collector.diff *** /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 --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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 --=-=-=--