GNU-social-mode para Emacs mediante OAuth


Este post es similar a uno anterior sobre Identi.ca-mode para Emacs, pero con la diferencia que ahora la conexión va ser mediante OAuth (ademas del cambio de nombre del modo para Emacs).

Teniendo GNU Emacs y Git instalado, hacemos lo siguiente:

1.- Descargamos GNU Social mode para Emacs desde http://git.savannah.gnu.org/cgit/gnu-social-mode.git mediante Git.

git clone git://git.sv.gnu.org/gnu-social-mode.git

2.- Para hacer la conexión mediante OAuth descargamos emacs-oauth mediante Git.
Ojo: Si lo instalamos mediante ELPA o lo compilamos puede que te de error al usarlo debido a un bug existente.

git clone https://github.com/psanford/emacs-oauth

3.- Copiamos gnu-social-mode y emacs-oauth a nuestro directorio de Emacs.

cp -r gnu-social-mode emacs-oauth ~/.emacs.d/

4.- Para poder hacer uso de OAuth tenemos que generar primero nuestras claves de consumidor en la instancia en la que estamos registrado. Para eso iniciamos sesión y en la sección de configuración registramos la aplicación. La dirección va a ser algo similar a SERVIDOR/settings/oauthapps, donde SERVIDOR va a ser el dominio donde estés registrado. Luego de registrar la aplicación hacemos clic en este registro para ver los valores de «Consumer key», «Consumer secret», «Request token URL», «Access token URL» y «Authorize URL».

5.- Ahora modificamos nuestro archivo de configuración de Emacs y colocamos lo siguiente:

;; Emacs OAuth
(add-to-list 'load-path "~/.emacs.d/emacs-oauth")
(require 'oauth)

;; GNU Social mode
(add-to-list 'load-path "~/.emacs.d/gnu-social-mode/")
(require 'gnu-social-mode)
(setq gnu-social-username "TU_USUARIO")
(setq gnu-social-server "SERVIDOR")
(setq gnu-social-port 443)

;; OAuth settings
(setq gnu-social-auth-mode "oauth")
(setq gnu-social-mode-oauth-consumer-key "TU_CONSUMER_KEY")
(setq gnu-social-mode-oauth-consumer-secret "TU_CONSUMER_SECRET")
(setq gnu-social-request-url "TU_REQUEST_TOKEN_URL")
(setq gnu-social-access-url "TU_ACCESS_TOKEN_URL")
(setq gnu-social-authorize-url "TU_AUTHORIZE_TOKEN_URL")

Tenemos que reemplazar TU_USUARIO con el usuario que tenemos registrado (en mi caso ovruni), SERVIDOR con el dominio donde estamos registrados (en mi caso quitter.se), los parámetros de OAuth los reemplazamos segun los detalles mencionados en el punto anterior (punto 4).

6.- Ahora, con la sesión iniciada en el servidor abrimos Emacs e ingresamos a gnu-social-mode mediante «M-x gnu-social-mode» (Entiéndase el M-x como el pulsar Alt+x en el teclado). Al ser la primera vez nos va a abrir la pagina web para autorizar la aplicación, aceptamos y nos va a generar un código de seguridad. Por otro lado en Emacs nos va decir que presionemos Enter si pudimos ingresar a la pagina para autorizar la aplicación, entonces presionamos Enter.

7.- Luego de eso Emacs nos va a pedir que ingresemos el código de seguridad generado, entonces ingresamos dicho código.

gnu-social-mode-enter-code

8.- Luego ya estamos listos para usar gnu-social-mode en Emacs mediante OAuth.

gnu-socia-mode-emacs

Notas adicionales:

  • Supongo que este post puede servir tambien mediante identi-mode cambiando algunos nombres de variables, pero no lo he probado.
  • Se debe de haber generado automáticamente un archivo en «~/.SERVIDOR-TU_USUARIO-oauth-token» donde se almacena tu clave de acceso de OAuth.
  • Para mas información sobre comandos puede ver las notas adicionales de mi anterior post

Auto Java Complete mode para GNU Emacs


1.- Descargamos los archivos de ajc-java-complete mediante git

git clone https://github.com/whitypig/ajc-java-complete.git

2.- Movemos la carpeta descargada a «~/.emacs.d/»

mv ajc-java-complete ~/.emacs.d/

3.- Entramos a la carpeta «ajc-java-complete» y ejecutamos ant para compilar los archivos

cd ~/.emacs.d/ajc-java-complete && ant

ajc-java-complete-ant

Esto nos debe de generar un archivo de nombre «Tags.jar» y una carpeta de nombre «target», la cual contiene los archivos de java compilados.

4.- Entramos a la carpeta «target/classes/main/java», donde se encuentran los archivos compilados

cd target/classes/main/java/

5.- Ejecutamos el siguiente comando para buscar las clases y etiquetarlas

java -cp "/usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar:." TagsMain

ajc-java-complete-java-cp

6.- Nos va a pedir la confirmación para continuar, le decimos que sí (escribimos «y») y esperamos.

7.- Esto nos va a generar un mensaje con las clases encontradas y etiquetadas, ademas nos dirá que se ha creado el archivo «~/.java_base.tag» , el cual contiene las etiquetas.

8.- Luego copiamos el siguiente código en nuestro archivo de configuración «~/.emacs»

(add-to-list 'load-path "~/.emacs.d/ajc-java-complete/")
(require 'ajc-java-complete-config)
(add-hook 'java-mode-hook 'ajc-java-complete-mode)
;; (add-hook 'find-file-hook 'ajc-4-jsp-find-file-hook)
(setq ajc-tag-file-list (list (expand-file-name "~/.java_base.tag")))

9.- Ahora reiniciamos GNU Emacs y podemos ver el auto completado en Java al escribir un archivo java.

GNU Emacs con Auto Java Complete

holamundo-emacs

Más información:

  • Archivo Install del programa ajc-java-complete

Notas:

  • Se requiere tener previamente instalado auto-complete mode and yasnippet mode en GNU Emacs.
  • Según la distribución que tengas, la ruta al archivo «rt.jar» mencionada en el paso 5 puede variar, en este caso lo he realizado en Parabola GNU/Linux-libre.
  • En caso desees buscar mas clases (por ejemplo si desarrollas aplicaciones para Android), deberás agregar el archivo jar correspondiente (tendrás que separarlo mediante dos puntos de la ruta del archivo rt.jar)

Yasnippet mode en Emacs


Yasnippet es un sistema de plantillas que nos permite escribir una abreviatura y automáticamente expandir  según las plantillas definidas. Este paquete viene con plantillas para lenguajes como C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS, entre otros. A continuación veamos como instalarlo:

1.- Descargamos yasnippet desde su página en https://github.com/capitaomorte/yasnippet (para GNU Emacs 23 pueden descargar el archivo yasnippet-0.8.0.tar.gz y para Emacs 24 pueden descargar el archivo yasnippet-0.9.0-beta.tar.gz )

Continuaremos los siguientes pasos con el archivo la versión de Yasnippet 0.8.0, pueden cambiar solamente el valor de la versión si instalan en GNU Emacs 24.

2.- Descomprimimos el archivo descargado y los movemos a la carpeta ~/.emacs.d/ :

tar xzvf yasnippet-0.8.0.tar.gz && mv yasnippet-0.8.0 ~/.emacs.d/

3.- Escribimos lo siguiente en nuestro archivo de configuración de GNU Emacs en ~/.emacs

(add-to-list 'load-path "~/.emacs.d/yasnippet-0.8.0")
(require 'yasnippet)
(yas-global-mode 1)

4.- Reiniciamos GNU Emacs y con esto ya tenemos yasnippet mode listo para usar 😀 .

Más información:

Notas:

Sistema de paquetes para GNU Emacs


Desde la versión 24 de GNU Emacs viene viene incorporado un instalador de paquetes que permite descargar e instalar paquetes de una manera mas sencilla mediante una librería llamada package.el . Cada paquete es un programa para GNU Emacs que ademas contiene información como nombre, descripción, versión, dependencias, entre otras.

ELPA : Archivos de paquetes de Emacs Lisp

Para trabajar con este instalador existen diferentes archivos de paquetes ELPA que viene a ser algo similar a los repositorios en las diferentes distribuciones de GNU/Linux. Entre los repositorios ELPA conocidos existen:

Instalación en GNU Emacs 23

Tal como mencione en un inicio este sistema de paquetes viene por defecto en la versión 24 de GNU Emacs, si deseamos instalarlo en la versión 23 tendremos que seguir los siguientes pasos:

1.- Primero descargamos el archivo package.el

wget http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el

2.- Copiamos el archivo a nuestro directorio con los demás modos de Emacs instalados, en mi caso en la carpeta «~/.emacs.d/» (sin comillas)

cp package.el ~/.emacs.d/

3.- A continuación, escribimos en el archivo ~/.emacs lo siguiente:

(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)

4.- Luego ya podemos ingresar a emacs y ver la lista de paquetes existentes pulsando «M-x package-list-packages» (Entiéndase el M-x como pulsar Alt+x en el teclado, ademas no usar las comillas)

emacs-m-xpackage-list-packages

Mas información:

Modo paquete en GNU Emacs

Desde el entorno gráfico:

package-emacs

Desde la consola (emacs -nw):

packages-emacs-nw

modo auto-complete : Autocompletado para Emacs


Este modo como su nombre lo dice nos permite auto-completar palabras con las que estamos trabajando haciéndonos fácil la reutilización de estas en nuestro trabajo.

1.- Primero descargamos por consola el auto-complete desde su página web:

wget http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.tar.bz2

2.- Segundo descomprimimos el paquete descargado:

tar xjf auto-complete-1.3.1.tar.bz2

3.- Desde GNU Emacs pulsamos «M-x load-file» (Entiéndase el M-x como pulsar Alt+x en el teclado, además no usar las comillas)

emacs-m-x-load-file

4.- Ubicamos el archivo instalador desde la ruta descargada (en mi caso está en ~/auto-complete-1.3.1/etc/install.el) :

emacs-m-xload-file_toauto-complete

5.- Nos preguntará la ruta a instalarse el modo de auto-completado (en mi caso he dejado la ruta que dan por defecto):

emacs-install-to

6.- Luego de terminar la instalación, abrimos el archivo de configuración de GNU Emacs en ~/.emacs y escribimos los siguiente

(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)

7.- Finalmente reiniciamos GNU Emacs y con esto ya tendremos el modo de autocompletado listo 😀 .

Más información:

Nota: Desde GNU Emacs 24 se puede instalar con el sistema de paquetes de GNU Emacs (por defecto) desde MELPA con el nombre de auto-complete

Instalar y usar w3m en GNU Emacs


Entre las diversas funcionalidades de GNU Emacs se encuentra el poder usarlo como un navegador web, haciendo uso para esto del paquete w3m, el cual es un navegador web basado en texto.

1.- Primero descargamos el emacs-w3m por consola desde cvs:

cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login
CVS password:  #No colocamos ningún password, solo le damos Enter
% cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m

2.- Copiamos el emacs-w3m en nuestro directorio con los demás modos de emacs instalados por nosotros, en mi caso en la carpeta «~/.emacs.d/» (sin comillas)

cp emacs-w3m - rf ~/.emacs.d/

3.- Ahora entramos al directorio para comenzar con la instalación:

cd ~./emacs.d/emacs-w3m/

4.- Si no existe el archivo «configure» tendremos que crearlo (deberá tener el paquete «autoconf» instalado previamente):

autoconf

5.- Ya con el archivo «configure» ejecutamos los siguientes comandos para instalarlo:

./configure
make
sudo make install

6.- Para terminar la instalación, escribimos en el archivo ~/.emacs lo siguiente:

(add-to-list 'load-path "~/.emacs.d/emacs-w3m/")
(require 'w3m-load)

7.- Luego de guardar esos datos, abrimos el GNU emacs y entramos al w3m con «w3m-browse-url» :

8.- Nos pedirá que ingresemos la pagina, podremos entrar a http://www.gnu.org 😀

Notas adicionales:

  • Para poder ver las imagenes escribir en el archivo «~/.emacs» lo siguiente: «(setq w3m-default-display-inline-images t)» (sin comillas)
  • Para poder usar las cookies en las paginas que necesiten, agregar en el «~/.emacs» : «(setq w3m-use-cookies t)»
  • Para mayor información sobre el uso de w3m desde GNU Emacs revisar la documentación oficial o colocar «M-x w3m» dentro de GNU Emacs.
  • Información completa del proyecto emacs-w3m en su web oficial.

GNU Emacs con w3m

Desde el entorno gráfico:

Desde la consola (emacs -nw):

P.D.: La instalación se hizo en Trisquel GNU/Linux, asi que es probable que funcioné en cualquier derivado de Debian.

ERC : Cliente de IRC para GNU Emacs


ERC es tal vez el modo de GNU Emacs mas sencillo de usar para una persona que recién se anima a entrar al fascinante mundo de GNU Emacs 😀 . Este cliente viene por defecto en las instalaciones de GNU Emacs posteriores a la versión 22.1 .

Para usarlo solo abrimos GNU Emacs e ingresamos al modo llamado erc de la siguiente forma:

1.- Pulsamos «M-x erc» (Entiéndase el M-x como pulsar Alt+x en el teclado, ademas  no usar las comillas)

2.- A continuación se nos ira preguntando por datos para realizar la conexión: Servidor IRC, puerto IRC, usuario, contraseña.

3.- Luego ya podemos continuar usando comandos de IRC, tal y como se usan en otros clientes. Por ejemplo, para ingresar al canal de chat llamado #gnu-es , usamos «/join #gnu-es» (sin comillas).

Mas información:

ERC desde Emacs

Desde el entorno gráfico:

Desde la consola (emacs -nw):

P.D.: Las capturas de pantalla se hicieron desde GNU Emacs 23.1.1 en la distribución Trisquel GNU/Linux .

Identi.ca mode para Emacs


Como dije en un post anterior, GNU Emacs sirve para muchas cosas, entre ellas el poder usarlo para leer y portear en nuestras cuentas de identi.ca, para esto tendremos que usar el identica-mode. A continuación les explico los pasos a seguir para poder intalarlo.

1.- Verificamos que tenemos instalado el Emacs.

2.- Descargamos la ultima versión del identica-mode desde su pagina de http://git.savannah.gnu.org/cgit/identica-mode.git .

3.- Descomprimimos el archivo descargado y copiamos el archivo identica-mode.el a la carpeta «~/.emacs.d/» (sin comillas).

 tar xzvf identica-mode.tar.gz && cp identica-mode/identica-mode.el ~/.emacs.d/ 

4.- Ahora modificamos nuestro archivo de configuración de Emacs ubicado en  «~/.emacs» (en el caso no lo tengas, puedes crearlo) y en colocamos lo siguiente:

 ;;; Identi.ca mode
(add-to-list 'load-path "~/.emacs.d/")
(require 'identica-mode)
(setq identica-username "yourusername")
(setq identica-password "yourpassword")
(global-set-key "\C-cip" 'identica-update-status-interactive)
(global-set-key "\C-cid" 'identica-direct-message-interactive) 

Tendremos que haber reemplazado «yourusername» y «yourpassword» por los datos de nuestra cuenta, en mi caso «ovruni» y «**********» .

5.- Ahora, en el caso tu no estés usando identi.ca, sino un servidor personalizado con el software statusnet, entonces tu deberías agregar también:

 (setq statusnet-server "myserver.com") 

6.- Luego de guardar esos datos, ya estamos listos para usarlo, abrimos Emacs y lo usamos: «M-x identica-mode» (Entiendase el M-x como el pulsar Alt+x en el teclado).

Notas adicionales:

  • Para poder ver los iconos de cada usuario presionar la tecla «i» .
  • Para enviar un nuevo mensaje usar: «C-c C-s» (entiendase C-c como el pulsar Ctrl+c en el teclado, lo mismo luego para la «s») .
  • Para enviar un re-dent, presionas C-c, luego das enter, luego te ubicas en el mensaje a re-dentear y en el estado saldrá el mensaje para el re-dent.
  • Para mas información sobre comandos para identica-mode, revisar el blog de Daniel Saldaña, creador del proyecto.
  • Si deseas realizar le conexión mediante OAuth puedes revisar mi siguiente post sobre esto.

Emacs con Identica-mode:

Desde el entorno grafico:

Identica-mode en Emacs

Desde la consola (emacs -nw):

P.D.: La instalación se hizo en Trisquel GNU/Linux, asi que es probable que funcione en cualquier derivado de Debian.

GNU Emacs


Logo Emacs

Hace unos meses comencé a usar el GNU Emacs y he quedado encantado, ahora algunos se preguntarán que es GNU Emacs y porque algunos desarrolladores hablan bien de el (algunos otros tal vez al contrario).

GNU Emacs inicio siendo solo un editor de texto que fue escrito por Richard Stallman junto con Guy Steele por el año de 1975, en la actualidad existen varias versiones de Emacs, pero GNU Emacs es el EMACS (Editor MACroS para el TECO) la original.

Si bien GNU Emacs comenzó siendo un editor de texto, debido al uso de Emacs Lisp (un dialecto del lenguaje de programación Lisp) al ser este extensible es en la actualizad una herramienta útil para un gran número de tareas.

Con GNU Emacs es posible editar un conjunto de lenguajes de programación al existir un sin número de modos, estos modos nos permitirán usarlo como navegador web, administrador de archivos, reproductor multimedia, cliente de mensajería instantánea, cliente para microblog, cliente irc, lector de noticias, calculadora, calendario, jugar (tetris, pong, entre otros), además de un largo etcetera.

Debido a sus multiples usos algunos desarrolladores a modo de broma aluden a la creación de la iglesia de Emacs, en la cual Richard Stallman interpreta a San Ignucio, en la cual se dice que no hay dioses, pero si santos y que no existe el celibato.

Para entender como es el uso de GNU Emacs dejo algunos paginas que he encontrado:

  • EmacsWiki, pagina con información sobre el uso de emacs y sobre todo sobre los modos usados en Emacs.

Espero que este articulo introductorio sobre GNU Emacs haya sido de su agrado. mas adelante estaré colocando sobre algunos modos en GNU Emacs que he venido usando :D.

, cliente de mensajería instantánea