5b096196f285e14af355e0beef0db134235d7039
[worg.git] / code / elisp / davidam.el
1 ;; Copyright (C) 2013  David Arroyo Menéndez
2
3 ;; Author: David Arroyo Menéndez <davidam@es.gnu.org>
4 ;; Maintainer: David Arroyo Menéndez <davidam@es.gnu.org>
5
6 ;; This file is free software; you can redistribute it and/or modify
7 ;; it under the terms of the GNU General Public License as published by
8 ;; the Free Software Foundation; either version 3, or (at your option)
9 ;; any later version.
10
11 ;; This file is distributed in the hope that it will be useful,
12 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ;; GNU General Public License for more details.
15
16 ;; You should have received a copy of the GNU General Public License
17 ;; along with GNU Emacs; see the file COPYING.  If not, write to
18 ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 
19 ;; Boston, MA 02110-1301 USA,
20
21 (defun davidam-org-envolve-numbered-list()
22   "Itemize some lines as a numbered list"
23   (interactive)
24   (setq num 1)
25   (setq max (+ 1 (count-lines (point) (mark))))
26   (if (> (point) (mark))
27       (goto-line (+ 1 (count-lines 1 (mark))))
28     (goto-line (+ 1 (count-lines 1 (point)))))
29   (while (< num max)
30     (move-beginning-of-line nil)
31     (insert (concat (number-to-string num) ". "))
32     (setq num (+ 1 num))
33     (forward-line)))
34
35 (defun davidam-org-envolve-src(msg)
36   "Envolve source between org tags"
37   (interactive "sChoose your programming language: " msg)
38   (if (string= "" msg)
39       (setq msg "lisp"))
40   (if (> (point) (mark))
41       (progn 
42         (goto-char (point))
43         (insert "#+END_SRC")
44         (goto-char (mark))
45         (insert "#+BEGIN_SRC " msg "\n"))
46     (progn
47       (goto-char (point))
48       (insert "#+BEGIN_SRC " msg "\n")
49       (goto-char (mark))
50       (insert "#+END_SRC"))))
51
52 (defun davidam-org-src(msg)
53   "Insert org source tags"
54   (interactive "sChoose your programming language: " msg)
55   (if (equal nil msg) 
56       (setq msg "lisp"))
57   (insert "#+BEGIN_SRC " msg)
58   (insert "\n#+END_SRC\n"))
59
60 (defun davidam-org-display-date ()
61   (interactive)
62   (setq item-time (org-get-scheduled-time (point)))
63   (message "%s" item-time))
64
65 (defun davidam-happy-birthday(person)
66 37.   (interactive "MWrite the person name: ")
67   (message (concat "Happy birthday to you. Happy birthday to you. Happy birthday, dear " person ". Happy birthday to you")))
68 38. 38. 
69 (defun davidam-fibonacci (n)
70 39.   (interactive "nEscribe un numero: " n)
71   (message (number-to-string (fibonacci-aux n))))
72
73 (defun fibonacci-aux (n)
74 ;;  (interactive "dEscribe un numero: " n)
75   (if (or (= n 0) (= n 1))
76       1
77     (+ (fibonacci-aux (- n 1)) (fibonacci-aux (- n 2)))))
78
79 (defun davidam-torres-de-hanoi (discos)
80   (interactive "nDime tus discos y te digo cuantos pasos tienes que dar: " discos)
81   (message (number-to-string (torres-de-hanoi-aux discos))))
82
83 (defun torres-de-hanoi-aux (discos)
84   (if (= discos 1)
85       1
86     (+ 1 (* 2 (torres-de-hanoi-aux (- discos 1))))))
87
88 (defun davidam-insert-output (command)
89    (interactive "sCommand: ")
90    (insert (shell-command-to-string command)))
91
92 (defun davidam-output-to-buffer (buffer command)
93    (interactive "sBuffer name: \nsCommand: ")
94    (get-buffer-create buffer)
95    (call-process command nil buffer)
96    (switch-to-buffer (get-buffer buffer)))
97
98 (defun davidam-rsync-rmail ()
99   (interactive)
100   (get-buffer-create "rsync")
101   (call-process "/home/davidam/scripts/rsync-rmail.sh" nil "rsync")
102   (switch-to-buffer (get-buffer "rsync")))
103
104 (defun davidam-multiply-two (number1 number2)
105   (interactive "nNumber 1: \nnNumber 2: " number1 number2)
106   (message "The result is %d" (* number1 number2)))
107
108 (defun davidam-triangle-using-dotimes (number-of-rows)
109   "Using dotimes, add up the number of pebbles in a triangle."
110   (interactive "nNumber of rows: " number-of-rows) 
111   (let ((total 0))  ; otherwise a total is a void variable
112     (dotimes (number number-of-rows total)
113       (setq total (+ total (1+ number))))
114     (message "Number of pebbles: %d" total)))
115
116