move from users
authorDavid Arroyo Menendez <davidam@es.gnu.org>
Fri, 22 Mar 2013 19:52:26 +0000 (20:52 +0100)
committerDavid Arroyo Menendez <davidam@es.gnu.org>
Fri, 22 Mar 2013 19:52:26 +0000 (20:52 +0100)
code/elisp/davidam.el [new file with mode: 0644]
code/elisp/org-effectiveness.el [new file with mode: 0644]

diff --git a/code/elisp/davidam.el b/code/elisp/davidam.el
new file mode 100644 (file)
index 0000000..6768934
--- /dev/null
@@ -0,0 +1,54 @@
+;; Copyright (C) 2013  David Arroyo Menéndez
+
+;; Author: David Arroyo Menéndez <davidam@es.gnu.org>
+;; Maintainer: David Arroyo Menéndez <davidam@es.gnu.org>
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+;; Boston, MA 02110-1301 USA,
+
+
+(defun davidam-org-envolve-src(msg)
+  "Envolve source between org tags"
+  (interactive "sChoose your programming language: " msg)
+  (if (equal nil msg) 
+      (setq msg "lisp"))
+  (goto-char (point))
+  (insert "\n#+END_SRC")
+  (goto-char (mark))
+  (insert "#+BEGIN_SRC " msg))
+
+(defun davidam-org-src(msg)
+  "Insert org source tags"
+  (interactive "sChoose your programming language: " msg)
+  (if (equal nil msg) 
+      (setq msg "lisp"))
+  (insert "#+BEGIN_SRC " msg)
+  (insert "\n#+END_SRC\n"))
+
+(defun davidam-insert-output (command)
+   (interactive "sCommand: ")
+   (insert (shell-command-to-string command)))
+
+(defun davidam-output-to-buffer (buffer command)
+   (interactive "sBuffer name: \nsCommand: ")
+   (get-buffer-create buffer)
+   (call-process command nil buffer)
+   (switch-to-buffer (get-buffer buffer)))
+
+(defun davidam-rsync-rmail ()
+  (interactive)
+  (get-buffer-create "rsync")
+  (call-process "/home/davidam/scripts/rsync-rmail.sh" nil "rsync")
+  (switch-to-buffer (get-buffer "rsync")))
diff --git a/code/elisp/org-effectiveness.el b/code/elisp/org-effectiveness.el
new file mode 100644 (file)
index 0000000..290c970
--- /dev/null
@@ -0,0 +1,104 @@
+;;; org-effectiveness.el --- Measuring the personal effectiveness
+
+;; Copyright (C) 2013 Free Software Foundation, Inc.
+
+;; Author: David Arroyo Menéndez <davidam@es.gnu.org>
+;; Keywords: effectiveness, plot
+;; Homepage: http://orgmode.org
+;;
+;; This file is not part of GNU Emacs, yet.
+;;
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;;; Commentary:
+
+;; This file implements functions to measure the effectiveness in org.
+;; Org-mode doesn't load this module by default - if this is not what
+;; you want, configure the variable `org-modules'. Thanks to #emacs-es
+;; irc channel for your support.
+
+;;; Code:
+
+(defun org-count-keyword(keyword)
+  "Print a message with the number of keyword outline in the current buffer"
+  (interactive "sKeyword: ")
+  (goto-char (point-min))
+  (message "Number of %s: %d" keyword (count-matches (concat "* " keyword)))
+  (goto-char (mark)))
+
+(defun org-count-todo()
+  "Print a message with the number of todo tasks in the current buffer"
+  (interactive)
+  (goto-char (point-min))
+  (message "Number of TODO: %d" (count-matches "* TODO"))
+  (goto-char (mark)))
+                                                                            
+(defun org-count-done()
+  "Print a message with the number of done tasks in the current buffer"
+  (interactive)
+  (goto-char (point-min))
+  (message "Number of DONE: %d" (count-matches "* DONE"))
+  (goto-char (mark)))
+
+(defun org-count-canceled()
+  "Print a message with the number of canceled tasks in the current buffer"
+  (interactive)
+  (goto-char (point-min))
+  (message "Number of Canceled: %d" (count-matches "* CANCELED"))
+  (goto-char (mark)))
+
+(defun org-effectiveness()
+  "Returns the effectiveness in the current org file"
+  (interactive)
+  (goto-char (point-min))
+  (setq done (float (count-matches "* DONE")))
+  (setq canc (float (count-matches "* CANCELED")))
+  (setq effectiveness (* 100 (/ done (+ done canc))))
+  (message "Effectiveness: %f" effectiveness)
+  (goto-char (mark)))
+
+(defun org-keywords-in-date(keyword date)
+  (interactive "sKeyword: \nsDate: " keyword date)
+  (setq count (count-matches (concat keyword ".*\n.*" date)))
+  (message (concat "%sS: %d" keyword count)))
+
+(defun org-dones-in-date(date)
+   (interactive "sGive me a date: " date)
+   (setq count (count-matches (concat "DONE.*\n.*" date)))
+   (message "DONES: %d" count))
+
+(defun org-todos-in-date(date)
+   (interactive "sGive me a date: " date)
+   (setq count (count-matches (concat "TODO.*\n.*" date)))
+   (message "TODOS: %d" count))
+
+(defun org-canceled-in-date(date)
+   (interactive "sGive me a date: " date)
+   (setq count (count-matches (concat "TODO.*\n.*" date)))
+   (message "CANCELEDS: %d" count))
+
+(defun org-effectiveness-in-date(date)
+  (interactive "sGive me a date: " date)
+  (goto-char (point-min))
+;;  (message "Tareas Hechas: %d" (float (count-matches "TODO.*\n.*11-16")))
+  (setq done (float (count-matches (concat "* DONE.*\n.*" date))))
+  (setq canc (float (count-matches (concat "* CANCELED.*\n.*" date))))
+  (if (and (= done canc) (zerop done))
+      (setq effectiveness 0)
+    (setq effectiveness (* 100 (/ done (+ done canc)))))
+  (message "Effectiveness: %d " effectiveness)
+  (goto-char (mark)))
+
+(provide 'org-effectiveness)