<?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>LIBREFOREVER.COM/BLOG</title>
	<atom:link href="http://www.libreforever.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.libreforever.com/blog</link>
	<description>Informática, GNU/Linux, software libre, proyectos, guías, cosas que me sucedan, mis opiniones...</description>
	<lastBuildDate>Wed, 16 Jun 2010 14:52:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Descargar videos de VEVO en YouTube</title>
		<link>http://www.libreforever.com/blog/2010/06/16/descargar-videos-de-vevo-en-youtube/</link>
		<comments>http://www.libreforever.com/blog/2010/06/16/descargar-videos-de-vevo-en-youtube/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 14:19:23 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Descargar]]></category>
		<category><![CDATA[Guia]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VEVO]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=504</guid>
		<description><![CDATA[Desde hace ya tiempo, la mayoría de los videoclips que se pueden ver de forma gratuita en YouTube pertenecen a VEVO y no es posible descargarlos con los típico plugins que existen para Firefox y demás navegadores. La razón es que estos vídeos no son un streaming en FLV (Típico de YouTube), sino que son un streaming en un sistema llamado [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://libreforever.com/img/vevo-youtube-logo.png" alt="VEVO-YouTube" width="210" height="210" />Desde hace ya tiempo, la mayoría de los videoclips que se pueden ver de forma gratuita en YouTube pertenecen a <a title="VEVO" href="http://es.wikipedia.org/wiki/Vevo" target="_blank">VEVO</a> y no es posible descargarlos con los típico plugins que existen para Firefox y demás navegadores.</p>
<p>La razón es que estos vídeos no son un streaming en FLV (Típico de YouTube), sino que son un streaming en un sistema llamado <a href="http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol" target="_blank">RTMP</a> que permite entre otras cosas encriptar el vídeo para que no pueda ser descargado.</p>
<p>Pero como todos sabemos, no existe una protección infalible. Existe un programa llamado rtmpdump que es perfectamente capaz de descargar este tipo de vídeos , incluso si están codificados, pero resulta muy tedioso calcular todos los datos necesarios para que este programa pueda descargar un vídeo de YouTube.</p>
<p>Para facilitar definitivamente esta tarea un grupo ha desarrollado un script que hace todo esto de forma totalmente automática llamado <a href="http://code.google.com/p/get-flash-videos/" target="_blank">get-flash-videos</a>.</p>
<p>Para instalar este script:</p>
<blockquote>
<ol>
<li>Descarga el DEB desde <a href="http://code.google.com/p/get-flash-videos/downloads/list" target="_blank">aquí</a> y guárdalo en to home.</li>
<li>Abre una consola y teclea lo siguiente:
<ol>
<li>su</li>
<li>apt-get install rtmpdump libwww-mechanize-perl</li>
<li>dpkg -i get-flash-videos_*.deb</li>
</ol>
</li>
</ol>
</blockquote>
<p>Ahora que ya está instalado su uso es muy sencillo:</p>
<blockquote><p>Abre una consola y teclea:</p>
<ol>
<li>get_flash_videos URLVIDEO</li>
</ol>
<address>*En vez de URLVIDEO pegas la dirección del vídeo de YouTube.</address>
</blockquote>
<p>También se que existen webs que hacen esto pero nunca está mal poder hacerlo sin depender de ninguna web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2010/06/16/descargar-videos-de-vevo-en-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicaciones y applets de Java sin conexión en Debian</title>
		<link>http://www.libreforever.com/blog/2010/03/31/aplicaciones-y-applets-de-java-sin-conexion-en-debian/</link>
		<comments>http://www.libreforever.com/blog/2010/03/31/aplicaciones-y-applets-de-java-sin-conexion-en-debian/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 15:23:33 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Error de conexión]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JDownloader]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=432</guid>
		<description><![CDATA[Desde hace un tiempo he dejado de poder ejecutar applets Java en mi navegador web. Resulta que cada vez que intento abrir una web con aplets fallan diciéndome que no se puede acceder a la red y que no se puede leer el archivo. Si le damos a mostrar detalles aparece algo parecido a esto: [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="width: 210px; height: 210px;" title="Java" src="http://www.libreforever.com/img/orangejava.png" alt="Java" width="210" height="210" />Desde hace un tiempo he dejado de poder ejecutar applets Java en mi navegador web. Resulta que cada vez que intento abrir una web con aplets fallan diciéndome que no se puede acceder a la red y que no se puede leer el archivo. Si le damos a mostrar detalles aparece algo parecido a esto:</p>
<blockquote id="previo"><p>cargar: clase FamousCurves.class no encontrada.<br />
[...]<br />
Caused by: java.net.ConnectException: Network is unreachable<br />
[...]<br />
<a onclick="document.getElementById('codigo').style.display = ''; document.getElementById('previo').style.display = 'none';" href="#">Ver completo.</a></p></blockquote>
<blockquote id="codigo" style="display: none;"><p>cargar: clase FamousCurves.class no encontrada.<br />
java.lang.ClassNotFoundException: FamousCurves.class<br />
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:152)<br />
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)<br />
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)<br />
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:445)<br />
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:2880)<br />
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1397)<br />
at java.lang.Thread.run(Thread.java:619)<br />
Caused by: java.net.ConnectException: Network is unreachable<br />
at java.net.PlainSocketImpl.socketConnect(Native Method)<br />
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)<br />
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)<br />
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)<br />
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)<br />
at java.net.Socket.connect(Socket.java:525)<br />
at sun.net.NetworkClient.doConnect(NetworkClient.java:161)<br />
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)<br />
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)<br />
at sun.net.www.http.HttpClient.(HttpClient.java:233)<br />
at sun.net.www.http.HttpClient.New(HttpClient.java:306)<br />
at sun.net.www.http.HttpClient.New(HttpClient.java:323)<br />
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)<br />
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)<br />
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)<br />
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)<br />
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)<br />
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Applet2ClassLoader.java:458)<br />
at sun.plugin2.applet.Applet2ClassLoader.access$000(Applet2ClassLoader.java:46)<br />
at sun.plugin2.applet.Applet2ClassLoader$1.run(Applet2ClassLoader.java:126)<br />
at java.security.AccessController.doPrivileged(Native Method)<br />
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:123)<br />
&#8230; 6 more<br />
Excepción: java.lang.ClassNotFoundException: FamousCurves.class</p>
<p><a onclick="document.getElementById('previo').style.display = ''; document.getElementById('codigo').style.display = 'none';" href="#">Ocultar.</a></p></blockquote>
<p>Además no solo me han dejado de funcionar los applets en mi navegador web, sino que <strong>programas como el JDowloader se comportan de forma similar</strong>, dando error de conexión continuamente.</p>
<p>La solución consiste en desactivar el IPv6 para que el motor de Java pueda acceder a internet. Para hacerlo tan solo hay que editar el fichero <strong>/etc/sysctl.d/bindv6only.conf</strong> y cambiar la línea que dice <strong>net.ipv6.bindv6only=1</strong> por <strong>net.ipv6.bindv6only=0</strong> . Para editar el fichero se puede hacer poniendo el siguiente comando en consola como súper usuario:</p>
<ul>
<li>nano  /etc/sysctl.d/bindv6only.conf</li>
</ul>
<p>Una vez editada la línea se pulsa <strong>Ctrl+O</strong> y <strong>ENTER</strong> para guardar y <strong>Ctrl+X</strong> para salir.</p>
<p>Los efectos de este cambio no serán efectivos hasta que se reinicie el <strong>sysctl</strong> o el PC, si no quieres reiniciar todo el PC puedes poner el siguiente comando en consola como súper usuario y ya debería funcionar todo:</p>
<ul>
<li>invoke-rc.d procps restart</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2010/03/31/aplicaciones-y-applets-de-java-sin-conexion-en-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permitir cancelar fsck en el inicio</title>
		<link>http://www.libreforever.com/blog/2009/11/24/permitir-cancelar-fsck-en-el-inicio/</link>
		<comments>http://www.libreforever.com/blog/2009/11/24/permitir-cancelar-fsck-en-el-inicio/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 19:39:49 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[fsck]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=399</guid>
		<description><![CDATA[En la mayoría de distribuciones GNU/Linux, cada X inicios del sistema (montajes del disco) se realiza un scandisk para asegurar que el sistema de archivos del disco se encuentra intacto. En el caso de Ubuntu, si el sistema ha empezado a realizar dicho proceso, se puede cancelar pulsando ESC. Debían no tiene eso configurado y [...]]]></description>
			<content:encoded><![CDATA[<p>En la mayoría de distribuciones GNU/Linux, cada X inicios del sistema (montajes del disco) se realiza un scandisk para asegurar que el sistema de archivos del disco se encuentra intacto. En el caso de Ubuntu, si el sistema ha empezado a realizar dicho proceso, se puede cancelar pulsando ESC. Debían no tiene eso configurado y no permite cancelarlo de ninguna manera. Para añadir dicha funcionalidad a nuestro Debian u otra distribución que no disponga de la misma tan solo hay que añadir un par de líneas al archivo &#8220;/etc/e2fsck.conf&#8221;. Una forma de hacerlo es escribiendo lo siguiente en consola:</p>
<ul>
<li>$ su</li>
<li># nano /etc/e2fsck.conf</li>
<li>Escribe lo siguiente:
<ul>
<li>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>options<span style="">&#93;</span></span>
	<span style="color: #000099;">allow_cancellation</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> true</span></pre></div></div>

</li>
</ul>
</li>
<li>Pulsa Crtl + O para guardar el archivo y después Ctrl + X para salir del editor.</li>
</ul>
<p>A partir de ahora, podremos cancelar el scandisk pulsando Crtl + C.</p>
<p>Nota:  Si te salta el scandisk y tienes tiempo para esperar a que termine, no te recomiendo que lo canceles, pues es una garantía de que tus datos están a salvo, pero si tienes prisa, con esta configuración podrás cancelarlo sin correr ningún tipo de riesgos.</p>
<p>Technorati claim: JJS2U8HUUQNB</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/11/24/permitir-cancelar-fsck-en-el-inicio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skype 2.1.0.47 en Debian amd64</title>
		<link>http://www.libreforever.com/blog/2009/11/08/skype-2-1-0-47-en-debian-amd64/</link>
		<comments>http://www.libreforever.com/blog/2009/11/08/skype-2-1-0-47-en-debian-amd64/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 16:00:15 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Guia]]></category>
		<category><![CDATA[Skype]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=382</guid>
		<description><![CDATA[Hace bastante que salió esta versión de Skype, sinembargo, cuando me descargué el paquete para Ubuntu 64 bits y lo instalé en mi Debian 64 bits me encuentro con que al iniciar cesión se cierra el solito y suelta un error muy particular en consola: Inconsistency detected by ld.so: dl-open.c: 623: _dl_open: Assertion `_dl_debug_initialize (0, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.skype.com" target="_blank"><img class="alignleft" title="Skype TM" src="http://libreforever.com/img/skype_210.png" alt="" width="210" height="93" /></a></p>
<p>Hace bastante que salió esta versión de Skype, sinembargo, cuando me descargué el <a href="http://www.skype.com/intl/es/download/skype/linux/choose/" target="_blank">paquete para Ubuntu 64 bits</a> y lo instalé en mi Debian 64 bits me encuentro con que al iniciar cesión se cierra el solito y suelta un error muy particular en consola: <strong>Inconsistency detected by ld.so: dl-open.c: 623: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)-&gt;r_state == RT_CONSISTENT’ failed!</strong></p>
<p>Hoy me puse manos a la obra y descubrí que el problema está en que faltan las librerías <strong>libwrap0</strong> y  <strong>libgdbm3</strong> para 32 bits tal como explican en <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=546281" target="_blank">bugs.debian.org</a>.</p>
<p>Para que estas librerías estén disponibles y nuestro Skype funcione:</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Bajamos dichos paquetes</p>
<ul>
<li>
<p style="margin-bottom: 0cm;"><a href="http://packages.debian.org/squeeze/i386/libgdbm3/download" target="_blank">libgdbm3</a></p>
</li>
<li>
<p style="margin-bottom: 0cm;"><a href="http://packages.debian.org/squeeze/i386/libwrap0/download" target="_blank">libwrap0</a></p>
</li>
</ul>
</li>
<li>
<p style="margin-bottom: 0cm;">En vez de instalarlos extraeremos 	su contenido.</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Al extraer su contenido, nos 		encontraremos con otro archivo comprimido llamado <strong>data.tar.gz</strong>. 		Deberemos extraer ese archivo.</p>
</li>
</ul>
</li>
<li>
<p style="margin-bottom: 0cm;">Una vez extraído el <strong>data.tar.gz</strong> de <strong>libgdbm3</strong> deberemos copiar todos los archivos de la carpeta <strong>usr/lib</strong> a 	<strong>/usr/lib32</strong></p>
</li>
<li>En el caso de <strong>libwrpa0</strong>, deberemos copiar todos los archivos 	de la carpeta <strong>lib</strong> a <strong>/lib32</strong></li>
</ul>
<p>Si sigues esos simples pasos, ya podrás ejecutar y usar correctamente Skype en Debian 64 bits. Recuerda que para poder copiar esos archivos a las rutas especificadas debes tener derechos de root.</p>
<p>Si tienes alguna duda sobre como hacer algo, deja tu comentario preguntándola y responderé con la máxima brevedad posible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/11/08/skype-2-1-0-47-en-debian-amd64/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maldito y bendito Ubuntu.</title>
		<link>http://www.libreforever.com/blog/2009/10/29/maldito-y-bendito-ubuntu/</link>
		<comments>http://www.libreforever.com/blog/2009/10/29/maldito-y-bendito-ubuntu/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 20:43:59 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=377</guid>
		<description><![CDATA[Ya hay muy poca gente que esté metida en el mundillo de la informática y no conozca Ubuntu. Esta distribución ha logrado lo que ninguna otra había logrado nunca antes. Canonical, empresa creadora de Ubuntu, ha engendrado una distribución muy potente, combinando el mejor software y configurándolo de modo que cualquiera pueda usarlo sin necesidad [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Ubuntu" src="http://libreforever.com/img/UbuntuLogo.png" alt="" width="210" height="216" />Ya hay muy poca gente que esté metida en el mundillo de la informática y no conozca Ubuntu.</p>
<p>Esta distribución ha logrado lo que ninguna otra había logrado nunca antes. Canonical, empresa creadora de Ubuntu, ha engendrado una distribución muy potente, combinando el mejor software y configurándolo de modo que cualquiera pueda usarlo sin necesidad de tener demasiados conocimientos sobre informática.</p>
<p>El problema que veo yo en todo esto es que ya no se habla de ninguna otra distribución, Debian no existe, y eso que Ubuntu utiliza como base principal dicha distribución. Canonical a adoptado una política de marketing impresionantemente ensombresedora y adictiva. Salen versiones nuevas de Ubuntu como churros obligado a sus usuarios a realizar continuamente actualizaciones tremendamente complejas técnicamente hablando y la única razón de todo esto es dar la falsa sensación de que ellos trabajan muy duro y por eso sacan muchísimas versiones. El caso es que Debian, como muchas otras, no cambia de versión en mucho mas tiempo y, durante ese tiempo, las actualizaciones rutinarias mantienen el sistema siempre a la última.</p>
<p>Por otro lado, existen muchas otras distribuciones que funcionan muy bien e incluso mejor, yo recomendaría echarle un vistazo a Sabayon Linux, es una distribución nueva que aun no está del todo pulida pero promete ser muchísimo mas potente en general que Ubuntu. Sin embargo casi nadie conoce Sabayon, y muy pocos conocen Debian, Fedora, Open Suse, Gentoo&#8230;</p>
<p>No puedo obviar que gracias a Ubuntu, GNU/Linux supera el 1% de cuota de mercado (si no recuerdo mal), una miseria de cuota, pero es muy superior y promete crecer mucho en muy poco tiempo. Tampoco se le pueden quitar los méritos a Canonical pero no veo conveniente una monopolización de GNU/Linux entorno a Ubuntu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/10/29/maldito-y-bendito-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Checkinstall para crear nuestros propios paquetes DEB</title>
		<link>http://www.libreforever.com/blog/2009/09/23/checkinstall-para-crear-nuestros-propios-paquetes-deb/</link>
		<comments>http://www.libreforever.com/blog/2009/09/23/checkinstall-para-crear-nuestros-propios-paquetes-deb/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 19:48:48 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=364</guid>
		<description><![CDATA[No hace mucho que expliqué como compilar programas para GNU/Linux. Pues ahora voy a comentar la existencia de una herramienta que nos puede mejorar nuestra &#8220;calidad de vida&#8221; en Debian y derivados (Ubuntu, para los que no lo sepáis es derivado de Debian). La idea es muy simple, cuando instalamos una aplicación por medio del [...]]]></description>
			<content:encoded><![CDATA[<p>No hace mucho que expliqué <a title="Enlace permanente a Como compilar programas para GNU/Linux" rel="bookmark" href="http://www.libreforever.com/blog/2009/08/11/como-compilar-programas-para-gnulinux/">como compilar programas para GNU/Linux</a>. Pues ahora voy a comentar la existencia de una herramienta que nos puede mejorar nuestra &#8220;calidad de vida&#8221; en Debian y derivados (Ubuntu, para los que no lo sepáis es derivado de Debian).</p>
<p>La idea es muy simple, cuando instalamos una aplicación por medio del comando &#8220;make install&#8221; (explicado en mi guía), dicha aplicación solo puede ser desinstalada con &#8220;make uninstall&#8221; desde el código fuente de la misma y nuestro gestor de paquetes no tiene ni idea de que dicha aplicación exista. Esto último no es muy bueno y por eso siempre recomiendo instalar desde los repositorios oficiales. Pero si nos hemos compilado un programa que no está en el repositorio y queremos instalarlo como un paquete mas para poder gestionarlo desde el gestor de paquetes, Checkinstall es una solución.</p>
<p>Justo después de haber terminado la operación &#8220;make&#8221;, en vez introducir &#8220;make install&#8221;, ponemos &#8220;checkinstall&#8221;. Este nos hará un par de preguntas que podemos responder pulsando Enter simplemente y nos creará un paquete que podremos instalar y luego desinstalar desde nuestro gestor de paquetes.</p>
<p><span style="text-decoration: underline;">Un ejemplo de su uso partiendo del tar.gz con el código fuente:</span></p>
<p style="padding-left: 30px;">$ tar xfz nombre-del-paquete.tar.gz<br />
$ cd nombre-del-paquete<br />
$ ./configure<br />
$ make<br />
$ su<br />
# <strong>checkinstall</strong></p>
<p>Este método es rápido y facil, pero no el mejor, mas adelante explicaré como hacerlo al puro estilo Debian, que tiene muchísima mas miga.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/09/23/checkinstall-para-crear-nuestros-propios-paquetes-deb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMPlayer, MPlayer con entorno gráfico</title>
		<link>http://www.libreforever.com/blog/2009/09/07/smplayer_mplayer_con_entorno_grafico/</link>
		<comments>http://www.libreforever.com/blog/2009/09/07/smplayer_mplayer_con_entorno_grafico/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 10:10:37 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Mplayer]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Reproductor]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=354</guid>
		<description><![CDATA[MPlayer es un reproductor de vídeo fantástico, yo diría que el mejor reproductor de vídeo que existe y además es open source, por lo que se puede hacer de todo con este reproductor. El problema es que MPlayer se ejecuta desde consola y se maneja con atajos de teclado, para muchos puede ser la mejor [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mplayerhq.hu" target="_blank">MPlayer</a> es un reproductor de vídeo fantástico, yo diría que el mejor reproductor de vídeo que existe y además es open source, por lo que se puede hacer de todo con este reproductor. El problema es que MPlayer se ejecuta desde consola y se maneja con atajos de teclado, para muchos puede ser la mejor forma de manejar un programa pero para muchos, puede ser una forma muy engorrosa de manejar un programa. SMPlayer aporta un interfaz completo para MPlayer. Por lo que podremos disfrutar de las ventajas del entrono gráfico y las excelentes prestaciones del MPlayer.</p>
<p style="text-align: center;"><img class="aligncenter" title="SMPlayer" src="http://www.libreforever.com/img/SMPlayer.jpg" alt="" width="640" height="372" /><br />
En <a href="http://smplayer.sourceforge.net/index.php?tr_lang=es" target="_blank">la web del programa</a> hay muchísima mas información sobre el mismo y varios enlaces para descargarlo para Windows, Ubuntu e, incluso, el código fuente. Como yo uso Debian squeeze amd64, me tuve que compilar mi propia versión. Puedes bajarte mi paquete DEB desde <a href="http://www.libreforever.com/descargas/smplayer_0.6.8_amd64.deb">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/09/07/smplayer_mplayer_con_entorno_grafico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear un contador de visitas con PHP</title>
		<link>http://www.libreforever.com/blog/2009/08/31/crear-un-contador-de-visitas-con-php/</link>
		<comments>http://www.libreforever.com/blog/2009/08/31/crear-un-contador-de-visitas-con-php/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 00:10:32 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Contador de visitas]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=297</guid>
		<description><![CDATA[Hacer un contador de visitas con PHP es una tarea muy sencilla, pero si realmente deseamos contar las visitas es importante distinguir entre una visita y una vista, si nuestro contador solo se limita sumar una visita cada vez que se cargue la página (vista), tendremos un contador que marcará una visita cuando alguien entre [...]]]></description>
			<content:encoded><![CDATA[<p>Hacer un contador de visitas con PHP es una tarea muy sencilla, pero si realmente deseamos contar las visitas es importante distinguir entre una visita y una vista, si nuestro contador solo se limita sumar una visita cada vez que se cargue la página (vista), tendremos un contador que marcará una visita cuando alguien entre en nuestra web y sumará una mas por cada vez que el visitante cambie de página en la web, por lo que un solo visitante puede marcar 6 o 7 visitas, por ejemplo. Para evitar esta confusión y no engañarnos a nosotros mismos, lo mejor es usar algún método que nos permita distinguir si el visitante es nuevo o ya ha estado en nuestro sitio. Para ello, lo mejor es dejar una cookie en el navegador de nuestro visitante que caducará después de un tiempo, de modo que si entra un visitante en nuestra web y ya tiene una de nuestras cookies, no contaremos su visita y, además, actualizaremos la fecha de caducidad de dicha cookie.</p>
<p>Si no entiendes de programación en PHP pero estás interesado en añadir este contador a tu página web, vete al final del artículo y sigue las instrucciones para instalarlo en tu servidor.</p>
<p>Primero hay que buscar una forma de controlar que nuestro contador de visitas no cuente una visita cada vez que se refresca la página y para ello, lo mejor es usar cookies. Con las cookies podemos dejar una marca en el navegador de nuestro visitante para no volver a contar su visita hasta después de transcurrido un tiempo determinado por nosotros. Para establecer ese tiempo, se usa la fecha de caducidad de la cookie. Con php, esto se hace con el siguiente código:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;Visitante&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;Admin&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #666666; font-style: italic;">//Si la cookie tiene la palabra clave &quot;Admin&quot; se establece la caducidad a un año</span>
   <span style="color: #000088;">$expire</span><span style="color: #339933;">=</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">24</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">365</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Visitante&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Admin&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$expire</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$counted</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$admin</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #666666; font-style: italic;">//Si el visitante no tiene la cookie con la palabra clave &quot;Admin&quot; se establece la fecha</span>
   <span style="color: #666666; font-style: italic;">//de caducidad a 20 minutos.</span>
   <span style="color: #000088;">$admin</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$expire</span><span style="color: #339933;">=</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span>
   <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$counted</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;Visitante&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #666666; font-style: italic;">//Si el visitante ya tiene la cookie se actualiza la fecha de caducidad y se marca para</span>
      <span style="color: #666666; font-style: italic;">//no ser contada.</span>
      <span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Visitante&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Viejo&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$expire</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$counted</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #666666; font-style: italic;">//Si el usuario no tiene nuestra cookie se crea y se marca la visita para ser contada.</span>
      <span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Visitante&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Nuevo&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$expire</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$counted</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>En este momento, ya tenemos controlada la visita y nos disponemos a añadirla a un archivo de texto donde se lleva la cuenta de visitas hoy y totales. Para hacer esto se puede usar el siguiente código:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$fichero_contador</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;visitas.txt&quot;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Fichero donde se guardan los valores</span>
<span style="color: #000088;">$fichero</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichero_contador</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Abrimos el fichero para lectura</span>
<span style="color: #000088;">$leido</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichero</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Leemos la cadena</span>
<span style="color: #000088;">$visitas</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;@&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$leido</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Separamos en un array de tres elementos los datos</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;d&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>   <span style="color: #666666; font-style: italic;">// Si la fecha que hay en el fichero no es la de hoy</span>
   <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;d&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Actualizamos la fecha (ponemos la de hoy)</span>
   <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// Y ponemos las visitas de hoy a 0</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Suma la visita si se ha marcado para ser contada</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$counted</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
      <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Cierra el fichero</span>
<span style="color: #339933;">@</span><span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichero</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Reabre el fichero y actualiza los datos</span>
<span style="color: #000088;">$fichero</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichero_contador</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;w&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$junto</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;@&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$visitas</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">@</span><span style="color: #990000;">fputs</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichero</span><span style="color: #339933;">,</span><span style="color: #000088;">$junto</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//Cierra el fichero</span>
<span style="color: #339933;">@</span><span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fichero</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Si no quisiéramos que el visitante sepa la cuenta de visitas ya habríamos terminado pero vamos a escribir el código encargado de crear una imagen que podamos poner en nuestro sitio y muestre, al mismo tiempo que cuenta, las visitas.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//Comienza la renderización de la imagen</span>
<span style="color: #000088;">$dest</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">135</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$blanco</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dest</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$negro</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dest</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$gris</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dest</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">228</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">232</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">234</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">imagefill</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dest</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #000088;">$gris</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'0.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'1.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'2.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'3.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'4.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'5.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'6.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'7.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'8.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$src</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'9.gif'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Escribe el texto</span>
<span style="color: #990000;">imagestring</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dest</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Hoy'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$negro</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span></pre></div></div>

<p>Gracias a este último código añadir el contador de visitas a cualquier parte de nuestra web o nuestro blog será la tarea mas simple del mundo, es tan simple como poner un código como este:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;img title=&quot;Contador de visitas ERMes&quot; src=&quot;http://tu_web/cont/visitas.php&quot; alt=&quot;&quot; /&gt;</pre></div></div>

<p>Si te interesa usar este contador de vistas tan solo tienes que descargarte <a href="http://www.libreforever.com/descargas/cont.tar.gz">este archivo</a> y descomprimirlo en tu servidor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/08/31/crear-un-contador-de-visitas-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar driver propietario de NVIDIA</title>
		<link>http://www.libreforever.com/blog/2009/08/24/instalar-driver-propietario-de-nvidia/</link>
		<comments>http://www.libreforever.com/blog/2009/08/24/instalar-driver-propietario-de-nvidia/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 00:10:46 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Driver NVIDIA]]></category>
		<category><![CDATA[Guia]]></category>
		<category><![CDATA[Instalar]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=267</guid>
		<description><![CDATA[Instalar los driver propietarios de NVIDIA a sido siempre la opción elegida por mi debido a que siempre puedo tener la última versión y así logro mejorar el rendimiento mi NVIDIA 9600M GT que, bajo mi punto de vista, en Linux no es capaz de dar ni la mitad de lo que puede dar. El [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nvidia.es" target="_blank"><img class="alignleft" title="NVIDIA" src="http://libreforever.com/img/nvidia_210.jpg" alt="" width="210" height="163" /></a>Instalar los driver propietarios de NVIDIA a sido siempre la opción elegida por mi debido a que siempre puedo tener la última versión y así logro mejorar el rendimiento mi NVIDIA 9600M GT que, bajo mi punto de vista, en Linux no es capaz de dar ni la mitad de lo que puede dar.</p>
<p>El problema es que cada distribución hace lo que le da la gana y pone los archivos en rutas diferentes. En el caso de debian, si intentamos instalar el driver de NVIDIA usando el instalador oficial de NVIDIA es muy posible que funcione bien, pero en el caso de estar usando debian 64 bits yo me he quedado sin compatibilidad para 32 bits y debido a ello, me quedé sin poder jugar al videojuego con wine.</p>
<p>En mi caso al instalar los drivers, el instalador me decía cosas como: &#8220;WARNING: The runtime configuration check failed for library &#8216;libGL.so.xxx.xx.xx&#8217; (expected: &#8216;/emul/ia32-linux/usr/lib/libGL.so.1&#8242;, found: (not found)) &#8230;&#8221;</p>
<p>Todo esto parece tener una solución muy sencilla que consiste en engañar al instalador de NVIDIA para que encuentre las librerias de 32 bits donde el las quiere. Con los siguientes pasos nos podemos asegurar de todo está en su sitio.</p>
<ol>
<li><strong>Si tienes instalado el driver de NVIDIA libre o el de repositorio asegurate de desinstalarlo antes de empezar. ¡Es muy importante!<br />
</strong></li>
<li>Abre una consola como super usuario (root).</li>
<li>Instala las cabeceras del kernel con: <code>apt-get install linux-headers-`uname -r`</code></li>
<li>Entra en la web de NVIDIA y descargate la última versión del driver en tu home.</li>
<li>Pulsa Ctrl+Alt+F1</li>
<li>Pon <em>root</em> como nombre de usuario y ponle tu contraseña de super usuario cuando la pida</li>
<li>Pon: <code>cd /home/tu_nombre_de_usuario/</code> para entrar en tu home.</li>
<li>Es necesario parar las X y para ello pon:
<ul>
<li><code>/etc/init.d/kdm stop</code> (Si usas KDE)</li>
<li><code>/etc/init.d/gdm stop</code> (Si usas Gnome)</li>
<li>Si no sabes cual de las dos poner pones una y si te da error, pones la otra <img src='http://www.libreforever.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
</li>
<li>Ahora nos aseguramos de no tener otra versión anterior del driver instalada por este método poniendo: <code>bash NVIDIA-Linux-x86_64-xxx.xx.xx-pkg2.run --uninstall</code>
<ul>
<li>El archivo que te hallas bajado tu tendrá una numeración en el lugar que yo he puesto las &#8216;x&#8217;</li>
</ul>
</li>
<li>Pon <code>cd /emul/ia32-linux/</code>
<ul>
<li>Si te dice que la ruta no existe pon <code>mkdir -p /emul/ia32-linux/</code> y vueleve a intentarlo.</li>
</ul>
</li>
<li>Para mantener una copia de seguridad de los posibles archivos que halla en este directorio pon: <code>mv usr usr0</code>
<ul>
<li>Si se produce un error al poner este comando lo puedes ignorar</li>
</ul>
</li>
<li>Ahora vamos a recrear una estructura de directorios compatible poniendo: <code>mkdir usr &amp;&amp; ln -s /lib32 lib &amp;&amp; ln -s /usr/lib32 usr/lib</code></li>
<li>Vamos a instalar el driver de NVIDIA ahora y para ello es necesario que vuelvas a tu home poniendo: <code>cd /home/tu_nombre_de_usuario</code></li>
<li>Ahora ejecuta el instalador de NVIDIA <code>bash NVIDIA-Linux-x86_64-xxx.xx.xx-pkg2.run</code>
<ul>
<li>Sigue las instrucciones del instalador (no debería dar ningún error)</li>
<li>Si te dice que algún rollo de que las versiones del compilador no coinciden dile que no quieres abortar la instalación.</li>
<li>Si te pregunta por instalar librerías para compatibilidad con 32 bits dile que si.</li>
<li>Si te pregunta por auto configurar las X dile que si.</li>
</ul>
</li>
<li>Una vez halla terminado la instalación podrás reiniciar las X y empezar a disfrutar de aceleración 3D</li>
<li>Para iniciar las X pon:
<ul>
<li><code>/etc/init.d/kdm start</code> (Si usas KDE)</li>
<li><code>/etc/init.d/gdm start</code> (Si usas Gnome)</li>
<li>Si no sabes cual de las dos poner pones una y si te da error, pones la otra <img src='http://www.libreforever.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
</li>
</ol>
<p>Si mas adelante quieres actualizar a una versión mas nueva del driver solo tienes que seguir los pasos del 4 al 9 y del 14 al 16.</p>
<p>Suerte, y como siempre, espero haber sido de utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/08/24/instalar-driver-propietario-de-nvidia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Partir archivos en Linux</title>
		<link>http://www.libreforever.com/blog/2009/08/17/partir-archivos-en-linux/</link>
		<comments>http://www.libreforever.com/blog/2009/08/17/partir-archivos-en-linux/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:15:24 +0000</pubDate>
		<dc:creator>ERMes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Guia]]></category>
		<category><![CDATA[Partir archivos]]></category>

		<guid isPermaLink="false">http://www.libreforever.com/blog/?p=289</guid>
		<description><![CDATA[A veces es necesario partir un archivo en varios trozos para poderlo enviar por email o guardarlo en varios discos. Hacer esto en GNU/Linux es tremendamente fácil. Voy a explicar dos métodos diferentes para hacerlo: Método 1: Si las consolas te producen nauseas o ganas de suicidarte puedes optar por instalar un programa llamado HOZ [...]]]></description>
			<content:encoded><![CDATA[<p>A veces es necesario partir un archivo en varios trozos para poderlo enviar por email o guardarlo en varios discos. Hacer esto en GNU/Linux es tremendamente fácil. Voy a explicar dos métodos diferentes para hacerlo:</p>
<p><strong><span style="text-decoration: underline;">Método 1:</span></strong></p>
<p style="padding-left: 30px;">Si las consolas te producen nauseas o ganas de suicidarte puedes optar por instalar un programa llamado <em>HOZ</em> (Hacha Open Zource) que presume de ser una alternativa open source del conocido <em>HACHA</em> para windows (que se puede ejecutar perfectamente en Linux si se tiene el wine instalado, es otra opción). Para instalar <em>HOZ</em> tan solo tienes que poner en consola como súper usuario (root):</p>
<blockquote>
<ul>
<li>apt-get install hoz-gui</li>
</ul>
</blockquote>
<p style="padding-left: 30px;">Si tampoco quieres usar la consola para instalarlo puedes usar tu gestor de paquetes habitual como por ejemplo el Synaptic (en el caso de Debian y Ubuntu).</p>
<p style="padding-left: 30px;">Usar el programa es tan fácil que no creo necesario hacer una guía para su uso, pero si tienes alguna duda puedes comentarla, estaré en cantado de ayudarte.</p>
<p><span style="text-decoration: underline;"><strong>Método 2:</strong></span></p>
<p style="padding-left: 30px;">Si no te importa usar la consola, te recomiendo este método, pues usa las herramientas GNU que casi todas o todas las distribuciones traen instaladas por defecto.</p>
<p style="padding-left: 30px;">Para partir un archivo se puede usar el comando <em>split</em> como a continuación:</p>
<blockquote>
<ul>
<li>split -b<strong>4300</strong>m <strong>MiPelicula.avi</strong> <strong>MiPelicula</strong><strong>Partida</strong></li>
</ul>
</blockquote>
<p style="padding-left: 30px;">El &#8220;4300&#8243; indica que cada trozo debe ser de 4300 megas, &#8220;MiPelicula.avi&#8221; es el nombre del archivo que se quiere partir y &#8220;MiPeliculaPartida&#8221; es el nombre que tendrá cada uno de los trozos.</p>
<p style="padding-left: 30px;">El resultado de este comando serán varios archivos de 4300 megas con nombres como &#8220;MiPeliculaPartida.aa&#8221;, &#8220;MiPeliculaPartida.ab&#8221;, &#8220;MiPeliculaPartida.ac&#8221; &#8230;</p>
<p style="padding-left: 30px;">Para unirlos se usa el comando <em>cat</em>, y es aún mas fácil de usar que el <em>split</em>.</p>
<blockquote>
<ul>
<li>cat <strong>MiPelicula</strong><strong>Partida</strong><strong>.* &gt; </strong><strong>MiPelicula.avi</strong></li>
</ul>
</blockquote>
<p style="padding-left: 30px;">Creo que sobran los comentarios sobre como usar este comando <img src='http://www.libreforever.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Y esto es todo, espero haberle sido de utilidad a alguien con esta guia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.libreforever.com/blog/2009/08/17/partir-archivos-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
