<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mis chorradas &#187; informática</title>
	<atom:link href="http://mischorradas.nishilua.com/category/informatica/feed/" rel="self" type="application/rss+xml" />
	<link>http://mischorradas.nishilua.com</link>
	<description></description>
	<lastBuildDate>Wed, 25 Jan 2012 19:52:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Instalando linux en el router ADSL de Jazztel HG536+</title>
		<link>http://mischorradas.nishilua.com/2012/01/instalando-linux-en-el-router-adsl-de-jazztel-hg536/</link>
		<comments>http://mischorradas.nishilua.com/2012/01/instalando-linux-en-el-router-adsl-de-jazztel-hg536/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 19:52:50 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[hg536+]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1280</guid>
		<description><![CDATA[Tengo un router ADSL de Jazztel modelo HG536+. Como ya no lo necesito, le instalé un linux descargado de OpenWrt para poder utilizarlo como router normal (con wireless). De todos modos, como no soy ningún experto, lo que conseguí fue que enrutase las 4 conexiones de puertos RJ45 a través de la wifi mediante NAT. [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo un router ADSL de Jazztel modelo HG536+. Como ya no lo necesito, le instalé un linux descargado de OpenWrt para poder utilizarlo como router normal (con wireless).</p>
<p>De todos modos, como no soy ningún experto, lo que conseguí fue que enrutase las 4 conexiones de puertos RJ45 a través de la wifi mediante NAT.<br />
Los pasos fueron los siguientes:</p>
<p>Cargar el nuevo firmware en el router:</p>
<ol>
<li>Descargar el firmware <a title="openwrt-96348GW-generic-squashfs-cfe.bin" href="http://downloads.openwrt.org/snapshots/trunk/brcm63xx/openwrt-96348GW-generic-squashfs-cfe.bin">http://downloads.openwrt.org/snapshots/trunk/brcm63xx/openwrt-96348GW-generic-squashfs-cfe.bin</a> (internamente es Broadcom) de la página <a href="https://openwrt.org/">OpenWrt</a>.</li>
<li>Insertar un clip en el botón de reset del router, mantenerlo, y encender el router.</li>
<li>Mantener el clip hasta que el LED de <strong>power</strong> se apaga.</li>
<li>Configurar mi interfaz de red a la dirección 192.168.1.170 (o cualquier número entre 2 y 254), máscara 255.255.255.0, gateway 192.168.1.1, dns 192.168.1.1</li>
<li>Abrir en el navegador la página http://1921.168.1.1</li>
<li>Subir la imagen del firmware.</li>
</ol>
<p>Tras esto, el router tarda unos minutos en subir el firmware y se reinicia. Cuando el LED <strong>power</strong> deja de parpadear, el router está listo para configurar:</p>
<ol>
<li>Reconfigurar la interfaz a los del punto 4 anterior (al reiniciarse el router pierdo la configuración)</li>
<li>Hacer en una consola: <code>telnet 192.168.1.1</code></li>
<li>Al hacer telnet, entraremos como <em>root</em> automáticamente. Ejecutar el comando <code>passwd root</code> e indicar la nueva contraseña de root.</li>
<li>Salir mediante <code>exit</code>.</li>
</ol>
<p>Al establecer una contraseña a root, se desactiva la funcionalidad de telnet y se activa el acceso mediante ssh:</p>
<ol>
<li>Conectarse de nuevo mediante <code>ssh root@192.168.1.1</code></li>
</ol>
<p>En este punto se puede comprobar mediante <code>ifconfig</code> e <code>iwconfig</code> que no hay interfaz <code>wlan0</code>, y que hay una interfaz virtual <em>bridge</em> <code>br-lan</code>.</p>
<p>La interfaz wlan0 no aparece por un error en la carga del módulo b43. Para activarla hay que ejecutar:</p>
<pre>rmmod b43
insmod b43
ifconfig wlan0 up</pre>
<p>Al encender el router quiero que se conecte a mi router con internet por wireless, que tiene encriptación WPA. Crear el archivo de configuración para la conexión WPA-PSK. Yo lo hice en <code>/etc/wpa_supplicant.conf</code></p>
<pre>network={
  ssid="redalaqueconectarse"
  scan_ssid=1
  key_mgmt=WPA-PSK
  psk="clave"
}</pre>
<p>Ahora sólo queda configurar un script de inicio que se ejecute al final de todo el boot, y que realice lo siguiente:</p>
<ol>
<li>Eliminar la interfaz virtual br-lan</li>
<li>Borrar las iptables y configurarlas para aceptar forwardings</li>
<li>Activar la interfaz de red lan eth1 (192.168.1.1)</li>
<li>Activar la interfaz wireless wlan0</li>
<li>Conectar wlan0 al router de acceso a internet (wpa_supplicant)</li>
<li>Configurar wlan0 mediante dhcp</li>
<li>Activar NAT para que todo lo que llegue (lo que nos interesa es que afecte a lo que llegue por eth1) lo mande por NAT a wlan0.</li>
</ol>
<p>Crear el script y configurarlo para que se ejecute al inicio:</p>
<pre>touch /etc/init.d/alfinal
chmod 755 /etc/init.d/alfinal
cd /etc/rc.d/
ln -s ../init.d/alfinal S99alfinal</pre>
<p>Finalmente, Añadir todo el contenido del fichero <code>/etc/init.d/alfinal</code>:</p>
<pre>
# Eliminar la interfaz br-lan
# Como no sé exáctamente el orden en que hay que ejecutarlo,
# porque perdería la conexión ssh al hacer las pruebas,
# hago esta chapuzada... alguna de las combinaciones será la buena ;)
# También desactivar la interfaz eth1 para levantarla más tarde
ifconfig br-lan down
ifconfig eth1 down
brctl delif br-lan eth1
brctl delbr br-lan
ifconfig eth1 down
ifconfig br-lan down
brctl delbr br-lan
ifconfig eth1 down
brctl delif br-lan eth1
brctl delbr br-lan

# Borrar las iptables y permitir forwarding
iptables -F
iptables -P FORWARD ACCEPT

# Levantar eth1 y que se configure. La IP será 192.168.1.1
ifconfig eth1 up 192.168.1.1

# Activar la wireless y obtener ip
rmmod b43
insmod b43
ifconfig wlan0 up
wpa_supplicant B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
# Dejamos pasar un rato para que se conecte... a veces incluso ni
# con estas :(
sleep 15
udhcpc -i wlan0

# Activar NAT
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
</pre>
<p>Lo único malo es que si no encuentra la red wireless y no se conecta, no obtiene dirección IP 15 segundos después y es necesario reiniciar el router :\</p>
<p>Llegar a esto tuvo su trabajo&#8230; y al final no me sirvió porque la tarjeta broadcom b43 es una MIERDA y la tarjeta integrada del portátil es mejor que esta, con lo cual no gano nada para lo que yo necesitaba&#8230; pero al menos ahora tengo una &#8220;tarjeta wireles por RJ45&#8243; ;)</p>
<p>Para abrir puertos de entrada (desde la wireless hacia los puertos ethernet) mejor buscar por internet porque todavía no tengo tutorial :P</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2012/01/instalando-linux-en-el-router-adsl-de-jazztel-hg536/" data-text="Instalando linux en el router ADSL de Jazztel HG536+" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2012/01/instalando-linux-en-el-router-adsl-de-jazztel-hg536/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cargar ficheros contenidos en un .jar</title>
		<link>http://mischorradas.nishilua.com/2011/08/cargar-ficheros-contenidos-en-un-jar/</link>
		<comments>http://mischorradas.nishilua.com/2011/08/cargar-ficheros-contenidos-en-un-jar/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 12:09:34 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[carga de recursos]]></category>
		<category><![CDATA[jar]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1177</guid>
		<description><![CDATA[Para cargar ficheros contenidos en el .jar hay que utilizar el método Class.getResourceAsStream(String nombre). Este método devuelve un InputStream de manera que puedes leer los bytes con un InputStreamReader, un BufferedReader, o cargar un Properties. Para obtener la clase simplemente hay que utilizar el método getClass() que posee todo objeto por heredar de Object. El [...]]]></description>
			<content:encoded><![CDATA[<p>Para cargar ficheros contenidos en el .jar hay que utilizar el método Class.<a href="http://download.oracle.com/javase/1,5.0/docs/api/java/lang/Class.html#getResourceAsStream%28java.lang.String%29">getResourceAsStream(String nombre)</a>. Este método devuelve un <a href="http://download.oracle.com/javase/1,5.0/docs/api/java/io/InputStream.html">InputStream</a> de manera que puedes leer los bytes con un <a href="http://download.oracle.com/javase/1,5.0/docs/api/java/io/InputStreamReader.html">InputStreamReader</a>, un <a href="http://download.oracle.com/javase/1,5.0/docs/api/java/io/BufferedReader.html">BufferedReader</a>, o cargar un <a href="http://download.oracle.com/javase/1,5.0/docs/api/java/util/Properties.html">Properties</a>.</p>
<p>Para obtener la clase simplemente hay que utilizar el método getClass() que posee todo objeto por heredar de Object.</p>
<p>El nombre del recurso puede contener una ruta. Si la dirección es relativa, se toma a partir del <strong>paquete actual</strong> (pero la ruta con &#8216;/&#8217; en vez de &#8216;.&#8217;). Si la dirección es absoluta, se busca en el classpath y por lo tanto también en el propio jar.</p>
<p>&nbsp;</p>
<h3>Carga básica</h3>
<pre>//
package com.nishilua.mischorradas ;
InputStream inRelativo = getClass().getResourceAsStream("archivos/archivo.txt") ;
InputStream inAbsoluto = getClass().getResourceAsStream("/archivos/archivo.txt") ;</pre>
<p>En el primer caso (línea 3) inRelativo, se carga del directorio del jar (o del classpath): /com/nishilua/mischorradas/archivos/archivo.txt</p>
<p>En el segundo caso (línea 4) inAbsoluto, se carga del directorio contenido en el jar (o classpath): /archivos/archivo.txt</p>
<p>&nbsp;</p>
<h3>Lectura con BufferedReader</h3>
<p>Para leer archivos de texto tal vez prefiramos leer  línea por línea, por lo que es útil la clase BufferedReader:</p>
<pre>//
BufferedReader in = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/archivos/archivo.txt"))) ;</pre>
<p>&nbsp;</p>
<h3>Lectura de un fichero .properties</h3>
<p>Por último, la lectura de un fichero properties mediante el método load():</p>
<pre>//
Properties opciones = new Properties() ;
opciones.load(getClass().getResourceAsStream("/archivos/archivo.properties")) ;</pre>
<p>&nbsp;</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/08/cargar-ficheros-contenidos-en-un-jar/" data-text="Cargar ficheros contenidos en un .jar" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/08/cargar-ficheros-contenidos-en-un-jar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vídeo en HTML5</title>
		<link>http://mischorradas.nishilua.com/2011/07/video-en-html5/</link>
		<comments>http://mischorradas.nishilua.com/2011/07/video-en-html5/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 10:08:19 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webm]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1168</guid>
		<description><![CDATA[El siguiente enlace contiene una explicación detallada y genial: Dive Into HTML5 El resumen sencillo es: Utilizar como doctype: html (sin nada más) Utilizar el formato Webm (codec de vídeo VP8 y audio Vorbis) Utilizar el tag &#60;video&#62; de HTML5 Configurar en Apache el MIME type añadiendo a la configuración lo siguiente: AddType video/webm .webm [...]]]></description>
			<content:encoded><![CDATA[<p>El siguiente enlace contiene una explicación detallada y genial: <a href="http://diveintohtml5.org/video.html">Dive Into HTML5</a></p>
<p>El resumen sencillo es:</p>
<ul>
<li>Utilizar como doctype: html (sin nada más)</li>
<li>Utilizar el formato Webm (codec de vídeo VP8 y audio Vorbis)</li>
<li>Utilizar el tag &lt;video&gt; de HTML5</li>
<li>Configurar en Apache el MIME type añadiendo a la configuración lo siguiente: <code>AddType video/webm .webm</code></li>
</ul>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/07/video-en-html5/" data-text="Vídeo en HTML5" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/07/video-en-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conectando el Arduino mediante C en Linux y Windows</title>
		<link>http://mischorradas.nishilua.com/2011/06/conectando-el-arduino-mediante-c-en-linux-y-windows/</link>
		<comments>http://mischorradas.nishilua.com/2011/06/conectando-el-arduino-mediante-c-en-linux-y-windows/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 09:50:28 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1162</guid>
		<description><![CDATA[En el forum de Arduino, el usuario curro92 ha colgado un tema sobre comunicación serie con el arduino en C. Descarga el documento y software de ejemplo: Conexión serie con el arduino en C. En Arduino Playground se indican otras maneras de conectar el Arduino. Tweet]]></description>
			<content:encoded><![CDATA[<p>En el forum de Arduino, el usuario curro92 ha colgado un tema sobre <a href="http://arduino.cc/forum/index.php/topic,65230.0.html">comunicación serie con el arduino en C</a>.</p>
<p>Descarga el documento y software de ejemplo: <a href="http://mischorradas.nishilua.com/wp-content/uploads/2011/06/arduino_conexion_serie.zip">Conexión serie con el arduino en C</a>.</p>
<p>En Arduino Playground se indican<a href="http://arduino.cc/playground/Main/InterfacingWithSoftware"> otras maneras de conectar el Arduino</a>.</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/06/conectando-el-arduino-mediante-c-en-linux-y-windows/" data-text="Conectando el Arduino mediante C en Linux y Windows" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/06/conectando-el-arduino-mediante-c-en-linux-y-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[SOLUCIONADO] En Ubuntu de 64 bits el Flash Player en Firefox parpadea con rectángulos en blanco</title>
		<link>http://mischorradas.nishilua.com/2011/06/solucionado-en-ubuntu-de-64-bits-el-flash-player-en-firefox-parpadea-con-rectangulos-en-blanco/</link>
		<comments>http://mischorradas.nishilua.com/2011/06/solucionado-en-ubuntu-de-64-bits-el-flash-player-en-firefox-parpadea-con-rectangulos-en-blanco/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 19:51:39 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[flash plugin]]></category>
		<category><![CDATA[ubuntu 64bits]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1138</guid>
		<description><![CDATA[Para solucionar el problema simplemente hay que descargarse el plugin de 64 bits de flash &#8220;Square&#8221; desde Adobe Labs y descomprimirlo en la carpeta ~/.mozilla/plugins Tweet]]></description>
			<content:encoded><![CDATA[<p>Para solucionar el problema simplemente hay que descargarse el plugin de 64 bits de flash <a href="http://labs.adobe.com/downloads/flashplayer10_square.html">&#8220;Square&#8221; desde Adobe Labs</a> y descomprimirlo en la carpeta ~/.mozilla/plugins</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/06/solucionado-en-ubuntu-de-64-bits-el-flash-player-en-firefox-parpadea-con-rectangulos-en-blanco/" data-text="[SOLUCIONADO] En Ubuntu de 64 bits el Flash Player en Firefox parpadea con rectángulos en blanco" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/06/solucionado-en-ubuntu-de-64-bits-el-flash-player-en-firefox-parpadea-con-rectangulos-en-blanco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar Linux para que se puedan utilizar todos los botones del ratón</title>
		<link>http://mischorradas.nishilua.com/2011/06/configurar-linux-para-que-se-puedan-utilizar-todos-los-botones-del-raton/</link>
		<comments>http://mischorradas.nishilua.com/2011/06/configurar-linux-para-que-se-puedan-utilizar-todos-los-botones-del-raton/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 13:21:51 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[7 botones]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ratón]]></category>
		<category><![CDATA[Xorg]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1134</guid>
		<description><![CDATA[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 &#8216;evdev&#8217;, y configurar xorg.conf. En mi caso: Section "ServerLayout" Identifier     "Layout0" Screen      0  "Screen0" 0 0 InputDevice    "Keyboard0" "CoreKeyboard" InputDevice    [...]]]></description>
			<content:encoded><![CDATA[<p>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: <a href="https://wiki.archlinux.org/index.php/All_Mouse_Buttons_Working">https://wiki.archlinux.org/index.php/All_Mouse_Buttons_Working</a></p>
<p>Para ello hay que utilizar el driver &#8216;evdev&#8217;, y configurar <em>xorg.conf</em>. En mi caso:</p>
<pre>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</pre>
<p>Los valores de &#8220;ButtonMapping&#8221; son especiales para que en Firefox los botones de &#8220;ir a la derecha/izquierda&#8221; naveguen por el historial :)</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/06/configurar-linux-para-que-se-puedan-utilizar-todos-los-botones-del-raton/" data-text="Configurar Linux para que se puedan utilizar todos los botones del ratón" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/06/configurar-linux-para-que-se-puedan-utilizar-todos-los-botones-del-raton/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mapa de Minecraft con Google Maps</title>
		<link>http://mischorradas.nishilua.com/2011/05/mapa-de-minecraft-con-google-maps/</link>
		<comments>http://mischorradas.nishilua.com/2011/05/mapa-de-minecraft-con-google-maps/#comments</comments>
		<pubDate>Tue, 31 May 2011 09:45:03 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[minecraft]]></category>
		<category><![CDATA[Overview]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1125</guid>
		<description><![CDATA[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: [...]]]></description>
			<content:encoded><![CDATA[<p>Accesibles desde <a href="http://www.nishilua.com/minecraft-map">http://www.nishilua.com/minecraft-map</a>, y <a href="http://www.nishilua.com/minecraft-map/nether">http://www.nishilua.com/minecraft-map/nether</a>, se generan mediante <a href="https://github.com/brownan/Minecraft-Overviewer">Overviewer</a>.</p>
<p>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):</p>
<p><a href="http://mischorradas.nishilua.com/wp-content/uploads/2011/05/minecraft-map.sh">script de actualización del mapa</a></p>
<p>También es importante la configuración de Overviewer, settings.py:</p>
<p><a href="http://mischorradas.nishilua.com/wp-content/uploads/2011/05/settings.py">configuración de Overviewer: settings.py</a></p>
<p>y añadir la siguiente línea a /etc/cron.d/minecraft:</p>
<blockquote><p>2 0-23/2     * * *     www-data  /etc/minecraft-map.sh</p></blockquote>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/05/mapa-de-minecraft-con-google-maps/" data-text="Mapa de Minecraft con Google Maps" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/05/mapa-de-minecraft-con-google-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu y el problema de los discos duros</title>
		<link>http://mischorradas.nishilua.com/2011/05/ubuntu-y-el-problema-de-los-discos-duros/</link>
		<comments>http://mischorradas.nishilua.com/2011/05/ubuntu-y-el-problema-de-los-discos-duros/#comments</comments>
		<pubDate>Sun, 29 May 2011 14:34:34 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[hdparm]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1120</guid>
		<description><![CDATA[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. [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p><strong>La solución</strong>: 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.</p>
<p>Al fichero /etc/rc.local he añadido las siguientes líneas:</p>
<blockquote><p>hdparm -S 0 /dev/sda</p>
<p>hdparm -B 255 /dev/sda</p></blockquote>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/05/ubuntu-y-el-problema-de-los-discos-duros/" data-text="Ubuntu y el problema de los discos duros" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/05/ubuntu-y-el-problema-de-los-discos-duros/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Script de backup del servidor de Minecraft en Linux</title>
		<link>http://mischorradas.nishilua.com/2011/05/script-de-backup-del-servidor-de-minecraft-en-linux/</link>
		<comments>http://mischorradas.nishilua.com/2011/05/script-de-backup-del-servidor-de-minecraft-en-linux/#comments</comments>
		<pubDate>Thu, 12 May 2011 19:00:02 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[minecraft]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1048</guid>
		<description><![CDATA[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 &#8216;backup&#8217;, [...]]]></description>
			<content:encoded><![CDATA[<p>Basándome en el <a href="http://www.minecraftwiki.net/wiki/Server_startup_script">script de inicio</a> (en init.d) de la página de la Wiki de Minecraft, he escrito mi propio script para realizar el backup.<br />
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 &#8216;backup&#8217;, guardando los dato del directorio <code>world</code> de hoy, ayer, y antesdeayer.</p>
<p>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 <em>swappeable</em>). Para ello, hay que añadir a /etc/fstab la siguiente línea:</p>
<blockquote><p>tmpfs           /home/minecraft tmpfs rw,size=200m,uid=minecraft,gid=minecraft 0 0</p></blockquote>
<p>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.</p>
<p><strong>Atención:</strong> el comando &#8216;backup&#8217; sólo realiza copias de seguridad cuando el <strong>servidor está ejecutándose y hay usuarios jugando</strong> (también realiza copia si después de la última, aunque no haya usuarios jugando, para hacer copia de las modificaciones &#8211; flag &#8216;users_playing&#8217;). Cuando no hay usuarios jugando sólo se realizan copias de seguridad con &#8216;weekly_backup&#8217;.</p>
<p>&nbsp;</p>
<p>Crea el usuario minecraft sin que sea posible hacer login con él:</p>
<pre>adduser minecraft --disabled-login</pre>
<p>Descarga el <a href="http://mischorradas.nishilua.com/wp-content/uploads/2011/05/minecraft.sh">script de backup</a> (.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.</p>
<p>En /etc/cron.d crea el fichero<em> minecraft</em> con la siguiente información:</p>
<pre>12,42 * * * * minecraft /etc/init.d/minecraft backup
6 6 * * 3 minecraft /etc/init.d/minecraft weekly_backup</pre>
<p>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.</p>
<p>&nbsp;</p>
<p>Una mejora es copiar el fichero <a href="http://mischorradas.nishilua.com/wp-content/uploads/2011/05/minecraft_logrotate">logrotate para Minecraft</a> en /etc/logrotate.d, de modo que semanalmente rota el fichero server.log (guarda 4 semanas de copia).</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/05/script-de-backup-del-servidor-de-minecraft-en-linux/" data-text="Script de backup del servidor de Minecraft en Linux" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/05/script-de-backup-del-servidor-de-minecraft-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resalte de sintaxis de código en Moodle</title>
		<link>http://mischorradas.nishilua.com/2011/03/resalte-de-sintaxis-de-codigo-en-moodle/</link>
		<comments>http://mischorradas.nishilua.com/2011/03/resalte-de-sintaxis-de-codigo-en-moodle/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 22:33:16 +0000</pubDate>
		<dc:creator>chorradasman</dc:creator>
				<category><![CDATA[informática]]></category>
		<category><![CDATA[geshi]]></category>
		<category><![CDATA[moodle]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[restaltado de sintaxis]]></category>

		<guid isPermaLink="false">http://mischorradas.nishilua.com/?p=1010</guid>
		<description><![CDATA[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 &#60;/strong&#62; y &#60;strong&#62; cuando estemos escribiendo [...]]]></description>
			<content:encoded><![CDATA[<p>Al fin he conseguido hacer funcionar el filtro de resalte de sintaxis en moodle. Este filtro está basado en Geshi.<br />
Lo primero es instalarlo como indica la página de documentación de moodle sobre <a href="http://docs.moodle.org/en/Code_syntax_highlighting">resalte de sintasix de código</a>.</p>
<p>Para usar la funcionalidad, simplemente hay que introducir el texto entre <strong>
<pre>&lt;/strong&gt; y &lt;strong&gt;</pre>
<p></strong> cuando estemos escribiendo en el editor con formato. Yo recomiendo seleccionar todo el código escrito y <strong>ponerle como formato &#8220;preformateado&#8221;</strong>, y así la indentación con espacios la respetará (si no hacemos esto, al grabar borrará todos los espacios &#8211; menos uno).</p>
<p>Un problema que me he encontrado es que <strong>cuando el código que ponemos ocupa varias líneas</strong>, bien pulsando &#8220;enter&#8221; o &#8220;shift+enter&#8221;, el resultado se ve mal. Concretamente, pone todo el código en una misma línea y muestra el código HTML de &lt;br&gt;, &lt;p&gt;, etc&#8230;</p>
<p>La solución que encontré es modificar el fichero <em>/geshi/filter.php</em> , y en la función <em>geshi_filter_callback()</em>, modificar el array <em>$source</em> (unas líneas más abajo), quedando así:</p>
<pre>$source = str_replace(
        array('&amp;lt;', '&amp;gt;', '&amp;amp;', '&lt;br /&gt;', '&amp;nbsp;','&lt;p&gt;','&lt;/p&gt;','&lt;pre&gt;','&lt;/pre&gt;'),
        array('&lt;',    '&gt;',    '&amp;',     "\n",     ' ',     '',   "\n",  '',     ''),
$source);
</pre>
<p>De este modo, tras guardar la página, las líneas se separarán correctamente.</p>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://mischorradas.nishilua.com/2011/03/resalte-de-sintaxis-de-codigo-en-moodle/" data-text="Resalte de sintaxis de código en Moodle" data-count="horizontal">Tweet</a>]]></content:encoded>
			<wfw:commentRss>http://mischorradas.nishilua.com/2011/03/resalte-de-sintaxis-de-codigo-en-moodle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

