lunes, 1 de febrero de 2010

Cerrado

Desde Abril del año pasado no escribo en este blog y mi compañero nunca escribio mucho.

Muchas cosas me han pasado desde entonces y tengo otro blog. Este seguirá abierto, pero a partir de ahora empezaré a escribir en el otro.

http://opiniongeek.wordpress.com

Gracias :)

jueves, 30 de abril de 2009

Matar tty, u otro proceso

Un error tipico (que suelo tener) es el de dejarme un sesion o dos abierta en el servidor que tenemos en la universidad para las asociaciones del cual, junto con otro compañero, soy administrador. Es un error grabe pero por desgracia muy comun. La solución a esto es bastante simple, de hecho esta entrada puede parecer un poco n00b pero estoy seguro que será util a alguien.

Lo normal en estos casos (y si quiseramos matar otro proceso), sería buscar el PID del proceso con un ps -ef y un grep, en el caso de una tty se podría buscar asi: ps -ef | grep tty ahora buscamos el PID, que es la segunda columna; y hacemos un kill -9 PID y listo. En el caso de la tty habria que fijarse no solo en la tty si no que el PID sea de una shell, vease bash o zsh. Si no, podriamos estar matando procesos dependientes de la sesion pero no la sesión en sí.

¡Espero que os sea util!

martes, 14 de abril de 2009

Ext4, kernel 2.6.29 y los bloques grandes

La semana pasada fue mi cumpleaños y por fin tengo mi deseado portatil: un Asus eee 901 20G. (En otra entrada comentaré algunas cosas del equipo).

Tras probar Xandros durante más o menos media hora, y ver que todo funcionaba, me dispuse a instalar una distro más completa y no ese juguete. Ya había tomado la decisión y tras leer la documentación detenidamente me lance a por Gentoo. Hay bastante gente que desaconseja el uso de esta distro en este tipo de equipos, pero tras usarla durante unos dias (luego formatee para probar Arch) no puedo estar mas encontra de ese opinión: le viene perfecta. EL unico problema es que lleva muchisimo tiempo compilar en un procesador tan poco potente (esto tiene solución si usas distcc)

El principal problema me surgio cuando tras terminar la instalación (despues de borrar Arch, que desde mi humilde punto de vista va de culete en este equipo) de Gentoo no me montaba dos particiones: /usr y /home que se encuentran bajo lvm en ext4

Con dmesg | tail pude ver el error:

EXT4-fs: dm-0: Filesystem with huge files cannot be mounted read-write without CONFIG_LBD.

¿El problema? Al compilar el kernel en el menu principal en “Enable the block layer” la opción “Support for large block devices and files” no estaba seleccionada. Se selecciona se vuelve a compilar y listo.

Hay que decir que esto me paso en el kernel 2.6.29-r1 que esta enmascarado por arquitectura en portage. Este kernel soporta todo el hardware que tiene mi asus 901 y tengo entendido que el resto de eee :D

Por si a alguien le interesa, cuando me asegure de que todo todo todo funciona con este kernel pondre mi .config

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 :)

lunes, 23 de febrero de 2009

Gentoo y Eclipe

Llevo un par de dias con Gentoo y estoy encantado, mucho me temo que Debian no volverá a este equipo, pero en otros si :D

No he tenido muchos problemas con Gentoo salvo con mi querido Eclipse.

Cuando iniciaba Eclipse 3.2 me aparecia una aviso:

JVM terminated. Exit code=127
/usr/bin/java
-jar /usr/lib/eclipse-3.2/startup.jar
-os linux
-ws gtk
-arch x86
-launcher /usr/lib/eclipse-3.2/eclipse
-name Eclipse
-showsplash 600
-exitdata ff002d
-vm /usr/bin/java
-vmargs
-jar /usr/lib/eclipse-3.2/startup.jar

Y tras esto se quedaba colgado y había que matarlo.

Lo primero que pensé fue: Xulrunner fijo.

Y si, es Xulrunner. Tras mucho buscar encontre dos soluciones en este blog: http://blog.ich-wars-nicht.ch

La primera que fue la que hice, consiste en remover xulrunner y y recompilar firefox sin este. La otra opcion es la de instalar un Eclipse mas moderno pero es de la rama inestable y no estoy yo muy acostumbrado a Gentoo todavia xD

En ese link viene ampliamente detallado lo que hay que hacer. Espero que le sea util a alguien, a mi me ha salvado.

sábado, 14 de febrero de 2009

Ver actualizaciones disponibles en tu movil

EDITO: Un amigo mio me ha dejado con dos palmos de narices... Me ha demostrado que me comí exageradamente la cabeza... como se nota que aun soy un primerizo en la carrera xD aquí esta su versión, que es sin duda alguna mil veces mejor:

#!/bin/bash

updates=$(aptitude search "~U" | wc -l)

if [ $updates -ge 1 ]
then
date=$(date +%H:%M -d 'today +180 seconds')
gcalcli quick "$date You have $updates updates in $(uname -n)"
fi


Animo a que useis este en lugar de el mio. Está mucho mejor hecho. Gracias Doti :)



En esta entrada voy a poner un script de mi cosecha (creo que es el segundo script que hago entero mio sin basarme en ideas de otros)

Este script básicamente lo que hace es enviarte un SMS a tu móvil con las actualizaciones disponibles de tu Debian.

Vayamos por partes:

El sistema se basa en Google Calendar y en usar gcalcli, un programa que te permite trabajar desde el Shell con Google Calendar. Este genial programa esta disponible para GNU/Linux y Mac OS X.

En Debian (al menos en sid) esta disponible en los repositorios.

aptitude install gcalcli

Eso es todo lo que necesitamos para empezar, aparte lógicamente de una cuenta de gmail y un calendario en Google Calendar.

Una vez que tengamos instalado gcalcli lo siguiente es crear en tu HOME un documento que se llame .gcalclirc y dentro poner:

[gcalcli]
user: mail sin @gmail.com
pw: tu contraseña

Lo siguiente es configurar en Google Calendar tu móvil. Es un servicio gratuito al menos en España. En la opción de notificaciones del calendario tenéis que poner recibir un SMS 1 minuto antes del evento.

Tras tener todo eso listo solo queda usar el scipt que pongo a continuación.
Está bajo licencia GPL :D


#!/bin/bash

#######################################################################
#By Alejandro Sáez Morollón #
#14/02/09 21:48 #
#######################################################################
#This program is free software; you can redistribute it and/or modify #
#it under the terms of the GNU General Public License as published by #
#the Free Software Foundation; either version 2 of the License, or #
#(at your option) any later version. #
# #
#This program is distributed in the hope that it will be useful, #
#but WITHOUT ANY WARRANTY; without even the implied warranty of #
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
#GNU General Public License for more details. #
# #
#You should have received a copy of the GNU General Public License #
#along with GNU gv; see the file COPYING. If not, write to #
#the Free Software Foundation, Inc., 59 Temple Place - Suite 330, #
#Boston, MA 02111-1307, USA. #
#######################################################################


hora=$(date +%H)
minuto=$(date +%M)
min=3
hor=1
if [ "$minuto" -ge 57 ]; then
fecha1=$(($hora+$hor))
fecha2=$(($minuto-$minuto))$(($minuto-$minuto))
else
fecha1=$hora
fecha2=$(($minuto+$min))
fi
update=$(aptitude search "~U" | wc -l)
if [ "$update" -ge 1 ]; then
host=$(uname -n)
gcalcli quick "$fecha1:$fecha2 Tiene $update actualizaciones en $host"
else
gxmessage -center -title "GcalcliEvent" -timeout 5 "No hay actualizaciones, no se enviaran datos a Google Calendar"
fi

Solo quedaría añadirlo a cron para que se haga cuando quieres.


No solo vale para esto, ni solo para Debian lógicamente. Otras utilidades serian por ejemplo ver los emails nuevos o ver los usuarios logeados. Hay mil y un posibilidades. Este script es una primer versión, se que tiene un fallo y es que no está contemplada la situación del cambio de día. En siguientes versiones lo modificare y pondré nuevas funcionalidades.

Si se os ocurren nuevas ideas y/o hacéis modificaciones me encantaría saber de ellas.

Espero que os sea útil.

domingo, 11 de enero de 2009

Otro problema con eclipse... JDK 1.6

Antes de empezar a la universidad ya usaba GNU/Linux junto con Windows y tras ver que en mi facultad se dan facilidades para el uso de plataformas que no sean Windows claramente GNU/Linux se convirtió en mi único sistema operativo. Sin embargo he de decir que no todo han sido comodidades. Si bien es cierto que hasta ahora las he solucionado todas.

Este es uno de los problemas más engorrosos que he tenido y a la par más estúpidos de solucionar. Pero que nunca me había puesto con el en serio dado que no me había presentado a la asignatura.

En CPM (Comunicación Persona-Maquina) se da entre otras cosas interfaces en java. Y siempre que ejecutaba mi código si este generaba una ventana se colgaba. No sabía por que era y es un incordio. Hasta que recientemente me di cuenta de que era cosa del JDK.

La versión 1.5 no me ha dado más que problemas así que instalé la 1.6 que era la que se usaba en clase. Sin embargo eclipse (el entorno de programación que usamos) no me cogía la nueva versión de la VM (Maquina Virtual)

Tras instalar el JDK 1.6 en Debian se instala en el path
/usr/lib/jvm/java-6-sun-1.6.0.10


Lo que tenemos que hacer es "decirle" a Eclipse en que path hay una nueva VM.
Cuando creamos un nuevo proyecto de java nos sale una ventana tal que así:

Seleccionamos la opción: Configure JRE

y aparecerá una algo tal que así: tras darle a Add.

Lo siguiente es seleccionar browser y darle el path de nuestra VM: /usr/lib/jvm/java-6-sun-1.6.0.10

Y listo. Ya tenemos nuestro eclipse con la ultima versión.

Nota: Logicamente sustituir java-6-sun-1.6.0.10 por vuestra versión correspondiente.

martes, 30 de diciembre de 2008

KDE4 en Debian Sid (SOLO PARA DEBIAN)

Antes de empezar una aclaración: Por mucho que Ubuntu tenga ya versiones con KDE4 (la Kubuntu 8.04 y la 8.10), KDE4 es experimental. Está en estado (creo) beta, aunque hasta hace poco era una alpha como una catedral. Instalar KDE4 en Debian Sid implica la utilización de los repositorios experimentales. Es decir, hay un riesgo y esto se hace bajo TU responsabilidad. Luego no es para tanto, pero si que te encontrarás con bastantes problemas y fallos. Si no estás hecho para las alphas y las betas espera unos meses a que pase a Sid y como un año a que pase a Testing.

ADVERTENCIA: No lo he probado, pero tengo entendido que no es nada aconsejable instalar KDE4 si ya tienes una KDE3. Por la seguridad de vuestro sistema lo mejor es hacer un buen backup y hacer la instalación sobre una Debian limpia (al menos de KDE3).

Personalmente siempre he sido de GNOME y luego de OpenBox, precisamente por opinar como Linus en aquel famoso flame que montó. Pero KDE nunca me llamó y mira que le he dado oportunidades. Con la llegada de KDE4 (y de una nueva gráfica que está a punto de caer en mis manos) voy a ver si las criticas y los halagos que tiene son ciertos.

Lo primero, por ahora para instalar KDE4 tienes que estar en Sid. Si no estás en Sid esto implica dos cosas, o bien que pares en este punto o bien que actualices a la rama inestable. Para actualizar edita el sources.list de tu Debian (como root lógicamente) con un:

nano /etc/apt/sources.list


Y añade las siguientes lineas:

#Repositorios de Finlandia de Debian Unstable (contrib non-free)
deb http://ftp.fi.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.fi.debian.org/debian/ unstable main contrib non-free

#Repositorios experimental de Finlandia
deb http://ftp.fi.debian.org/debian/ experimental main
deb-src http://ftp.fi.debian.org/debian/ experimental main


He añadido ya los experimental por que solo "funcionan" cuando se les llama con un comando especial. Si tu caso es como el mio que ya usas Sid lógicamente omite las primeras tres lineas (bueno el comentario te lo puedes quedar si quieres xD)

Tendrás que actualizar y lo más seguro es que reiniciar para que cargue el nuevo kernel que instalará.

Tras esto, ya está todo listo para instalar.

Para instalar un paquete de la rama experimental hay que pasarle a aptitude un parametro de la siguiente manera:

aptitude -t experimental install nombredelpaquete


Vamos a instalar TODO KDE4 de la siguiente manera:

aptitude -t experimental install kde4


Si quieres ir por partes y no instalarlo todo:

aptitude -t experimental install kde4-minimal


Si encima quieres instalar kdm (el gestor de login de KDE)

aptitude -t experimental install kdm


Yo personalmente voy a instalar lo siguiente:

aptitude -t experimental install kde4-minimal kdeplasma-addons kdenetwork kdeadmin


Espero que os sea de ayuda.
Publicado con El navegador Flock

sábado, 27 de diciembre de 2008

Flock, the social web browser.

Para mi casi el mejor navegador que hay. Ya he hablado en alguna ocasión en mi otro blog: Wiiarefrikis

Tiene muchísimas ventajas y algunas desventajas que hacen plantearte si usarlo como navegador principal.

Si no usas redes sociales y lo único que haces es navegar ocasionalmente y para mirar cuatro cosas, ni se te ocurra usarlo. Sin embargo si eres como yo que tienes muchas cuentas en muchas redes sociales y escribes en blogs y subes a Flickr y tienes muchos amigos en Youtube y en lugar de hacer tus favoritos en tu navegador lo haces en del.iciu.os... este es tu web browser.

Su única pega, es que es muy lento. Es un derivado de Firefox por lo que las extensiones van perfectamente pero consume más cantidad de recursos que este, que ya es decir, y se nota que le cuesta arrancar. Después va perfecto.

Esa pega es realmente grande, pero todo lo demás lo equilibra bastante. Si tu equipo es potente y eres como he dicho antes, deberías plantearte probarlo al menos.

Una de sus grandes ventajas es que, al igual que su padre Firefox, es multiplataforma. Sin embargo no lo encontraras en los repositorios ni de Debian ni de Ubuntu (bueno, no lo sé de este ultimo pero me da a mi que no, ya preguntaré) ni en ninguna distribución que yo sepa (creo que en Guadalinex...). Bueno, tampoco es importante, vamos a instalarlo a la antigua y mucho mejor.

Antes de empezar hay que aclarar un punto. El programa se llama flock pero, ya hay un programa que se llama flock en Debian. Y cuando terminemos ¿de alguna manera tendremos que ejecutarlo no? Lo que yo he hecho es llamar a mi programa flock-browser. Pero podéis ponerle el nombre que querrais siempre y cuando no uséis uno ya usado.

Al lío:

1.- Bajarse el programa. Se encuentra aquí. Yo me voy a bajar la versión en español que ahora mismo es la 1.2.6. Si para cuando hagáis este "tutorial" hay otra no tenéis por que preocuparos, serán los mismos pasos cambiando el nombre.

2.-Una vez descargado, el siguiente paso es descomprimirlo. Abrimos un terminal y nos situamos en el path donde esta el .tar.gz que acabamos de bajar. Recordad que es con

cd /path/del/archivo


Lo descomprimimos con:

tar xvfz flock-1.2.6.es-ES.linux-i686.tar.gz


Y ahora deberíamos tener una carpeta que se llame flock. En mi caso la he puesto en el escritorio.

3.- Movemos la carpeta al directorio donde se instalará. Yo voy a instalarlo en /opt/
Recordar que esto se tiene que hacer como root.

mv flock /opt/


Después creamos (como root) un enlace simbólico a /usr/bin/flock-browser. Es en este paso donde si queréis cambiar el comando por el cual llamareis al programa debéis hacerlo. En lugar de flock-browser podéis poner lo que os de la gana.

ln -s /opt/flock/flock /usr/bin/flock-browser


Seguimos como root y le vamos a cambiar el propietario:

chown -R root:root /opt/flock


Despues de esto el programa ya está listo. Y se ejecutaría, en mi caso con flock-browser. Sin embargo a mi me dio un error por que me faltó las librerías libstdc++5. En Debian es tan facil como

aptitude install libstdc++5


Luego solo quedaría añadirlo al menú y darle iconos. Si estáis en GNOME con editar el menú y añadirlo listo. Y en OpenBox con añadirlo a obmenu más de lo mismo. Sencillo sencillo.

Por cierto, en deviantart hay canal de flock con cosas muy guapas.
Publicado con El navegador Flock