<?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>The Code is Poetry &#187; Blog</title>
	<atom:link href="http://thecodeispoetry.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://thecodeispoetry.com</link>
	<description>Historias de un programador</description>
	<lastBuildDate>Wed, 02 May 2012 05:04:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Áreas de TI vs Administración</title>
		<link>http://thecodeispoetry.com/2012/05/02/areas-de-ti-vs-administracion/</link>
		<comments>http://thecodeispoetry.com/2012/05/02/areas-de-ti-vs-administracion/#comments</comments>
		<pubDate>Wed, 02 May 2012 05:04:18 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=125</guid>
		<description><![CDATA[Desde que se introdujeron las tecnologías de información al interior de las organizaciones se generó un problema que aun sigue vigente. Las áreas encargadas de tecnología hablan un &#8220;idioma&#8221; que la parte administrativa simplemente no entiende y viceversa. Para resolver este problema se crearon una serie de mecanismos para representar gráficamente los elementos de un [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que se introdujeron las tecnologías de información al interior de las organizaciones se generó un problema que aun sigue vigente. Las áreas encargadas de tecnología hablan un &#8220;idioma&#8221; que la parte administrativa simplemente no entiende y viceversa.</p>
<p>Para resolver este problema se crearon una serie de mecanismos para representar gráficamente los elementos de un sistema sin necesidad de profundizar en lo ténico, creando incluso un nuevo tipo de profesional, el analista de sistemas.</p>
<p>La funcion de este personaje es normalmente el de traducir los procesos de negocio y requerimientos de las diversas áreas de sistemas a un lenguaje comprensible por ambas partes. En muchos casos se usa <a href="http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado">UML</a>, sin embargo existen muchas formas de representar un sistema.</p>
<p>Estos diagramas deben de cambiarse y actualizarse conforme avance el proyecto, y dependiendo del proceso elegido para el desarrollo de software, se necesitarán muchas reuniones para realizar un cambio. cof.. PMI cof.. RUP</p>
<p>Si el proyecto dura 5 años y tienes el presupuesto suficiente como para no morir en el intento, no existe ningun problema, pero si tu proyecto tiene que entregarse para ayer, no me imagino el desastre. Pero seré objetivo, en muchos casos funciona muy bien.</p>
<p>Si tu empresa demora 30 días en realizar un pequeño cambio a un formulario, y la competencia lo hace en 30 min estarás en un gran problema. Esto aplica por ejemplo a SEO y CRO, debido a que la variacíon del ranking en google es casi de minuto a minuto.</p>
<p>¿Existen otras alternativas? Afortunadamente si existen, por ejemplo las metodologías ágiles tratan de eliminar mucha de la redudancia de UML mediante mecanismos muy ingeniosos que trasladan los requerimientos directamente al área de tecnología, de esta forma se ejecutan de forma mucho más eficiente.</p>
<p>El código puede ser autodocumentado, sin embargo esto requiere de mucha disciplina, pero al final termina siendo mucho más eficiente que las 300 páginas en papel que se generaban con otras metodologías. Seamos sinceros, quien lee los manuales.</p>
<p>Aquí es necesario aclarar que existen documentos que si son vitales, entre ellos:</p>
<ul>
<li>Diagrama de base de datos</li>
<li>Diccionario de datos</li>
<li>Descripción de componentes</li>
<li>Diagramas funcionales</li>
</ul>
<p>Finalmente es necesario ceder en ambas partes, las capas intermedias de administración tiene que esforzarse en comprender un poco más sobre las tecnologías de información, y por otra parte las áreas de tecnología de información deben de expresarse en un lenguaje menos técnico.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/05/02/areas-de-ti-vs-administracion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algo de usabilidad para E-Commerce</title>
		<link>http://thecodeispoetry.com/2012/04/29/algo-de-usabilidad-para-e-commerce/</link>
		<comments>http://thecodeispoetry.com/2012/04/29/algo-de-usabilidad-para-e-commerce/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 03:59:58 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=99</guid>
		<description><![CDATA[Es increible lo que un comic nos puede enseñar, sin embargo el secreto esta en olvidarte por un momento que tienes que entregar esa tienda electronica para el Lunes. Olvidate de los procesos, olvidate de los sistemas de pago. Lo unico importante aqui es resolver la vida de los usuarios. Los procesos funcionan bien con [...]]]></description>
			<content:encoded><![CDATA[<p>Es increible lo que un comic nos puede enseñar, sin embargo el secreto esta en olvidarte por un momento que tienes que entregar esa tienda electronica para el Lunes. Olvidate de los procesos, olvidate de los sistemas de pago. Lo unico importante aqui es resolver la vida de los usuarios. Los procesos funcionan bien con la gerencia, pero al final del dia a los usuarios solo les importa que la experiencia sea la mejor de todas.</p>
<p>The Oatmeal nos enseña un caso tipico de como un usuario puede llegar a la frustracion total, cuando lo unico que deseaba era comprar un producto en tu tienda.</p>
<p><a href="http://theoatmeal.com/comics/shopping_cart">How to make you shopping cart suck less.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/04/29/algo-de-usabilidad-para-e-commerce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mil llamadas perdidas</title>
		<link>http://thecodeispoetry.com/2012/01/16/mil-llamadas-perdidas/</link>
		<comments>http://thecodeispoetry.com/2012/01/16/mil-llamadas-perdidas/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 03:02:24 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=57</guid>
		<description><![CDATA[Desde hace algunos meses he notado que ya no me importa cargar la batería de mi teléfono, y en muchos casos lo dejo ahi tirado en cualquier lugar. El resultado de esto termina siendo una larga lista de llamadas perdidas y de personas quejandose por que no contesto sus llamadas. No es que sea a [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace algunos meses he notado que ya no me importa cargar la batería de mi teléfono, y en muchos casos lo dejo ahi tirado en cualquier lugar. El resultado de esto termina siendo una larga lista de llamadas perdidas y de personas quejandose por que no contesto sus llamadas. No es que sea a proposito, es simplemente que he desplazado la función de comunicación hacia el correo electrónico.</p>
<p>Debido a mi trabajo siempre estoy conectado a la mensajería instantánea y al correo electrónico, con esas 2 herramientas es suficiente en muchos casos para coordinar todo lo que sea necesario durante el día, esto funciona incluso con los clientes&#8230; bueno no con todos.</p>
<p>En casa puedo estar en la iMac trabajando en algun proyecto, o estoy con la notebook viendo alguna película, sin embargo en ambos casos tengo una pestaña con el correo electrónico, es por ello que escribirme un correo electrónico resulta la mejor opción de comunicación para mi.</p>
<p>Ahora entiendo el comercial de Apple cuando salío el iPhone 3G. Al final terminaba con la siguiente frase &#8220;&#8230; y tambien es un teléfono.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/16/mil-llamadas-perdidas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No quiero un Framework que lo haga todo</title>
		<link>http://thecodeispoetry.com/2012/01/15/no-quiero-un-framework-que-lo-haga-todo/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/no-quiero-un-framework-que-lo-haga-todo/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:27:00 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=33</guid>
		<description><![CDATA[Hace ya varios meses que no escribo en el blog, lamentablemente sigo algo desordenado con el tiempo. Por otra parte durante las últimas semanas estaba buscando un Framework para desarrollar una pequeña aplicación. Luego de revisar los principales frameworks en PHP y las diversas funcionalidades que ofrecen, tuve que llegar a la conclusión de que [...]]]></description>
			<content:encoded><![CDATA[<p>Hace ya varios meses que no escribo en el blog, lamentablemente sigo algo desordenado con el tiempo. Por otra parte durante las últimas semanas estaba buscando un Framework para desarrollar una pequeña aplicación. Luego de revisar los principales frameworks en PHP y las diversas funcionalidades que ofrecen, tuve que llegar a la conclusión de que ninguno se acerca al concepto de framework que esperaba.</p>
<p>Personalmente considero que un Framework debe de resolver solo 3 aspectos de la programación en PHP.</p>
<ul>
<li>Routing</li>
<li>Templating</li>
<li>ORM</li>
</ul>
<p>Todos lo demás me parece que es simplemente innecesario, debido a que cada aplicación tiene diversos requerimientos, y es muy probable que no termines usando todas esas maravillosas características que tiene un Framework en particular. Por otra parte un Framework no debe de forzar la convención de nombres para los archivos, debido a que es probable que ya tengas una convención definida para la codificación.</p>
<p>En el caso de Python, me parece que los desarrolladores de Django han hecho un gran trabajo, y resalto algunas cosas muy simples que me gustan de este Framework y que tranquilamente pueden copiarse a los que ya existen para PHP:</p>
<ol>
<li>Las direcciones URL se pueden mapear a lo que yo desee, no tengo que se seguir la plantilla de siempre: <strong>controller/action/variable</strong></li>
<li>Puedo organizar mis archivos de la forma que desee, sin que afecte el funcionamiento del Framework.</li>
<li>Las clases y métodos pueden tener cualquier nombre, no estan limitados a: <strong>DefaultController</strong>, <strong>indexAction</strong>, etc.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/no-quiero-un-framework-que-lo-haga-todo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error 303: Icon is missing from the package</title>
		<link>http://thecodeispoetry.com/2012/01/15/error-303-icon-is-missing-from-the-package/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/error-303-icon-is-missing-from-the-package/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:26:19 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=31</guid>
		<description><![CDATA[Si obtienes este mensaje de error al compilar tu aplicación Adobe Air mediante la terminal, simplemente agrega el nombre de los archivos de los íconos al comando, por ejemplo de la siguiente forma: sudo adt -package -target apk -storetype pkcs12 -keystore ronald.p12 Grillo.apk Grillo-app.xml Grillo.swf icon_128x128.png icon_48x48.png icon_32x32.png]]></description>
			<content:encoded><![CDATA[<p>Si obtienes este mensaje de error al compilar tu aplicación Adobe Air mediante la terminal, simplemente agrega el nombre de los archivos de los íconos al comando, por ejemplo de la siguiente forma:</p>
<p>sudo adt -package -target apk -storetype pkcs12 -keystore ronald.p12 Grillo.apk Grillo-app.xml Grillo.swf icon_128x128.png icon_48x48.png icon_32x32.png</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/error-303-icon-is-missing-from-the-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No más nubes esponjosas por aqui</title>
		<link>http://thecodeispoetry.com/2012/01/15/no-mas-nubes-esponjosas-por-aqui/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/no-mas-nubes-esponjosas-por-aqui/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:25:16 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=29</guid>
		<description><![CDATA[Un momento, pero yo odio el sol!!. En realidad me referia a la recurrente frase de &#8220;la nube&#8221; en referencia al &#8220;Cloud Computing&#8221;. Estos últimos días del año estuve buscando una plataforma enla nube para alojar una aplicación que estoy desarrollando. Luego de revisar Google App Engine y Windows Azure termine escogiendo un modelo intermedio [...]]]></description>
			<content:encoded><![CDATA[<p>Un momento, pero yo odio el sol!!. En realidad me referia a la recurrente frase de &#8220;la nube&#8221; en referencia al &#8220;Cloud Computing&#8221;. Estos últimos días del año estuve buscando una plataforma enla nube para alojar una aplicación que estoy desarrollando. Luego de revisar Google App Engine y Windows Azure termine escogiendo un modelo intermedio en Rackspace.</p>
<p>¿Por qué elegí una plataforma semi-cloud?</p>
<p>Es posible que aun no me acostumbre a la nube para el desarrollo de aplicaciones, ó que simplemente estas plataformas no cumplen algunos de mis requerimentos. A continuación un resumen de mi evaluación de ambas plataformas:</p>
<p><span id="more-29"></span></p>
<p><strong>Google App Engine</strong>:</p>
<p>Esta fue mi primera opción debido a que te permite hasta 1 millón de visitas al mes de forma gratuita, soporta Python =) e incluye Django, no podia pedir más salvo que no incluye una base de datos relacional, y eso de conectarse a una base de datos en otro datacenter degrada el performance de las aplicaciones. Google App Engine incluye su propio motor de datos propietario, por lo cual tendría que escribir la aplicación conectada desde la base con el motor de datos de Google, limitando mi capacidad de migrar hacia otra plataforma.</p>
<p>Google promete que muy pronto estará disponible un motor de datos relacional, pero solo para su versión Enterprise, lo que de alguna forma le quita el atractivo que tenia para mi. Es posible escribir una capa de abstracción de datos, pero eso agregaría trabajo adicional al proyecto y adicionalmente requiero de un <em>daemon</em> propio que ejecute algunas tareas para la aplicación.</p>
<p><strong>Windows Azure:</strong></p>
<p>Recorde que tenia una cuenta de Windows Azure y que soy partner de Microsoft(No se como sucedio&#8230;), por lo cual me decidi revisar un poco mejor esta plataforma. En princio el gran atractivo para mi fue que soporta C#(Lo siento Java..). Por otra parte posee soporte para ASP.NET MVC, con lo cual el desarrollo sería mucho más sencillo. Posee soporte para SQL Server que si es una base de datos relacional. Posee 2 roles llamados <em>Web Role</em> y <em>Worker Role</em>, el primero es basicamente una aplicación que se ejecuta sobre IIS 7.0, y el segundo es un tipo especial de aplicación que se ejecuta como un servicio en constante ejecución.</p>
<p>El soporte de Microsoft, siempre muy amables me guiaron en la configuración y los aspectos necesarios para cargar mi primera aplicación de prueba. Pero no todo es perfecto, y nuevamente me encontre encerrado en esta plataforma con respecto al <em>Worker Role</em>, debido a que no cuenta con una contraparte fuera de la plataforma de Windows Azure, por lo cual una migración requeriría de la creación de un servicio que actue de forma similar.</p>
<p>¿Por qué es tan importante la capacidad de migración?</p>
<p>Es cierto, si escojes alguna de estas plataformas para tu apliación, es muy probable que no llegues a migrarla debido a que es mucho más cómodo ejecutarla en ese ambiente. Sin embargo si en algún momento requieres de un mayor control, ó servicios adicionales que no están soportados no tendras otra opción que adecuarte a las limitaciones. Adicionalmente es necesario considerar que el personal capacitado para crear aplicaciones para estas plataformas es limitado.</p>
<p>¿Qué opciones quedan?</p>
<p>Algunas empresas están creando servicios para cubrir este problema, y lo llaman &#8220;Private Cloud&#8221;, que consiste en proporcionarte una plataforma flexible con gran capacidad de crecimiento que te permiten crear tu propia red de servidores en minutos y usar la tecnologías que creas conveniente con todos los privilegios necesarios. Entre ellas podemos destacar a Rackspace Cloud y Amazon EC2.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/no-mas-nubes-esponjosas-por-aqui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cuatro meses con un Androide</title>
		<link>http://thecodeispoetry.com/2012/01/15/cuatro-meses-con-un-androide/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/cuatro-meses-con-un-androide/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:23:55 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=27</guid>
		<description><![CDATA[Bueno, no es que haya vivido con un androide de esos que salen en las películas, en realidad me refiero a mis impresiones respecto al Nexus One. En resumen he llegado a las siguientes conclusiones respecto al equipo y el sistema operativo. Lo bueno de Android: El sistema operativo es simplemente increíble e intuitivo, con [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno, no es que haya vivido con un androide de esos que salen en las películas, en realidad me refiero a mis impresiones respecto al Nexus One. En resumen he llegado a las siguientes conclusiones respecto al equipo y el sistema operativo.</p>
<p><strong>Lo bueno de Android:</strong></p>
<ul>
<li>El sistema operativo es simplemente increíble e intuitivo, con una interfaz gráfica que no tiene que envidiarle nada a iOS.</li>
<li><em>Multitasking</em> <strong>real</strong>, y resalto la palabra real debido a que en iOS el <em>&#8220;multitasking&#8221;</em> debe de ser implementado a nivel de aplicación, haciendo uso de servicios que se ejecutan en <em>background</em>.</li>
<li>Wifi Hostpot, esta es simplemente una funcionalidad que debería de venir de serie con todos los <em>smartphones.</em></li>
</ul>
<p><strong>Lo impresentable de Android:</strong></p>
<ul>
<li>En mi caso solo se resume en una cosa. La no existencia de aplicaciones pagadas en Perú.</li>
</ul>
<p>Respecto al equipo, no tengo ninguna objeción salvo resaltar que la pantalla OLED es simplemente expectacular, superando a mi parecer al &#8220;Retina Display&#8221; del iPhone 4.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/cuatro-meses-con-un-androide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UML no es sinónimo de buen software</title>
		<link>http://thecodeispoetry.com/2012/01/15/uml-no-es-sinonimo-de-buen-software/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/uml-no-es-sinonimo-de-buen-software/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:22:56 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=25</guid>
		<description><![CDATA[Como la mayor parte de los desarrolladores de software, pienso que la documentación es la parte más aburrida del ciclo de desarrollo. Pero es un mal necesario, a pesar de que estadísticamente casi nunca se acude a la documentación de un programa. Ahora el problema viene cuando te encuentras con clientes que exigen un modelado [...]]]></description>
			<content:encoded><![CDATA[<p>Como la mayor parte de los desarrolladores de software, pienso que la documentación es la parte más aburrida del ciclo de desarrollo. Pero es un mal necesario, a pesar de que estadísticamente casi nunca se acude a la documentación de un programa.</p>
<p>Ahora el problema viene cuando te encuentras con clientes que exigen un modelado completo incluso para proyectos con procesos predefinidos e invariables, solo con la excusa de que se obtendrá un &#8220;mejor desarrollo&#8221;.</p>
<p>En este punto queda por aclarar, que después de todo los diagramas son una representación de las funciones que implementará el software, pero al final la codificación será lo que hará todo el trabajo. En algunos casos podemos terminar con un excelente modelado, pero con una codificación pobre llena de <a href="http://thedailywtf.com/Articles/isValidNumber().aspx">errores</a>.</p>
<p>En otros casos podemos terminar con todo lo contrario, una documentación mínima y una codificación buena y extensible. Y siguiendo la misma lógica, mi combinación favorita de &#8220;Juntemos todo a ver que pasa&#8221;, la cual no tiene justificación alguna.</p>
<p>Recordando un poco lo que mencionaron en algunos eventos, me viene a la mente lo que indicaba un desarrollador de Google, el cual respondió a una pregunta del auditorio con lo siguiente, en referencia a RUP: &#8220;No se para que enseñan esas cosas realmente, en Google no tenemos necesidad de esas cosas, debido a que trabajamos en grupos pequeños y nos reunimos todo el tiempo.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/uml-no-es-sinonimo-de-buen-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON feeds en WordPress</title>
		<link>http://thecodeispoetry.com/2012/01/15/json-feeds-en-wordpress/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/json-feeds-en-wordpress/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:22:28 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=23</guid>
		<description><![CDATA[Existen múltiples plugins que realizan esta tarea actualmente, por lo cual este post es para aquellas personas que deseen crear su propio feed JSON ó son fanáticos de &#8220;Hagalo Usted Mismo&#8221;. ¿Para que crear un feed JSON? Es posible que desees incluir un listado de los posts de tu blog en otro sitio web, para [...]]]></description>
			<content:encoded><![CDATA[<p>Existen múltiples plugins que realizan esta tarea actualmente, por lo cual este post es para aquellas personas que deseen crear su propio feed JSON ó son fanáticos de &#8220;Hagalo Usted Mismo&#8221;.</p>
<p>¿Para que crear un feed JSON? Es posible que desees incluir un listado de los posts de tu blog en otro sitio web, para lo que normalmente se usa RSS ó ATOM, pero hacer un parser para estos formatos suele ser complicado y se transporta una gran cantidad de datos. En contraparte JSON es un formato muy ligero y que podemos manipular fácilmente con Java Script.</p>
<p><span id="more-23"></span></p>
<p>Ahora manos a la obra!</p>
<p>En primer lugar creamos un archivo de nombre wp-json.php en la raiz de nuestro blog(en donde se encuentra wp-config.php). Este archivo debe de contener lo siguiente:</p>
<div class="geshi no php">
<div class="head">/wp-json.php</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">empty</span><span class="br0">&#40;</span><span class="re1">$wp</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st0">&#39;./wp-load.php&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">wp<span class="br0">&#40;</span><span class="st0">&#39;feed=json&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require</span> <span class="br0">&#40;</span>ABSPATH <span class="sy0">.</span> WPINC <span class="sy0">.</span> <span class="st0">&#39;/feed-json.php&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>A continuación creamos un archivo de nombre feed-json.php en la capeta wp-includes de nuestro blog. Este archivo debe de contener lo siguiente</p>
<div class="geshi no php">
<div class="head">/wp-includes/feed-json.php</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&#39;Content-Type: application/json; charset=&#39;</span> <span class="sy0">.</span> get_option<span class="br0">&#40;</span><span class="st0">&#39;blog_charset&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$more</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$items</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">query_posts<span class="br0">&#40;</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">while</span> <span class="br0">&#40;</span>have_posts<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1">the_post<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$item</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;title&quot;</span> <span class="sy0">=&gt;</span> get_the_title_rss<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;link&quot;</span> <span class="sy0">=&gt;</span> apply_filters<span class="br0">&#40;</span><span class="st0">&#39;the_permalink_rss&#39;</span><span class="sy0">,</span> get_permalink<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="st0">&quot;description&quot;</span> <span class="sy0">=&gt;</span> apply_filters<span class="br0">&#40;</span><span class="st0">&#39;the_excerpt_rss&#39;</span><span class="sy0">,</span> get_the_excerpt<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$items</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re1">$item</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">endwhile</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$arr</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#39;title&#39;</span> <span class="sy0">=&gt;</span> get_bloginfo_rss<span class="br0">&#40;</span><span class="st0">&#39;name&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#39;link&#39;</span> <span class="sy0">=&gt;</span> get_bloginfo_rss<span class="br0">&#40;</span><span class="st0">&#39;url&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#39;description&#39;</span> <span class="sy0">=&gt;</span> get_bloginfo_rss<span class="br0">&#40;</span><span class="st0">&#39;description&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#39;language&#39;</span> <span class="sy0">=&gt;</span> get_option<span class="br0">&#40;</span><span class="st0">&#39;rss_language&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#39;item&#39;</span> <span class="sy0">=&gt;</span> <span class="re1">$items</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">echo</span> <span class="st0">&quot;&quot;</span><span class="sy0">.</span><span class="re1">$HTTP_GET_VARS</span><span class="br0">&#91;</span><span class="st0">&quot;callback&quot;</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;(&quot;</span><span class="sy0">.</span>json_encode<span class="br0">&#40;</span><span class="re1">$arr</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;);&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Finalmente para probar nuestro feed nos dirigimos a http://miblog.com/wp-json.php y veremos nuestro nuevo feed en JSON. Puedes encontrar más atributos para usar en <a href="http://codex.wordpress.org/Template_Tags" target="_blank">WordPress</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/json-feeds-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal no es un CMS</title>
		<link>http://thecodeispoetry.com/2012/01/15/drupal-no-es-un-cms/</link>
		<comments>http://thecodeispoetry.com/2012/01/15/drupal-no-es-un-cms/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 23:19:07 +0000</pubDate>
		<dc:creator>Ronald Guillen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://thecodeispoetry.com/?p=21</guid>
		<description><![CDATA[Antes de que intenten quemarme por decir semejante blasfemia, sugiero seguir leyendo este post. Para empezar que es lo que creen que se viene a la mente a un desarrollador web cuando escucha las siglas CMS?. Normalmente y de acuerdo a la información que puedan haber escuchado, imaginan un backend en el que pueden modificar [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de que intenten quemarme por decir semejante blasfemia, sugiero seguir leyendo este post.</p>
<p>Para empezar que es lo que creen que se viene a la mente a un desarrollador web cuando escucha las siglas CMS?. Normalmente y de acuerdo a la información que puedan haber escuchado, imaginan un backend en el que pueden modificar fácilmente el contenido de su sitio web mediante un editor WYSIWYG, y con capacidad de poder insertar y gestionar contenido multimedia muy fácilmente.</p>
<p>Aquí viene el problema, que es lo que obtienen al instalar y jugar con Drupal por primera vez?. Frustración total, ya que por los comentarios y noticias del medio piensan que Drupal es un WordPress en esteroides, pero al final aparentemente se encuentran con algo que está entre un framework y WordPress.</p>
<p><span id="more-21"></span></p>
<p>Y donde esta el super CMS?, no hay editor WYSIWYG?, como cargo las imágenes?, quizás algunas de las preguntas recurrentes al iniciar el desarrollo con Drupal. En realidad todo esto es posible mediante módulos desarrollados por terceros.</p>
<p>Ahora, si es posible suplir estas &#8220;falencias&#8221; mediante módulos por qué el título de este post dice que no es un CMS? En realidad mi intención es capturar la atención de las personas que aún no han usado Drupal, de esta forma sabrán con anticipación a que se están enfrentando.</p>
<p>El problema de Drupal no es el software, el problema es que la comunidad no se ha tomado el tiempo de explicar claramente que Drupal es un framework para construir tu propio CMS, y no un WordPress en esteroides.</p>
<p>Una duda que puede quedar flotando es: ¿por que usar Drupal si puedo hacer lo mismo con un framework PHP?, pero eso lo dejaré para otro post.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecodeispoetry.com/2012/01/15/drupal-no-es-un-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

