<?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>Qbit Mexhico Blog &#187; Ocio</title>
	<atom:link href="http://qbit.com.mx/blog/category/ocio/feed/" rel="self" type="application/rss+xml" />
	<link>http://qbit.com.mx/blog</link>
	<description>Lo que hacemos y pensamos se escribe aqui</description>
	<lastBuildDate>Tue, 15 May 2012 16:15:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Unable to build project output group &#8216;Content Files from x (Active)&#8217;</title>
		<link>http://qbit.com.mx/blog/2012/05/15/unable-to-build-project-output-group-content-files-from-x-active/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unable-to-build-project-output-group-content-files-from-x-active</link>
		<comments>http://qbit.com.mx/blog/2012/05/15/unable-to-build-project-output-group-content-files-from-x-active/#comments</comments>
		<pubDate>Tue, 15 May 2012 16:15:36 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Pruebas de Software]]></category>
		<category><![CDATA[Servicio]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[c sharp]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[installer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[output]]></category>
		<category><![CDATA[studio]]></category>
		<category><![CDATA[visual]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1195</guid>
		<description><![CDATA[http://www.hanselman.com/blog/VisualStudioMSIProblemsUnableToBuildProjectOutputGroupContentFilesFromSOMEWEBActive.aspx
No hay entradas relacionadas]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_1196" class="wp-caption aligncenter" style="width: 290px"><a href="http://qbit.com.mx/blog/wp-content/uploads/UnableToBuildProjectOutputGroup.jpg"><img class="size-full wp-image-1196" title="Unable to Build Project Output Group" src="http://qbit.com.mx/blog/wp-content/uploads/UnableToBuildProjectOutputGroup.jpg" alt="Unable to Build Project Output Group" width="280" height="168" /></a><p class="wp-caption-text">Unable to Build Project Output Group</p></div>
<p>Estoy trabajando en un proyecto con ASP MCVC bastante complejo con muchos archivos, muchas reglas y sobre todo comunicación con otro servicios .. y sucede que la semana pasada hice un cambio importante en el código y necesité generar nuevamente los archivos de instalación.. pero algo fallaba y no se podía generar el archivo .msi (setup) .. el error citaba algo como &#8220;Unable to build project output group &#8216;Content Files from ___ (Activate)&#8221; .. no me había pasado antes.. y pues el error no describía nada más .. por lo que encontrar el porque era algo tardado quizás..</p>
<p>Buscando un poco entoncré que esto ocurre cuando un archivo del proyecto fue eliminado del disco, pero no fue eliminado del entorno de desarrollo.. entonces al crear el archivo de instalación no se encuentra una fuente por consiguiente falla al generar el archivo instalador.</p>
<p>La solución.. simple!! solo expande todos las carpetas de tu proyecto y busca archivos que tengan un símbolo de admiración amarillo .. pues esos son los que están dando problemas.. o los restauras o los eliminas y listo.. si intentas nuevamente la generación del instalador, estoy super, super seguro de que no habrá más errores.</p>
<p> <img src='http://qbit.com.mx/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F15%2Funable-to-build-project-output-group-content-files-from-x-active%2F&amp;t=Unable+to+build+project+output+group+%26%238216%3BContent+Files+from+x+%28Active%29%26%238217%3B" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Unable+to+build+project+output+group+%26%238216%3BContent+Files+from+x+%28Active%29%26%238217%3B%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1195%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F15%2Funable-to-build-project-output-group-content-files-from-x-active%2F&amp;title=Unable+to+build+project+output+group+%26%238216%3BContent+Files+from+x+%28Active%29%26%238217%3B&amp;notes=http%3A%2F%2Fwww.hanselman.com%2Fblog%2FVisualStudioMSIProblemsUnableToBuildProjectOutputGroupContentFilesFromSOMEWEBActive.aspx" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F15%2Funable-to-build-project-output-group-content-files-from-x-active%2F&amp;title=Unable+to+build+project+output+group+%26%238216%3BContent+Files+from+x+%28Active%29%26%238217%3B&amp;bodytext=http%3A%2F%2Fwww.hanselman.com%2Fblog%2FVisualStudioMSIProblemsUnableToBuildProjectOutputGroupContentFilesFromSOMEWEBActive.aspx" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F15%2Funable-to-build-project-output-group-content-files-from-x-active%2F&amp;title=Unable+to+build+project+output+group+%26%238216%3BContent+Files+from+x+%28Active%29%26%238217%3B" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>No hay entradas relacionadas</p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/05/15/unable-to-build-project-output-group-content-files-from-x-active/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como saber que puertos estan ocupados y que programa los utiliza en windows</title>
		<link>http://qbit.com.mx/blog/2012/05/08/como-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows</link>
		<comments>http://qbit.com.mx/blog/2012/05/08/como-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows/#comments</comments>
		<pubDate>Tue, 08 May 2012 16:00:00 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[IIS]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[netstat]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[puerto]]></category>
		<category><![CDATA[taskkill]]></category>
		<category><![CDATA[tasklist]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1172</guid>
		<description><![CDATA[De esas veces que necesitas saber si un puerto esta abierto y no estas en linux, sino en windows.. no tienes herramientas gráficas y solo puedes acceder a la consola y sus comandos.. Lo primero es utilizar netstat y unos cuantos parámetros desde la consola en windows (-o muestra el PID, -a todas las conexiones [...]
No hay entradas relacionadas]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_1173" class="wp-caption aligncenter" style="width: 522px"><a href="http://qbit.com.mx/blog/wp-content/uploads/netstat.png"><br />
<img class="size-full wp-image-1173" title="netstat" src="http://qbit.com.mx/blog/wp-content/uploads/netstat.png" alt="netstat" width="512" height="258" /></a><p class="wp-caption-text">Como saber que puertos estan ocupados y quien los esta utilizando</p></div>
<p>De esas veces que necesitas saber si un puerto esta abierto y no estas en linux, sino en windows.. no tienes herramientas gráficas y solo puedes acceder a la consola y sus comandos..</p>
<p>Lo primero es utilizar netstat y unos cuantos parámetros desde la consola en windows (-o muestra el PID, -a todas las conexiones y -n direcciones ip)</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">c:\Jack<span style="color: #33cc33;">&gt;</span> netstat -oan</pre></div></div>

<p>Luego que ya sabemos si o no está en uso.. ahí mismo con el parámetro -o podemos tener acceso al no. de proceso o PID .. ya con ese dato podemos abrir el administrador de tareas, eso bastaría para saber su nombre y matarlo si es lo que necesitan.. pero si es un proceso global y no aparece en el administrador de tareas, no hay de otra más que seguir utilizando la consola para averiguar de donde diablos salío la aplicación que utiliza el puerto que necesitan.</p>
<p>Bueno, lo siguiente entonces es saber el nombre de la aplicación dueña del proceso y para esto utilizamos el comando tasklist con otro par de parámetros (-svc para obtener el nombre del servicio, -FI para aplicar un filtro de búsqueda)</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">c:\Jack<span style="color: #33cc33;">&gt;</span> tasklist /svc /FI &quot;PID eq 1428&quot;</pre></div></div>

<p>En este caso de ejemplo quiero conocer el nombre de la aplicación con PID 1428 que fue lo que encontré utilizando netstat .. y el resultado de la ejecución de tasklist es el nombre de la aplicación.</p>
<p>Ya para finalizar vamos a utilizar el comando taskkill enviando como parámetros -F para forzar el cierre de la aplicacion y -PID para especificar el número de proceso a matar.</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">c:\Jack<span style="color: #33cc33;">&gt;</span> taskkill /F /PID 1428</pre></div></div>

<p>Y taraaán.. Aprendieron a averiguar sí o no se estaba utilizando un puerto, el nombre de la aplicación que lo utilizaba y hasta lo matamos para que no nos siga molestando <img src='http://qbit.com.mx/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F08%2Fcomo-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows%2F&amp;t=Como+saber+que+puertos+estan+ocupados+y+que+programa+los+utiliza+en+windows" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Como+saber+que+puertos+estan+ocupados+y+que+programa+los+utiliza+en+windows%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1172%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F08%2Fcomo-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows%2F&amp;title=Como+saber+que+puertos+estan+ocupados+y+que+programa+los+utiliza+en+windows&amp;notes=%0D%0A%0D%0ADe+esas+veces+que+necesitas+saber+si+un+puerto+esta+abierto+y+no+estas+en+linux%2C+sino+en+windows..+no+tienes+herramientas+gr%C3%A1ficas+y+solo+puedes+acceder+a+la+consola+y+sus+comandos..%0D%0A%0D%0ALo+primero+es+utilizar+netstat+y+unos+cuantos+par%C3%A1metros+d" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F08%2Fcomo-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows%2F&amp;title=Como+saber+que+puertos+estan+ocupados+y+que+programa+los+utiliza+en+windows&amp;bodytext=%0D%0A%0D%0ADe+esas+veces+que+necesitas+saber+si+un+puerto+esta+abierto+y+no+estas+en+linux%2C+sino+en+windows..+no+tienes+herramientas+gr%C3%A1ficas+y+solo+puedes+acceder+a+la+consola+y+sus+comandos..%0D%0A%0D%0ALo+primero+es+utilizar+netstat+y+unos+cuantos+par%C3%A1metros+d" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F08%2Fcomo-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows%2F&amp;title=Como+saber+que+puertos+estan+ocupados+y+que+programa+los+utiliza+en+windows" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>No hay entradas relacionadas</p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/05/08/como-saber-que-puertos-estan-ocupados-y-que-programa-los-utiliza-en-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG una tecnología en extinción</title>
		<link>http://qbit.com.mx/blog/2012/04/17/svg-una-tecnologia-en-extincion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=svg-una-tecnologia-en-extincion</link>
		<comments>http://qbit.com.mx/blog/2012/04/17/svg-una-tecnologia-en-extincion/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 16:00:12 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Futuro]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Jackfiallos]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1082</guid>
		<description><![CDATA[http://coding.smashingmagazine.com/2012/02/22/web-drawing-throwdown-paper-processing-raphael/
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/28/jquery-mobile-lo-bueno-y-lo-malo/' rel='bookmark' title='jQuery Mobile lo bueno y lo malo'>jQuery Mobile lo bueno y lo malo</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/30/la-web-tridimensional-webgl/' rel='bookmark' title='La Web Tridimensional : WebGL'>La Web Tridimensional : WebGL</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/13/aplicaciones-moviles-nativas-vs-web/' rel='bookmark' title='Aplicaciones moviles &#8211; nativas vs web'>Aplicaciones moviles &#8211; nativas vs web</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_1083" class="wp-caption aligncenter" style="width: 184px"><a href="http://qbit.com.mx/blog/wp-content/uploads/svglogos.png"><img class="size-full wp-image-1083" title="SVG Logo" src="http://qbit.com.mx/blog/wp-content/uploads/svglogos.png" alt="SVG Logo" width="174" height="128" /></a><p class="wp-caption-text">SVG Logo</p></div>
<p>Hace algunas meses atrás parte de algunas de las características que pensaba desarrollar en <a title="http://qbit.com.mx/labs/celestic" href="http://qbit.com.mx/labs/celestic">Celestic </a>.. y que aún se encuentran pendientes, era crear una especie de pizarra que permitiera a multiples usuarios escribir o hacer anotaciones en tiempo real.. para ese entonces pensaba en solamente 2 opciones, canvas o svg.. incluso escribí algunas pruebas de diferentes librerías y al final estuve muy certa de utilizar RaphaelJS, eso sobre cualquier librería para canvas.</p>
<p>En ese momento, html5 no estaba muy difundido y las librerías de canvas estaban muy verdes para utilizar alguna, al final Celestic se detuvo un poco y decidí centrar el desarrollo en otro tipo de características.. Han pasado 3 años desde que tuve en mente si utilizar svn sobre canvas.. y hoy estoy a punto de cambiar de idea.</p>
<p>Las tecnologías cambian de la noche a la mañana, un día una nueva herramienta de desarrollo esta en la cima y otro día simplemente cae .. y lo peor es que nosotros nos preparamos tanto tiempo para aprenderlas .. que un día nos deja de servir y tenemos que empezar desde cero con algo totalmente nuevo.</p>
<p>La web cambia rápido .. ahora parece que flash ya no es una tecnología en la que valga la pena invertir.. hemos de aceptar que tuvo su gran momento, años de desarrollo y grandes comunidades dedicándose a perfeccionar los métodos de codificación.. para que al final no quede en nada.. &#8220;nada es eterno&#8221;.</p>
<p>Entonces creo que con SVG esta ocurriendo una situación similar.. los equipos de escritorio tienen soporte para SVG, los equipos móviles no lo tienen y si lo tienen es con especificaciones diferentes.. el SVG es una tecnología en extinción, los navegadores se estan especializando en pintar (render) canvas de manera muy rápida.. igualmente algunos browsers preparan su javascript para utilizar aceleración por hardware, lo que hace de canvas la nueva tecnología ideal para dibujar sobre la web.</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F17%2Fsvg-una-tecnologia-en-extincion%2F&amp;t=SVG+una+tecnolog%C3%ADa+en+extinci%C3%B3n" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=SVG+una+tecnolog%C3%ADa+en+extinci%C3%B3n%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1082%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F17%2Fsvg-una-tecnologia-en-extincion%2F&amp;title=SVG+una+tecnolog%C3%ADa+en+extinci%C3%B3n&amp;notes=http%3A%2F%2Fcoding.smashingmagazine.com%2F2012%2F02%2F22%2Fweb-drawing-throwdown-paper-processing-raphael%2F" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F17%2Fsvg-una-tecnologia-en-extincion%2F&amp;title=SVG+una+tecnolog%C3%ADa+en+extinci%C3%B3n&amp;bodytext=http%3A%2F%2Fcoding.smashingmagazine.com%2F2012%2F02%2F22%2Fweb-drawing-throwdown-paper-processing-raphael%2F" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F17%2Fsvg-una-tecnologia-en-extincion%2F&amp;title=SVG+una+tecnolog%C3%ADa+en+extinci%C3%B3n" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/28/jquery-mobile-lo-bueno-y-lo-malo/' rel='bookmark' title='jQuery Mobile lo bueno y lo malo'>jQuery Mobile lo bueno y lo malo</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/30/la-web-tridimensional-webgl/' rel='bookmark' title='La Web Tridimensional : WebGL'>La Web Tridimensional : WebGL</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/13/aplicaciones-moviles-nativas-vs-web/' rel='bookmark' title='Aplicaciones moviles &#8211; nativas vs web'>Aplicaciones moviles &#8211; nativas vs web</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/04/17/svg-una-tecnologia-en-extincion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Habilidades a desarrollar en el 2012</title>
		<link>http://qbit.com.mx/blog/2012/04/10/habilidades-a-desarrollar-en-el-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=habilidades-a-desarrollar-en-el-2012</link>
		<comments>http://qbit.com.mx/blog/2012/04/10/habilidades-a-desarrollar-en-el-2012/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 17:30:21 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Futuro]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[movil]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1077</guid>
		<description><![CDATA[http://www.techrepublic.com/blog/10things/10-skills-for-developers-to-focus-on-in-2012/3009
http://www.onwardsearch.com/careers/most-requested-web-developer-skills/
No hay entradas relacionadas]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_1078" class="wp-caption aligncenter" style="width: 223px"><a href="http://qbit.com.mx/blog/wp-content/uploads/dev-skills.jpg"><img class="size-full wp-image-1078" title="Developer skills" src="http://qbit.com.mx/blog/wp-content/uploads/dev-skills.jpg" alt="Developer skills" width="213" height="204" /></a><p class="wp-caption-text">Developer skills</p></div>
<p><strong>HTML5</strong></p>
<p>El nuevo estándar en para desarrollo de sitios y aplicaciones web.. cargado de características que ayudan a mejorar la navegación y la experiencia de usuario tanto en componentes como en atractivo visual. La mayoría de los navegadores ya soportan html5 inclusive los navegadores para dispositivos móviles se puede decir que casi están al mismo nivel de los navegadores de escritorio.</p>
<p><strong>Aplicaciones Móviles</strong></p>
<p>Creo que esta moda aun no hay muchos desarrolladores adoptándola aunque si es muy importante por la cantidad de dispositivos móviles que se adquieren día a día.. Se puede empezar escribiéndo aplicaciones nativas con los SDK de iOS o Android ..  también se pueden desarrollar con frameworks que portan la aplicación a multiples plataformas.. o más sencillo que los demás escribir aplicaciones web que se adaptan al formato de los móviles.</p>
<p><strong>Servicios Web basados en REST</strong></p>
<p>A pesar de que REST no tiene un estándar y se continúa escribiendo una definición.. muchos servicios alrededor de la web utilizan este método para transportar información.. su sencillez y la falta de tipos de datos pueden ser un punto a tomar en consideración antes de elegirlo. Su implementación conlleva conocer los diversos tipos de peticiones y su consumo es tan simple que con pocas líneas se puede solicitar información a un servidor basado en REST.</p>
<p><strong>Bases de Datos NoSQL</strong></p>
<p>Se puso de moda a partir de que las redes sociales necesitaron manipular grandes volúmenes de información en tiempos muy cortos.. es importante considerar que NoSQL sería casi imposible utilizarlo para realizar consultas complejas, pero entre sus ventajas está la velocidad de respuesta ante millones de peticiones simultáneamente. Su uso implica aprender nuevos métodos para realizar búsquedas y está fuertemente ligado a la denotación JSON para su estructura y almacén de información.</p>
<p><strong>JavaScript</strong></p>
<p>Es el lenguaje para la web interpretado del lado del cliente por excelencia.. hace mucho tiempo parecía no valer la pena aprenderlo.. pero con la llegada de librerías como jQuery, Prototype o Mootools su desarrollo fue muy importante.. PhoneGap o Titanium que son frameworks o librerías para desarrollar aplicaciones móviles utilizan este tipo de lenguajes. Html5 está muy relacionado con javascript, inclusive se desarrolló Node.js que es un framework orientado a eventos para el motor javascript v8 de google.</p>
<p><strong>Las pruebas unitarias</strong></p>
<p>Este tipo de pruebas garantizan el funcionamiento correcto tanto desde el punto de vista estructural como funcional.. es parte de la difícil tarea de los arquitectos de software y a diferencia de las pruebas funcionales que se acostumbran llevar a cabo por los testers, en una temprana etapa de desarrollo de una aplicación, este tipo de pruebas permiten detectar errores en la lógica a desarrollar. La mayoría de frameworks en diferentes lenguajes ya incluyen sus propias implementaciones para realizar pruebas unitarias, no estaría mal aprender a utilizar un par de ellas.</p>
<p><strong>UX/UI</strong></p>
<p>Siempre este término ha estado relacionado con los diseñadores y hay diseñadores que creen que pueden crear interfaces atractivas, simples e intuitivas para los usuarios .. pero creo que ahí esta el error.. parte de desarrollar aplicaciones implica conocer cual es la mejor forma de utilizar los componentes o en que lugares sería mejor utilizarlos para los usuarios.. El uso de equipos móviles han logrado que muchos desarrolladores empiecen a dar pequeños saltos hacia este interesante mundo..</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F10%2Fhabilidades-a-desarrollar-en-el-2012%2F&amp;t=Habilidades+a+desarrollar+en+el+2012" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Habilidades+a+desarrollar+en+el+2012%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1077%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F10%2Fhabilidades-a-desarrollar-en-el-2012%2F&amp;title=Habilidades+a+desarrollar+en+el+2012&amp;notes=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2F10things%2F10-skills-for-developers-to-focus-on-in-2012%2F3009%0D%0Ahttp%3A%2F%2Fwww.onwardsearch.com%2Fcareers%2Fmost-requested-web-developer-skills%2F" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F10%2Fhabilidades-a-desarrollar-en-el-2012%2F&amp;title=Habilidades+a+desarrollar+en+el+2012&amp;bodytext=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2F10things%2F10-skills-for-developers-to-focus-on-in-2012%2F3009%0D%0Ahttp%3A%2F%2Fwww.onwardsearch.com%2Fcareers%2Fmost-requested-web-developer-skills%2F" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F10%2Fhabilidades-a-desarrollar-en-el-2012%2F&amp;title=Habilidades+a+desarrollar+en+el+2012" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>No hay entradas relacionadas</p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/04/10/habilidades-a-desarrollar-en-el-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful API Frameworks en PHP</title>
		<link>http://qbit.com.mx/blog/2012/04/03/restful-api-frameworks-en-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=restful-api-frameworks-en-php</link>
		<comments>http://qbit.com.mx/blog/2012/04/03/restful-api-frameworks-en-php/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 16:00:19 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[services]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1060</guid>
		<description><![CDATA[La semana anterior liberé la versión 0.4.0 de Celestic y una cosa que había prometido y que al final no logré hacer era escribir una API en REST para  utilizarla desde equipos móviles.. Bueno, al menos hay una versión preliminar pero decidí no subirla a los respositorios de código porque eran pruebas .. y es [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/14/rest-vs-soap/' rel='bookmark' title='REST vs SOAP'>REST vs SOAP</a></li>
<li><a href='http://qbit.com.mx/blog/2012/04/10/habilidades-a-desarrollar-en-el-2012/' rel='bookmark' title='Habilidades a desarrollar en el 2012'>Habilidades a desarrollar en el 2012</a></li>
<li><a href='http://qbit.com.mx/blog/2012/01/17/frameworks-como-elegirlos/' rel='bookmark' title='Frameworks, como elegirlos'>Frameworks, como elegirlos</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_619" class="wp-caption aligncenter" style="width: 230px"><a href="http://qbit.com.mx/blog/wp-content/uploads/restvssoap.png"><img class="size-full wp-image-619" title="REST vs SOAP" src="http://qbit.com.mx/blog/wp-content/uploads/restvssoap.png" alt="REST vs SOAP" width="220" height="220" /></a><p class="wp-caption-text">RESTful services</p></div>
<p>La semana anterior liberé la versión 0.4.0 de Celestic y una cosa que había prometido y que al final no logré hacer era escribir una API en REST para  utilizarla desde equipos móviles.. Bueno, al menos hay una versión preliminar pero decidí no subirla a los respositorios de código porque eran pruebas .. y es que durante varios días estuve investigando y probando herramientas para el desarrollo de esta API, al final no utilicé ninguno de estos frameworks y estoy escribiendo mi propia extensión para Yii la cual funcionará tomando datos de los modelos y exportando los resultados a json y xml..</p>
<p>Entonces al grano, esta es una lista de frameworks o librerías que podrían ayudarte a construir tu propia API en REST sobre PHP ..</p>
<p><a title="http://getfrapi.com/" href="http://getfrapi.com/">FRAPI</a> &#8211; Fue una de mis primeras opciones.. pero después de pocos minutos revisando como instalarlo y configurarlo lo abandoné porque al ver que tenía una parte de administración y otra de consumo me desanimé.. en realidad lo que buscaba era algo más simple.. Desde la interfaz de administración y también consola se pueden crear acciones (esto viene hererado del MVC donde solicitas a un controlador una accion específica que termina siendo un método a ejecutarse).</p>
<p><a title="http://apifydoc.com/" href="http://apifydoc.com/">APIFY</a> &#8211; Muy parecido a Frapi, incluso al descomprimirlo vemos una estructura de carpetas tipo MVC.. lo probé pero por alguna razón que aun desconozco nunca funcionó.. su documentación es muy escasa.. en realidad toma muchas cosas de Zend Framework y la librería base para crear REST se reduce a clases Request y Response.</p>
<p><a title="http://www.recessframework.org/" href="http://www.recessframework.org/">Recess</a> &#8211; No tuve oportunidad de probarlo a fondo, al igual que los demás utiliza el patrón de diseño MVC, su interfaz para el desarrollo del servicio esta basado en web a través del navegador. Creo que es de los mejores, pero tiene bastantes archivos y eso no me gustó mucho. Utiliza PDO y mapeo de basee de datos, punto negativo creo que son las consultas entre tablas anidadas.</p>
<p><a title="http://www.slimframework.com/" href="http://www.slimframework.com/">Slim</a> &#8211; No tuve ganas de probarlo, aunque a diferencia de los demás Slim no es un framework, sino más bien una librería o un set de librerías.. Me gustó cuando ví el código pero me desanimó el hecho de que utilizan sus propias rutas y la ausencia de activeRecords.</p>
<p><a title="http://peej.github.com/tonic/" href="http://peej.github.com/tonic/">Tonic</a> – También es una librería, es bastante simple para lo que buscaba y de las cosas que alcancé a probar pues de eso decidí mejor construir mis propias clases para generar REST, me dió la impresión de que me ahorra muy pocas cosas..</p>
<p>En general todos los frameworks y librerías son muy buenos para trabajar utilizando su propio esquema o estructura de carpetas.. Un punto negativo que tienen todos es que los que utilizan PDO y model mapping no es muy bueno con los join y las consultas complejas puede que sea un dolor de cabeza.. Ninguna utiliza un esquema de autenticación compleja como OAuth o al menos Basic Auth .. y si utilizan seguridad lo hacen mediante un parámetro extra que se envia por la url..</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F03%2Frestful-api-frameworks-en-php%2F&amp;t=RESTful+API+Frameworks+en+PHP" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=RESTful+API+Frameworks+en+PHP%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1060%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F03%2Frestful-api-frameworks-en-php%2F&amp;title=RESTful+API+Frameworks+en+PHP&amp;notes=%0D%0A%0D%0ALa+semana+anterior+liber%C3%A9+la+versi%C3%B3n+0.4.0+de+Celestic+y+una+cosa+que+hab%C3%ADa+prometido+y+que+al+final+no+logr%C3%A9+hacer+era+escribir+una+API+en+REST+para+%C2%A0utilizarla+desde+equipos+m%C3%B3viles..+Bueno%2C+al+menos+hay+una+versi%C3%B3n+preliminar+pero+decid" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F03%2Frestful-api-frameworks-en-php%2F&amp;title=RESTful+API+Frameworks+en+PHP&amp;bodytext=%0D%0A%0D%0ALa+semana+anterior+liber%C3%A9+la+versi%C3%B3n+0.4.0+de+Celestic+y+una+cosa+que+hab%C3%ADa+prometido+y+que+al+final+no+logr%C3%A9+hacer+era+escribir+una+API+en+REST+para+%C2%A0utilizarla+desde+equipos+m%C3%B3viles..+Bueno%2C+al+menos+hay+una+versi%C3%B3n+preliminar+pero+decid" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F03%2Frestful-api-frameworks-en-php%2F&amp;title=RESTful+API+Frameworks+en+PHP" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/14/rest-vs-soap/' rel='bookmark' title='REST vs SOAP'>REST vs SOAP</a></li>
<li><a href='http://qbit.com.mx/blog/2012/04/10/habilidades-a-desarrollar-en-el-2012/' rel='bookmark' title='Habilidades a desarrollar en el 2012'>Habilidades a desarrollar en el 2012</a></li>
<li><a href='http://qbit.com.mx/blog/2012/01/17/frameworks-como-elegirlos/' rel='bookmark' title='Frameworks, como elegirlos'>Frameworks, como elegirlos</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/04/03/restful-api-frameworks-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax loading css (indicadores de carga)</title>
		<link>http://qbit.com.mx/blog/2012/02/07/ajax-loading-css-indicadores-de-carga/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ajax-loading-css-indicadores-de-carga</link>
		<comments>http://qbit.com.mx/blog/2012/02/07/ajax-loading-css-indicadores-de-carga/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 14:48:26 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[loader]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[spinner]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=549</guid>
		<description><![CDATA[Si desarrollas aplicaciones web, seguramente te has topado con el comentario por parte de los usuarios de que dan click a un botón o enlace y dicen ellos que no pasa nada.. y claro, algunas veces el servidor responde muy lento debido a la carga de peticiones o la cantidad de datos que debe retornar.. [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2010/03/29/implementando-un-todo-con-jquery-para-tu-aplicacion-web/' rel='bookmark' title='Implementando un ToDo con jQuery para tu aplicacion Web'>Implementando un ToDo con jQuery para tu aplicacion Web</a></li>
<li><a href='http://qbit.com.mx/blog/2012/02/28/jquery-mobile-lo-bueno-y-lo-malo/' rel='bookmark' title='jQuery Mobile lo bueno y lo malo'>jQuery Mobile lo bueno y lo malo</a></li>
<li><a href='http://qbit.com.mx/blog/2012/02/21/how-to-gridview-con-mvc-contrib-para-asp-mvc/' rel='bookmark' title='How to Gridview con MVC Contrib para ASP MVC'>How to Gridview con MVC Contrib para ASP MVC</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_552" class="wp-caption aligncenter" style="width: 110px"><a href="http://qbit.com.mx/blog/wp-content/uploads/example_loader.gif"><img class="size-full wp-image-552" title="Indicadores de carga" src="http://qbit.com.mx/blog/wp-content/uploads/example_loader.gif" alt="Indicadores de carga" width="100" height="100" /></a><p class="wp-caption-text">Indicadores de carga</p></div>
<p>Si desarrollas aplicaciones web, seguramente te has topado con el comentario por parte de los usuarios de que dan click a un botón o enlace y dicen ellos que no pasa nada.. y claro, algunas veces el servidor responde muy lento debido a la carga de peticiones o la cantidad de datos que debe retornar.. entonces es ahí cuando se hace necesario mostrar de manera visual que deben esperar, que su petición esta siendo atendida y que pronto obtendrán una respuesta.</p>
<p>Este es uno de esos métodos siempre útiles para cuando trabajamos con <a title="http://es.wikipedia.org/wiki/AJAX" href="http://es.wikipedia.org/wiki/AJAX">ajax</a> (postbacks o callbacks), mejor conocidos en inglés como loaders o loading spinners. Este post es una pequeña guía para mostrar como implementar un loader utilizando <a title="http://jquery.com/" href="http://jquery.com/">jQuery</a> o <a title="http://mootools.net/" href="http://mootools.net/">Mootols</a> y ajax.</p>
<p>Es necesario escribir un poco de CSS, por lo que el código que viene es la clave para que el cargador tenga sentido</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #6666ff;">.loading</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.loading</span> <span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FFFFFF</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'loading.gif'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1400</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
div<span style="color: #6666ff;">.loading</span> <span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">visibility</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Y ahora implementado utilizando jQuery</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
  url<span style="color: #339933;">:</span> <span style="color: #3366CC;">'prueba.html'</span><span style="color: #339933;">,</span>
  type<span style="color: #339933;">:</span> <span style="color: #3366CC;">'get'</span><span style="color: #339933;">,</span>
  beforeSend<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.grid&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;loading&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
  success<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>respuesta<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.grid&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>respuesta<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
  complete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.grid&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;loading&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Y para quienes gustan de Mootools, se hace de esta forma</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> req <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Request<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
   method<span style="color: #339933;">:</span> <span style="color: #3366CC;">'get'</span><span style="color: #339933;">,</span>
   url<span style="color: #339933;">:</span> <span style="color: #3366CC;">'prueba.html'</span><span style="color: #339933;">,</span>
   onRequest<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.grid&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;loading&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
   onComplete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>respuesta<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.grid&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;loading&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.grid&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setHTML</span><span style="color: #009900;">&#40;</span>respuesta<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Para este ejemplo loading.gif es una imagen animada que puede conseguirse en cualquiera de los siguientes sitios:<br />
<a title="http://www.ajaxload.info/" href="http://www.ajaxload.info/">http://www.ajaxload.info/</a><br />
<a title="http://preloaders.net/" href="http://preloaders.net/">http://preloaders.net/</a><br />
<a title="http://www.loadinfo.net/" href="http://www.loadinfo.net/">http://www.loadinfo.net/</a><br />
<a title="http://www.webscriptlab.com/" href="http://www.webscriptlab.com/">http://www.webscriptlab.com/</a><br />
<a title="http://www.chimply.com/Generator" href="http://www.chimply.com/Generator">http://www.chimply.com/Generator</a><br />
<a title="http://mentalized.net/activity-indicators/" href="http://mentalized.net/activity-indicators/">http://mentalized.net/activity-indicators/</a></p>
<p>Para finalizar, .grid representa el elemento o etiqueta en el cual se mostrará el cargador.. yo cuando lo utilicé fue para una tabla que paginaba vía ajax..</p>
<p><span class="post_sig">Posted from WordPress for Android</span></p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F02%2F07%2Fajax-loading-css-indicadores-de-carga%2F&amp;t=Ajax+loading+css+%28indicadores+de+carga%29" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Ajax+loading+css+%28indicadores+de+carga%29%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D549%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F02%2F07%2Fajax-loading-css-indicadores-de-carga%2F&amp;title=Ajax+loading+css+%28indicadores+de+carga%29&amp;notes=%0D%0A%0D%0ASi+desarrollas+aplicaciones+web%2C+seguramente+te+has+topado+con+el+comentario+por+parte+de+los+usuarios+de+que+dan+click+a+un+bot%C3%B3n+o+enlace+y+dicen+ellos+que+no+pasa+nada..+y+claro%2C+algunas+veces+el+servidor+responde+muy+lento+debido+a+la+carga+" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F02%2F07%2Fajax-loading-css-indicadores-de-carga%2F&amp;title=Ajax+loading+css+%28indicadores+de+carga%29&amp;bodytext=%0D%0A%0D%0ASi+desarrollas+aplicaciones+web%2C+seguramente+te+has+topado+con+el+comentario+por+parte+de+los+usuarios+de+que+dan+click+a+un+bot%C3%B3n+o+enlace+y+dicen+ellos+que+no+pasa+nada..+y+claro%2C+algunas+veces+el+servidor+responde+muy+lento+debido+a+la+carga+" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F02%2F07%2Fajax-loading-css-indicadores-de-carga%2F&amp;title=Ajax+loading+css+%28indicadores+de+carga%29" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2010/03/29/implementando-un-todo-con-jquery-para-tu-aplicacion-web/' rel='bookmark' title='Implementando un ToDo con jQuery para tu aplicacion Web'>Implementando un ToDo con jQuery para tu aplicacion Web</a></li>
<li><a href='http://qbit.com.mx/blog/2012/02/28/jquery-mobile-lo-bueno-y-lo-malo/' rel='bookmark' title='jQuery Mobile lo bueno y lo malo'>jQuery Mobile lo bueno y lo malo</a></li>
<li><a href='http://qbit.com.mx/blog/2012/02/21/how-to-gridview-con-mvc-contrib-para-asp-mvc/' rel='bookmark' title='How to Gridview con MVC Contrib para ASP MVC'>How to Gridview con MVC Contrib para ASP MVC</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/02/07/ajax-loading-css-indicadores-de-carga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probador virtual, el futuro de las compras</title>
		<link>http://qbit.com.mx/blog/2012/01/31/probador-virtual-el-futuro-de-las-compras/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=probador-virtual-el-futuro-de-las-compras</link>
		<comments>http://qbit.com.mx/blog/2012/01/31/probador-virtual-el-futuro-de-las-compras/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 19:08:10 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[body]]></category>
		<category><![CDATA[capture]]></category>
		<category><![CDATA[liverpool]]></category>
		<category><![CDATA[probador]]></category>
		<category><![CDATA[simulador]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=483</guid>
		<description><![CDATA[Uno de estos fines de semana paseaba por una tienda de la ciudad para buscar algo de ropa, sorpresa fue la que me llevé al encontrar una cabina muy grande llamada  Probador Virtual. Muy excéptico al inicio me quedé a ver como funcionaba o de que trataba, hasta ese momento nadie se atrevía a entrar [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2008/12/12/google_y_el_futuro_de_android/' rel='bookmark' title='Google y el futuro de Android'>Google y el futuro de Android</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/16/mundos-virtuales/' rel='bookmark' title='Mundos Virtuales'>Mundos Virtuales</a></li>
<li><a href='http://qbit.com.mx/blog/2012/02/10/instituto-para-el-futuro/' rel='bookmark' title='Instituto para el futuro'>Instituto para el futuro</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div id="attachment_487" class="wp-caption aligncenter" style="width: 310px"><a href="http://qbit.com.mx/blog/wp-content/uploads/Intellifitboothwithmodel.JPG.rb_.jpg"><img class="size-medium wp-image-487 " title="Intellifit" src="http://qbit.com.mx/blog/wp-content/uploads/Intellifitboothwithmodel.JPG.rb_-300x213.jpg" alt="Intellifit" width="300" height="213" /></a><p class="wp-caption-text">http://www.uniquescan.com/</p></div>
<p>Uno de estos fines de semana paseaba por una tienda de la ciudad para buscar algo de ropa, sorpresa fue la que me llevé al encontrar una cabina muy grande llamada  Probador Virtual.</p>
<p>Muy excéptico al inicio me quedé a ver como funcionaba o de que trataba, hasta ese momento nadie se atrevía a entrar por lo que mientras llegaba alguien para experimentar, mi mente empezaba a imaginar como era su funcionamiento. Rato después llegaría una niña, el operador de la máquina dió unas cuantas instrucciones, la niña entró a la cabina y 20 segundos después salió del provador.. seguido de esto el operador dió una lista de aproximadamente 60cm (creo) y tan tan.. así termino todo.</p>
<p>Investigué un poco sobre la máquina y averigué que se trata de un scanner 3D que toma la figura del cuerpo obteniendo medidas para luego ofrecer una lista de posibles tallas que estan disponibles en la tienda.</p>
<p>Las específicaciones técnicas del aparato son las siguientes:</p>
<ul>
<li>Informa de medidas instantáneo</li>
<li>Precisión de 1 cm</li>
<li>Análisis en 20 seg.</li>
<li>7&#8242; de diámetro por 8&#8242; de altura</li>
<li>Captura mediante un infrarojo que proyecta 200,000 puntos</li>
</ul>
<p>En realidad la idea suena muy innovadora, además de conocer las medidas casi exactas del cuerpo.. lo promocionan en estas tiendas  diciendo que ahorrarás tiempo buscando ropa ya que con las medidas obtenidas y las posibles opciones de ropa para esas medidas el tiempo de búsqueda se reduce enormemente.. aunque estoy un poco en desacuerdo, ya que entra el criterio de &#8220;si me gusta o no me gusta, si el color es el que busco o no&#8221; .. y aun más importante, suele ocurrir muchas veces que las tallas varían de acuerdo a las marcas..</p>
<p>Mi idea de probador virtual era más como un aparato el cual ayudara a probar ropa de manera virtual.. algo así como un vestidor simulado.. imaginaba algo más cercano a la realidad aumentada, viéndome en una pantalla y teniendo opciones de ropa que podría utilizar. Un video que encontré en Youtube puede darles una mejor idea de lo que esperaba.</p>
<p><code><iframe src="http://www.youtube.com/embed/xyBXjjZa9qE?version=3&amp;wmode=transparent" width="560" height="340" title="YouTube video player" style="background-color:#000;display:block;margin-bottom:0;max-width:100%;" frameborder="0" allowfullscreen></iframe><p style="font-size:11px;margin-top:0;"><a href="http://www.youtube.com/watch?v=xyBXjjZa9qE" target="_blank" title="Watch on YouTube">Watch this video on YouTube</a>.</p></code></p>
<p>Ya anteriormente había leído algo similar aunque nunca había estado cerca de un aparato de estos.. Sé que estas cosas las estan haciendo también con kinects.. y en youtube encontrarán muchos videos similares.</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F31%2Fprobador-virtual-el-futuro-de-las-compras%2F&amp;t=Probador+virtual%2C+el+futuro+de+las+compras" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Probador+virtual%2C+el+futuro+de+las+compras%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D483%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F31%2Fprobador-virtual-el-futuro-de-las-compras%2F&amp;title=Probador+virtual%2C+el+futuro+de+las+compras&amp;notes=%0D%0A%0D%0AUno+de+estos+fines+de+semana+paseaba+por+una+tienda+de+la+ciudad+para+buscar+algo+de+ropa%2C+sorpresa+fue+la+que+me+llev%C3%A9+al+encontrar+una+cabina+muy+grande+llamada%C2%A0+Probador+Virtual.%0D%0A%0D%0AMuy+exc%C3%A9ptico+al+inicio+me+qued%C3%A9+a+ver+como+funcionaba+o+" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F31%2Fprobador-virtual-el-futuro-de-las-compras%2F&amp;title=Probador+virtual%2C+el+futuro+de+las+compras&amp;bodytext=%0D%0A%0D%0AUno+de+estos+fines+de+semana+paseaba+por+una+tienda+de+la+ciudad+para+buscar+algo+de+ropa%2C+sorpresa+fue+la+que+me+llev%C3%A9+al+encontrar+una+cabina+muy+grande+llamada%C2%A0+Probador+Virtual.%0D%0A%0D%0AMuy+exc%C3%A9ptico+al+inicio+me+qued%C3%A9+a+ver+como+funcionaba+o+" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F31%2Fprobador-virtual-el-futuro-de-las-compras%2F&amp;title=Probador+virtual%2C+el+futuro+de+las+compras" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2008/12/12/google_y_el_futuro_de_android/' rel='bookmark' title='Google y el futuro de Android'>Google y el futuro de Android</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/16/mundos-virtuales/' rel='bookmark' title='Mundos Virtuales'>Mundos Virtuales</a></li>
<li><a href='http://qbit.com.mx/blog/2012/02/10/instituto-para-el-futuro/' rel='bookmark' title='Instituto para el futuro'>Instituto para el futuro</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/01/31/probador-virtual-el-futuro-de-las-compras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OAuth Twitter Ruby</title>
		<link>http://qbit.com.mx/blog/2012/01/10/oauth-twitter-ruby/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oauth-twitter-ruby</link>
		<comments>http://qbit.com.mx/blog/2012/01/10/oauth-twitter-ruby/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 01:40:12 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[Jackfiallos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Pruebas de Software]]></category>
		<category><![CDATA[Qbit]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Servicio]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=339</guid>
		<description><![CDATA[Esta es una ligera implementación de un cliente de twitter escrito en Ruby utilizando la gema twitter, oauth, net/http y json .. esto lo hice hace algunas semanas atrás con la idea de escribir un pequeño bot que buscara usuarios de twitter que hablan sobre temas específicos para después enviarles mensajes.. Al final, el script [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/01/24/remover-elementos-repetidos-de-un-array-php-ruby-java-c-vb-javascript/' rel='bookmark' title='Remover elementos repetidos de un array php ruby java c# vb javascript'>Remover elementos repetidos de un array php ruby java c# vb javascript</a></li>
<li><a href='http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/' rel='bookmark' title='Celestic un largo camino por seguir y muchas ganas de continuar'>Celestic un largo camino por seguir y muchas ganas de continuar</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/27/consumiendo-rest-desde-c-net/' rel='bookmark' title='Consumiendo REST desde C#.NET'>Consumiendo REST desde C#.NET</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div class="wp-caption aligncenter" style="width: 206px"><img title="Twitter bot ruby example script" src="http://jackfiallos.com/bblog/blogfiles/twitter-bot-icon.png" alt="http://www.iconarchive.com/show/tweetscotty-icons-by-lboi/twitter-bot-icon.html" width="196" height="169" /><p class="wp-caption-text">Twitter bot en ruby</p></div>
<p>Esta es una ligera implementación de un cliente de twitter escrito en Ruby utilizando la gema twitter, oauth, net/http y json .. esto lo hice hace algunas semanas atrás con la idea de escribir un pequeño bot que buscara usuarios de twitter que hablan sobre temas específicos para después enviarles mensajes.. Al final, el script quedó a medias .. lamentablemente no tuve más tiempo para continuarlo, pero el código esta disponible para aprender y si se puede extender mucho mejor..</p>
<p>La clase Helpers basicamente sirve para consultar en twitter y encontrar las palabras que necesito, esto utilizando json en la respuesta.</p>
<p>Aqui la búsqueda esta limitada a 1 solo tweet, porque no quiero enviar spam a nadie.. además twitter no permite el envío de el mismo mensaje a multiples usuarios porque reconoce que es un bot el que lo hace..</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'net/http'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'json'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'oauth'</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> Helpers  
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">find_tweets</span><span style="color:#006600; font-weight:bold;">&#40;</span>default_keyword, extense_keyword = <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    base_url = <span style="color:#996600;">&quot;http://search.twitter.com/search.json?&quot;</span>
    query = <span style="color:#006600; font-weight:bold;">&#40;</span>extense_keyword==<span style="color:#0000FF; font-weight:bold;">nil</span> ? default_keyword : default_keyword <span style="color:#006600; font-weight:bold;">+</span><span style="color:#996600;">&quot;+&quot;</span><span style="color:#006600; font-weight:bold;">+</span> extense_keyword<span style="color:#006600; font-weight:bold;">&#41;</span>
    url = <span style="color:#996600;">&quot;#{base_url}&amp;rpp=1&amp;page=1&amp;q=#{URI.encode(query)}&quot;</span>
    resp = <span style="color:#6666ff; font-weight:bold;">Net::HTTP</span>.<span style="color:#9900CC;">get_response</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>url<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    data = resp.<span style="color:#9900CC;">body</span>
&nbsp;
    result = JSON.<span style="color:#9900CC;">parse</span><span style="color:#006600; font-weight:bold;">&#40;</span>data<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">if</span> result.<span style="color:#9900CC;">has_key</span>? <span style="color:#996600;">'Error'</span>
      <span style="color:#CC0066; font-weight:bold;">raise</span> <span style="color:#996600;">&quot;Oops!!&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#0000FF; font-weight:bold;">return</span> result<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'results'</span><span style="color:#006600; font-weight:bold;">&#93;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Este es el código principal, para que funcione les recuerdo que necesitan registrar su aplicación en https://dev.twitter.com/apps/new</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Librerias</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'json'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'twitter'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'helpers'</span>
&nbsp;
username = <span style="color:#996600;">&quot;QbitMexhico&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Datos de conexion a twitter</span>
TWITTER_CONSUMER_KEY = <span style="color:#996600;">'consumerKey'</span>
TWITTER_CONSUMER_SECRET = <span style="color:#996600;">'consumerSecret'</span>
TWITTER_ACCESS_TOKEN = <span style="color:#996600;">'accessToken'</span>
TWITTER_ACCESS_SECRET = <span style="color:#996600;">'accessSecret'</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Configurar el cliente</span>
Twitter.<span style="color:#9900CC;">configure</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>config<span style="color:#006600; font-weight:bold;">|</span>
    config.<span style="color:#9900CC;">consumer_key</span> = TWITTER_CONSUMER_KEY
    config.<span style="color:#9900CC;">consumer_secret</span> = TWITTER_CONSUMER_SECRET
    config.<span style="color:#9900CC;">oauth_token</span> = TWITTER_ACCESS_TOKEN
    config.<span style="color:#9900CC;">oauth_token_secret</span> = TWITTER_ACCESS_SECRET
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Instanciar</span>
client = <span style="color:#6666ff; font-weight:bold;">Twitter::Client</span>.<span style="color:#9900CC;">new</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Palabra principal</span>
mainKeyword = <span style="color:#996600;">&quot;lego&quot;</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">printf</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Utilizando el usuario: %s<span style="color:#000099;">\n</span>&quot;</span>, username<span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#CC0066; font-weight:bold;">printf</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Buscando la palabra clave: %s<span style="color:#000099;">\n</span>&quot;</span>, keywordSelected<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Encontrar tweets usando el REST API de twitter</span>
tweets = Helpers.<span style="color:#9900CC;">find_tweets</span><span style="color:#006600; font-weight:bold;">&#40;</span>mainKeyword,mainKeyword<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
tweets.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>tweet<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC0066; font-weight:bold;">printf</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;<span style="color:#000099;">\n</span>Del usuario: %s<span style="color:#000099;">\n</span>Tweet: %s<span style="color:#000099;">\n</span>&quot;</span>,tweet<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'from_user'</span><span style="color:#006600; font-weight:bold;">&#93;</span>,tweet<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'text'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> 
  client.<span style="color:#9900CC;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;@zerugiran esta estrenando su meccano y seguro no va a dormir hoy.. :D - cc @&quot;</span> <span style="color:#006600; font-weight:bold;">+</span> tweet<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'from_user'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>Una de las cosas que faltaron es la opción de poder almacenar los usuarios que encontré en una bd (sqlLite) para no repetirles en el envío de tweets.. Esto es solamente el ejemplo, muchas ideas se pueden desprender de esto.. <img src='http://qbit.com.mx/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F10%2Foauth-twitter-ruby%2F&amp;t=OAuth+Twitter+Ruby" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=OAuth+Twitter+Ruby%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D339%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F10%2Foauth-twitter-ruby%2F&amp;title=OAuth+Twitter+Ruby&amp;notes=%0D%0A%0D%0AEsta+es+una+ligera+implementaci%C3%B3n+de+un+cliente+de+twitter+escrito+en+Ruby+utilizando+la+gema+twitter%2C+oauth%2C+net%2Fhttp+y+json+..+esto+lo+hice+hace+algunas+semanas+atr%C3%A1s+con+la+idea+de+escribir+un+peque%C3%B1o+bot+que+buscara+usuarios+de+twitter+que" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F10%2Foauth-twitter-ruby%2F&amp;title=OAuth+Twitter+Ruby&amp;bodytext=%0D%0A%0D%0AEsta+es+una+ligera+implementaci%C3%B3n+de+un+cliente+de+twitter+escrito+en+Ruby+utilizando+la+gema+twitter%2C+oauth%2C+net%2Fhttp+y+json+..+esto+lo+hice+hace+algunas+semanas+atr%C3%A1s+con+la+idea+de+escribir+un+peque%C3%B1o+bot+que+buscara+usuarios+de+twitter+que" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F10%2Foauth-twitter-ruby%2F&amp;title=OAuth+Twitter+Ruby" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/01/24/remover-elementos-repetidos-de-un-array-php-ruby-java-c-vb-javascript/' rel='bookmark' title='Remover elementos repetidos de un array php ruby java c# vb javascript'>Remover elementos repetidos de un array php ruby java c# vb javascript</a></li>
<li><a href='http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/' rel='bookmark' title='Celestic un largo camino por seguir y muchas ganas de continuar'>Celestic un largo camino por seguir y muchas ganas de continuar</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/27/consumiendo-rest-desde-c-net/' rel='bookmark' title='Consumiendo REST desde C#.NET'>Consumiendo REST desde C#.NET</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/01/10/oauth-twitter-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Celestic un largo camino por seguir y muchas ganas de continuar</title>
		<link>http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar</link>
		<comments>http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 07:27:20 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[Html]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Qbit]]></category>
		<category><![CDATA[Servicio]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[celestic]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[project manager]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=283</guid>
		<description><![CDATA[Creo que han pasado alrededor de 2 meses desde que hice público Celestic Community, una nueva aplicación open source la cual ayuda a mejorar el seguimiento de proyectos de software.. Durante ese tiempo he recibido diversos tipos de  comentarios alentandome a continuar su desarrollo.. De todos esos comentarios uno en particular llamó mi atención, uno [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2011/12/20/asp-net-mvc-2-model-list-dropdownlistfor/' rel='bookmark' title='Asp.net MVC 2 Model List&lt;&gt; DropdownListFor'>Asp.net MVC 2 Model List<> DropdownListFor</a></li>
<li><a href='http://qbit.com.mx/blog/2010/03/29/implementando-un-todo-con-jquery-para-tu-aplicacion-web/' rel='bookmark' title='Implementando un ToDo con jQuery para tu aplicacion Web'>Implementando un ToDo con jQuery para tu aplicacion Web</a></li>
<li><a href='http://qbit.com.mx/blog/2011/12/06/participando-en-desarrollando-america-latina/' rel='bookmark' title='Participando en Desarrollando America Latina'>Participando en Desarrollando America Latina</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><p><img src="http://qbit.com.mx/labs/celestic/home/images/celestic.png" alt="Celestic Community" /></p>
<p>Creo que han pasado alrededor de 2 meses desde que hice público Celestic Community, una nueva aplicación open source la cual ayuda a mejorar el seguimiento de proyectos de software.. Durante ese tiempo he recibido diversos tipos de  comentarios alentandome a continuar su desarrollo.. De todos esos comentarios uno en particular llamó mi atención, uno relacionado a mejorar la usabilidad y la forma en que los usuarios interactuan con la aplicación.</p>
<p>Comprendo que hasta cierto punto Celestic puede ser un tanto complejo de utilizar debido a la cantidad de información que solicita, pero todo eso es necesario para lograr un nivel de detalle aceptable y tener un histórico completo de todo lo ocurrido durante la vida del proyecto..</p>
<p>Falta de &#8220;usabilidad&#8221;? Tienen razón, uno de los principales puntos que en este momento Celestic tiene en contra es el uso excesivo de formularios, algo que inicialmente y de forma adrede decidí dejar así porque no quería escribir un poco más de código para utilizar ajax lo cual ayudaría a resolver las quejas..</p>
<p>El desarrollo de Celestic continua, muchas mejoras estan en camino, estoy trabajando en eso que le falta en este momento (estadísticas, usabilidad y mucho más client side), todo pensado para enriquecer su uso. De las cosas que recuerdo estarán en las nuevas versiones son: administración de notificaciones, modificaciones a los estatus de las tareas siguiendo un orden específico, nuevos gráficos estadísticos, integración de nuevos paquetes de idiomas, correcciones a bugs encontrados por colaboradores, etc..</p>
<p><a href="http://qbit.com.mx/labs/celestic">Para más detalles sobre Celestic Community.</a></p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F04%2Fcelestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar%2F&amp;t=Celestic+un+largo+camino+por+seguir+y+muchas+ganas+de+continuar" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Celestic+un+largo+camino+por+seguir+y+muchas+ganas+de+continuar%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D283%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F04%2Fcelestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar%2F&amp;title=Celestic+un+largo+camino+por+seguir+y+muchas+ganas+de+continuar&amp;notes=%0D%0A%0D%0ACreo+que+han+pasado+alrededor+de+2+meses+desde+que+hice+p%C3%BAblico+Celestic+Community%2C+una+nueva+aplicaci%C3%B3n+open+source+la+cual+ayuda+a+mejorar+el+seguimiento+de+proyectos+de+software..+Durante+ese+tiempo+he+recibido+diversos+tipos+de%C2%A0+comentario" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F04%2Fcelestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar%2F&amp;title=Celestic+un+largo+camino+por+seguir+y+muchas+ganas+de+continuar&amp;bodytext=%0D%0A%0D%0ACreo+que+han+pasado+alrededor+de+2+meses+desde+que+hice+p%C3%BAblico+Celestic+Community%2C+una+nueva+aplicaci%C3%B3n+open+source+la+cual+ayuda+a+mejorar+el+seguimiento+de+proyectos+de+software..+Durante+ese+tiempo+he+recibido+diversos+tipos+de%C2%A0+comentario" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F01%2F04%2Fcelestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar%2F&amp;title=Celestic+un+largo+camino+por+seguir+y+muchas+ganas+de+continuar" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2011/12/20/asp-net-mvc-2-model-list-dropdownlistfor/' rel='bookmark' title='Asp.net MVC 2 Model List&lt;&gt; DropdownListFor'>Asp.net MVC 2 Model List<> DropdownListFor</a></li>
<li><a href='http://qbit.com.mx/blog/2010/03/29/implementando-un-todo-con-jquery-para-tu-aplicacion-web/' rel='bookmark' title='Implementando un ToDo con jQuery para tu aplicacion Web'>Implementando un ToDo con jQuery para tu aplicacion Web</a></li>
<li><a href='http://qbit.com.mx/blog/2011/12/06/participando-en-desarrollando-america-latina/' rel='bookmark' title='Participando en Desarrollando America Latina'>Participando en Desarrollando America Latina</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.net MVC 2 Model List DropdownListFor</title>
		<link>http://qbit.com.mx/blog/2011/12/20/asp-net-mvc-2-model-list-dropdownlistfor/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=asp-net-mvc-2-model-list-dropdownlistfor</link>
		<comments>http://qbit.com.mx/blog/2011/12/20/asp-net-mvc-2-model-list-dropdownlistfor/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 19:19:17 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Qbit]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[dropdown]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=277</guid>
		<description><![CDATA[En mi experiencia recorrindo diferentes lenguajes de programación y sus respectivos frameworks de desarrollo ágil para aplicaciones web, esta vez tocó el turno a asp mvc 2 y para iniciar esperaba crear un lista de selección.. Se que la versión actual de asp mvc es la 3, pero solamente se puede utilizar con visual studio [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/21/how-to-gridview-con-mvc-contrib-para-asp-mvc/' rel='bookmark' title='How to Gridview con MVC Contrib para ASP MVC'>How to Gridview con MVC Contrib para ASP MVC</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/27/consumiendo-rest-desde-c-net/' rel='bookmark' title='Consumiendo REST desde C#.NET'>Consumiendo REST desde C#.NET</a></li>
<li><a href='http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/' rel='bookmark' title='Celestic un largo camino por seguir y muchas ganas de continuar'>Celestic un largo camino por seguir y muchas ganas de continuar</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=0fe8495ecf67ef7b922e354a69a28749&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><div class="wp-caption aligncenter" style="width: 152px"><a href="ASP.NET MVC"><img class="  " title="ASP.NET MVC" src="http://jackfiallos.com/bblog/blogfiles/ASPNETMVC2.png" alt="" width="142" height="77" /></a><p class="wp-caption-text">ASP.NET MVC</p></div>
<p>En mi experiencia recorrindo diferentes lenguajes de programación y sus respectivos frameworks de desarrollo ágil para aplicaciones web, esta vez tocó el turno a asp mvc 2 y para iniciar esperaba crear un lista de selección.. Se que la versión actual de asp mvc es la 3, pero solamente se puede utilizar con visual studio 2010, el cual aun no hemos comprado, por eso este mini how to lo hago con la versión 2.</p>
<p>Leí muchos tutoriales y ejemplos sobre como lograr hacer un dropdownlist con información de un modelo, la mayoría de los ejemplos mostraban lo siguiente:</p>
<p>Crear un modelo y luego una propiedad de tipo List conteniendo SelectListItem que básicamente es una estructura de textos y valores.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> EjemploModel
<span style="color: #008000;">&#123;</span>
   <span style="color: #008000;">&#91;</span>DataType<span style="color: #008000;">&#40;</span>DataType<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>Required<span style="color: #008000;">&#40;</span>ErrorMessage <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Selecciona un mes&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>DisplayName<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Mes&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>UIHint<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;List&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #0600FF; font-weight: bold;">public</span> List<span style="color: #008000;">&lt;</span>SelectListItem<span style="color: #008000;">&gt;</span> meses <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
   <span style="color: #008080; font-style: italic;">// Constructor para llenar la lista en la instancia</span>
   <span style="color: #0600FF; font-weight: bold;">public</span> EjemploModel<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
      meses<span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>SelectListItem<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #0600FF; font-weight: bold;">for</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i<span style="color: #008000;">=</span><span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i<span style="color: #008000;">&lt;=</span><span style="color: #FF0000;">12</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
         meses<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> SelectListItem<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> Value <span style="color: #008000;">=</span>i<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, Text <span style="color: #008000;">=</span> i<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #008000;">&#125;</span>
   <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Hasta esta punto todo parece tener sentido.. creando una propiedad de tipo lista y luego pasándola a la  vista:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> Html.<span style="color: #9900cc;">LabelFor</span><span style="color: #006600; font-weight:bold;">&#40;</span>model <span style="color: #006600; font-weight: bold;">=&gt;</span> model.<span style="color: #9900cc;">mes</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> Html.<span style="color: #9900cc;">DropDownListFor</span><span style="color: #006600; font-weight:bold;">&#40;</span>Model.<span style="color: #9900cc;">mes</span>, Model.<span style="color: #9900cc;">mes</span>, <span style="color: #cc0000;">&quot;-------&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #000000; font-weight: bold;">%&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> Html.<span style="color: #9900cc;">ValidationMessageFor</span><span style="color: #006600; font-weight:bold;">&#40;</span>model <span style="color: #006600; font-weight: bold;">=&gt;</span> model.<span style="color: #9900cc;">mes</span>, <span style="color: #cc0000;">&quot;*&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #000000; font-weight: bold;">%&gt;</span></pre></td></tr></table></div>

<p>Y seguramente funciona.. el problema venía cuando hacia submit del formulario.. ya que el valor seleccionado del dropdownlist nunca era tomado como parametro en el action donde la enviaba.. Leí muchos post donde a novatos como yo les ocurría el mismo error.. claro, en los tutoriales nunca decían como resolverlo por lo que la respuesta viene a continuación, sencilla para serles sincero..</p>
<p>En los otros frameworks no es necesario definir una propieda de tipo lista, simplemente lo que se hace es definir una propiedad que en este caso sería Int .. y la lista crearla por aparte sin necesidad de hacerla propiedad del modelo. Sé que hay más de una manera de hacer esto y mi forma es la siguiente:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> EjemploModel
<span style="color: #008000;">&#123;</span>
   <span style="color: #008000;">&#91;</span>DataType<span style="color: #008000;">&#40;</span>DataType<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>DisplayName<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Mes&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>UIHint<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;List&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #0600FF; font-weight: bold;">public</span> List<span style="color: #008000;">&lt;</span>SelectListItem<span style="color: #008000;">&gt;</span> mesLista <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
   <span style="color: #008000;">&#91;</span>DataType<span style="color: #008000;">&#40;</span>DataType<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>Required<span style="color: #008000;">&#40;</span>ErrorMessage <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Debe de seleccionar un mes de vencimiento.&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #008000;">&#91;</span>DisplayName<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Mes&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
   <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">int</span> mes<span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
   <span style="color: #008080; font-style: italic;">// Constructor para llenar la lista en la instancia</span>
   <span style="color: #0600FF; font-weight: bold;">public</span> EjemploModel<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
      mesLista<span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>SelectListItem<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #0600FF; font-weight: bold;">for</span><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i<span style="color: #008000;">=</span><span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> i<span style="color: #008000;">&lt;=</span><span style="color: #FF0000;">12</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
         mesLista<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> SelectListItem<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> Value <span style="color: #008000;">=</span>i<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, Text <span style="color: #008000;">=</span> i<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #008000;">&#125;</span>
   <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Y en la vista quedaría de la siguiente manera:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="asp" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> Html.<span style="color: #9900cc;">LabelFor</span><span style="color: #006600; font-weight:bold;">&#40;</span>model <span style="color: #006600; font-weight: bold;">=&gt;</span> model.<span style="color: #9900cc;">mes</span><span style="color: #006600; font-weight:bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">%&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> Html.<span style="color: #9900cc;">DropDownList</span><span style="color: #006600; font-weight:bold;">&#40;</span><span style="color: #cc0000;">&quot;mes&quot;</span>, <span style="color: #0000ff; font-weight: bold;">new</span> SelectList<span style="color: #006600; font-weight:bold;">&#40;</span>Model.<span style="color: #9900cc;">mesLista</span>, <span style="color: #cc0000;">&quot;Value&quot;</span>, <span style="color: #cc0000;">&quot;Text&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span>, <span style="color: #cc0000;">&quot;-------&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #000000; font-weight: bold;">%&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;%</span><span style="color: #006600; font-weight: bold;">=</span> Html.<span style="color: #9900cc;">ValidationMessageFor</span><span style="color: #006600; font-weight:bold;">&#40;</span>model <span style="color: #006600; font-weight: bold;">=&gt;;</span> model.<span style="color: #9900cc;">mes</span>, <span style="color: #cc0000;">&quot;*&quot;</span><span style="color: #006600; font-weight:bold;">&#41;</span><span style="color: #000000; font-weight: bold;">%&gt;</span></pre></td></tr></table></div>

<p>Ahora al momento de hacer submit, el valor seleccionado se pasará hacia la propiedad mes y no a mesLista como ocurría anteriormente.  Espero les sirva de ejemplo y guía.. </p>
<p>Suerte</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
<div class="wp-socializer 32px">
<ul class="wp-socializer-opacity columns-no">
 <li><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2011%2F12%2F20%2Fasp-net-mvc-2-model-list-dropdownlistfor%2F&amp;t=Asp.net+MVC+2+Model+List%3C%3E+DropdownListFor" title="Share this on Facebook" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Facebook" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -330px; border:0;"/></a></li> 

 <li><a href="http://twitter.com/home?status=Asp.net+MVC+2+Model+List%3C%3E+DropdownListFor%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D277%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Twitter" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1386px; border:0;"/></a></li> 

 <li><a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2011%2F12%2F20%2Fasp-net-mvc-2-model-list-dropdownlistfor%2F&amp;title=Asp.net+MVC+2+Model+List%3C%3E+DropdownListFor&amp;notes=%0D%0A%0D%0AEn+mi+experiencia+recorrindo+diferentes+lenguajes+de+programaci%C3%B3n+y+sus+respectivos+frameworks+de+desarrollo+%C3%A1gil+para+aplicaciones+web%2C+esta+vez+toc%C3%B3+el+turno+a+asp+mvc+2+y+para+iniciar+esperaba+crear+un+lista+de+selecci%C3%B3n..+Se+que+la+versi%C3" title="Post this on Delicious" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Delicious" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -132px; border:0;"/></a></li> 

 <li><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2011%2F12%2F20%2Fasp-net-mvc-2-model-list-dropdownlistfor%2F&amp;title=Asp.net+MVC+2+Model+List%3C%3E+DropdownListFor&amp;bodytext=%0D%0A%0D%0AEn+mi+experiencia+recorrindo+diferentes+lenguajes+de+programaci%C3%B3n+y+sus+respectivos+frameworks+de+desarrollo+%C3%A1gil+para+aplicaciones+web%2C+esta+vez+toc%C3%B3+el+turno+a+asp+mvc+2+y+para+iniciar+esperaba+crear+un+lista+de+selecci%C3%B3n..+Se+que+la+versi%C3" title="Submit this to Digg" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="Digg" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -231px; border:0;"/></a></li> 

 <li><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2011%2F12%2F20%2Fasp-net-mvc-2-model-list-dropdownlistfor%2F&amp;title=Asp.net+MVC+2+Model+List%3C%3E+DropdownListFor" title="Submit this to StumbleUpon" target="_blank" rel="nofollow"><img src="http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-mask-32px.gif" alt="StumbleUpon" style="width:32px; height:32px; background: transparent url(http://qbit.com.mx/blog/wp-content/plugins/wp-socializer/public/social-icons/wp-socializer-sprite-32px.png) no-repeat; background-position:0px -1287px; border:0;"/></a></li> 
</ul> 
<div class="wp-socializer-clearer"></div></div>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/21/how-to-gridview-con-mvc-contrib-para-asp-mvc/' rel='bookmark' title='How to Gridview con MVC Contrib para ASP MVC'>How to Gridview con MVC Contrib para ASP MVC</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/27/consumiendo-rest-desde-c-net/' rel='bookmark' title='Consumiendo REST desde C#.NET'>Consumiendo REST desde C#.NET</a></li>
<li><a href='http://qbit.com.mx/blog/2012/01/04/celestic-un-largo-camino-por-seguir-y-muchas-ganas-de-continuar/' rel='bookmark' title='Celestic un largo camino por seguir y muchas ganas de continuar'>Celestic un largo camino por seguir y muchas ganas de continuar</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2011/12/20/asp-net-mvc-2-model-list-dropdownlistfor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

