miércoles, 21 de mayo de 2008

Migrando a linux... de eMule a aMule

Hoy estoy activo. Si, es lo que tienen los dias con estrés, que no puedo desconectar. Os voy a contar como quite mi eMule y lo pase todo a una maquina linux... y encima lo controlo todo desde mi viejo Windows.

Hace tiempo me hice con un pequeño PC, una maravilla llamada Fujitsu Scenic xSP (aunque algo dopado a 800 MHz, 392 de RAM... y un HD de 80 gigas) que tenía en casa de mis padres algo olvidado, y lo he reconvertido en una Ubuntu con Gnome (XFCE no iba bien con la tarjeta intel i810 que tiene este ordenador... ni idea porque).

Una vez instalado, instale amuled, amulegui, y amuleweb (via apt-get, aptitude o synaptic... no será por opciones) y luego seguí esta guia que encontre googleando un poco (ojo no lo sigas hasta el final): Link.
Sigue hasta el paso 4 de esta guia. Una vez hecho, lanza el amulegui y pon el password que pusiste en el paso 2 de la anterior guia. Ahora puedes configurar lo que te de la gana tranquilamente y sin tener que tocar un puto archivo. OJO, que no respeta lo que hayas tocado a mano, asi que tendras que volver a activar las conexiones remotas (esto es primodial, ya que si no nada funciona), y los passwords. Si te apetece, tambien activa el interfaz web, para usarlo para fuera de tu casa, y ver tus descargar desde el curro (por ejemplo).
Tras poner todo como tu antiguo eMule, y cambiar la configuración de router para que apunte a la nueva maquina, volvemos a tu viejo Windows, y solo tienes que bajar de este FTP la última versión que veas por alli (la 2.2.0 es la que yo uso) que encontre por este foro.

Desde tu windows, conecta a tu maquina linux... y a disfrutar.

Memorias de un programador... hoy: File.islocked()

No busqueis entre las librerias de .NET... esa función no existe. Una función que nos indique si un fichero esta bloqueado por otro proceso no existe dentro de System.IO.File, y muchos pensareis, ¿para que coño la quieres?.

Pensar en concurrencia, pensar en distintos procesos en distintos programas que necesitan leer ficheros, y que uno de esos procesos, este escrito en un lenguaje que no diferencia entre "Read", "Write" ni la madre que lo pario.

Entonces este programa escrito en un lenguaje que tendría que se sacrificado en una hoguera, cada vez que lee o escribe un fichero, lo deja bloqueado hasta que se acuerda que lo tiene pillado.

Bueno, veamos que nos ofrece la .NET (v2) para detectar y evitar dicho problema. NADA... Joder, asi que toca hacer una ñapa o programarlo como dios manda (isLocked, estaria bien)... con lo que queda algo asín:


public static bool isLocked(string ruta)
{
StreamReader st;
bool lockedDAT = true;

// Este bucle nos permite esperar a que el modulo fortran logre
// escribir el fichero DAT, antes de que nosotros tratemos de abrirlo.
// Con ficheros muy grandes puede pasar que de errores.

try
{
st = new StreamReader(File.Open(ruta, FileMode.Open, FileAccess.Read));
st.Close();
lockedDAT = false;
}
catch
{
Console.Out.WriteLine("Postproceso: Fichero DAT bloqueado");
lockedDAT = true;
}
return locketDAT;


¿A que mola la ñapa?

viernes, 16 de mayo de 2008

Errores tontos con Ubuntu 8.10 (I): GDM...

Y ahora una de errores que ocurren con una Ubuntu en una maquina un poco "especial".

Si tu GDM, parece que se sale de la pantalla, es decir, que es mas grande que la resolución que tiene tu monitor, la solución está en el fichero "/etc/X11/xorg.conf" y buscar una linea que ponga "Virtual". Esa es la resolución que lee el GDM, así que tendras que cambiarla a la resolución que tengas...
Imagino que ese error se solucionará, con alguna actualización pero ahora mismo esta es la solución mas sencilla (al parecer comentar la linea no funciona).