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 OpenCV en Trisquel GNU/Linux


Hace poco en la UNIversidad me vi en la necesidad de usar OpenCV (Open Source Computer Vision Library) para un proyecto, al principio me compliqué un poco con la instalación, luego de un par de tropiezos logré que funcione correctamente y por si tal vez alguien tenga la misma duda de como realizar una correcta instalación es que escribo esta instalación en 10 pasos.

1.- Primero tenemos que instalar los paquetes necesarios para poder hacer las funciones de procesar imágenes, trabajar con vídeo, etc. Para eso instalamos los siguientes paquetes mediante el apt:

– Instalamos los paquetes necesarios para descargar, compilar y configurar el OpenCV:

apt-get install build-essential subversion libgtk2.0-dev cmake pkg-config 

– Además, instalamos una seria de bibliotecas para trabajar con el OpenCV:

apt-get install libpng12-0 libpng12-dev libpng++-dev libpng3
apt-get install libpnglite-dev libpngwriter0-dev libpngwriter0c2
apt-get install zlib1g-dbg zlib1g zlib1g-dev
apt-get install libjasper-dev libjasper-runtime libjasper1
apt-get install pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools
apt-get install libjpeg8 libjpeg62-dev libjpeg8-dbg libjpeg-progs
apt-get install ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev
apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0  libgstreamer0.10-dev
apt-get install libxine1-ffmpeg libxine-dev libxine1-bin
apt-get install libunicap2 libunicap2-dev
apt-get install libdc1394-22-dev libdc1394-22 libdc1394-utils
apt-get install swig
apt-get install libv4l-0 libv4l-dev
apt-get install python-numpy 

Además de las anteriormente mencionadas instale algunas otras para que no salga error con el “cmake” que haremos mas adelante.

apt-get install libgstreamer-plugins-base0.10-dev libjpeg62-dev libswscale-dev 

2.- Entramos en la carpeta que usaremos para trabajar, en mi caso usaré la carpeta “/home/urpi/svn/” que es equivalente a “~/svn/” .

cd ~/svn/ 

3.- Luego descargamos el OpenCV, para esto tenemos dos opciones:

– Descargar la última versión de OpenCV del repositorio central (trunk):

svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk 

– Descargar la última versión probada de OpenCV (tested):

svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot 

4.- Continuaremos el ejemplo con la primera opción (la otra es similar). Entramos a la carpeta principal del proyecto descargado.

cd ~/svn/trunk/opencv/ 

5.- Creamos la carpeta “release” para ahí compilar el proyecto, luego entramos en ella.

mkdir release
cd release/ 

6.- A continuación ejecutamos “cmake” y comprobamos que no nos muestre errores para continuar con la instalación, si falta algún paquete instalarlo antes de continuar.

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON .. 

7.- Luego de que comprobamos que no hay errores continuamos compilando e instalando el OpenCV:

make
sudo make install 

8.- Para que el sistema reconozca la ruta de la biblioteca ejecutamos lo siguiente:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 

9.- Ahora, para probar que todo salió correctamente entramos a la carpeta de los binarios ejecutables y probamos el “cxcoretest” (debería darnos todo OK):

cd bin/
./cxcoretest 

10.- Luego también podemos compilar y probar tres de los ejemplos predefinidos en C que vienen con el OpenCV:

cd ../../samples/c/
. build_all.sh

./delaunay
./facedetect lena.jpg
./bgfg_segm tree.avi 

Notas adicionales:

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.