<?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>Linux AV &#187; Ubuntu</title>
	<atom:link href="http://www.linuxav.net/index.php/category/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxav.net</link>
	<description>Una experiencia multimedia con GNU/Linux</description>
	<lastBuildDate>Wed, 14 Apr 2010 14:17:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Pulse Audio y la reproducción simultánea de sonido con ALSA</title>
		<link>http://www.linuxav.net/index.php/2010/04/pulse-audio-y-la-reproduccion-simultanea-de-sonido-con-alsa/</link>
		<comments>http://www.linuxav.net/index.php/2010/04/pulse-audio-y-la-reproduccion-simultanea-de-sonido-con-alsa/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 08:16:21 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=812</guid>
		<description><![CDATA[¿Debería eliminar Pulse Audio? Desde luego, muchos usuarios se quejan de problemas con el sonido desde las aplicaciones. Un servidor de sonido como Pulse Audio es una buena idea para sistemas de escritorio sobre los que corren aplicaciones genéricas, pero una pésima idea para quien trabaja con aplicaciones multimedia y necesita un control absoluto de [...]]]></description>
			<content:encoded><![CDATA[<p>¿Debería eliminar Pulse Audio? Desde luego, muchos usuarios se quejan de problemas con el sonido desde las aplicaciones. Un servidor de sonido como Pulse Audio es una buena idea para sistemas de escritorio sobre los que corren aplicaciones genéricas, pero una pésima idea para quien trabaja con aplicaciones multimedia y necesita un control absoluto de su <i>driver</i> de audio. No debería haber nada de malo en que Ubuntu incorpore Pulse Audio por defecto &mdash;Debian no lo hace&mdash; pero sí resulta pintoresco que Ubuntu Studio también lo haga.</p>
<p><center><img src="http://www.linuxav.net/wp-content/uploads/alsa.png" alt="alsa" title="alsa" width="320" height="240" class="alignnone size-full wp-image-814" /></center></p>
<p>Así pues, para retomar el control absoluto del sonido en tu sistema:</p>
<pre>
  $ sudo apt-get remove pulseaudio
  </pre>
<p>Alguien dirá que el problema ahora es que distintas aplicaciones no pueden reproducir audio simultáneamente. Respondo que, por una parte, no todas las aplicaciones reconocen Pulse Audio por lo que probablemente antes tampoco era posible. Y, por otra parte, que ALSA sí lo permite. Sólo es necesario activar la mezcla por software <i>dmix</i> sobre la salida de audio. Simplemente lléva este código a tu .asoundrc.</p>
<pre>
<span class="comment-delimiter"># </span><span class="comment">.asoundrc - Personal configuration file for ALSA
</span>
<span class="comment-delimiter"># </span><span class="comment">Copyright (C) 2009 Ismael Valladolid Torres &lt;<a href="mailto:ivalladt&#64;gmail.com">ivalladt&#64;gmail.com</a>&gt;
</span>
<span class="comment-delimiter"># </span><span class="comment">This program is free software; you can redistribute it and/or
</span><span class="comment-delimiter"># </span><span class="comment">modify it under the terms of the GNU General Public License
</span><span class="comment-delimiter"># </span><span class="comment">as published by the Free Software Foundation; either version 2
</span><span class="comment-delimiter"># </span><span class="comment">of the License, or (at your option) any later version.
</span>
<span class="comment-delimiter"># </span><span class="comment">This program is distributed in the hope that it will be useful,
</span><span class="comment-delimiter"># </span><span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span class="comment-delimiter"># </span><span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span class="comment-delimiter"># </span><span class="comment">GNU General Public License for more details.
</span>
<span class="comment-delimiter"># </span><span class="comment">You should have received a copy of the GNU General Public License
</span><span class="comment-delimiter"># </span><span class="comment">along with this program; if not, write to the Free Software
</span><span class="comment-delimiter"># </span><span class="comment">Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
</span><span class="comment-delimiter"># </span><span class="comment">02110-1301, USA.
</span>
<span class="comment-delimiter"># </span><span class="comment">See the file COPYING for details.
</span>
<span class="type">pcm.ossmix</span> {
    <span class="variable-name">type</span> dmix
    <span class="variable-name">ipc_key</span> 1021                <span class="comment-delimiter"># </span><span class="comment">must be unique!
</span>    <span class="variable-name">ipc_perm</span> 0660               <span class="comment-delimiter"># </span><span class="comment">sound for everybody (at least in your group)
</span>    <span class="comment-delimiter">#</span><span class="comment">ipc_key_add_uid false      # let multiple users share
</span>    <span class="type">slave</span> {
        <span class="variable-name">pcm</span> <span class="string">"hw:0,0"</span>
        <span class="variable-name">period_time</span> 0
        <span class="variable-name">period_size</span> 1024        <span class="comment-delimiter"># </span><span class="comment">must be power of 2
</span>        <span class="variable-name">buffer_size</span> 8192        <span class="comment-delimiter"># </span><span class="comment">dito
</span>        <span class="comment-delimiter">#</span><span class="comment">format "S32_LE"
</span>        <span class="comment-delimiter">#</span><span class="comment">periods 128            # dito
</span>        <span class="comment-delimiter">#</span><span class="comment">rate 8000              # with rate 8000 you *will* hear
</span>    <span class="variable-name">}</span>                           <span class="comment-delimiter"># </span><span class="comment">if ossmix is used <img src='http://www.linuxav.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</span>
    <span class="comment-delimiter"># </span><span class="comment">bindings are cool. This says, that only the first
</span>    <span class="comment-delimiter"># </span><span class="comment">two channels are to be used by dmix, which is enough for
</span>    <span class="comment-delimiter"># </span><span class="comment">(most) oss apps and also lets multichannel chios work
</span>    <span class="comment-delimiter"># </span><span class="comment">much faster:
</span>    <span class="type">bindings</span> {
        <span class="variable-name">0</span> 0   <span class="comment-delimiter"># </span><span class="comment">from 0 =&gt; to 0
</span>        <span class="variable-name">1</span> 1   <span class="comment-delimiter"># </span><span class="comment">from 1 =&gt; to 1
</span>    <span class="variable-name">}</span>
<span class="variable-name">}</span>

<span class="comment-delimiter"># </span><span class="comment">Redirect to ossmix
</span><span class="type">pcm.!default</span> {
    <span class="variable-name">type</span> plug
    <span class="variable-name">slave.pcm</span> <span class="string">"ossmix"</span>     <span class="comment-delimiter"># </span><span class="comment">use our new PCM here
</span><span class="variable-name">}</span>

<span class="comment-delimiter"># </span><span class="comment">Redirect to ossmix
</span><span class="type">pcm.dsp</span> {
    <span class="variable-name">type</span> plug
    <span class="variable-name">slave.pcm</span> <span class="string">"ossmix"</span>     <span class="comment-delimiter"># </span><span class="comment">use our new PCM here
</span><span class="variable-name">}</span>

<span class="comment-delimiter"># </span><span class="comment">mixer like above
</span><span class="type">ctl.mixer</span> {
    <span class="variable-name">type</span> hw
    <span class="variable-name">card</span> 0
<span class="variable-name">}</span>

<span class="comment-delimiter"># </span><span class="comment">Local Variables&#58;
</span><span class="comment-delimiter"># </span><span class="comment">mode: conf
</span><span class="comment-delimiter"># </span><span class="comment">End:
</span></pre>
<p>Ahora la salida llamada <i>default</i>, la que por omisión utilizan todas las aplicaciones compatibles con ALSA para reproducir audio, implemente mezcla por software desde todas las aplicaciones que la están utilizando. En mi máquina, así, es posible reproducir simultáneamente audio desde <i>clips</i> en YouTube vía Flash en Firefox, Spotify, mplayer, Audacious, Skype y cualquier otra.</p>
<p>Sólo dos avisos. Si alguna aplicación utiliza explícitamente la salida <i>hw:0,0</i> todo deja de funcionar. La mezcla por software queda configurada para la salida llamada <i>default</i> y no para ninguna otra. Por otra parte, de nuevo, si cualquier aplicación consigue reproducir con éxito audio utilizando la emulación OSS, la cosa de nuevo deja de funcionar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/04/pulse-audio-y-la-reproduccion-simultanea-de-sonido-con-alsa/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>QjackCtl 0.3.6</title>
		<link>http://www.linuxav.net/index.php/2010/03/qjackctl-0-3-6/</link>
		<comments>http://www.linuxav.net/index.php/2010/03/qjackctl-0-3-6/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 09:55:49 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[jack]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=795</guid>
		<description><![CDATA[Rui Nuno anuncia la revisión 0.3.6 de QjackCtl. Si existe una aplicación imprescindible en el arsenal del creador de audio con Linux, ésa es ésta. Permite realizar todas las conexiones de audio con el servidor JACK y MIDI tanto con JACK como con ALSA de manera gráfica y muy intuitiva. Recuerda que de otra forma [...]]]></description>
			<content:encoded><![CDATA[<p><b>Rui Nuno</b> anuncia la revisión 0.3.6 de <a href="http://qjackctl.sourceforge.net/">QjackCtl</a>. Si existe una aplicación imprescindible en el arsenal del creador de audio con Linux, ésa es ésta. Permite realizar todas las conexiones de audio con el servidor JACK y MIDI tanto con JACK como con ALSA de manera gráfica y muy intuitiva. Recuerda que de otra forma serías esclavo de la línea de comandos, plato de poco gusto para quien simplemente quiere meter algo de ruido con su sistema.</p>
<p><center><br />
  <img src="http://www.linuxav.net/wp-content/uploads/QjackctlConnectionsForm.png" alt="qjackctl" title="QjackctlConnectionsForm" width="472" height="304" class="alignnone size-full wp-image-796" /><br />
  </center></p>
<p>La mayor novedad es el suporte D-Bus, incluyendo acciones de la interfaz de usuario. Puedes ahora incluso crear atajos de teclado desde tu entorno de escritorio para las acciones más comunes.</p>
<p>Puedes <a href="http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.6.tar.gz">bajarte las fuentes</a> y compilar a tu gusto o descargar paquetes binarios para <a href="http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.6-2.rncbc.suse112.i586.rpm">openSUSE 11.2</a>, <a href="http://downloads.sourceforge.net/qjackctl/qjackctl_0.3.6-1.rncbc.ubuntu804_i386.deb">Ubuntu 8.04</a> y <a href="http://downloads.sourceforge.net/qjackctl/qjackctl_0.3.6-1.rncbc.ubuntu910_i386.deb">Ubuntu 9.10</a>. Probablemente estará pronto empaquetado para tu distribución favorita.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/03/qjackctl-0-3-6/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Puredyne</title>
		<link>http://www.linuxav.net/index.php/2010/01/puredyne/</link>
		<comments>http://www.linuxav.net/index.php/2010/01/puredyne/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 21:19:48 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Imagen]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[realtime]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=733</guid>
		<description><![CDATA[
  
  
Puredyne es una distribución orientada al trabajo creativo para aquellos que buscan herramientas apartedas del estandar. Facilita las mejores aplicaciones creativas en estado experimental además de un sólido conjunto de herramientas para el trabajo con imagen, audio y vídeo en un paquete minimalista muy rápido.
Puredyne está optimizada para el procesado de [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
  <img src="http://www.linuxav.net/wp-content/uploads/puredyne.png" alt="puredyne" title="puredyne" width="397" height="144" class="alignnone size-full wp-image-734" /><br />
  </center></p>
<p><a href="http://puredyne.goto10.org/about.html" target="_blank" rel="nofollow">Puredyne</a> es una distribución orientada al trabajo creativo para aquellos que buscan herramientas apartedas del estandar. Facilita las mejores aplicaciones creativas en estado experimental además de un sólido conjunto de herramientas para el trabajo con imagen, audio y vídeo en un paquete minimalista muy rápido.</p>
<p>Puredyne está optimizada para el procesado de audio y vídeo en tiempo real. Se distingue por facilitar un <i>kernel</i> de muy baja latencia, para la responsividad que necesitan los artistas que trabajan en este campo.</p>
<p>Está basada en Ubuntu y Debian Live, y todos los paquetes facilitados por Puredyne pueden ser fácilmente utilizados en cualquiera de los sabores de Linux. <a href="http://puredyne.goto10.org/download.html" target="_blank" rel="nofollow">Descarga Puredyne</a>, utilízala, compártela, modifícala, únete al equipo de desarrollo o haz lo que quieras con ella.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/01/puredyne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El próximo Ubuntu LTS será retrasado</title>
		<link>http://www.linuxav.net/index.php/2010/01/el-proximo-ubuntu-lts-sera-retrasado/</link>
		<comments>http://www.linuxav.net/index.php/2010/01/el-proximo-ubuntu-lts-sera-retrasado/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 20:17:31 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[lts]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=728</guid>
		<description><![CDATA[Mark Shuttleworth el astronauta sugiere que la próxima versión LTS con soporte a largo plazo podría retrasarse. La expectación se había despertado ante la posibilidad de que la próxima versión LTS fuese la 10.04, a ser liberada en abril de 2010. Pero en una entrevista en derStandard.at Shuttleworth dice que &#171;la próxima LTS será la [...]]]></description>
			<content:encoded><![CDATA[<p><b>Mark Shuttleworth</b> el astronauta sugiere que la próxima versión LTS con soporte a largo plazo podría retrasarse. La expectación se había despertado ante la posibilidad de que la próxima versión LTS fuese la 10.04, a ser liberada en abril de 2010. Pero en una entrevista en derStandard.at Shuttleworth dice que &laquo;la próxima LTS será la 10.04 o la 10.10, habrá que esperar a que terminen las conversaciones actuales entre Debian y Ubuntu.</p>
<p><center><br />
  <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faKJ0v_HBgY/S0uGr_tju_I/AAAAAAAABKc/wDwZB5RrqCI/s1600-h/800px-Ubuntu_8.04_LTS.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_faKJ0v_HBgY/S0uGr_tju_I/AAAAAAAABKc/wDwZB5RrqCI/s400/800px-Ubuntu_8.04_LTS.JPG" border="0" alt="ubuntu lts"id="BLOGGER_PHOTO_ID_5425578266492910578" /></a><br />
  </center></p>
<p>La conversación transcurre sobre un &laquo;ciclo meta release&raquo; que vería cómo las próximas revisiones de Ubuntu y Debian congelan sus fechas de congelación. Parte del retraso se debería a la incorporación de GNOME 3.0, esperada para primavera de 2010, sobre la misma fecha inicialmente esperada para Ubuntu 10.04. Los desarrolladores de Ubuntu liberan versiones de forma regular cada seis meses, soportadas con actualizaciones hasta dieciocho meses, pero hay versiones LTS como la Ubuntu 8.04 LTS que son actualizadas durante tres años para la versión de escritorio y cinco años para la versión de servidor.</p>
<p>Visto en <a href="http://www.h-online.com/open/news/item/Shuttleworth-hints-at-later-Ubuntu-LTS-742453.html" target="_blank" rel="nofollow">The H Open Source</a>. Foto de <a href="http://bartoszsenderek.blogspot.com/" target="_blank" rel="nofollow"><b>Bartosz Senderek</b></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/01/el-proximo-ubuntu-lts-sera-retrasado/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Prueba GIMP 2.7.1 mono ventana</title>
		<link>http://www.linuxav.net/index.php/2010/01/prueba-gimp-2-7-1-mono-ventana/</link>
		<comments>http://www.linuxav.net/index.php/2010/01/prueba-gimp-2-7-1-mono-ventana/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 11:43:28 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Imagen]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[karmic koala]]></category>
		<category><![CDATA[multimedia]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=725</guid>
		<description><![CDATA[Sé que estabas deseando probar la característica mono ventana de GIMP, así que te agradará saber que si corres Ubuntu 9.10 Karmic Koala ya te es posible hacerlo. Eso, por supuesto, si no quieres esperar a la próxima versión de tu sistema operativo favorito. Y también por supuesto si no tienes inconveniente en probar una [...]]]></description>
			<content:encoded><![CDATA[<p>Sé que estabas deseando probar la característica mono ventana de GIMP, así que te agradará saber que si corres Ubuntu 9.10 Karmic Koala ya te es posible hacerlo. Eso, por supuesto, si no quieres esperar a la próxima versión de tu sistema operativo favorito. Y también por supuesto si no tienes inconveniente en probar una versión inestable de GIMP que puede contener una buena cantidad de errores.</p>
<p>Simplemente añade a tu lista de repositorios en /etc/apt/sources.list la siguiente línea:</p>
<pre>
  deb http://ppa.launchpad.net/matthaeus123/mrw-gimp-svn/ubuntu karmic main
  </pre>
<p>Y ahora actualiza el sistema.</p>
<pre>
  $ sudo apt-get update &#038;&#038; sudo apt-get upgrade
  </pre>
<p>Ahora tienes instalada la versión 2.7.1 de GIMP. Al abrirlo seguirás viendo la clásica interfaz multi ventana. Para probar la nueva característica visita el menú Ventanas y activa la casilla Single-window mode. Reinicia la aplicación. Lo que verás ahora es algo como esto:</p>
<p><center><br />
  <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_faKJ0v_HBgY/S0sOpX_a2NI/AAAAAAAABI8/70R55j4icLg/s1600-h/screenshot_002-600x363.png"><img style="cursor:pointer; cursor:hand;width: 400px; height: 242px;" src="http://1.bp.blogspot.com/_faKJ0v_HBgY/S0sOpX_a2NI/AAAAAAAABI8/70R55j4icLg/s400/screenshot_002-600x363.png" border="0" alt="linux gimp mono ventana"id="BLOGGER_PHOTO_ID_5425446280075335890" /></a><br />
  </center></p>
<p>Visto en <a href="http://www.glatelier.org/2009/12/prueba-gimp-con-monoventana-en-ubuntu-9-10/" target="_blank" rel="nofollow">Geeks &#038; Linux Atelier!</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/01/prueba-gimp-2-7-1-mono-ventana/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Los mejores blogs Linux en Wikio en enero de 2010</title>
		<link>http://www.linuxav.net/index.php/2010/01/los-mejores-blogs-linux-en-wikio-en-enero-de-2010/</link>
		<comments>http://www.linuxav.net/index.php/2010/01/los-mejores-blogs-linux-en-wikio-en-enero-de-2010/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 17:41:37 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[wikio]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=714</guid>
		<description><![CDATA[
El editor de Linux AV se enorgullece en presentarse como &#171;experto en la categoría Linux&#187; para Wikio. Como tal, irá siendo presentada aquí la lista de blogs dedicados a Linux más populares en Wikio de forma mensual. Ésta es la primera lista.





1
Ubuntu Life


2
MuyLinux


3
Ubuntips


4
Ubunlog


5
120% Linux


6
LinuxHispano.net


7
Slice of Linux


8
Forat


9
Linwind


10
Pillate Un Linux


11
OcioLinux


12
Www.tuxapuntes.com


13
Gnometips


14
Paraiso Linux


15
Cesarius Revolutions


16
Geeks &#038; Linux Atelier!


17
LXA! Linux Adictos








18
Be [...]]]></description>
			<content:encoded><![CDATA[<p><center><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_faKJ0v_HBgY/S0Io4mq-4pI/AAAAAAAABDk/xNL4sssKpBo/s1600-h/adni18_Linux_Christmas_640.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://1.bp.blogspot.com/_faKJ0v_HBgY/S0Io4mq-4pI/AAAAAAAABDk/xNL4sssKpBo/s400/adni18_Linux_Christmas_640.jpg" border="0" alt="linux navidad"id="BLOGGER_PHOTO_ID_5422941854226113170" /></a></center></p>
<p>El editor de <a href="http://www.linuxav.net/">Linux AV</a> se enorgullece en presentarse como &laquo;experto en la categoría Linux&raquo; para <a href="http://www.wikio.es/" target="_blank" rel="nofollow">Wikio</a>. Como tal, irá siendo presentada aquí la lista de <i>blogs</i> dedicados a Linux más populares en Wikio de forma mensual. Ésta es la primera lista.</p>
<table width="420">
<tr>
<td valign="top" width="50%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="bg">
<td class="td1" valign="top" width="30">1</td>
<td class="td2"><a href="http://ubuntulife.wordpress.com" target="_blank">Ubuntu Life</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">2</td>
<td class="td2"><a href="http://www.muylinux.com" target="_blank">MuyLinux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">3</td>
<td class="td2"><a href="http://www.ubuntips.com.ar" target="_blank">Ubuntips</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">4</td>
<td class="td2"><a href="http://ubunlog.com.ar/blog" target="_blank">Ubunlog</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">5</td>
<td class="td2"><a href="http://120linux.com" target="_blank">120% Linux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">6</td>
<td class="td2"><a href="http://www.linuxhispano.net" target="_blank">LinuxHispano.net</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">7</td>
<td class="td2"><a href="http://sliceoflinux.com" target="_blank">Slice of Linux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">8</td>
<td class="td2"><a href="http://www.forat.info" target="_blank">Forat</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">9</td>
<td class="td2"><a href="http://www.dacostabalboa.com/es" target="_blank">Linwind</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">10</td>
<td class="td2"><a href="http://pillateunlinux.com" target="_blank">Pillate Un Linux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">11</td>
<td class="td2"><a href="http://ociolinux.blogspot.com/" target="_blank">OcioLinux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">12</td>
<td class="td2"><a href="http://www.tuxapuntes.com/drupal" target="_blank">Www.tuxapuntes.com</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">13</td>
<td class="td2"><a href="http://gnometips.wordpress.com/" target="_blank">Gnometips</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">14</td>
<td class="td2"><a href="http://paraisolinux.com.ar" target="_blank">Paraiso Linux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">15</td>
<td class="td2"><a href="http://www.cesarius.net" target="_blank">Cesarius Revolutions</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">16</td>
<td class="td2"><a href="http://www.glatelier.org/" target="_blank">Geeks &#038; Linux Atelier!</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">17</td>
<td class="td2"><a href="http://linuxadictos.com" target="_blank">LXA! Linux Adictos</a></td>
<td class="td3"></td>
</tr>
</table>
</td>
<td valign="top" width="50%">
<table width="100%">
<tr>
<tr class="bg">
<td class="td1" valign="top" width="30">18</td>
<td class="td2"><a href="http://belinuxmyfriend.blogspot.com/" target="_blank">Be Linux&#8230; my friend</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">19</td>
<td class="td2"><a href="http://mirutalibre.wordpress.com" target="_blank">Mi Ruta Libre</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">20</td>
<td class="td2"><a href="http://miordenadoreslibre.wordpress.com" target="_blank">Mi ordenador es libre&#8230;</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">21</td>
<td class="td2"><a href="http://www.linuxav.net" target="_blank">Linux AV</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">22</td>
<td class="td2"><a href="http://linux.adslzone.net" target="_blank">LinuxZone</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">23</td>
<td class="td2"><a href="http://putolinux.wordpress.com" target="_blank">¡¡PUTOLINUX!!</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">24</td>
<td class="td2"><a href="http://my.opera.com/davidtsunamy/blog/" target="_blank">David Tsunamy</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">25</td>
<td class="td2"><a href="http://sinwindows.wordpress.com" target="_blank">Sin Windows</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">26</td>
<td class="td2"><a href="http://linux-itt.blogspot.com" target="_blank">Telematica &#038; Linux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">27</td>
<td class="td2"><a href="http://www.linuxboricua.com" target="_blank">Linux Boricua</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">28</td>
<td class="td2"><a href="http://www.userlinux.net" target="_blank">Userlinux</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">29</td>
<td class="td2"><a href="http://portalubuntu.blogspot.com/" target="_blank">Portal Ubuntu</a></td>
<td class="td3"></td>
<tr class="bg">
<td class="td1" valign="top" width="30">30</td>
<td class="td2"><a href="http://www.noticiasubuntu.com/" target="_blank">Noticias Ubuntu</a></td>
<td class="td3"></td>
</table>
<p><a href="http://www.wikio.es" target="_blank" title="Ranking Wikio">Ranking Wikio</a></td>
</tr>
</table>
<p>¿Estás en la lista? ¡Enhorabuena! Otra de las cosas que me pide Wikio es crear una red entre los sitios más populares dedicados a Linux a partir de nuestros respectivos <i>blogroll</i>. Así que me permito pedirte, estés o no en la lista, que añadas <a href="http://www.linuxav.net/">Linux AV</a> a tu <i>blogroll</i> y me dejes un mensaje de correo electrónico o un comentario a este artículo indicándome la dirección de tu <i>blog</i> para que yo haga lo propio.</p>
<pre>&lt;<span class="function-name">a</span> <span class="variable-name">href</span>=<span class="string">"http://www.linuxav.net/"</span>&gt;Linux AV&lt;/<span class="function-name">a</span>&gt;</pre>
<p>¡Gracias! ¡Y que los Reyes Magos te traigan mucho <i>software</i> libre!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/01/los-mejores-blogs-linux-en-wikio-en-enero-de-2010/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Linux es vulnerable a las señoras de la limpieza</title>
		<link>http://www.linuxav.net/index.php/2010/01/linux-es-vulnerable-a-las-senoras-de-la-limpieza/</link>
		<comments>http://www.linuxav.net/index.php/2010/01/linux-es-vulnerable-a-las-senoras-de-la-limpieza/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 14:51:45 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=711</guid>
		<description><![CDATA[¿Y qué es el ataque de la señora de la limpieza?
Es el nombre que le han dado los de PING Labs a un ataque que afecta, demostrado, a Ubuntu y a Debian, pero seguramente también a cualquier otra distribución. El ataque permite acceder sin restricciones a una sesión bloqueada por un salvapantallas.

  
  [...]]]></description>
			<content:encoded><![CDATA[<p>¿Y qué es el <i>ataque de la señora de la limpieza</i>?</p>
<p>Es el nombre que le han dado los de <a href="http://labs.ping.uio.no/" target="_blank" rel="nofollow">PING Labs</a> a un ataque que afecta, demostrado, a Ubuntu y a Debian, pero seguramente también a cualquier otra distribución. El ataque permite acceder sin restricciones a una sesión bloqueada por un salvapantallas.</p>
<p><center><br />
  <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_faKJ0v_HBgY/S0IAWaeuuYI/AAAAAAAABDU/PmiOHEADxM4/s1600-h/800px-Three_japanese_maids.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_faKJ0v_HBgY/S0IAWaeuuYI/AAAAAAAABDU/PmiOHEADxM4/s400/800px-Three_japanese_maids.jpg" border="0" alt="señoras de la limpieza japonesas"id="BLOGGER_PHOTO_ID_5422897286372833666" /></a><br />
  </center></p>
<p>El nombre hace referencia a la facilidad con la que es posible ejecutarlo. Aunque la probabilidad de éxito es mínima, basta con pasar por delante del ordenador bloqueado y pulsar &laquo;Alt+PetSis+F&raquo;. Resulta que el <i>kernel</i> Linux captura ciertas combinaciones de teclas, todas activadas por la combinación &laquo;Alt+PetSis&raquo;, para realizar funciones de emergencia. En particular la citada combinación activa el OOM Killer. Éste libera memoria de forma automática. Si la CPU está demasiado ocupada, el el OOM Killer elimina algún proceso para poder retomar el control del sistema. Existe una mínima posibilidad de que dicho proceso sea el salvapantallas. Éste entonces se cierra y la señora de la limpieza, o cualquiera que pase por allí, puede entonces acceder al escritorio.</p>
<p>En <a href="http://www.xombra.com/go_news.php?nota=4526" target="_blank" rel="nofollow">Xombra tienes toda la información</a>. Foto de <a href="http://commons.wikimedia.org/wiki/User:Szater" target="_blank" rel="nofollow">Szater</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2010/01/linux-es-vulnerable-a-las-senoras-de-la-limpieza/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>El mejor mensaje de error de la historia del iPhone</title>
		<link>http://www.linuxav.net/index.php/2009/12/el-mejor-mensaje-de-error-de-la-historia-del-iphone/</link>
		<comments>http://www.linuxav.net/index.php/2009/12/el-mejor-mensaje-de-error-de-la-historia-del-iphone/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 17:55:24 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=696</guid>
		<description><![CDATA[El otro día se me colgó una aplicación en Ubuntu Studio. Saltó el cuadro de diálogo que te pide enviar un informe de errores al programador, y he aquí que el cuadro de diálogo también se colgó. ¿A quién le envío yo ahora el informe?
Pero esta captura del iPhone es aún mucho mejor. Parece ser [...]]]></description>
			<content:encoded><![CDATA[<p>El otro día se me colgó una aplicación en Ubuntu Studio. Saltó el cuadro de diálogo que te pide enviar un informe de errores al programador, y he aquí que el cuadro de diálogo también se colgó. ¿A quién le envío yo ahora el informe?</p>
<p>Pero esta captura del iPhone es aún mucho mejor. Parece ser que el mamotreto de Apple te presenta mensajes de error aún cuando no hay errores. ¿Exceso de celo, o lo normal después de un <i>jailbreak</i> descuidado?</p>
<p><center><br />
  <img src="http://www.linuxav.net/wp-content/uploads/Best_iPhone_Message_Ever.png" alt="mensaje error iphone" title="Best_iPhone_Message_Ever" width="320" height="480" class="alignnone size-full wp-image-697" /><br />
  </center></p>
<p>Concedido. No tiene nada que ver con Linux. Pero los linuxeros somos así de cachondos.</p>
<p>Visto en <a href="http://www.thelinuxblog.com/best-iphone-error-message-ever/" target="_blank" rel="nofollow">The Linux Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2009/12/el-mejor-mensaje-de-error-de-la-historia-del-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tu propio bot para Twitter en Perl</title>
		<link>http://www.linuxav.net/index.php/2009/12/tu-propio-bot-para-twitter-en-perl/</link>
		<comments>http://www.linuxav.net/index.php/2009/12/tu-propio-bot-para-twitter-en-perl/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 10:05:40 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=693</guid>
		<description><![CDATA[He tenido dudas sobre si publicar mi script implemientando un bot para Twitter en mi blog SEO o en este blog sobre Linux. Finalmente me he decidido por éste. Probablemente tiene más utilidad pedagógica que para el marketing en la red social. Explicado de otra forma. Aunque tengo ciertas ideas sobre su utilidad comercial, me [...]]]></description>
			<content:encoded><![CDATA[<p>He tenido dudas sobre si publicar mi <i>script</i> implemientando un <i>bot</i> para Twitter en mi <i>blog</i> SEO o en este <i>blog</i> sobre Linux. Finalmente me he decidido por éste. Probablemente tiene más utilidad pedagógica que para el <i>marketing</i> en la red social. Explicado de otra forma. Aunque tengo ciertas ideas sobre su utilidad comercial, me limito a publicarlo y a invitarte a buscar las tuyas.</p>
<p>La forma normal de utilizarlo es la siguiente:</p>
<pre>
  $ autoretweet -u usuario -p lksnfd -k linux
  </pre>
<p>Se trata de los tres parámetros obligatorios. El nombre de usuario en el servicio Twitter, la contraseña, y la palabra clave que disparará el <i>bot</i> una vez aparezca en las búsquedas. Utilizado así, el <i>bot</i> simplemente hace un <i>retweet</i> al usuario que ha publicado un mensaje conteniendo la palabra clave. El usuario podría así identificarte como interesado en el tema para el cual dicha palabra clave es representativa y devolverte su seguimiento.</p>
<p>Hay no obstante formas más sofisticadas de utilizarlo, mediante los siguientes parámetros opcionales.</p>
<p>-s status</p>
<p>Utiliza una cadena de texto determinada en lugar del <i>retweet</i>. Dicha cadena podría contener un enlace, y utilizar así el <i>bot</i> para la promoción de un sitio y no para conseguir seguimientos. Utilizar con precaución dado que el uso de una cadena repetida acaba redundando en que la cuenta que lo hace es marcada como sospechosa y desactivada.</p>
<p>-f url</p>
<p>Averigua el <i>feed</i> XML para el sitio cuya URL se proporciona. De dicho <i>feed</i> toma las entradas que contienen la palabra clave indicada y presenta en cada nuevo estado el enlace y el título de dicha entrada. Eventualmente útil para promocionar un sitio. De nuevo, utilizar con precaución.</p>
<p>-n num_results</p>
<p>El número de resultados a ser devuelto en cada búsqueda.</p>
<p>-p poll_frequency</p>
<p>El tiempo entre dos búsquedas consecutivas.</p>
<p>-d delay_updates</p>
<p>El tiempo entre dos envíos al sistema Twitter. Si va a utilizarse un mensaje repetido, configurar un valor lo suficientemente alto para evitar que la cuenta sea marcada como sospechosa.</p>
<p>-r random</p>
<p>Genera para cada envío un <i>hashtag</i> aleatorio de la longitud indicada. Permite que la cadena de texto sea distinta en cada envío y eventualmente que la cuenta no sea marcada así como sospechosa.</p>
<p>-v</p>
<p>Salida prólija, presentando un informe completo de todas las acciones realizadas por el script.</p>
<p>Ante la posibilidad de que Twitter considere maliciosa la actividad del <i>bot</i> y marque la cuenta como sospechosa, no dudo en recomendar no utilizarlo con tu propia cuenta personal. Copia el código en un fichero llamado <i>autoretweet</i>. Activa el permiso de ejecución y guárdalo en un directorio en tu <i>path</i> actual. Crea ahora una cuenta <i>troll</i>. Sigue la convención de utilizar para el <i>avatar</i> de dicha cuenta una nariz roja. Utiliza ahora esa cuenta para probar el <i>bot</i>. Disfrútalo.</p>
<pre>
<span class="comment-delimiter">#</span><span class="comment">!/usr/bin/perl
</span>
<span class="keyword">use</span> <span class="constant">strict</span>;
<span class="keyword">use</span> <span class="constant">warnings</span>;

<span class="keyword">use</span> <span class="constant">Data</span>::Dumper;
<span class="keyword">use</span> <span class="constant">Getopt</span>::Std;
<span class="keyword">use</span> <span class="constant">HTML</span>::TokeParser;
<span class="keyword">use</span> <span class="constant">LWP</span>::Simple;
<span class="keyword">use</span> <span class="constant">Net</span>::Twitter;
<span class="keyword">use</span> <span class="constant">XML</span>::Feed;

<span class="type">local</span> $| = 1; <span class="comment"># auto flush stdout
</span>binmode STDOUT, <span class="string">':utf8'</span>;

<span class="type">my</span> $<span class="variable-name">username</span>;
<span class="type">my</span> $<span class="variable-name">password</span>;
<span class="type">my</span> $<span class="variable-name">keyword</span>;
<span class="type">my</span> $<span class="variable-name">status</span>;

<span class="type">my</span> $<span class="variable-name">num_results</span> = 5;
<span class="type">my</span> $<span class="variable-name">poll_frequency</span> = 100;
<span class="type">my</span> $<span class="variable-name">delay_updates</span> = 60;

<span class="type">my</span> $<span class="variable-name">random</span> = 0;
<span class="type">my</span> $<span class="variable-name">verbose</span> = 0;

<span class="type">my</span> @<span class="underline"><span class="variable-name">feeds</span></span>;
<span class="type">my</span> @<span class="underline"><span class="variable-name">goods</span></span> = ();

<span class="comment-delimiter"># </span><span class="comment">Get command line options
</span><span class="type">my</span> %<span class="underline"><span class="variable-name">opts</span></span>=();
getopts(<span class="string">"u:p:k:f:s:n:q:d:r:v"</span>,\%<span class="underline"><span class="variable-name">opts</span></span>);

<span class="comment-delimiter"># </span><span class="comment">Parse command line options, die if any not defined
</span><span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{u}) {
    $<span class="variable-name">username</span> = $<span class="variable-name">opts</span>{u};
}
<span class="keyword">else</span> {
    <span class="keyword">die</span> <span class="string">"username not defined!"</span>;
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{p}) {
    $<span class="variable-name">password</span> = $<span class="variable-name">opts</span>{p};
}
<span class="keyword">else</span> {
    <span class="keyword">die</span> <span class="string">"password not defined!"</span>;
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{k}) {
    $<span class="variable-name">keyword</span> = $<span class="variable-name">opts</span>{k};
}
<span class="keyword">else</span> {
    <span class="keyword">die</span> <span class="string">"keyword not defined!"</span>;
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{f}) {
    <span class="type">my</span> $<span class="variable-name">url</span> = $<span class="variable-name">opts</span>{f};
    @<span class="underline"><span class="variable-name">feeds</span></span> = XML::Feed-&gt;find_feeds($<span class="variable-name">url</span>);

    <span class="keyword">if</span> ($<span class="variable-name">feeds</span>[0]) {
        <span class="type">my</span> $<span class="variable-name">feed</span> = XML::Feed-&gt;parse(URI-&gt;new($<span class="variable-name">feeds</span>[0]));
        <span class="type">my</span> @<span class="underline"><span class="variable-name">entries</span></span> = $<span class="variable-name">feed</span>-&gt;entries();

        <span class="keyword">foreach</span> <span class="type">my</span> $<span class="variable-name">entry</span> (@<span class="underline"><span class="variable-name">entries</span></span>) {
            <span class="keyword">if</span> ($<span class="variable-name">entry</span>-&gt;link() =~ m<span class="string">/$keyword/</span>) {
                push (@<span class="underline"><span class="variable-name">goods</span></span>, $<span class="variable-name">entry</span>-&gt;link());
            }
        }
    }
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{s}) {
    $<span class="variable-name">status</span> = $<span class="variable-name">opts</span>{s};
    <span class="keyword">if</span> (length($<span class="variable-name">status</span>) &gt; 140) {
        <span class="keyword">die</span> <span class="string">"status too long!"</span>;
    }
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{n}) {
    $<span class="variable-name">num_results</span> = $<span class="variable-name">opts</span>{n};
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{q}) {
    $<span class="variable-name">poll_frequency</span> = $<span class="variable-name">opts</span>{q};
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{d}) {
    $<span class="variable-name">delay_updates</span> = $<span class="variable-name">opts</span>{d};
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{r}) {
    $<span class="variable-name">random</span> = $<span class="variable-name">opts</span>{r};
}

<span class="keyword">if</span> (defined $<span class="variable-name">opts</span>{v}) {
    $<span class="variable-name">verbose</span> = 1;
}

printf <span class="string">"get %d search results on keyword \"%s\" each %d seconds\n"</span>,
    $<span class="variable-name">num_results</span>, $<span class="variable-name">keyword</span>, $<span class="variable-name">poll_frequency</span>;
printf <span class="string">"retweet from user %s password %s each %d seconds\n"</span>,
    $<span class="variable-name">username</span>, $<span class="variable-name">password</span>, $<span class="variable-name">delay_updates</span>;
<span class="keyword">if</span> (scalar (@<span class="underline"><span class="variable-name">goods</span></span>)) {
    printf <span class="string">"use random status relevant for keyword \"%s\"\nfrom feed %s\n"</span>,
    $<span class="variable-name">keyword</span>, $<span class="variable-name">feeds</span>[0];
}
<span class="keyword">elsif</span> ($<span class="variable-name">status</span>) {
    printf <span class="string">"use status \"%s\"\n"</span>, $<span class="variable-name">status</span>;
}
<span class="keyword">if</span> ($<span class="variable-name">verbose</span>) {
    print <span class="string">"be verbose\n"</span>;
}

<span class="comment-delimiter"># </span><span class="comment">Create a Net:Twitter object
</span><span class="type">my</span> $<span class="variable-name">nt</span> = Net::Twitter-&gt;new({
    username =&gt; $<span class="variable-name">username</span>,
    password =&gt; $<span class="variable-name">password</span>,
    traits =&gt; [qw<span class="string">/API::REST/</span>, qw<span class="string">/API::Search/</span>]
});

<span class="comment-delimiter"># </span><span class="comment">So only new search results are retweeted
</span><span class="type">my</span> $<span class="variable-name">since_id</span> = 0;
<span class="type">my</span> $<span class="variable-name">max_id</span> = 0;

<span class="keyword">while</span> (1) {

    <span class="comment"># Get search results on keyword
</span>    printf <span class="string">"searching "</span>;
    <span class="type">my</span> $<span class="variable-name">tweets</span> = $<span class="variable-name">nt</span>-&gt;search({
        q <span class="string">=&gt; $keyword,
        rpp =</span>&gt; $<span class="variable-name">num_results</span>,
        lang =&gt; <span class="string">'es'</span>,
        $<span class="variable-name">since_id</span> ? (since_id =&gt; $<span class="variable-name">since_id</span>) : ()
    });

    <span class="keyword">if</span> (defined $<span class="variable-name">tweets</span>) {
        print <span class="string">"ok\n"</span>;
    }
    <span class="keyword">else</span> {
        print <span class="string">"failed!\n"</span>;
    }   

    <span class="comment"># For each search result...
</span>    <span class="keyword">for</span> <span class="type">my</span> $<span class="variable-name">t</span> (@{$<span class="variable-name">tweets</span>-&gt;{results}}) {
        <span class="keyword">next</span> <span class="keyword">unless</span> $<span class="variable-name">t</span>-&gt;{id} &gt; $<span class="variable-name">since_id</span>;
        <span class="keyword">if</span> ($<span class="variable-name">t</span>-&gt;{id} &gt; $<span class="variable-name">max_id</span>) {
            $<span class="variable-name">max_id</span> = $<span class="variable-name">t</span>-&gt;{id};
        }
        <span class="comment"># Don't retweet if an own tweet or from user is the keyword
</span>        <span class="comment"># also if already a retweet when no status is given
</span>        <span class="keyword">if</span> (
            ($<span class="variable-name">t</span>-&gt;{from_user} ne $<span class="variable-name">username</span>) &amp;&amp;
            ($<span class="variable-name">t</span>-&gt;{from_user} ne $<span class="variable-name">keyword</span>) &amp;&amp;
            (($<span class="variable-name">status</span>) || ($<span class="variable-name">t</span>-&gt;{text} !~ m<span class="string">/^RT/</span>))
            ) {
            <span class="comment"># Build retweet string
</span>            <span class="type">my</span> $<span class="variable-name">s</span>;
            <span class="comment"># Prepend a random hashtag
</span>            <span class="keyword">if</span> ($<span class="variable-name">random</span> &gt; 0) {
                $<span class="variable-name">s</span> .= <span class="string">"#"</span>;
                <span class="type">my</span> @<span class="underline"><span class="variable-name">chars</span></span>=(<span class="string">'a'</span>..<span class="string">'z'</span>,<span class="string">'0'</span>..<span class="string">'9'</span>);
                <span class="keyword">foreach</span> (1..$<span class="variable-name">random</span>)
                {
                    $<span class="variable-name">s</span> .= $<span class="variable-name">chars</span>[rand @<span class="underline"><span class="variable-name">chars</span></span>];
                }
                $<span class="variable-name">s</span> .= <span class="string">" "</span>;
            }
            <span class="comment"># Use feed entry with given keyword if any
</span>            <span class="keyword">if</span> (scalar(@<span class="underline"><span class="variable-name">goods</span></span>) &gt; 0) {
                $<span class="variable-name">s</span> .= <span class="string">"@"</span> . $<span class="variable-name">t</span>-&gt;{from_user} . <span class="string">" "</span>;

                <span class="type">my</span> $<span class="variable-name">uri</span> = $<span class="variable-name">goods</span> [rand @<span class="underline"><span class="variable-name">goods</span></span>];
                <span class="type">my</span> $<span class="variable-name">content</span> = get($<span class="variable-name">uri</span>);
                utf8::decode($<span class="variable-name">content</span>);

                <span class="type">my</span> $<span class="variable-name">p</span> = HTML::TokeParser-&gt;new(\$<span class="variable-name">content</span>);
                <span class="keyword">if</span> ($<span class="variable-name">p</span>-&gt;get_tag(<span class="string">'title'</span>)) {
                    <span class="type">my</span> $<span class="variable-name">title</span> = $<span class="variable-name">p</span>-&gt;get_trimmed_text();
                    $<span class="variable-name">title</span> =~ s<span class="string">/&amp;/&amp;amp;/</span>g;
                    $<span class="variable-name">s</span> .= $<span class="variable-name">title</span> . <span class="string">". "</span>;
                }
                $<span class="variable-name">s</span> .= $<span class="variable-name">uri</span>;
            }
            <span class="comment"># Use specified status if any
</span>            <span class="keyword">elsif</span> ($<span class="variable-name">status</span>) {
                $<span class="variable-name">s</span> .= <span class="string">"@"</span> . $<span class="variable-name">t</span>-&gt;{from_user} . <span class="string">" "</span> . $<span class="variable-name">status</span>;
            }
            <span class="comment"># Use a simple retweet
</span>            <span class="keyword">else</span> {
                $<span class="variable-name">s</span> .= <span class="string">"RT @"</span> . $<span class="variable-name">t</span>-&gt;{from_user} . <span class="string">": "</span> . $<span class="variable-name">t</span>-&gt;{text};
            }

            <span class="keyword">if</span> ($<span class="variable-name">verbose</span>) {
                printf <span class="string">"%s\n"</span>, $<span class="variable-name">s</span>;
            }
            printf <span class="string">"%s retweet"</span>, $<span class="variable-name">t</span>-&gt;{from_user};

            <span class="comment"># Send update
</span>            <span class="keyword">if</span> ($<span class="variable-name">nt</span>-&gt;update($<span class="variable-name">s</span>)) {
                print <span class="string">"ed ok\n"</span>;
            }
            <span class="keyword">else</span> {
                print <span class="string">" failed!\n"</span>;
            }
            sleep $<span class="variable-name">delay_updates</span>;
        }
    }

    <span class="comment"># Set last received search result and sleep for a while
</span>    $<span class="variable-name">since_id</span> = $<span class="variable-name">max_id</span>;
    sleep $<span class="variable-name">poll_frequency</span>;
}
</pre>
<p>El usuario de Debian y Ubuntu sólo tiene que instalar el paquete libnet-twitter-perl. El <i>bot</i> sin embargo debería ser utilizable en otros sistemas como Windows. Instálese en ese caso <a href="http://www.activestate.com/activeperl/" target="_blank" rel="nofollow">ActivePerl</a> o, mejor aún, el entorno <a href="http://www.cygwin.com/" target="_blank" rel="nofollow">Cygwin</a> y obténgase la librería necesaria utilizando CPAN.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2009/12/tu-propio-bot-para-twitter-en-perl/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 Karmic Koala, ¿actualizamos?</title>
		<link>http://www.linuxav.net/index.php/2009/11/ubuntu-9-10-karmic-koala-%c2%bfactualizamos/</link>
		<comments>http://www.linuxav.net/index.php/2009/11/ubuntu-9-10-karmic-koala-%c2%bfactualizamos/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 09:43:59 +0000</pubDate>
		<dc:creator>ismael</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[karmic koala]]></category>
		<category><![CDATA[xorg]]></category>
		<category><![CDATA[xsplash]]></category>

		<guid isPermaLink="false">http://www.linuxav.net/?p=634</guid>
		<description><![CDATA[La noticia de la pasada semana ha sido sin duda la liberación de la nueva versión de Ubuntu, la 9.10 con nombre en clave Karmic Koala. Se han hecho eco de la misma todos nuestros blogs amigos en la comunidad: MuyLinux, OcioLinux, Punto Libre, Soft-Libre, Solo Ubuntu, Ubuntips, Ubunlog y Ubuntu Life.
¿Deberías actualizar ya? La [...]]]></description>
			<content:encoded><![CDATA[<p>La noticia de la pasada semana ha sido sin duda la liberación de la nueva versión de Ubuntu, la 9.10 con nombre en clave Karmic Koala. Se han hecho eco de la misma todos nuestros <i>blogs</i> amigos en la comunidad: <a href="http://www.muylinux.com/2009/10/29/ubuntu-9-10-karmic-koala-ya-esta-aqui/" target="_blank" class="es" rel="nofollow">MuyLinux</a>, <a href="http://ociolinux.blogspot.com/2009/10/910.html" target="_blank" class="es" rel="nofollow">OcioLinux</a>, <a href="http://www.puntolibre.org/?p=1153" target="_blank" class="es" rel="nofollow">Punto Libre</a>, <a href="http://elsoftwarelibre.wordpress.com/2009/10/29/ubuntu-9-10-finalmente-liberado/" target="_blank" class="es" rel="nofollow">Soft-Libre</a>, <a href="http://elsoftwarelibre.wordpress.com/2009/10/29/ubuntu-9-10-finalmente-liberado/" target="_blank" class="es" rel="nofollow">Solo Ubuntu</a>, <a href="http://www.ubuntips.com.ar/2009/10/29/ubuntu-9-10-%E2%80%9Ckarmic-koala%E2%80%9D-final/" target="_blank" class="es" rel="nofollow">Ubuntips</a>, <a href="http://ubunlog.com.ar/blog/ubuntu-9-10-karmic-koala-final-lanzada/" target="_blank" class="es" rel="nofollow">Ubunlog</a> y <a href="http://ubuntulife.wordpress.com/2009/10/29/ubuntu-9-10-karmic-koala-disponible/" target="_blank" class="es" rel="nofollow">Ubuntu Life</a>.</p>
<p>¿Deberías actualizar ya? La pregunta puede desde luego ser hecha de muchas formas. ¿Estabas contento con la estabilidad de tu sistema actual? ¿Aprecias realmente estar manejando un sistema lo que viene a decirse &laquo;en producción&raquo;? ¿Cómo de excitante te resulta trabajar al filo de la navaja, y a qué estás dispuesto a renunciar a cambio?</p>
<p><img src="http://www.linuxav.net/wp-content/uploads/4056838866_b4993f6859.jpg" alt="ubuntu 9.10 karmic koala" title="4056838866_b4993f6859" width="500" height="313" class="alignnone size-full wp-image-637" /></p>
<p>No creas nada de lo que te dicen acerca de que una actualización como ésta se lleva a cabo fácilmente y sin dolor de cabeza alguno. Si la estabilidad de tu sistema es importante para ti, no dudo en recomendarte esperar dos o tres semanas hasta que todas las posibles cuestiones problemáticas derivadas de la actualización estén lo suficientemente bien documentadas.</p>
<p>Si te atreves a dar el salto, simplemente pulsa Alt+F2 y ejecuta:</p>
<pre>
  update-manager -d
  </pre>
<p>Y sigue ahora todas las instrucciones en pantalla. Con una conexión ADSL de una velocidad razonable en dos horas ya deberías haber terminado. Ah, por supuesto, si utilizas un Ubuntu <i>personalizado</i> como mi Ubuntu Studio, los pasos son exactamente los mismos.</p>
<p>¿Con qué problemas puedes encontrarte? En mi caso han sido éstos:</p>
<ul>
<li>El <i>kernel</i> 2.6.31 no arranca &mdash;en mi caso, dado que corro Ubuntu Studio, la versión <i>rt</i> de ese kernel&mdash;. Se presenta durante el arranque este mensaje de error.
<pre>
  udevadm trigger is not permitted while udev is unconfigured
  </pre>
<p>Si se presenta este problema es porque no han sido creadas las imágenes initramfs para los nuevos <i>kernel</i> instalados. Ejecuta:</p>
<pre>
$ sudo update-initramfs -u -k all
</pre>
<li>No es posible activar los efectos de escritorio. Resulta en mi caso que en la nueva versión de las Xorg el módulo <i>radeon</i> no detecta que el módulo <i>agpgart</i> está cargado y de ahí que no active las DRI. Queda patente por un rendimiento penoso de las glxgears. Si buscas en Google posibles soluciones a este problema, se recomiendan distintas configuraciones a ser aplicadas al fichero de configuración en /etc/X11/xorg.conf. El pequeño inconveniente es que en Karmic Koala, ¡este fichero ha desaparecido! Xorg detecta perfectamente la configuración gráfica a ser aplicada sin necesidad del mismo, aunque sí lo utiliza si existe. Para solucionar mi problema sólo tengo que crear un nuevo xorg.conf así:
<pre>
  $ sudo Xorg -configure
  </pre>
<p>Entrando en el sistema desde una consola y deteniendo gdm primero. La llamada crea un xorg.conf.new en tu directorio actual. Y ahora añadiendo esta línea a la sección Device.</p>
<pre>
  	Option "BusType" "PCI"
  </pre>
<p>Que arranquen las X y se detecte el bus AGP no quiere por supuesto decir que mientras escribo esto, por ejemplo, DRI esté activo. Menos mal que para la práctica mayoría de las cosas para las que uso este ordenador, la aceleración no es necesaria. Ya veremos cuando abra Audacity&#8230;</p>
<li>El gestor de entrada al sistema gdm ya no está, ya no existe, ha sido cambiado por xsplash. El arranque del sistema es desde luego más rápido, pero el nuevo gestor de entrada es realmente pobre de aspecto. No estoy hablando aquí de un problema, más bien sólo de un susto. Pero tendrás que acostumbrarte.
    </ul>
<p>¿Has actualizado? ¿A ti cómo te ha ido?</p>
<p>Capura de <a href="http://www.flickr.com/photos/kagetora/" target="_blank" class="en" rel="nofollow">Kage Tora</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxav.net/index.php/2009/11/ubuntu-9-10-karmic-koala-%c2%bfactualizamos/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
