Archivo

Archive for the ‘software libre’ Category

Filtrando listas de correo con procmail en es.gnu.org

18/11/2012 2 comentarios

Esta receta es personal para mi correo de es.gnu.org, pero le valdrá a cualquiera que tenga instalado procmail en su propio servidor. El .procmailrc situado en $HOME sería algo como:


# .procmailrc
# routes incoming mail to appropriate mailboxes
PATH=/usr/bin:/usr/local/bin
# MAILDIR=$HOME/Maildir # all mailboxes are in .mailspool/
# DEFAULT=$HOME/Maildir/inbox
LOGFILE=$HOME/mail.log
SHELL=/bin/bash

# Put mail from emacs-orgmode mailing list into mailbox emacs-orgmode
:0:
* ^(From|Cc|To).*emacs-orgmode@gnu.org
$HOME/emacs-orgmode

:0:
* ^(From|Cc|To).*emacs-es@es.gnu.org
$HOME/emacs-es

En gnu-es usamos squirrelmail y es posible suscribirse a ficheros desde el enlace Carpetas. Una vez suscrito ya es posible acceder a la carpeta desde vuestro cliente de correo preferido, en caso de gnus presionando U desde el Summary.

Categorías:software libre

Crear un repositorio git en un servidor

11/11/2012 4 comentarios

En el servidor

cd ~
mkdir repository.git
cd repository.git
git --bare init
git repo-config core.sharedRepository true

En local:

mkdir repository
cd repository
git init
git add *
git commit -m "Initial import"
git remote add origin git+ssh://user@server/~user/repository.git
git push origin master

Bajar git:

git clone git+ssh://user@server/~user/repository.git
Categorías:software libre

Qué hacer si recibes un fichero .org

19/05/2012 2 comentarios

Si lo quieres modificar y no quieres usar el emacs (se descarga desde http://ftp.gul.es/gnu/ftp.gnu.org/gnu/emacs/) yo creo que lo mejor es abrirlo desde, por ejemplo, el openoffice/libreoffice (Archivo -> Abrir y eliges el fichero descargado). En Word supongo que es igual, pero no tengo un Word para probarlo.

Los títulos empiezan con * y los subtítulos empiezan con ** y los subsubtítulos con *** y así sucesivamente. No necesitas saber nada más pues no uso más artificios para los ficheros que estoy compartiendo contigo. Desde el emacs es muy cómodo navegar por el fichero porque al principio solo se ven los títulos y al dar a la tecla TAB se despliegan los subtítulos y si vuelves a dar a TAB se vuelven a plegar. Si los abres con Word u OpenOffice aparece todo desplegado y tienes que tirar de scroll como te pasa en cualquier otro documento .doc u .odt

Org mode es todo un mundo y esta es su página oficial http://orgmode.org/es/index.html por si te interesa, que igual no, por lo que no me enrrollo más.

Categorías:emacs, software libre

Stumpwm: lisp en el gestor de ventanas

12/10/2011 2 comentarios

Stumpwm es un gestor de ventanas atilado escrito en common lisp. Esto le hace ser considerablemente más rápido que utilizar gnome, unity o kde. Si lo que sueles hacer la mayor parte de tu tiempo es usar un editor de textos, un navegador y alguna otra aplicación se hace realmente productivo.

Pero empecemos por la instalación en debian/ubuntu basta con:

apt-get install stumpwm

Pero después es necesario crear el fichero /usr/share/xsessions/stumpwm.desktop con el siguiente contenido:

[Desktop Entry]
Encoding=UTF-8
Name=StumpWM
Comment=Tiling Window Manager
Exec=/usr/bin/stumpwm
Icon=
Type=Application

Una vez hecho esto deberíamos poder elegir stumpwm, por ejemplo, en el gdm. Al arrancar stumpwm vemos una pequeña ventana que nos invita a ejecutar C-t ? para conocer los atajos.

Los importantes para empezar son:

  • C-t c: abrir una consola
  • C-t e: abrir el emacs
  • C-t !: ejecutar un comando de consolar
  • C-t C-t: volver a la ventana anterior
  • C-t w: listar las ventanas abiertas
  • C-t 0: ir a la ventana número 0 (con otros números iremos a ventanas distintas)

Para evaluar código lisp se usa C-t :. Así, podemos evaluar:

  • (+ 2 2): evalúa una suma de dos más dos
  • (loadrc): evalúa el fichero .stumpwmrc
  • (quit): sale de la sesión

Mi .stumpwmrc es realmente simple, ya que llevo muy poco tiempo utilizando este entorno, pero puede ser útil para otros principiantes como yo:

(in-package :stumpwm)

(setf *default-package* :stumpwm)

;; Cambio el prefijo C-t por C-z
(set-prefix-key (kbd "C-z"))

;; Creo el comando iceweasel
(defcommand iceweasel () ()
  "Start/Switch to Iceweasel."
  (run-or-raise "iceweasel" '(:class "Iceweasel")))

;; Ahora con C-z C-i iré al iceweasel
(stumpwm:define-key stumpwm:*root-map* (stumpwm:kbd "C-i") "iceweasel")

;; Creo el comando wikipedia
(defcommand wikipedia (search)
  ((:string "Search in Wikipedia for: "))
  "docstring"
  (check-type search string)
  (substitute #\+ #\Space search)
  (run-or-raise 
     (concat "iceweasel http://www.wikipedia.org/wiki/" search) 
     '(:class "Wikipedia")))

;; Arranca el network-manager al iniciar (para conectar vía wifi)
(run-shell-command "nm-applet --sm-disable")

Las cosas que he encontrado útiles de stumpwm son:

  • tener atajos para ir directamente al emacs, ó al navegador independientemente de cuantas ventanas tengo abiertas, no como con Alt+TAB que le tienes que dar unas cuantas veces
  • tener el fichero de configuración en lisp
  • su rapidez, especialmente vital en máquinas lentas

¿A vosotras/os que os parece?

Categorías:lisp, software libre

Tutorial de org-mode

25/09/2011 4 comentarios

Esta página es una traducción al español del tutorial original de David O’Toole. Dicha traducción fué contribuida a Worg.

Introducción

Org-mode es un gestor de información personal y una herramienta de
resúmenes para Emacs. Este documento pretende dar al lector una
primera impresión de org-mode y enseñar el uso básico con
instrucciones paso a paso y mediante pantallazos. No se pretende
reemplazar el manual, ya que solo se cubre un subconjunto de las
funcionalidades de org-mode.

Este documento también está traducido en Francés, Japonés, Chino, and
Coreano. Agradecimientos especiales a los traductores

Obteniendo org-mode

Org-mode es parte de Emacs 22 y 23, así si tiene una versión moderna
de Emacs, entonces ya lo tiene.

Si no, se puede descargar desde la web de org-mode, se descomprime y
se enlaza el load path de Emacs al directorio lisp de dicha
distribución de Org-mode:

(add-to-list 'load-path "PATH_TO_WHERE_YOU_UNPACKED_ORGMODE/lisp")

Activación

Añade lo siguiente a tu .emacs:

(require 'org-install)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)

Esto asegurará la carga de org y la definición de algunas
combinaciones de teclas. Se mostrará qué hacen "org-store-link" y
"org-agenda" más adelante en este mismo documento

Una cosa más —es mejor definir un directorio separado dónde tus
ficheros org se almacenarán. Yo recomiendo usar ~/org.

Lo básico

Esta sección ilustra el uso básico de org-mode mostrando cómo yo usé
org-mode para crear este documento.

Creando un nuevo fichero

Si se configuró el fichero de inicialización de Emacs como se sugería
arriba, Emacs debería entrar en org-mode siempre y cuando se visite o
cree un fichero con la extensión ".org"

Yo cree un nuevo fichero llamado "OrgTutorial.org" y ví el indicador
"Org" en el modeline, mostrando que había entrado en org-mode.

Lista simple de tareas

Primero introduje un headline llamado "Tasks" (Tareas) para
almacenar la tareas dentro. Esto no es necesario pero, con frecuencia,
es conveniente, especialmente si se quiere almacenar tareas separadas
del cuerpo del documento que se está escribiendo

Los títulos de primer nivel empiezan con una estrella; los de segundo
nivel con dos estrellas, y así.

En org-mode, los ítems TODO (tareas no hechas) son siempre títulos. Se
introdujo un ítem TODO para "Start new org file for tutorial" (Empezar un nuevo fichero org tutorial).

http://orgmode.org/worg/images/dto/tutorial-1.png
http://orgmode.org/worg/images/dto/tutorial-1.png

Esto es un poco tonto, porque ya se ha iniciado un nuevo fichero. Así,
márquese el ítem TODO como ítem DONE (tarea ya realizada) moviendo el
cursor a esta esa línea y pulsando C-c C-t, que ejecuta el comando
org-todo.

Aquí está el resultado:

http://orgmode.org/worg/images/dto/tutorial-2.png

Nótese cómo org-mode usa una marca de tiempo para grabar cuando un
ítem TODO fué cerrado.

Permítase añadir algunos ítems TODO más. Posicione el cursor en la
siguiente línea y pulse M-shift-RET para llamar a
org-insert-todo-heading. Se puede pulsar varias veces y añadir
varios TODOs.

http://orgmode.org/worg/images/dto/tutorial-3.png

Usando títulos para estructurar un documento

Con frecuencia el mejor camino para organizar las ideas es un
esquema. El siguiente paso es hacer un esquema de los diferentes
asuntos del tutorial. Haciendo esto, se rompe la intimidatoria página
en blanco en una serie de pequeños trozos menos
intimidatorios. Llegando entonces, a ser sencillos de rellenar.

Recuerda que una estrella da comienzo a una cabecera de primer nivel,
y dos estrellas dan comienzo a una cabecera de segundo nivel. Si se
necesita un anidamiento más profundo, ¡usa tres o más estrellas!

Aquí está lo que se ve después de hacer un esquema del documento:

http://orgmode.org/worg/images/dto/tutorial-4.png

Nótese que se marcó "Outline document" (Esquematizar el documento)
como DONE después de finalizar.

Rellenando secciones

Fácilmente se puede añadir texto un cuerpo de texto debajo de
cualquier título.

http://orgmode.org/worg/images/dto/tutorial-5.png

Enlaces a otros lugares

En la sección "Obteniendo org-mode" se necesita proveer un enlace al
sitio web de org-mode. Una sintaxis especial de corchetes es usada al
enlazar:

[[enlace][descripción]]

Observa cómo se escribió el enlace y descripción, dejando abierto el
último corchete:

http://orgmode.org/worg/images/dto/tutorial-6.png

Entonces cuando yo escribo el último corchete, el enlace "se encoge" y
simplemente muestra la descripción.

http://orgmode.org/worg/images/dto/tutorial-7.png

Pruebe a mover el cursor hasta el enlace y presione C-c C-o para
org-open-at-point (Abrir el enlace),

También se puede enlazar a ficheros locales. Pruebe visitando otro
fichero —por ejemplo, su fichero de inicialización de
emacs. Entonces pulse C-c l para llamar a org-store-link. Se verá
un mensaje acerca de que un enlace fué almacenado para la posición
actual en el fichero que se está visitando.

Entonces vuelva a su buffer org-mode y pegue el enlace usando C-c C-l para llamar a org-insert-link. (Puede necesitar presionar las
teclas de flechas para mover el scroll hasta encontrar el enlace
grabado.)

Visión de conjunto del documento

En este momento, el documento es largo y no se puede ver entero en una
sola pantalla. Org-mode hace fácil tener una visión de conjunto del
documento presionando shift-TAB.

http://orgmode.org/worg/images/dto/tutorial-9.png

Nótese que solo se muestran los títulos de primer nivel. Se puede
pulsar shift-TAB de nuevo para mostrar todos los títulos o
cabeceras, incluyento ítems TODO:

http://orgmode.org/worg/images/dto/tutorial-10.png

Pulsa de nuevo para mostrar una vista normal del documento, con los
cuerpos de cada sección:

http://orgmode.org/worg/images/dto/tutorial-11.png

Añadiendo notas a una tarea

Se puede poner tanto texto como se quiera bajo una cabecera de un ítem
TODO. De hecho, se puede tener incluso subcabecera bajo un TODO, ¡y
TODOs con TODOs!

Siendo capaz de anotar tareas hace fácil recoger enlaces relacionados
y pensamientos asociados a una tarea. Siendo capaz de anidar tarear es
bueno para modelar flujos de trabajo — con bastante frecuencia, una
tarea larga is dividida en pequeñas subtareas que se pretende marchar
según se hagan.

Saboreando funcionalidades avanzadas

Antes de finalizar, se verá brevemente las funcionalidades de org-mode
relativas a lista global de TODOs, planificación y agenda. Éstas son
usadas para combinar ítems TODO desde diferentes ficheros org
mostrándose de un modo priorizado y cronológico. También puede usarse
para ver qué tareas se completaron y cuando.

Configuración

Primero debe asignarse la variable org-agenda-files de tal modo que
org-mode conocerá qué ficheros buscar para TODOs e ítems planificados

Imagínese que ya tiene varios ficheros org —por ejemplo, uno para
trabajar, uno para casa y uno para clase.

En tal caso, se añadiría lo siguiente al fichero de inicialización de
emacs:

(setq org-agenda-files (list "~/org/trabajo.org"
                             "~/org/clase.org" 
                             "~/org/casa.org"))

La lista TODO global

Presione C-c a t para introducir la lista global todo. Org-mode
escaneará los ficheros en org-agenda-files y presentará un listado
de todas los ítems TODO abiertos:

http://orgmode.org/worg/images/dto/tutorial-16.png

Se puede mover el cursor alrededor de diferentes ítems todo, y púlsese
"t" para marcar un ítem como DONE (hecho), o pulse RET para saltar
al fichero fuente donde el TODO está localizado.

Planificando tareas y usando la agenda

Imagine que se quiere planificar "Finish document" (Finalizar documento) para hoy. Entonces, se mueve el cursor a la línea de
después del ítem TODO llamado "Finish document" y se pulsa C-c C-s

para ejecutar org-schedule. El calendario aparece, y se puede
introducir o hacer click en la fecha deseada:

http://orgmode.org/worg/images/dto/tutorial-12.png

Una vez se selecciona la fecha, org-mode inserta una marca de fecha
planificada después del ítem TODO:

http://orgmode.org/worg/images/dto/tutorial-13.png

Ahora se guarda el fichero y se pulsa C-c a a para org-agenda. Se
mostrará una vista de los ítems planificados para esa semana:

http://orgmode.org/worg/images/dto/tutorial-14.png

Ahora presione "l" (minúscula L) para activar la vista de log. Esto
muestra por pantalla todas las tareas finalizadas y sus fechas de
terminación.

http://orgmode.org/worg/images/dto/tutorial-15.png

Despedida

Éste ha sido solo un breve paseo por org-mode. Más excitantes
funcionalidades aguardan en el manual online de org-mode.

Categorías:emacs, software libre

Aprendiendo ikiwiki

15/09/2011 2 comentarios

Recientemente he descubierto ikiwiki. Y diréis ¿para qué otro wiki? pues bien a mi me resuelve muchos problemas, pero hay uno que es importante y es poder editar las entradas de mi sitio web personal directamente con mi emacs y poder administrarlas con un sistema de control de versiones, sin el desfase de usar un sitio html estático, ni el atraso de usar herramientas privativas como disqus. Así que es probable que este sitio en un futuro esté construido con ikiwiki, pero por ahora solo lo estoy evaluando. Dejo aquí mis impresiones:

¿Qué es ikiwiki?

ikiwiki is un compilador wiki. Construye páginas html para un wiki desde un fuente en el lenguajes de marcas ikiwiki (u otros).

Instalación

Muy sencillo en debian/ubuntu:

sudo apt-get install ikiwiki apache2

Y seguir los pasos de debconf para el tipo de control de version, la carpeta donde se situará el repositorio, etc.

Por tanto, también habrá que instalar un sistema de control de versiones, por defecto se usa git, aunque yo también he testeado bzr y funciona sin problemas.

En caso de elegir git:

sudo apt-get install git gitweb

Después habra que compilar un wiki local:

ikiwiki --setup /etc/ikiwiki/auto.setup

Es posible que tengas que configurar mínimamente el apache. Por ejemplo, habilitar el módulo userdir:

a2enmod userdir

O habilitar el uso de cgi.

Instalar plugins

  1. Descargar plugins desde http://ikiwiki.info/plugins/ a la carpeta ~/.ikiwiki/IkiWiki/Plugin/
  2. Especificar el lugar del fichero de configuración del wiki desde ~/.ikiwiki/wikilist (En mi caso es ~/wiki.setup)
  3. Aplicar los cambios con ikiwiki -setup /home/davidam/wiki.setup -rebuild -v

A modo de ejercicio, os proponemos que también instaleis el plugin de org-mode y de texinfo que a pesar de no ser plugins estables son poderosos :-).

Habilitar multilenguaje con po

Quienes estén familiarizados con el proceso de traducción en gnu estarán familiarizados con gettext y los ficheros .po, sino es posible echar un vistazo a Traduciendo Documentación en Texinfo con emacs y po4a

Para que nuestro sitio sea multilingüe usando ficheros .po es necesario modificar la configuración de ikiwiki y el apache.

Primero modifiquemos la configuración de ikiwiki:

  1. Habilito po en la configuración
  2. master language: en|English
  3. slave languages: es|Español
  4. PageSpec controlling which pages are translatable: index or po-test (dos páginas para comprobar que todo va bien)
  5. internal linking behavior: default

Después la configuración de Apache:

  1. Añadir la siguiente línea a por ejemplo /etc/apache2/sites-available:
    DirectoryIndex index.html index.htm index.en.html index.es.html
  2. Añadir a /etc/apache2/httpd.conf lo siguiente:
    AddType application/rss+xml;qs=0.8 .rss 
    AddType application/atom+xml;qs=0.8 .atom
    

Habilitando búsquedas

  1. Se habilita search en la configuración
  2. Al aplicar los cambios encuentro el siguiente error:
    Can't locate Search/Xapian.pm in @INC (@INC contains: /home/davidam/.ikiwiki /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 342) line 2.
    BEGIN failed--compilation aborted at (eval 342) line 2.
    
  3. Lo soluciono con:
    sudo apt-get install libsearch-xapian-perl xapian-omega

Habilitando barra lateral

  1. Habilitar sidebar en la configuración
  2. Crear una página sidebar.mdwn con el contenido que se desee

Modificando el aspecto

Lo más sencillo es habilitar themes en la configuración y elegir un tema. Pero para afinar más se puede crear un fichero local.css en el directorio raíz subirlo al repositorio e (importante) reconstruir el wiki con

ikiwiki -setup /home/davidam/wiki.setup -rebuild

Traduciendo Documentación en Texinfo con emacs y po4a

28/08/2011 3 comentarios

Texinfo es el formato de marcas estándar para documentación de GNU. Permite crear manuales en formato pdf, info, html, etc. desde un solo fichero fuente .texi con las características avanzadas que debería tener un buen manual.

Antes de familiarizarnos con los comandos del proceso de traducción instalemos los paquetes debian que vamos a utilizar:

apt-get install texlive texinfo texi2html emacs23 gettext-el po4a aspell-es dict dict-freedict-eng-spa dict-freedict-spa-eng dictionary-el dict-gcide

Si tenemos un fichero texinfo y queremos convertirlo a pdf se puede usar el siguiente comando:

texi2pdf myfile.texi

El problema con texi2pdf es que a veces no ofrece buenos mensajes de depuración, para depurar es mejor hacerlo con:

makeinfo myfile.texi

Además con este comando se crea el fichero .info

Si queremos crear un sitio web con nuestro documento podemos usar:

texi2html myfile.texi

Si se desea traducir el fichero del inglés al español u otras lenguas es posible utilizar gettext gracias a po4a. Siguiendo estos pasos:

  1. po4a-gettextize -f texinfo -m myfile.texi -p myfile.pot # Crea un fichero .pot a partir de un .texi
  2. cp myfile.pot myfile.es.po
  3. Se traduce del inglés al español abriendo myfile.es.po con emacs en modo po-mode
  4. po4a-translate -f texinfo -m myfile.texi -p myfile.es.po -l myfile.es.texi # Creamos myfile.es.texi, el texi traducido

Es probable que con el tiempo salgan nuevas actualizaciones del fichero .texi original, podemos actualizarnos con msgmerge del siguiente modo:

  1. po4a-gettextize -f texinfo -m myupdated.texi -p myupdated.pot # Crea el fichero .pot actualizado a partir del nuevo .texi
  2. msgmerge myold.es.po myupdated.pot > myupdated.es.po

Las frases en las que haya habido variaciones aparecerán como fuzzy debiendo ser debidamente revisadas.

Y ahora vemos algo de configuración del .emacs para hacer más fácil y divertida la traducción:


;;;; PO-MODE ;;;;
(require 'po-mode)
(defun iacute()
(interactive)
(insert "@'{@dotless{i}}"))
;; El atajo C-i insertará i acentuada, a la manera nativa de texinfo
(define-key po-subedit-mode-map "\C-i" 'iacute)

;; Debe cortar las líneas automáticamente
(add-hook 'po-subedit-mode-hook 'auto-fill-mode)

;;;; ASPELL ;;;;
;; Para que avise
(setq ispell-program-name "aspell"
ispell-extra-args '("--lang=es"))
(add-hook 'po-subedit-mode-hook
(lambda()
(flyspell-mode 1)))

;;;; Dictionary ;;;;
(global-set-key "\C-cs" 'dictionary-search)
(global-set-key "\C-cm" 'dictionary-match-words)

Categorías:emacs, software libre, texinfo

Gmail desde Emacs Gnus

31/07/2011 7 comentarios

Recientemente he configurado mi emacs para poder leer el correo de gmail. Básicamente es lo que viene en http://www.emacswiki.org/emacs/GnusGmail. Pero en este artículo trataré de explicarlo paso a paso y en castellano.

Gnus viene instalado con emacs, que en ubuntu 11.04 se instala de la siguiente forma:
sudo apt-get install emacs23

La configuración del .emacs para descargar correo es

;; GNUS ;;

(setq gnus-select-method '(nnimap "gmail"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-stream ssl)))

(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

;; Threads are nice!
(setq gnus-summary-thread-gathering-function
'gnus-gather-threads-by-subject)

Aparte en .authinfo es necesario meter la siguiente línea:
machine imap.gmail.com login correo@gmail.com password mipassword port 993

Ahora ya deberíamos poder descargar correo en emacs con M-x gnus. Lo primero que deberemos hacer es suscribirnos a algún grupo con la letra U. Una vez suscrito pulsamos enter en el grupo y ya podemos acceder.

Lo siguiente es poder enviar correo si usamos el smtp de gmail nuestros correos quedarán almacenados en el servidor automáticamente. La configuración es la siguiente:


;; SMTP ;;

(setq message-send-mail-function 'smtpmail-send-it
smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials '(("smtp.gmail.com" 587 "correo@gmail.com" nil))
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
smtpmail-local-domain "ubuntu")

(setq user-full-name "David Arroyo Menéndez")
(setq user-mail-address "correo@gmail.com")

No obstante, primero deberemos instalar starttls, en debian/ubuntu apt-get install gnutls-bin

Otra funcionalidad que considero vital es que autocomplete la dirección de correo electrónico. Para ello es necesario 2 modos de emacs: bbdb + google-contacts y algo de software python + gdata. En debian/ubuntu podemos hacer apt-get install python-gdata bbdb y ya solo nos faltará descargar y descomprimir en tu directorio emacs el proyecto googlecontacts.

Mi configuración en el .emacs de bbdb y google-contacts es la siguiente:


;;;; BBDB ;;;;

(setq bbdb-default-country "Spain"
bbdb-north-american-phone-numbers-p nil
bbdb-default-area-code "91"
bbdb-quiet-about-name-mismatches t
bbdb-file "~/.bbdb")

(require 'bbdb)
(bbdb-initialize)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-message)
(add-hook 'message-setup-hook 'bbdb-define-all-aliases)

;;;; Google Contacts ;;;;

(setq load-path (append load-path (list (expand-file-name "~/emacs/google"))))
(require 'google-contacts)

(setq google-contacts-user "davidam") ;;; GOOGLE USER
(setq google-contacts-code-directory "~/emacs/google/code") ;;; PATH TO THE PYTHON CODE
(setq google-contacts-directory "/tmp") ;;; TEMPORARY DIRECTORY
(setq google-contacts-auto-update t ) ;;; DEFINE IF THE CONTACTS ARE DOWNLOADED AFTER EVERY MODIFICATION

Y así automáticamente podemos autocompletar con TAB al escribir un correo desde GNUS.

Actualización (29/09/2011): Al hilo de este artículo he publicado cómo utilizar Múltiples cuentas de smtp en GNUS con msmtp

Actualización (21/10/2011): Otro artículo relacionado: Gnus + Gmail + Offlineimap y así poder leer correo de gmail en gnus también cuando se está desconectado.

Categorías:emacs, lisp, software libre

Algunos Hitos del Conocimiento Libre

No se sabe exactamente ni cómo ni cuándo empezó todo pero parece ser que fue un homínido llamado homo habilis quien tuvo la idea al ponerse de pie y empezar a usar sus manos de recoger objetos y usarlos como herramientas.

Estas herramientas se usaron de diversas formas y se enseñó a usarlas o mejorarlas a lo largo de los años pasándose el conocimiento de generación en generación de forma libre y autónoma.

Es en la Edad Media, cuando el conocimiento se concentra en las iglesias y éste debe adecuarse a los dogmas de fe, se dan los primeros intentos de restringir el libre acceso a la cultura.

En 1440 Gutemberg creó un invento llamado imprenta que quitaría el monopolio del clero sobre el saber y se lo daría a universidades y otros centros de enseñanza. Y ya en el Siglo XVIII se inventarían las primeras formulaciones del copyright. En ese mismo siglo Diderot crea la Enciclopedia, siendo un libro que buscar recoger todo el conocimiento humano.
Los primeros ordenadores digitales se crearon en la Segunda Guerra Mundial, dichos dispositivos se usaban para hacer miles y miles de cálculos y hoy es una herramienta tan potente que todavía no sabemos todo el provecho que se puede sacar de ella. Todo el mundo contribuía con sus cálculos para hacer que esa herramienta fuera mejor y mejor. Hasta que en 1972 el gobierno norteamericano obligara a IBM a distinguir entre software y hardware y eso sería el germen del software privativo y esos cálculos no se podrían mejorar más que por informáticos de la compañía que lo había creado. Es decir que un ordenador pasaría a ser una herramienta igual que lo es un martillo ¡sólo el fabricante podría cambiar el funcionamiento! A Apple y a Microsoft les encantó esa idea y compitieron por construir sistemas fáciles de usar con los que ejercer un monopolio sobre el resto de los mortales.

Casi al mismo tiempo Richard Stallman, un programador de aquel entonces se encontraba realmente frustrado cuando quiso arreglar su impresora y vió que le denegaban el código para poder hacerlo. Tener que rogarle a la corporación para que modificara ese comportamiento defectuoso hería su dignidad como programador y comprendió que este modelo impedía la libre cooperación entre programadores. Así es que decidieron hacer GNU, un sistema operativo libre como lo fueron los usos distintos de una piedra (lanza, cuchillo, etc.) donde cada cual adapta la piedra a su antojo, pues hoy cada cual modifica GNU/Linux a su antojo. La clave es una formulación del copyright para permitir el uso, la copia, la modificación y la redistribución de lo modificado.

En 2001, se crearía wikipedia con la intención de que cualquiera pudiera copiar, modificar y redistribuir el conocimiento de tipo enciclopédico. ¡La filosofía del software libre aplicada al conocimiento!

Categorías:software libre

Free Technology Academy: Aprendiendo sobre Software Libre

Ya se ha abierto el plazo para apuntarse a la Free Technology Academy se pueden cursar múltiples cursos on-line acerca de Software Libre con el patrocinio de universidades de prestigio y con vistas a hacer un futuro máster oficial.

Categorías:software libre
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.