<?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.unplug.org.ve/rss20.xml" rel="self" type="application/rss+xml" />
		<title>Planeta UNPLUG</title>
		<link>http://planeta.unplug.org.ve</link>
		<image>
			<url>http://planeta.unplug.org.ve/gfx/hl_icono.png</url>
			<title>Planeta UNPLUG</title>
			<link>http://planeta.unplug.org.ve</link>
		</image>
		<description>Sitio que agrupa a los integrantes de UNPLUG</description>
		<language>es-es</language>
		<generator>qPlanet</generator>
		<webMaster>webmaster@unplug.org.ve (Webmaster UNPLUG)</webMaster>
		<pubDate>Mon, 08 Feb 2010 22:30:21 +0000</pubDate>
		<lastBuildDate>Mon, 08 Feb 2010 22:30:21 +0000</lastBuildDate>
		<ttl>60</ttl>
		<item>
			<title>132/365: Enferma / Sick</title>
			<author>tatadbb@gmail.com (tatica)</author>
			<link>http://tatica.org/2010/02/08/132365-enferma-sick/</link>
			<description><![CDATA[<center><a href="http://www.flickr.com/photos/tatadbb/4341173225/"
title="132/365: Enferma / Sick"><img class="alignnone" src=
"http://farm5.static.flickr.com/4030/4341173225_c8ba8a6224.jpg"
alt="132/365: Enferma / Sick" width="500" height=
"334" /></a></center>
<p>===== Español =====<br />
Hoy ha sido un día ajetreado y lo peor es que no me siento bien.
Les dejo esta foto de como he tenido que usar mi bufanda para poder
respirar.</p>
<p>Gimp: Capa en modo solapar + desaturación</p>
<p>===== English =====<br />
Today has been a busy day, and the worst is that I don’t feel well.
I leave you this photo of what I have to use my scarf to be able of
breathe.</p>
<p>Gimp: Overlay mode layer + Desaturation</p>
]]></description>
			<pubDate>Mon, 08 Feb 2010 17:00:24 -0430</pubDate>
			<guid>http://tatica.org</guid>
		</item>
		<item>
			<title>Phobia2 – Ha phraeng</title>
			<author>richzendy@gmail.com (Richzendy)</author>
			<link>http://richzendy.org/2010/02/07/phobia2-ha-phraeng.html</link>
			<description><![CDATA[<div><img title="Phobia2" src=
"http://img52.imageshack.us/img52/2267/5praeng.jpg" alt="Phobia2"
width="140" height="192" />
<p>Portada de Phobia2</p>
</div>
<p>Esta semana me vi <strong>Phobia2</strong>,&nbsp; es una
película asiática, específicamente de Tailandia&nbsp; y aunque no
he visto la primera parte, esto no fue problema ya que la trama
consta de varias historias sin relación entre si, es más como una
selección de cuentos, así que la primera parte supongo que nada
tiene que ver con la segunda.</p>
<p>Es una película de terror y suspenso, al más clásico estilo
asiático que se a estado viendo los últimos años, no voy a decir
que esta producción es una obra maestra del terror, pero está bien
para verla en la noche y con un buen sonido, <strong>Phobia
2</strong> explora en cada uno de sus capítulos&nbsp; los miedos
más profundos que se puedan llegar a tener.</p>
<p>En este momento estoy descargando la primera parte que espero
sea mucho mejor que esta ( siempre las primeras partes son mejores
<img src=
"http://richzendy.org/wp-includes/images/smilies/icon_biggrin.gif"
alt=":-D" class="wp-smiley" /> ).</p>
<p>La película es bien, para salir un poco de la rutina de cine
hollywoodiense que normalmente es lo que nos llega.</p>
<p>Esta película no la van a conseguir en cines, así que si se
aventuran a verla como yo lo hice, acá les dejo el enlace de
descarga:</p>
<p><a title="Phobia2 descarga torrent" href=
"http://www.mejorenvo.com/descargar-pelicula-5386.html" target=
"_blank">http://www.mejorenvo.com/descargar-pelicula-5386.html</a></p>
<p>El enlace imdb de la película es:</p>
<p><a title="Phobia2 en IMDB" href=
"http://www.imdb.com/title/tt1521846/" target=
"_blank">http://www.imdb.com/title/tt1521846/</a></p>
<p>Y el trailer oficial:</p>
<p>Articulos Relacionados:</p>
<ol>
<li><a href=
"http://richzendy.org/2009/10/30/aliens-in-the-attic.html" rel=
"bookmark" title="Permanent Link: Aliens In The Attic">Aliens In
The Attic</a> <small>Anoche ví “aliens in The Attic” me gusto mucho
la...</small></li>
<li><a href=
"http://richzendy.org/2009/11/23/paranormal-activity-actividad-paranormal.html"
rel="bookmark" title=
"Permanent Link: Paranormal Activity – Actividad Paranormal">Paranormal
Activity – Actividad Paranormal</a> <small>Paranormal
Activity&nbsp; es una película de suspenso y terror
considerada...</small></li>
<li><a href="http://richzendy.org/2009/11/15/9-nine.html" rel=
"bookmark" title="Permanent Link: 9 (nine)">9 (nine)</a> <small>9 (
nine ) es una película animada con alto...</small></li>
</ol>
]]></description>
			<pubDate>Sun, 07 Feb 2010 21:21:31 -0430</pubDate>
			<guid>http://richzendy.org</guid>
		</item>
		<item>
			<title>FLISOL 2010, ¡Ya viene!</title>
			<author>none@gmail.com (roliverio)</author>
			<link>http://roliverio.vaslibre.org.ve/?p=15</link>
			<description><![CDATA[<p>¡Saludos a todos!</p>
<p>He estado algo deslindado del trabajo comunitario para con el
Software Libre, lo sé y en cierta forma quiero redimirme un poco
participando un poco más activamente en los eventos de este año.
Espero que todo eso se pueda dar.</p>
<p>Por lo pronto, el <a href="http://flisol.org.ve/">FLISOL
(Festival Latinoamericano de Instalación de Software Libre)</a>
viene con todo este 24 de Abril a una ciudad cerca de tí <img src=
"http://roliverio.vaslibre.org.ve/wp-includes/images/smilies/icon_wink.gif"
alt=";)" class="wp-smiley" /> .</p>
<p>Me estoy encargando de las listas y el manejo de los correos
internos. Tal vez salgan otras tareas, pero cada quien aportando un
granito de arena realmente hace la diferencia, <a href=
"http://tatica.org">tatica</a> está bien ocupada y además se ha
merecido el título de organizadora nacional por mérito propio,
dándole empuje ya por el 3er año consecutivo. ¡Gracias!</p>
<p>Estaré participando si el destino lo permite, directamente en el
FLISOL de <a href=
"http://flisol.org.ve/ciudades/valencia">Valencia</a> , manténganse
en línea que ya estamos afinando los detalles y estaremos
actualizando la información en la página que nos corresponde así
como en el Website de <a href=
"http://www.vaslibre.org.ve">VaSLibre</a>.</p>
<p>Solo espero que como todos los años salga bien y a ¡cambiar
pensamientos!</p>
]]></description>
			<pubDate>Sun, 07 Feb 2010 15:55:59 -0430</pubDate>
			<guid>http://roliverio.vaslibre.org.ve</guid>
		</item>
		<item>
			<title>Robot de Lego resuelve cubo de Rubik (4×4) usando un Nokia N95</title>
			<author>none@gmail.com (Skatox)</author>
			<link>http://skatox.com/blog/2010/02/06/robot-de-lego-resuelve-cubo-de-rubik-4x4-usando-un-nokia-n95/</link>
			<description><![CDATA[<p>Interesante vídeo que encontré en <a href=
"http://telematikos.com/2010/02/nokia-n95-resuelve-cubo-de-rubik/"
target="_blank">telematikos.com</a> sobre como utilizando el kit de
robot de Lego y un Nokia N95, hicieron un robot que toma las fotos
de cada cara del cubo, calcula una solución a través del
celular/móvil y le envía al robot los pasos a ejecutar para
resolver el cubo.</p>
<p>Video recomendado para los fanáticos del cubo de Rubik:</p>
<p>If you can see this, then you might need a Flash Player upgrade
or you need to install Flash Player if it's missing. Get <a href=
"http://get.adobe.com/flashplayer/" target="_blank">Flash
Player</a> from Adobe.<br />
<!-- Valid XHTML flash object delivered by XHTML Video Embed. Get it at: http://saltwaterc.net/xhtml-video-embed --></p>
]]></description>
			<pubDate>Sat, 06 Feb 2010 22:41:45 -0430</pubDate>
			<guid>http://skatox.com/blog</guid>
		</item>
		<item>
			<title>3.5G (HSDPA) de Movilnet en Linux</title>
			<author>fjandrade@gmail.com (admin)</author>
			<link>http://blog.naturalbornhacker.com/?p=23</link>
			<description><![CDATA[<p>Nokia E75 conectado por USB a Fedora 12, con conexión HSDPA de
Movilnet (plan de datos ilimitados). En el centro de Mérida</p>
<p><img class="aligncenter" title="speedtest.net" src=
"http://www.speedtest.net/result/706759423.png" alt="" width="300"
height="135" /></p>
]]></description>
			<pubDate>Fri, 05 Feb 2010 10:29:05 -0430</pubDate>
			<guid>http://blog.naturalbornhacker.com</guid>
		</item>
		<item>
			<title>¿Cómo colaborar con proyectos de Software Libre cuando no soy un programador?</title>
			<author>comanche@null.com (Oscar Zambrano)</author>
			<link>http://oscar.gnu.org.ve/?p=264</link>
			<description><![CDATA[<p><br /></p>
<p align="justify">Muchos de los lectores de este blog, y quien
escribe en él, somos felices usuarios de Software Libre en
cualquiera de sus distribuciones, formas y colores.</p>
<p align="justify">Todos usamos aplicaciones que obtenemos sin el
menor esfuerzo, de hecho, hoy usar un administrador de paquetes
comoBaby Gnu Synaptic está a la mano de cualquiera hoy en dia y
podemos obtener infinidad de paquetes que seguramente cubran y
excedan todas nuestras necesidades. Pero, alguna vez se pusieron a
pensar en ¿Quiénes hicieron esas aplicaciones?</p>
<p align="justify">Quizás miles de desarrolladores alrededor del
mundo e incluso de nacionalidades diferentes, han puesto horas de
su tiempo para escribir las miles de lineas de código que, por
ejemplo, utiliza el navegador en el que estás leyendo este
artículo.</p>
<p align="justify">Pero, alguna vez te pusiste a pensar en ¿Cómo
podrías colaborar con ellos?</p>
<p align="justify"><strong>* Reportando Errores:</strong> Los
programadores no somos perfectos. Mejor dicho, somos humanos y
cometemos errores tanto como vos los haces. Si en algún momento
estás utilizando alguna aplicación y encuentras un bug, no dudes en
reportarlo. Siempre vas a encontrar el e-mail de quien desarrolla o
administra el proyecto, y de seguro estará agradecido que se lo
hagas saber para mejorarlo</p>
<p align="justify"><strong>* Traduciendo:</strong> Si tenés un buen
manejo del Inglés, o quizás de otro idioma en el que se presente el
software, podrías ayudar a traducirlo, convirtiendolo así en algo
más accesible para todos.</p>
<p align="justify"><strong>* Donando:</strong> Es bueno también
tener algún tipo de recompensa económica cuando uno invierte tantas
horas en algo. De seguro que los desarrolladores no nos compraremos
un Mercedes último modelo con el dinero que obtengamos de nuestras
colaboraciones, pero por lo menos nos pagarán una taza de café para
seguir haciendo lo que más nos gusta!</p>
<p>Y ahora que sabemos como hacerlo, ¿Por que lo haríamos?</p>
<p align="justify"><strong>* Satisfacción personal:</strong> ver
nuestro nombre en la lista de agradecimientos de un paquete o en el
sitio web sólo por el hecho de haber puesto un poco de esfuerzo y
ganas de nuestra parte, da una gran satisfacción</p>
<p align="justify"><strong>* Ayudar:</strong> Sí, somos muchos los
que nos gusta ayudar, por el simple hecho de hacerlo <img src=
"http://oscar.gnu.org.ve/wp-includes/images/smilies/icon_smile.gif"
alt=":)" class="wp-smiley" /></p>
<p align="justify">Y ustedes, ¿Como colaborarían?</p>
]]></description>
			<pubDate>Thu, 04 Feb 2010 22:45:15 -0430</pubDate>
			<guid>http://oscar.gnu.org.ve</guid>
		</item>
		<item>
			<title>Escritorio Enero 2010</title>
			<author>ncolina@gmail.com (Art3mis4)</author>
			<link>http://art3mis4.blogspot.com/2010/02/escritorio-enero-2010.html</link>
			<description><![CDATA[<a href=
"http://1.bp.blogspot.com/_LrnpkSJBn0E/S2oENg_yOuI/AAAAAAAADSU/OcQp36J63-U/s1600-h/enero_2010.png">
<img style=
"text-align:center;float: center; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 400px; height: 320px;"
src=
"http://1.bp.blogspot.com/_LrnpkSJBn0E/S2oENg_yOuI/AAAAAAAADSU/OcQp36J63-U/s400/enero_2010.png"
border="0" alt="" id="BLOGGER_PHOTO_ID_5434160530618202850" name=
"BLOGGER_PHOTO_ID_5434160530618202850" /></a><br />
<a href=
"http://3.bp.blogspot.com/_LrnpkSJBn0E/S2oFCLLGsUI/AAAAAAAADSg/p4pf9yYiJz4/s1600-h/Pantallazo.png">
<img style=
"float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 320px;"
src=
"http://3.bp.blogspot.com/_LrnpkSJBn0E/S2oFCLLGsUI/AAAAAAAADSg/p4pf9yYiJz4/s400/Pantallazo.png"
border="0" alt="" id="BLOGGER_PHOTO_ID_5434161435293167938" name=
"BLOGGER_PHOTO_ID_5434161435293167938" /></a><br />
<div><span>(Hacer clic en la imagen para ampliar)</span></div>
<br />
Ubuntu 9.04 - Equipo de Escritorio
<div><img width="1" height="1" src=
"https://blogger.googleusercontent.com/tracker/2601369061360365009-7447483910548749165?l=art3mis4.blogspot.com"
alt="" /></div>
]]></description>
			<pubDate>Wed, 03 Feb 2010 18:47:00 -0430</pubDate>
			<guid>http://art3mis4.blogspot.com/search/label/unplug</guid>
		</item>
		<item>
			<title>De Nuevo En La Red</title>
			<author>jerezmoreno@gmail.com (jhuss)</author>
			<link>http://blog.jhuss.com.ve/blog/2010/01/de-nuevo-en-la-red/</link>
			<description><![CDATA[<h5><em>Saludos a todos,</em></h5>
<p>Esta vez hice algunos cambios radicales en mi sitio web, primero
que todo el cambio de dominio a
“<strong><em>.com.ve</em></strong>“, <em>mi blog</em> ahora esta en
un <em>sub-dominio</em> que es la dirección que están viendo en
este momento, solo son cuestiones técnicas que no he tenido
problemas, pero mi duda llego cuando tenia que decidir si:
“<em>restaurar</em>” lo que ya tenia o comenzar “<em>desde
cero</em>” el blog.</p>
<p>Al final preferí la segunda opción, más que todo por razones
internas, con la idea de un nuevo comienzo, es como una ráfaga de
aire fresco al que (creo) a todos les gusta, tal vez cosas que en
su momento escribí, ahora no esté de acuerdo con ello, o lo hice
mal, se puede pensar que todo aquello fue una perdida de tiempo, de
seguro algunas si, pero otras valen la pena rescatar, cuando lo
haga las iré re-publicando.</p>
<p>Por el momento es todo, ya he estado pensando en algunas cosas
que publicar y compartir.</p>
]]></description>
			<pubDate>Sun, 24 Jan 2010 21:38:26 -0430</pubDate>
			<guid>http://blog.jhuss.com.ve</guid>
		</item>
		<item>
			<title>DSLinux – Linux para el Nintendo DSlite</title>
			<author>rodrigo.linuxero@gmail.com (R0_R0)</author>
			<link>http://rodrigo.unplug.org.ve/?p=275</link>
			<description><![CDATA[<div><img title="nintux" src=
"http://dslinux.org/moin-dslinux-wiki/nintux.png" alt="nintux"
width="90" height="90" />
<p>nintux</p>
</div>
<p>Para el dia de Reyes mis padres le regalaron a Rodrigo José un
Nintendo DS lite, un buen regalo para el hijo de un geek.</p>
<p>De inmediato recorde las primeras reuniones de GULIP cuando
hadesx llevó un DS corriendo linux y por lo tanto me dispuse a
ubicar en la red información para hacer lo propio con el DS de mi
hijo.</p>
<p>Me encontré con el proyecto DSLinux, proyecto que ha logrado
crear una imagen de linux booteable en el DS, este es su site:
<a href="http://dslinux.org/">http://dslinux.org/</a>
Ahí&nbsp;encontraran las&nbsp;imágenes&nbsp;y la documentación
necesaria para correr el sistema.</p>
<p>Una muestra del DS corriendo Linux:</p>
<p>Como pueden ver la pantalla&nbsp;táctil&nbsp;se convierte en un
teclado y la pantalla superior funciona como monitor. Espero poder
publicar mas sobre este sistema&nbsp;siempre&nbsp;y cuando Rodrigo
José me permita usar su DS nuevamente. <img src=
"http://rodrigo.unplug.org.ve/wp-includes/images/smilies/icon_razz.gif"
alt=":-P" class="wp-smiley" /></p>
]]></description>
			<pubDate>Sat, 23 Jan 2010 13:55:53 -0430</pubDate>
			<guid>http://rodrigo.unplug.org.ve</guid>
		</item>
		<item>
			<title>Bueno, el 31 para mi no fue un día de fiesta, fue creo más...</title>
			<author>victor@intar.web.ve (victor.roman)</author>
			<link>http://log.tecnovm64.com/post/322393126</link>
			<description><![CDATA[]]></description>
			<pubDate>Thu, 07 Jan 2010 20:34:48 -0430</pubDate>
			<guid>http://log.tecnovm64.com/</guid>
		</item>
		<item>
			<title>Web UI vs Stand Alone</title>
			<author>sicut@none.com (SiCuTDeUx)</author>
			<link>http://sicutdeux.wordpress.com/2010/01/06/web-ui-vs-stand-alone/</link>
			<description><![CDATA[<br />
<p>Como desarrollador web he tenido mi share de experiencias en
cuanto a lo que usuarios experimentados requieren para facilitar la
introducción de información en formularios, tomemos un caso en
particular; En la <a href="http://www.cgesucre.gob.ve">Contraloria
del Estado Sucre</a> existen varios sistemas que se siguen usando
(Mientras terminamos de Desarrollar los reemplazos) basados en
MSDOS Diseñados con FoxPro 2.6, estos monstruos de sistemas (más de
10 años y siguen funcionando perferctamente) estan diseñados
minuciosamente para facilitar la carga de datos en cantidades
masivas de ordenes que llegan y asegurándose de que todo tiene que
procesarse rapida y agilmente.</p>
<p>Entonces nos encontramos con el choque de la Interfaces web, a
su vez pensadas de otra manera no ofrecen la flexibilidad necesaria
para proveer ese input veloz al que están acostumbrados estos
usuarios, tratando de conseguir algo que me permitiera al menos
facilitar el paso de campo a campo sin utilizar “TAB” me tope con
esta función en JavaScript y la comparto con ustedes:</p>
<p><code>function tabular(e,obj)<br />
{<br />
tecla=(document.all) ? e.keyCode : e.which;<br />
if(tecla!=13) return;<br />
frm=obj.form;<br />
for(i=0;i&lt;frm.elements.length;i++)<br />
if(frm.elements[i]==obj)<br />
{<br />
if (i==frm.elements.length-1)<br />
i=-1;<br />
break<br />
}</code></p>
<p><code>if (frm.elements[i+1].disabled ==true )<br />
tabular(e,frm.elements[i+1]);</code></p>
<p><code>else if (frm.elements[i+1].readOnly ==true )<br />
tabular(e,frm.elements[i+1]);<br />
else frm.elements[i+1].focus();<br />
return false;<br />
}<br /></code></p>
<p>La utilización de Ajax o CallBacks para ser mas explicito para
realizar chequeo de datos a mi parecer necesita pulirse pues
resulta lento y poco sutil, quizás sea solo mi opinión pero
viniendo de la vieja escuela aveces me resulta difícil comprender
porque algo tan extraño comos los sistemas web basados en la
Utilización de 3 lenguajes diferentes
[D,X]HTML+JavaScript+PHP[PYTHON, PERL, RUBY] sea tan popular y
encamine el futuro del manejo de información, soy de los que
piensan que nueva tecnología a nivel de lenguajes que incorpore
todo esto en uno solo y facilitar las cosas necesita ser
desarrollada, o es que todo tiene ser difícil a propósito
(C++)?</p>
<p>Por cierto antes de caer en otro rant, para poder utilizar la
función tienen que ajustar la propiedad o el atributo
<em>“onkeydown”</em> con el valor <em>“return
tabular(event,this)”</em> para que salte al campo siguiente cuando
usemos la tecla enter.</p>
<a rel="nofollow" href=
"http://feeds.wordpress.com/1.0/gocomments/sicutdeux.wordpress.com/168/"><img alt=""
border="0" src=
"http://feeds.wordpress.com/1.0/comments/sicutdeux.wordpress.com/168/" /></a>
<a rel="nofollow" href=
"http://feeds.wordpress.com/1.0/godelicious/sicutdeux.wordpress.com/168/">
<img alt="" border="0" src=
"http://feeds.wordpress.com/1.0/delicious/sicutdeux.wordpress.com/168/" />
</a> <a rel="nofollow" href=
"http://feeds.wordpress.com/1.0/gostumble/sicutdeux.wordpress.com/168/">
<img alt="" border="0" src=
"http://feeds.wordpress.com/1.0/stumble/sicutdeux.wordpress.com/168/" />
</a> <a rel="nofollow" href=
"http://feeds.wordpress.com/1.0/godigg/sicutdeux.wordpress.com/168/">
<img alt="" border="0" src=
"http://feeds.wordpress.com/1.0/digg/sicutdeux.wordpress.com/168/" />
</a> <a rel="nofollow" href=
"http://feeds.wordpress.com/1.0/goreddit/sicutdeux.wordpress.com/168/">
<img alt="" border="0" src=
"http://feeds.wordpress.com/1.0/reddit/sicutdeux.wordpress.com/168/" />
</a> <img alt="" border="0" src=
"http://stats.wordpress.com/b.gif?host=sicutdeux.wordpress.com&amp;blog=4208861&amp;post=168&amp;subd=sicutdeux&amp;ref=&amp;feed=1" />
]]></description>
			<pubDate>Wed, 06 Jan 2010 10:37:08 -0430</pubDate>
			<guid>http://sicutdeux.wordpress.com</guid>
		</item>
		<item>
			<title>Usando Perl para extraer datos de archivos Excel</title>
			<author>csanchez@unplug.org.ve (g013m)</author>
			<link>http://blog.g013m.com.ve/?p=100#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
			<description><![CDATA[<p>Existe una (mala) costumbre de almacenar datos en archivos excel
en muchas organizaciones, grandes o pequeñas, esto funciona cuando
los datos no son muchos y se pueden manejar rápidamente, pero por
lo general esta información va creciendo y se va haciendo más
difícil mantener la integridad de los datos, a veces se tienen
varias versiones del archivo .xls, a veces se pierden o se borran
por equivocación, etc.</p>
<p>Luego de pasar por todos estos problemas, se decide implementar
algún sistema de información que permite manejar todos los datos de
manera más eficiente, y claro no van a empezar a generar los
registros otra vez por que ya los tienen en muchos archivos .xls.
Ahí es cuando se empiezan a buscar soluciones para poder extraer
estos datos rápidamente, y ahí es cuando viene Perl al rescate
<img src=
"http://blog.g013m.com.ve/wp-includes/images/smilies/icon_wink.gif"
alt=";)" class="wp-smiley" /> . Existe un modulo (entre muchos) que
nos permiten trabajar con archivos .xls sin necesidad de estar
abriéndolos uno por uno <a title="Spreadsheet::ParseExcel" href=
"http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel-0.56/"
target="_blank">Spreadsheet::ParseExcel</a>, este modulo nos
permite abrir archivos excel y extraer toda la información que
contiene. Voy a poner un pequeño ejemplo del funcionamiento del
modulo, supongamos que tenemos un archivo excel con la siguiente
estructura:</p>
<div><img title="personas.xls" src=
"http://files.droplr.com/files/3389621/8oY96.personasxls.png" alt=
"Archivo Excel" width="585" height="201" />
<p>Archivo Excel</p>
</div>
<p>Un archivo con 4 columnas, en este caso corresponden a la
siguiente información: Nombre, Apellido, Cédula y Correo. Estos
datos serán almacenados en la tabla “persona” en una BD
Postgresql.</p>
<p>Se deben extraer los registros del archivo excel, identificar
los campos, y luego almacenarlos en la BD, un ejemplo de como se
puede hacer esto con Perl y SpreadSheet::ParseExcel es el siguiente
script:</p>
<div>
<table>
<tr>
<td>
<pre>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td>
<td>
<pre>
<span>#!/usr/bin/perl</span>
<span>use</span> Modern<span>::</span><span>Perl</span><span>;</span>
<span>use</span> Spreadsheet<span>::</span><span>ParseExcel</span><span>;</span>
<span>use</span> DBI<span>;</span>
<span>use</span> DBD<span>::</span><span>Pg</span><span>;</span>
 
<span>my</span> <span>$userbd</span> <span>=</span> <span>"prueba"</span><span>;</span> <span>#Nombre de usuario para la BD</span>
<span>my</span> <span>$passbd</span> <span>=</span> <span>"prueba"</span><span>;</span> <span>#Password del usuario</span>
<span>my</span> <span>$bd</span> <span>=</span> <span>"prueba"</span><span>;</span> <span>#Nombre de la BD</span>
<span>#conexión a la BD</span>
<span>my</span> <span>$dbh</span> <span>=</span> DBI<span>-&gt;</span><span>connect</span><span>(</span><span>"dbi:Pg:dbname=$bd"</span><span>,</span><span>$userbd</span><span>,</span><span>$passbd</span><span>)</span> <span>or</span> <span>die</span> <span>$DBI</span><span>::</span><span>errstr</span><span>;</span>
<span>#sentencia SQL a ejecutar</span>
<span>my</span> <span>$query</span> <span>=</span> <span>"INSERT INTO persona (nombre, apellido, cedula, email) VALUES (?, ?, ?, ?)"</span><span>;</span>
<span>#se crea un objeto nuevo</span>
<span>my</span> <span>$parser</span> <span>=</span> Spreadsheet<span>::</span><span>ParseExcel</span><span>-&gt;</span><span>new</span><span>(</span><span>)</span><span>;</span>
<span>#se utiliza el metodo "Parse" para indicar el archivo .xls a usar</span>
<span>my</span> <span>$workbook</span> <span>=</span> <span>$parser</span><span>-&gt;</span><span>Parse</span><span>(</span><span>'personas.xls'</span><span>)</span><span>;</span>
<span>#si no puedo "parsear" el archivo se termina el programa</span>
<span>die</span> <span>$parser</span><span>-&gt;</span><span>error</span><span>(</span><span>)</span><span>,</span> <span>".<span>\n</span>"</span> <span>if</span> <span>!</span><span>defined</span> <span>$workbook</span><span>;</span>
<span>#indicamos que vamos a trabajar con la primera hoja</span>
<span>my</span> <span>$worksheet</span> <span>=</span> <span>$workbook</span><span>-&gt;</span><span>worksheet</span><span>(</span><span>0</span><span>)</span><span>;</span>
<span>#obtenemos el rango de las filas usadas en la hoja</span>
<span>my</span> <span>(</span> <span>$row_min</span><span>,</span> <span>$row_max</span> <span>)</span> <span>=</span> <span>$worksheet</span><span>-&gt;</span><span>row_range</span><span>(</span><span>)</span><span>;</span>
 
<span>for</span> <span>my</span> <span>$row</span> <span>(</span> <span>0</span> <span>..</span> <span>$row_max</span> <span>)</span> <span>{</span>
 
 <span>my</span> <span>$nombre</span> <span>=</span> <span>$worksheet</span><span>-&gt;</span><span>get_cell</span><span>(</span> <span>$row</span><span>,</span> <span>0</span> <span>)</span><span>;</span>
 <span>my</span> <span>$apellido</span> <span>=</span> <span>$worksheet</span><span>-&gt;</span><span>get_cell</span><span>(</span> <span>$row</span><span>,</span> <span>1</span> <span>)</span><span>;</span>
 <span>my</span> <span>$cedula</span> <span>=</span> <span>$worksheet</span><span>-&gt;</span><span>get_cell</span><span>(</span> <span>$row</span><span>,</span> <span>2</span> <span>)</span><span>;</span>
 <span>my</span> <span>$email</span> <span>=</span> <span>$worksheet</span><span>-&gt;</span><span>get_cell</span><span>(</span> <span>$row</span><span>,</span> <span>3</span> <span>)</span><span>;</span>
 
 <span>my</span> <span>$sth</span> <span>=</span> <span>$dbh</span><span>-&gt;</span><span>prepare</span><span>(</span><span>$query</span><span>)</span><span>;</span>
 <span>$sth</span><span>-&gt;</span><span>execute</span><span>(</span><span>$nombre</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>,</span><span>$apellido</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>,</span><span>$cedula</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>,</span><span>$email</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>)</span><span>;</span>
 <span>$sth</span><span>-&gt;</span><span>finish</span><span>;</span>
 say <span>"Persona: "</span><span>,</span> <span>$nombre</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>,</span><span>" "</span><span>,</span><span>$apellido</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>,</span> <span>" - Cedula: "</span><span>,</span> <span>$cedula</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span><span>,</span> <span>" - Email:"</span><span>,</span> <span>$email</span><span>-&gt;</span><span>value</span><span>(</span><span>)</span> <span>,</span><span>"<span>\n</span>"</span><span>;</span>
 
<span>}</span>
</pre></td>
</tr>
</table>
</div>
<p>En la línea 2 estamos haciendo uso del modulo Modern::Perl, que
activa varias opciones al usar Perl 5.10, para más información
puedes ver el post en Perliscopio: <a href=
"http://perliscopio.blogspot.com/2009/09/usando-perl-moderno.html">Usando
Perl Moderno</a>. De la línea 7 a la 11 está toda la información
relacionada a la BD. En la línea 21 especificamos con cual de las
hojas del archivo .xls vamos a trabar, en este caso con la primera
que correspondería a la número 0, se pueden usar varias hojas en
caso de que existan, en vez de&nbsp; “worksheet”&nbsp; usaríamos
“worksheets”.</p>
<p>En la línea 25 obtenemos el rango de columnas que son utilizadas
en la hoja, con esto podemos conocer donde están los registros
dentro de la hoja, se puede además conocer la cantidad de columnas
utilizadas usando la opción “col_range”. Luego en la linea 27
empezamos un ciclo recorriendo todas las filas para obtener los
datos, para acceder a una celda se usa el método “get_cell”, con
esto podemos tener acceso a varios atributos de la celda entre las
cuales está la que más nos interesa que la que contiene el dato que
vamos a usar para guardar el registro, y al que podemos acceder
directamente con el metodo “value”.</p>
<p>En las líneas 32 al 34 se hacen las operaciones en la BD
utilizando los métodos tradicionales de DBI, quizás para algunos
casos más complicados se podría usar DBIx::Class, pero como en este
caso solo utilizamos una tabla no es necesario.</p>
<p>Esto es solo un ejemplo sencillo de como realizar una tarea tan
tediosa como puede ser extraer información de este tipo de
archivos, además que se puede sacar más provecho al usar un
lenguaje con tanta flexibilidad como Perl.</p>
]]></description>
			<pubDate>Sun, 03 Jan 2010 22:21:25 -0430</pubDate>
			<guid>http://blog.g013m.com.ve</guid>
		</item>
		<item>
			<title>Habemus Distro</title>
			<author>zamuro@none.com (Manuel Lucena Pérez)</author>
			<link>http://manuel.venet.com.ve/?p=144</link>
			<description><![CDATA[<p>Siempre había querido meterle el pecho a la creación de una
distro desde cero, pero el simple hecho de pensar en la cantidad de
trabajo que eso iba a llevar me hacía desistir de la idea “para
cuando tenga más tiempo”. Pues, resulta que “tener más tiempo” es
una de esas esquivas posibilidades en estos últimos años, y la idea
cada vez se hacía más lejana de la concresión y más cerca de la
gaveta.</p>
<p>La gente de Novell, en sus planes de dominación mundial, creó un
proyecto llamado “SuSe Studio”, que pueden visitar en <a href=
"http://susestudio.com"></a>http://susestudio.com/ para crear un
build de tu propia distro basada en OpenSuSE 11 o SuSE Enterprise.
La idea, en un principio está orientada a que cada quien diseñe y
cree su propia metadistro con las aplicaciones que consideren
pertinentes, de una manera bien simple y tranquila, sin tener que
leer demasiado y mediante una interfaz de usuario bastante
amigable.</p>
<p>Evidentemente, como todo proyecto en fase de desarrollo, no todo
el mundo tiene acceso inmediato e irrestricto. Debes llenar un
survey para poder recibir una invitación, pero no es demasiado
complicado y las invitaciones llegan rápido.</p>
<p>Gracias a esta nueva creación de Novell (Y Allah sabe que no es
Santa de mi devoción esta compañía alemana) puedo decir, con
orgullo de padre primerizo, que ha nacido <b>BUZZARD GNU/LINUX</b>:
una distro que, momentáneamente, está basada en SuSE, pero que, a
medida que el tiempo avance, se volverá una Debian Based Distro,
con todos los juguetes. Supongo que me tocará comprar un dominio y
empezar a desarrollar con más calma. De momento, les dejo unos
screenshots.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-7.png"
alt="Imagen sin descripción" /><br />
La Pantalla de entrada.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-8.png"
alt="Imagen sin descripción" /><br />
La Pantalla de arranque, modo gráfico.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-9.png"
alt="Imagen sin descripción" /><br />
La Pantalla de arranque, modo texto.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-10.png"
alt="Imagen sin descripción" /><br />
El login.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-11.png"
alt="Imagen sin descripción" /><br />
El escritorio.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-12.png"
alt="Imagen sin descripción" /><br />
El menú.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-13.png"
alt="Imagen sin descripción" /><br />
El menú de aplicaciones.</p>
<p><img src=
"http://zamuro.is-a-geek.com/images/Captura%20de%20pantalla-14.png"
alt="Imagen sin descripción" /><br />
Corriendo Planner. De fondo, el draft de este post.</p>
]]></description>
			<pubDate>Wed, 23 Dec 2009 21:22:30 -0430</pubDate>
			<guid>http://manuel.venet.com.ve</guid>
		</item>
		<item>
			<title>Saludos de nuevo!</title>
			<author>zentraedi@gmail.com (hector)</author>
			<link>http://blog.zentraedi.com.ve/index.php/2009/12/saludos-de-nuevo/</link>
			<description><![CDATA[<p>Crosspost desde mi <a href="http://zentraedi.livejournal.com"
target="_blank">LJ</a>.</p>
<p>Sólo pasaba para decir que justo ayer (Jueves 03) terminé todas
las materias de pregrado de Ingeniería en Informática. Ahora soy
oficialmente graduando y en espera del título. Ya luego me sentaré
con más dedicación a escribir sobre todas las cosas que me han
pasado este año y por supuesto durante los casi 6 años de la
carrera. De momento me pueden felicitar invitándome un café o
mediante un SMS desde donde sea que estén. Sólo espero por el acto
de grado por allá por Febrero.</p>
<p>Gracias a todos por su apoyo.</p>
]]></description>
			<pubDate>Fri, 04 Dec 2009 21:06:30 -0430</pubDate>
			<guid>http://blog.zentraedi.com.ve</guid>
		</item>
		<item>
			<title>Hallacazo UNPLUG 2009</title>
			<author>apostols@gmail.com (apostols)</author>
			<link>http://blog.0x29.com.ve/?p=181</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>) se dará acabo:</p>
<ul>
<li><strong>Día</strong>: 08 de Diciembre de 2009</li>
<li><strong>Hora</strong>: 7:00 P.M.</li>
<li><strong>Lugar</strong>: Ristorant Mazzini. Av. México, Edificio
211, PB. Entre el Metro de Parque Carabobo y Bellas Artes. Caracas
– Venezuela</li>
</ul>
<p><br />
<small>Ver <a href=
"http://maps.google.com/maps/ms?ie=UTF8&amp;hl=es&amp;doflg=ptk&amp;source=embed&amp;msa=0&amp;msid=114012323301954316330.000479346110365383e43&amp;ll=10.502032,-66.902747&amp;spn=0.007384,0.00912&amp;z=16">
Ristorant Mazzini</a> en un mapa más grande</small></p>
<p>Te esperamos!</p>
]]></description>
			<pubDate>Wed, 25 Nov 2009 13:23:15 -0430</pubDate>
			<guid>http://blog.0x29.com.ve</guid>
		</item>
		<item>
			<title>Weird…..Mozilla</title>
			<author>nethax0r@gmai.com (admin)</author>
			<link>http://kw0lf.org/blog/archives/167</link>
			<description><![CDATA[<p>about:mozilla<br />
<a href=
"http://i.imagehost.org/0230/Captura_de_pantalla_2009-11-25_a_las_09_07_10.png">
<img src=
"http://i.imagehost.org/0230/Captura_de_pantalla_2009-11-25_a_las_09_07_10.png"
width="640" alt="Imagen sin descripción" /></a></p>
<p>about:robots<br />
<a href=
"http://i.imagehost.org/0225/Captura_de_pantalla_2009-11-25_a_las_09_06_56.png">
<img src=
"http://i.imagehost.org/0225/Captura_de_pantalla_2009-11-25_a_las_09_06_56.png"
width="640" alt="Imagen sin descripción" /></a></p>
]]></description>
			<pubDate>Wed, 25 Nov 2009 09:12:04 -0430</pubDate>
			<guid>http://kw0lf.org/blog</guid>
		</item>
	</channel>
</rss>