<?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>Michael Gomez &#187; desarrollo</title>
	<atom:link href="http://www.donubu.com/category/desarrollo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.donubu.com</link>
	<description>Actualidad y Negocios</description>
	<lastBuildDate>Mon, 04 Apr 2011 21:33:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>De vuelta luego de muchas campañas más</title>
		<link>http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/</link>
		<comments>http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 17:00:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[paginas]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[amfphp]]></category>
		<category><![CDATA[angel star]]></category>
		<category><![CDATA[barrio la fuente]]></category>
		<category><![CDATA[campañas]]></category>
		<category><![CDATA[celulares]]></category>
		<category><![CDATA[cracks]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[de culto]]></category>
		<category><![CDATA[digitales]]></category>
		<category><![CDATA[espacio]]></category>
		<category><![CDATA[falabella]]></category>
		<category><![CDATA[firme con la roja]]></category>
		<category><![CDATA[homecenter]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[nivea]]></category>
		<category><![CDATA[perfecto]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[piedra roja]]></category>
		<category><![CDATA[prime]]></category>
		<category><![CDATA[sodimac]]></category>
		<category><![CDATA[verdadera edad]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[youwow]]></category>
		<category><![CDATA[zapatillas]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=313</guid>
		<description><![CDATA[Ya es casi recurrente que luego de meses sin escribir en el Blog, aparezca con un monton de cosas para mostrar, entre ellas, las campañas más recientes en las cuales he participado (programando los backends, lo que tenga que ver con php + javascript ). Barrio la Fuente Sitio web bastante sencillo, con muy poca [...]]]></description>
			<content:encoded><![CDATA[<p>Ya es casi recurrente que luego de meses sin escribir en el Blog, aparezca con un monton de cosas para mostrar, entre ellas, las campañas más recientes en las cuales he participado (programando los backends, lo que tenga que ver con php + javascript <img src='http://www.donubu.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ).</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.barriolafuente.com/" target="_blank">Barrio la Fuente</a></strong></p>
<p><a href="http://www.barriolafuente.com/"><img class="size-medium wp-image-314" title="barriolafuente" src="http://www.donubu.com/wp-content/uploads/barriolafuente-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Sitio web bastante sencillo, con muy poca programación, pero con la integración de &#8220;Goals en analytics&#8221; y varios A/B Test que terminaron por transformar a la versión actual en la más exacta.</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.firmeconlaroja.cl/" target="_blank">Firme con la Roja</a></strong></p>
<p><a href="http://www.firmeconlaroja.cl"><img class="size-medium wp-image-315" title="firmeconlaroja" src="http://www.donubu.com/wp-content/uploads/firmeconlaroja-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Blog en WordPress con la campaña de Sodimac para llevar a 1.000.000 de Chilenos a Sudáfrica (Las fotos de cada uno en un lienzo gigante). Constaba de una aplicacion desarrollada en Flash para poder <a href="http://www.firmeconlaroja.cl/tu-grito" target="_blank">grabar los gritos de la hinchada</a> (en conjunto con una solución de <a href="http://www.mediastream.cl" target="_blank">Streaming</a>), una especie de <a href="http://www.firmeconlaroja.cl/el-lienzo" target="_blank">banner dinámico</a> donde se podían visualizar las fotos de las personas. Este <a href="http://www.firmeconlaroja.cl/el-lienzo" target="_blank">lienzo </a>iba creciendo a medida que llegaban las fotos al sistema, totalizando más de 1.000.000</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.niveaangelstar.cl" target="_blank">Nivea Angel Star Youwow</a></strong></p>
<p><a href="http://www.niveaangelstar.cl"><img class="alignnone size-medium wp-image-316" title="youwow" src="http://www.donubu.com/wp-content/uploads/youwow-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Una completa aplicación donde los usuarios podían subir su foto y la de sus amigos, para utilizarlas como personajes principales de 3 distintas películas (utilizando el tracking de puntos), donde la protagonista intentaba safar de &#8220;Un Jote, Un Perro faldero y una peculiar Flor&#8221;. Bastante interacción de Flash con servicios PHP basados en AMFPHP. URLs únicas y amigables para compartir con las demás personas a través de Twitter o Facebook.</p>
<p>También fue necesaria la utilización de un <a href="http://www.mediastream.cl" target="_blank">servidor de Streaming</a> para el almacenamiento de los videos.</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.tuverdaderaedad.cl" target="_blank">Tu Verdadera Edad</a></strong></p>
<p><a href="http://www.tuverdaderaedad.cl"><img class="alignnone size-medium wp-image-317" title="tuverdaderaedad" src="http://www.donubu.com/wp-content/uploads/tuverdaderaedad-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Otra aplicación más, donde la idea básica era que los usuarios podía subir una imagen, que posteriormente era evaluada por cualquier persona que entrase al sitio, que otorgaba una edad acorde a lo que la persona representaba. La gracia era que uno podía ingresar a su propio panel y saber que opinaban los otros de uno.</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.expoespaciovivo.cl/" target="_blank">Espacio Vivo</a></strong></p>
<p><a href="http://www.expoespaciovivo.cl/"><img class="alignnone size-medium wp-image-318" title="espaciovivo" src="http://www.donubu.com/wp-content/uploads/espaciovivo-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Minisitio de Homecenter Sodimac. Desarrollado en Flash (solo tuve que hacer la galería <img src='http://www.donubu.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  en AS3, lo demás lo potencio Theguaz)</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.zapatillasdeculto.cl/" target="_blank">Zapatillas de Culto</a></strong></p>
<p><a href="http://www.zapatillasdeculto.cl/"><img class="alignnone size-medium wp-image-319" title="zapatillas" src="http://www.donubu.com/wp-content/uploads/zapatillas-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Sitio web montado sobre WordPress. Con un montón de características desarrolladas desde 0, o en base a Plugins. <a href="http://www.zapatillasdeculto.cl/galeria" target="_blank">Una moderna galería </a>programada con JQuery y JSON. Planteaba ciertos desafíos de compatibilidad entre browsers.</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.primedigital.cl/" target="_blank">Prime Digital</a></strong></p>
<p><a href="http://www.primedigital.cl/"><img class="alignnone size-medium wp-image-320" title="prime" src="http://www.donubu.com/wp-content/uploads/prime-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Este es uno de esos proyectos que a uno le gusta mostrar  y destacar en el Portafolio. Es de aquellos que integra la mayor experticie en lo que uno desarrolla a diario. Integrando HTML + AS3 + CSS + PHP + JAVASCRIPT + Todo lo demás <img src='http://www.donubu.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Al igual que las versiones anteriores, posee un sistema inteligente de filtros, que van apareciendo a medida que uno avanza en la búsqueda del Teléfono Celular adecuado. Sistema de comentarios y iLike de Facebook. Reviews de las marcas, ZOOM de las imagenes, entre muchas otras cosas. Y lo mejor de todo es que esta con Ajax y no requiere actualizar ni esperar esas infinitas cargas.</p>
<div class="limpiar"></div>
<p><strong><a href="http://www.loscracks.cl/" target="_blank">Los Cracks</a></strong></p>
<p><a href="http://www.loscracks.cl/"><img class="alignnone size-medium wp-image-321" title="loscracks" src="http://www.donubu.com/wp-content/uploads/loscracks-300x123.jpg" alt="" width="300" height="123" /></a></p>
<p>Una aplicación para el mundial (Falabella), donde tu podías elegir a 5 Cracks (jugadores de alto nivel, como Messi, CR9, KAKA) y tener más oportunidades mientras estos hacían goles durante el mundial. A eso, se le podía sumar también, las invitaciones a tus amigos y el ingreso de boletas en Falabella.com</p>
<div class="limpiar"></div>
<p>&#8212;&#8212;&#8212;</p>
<p>La mayoría de estos proyectos integran mejoras que se van adquiriendo gracias a la experiencia en campañas pasadas. Cosas que me falta por agregar, son los History Browsing, para poder controlar los botones Atrás &#8211; Adelante en los navegadores (he visto muchos plugins, pero aún no encuentro el que necesito realmente, quizás hacerlo no sea una mala idea).</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li><li><a href="http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/" title="SonarFM &#8211; Sitio web de la Radio 2.0">SonarFM &#8211; Sitio web de la Radio 2.0</a></li><li><a href="http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/" title="Ya llego el Crush Power Music 2010">Ya llego el Crush Power Music 2010</a></li><li><a href="http://www.donubu.com/2009/03/11/jquery-lectura-y-procesamiento-de-archivos-json/" title="JQuery &#8211; Lectura y Procesamiento de Archivos JSON">JQuery &#8211; Lectura y Procesamiento de Archivos JSON</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nivea Silvermoto</title>
		<link>http://www.donubu.com/2010/02/26/nivea-silvermoto/</link>
		<comments>http://www.donubu.com/2010/02/26/nivea-silvermoto/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 15:09:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[amfphp]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[iones]]></category>
		<category><![CDATA[juego]]></category>
		<category><![CDATA[moto]]></category>
		<category><![CDATA[nivea]]></category>
		<category><![CDATA[participa]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[silver]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=307</guid>
		<description><![CDATA[Nueva campaña para Nivea SilverMoto. Participa en el juego de los IONES y ganate uno de los pack o afeitadoras diarias. Si durante el juego invitas a uno de tus amigos, podrás obtener de forma automática 5 oportunidades más seguir jugando. Desarrollado con actionscript 3 + Flash + AMFPHP para el backend de la aplicación. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.silvermoto.cl" target="_blank"><img class="aligncenter size-medium wp-image-308" title="silvermoto" src="http://www.donubu.com/wp-content/uploads/silvermoto-300x105.jpg" alt="" width="300" height="105" /></a></p>
<p>Nueva campaña para <a href="http://www.silvermoto.cl/" target="_blank">Nivea SilverMoto</a>. Participa en el juego de los IONES y ganate uno de los pack o afeitadoras diarias. Si durante el juego invitas a uno de tus amigos, podrás obtener de forma automática 5 oportunidades más seguir jugando.<br />
Desarrollado con actionscript 3 + Flash + AMFPHP para el backend de la aplicación.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/" title="Ya llego el Crush Power Music 2010">Ya llego el Crush Power Music 2010</a></li><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/" title="Eucerin Solar http://www.eucerinsolar.com">Eucerin Solar http://www.eucerinsolar.com</a></li><li><a href="http://www.donubu.com/2009/11/10/eucerin-kids-httpwww-eucerinkids-com/" title="Eucerin Kids http://www.eucerinkids.com">Eucerin Kids http://www.eucerinkids.com</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2010/02/26/nivea-silvermoto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Envía halagos a empresas chilenas que lo merezcan</title>
		<link>http://www.donubu.com/2010/02/26/envia-halagos-a-empresas-chilenas-que-lo-merezcan/</link>
		<comments>http://www.donubu.com/2010/02/26/envia-halagos-a-empresas-chilenas-que-lo-merezcan/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 14:50:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[agregar]]></category>
		<category><![CDATA[calificar]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[comentar]]></category>
		<category><![CDATA[empresas]]></category>
		<category><![CDATA[evaluar]]></category>
		<category><![CDATA[halagar]]></category>
		<category><![CDATA[halagos]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=302</guid>
		<description><![CDATA[Está por nacer un nuevo servicio para enviar reclamos halagos a las empresas Chilenas. Dejando un mensaje que el resto de la comunidad podrá evaluar y comentar. Así podremos conocer a las empresas mejor calificadas dentro del sitio y con el mayor número de reclamos halagos. El sitio donde aparecen los reclamos halagos lo puedes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.halagos.cl/" target="_blank"><img class="aligncenter size-full wp-image-303" title="logotipo de halagos.cl" src="http://www.donubu.com/wp-content/uploads/logo1.png" alt="logotipo de halagos.cl" width="237" height="87" /></a>
<div class="limpiar"></div>
<p>Está por nacer un nuevo servicio para enviar <span style="text-decoration: line-through;">reclamos</span> halagos a las empresas Chilenas. Dejando un mensaje que el resto de la comunidad podrá evaluar y comentar. Así podremos conocer a las empresas mejor calificadas dentro del sitio y con el mayor número de <span style="text-decoration: line-through;">reclamos</span> halagos.</p>
<p>El sitio donde aparecen los <span style="text-decoration: line-through;">reclamos</span> halagos lo puedes ver en <a href="http://www.halagos.cl/" target="_blank">http://www.halagos.cl/</a> (Es solo texto, ya viene la aplicación).</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/12/24/mu-darck-servidor-mu-chileno/" title="MUDarck &#8211; Servidor de MU Chileno">MUDarck &#8211; Servidor de MU Chileno</a></li><li><a href="http://www.donubu.com/2008/06/16/estadisticas-en-guia-rancagua/" title="Estadisticas en Guia Rancagua">Estadisticas en Guia Rancagua</a></li><li><a href="http://www.donubu.com/2008/06/15/chile-2-bolivia-0/" title="Chile 2 &#8211; Bolivia 0">Chile 2 &#8211; Bolivia 0</a></li><li><a href="http://www.donubu.com/2008/01/14/nintendo-chile/" title="Nintendo Chile &#8211; No Oficial">Nintendo Chile &#8211; No Oficial</a></li><li><a href="http://www.donubu.com/2008/01/11/guia-rancagua/" title="Guia Rancagua">Guia Rancagua</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2010/02/26/envia-halagos-a-empresas-chilenas-que-lo-merezcan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar bw_mod dentro de CPANEL</title>
		<link>http://www.donubu.com/2010/02/23/configurar-bw_mod-dentro-de-cpanel/</link>
		<comments>http://www.donubu.com/2010/02/23/configurar-bw_mod-dentro-de-cpanel/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 16:09:11 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[administracion]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[panel]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[ancho de banda]]></category>
		<category><![CDATA[apxs]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[cpanel]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[limitar]]></category>
		<category><![CDATA[mod_bw]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=297</guid>
		<description><![CDATA[Estuve investigando hace algunos días atrás la posibilidad de limitar cierto tráfico (http) hacia los servidores de la agencia en la cual trabajo (como coordinador de desarrollo) y luego de intentarlo varias veces sin éxito, me topé con un MOD para apache desarrollado por Bruce (Iván Barrera) . Para poder realizar este tutorial, debes tener [...]]]></description>
			<content:encoded><![CDATA[<p>Estuve investigando hace algunos días atrás la posibilidad de limitar cierto tráfico (http) hacia los servidores de la agencia en la cual trabajo (como coordinador de desarrollo) y luego de intentarlo varias veces sin éxito, me topé con un MOD para apache desarrollado por <a href="http://ivn.cl/" target="_blank">Bruce (Iván Barrera) </a> .</p>
<p>Para poder realizar este tutorial, debes tener permisos de ROOT sobre el servidor con CPANEL que estes utilizando.</p>
<p>Lo primero que tuve que hacer fue descargarme el código fuente actual (<a href="http://ivn.cl/files/source/mod_bw-0.8.tgz" target="_blank">mod_bw v0.8 – Source Code</a>) hacia el servidor, y luego correr el comando (Ojo que la instalación la saqué directamente del <a href="http://legacy.ivn.cl/files/txt/mod_bw-0.8.txt" target="_blank">Readme adjunto con el código de fuente</a>):<span id="more-297"></span></p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">apxs -i -a -c mod_bw.c
<span style="color: #adadad; font-style: italic;">#o bien</span>
apxs2 -i -a -c mod_bw.c</pre></div></div>

<p>Automáticamente, el archivo httpd.conf ( /usr/local/apache/conf/httpd.conf )  será modificado y aparecerá la línea de configuración:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">LoadModule</span> bw_module modules/mod_bw.so</pre></div></div>

<p>Posteriormente reinicia el servicio httpd (ya sea por consola o bien por el administrador WHM en Restart Services &gt; Httpd Server</p>
<p>Una vez reiniciado, necesitamos especificar las políticas de límites en las conexiones, para ello, es necesario agregar parametros dentro de los virtualhosts de apache. En Cpanel, la única forma de poder hacerlo, es crear includes dentro de una estructura de carpetas reconocidas por la aplicación (ya que el bloque de código que utiliza se genera de forma automática). <a href="http://www.cpanel.net/documentation/easyapache/customdirectives.html" target="_blank">En este link está el modelo que sigue la aplicación</a>.</p>
<p>La estructura a crear es sencilla</p>

<div class="wp_syntax"><div class="code"><pre class="linux" style="font-family:monospace;">/usr/local/apache/conf/userdata/std/2/X_USUARIO_X/X_DOMINIO_X</pre></div></div>

<p>Lo que necesitamos es conocer el nombre de usuario y el dominio que vamos a limitar. En este caso y a modo de ejemplo el usuario es donubu y el dominio donubu.com</p>
<p>En la consola de linux ejecutamos el comando:</p>

<div class="wp_syntax"><div class="code"><pre class="linux" style="font-family:monospace;">mkdir -p /usr/local/apache/conf/userdata/std/2/donubu/donubu.com</pre></div></div>

<p>y si se fijan, utilice los datos anteriores al final de la estructura de carpetas que cree.</p>
<p>Luego, debo entrar a esas carpetas y crear un archivo .conf en este caso lo llamé limit.conf</p>

<div class="wp_syntax"><div class="code"><pre class="linux" style="font-family:monospace;">cd /usr/local/apache/conf/userdata/std/2/donubu/donubu.com
touch limit.conf
nano limit.conf</pre></div></div>

<p>y pegue dentro una regla sencilla:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">BandWidthModule</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">ForceBandWidthModule</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">LargeFileLimit</span> .rar <span style="color: #ff0000;">500</span> <span style="color: #ff0000;">50000</span></pre></div></div>

<p>Que enciende el mod_bw , y forza todas las descargas de archivos terminados en .rar que pesen mas de 500kb a una velocidad de 50kbs en promedio.</p>
<p>Hasta el momento tenemos el modulo instalado, la regla creada y sólo nos falta indicarle a Apache que hemos modificado el archivo de configuración y que necesita actualizarlo. Para esto ejecutamos en consola:</p>

<div class="wp_syntax"><div class="code"><pre class="linux" style="font-family:monospace;">/usr/local/cpanel/bin/apache_conf_distiller --update
/scripts/rebuildhttpdconf</pre></div></div>

<p>Si todo va bien, verás el mensaje de confirmación, sino, te indicará el error asociado. Finalmente, y como recomendación, reiniciar nuevamente el servicio Httpd.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/05/16/tutorial-3-limitar-descargas-con-php-y-mysql-descargas-simultaneas-y-velocidad-de-bajada/" title="Tutorial 3: Limitar Descargas con PHP y MySQL &#8211; descargas simultaneas y velocidad de bajada">Tutorial 3: Limitar Descargas con PHP y MySQL &#8211; descargas simultaneas y velocidad de bajada</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li><li><a href="http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/" title="Programacion en PHP, migrar de entornos de desarrollo a productivos">Programacion en PHP, migrar de entornos de desarrollo a productivos</a></li><li><a href="http://www.donubu.com/2009/01/07/instalar-cakephp-desde-0-y-configurar-la-consola-en-windows/" title="Instalar Cakephp desde 0 y configurar la consola en windows">Instalar Cakephp desde 0 y configurar la consola en windows</a></li><li><a href="http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/" title="VB.NET &#8211; Utilizar un Listview para desplegar datos">VB.NET &#8211; Utilizar un Listview para desplegar datos</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2010/02/23/configurar-bw_mod-dentro-de-cpanel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dimelotu.cl &#8211; Decir te quiero ya no sera un problema</title>
		<link>http://www.donubu.com/2010/02/04/dimelotu-cl-decir-te-quiero-ya-no-sera-un-problema/</link>
		<comments>http://www.donubu.com/2010/02/04/dimelotu-cl-decir-te-quiero-ya-no-sera-un-problema/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:10:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[ocio]]></category>
		<category><![CDATA[paginas]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[chica]]></category>
		<category><![CDATA[dimelotu]]></category>
		<category><![CDATA[esposa]]></category>
		<category><![CDATA[Mensajes]]></category>
		<category><![CDATA[novia]]></category>
		<category><![CDATA[romanticos]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=290</guid>
		<description><![CDATA[Así es, ha llegado una nueva aplicación web llamada &#8220;Dimelotu&#8221; que nos da una ayudadita con el envío de mensajes románticos para nuestra Chica, polola, novia, esposa y lo mejor es que nosotros nos llevamos el crédito. Es una prueba de laboratorio con PHP, CSS, HTML y un par de truquitos mas. Dimelo Tú Articulos [...]]]></description>
			<content:encoded><![CDATA[<p>Así es, ha llegado una nueva aplicación web llamada &#8220;Dimelotu&#8221; que nos da una ayudadita con el envío de mensajes románticos para nuestra Chica, polola, novia, esposa y lo mejor es que nosotros nos llevamos el crédito.</p>
<p><a href="http://www.dimelotu.cl" target="_blank"><img class="aligncenter size-full wp-image-291" title="facebook" src="http://www.donubu.com/wp-content/uploads/facebook.jpg" alt="" width="200" height="200" /></a></p>
<div class="limpiar"></div>
<p>Es una prueba de laboratorio con PHP, CSS, HTML y un par de truquitos mas. <a href="http://www.dimelotu.cl" target="_blank">Dimelo Tú</a></p>
<div class="limpiar"></div>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/04/13/recopilacion-de-los-ultimos-30-mensajes/" title="Recopilación de los últimos 30 mensajes">Recopilación de los últimos 30 mensajes</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2010/02/04/dimelotu-cl-decir-te-quiero-ya-no-sera-un-problema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oportunidad Digital &#8220;Fotografía&#8221;</title>
		<link>http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/</link>
		<comments>http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 13:24:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[falabella]]></category>
		<category><![CDATA[fotografia]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[oportunidad]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=286</guid>
		<description><![CDATA[Hace algunos días se entrego el nuevo sitio para Oportunidad Digital &#8220;Fotografía&#8221;. Desarrollado en HTML + CSS y harto Javascript de la mano de jQuery. Se aplico un sistema de &#8220;filtros inteligentes&#8221;, que van apareciendo de acuerdo a los resultados que van quedando y agrupandose de acuerdo al mismo parámetro y luego son entregados a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oportunidaddigital.cl" target="_blank"><img class="aligncenter size-medium wp-image-287" title="oportunidaddigital" src="http://www.donubu.com/wp-content/uploads/op-300x196.jpg" alt="" width="300" height="196" /></a><br />
Hace algunos días se entrego el nuevo sitio para <a href="http://www.oportunidaddigital.cl">Oportunidad Digital &#8220;Fotografía&#8221;</a>. Desarrollado en HTML + CSS y harto Javascript de la mano de jQuery. Se aplico un sistema de &#8220;filtros inteligentes&#8221;, que van apareciendo de acuerdo a los resultados que van quedando y agrupandose de acuerdo al mismo parámetro y luego son entregados a la aplicación Flash que controla la aplicación paso a paso.</p>
<p>El slider de productos se forma a través de una respuesta JSON, que se genera en cada clic sobre los botones de avanzar y retroceder, y una vez que cargan, se desliza una mascara para dar el efecto de slide.</p>
<p>También se reprogramo un sistema de ventanas modales &#8220;<a href="http://fancybox.net/" target="_blank">Fancybox</a>&#8221; para poder implementar 2 hojas de estilo en la misma ventana modal (para las imagenes del fondo y bordes).</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/" title="Ya llego el Crush Power Music 2010">Ya llego el Crush Power Music 2010</a></li><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2009/03/11/jquery-lectura-y-procesamiento-de-archivos-json/" title="JQuery &#8211; Lectura y Procesamiento de Archivos JSON">JQuery &#8211; Lectura y Procesamiento de Archivos JSON</a></li><li><a href="http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/" title="htmlSQL &#8211; Un parser SQL para archivos HTML">htmlSQL &#8211; Un parser SQL para archivos HTML</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ya llego el Crush Power Music 2010</title>
		<link>http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/</link>
		<comments>http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 15:07:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[amfphp]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[crush]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[mayo]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[power]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=283</guid>
		<description><![CDATA[Ya esta al aire el sitio web del Crush Power Music 2010. Desarrollado para MayoDraft con HTML + CSS  + JS y por supuesto con el sistema de votaciones en Flash CS4 con ActionScript3 y AMFPHP. Articulos RelacionadosDe vuelta luego de muchas campañas másNivea SilvermotoOportunidad Digital &#8220;Fotografía&#8221;htmlSQL &#8211; Un parser SQL para archivos HTMLMicrosoft Silverlight [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.crushpowermusic.com/" target="_blank"><img class="aligncenter size-full wp-image-284" title="Crush Power Music" src="http://www.donubu.com/wp-content/uploads/cpm_sc.JPG" alt="Crush Power Music" width="383" height="243" /></a></p>
<div class="limpiar"></div>
<p>Ya esta al aire el <a href="http://www.crushpowermusic.com/" target="_blank">sitio web del Crush Power Music 2010</a>. Desarrollado para <a href="http://www.mayopublicidad.cl" target="_blank">MayoDraft</a> con HTML + CSS  + JS y por supuesto con el sistema de votaciones en Flash CS4 con ActionScript3 y AMFPHP.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/" title="htmlSQL &#8211; Un parser SQL para archivos HTML">htmlSQL &#8211; Un parser SQL para archivos HTML</a></li><li><a href="http://www.donubu.com/2008/04/11/microsoft-silverlight-vs-adobe-flex/" title="Microsoft Silverlight VS Adobe Flex">Microsoft Silverlight VS Adobe Flex</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eucerin Solar http://www.eucerinsolar.com</title>
		<link>http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/</link>
		<comments>http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 15:45:25 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[eucerin]]></category>
		<category><![CDATA[experto]]></category>
		<category><![CDATA[kids]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[solar]]></category>
		<category><![CDATA[ssi]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=275</guid>
		<description><![CDATA[Al igual que con Eucerin kids, Eucerin Solar es el nuevo proyecto que sale al aire. Uno de los principales desafíos era determinar la forma en la cual cargar elementos compartidos sin utilizar PHP (por que realmente era innecesario). Aplicando técnicas aprendidas, determinamos que usar SSI (Server Side Includes) (El próximo post será sobre esto) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eucerinsolar.com" target="_blank"><img class="aligncenter size-full wp-image-276" title="logo_05" src="http://www.donubu.com/wp-content/uploads/logo_05.png" alt="logo_05" width="130" height="58" /></a></p>
<p>Al igual que con <a href="http://www.eucerinkids.com" target="_blank">Eucerin kids</a>, <a href="http://www.eucerinsolar.com" target="_blank">Eucerin Solar</a> es el nuevo proyecto que sale al aire. Uno de los principales desafíos era determinar la forma en la cual cargar elementos compartidos sin utilizar PHP (por que realmente era innecesario).</p>
<p>Aplicando técnicas aprendidas, determinamos que usar <a href="http://httpd.apache.org/docs/1.3/howto/ssi.html" target="_blank">SSI (Server Side Includes)</a> (El próximo post será sobre esto) sería lo más óptimo. Además en una de las secciones principales se agregó un <a href="http://www.eucerinsolar.com/experto" target="_blank">Blog desarrollado sobre WordPress</a> con un theme propio. Contiene también su <a href="http://www.eucerinsolar.com/dermacenter.html" target="_blank">Google Map para localizar tiendas DERMACENTER cercanas</a> y un <a href="http://www.eucerinsolar.com/concurso.html" target="_blank">concurso para ganar productos Eucerin solar para un mes</a>.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/11/10/eucerin-kids-httpwww-eucerinkids-com/" title="Eucerin Kids http://www.eucerinkids.com">Eucerin Kids http://www.eucerinkids.com</a></li><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2009/10/28/validar-emails-con-php-de-forma-segura-y-eficiente/" title="Validar Emails con PHP de forma segura y eficiente">Validar Emails con PHP de forma segura y eficiente</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eucerin Kids http://www.eucerinkids.com</title>
		<link>http://www.donubu.com/2009/11/10/eucerin-kids-httpwww-eucerinkids-com/</link>
		<comments>http://www.donubu.com/2009/11/10/eucerin-kids-httpwww-eucerinkids-com/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 14:03:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[advergame]]></category>
		<category><![CDATA[desafia al sol]]></category>
		<category><![CDATA[eucerin]]></category>
		<category><![CDATA[juego]]></category>
		<category><![CDATA[kids]]></category>
		<category><![CDATA[premios]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=270</guid>
		<description><![CDATA[Hace algunos meses me integré al equipo de Mayopublicidad (DraftFCB+IDB), tomando un cargo en el área de desarrollo. Dentro de los primeros proyectos, se encuentra el sitio web de Eucerin Kids que fue programado &#8220;por supuesto&#8221; sobre CakePHP. Incluye una completa galería, un listado de productos, y además, un Advergame &#8220;Ganador de su categoría en [...]]]></description>
			<content:encoded><![CDATA[<p>Hace algunos meses me integré al equipo de Mayopublicidad (DraftFCB+IDB), tomando un cargo en el área de desarrollo. Dentro de los primeros proyectos, se encuentra el sitio web de <a href="http://www.eucerinkids.com" target="_blank">Eucerin Kids</a> que fue programado &#8220;por supuesto&#8221; sobre CakePHP. Incluye una completa galería, un listado de productos, y además, <a href="http://www.eucerinkids.com/juego.html" target="_blank">un Advergame</a> &#8220;<a href="http://www.iabawards.cl/" target="_blank">Ganador de su categoría en la IAB Awards</a>&#8220;.</p>
<p><a href="http://www.eucerinkids.com" target="_blank"><img class="aligncenter size-full wp-image-271" title="eucerink" src="http://www.donubu.com/wp-content/uploads/eucerink.gif" alt="eucerink" width="200" height="200" /></a></p>
<div class="limpiar"></div>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/" title="Eucerin Solar http://www.eucerinsolar.com">Eucerin Solar http://www.eucerinsolar.com</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2008/03/04/vantage-master-juego-rol-freeware/" title="Vantage Master: Juego de Rol y Fantasía">Vantage Master: Juego de Rol y Fantasía</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/11/10/eucerin-kids-httpwww-eucerinkids-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSGB Emulador gameboy en Javascript</title>
		<link>http://www.donubu.com/2009/11/03/jsgb-emulador-gameboy-en-javascript/</link>
		<comments>http://www.donubu.com/2009/11/03/jsgb-emulador-gameboy-en-javascript/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 13:59:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[browser]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nintendo]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[emulador]]></category>
		<category><![CDATA[gameboy]]></category>
		<category><![CDATA[gb]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[juegos]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=265</guid>
		<description><![CDATA[Aunque suene totalmente &#8220;extraño&#8221;, Pedro Ladaria ha desarrollado un emulador de juegos Gameboy (.gb) con Javascript, utilizando todo el potencial de este lenguaje. Si deseas testear los resultados, te recomiento que utilices Google Chrome. Para ver la demo http://www.codebase.es/jsgb/ Articulos RelacionadosVibora 2.0 con Twitter ConnectDe vuelta luego de muchas campañas másOportunidad Digital &#8220;Fotografía&#8221;Open Flash Chart, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-266" style="float:left; margin: 4px;" title="gameboy" src="http://www.donubu.com/wp-content/uploads/gameboy-265x300.jpg" alt="gameboy" width="180" height="204" />Aunque suene totalmente &#8220;extraño&#8221;, Pedro Ladaria ha desarrollado un emulador de juegos Gameboy (.gb) con Javascript, utilizando todo el potencial de este lenguaje. Si deseas testear los resultados, te recomiento que utilices <a href="http://www.google.cl/chrome" target="_blank">Google Chrome</a>.</p>
<p>Para ver la demo <a href="http://www.codebase.es/jsgb/" target="_blank">http://www.codebase.es/jsgb/</a></p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2008/01/22/open-flash-chart-graficosn/" title="Open Flash Chart, Crea Gráficos con Flash">Open Flash Chart, Crea Gráficos con Flash</a></li><li><a href="http://www.donubu.com/2008/01/18/generador-sitemaps-online/" title="Generador de Sitemaps">Generador de Sitemaps</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/11/03/jsgb-emulador-gameboy-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips cakePHP</title>
		<link>http://www.donubu.com/2009/10/28/tips-cakephp/</link>
		<comments>http://www.donubu.com/2009/10/28/tips-cakephp/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:31:57 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[ayuda]]></category>
		<category><![CDATA[controlador]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[modelo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[views]]></category>
		<category><![CDATA[vistas]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=256</guid>
		<description><![CDATA[Quiero recopilar todos los tips (que me acuerdo) de cakePHP, aquellos que nos ayudan a realizar tareas cotidianas y evitar tener que recurrir constantemente a google para poder encontrarlo. Desde un controlador: Cambiar el layout $this-&#62;layout = 'nombre_del_layout'; Cambiar la cantidad de resultados del paginador var $paginate = array&#40;'limit'=&#62; 1000&#41;;  // Definirlo como atributo del [...]]]></description>
			<content:encoded><![CDATA[<p>Quiero recopilar todos los tips (que me acuerdo) de cakePHP, aquellos que nos ayudan a realizar tareas cotidianas y evitar tener que recurrir constantemente a google para poder encontrarlo.</p>
<p><strong>Desde un controlador:</strong></p>
<p><em><strong>Cambiar el layout</strong></em></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">layout</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'nombre_del_layout'</span><span style="color: #339933;">;</span></pre></div></div>

<p><em><strong>Cambiar la cantidad de resultados del paginador</strong></em></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$paginate</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'limit'</span><span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// Definirlo como atributo del controlador y no dentro de un metodo.</span></pre></div></div>

<p><em><strong>Obtener uno o todos los parametros que vienen por la URL</strong></em></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nombre-del-parametro'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
pr<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//La funcion pr es similar a print_r aunque con mas estilo, además, está disponible en cualquier archivo que dependa de cakePHP.</span></pre></div></div>

<p><em><strong>Activar el conector con la base de datos</strong></em></p>
<p><em>Esta práctica atenta contra el modelo MVC, por lo cual, si lo usas debe ser en casos muy aislados.</em></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">uses<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'model/connection_manager'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Agregarlo antes de la definicion de Class...</span>
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span> ConnectionManager<span style="color: #339933;">::</span><span style="color: #004000;">getDataSource</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'default'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// dentro de un modelo del controlador</span>
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Select * from X'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><em><strong>Redireccion a X lugar</strong></em></p>
<p><em>Para mantener el controlador y solo redireccionar el metodo:</em></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">redirect</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><em>Para cambiar el controlador y el metodo</em></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">redirect</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'controller'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><em>Al utilizar el array como parametro, se aplica la Inversa del ROUTES, por ende, si defines que el users/index sea usuarios.html, entonces, la redireccion va a ser contra usuarios.html.</em></p>
<p>En fin, voy a extender y actualizar este post mientras vaya recopilando mas TIPS.<em><br />
</em></p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2007/12/29/cakephp-introduccion/" title="CakePHP: un buen pastel de chocolate">CakePHP: un buen pastel de chocolate</a></li><li><a href="http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/" title="Programacion en PHP, migrar de entornos de desarrollo a productivos">Programacion en PHP, migrar de entornos de desarrollo a productivos</a></li><li><a href="http://www.donubu.com/2009/01/07/instalar-cakephp-desde-0-y-configurar-la-consola-en-windows/" title="Instalar Cakephp desde 0 y configurar la consola en windows">Instalar Cakephp desde 0 y configurar la consola en windows</a></li><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/10/28/tips-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SonarFM version 2.0 Recargada</title>
		<link>http://www.donubu.com/2009/07/06/sonarfm-version-2-0-recargada/</link>
		<comments>http://www.donubu.com/2009/07/06/sonarfm-version-2-0-recargada/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 15:08:51 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[artistas]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[concursos]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[noticias]]></category>
		<category><![CDATA[nowplaying]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[sonarfm]]></category>
		<category><![CDATA[v2]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=239</guid>
		<description><![CDATA[Hace algunos meses atrás, en mediastream lanzamos la primera version de SonarFM, la que ahora ha vuelto totalmente recargada. Con un diseño renovado y una excelente interactividad entre usuarios. Esta nueva versión incluye más secciones que la anterior. Agenda (Eventos) , concursos, blog de programas que salen al aire, listado de artistas, letras de canciones, [...]]]></description>
			<content:encoded><![CDATA[<p>Hace algunos meses atrás, en mediastream lanzamos la primera version de <a href="http://www.sonarfm.cl">SonarFM</a>, la que ahora ha vuelto totalmente recargada. Con un diseño renovado y una excelente interactividad entre usuarios.</p>
<p><a href="http://www.sonarfm.cl"><img class="aligncenter size-medium wp-image-240" title="sonarv2" src="http://www.donubu.com/wp-content/uploads/sonarv2-300x170.jpg" alt="sonarv2" width="300" height="170" /></a>Esta nueva versión incluye más secciones que la anterior. Agenda (Eventos) , concursos, blog de programas que salen al aire, listado de artistas, letras de canciones, comentarios en la canción que esta sonando y muchas cosas más.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/" title="SonarFM &#8211; Sitio web de la Radio 2.0">SonarFM &#8211; Sitio web de la Radio 2.0</a></li><li><a href="http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/" title="Eucerin Solar http://www.eucerinsolar.com">Eucerin Solar http://www.eucerinsolar.com</a></li><li><a href="http://www.donubu.com/2009/10/28/tips-cakephp/" title="Tips cakePHP">Tips cakePHP</a></li><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/" title="Programacion en PHP, migrar de entornos de desarrollo a productivos">Programacion en PHP, migrar de entornos de desarrollo a productivos</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/07/06/sonarfm-version-2-0-recargada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SonarFM &#8211; Sitio web de la Radio 2.0</title>
		<link>http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/</link>
		<comments>http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 23:00:45 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[musica]]></category>
		<category><![CDATA[paginas]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fm]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[nowplaying]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[sonar]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[wikipedia]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=231</guid>
		<description><![CDATA[En Mediastream (lugar donde trabajo), hace ya unos días acabamos de lanzar un moderno portal para SONARFM una radio que va de la mano del rock, una alternativa real a todo lo que existe actualmente en el mundo de las radios. Con una nueva interfaz para el usuario, poniendo a su disposición un player con [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://www.mediastream.cl" target="_blank">Mediastream </a>(lugar donde trabajo), hace ya unos días acabamos de lanzar un moderno portal para <a href="http://www.sonarfm.cl">SONARFM </a>una radio que va de la mano del rock, una alternativa real a todo lo que existe actualmente en el mundo de las radios.</p>
<p><a href="http://www.sonarfm.cl" target="_blank"><img class="aligncenter size-medium wp-image-232" title="sonarfmm" src="http://www.donubu.com/wp-content/uploads/sonarfmm-300x189.png" alt="sonarfmm" width="300" height="189" /></a></p>
<p>Con una nueva interfaz para el usuario, poniendo a su disposición un player con la información de la canción que esta sonando, con el nombre del artista, el nombre de la canción y la posibilidad de poder calificar las canciones o publicarlas a través de <a href="http://www.twitter.com" target="_blank">Twitter </a>y <a href="http://www.facebook.com" target="_blank">Facebook</a>. Y de forma adicional a todo eso, además, se incluyen también noticias relacionadas, la web oficial, videos <a href="http://www.youtube.com" target="_blank">youtube</a>, <a href="http://www.myspace.com" target="_blank">myspace </a>y la letra de la canción junto a el listado de las últimas 5 canciones que han sonando (con la posibilidad de poder buscar por horas).</p>
<p><span id="more-231"></span></p>
<p>En cuanto a los usuarios, se les otorga 2 opciones, la primera es el registro común y típico a través de email y también lo 2.0 de la mano de Facebook, para que puedan loguearse utilizando su cuenta en esta red social.</p>
<p>Y finalmente en el área de desarrollo, fue programado en <a href="http://www.cakephp.org">CAKEPHP</a> (en mi opinión el mejor framework PHP que existe), utilizando AJAX y llamadas a archivos JSON, sin recargar la página de forma excesiva, para poder mantener la Radio Sonando todo el tiempo. Ha sido  todo un reto al implementar un grupo importante de APIs y espero que <a href="http://www.sonarfm.cl" target="_blank">la versión actual SONARFM 1.0</a> les guste.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2009/07/06/sonarfm-version-2-0-recargada/" title="SonarFM version 2.0 Recargada">SonarFM version 2.0 Recargada</a></li><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2009/03/11/jquery-lectura-y-procesamiento-de-archivos-json/" title="JQuery &#8211; Lectura y Procesamiento de Archivos JSON">JQuery &#8211; Lectura y Procesamiento de Archivos JSON</a></li><li><a href="http://www.donubu.com/2008/01/11/wegame-youtube-gamers/" title="WEGAME &#8211; El youtube pero para gamers">WEGAME &#8211; El youtube pero para gamers</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JQuery &#8211; Lectura y Procesamiento de Archivos JSON</title>
		<link>http://www.donubu.com/2009/03/11/jquery-lectura-y-procesamiento-de-archivos-json/</link>
		<comments>http://www.donubu.com/2009/03/11/jquery-lectura-y-procesamiento-de-archivos-json/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 15:44:50 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[load]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=217</guid>
		<description><![CDATA[Sin duda, los archivos JSON han revolucionado la manera de enviar y recibir parametros dentro de nuestras aplicaciones web. No les voy a hablar en detalle sobre la definicion de un JSON, pero si como procesarlos con JQuery. Lo primero, es descargarse la librería JQuery desde la página oficial (versión minimizada o comprimida). Luego, creamos [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.donubu.com/wp-content/uploads/logo_jquery_215x53.gif" alt="logo_jquery_215x53" title="logo_jquery_215x53" width="215" height="53" class="aligncenter size-full wp-image-218" style="background: #000" /><br />
<br class="limpiar" /><br />
Sin duda, los archivos JSON han revolucionado la manera de enviar y recibir parametros dentro de nuestras aplicaciones web. No les voy a hablar en detalle sobre la definicion de un JSON, pero si como procesarlos con JQuery.</p>
<p>Lo primero, es descargarse la librería JQuery desde la página oficial (versión minimizada o comprimida). Luego, creamos un script dentro de nuestra pagina, para especificar la funcion que va a buscar un JSON y luego procesarlo. A su vez, crearemos también un archivo llamado archivo.json.</p>
<p><strong>archivo.json</strong><br />
[{"id": "1", "author": "Sin bandera", "song" : "Suelta mi mano"},{"id": "2", "author": "Sin bandera", "song" : "Que lloro"}]</p>
<p><strong>funcion javascript, que puede ir dentro del html, o bien, en un .js</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> loadJson<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'archivo.json'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
           $.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>data<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
               <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">item</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
           <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Sinceramente, es algo extremadamente fácil, sin embargo, los ejemplos en español son rebuscados o quizás muy extensos y no se logra ver la facilidad que tiene JQuery para procesarlos.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/" title="SonarFM &#8211; Sitio web de la Radio 2.0">SonarFM &#8211; Sitio web de la Radio 2.0</a></li><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2008/01/09/framework-javascript-extjs/" title="ExtJS Excelente Framework Javascript UI">ExtJS Excelente Framework Javascript UI</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/03/11/jquery-lectura-y-procesamiento-de-archivos-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programacion en PHP, migrar de entornos de desarrollo a productivos</title>
		<link>http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/</link>
		<comments>http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 15:08:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[conflictos]]></category>
		<category><![CDATA[dll]]></category>
		<category><![CDATA[entornos]]></category>
		<category><![CDATA[extensiones]]></category>
		<category><![CDATA[funciones]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[librerias]]></category>
		<category><![CDATA[migrar]]></category>
		<category><![CDATA[productivo]]></category>
		<category><![CDATA[so]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=208</guid>
		<description><![CDATA[Uno de los principales problemas de la programación de aplicaciones en PHP, es el tema de migrar de un entorno de desarrollo, a un entorno final o productivo. Esto ocurre, ya que en el pc donde estamos programando, normalmente disponemos de todos los permisos necesarios para instalar extensiones que vamos utilizando, sin embargo, en un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-212" title="2280277753_e1d7f852ba" src="http://www.donubu.com/wp-content/uploads/2280277753_e1d7f852ba-225x300.jpg" alt="2280277753_e1d7f852ba" width="225" height="300" /></p>
<div class="limpiar"></div>
<p>Uno de los principales problemas de la programación de aplicaciones en PHP, es el tema de migrar de un entorno de desarrollo, a un entorno final o productivo. Esto ocurre, ya que en el pc donde estamos programando, normalmente disponemos  de todos los permisos necesarios para instalar extensiones que vamos utilizando, sin embargo, en un servidor, la mayoría  de las veces no tenemos acceso a nada, incluyendo el php.ini, ya sea por que es un host gratuito, pagado, pero no un servidor dedicado.</p>
<p>De las extensiones o funciones  más usadas y a su vez la que mayormente nos causan problemas a la hora de migrar:<span id="more-208"></span></p>
<p><a href="http://cl2.php.net/manual/es/book.image.php" target="_blank"><strong>GD2</strong></a></p>
<p>Esta librería se utiliza para el tratamiento de imagenes. Ya sea al vuelo, o generar imagenes estaticas. Mayormente la aplicamos en generación de thumbnails, captcha para evitar spam en formularios, entre otras cosas. A veces, por un tema de rendimiento en servidores gratuitos o host de bajo precio, viene deshabilitada por defecto. A su vez, puede ocurrir que este habilitada, pero sin soporte para la librería lib-jpg, lo que nos causaría el problema de no poder utilizar el formato JPG.</p>
<p><a href="http://cl.php.net/mcrypt" target="_blank"><strong>MCRYPT</strong></a></p>
<p>Aplicada en el proceso de cifrar información (NO ENCRIPTAR, que es un mal uso de la palabra, ya que la traducción de encrypt, es CIFRAR). No esta habilitada por defecto.</p>
<p><a href="http://cl.php.net/simplexml" target="_blank"><strong>SIMPLEXML</strong></a></p>
<p>Esta librería solo esta disponible en php5, por ende todos los host con php4 no podrán ejecutarla. Viene por defecto, pero simplemente para php5. Se utiliza para la lectura y creación de archivos XML.</p>
<p><a href="http://cl.php.net/json" target="_blank"><strong>JSON</strong></a></p>
<p>Al igual que SimpleXML, solo esta disponible para php5, y más aún, php5.2, aunque viene dentro de php y no es una extension separada.</p>
<p><a href="http://www.php.net/ini.core" target="_blank"><strong>SHORT TAGS</strong></a></p>
<p>Es común ver códigos escritos en php que utilizan los shorttags o etiquetas cortas:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #0000ff;">'Hola'</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Que al no estar habilitadas, no serán interpretadas por php y por ende, en nuestros archivos, al verlos por el navegador aparecerá parte del código, y esto podría suponer un problema de seguridad, ya que cualquier visitante podría leerlo y a su vez buscarnos bugs o debilidades.</p>
<p><strong>PERMISOS DE ESCRITURA</strong></p>
<p>Siempre que utilicemos funciones como <strong>fwrite</strong>, <strong>fopen</strong>, <strong>file_put_contents</strong> es necesario comprobar, que los ficheros dispongan de los permisos necesarios, y más aún si es IIS o bien apache (sobre linux). Al igual que los permisos de escritura, existe el <a href="http://cl2.php.net/safe_mode" target="_blank">SAFE_MODE</a>, que es un parámetro de configuración que le indica a php que los scripts estarán <a href="http://cl2.php.net/manual/es/features.safe-mode.functions.php" target="_blank">limitados en el uso de algunas funciones especificas</a>.</p>
<p><strong>ID3</strong></p>
<p>Es de uso un tanto específico para obtener información id3 de ficheros MP3. Como alternativa existen <a href="http://www.phpclasses.org/browse/package/1440.html" target="_blank">clases de lectura de mp3</a>, así no dependerás de la extensión.</p>
<p>Por este motivo, es de vital importancia, que cada vez que utilices estas funciones, debas comprobar que no existen conflictos en tu servidor productivo, ya que si lo haces de forma posterior al desarrollo no tendrás la posibilidad de volver atrás.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/01/07/instalar-cakephp-desde-0-y-configurar-la-consola-en-windows/" title="Instalar Cakephp desde 0 y configurar la consola en windows">Instalar Cakephp desde 0 y configurar la consola en windows</a></li><li><a href="http://www.donubu.com/2009/10/28/tips-cakephp/" title="Tips cakePHP">Tips cakePHP</a></li><li><a href="http://www.donubu.com/2008/05/11/virtualizacion-y-microsoft-virtual-pc/" title="Virtualización y Microsoft Virtual PC">Virtualización y Microsoft Virtual PC</a></li><li><a href="http://www.donubu.com/2008/01/14/linux-fan-boys-destruyen-linux/" title="¿Linux Fan Boys destruyen Linux?">¿Linux Fan Boys destruyen Linux?</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar Cakephp desde 0 y configurar la consola en windows</title>
		<link>http://www.donubu.com/2009/01/07/instalar-cakephp-desde-0-y-configurar-la-consola-en-windows/</link>
		<comments>http://www.donubu.com/2009/01/07/instalar-cakephp-desde-0-y-configurar-la-consola-en-windows/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 19:11:13 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[bake]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[configurar]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[entorno]]></category>
		<category><![CDATA[instalar]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[variables]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=187</guid>
		<description><![CDATA[Uno de los principales problemas, al iniciarse en el mundo de cakePHP es lograr levantar el sitio en un entorno productivo (incluso en el de desarrollo) y a su vez poder utilizar la consola incluida. Las principales ventajas de la consola de cakePHP, es que puedes generar desde el archivo de conexion a la base [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-192 margenes" title="cake-logo" src="http://www.donubu.com/wp-content/uploads/cake-logo.png" alt="cake-logo" width="180" height="180" />Uno de los principales problemas, al iniciarse en el mundo de cakePHP es lograr levantar el sitio en un entorno productivo (incluso en el de desarrollo) y a su vez poder utilizar la consola incluida.</p>
<p>Las principales ventajas de la consola de cakePHP, es que puedes generar desde el archivo de conexion a la base de datos, incluyendo creación de modelos, controladores y vistas, y una herramienta de extracción i18n para lograr internacionalizar nuestras aplicaciones.</p>
<p>Para comenzar, asumo desde un inicio, que tienes Windows xp o superior, Apache 2.x (Con el modulo mod_rewrite habilitado), PHP 5.X y MySQL 5.x, funcionando sin inconvenientes.<span id="more-187"></span></p>
<p>Ahora, <a href="http://cakeforge.org/frs/?group_id=23&amp;release_id=433" target="_blank">entrar a la página oficial y descargarse la version 1.2</a> (en estos momentos ya existe la versión final). Posteriormente extraerlo en la raiz de la carpeta del sitio. (Si tenemos el www_root en c:\wamp\www, extraer directamente las carpetas ahí). Quedando en una estructura:</p>
<p>- c:\wamp\www<br />
- app /<br />
-  cake /<br />
&#8230;.. etc</p>
<p>Para probar que todo va bien, ejecutamos la página web en nuestro navegador. (http://localhost/) y debiesemos ver el mensaje de instalacion de cake por defecto:</p>
<p><a href="http://www.donubu.com/wp-content/uploads/home.jpg"><img class="alignleft size-medium wp-image-188" title="home" src="http://www.donubu.com/wp-content/uploads/home-300x168.jpg" alt="home" width="300" height="168" /></a></p>
<p>Al ver esta pantalla, podemos estar casi seguros de que lo hemos hecho bien.</p>
<p>Ahora la parte interesante&#8230;</p>
<p><strong>&#8220;Configurar la Consola de cakePHP en Windows&#8221;</strong></p>
<p>Nos vamos al icono de MIPC y hacemos clic con el boton derecho del mouse y entramos a propiedades. Luego, opciones avanzadas y finalmente en variables de entorno. En variables de sistema, ubicamos una llamada <strong>Path</strong>, le damos clic en modificar. NO DEBEMOS BORRAR NADA, solo al final del texto &#8220;valor de la variable&#8221; agregamos:</p>
<p>- El path donde se encuentra el php.exe (en mi caso, y del ejemplo, lo tengo en <em>&#8220;C:\wamp\bin\php\php5.2.6&#8243;</em>) y al final poner un &#8220;;&#8221; (punto y coma sin paréntesis). A continuación de ese &#8220;;&#8221; , debemos agregar el path hacia la consola de cake (<em> &#8220;C:\wamp\www\cake\console&#8221; </em>) . Finalmente, clic en aceptar, aceptar, aceptar.</p>
<p><strong>OJO!, dentro de la variable path, cada uno de los directorios ahí ingresados estan separados por un &#8220;;&#8221; y si no es así debes corregirlo. </strong>Ahora, vamos a probar la consola.</p>
<p>Clic en inicio =&gt; ejecutar y escribimos CMD y luego aceptar.</p>
<p>Debemos llegar al lugar donde tenemos nuestra app de cake.</p>
<p><img class="aligncenter size-full wp-image-189" title="cmd" src="http://www.donubu.com/wp-content/uploads/cmd.jpg" alt="cmd" width="526" height="167" /></p>
<p>Y ya, desde la consola podemos empezar a cocinar con BAKE.</p>
<p><img class="aligncenter size-full wp-image-190" title="bake" src="http://www.donubu.com/wp-content/uploads/bake.jpg" alt="bake" width="628" height="260" /></p>
<p>Para el siguiente post, les estoy preparando un tutorial de como comenzar a trabajar con la consola <img src='http://www.donubu.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/" title="Programacion en PHP, migrar de entornos de desarrollo a productivos">Programacion en PHP, migrar de entornos de desarrollo a productivos</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li><li><a href="http://www.donubu.com/2009/10/28/tips-cakephp/" title="Tips cakePHP">Tips cakePHP</a></li><li><a href="http://www.donubu.com/2008/04/06/windows-a-simple-vista-p/" title="Windows a simple Vista :P">Windows a simple Vista :P</a></li><li><a href="http://www.donubu.com/2008/01/14/linux-fan-boys-destruyen-linux/" title="¿Linux Fan Boys destruyen Linux?">¿Linux Fan Boys destruyen Linux?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2009/01/07/instalar-cakephp-desde-0-y-configurar-la-consola-en-windows/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Me quedé sin CakePHP Conference :(</title>
		<link>http://www.donubu.com/2008/12/19/me-quede-sin-cakephp-conference/</link>
		<comments>http://www.donubu.com/2008/12/19/me-quede-sin-cakephp-conference/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 15:44:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=142</guid>
		<description><![CDATA[Por temas de trabajo, lamentablemente no pude asistir a la conferencia de cakephp organizada hoy, el tema es que tenía la mejor intención de conocer a los demás bakers Chilenos. No alcancé a avisar con tiempo a fabián (el organizador), pensando hasta el último momento de poder hacerme un tiempo&#8230; Espero conversar más tarde con [...]]]></description>
			<content:encoded><![CDATA[<p>Por temas de trabajo, lamentablemente no pude asistir a la conferencia de cakephp organizada hoy, el tema es que tenía la mejor intención de conocer a los demás bakers Chilenos. No alcancé a avisar con tiempo a fabián (el organizador), pensando hasta el último momento de poder hacerme un tiempo&#8230;</p>
<p>Espero conversar más tarde con <a href="http://www.victorsanmartin.com" target="_blank">victor (quest)</a> uno de los expositores para ver que temas tocaron y como les fue a todos..</p>
<p><a href="http://eventioz.com/events/cakephp-conference-santiago-chile" target="_blank">Agrego el link hacia el evento&#8230;</a></p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li>Sin Articulos Relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/12/19/me-quede-sin-cakephp-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buen Programador = Diseño Pobre</title>
		<link>http://www.donubu.com/2008/09/21/buen-programador-diseno-pobre/</link>
		<comments>http://www.donubu.com/2008/09/21/buen-programador-diseno-pobre/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 17:53:19 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[skin]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[controles]]></category>
		<category><![CDATA[devcomponents]]></category>
		<category><![CDATA[dotnetbar]]></category>
		<category><![CDATA[licencia]]></category>
		<category><![CDATA[office 20007]]></category>
		<category><![CDATA[ribbon]]></category>
		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=129</guid>
		<description><![CDATA[Uno de los escenarios mas recurrentes dentro de la vida del desarrollo de una aplicación, para algunos programadores, es cuando se debe realizar el diseño del software sin contar con las herramientas o el conocimiento necesario. Si bien, un programador NO tiene por que ser un buen diseñador, lamentablemente no posee demasiados recursos como para [...]]]></description>
			<content:encoded><![CDATA[<p>Uno de los escenarios mas recurrentes dentro de la vida del desarrollo de una aplicación, para algunos programadores, es cuando se debe realizar el diseño del software sin contar con las herramientas o el conocimiento necesario. Si bien, un programador NO tiene por que ser un buen diseñador, lamentablemente no posee demasiados recursos como para contratar uno que se encargue de eso.</p>
<p>En esta ocasion, y basandome en mi experiencia con los programas en vb.net y su entorno &#8220;feo&#8221;, que causa que el usuario termine con una especie de depresion mientras lo utiliza. Sin embargo, hoy en día, existen muchas alternativas a este problema, y que realmente marcan la diferencia entre algo visualmente &#8220;moderno&#8221; y otro muy parecido a lo que veiamos con vb6.<br />
<span id="more-129"></span><br />
Actualmente y como solución al problema, encontré un pack de controles (que incluyen el codigo de fuente) y que realmente cambian el aspecto de forma rotunda, y con un skin muy similar a Office 2007. Su nombre es <a href="http://www.devcomponents.com/dotnetbar/order.aspx">DotNetBar de Devcomponents</a>. Si bien, su licencia simple es más elevada de lo que acostumbramos a pagar, realmente vale la pena (son 289 dólares apróx. $150.000) y que solo se debe pagar una sola vez y se puede utilizar cuantas veces uno quiera. Además, existe una version de prueba, para que puedan evaluar los controles y probar su potencial.</p>
<p>Acá tengo unos screenshots de la última mini-aplicación en la cual estoy trabajando:</p>
<p><a href="http://www.donubu.com/wp-content/uploads/sshot-2.png"><img class="aligncenter size-medium wp-image-130" title="sshot-2" src="http://www.donubu.com/wp-content/uploads/sshot-2-300x218.png" alt="" width="300" height="218" /></a><br />
<br class="limpiar" /><br />
Como ven, todo entra por la vista, y puede marcar la diferencia inclusive en el precio final del software.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/09/21/vbnet-con-mysql-mysql-driver-cs/" title="VB.NET con MySQL &#8211; MySQL Driver Cs">VB.NET con MySQL &#8211; MySQL Driver Cs</a></li><li><a href="http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/" title="VB.NET &#8211; Utilizar un Listview para desplegar datos">VB.NET &#8211; Utilizar un Listview para desplegar datos</a></li><li><a href="http://www.donubu.com/2008/09/21/cambio-en-el-diseno-del-blog/" title="Cambio en el diseño del blog">Cambio en el diseño del blog</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/09/21/buen-programador-diseno-pobre/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VB.NET con MySQL &#8211; MySQL Driver Cs</title>
		<link>http://www.donubu.com/2008/09/21/vbnet-con-mysql-mysql-driver-cs/</link>
		<comments>http://www.donubu.com/2008/09/21/vbnet-con-mysql-mysql-driver-cs/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 04:54:33 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[ado.net]]></category>
		<category><![CDATA[conexion]]></category>
		<category><![CDATA[cs]]></category>
		<category><![CDATA[dll]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[odbc]]></category>
		<category><![CDATA[oledb]]></category>
		<category><![CDATA[referencias]]></category>
		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=119</guid>
		<description><![CDATA[Si bien no acostumbro a mezclar vb.net con mysql, a veces, se hace realmente necesario cuando se busca una performance o bien compatibilidad con un servidor de base de datos basado en linux, ademas, de que la mayoria de los desarrolladores estan mayormente relacionados con mysql por su sencillez y amistad con PHP. Lamentablemente no [...]]]></description>
			<content:encoded><![CDATA[<p>Si bien no acostumbro a mezclar vb.net con mysql, a veces, se hace realmente necesario cuando se busca una performance o bien compatibilidad con un servidor de base de datos basado en linux, ademas, de que la mayoria de los desarrolladores estan mayormente relacionados con mysql por su sencillez y amistad con PHP.</p>
<p>Lamentablemente no esta implementada alguna clase que permita la conexion de forma nativa, por ende, es necesario incluir una DLL previamente compilada que hace de interfaz con la base de datos. Existen unas basadas en <a href="http://es.wikipedia.org/wiki/ODBC">ODBC </a>y otras en <a href="http://es.wikipedia.org/wiki/OLEDB">OLEDB</a> o  <a href="http://es.wikipedia.org/wiki/ADO.NET">ADO.NET</a>siendo esta ultima la mas recomendable y moderna. En esta oportunidad, usare una libreria llamada <a href="http://sourceforge.net/project/platformdownload.php?group_id=63165">mysql driver cs</a> (que ademas incluye el codigo fuente).<span id="more-119"></span></p>
<p>Lo primero (luego de instalar la libreria), puedes crear un nuevo proyecto, y hacer referencia a las DLL que se encuentran en &#8220;C:\Archivos de programa\MySQLDriverCS\dll\&#8221;, siendo solo la MySQLDriverCS.dll aquella que llamaremos con imports.</p>
<p><img class="aligncenter size-full wp-image-120" title="sshot-1" src="http://www.donubu.com/wp-content/uploads/sshot-1.png" alt="" width="414" height="384" /><br />
<br class="limpiar" /><br />
Luego de referenciar las 3 dlls, metete en el codigo fuente del formulario y agrega lo siguiente (en el encabezado antes de <em>Public Class Form1</em>) :</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Imports</span> MySQLDriverCS</pre></div></div>

<p>Esto nos permitira acceder a los diversos metodos y propiedades de la dll. Ahora bien, ya tenemos la referencia, veamos como se realiza la conexion (voy a agregar la conexion dentro del evento LOAD del formulario, pero la variable conexion la voy a declarar como propiedad, para poder accederla desde los eventos y metodos):</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Imports</span> MySQLDriverCS
&nbsp;
<span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Class</span> Form1
&nbsp;
<span style="color: #0600FF;">Dim</span> conexion <span style="color: #FF8000;">As</span> MySQLConnection <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> MySQLConnection<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">New</span> MySQLConnectionString<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;localhost&quot;</span>, <span style="color: #808080;">&quot;prueba&quot;</span>, <span style="color: #808080;">&quot;root&quot;</span>, <span style="color: #808080;">&quot;&quot;</span>, <span style="color: #FF0000;">3306</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> Form1_Load<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">Load</span>
<span style="color: #0600FF;">Try</span>
conexion.<span style="color: #0600FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> MySQLException
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>ex.<span style="color: #0000FF;">Message</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Class</span></pre></div></div>

<p>Los parametros para la conexion son: host, base de datos, usuario, password y puerto. Y para comenzar  a trabajar con mysql, debemos abrir la conexion con el metodo <strong>Open</strong>. En caso de cualquier error, capturamos todo con un bloque try catch. Bien, ya tenemos nuestra conexion, ahora necesitamos por ejemplo, leer una tabla especifica y mostrar la informacion obtenida. Para eso necesitamos de una variable de tipo Mysqlcommand y un lector tipo Mysqldatareader.</p>
<p>Debemos declarlos como propiedad, al igual que la conexion, para disponer de ellos cuando estimemos conveniente.</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Dim</span> comando <span style="color: #FF8000;">As</span> MySQLCommand
<span style="color: #0600FF;">Dim</span> lector <span style="color: #FF8000;">As</span> MySQLDataReader</pre></div></div>

<p>Ahora, modificaremos el evento onload, y agregaremos lo necesario para realizar la consulta sql y leer los datos.</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> Form1_Load<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">Load</span>
<span style="color: #0600FF;">Try</span>
conexion.<span style="color: #0600FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
comando <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> MySQLCommand<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;SELECT * FROM tabla_prueba&quot;</span>, conexion<span style="color: #000000;">&#41;</span>
lector <span style="color: #008000;">=</span> comando.<span style="color: #0000FF;">ExecuteReader</span>
&nbsp;
<span style="color: #0600FF;">While</span> lector.<span style="color: #0000FF;">Read</span>
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>lector<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;nombre_campo&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">While</span>
&nbsp;
lector.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
conexion.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> MySQLException
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>ex.<span style="color: #0000FF;">Message</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></pre></div></div>

<p>Primero, instancio un nuevo mysqlcommand y le paso como parametro la consulta y la conexion, posteriormente asigno el resultado del metodo &#8220;ExecuteReader&#8221; a mi lector y luego leo registro a registro los resultados con .Read y con el msgbox voy mostrando lo que me devuelve el campo mencionado (es ideal llamar al metodo ToString).</p>
<p>Este procedimiento resulta conveniente en la mayoria de los casos, excepto, cuando el campo es de tipo date, text, longtext, etc. y requiere otro tratamiento, ahi es recomendable hacer algo como esto:</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">While</span> lector.<span style="color: #0000FF;">Read</span>
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>lector<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;campo&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> tiempo <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Date</span> <span style="color: #008000;">=</span> lector.<span style="color: #0000FF;">GetDateTime</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> longtext <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> lector.<span style="color: #0000FF;">GetString</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> numeroDoble <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Double</span> <span style="color: #008000;">=</span> lector.<span style="color: #0000FF;">GetDouble</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">While</span></pre></div></div>

<p>Pasando como parametros en cada caso, el indice del campo en la tabla, empezando desde el 0. Esos son algunos metodos, existen muchos mas.</p>
<p>Lo primordial es comprobar que la conexion NO este abierta antes de intentar abrirla, comprobar que el lector este cerrado antes de pasarle un comando, y luego cerrar el comando y la posteriormente la base de datos. Ya que si no se cierra esta ultima, el recurso quedara abierto y se desperdiciara servidor, incluso pudiendo causar la denegacion del mismo (tema que se ha hecho frecuente por no cerrar las conexiones).</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> Form1_Load<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> <span style="color: #FF8000;">Me</span>.<span style="color: #0000FF;">Load</span>
<span style="color: #0600FF;">Try</span>
<span style="color: #0600FF;">If</span> conexion.<span style="color: #0000FF;">State</span> &lt;&gt; ConnectionState.<span style="color: #0600FF;">Open</span> <span style="color: #FF8000;">Then</span>
conexion.<span style="color: #0600FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
&nbsp;
comando <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> MySQLCommand<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;SELECT * FROM tabla_prueba&quot;</span>, conexion<span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">Try</span>
<span style="color: #0600FF;">If</span> <span style="color: #804040;">Not</span> lector.<span style="color: #0000FF;">IsClosed</span> <span style="color: #FF8000;">Then</span>
lector.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
<span style="color: #0600FF;">Catch</span> : <span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
&nbsp;
lector <span style="color: #008000;">=</span> comando.<span style="color: #0000FF;">ExecuteReader</span>
&nbsp;
<span style="color: #0600FF;">While</span> lector.<span style="color: #0000FF;">Read</span>
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>lector<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;campo&quot;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> tiempo <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Date</span> <span style="color: #008000;">=</span> lector.<span style="color: #0000FF;">GetDateTime</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> longtext <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> lector.<span style="color: #0000FF;">GetString</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> numeroDoble <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Double</span> <span style="color: #008000;">=</span> lector.<span style="color: #0000FF;">GetDouble</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">While</span>
&nbsp;
lector.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
conexion.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> MySQLException
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>ex.<span style="color: #0000FF;">Message</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></pre></div></div>

<p>Este es el primer paso, lo ideal seria mezclar todo este tutorial con el anterior, que posee todo lo necesario para aprender a <a href="http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/">desplegar datos en un listview de forma rapida y segura</a>.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/09/21/buen-programador-diseno-pobre/" title="Buen Programador = Diseño Pobre">Buen Programador = Diseño Pobre</a></li><li><a href="http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/" title="VB.NET &#8211; Utilizar un Listview para desplegar datos">VB.NET &#8211; Utilizar un Listview para desplegar datos</a></li><li><a href="http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/" title="Programacion en PHP, migrar de entornos de desarrollo a productivos">Programacion en PHP, migrar de entornos de desarrollo a productivos</a></li><li><a href="http://www.donubu.com/2008/05/16/tutorial-3-limitar-descargas-con-php-y-mysql-descargas-simultaneas-y-velocidad-de-bajada/" title="Tutorial 3: Limitar Descargas con PHP y MySQL &#8211; descargas simultaneas y velocidad de bajada">Tutorial 3: Limitar Descargas con PHP y MySQL &#8211; descargas simultaneas y velocidad de bajada</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/09/21/vbnet-con-mysql-mysql-driver-cs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VB.NET &#8211; Utilizar un Listview para desplegar datos</title>
		<link>http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/</link>
		<comments>http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 02:16:26 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[datos]]></category>
		<category><![CDATA[detalle]]></category>
		<category><![CDATA[listview]]></category>
		<category><![CDATA[maestros]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=107</guid>
		<description><![CDATA[Hace mucho tiempo y luego de sentirme un poco descepcionado con los gridviews de .NET y buscando la “alternativa” para poder desplegar datos de una forma clara y sencilla, encontre el control ListView que no esta precisamente orientado a un listado de datos pero a algunos nos acomoda mas. Voy a indicar como lograr desplegar [...]]]></description>
			<content:encoded><![CDATA[<p>Hace mucho tiempo y luego de sentirme un poco descepcionado con los gridviews de <a href="http://www.microsoft.com/net/" target="_blank">.NET</a> y buscando la “alternativa” para poder desplegar datos de una forma clara y sencilla, encontre el control <a href="http://www.elguille.info/colabora/NET2005/FernandoLuque_ListViewAvanzado.htm" target="_blank">ListView </a>que no esta precisamente orientado a un listado de datos pero a algunos nos acomoda mas.</p>
<p>Voy a indicar como lograr desplegar informacion al igual como se podria con un gridview, la unica desventaja es que la informacion no puede ser editada de forma directa.</p>
<p>Primero, debes arrastrar el control sobre un formulario y posteriormente definir las siguientes propiedades:</p>
<p>* <strong>FullRowSelect </strong>= true<br />
* <strong>GridLines </strong>= true<br />
* <strong>View </strong>= Details<br />
<span id="more-107"></span></p>
<p>Al establecer esas propiedades el control tomara el siguiente aspecto:<br />
<img class="aligncenter size-full wp-image-108" title="list1" src="http://www.donubu.com/wp-content/uploads/list1.png" alt="" width="500" height="343" /><br />
<br class="limpiar" /><br />
Ahora, necesitamos definir las columnas (ID &#8211; NOMBRE &#8211; DESCRIPCION-), hacemos clic en <strong>Columns </strong>y aparecera un recuadro como este:<br />
<img class="aligncenter size-full wp-image-109" title="list2" src="http://www.donubu.com/wp-content/uploads/list2.png" alt="" width="500" height="374" /><br class="limpiar" /><br />
Podemos agregar todas las que queramos, definiendo el texto a desplegar en la columna, el ancho, etc.<br />
Una vez agregadas todas las que necesitamos se vera un tanto asi:<br />
<img class="aligncenter size-full wp-image-110" title="list3" src="http://www.donubu.com/wp-content/uploads/list3.png" alt="" width="500" height="367" /><br class="limpiar" /></p>
<p>Con la parte de diseño ya terminada, es tiempo de poder empezar a mostrar datos en el listview. Primero, cambiemos el nombre por defecto y pongamos algo mas acorde, como listadoJuegos.</p>
<p>Ahora bien, el ejemplo lo hare conectandome a una base de datos en <strong>MS ACCESS 2007</strong> y rellenare el listview de dos maneras, <a href="http://elguille.info/NET/revistas/dotNetmania/dnm_29.aspx" target="_blank">una con un <strong>DataReader </strong>y otra con un <strong>DataTable</strong></a> (El guille explica la diferencia y cuando usar uno y cuando usar el otro).</p>
<p>La estructura de la tabla es la siguiente:</p>
<p><strong>Nombre tabla</strong> juegos</p>
<p><strong>id</strong> <strong>=&gt;</strong> autonumerico, llave primaria.<br />
<strong>nombre =&gt;</strong> texto<br />
<strong>descipcion =&gt;</strong> texto</p>
<p>Agregue ademas, 2 botones al formulario, uno para cargar datos a traves de datarader y otro para hacerlo con datatable.</p>
<p>y el codigo para cargar datos dentro del listview :</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> botonDR_Click<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> System.<span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> botonDR.<span style="color: #0000FF;">Click</span>
listadoJuegos.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
comando <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> OleDbCommand<span style="color: #000000;">&#40;</span>”<span style="color: #0600FF;">SELECT</span> <span style="color: #008000;">*</span> FROM juegos”, conexion<span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">Try</span>
dr <span style="color: #008000;">=</span> comando.<span style="color: #0000FF;">ExecuteReader</span>
&nbsp;
<span style="color: #0600FF;">While</span> dr.<span style="color: #0000FF;">Read</span>
<span style="color: #0600FF;">Dim</span> item <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> ListViewItem<span style="color: #000000;">&#40;</span>dr<span style="color: #000000;">&#40;</span>”id”<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
item.<span style="color: #0000FF;">SubItems</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>dr<span style="color: #000000;">&#40;</span>”nombre”<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
item.<span style="color: #0000FF;">SubItems</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>dr<span style="color: #000000;">&#40;</span>”descripcion”<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
&nbsp;
listadoJuegos.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>item<span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">While</span>
&nbsp;
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>”Fallo la consulta, mensaje: ” <span style="color: #008000;">+</span> ex.<span style="color: #0000FF;">Message</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
&nbsp;
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> botonDT_Click<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> System.<span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> botonDT.<span style="color: #0000FF;">Click</span>
listadoJuegos.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">Try</span>
dt <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> DataTable<span style="color: #000000;">&#40;</span>”juegos”<span style="color: #000000;">&#41;</span>
comando <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> OleDbCommand<span style="color: #000000;">&#40;</span>”<span style="color: #0600FF;">SELECT</span> <span style="color: #008000;">*</span> FROM juegos”, conexion<span style="color: #000000;">&#41;</span>
&nbsp;
adaptador.<span style="color: #0000FF;">SelectCommand</span> <span style="color: #008000;">=</span> comando
adaptador.<span style="color: #0000FF;">Fill</span><span style="color: #000000;">&#40;</span>dt<span style="color: #000000;">&#41;</span>
&nbsp;
i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span>
&nbsp;
<span style="color: #FF8000;">For</span> <span style="color: #0600FF;">Each</span> fila <span style="color: #FF8000;">As</span> DataRow In dt.<span style="color: #0000FF;">Rows</span>
<span style="color: #0600FF;">Dim</span> item <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> ListViewItem<span style="color: #000000;">&#40;</span>dt<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>”id”<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
item.<span style="color: #0000FF;">SubItems</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>dt<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>”nombre”<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
item.<span style="color: #0000FF;">SubItems</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>dt<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>”descripcion”<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
&nbsp;
listadoJuegos.<span style="color: #0000FF;">Items</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>item<span style="color: #000000;">&#41;</span>
i <span style="color: #008000;">+=</span> <span style="color: #FF0000;">1</span>
<span style="color: #FF8000;">Next</span>
&nbsp;
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>”Fallo la consulta, mensaje: ” <span style="color: #008000;">+</span> ex.<span style="color: #0000FF;">Message</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></pre></div></div>

<p>A todo esto podemos agregarle eventos, el primero para detectar cual o cuales son las filas que estan seleccionadas al hacer doble click en el listview o al clickear un boton (agrego un tercer boton para lanzar el evento ).</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> registrosSeleccionados<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> indices <span style="color: #FF8000;">As</span> ListView.<span style="color: #0000FF;">SelectedIndexCollection</span> <span style="color: #008000;">=</span> listadoJuegos.<span style="color: #0000FF;">SelectedIndices</span>
&nbsp;
<span style="color: #0600FF;">If</span> indices.<span style="color: #0000FF;">Count</span> &lt;&gt; <span style="color: #FF0000;">0</span> <span style="color: #FF8000;">Then</span>
<span style="color: #FF8000;">For</span> <span style="color: #0600FF;">Each</span> indice <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span> In indices
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>”Indice Seleccionado: ” <span style="color: #008000;">+</span> indice.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> item <span style="color: #FF8000;">As</span> ListViewItem <span style="color: #008000;">=</span> listadoJuegos.<span style="color: #0000FF;">Items</span><span style="color: #000000;">&#40;</span>indice<span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>”ID: ” <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">+</span> <span style="color: #0600FF;">Chr</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">13</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> “Nombre: ” <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">SubItems</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">+</span> <span style="color: #0600FF;">Chr</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">13</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> “Descripcion: ” <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">SubItems</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Text</span><span style="color: #000000;">&#41;</span>
<span style="color: #FF8000;">Next</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> registroSeleccionado<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> indices <span style="color: #FF8000;">As</span> ListView.<span style="color: #0000FF;">SelectedIndexCollection</span> <span style="color: #008000;">=</span> listadoJuegos.<span style="color: #0000FF;">SelectedIndices</span>
&nbsp;
<span style="color: #0600FF;">If</span> indices.<span style="color: #0000FF;">Count</span> &lt;&gt; <span style="color: #FF0000;">0</span> <span style="color: #FF8000;">Then</span>
<span style="color: #0600FF;">Dim</span> indice <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span> <span style="color: #008000;">=</span> indices<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>”Indice Seleccionado: ” <span style="color: #008000;">+</span> indice.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> item <span style="color: #FF8000;">As</span> ListViewItem <span style="color: #008000;">=</span> listadoJuegos.<span style="color: #0000FF;">Items</span><span style="color: #000000;">&#40;</span>indice<span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">MsgBox</span><span style="color: #000000;">&#40;</span>”ID: ” <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">+</span> <span style="color: #0600FF;">Chr</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">13</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> “Nombre: ” <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">SubItems</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">+</span> <span style="color: #0600FF;">Chr</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">13</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> “Descripcion: ” <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">SubItems</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Text</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">If</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> Button1_Click<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> System.<span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> Button1.<span style="color: #0000FF;">Click</span>
registrosSeleccionados<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
&nbsp;
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> listadoJuegos_DoubleClick<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> listadoJuegos.<span style="color: #0000FF;">DoubleClick</span>
registroSeleccionado<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span></pre></div></div>

<p>Este es solo el comienzo al menos para crear un mantenedor de registros, sin embargo es la base para todo lo siguiente.<br />
<img class="aligncenter size-full wp-image-111" title="list4" src="http://www.donubu.com/wp-content/uploads/list4.png" alt="" width="500" height="367" /><br class="limpiar" /><br />
Ojo, que esta solucion debe complementarse con algun paginador de resultados para evitar el desborde de recursos.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/09/21/buen-programador-diseno-pobre/" title="Buen Programador = Diseño Pobre">Buen Programador = Diseño Pobre</a></li><li><a href="http://www.donubu.com/2008/09/21/vbnet-con-mysql-mysql-driver-cs/" title="VB.NET con MySQL &#8211; MySQL Driver Cs">VB.NET con MySQL &#8211; MySQL Driver Cs</a></li><li><a href="http://www.donubu.com/2010/02/23/configurar-bw_mod-dentro-de-cpanel/" title="Configurar bw_mod dentro de CPANEL">Configurar bw_mod dentro de CPANEL</a></li><li><a href="http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/" title="htmlSQL &#8211; Un parser SQL para archivos HTML">htmlSQL &#8211; Un parser SQL para archivos HTML</a></li><li><a href="http://www.donubu.com/2008/02/01/vistats-sistema-integral-estadisticas/" title="viSTATS Sistema Integral de Estadísticas">viSTATS Sistema Integral de Estadísticas</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/09/15/vbnet-utilizar-un-listview-para-desplegar-datos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>REMOBO &#8211; Una VPN a un par de clics de distancia</title>
		<link>http://www.donubu.com/2008/08/31/remobo-una-vpn-a-un-par-de-clics-de-distancia/</link>
		<comments>http://www.donubu.com/2008/08/31/remobo-una-vpn-a-un-par-de-clics-de-distancia/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 17:01:25 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[almacenamiento]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[servicios]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[jugar]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[red]]></category>
		<category><![CDATA[remobo]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=100</guid>
		<description><![CDATA[REMOBO VPN sin configurar. Hoy en día la demanda actual del mercado para realizar configuraciones e instalaciones de VPN&#8217;s se ha duplicado. En todas las empresas que tienen varios establecimientos separados fisicamente es necesario implementar esta especie de RED VIRTUAL. Desde el lado profesional podemos realizar complejas combinaciones entre OpenVPN o bien desde el mismo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-104" title="remobo3" src="http://www.donubu.com/uploads/remobo3.png" alt="" width="193" height="323" /></p>
<p><a href="http://www.remobo.com">REMOBO VPN sin configurar.</a></p>
<p>Hoy en día la demanda actual del mercado para realizar configuraciones e instalaciones de VPN&#8217;s se ha duplicado. En todas las empresas que tienen varios establecimientos separados fisicamente es necesario implementar esta especie de RED VIRTUAL. Desde el lado profesional podemos realizar complejas combinaciones entre <a href="http://openvpn.net/">OpenVPN </a>o bien desde el mismo router, pero sin embargo, a veces, necesitamos compartir archivos entre una red de amigos, o bien juegar de forma online.</p>
<p><a href="http://www.remobo.com">REMOBO</a> es el nombre del software capaz de generar una VPN sin necesitar ninguna configuracion ni conocimiento alguno en el funcionamiento. Se encuentra en una fase BETA y esta disponible para cualquier persona sin necesidad de registro.</p>
<p>Basta con instalarlo, crear una cuenta y comenzar a utilizar toda la gama de servicios disponibles, como enviar o recibir archivos (se utiliza una especie de TORRENT), o bien disponer de una URL que identifica al usuario con el cual compartes informacion.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2009/07/06/sonarfm-version-2-0-recargada/" title="SonarFM version 2.0 Recargada">SonarFM version 2.0 Recargada</a></li><li><a href="http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/" title="SonarFM &#8211; Sitio web de la Radio 2.0">SonarFM &#8211; Sitio web de la Radio 2.0</a></li><li><a href="http://www.donubu.com/2008/12/24/mu-darck-servidor-mu-chileno/" title="MUDarck &#8211; Servidor de MU Chileno">MUDarck &#8211; Servidor de MU Chileno</a></li><li><a href="http://www.donubu.com/2008/05/11/virtualizacion-y-microsoft-virtual-pc/" title="Virtualización y Microsoft Virtual PC">Virtualización y Microsoft Virtual PC</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/08/31/remobo-una-vpn-a-un-par-de-clics-de-distancia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toshiba Latino &#8211; Toshiba.com = 0 Driver</title>
		<link>http://www.donubu.com/2008/07/11/toshiba-latino-toshibacom-0-driver/</link>
		<comments>http://www.donubu.com/2008/07/11/toshiba-latino-toshibacom-0-driver/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 22:56:41 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[notebook]]></category>
		<category><![CDATA[problemas]]></category>
		<category><![CDATA[servicio]]></category>
		<category><![CDATA[tecnico]]></category>
		<category><![CDATA[toshiba]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=99</guid>
		<description><![CDATA[Hace un par de días comence a trabajar con systemadmin (una empresa de desarrollo de aplicaciones) en una aplicación para una empresa de ingeniería y construcción. La cosa es que me pasaron un Notebook para poder trabajar de forma cómoda cuando tenga que hacer visitas a terreno. Bueno, lo que pasa, es que formatié el [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días comence a trabajar con systemadmin (una empresa de desarrollo de aplicaciones) en una aplicación para una empresa de ingeniería y construcción. La cosa es que me pasaron un Notebook para poder trabajar de forma cómoda cuando tenga que hacer visitas a terreno. Bueno, lo que pasa, es que formatié el notebook y al buscar los drivers en la página oficial de toshiba, me encuentro con la sorpresa que no están :S <img src='http://www.donubu.com/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' /> </p>
<p>A veces pasa que en europa se venden en bajo un modelo y en américa latina bajo otro siendo que son lo mismo, así que me di el trabajo de buscar 1 por 1 hasta encontrar el que se pareciera físicamente. Y para terminar de rematar, luego de ver uno parecido y bajar esos drivers, el resultado es: el sonido esta muerto al igual que el puerto infrarojos y otras utilidades. Al final, mande un mensaje hacia un encargado del servicio técnico de toshiba latino y rematando el problema, me llega un autoresponser que me avisa que la cuenta está en modo vacaciones <img src='http://www.donubu.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p>Puros problemas para encontrar un simple driver <img src='http://www.donubu.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/09/27/servicios-tecnicos-deficientes/" title="Servicios Técnicos deficientes">Servicios Técnicos deficientes</a></li><li><a href="http://www.donubu.com/2008/04/04/pc-viejo-nuevos-problemas/" title="PC Viejo => Nuevos Problemas">PC Viejo => Nuevos Problemas</a></li><li><a href="http://www.donubu.com/2008/03/30/por-fin-hotfix-para-visual-basic-en-visual-studio-2008/" title="Por Fin &#8211; HOTFIX para visual basic en visual studio 2008">Por Fin &#8211; HOTFIX para visual basic en visual studio 2008</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/07/11/toshiba-latino-toshibacom-0-driver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Actualización de la web del doctor molina &#8211; medystetic.cl</title>
		<link>http://www.donubu.com/2008/06/23/actualizacion-de-la-web-del-doctor-molina-medysteticcl/</link>
		<comments>http://www.donubu.com/2008/06/23/actualizacion-de-la-web-del-doctor-molina-medysteticcl/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:57:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[iexplorer]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[medicina]]></category>
		<category><![CDATA[Mensajes]]></category>
		<category><![CDATA[paginas]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[actualizacion]]></category>
		<category><![CDATA[doctor]]></category>
		<category><![CDATA[medystetic]]></category>
		<category><![CDATA[molina]]></category>
		<category><![CDATA[pagina]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=93</guid>
		<description><![CDATA[Hace un par de días, actualicé la página web del doctor molina (de su clínica medystetic, ubicada en rancagua). Fue un nuevo desafío adaptar todo a wordpress ya que anteriormente se encontraba con VIFRAME (un framework php perteneciente a UBU). Es un diseño bastante sencillo, fácil de leer y compatible con ciertos dispositivos móviles (para [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días, actualicé <a href="http://www.medystetic.cl">la página web del doctor molina</a> (de su clínica medystetic, ubicada en rancagua). Fue un nuevo desafío adaptar todo a <a href="http://wordpress.org/">wordpress</a> ya que anteriormente se encontraba con VIFRAME (un framework php perteneciente a UBU).</p>
<p>Es un diseño bastante sencillo, fácil de leer y compatible con ciertos dispositivos móviles (para la lo cual estoy implementando el plugin de wp <a href="http://wordpressmobile.mobi/">wpmobile</a>).</p>
<p><img class="aligncenter size-full wp-image-94" title="screenshot" src="http://www.donubu.com/uploads/screenshot.png" alt="" width="500" height="309" /><br />
<br class="limpiar" /><br />
Lo mejor de todo es que gracias a wordpress, ahora, el doctor tendrá el control absoluto de las páginas, y artículos, pudiendo editar todo con un par de clics.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2011/04/04/sitio-web-sonrie-ahora/" title="Sitio web sonrie ahora">Sitio web sonrie ahora</a></li><li><a href="http://www.donubu.com/2009/11/13/eucerin-solar-httpwww-eucerinsolar-com/" title="Eucerin Solar http://www.eucerinsolar.com">Eucerin Solar http://www.eucerinsolar.com</a></li><li><a href="http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/" title="htmlSQL &#8211; Un parser SQL para archivos HTML">htmlSQL &#8211; Un parser SQL para archivos HTML</a></li><li><a href="http://www.donubu.com/2008/01/22/tutoriales-1-como-instalar-wordpress/" title="Tutorial 1: ¿Cómo instalar wordpress? y tener mi propio blog">Tutorial 1: ¿Cómo instalar wordpress? y tener mi propio blog</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/06/23/actualizacion-de-la-web-del-doctor-molina-medysteticcl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tutorial 3: Limitar Descargas con PHP y MySQL &#8211; descargas simultaneas y velocidad de bajada</title>
		<link>http://www.donubu.com/2008/05/16/tutorial-3-limitar-descargas-con-php-y-mysql-descargas-simultaneas-y-velocidad-de-bajada/</link>
		<comments>http://www.donubu.com/2008/05/16/tutorial-3-limitar-descargas-con-php-y-mysql-descargas-simultaneas-y-velocidad-de-bajada/#comments</comments>
		<pubDate>Fri, 16 May 2008 18:27:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[ancho de banda]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[limitar]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=87</guid>
		<description><![CDATA[Actualmente este singular problema puede ser resuelto por diversos módulos integrados en Apache (no de forma nativa pero si disponibles para su descarga), como MOD_LIMITIPCONN o MOD_BANDWIDTH. Sin embargo no en todos los servidores gratuitos o pagados está instalado. Primero; ¿Por qué limitar las descargas?: Usualmente, uno acostumbra a bajar todos los links disponibles en [...]]]></description>
			<content:encoded><![CDATA[<p>Actualmente este singular problema puede ser resuelto por diversos módulos integrados en <a href="http://www.apache.org/" target="_blank">Apache</a> (no de forma nativa pero si disponibles para su descarga), como <a href="http://dominia.org/djao/limitipconn.html" target="_blank">MOD_LIMITIPCONN</a> o <a href="http://www.cohprog.com/mod_bandwidth.html" target="_blank">MOD_BANDWIDTH</a>. Sin embargo no en todos los servidores gratuitos o pagados está  instalado.</p>
<p>Primero; <strong>¿Por qué limitar las descargas?</strong>: Usualmente, uno acostumbra a bajar todos los links disponibles en una web y no uno por uno. Esto no afecta mayormente al cliente, pero sí al servidor, ya que consume el ancho de banda disponible. Y más aún al utilizar un gestor de descargas, que es capaz de conectarse a un mismo servidor N veces para bajar un mismo archivo, si dispones de 100 conexiones simultaneas disponibles, entonces el gestor facilmente podría utilizar esas 100 y dejar a todos los demás esperando.</p>
<p>Lo primero y único que necesitas: <a href="http://www.wampserver.com/en/index.php" target="_blank">Apache (con mod_rewrite instalado) y  mySQL (para almacenar las conexiones de cada IP)</a>.</p>
<p><strong>El script consiste en</strong>, capturar todos los archivos terminados en &#8220;ZIP&#8221; o &#8220;RAR&#8221; o &#8220;ISO&#8221; (se pueden agregar todos los que quieras) y pasarlos por un archivo que va a decidir si acepta  o no la descarga. No solo podemos limitar el número de descargas simultáneas, sino que también los KBS de velocidad. Lamentablemente, esta acción al aplicarse en archivos grandes, dejará al interprete de PHP ejecutandose durante todo el proceso, lo que consumirá recursos del procesador y RAM, por ende, NO USAR CON ARCHIVOS EXCESIVAMENTE GRANDES.</p>
<p>Se puede definir el máx. de descargas simultáneas y el tiempo de espera (en minutos) para volver a bajar archivos.<span id="more-87"></span></p>
<h3><strong>USAR esta documentación a modo de aprendizaje y aplicación de php en diversas tareas que se deben de realizar a diario y no como un complemento en sitios web con demasiado tráfico.</strong></h3>
<p><strong>Primero</strong><br />
Deben crear una tabla en MySQL con el código:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span>  <span style="color: #993333; font-weight: bold;">TABLE</span>  <span style="color: #ff0000;">`limitar`</span><span style="color: #66cc66;">.</span><span style="color: #ff0000;">`descargas`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`id`</span> <span style="color: #993333; font-weight: bold;">INT</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #66cc66;">,</span>
 <span style="color: #ff0000;">`ip`</span> <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">15</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span>
 <span style="color: #ff0000;">`archivo`</span> <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">255</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span>
 <span style="color: #ff0000;">`tiempo_descarga`</span> <span style="color: #993333; font-weight: bold;">TIMESTAMP</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">,</span>
 <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">`id`</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> ENGINE <span style="color: #66cc66;">=</span> MYISAM</pre></div></div>

<div>Además necesitas el código a utilizar en un archivo &#8220;.htaccess&#8221; que controlará que todas las URL que terminen en &#8220;zip&#8221;, &#8220;rar&#8221; o &#8220;iso&#8221; (puedes agregar otros, separandolos por el simbolo | ), sean pasadas por el archivo php que gestionará los accesos:</div>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">on</span>  <span style="color: #00007f;">RewriteRule</span> ^(.*)\.(zip|rar|iso)$ limitar.php?archivo=$1.$2 [QSA]</pre></div></div>

<p>y finalmente el código php necesario para esta labor (todas sus líneas comentadas):</p>
<p>Lamentablemente el parser de geshi, me transforma los simbolos &lt; &gt; en &amp; lt; y &amp; gt; respectivamente. Deben reemplazarlos para que funcione o bien descargar el rar.</p>
<p><a href="http://www.donubu.com/uploads/limitar.rar" target="_self"><strong>Descargar el archivo limitar.php</strong></a></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php
&nbsp;
	<span style="color: #666666; font-style: italic;">//-------------------------------------</span>
	<span style="color: #666666; font-style: italic;">// evito el max execution time</span>
	<span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'max_execution_time'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// evito el timeout</span>
	<span style="color: #990000;">set_time_limit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// prevengo la detencion del script</span>
	<span style="color: #990000;">ignore_user_abort</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// inicio el tiempo actual</span>
	<span style="color: #000088;">$tiempo_actual</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//-------------------------------------	</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/* MIME TYPES */</span>
	<span style="color: #666666; font-style: italic;">// Necesarios para que iexplorer descargue el archivo</span>
	<span style="color: #666666; font-style: italic;">// y no muestre simbolos raros (aunque si el mime no coincide, los mostrará igual)</span>
	<span style="color: #666666; font-style: italic;">// Agregar todos los necesarios según el htaccess</span>
&nbsp;
	<span style="color: #000088;">$mymes</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'rar'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'application/x-rar-compressed'</span><span style="color: #339933;">,</span>
				   <span style="color: #0000ff;">'zip'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'application/zip'</span><span style="color: #339933;">,</span>
				   <span style="color: #0000ff;">'iso'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">'application/octet-stream'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//-------------------------------------</span>
	<span style="color: #666666; font-style: italic;">/* Estados */</span>
	<span style="color: #666666; font-style: italic;">// -1 = descarga fallida</span>
	<span style="color: #666666; font-style: italic;">// 0 = descargando</span>
	<span style="color: #666666; font-style: italic;">// 1 = descarga exitosa</span>
	<span style="color: #666666; font-style: italic;">//-------------------------------------</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//-------------------------------------</span>
	<span style="color: #666666; font-style: italic;">/* Parametros Generales */</span>
	<span style="color: #666666; font-style: italic;">// Descargas Máx. de forma simultanea</span>
	<span style="color: #000088;">$max_simultaneas</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Tiempo de espera en segundos</span>
	<span style="color: #000088;">$tiempo_espera</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3600</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//-------------------------------------</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/* Conexión con MySQL */</span>
	<span style="color: #000088;">$recurso_sql</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'root'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MySQL no disponible'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'limitar'</span><span style="color: #339933;">,</span><span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Base de datos seleccionada no disponible'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Inicio en 0 bytes el maximo y el total descargado actualmente</span>
	<span style="color: #000088;">$actual</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$maximo</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// prevengo ataques sobre la variable del archivo</span>
	<span style="color: #000088;">$extension</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'extension'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$nombre_archivo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">addslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'archivo'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">.</span><span style="color: #000088;">$extension</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	
&nbsp;
	<span style="color: #666666; font-style: italic;">// completo el path hacia el archivo, incluyo la carpeta &quot;files&quot;</span>
	<span style="color: #000088;">$ruta_archivo</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'files/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// verifico que el archivo exista, y que tenga un nombre</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ruta_archivo</span><span style="color: #009900;">&#41;</span> OR <span style="color: #000088;">$nombre_archivo</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Envio 404 archivo no existe</span>
		<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HTTP/1.0 404 Not Found&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// termino el script</span>
		<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Archivo no encontrado: &amp;lt;b&amp;gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;lt;/b&amp;gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>	
&nbsp;
	<span style="color: #666666; font-style: italic;">// Obtengo la ip del visitante</span>
	<span style="color: #666666; font-style: italic;">// existen diversos metodos, y mucho mejores que el actual</span>
	<span style="color: #666666; font-style: italic;">// sin embargo solo esta a metodo de ejemplo</span>
	<span style="color: #000088;">$ip</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>	
&nbsp;
	<span style="color: #666666; font-style: italic;">// Busco si el archivo seleccionado se esta descargando desde la ip del cliente</span>
	<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SELECT id FROM descargas WHERE ip=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$ip</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; AND archivo=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; AND estado=0 '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// obtengo las filas devueltas por el recurso</span>
	<span style="color: #000088;">$num</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// se inicializa la variable de autorizacion como false</span>
	<span style="color: #000088;">$autorizado</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// variable auxiliar, que permite saber si el tiempo de espera ha caducado para un registro en la bd</span>
	<span style="color: #000088;">$autorizado_update</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// variable para saber si el usuario se encuentra bajando el archivo seleccionado</span>
	<span style="color: #000088;">$descargando</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// si no existen registros (no se esta descargando el archivo actual en la ip actual)</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// se eliminan las descargas incompletas</span>
		<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DELETE FROM descargas WHERE estado=-1 '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Consulta que extrae de la base de datos todas las descargas por ip y ordenadas segun el tiempo_espera</span>
		<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SELECT id,estado, tiempo_espera FROM descargas WHERE ip=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$ip</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; AND estado !=-1 ORDER BY tiempo_espera ASC '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// se cuentan las coincidencias</span>
		<span style="color: #000088;">$num</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// inicializo tiempo a esperar</span>
		<span style="color: #000088;">$tiempo_a_esperar</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tiempo_actual</span><span style="color: #339933;">+</span><span style="color: #000088;">$tiempo_espera</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
&nbsp;
		<span style="color: #666666; font-style: italic;">// si no existen coincidencias o son inferiores al limite max de descargas simultaneas</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> OR <span style="color: #000088;">$num</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #000088;">$max_simultaneas</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// se autoriza la descarga</span>
			<span style="color: #000088;">$autorizado</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// se recogen los datos</span>
			<span style="color: #000088;">$datos</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_assoc</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// si la primera descarga esta con el tiempo de espera caducado y ya se descargo</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tiempo_actual</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$datos</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tiempo_espera'</span><span style="color: #009900;">&#93;</span> AND <span style="color: #000088;">$datos</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'estado'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// actualizo el tiempo de espera y se autoriza la descarga</span>
				<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'UPDATE FROM descargas SET tiempo_espera=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$tiempo_a_esperar</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;,archivo=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;,estado=0 WHERE id='</span><span style="color: #339933;">.</span><span style="color: #000088;">$datos</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #666666; font-style: italic;">// se pasa el identificador</span>
				<span style="color: #000088;">$identificador</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$datos</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$autorizado_update</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$autorizado</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// de lo contrario, activo la variable que controla el estado del archivo</span>
	<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$descargando</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// si no se encuentra autorizado, envio un error.</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$autorizado</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			 <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP/1.0 503 Service Unavailable'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		
&nbsp;
			 <span style="color: #666666; font-style: italic;">// si se esta descargando arrojo un error</span>
			 <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$descargando</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			 	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Ya te encuentras descargando el archivo seleccionado &amp;lt;b&amp;gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;lt;/b&amp;gt;.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
  			 	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'No estas autorizado a descargar más de '</span><span style="color: #339933;">.</span><span style="color: #000088;">$max_simultaneas</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' archivos de forma simultanea o a descargar esa cantidad sin esperar al menos '</span><span style="color: #339933;">.</span><span style="color: #000088;">$tiempo_espera</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' minutos.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 <span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// solo se inserta si el registro es nuevo</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$autorizado_update</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Se registra, automaticamente el estado es &quot;descargando&quot;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'INSERT INTO descargas (ip,archivo,tiempo_espera) VALUES (&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$ip</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;,&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;,&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$tiempo_a_esperar</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;) '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$identificador</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_insert_id</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">// calculo el peso de archivo</span>
		<span style="color: #000088;">$maximo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">filesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ruta_archivo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #666666; font-style: italic;">// cabeceras de control</span>
		<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-type: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$mymes</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$extension</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Disposition: attachment; filename=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nombre_archivo</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-length: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$maximo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cache-control: private'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	
&nbsp;
		<span style="color: #666666; font-style: italic;">// abro el recurso de archivo en modo lectura</span>
		<span style="color: #000088;">$fd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fopen</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$ruta_archivo</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #666666; font-style: italic;">// mientras el recurso contenga bytes por leer</span>
		<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">feof</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fd</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>			
&nbsp;
			<span style="color: #666666; font-style: italic;">// compruebo si el usuario ha detenido la ejecucion del script</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">connection_status</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// envio funcion de salida</span>
				comprobarDescarga<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #666666; font-style: italic;">// se detiene el script, el cliente se desconecto.</span>
				<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// leo solo 10kb del archivo</span>
			<span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fd</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10240</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// aumento la variable actual descargado</span>
			<span style="color: #000088;">$actual</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$buffer</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// muestro los 10kb que lei anteriormente</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$buffer</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">// Esta funcion me permite detener el while en microsegundos para limitar los kb de descarga</span>
			<span style="color: #990000;">usleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">300000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
			<span style="color: #666666; font-style: italic;">// En este caso, cada 1/3 de segundo se entregan 10kb, entonces el cliente tendrá disponible solo 30kb apróx. por segundo.</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">// cierro el recurso</span>
		<span style="color: #990000;">fclose</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// envio la funcion de salida</span>
		comprobarDescarga<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// termino el script</span>
		<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #666666; font-style: italic;">// Esta es la funcion de salida, que se ejecuta cuando el usuario cancela el script, o se realiza la descarga</span>
	<span style="color: #000000; font-weight: bold;">function</span> comprobarDescarga<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	 <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$actual</span><span style="color: #339933;">,</span> <span style="color: #000088;">$maximo</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tiempo_espera</span><span style="color: #339933;">,</span> <span style="color: #000088;">$identificador</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// renuevo el tiempo actual</span>
		<span style="color: #000088;">$tiempo_actual</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$tiempo_a_esperar</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tiempo_actual</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$tiempo_espera</span><span style="color: #339933;">;</span>		
&nbsp;
		<span style="color: #666666; font-style: italic;">// si se descargo el archivo de forma correcta</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$actual</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;=</span> <span style="color: #000088;">$maximo</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'UPDATE descargas SET estado=1,tiempo_espera=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$tiempo_a_esperar</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; WHERE id='</span><span style="color: #339933;">.</span><span style="color: #000088;">$identificador</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// si se detuvo el script</span>
		<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'UPDATE descargas SET estado=-1 WHERE id='</span><span style="color: #339933;">.</span><span style="color: #000088;">$identificador</span><span style="color: #339933;">,</span> <span style="color: #000088;">$recurso_sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// termino el script</span>
		<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>

<p><a href="http://www.donubu.com/uploads/limitar.rar" target="_self"><strong>Descargar el archivo limitar.php</strong></a></p>
<p>Son aproximadamente 170 líneas incluyendo los comentarios que son realmente necesarios para los novatos (aunque a veces, entorpecen la interpretación visual del script). Es el código completo probado y revisado por última vez el Viernes 16 de mayo del 2008. Realizarlo me tomó más de 2 horas, y 1 hora en realizar pruebas.</p>
<p>Existen varios ejemplos en la red, pero ninguno cubre temas como &#8220;detectar si el usuario se desconecto, si el archivo se bajo completamente, controlar un número de descargas simultáneas, etc&#8230;&#8221;</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/02/23/configurar-bw_mod-dentro-de-cpanel/" title="Configurar bw_mod dentro de CPANEL">Configurar bw_mod dentro de CPANEL</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/05/16/tutorial-3-limitar-descargas-con-php-y-mysql-descargas-simultaneas-y-velocidad-de-bajada/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Virtualización y Microsoft Virtual PC</title>
		<link>http://www.donubu.com/2008/05/11/virtualizacion-y-microsoft-virtual-pc/</link>
		<comments>http://www.donubu.com/2008/05/11/virtualizacion-y-microsoft-virtual-pc/#comments</comments>
		<pubDate>Sun, 11 May 2008 15:28:46 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[maquina]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[recursos]]></category>
		<category><![CDATA[sistema operativo]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[virtualizacion]]></category>
		<category><![CDATA[virtualizar]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=84</guid>
		<description><![CDATA[Es raro, que a esta altura se me ocurra agregar un post de un software que es bastante antiguo (leer más abajo), pero lo hago por la sencilla razón de que es fácil de usar y muchos nisiquiera lo conocen o bien no comprenden la terminología. Según la wikipedia, la virtualización se refiere a la [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-86" title="msvpclogo" src="http://www.donubu.com/uploads/msvpclogo.png" alt="" width="500" height="159" /><br />
<br class="limpiar" /><br />
<span style="text-decoration: line-through;"> Es raro, que a esta altura se me ocurra agregar un post de un software que es bastante antiguo (leer más abajo), pero lo hago por la sencilla razón de que es fácil de usar y muchos nisiquiera lo conocen o bien no comprenden la terminología.</span></p>
<p><a href="http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n" target="_blank">Según la wikipedia, la virtualización se refiere a la abstracción de los recursos de una computadora</a>. En este caso nos centraremos en la <a href="http://es.wikipedia.org/wiki/M%C3%A1quina_virtual" target="_blank">virtualización de plataforma</a>; que es un software capaz de EMULAR a un computador. En palabras más simples, podríamos tener 2 o más sistemas operativos corriendo sobre un mismo hardware y un mismo sistema operativo gracias a un software especializado.</p>
<p>Para descargar un software para virtualización, podemos acceder a:<span id="more-84"></span></p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6" target="_blank">La página oficial de  Microsoft Virtual PC</a></p>
<p><a href="http://www.donubu.com/uploads/msvpc1.png"><br />
<img class="alignleft alignnone size-medium wp-image-85" style="float: left;" title="msvpc1" src="http://www.donubu.com/uploads/msvpc1-300x142.png" alt="" width="300" height="142" /></a></p>
<p>Dentro de la extensa lista de software, encontramos a <a href="http://es.wikipedia.org/wiki/Virtual_PC" target="_blank">Microsoft Virtual PC</a>, de libre descarga y uso. Cuenta con las herramientas básicas.</p>
<p>Podremos controlar la cantidad de memoria Ram asignada al sistema operativo &#8220;invitado&#8221;, habilitar puertos COM, LPT, sonido, e incluso compartir carpetas entre los sistemas operativos instalados.</p>
<p>Lo mejor de todo, es que puedes utilizar esta tecnología para realizar pruebas de software en diversos sistemas operativos con distintos recursos disponibles.</p>
<p>No es el último ni tampoco el único, pero quizás si el más agradable y sencillo para un usuario común. Puedes incluso instalar distribuciones de linux y realizar pruebas de tipo servidor.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/01/14/linux-fan-boys-destruyen-linux/" title="¿Linux Fan Boys destruyen Linux?">¿Linux Fan Boys destruyen Linux?</a></li><li><a href="http://www.donubu.com/2009/01/30/programacion-en-php-migrar-de-entornos-de-desarrollo-a-productivos/" title="Programacion en PHP, migrar de entornos de desarrollo a productivos">Programacion en PHP, migrar de entornos de desarrollo a productivos</a></li><li><a href="http://www.donubu.com/2009/01/07/recopilacion-de-20-wallpapers-de-windows-7/" title="Recopilacion de 20 wallpapers de windows 7">Recopilacion de 20 wallpapers de windows 7</a></li><li><a href="http://www.donubu.com/2008/04/06/windows-a-simple-vista-p/" title="Windows a simple Vista :P">Windows a simple Vista :P</a></li><li><a href="http://www.donubu.com/2009/11/16/prueba-la-version-beta-de-office-2010-gratis/" title="Prueba la version BETA de Office 2010 Gratis">Prueba la version BETA de Office 2010 Gratis</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/05/11/virtualizacion-y-microsoft-virtual-pc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MICONSULTA &#8211; Software para Consultas Médicas</title>
		<link>http://www.donubu.com/2008/05/04/miconsulta-software-para-consultas-medicas/</link>
		<comments>http://www.donubu.com/2008/05/04/miconsulta-software-para-consultas-medicas/#comments</comments>
		<pubDate>Sun, 04 May 2008 21:25:34 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[administracion]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[medicina]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[consulta medica]]></category>
		<category><![CDATA[gestion]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[programa]]></category>
		<category><![CDATA[veterinarias]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=80</guid>
		<description><![CDATA[Hace 3 años atrás, y luego de un exhaustivo estudio de mercado y analisis de necesidades de una &#8220;Consulta Médica&#8221; (ya sea particular o clínica), logré elaborar un prototipo de software bastante funcional y moderno, utilizando PHP, MySQL, y algo de Ajax. Luego, ese software evoluciono, integrando mayor control de acciones, herramientas más definidas y [...]]]></description>
			<content:encoded><![CDATA[<p>Hace 3 años atrás, y luego de un exhaustivo estudio de mercado y analisis de necesidades de una &#8220;Consulta Médica&#8221; (ya sea particular o clínica), logré elaborar un prototipo de software bastante funcional y moderno, utilizando <a href="http://es.wikipedia.org/wiki/Php" target="_blank">PHP</a>, <a href="http://es.wikipedia.org/wiki/Mysql" target="_blank">MySQL</a>, y algo de <a href="http://es.wikipedia.org/wiki/AJAX" target="_blank">Ajax</a>.</p>
<p>Luego, ese software evoluciono, integrando mayor control de acciones, herramientas más definidas y finalmente una optimización.</p>
<p>Sin embargo y no conforme y gracias al <a href="http://es.wikipedia.org/wiki/Feedback" target="_blank">feedback</a> por parte de los diversos usuarios, logré reinventar todo otra vez y entregar un verdadero software de gestión médica.</p>
<p><a href="http://www.donubu.com/uploads/fullscreen-home.png"><img class="alignnone size-full wp-image-81" title="fullscreen-home" src="http://www.donubu.com/uploads/fullscreen-home.png" alt="" width="475" height="304" /></a><br />
<br class="limpiar" /></p>
<p>Para acceder a la demostración:</p>
<p><a href="http://spa.donubu.com" target="_blank">http://spa.donubu.com</a><br />
usuario:         demo<br />
password: 007bond007</p>
<hr />Apliqué librerías como <a href="http://es.wikipedia.org/wiki/Prototype" target="_blank">prototype</a>, <a href="http://script.aculo.us/" target="_blank">scriptaculous </a>y <a href="http://www.extjs.com/" target="_blank">extjs </a>(aunque aún me encuentro corrigiendo funciones obsoletas) y logré otorgarle al cliente, el manejo del área de trabajo. Finalmente y para completar este desarrollo, estoy terminando la página web oficial.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/07/10/vibora-2-0-con-twitter-connect/" title="Vibora 2.0 con Twitter Connect">Vibora 2.0 con Twitter Connect</a></li><li><a href="http://www.donubu.com/2009/07/06/sonarfm-version-2-0-recargada/" title="SonarFM version 2.0 Recargada">SonarFM version 2.0 Recargada</a></li><li><a href="http://www.donubu.com/2009/04/02/sonarfm-sitio-web-de-la-radio-20/" title="SonarFM &#8211; Sitio web de la Radio 2.0">SonarFM &#8211; Sitio web de la Radio 2.0</a></li><li><a href="http://www.donubu.com/2008/12/24/mu-darck-servidor-mu-chileno/" title="MUDarck &#8211; Servidor de MU Chileno">MUDarck &#8211; Servidor de MU Chileno</a></li><li><a href="http://www.donubu.com/2008/08/31/remobo-una-vpn-a-un-par-de-clics-de-distancia/" title="REMOBO &#8211; Una VPN a un par de clics de distancia">REMOBO &#8211; Una VPN a un par de clics de distancia</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/05/04/miconsulta-software-para-consultas-medicas/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>htmlSQL &#8211; Un parser SQL para archivos HTML</title>
		<link>http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/</link>
		<comments>http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 22:16:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[browser]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[clase]]></category>
		<category><![CDATA[cliente]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[libreria]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=76</guid>
		<description><![CDATA[Navegando en la web, me encontré con htmlSQL (es bastante añejo pero funcional) una clase php que se complementa con Snoopy (Simula ser un cliente web en PHP, y puede, por ejemplo, enviar formularios de forma transparente) y es capaz de obtener a través de expresiones regulares parte del contenido HTML, y todo gracias a [...]]]></description>
			<content:encoded><![CDATA[<p>Navegando en la web, me encontré con <a href="http://www.jonasjohn.de/lab/htmlsql.htm" target="_blank">htmlSQL</a> (<em><strong>es bastante añejo pero funcional</strong></em>) una clase php que se complementa con <a href="http://snoopy.sourceforge.net/" target="_blank">Snoopy</a> <em>(Simula ser un cliente web en PHP, y puede, por ejemplo, enviar formularios de forma transparente)</em> y es capaz de obtener a través de expresiones regulares parte del contenido HTML, y todo gracias a consultas <a href="http://es.wikipedia.org/wiki/SQL" target="_blank">SQL</a>.</p>
<p><strong>Un Ejemplo gráfico:</strong></p>
<p><img class="alignnone size-full wp-image-77" title="htmlsql_example" src="http://www.donubu.com/uploads/htmlsql_example.png" alt="" width="425" height="169" /><br />
<br class="limpiar" /><br />
En la parte Azul, se pueden especificar que atributos se van a devolver en la consulta, en Morado se pueden especificar las etiquetas en las cuales sera consultada la parte Verde. <a href="http://www.jonasjohn.de/lab/htmlsql/" target="_blank">Un demo online se encuentra disponible</a> para que realicen pruebas.</p>
<p>Más que &#8220;utilizar&#8221;, voy a &#8220;estudiar&#8221; la librería y ver si puedo crear algo similar y más acorde a mi forma de programar.</p>
<p>Para lograr un efecto similar, pero de lado del cliente, acostumbro a usar <a href="http://prototypejs.org/" target="_blank">PROTOTYPE JS</a>.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/01/27/oportunidad-digital-fotografia/" title="Oportunidad Digital &#8220;Fotografía&#8221;">Oportunidad Digital &#8220;Fotografía&#8221;</a></li><li><a href="http://www.donubu.com/2008/01/02/administracion-servidor-web-y-de-aplicacion/" title="Paneles de Administración de Servidores">Paneles de Administración de Servidores</a></li><li><a href="http://www.donubu.com/2011/04/04/sitio-web-sonrie-ahora/" title="Sitio web sonrie ahora">Sitio web sonrie ahora</a></li><li><a href="http://www.donubu.com/2010/07/14/de-vuelta-luego-de-muchas-campanas-mas/" title="De vuelta luego de muchas campañas más">De vuelta luego de muchas campañas más</a></li><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/04/13/htmlsql-un-parser-sql-para-archivos-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Silverlight VS Adobe Flex</title>
		<link>http://www.donubu.com/2008/04/11/microsoft-silverlight-vs-adobe-flex/</link>
		<comments>http://www.donubu.com/2008/04/11/microsoft-silverlight-vs-adobe-flex/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 17:41:00 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[browser]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[iexplorer]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=72</guid>
		<description><![CDATA[Hoy en día es más fácil para nosotros los desarrolladores contar con diversas &#8220;herramientas&#8221; y &#8220;complementos&#8221; que nos ayudan a interactuar con el usuario final de nuestros software de manera más dinámica y enriquecer la experiencia de uso. Gracias a ADOBE FLEX y a MICROSOFT SILVERLIGHT, todas estas labores complejas son parte del pasado. Ambos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignnone size-thumbnail wp-image-74" title="silverlight" src="http://www.donubu.com/uploads/silverlight-150x150.png" alt="" width="150" height="150" /><strong> </strong><img class="alignnone size-thumbnail wp-image-73" title="fx" src="http://www.donubu.com/uploads/fx-150x150.png" alt="" width="150" height="150" /><br />
<br class="limpiar" /><br />
Hoy en día es más fácil para nosotros los desarrolladores contar con diversas &#8220;herramientas&#8221; y &#8220;complementos&#8221; que nos ayudan a interactuar con el usuario final de nuestros software de manera más dinámica y enriquecer la experiencia de uso.</p>
<p style="text-align: justify;">Gracias a <a href="http://www.adobe.com/es/products/flex/" target="_blank">ADOBE FLEX</a> y a <a href="http://www.microsoft.com/silverlight/" target="_blank">MICROSOFT SILVERLIGHT</a>, todas estas labores complejas son parte del pasado. Ambos cumplen lo que se denomina <a href="http://es.wikipedia.org/wiki/Rich_Internet_Application" target="_blank">RIA  (<em>Aplicaciones Ricas de Internet</em>)</a>. También se basan en un modelo multi-capa, siendo la de presentación. Ya que todos los procesos se ejecutan y resuelven gracias a la implementación de varios otros lenguajes con los que se puede interactuar.</p>
<p style="text-align: justify;">Acceder a bases de datos, leer feeds rss, generar animaciones, mostrar videos, subir archivos a la web, entre otras cosas.</p>
<p style="text-align: justify;">Ambos presentan un número similar de características que los hacen bastante similares, sin embargo y quizás lo único que puede desequilibrar la balanza, es que Silverlight NO es soportado en Linux, y solo en windows en los navegadores <a href="http://www.mozilla.com/products/download.html?product=firefox-2.0.0.13&amp;os=win&amp;lang=es-ES" target="_blank">Firefox</a> e Internet Explorer (<a href="http://www.opera.com/" target="_blank">Opera</a> aún queda afuera). Mientras que Flex es multiplataforma y puede ser unido a ADOBE AIR para crear aplicaciones de escritorio.</p>
<p style="text-align: justify;">Para ambos se necesitan unos complementos que se instalan en un par de clic y que son solicitados al ejecutar una aplicación.</p>
<p style="text-align: justify;">Una explicación más detallada se puede encontrar en la WIKIPEDIA <img src='http://www.donubu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;</p>
<p style="text-align: justify;"><a href="http://es.wikipedia.org/wiki/Adobe_Flex" target="_blank">Adobe Flex</a> y <a href="http://es.wikipedia.org/wiki/Silverlight" target="_blank">Microsoft Silverlight</a></p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2010/02/26/nivea-silvermoto/" title="Nivea Silvermoto">Nivea Silvermoto</a></li><li><a href="http://www.donubu.com/2009/12/29/ya-llego-el-crush-power-music-2010/" title="Ya llego el Crush Power Music 2010">Ya llego el Crush Power Music 2010</a></li><li><a href="http://www.donubu.com/2009/11/16/prueba-la-version-beta-de-office-2010-gratis/" title="Prueba la version BETA de Office 2010 Gratis">Prueba la version BETA de Office 2010 Gratis</a></li><li><a href="http://www.donubu.com/2009/01/14/descarga-gratis-windows-7/" title="Descarga gratis windows 7">Descarga gratis windows 7</a></li><li><a href="http://www.donubu.com/2009/01/07/recopilacion-de-20-wallpapers-de-windows-7/" title="Recopilacion de 20 wallpapers de windows 7">Recopilacion de 20 wallpapers de windows 7</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/04/11/microsoft-silverlight-vs-adobe-flex/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Microsoft Codenames</title>
		<link>http://www.donubu.com/2008/03/30/microsoft-codenames/</link>
		<comments>http://www.donubu.com/2008/03/30/microsoft-codenames/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 19:53:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[codenames]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=52</guid>
		<description><![CDATA[Como ya es costumbre, siempre Microsoft utiliza codenames para sus nuevos productos o servicios. Tal es el caso de longhorn (windows vista) o Whistler (Windows XP). Encontré en wikipedia la recopilación de todos estos. Al igual que Microsoft, tengo la mala costumbre de ponerle nombres claves a todos mis proyectos. Articulos RelacionadosPrueba la version BETA [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya es costumbre, siempre <a href="http://www.microsoft.cl" target="_blank">Microsoft </a>utiliza codenames para sus nuevos productos o servicios. Tal es el caso de longhorn (windows vista) o Whistler (Windows XP). Encontré en <a href="http://en.wikipedia.org/wiki/Microsoft_codenames" target="_blank">wikipedia la recopilación de todos estos</a>.</p>
<p>Al igual que <a href="http://www.microsoft.cl" target="_blank">Microsoft</a>, tengo la <span style="text-decoration: line-through;">mala</span> costumbre de ponerle nombres claves a todos mis proyectos.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2009/11/16/prueba-la-version-beta-de-office-2010-gratis/" title="Prueba la version BETA de Office 2010 Gratis">Prueba la version BETA de Office 2010 Gratis</a></li><li><a href="http://www.donubu.com/2009/01/14/descarga-gratis-windows-7/" title="Descarga gratis windows 7">Descarga gratis windows 7</a></li><li><a href="http://www.donubu.com/2009/01/07/recopilacion-de-20-wallpapers-de-windows-7/" title="Recopilacion de 20 wallpapers de windows 7">Recopilacion de 20 wallpapers de windows 7</a></li><li><a href="http://www.donubu.com/2008/05/11/virtualizacion-y-microsoft-virtual-pc/" title="Virtualización y Microsoft Virtual PC">Virtualización y Microsoft Virtual PC</a></li><li><a href="http://www.donubu.com/2008/04/11/microsoft-silverlight-vs-adobe-flex/" title="Microsoft Silverlight VS Adobe Flex">Microsoft Silverlight VS Adobe Flex</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/03/30/microsoft-codenames/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Por Fin &#8211; HOTFIX para visual basic en visual studio 2008</title>
		<link>http://www.donubu.com/2008/03/30/por-fin-hotfix-para-visual-basic-en-visual-studio-2008/</link>
		<comments>http://www.donubu.com/2008/03/30/por-fin-hotfix-para-visual-basic-en-visual-studio-2008/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 19:43:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[hotfix]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[problemas]]></category>
		<category><![CDATA[visual studio 2008]]></category>

		<guid isPermaLink="false">http://www.donubu.com/?p=51</guid>
		<description><![CDATA[Llevo casi 1 mes mudando todos mis programas desde visual studio 2005 a visual studio 2008 y empecé a notar ciertas falencias de este último. A veces se tomaba demasiado tiempo en el inicio de tareas de seguimiento de errores, o bien, la ventana del IDE se quedaba pegada y era necesario finalizar la tarea [...]]]></description>
			<content:encoded><![CDATA[<p>Llevo casi 1 mes mudando todos mis programas desde visual studio 2005 a visual studio 2008 y empecé a notar ciertas falencias de este último. A veces se tomaba demasiado tiempo en el inicio de tareas de seguimiento de errores, o bien, la ventana del IDE se quedaba pegada y era necesario finalizar la tarea desde el administrador de windows (Esto solo pasa en visual basic, y no en c#).</p>
<p><a href="http://blogs.msdn.com/vbteam/archive/2008/03/23/hotfix-available-for-vb-performance-issue-in-vs2008-dj-park.aspx" target="_blank">Navegando en el blog oficial de los desarrolladores del vbteam encontré la solución, y es un pequeño</a> <a href="http://es.wikipedia.org/wiki/Hotfix" target="_blank">hotfix</a>.</p>
<p>Dejo el acceso para quienes tengan problemas similares.</p>

<h3>Articulos Relacionados</h3><ul class="related_post"><li><a href="http://www.donubu.com/2008/09/27/servicios-tecnicos-deficientes/" title="Servicios Técnicos deficientes">Servicios Técnicos deficientes</a></li><li><a href="http://www.donubu.com/2008/07/11/toshiba-latino-toshibacom-0-driver/" title="Toshiba Latino &#8211; Toshiba.com = 0 Driver">Toshiba Latino &#8211; Toshiba.com = 0 Driver</a></li><li><a href="http://www.donubu.com/2008/04/04/pc-viejo-nuevos-problemas/" title="PC Viejo => Nuevos Problemas">PC Viejo => Nuevos Problemas</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.donubu.com/2008/03/30/por-fin-hotfix-para-visual-basic-en-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

