<?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>Perez Rio &#187; Traballo</title>
	<atom:link href="http://www.perezrio.com/category/traballo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.perezrio.com</link>
	<description>Blogue do rubio</description>
	<lastBuildDate>Tue, 29 Nov 2011 08:15:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Como saber la versión de ubuntu?</title>
		<link>http://www.perezrio.com/2011/05/30/como-saber-la-version-de-ubuntu/</link>
		<comments>http://www.perezrio.com/2011/05/30/como-saber-la-version-de-ubuntu/#comments</comments>
		<pubDate>Mon, 30 May 2011 19:50:17 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[ubunto]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=504</guid>
		<description><![CDATA[Para averiguar que versión tengo de ubuntu puedo ejecutar cualquier de los siguientes comandos: lsb_release -a cat /etc/issue cat /etc/lsb-release]]></description>
			<content:encoded><![CDATA[<p>Para averiguar que versión tengo de ubuntu puedo ejecutar cualquier de los siguientes comandos:</p>
<blockquote><p>lsb_release -a</p></blockquote>
<blockquote><p>cat /etc/issue</p></blockquote>
<blockquote><p>cat /etc/lsb-release</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2011/05/30/como-saber-la-version-de-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consejos de programación</title>
		<link>http://www.perezrio.com/2010/11/17/consejos-de-programacion/</link>
		<comments>http://www.perezrio.com/2010/11/17/consejos-de-programacion/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:53:56 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=459</guid>
		<description><![CDATA[Visto en este blog: Manuelpereira, es una cosita que no he parado de releer y de darle la razón al hombre&#8230; En ocasiones, compañeros de trabajo y otros conocidos acuden a mi con problemas técnicos difíciles (de programación, sistemas, etc.) incomprensibles y/o aparentemente inexplicables, tratando de que les eche una mano en la búsqueda de [...]]]></description>
			<content:encoded><![CDATA[<p>Visto en este blog: <a title="http://manuelpereiragonzalez.blogspot.com/2010/10/10-consejos-para-la-resolucion-de.html" href="http://manuelpereiragonzalez.blogspot.com/2010/10/10-consejos-para-la-resolucion-de.html" target="_blank">Manuelpereira</a>, es una cosita que no he parado de releer y de darle la razón al hombre&#8230;</p>
<p>En ocasiones, compañeros de trabajo y otros conocidos acuden a mi con  problemas técnicos difíciles (de programación, sistemas, etc.)  incomprensibles y/o aparentemente inexplicables, tratando de que les  eche una mano en la búsqueda de una solución. Supongo que me he ganado  fama de &#8220;gurú técnico&#8221; a base de encontrar soluciones inesperadas a  problemas extraños (qué engañados les tengo a todos <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Seguro que si trabajáis con temas técnicos, habéis escuchado multitud de veces frases como estas:</p>
<ul>
<li><strong><span class="Apple-style-span" style="font-weight: normal;"><strong><span class="Apple-style-span" style="font-weight: normal;"><strong><span class="Apple-style-span" style="font-weight: normal;"><strong>No lo entiendo! Pero si ayer funcionaba y no he tocado nada!</strong></span></strong></span></strong></span></strong></li>
<li><strong><span class="Apple-style-span" style="font-weight: normal;"><strong><span class="Apple-style-span" style="font-weight: normal;"><strong>Lo he probado todo y no soy capaz de saber por qué falla!</strong></span></strong></span></strong></li>
<li><strong><span class="Apple-style-span" style="font-weight: normal;"><strong>Esto es imposible! Pero si el programa nunca debería pasar por ahí!</strong></span></strong></li>
<li><strong>Si en mi máquina funciona y todo está igual en esta otra, ¿por qué ahí no funciona?</strong></li>
</ul>
<p>He hecho un ejercicio de reflexión para tratar de analizar las reglas  que inconscientemente aplico a la hora de tratar de resolver algún  problema, esas reglas que sólo se aprenden a lo largo de años  enfrentándote a este tipo de situaciones. Quiero compartir con vosotros  algunos consejos/conclusiones que he sacado de esta reflexión, espero  que os sirvan:</p>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 1: Simplifica el problema</span></span></p>
<div style="margin: 0px;"><span class="Apple-style-span" style="font-size: x-large;"> </span>Cuando  te enfrentas a un problema complejo suele haber muchas variables que  pueden influir en él. En ese caso, hay que tratar de reducir el problema  a su mínima expresión, para poder tratarlo sin tantas variables que  introducen ruido al asunto. Muchas veces, cuando estás tratando de  reducir el problema a uno más simple, das con la solución.</div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  Imagina que tienes una aplicación que estás programando, que consta de  1000 archivos y más de 100.000 líneas de código. Tienes un problema con  un archivo de la aplicación, concretamente en un método de una clase que  no se comporta como debería. En ese caso, lo ideal es aislar ese método  y tratar de probarlo independientemente del resto de la aplicación. Si  es posible, además, quitar todas las líneas del método que no sean  relevantes para el problema, hasta dejarlo reducido a su mínima  expresión. Como digo, muchas veces aplicando este procedimiento de  simplificación te das cuenta de la causa del problema.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 2: Se metódico en las pruebas</span></span><br />
Lo primero que hay que hacer a la hora de enfrentarse un problema, aún a  riesgo de parecer un autómata, es SER MUY METÓDICO. El más claro  ejemplo de esto es que si para comprobar que algo funciona estás  realizando las pruebas de una determinada manera, <span style="text-decoration: underline;">las realices siempre de la misma forma y en el mismo orden</span> (aunque creas que lo que estás cambiando no puede afectar al resultado!!!).</p>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: Si estás realizando las pruebas en una máquina,  hazlas siempre en la misma (aunque haya otra exáctamente igual). El  cambio de máquina muchas veces introduce ruido en las pruebas (siempre  suele haber problemas con idiomas distintos, encodings &#8211; UTF8, etc.).</li>
<li><span style="text-decoration: underline;">Ejemplo</span>: Si para las pruebas estás lanzando dos scripts en un  derminado orden, aunque los scripts sean independientes (teóricamente  el orden no sea relevante), lánzalos siempre en el mismo orden.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 3: No mates moscas a cañonazos, primero Reflexiona!</span></span><br />
Muchas veces cuando uno está enfrentándose a un problema incomprensible,  tiene la tentación de &#8220;empezar de cero&#8221;. Yo soy de la opinión de que  esta tiene que ser la última solución, antes hay que tratar de descartar  todas las otras vías. Volviendo a empezar de cero, corres el riesgo de  tardar más de lo necesario, o lo que es peor, trabajar durante días  rehaciendo algo para luego encontrarte con el mismo problema.</p>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: En nuestro día a día trabajamos a diario con las herramientas <em>Maven, JDK1.6, Eclipse,</em> etc. Tengo un compañero (con cariño eh!) que cada vez que no le  funciona algo se lanza a reinstalar Windows, y todas las herramientas  necesarias. Suele tardar un par de días en reinstalar todo, y algunas  veces, cuando ha terminado, vuelve a probar lo que fallaba y&#8230; sigue  fallando!. Muchas veces, si se hubiese parado a reflexionar sobre el  problema en lugar de &#8220;tirar por la tangente&#8221;, habría ahorrado mucho  tiempo y esfuerzo.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 4: La máquina tiene la presunción de inocencia</span></span></p>
<div style="margin: 0px;"><span class="Apple-style-span" style="font-size: x-large;"> </span></div>
<div style="font-size: medium; margin: 0px;">Lo  que he aprendido a lo largo de muchos años es que lo más probable  frente a un error es que el culpable sea el ser humano, no la máquina.  Lamentablemente en estos casos la presunción de inocencia es para la  máquina, y no para ti <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </div>
<ul style="font-size: medium;">
<li><span style="text-decoration: underline;">Ejemplo</span>:  Mucha gente, cuando algo no funciona, culpa a problemas en el hardware  (las típicas frases &#8220;Eso es que la memoria está corrupta&#8221; o &#8220;A lo mejor  el disco duro tiene clusters defectuosos&#8221;). La mayoría de las veces  suele ser problema del programa, no del hardware.</li>
<li><span style="text-decoration: underline;">Ejemplo</span>: Siempre me acuerdo de un antiguo compañero de  trabajo que a menudo, cuando encontraba algún problema en Java  aparentemente inexplicable, culpaba a la Java Virtual Machine. &#8220;<span style="text-decoration: underline;">Tiene que ser un error de la JVM!!</span>&#8221; &#8211; decía. Siempre se confirmó que eran errores suyos en el código.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 5: A veces es más fácil hallar la solución que la causa</span></span></p>
<div style="font-size: medium; margin: 0px;">En ocasiones la gente se  ofusca tratando de buscar la causa a un problema. Pasan días tratando de  encontrar el por qué&#8230; cuando a veces existe un &#8220;atajo&#8221; (los ingleses  lo llaman <em>workaround</em>) que te hace solucionar el problema, aunque  no encuentres qué era lo que lo producía. Hay ocasiones en las que hay  que saber rendirse ante el enemigo, y siendo prácticos, dejar atrás  nuestra necesidad innata de conocer el por qué de las cosas. Ojo porque  tampoco hay que abusar de esto, puede convertirse en un arma de doble  filo (cada uno tiene que saber poner límites prácticos a su curiosidad,  sobre todo si te pagan por producir <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  Un conocido tenía un problema con un programa en Java que se suponía  que era compatible con la JDK1.3 y superiores. El tipo llevaba semanas  persiguiendo el problema ejecutando el software con la JDK1.4, y no era  capaz de encontrar la causa. Después de varios intentos fallidos de  conocer la causa, le pregunté si había probado a ejecutarlo con la  JDK1.3. Su respuesta fue que la 1.4 era compatible con versiones  anteriores, por tanto si funcionaba con la 1.3 debería de hacerlo con la  1.4. &#8220;Muy bien&#8221; &#8211; le dije &#8211; &#8220;¿pero lo has probado?&#8221;. Insistí en ello, y  al probarlo con la 1.3 el error dejó de producirse. Nos quedamos con  ganas de saber qué es lo que producía el error&#8230; pero solucionamos el  problema!</li>
<li><span style="text-decoration: underline;">Ejemplo</span>: La semana pasada un tipo me llamó porque estaba  detectando errores de intentos fallidos en la conexión a SQL Server en  un servidor. Después de darle muchas vueltas, probé a detener el  servicio &#8220;Microsoft Reporting Services&#8221;, y el error dejó de producirse.  El tipo dijo: &#8220;<em>¿Pero por qué ese servicio trata de conectarse a SQL Server? No lo entiendo</em>&#8220;, a lo cuál le respondí con otra pregunta: &#8220;<em>¿Usas el servicio de Reporting Services o lo vas a usar en un futuro?</em>&#8220;. &#8220;<em>No</em>&#8221; &#8211; respondió. &#8220;<em>Entonces me da igual saber por qué trata de conectarse, dejamos el servicio apagado y problema solucionado</em>&#8220;.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 6: Si ayer funcionaba y hoy no, algo ha cambiado</span></span></p>
<div style="margin: 0px;">Cuando alguien viene a mi con la típica frase &#8220;<em>Pero si ayer funcionaba y no ha cambiado nada!</em>&#8221; siempre le respondo lo mismo: &#8220;<em>Como mínimo ha cambiado algo: La fecha</em>&#8220;.  Si estás en la típica situación en la que te fuiste el día anterior  dejando algo funcionando y hoy ya no funciona, intenta pensar <strong>verdaderamente </strong>qué  puede haber cambiado, y echa para atrás todo lo que haya cambiado para  volver a la situación en la que funcionaba. Después vuelve a hacer los  cambios probando uno a uno, para ver cuál es el que introduce el  problema.</div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: El día 19 de Septiembre estuve mejorando el Crawler para el BOCM del proyecto <a href="http://www.booletin.es/">www.booletin.es</a>. Para identificar hasta dónde llega la fecha de un boletín en una cadena de texto (Por ej: &#8220;19<em> de Septiembre de 2010. Bla bla bla</em>&#8220;), estaba buscando &#8220;<em>20</em>&#8221;  en la cadena de texto, y así identificaba dónde se encontraba el año en  la fecha, y sabía por dónde cortar. Todo funcionaba bien con los  boletines desde el 1 de Septiembre hasta el 19. Sin embargo, al día  siguiente (20 de Septiembre) volví a probar el programa y fallaba. &#8220;<em>Pero si no he cambiado nada!</em>&#8220;-  pensé. Sin embargo sí que había cambiado algo, el día del mes. El  algoritmo funcionaba con todos los días del mes menos el día 20, ya que  cortaba la cadena &#8220;<em>20 de Septiembre de 2010. Bla bla bla</em>&#8221; justo después del primer &#8220;<em>20</em>&#8220;, y no después del año como pretendía.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 7: Pregúntale (bien) a Google</span></span></p>
<div>No creo que exagere si afirmo que el 90% de los problemas extraños  se resuelven sabiendo buscar correctamente en Google. Cuando nos  enfrentamos a un problema, lo más probable es que ya le haya pasado  antes a alguien. Internet está lleno de foros en los que la gente  plantea sus dudas/problemas, y en los que hay multitud de respuestas a  ellos.Cuando me enfrento con un problema y ando perdido, acudo a Google y  le pregunto. Es muy importante <strong>saber buscar bien</strong>, para encontrar lo que buscas. Para buscar algo, trato de buscar<strong> palabras distintivas </strong>de  lo que ando buscando (es decir, palabras que debería de contener el  documento que estoy buscando, y no deberían de contenerlas otros  documentos que no busco).</div>
<div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: La semana  pasada un compañero de trabajo experto en tecnología J2EE (un arquitecto  de los buenos) estaba buscando la solución a un problema con la  herramienta Maven. Llevaba más de dos horas buscando en google y no  encontraba nada. Me pidió que le echase una mano, y en cinco minutos  (buscando los términos correctos en google) dimos con la solución.</li>
</ul>
<p>A veces pienso que deberían darse cursos sobre cómo utilizar  correctamente los buscadores, sería el tiempo mejor invertido por muchos  (como dicen los economistas, tendría un ROI muy atractivo, se  recuperaría la inversión en cuestión de días y el resto de la vida sería  todo ganancias <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</div>
<div></div>
<div><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 8: Si no hay más remedio, baja de nivel de abstracción</span></span></div>
<div>Cuando  todo lo demás falla y el problema parece inexplicable, debemos  plantearnos que a lo mejor estamos buscando en el lugar inadecuado.  Siempre que hablamos de tecnología, nos movemos en un determinado nivel  de abstracción (Ej: Hardware &lt; BIOS &lt; Sistema Operativo &lt; JVM  &lt; Programa Java) . En ocasiones el problema que estamos buscando no  está en el nivel de abstracción en el que nos movemos, sino en un nivel  inferior (por ej. a veces buscamos un error en el programa&#8230; y el error  está en el Sistema Operativo). Tenemos que bajar a buscarlo ahí.</div>
<div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  Esta semana he tenido un problema en un servidor: Al ejecutar un  programa en este servidor se quedaba colgado. Sin embargo al ejecutarlo  en mi máquina local (con la misma configuración) el programa funcionaba  sin problemas. Finalmente, el problema no estaba en el programa, ni  siquiera en el Sistema Operativo&#8230; pero tampoco en el Hardware!. El  problema estaba en un nivel de abstracción que se encontraba escondido  entre el Sistema Operativo y el Hardware. Resulta que se trataba de un  servidor virtual, que se estaba ejecutando como una máquina virtual de  VMWare. VMWare estaba teniendo problemas con el acceso a la cabina de  discos, y esto estaba causando el fallo en la ejecución.</li>
</ul>
</div>
<div><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 9: Muchos ojos ven más que dos</span></span></div>
<p>Cuando  estés atascado, pregunta!. Aunque pienses que las personas a las que  puedes consultar no tengan la respuesta a tu problema, quizás te puedan  aportar alguna pista (o a lo mejor tienen la respuesta y tú no lo  sabes). Como poco, el contárselo a alguien te servirá también para  aclarar tus propias ideas.</p>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: Esta anécdota es de mis favoritas. Hace muchos  años hice una aplicación en Java que tenía que realizar un cálculo para  cada hora de cada día del año. El programa empezaba con las 00:00h del 1  de Enero, e iba incrementando hora a hora hasta que acababa a las  23:00h del 31 de Diciembre. Al ejecutar el programa e ir incrementando  hora a hora, llegaba un momento en el que se realizaba el cálculo <strong>dos veces para la misma hora</strong>.  Yo no entendía qué podía estar pasando, ya que el programa funcionaba  bien, pero en un momento concreto del tiempo (el 29 de Octubre de 2000)  se duplicaba la hora. Después de dos días persiguiendo el fallo, me  levanté muy enfadado de la silla y grité en alto &#8220;<strong>¿Pero qué demonios pasa el 29 de Octubre?</strong>&#8220;.  Para mi sorpresa, un compañero me miró y me dijo muy tranquilo: &#8220;ese  día es el cambio de hora&#8221;. Claro! No había caído en la cuenta de que el  29 de Octubre de ese año era el día en que se retrasaba la hora, por lo  que a las 3h de la madrugada volvían a ser las 2h&#8230; y de ahí el hecho  de que se duplicase. Mi compañero había dado en dos segundos con la  solución al problema que yo llevaba buscando días.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 10: A veces la mejor solución a un problema es irse a dormir</span></span></p>
<div style="margin: 0px;">Muchas veces nos obcecamos en resolver un  problema, alargando la jornada hasta las tantas de la madrugada buscando  la solución. Después de muchos años he aprendido que a veces la mejor  solución es descansar. Cuando te levantas por la mañana, tienes la mente  fresca y lúcida, y en ocasiones se te ocurren vías de solución que por  la noche no habías imaginado. En otras ocasiones, mientras duermes, el  cerebro sigue dándole vueltas al asunto y se aclaran las ideas: ¿a quién  no le ha pasado el irse a dormir con un problema en la cabeza y  levantarse con la solución?:</div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  De pequeño solía jugar mucho al ajedrez. Con 13 años acostumbraba a  resolver problemas de ajedrez complejos, buscando soluciones  imaginativas a los problemas que se planteaban en libros y revistas. En  una ocasión estuve varias horas pensando sobre un problema de &#8220;mate en  4&#8243; sin encontrar solución. Mi sorpresa fue cuándo me fui a acostar, y  por la mañana me desperté habiendo encontrado la solución al problema  (la cabeza había estado trabajando solita por la noche!).</li>
</ul>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">En ocasiones, compañeros de trabajo y otros conocidos acuden a mi con  problemas técnicos difíciles (de programación, sistemas, etc.)  incomprensibles y/o aparentemente inexplicables, tratando de que les  eche una mano en la búsqueda de una solución. Supongo que me he ganado  fama de &#8220;gurú técnico&#8221; a base de encontrar soluciones inesperadas a  problemas extraños (qué engañados les tengo a todos <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Seguro que si trabajáis con temas técnicos, habéis escuchado multitud de veces frases como estas:</p>
<ul>
<li><strong><span class="Apple-style-span" style="font-weight: normal;"><strong><span class="Apple-style-span" style="font-weight: normal;"><strong><span class="Apple-style-span" style="font-weight: normal;"><strong>No lo entiendo! Pero si ayer funcionaba y no he tocado nada!</strong></span></strong></span></strong></span></strong></li>
<li><strong><span class="Apple-style-span" style="font-weight: normal;"><strong><span class="Apple-style-span" style="font-weight: normal;"><strong>Lo he probado todo y no soy capaz de saber por qué falla!</strong></span></strong></span></strong></li>
<li><strong><span class="Apple-style-span" style="font-weight: normal;"><strong>Esto es imposible! Pero si el programa nunca debería pasar por ahí!</strong></span></strong></li>
<li><strong>Si en mi máquina funciona y todo está igual en esta otra, ¿por qué ahí no funciona?</strong></li>
</ul>
<p>He hecho un ejercicio de reflexión para tratar de analizar las reglas  que inconscientemente aplico a la hora de tratar de resolver algún  problema, esas reglas que sólo se aprenden a lo largo de años  enfrentándote a este tipo de situaciones. Quiero compartir con vosotros  algunos consejos/conclusiones que he sacado de esta reflexión, espero  que os sirvan:</p>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 1: Simplifica el problema</span></span></p>
<div style="margin: 0px;"><span class="Apple-style-span" style="font-size: x-large;"> </span>Cuando  te enfrentas a un problema complejo suele haber muchas variables que  pueden influir en él. En ese caso, hay que tratar de reducir el problema  a su mínima expresión, para poder tratarlo sin tantas variables que  introducen ruido al asunto. Muchas veces, cuando estás tratando de  reducir el problema a uno más simple, das con la solución.</div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  Imagina que tienes una aplicación que estás programando, que consta de  1000 archivos y más de 100.000 líneas de código. Tienes un problema con  un archivo de la aplicación, concretamente en un método de una clase que  no se comporta como debería. En ese caso, lo ideal es aislar ese método  y tratar de probarlo independientemente del resto de la aplicación. Si  es posible, además, quitar todas las líneas del método que no sean  relevantes para el problema, hasta dejarlo reducido a su mínima  expresión. Como digo, muchas veces aplicando este procedimiento de  simplificación te das cuenta de la causa del problema.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 2: Se metódico en las pruebas</span></span><br />
Lo primero que hay que hacer a la hora de enfrentarse un problema, aún a  riesgo de parecer un autómata, es SER MUY METÓDICO. El más claro  ejemplo de esto es que si para comprobar que algo funciona estás  realizando las pruebas de una determinada manera, <span style="text-decoration: underline;">las realices siempre de la misma forma y en el mismo orden</span> (aunque creas que lo que estás cambiando no puede afectar al resultado!!!).</p>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: Si estás realizando las pruebas en una máquina,  hazlas siempre en la misma (aunque haya otra exáctamente igual). El  cambio de máquina muchas veces introduce ruido en las pruebas (siempre  suele haber problemas con idiomas distintos, encodings &#8211; UTF8, etc.).</li>
<li><span style="text-decoration: underline;">Ejemplo</span>: Si para las pruebas estás lanzando dos scripts en un  derminado orden, aunque los scripts sean independientes (teóricamente  el orden no sea relevante), lánzalos siempre en el mismo orden.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 3: No mates moscas a cañonazos, primero Reflexiona!</span></span><br />
Muchas veces cuando uno está enfrentándose a un problema incomprensible,  tiene la tentación de &#8220;empezar de cero&#8221;. Yo soy de la opinión de que  esta tiene que ser la última solución, antes hay que tratar de descartar  todas las otras vías. Volviendo a empezar de cero, corres el riesgo de  tardar más de lo necesario, o lo que es peor, trabajar durante días  rehaciendo algo para luego encontrarte con el mismo problema.</p>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: En nuestro día a día trabajamos a diario con las herramientas <em>Maven, JDK1.6, Eclipse,</em> etc. Tengo un compañero (con cariño eh!) que cada vez que no le  funciona algo se lanza a reinstalar Windows, y todas las herramientas  necesarias. Suele tardar un par de días en reinstalar todo, y algunas  veces, cuando ha terminado, vuelve a probar lo que fallaba y&#8230; sigue  fallando!. Muchas veces, si se hubiese parado a reflexionar sobre el  problema en lugar de &#8220;tirar por la tangente&#8221;, habría ahorrado mucho  tiempo y esfuerzo.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 4: La máquina tiene la presunción de inocencia</span></span></p>
<div style="margin: 0px;"><span class="Apple-style-span" style="font-size: x-large;"> </span></div>
<div style="font-size: medium; margin: 0px;">Lo  que he aprendido a lo largo de muchos años es que lo más probable  frente a un error es que el culpable sea el ser humano, no la máquina.  Lamentablemente en estos casos la presunción de inocencia es para la  máquina, y no para ti <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </div>
<ul style="font-size: medium;">
<li><span style="text-decoration: underline;">Ejemplo</span>:  Mucha gente, cuando algo no funciona, culpa a problemas en el hardware  (las típicas frases &#8220;Eso es que la memoria está corrupta&#8221; o &#8220;A lo mejor  el disco duro tiene clusters defectuosos&#8221;). La mayoría de las veces  suele ser problema del programa, no del hardware.</li>
<li><span style="text-decoration: underline;">Ejemplo</span>: Siempre me acuerdo de un antiguo compañero de  trabajo que a menudo, cuando encontraba algún problema en Java  aparentemente inexplicable, culpaba a la Java Virtual Machine. &#8220;<span style="text-decoration: underline;">Tiene que ser un error de la JVM!!</span>&#8221; &#8211; decía. Siempre se confirmó que eran errores suyos en el código.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 5: A veces es más fácil hallar la solución que la causa</span></span></p>
<div style="font-size: medium; margin: 0px;">En ocasiones la gente se  ofusca tratando de buscar la causa a un problema. Pasan días tratando de  encontrar el por qué&#8230; cuando a veces existe un &#8220;atajo&#8221; (los ingleses  lo llaman <em>workaround</em>) que te hace solucionar el problema, aunque  no encuentres qué era lo que lo producía. Hay ocasiones en las que hay  que saber rendirse ante el enemigo, y siendo prácticos, dejar atrás  nuestra necesidad innata de conocer el por qué de las cosas. Ojo porque  tampoco hay que abusar de esto, puede convertirse en un arma de doble  filo (cada uno tiene que saber poner límites prácticos a su curiosidad,  sobre todo si te pagan por producir <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  Un conocido tenía un problema con un programa en Java que se suponía  que era compatible con la JDK1.3 y superiores. El tipo llevaba semanas  persiguiendo el problema ejecutando el software con la JDK1.4, y no era  capaz de encontrar la causa. Después de varios intentos fallidos de  conocer la causa, le pregunté si había probado a ejecutarlo con la  JDK1.3. Su respuesta fue que la 1.4 era compatible con versiones  anteriores, por tanto si funcionaba con la 1.3 debería de hacerlo con la  1.4. &#8220;Muy bien&#8221; &#8211; le dije &#8211; &#8220;¿pero lo has probado?&#8221;. Insistí en ello, y  al probarlo con la 1.3 el error dejó de producirse. Nos quedamos con  ganas de saber qué es lo que producía el error&#8230; pero solucionamos el  problema!</li>
<li><span style="text-decoration: underline;">Ejemplo</span>: La semana pasada un tipo me llamó porque estaba  detectando errores de intentos fallidos en la conexión a SQL Server en  un servidor. Después de darle muchas vueltas, probé a detener el  servicio &#8220;Microsoft Reporting Services&#8221;, y el error dejó de producirse.  El tipo dijo: &#8220;<em>¿Pero por qué ese servicio trata de conectarse a SQL Server? No lo entiendo</em>&#8220;, a lo cuál le respondí con otra pregunta: &#8220;<em>¿Usas el servicio de Reporting Services o lo vas a usar en un futuro?</em>&#8220;. &#8220;<em>No</em>&#8221; &#8211; respondió. &#8220;<em>Entonces me da igual saber por qué trata de conectarse, dejamos el servicio apagado y problema solucionado</em>&#8220;.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 6: Si ayer funcionaba y hoy no, algo ha cambiado</span></span></p>
<div style="margin: 0px;">Cuando alguien viene a mi con la típica frase &#8220;<em>Pero si ayer funcionaba y no ha cambiado nada!</em>&#8221; siempre le respondo lo mismo: &#8220;<em>Como mínimo ha cambiado algo: La fecha</em>&#8220;.  Si estás en la típica situación en la que te fuiste el día anterior  dejando algo funcionando y hoy ya no funciona, intenta pensar <strong>verdaderamente </strong>qué  puede haber cambiado, y echa para atrás todo lo que haya cambiado para  volver a la situación en la que funcionaba. Después vuelve a hacer los  cambios probando uno a uno, para ver cuál es el que introduce el  problema.</div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: El día 19 de Septiembre estuve mejorando el Crawler para el BOCM del proyecto <a href="http://www.booletin.es/">www.booletin.es</a>. Para identificar hasta dónde llega la fecha de un boletín en una cadena de texto (Por ej: &#8220;19<em> de Septiembre de 2010. Bla bla bla</em>&#8220;), estaba buscando &#8220;<em>20</em>&#8221;  en la cadena de texto, y así identificaba dónde se encontraba el año en  la fecha, y sabía por dónde cortar. Todo funcionaba bien con los  boletines desde el 1 de Septiembre hasta el 19. Sin embargo, al día  siguiente (20 de Septiembre) volví a probar el programa y fallaba. &#8220;<em>Pero si no he cambiado nada!</em>&#8220;-  pensé. Sin embargo sí que había cambiado algo, el día del mes. El  algoritmo funcionaba con todos los días del mes menos el día 20, ya que  cortaba la cadena &#8220;<em>20 de Septiembre de 2010. Bla bla bla</em>&#8221; justo después del primer &#8220;<em>20</em>&#8220;, y no después del año como pretendía.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 7: Pregúntale (bien) a Google</span></span></p>
<div>No creo que exagere si afirmo que el 90% de los problemas extraños  se resuelven sabiendo buscar correctamente en Google. Cuando nos  enfrentamos a un problema, lo más probable es que ya le haya pasado  antes a alguien. Internet está lleno de foros en los que la gente  plantea sus dudas/problemas, y en los que hay multitud de respuestas a  ellos.Cuando me enfrento con un problema y ando perdido, acudo a Google y  le pregunto. Es muy importante <strong>saber buscar bien</strong>, para encontrar lo que buscas. Para buscar algo, trato de buscar<strong> palabras distintivas </strong>de  lo que ando buscando (es decir, palabras que debería de contener el  documento que estoy buscando, y no deberían de contenerlas otros  documentos que no busco).</div>
<div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: La semana  pasada un compañero de trabajo experto en tecnología J2EE (un arquitecto  de los buenos) estaba buscando la solución a un problema con la  herramienta Maven. Llevaba más de dos horas buscando en google y no  encontraba nada. Me pidió que le echase una mano, y en cinco minutos  (buscando los términos correctos en google) dimos con la solución.</li>
</ul>
<p>A veces pienso que deberían darse cursos sobre cómo utilizar  correctamente los buscadores, sería el tiempo mejor invertido por muchos  (como dicen los economistas, tendría un ROI muy atractivo, se  recuperaría la inversión en cuestión de días y el resto de la vida sería  todo ganancias <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</div>
<div></div>
<div><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 8: Si no hay más remedio, baja de nivel de abstracción</span></span></div>
<div>Cuando  todo lo demás falla y el problema parece inexplicable, debemos  plantearnos que a lo mejor estamos buscando en el lugar inadecuado.  Siempre que hablamos de tecnología, nos movemos en un determinado nivel  de abstracción (Ej: Hardware &lt; BIOS &lt; Sistema Operativo &lt; JVM  &lt; Programa Java) . En ocasiones el problema que estamos buscando no  está en el nivel de abstracción en el que nos movemos, sino en un nivel  inferior (por ej. a veces buscamos un error en el programa&#8230; y el error  está en el Sistema Operativo). Tenemos que bajar a buscarlo ahí.</div>
<div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  Esta semana he tenido un problema en un servidor: Al ejecutar un  programa en este servidor se quedaba colgado. Sin embargo al ejecutarlo  en mi máquina local (con la misma configuración) el programa funcionaba  sin problemas. Finalmente, el problema no estaba en el programa, ni  siquiera en el Sistema Operativo&#8230; pero tampoco en el Hardware!. El  problema estaba en un nivel de abstracción que se encontraba escondido  entre el Sistema Operativo y el Hardware. Resulta que se trataba de un  servidor virtual, que se estaba ejecutando como una máquina virtual de  VMWare. VMWare estaba teniendo problemas con el acceso a la cabina de  discos, y esto estaba causando el fallo en la ejecución.</li>
</ul>
</div>
<div><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 9: Muchos ojos ven más que dos</span></span></div>
<p>Cuando  estés atascado, pregunta!. Aunque pienses que las personas a las que  puedes consultar no tengan la respuesta a tu problema, quizás te puedan  aportar alguna pista (o a lo mejor tienen la respuesta y tú no lo  sabes). Como poco, el contárselo a alguien te servirá también para  aclarar tus propias ideas.</p>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>: Esta anécdota es de mis favoritas. Hace muchos  años hice una aplicación en Java que tenía que realizar un cálculo para  cada hora de cada día del año. El programa empezaba con las 00:00h del 1  de Enero, e iba incrementando hora a hora hasta que acababa a las  23:00h del 31 de Diciembre. Al ejecutar el programa e ir incrementando  hora a hora, llegaba un momento en el que se realizaba el cálculo <strong>dos veces para la misma hora</strong>.  Yo no entendía qué podía estar pasando, ya que el programa funcionaba  bien, pero en un momento concreto del tiempo (el 29 de Octubre de 2000)  se duplicaba la hora. Después de dos días persiguiendo el fallo, me  levanté muy enfadado de la silla y grité en alto &#8220;<strong>¿Pero qué demonios pasa el 29 de Octubre?</strong>&#8220;.  Para mi sorpresa, un compañero me miró y me dijo muy tranquilo: &#8220;ese  día es el cambio de hora&#8221;. Claro! No había caído en la cuenta de que el  29 de Octubre de ese año era el día en que se retrasaba la hora, por lo  que a las 3h de la madrugada volvían a ser las 2h&#8230; y de ahí el hecho  de que se duplicase. Mi compañero había dado en dos segundos con la  solución al problema que yo llevaba buscando días.</li>
</ul>
<p><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: x-large;">Consejo 10: A veces la mejor solución a un problema es irse a dormir</span></span></p>
<div style="margin: 0px;">Muchas veces nos obcecamos en resolver un  problema, alargando la jornada hasta las tantas de la madrugada buscando  la solución. Después de muchos años he aprendido que a veces la mejor  solución es descansar. Cuando te levantas por la mañana, tienes la mente  fresca y lúcida, y en ocasiones se te ocurren vías de solución que por  la noche no habías imaginado. En otras ocasiones, mientras duermes, el  cerebro sigue dándole vueltas al asunto y se aclaran las ideas: ¿a quién  no le ha pasado el irse a dormir con un problema en la cabeza y  levantarse con la solución?:</div>
<ul>
<li><span style="text-decoration: underline;">Ejemplo</span>:  De pequeño solía jugar mucho al ajedrez. Con 13 años acostumbraba a  resolver problemas de ajedrez complejos, buscando soluciones  imaginativas a los problemas que se planteaban en libros y revistas. En  una ocasión estuve varias horas pensando sobre un problema de &#8220;mate en  4&#8243; sin encontrar solución. Mi sorpresa fue cuándo me fui a acostar, y  por la mañana me desperté habiendo encontrado la solución al problema  (la cabeza había estado trabajando solita por la noche!).</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2010/11/17/consejos-de-programacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consejos interesantes a la hora de programar</title>
		<link>http://www.perezrio.com/2010/11/17/consejos-interesantes-a-la-hora-de-programar/</link>
		<comments>http://www.perezrio.com/2010/11/17/consejos-interesantes-a-la-hora-de-programar/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:40:35 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programar]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=457</guid>
		<description><![CDATA[A continuación mostrare unos 20 tips para ser un buen programador, comprobado con la experiencia mia, compañeros de trabajo y con opiniones de personas relacionadas en el tema. 1. Estudia, estudia y estudia El estudiar nos permite perfeccionarnos, cuanto mas estudiemos mas oportunidades de programar mejor tendremos, no solamente estoy hablando de universidades, ni tampoco [...]]]></description>
			<content:encoded><![CDATA[<p>A continuación mostrare unos 20 tips para ser un buen programador,  comprobado con la experiencia mia, compañeros de trabajo y con opiniones  de personas relacionadas en el tema.</p>
<p><strong>1. Estudia, estudia y estudia</strong><br />
El estudiar nos permite perfeccionarnos, cuanto mas estudiemos mas   oportunidades de programar mejor tendremos, no solamente estoy hablando   de universidades, ni tampoco de cursos, hoy por hoy gracias a internet   existen infinidad de tutoriales y manuales, sin ir mas lejos el sitio   oficial de <a title="PHP" href="http://www.php.net/">PHP</a> es realmente muy bueno.</p>
<p><strong>2. Busca antes de preguntar</strong><br />
Esto es un mal común del que quiere aprender a programar, es mas fácil   preguntarle a alguien que sepa, pero realmente no tiene que ser así por   varias razones, primero por que es algo de muy de vago, luego que  cuando  alguien nos da la respuesta fácil no aprendemos nada, lo  interesante  cuando se nos presenta un problema es buscar la solución  nosotros  mismos, sino damos con la respuesta recién ahí preguntar, este  ejercicio  realmente es muy beneficio, nos permite preparar nuestra  cabeza para  solucionar futuros problemas.</p>
<p><strong>3. Busca scripts ya desarrollados</strong><br />
Por lo general podemos encontrar muchas funciones, <a title="scripts PHP" href="http://www.php-scripts.com/">scripts listos  para utilizar</a>, pero lo interesante es estudiarlos, ver como  funcionan, de ahí aprendemos si copiamos y pegamos vamos mal.</p>
<p><strong>4. Lee el código fuente libre</strong><br />
Yo muchas veces <a title="PHP open source" href="http://www.opensourcescripts.com/dir/PHP/">descargo  algunas aplicaciones</a> para ver como están programadas, de verdad que  se aprende mucho, a  medida que realicemos esta practica cada vez iremos  aprendiendo mas, en  especial si estas aplicaciones son de uso popular  en donde miles de  programadores del mundo “meten” mano para mejorarla.  Un buen ejemplo de  esto es <a title="Wordpress" href="http://wordpress.org/">WordPress</a>.</p>
<p><strong>5. No copies y pegues</strong><br />
Es fácil, entramos a google buscamos una función que sirva para lo   estamos necesitando y listo. Pero la realidad es que no siempre lo que   descargamos es correcto, y si luego tenemos que solucionar un problema   lo mas probable es que no tengamos ni idea por donde empezar. Ni hablar   del factor aprendizaje cero que esta practica implica.</p>
<p><strong>6. Buscar el momento para programar</strong><br />
Estas sentado delante de tu ordenador, llaman por teléfono, tu compañero   de trabajo o familiar te pregunta algo, realmente es lo mas molesto e   incomodo que hay, es difícil concentrarse, es preferible hacer algo mas   “Light” antes de programar algo mal y después tener que arreglarlo.</p>
<p><strong>7. Ten tu propia Wiki</strong><br />
Esto lo recomiendo muchísimo, es muy sencillo instalar una <a title="Download Wiki media" href="http://www.mediawiki.org/wiki/MediaWiki">Wiki</a> en nuestra pc, simplemente podemos  descargar el Easyphp y tener en  nuestro ordenar un servidor funcional, y  mejor aun si quieres hacer la  instalación “a mano”. La wiki es  interesante para poder almacenar  rutinas que usamos frecuentemente, en  mi caso suelo guardar  validaciones, etc. Una vez que aprendimos a hacer  algo y lo tenemos lo  mejor posible es interesante tenerlo a mano para no  perder tiempo  escribiendo lo mismo una y otra vez.</p>
<p><strong>8. Comenta todo lo que sea necesario</strong><br />
Escribir comentarios en el código suele ser bastante molesto y parecer   innecesario, pero comentar las cosas importantes nos puede ahorrar mucho   tiempo cuando tengamos que retocar el código meses después.</p>
<p><strong>9. Participa en foros/comunidades</strong><br />
Es interesante para interactuar con otras personas que estén en nuestra   misma sintonía, muchas veces ayudaremos nosotros y otra vez nos podrán   ayudar. En línea general estas comunidades tienen muy buena onda, y la   ayuda mutua es lo que abunda, unas líneas de código pueden ser útiles   para muchas personas, de ahí que entre todos se puede perfeccionar.   Recuerden respetar el punto 2.</p>
<p><strong>10. Habla con otros programadores</strong><br />
Mensajería instantánea, en un café, por teléfono, etc. Es interesante   tener amigos que están en lo mismo, no solamente por el tema de la ayuda   mutua, estos grupos suelen ser también de ayuda “emocional” del   programador, unos chistes, algún comentario puede ser una inyección de   energía para continuar con un problema que no podemos resolver.</p>
<p><strong>11. Tiempo libre para otras cosas</strong><br />
Me encanta programar, pero entendi que no es lo unico en la vida, a   veces es bueno una salida, una película, realmente es necesario   desenchufarnos.</p>
<p><strong>12. Arma tu bunker</strong><br />
Tener un espacio de trabajo acorde con tus gustos es indispensable para   programar, un buen sillón que no dañe nuestra columna, un lindo   escritorio que nos permita desparramar CDS, libros, etc. También hay que   ser organizado, pero siempre a nuestro gusto, es bueno que sea TU   espacio y que nadie meta mano, uno a la larga lo termina sintiendo como   un refugio.</p>
<p><strong>13. Tu equipo en condiciones</strong><br />
Otro punto importante, una buena computadora, que no tenga problemas, si   es necesario un poco mas de RAM, no hace falta tener una supermáquina   para programar con PHP pero si algo que no se este colgando cada 2 seg.</p>
<p><strong>14. Usa herramientas gratuitas</strong><br />
Si no podes pagar ciertas herramientas realmente ni te gastes en bajar  las versiones piratas, en PHP <a title="Eclipse" href="http://www.eclipse.org/">no se necesita mucho</a> y  realmente no vale la pena estar trucando programas.</p>
<p><strong>15. Organiza tu propia biblioteca de scripts</strong><br />
Relacionado con el punto 7. La wiki es muy buena, pero hay que tenerla   organizada, sino encontrar algo puede llevarnos mas tiempo que volverlo a   escribir.</p>
<p><strong>16. Se agradecido con los que te ayudan</strong><br />
Si alguien te ayuda, por favor al menos di gracias. Recuerda que las   personas que te rodean no son tu soporte técnico (Al menos que les   pagues). Si alguien se molesta en responder a tus consultas agradécele,   para la próxima esa persona seguirá teniendo buena predisposición.</p>
<p><strong>17. Se humilde</strong><br />
Esencial. Siempre hay alguien que sabe más que uno y mas en este “rubro”   en donde hay verdaderos cráneos, Yo hace varios años que programo en   PHP y sin embargo siempre aprendo algo nuevo, y en parte eso es lo que   me gusta de programar, siempre se puede mejorar.</p>
<p><strong>18. Siempre busca perfeccionarte</strong><br />
Relacionado con el punto anterior. Las tecnologías evolucionan y   nosotros debemos hacer lo mismo. Una linda practica cuando tenemos un   poco de tiempo libre es tratar de optimizar un código nuestro de unos   meses anteriores, si aprendimos cosas nuevas de seguro que podemos   hacerlo mejor que antes.</p>
<p><strong>19. Intenta ser eficiente y luego inténtalo de nuevo</strong><br />
Que funcione no quiere decir que este bien. También una de las cosas más   lindas de programar: Siempre se puede hacer una función mas eficiente,   que consuma menos recursos, no hay que conformarse que arroje los   resultados que queremos, probablemente lo podemos hacer mejor.</p>
<p><strong>20. Programa primero lo que menos te gusta</strong><br />
Esto es bastante personal, pero por lo general me da buenos resultados.   Cuando me siento a programar algo los primeros minutos son de   “ambientación” luego tengo un periodo de concentracion digamos maxima,   en ese momento las cosas que parecen o son mas complicadas son cuando   mas rápido y mejor salen, luego cuando uno esta mas cansado puede   dedicarse a las cosas mas sencillas y rutinarias.</p>
<p>Visto en <a title="http://elblogdefasa.wordpress.com/2010/11/08/tips-para-ser-un-buen-programador/" href="http://elblogdefasa.wordpress.com/2010/11/08/tips-para-ser-un-buen-programador/" target="_blank">elblogdefasa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2010/11/17/consejos-interesantes-a-la-hora-de-programar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Articulo muy interesante sobre herramientas de software libres y gratuítas</title>
		<link>http://www.perezrio.com/2010/02/22/articulo-muy-interesante-sobre-herramientas-de-software-libres-y-gratuitas/</link>
		<comments>http://www.perezrio.com/2010/02/22/articulo-muy-interesante-sobre-herramientas-de-software-libres-y-gratuitas/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 10:52:22 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[herramientas]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=394</guid>
		<description><![CDATA[Articulo muy interesante sobre herramientas de software libres y gratuítas: Alternativas al uso de Windows tenemos: Linux Ubuntu: Ubuntu es una distribución basada en Debian, con lo que esto conlleva, y centrada en el usuario final y facilidad de uso. Muy popular y con mucho soporte en la comunidad. El entorno de escritorio por defecto [...]]]></description>
			<content:encoded><![CDATA[<p>Articulo muy interesante sobre herramientas de software libres y gratuítas:</p>
<h3><span><span>Alternativas al uso de Windows tenemos:</span></span></h3>
<p><span><span><a href="http://www.linux-es.org/" target="_blank">Linux</a></span></span></p>
<p><span><span><a href="http://www.ubuntu-es.org/" target="_blank">Ubuntu</a>:</span></span></p>
<p>Ubuntu es una distribución basada en Debian, con lo que esto conlleva, y centrada en el usuario final y facilidad de uso. Muy popular y con mucho soporte en la comunidad. El entorno de escritorio por defecto es GNOME.</p>
<h3><span><span><strong>Diseño y gestión Web</strong></span></span><span><span><br />
</span></span></h3>
<p><span><span><a href="http://www.joomlaspanish.org/" target="_blank">Joomla:</a></span></span></p>
<p><span><span>Joomla es un sistema de administración de contenidos de código abierto, construido con PHP bajo una licencia GPL. Este administrador de contenidos se usa para publicar en Internet e intranets, utilizando una base de datos MySQL. En Joomla se incluyen características como: hacer caché de páginas para mejorar el rendimiento, indexación web, feed RSS, versiones imprimibles de páginas, flash con noticias, blogs, foros, encuestas, calendarios, búsqueda en el sitio web, e internacionalización del lenguaje.</span></span></p>
<p><span><span><a href="http://virtuemart.net/" target="_blank">VirtueMart</a>:</span></span></p>
<p><span><span>VirtueMart es un componente de Joomla que implementa en un Sitio Web las funcionalidades de un software del tipo “Carrito de Compras”, permitiendo crear un catalogo o una tienda on-line, perfectamente adaptada a las necesidades de la pequeña y mediana empresa, o de cualquier sitio que exhiba y/o comercialice todo tipo de productos.</span></span></p>
<p><span><span><br />
<a href="http://es.wordpress.org/" target="_blank">WordPress:</a></span></span></p>
<p><span><span>WordPress es un sistema de gestión de contenido enfocado a la creación de blogs. Las causas de su enorme crecimiento son, entre otras, su licencia, (GPL), su facilidad de uso y sus características como gestor de contenidos. También una de las causas, es su enorme comunidad de desarrolladores y diseñadores, que se encargan de crear plugins y themes para la comunidad.</span></span></p>
<p><span><span><a href="http://getshopped.org/" target="_blank">Getshopped:</a></span></span></p>
<p><span><span>Getshopped, es un plugin diseñado para trabajar con WordPress, con el que puedes crear una tienda virtual en muy pocos clic. Si bien cuenta con una versión Premium, puedes obtener la versión gratuita y armar tu tienda ya mismo.</span></span></p>
<p><span><span><a href="http://drupal.org.es/" target="_blank">Drupal:</a></span></span></p>
<p><span><span>Es un sistema de gestión de contenido para sitios Web. Permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno Web incluido en el producto. Licencia GPL</span></span></p>
<p><span><span><a title="Freeflux" href="http://freeflux.net/" target="_blank">Freeflux</a>:</span></span></p>
<p><span><span>Freeflux es  completamente gratuito, basado en tecnología Open Source, mejorado continuamente, por sus usuarios y por el equipo de Flux CMS.</span></span></p>
<p><span><span>Contiene páginas estáticas, galerías, plataforma de blog, formularios de contacto, editor WYSIWYG fon Kupu, FCKeditor y/o BXE.</span></span></p>
<p><span><span>Multilenguaje, varias plantillas para elegir, control total sobre plantillas y el CSS, editor de imágenes in-browser, entre muchas otras características interesantes.</span></span></p>
<p><span><span><a href="http://www.elgg.org/" target="_blank">Elgg:</a></span></span></p>
<p><span><span>Elgg es una plataforma de creación de redes sociales basada en PHP y MySQL. Permite organizar a comunidades de usuarios que pueden crear sus propios blogs, colaborar entre sí o compartir noticias y archivos.</span></span></p>
<p><span><span><a href="http://www.kompozer.net/" target="_blank">Kompozer</a>:</span></span></p>
<p><span><span>KompoZer está diseñado para ser muy fácil de usar, lo que es ideal para usuarios no técnicos informáticos que desean crear un atractivo sitio Web de aspecto profesional sin necesidad de conocer HTML o de codificación Web.</span></span></p>
<p><span><span><a href="http://www.w3.org/Amaya/" target="_blank">Amaya</a>:</span></span></p>
<p><span><span>Amaya es un editor Web, es decir, una herramienta usada para crear y actualizar los documentos directamente en la Web.</span></span></p>
<p><span><span>Buscando características se integran a la perfección con la de edición y funciones de acceso remoto en un entorno uniforme.</span></span></p>
<p><span><span><a href="http://filezilla-project.org/" target="_blank">Filezilla</a>:</span></span></p>
<p><span><span>FileZilla, la solución de FTP gratuito. Tanto un cliente y un servidor están disponibles. FileZilla es software de código abierto. Tanto la versión cliente como la servidor se distribuyen gratuitamente bajo los términos de la Licencia Pública General de GNU.</span></span></p>
<p><span><span><a href="http://chrispederick.com/work/web-developer/" target="_blank">Web Developer</a>:</span></span></p>
<p><span><span>Web Developer es una extensión de Firefox que incluye varias herramientas de desarrollo web (html, css, cookies, formularios, imágenes, validación, etc.).</span></span></p>
<p><span><span><a href="http://www.prestashop.com/es" target="_blank">Prestashop</a>:</span></span></p>
<p><span><span>Prestashop es una herramienta para generar y administrar tiendas online de forma sencilla. Es una aplicación open source para comercio electrónico, para la creación de un negocio propio negocio en Internet. En definitiva, se puede poner en marcha una tienda online, añadiendo productos, gestionando clientes, haciendo inventarios, enviando boletines, accediendo a las estadísticas, entre otras herramientas. Se podrán añadir funciones a la tienda a través de los diferentes módulos que podemos incorporar y configurar, además de personalizar la tienda a través de diferentes temas.</span></span></p>
<p><span><span><a href="http://www.oscommerce.com/" target="_blank">OScommerce</a>:</span></span></p>
<p><span><span>OScommerce es una aplicación de comercio electrónico. Permite crear una tienda administrable para vender online. Oscommerce consta de dos partes:</span></span></p>
<p><span><span>El Catálogo de Productos es la parte que ven los clientes, la tienda virtual y</span></span></p>
<p><span><span>El Módulo de Administración donde se puede actualizar la tienda virtual, editando productos, ofertas, categorías, idiomas, monedas, consultar los pedidos, los clientes.</span></span></p>
<p><span><span><a href="http://www.opencart.com/" target="_blank">OpenCart</a>:</span></span></p>
<p><span><span>OpenCart es una solución de comercio electrónico Open Source basada en <a href="http://www.oscommerce.com/" target="_blank">osCommerce</a> pero bastante más sencilla y reducida. Es un completo sistema de tienda virtual gratuito y de código abierto realizado con PHP y MySQL, que nos permite montar fácilmente un negocio en Internet.</span></span></p>
<p><span><span><a href="http://www.limesurvey.org/" target="_blank">LimeSurvey:</a></span></span></p>
<p><span><span>LimeSurvey es una aplicación open source para la aplicación de encuestas en línea, escrita en PHP. Esta utilidad brinda la posibilidad a usuarios sin conocimientos de programación, el desarrollo, publicación y recolección de respuestas de sus encuestas.</span></span></p>
<h3><span><span><strong>Ofimática y multimedia</strong></span></span></h3>
<p><span><span><strong><a href="http://bulmages.sourceforge.net/" target="_blank">BulmaGés:</a></strong></span></span></p>
<p><span><span><strong></strong></span></span></p>
<p><span><span><strong>BulmaGés</strong> ofrece una completa herramienta de gestión integrada, totalmente configurable y perfectamente adaptable a su empresa, con la posibilidad de incorporarle nuevos módulos y Plugins para llevar al máximo el rendimiento del sistema e incorporarle nuevas funcionalidades al sistema.</span></span></p>
<p><span><span>Tal y como dijimos anteriormente <strong>BulmaGés</strong> es multiplataforma ya que funciona bajo cualquier Sistema Operativo sea Windows, GNU/Linux, etc. y una particularidad aún más interesante es que puede ser ejecutado de manera local o remota y no contamos con restricciones de licencia tanto para los usuarios como para las empresas, ya que como dijimos se encuentra bajo la licencia GNU/GPL.</span></span></p>
<p><span><span>Un punto muy favorable del proyecto es la gran cantidad de documentación de la misma que se puede encontrar en internet, desde tutoriales on-line en Wikis, hasta documentos en formato OpenOffice o .pdf para descargar y no solamente desde el sitio oficial del proyecto, sino más bien desde diferentes webs en conjunto apoyo a <strong>BulmaGés</strong>.<br />
En <strong>BulmaGés</strong> es posible identificar claramente las áreas en la cual actúa:</span></span></p>
<ul>
<li><span><span>En el área de contabilidad cuenta con <strong>BulmaCont</strong></span></span></li>
<li><span><span>En el área de facturación se encuetra <strong>BulmaFact</strong></span></span></li>
<li><span><span>En las Terminales y Puntos de Venta contamos con <strong>BulmaTPV</strong></span></span></li>
<li><span><span><strong>BcontaWeb</strong> con integración con el proyecto <strong>Galopin</strong></span></span></li>
<li><span><span><strong>Reports</strong>, un generador de informes muy elegantes con migración a los formatos OpenOffice, HTML, Web y cuenta con un visor propio.</span></span></li>
</ul>
<p><span><span><a href="http://ganttproject.sourceforge.net/" target="_blank">GanttProject:</a></span></span></p>
<p><span><span><span><a href="http://ganttproject.sourceforge.net/" target="_blank"><br />
</a></span>GanttProject, es una aplicación de escritorio con interfaz similar a MS. Project permite programar y organizar las tareas y asignación de personas y recursos sobre una representación Gantt.<br />
Por supuesto es una herramienta mucho más ligera que MS Project, pero esto en el ámbito y dimensión de muchos proyectos es más una ventaja que un inconveniente.<br />
La exportación de informes en formato HTML está bastante lograda.<br />
Necesita Java Runtime Environment.</span></span></p>
<p><span><span><a href="http://portableapps.com/suite" target="_blank">PortableApps.com Suite:</a><br />
<strong>Su computadora sin la computadora!</strong></span></span></p>
<p><span><span>PortableApps Suite es una colección de aplicaciones portátiles que podrás llevar siempre en tu USB y te permitirán transportar tus programas esenciales y utilizarlos desde cualquier lugar a donde te desplaces. Las aplicaciones incluyen navegador, correo electrónico, calendario, agenda, mensajería instantánea, antivirus, backup e incluso un juego de Sudoku para los ratos muertos.</span></span></p>
<p><span><span>Todas las versiones de PortableApps Suite incluyen un menú que permite acceder con facilidad a todas las aplicaciones, con todos sus iconos al alcance.</span></span></p>
<p><span><span>PortableApps Suite, en su versión estándar, cuenta con las siguientes aplicaciones: ClamWin Portable (antivirus), Mozilla Firefox – Portable Edition (navegador), Gaim Portable (mensajería instantánea), OpenOffice.org Portable, Sudoku Portable, Mozilla Sunbird – Portable Edition (calendario) y Mozilla Thunderbird – Portable Edition (e-mail para clientes) y con una instalación que no te quitará más de 512MB. Además, la edición superior añade Uses AbiWord Portable (procesador de texto).</span></span></p>
<p><span><span>Algunas aplicaciones están en inglés y otras en español, y podrás utilizarlo con Win98/NT/ME/2000/XP. Sin duda, se trata de un programa de máxima utilidad que favorece el transporte de todas tus ocupaciones en un simple USB.</span></span></p>
<p><span><span><a href="http://openpyme.osl.ull.es/Ofim%C3%A1tica/applications/OpenOffice" target="_blank">OpenOffice</a>:</span></span></p>
<p><span><span>Es una suite ofimática integrada por herramientas como procesador de textos, hoja de cálculo, editor de presentaciones, herramientas para el dibujo vectorial y base de datos. Está pensado para ser compatible con Microsoft Office.</span></span></p>
<p><span><span><a href="http://www.pdfforge.org/pdfcreator" target="_blank">PDFCreator</a>:</span></span></p>
<p><span><span>Es una utilidad con la que podrá crear archivos PDF desde cualquier aplicación. Funciona simulando ser una impresora. De esta forma todas tus aplicaciones con opción para imprimir le permitirán crear archivos PDF en cuestión de segundos.</span></span></p>
<p><span><span><a href="http://www.7-zip.org/" target="_blank">7Zip</a>:</span></span></p>
<p><span><span>7-zip es un compresor/descompresor de archivos que maneja los formatos ZIP, RAR, CAB, GZIP, BZIP2 y TAR, así como un formato propio, 7z.</span></span></p>
<p><span><span>Según el autor, el formato 7z comprime entre un 30% y un 50% más que el formato ZIP original. También permite comprobar la integridad de los archivos comprimidos en cualquier formato. Al instalarse, el programa está en inglés, pero se puede cambiar al castellano, mediante el menú Tools &gt; Options &gt; Language.</span></span></p>
<p><span><span><a href="http://code.google.com/p/zscreen/" target="_blank">Zscreen</a>:</span></span></p>
<p><span><span>ZScreen es un capturador de pantallas capaz de capturar el escritorio completo, una ventana o un rectángulo de cualquier tamaño. La captura puede copiarse en el portapapeles, guardarse automáticamente en cualquiera de los formatos gráficos más extendidos o enviarse al editor de imágenes que elija el usuario.</span></span></p>
<p><span><span><a href="http://www.gimp.org/" target="_blank">Gimp</a>:</span></span></p>
<p><span><span>GIMP (GNU Image Manipulation Program) es el programa de retoque fotográfico y composición y edición de imágenes más famoso de GNU/Linux, que también está disponible en Windows.</span></span></p>
<p><span><span><a href="http://www.inkscape.org/" target="_blank">Inkscape</a>:</span></span></p>
<p><span><span>Inkscape es un editor de gráficos vectoriales que utiliza el formato SVG. Es capaz de manejar objetos, trazos, texto, marcadores, clones, mezclas de canales alfa, transformaciones, gradientes, patrones y agrupamientos. También maneja metadatos Creative Commons, capas, vectorización de archivos gráficos, texto en trazos, alineación de textos, etc. Importa formatos como Postscript, EPS, JPEG, PNG, y TIFF y exporta en PNG y varios formatos vectoriales.</span></span></p>
<p><span><span><a href="http://es-es.www.mozillamessaging.com/es-ES/thunderbird/" target="_blank">Thunderbird</a>:</span></span></p>
<p><span><span>Thunderbird es un cliente de correo de los creadores de Firefox. Incorpora multitud de características avanzadas: herramientas para detectar el correo basura, herramientas de seguridad (S/MIME, firma digital, encriptación, etc), lector RSS, múltiples cuentas, filtrado de mensajes, pestañas, bandejas inteligentes, archivo de mensajes, etc. Y de forma similar a Mozilla Firefox, puede personalizarse mediante temas y ampliar sus posibilidades mediante extensiones.</span></span></p>
<p><span><span><a href="http://www.taskcoach.org/" target="_blank">Task Coach</a>:</span></span></p>
<p><span><span>Task Coach es una agenda personal para gestionar tareas y listas de tareas pendientes.<br />
Al instalarse, el programa está en inglés, pero se puede cambiar al castellano, mediante la opción del menú Edit &gt; Preferences &gt; Language &gt; Language.</span></span></p>
<p><span><span><a href="http://www.avast.com/index_esp.html" target="_blank">Avast:</a></span></span></p>
<p><span><span>Avast, es un software antivirus gratuito que provee seguridad de escritorio y datos. avast! Detecta y elimina toda forma de malware, incluyendo spyware y troyanos. <strong>“Gratuito para usuarios domésticos”.</strong> Sólo requiere de un registro para obtener un año de servicio. Quizás uno de los mejores antivirus del momento, con actualizaciones diarias.</span></span></p>
<p><span><span><a href="http://camstudio.org/" target="_blank">CamStudio:</a></span></span></p>
<p><span><span>CamStudio es capaz de grabar todas las actividades de pantalla y audio en su ordenador  y crear estándares de la industria de archivos de vídeo AVI y SWF.</span></span></p>
<p><span><span><a href="http://www.virtualdub.org/" target="_blank">VirtualDub:</a></span></span></p>
<p><span><span>VirtualDub edita, captura y procesa vídeos para realizar un sinfín de modificaciones, tratamientos y mejoras.</span></span></p>
<p><span><span>Se trata de una herramienta verdaderamente versátil, aunque muy poco intuitiva a la hora de manejarla. Las funciones de VirtualDub van desde el corte de vídeos, la unión y la extracción de pistas hasta el procesamiento (cambio de resolución, calidad de vídeo, conversión, etc.) utilizando una gran diversidad plugins para tratamientos muy concretos.</span></span></p>
<p><span><span><a href="http://www.videolan.org/" target="_blank">VLC Media Placer:</a></span></span></p>
<p><span><span>VLC Media Player reproduce casi cualquier formato de audio y vídeo. Seguramente esta capacidad sea la razón por la que millones de usuarios lo consideran el mejor.<br />
La compatibilidad con todo tipo de archivos multimedia se debe a que VLC Media Player trae su propio paquete de códecs. De esta manera, VLC no depende de los que tengamos instalados en Windows. La interfaz de VLC Media Player no tiene secretos ni siquiera para los usuarios noveles. Se maneja con gran facilidad. A pesar de esto, también cuenta con opciones avanzadas como el cliente &#8211; servicio de streaming para enviar una señal de vídeo por Internet.<br />
Licencia GPL.</span></span></p>
<p><span><span><a href="http://audacity.sourceforge.net/about/?lang=es" target="_blank">Audacity</a>:</span></span></p>
<p><span><span>Audacity es un editor de audio. Permite reproducir, grabar, editar, mezclar, aplicar efectos, etc. Al instalarse, el programa está en castellano. Licencia GNU GPL.</span></span></p>
<p><span><span><a href="http://www.dimdim.com/" target="_blank">DimDim:</a></span></span></p>
<p><span><span>Excelente herramienta para webinar, aunque tiene una versión de pago, te puedes suscribir a la versión Gratuita y puedes obtener capacidad para dictar charlas, tutoriales, conferencias hasta 100 usuarios <a href="http://imasdmarketing.com/pod-cast/58-videotutorial-dimdim.html" target="_blank"><strong>Puedes ver video tutorial haciendo click aquí</strong></a>.</span></span></p>
<p><span><span>También cuenta con una versión OpemSource, pero sólo se recomienda a los usuarios con conocimientos muy avanzados.</span></span></p>
<p><span><span><a href="http://www.docebo.org/doceboCms/" target="_blank">Docebo:</a></span></span></p>
<p>Docebo Open Source  es una  <strong>plataforma de  e-Learning</strong> utilizada en los mercados corporativos y de educación superior.</p>
<p>La plataforma incluye 18 idiomas y <strong>modelos didácticos</strong>. Por ejemplo: Blended learning, aprendizaje autodirigido y colaborativo; incluso del aprendizaje social por medio de chat, Wiki, foros y otras 53 funciones diferentes.<br />
Muy completo el material, con manuales y foro. Con Docebo podrás elaborar tus propios cursos y realizar el seguimiento de tus alumnos.</p>
<p><span><span><a href="http://www.skype.com/intl/es/welcomeback/" target="_blank">Skype:</a></span></span></p>
<p><span><span>Si bien no se trata de una herramienta totalmente gratuita, podríamos decir que skype es muy útil y nos puede representar un coste casi cero.</span></span></p>
<p><span><span>Nos resultará totalmente gratis realizar llamadas de PC a PC,  al igual que si empleamos el servicio de Chat.<br />
Si utilizamos Skype para realizar llamadas de PC a teléfono, obtendremos unas tarifas muy pero que muy  reducidas.</span></span></p>
<p><span><span><a href="http://stepvoice.com/index.shtml" target="_blank">StepVoice Recorder</a>:</span></span></p>
<p><span><span>Stepvoice Recorder es un software de grabación en tiempo real, con el soporte de archivos en formato MP3. Permite grabar desde cualquier fuente de sonido, tales como micrófono, línea o cualquier sonido que se está reproduciendo en su PC (radio por Internet, películas sonidos, etc.)<br />
Incorpora una interfaz muy intuitiva con la que enseguida podrás grabar sonido, y podrás publicarlo en la Web, cartas de ventas, descripción de servicios, etc.</span></span></p>
<h3><span style="font-weight: normal;">Licencia: Existe una versión de pago de unos U$D 14.00, pero también el propio autor, ofrece una versión gratuita, que cuenta con todas las funcionalidades, sólo que no se trata de la última versión.</span></h3>
<p><span><span><a href="http://gratis.portalprogramas.com/Marketing.html" target="_blank">Plan Marketing 1.0:</a></span></span></p>
<p><span><span>&#8220;Gestiona todo tipo de campañas de marketing.&#8221;<br />
Plan Marketing, es un completo programa con el que podrás gestionar todo tipo de campañas de<strong>Marketing</strong> sin importar el género ni la amplitud de la misma.</span></span></p>
<p>El programa cuenta con múltiples opciones como por ejemplo:<br />
- Alta y modificación de valores de campaña, en toda la amplitud de sus datos más comunes.<br />
- Seguimiento de trabajos.<br />
- Seguimiento de objetivos.<br />
- Múltiples informes.<br />
- Múltiples gráficos.<br />
- Visor de imágenes para imágenes de una campaña.<br />
- Calendario de tareas.<br />
- Contactos.<br />
- Fórmulas matemáticas básicas utilizadas en <strong>Marketing</strong>.<br />
- Etc.</p>
<p><span><span>Si consideras que hay contenido interesante que ha quedado fuera de este post, házmelo saber y será agregado a la brevedad.</span></span></p>
<p><span><span>Si el artículo te ha parecido interesante, puedes publicarlo en tu Web o Blog, siempre y cuando se incluya la firma del mismo de la siguiente forma y con el link activo.</span></span></p>
<p><span><span>Autor: José Manuel Fernández Parapar<br />
<a title="ImasDMarketing" href="http://www.imasdmarketing.com/" target="_blank">http://www.imasdmarketing.com</a></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2010/02/22/articulo-muy-interesante-sobre-herramientas-de-software-libres-y-gratuitas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como crear tu propio Linux</title>
		<link>http://www.perezrio.com/2009/05/30/como-crear-tu-propio-linux/</link>
		<comments>http://www.perezrio.com/2009/05/30/como-crear-tu-propio-linux/#comments</comments>
		<pubDate>Sat, 30 May 2009 14:59:38 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=306</guid>
		<description><![CDATA[Visto en:  debuntu.wordpress.com Hecho por “linxack” Rafael Murillo un joven de 23 años, residenciado actualmente en la Ciudad de México nacido el 20 de agosto de 1985. Estudiante de Lic. en Sistemas Computacionales “hasta hace poco me di cuenta que preferiría estudiar Diseño gráfico, sobre todo diseño web, pero sigo siendo amante del software libre, [...]]]></description>
			<content:encoded><![CDATA[<p>Visto en:  <a title="crear distro" href="http://debubuntu.wordpress.com/2009/05/25/¿como-crear-tu-propio-linux/" target="_blank">debuntu.wordpress.com</a></p>
<p style="text-align:left;"><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/-AHOsR5h1y4&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/-AHOsR5h1y4&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><!-- 		@page { size: 21.59cm 27.94cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p>Hecho por “linxack” Rafael Murillo un joven de 23 años, residenciado actualmente en la Ciudad de México nacido el 20 de agosto de 1985. Estudiante de Lic. en Sistemas Computacionales “hasta hace poco me di cuenta que preferiría estudiar Diseño gráfico, sobre todo diseño web, pero sigo siendo amante del software libre, sobre todo porque gracias a él, he aprendido una filosofía, sino está hecho, hazlo tu mismo, y si está hecho, mejoralo”. este joven lleva entre 5 y 6 años usando linux “empecé con mandrake 9, luego usé RedHat, Feedora, Ubuntu, Comfusion, Suse, y ahora estoy de lleno con Ubuntu nuevamente” “Comencé a hacer videotutoriales por hobby, pero me di cuenta que era una forma de devolverle a la comunidad lo mucho que me ha dado”</p>
<p>“Les puedo decir, que hace 5 años si era difícil migrar de windows a linux, pero el día de hoy, gracias a distribuciones como Ubuntu, esto es muy fácil y es cierto, notas la diferencia entre windows y linux, porque ya no tienes virus, ya no necesitas estar buscando cracks… y si te informas más puedes hacer que linux sea realmente tu sistema… configurado y tuneado a tu gusto, con comandos de tu elección, programas (miles) que son alternativa libre y que sobrepasan los límites de programas comerciales usados en windows. Si aún no se deciden a cambiar a linux, en verdad, deben hacerlo, no sólo porque se librarán de los virus, sino porque va con toda la ideología de internet, ser libres, tener derecho a elegir lo que queremos y no tener que pagar por ello, además de que todo lo que tienes en windows, lo puedes tener en linux”.</p>
<p>En el canal de Linxack en youtube  encontraras los siguientes video tutoriales: Configurar Gmail en Thunderbird de Linux, Ajustar volumen en Ubuntu, Crear alias de comandos en Linux, crear tu propio Linux, Personalizar escritorio de Ubuntu, Instalar Gnome-Do en Ubuntu Jaunty Jackalope, Instalar brushes de Photoshop en Gimp 2.6.4, Compilar un programa en C utilizando GCC de Linux, Crear nuestros propios tutoriales en Ubuntu, Editar el GRUB de Ubuntu, Activar compiz en Ubuntu 1-2. Sus correos  linxack(arroba)gmail(punto)com  linxack(arroba)hotmail(punto)com</p>
<p>Bienvenidos a un mundo libre, sin “puertas ni ventanas” (no Gates, no Windows)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2009/05/30/como-crear-tu-propio-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como copiar registros de la SIM en nokia N70</title>
		<link>http://www.perezrio.com/2008/10/20/como-copiar-registros-de-la-sim-en-nokiai-n70/</link>
		<comments>http://www.perezrio.com/2008/10/20/como-copiar-registros-de-la-sim-en-nokiai-n70/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 23:27:18 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[copiar SIM]]></category>
		<category><![CDATA[n70]]></category>
		<category><![CDATA[nokia]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=227</guid>
		<description><![CDATA[Para copiarlo a l memoria del N70 abres guia/opciones/guia de la SIM/ directorio de la SIM/opciones/copiar a la guia.  Si quieres copiar todos, primero dale a opciones/marcar todos.]]></description>
			<content:encoded><![CDATA[<p>Para copiarlo a l memoria del N70 abres guia/opciones/guia de la SIM/ directorio de la SIM/opciones/copiar a la guia. <br />
Si quieres copiar todos, primero dale a opciones/marcar todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/10/20/como-copiar-registros-de-la-sim-en-nokiai-n70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mandriva 2009 beta 2 liberada</title>
		<link>http://www.perezrio.com/2008/08/25/mandriva-2009-beta-2-liberada/</link>
		<comments>http://www.perezrio.com/2008/08/25/mandriva-2009-beta-2-liberada/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 20:17:54 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mandriva]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=175</guid>
		<description><![CDATA[a segunda beta de la distribución Linux patrocinada por la compañía francesa ya está disponible en su edición “Free” y en la versión live denominada “One”. Entre las novedades destacan la eliminación de Firefox 2 y la inclusión de su versión 3 por defecto usando xulrunner, la implementación de Gecko como una librería separada en [...]]]></description>
			<content:encoded><![CDATA[<p>a segunda beta de la distribución Linux patrocinada por la compañía francesa ya está disponible en su edición “Free” y en la versión live denominada “One”.</p>
<p>Entre las novedades destacan la eliminación de Firefox 2 y la inclusión de su versión 3 por defecto usando xulrunner, la implementación de Gecko como una librería separada en vez de usarse junto con Firefox para una mejor actualización futura. Otro de los destacados en la inclusión de la pre-release de la suite ofimática libre OpenOffice.org 3.0.</p>
<p>En las notas de la versión señalan una revisión completa del instalador que otorga una interfaz más moderna y funcional y será el utilizado en la versión “Free” y la edición comercial “Powerpack”. El tema oficial de Mandriva “la Ora”, está mejor integrado en el entorno de escritorio KDE 4.0 y aunque no está totalmente terminado prácticamente será el que se pueda ver en la versión final.</p>
<p>Otras de las nuevas características reseñadas son el cambio de sistema de configuración de impresoras que ahora usa el ’system-config-printer’ de Fedora, en sustitución de la herramienta propia de Mandriva ‘printerdrake’, así como la inclusión del controlador atl1e usado por varios netbooks como los Asus EEEPC y el sis-iMedia para chipset SIS.</p>
<p><span id="more-175"></span></p>
<p>Fuente: <a title="http://www.theinquirer.es/2008/08/22/mandriva-2009-beta-2-liberada.html" href="http://www.theinquirer.es/2008/08/22/mandriva-2009-beta-2-liberada.html" target="_blank">Theinquirer.es</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/08/25/mandriva-2009-beta-2-liberada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copia de seguridad y restauración de Favoritos en Internet Explorer</title>
		<link>http://www.perezrio.com/2008/08/05/copia-de-seguridad-y-restauracion-de-favoritos-en-internet-explorer/</link>
		<comments>http://www.perezrio.com/2008/08/05/copia-de-seguridad-y-restauracion-de-favoritos-en-internet-explorer/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 13:41:50 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[favoritos]]></category>
		<category><![CDATA[iexplorer]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/08/05/copia-de-seguridad-y-restauracion-de-favoritos-en-internet-explorer/</guid>
		<description><![CDATA[Todos Favoritos de Internet Explorer se localizan en una carpeta de sistema cuya ruta depende del sistema operativo que estemos utilizando. Ubicación los archivos Favoritos. Copia y Restauración. Para el caso de Windows 98 los accesos directos de Favoritos están localizados en C:\Windows\Favoritos, mientras que en Windows XP están en &#8220;D:\Documents and Settings\&#60;usuario&#62;\Favoritos&#8221;. Podemos ver [...]]]></description>
			<content:encoded><![CDATA[<p>Todos Favoritos de Internet Explorer se localizan en una carpeta de sistema cuya ruta depende del sistema operativo que estemos utilizando.</p>
<p><font size="4">Ubicación los archivos Favoritos. Copia y Restauración.</font></p>
<p>Para el caso de Windows 98 los accesos directos de Favoritos están localizados en C:\Windows\Favoritos, mientras que en Windows XP están en &#8220;D:\Documents and Settings\&lt;usuario&gt;\Favoritos&#8221;. Podemos ver que en Windows XP la carpeta Favoritos está en un directorio especial que depende del usuario con el que se ha entrado al PC, por lo que cada usuario en esa máquina tendrá su propia carpeta Favoritos.</p>
<p>La copia de seguridad de los Favoritos es tan fácil como copiar esos accesos directos a un disco y pegarlos en el directorio correspondiente del nuevo equipo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/08/05/copia-de-seguridad-y-restauracion-de-favoritos-en-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novedades en Gimp 2.6</title>
		<link>http://www.perezrio.com/2008/07/12/novedades-en-gimp-26/</link>
		<comments>http://www.perezrio.com/2008/07/12/novedades-en-gimp-26/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 16:10:47 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[ubuntulife]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/07/12/novedades-en-gimp-26/</guid>
		<description><![CDATA[Visto en: Ubuntulife.net En Agosto seguramente sea liberada la version definitiva de Gimp 2.6, Estaba prevista para este mes de Julio pero ha sufrido un pequeño retraso. Sin embargo, sus desarrolladores ya han ido comentando alguna de las principales novedades. La mas importante es el cambio de motor interno, ahora se utilizara un motor que [...]]]></description>
			<content:encoded><![CDATA[<p>Visto en: Ubuntulife.net</p>
<p>En Agosto seguramente sea liberada la version definitiva de <strong>Gimp 2.6</strong>, Estaba prevista para este mes de Julio pero ha sufrido un pequeño retraso. Sin embargo, sus desarrolladores ya han ido comentando alguna de las principales novedades. La mas importante es el cambio de motor interno, ahora se utilizara un motor que integre la tecnologia GEGL <em>(Generic Graphics Library)</em>.</p>
<p>Hay tambien cambios en la intergaz grafica, eliminando por ejemplo opciones duplicadas que existian en los menus.</p>
<p>La herramienta caja de texto tambien sufre mejoras, ahora es posible modificar el tamaño de la caja y el texto se ajusta a las nuevas dimensiones.</p>
<p>Pero hay muchas mas.. Puedes consultarlas el siguiente enlace:</p>
<p>Enlace | <a href="http://www.gimpusers.com/tutorials/gimp-2-6-new-features.html">GimpUsers</a> | <a href="http://translate.google.com/translate?u=http%3A%2F%2Fwww.gimpusers.com%2Ftutorials%2Fgimp-2-6-new-features.html&amp;hl=es&amp;ie=UTF8&amp;sl=en&amp;tl=es">Traduccion automatica mediante Google</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/07/12/novedades-en-gimp-26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edicion de PDF en OpenOffice.org</title>
		<link>http://www.perezrio.com/2008/06/20/edicion-de-pdf-en-openofficeorg/</link>
		<comments>http://www.perezrio.com/2008/06/20/edicion-de-pdf-en-openofficeorg/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 19:14:19 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[edicion]]></category>
		<category><![CDATA[openoffice]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/06/20/edicion-de-pdf-en-openofficeorg/</guid>
		<description><![CDATA[Sun acaba de publicar la primera versión Beta de la extensión para OpenOffice.org 3 que permite la edición de ficheros PDF dentro de los programas de la suite Draw e Impress. De esta manera se preserva la maquetación de los PDF que se importan permitiendo una edición por ahora básica de los textos (aún no [...]]]></description>
			<content:encoded><![CDATA[<p>Sun acaba de publicar la primera <a href="http://extensions.services.openoffice.org/project/pdfimport" title="http://extensions.services.openoffice.org/project/pdfimport" target="_blank">versión Beta</a> de la extensión para OpenOffice.org 3 que permite la edición de ficheros PDF dentro de los programas de la suite Draw e Impress. De esta manera se preserva la maquetación de los PDF que se importan permitiendo una edición por ahora básica de los textos (aún no importa los formatos de PDF para formularios).</p>
<table align="center" border="1">
<thead >
<tr style="background-color: rgb(204, 204, 204);" >
<th  align="center">Plataforma</th>
<th  align="center">Descarga</th>
<th  align="center">Detalles</th>
<th  align="center">Fecha</th>
<th  align="center">Tamaño</th>
</tr>
</thead>
<tbody >
<tr class="odd" >
<td  align="center"><font color="#0b377e"><strong>Solaris x86</strong></font></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/download/883" ><img src="http://extensions.services.openoffice.org/files/get_it.png" alt="Download extension"  border="0" height="23" width="57"></a></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/node/883" >0.3-dev-Solarisx86</a></td>
<td  align="center">2008-Junio-11</td>
<td  align="center">2.14 MB</td>
</tr>
<tr class="even" >
<td  align="center"><font color="#0b377e"><strong>Solaris Sparc</strong></font></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/download/884" ><img src="http://extensions.services.openoffice.org/files/get_it.png" alt="Download extension"  border="0" height="23" width="57"></a></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/node/884" >0.3-dev-SolarisSparc</a></td>
<td  align="center">2008-Junio-11</td>
<td  align="center">2.34 MB</td>
</tr>
<tr class="odd" >
<td  align="center"><font color="#0b377e"><strong>MacOS X</strong></font></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/download/881" ><img src="http://extensions.services.openoffice.org/files/get_it.png" alt="Download extension"  border="0" height="23" width="57"></a></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/node/881" >0.3-dev-MacOSX</a></td>
<td  align="center">2008-Junio-11</td>
<td  align="center">1.03 MB</td>
</tr>
<tr class="even" >
<td  align="center"><font color="#0b377e"><strong>Linux</strong></font></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/download/882" ><img src="http://extensions.services.openoffice.org/files/get_it.png" alt="Download extension"  border="0" height="23" width="57"></a></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/node/882" >0.3-dev-Linuxx86</a></td>
<td  align="center">2008-Junio-11</td>
<td  align="center">986.61 KB</td>
</tr>
<tr class="odd" >
<td  align="center"><font color="#0b377e"><strong>Windows</strong></font></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/download/880" ><img src="http://extensions.services.openoffice.org/files/get_it.png" alt="Download extension"  border="0" height="23" width="57"></a></td>
<td  align="center"><a href="http://extensions.services.openoffice.org/node/880" >0.3-dev-Windows</a></td>
<td  align="center">2008-Junio-11</td>
<td  align="center">1.29 MB</td>
</tr>
</tbody>
</table>
<p><span id="more-131"></span></p>
<p>Fuente: Mancomun.org</p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/06/20/edicion-de-pdf-en-openofficeorg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

