<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://planeta.debian.org.ve/rss20.xml" rel="self" type="application/rss+xml" />
		<title>Planeta Debian Venezuela</title>
		<link>http://planeta.debian.org.ve</link>
		<image>
			<url>http://planeta.debian.org.ve</url>
			<title>Planeta Debian Venezuela</title>
			<link>http://planeta.debian.org.ve</link>
		</image>
		<description>Sitio que agrupa a los desarrolladores/mantenedores de Debian en Venezuela</description>
		<language></language>
		<generator>qPlanet</generator>
		<webMaster>webmaster@debian.org.ve (Webmaster Debian Venezuela)</webMaster>
		<pubDate>Wed, 22 Feb 2012 19:45:15 +0000</pubDate>
		<lastBuildDate>Wed, 22 Feb 2012 19:45:15 +0000</lastBuildDate>
		<ttl>60</ttl>
		<item>
			<title>Cifrar el tráfico de DNS en Linux con DNSCrypt y OpenDNS</title>
			<author>ecrespo@gmail.com (Ernesto Crespo)</author>
			<link>http://feedproxy.google.com/~r/LaLibertadDeDesarrollarNoTienePrecio/~3/APS_Asw53hw/cifrar-el-trafico-de-dns-en-linux-con.html</link>
			<description><![CDATA[DNSCrypt permite cifrar las consultas de DNS entre el Computador y
los servidores de DNS de OpenDNS, de esa forma se puede proteger al
equipo de los ataques de Hombre en el Medio.<br />
<br />
El artículo donde se basa este tutorial se encuentra en el
siguiente <a href=
"http://www.webupd8.org/2012/02/encrypt-dns-traffic-in-linux-with.html"
target="_blank">enlace</a>.<br />
Para instalar dnscrypt para Debian se baja el paquete desde el
repositorio de <a href=
"https://github.com/opendns/dnscrypt-proxy/downloads" target=
"_blank">Github</a>.<br />
<br />
&nbsp;Se ejecuta dpkg:<br />
<br />
<i><span>#dpkg -i dnscrypt-proxy_0.9_i386.deb</span></i><br />
<br />
Se inicia el proxy dns como demonio:<br />
<i><span>#dnscrypt-proxy --daemonize</span></i><br />
<br />
Se edita las conexiones inalámbricas en este caso en la red que se
conecta el equipo es inalámbrica:<br />
<div><a href=
"http://1.bp.blogspot.com/-EkzTAg_dT4Q/T0FwHlN-fOI/AAAAAAAABTo/BVOTsVYEh2E/s1600/Captura+de+pantalla+-+190212+-+17:14:12.png"
imageanchor="1"><img border="0" height="204" src=
"http://1.bp.blogspot.com/-EkzTAg_dT4Q/T0FwHlN-fOI/AAAAAAAABTo/BVOTsVYEh2E/s320/Captura+de+pantalla+-+190212+-+17:14:12.png"
width="320" alt="Imagen sin descripción" /></a></div>
<br />
<br />
Se selecciona la red inalámbrica y se edita su configuración:<br />
<div><a href=
"http://4.bp.blogspot.com/-ADaGVzr5xbo/T0FwQ-bVk_I/AAAAAAAABTw/Bk-9crZQO9g/s1600/Captura+de+pantalla+-+190212+-+17:14:57.png"
imageanchor="1"><img border="0" height="204" src=
"http://4.bp.blogspot.com/-ADaGVzr5xbo/T0FwQ-bVk_I/AAAAAAAABTw/Bk-9crZQO9g/s320/Captura+de+pantalla+-+190212+-+17:14:57.png"
width="320" alt="Imagen sin descripción" /></a></div>
<br />
Se selecciona la pestaña de Ajuste de IPv4, en el método se
selecciona Sólo direcciones automáticas (DHCP) y se coloca la IP
127.0.0.1 en Servidor de DNS:<br />
<div><a href=
"http://2.bp.blogspot.com/-kr-ghXneF24/T0Fw61_raFI/AAAAAAAABT4/0aPoyrEG0_w/s1600/Captura+de+pantalla+-+190212+-+17:15:47.png"
imageanchor="1"><img border="0" height="311" src=
"http://2.bp.blogspot.com/-kr-ghXneF24/T0Fw61_raFI/AAAAAAAABT4/0aPoyrEG0_w/s320/Captura+de+pantalla+-+190212+-+17:15:47.png"
width="320" alt="Imagen sin descripción" /></a></div>
<br />
Para verificar que se esté usando los servidores de DNS de OpenDNS
se abre el navegador a la URL&nbsp;<a href=
"http://www.opendns.com/welcome" target=
"_blank">http://www.opendns.com/welcome</a>&nbsp;:<br />
<br />
<div><a href=
"http://3.bp.blogspot.com/-YorfFvAorHk/T0FxTDIEfNI/AAAAAAAABUA/LNGQ_nAXZUI/s1600/Captura+de+pantalla+-+190212+-+16:49:31.png"
imageanchor="1"><img border="0" height="180" src=
"http://3.bp.blogspot.com/-YorfFvAorHk/T0FxTDIEfNI/AAAAAAAABUA/LNGQ_nAXZUI/s320/Captura+de+pantalla+-+190212+-+16:49:31.png"
width="320" alt="Imagen sin descripción" /></a></div>
<br />
Ya se tiene cifrado la comunicación a los servidores de
OpenDNS.<br />
<br />
<div><img width="1" height="1" src=
"https://blogger.googleusercontent.com/tracker/882744969176160062-262731030224237565?l=ernesto-ecrespo.blogspot.com"
alt="" /></div>
<img src=
"http://feeds.feedburner.com/~r/LaLibertadDeDesarrollarNoTienePrecio/~4/APS_Asw53hw"
height="1" width="1" alt="Imagen sin descripción" />]]></description>
			<pubDate>Mon, 20 Feb 2012 03:00:00 -0430</pubDate>
			<guid>http://ernesto-ecrespo.blogspot.com/</guid>
		</item>
		<item>
			<title>Conectarse al repositorio de bitbucket desde python</title>
			<author>ecrespo@gmail.com (Ernesto Crespo)</author>
			<link>http://feedproxy.google.com/~r/LaLibertadDeDesarrollarNoTienePrecio/~3/N7Zhwl2v_js/conectarse-al-repositorio-de-bitbucket.html</link>
			<description><![CDATA[Para tener un proyecto con control de versiones mercurial sólo veo
2 opciones usar <a href="http://code.google.com/" target=
"_blank">Google Code</a> o <a href="http://bitbucket.org/" target=
"_blank">Bitbucket</a>. &nbsp;Para el caso de Google Code se puede
acceder vía el api para usar mercurial con python como se explico
en artículo <a href=
"http://ernesto-ecrespo.blogspot.com/2012/01/api-de-mercurial-para-python.html"
target="_blank">anterior</a>.<br />
<br />
Para Bitbucket se tiene un API para acceder a la información del
repositorio que en python se llama <a href=
"https://bitbucket.org/jmoiron/python-bitbucket/" target=
"_blank">python-bitbucket</a>.<br />
Para instalarlo se sigue los siguientes pasos:<br />
A lo Debian/Canaima/Ubuntu/LinuxMint:<br />
<span><i>#apt-get install python-bitbucket</i></span><br />
<br />
Con la herramienta easy_install:<br />
<i><span>#easy_install bitbucket</span></i><br />
<br />
Con la herramienta pip:<br />
<i><span>#pip install bitbucket</span></i><br />
<br />
Usar el API de bitbucket:<br />
Desde la consola de python, se importa el módulo bitbucket<br />
<i><span>$python</span></i><br />
<br />
<i><span>&gt;&gt;&gt; import bitbucket</span></i><br />
<br />
Se crea la instancia de bitbucket.<br />
<br />
<i><span>&gt;&gt;&gt; bb = bitbucket.BitBucket()</span></i><br />
<br />
Se establece conexión a la cuenta de bitbucket :<br />
<div>
<div><i><span>&gt;&gt;&gt; bb = bitbucket.BitBucket('ecrespo',
'clave')</span></i></div>
</div>
<div><br /></div>
<div>Se verifica que se autentico en el servicio:</div>
<div>
<div><span><i>&gt;&gt;&gt; bb</i></span></div>
<div><span><i>&lt;BitBucket API (auth:
ecrespo)&gt;</i></span></div>
</div>
<div><br /></div>
<div>Se asocia la cuenta:</div>
<div><i><span>&gt;&gt;&gt; ecrespo =
bb.user('ecrespo')</span></i></div>
<div>
<div><i><span>&gt;&gt;&gt; ecrespo</span></i></div>
<div><i><span>&lt;User: ecrespo&gt;</span></i></div>
</div>
<div><br /></div>
<div>Se lista los repositorios del usuario (se devuelve una lista
con los repositorios del usuario, cada elemento de la lista es un
diccionario con la información del repositorio):</div>
<div>
<div><i><span>&gt;&gt;&gt; ecrespo.repositories()</span></i></div>
<div><i><span>[{u'scm': u'hg', u'has_wiki': True, u'last_updated':
u'2011-09-12 03:56:37', u'created_on': u'2009-04-09 22:42:58',
u'owner': u'ecrespo', u'logo': None, u'email_mailinglist': u'',
u'is_mq': False, u'size': 747499, u'read_only': False, u'fork_of':
None, u'mq_of': None, u'state': u'available', u'utc_created_on':
u'2009-04-09 20:42:58+00:00', u'website': u'', u'description':
u'Script que automatiza el proceso de conversi\xf3n de un sistema
Debian/Ubuntu para que sea accesible para las personas con
discapacidad visual', u'has_issues': True, u'is_fork': False,
u'slug': u'automatizar-accesibilidad', u'is_private': False,
u'name': u'automatizar-accesibilidad', u'language': u'',
u'utc_last_updated': u'2011-09-12 01:56:37+00:00',
u'email_writers': True, u'main_branch': u'default',
u'no_public_forks': False, u'resource_uri':
u'/api/1.0/repositories/ecrespo/automatizar-accesibilidad'},
{u'scm': u'hg', u'has_wiki': True, u'last_updated': u'2011-09-08
13:09:06', u'created_on': u'2011-08-04 05:02:06', u'owner':
u'ecrespo', u'logo': None, u'email_mailinglist': u'', u'is_mq':
False, u'size': 545, u'read_only': False, u'fork_of': None,
u'mq_of': None, u'state': u'available', u'utc_created_on':
u'2011-08-04 03:02:06+00:00', u'website': u'', u'description':
u'Lista de paquetes para la accesibilidad con una descripci\xf3n y
pruebas de los mismos', u'has_issues': False, u'is_fork': False,
u'slug': u'accesibilidad', u'is_private': True, u'name':
u'accesibilidad', u'language': u'', u'utc_last_updated':
u'2011-09-08 11:09:06+00:00', u'email_writers': True,
u'main_branch': None, u'no_public_forks': False, u'resource_uri':
u'/api/1.0/repositories/ecrespo/accesibilidad'}]</span></i></div>
</div>
<div><br /></div>
<div>Se captura la descripción del repositorio y la ruta del
mismo:</div>
<div>
<div><i><span>&gt;&gt;&gt;
ecrespo.repositories()[0]['description']</span></i></div>
<div><i><span>u'Script que automatiza el proceso de conversi\xf3n
de un sistema Debian/Ubuntu para que sea accesible para las
personas con discapacidad visual'</span></i></div>
</div>
<div><br /></div>
<div>
<div><i><span>&gt;&gt;&gt;
ecrespo.repositories()[0]['resource_uri']</span></i></div>
<div>
<i><span>u'/api/1.0/repositories/ecrespo/automatizar-accesibilidad'</span></i></div>
</div>
<div><br /></div>
<div>Se asocia a uno de los repositorios, en este caso el de
accesibilidad.</div>
<div>
<div><i><span>&gt;&gt;&gt;
pyaccesibilidad=ecrespo.repository('accesibilidad')</span></i></div>
</div>
<div><br /></div>
<div>
<div><i><span>&gt;&gt;&gt; pyaccesibilidad</span></i></div>
<div><i><span>&lt;Repository: ecrespo's
accesibilidad&gt;</span></i></div>
</div>
<div><br /></div>
<div>Se lista los tags o branches (para el caso del repositorio
accesibilidad devuelve diccionarios vacíos):</div>
<div>
<div><i><span>&gt;&gt;&gt; pyaccesibilidad.tags()</span></i></div>
<div><i><span>{}</span></i></div>
</div>
<div><i><span><br /></span></i></div>
<div>
<div><i><span>&gt;&gt;&gt;
pyaccesibilidad.branches()</span></i></div>
<div><i><span>{}</span></i></div>
</div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
<br />
<div><br /></div>
<div><img width="1" height="1" src=
"https://blogger.googleusercontent.com/tracker/882744969176160062-7090009010823407791?l=ernesto-ecrespo.blogspot.com"
alt="" /></div>
<img src=
"http://feeds.feedburner.com/~r/LaLibertadDeDesarrollarNoTienePrecio/~4/N7Zhwl2v_js"
height="1" width="1" alt="Imagen sin descripción" />]]></description>
			<pubDate>Sun, 19 Feb 2012 14:41:00 -0430</pubDate>
			<guid>http://ernesto-ecrespo.blogspot.com/</guid>
		</item>
		<item>
			<title>Obtener información de las interfaces de red con python(netifaces)</title>
			<author>ecrespo@gmail.com (Ernesto Crespo)</author>
			<link>http://feedproxy.google.com/~r/LaLibertadDeDesarrollarNoTienePrecio/~3/YnZJaWjn-a4/obtener-informacion-de-las-interfaces.html</link>
			<description><![CDATA[Existe un módulo en python que permite obtener la información de
las interfaces de red.<br />
<br />
Dicho módulo se llama netifaces, con él se puede obtener la lista
de interfaces de su equipo, obtener la información de Enlace de Red
de cada interfaz, su dirección IPv4 y su Dirección IPv6.<br />
<br />
Para instalar el módulo se ejecuta apt-get para el caso de
Debian/Canaima/Ubuntu.<br />
#apt-get install python-netifaces<br />
<br />
La idea es crear un script que capture la lista de interfaces del
equipo y muestre la información de cada una de dichas
interfaces.<br />
<br />
El código del programa se muestra a continuación:<br />
<br />
<span><em>#!/usr/bin/env python<br />
<br />
#Se importa el modulo netifaces<br />
import netifaces<br />
<br />
#Se captura la lista de interfaces en el equipo<br />
interfaces = netifaces.interfaces()<br />
#Se muestra las interfaces<br />
print "interfaces: ", interfaces<br />
<br />
#Se recorre la lista de interfaces<br />
for interface in interfaces:<br />
#Se captura la informacion de cada interfaz<br />
datos = netifaces.ifaddresses(interface)<br />
print "--------------------------"<br />
#Se muestra el nombre de la interface<br />
print "Interface: %s" %interface<br />
#Se captura la lista de parametros que tiene la interface<br />
variables = datos.keys()<br />
#Se muestra la direccion de la capa de enlace de red de la
interface<br />
print "Capa de enlace de red: ",
datos[netifaces.AF_LINK][0]['addr']<br />
#Si esta presente la informacion de IPV4 se muestra<br />
if netifaces.AF_INET in variables:<br />
print "IPv4: IP: %s, Mascara: %s"
%(datos[netifaces.AF_INET][0]['addr'],
datos[netifaces.AF_INET][0]['netmask'])<br />
#Si esta presente la informacion de IPv6 se muestra<br />
if netifaces.AF_INET in variables:<br />
print "IPv6: IP: %s, Mascara: %s "
%(datos[netifaces.AF_INET6][0]['addr'],
datos[netifaces.AF_INET6][0]['netmask'])</em></span><br />
<br />
El resultado del programa se muestra a continuación:<br />
<br />
<span><strong>interfaces: ['lo', 'eth0', 'wlan0']<br />
--------------------------<br />
Interface: lo<br />
Capa de enlace de red: 00:00:00:00:00:00<br />
IPv4: IP: 127.0.0.1, Mascara: 255.0.0.0<br />
IPv6: IP: ::1, Mascara:
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff<br />
--------------------------<br />
Interface: eth0<br />
Capa de enlace de red: 71:6a:b7:77:46:5f<br />
--------------------------<br />
Interface: wlan0<br />
Capa de enlace de red: 00:26:85:74:fe:89<br />
IPv4: IP: 192.168.10.108, Mascara: 255.255.255.0<br />
IPv6: IP: fe80::236:92ff:fa54:fe89%wlan0, Mascara:
ffff:ffff:ffff:ffff::</strong></span><br />
<br />
Para más información sobre el módulo pueden visitar la información
en la página de <a href="http://pypi.python.org/pypi/netifaces"
target="_blank">Python</a> o el sitio de la <a href=
"http://alastairs-place.net/projects/netifaces/" target=
"_blank">aplicación</a>.
<div><img width="1" height="1" src=
"https://blogger.googleusercontent.com/tracker/882744969176160062-4795742600240632242?l=ernesto-ecrespo.blogspot.com"
alt="" /></div>
<img src=
"http://feeds.feedburner.com/~r/LaLibertadDeDesarrollarNoTienePrecio/~4/YnZJaWjn-a4"
height="1" width="1" alt="Imagen sin descripción" />]]></description>
			<pubDate>Tue, 07 Feb 2012 03:30:00 -0430</pubDate>
			<guid>http://ernesto-ecrespo.blogspot.com/</guid>
		</item>
		<item>
			<title>¿Cómo verificar contenido entre dos directorios?</title>
			<author>muammarelkhatib@gmail.com (muammar)</author>
			<link>http://muammar.me/blog/2012/02/como-verificar-contenido-entre-dos-directorios/</link>
			<description><![CDATA[<p>En estos últimos dos años, he estado en contacto con varios
clusters dentro de la universidad donde hago mis estudios de
posgrado. La solución que he escogido para mantener sincronizados
mis directorios de trabajo ha sido <strong>rsync</strong>. Esto,
básicamente porque está instalado en todas las estaciones
generalmente (cosa que no ocurre con git, que no está siempre
instalado).</p>
<p>Sin embargo, a veces he tenido que dejar andando ciertos
cálculos por semanas y seguir haciendo trabajos en otros clusters
que tienen más hardware por nodo que me son de utilidad. Pero, ¿qué
pasa si tengo un directorio centralizado y he borrado ciertos sub
directorios en otros clusters y quiero saber cuáles han sido
borrados? Aunque parezca básico, es aquí donde
<strong>diff</strong> entró al rescate. (Si alguien conoce otra
forma más apropiada, por favor no dude en hacerla saber <img src=
"http://muammar.me/blog/wp-includes/images/smilies/icon_smile.gif"
alt=":)" class="wp-smiley" /> ). La utilidad está si cuando
sincronizas sueles usar la opción –delete en rsync.</p>
<p>Si queremos comparar dos directorios ejecutamos lo
siguiente:</p>
<blockquote>
<p>diff $DIRECTORIO1 $DIRECTORIO2</p>
</blockquote>
<p>Por ejemplo:</p>
<p>muammar@circa:~$ diff hyperion hyperion.21012012/<br />
Subdirectorios comunes: hyperion/elkhatib y
hyperion.21012012//elkhatib<br />
Sólo en hyperion.21012012/: homework<br />
Sólo en hyperion.21012012/: old</p>
<p>La salida no necesita explicación. Queda demás decir, que se
pueden utilizar las opciones habituales relacionadas al comando
diff. Para más información, lee el manual (man diff).</p>
]]></description>
			<pubDate>Sun, 05 Feb 2012 12:33:12 -0430</pubDate>
			<guid>http://muammar.me/blog</guid>
		</item>
		<item>
			<title>Página de canaima comunal nuevamente arriba</title>
			<author>e1th0r@gmail.com (e1th0r)</author>
			<link>http://e1th0r.gulmer.org.ve/?p=430</link>
			<description><![CDATA[<p>Por un detalle en la implementación del script de soporte de php
para nginx, el sitio de canaima comunal
(http://comunal.canaima.org.ve ) estuvo caido.</p>
<p>Ante el aviso de uno de sus mantenedores, se procedió a revisar
y se logró detectar el error.</p>
<p>Que siga adelante otro proyecto de Canaima</p>
]]></description>
			<pubDate>Tue, 24 Jan 2012 11:59:15 -0430</pubDate>
			<guid>http://e1th0r.gulmer.org.ve</guid>
		</item>
		<item>
			<title>Arreglando teclado en vit m2401 y canaima 3.0</title>
			<author>e1th0r@gmail.com (e1th0r)</author>
			<link>http://e1th0r.gulmer.org.ve/?p=426</link>
			<description><![CDATA[<p>Hace unos dìas escribía un post sobre el problema de la
activaciòn de la tarjeta inalámbrica en una vit m2401; hoy
escribiendo algunos artáculos en latex solucioné otro
problema&nbsp; que por un motivo u otro había pospuesto: la
disposición del teclado.</p>
<p>Las vit m2401 poseen una disposición de teclados correspondiente
a un teclado en español y no a un teclado latinoamericano lo cual
puede ser fácilmente comprobable mirando la tecla ubicada en la
esquina superior izquierda donde está la tecla del “\” : si su
máquina tiene una tecla parecida a esta:</p>
<p><a href=
"http://e1th0r.gulmer.org.ve/wp-content/uploads/2012/01/IMAG0540.jpg">
<img class="aligncenter size-medium wp-image-427" title=
"teclado latinoamericano" src=
"http://e1th0r.gulmer.org.ve/wp-content/uploads/2012/01/IMAG0540-300x199.jpg"
alt="" width="300" height="199" /></a></p>
<p>Entonces usted tiene un teclado con disposición español-español
caso contarario será español-latinomericano</p>
<p>Así el Canaima 3.0 que viene instalado en estos quipos traen
configurado el teclado Español-latinoamericano.</p>
<p>Para solventar esto, basta con cambiar la disposición del
teclado a españo-español utilizando
Sistema–Preferencias–Teclado–Distribuciones–España y listo…</p>
<p>AltGr+\\\\\\\\\\\\\\\\\\\\\\\\\\\</p>
]]></description>
			<pubDate>Sun, 22 Jan 2012 13:28:40 -0430</pubDate>
			<guid>http://e1th0r.gulmer.org.ve</guid>
		</item>
		<item>
			<title>Error wireless en vit m2401 sobre Canaima</title>
			<author>e1th0r@gmail.com (e1th0r)</author>
			<link>http://e1th0r.gulmer.org.ve/?p=424</link>
			<description><![CDATA[<p>Hace poco me facilitaron una máquina de este tipo y uno de los
problemas que tuve fue que no reconocía la tarjeta inalámbrica.</p>
<p>Un lspci me indicó que la tarjeta inalámbrica es</p>
<pre>
04:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
</pre>
<p>Sin embargo, un ifconfig eth4 me devolvía</p>
<pre>
root@canaima-popular:/etc# ifconfig wlan4 up
SIOCSIFFLAGS: Error desconocido 132
</pre>
<p>¿A qué se debe este error?</p>
<p>El problema es que el sistema no sabe manejar la activación y
desactivación de forma directa de esta tarjeta por lo que se
requiere una herramienta extra de nombre rfkill</p>
<p>Luego de instalarla, con el siguiente comando habilito la
tarjeta</p>
<pre>
root@canaima-popular:/etc# rfkill unblock all
</pre>
<p>Listo,</p>
<pre>
root@canaima-popular:/etc# rfkill list all
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
</pre>
<p>Y a rodar, a rodar mi vida…</p>
]]></description>
			<pubDate>Fri, 20 Jan 2012 19:16:55 -0430</pubDate>
			<guid>http://e1th0r.gulmer.org.ve</guid>
		</item>
		<item>
			<title>Envolver texto a 80 caracteres en VIM (wrap)</title>
			<author>muammarelkhatib@gmail.com (muammar)</author>
			<link>http://muammar.me/blog/2011/12/envolver-texto-a-80-caracteres-en-vim-wrap/</link>
			<description><![CDATA[<p>Este post es también una nota personal (a veces solo lo olvido),
parecida al post que hice previamente de <a href=
"http://muammar.me/blog/2011/11/apagar-display-lcd-de-una-laptop-desde-el-terminal-en-linux/">
apagar el LCD de una laptop desde la consola</a>. &nbsp;En esta
oportunidad, esta información es útil cuando tienes un archivo de
texto, o tal vez algunos de esos correos en format=flowed (que
aparecen en tu cliente como una línea que no tiene final) y quieres
crear un párrafo que esté envuelto a 80 caracteres.</p>
<p>Como una imagen vale más que mil palabras, me refiero a este
“chorizo” que muestro a continuación:</p>
<p><a href=
"http://muammar.me/blog/2011/12/envolver-texto-a-80-caracteres-en-vim-wrap/antes/"
rel="attachment wp-att-780"><img class=" wp-image-780 aligncenter"
title="Chorizo" src=
"http://muammar.me/blog/wp-content/uploads/2011/12/antes-300x68.png"
alt="chorizo" width="340" height="108" /></a></p>
<p>Lo que tenemos que hacer para envolver ese texto es lo
siguiente. Primero, configuramos el wrapping:</p>
<blockquote>
<p>:set textwidth=80</p>
</blockquote>
<p>Pulsamos la combinación <strong>Shift + V</strong> (modo Visual
Line en VIM para seleccionar texto), y procedemos a “sombrear” las
líneas de interés (en mi caso, como pueden ver solo es una, pero
vaya línea, ¿no?), y debería lucir como muestro en la próxima
figura:</p>
<p><a href=
"http://muammar.me/blog/2011/12/envolver-texto-a-80-caracteres-en-vim-wrap/shiftv/"
rel="attachment wp-att-781"><img class=
"alignnone size-large wp-image-781" title="shiftv" src=
"http://muammar.me/blog/wp-content/uploads/2011/12/shiftv-1024x79.png"
alt="" width="584" height="45" /></a></p>
<p>Y por último pulsamos la siguiente combinación de teclas:
<strong>gq</strong>. Esto, trae como consecuencia, que el “chorizo
que se mostraba previamente” luzca descentemente:</p>
<p><a href=
"http://muammar.me/blog/2011/12/envolver-texto-a-80-caracteres-en-vim-wrap/descente/"
rel="attachment wp-att-782"><img class=
"alignnone size-full wp-image-782" title="descente" src=
"http://muammar.me/blog/wp-content/uploads/2011/12/descente.png"
alt="" width="605" height="142" /></a></p>
<p>Et voilà!</p>
<p>PD. ¡Muerte a los que no siguen la <a href=
"http://es.wikipedia.org/wiki/Netiquette">netiquette</a>!</p>
]]></description>
			<pubDate>Wed, 21 Dec 2011 19:06:02 -0430</pubDate>
			<guid>http://muammar.me/blog</guid>
		</item>
		<item>
			<title>Hallacazo UNPLUG 2011</title>
			<author>apostols@gmail.com (apostols)</author>
			<link>http://apostols.net/?p=269</link>
			<description><![CDATA[<p>Me complace anunciarles que el Hallacazo UNPLUG (que no es más
que la reunión anual física de los integrantes del <a href=
"http://www.unplug.org.ve" target="_blank">Grupo de Usuario de
GNU/Linux UNPLUG</a>) 2011 se dará acabo:</p>
<ul>
<li><strong>Día</strong>: 16 de Diciembre de 2011</li>
<li><strong>Hora</strong>: 1:00 P.M.</li>
<li><strong>Lugar</strong>: Restaurante Nonna Mia. Plaza La
Castellana, Ed. IASA. Chacao – Venezuela</li>
</ul>
<p><br />
<small>Ver <a href=
"http://maps.google.com/maps/ms?msa=0&amp;msid=216178172835325046546.000496c3c630642531542&amp;ie=UTF8&amp;t=m&amp;vpsrc=0&amp;z=17&amp;source=embed">
Restaurante Nonna Mia</a> en un mapa más grande</small></p>
<p>Te esperamos!</p>
]]></description>
			<pubDate>Mon, 12 Dec 2011 14:48:20 -0430</pubDate>
			<guid>http://apostols.net</guid>
		</item>
		<item>
			<title>Apagar Display LCD de una laptop desde el terminal en Linux</title>
			<author>muammarelkhatib@gmail.com (muammar)</author>
			<link>http://muammar.me/blog/2011/11/apagar-display-lcd-de-una-laptop-desde-el-terminal-en-linux/</link>
			<description><![CDATA[<p>Este post es más una nota personal, porque por alguna razón
siempre olvido este comando. Es útil apagar el display LCD cuando
por ejemplo se está utilizando un laptop como servidor y se desea
ahorrar energía (obviamente, como servidor que es, no hay
instalación de servidor de X, si no, solamente acceso a las
TTY).</p>
<p>Con este pequeño preámbulo, introduzco a <a href=
"http://linux.die.net/man/1/vbetool">vbetool</a>. Y como se
desprende de su
descripción:&nbsp;<strong>vbetool</strong>&nbsp;utiliza lrmi en
orden de correr código desde el video del BIOS. Actualmente, es
capaz de alterar estados DPMS, tales como guardar y recuperar
estados de la tarjeta de vídeo y atentar iniciar la tarjeta de
vídeo “from scratch”.</p>
<p>Ahora, si quisiéramos apagar el display LCD ejecutamos como
super usuario:</p>
<blockquote>
<p># vbetool dpms off</p>
</blockquote>
<p>Y obviamente, si se quisiere hacer lo contrario se ejecuta:</p>
<blockquote>
<p># vbetool dpms on</p>
</blockquote>
<p>En lo personal, desconozco si habrán otros métodos para llevar a
cabo esto, pero por los momentos, este me funciona a la perfección.
Puede ejecutarse accediendo remotamente al servidor y así poder
encender y apagar el LCD.</p>
<p>Espero que sea de ayuda para algunos.</p>
]]></description>
			<pubDate>Sat, 26 Nov 2011 06:37:40 -0430</pubDate>
			<guid>http://muammar.me/blog</guid>
		</item>
		<item>
			<title>De dpatch a quilt</title>
			<author>apostols@gmail.com (apostols)</author>
			<link>http://apostols.net/?p=258</link>
			<description><![CDATA[<div>
<p>Hace unas semanas me reactivé con el Proyecto <a href=
"http://debian.org" target="_blank">Debian</a>,&nbsp;comencé el
proceso de mitigación de&nbsp;<a href=
"http://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=juan@apuntale.com"
target="_blank">bugs</a> en los <a href=
"http://qa.debian.org/developer.php?login=juan@apuntale.com"
target="_blank">paquetes que mantengo</a> desde el año 2007. Una de
las herramientas en que siempre me apoyé y que fue fiel compañero
de batalla para aplicar parches:&nbsp;<a href=
"http://packages.debian.org/sid/dpatch" target="_blank">dpatch</a>.
Actualizandome conseguí que <a href=
"http://savannah.nongnu.org/projects/quilt" target=
"_blank">quilt</a> ahora viene con soporte nativo en el dpkg 3.0
format, así que decidí probarlo. Una de las cosas que me gustó fue
que usando quilt no tengo que hacerle mucho hacking al
<strong>debian/rules</strong> (al contrario que dpatch, se
necesitaba declarar funciones de patch/unpatch/etc). Para la
migración de dpatch a quilt utilicé este simple comando:</p>
</div>
<p><code>for inc in $(dpatch list-all); do quilt import -P
$inc.diff debian/patches/$inc.dpatch; quilt push; done</code></p>
<p>Antes de comenzar debemos preparar el ambiente:</p>
<p><code>cd /donde/sea/que/esten/las/fuentes/<br />
mkdir debian/patches<br />
export QUILT_PATCHES=debian/patches<br />
touch debian/patches/series<br /></code></p>
<p><strong>Nota</strong>: Se recomienda setear la variable
QUILT_PATCHES=debian/patches en ~/.quiltrc</p>
<p>Una forma rápida para comentar a parchear con quilt es la
siguiente:</p>
<p><code>quilt push -a # Aplicamos parches, si existen<br />
quilt new repara_esto.diff # Se crea el archivo que contendrá el
parche<br />
quilt add algo.c # Se agrega el archivo a modificar<br />
sed -i '1 s/^/Hola/' algo.c # Se realiza la modificación al
archivo<br />
quilt refresh # Se crea el parche<br />
quilt pop -a # Se deshacen los cambios</code></p>
<p>Y para modificar un archivo que ya tenga un parche:</p>
<p><code>quilt push repara_esto.diff<br />
sed -i 's/Hola/Chao/' algo.c<br />
quilt refresh repara_esto.diff<br />
quilt pop -a</code></p>
<p>Más información: <a href=
"http://pkg-perl.alioth.debian.org/howto/quilt.html" target=
"_blank">Quilt for Debian Maintainers</a></p>
]]></description>
			<pubDate>Wed, 07 Sep 2011 09:58:01 -0430</pubDate>
			<guid>http://apostols.net</guid>
		</item>
		<item>
			<title>Deck.js: Para hacer presentaciones con HTML+JS</title>
			<author>ghostbar@debian.org.ve (ghostbar)</author>
			<link>http://ghostbar.ath.cx/2011/08/30/deck-js-para-hacer-presentaciones-con-htmljs/</link>
			<description><![CDATA[<p>Hoy navegando me topé con esta librería Javascript para hacer lo
que llaman <em>presentaciones modernas</em> con HTML. Depende de
jQuery y Modernizr para hacer la magia y está bajo una licencia
dual MIT/GPL. Funciona en IE7+, Opera, Chrome, Firefox y
Safari.</p>
<p><img src=
"http://ghostbar.ath.cx/wp-content/uploads/2011/08/deck.js.snapshot-300x197.png"
alt="" title="deck.js.snapshot" width="300" height="197" class=
"aligncenter size-medium wp-image-591" /></p>
<p>La librería en cuestión se llama <a href=
"http://imakewebthings.github.com/deck.js/">Deck.js y pueden ver
una demostración de sus resultados</a>, incluye más temas y
documentación para que tú mismo crees tus temas si manejas
CSS+JS.</p>
<p>Pueden hacer <a href=
"https://github.com/imakewebthings/deck.js">un fork del código de
Deck.js desde GitHub</a>.</p>
]]></description>
			<pubDate>Tue, 30 Aug 2011 23:45:09 -0430</pubDate>
			<guid>http://ghostbar.ath.cx</guid>
		</item>
		<item>
			<title>«Licencias para Desarrolladores en el mundo Open Source», la presentación en PDF</title>
			<author>ghostbar@debian.org.ve (ghostbar)</author>
			<link>http://ghostbar.ath.cx/2011/08/21/%C2%ABlicencias-para-desarrolladores-en-el-mundo-open-source%C2%BB-la-presentacion-en-pdf/</link>
			<description><![CDATA[<p>Para los que asistieron y para los que no a mi charla en el Día
Debian 2011 de Barquisimeto, <a href=
"http://www.scribd.com/doc/62788404/presentacion">aquí les dejo mis
láminas en formato PDF y fácilmente leíbles desde la web con
Scribd</a>.</p>
<p>Pronto estaré escribiendo más sobre el tema de la propiedad
intelectual que poco se ha urgado en la comunidad hispana pero que
sigue teniendo efectos sobre nuestras acciones.</p>
]]></description>
			<pubDate>Sun, 21 Aug 2011 21:18:15 -0430</pubDate>
			<guid>http://ghostbar.ath.cx</guid>
		</item>
		<item>
			<title>Mañana 20 de Agosto, Día Debian Barquisimeto</title>
			<author>ghostbar@debian.org.ve (ghostbar)</author>
			<link>http://ghostbar.ath.cx/2011/08/19/manana-20-de-agosto-dia-debian-barquisimeto/</link>
			<description><![CDATA[<p>Mañana se realizará el Día Debian en Barquisimeto, en el
Decanato de Ciencias y Tecnología de la UCLA, donde estaré dando la
charla «<strong><em>Licencias OpenSource para
Desarrolladores</em></strong>», el cronograma completo del evento
es el siguiente:</p>
<p><strong>Sala 1:</strong></p>
<ol>
<li>Routing en Debian Linux (Harold Luzardo) 8:30 am</li>
<li>“¿Por que instalar Debian?” (Instalacion de Debian Squeeze)
(Rafael Isturiz) 10am</li>
<li>Android Primero Pasos (Gustavo Piciccini) 2:00pm</li>
<li>Principios básicos en Python (Samuel Rojas) 3:00 pm</li>
</ol>
<p><strong>Sala 2:</strong></p>
<ol>
<li>Virtualización de la A a la Z (Jesus Lara) 8:45am</li>
<li>Licencias OpenSource para Desarrolladores (Jose Luis Rivas)
11:00am</li>
<li>Juegos mas allá del código (Will Alvarez) 2pm</li>
<li>Comunidades de Software Libre (Augusto Davila) 3:30pm</li>
</ol>
<p>¡Los esperamos por allá!</p>
]]></description>
			<pubDate>Fri, 19 Aug 2011 12:47:14 -0430</pubDate>
			<guid>http://ghostbar.ath.cx</guid>
		</item>
		<item>
			<title>Timeline</title>
			<author>vanecgs@gmail.com (vanecgs)</author>
			<link>http://blog.titacgs.com.ar/timeline/</link>
			<description><![CDATA[<p>Objetivos</p>
Generar formas alternativas para la visualización de información.
Cambiar el formato en que el texto es percibido. Generar una
instalación que visualmente provea información.
<p>&nbsp;</p>
<p>Descripción detallada breve</p>
<p>Este proyecto busca generar una instalación que permita
visualizar información proveniente de redes sociales (en este caso
especifico de twitter), se tomarán textos generados por usuarios
[...]</p>
]]></description>
			<pubDate>Thu, 18 Aug 2011 09:44:37 -0430</pubDate>
			<guid>http://blog.titacgs.com.ar</guid>
		</item>
		<item>
			<title>7mo Día Debian Caracas</title>
			<author>apostols@gmail.com (apostols)</author>
			<link>http://apostols.net/?p=251</link>
			<description><![CDATA[<p>Tenemos el agrado de invitarlos a la celebración del décimo
octavo&nbsp;aniversario de <a href="http://debian.org" target=
"_blank">Debian</a>, siendo esta una de las distribuciones Linux
que&nbsp;se caracteriza por ser la más libre de todas y brindar a
sus usuarios&nbsp;y administradores estabilidad y seguridad
incomparables.</p>
<p>En el marco de la celebración del 18 aniversario de la
distribución de&nbsp;GNU/Linux Debian el próximo <strong>20 de
Agosto</strong> se realizará el Séptimo Día&nbsp;Debian, una
reunión de interesados en el Software Libre y Linux
en&nbsp;general, ideal para debatir compartir y conocer en compañía
de&nbsp;compañeros, estudiantes, profesores y profesionales en
general del&nbsp;área de Tecnologías Libres.</p>
<p>Este año el magno evento estará en su mayoría orientado a
realizar&nbsp;demostraciones prácticas y técnicas (semi talleres)
para lo cual&nbsp;invitamos a los participantes que posean
computadora portátil&nbsp;llevarlas y acompañar a los facilitadores
en los recorridos técnicos&nbsp;por los cuales nos pasearán. Si no
tienes laptop pues no importa es&nbsp;”demostrativo” anota tu
chuleta y luego descarga los recursos&nbsp;empleados o prácticas
aquí en esta pagina.&nbsp;Totalmente Libre y Gratuito.</p>
<p><strong>¿Dónde y Cúando?</strong><br />
7mo Dia Debian 2011 – Colegio Universitario Caracas.<br />
Sábado 20 de Agosto de 2011 – Caracas Venezuela.<br />
Ubicada en: Av. Principal de la Floresta cruce con Av. Francisco
de&nbsp;Miranda Urb. La Floresta, Edificio Sucre. a una cuadra de
la estación&nbsp;de metro “Altamira”, frente a Centro Plaza. Chacao
Estado Miranda.</p>
<p><strong>Más Información</strong></p>
<p>Website: <a href="http://www.diadebian.org.ve" target=
"_blank">http://www.diadebian.org.ve</a> /&nbsp;Twitter: <a href=
"http://twitter.com/diadebian" target="_blank">@diadebian</a></p>
]]></description>
			<pubDate>Tue, 09 Aug 2011 09:27:37 -0430</pubDate>
			<guid>http://apostols.net</guid>
		</item>
	</channel>
</rss>
