Archive for January, 2008

El regreso…

January 22, 2008

Tras varios días en España para pasar las vacaciones de Navidad y poder disfrutar de la familia y los amigos (los otros, que aquí siempre se quedan algunos), un día esquiando, varios haciendo turismo para enseñarle a un amigo americano mi ciudad y alrededores, fiestas inolvidables, un examen que espero aprobar, un viaje en un avión demasiado apretado todavía bajo los efectos del alcohol, el día 18 volví  a mi casita de Virum en Dinamarca.

Como no podía ser de otra manera, al llegar había preparada una fiestecilla, era el cumpleaños de Gemma y aunque estábamos pocos Erasmus aquí, se montó una buena fiesta, con mucha comida (panninis, tostaditas, kisches, tortillas de patata…), por supuesto estuvo la típica cartulina, que ya es típica como regalo, mucho alcohol y como las buenas fiestas en la residencia un buen Karaoke, esta vez con puntuaciones (era el SingStar) y cabe destacar actuaciones muy buenas por parte de la señorita Lili. Destacaría también mi actuación con Arturito en la canción de “Sin documentos” pero creo que el alcohol me hacía ver una realidad distinta.

El sábado hice la compra y pasamos la tarde viendo una película en casa de Isa, la película era “Una casa de locas” mala traducción de la producción hispano-francesa titulada “L’auberge espagnole” donde se narra la historia de un chico francés que viene de Erasmus a España y todos los problemas y fiestas que conlleva, a decir que la película no refleja exactamente la realidad que vivimos nosotros aquí, pero es graciosa y para pasar una tarde con los amigos es bastante recomendable.  Luego volvimos a casa y aunque estábamos muy cansados para salir, la cosa se fue animando y poco a poco nos entonamos con ayuda del Sr. José Cuervo y decidimos salir a altas horas de la noche, fuimos a Copenhague, a nuestro templo particular llamado KølerBar hasta que los cerramos y ya nos volvimos.

El domingo, tras tres días de intensa fiesta tocó dencansar, así que me lo pasé en la cocina, haciendo un bizcocho para un amigo (que era su cumple) y de palique. Por la noche celebramos el cumpleaños con unas crêpes y unas copitas de vino, por la noche una película en el cuarto y a dormir a altas horas de la madrugada, que estando de vacaciones es lo que apetece.

Y hoy, como todos tenían que trabajar, he decidido dedicarme al hogar y me he pegado cuatro horitas reparando bicletas para tener varias de repuesto para cuando viene gente de fuera. Luego comida fácil que no hay ganas de exquisiteces y por la tarde más recados y a cuidar del hogar que había que limpiarlo un poquito.

En resumen, que la vuelta ha sido como me esperaba, muy buen ambiente y volver a ver a mucha gente que se ha echado de menos, ya que tras cuatro meses conviviendo día a día se hacía duro. Aunque algunos de los que se fueron ya no van a volver y se les echará de menos, espero volverlos a ver cuando vengan de visita (MaryKate, sabes que va por ti) .

Controlador automático de los rates del MLDonkey

January 10, 2008

Bueno, pues como estos días estoy por España y tengo poco que contar (me pego todo el día estudiando, o mal estudiando para ser sinceros). Voy a poner un post acerca de como automatizar las rates del MLDonkey. Es un script que hice hace mucho tiempo y que he encontrado hoy haciendo limpieza en el ordenador, es muy útil si tenéis varios ordenadores en casa, entre ellos un servidor corriendo el MLDonkey y queréis que cuando alguien más se conecte a la red, el servidor deje de utilizar todo el ancho de banda disponible y se establezcan los rates fijados.

El script se llama mldonkeyBand2 y si decidís cambiarle el nombre tendréis que modificar las líneas 84,88,138… del script. Está sin licencia, podría ser GPL aunque prefiero declararlo como dominio público y si alguien hace alguna modificación (mejora), que me lo comuniqué por favor.

Está bastante comentado así que no pongo ninguna explicación, de todos modos si tenéis alguna duda ¡no dudéis en preguntarme! 🙂 (Se ve bastante feo debido a que no consigo dominar el editor html, además he tenido que añadir # para en lugar de usar saltos de linea… grrrrr)


#!/bin/bash
# Script wich test the current number of host in the LAN and
#change MLDonkey bandwidth depending on them.
#
# Writed by: Jaime Bosque (aka) KetS
# e-mail: jaboto (at) gmail.com
#
#Requirements:
# awk, nmap, telnet & MLdonkey :)
#
#Known issues:
# if we are alone in the LAN and we start the current script
# our download rates will be the one set in MLDonkey at the time
# of starting the script.
#
# Number of Host when MLDonkey will run with all the bandwidth
#(2 means current machine and router).
HOSTS=2
LAN=192.168.62
#
# MLDonkey bandwidth limits (0 means all the bandwidth)
MAX_UP=0
MAX_DOWN=0
MIN_UP=2
MIN_DOWN=6
#
# MLDonkey User and Password
USER=admin
PASSWORD=jaime
#
# Server Machine settings of telnet server
IP=localhost
PORT=4000
#
# Variable for output messages (not used anymore
current=""
#
statusMLDonkey(){
state=`ps ax | awk '/mlnet/ {if ($5 == "./mlnet") print $1}' | wc -l`
#state 0 means not running
#state 1 means running
}
#
#lanBeforeState 0 means we weren't alone
#lanBeforeState 1 means we were alone
lanBeforeState=1
#
numberBefore=0
lanChanged(){
hostsnow=$1
if [ $numberBefore -ne $hostsnow ];then
# echo "Something has changed in the LAN"
if [ $hostsnow -gt $HOSTS ];then
# echo "We are not alone in the LAN"
if [ $lanBeforeState -eq 0 ];then
echo "We do nothing"
return 11
else
# echo "We were alone but not now"
# echo "We set the rate to LOW"
lanBeforeState=0
return 22
fi
fi
if [ $hostsnow -le $HOSTS ];then
# echo "We are alone in the LAN"
if [ $lanBeforeState -eq 1 ];then
# echo "We do nothing"
return 11
else
# echo "We weren't alone but now yes!"
# echo "We set the rate to hig"
lanBeforeState=1
return 33
fi
fi
fi
# echo "LAN hasn't changed"
}
start(){
check
}
check(){
if [ -e mldonkeyBand2.pid ]; then
echo "ERROR: mldonkeyBand2 already running" >&2
exit 0
else
echo $$ > mldonkeyBand2.pid
run
fi
}
run(){
while true; do
statusMLDonkey
if [ "$state" == "1" ]; then
numberHosts=`nmap -sP $LAN.* | awk /$LAN/ | wc -l`
# echo "Number of hosts in LAN: $numberHosts"
lanChanged $numberHosts
returned=$?
if [ $returned = 33 ]; then
#Let's change the rates to high!
{
sleep 1
echo "auth $USER $PASSWORD"
sleep 2
echo "set max_hard_upload_rate $MAX_UP"
sleep 2
echo "set max_hard_download_rate $MAX_DOWN"
sleep 2
echo "q"
}| telnet $IP $PORT
current="high bandwidth mode"
fi
if [ $returned = 22 ]; then
#Let's change the rates to low!
{
sleep 1
echo "auth $USER $PASSWORD"
sleep 2
echo "set max_hard_upload_rate $MIN_UP"
sleep 2
echo "set max_hard_download_rate $MIN_DOWN"
sleep 2
echo "q"
}| telnet $IP $PORT
current="low bandwidth mode"
fi
numberBefore=$numberHosts
echo "Sleeping 20 seconds"
sleep 20
else
#MLDonkey is not running we wait a bit...
sleep 30
fi
done
}
status(){
if [ -e mldonkeyBand2.pid ]; then
read pid < mldonkeyBand2.pid
echo "mldonkeyBand2 is running as pid $pid"
return 1
else
echo "mldonkeyBand2 is not running"
return 0
fi
}
stop(){
status
running=$?
if [ $running -ne 0 ]; then
read pid < mldonkeyBand2.pid
kill $pid
rm mldonkeyBand2.pid
else
echo "mldonkeyBand2 is not running"
fi
}
#
case "$1" in
'start')
start;;
'status')
status;;
'stop')
stop;;
*)
echo "Use $0 with { start | status | stop }" >&2;;
esac
#
exit 0

Para usarlo simplemente hacerlo correr con ./mldonkeyBand2.sh start . Aunque yo lo que hago, al ejecutarlo en una máquina remota donde no quiero utilizar logs ni que se muera el proceso al cerrar mi consola es:


$> nohup ./mldonkeyBand2.sh start > /dev/null &

Recordad que para que sea ejecutable tenéis que darle permisos de ejecución:


$> chmod +x mldonkeyBand2

Control remoto con Nokia N70

January 5, 2008

Este blog no prometía nada de informática y Linux pero como se supone que tiene que reflejar mis actividades voy a comentar una que llevaba bastante tiempo rondándome por la cabeza y así sirve para que a otros no les pase lo mismo.

Hace tiempo que trasteo con los móviles, el bluetooth y el ansia de poder controlar mi ordenador mientras estoy tirado en la cama. Conseguí hacerlo con mi anterior móvil, un SonyEricsson T610 y ahora que tengo un Nokia N70, se suponía que todo iba a ser mucho más fácil pero no lo ha sido, así que voy a explicar más o menos como he conseguido hacerlo.

Para empezar diré que hay muchas maneras y programas para hacerlo pero tras mucho buscar y probar, el único que me daba resultados medio decentes era el PyS60RemoteControl que sirve para cualquier móvil capaz de interpretar Python. No entraré en detalles de como instalarlo, ya que se puede encontrar en la página del programa y en los readmes que lo acompañan. Sin embargo a la hora de la configuración ha sido bastante complicado, así que aquí expongo como hacerlo funcionar ya que en la web del programa no hay casi ninguna explicación.

Una vez bajado lo primero que hay que hacer es configurar el programa, para ello se utiliza el archivo PyS60RemoteControl.conf, simplemente hay que tocar el primer bloque de código, donde dice ‘connections’:

{ 'connections': { 'bluetooth': { 'classname': 'Bluetooth',
'host': '00:80:5A:20:4E:F7',
'port': 0},
'emulator': { 'classname': 'Socket',
'host': '127.0.0.1',
'port': 33000},
'serial': {'classname': 'Serial', 'port': 12},
'socket': { 'classname':'Socket',
'host': '0.0.0.0',
'port': 33000}},

Lo único que hay que especificar es, donde dice host, poner nuestra dirección MAC del dispositivo bluetooth del ordenador, se puede sacar haciendo un ‘hcitool dev’

Después de hacer esto ya se puede conseguir la conectividad entre el ordenador y el móvil, pero probablemente sólo funcione el plugin del XMMS.

Si queremos poder utilizar el móvil para emular el ratón y el teclado (que se puede hacer pero en ningún sitio viene explicado como y me he tenido que buscar la vida), lo único que hay que hacer es tener soporte en el kernel para ‘user level driver support’ que se encuentra en:


Device Drivers --->
Input device support --->
Miscellaneous devices --->
User level driver support

Da igual ponerlo incrustado en el kernel o como módulo, pero si lo ponéis como módulo, acordaros de cargarlo mediante el comando ‘modprobe uinput’ y agregarlo al /etc/modules (o usar la herramienta modconf que lo agregará directamente al cargarlo la primera vez). Gracias a esto podéis usar el móvil para controlar el ordenador al hacer presentaciones o chorradillas así.

Para poder controlar el VLC no hay que nadar nada extraño excepto a la hora de arrancar el programa para ver los videos, agregar la siguiente opción ‘–extraintf http’ que arrancar el servidor http. A mi por defecto me utilizar el puerto 8080, así que tendréis que cambiar en el archivo de configuración del VLC el puerto, osea que el archivo ‘plugins/VLC.conf’ quedaría así


...
'http_host': 'localhost:8080',
...

Ahora ya podéis ver los videos tirados en la cama y subir y bajar el volumen, cambiar entre fullscreen mode o normal, pausar, avanzar… ¡a disfrutar!

Aun así sigo sin conseguir hacer funcionar:

  • Que se vea la pantalla del ordenador en el móvil (se supone que al utilizar el ratón se tendría que ver).
  • Configurar el plugin del ratón para que responda a mis teclas y no a las que vienen por defecto.

¡Espero que os sirva de ayuda!