<?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>El rincón de Zerial &#187; ocio</title>
	<atom:link href="http://blog.zerial.org/tag/ocio/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerial.org</link>
	<description>Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio</description>
	<lastBuildDate>Tue, 03 Jan 2012 00:13:53 +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>Asaltando un sitio de series online</title>
		<link>http://blog.zerial.org/seguridad/asaltando-un-sitio-de-series-online/</link>
		<comments>http://blog.zerial.org/seguridad/asaltando-un-sitio-de-series-online/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 00:33:35 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[series]]></category>
		<category><![CDATA[sitios vulnerables]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1545</guid>
		<description><![CDATA[De aburridos, junto con E.A.S (o xwall), nos dedicamos a buscar un sitio que brinde el servicio de series de en linea para encontrar la forma de tomar prestadas todas las series alojadas en el servidor. Imaginense algo como YouTube, pero tan vulnerable que fuese posible extraer todos los videos que hay en la red. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1546" title="geekthief" src="http://blog.zerial.org/wp-content/uploads/2010/02/geekthief.jpg" alt="" width="100" height="100" />De aburridos, junto con E.A.S (o xwall), nos dedicamos a buscar un sitio que brinde el servicio de series de en linea para encontrar la forma de tomar prestadas todas las series alojadas en el servidor. Imaginense algo como YouTube, pero tan vulnerable que fuese posible extraer todos los videos que hay en la red.<br />
Bien, nuestro objetivo fue un sitio de series de animé en línea llamado &#8220;<a href="http://efectoanime.com" target="_blank"><em>Efecto animé</em></a>&#8221; que, mediante el sitio <em><a href="http://www.satanick.net" target="_blank">Satanick.net</a> </em>logramos descargar todas las series y capítulos que se servían.</p>
<p><strong>La teoría</strong> es sencilla, la idea era encontrar un link directo a los distintos archivos multimedia o bien un enlace a algun directorios que los contenga, para luego descargar todo el contenido del directorio.<br />
<strong>El fallo</strong> por parte de ellos fue dejar que se liste el contenido de directorios, de esta forma pudimos tener acceso a informacón como la siguiente:</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/02/listing_thundercats.png"><img class="aligncenter size-medium wp-image-1548" title="listing_thundercats" src="http://blog.zerial.org/wp-content/uploads/2010/02/listing_thundercats-235x300.png" alt="" width="235" height="300" /></a></p>
<p>Luego, con un poco de magia, simplemente descargamos el contenido de todo ese directorio.</p>
<p><span id="more-1545"></span></p>
<p>Todo fue gracias al sitio &#8220;<em>Satanick</em>&#8221; el cual contiene un flash que provee al usuario poder ver series en línea, <span style="text-decoration: line-through;">afortunadamente</span> lamentablemente si vemos el código fuente nos encontramos con la siguiente sorpresa:</p>
<pre name="code" class="html">

<embed id="mpl" name="mpl" src="http://satanick.fxanime.org/wp-content/uploads/utilidades/player10.swf" width="800" height="460" type="application/x-shockwave-flash" quality="high" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" flashvars="&amp;file=http://efectoanime.com/server/dn0te/06.mp4&amp;logo=http://satanick.net/wp-content/uploads/2010/01/tondr.png&amp;#&amp;backcolor=111111&amp;image=http://satanick.fxanime.org/wp-content/uploads/2009/10/canavassata.jpg&amp;frontcolor=cccccc&amp;lightcolor=00aeff&amp;controlbar=over&amp;volume=100&amp;autostart=true"></embed>
<input type="button" value="Ir a lista de capitulos" onclick="window.location.href='http://satanick.net/?page_id=3692'" />
</pre>
<p>Miren detenidamente el código a ver si encuentran algo que nos ayude a nuestro propósito. Encontramos:</p>
<p><strong>file=http://efectoanime.com/server/dn0te/06.mp4</strong></p>
<p>Con esto ya podemos deducir que todos los videos se encuentran en la URL http://efectoanime.com/server/XXX, donde XXX corresponde al nombre de la serie. Como vimos en la imágen que les mostré anteriormente (donde se listaban los archivos del directorio thundercats/), está permitido listado de archivos de un directorio. Nuestro amigo <strong>wget</strong> será la salvación, ya que con el parametro <strong>-r</strong> es posible descargar un directorio.</p>
<p>Bien, ahora nos falta automatizar el proceso. Las URL de Satanick, donde se encuetran los videos, son de la forma http://satanick.com/?page_id=XXX, por lo que podemos asumir que cada ID corresponde a una página y en cada página es posible que encontremos links como el que les acabo de mostrar (el html de más arriba). Entonces mi idea fue crear un script que recorriera todas las páginas desde XXX hasta XXX+n. Pensando que si lo hago desde 0 se iba a demorar una eternidad, solo lo hice desde el 3000 hasta el 10000, luego cada página examinada deberá ser <em>parseada</em> y se debe encontrar un patrón que nos permita obtener la URL donde se encuentran los videos.<br />
Yo lo hice de la siguiente forma:</p>
<p><code>for x in $(seq 3000 10000); do wget -O - http://satanick.net/?page_id=$x |grep "http://efectoanime.com/server" |awk -F '&amp;amp;' {'print $2'}&gt;&gt; lista_videos_satanick; done</code></p>
<p>Si lo queremos ver más bonito y en forma de &#8220;script&#8221;:</p>
<pre name="code" class="c">#!/bin/bash
for x in $(seq 3000 10000);
do
   wget -O - http://satanick.net/?page_id=$x |grep "http://efectoanime.com/server" |awk -F '&amp;' {'print $2'}>> lista_videos_satanick;
done</pre>
<p>El archivo &#8220;<em>lista_videos_satanick</em>&#8221; va a guardar todas las URL que encuentre y quedarás más o menos así:</p>
<blockquote><p>file=http://efectoanime.com/server/hades/h29.mp4<br />
file=http://efectoanime.com/server/hades/h29.mp4<br />
file=http://efectoanime.com/server/hades/h30.mp4<br />
file=http://efectoanime.com/server/hades/h30.mp4<br />
file=http://efectoanime.com/server/hades/h31.mp4<br />
file=http://efectoanime.com/server/hades/h31.mp4<br />
file=http://efectoanime.com/server/hades/h31.mp4<br />
file=http://efectoanime.com/server/thundercats/Th71.mp4<br />
file=http://efectoanime.com/server/thundercats/Th71.mp4<br />
file=http://efectoanime.com/server/thundercats/Th71.mp4<br />
file=http://efectoanime.com/server/thundercats/Th72.mp4<br />
file=http://efectoanime.com/server/thundercats/Th72.mp4<br />
file=http://efectoanime.com/server/thundercats/Th72.mp4<br />
file=http://efectoanime.com/server/thundercats/Th73.mp4<br />
file=http://efectoanime.com/server/thundercats/Th73.mp4<br />
file=http://efectoanime.com/server/thundercats/Th73.mp4<br />
file=http://efectoanime.com/server/thundercats/Th74.mp4<br />
file=http://efectoanime.com/server/thundercats/Th74.mp4
</p></blockquote>
<p>Lo único que debemos hacer es quitarle el principio &#8220;file=&#8221; y quitar las líneas repetidas:<br />
<code>sed -i 's/file=//g' lista_videos_satanick</code><br />
Nos quedará algo así:</p>
<blockquote><p>http://efectoanime.com/server/shippuden/Shippuden_144.mp4</p>
<p>http://efectoanime.com/server/bl34ch/B255.mp4</p>
<p>http://efectoanime.com/server/shippuden/Shippuden_145.mp4</p>
<p>http://efectoanime.com/server/md/612.mp4</p>
<p>http://efectoanime.com/server/bl34ch/B256.mp4</p>
<p>http://efectoanime.com/server/shippuden/Shippuden_146.mp4</p>
<p>http://efectoanime.com/server/thundercats/Th90.mp4</p>
<p>http://efectoanime.com/server/thundercats/Th92.mp4</p>
</blockquote>
<p>De todas estas URL lo que nos interesa es sólo <strong>http://efectoanime.com/server/XXX</strong>, entonces lo arreglamos:</p>
<p><code>awk -F '/' {'print $1"/"$2"/"$3"/"$4"/"$5'} lista_videos_satanick</code></p>
<p>Quedará algo así:</p>
<blockquote><p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/bl34ch</p>
<p>http://efectoanime.com/server/bl34ch</p>
<p>http://efectoanime.com/server/bl34ch</p>
<p>http://efectoanime.com/server/shippuden</p>
<p>http://efectoanime.com/server/shippuden</p>
<p>http://efectoanime.com/server/shippuden</p>
<p>http://efectoanime.com/server/MD</p>
<p>http://efectoanime.com/server/MD</p>
<p>http://efectoanime.com/server/MD</p></blockquote>
<p>Ahora debemos eliminar las repetidas:</p>
<p><code># awk -F '/' {'print $1"/"$2"/"$3"/"$4"/"$5'} lista_videos_satanick |sort|uniq -d</p>
<p>http://efectoanime.com/server/avatar</p>
<p>http://efectoanime.com/server/bl34ch</p>
<p>http://efectoanime.com/server/Chihiro</p>
<p>http://efectoanime.com/server/dn0te</p>
<p>http://efectoanime.com/server/hades</p>
<p>http://efectoanime.com/server/lcanvas</p>
<p>http://efectoanime.com/server/manga</p>
<p>http://efectoanime.com/server/md</p>
<p>http://efectoanime.com/server/MD</p>
<p>http://efectoanime.com/server/sayns</p>
<p>http://efectoanime.com/server/shippuden</p>
<p>http://efectoanime.com/server/thundercats</p>
<p>http://efectoanime.com/server/trailers</p>
<p>http://efectoanime.com/server/Vshow</code></p>
<p>Luego un script que descarge todos los contenidos de los directorios:</p>
<p><code>for link in $(cat lista_videos_satanick); do wget -r $link; done</code></p>
<p>Y listo.</p>
<blockquote><p><strong>1.6G	Death Note.tar<br />
1.6G	Saga de Hades.tar</strong>
</p></blockquote>
<h3>ACTUALIZADO <em>16/02/2009</em></h3>
<p>Luego de los comentarios de los responsables de los sitios, dando las gracias y diciendo que no les importa porque de todas formas tiene una marca de agua, etc etc.. Los directorios ya no se pueden listar:</p>
<blockquote><p>http://efectoanime.com/server/thundercats/</p></blockquote>
<p>Al fin y al cabo, si les importó el tema. Me alegro que les sirviera el post.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fasaltando-un-sitio-de-series-online%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/asaltando-un-sitio-de-series-online/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/asaltando-un-sitio-de-series-online/"  data-text="Asaltando un sitio de series online" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/asaltando-un-sitio-de-series-online/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
<enclosure url="http://efectoanime.com/server/dn0te/06.mp4" length="46993332" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/hades/h29.mp4" length="55590277" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/hades/h30.mp4" length="55734802" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/hades/h31.mp4" length="55676125" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/thundercats/Th71.mp4" length="49280711" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/thundercats/Th72.mp4" length="49235801" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/thundercats/Th73.mp4" length="49207779" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/thundercats/Th74.mp4" length="49227983" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/shippuden/Shippuden_144.mp4" length="41486718" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/bl34ch/B255.mp4" length="53645980" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/shippuden/Shippuden_145.mp4" length="63605490" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/bl34ch/B256.mp4" length="36685761" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/shippuden/Shippuden_146.mp4" length="39210296" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/thundercats/Th90.mp4" length="37847843" type="video/mp4" />
<enclosure url="http://efectoanime.com/server/thundercats/Th92.mp4" length="37878330" type="video/mp4" />
		</item>
		<item>
		<title>Jugando con Festival TTS</title>
		<link>http://blog.zerial.org/tips/jugando-con-festival-tts/</link>
		<comments>http://blog.zerial.org/tips/jugando-con-festival-tts/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 03:30:17 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[festival]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[tts]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=979</guid>
		<description><![CDATA[Festival es un software text-to-speech (TTS) o sintetizador de vóz que nos permite lograr que nuestra máquina nos hable o, más bien, nos lea algún texto. Con un poco de imaginación se pueden lograr cosas bastante simpáticas como hacer que nuestro computador nos diga la hora, nos lea los sitios web o el texto seleccionado [...]]]></description>
			<content:encoded><![CDATA[<p>Festival es un software text-to-speech (TTS) o sintetizador de vóz que nos permite lograr que nuestra máquina nos hable o, más bien, nos lea algún texto. Con un poco de imaginación se pueden lograr cosas bastante simpáticas como hacer que nuestro computador nos diga la hora, nos lea los sitios web o el texto seleccionado o simplemente para ocio.<br />
Existen paquetes para distintas distribuciones, como Archlinux o Debian, entre otras, para instalarlo directamente desde el gestor de paquetesa como pacman o apt-get, respectivamente. Podemos buscarlo como festvox o como festival y para ejecutarlo es súper simple:</p>
<p><code>comando | festival --tts</code></p>
<p>Y automaticamente leerá el texto pasado mediante <strong>pipe</strong>.<br />
Por ejemplo, un sencillo script para que nos diga la hora en español:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">hora=</span>`<span class="kw2">date</span>`</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">hora=</span>`<span class="kw3">echo</span> <span class="re1">$hora</span> |cut -f4 -d <span class="st0">&quot; &quot;</span>`</div>
</li>
<li class="li2">
<div class="de2"><span class="re2">h=</span>`<span class="kw3">echo</span> <span class="re1">$hora</span> |cut -f1 -d <span class="st0">&quot;:&quot;</span>`</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">m=</span>`<span class="kw3">echo</span> <span class="re1">$hora</span> |cut -f2 -d <span class="st0">&quot;:&quot;</span>`</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">s=</span>`<span class="kw3">echo</span> <span class="re1">$hora</span> |cut -f3 -d <span class="st0">&quot;:&quot;</span>`</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span> <span class="st0">&quot;Son las $h horas, $m minutos con $s segundos.&quot;</span> |festival -tts -language spanish</div>
</li>
</ol>
</div>
<p><span id="more-979"></span></p>
<p>Cuando usaba fluxbox, tenía uno atajo de teclado para hacer que me leyera lo que tenia en el portapapeles:</p>
<p><code>xsel --clipboard |iconv -f utf-8 -t iso-8859-1|festival --tts --language spanish</code></p>
<p>Con esto, pasamos el cotneindo del clipboard a ISO-8869-1 y le decimos a festival que lo lea en español.<br />
Acá hay un video demostrativo de lo que se puede hacer con festival:</p>
<p><span class="youtube">
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="480" height="360" src="http://www.youtube.com/embed/VP3TUDm_9nk?color1=d6d6d6&amp;color2=f0f0f0&amp;border=0&amp;fs=1&amp;hl=en&amp;loop=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1&amp;hd=1" frameborder="0" allowfullscreen></iframe>
</span><p><a href="http://www.youtube.com/watch?v=VP3TUDm_9nk&fmt=18">www.youtube.com/watch?v=VP3TUDm_9nk</a></p></p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Ftips%2Fjugando-con-festival-tts%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/tips/jugando-con-festival-tts/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/tips/jugando-con-festival-tts/"  data-text="Jugando con Festival TTS" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/tips/jugando-con-festival-tts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Useless: Cosas ociosas e inútiles que puedes hacer en GNU/Linux</title>
		<link>http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/</link>
		<comments>http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 20:38:34 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Useless]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[inutil]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[pasatiempos]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=854</guid>
		<description><![CDATA[Aveces nos encontramos en el trabajo o en la universidad frente a la pantalla sin nada que hacer y empezamos a inventar cosas para hacer, probamos comandos, nos mandamos alguna cagadita, en fín, intentamos ocupar nuestro tiempo de ocio en algo. A continuación les mostraré unos cuantos tips para cuando esten aburridos. Les enseñaré a [...]]]></description>
			<content:encoded><![CDATA[<p>Aveces nos encontramos <del datetime="2009-09-12T19:57:32+00:00">en el trabajo o en la universidad</del> frente a la pantalla sin nada que hacer y empezamos a inventar cosas para hacer, probamos comandos, nos mandamos alguna <em>cagadita</em>, en fín, intentamos ocupar nuestro tiempo de ocio en algo. A continuación les mostraré unos cuantos <em>tips</em> para cuando esten aburridos.<br />
Les enseñaré a escuchar como trabaja su disco duro, jugar con el <em>speaker</em>, ver los movimientos -en binario- del mouse y algo más.</p>
<p><strong>La guía del ocio, índice:</strong></p>
<ol>
<li>Ver los movimientos del mouse</li>
<li>Escuchar como trabaja nuestro disco duro</li>
<li>Jugar con el speaker</li>
</ol>
<p><span id="more-854"></span></p>
<p><strong>Contenido</strong></p>
<ul>
<li><strong>Ver los movimientos del mouse</strong></li>
<p>Podemos visualizar los movimientos que hacemos con el mouse, dependiendo del dispositivo que usemos. Por ejemplo yo, con un mouse usb o con el touchpad de mi portatil usaré el dispositivo <em>/dev/input/mice</em>. Es simple, sólo debemos ejecutar el comando (como root):<br />
<code># cat /dev/input/mice</code><br />
Y comenzar a mover el mouse.<br />
Resultado:</p>
<p style="text-align: center;"><a href="http://blog.zerial.org/wp-content/uploads/2009/09/cat_dev_mouse.png"><img class="aligncenter size-medium wp-image-866" title="cat_dev_mouse" src="http://blog.zerial.org/wp-content/uploads/2009/09/cat_dev_mouse-300x89.png" alt="cat_dev_mouse" width="300" height="89" /></a></p>
<li><strong>Escuchar como trabaja nuestro disco duro</strong></li>
<p>Esto va depende de cómo tengamos distribuido nuestros discos, en mi caso, corresponde al dispositivo <em>/dev/sda</em> y para &#8220;escuchar&#8221; cómo suena, sólo ejecuto este comando (root):</p>
<p><code># cat /dev/sda &gt;&gt; /dev/audio</code><br />
Y sentiremos como si estuviesemos escuchando ruido extraterrestre&#8230;</p>
<li><strong>Jugar con el speaker</strong></li>
<p>Esto es un poco más divertido, para esto necesitaremos instalar el paquete &#8220;beep&#8221; y cargar el módulo <strong>pcspkr</strong> en el caso que no esté cargado. Para hacer sonar el speaker basta con ejecutar el comando:<br />
<code># beep</code></p>
<p>Podemos jugar con las frecuencias y duración de cada beep (ver <em>man beep</em>) y lograr cosas como estas:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.33</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">415.3</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.165</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">466.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">311.1</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.33</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">523.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.165</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">550</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">523.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">415.3</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">523.2</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">698.4</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.03</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">349</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">311.1</span> ; </div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">311.1</span> -l <span class="nu0">170</span>; </div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">sleep</span> <span class="nu0">0.05</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">261.6</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.03</span></div>
</li>
<li class="li1">
<div class="de1">beep -f <span class="nu0">392</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sleep</span> <span class="nu0">0.03</span></div>
</li>
<li class="li2">
<div class="de2">beep -f <span class="nu0">349</span> -l <span class="nu0">750</span>;</div>
</li>
</ol>
</div>
<p>Por ejemplo, este &#8220;beep&#8221; lo hicimos junto a <a href="http://p0ns.org/" target="_blank">Pons</a> y a otros compañeros en la Universidad, cuando estabamos muy aburridos y no teniamos cosas que hacer.
</ul>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Flinux%2Fuseless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/"  data-text="Useless: Cosas ociosas e inútiles que puedes hacer en GNU/Linux" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/linux/useless-cosas-ociosas-e-inutiles-que-puedes-hacer-en-gnulinux/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Script en perl en forma de camello</title>
		<link>http://blog.zerial.org/programacion/script-en-perl-en-forma-de-camello/</link>
		<comments>http://blog.zerial.org/programacion/script-en-perl-en-forma-de-camello/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 15:25:31 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=247</guid>
		<description><![CDATA[Ahora que me estoy especializando en perl, me acordé haber visto en el blog de vostorga un post bien curioso, escrito en perl y en forma de camello. # sub j(\$){($ P,$V)= @_;while($$P=~s:^ ([()])::x){ $V+=('('eq$1)?-32:31 }$V+=ord( substr( $$P,0,1,""))-74} sub a{ my($I,$K,$ J,$L)=@_ ;$I=int($I*$M/$Z);$K=int( $K*$M/$Z);$J=int($J*$M /$Z);$L=int($L*$M/$Z); $G=$ J-$I;$F=$L-$K;$E=(abs($ G)>=abs($F))?$G:$F;($E&#60;0) and($ I,$K)=($J,$L);$E&#124;&#124;=.01 ;for($i=0;$i< =abs$E;$i++ ){ $D->{$K +int($i*$F/$E) [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora que me estoy <em>especializando</em> en <a href="http://perl.org">perl</a>, me acordé haber visto en <a href="http://vostorga.org" target="_aaa">el blog de vostorga</a> un <a href="http://vostorga.org/?p=205">post</a> bien curioso, escrito en perl y en forma de camello.
<pre>

                                                       #
                                                   sub j(\$){($
                     P,$V)=                      @_;while($$P=~s:^
                 ([()])::x){                    $V+=('('eq$1)?-32:31
           }$V+=ord(  substr(                 $$P,0,1,""))-74} sub a{
          my($I,$K,$  J,$L)=@_               ;$I=int($I*$M/$Z);$K=int(
         $K*$M/$Z);$J=int($J*$M             /$Z);$L=int($L*$M/$Z); $G=$
         J-$I;$F=$L-$K;$E=(abs($          G)>=abs($F))?$G:$F;($E&lt;0) and($
          I,$K)=($J,$L);$E||=.01       ;for($i=0;$i< =abs$E;$i++ ){ $D->{$K
                  +int($i*$F/$E)      }->{$I+int($i*$G/$E)}=1}}sub p{$D={};$
                 Z=$z||.01;map{    $H=$_;$I=$N=j$H;$K=$O=j$H;while($H){$q=ord
                substr($H,0,1,"" );if(42==$q){$J=j$H;$L=j$H}else{$q-=43;$L =$q
              %9;$J=($q-$L)/9;$L=$q-9*$J-4;$J-=4}$J+=$I;$L+=$K;a($I,$K,$J,$ L);
              ($I,$K)=($J,$L)}a($I,$K,$N,$O)}@_;my$T;map{$y=$_;map{ $T.=$D->{$y}
              ->{$_}?$\:' '}(-59..59);$T.="\n"}(-23..23);print"\e[H$T"}$w= eval{
              require Win32::Console::ANSI};$b=$w?'1;7;':"";($j,$u,$s,$t,$a,$n,$o
              ,$h,$c,$k,$p,$e,$r,$l,$C)=split/}/,'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J'.
               'BA*JQK8I*JC}KUz]BAIJT]*QJ[R?-R[e]\RI'.'}Tn*JQ]wRAI*JDnR8QAU}wT8KT'.
               ']n*JEI*EJR*QJ]*JR*DJ@IQ[}*JSe*JD[n]*JPe*'.'JBI/KI}T8@?PcdnfgVCBRcP'.
                '?ABKV]]}*JWe*JD[n]*JPe*JC?8B*JE};Vq*OJQ/IP['.'wQ}*JWeOe{n*EERk8;'.
                  'J*JC}/U*OJd[OI@*BJ*JXn*J>w]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe'.
                   'QIAKJR}*JV]wRAI*J?}T]*RJcJI[\]3;U]Uq*PM[wV]W]WCT*DM*SJ'.  'ZP[Z'.
                      'PZa[\]UKVgogK9K*QJ[\]n[RI@*EH@IddR[Q[]T]T]T3o[dk*JE'.  '[Z\U'.
                        '{T]*JPKTKK]*OJ[QIO[PIQIO[[gUKU\k*JE+J+J5R5AI*EJ00'.  'BCB*'.
                             'DMKKJIR[Q+*EJ0*EK';sub h{$\ = qw(% &#038; @ x)[int    rand
                              4];map{printf  "\e[$b;%dm",int(rand 6)+101-60*   ($w
                               ||0);system(  "cls")if$w ;($A,$S)=    ($_[1],   $
                                _[0]);($M,   @,)= split  '}';for(     $z=256
                                ;$z>0; $z   -=$S){$S*=   $A;p @,}      sleep$_
                                [2];while   ($_[3]&#038;&#038;($    z+=$ S)       < =256){
                                p@,}}("".   "32}7D$j"     ."}AG".       "$u}OG"
                                ."$s}WG"    ."$t",""      ."24}("        ."IJ$a"
                                ."}1G$n"    ."}CO$o"     ."}GG$t"        ."}QC"
                                 ."$h}"      ."^G$e"    ."})IG"          ."$r",
                                 "32}?"       ."H$p}FG$e}QG$r".          "}ZC"
                                 ."$l",          "28}(LC" .""            ."".
                                 "$h}:"           ."J$a}EG".             "$c"
                                 ."}M"             ."C$k}ZG".            "$e"
                                 ."}"             ."dG$r","18"          ."}("
                                ."D;"            ."$C"  )}{h(16         ,1,1,0
                               );h(8,          .98,0,0   );h(16         ,1,1,1)
                               ;h(8.0         ,0.98,0,     1);         redo}###
                             #written                                 060204 by
                           #liverpole                                  @@@@@@@
                        #@@@@@@@@@@@
</pre>
<p>Para ejecutarlo basta que lo copies y lo pegues en tu editor de texto favorito y lo ejecutes escribiendo <b>perl script.pl</b>. Tambien puedes descargarlo desde <a href="http://vostorga.org/files/bleh.pl" target="asas">acá</a>.</pre>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fprogramacion%2Fscript-en-perl-en-forma-de-camello%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/programacion/script-en-perl-en-forma-de-camello/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/programacion/script-en-perl-en-forma-de-camello/"  data-text="Script en perl en forma de camello" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/programacion/script-en-perl-en-forma-de-camello/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

