<?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"
	>

<channel>
	<title>Jorge Iván Meza Martínez</title>
	<atom:link href="http://www.jorgeivanmeza.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jorgeivanmeza.com/blog</link>
	<description>The Fire Within Me</description>
	<pubDate>Mon, 25 Aug 2008 14:16:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Modelos bajo subdirectorios en Kohana</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/25/modelos-bajo-subdirectorios-en-kohana/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/25/modelos-bajo-subdirectorios-en-kohana/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 14:13:33 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Desarrollo de software]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Kohana]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=583</guid>
		<description><![CDATA[Después de desarrollar dos proyectos utilizando CodeIgniter decidí para los nuevos proyectos utilizar Kohana el cual hasta ahora ha sido un cambio agradable desde el punto de vista de una mejor orientación a objetos y el soporte de una comunidad mas dinámica.
Debido a que CI y por supuesto Kohana que es un fork de la [...]]]></description>
			<content:encoded><![CDATA[<p>Después de desarrollar dos proyectos utilizando <a href="http://www.codeigniter.com/" onclick="javascript:pageTracker._trackPageview('/www.codeigniter.com');" target="_blank">CodeIgniter</a> decidí para los nuevos proyectos utilizar <a href="http://www.kohanaphp.com/" onclick="javascript:pageTracker._trackPageview('/www.kohanaphp.com');" target="_blank">Kohana</a> el cual hasta ahora ha sido un cambio agradable desde el punto de vista de una mejor orientación a objetos y el soporte de una comunidad mas dinámica.</p>
<p>Debido a que CI y por supuesto Kohana que es un <em>fork</em> de la primera, separan a las entidades del MVC en directorios por separado: <span style="font-family: courier new,courier;">/controllers</span>, <span style="font-family: courier new,courier;">/models</span> y <span style="font-family: courier new,courier;">/views</span>, me he acostumbrado a crear subdirectorios dentro de ellas para separar los objetos de cada uno de los módulos que componen al sistema de información.  Ejemplo: <span style="font-family: courier new,courier;">/controllers/admin/perfil.php</span>.</p>
<p>Con CI cargaba los modelos utilizando la siguiente sintáxis:</p>
<pre class="php">    <span style="color: #0000ff;">$this</span> -&gt; <span style="color: #006600;">load</span> -&gt; <span style="color: #006600;">model</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;admin/perfil&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Ahora con Kohana esta sintáxis es obsolota y deben instanciarse los objetos, ya sea con un ámbito local:</p>
<pre class="php">    <span style="color: #0000ff;">$perfil</span> = <span style="color: #000000; font-weight: bold;">new</span> Perfil_Model<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>O con un ámbito global a todo el controlador.</p>
<pre class="php">    <span style="color: #0000ff;">$this</span> -&gt; <span style="color: #006600;">perfil</span> = <span style="color: #000000; font-weight: bold;">new</span> Perfil_Model<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>El problema es que ya no hay forma de especificar el subdirectorio del módulo (no confundir con los <em>módulos</em> de Kohana) que para hechos prácticos de la instanciación del modelo es una cadena de texto.</p>
<p>Estuve revisando la documentación y los foros de Kohana y al parecer aún no hay una solución nativa a esta situación, así que decidí implementar la mia propia que permita la carga modelos en subdirectorios desde cualquier controlador y que hasta la fecha me ha funcionado bien.</p>
<p>Para la implementación de la autenticación que me dispongo a realizar próximamente he definido mi propio controlador base definiendo la clase <span style="font-family: courier new,courier;">Controller</span> en <span style="font-family: courier new,courier;">application/libraries/MY_Controller.php</span>.  Con esto defino los comportamientos generales que tendrán todos los controladores del proyecto.</p>
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <a href="http://www.php.net/defined" onclick="javascript:pageTracker._trackPageview('/www.php.net');"><span style="color: #000066;">defined</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SYSPATH'</span><span style="color: #66cc66;">&#41;</span> or <a href="http://www.php.net/die" onclick="javascript:pageTracker._trackPageview('/www.php.net');"><span style="color: #000066;">die</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'No direct script access.'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Controller <span style="color: #000000; font-weight: bold;">extends</span> Controller_Core
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        parent::__construct<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
<p>A este controlador base le agrego los métodos necesarios para localizar el archivo <span style="font-family: courier new,courier;">.php</span> que contiene el modelo que se intenta instanciar y realizo las modificaciones necesarias para incluír esta búsqueda durante la etapa de autocarga de clases (<span style="font-family: courier new,courier;">autoload</span>).  Los nombres del módulo (del SI), controlador, acción y parámetros son obtenidos en tiempo de ejecución gracias a la facilidad de la clase <span style="font-family: courier new,courier;">Router</span>.</p>
<p>El primer método a implementarse es<span style="font-family: courier new,courier;"> buscarArchivo($directorio, $archivo)</span> el cual se encarga de realizar la búsqueda física y recursiva de <span style="font-family: courier new,courier;">$archivo</span> dentro del <span style="font-family: courier new,courier;">$directorio</span> especificado.</p>
<p>Se implementa al método <span style="font-family: courier new,courier;">auto_load($clase)</span> el cual determina si la clase a cargarse es un modelo debido a la terminación <span style="font-family: courier new,courier;">_Model</span> de su nombre de clase, por ahora ignora cualquier otro tipo.  En caso de ser un modelo realiza la búsqueda utilizando al método definido anteriormente, el cual en caso de encontrarlo lo incluye para hacerlo disponible al ambiente de ejecución.</p>
<p>Como paso final, en el constructor del <span style="font-family: courier new,courier;">Controller</span> se le indica que tome al método <span style="font-family: courier new,courier;">auto_load</span> como una de las funciones ejecutadas durante la autocarga de clases.</p>
<pre class="php">    spl_autoload_register<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/array" onclick="javascript:pageTracker._trackPageview('/www.php.net');"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Controller'</span>, <span style="color: #ff0000;">'auto_load'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Gracias a estas modificaciones es posible realizar la creación del objeto new <span style="font-family: courier new,courier;">Perfil_Model</span> y el controlador se encargará de realizar la búsqueda y encontrarlo dentro del subdirectorio <span style="font-family: courier new,courier;">/models/admin</span>.  Sobra hacer notar que para esta solución, la colisión de nombres es un problema ya que se resuelve según sea la clase que se encuentra físicamente primero en el directorio de archivos.</p>
<p>El código fuente del ejemplo descrito puede descargarse del siguiente enlace: <a href='http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/08/my_controllerphp.txt'>MY_Controller.php</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/25/modelos-bajo-subdirectorios-en-kohana/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Actualización de Pidgin</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/20/actualizacion-de-pidgin/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/20/actualizacion-de-pidgin/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 17:11:40 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Linux/Unix/FreeBSD]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=576</guid>
		<description><![CDATA[El Pidgin de mi Ubuntu se encontraba ya desactualizado (2.4.1) y al parecer Synaptic no se enteraba que ya había nuevas versiones (2.5.0 actualmente).
Estos fueron los pasos que se siguieron para actualizarlo gracias a los paquetes de GetDeb.
$ wget http://www.getdeb.net/download/3099/1
$ wget http://www.getdeb.net/download/3099/2
$ wget http://www.getdeb.net/download/3099/0
$ sudo apt-get install libsilc
$ sudo dpkg -i pidgin-data_2.5.0-1~getdeb1_all.deb
$ sudo dpkg -i [...]]]></description>
			<content:encoded><![CDATA[<p>El <a href="http://pidgin.im/" onclick="javascript:pageTracker._trackPageview('/pidgin.im');" target="_blank">Pidgin</a> de mi <a href="https://www.ubuntu.com/" onclick="javascript:pageTracker._trackPageview('/www.ubuntu.com');" target="_blank">Ubuntu</a> se encontraba ya desactualizado (2.4.1) y al parecer Synaptic no se enteraba que ya había nuevas versiones (2.5.0 actualmente).</p>
<p>Estos fueron los pasos que se siguieron para <a href="http://www.getdeb.net/release/3099" onclick="javascript:pageTracker._trackPageview('/www.getdeb.net');" target="_blank">actualizarlo</a> gracias a los paquetes de <a href="http://www.getdeb.net/" onclick="javascript:pageTracker._trackPageview('/www.getdeb.net');" target="_blank">GetDeb</a>.</p>
<pre>$ wget <a href="http://www.getdeb.net/download/3099/1" onclick="javascript:pageTracker._trackPageview('/www.getdeb.net');">http://www.getdeb.net/download/3099/1</a>
$ wget <a href="http://www.getdeb.net/download/3099/2" onclick="javascript:pageTracker._trackPageview('/www.getdeb.net');">http://www.getdeb.net/download/3099/2</a>
$ wget <a href="http://www.getdeb.net/download/3099/0" onclick="javascript:pageTracker._trackPageview('/www.getdeb.net');">http://www.getdeb.net/download/3099/0</a>
$ sudo apt-get install libsilc
$ sudo dpkg -i pidgin-data_2.5.0-1~getdeb1_all.deb
$ sudo dpkg -i libpurple0_2.5.0-1~getdeb1_i386.deb
$ sudo dpkg -i pidgin_2.5.0-1~getdeb1_i386.deb</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/20/actualizacion-de-pidgin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Serialización con XML</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/17/serializacion-con-xml/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/17/serializacion-con-xml/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 03:53:53 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Desarrollo de software]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=568</guid>
		<description><![CDATA[Esta semana encontré algo que me pareció interesante.  Es la posibilidad de serializar objetos en Java utilizando un codificador XML.  Lo mas interesante se que para realizar esta codificación básica no es necesario de ningún OXM (Object XML Mapper), por el contrario, todo lo necesario viene incluído ya en el J2SE.
Para el ejemplo he creado [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana encontré algo que me pareció interesante.  Es la posibilidad de serializar objetos en Java utilizando un codificador XML.  Lo mas interesante se que para realizar esta codificación básica no es necesario de ningún OXM (<em>Object XML Mapper</em>), por el contrario, todo lo necesario viene incluído ya en el J2SE.</p>
<p>Para el ejemplo he creado una clase <span style="font-family: courier new,courier;">Worker </span> (<a href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');" target="_blank">POJO</a>) que será serializada y sólo incluye atributos y sus respectivos métodos <em>set</em>/<em>get</em>.  Por presentación también sobreescribí al método <span style="font-family: courier new,courier;">toString</span> para presentar el contenido del objeto.</p>
<pre class="java"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Worker
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">String</span></a> username;
    <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">String</span></a> password;
    <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">String</span></a> name;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #993333;">int</span> age;
    <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3ADate+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">Date</span></a> birthDate;
&nbsp;
    <span style="color: #808080; font-style: italic;">// ...</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Creo una instancia de esta clase y asigno valores a sus atributos.</p>
<pre class="java"><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AGregorianCalendar+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">GregorianCalendar</span></a> birthDate = <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AGregorianCalendar+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">GregorianCalendar</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2005</span>, <span style="color: #cc66cc;">02</span>, <span style="color: #cc66cc;">14</span><span style="color: #66cc66;">&#41;</span>;   
&nbsp;
Worker workerman = <span style="color: #000000; font-weight: bold;">new</span> Worker<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
workerman.<span style="color: #006600;">setAge</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">31</span><span style="color: #66cc66;">&#41;</span>;
workerman.<span style="color: #006600;">setName</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Pepito Pimentón&quot;</span><span style="color: #66cc66;">&#41;</span>;
workerman.<span style="color: #006600;">setUsername</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;pepitouser&quot;</span><span style="color: #66cc66;">&#41;</span>;
workerman.<span style="color: #006600;">setPassword</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;pepitopass&quot;</span><span style="color: #66cc66;">&#41;</span>;
workerman.<span style="color: #006600;">setBirthDate</span><span style="color: #66cc66;">&#40;</span>birthDate.<span style="color: #006600;">getTime</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>A continuación se procede a codificar el objeto y a generar el archivo XML con su contenido.</p>
<pre class="java"><span style="color: #808080; font-style: italic;">// Creates the stream to the file that will storage the serialized object</span>
<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AFileOutputStream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">FileOutputStream</span></a> outputFile = <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AFileOutputStream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">FileOutputStream</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;workerman.xml&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Relates the XML encoder with the output file stream</span>
XMLEncoder xe = <span style="color: #000000; font-weight: bold;">new</span> XMLEncoder<span style="color: #66cc66;">&#40;</span>outputFile<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Serializes the selected object using an XML encoding</span>
xe.<span style="color: #006600;">writeObject</span><span style="color: #66cc66;">&#40;</span>workerman<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Closes the XML encoder</span>
xe.<span style="color: #006600;">close</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Terminado este proceso, deberá existir el archivo <span style="font-family: courier new,courier;">workerman.xml </span>con la representación XML del objeto workerman creado anteriormente.  Esta representación de la información podría ser compartida inclusive con otros sistemas/lenguajes/plataformas diferentes a la actual, cosa que podría tener algunos inconvenientes con la serialización convencional de <span style="font-family: courier new,courier;">java.io</span>.  El contenido XML (texto plano) probablemente ocupe mas espacio y esto lo haga menos eficiente que una representación binaria.</p>
<p>Por supuesto también es posible realizar el proceso contrario: basados en el archivo <span style="font-family: courier new,courier;">workerman.xml</span> con el contenido codificado, obtener la información y crear nuevamente la representación del objeto <span style="font-family: courier new,courier;">Worker</span>.</p>
<pre class="java"><span style="color: #808080; font-style: italic;">// Creates the stream from the file that storages the already serialized object</span>
inputFile = <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AFileInputStream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky" onclick="javascript:pageTracker._trackPageview('/www.google.com');"><span style="color: #aaaadd; font-weight: bold;">FileInputStream</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;workerman.xml&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Relates the XML decoder with the input file stream</span>
XMLDecoder xd = <span style="color: #000000; font-weight: bold;">new</span> XMLDecoder<span style="color: #66cc66;">&#40;</span>inputFile<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Reads the object from the stream and deserializes it using an XML decoding</span>
clone = <span style="color: #66cc66;">&#40;</span>Worker<span style="color: #66cc66;">&#41;</span>xd.<span style="color: #006600;">readObject</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Closes the XML decoder</span>
xd.<span style="color: #006600;">close</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>El objeto <span style="font-family: courier new,courier;">clone </span>deberá contener la misma información que su versión original: <span style="font-family: courier new,courier;">workerman</span>.</p>
<p>El contenido del archivo workerman.xml es bastante explícito para su procesamiento en otras plataformas.</p>
<pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="font-weight: bold; color: black;">?&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;java</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.6.0_10-beta&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;java.beans.XMLDecoder&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
 <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;object</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;Worker&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;void</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;age&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;int<span style="font-weight: bold; color: black;">&gt;</span></span></span>31<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/int<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/void<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;void</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;birthDate&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;object</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;java.util.Date&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;long<span style="font-weight: bold; color: black;">&gt;</span></span></span>1110776400000<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/long<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/object<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/void<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;void</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;name&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>Pepito Pimentón<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/void<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;void</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;password&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>pepitopass<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/void<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;void</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;username&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;string<span style="font-weight: bold; color: black;">&gt;</span></span></span>pepitouser<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/string<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/void<span style="font-weight: bold; color: black;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/object<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/java<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
<p>Enlace:   <a href="http://demo.jorgeivanmeza.com/Java/XMLSerializationDemo/"  target="_blank">XML Serialization Demo</a> (fuentes).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/17/serializacion-con-xml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nothing As It Seems</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/16/nothing-as-it-seems/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/16/nothing-as-it-seems/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 01:33:37 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Música]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=559</guid>
		<description><![CDATA[
Dont feel like home. hes a little out.
And all these words elope. its nothing like your poem.
Putting in. inputting in. dont feel like methadone.
A scratching voice all alone its nothing like your baritone.
Its nothing as it seems. the little that he needs. its home.
The little that he sees. is nothing he concedes. its home.
One uninvited [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/30BlueyXoyg&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/30BlueyXoyg&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" allowfullscreen="true"></embed></object></p>
<p>Dont feel like home. hes a little out.<br />
And all these words elope. its nothing like your poem.<br />
Putting in. inputting in. dont feel like methadone.<br />
A scratching voice all alone its nothing like your baritone.</p>
<p>Its nothing as it seems. the little that he needs. its home.<br />
The little that he sees. is nothing he concedes. its home.</p>
<p>One uninvited chromosome. a blanket like the ozone.</p>
<p>Its nothing as it seems. all that he needs. its home.<br />
The little that he frees is nothing he believes.</p>
<p>Saving up a sunny day. something maybe two tone.<br />
Anything of his own. a chip off the corner stone.<br />
Whos kidding? rainy day. a one way ticket headstone.<br />
Occupations overthrown. a whisper through a megaphone.</p>
<p>Its nothing as it seems. the little that he needs. its home.<br />
The little that he sees is nothing he concedes. its home.<br />
And all that he frees. a little bittersweet. its home.<br />
Its nothing as it seems. the little that you see its home.</p>
<p>Perl Jam.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/16/nothing-as-it-seems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>21 leyes de la programación</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/14/21-leyes-de-la-programacion/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/14/21-leyes-de-la-programacion/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 21:03:23 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Desarrollo de software]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=552</guid>
		<description><![CDATA[1. Any given program, once deployed, is already obsolete.
2. It is easier to change the specification to fit the program than vice versa.
 
3. If a program is useful, it will have to be changed.
 
4. If a program is useless, it will have to be documented.
5. Only ten percent of the code in any [...]]]></description>
			<content:encoded><![CDATA[<p>1. Any given program, once deployed, is already obsolete.</p>
<p>2. It is easier to change the specification to fit the program than vice versa.<br />
<strong> </strong></p>
<p><strong>3. If a program is useful, it will have to be changed.</strong><br />
<strong> </strong></p>
<p><strong>4. If a program is useless, it will have to be documented.</strong></p>
<p>5. Only ten percent of the code in any given program will ever execute.<br />
<strong></strong></p>
<p><strong>6. Software expands to consume all available resources.</strong></p>
<p>7. Any non-trivial program contains at least one error.</p>
<p>8. The probability of a flawless demo is inversely proportional to the number of people watching, raised to the power of the amount of money involved.</p>
<p>9. Not until a program has been in production for at least six months will its most harmful error be discovered.</p>
<p>10. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.</p>
<p>11. The effort required to correct an error increases exponentially with time.</p>
<p>12. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.</p>
<p>13. Any code of your own that you haven’t looked at in months might as well have been written by someone else.<br />
<strong></strong></p>
<p><strong>14. Inside every small program is a large program struggling to get out.</strong></p>
<p>15. The sooner you start coding a program, the longer it will take.<br />
<strong> </strong></p>
<p><strong>16. A carelessly planned project takes three times longer to complete than expected; a carefully planned project takes only twice as long.</strong></p>
<p>17. Adding programmers to a late project makes it later.<br />
<strong></strong></p>
<p><strong>18. A program is never less than 90% complete, and never more than 95% complete.</strong><br />
<strong></strong></p>
<p><strong>19. If you automate a mess, you get an automated mess.</strong></p>
<p>20. Build a program that even a fool can use, and only a fool will want to use it.<br />
<strong></strong></p>
<p><strong>21. Users truly don’t know what they want in a program until they use it.</strong></p>
<p>Tomado de <a href="http://www.flex888.com/671/21-laws-of-programming-works-for-flex-too.html" onclick="javascript:pageTracker._trackPageview('/www.flex888.com');" target="_blank">http://www.flex888.com/671/21-laws-of-programming-works-for-flex-too.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/14/21-leyes-de-la-programacion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Identificar el futuro</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/10/identificar-el-futuro/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/10/identificar-el-futuro/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 00:52:20 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Drucker]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=548</guid>
		<description><![CDATA[
Lo más importante es saber identificar que "el futuro ya ocurrió".
La medida de acierto para la predicción no sólo puede ser la cantidad de hechos que ocurrieron frente a los predecidos, hay que tener en cuenta también la cantidad de hechos que sucedieron y nunca fueron predichos.
Lo importante y distintivo son siempre los cambios en [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Lo más importante es saber identificar que "el futuro ya ocurrió".</li>
<li>La medida de acierto para la predicción no sólo puede ser la cantidad de hechos que ocurrieron frente a los predecidos, hay que tener en cuenta también la cantidad de hechos que sucedieron y nunca fueron predichos.</li>
<li>Lo importante y distintivo son siempre los cambios en los valores, la percepción y las metas, esto es, cosas que uno puede adivinar, pero no pronosticar.</li>
<li>El trabajo mas importante de un ejecutivo es identificar los cambios que ya han sucedido ("el futuro que ya ocurrió").</li>
<li>El desafio mas importante es utilizar esta información identificada y utilizarla en forma de oportunidades.</li>
<li>Identifique tendencias, analice los cambios evidentes e intente predecir los cambios futuros junto con su impacto.</li>
</ul>
<p>Peter F. Drucker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/10/identificar-el-futuro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Software instalado en Julio</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/10/software-instalado-en-julio/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/10/software-instalado-en-julio/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 21:17:04 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=545</guid>
		<description><![CDATA[


Netbeans
IDE para el desarrollo de aplicaciones en Java.


WinPatrol
Protección contra cambio del sistema producidos por spyware.


 Spybot Search and Destroy
Protección contra cambio del sistema producidos por spyware.


Microsoft Live Messenger
Sistema de mensajería de Microsoft.


Firefox
EL navegador web.


Fireshot
Plugin de Firefox para tomar screenshots.


Twessenger
Plugin de Microsoft Live para sincronizarse con Twitter.


GoogleTalk
Sistema de mensajería de Google.


IZarc
Compresor/descompresor de archivos.


Avira
Antivirus (free for personal [...]]]></description>
			<content:encoded><![CDATA[<table border="0">
<tbody>
<tr>
<td><a href="http://www.netbeans.org/" onclick="javascript:pageTracker._trackPageview('/www.netbeans.org');" target="_blank">Netbeans</a></td>
<td>IDE para el desarrollo de aplicaciones en Java.</td>
</tr>
<tr>
<td><a href="http://www.winpatrol.com/download.html" onclick="javascript:pageTracker._trackPageview('/www.winpatrol.com');" target="_blank">WinPatrol</a></td>
<td>Protección contra cambio del sistema producidos por spyware.</td>
</tr>
<tr>
<td><a href="http://www.safer-networking.org/" onclick="javascript:pageTracker._trackPageview('/www.safer-networking.org');" target="_blank"> Spybot Search and Destroy</a></td>
<td>Protección contra cambio del sistema producidos por spyware.</td>
</tr>
<tr>
<td><a href="http://get.live.com/messenger/overview" onclick="javascript:pageTracker._trackPageview('/get.live.com');" target="_blank">Microsoft Live Messenger</a></td>
<td>Sistema de mensajería de Microsoft.</td>
</tr>
<tr>
<td><a href="http://www.firefox.com/" onclick="javascript:pageTracker._trackPageview('/www.firefox.com');" target="_blank">Firefox</a></td>
<td>EL navegador web.</td>
</tr>
<tr>
<td><a href="https://addons.mozilla.org/en-US/firefox/addon/5648" onclick="javascript:pageTracker._trackPageview('/addons.mozilla.org');" target="_blank">Fireshot</a></td>
<td><em>Plugin </em>de Firefox para tomar <em>screenshots</em>.</td>
</tr>
<tr>
<td><a href="http://kunal.kundaje.net/twessenger/" onclick="javascript:pageTracker._trackPageview('/kunal.kundaje.net');" target="_blank">Twessenger</a></td>
<td><em>Plugin</em> de Microsoft Live para sincronizarse con Twitter.</td>
</tr>
<tr>
<td><a href="http://www.google.com/talk/" onclick="javascript:pageTracker._trackPageview('/www.google.com');" target="_blank">GoogleTalk</a></td>
<td>Sistema de mensajería de Google.</td>
</tr>
<tr>
<td><a href="http://www.izarc.org/download.html" onclick="javascript:pageTracker._trackPageview('/www.izarc.org');" target="_blank">IZarc</a></td>
<td>Compresor/descompresor de archivos.</td>
</tr>
<tr>
<td><a href="http://www.free-av.com/" onclick="javascript:pageTracker._trackPageview('/www.free-av.com');" target="_blank">Avira</a></td>
<td>Antivirus (<em>free for personal use</em>).</td>
</tr>
<tr>
<td><a href="http://www.adobe.com/products/acrobat/readstep2.html" onclick="javascript:pageTracker._trackPageview('/www.adobe.com');" target="_blank">AcrobatReader</a></td>
<td>Visor de documentos PDF.</td>
</tr>
<tr>
<td><a href="http://www.lucersoft.com/freeware.php" onclick="javascript:pageTracker._trackPageview('/www.lucersoft.com');" target="_blank">LCISOCreator</a></td>
<td>Creador de imágenes ISO.</td>
</tr>
<tr>
<td><a href="http://www.divx.com/divx/windows/download/" onclick="javascript:pageTracker._trackPageview('/www.divx.com');" target="_blank">DIVX Codecs</a></td>
<td>Codecs para DIVX.</td>
</tr>
<tr>
<td><a href="http://www.donationcoder.com/Software/Mouser/screenshotcaptor/index.html" onclick="javascript:pageTracker._trackPageview('/www.donationcoder.com');" target="_blank">Screenshot captor</a></td>
<td>Capturador de <em>screenshots</em>.</td>
</tr>
<tr>
<td><a href="http://www.nokia.com.co/A4601401" onclick="javascript:pageTracker._trackPageview('/www.nokia.com.co');" target="_blank">Nokia PC Suite</a></td>
<td>Suite de comunicaciones Nokia.</td>
</tr>
<tr>
<td><a href="http://colorcop.net/download" onclick="javascript:pageTracker._trackPageview('/colorcop.net');" target="_blank">ColorCop</a></td>
<td>Editor de colores.</td>
</tr>
<tr>
<td><a href="http://filezilla.sf.net/" onclick="javascript:pageTracker._trackPageview('/filezilla.sf.net');" target="_blank">FileZilla</a></td>
<td>Cliente S/FTP.</td>
</tr>
<tr>
<td><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" onclick="javascript:pageTracker._trackPageview('/www.chiark.greenend.org.uk');" target="_blank">Putty</a></td>
<td>Cliente SSH.</td>
</tr>
<tr>
<td><a href="http://www.greeneclipse.com/index.html" onclick="javascript:pageTracker._trackPageview('/www.greeneclipse.com');" target="_blank">StickyPad</a></td>
<td>Notas con recordatorios para el escritorio.</td>
</tr>
<tr>
<td><a href="http://www.getpaint.net/download.html" onclick="javascript:pageTracker._trackPageview('/www.getpaint.net');" target="_blank">Paint.net</a></td>
<td>Editor de gráficos.</td>
</tr>
<tr>
<td><a href="http://www.inkscape.org/" onclick="javascript:pageTracker._trackPageview('/www.inkscape.org');" target="_blank">Inkscape</a></td>
<td>Editor de gráficos vectoriales.</td>
</tr>
<tr>
<td><a href="http://www.eclipse.org/" onclick="javascript:pageTracker._trackPageview('/www.eclipse.org');" target="_blank">Eclipse</a></td>
<td>IDE para el desarrollo de aplicaciones en Java.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/10/software-instalado-en-julio/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Nevermore&#8221;</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/10/nevermore/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/10/nevermore/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 05:26:22 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[AllanPoe]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=540</guid>
		<description><![CDATA[The Raven




 "Once upon a midnight dreary, while I pondered weak and weary,
Over many a quaint and curious volume of forgotten lore,
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping at my chamber door.
`'Tis some visitor,' I muttered, `tapping at my chamber door -
Only this, and nothing more.'
Ah, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>The Raven</strong></p>
<p style="text-align: center;">
<p style="text-align: center;">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FID1CiB4bcU&hl=en&fs=1&rel=0&color1=0x2b405b&color2=0x6b8ab6"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/FID1CiB4bcU&hl=en&fs=1&rel=0&color1=0x2b405b&color2=0x6b8ab6" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</p>
<p><span style="font-family: arial,helvetica,sans-serif;"> "Once upon a midnight dreary, while I pondered weak and weary,<br />
Over many a quaint and curious volume of forgotten lore,<br />
While I nodded, nearly napping, suddenly there came a tapping,<br />
As of some one gently rapping, rapping at my chamber door.<br />
`'Tis some visitor,' I muttered, `tapping at my chamber door -<br />
Only this, and nothing more.'</span></p>
<p>Ah, distinctly I remember it was in the bleak December,<br />
And each separate dying ember wrought its ghost upon the floor.<br />
Eagerly I wished the morrow; - vainly I had sought to borrow<br />
From my books surcease of sorrow - sorrow for the lost Lenore -<br />
For the rare and radiant maiden whom the angels named Lenore -<br />
Nameless here for evermore.</p>
<p>And the silken sad uncertain rustling of each purple curtain<br />
Thrilled me - filled me with fantastic terrors never felt before;<br />
So that now, to still the beating of my heart, I stood repeating<br />
`'Tis some visitor entreating entrance at my chamber door -<br />
Some late visitor entreating entrance at my chamber door; -<br />
This it is, and nothing more,'</p>
<p>Presently my soul grew stronger; hesitating then no longer,<br />
`Sir,' said I, `or Madam, truly your forgiveness I implore;<br />
But the fact is I was napping, and so gently you came rapping,<br />
And so faintly you came tapping, tapping at my chamber door,<br />
That I scarce was sure I heard you' - here I opened wide the door; -<br />
Darkness there, and nothing more.</p>
<p>Deep into that darkness peering, long I stood there wondering, fearing,<br />
Doubting, dreaming dreams no mortal ever dared to dream before<br />
But the silence was unbroken, and the darkness gave no token,<br />
And the only word there spoken was the whispered word, `Lenore!'<br />
This I whispered, and an echo murmured back the word, `Lenore!'<br />
Merely this and nothing more.</p>
<p>Back into the chamber turning, all my soul within me burning,<br />
Soon again I heard a tapping somewhat louder than before.<br />
`Surely,' said I, `surely that is something at my window lattice;<br />
Let me see then, what thereat is, and this mystery explore -<br />
Let my heart be still a moment and this mystery explore; -<br />
'Tis the wind and nothing more!'</p>
<p>Open here I flung the shutter, when, with many a flirt and flutter,<br />
In there stepped a stately raven of the saintly days of yore.<br />
Not the least obeisance made he; not a minute stopped or stayed he;<br />
But, with mien of lord or lady, perched above my chamber door -<br />
Perched upon a bust of Pallas just above my chamber door -<br />
Perched, and sat, and nothing more.</p>
<p>Then this ebony bird beguiling my sad fancy into smiling,<br />
By the grave and stern decorum of the countenance it wore,<br />
`Though thy crest be shorn and shaven, thou,' I said, `art sure no craven.<br />
Ghastly grim and ancient raven wandering from the nightly shore -<br />
Tell me what thy lordly name is on the Night's Plutonian shore!'<br />
Quoth the raven, `Nevermore.'</p>
<p>Much I marvelled this ungainly fowl to hear discourse so plainly,<br />
Though its answer little meaning - little relevancy bore;<br />
For we cannot help agreeing that no living human being<br />
Ever yet was blessed with seeing bird above his chamber door -<br />
Bird or beast above the sculptured bust above his chamber door,<br />
With such name as `Nevermore.'</p>
<p>But the raven, sitting lonely on the placid bust, spoke only,<br />
That one word, as if his soul in that one word he did outpour.<br />
Nothing further then he uttered - not a feather then he fluttered -<br />
Till I scarcely more than muttered `Other friends have flown before -<br />
On the morrow he will leave me, as my hopes have flown before.'<br />
Then the bird said, `Nevermore.'</p>
<p>Startled at the stillness broken by reply so aptly spoken,<br />
`Doubtless,' said I, `what it utters is its only stock and store,<br />
Caught from some unhappy master whom unmerciful disaster<br />
Followed fast and followed faster till his songs one burden bore -<br />
Till the dirges of his hope that melancholy burden bore<br />
Of "Never-nevermore."'</p>
<p>But the raven still beguiling all my sad soul into smiling,<br />
Straight I wheeled a cushioned seat in front of bird and bust and door;<br />
Then, upon the velvet sinking, I betook myself to linking<br />
Fancy unto fancy, thinking what this ominous bird of yore -<br />
What this grim, ungainly, ghastly, gaunt, and ominous bird of yore<br />
Meant in croaking `Nevermore.'</p>
<p>This I sat engaged in guessing, but no syllable expressing<br />
To the fowl whose fiery eyes now burned into my bosom's core;<br />
This and more I sat divining, with my head at ease reclining<br />
On the cushion's velvet lining that the lamp-light gloated o'er,<br />
But whose velvet violet lining with the lamp-light gloating o'er,<br />
<em>She</em> shall press, ah, nevermore!</p>
<p>Then, methought, the air grew denser, perfumed from an unseen censer<br />
Swung by Seraphim whose foot-falls tinkled on the tufted floor.<br />
`Wretch,' I cried, `thy God hath lent thee - by these angels he has sent thee<br />
Respite - respite and nepenthe from thy memories of Lenore!<br />
Quaff, oh quaff this kind nepenthe, and forget this lost Lenore!'<br />
Quoth the raven, `Nevermore.'</p>
<p>`Prophet!' said I, `thing of evil! - prophet still, if bird or devil! -<br />
Whether tempter sent, or whether tempest tossed thee here ashore,<br />
Desolate yet all undaunted, on this desert land enchanted -<br />
On this home by horror haunted - tell me truly, I implore -<br />
Is there - <em>is</em> there balm in Gilead? - tell me - tell me, I implore!'<br />
Quoth the raven, `Nevermore.'</p>
<p>`Prophet!' said I, `thing of evil! - prophet still, if bird or devil!<br />
By that Heaven that bends above us - by that God we both adore -<br />
Tell this soul with sorrow laden if, within the distant Aidenn,<br />
It shall clasp a sainted maiden whom the angels named Lenore -<br />
Clasp a rare and radiant maiden, whom the angels named Lenore?'<br />
Quoth the raven, `Nevermore.'</p>
<p>`Be that word our sign of parting, bird or fiend!' I shrieked upstarting -<br />
`Get thee back into the tempest and the Night's Plutonian shore!<br />
Leave no black plume as a token of that lie thy soul hath spoken!<br />
Leave my loneliness unbroken! - quit the bust above my door!<br />
Take thy beak from out my heart, and take thy form from off my door!'<br />
Quoth the raven, `Nevermore.'</p>
<p>And the raven, never flitting, still is sitting, still is sitting<br />
On the pallid bust of Pallas just above my chamber door;<br />
And his eyes have all the seeming of a demon's that is dreaming,<br />
And the lamp-light o'er him streaming throws his shadow on the floor;<br />
And my soul from out that shadow that lies floating on the floor<br />
Shall be lifted - nevermore!"</p>
<p style="text-align: right;"><a href="http://en.wikipedia.org/wiki/Edgar_allan_poe" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');" target="_blank">Edgar Allan Poe</a> (1845).</p>
<ul>
<li>Versión del texto en <a href="http://www.literatura.us/idiomas/eap_cuervo.html" onclick="javascript:pageTracker._trackPageview('/www.literatura.us');" target="_blank">español</a>.</li>
<li>Su <a href="http://en.wikipedia.org/wiki/The_Raven" onclick="javascript:pageTracker._trackPageview('/en.wikipedia.org');" target="_blank">análisis</a> en Wikipedia (en <a href="http://es.wikipedia.org/wiki/El_cuervo_(poema)" onclick="javascript:pageTracker._trackPageview('/es.wikipedia.org');" target="_blank">español</a>).</li>
<li>Una representación muy buena del texto (<a href="http://www.youtube.com/watch?v=gJLVvojW2FY" onclick="javascript:pageTracker._trackPageview('/www.youtube.com');" target="_blank">parte 1</a> y <a href="http://www.youtube.com/watch?v=DxP8fDd3p-U" onclick="javascript:pageTracker._trackPageview('/www.youtube.com');" target="_blank">parte 2</a>).</li>
<li>Animación de Edgar Allan Poe leyendo a El Cuervo (<a href="http://www.youtube.com/watch?v=4p99rf63jCE" onclick="javascript:pageTracker._trackPageview('/www.youtube.com');" target="_blank">video</a>).</li>
<li>El cuervo según Los Simpsons (<a href="http://www.youtube.com/watch?v=2Rwu1eMVFEY" onclick="javascript:pageTracker._trackPageview('/www.youtube.com');" target="_blank">video</a>).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/10/nevermore/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Actualización de portales web basados en Drupal a la versión 5.9</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/08/actualizacion-de-portales-web-basados-en-drupal-a-la-version-59/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/08/actualizacion-de-portales-web-basados-en-drupal-a-la-version-59/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 15:24:36 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[CMS]]></category>

		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=536</guid>
		<description><![CDATA[En los primeros días del mes de julio del presente año se liberaron las versiones 5.9 y 6.3 de Drupal.  Su actualización es altamente recomendada.
A pesar de que no he variado los pasos requeridos para realizar la actualización desde artículos anteriores, agregué un paso adicional para remover completamente los módulos de core antígüos y evitar [...]]]></description>
			<content:encoded><![CDATA[<p>En los primeros días del mes de julio del presente año se liberaron las versiones 5.9 y 6.3 de Drupal.  Su <a href="http://drupal.org/drupal-6.3" onclick="javascript:pageTracker._trackPageview('/drupal.org');" target="_blank">actualización es altamente recomendada</a>.</p>
<p>A pesar de que no he variado los pasos requeridos para realizar la actualización desde <a href="http://www.jorgeivanmeza.com/blog/2008/01/12/actualizacion-de-portales-web-basados-en-drupal/"  target="_blank">artículos anteriores</a>, agregué un paso adicional para remover completamente los módulos de <em>core</em> antígüos y evitar con esto cualquier tipo de incompatibilidad por mezcla de versiones.</p>
<p>Con respecto a los siguientes pasos de actualización se debe tener en cuenta que el directorio donde se ubican los archivos del portal basado en Drupal se encuentran en <span style="font-family: courier new,courier;">site</span> localizado en el directorio actual.  El paquete con la nueva distribución de Drupal ha sido descargado y copiado también en la ubicación actual.</p>
<p>Al final del proceso de actualización el directorio <span style="font-family: courier new,courier;">site</span> contendrá la versión actualizada del sitio y el directorio <span style="font-family: courier new,courier;">site.old</span> la copia de seguridad de la versión anterior.</p>
<p>Realizar una copia de seguridad de la base de datos.</p>
<p>Renombrar el sitio actual para conservarlo como una copia de seguridad previa a la actualización.</p>
<p><span style="font-family: courier new,courier;">$ mv site site.old</span></p>
<p>Descomprimir la última versión de la distribución de Drupal.</p>
<p><span style="font-family: courier new,courier;">$ tar zxvf drupal-5.9.tar.gz</span></p>
<p>Renombrar el directorio recién extraído para ser el nuevo portal web.</p>
<p><span style="font-family: courier new,courier;">$ mv drupal-5.9/ site</span></p>
<p>Mueve los módulos de la nueva versión a una ubicación temporal para evitar cualquier tipo de sobreescritura con los módulos antígüos.</p>
<p><span style="font-family: courier new,courier;">$ mv site/modules/ site/modules.new</span></p>
<p>Restaura los archivos del sitio y de los usuarios.</p>
<p><span style="font-family: courier new,courier;">$ cp -rf site.old/files site</span></p>
<p>Restaura la información de configuración del sitio.</p>
<p><span style="font-family: courier new,courier;">$ cp -rf site.old/sites site</span></p>
<p>Restaura los archivos del tema del sitio.  Reemplazar <span style="font-family: courier new,courier;">MITEMA</span> por el nombre del tema (directorio) a restaurar.</p>
<p><span style="font-family: courier new,courier;">$ cp -rf site.old/themes/MITEMA site/themes/</span></p>
<p>Restaura la totalidad de los módulos instalados en la versión anterior.</p>
<p><span style="font-family: courier new,courier;">$ cp -rf site.old/modules site</span></p>
<p>De los módulos recién restaurados remueve los del grupo <em>core</em> para utilizar únicamente las últimas versiones.</p>
<p><span style="font-family: courier new,courier;">$ rm -rf site/modules/aggregator site/modules/blog site/modules/book site/modules/comment site/modules/drupal site/modules/forum site/modules/legacy site/modules/menu site/modules/path site/modules/poll</span></p>
<p><span style="font-family: courier new,courier;">$ rm -rf site/modules/search site/modules/system site/modules/throttle site/modules/upload site/modules/watchdog site/modules/block site/modules/blogapi site/modules/color site/modules/contact site/modules/filter</span></p>
<p><span style="font-family: courier new,courier;">$ rm -rf site/modules/help site/modules/locale site/modules/node site/modules/ping site/modules/profile site/modules/statistics site/modules/taxonomy site/modules/tracker site/modules/user</span></p>
<p>Restaura los módulos de <em>core</em> de la última versión.</p>
<p><span style="font-family: courier new,courier;">$ cp -rf site/modules.new/* site/modules</span></p>
<p>Remueve la copia de seguridad de los módulos de <em>core</em> de la última versión.</p>
<p><span style="font-family: courier new,courier;">$ rm -rf site/modules.new</span></p>
<p>Ejecute el <em>script</em> de actualización de la base de datos si es necesario.</p>
<p>(web) <span style="font-family: courier new,courier;">$URL/apps/site/update.php</span></p>
<p>Utilizando el módulo <span style="font-family: courier new,courier;">update-status</span> verifique si existen módulos con versiones nuevas, suceptibles de ser actualizados.</p>
<p>(web) <span style="font-family: courier new,courier;">$URL?q=admin/logs/updates</span></p>
<p>Actualice los módulos reemplazando sus directorios con las nuevas versiones bajo el directorio <span style="font-family: courier new,courier;">/site/modules</span> y ejecute nuevamente el script de actualización de la base de datos.</p>
<p>(web) <span style="font-family: courier new,courier;">$URL/apps/site/update.php</span></p>
<p>Para terminar el proceso de actualización, remueva la copia del paquete de distribución de la última versión de Drupal.</p>
<p><span style="font-family: courier new,courier;">$ rm drupal-5.9.tar.gz</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/08/actualizacion-de-portales-web-basados-en-drupal-a-la-version-59/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Integridad en el liderazgo</title>
		<link>http://www.jorgeivanmeza.com/blog/2008/08/07/integridad-en-el-liderazgo/</link>
		<comments>http://www.jorgeivanmeza.com/blog/2008/08/07/integridad-en-el-liderazgo/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 19:02:53 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Drucker]]></category>

		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=532</guid>
		<description><![CDATA[
Las decisiones gerenciales afectan a la gente.
Es a través del carácter que se ejercita el liderazgo, es el que da el ejemplo digno de imitarse.
La gente puede perdonar muchas cosas: incompetencia, ingnorancia, inseguridad o malas maneras, pero nunca la falta de integridad.
El espiritu de una organización se crea desde arriba: "Los árboles muere de arriba [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Las decisiones gerenciales afectan a la gente.</li>
<li>Es a través del carácter que se ejercita el liderazgo, es el que da el ejemplo digno de imitarse.</li>
<li>La gente puede perdonar muchas cosas: incompetencia, ingnorancia, inseguridad o malas maneras, pero nunca la falta de integridad.</li>
<li>El espiritu de una organización se crea desde arriba: "Los árboles muere de arriba hacia abajo".</li>
</ul>
<p>Peter F. Drucker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgeivanmeza.com/blog/2008/08/07/integridad-en-el-liderazgo/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
