lunes, 23 de marzo de 2009

API LeJos en GNU/Linux con soporte para Eclipse

En esta entrada voy a mostrar como instalar la API LeJos para NXT (la versión 0.7 a día de hoy) en GNU/Linux. El conjunto de pasos es el mismo en cualquier sistema operativo GNU/Linux salvo extrañas excepciones que supongo que no se cumplirán (me refiero a paths extraños en los ficheros de eclipse por ejemplo)

Tras tener la instalación voy también a mostrar como instalar un plugin para el desarrollo de aplicaciones usando esta API en el entorno Eclipse aunque tras la instalación podréis llamar siempre a nxjc *.java, para los que estén más cómodos en vim :)

Al lio.

Lo primero es bajarse la API de la web: http://lejos.sourceforge.net/nxj-downloads.php y elegís la ultima versión, que en el momento de esta entrada es la 0.7.

Ahora movéis ese fichero tar.gz que acabáis de bajar (si es otro tipo sustituir las ordenes de descompresión por las correspondientes xD) a el path donde vamos a instalarlo. Yo por comodidad y por costumbre lo muevo a /usr/local/share/ de manera que cuando descomprima me quedare con un directorio /usr/local/share/lejos_nxj/

#Copiamos el tar.gz a /usr/local/share/
cp /path/del/archivo/targz/nombreDelArchivo.tar.gz /usr/local/share/
#Lo descomprimimos
tar zxvf /usr/local/share/nombreDelArchivo.tar.gz

Lo siguiente es ver que los archivos contenidos dentro de bin/ (dentro de la nueva carpeta que en mi caso es lejos_nxj: /usr/local/share/lejos_nxj/bin ) son ejecutables (el fichero StartUpText.bin no hace falta que sea ejecutable) para comprobarlo dentro del directorio ejecutamos:

ls -l

Y veríamos algo parecido a esto:
-rwxr-xr-x 1 root root 48096 nov 11 16:37 lejos_nxt_rom.bin
-rwxr-xr-x 1 root root 1000 nov 11 16:37 nxj
-rwxr-xr-x 1 root root 862 nov 11 16:37 nxjbrowse
-rwxr-xr-x 1 root root 319 nov 11 16:37 nxjc
-rwxr-xr-x 1 root root 784 nov 11 16:37 nxjconsole
-rwxr-xr-x 1 root root 784 nov 11 16:37 nxjconsoleviewer
-rwxr-xr-x 1 root root 799 nov 11 16:37 nxjdataviewer
-rwxr-xr-x 1 root root 627 nov 11 16:37 nxjflash
-rwxr-xr-x 1 root root 460 nov 11 16:37 nxjflashg
-rwxr-xr-x 1 root root 737 nov 11 16:37 nxjlink
-rwxr-xr-x 1 root root 793 nov 11 16:37 nxjmonitor
-rwxr-xr-x 1 root root 729 nov 11 16:37 nxjpccomm
-rwxr-xr-x 1 root root 795 nov 11 16:37 nxjsocketproxy
-rwxr-xr-x 1 root root 917 nov 11 16:37 nxjupload
-rw-r--r-- 1 root root 32527 nov 11 16:37 StartUpText.bin
Las x es que son ejecutables, como veis en el StartUpText.bin no hay x. Si no las hubiera (que lo normal es que no las haya podéis hacer un:

chmod a+x -R *
dentro de la carpeta, y después un
chmod a-x -R StartUpText.bin

para quitar los permisos de ejecución globales a StartUpText.bin

Ahora vamos a /usr/local/share/lejos_nxj/build y ejecutamos:

ant
Y listo, ya solo queda añadir los PATH. En el fichero /etc/profiles debéis añadir el nuevo PATH. Todo esto puede variar, pensar las cosas antes.
Veréis una cosa tal que así:

if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"
else
PATH="/usr/local/bin:/usr/bin:/bin:${PATH}"

añadís
añadís las siguientes lineas:

PATH="/usr/local/share/lejos_nxj/bin"
NXJ_HOME="/usr/local/share/lejos_nxj"
LD_LIBRARY_PATH="/usr/local/share/lejos_nxj/bin"


quedando así:

if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}:/usr/local/share/lejos_nxj/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:${PATH}:/usr/local/share/lejos_nxj/bin"
NXJ_HOME="/usr/local/share/lejos_nxj"
LD_LIBRARY_PATH="/usr/local/share/lejos_nxj/bin"
fi

Y ya tenéis todo listo, para comprobar que funciona como un usuario normal deberías poder ver el comando nxjc.

Ahora vamos a añadir a Eclipse un plugin para poder usar esta nueva API.

La web de descarga es esta: http://lejos.sourceforge.net/tools/eclipse/ldt/

En mi caso tengo dos Eclipse instalados, ya que Gentoo permite tener instaladas una misma aplicación pero de diferentes versiones. (Tengo la 3.2 y la 3.4, ya que el editor Visual Editor solo funciona hasta la 3.2 y me gusta también estar a la ultima) Este plugin funciona en ambas versiones así que sea cual sea la tuya debería funcionar.

Copiamos el .zip a /usr/lib/eclipse-3.2 (el path puede variar)
Y lo descomprimimos con unzip. Y ya debería el situar las carpetas en su sitio.

Para comprobar que funciona abrir el eclipse y veréis una nueva pestaña que pone LeJos.

Espero que os sea útil :)

EDITO: Para los que les sirva hay un plugin para netbeans, aquí hay una manera de instalarlo: http://homepages.feis.herts.ac.uk/~comqdhb/lego/netbeans.php

viernes, 13 de marzo de 2009

Error #132 en el WoW

Una de las cosas que siempre quise hacer cuando tubiera una grafica decente era jugar a juegos con wine. Y como no el WoW tenía que caer.

La instalacion va perfecta hasta que tachan, instalas el ultimo parche y no arranca el juego. Suelta un error y una salida que la va a leer su madre encabezada por #132. Bueno pues tras mucho buscar di con una solucion. Hay que decir que uso una NVIDIA asi que si usas una ATI o una Intel y te da este error (que creo que es solo de nvidia) no te fies de mi solucion. A mi al menos me ha ido de lujo.

En el fichero Config.wtf (xD que cachondos) que se encuentra en la carpeta WTF dentro de la de la instalacion del WoW añadis la siguiente linea:

SET gxApi "opengl"
Y listo. Ahora a subir de nivel :)