Archive

Archive for the ‘informática’ Category

Configurar Linux para que se puedan utilizar todos los botones del ratón

June 19th, 2011 1 comment

Tengo un ratón de 7 botones (Logitech USB Laser Mouse) y al final he conseguido configurar el Xorg para poder utilizar todos los botones gracias al tutorial: https://wiki.archlinux.org/index.php/All_Mouse_Buttons_Working

Para ello hay que utilizar el driver ‘evdev’, y configurar xorg.conf. En mi caso:

Section "ServerLayout"
  Identifier     "Layout0"
  Screen      0  "Screen0" 0 0
  InputDevice    "Keyboard0" "CoreKeyboard"
  InputDevice    "Evdev Mouse" "CorePointer"
  Option         "Xinerama" "0"
EndSection

Section "InputDevice"
  Identifier     "Evdev Mouse"
  Driver         "evdev"
  Option         "Name" "Logitech USB Laser Mouse"
  Option         "Buttons" "7"
  Option         "Protocol" "auto"
  Option         "Device" "/dev/input/by-id/usb-Logitech_USB_Laser_Mouse-event-mouse"
  Option         "Emulate3Buttons" "no"
  Option         "ZAxisMapping" "4 5"
  Option         "ButtonMapping" "1 2 3 4 5 8 9"
EndSection

Los valores de “ButtonMapping” son especiales para que en Firefox los botones de “ir a la derecha/izquierda” naveguen por el historial :)

Categories: informática Tags: , , ,

Mapa de Minecraft con Google Maps

May 31st, 2011 No comments

Accesibles desde http://www.nishilua.com/minecraft-map, y http://www.nishilua.com/minecraft-map/nether, se generan mediante Overviewer.

El script de actualización, que limita el tiempo de cpu del generador a un 10% (para que el servidor no se caliente mucho y para que haga otras cosas también al mismo tiempo):

script de actualización del mapa

También es importante la configuración de Overviewer, settings.py:

configuración de Overviewer: settings.py

y añadir la siguiente línea a /etc/cron.d/minecraft:

2 0-23/2     * * *     www-data  /etc/minecraft-map.sh

Categories: informática Tags: ,

Ubuntu y el problema de los discos duros

May 29th, 2011 2 comments

En el servidor he detectado que [kjournald2] escribe cada pocos segundos en disco. Tras investigar me he encontrado con un problema peor: ubuntu está configurado para aparcar demasiado el brazo del disco duro, lo que en poco tiempo (un par de años) podría hacer que el disco duro de mi servidor, encendido 24 horas, falle.

La solución: hacer que el disco duro nunca deje de girar. Los discos duros NO fallan ni por uso ni por temperatura, sino que fallan a menudo por problemas de aparcar y desaparcar el brazo lector.

Al fichero /etc/rc.local he añadido las siguientes líneas:

hdparm -S 0 /dev/sda

hdparm -B 255 /dev/sda

Categories: informática Tags: ,

Script de backup del servidor de Minecraft en Linux

May 12th, 2011 No comments

Basándome en el script de inicio (en init.d) de la página de la Wiki de Minecraft, he escrito mi propio script para realizar el backup.
En mi script hay que indicarle el directorio donde quieres que meta los backups (ha de existir), y después mediante cron se ejecuta periódicamente el script con la opción ‘backup’, guardando los dato del directorio world de hoy, ayer, y antesdeayer.

Dado que minecraft realiza muchísimas escrituras en disco, he puesto el script para que se ejecute en un punto de montaje tmpfs (memoria RAM swappeable). Para ello, hay que añadir a /etc/fstab la siguiente línea:

tmpfs           /home/minecraft tmpfs rw,size=200m,uid=minecraft,gid=minecraft 0 0

De este modo, en /home/minecraft-ondisk se guarda la copia en disco físico. Al iniciar el servidor (/etc/init.d/minecraft start), se copia el contenido de disco a /home/minecraft (memoria RAM). Al apagar el servidor (/etc/init.d/minecraft stop), se copia de ram a disco. También se realizan copias a disco cuando se hacen copias de seguridad.

Atención: el comando ‘backup’ sólo realiza copias de seguridad cuando el servidor está ejecutándose y hay usuarios jugando (también realiza copia si después de la última, aunque no haya usuarios jugando, para hacer copia de las modificaciones – flag ‘users_playing’). Cuando no hay usuarios jugando sólo se realizan copias de seguridad con ‘weekly_backup’.

 

Crea el usuario minecraft sin que sea posible hacer login con él:

adduser minecraft --disabled-login

Descarga el script de backup (.sh), y colócalo en init.d/ así como configura el rcN.d/ que te corresponda. En mi caso, rc2.d/ como S99minecraft; en rc0.d y rc6.d como K01minecraft.

En /etc/cron.d crea el fichero minecraft con la siguiente información:

12,42 * * * * minecraft /etc/init.d/minecraft backup
6 6 * * 3 minecraft /etc/init.d/minecraft weekly_backup

De este modo, se harán copias de seguridad cada 30 minutos (durante como mucho 72 horas, pero asegurando sólo 48 horas de backup), y una copia semanal cada miércoles.

 

Una mejora es copiar el fichero logrotate para Minecraft en /etc/logrotate.d, de modo que semanalmente rota el fichero server.log (guarda 4 semanas de copia).

Categories: informática Tags: ,

Resalte de sintaxis de código en Moodle

March 19th, 2011 No comments

Al fin he conseguido hacer funcionar el filtro de resalte de sintaxis en moodle. Este filtro está basado en Geshi.
Lo primero es instalarlo como indica la página de documentación de moodle sobre resalte de sintasix de código.

Para usar la funcionalidad, simplemente hay que introducir el texto entre

</strong> y <strong>

cuando estemos escribiendo en el editor con formato. Yo recomiendo seleccionar todo el código escrito y ponerle como formato “preformateado”, y así la indentación con espacios la respetará (si no hacemos esto, al grabar borrará todos los espacios – menos uno).

Un problema que me he encontrado es que cuando el código que ponemos ocupa varias líneas, bien pulsando “enter” o “shift+enter”, el resultado se ve mal. Concretamente, pone todo el código en una misma línea y muestra el código HTML de <br>, <p>, etc…

La solución que encontré es modificar el fichero /geshi/filter.php , y en la función geshi_filter_callback(), modificar el array $source (unas líneas más abajo), quedando así:

$source = str_replace(
        array('&lt;', '&gt;', '&amp;', '<br />', '&nbsp;','<p>','</p>','<pre>','</pre>'),
        array('<',    '>',    '&',     "\n",     ' ',     '',   "\n",  '',     ''),
$source);

De este modo, tras guardar la página, las líneas se separarán correctamente.