<?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>Retrorock &#187; Programación</title>
	<atom:link href="http://retrorock.info/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://retrorock.info</link>
	<description>Reflexiones y Código por Wilbur Suero</description>
	<lastBuildDate>Sun, 01 Aug 2010 08:25:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Como correr multiples aplicaciones con una instalación de Codeigniter</title>
		<link>http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/</link>
		<comments>http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 07:26:21 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=709</guid>
		<description><![CDATA[Por default se asume que vas a usar Codeigniter para manejar una sola aplicación, pero, debes saber que es posible correr varios sitios desde una misma instalación. Cada sitio tendrá su propio folder application, pero todos van a compartir el mismo folder system. Para que esto suceda debes mover la carpeta applications que viene por [...]


Related posts:<ol><li><a href='http://retrorock.info/2008/08/urls-limpias-con-codeigniter/' rel='bookmark' title='Permanent Link: URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/2008/06/codeigniter-a-primera-vista/' rel='bookmark' title='Permanent Link: CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
<li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Por default se asume que vas a usar Codeigniter para manejar una sola aplicación, pero, debes saber que es posible correr varios sitios desde una misma instalación.</p>
<p>Cada sitio tendrá su propio folder application, pero todos van a compartir el mismo folder system.</p>
<p>Para que esto suceda debes mover la carpeta applications que viene por default dentro del folder system al root de nuestra instalación.</p>
<p>Luego busca en el index.php que está en el root de la instalación la línea que tiene: <strong>$application_folder = &#8220;application&#8221;; </strong>Y sustituyelo por: <strong>$application_folder = &#8220;../application&#8221;;</strong></p>
<p>Ahora puedes copiar el folder application de system de nuevo al root de la instalación y renombrarlo a como quieras que se llame tu nueva aplicación. Cada aplicación debe tener su propio archivo index.php donde debes buscar la línea que tiene:  <strong>$system_folder = &#8220;system&#8221;;</strong> y sustituirla por: <strong>$system_folder = &#8220;../system&#8221;; </strong>y donde tiene: <strong>$application_folder = &#8220;application&#8221;;</strong> sustituirla por: <strong>$application_folder = &#8220;../admin&#8221;;</strong> <em>cambia admin por el nombre del folder donde tienes esta aplicación.</em></p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2008/08/urls-limpias-con-codeigniter/' rel='bookmark' title='Permanent Link: URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/2008/06/codeigniter-a-primera-vista/' rel='bookmark' title='Permanent Link: CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
<li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detecta un request Ajax con PHP</title>
		<link>http://retrorock.info/2010/07/detecta-request-ajax-con-php/</link>
		<comments>http://retrorock.info/2010/07/detecta-request-ajax-con-php/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:34:49 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=701</guid>
		<description><![CDATA[Me gusta usar un solo script para los request AJAX y los request &#8220;normales&#8221; porque resulta en un solo archivo para actualizar y editar. Tener la capacidad de detectar que tipo de request recibimos es útil para determinar que tipo de contenido devolver en la respuesta. Por ejemplo, si es un request AJAX podríamos querer [...]


Related posts:<ol><li><a href='http://retrorock.info/2008/07/javascript-y-ajax-para-seo/' rel='bookmark' title='Permanent Link: Javascript y AJAX para SEO'>Javascript y AJAX para SEO</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Me gusta usar un solo script para los request AJAX y los request &#8220;normales&#8221; porque resulta en un solo archivo para actualizar y editar.</p>
<p>Tener la capacidad de detectar que tipo de request recibimos es útil para determinar que tipo de contenido devolver en la respuesta. Por ejemplo, si es un request AJAX podríamos querer devolver un JSON o un XML y si no lo es, podríamos devolver un HTML.</p>
<p>Una manera de detectar los request AJAX contrario a los requests que hacen un page-load full puede ser con el siguiente código PHP:</p>
<script src="http://gist.github.com/466824.js" type="text/javascript"></script>
<p><strong>$_SERVER['HTTP_X_REQUESTED_WITH']</strong> es la clave para verificar si es request fue hecho con AJAX o no, pero no todos los servidores proveen esta variable, así que tener otras pruebas adicionales sería importante.</p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2008/07/javascript-y-ajax-para-seo/' rel='bookmark' title='Permanent Link: Javascript y AJAX para SEO'>Javascript y AJAX para SEO</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2010/07/detecta-request-ajax-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Envolviendo el código &#8211; jQuery Wrap()</title>
		<link>http://retrorock.info/2009/12/envolviendo-el-cdigo-jquery-wrap/</link>
		<comments>http://retrorock.info/2009/12/envolviendo-el-cdigo-jquery-wrap/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 23:51:40 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=550</guid>
		<description><![CDATA[Hace unos días tuve un reto con un layout en html, quería meter un div dentro de otro para posicionar unos elementos en forma de grid, lo cual es totalmente posible, no podía modificar la estructura html de ese grid, pero si podía insertar código javascript. Lo primero que pensé fué usar el metodo clone de jquery, crear [...]


Related posts:<ol><li><a href='http://retrorock.info/2008/04/jquery-101/' rel='bookmark' title='Permanent Link: jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
<li><a href='http://retrorock.info/2009/09/mejores-faqs-con-jquery/' rel='bookmark' title='Permanent Link: Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/2008/03/menus-dropdown-con-jquery/' rel='bookmark' title='Permanent Link: Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hace unos días tuve un reto con un layout en html, quería meter un div dentro de otro para posicionar unos elementos en forma de grid, lo cual es totalmente posible, no podía modificar la estructura html de ese grid, pero si podía insertar código javascript.<img title="Más..." src="http://retrorock.info/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>Lo primero que pensé fué usar el metodo <a href="http://docs.jquery.com/Manipulation/clone">clone</a> de jquery, crear el wrapper e insertar el objeto clonado ahí.</p>
<p>Pero investigué un poco más y conocí el <a href="http://docs.jquery.com/Manipulation/wrap">wrap</a> que se encarga de hacer justamente lo que necesitaba.</p>
<h3>Otras idéas &#8211; Pie de foto</h3>
<p>Tienes una colección de imágenes en en el html, todas tienen su debida descripción en el atributo alt.</p>
<p>Primero envuelves cada una de las imágenes en un div que vas a usar como el contenedor de la imagen y el pie de foto.</p>
<script src="http://gist.github.com/295561.js" type="text/javascript"></script>
<p>Puedes verlo funcionando en <a href="http://retrorock.info/examples/wrapped-footprint/">este ejemplo</a> (ver código  fuente)</p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2008/04/jquery-101/' rel='bookmark' title='Permanent Link: jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
<li><a href='http://retrorock.info/2009/09/mejores-faqs-con-jquery/' rel='bookmark' title='Permanent Link: Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/2008/03/menus-dropdown-con-jquery/' rel='bookmark' title='Permanent Link: Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/12/envolviendo-el-cdigo-jquery-wrap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mysql, Tunnels, SSH&#8230;</title>
		<link>http://retrorock.info/2009/12/mysql-tunnels-ssh/</link>
		<comments>http://retrorock.info/2009/12/mysql-tunnels-ssh/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 01:04:42 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=444</guid>
		<description><![CDATA[editado el 21 de marzo del 2010 con ideas de una respuesta en este foro. Si tenemos acceso a ssh podemos conectarnos a una base de datos remota usando: ssh -L8888:mydbhost.mydomain.com:3306 myshelluser@mydomain.com Luego te conectas a su servidor así: mysql -u mydbuser -p -h 127.0.0.1 -P 8888 Debes usar 127.0.0.1 en vez de localhost porque [...]


Related posts:<ol><li><a href='http://retrorock.info/2009/05/python-26-mysql/' rel='bookmark' title='Permanent Link: Python 2.6 &#038; Mysql'>Python 2.6 &#038; Mysql</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>editado el 21 de marzo del 2010 con ideas de una respuesta <a href="http://forum.dreamhosters.com/troubleshooting/46935-Tunneling-MySQL-over-SSH.htm">en este foro</a>.</p>
<p>Si tenemos acceso a ssh podemos conectarnos a una base de datos remota usando:</p>
<p>ssh -L8888:mydbhost.mydomain.com:3306 myshelluser@mydomain.com</p>
<p>Luego te conectas a su servidor así:</p>
<p>mysql -u mydbuser -p -h 127.0.0.1 -P 8888</p>
<p>Debes usar 127.0.0.1 en vez de localhost porque si no el servidor va a rechazarte la conexión.</p>
<p>Lo que muestra este post es como conectarse a una base de datos remota usando Windows, Putty, Mysql GUI Tools y Dreamhost.</p>
<p>El problema es que quisiera usar mysql query browser para conectarme a mi base de datos en Dremahost, pero el query browser solo acepta conecciones locales.</p>
<p>La solucion es hacer un tunel (<a href="http://en.wikipedia.org/wiki/Tunneling_protocol#SSH_tunneling">SSH Tunneling</a>) desde nuestra maquina hacia el servidor en Dreamhost y conectar el query browser a traves de ese tunel.<span id="more-444"></span></p>
<p><strong>Como se hace</strong></p>
<p>Despues de haber instalado Putty, introducimos los datos del servidor para iniciar una sesión por SSH a nuestro usando el puerto común :22</p>
<p><img class="alignnone size-full wp-image-445" title="screen" src="http://retrorock.info/wp-content/uploads/2009/12/screen.png" alt="screen" width="387" height="391" /></p>
<p>Antes de iniciar sesión vamos a hacer el tunel, para esto hay que seleccionar en la columna de la izquierda un PUTTY, ssh &gt; tunnels y vamos a asignar un puerto local (9999) al servidor de MySQL en Dreamhost.</p>
<p><img style="border: 0px initial initial;" title="screen2" src="http://retrorock.info/wp-content/uploads/2009/12/screen22.png" alt="screen2" width="463" height="442" /></p>
<p>Con esta confiuración cuando iniciemos sesión podemos abrir el Mysql Query Browser y conectarnos al puerto que le asignamos al servidor remoto.</p>
<p><img class="alignnone size-full wp-image-448" title="screen3" src="http://retrorock.info/wp-content/uploads/2009/12/screen3.png" alt="screen3" width="430" height="361" /></p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2009/05/python-26-mysql/' rel='bookmark' title='Permanent Link: Python 2.6 &#038; Mysql'>Python 2.6 &#038; Mysql</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/12/mysql-tunnels-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mejores FAQ&#8217;s con jQuery</title>
		<link>http://retrorock.info/2009/09/mejores-faqs-con-jquery/</link>
		<comments>http://retrorock.info/2009/09/mejores-faqs-con-jquery/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 13:17:41 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=431</guid>
		<description><![CDATA[Una forma de mostrar un FAQ o las preguntas frecuentes sin la necesidad de muchos divs y otras cosas superfluas. (Ver código fuente) Ejemplo Related posts:Envolviendo el código &#8211; jQuery Wrap() jQuery 101 (introducción) Loops en jQuery con .each()


Related posts:<ol><li><a href='http://retrorock.info/2009/12/envolviendo-el-cdigo-jquery-wrap/' rel='bookmark' title='Permanent Link: Envolviendo el código &#8211; jQuery Wrap()'>Envolviendo el código &#8211; jQuery Wrap()</a></li>
<li><a href='http://retrorock.info/2008/04/jquery-101/' rel='bookmark' title='Permanent Link: jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
<li><a href='http://retrorock.info/2009/07/loops-en-jquery-con/' rel='bookmark' title='Permanent Link: Loops en jQuery con .each()'>Loops en jQuery con .each()</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Una forma de mostrar un FAQ o las preguntas frecuentes sin la necesidad de muchos divs y otras cosas superfluas. (Ver código fuente)</p>
<p><a href="http://retrorock.info/examples/faq.html"><span style="text-decoration: none;">Ejemplo</span></a></p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2009/12/envolviendo-el-cdigo-jquery-wrap/' rel='bookmark' title='Permanent Link: Envolviendo el código &#8211; jQuery Wrap()'>Envolviendo el código &#8211; jQuery Wrap()</a></li>
<li><a href='http://retrorock.info/2008/04/jquery-101/' rel='bookmark' title='Permanent Link: jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
<li><a href='http://retrorock.info/2009/07/loops-en-jquery-con/' rel='bookmark' title='Permanent Link: Loops en jQuery con .each()'>Loops en jQuery con .each()</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/09/mejores-faqs-con-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loops en jQuery con .each()</title>
		<link>http://retrorock.info/2009/07/loops-en-jquery-con/</link>
		<comments>http://retrorock.info/2009/07/loops-en-jquery-con/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 03:44:41 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=391</guid>
		<description><![CDATA[Viendo ejemplos de jQuery ultimamente, he visto que muchos programadores usan loops con while() o for() en sus scripts. No hay nada de malo en eso, pero debemos saber que .each() también puede hacer loop sobre arrays y objetos. Related posts:Mejores FAQ&#8217;s con jQuery Menús Dropdown con jQuery jQuery 101 (introducción)


Related posts:<ol><li><a href='http://retrorock.info/2009/09/mejores-faqs-con-jquery/' rel='bookmark' title='Permanent Link: Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/2008/03/menus-dropdown-con-jquery/' rel='bookmark' title='Permanent Link: Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
<li><a href='http://retrorock.info/2008/04/jquery-101/' rel='bookmark' title='Permanent Link: jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Viendo ejemplos de jQuery ultimamente, he visto que muchos programadores usan loops con <code>while() o for()</code> en sus scripts. No hay nada de malo en eso, pero debemos saber que <code>.each()</code> también puede hacer loop sobre arrays y objetos.</p>
<script src="http://gist.github.com/295540.js" type="text/javascript"></script>


<p>Related posts:<ol><li><a href='http://retrorock.info/2009/09/mejores-faqs-con-jquery/' rel='bookmark' title='Permanent Link: Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/2008/03/menus-dropdown-con-jquery/' rel='bookmark' title='Permanent Link: Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
<li><a href='http://retrorock.info/2008/04/jquery-101/' rel='bookmark' title='Permanent Link: jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/07/loops-en-jquery-con/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mensajes, avisos, flashdata&#8230;</title>
		<link>http://retrorock.info/2009/07/mensajes-avisos-flashdata/</link>
		<comments>http://retrorock.info/2009/07/mensajes-avisos-flashdata/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 00:50:03 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=378</guid>
		<description><![CDATA[Las aplicaciones web están basadas en acciones, links, e interacción humana totalmente, lo que nos hace entender que si queremos guiar a los usuarios, debemos informarles de los resultados de sus acciones. CodeIgniter cuenta con flashdata, que es un tipo de variable de sesión que se borra automáticamente después del siguiente request HTTP. Este tipo de [...]


no hay entradas relacionadas.]]></description>
			<content:encoded><![CDATA[<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">Las aplicaciones web están basadas en acciones, links, e interacción humana totalmente, lo que nos hace entender que si queremos guiar a los usuarios, debemos informarles de los resultados de sus acciones.</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">CodeIgniter cuenta con <strong>flashdata, </strong>que es un tipo de variable de sesión que se borra automáticamente después del siguiente request HTTP. Este tipo de variables es perfecto para mostrar mensajes de error, mensajes de éxito y notificar algo al usuario.<span id="more-378"></span></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">Por ejemplo, digamos que vamos a insertar una noticia:</p>
<p><script src="http://gist.github.com/295554.js?file=insert.php"></script></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">En este caso, si se inserta la noticia correctamente se guardara una variable flash con el mensaje y se redireccionará.</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">Para mostrar el mensaje entonces en el view de la página donde se redireccionó al usuario tendríamos:</p>
<p><script src="http://gist.github.com/295554.js?file=view.php"></script></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">La ventaja de usar este tipo de variables para mostrar mensajes como respuestas a eventos, por ejemplo: Si uno hace refresh en la página donde está el mensaje, el mensaje desaparece, porque ese tipo de variables solo está vigente en la sesión hasta que se muestra una vez.</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">Hay tres variables que se pueden usar con las variables flash:</p>
<ul>
<li><strong>set_flashdata($key, $value)</strong> guarda una variable flash</li>
<li><strong>flashdata($key)</strong> busca el valor de una variable flash</li>
<li><strong>keep_flashdata($key)</strong> hace que la variable perdure por más de un request.</li>
</ul>
<h2><strong>Haciendo que el mensaje desaparezca luego de X segundos</strong></h2>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">Tenemos el mensaje, visible, informativo y no se puede ver mejor, ahora llego el momento de hacer que desaparezca solo, para eso nos vá a ayudar jQuery:</p>
<p><script src="http://gist.github.com/295554.js?file=hide_message.js"></script></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 12px; padding-left: 0px; margin: 0px;">Esto bastaría para que el mensaje desaparezca lentamente duespues de cinco segundos.</p>


<p>no hay entradas relacionadas.</p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/07/mensajes-avisos-flashdata/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Moviendo la lógica de presentación de los views en CodeIgniter</title>
		<link>http://retrorock.info/2009/07/moviendo-la-lgica-de-presentacin-de-los-views-en-codeigniter/</link>
		<comments>http://retrorock.info/2009/07/moviendo-la-lgica-de-presentacin-de-los-views-en-codeigniter/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 03:56:02 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Views]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=352</guid>
		<description><![CDATA[Cuando repetimos fragmentos de nuestra aplicación en distintos archivos estamos ampliando las probabilidades de error, a parte de que tendremos que reparar el error en cada uno de los archivos.


no hay entradas relacionadas.]]></description>
			<content:encoded><![CDATA[<p>Trabajando en proyectos cada vez más grandes, como programadores nos vemos obligados a aprender nuevas técnicas para acelerar el proceso de producción de código. Cuando repetimos fragmentos de nuestra aplicación en distintos archivos estamos ampliando las probabilidades de error, a parte de que tendremos que reparar el error en cada uno de los archivos.</p>
<p><a href="http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/">Anteriormente hablaba de como usar helpers</a> para no repetir código un mismo fragmento de código una y otra vez.</p>
<p>El tema le toca ahora a los <strong>views, </strong>que por costumbre acumulan una gran cantidad de código repetido.<span id="more-352"></span></p>
<p>Usualmente si tenemos una lista de casas, haríamos algo como:<br />
<script src="http://gist.github.com/295545.js?file=house_list.php"></script><br />
Esta manera de mostrar las casas no muestra ningún problema hasta que tengamos que mostrar la lista de casas en otro sitio, entonces comenzaremos a repetirnos. Esto se puede evitar teniendo una plantilla que muestre una casa de manera individual</p>
<p><script src="http://gist.github.com/295545.js?file=house_list2.php"></script></p>
<p>y la plantilla <em>house.php:</em></p>
<p><script src="http://gist.github.com/295545.js?file=house.php"></script></p>
<h2>Llevando toda la lógica a los controllers</h2>
<p>El método <strong><em>load-&gt;view() </em><span style="font-weight: normal;">acepta 3 parametros:</span></strong></p>
<ol>
<li>El nombre del archivo del template</li>
<li>Datos que le queramos pasar a la plantilla</li>
<li>El tercer parametro permite cambiar el funcionamiento de la funcion para que retorne la data como una cadena de texto en vez de enviarla al browser.</li>
</ol>
<p><a href="http://codeigniter.com/user_guide/libraries/loader.html"><em>Más información sobre la clase Loader</em></a><em> en la guía de usuario de CodeIgniter</em></p>
<p>Sabiendo esto, podemos almacenar todo el output del loop en un string desde el controller y luego hacer solo algo como <strong><em>echo $houses; </em><span style="font-weight: normal;"> en el template.</span></strong></p>
<p><script src="http://gist.github.com/295545.js?file=houses_controller.php"></script></p>
<p><strong><span style="font-weight: normal;">Así se pueden limpiar un poco los views y evitar la repetición de código hasta cierto punto.</span></strong></p>


<p>no hay entradas relacionadas.</p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/07/moviendo-la-lgica-de-presentacin-de-los-views-en-codeigniter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sirviendo los archivos estáticos del admin de Django en Webfaction</title>
		<link>http://retrorock.info/2009/06/sirviendo-los-archivos-estaticos-del-admin-de-django-en-webfaction/</link>
		<comments>http://retrorock.info/2009/06/sirviendo-los-archivos-estaticos-del-admin-de-django-en-webfaction/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 03:38:36 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=341</guid>
		<description><![CDATA[Esta es una guia corta sobre como servir los archivos media (CSS, JS) del panel de administracion de Django directamente desde la misma maquina y desde el mismo servidor Apache.


no hay entradas relacionadas.]]></description>
			<content:encoded><![CDATA[<p>Esta es una guía corta sobre como servir los archivos media (CSS, JS) del panel de administración de Django desde la misma máquina y desde el mismo servidor Apache. Esta es una buena idea porque es más rápido y como debemos economizar los procesos de Apache2/mod_python no usaremos ninguno de esos procesos para servir contenido estático.</p>
<p>- Crea una aplicación nueva en el control panel. Llámala <strong>admin_media</strong>. En App Type selecciona <strong>symbolic link to static-only app</strong>. En Extra info escribe la dirección donde se encuentran los archivos de media del panel de control (&lt;<strong>direccion home&gt;/lib/python2.5/django/contrib/admin/media</strong>) Esto va a crear un archivo <strong>$HOME/webapps/admin_media</strong> que es un link a <strong>&lt;direccion home&gt;/lib/python2.5/django/contrib/admin/media</strong></p>
<p>- Edita el record de tu website, monta <strong>admin_media </strong>en <strong>/media</strong> y reinicia el Apache.</p>


<p>no hay entradas relacionadas.</p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/06/sirviendo-los-archivos-estaticos-del-admin-de-django-en-webfaction/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python 2.6 &amp; Mysql</title>
		<link>http://retrorock.info/2009/05/python-26-mysql/</link>
		<comments>http://retrorock.info/2009/05/python-26-mysql/#comments</comments>
		<pubDate>Sat, 23 May 2009 14:36:37 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=305</guid>
		<description><![CDATA[Cualquiera que esté programando en Python y use Mysql ya debe haberse encontrado con MysqlDB. También debe haberse dado cuenta que no hay una versión para Python 2.6 en la página de descarga. Esto es bastante desconcertante porque Python se movio a la version 2.6 dias antes de finalizar el 2008 y solo despues anunciaron [...]


Related posts:<ol><li><a href='http://retrorock.info/2009/12/mysql-tunnels-ssh/' rel='bookmark' title='Permanent Link: Mysql, Tunnels, SSH&#8230;'>Mysql, Tunnels, SSH&#8230;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Cualquiera que esté programando en Python y use Mysql ya debe haberse encontrado con <a href="http://sourceforge.net/project/showfiles.php?group_id=22307&amp;package_id=15775">MysqlDB</a>. También debe haberse dado cuenta que no hay una versión para Python 2.6 en la página de descarga. Esto es bastante desconcertante porque Python se movio a la version 2.6 dias antes de finalizar el 2008 y solo despues anunciaron Python 3.0. Porque MysqlDB no está al día?</p>
<p><strong>Así que estoy estancado con Python 2.5? </strong>No necesariamente &#8211; Si usas Linux, puedes compilar la fuente de MysqlDB en tu instalacion de Python, o si estas en Windows puedes simplemente descargar <a href="http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe">este obscuro release de MysqlDB</a></p>
<p><a href="http://timvalenta.wordpress.com/2009/02/04/python-26-mysql/">Artículo original en inglés</a></p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2009/12/mysql-tunnels-ssh/' rel='bookmark' title='Permanent Link: Mysql, Tunnels, SSH&#8230;'>Mysql, Tunnels, SSH&#8230;</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2009/05/python-26-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
