36962c243f296fc75d144373e42b3bfb78e8126b
[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   (if (< (point) (mark)) 
25       (progn      
26         (setq count (count-lines 1 (point)))
27         (setq end (count-lines 1 (mark))))
28     (progn
29       (setq count (count-lines 1 (mark)))
30       (setq end (count-lines 1 (point)))))
31   (goto-line count)
32   (while (< count end)
33     (move-beginning-of-line count)
34     (insert (concat (number-to-string count) ". "))
35     (setq count (1+ count))
36     (goto-line count)))
37
38 (defun davidam-org-envolve-src(msg)
39   "Envolve source between org tags"
40   (interactive "sChoose your programming language: " msg)
41   (if (string= "" msg)
42       (setq msg "lisp"))
43   (if (> (point) (mark))
44       (progn 
45         (goto-char (point))
46         (insert "#+END_SRC")
47         (goto-char (mark))
48         (insert "#+BEGIN_SRC " msg "\n"))
49     (progn
50       (goto-char (point))
51       (insert "#+BEGIN_SRC " msg "\n")
52       (goto-char (mark))
53       (insert "#+END_SRC"))))
54
55 (defun davidam-org-src(msg)
56   "Insert org source tags"
57   (interactive "sChoose your programming language: " msg)
58   (if (equal nil msg) 
59       (setq msg "lisp"))
60   (insert "#+BEGIN_SRC " msg)
61   (insert "\n#+END_SRC\n"))
62
63 (defun davidam-org-display-date ()
64   (interactive)
65   (setq item-time (org-get-scheduled-time (point)))
66   (message "%s" item-time))
67
68 (defun davidam-happy-birthday(person)
69   (interactive "MWrite the person name: ")
70   (message (concat "Happy birthday to you. Happy birthday to you. Happy birthday, dear " person ". Happy birthday to you")))
71
72 (defun davidam-fibonacci (n)
73   (interactive "nEscribe un numero: " n)
74   (message (number-to-string (fibonacci-aux n))))
75
76 (defun fibonacci-aux (n)
77 ;;  (interactive "dEscribe un numero: " n)
78   (if (or (= n 0) (= n 1))
79       1
80     (+ (fibonacci-aux (- n 1)) (fibonacci-aux (- n 2)))))
81
82 (defun davidam-torres-de-hanoi (discos)
83   (interactive "nDime tus discos y te digo cuantos pasos tienes que dar: " discos)
84   (message (number-to-string (torres-de-hanoi-aux discos))))
85
86 (defun torres-de-hanoi-aux (discos)
87   (if (= discos 1)
88       1
89     (+ 1 (* 2 (torres-de-hanoi-aux (- discos 1))))))
90
91 (defun davidam-insert-output (command)
92    (interactive "sCommand: ")
93    (insert (shell-command-to-string command)))
94
95 (defun davidam-output-to-buffer (buffer command)
96    (interactive "sBuffer name: \nsCommand: ")
97    (get-buffer-create buffer)
98    (call-process command nil buffer)
99    (switch-to-buffer (get-buffer buffer)))
100
101 (defun davidam-rsync-rmail ()
102   (interactive)
103   (get-buffer-create "rsync")
104   (call-process "/home/davidam/scripts/rsync-rmail.sh" nil "rsync")
105   (switch-to-buffer (get-buffer "rsync")))
106
107 (defun davidam-multiply-two (number1 number2)
108   (interactive "nNumber 1: \nnNumber 2: " number1 number2)
109   (message "The result is %d" (* number1 number2)))
110
111 (defun davidam-triangle-using-dotimes (number-of-rows)
112   "Using dotimes, add up the number of pebbles in a triangle."
113   (interactive "nNumber of rows: " number-of-rows) 
114   (let ((total 0))  ; otherwise a total is a void variable
115     (dotimes (number number-of-rows total)
116       (setq total (+ total (1+ number))))
117     (message "Number of pebbles: %d" total)))
118
119