<?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</title>
	<atom:link href="http://qbit.com.mx/blog/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 -->
 &bull; <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">Facebook</a> &bull; <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">Twitter</a> &bull; <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">Delicious</a> &bull; <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">Digg</a> &bull; <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">StumbleUpon</a>
<!-- 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 -->
 &bull; <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">Facebook</a> &bull; <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">Twitter</a> &bull; <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">Delicious</a> &bull; <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">Digg</a> &bull; <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">StumbleUpon</a>
<!-- 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>Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II</title>
		<link>http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii</link>
		<comments>http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/#comments</comments>
		<pubDate>Thu, 03 May 2012 20:17:11 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[DTSx]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1159</guid>
		<description><![CDATA[Configurar el DTSx en Microsoft SQL &#160; Continuamos con nuestra saga y bueno en esta parte lo único que tenemos que hacer es configurar nuestro paquete DTSx ya creado en el servidor de Microsoft  SQL y para hacer eso seguimos estos cuatro sencillos pasos: 1.- Abrir una conexión “Integration Server” en “Microsoft SQL Server Management Studio”. [...]
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=e8c30513ee6bddd0ca43b51c56cf58cd&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><h1>Configurar el DTSx en Microsoft SQL</h1>
<p>&nbsp;</p>
<p>Continuamos con nuestra saga y bueno en esta parte lo único que tenemos que hacer es configurar nuestro paquete DTSx ya creado en el servidor de Microsoft  SQL y para hacer eso seguimos estos cuatro sencillos pasos:</p>
<p>1.- Abrir una conexión “Integration Server” en “Microsoft SQL Server Management Studio”.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2_1__Connect.jpg"><img class="aligncenter size-medium wp-image-1161" title="2_1__Connect" src="http://qbit.com.mx/blog/wp-content/uploads/2_1__Connect-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>2.- Importamos el paquete</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2_2__Import.jpg"><img class="aligncenter size-full wp-image-1162" title="2_2__Import" src="http://qbit.com.mx/blog/wp-content/uploads/2_2__Import.jpg" alt="" width="289" height="182" /></a></p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2_2__Import2.jpg"><img class="aligncenter size-medium wp-image-1163" title="2_2__Import2" src="http://qbit.com.mx/blog/wp-content/uploads/2_2__Import2-300x237.jpg" alt="" width="300" height="237" /></a></p>
<p>3.- Probamos lo que hicimos este jalando (si tienen firewall confirmen que este desactivado)</p>
<p>&nbsp;</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2_3__Run.jpg"><img class="aligncenter size-medium wp-image-1164" title="2_3__Run" src="http://qbit.com.mx/blog/wp-content/uploads/2_3__Run-270x300.jpg" alt="" width="270" height="300" /></a></p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2_3__Run2.jpg"><img class="aligncenter size-medium wp-image-1165" title="2_3__Run2" src="http://qbit.com.mx/blog/wp-content/uploads/2_3__Run2-300x260.jpg" alt="" width="300" height="260" /></a></p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2_3__Run3.jpg"><img class="aligncenter size-medium wp-image-1166" title="2_3__Run3" src="http://qbit.com.mx/blog/wp-content/uploads/2_3__Run3-300x300.jpg" alt="" width="300" height="300" /></a></p>
<p>4.- Confirmen que les haya llegado el mensaje. Si no, es posible que ya no tengan mensajes disponibles.</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
 &bull; <a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F03%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii%2F&amp;t=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%E2%80%93+Parte+II" title="Share this on Facebook" target="_blank" rel="nofollow">Facebook</a> &bull; <a href="http://twitter.com/home?status=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%E2%80%93+Parte+II%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1159%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow">Twitter</a> &bull; <a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F03%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii%2F&amp;title=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%E2%80%93+Parte+II&amp;notes=Configurar+el+DTSx+en+Microsoft+SQL%0D%0A%26nbsp%3B%0D%0A%0D%0AContinuamos+con+nuestra+saga+y+bueno+en+esta+parte+lo+%C3%BAnico+que+tenemos+que+hacer+es+configurar+nuestro+paquete+DTSx+ya+creado+en+el+servidor+de+Microsoft+%C2%A0SQL+y+para+hacer+eso+seguimos+estos+cuatro+se" title="Post this on Delicious" target="_blank" rel="nofollow">Delicious</a> &bull; <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F03%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii%2F&amp;title=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%E2%80%93+Parte+II&amp;bodytext=Configurar+el+DTSx+en+Microsoft+SQL%0D%0A%26nbsp%3B%0D%0A%0D%0AContinuamos+con+nuestra+saga+y+bueno+en+esta+parte+lo+%C3%BAnico+que+tenemos+que+hacer+es+configurar+nuestro+paquete+DTSx+ya+creado+en+el+servidor+de+Microsoft+%C2%A0SQL+y+para+hacer+eso+seguimos+estos+cuatro+se" title="Submit this to Digg" target="_blank" rel="nofollow">Digg</a> &bull; <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F03%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii%2F&amp;title=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%E2%80%93+Parte+II" title="Submit this to StumbleUpon" target="_blank" rel="nofollow">StumbleUpon</a>
<!-- End WP Socializer - Social Buttons - Output -->
<p>No hay entradas relacionadas</p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encriptar cadenas utilizando MD5, SHA o SHA1 en SQL Server</title>
		<link>http://qbit.com.mx/blog/2012/05/01/encriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=encriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server</link>
		<comments>http://qbit.com.mx/blog/2012/05/01/encriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server/#comments</comments>
		<pubDate>Tue, 01 May 2012 17:10:09 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MS SQL SERVER]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[dabatase]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sha]]></category>
		<category><![CDATA[sha1]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1122</guid>
		<description><![CDATA[Nunca he sido muy amigo del motor de base de datos de microsoft.. MS SQL Server no es mi opción a elegir, pero la mayoría de las veces que trabajamos con la plataforma de .NET es casi un requisito forzoso tener que utilizarlo. En este artículo escribiré un poco sobre como utilizar los métodos para [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/24/arreglando-compatibilidad-iis6-y-reporviewer-con-iis7-windows-server-2008/' rel='bookmark' title='Arreglando compatibilidad IIS6 y reporviewer con IIS7 Windows Server 2008'>Arreglando compatibilidad IIS6 y reporviewer con IIS7 Windows Server 2008</a></li>
<li><a href='http://qbit.com.mx/blog/2012/04/26/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i/' rel='bookmark' title='Utilizar WebServices en Microsoft SQL utilizando SSIS &#8211; Parte I'>Utilizar WebServices en Microsoft SQL utilizando SSIS &#8211; Parte I</a></li>
<li><a href='http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/' rel='bookmark' title='Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II'>Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II</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_1154" class="wp-caption aligncenter" style="width: 403px"><a href="http://qbit.com.mx/blog/wp-content/uploads/screenshot.13.png"><img class="size-full wp-image-1154" title="SQL Server encrypt" src="http://qbit.com.mx/blog/wp-content/uploads/screenshot.13.png" alt="SQL Server encrypt" width="393" height="196" /></a><p class="wp-caption-text">SQL Server encrypt</p></div>
<p>Nunca he sido muy amigo del motor de base de datos de microsoft.. MS SQL Server no es mi opción a elegir, pero la mayoría de las veces que trabajamos con la plataforma de .NET es casi un requisito forzoso tener que utilizarlo.</p>
<p>En este artículo escribiré un poco sobre como utilizar los métodos para encriptar cadenas utilizando MD5, SHA o SHA1 .. la verdad es que comparado con los otros motores de BD que conozco.. MS SQL Server es uno de los más feos para aplicar.. pero igualmente funcional.</p>
<p>Entonces el ejemplo para complementar de lo que hablo, va de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> HashBytes<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'MD5'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'qbit.com.mx'</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> HashBytes<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SHA'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'qbit.com.mx'</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">SELECT</span> HashBytes<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SHA1'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'qbit.com.mx'</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Ahora, el problema común de utilizar este método es que retorna un tipo de dato VarBinary en lugar de VarChar por lo que para obtener la cadena correcta se necesita hacer una substracción de la parte que nos interesa.. y ello implica utilizar la función SUBSTRING&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">SUBSTRING</span><span style="color: #66cc66;">&#40;</span>master<span style="color: #66cc66;">.</span>dbo<span style="color: #66cc66;">.</span>fn_varbintohexstr<span style="color: #66cc66;">&#40;</span>HashBytes<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'MD5'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'qbit.com.mx'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> MD5
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">SUBSTRING</span><span style="color: #66cc66;">&#40;</span>master<span style="color: #66cc66;">.</span>dbo<span style="color: #66cc66;">.</span>fn_varbintohexstr<span style="color: #66cc66;">&#40;</span>HashBytes<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SHA'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'qbit.com.mx'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> SHA
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">SUBSTRING</span><span style="color: #66cc66;">&#40;</span>master<span style="color: #66cc66;">.</span>dbo<span style="color: #66cc66;">.</span>fn_varbintohexstr<span style="color: #66cc66;">&#40;</span>HashBytes<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SHA1'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'qbit.com.mx'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">40</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> SHA1</pre></div></div>

<p>Como verán si utilizo solamente la conversión SUBSTRING(HashBytes(&#8216;MD5&#8242;,&#8217;qbit.com.mx&#8217;), 3,32) no extrae la cadena necesaria de forma correcta.. y es por esa razón que se necesita utilizar master.dbo.fn_varbintohexstr() .. para mi inquietud la función varbintohexstr no esta documentada así es que no estoy seguro del porque usarla <img src='http://qbit.com.mx/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Estas funciones las he probado en el motor 9 de SQL Server .. en un par de días más lo estaré probando con versiones recientes y actualizaré este artículo..</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
 &bull; <a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F01%2Fencriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server%2F&amp;t=Encriptar+cadenas+utilizando+MD5%2C+SHA+o+SHA1+en+SQL+Server" title="Share this on Facebook" target="_blank" rel="nofollow">Facebook</a> &bull; <a href="http://twitter.com/home?status=Encriptar+cadenas+utilizando+MD5%2C+SHA+o+SHA1+en+SQL+Server%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1122%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow">Twitter</a> &bull; <a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F01%2Fencriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server%2F&amp;title=Encriptar+cadenas+utilizando+MD5%2C+SHA+o+SHA1+en+SQL+Server&amp;notes=%0D%0A%0D%0ANunca+he+sido+muy+amigo+del+motor+de+base+de+datos+de+microsoft..+MS+SQL+Server+no+es+mi+opci%C3%B3n+a+elegir%2C+pero+la+mayor%C3%ADa+de+las+veces+que+trabajamos+con+la+plataforma+de+.NET+es+casi+un+requisito+forzoso+tener+que+utilizarlo.%0D%0A%0D%0AEn+este+art%C3%ADc" title="Post this on Delicious" target="_blank" rel="nofollow">Delicious</a> &bull; <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F01%2Fencriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server%2F&amp;title=Encriptar+cadenas+utilizando+MD5%2C+SHA+o+SHA1+en+SQL+Server&amp;bodytext=%0D%0A%0D%0ANunca+he+sido+muy+amigo+del+motor+de+base+de+datos+de+microsoft..+MS+SQL+Server+no+es+mi+opci%C3%B3n+a+elegir%2C+pero+la+mayor%C3%ADa+de+las+veces+que+trabajamos+con+la+plataforma+de+.NET+es+casi+un+requisito+forzoso+tener+que+utilizarlo.%0D%0A%0D%0AEn+este+art%C3%ADc" title="Submit this to Digg" target="_blank" rel="nofollow">Digg</a> &bull; <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F05%2F01%2Fencriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server%2F&amp;title=Encriptar+cadenas+utilizando+MD5%2C+SHA+o+SHA1+en+SQL+Server" title="Submit this to StumbleUpon" target="_blank" rel="nofollow">StumbleUpon</a>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/02/24/arreglando-compatibilidad-iis6-y-reporviewer-con-iis7-windows-server-2008/' rel='bookmark' title='Arreglando compatibilidad IIS6 y reporviewer con IIS7 Windows Server 2008'>Arreglando compatibilidad IIS6 y reporviewer con IIS7 Windows Server 2008</a></li>
<li><a href='http://qbit.com.mx/blog/2012/04/26/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i/' rel='bookmark' title='Utilizar WebServices en Microsoft SQL utilizando SSIS &#8211; Parte I'>Utilizar WebServices en Microsoft SQL utilizando SSIS &#8211; Parte I</a></li>
<li><a href='http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/' rel='bookmark' title='Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II'>Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/05/01/encriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizar WebServices en Microsoft SQL utilizando SSIS &#8211; Parte I</title>
		<link>http://qbit.com.mx/blog/2012/04/26/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i</link>
		<comments>http://qbit.com.mx/blog/2012/04/26/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 17:04:38 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[DTSx]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1136</guid>
		<description><![CDATA[Uno de nuestros usuarios de DcodSms me pregunto si es posible mandar mensajes SMS directamente desde la base de datos y bueno nos dimos a la labor de investigar como buenos desarrolladores que somos. Encontramos una solución que desde mi punto de vista no es tan compleja. El esquema que vamos a utilizar es muy [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/' rel='bookmark' title='Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II'>Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II</a></li>
<li><a href='http://qbit.com.mx/blog/2012/05/01/encriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server/' rel='bookmark' title='Encriptar cadenas utilizando MD5, SHA o SHA1 en SQL Server'>Encriptar cadenas utilizando MD5, SHA o SHA1 en SQL Server</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/06/rsync-sobre-ssh-sin-utilizar-claves/' rel='bookmark' title='rsync sobre ssh sin utilizar claves'>rsync sobre ssh sin utilizar claves</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=e8c30513ee6bddd0ca43b51c56cf58cd&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><p>Uno de nuestros usuarios de DcodSms me pregunto si es posible mandar mensajes SMS directamente desde la base de datos y bueno nos dimos a la labor de investigar como buenos desarrolladores que somos. Encontramos una solución que desde mi punto de vista no es tan compleja.</p>
<p>El esquema que vamos a utilizar es muy “simple”:</p>
<ol>
<li>Desarrollar un DTSx.</li>
<li>Configurar el DTSx en Microsoft SQL.</li>
<li>Crear un Job.</li>
<li>Configurar el Job.</li>
<li>Script para la ejecución de Job.</li>
</ol>
<h1>Crear DTSx</h1>
<p>1.- Abrir SQL Server Business Intelligence Development Studio.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/1Abrir.jpg"><img class="aligncenter size-medium wp-image-1138" title="1Abrir" src="http://qbit.com.mx/blog/wp-content/uploads/1Abrir-300x70.jpg" alt="" width="300" height="70" /></a></p>
<p>2.- Conectarse a Integration Server.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/1Conexion.jpg"><img class="aligncenter size-medium wp-image-1139" title="1Conexion" src="http://qbit.com.mx/blog/wp-content/uploads/1Conexion-300x230.jpg" alt="" width="300" height="230" /></a></p>
<p>4.- Crear un nuevo proyecto de tipo Integration Services Project.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/2Crear.jpg"><img class="aligncenter size-medium wp-image-1140" title="2Crear" src="http://qbit.com.mx/blog/wp-content/uploads/2Crear-300x228.jpg" alt="" width="300" height="228" /></a></p>
<p>3.- Crear una variable llamada “respuesta” tipo string.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/3Variable.jpg"><img class="aligncenter size-medium wp-image-1141" title="3Variable" src="http://qbit.com.mx/blog/wp-content/uploads/3Variable-300x74.jpg" alt="" width="300" height="74" /></a></p>
<p>4.- Arrastrar el componente Web Service Task.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/4Componente.jpg"><img class="aligncenter size-full wp-image-1142" title="4Componente" src="http://qbit.com.mx/blog/wp-content/uploads/4Componente.jpg" alt="" width="150" height="62" /></a></p>
<p>5.- Configurar un nuevo HttpConnection.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/5ConfiguracionWSDL.jpg"><img class="aligncenter size-medium wp-image-1144" title="5ConfiguracionWSDL" src="http://qbit.com.mx/blog/wp-content/uploads/5ConfiguracionWSDL-300x228.jpg" alt="" width="300" height="228" /></a></p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/5_2ConfiguracionWSDL.jpg"><img class="aligncenter size-medium wp-image-1143" title="5_2ConfiguracionWSDL" src="http://qbit.com.mx/blog/wp-content/uploads/5_2ConfiguracionWSDL-300x257.jpg" alt="" width="300" height="257" /></a></p>
<p>6.- Configurar el Input.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/6Input.jpg"><img class="aligncenter size-medium wp-image-1145" title="6Input" src="http://qbit.com.mx/blog/wp-content/uploads/6Input-300x257.jpg" alt="" width="300" height="257" /></a></p>
<p>7.- Configurar el output.</p>
<p><a href="http://qbit.com.mx/blog/wp-content/uploads/7Output1.jpg"><img class="aligncenter size-medium wp-image-1147" title="7Output" src="http://qbit.com.mx/blog/wp-content/uploads/7Output1-300x257.jpg" alt="" width="300" height="257" /></a></p>
<p>8.- Guardar todo.</p>
<p>9.- Ejecutar para realizar la prueba.</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
 &bull; <a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F26%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i%2F&amp;t=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%26%238211%3B+Parte+I" title="Share this on Facebook" target="_blank" rel="nofollow">Facebook</a> &bull; <a href="http://twitter.com/home?status=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%26%238211%3B+Parte+I%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1136%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow">Twitter</a> &bull; <a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F26%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i%2F&amp;title=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%26%238211%3B+Parte+I&amp;notes=Uno+de+nuestros+usuarios+de+DcodSms+me+pregunto+si+es+posible+mandar+mensajes+SMS+directamente+desde+la+base+de+datos+y+bueno+nos+dimos+a+la+labor+de+investigar+como+buenos+desarrolladores+que+somos.+Encontramos+una+soluci%C3%B3n+que+desde+mi+punto+de+vi" title="Post this on Delicious" target="_blank" rel="nofollow">Delicious</a> &bull; <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F26%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i%2F&amp;title=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%26%238211%3B+Parte+I&amp;bodytext=Uno+de+nuestros+usuarios+de+DcodSms+me+pregunto+si+es+posible+mandar+mensajes+SMS+directamente+desde+la+base+de+datos+y+bueno+nos+dimos+a+la+labor+de+investigar+como+buenos+desarrolladores+que+somos.+Encontramos+una+soluci%C3%B3n+que+desde+mi+punto+de+vi" title="Submit this to Digg" target="_blank" rel="nofollow">Digg</a> &bull; <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F26%2Futilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i%2F&amp;title=Utilizar+WebServices+en+Microsoft+SQL+utilizando+SSIS+%26%238211%3B+Parte+I" title="Submit this to StumbleUpon" target="_blank" rel="nofollow">StumbleUpon</a>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/05/03/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-ii/' rel='bookmark' title='Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II'>Utilizar WebServices en Microsoft SQL utilizando SSIS – Parte II</a></li>
<li><a href='http://qbit.com.mx/blog/2012/05/01/encriptar-cadenas-utilizando-md5-sha-sha1-en-sql-server/' rel='bookmark' title='Encriptar cadenas utilizando MD5, SHA o SHA1 en SQL Server'>Encriptar cadenas utilizando MD5, SHA o SHA1 en SQL Server</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/06/rsync-sobre-ssh-sin-utilizar-claves/' rel='bookmark' title='rsync sobre ssh sin utilizar claves'>rsync sobre ssh sin utilizar claves</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/04/26/utilizar-webservices-en-microsoft-sql-utilizando-ssis-parte-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Etiquetas para documentar código en C# .NET</title>
		<link>http://qbit.com.mx/blog/2012/04/24/etiquetas-para-documentar-codigo-en-c-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=etiquetas-para-documentar-codigo-en-c-net</link>
		<comments>http://qbit.com.mx/blog/2012/04/24/etiquetas-para-documentar-codigo-en-c-net/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 16:30:43 +0000</pubDate>
		<dc:creator>Jack Fiallos</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[Jackfiallos]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Servicio]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[c sharp]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[documentacion]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[sandcastle]]></category>
		<category><![CDATA[studio]]></category>
		<category><![CDATA[visual]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1118</guid>
		<description><![CDATA[Si estas empezando en el mundo de la programación utilizando C# .NET.. o quizás siendo ya un poco experimentado en este ambiente.. seguramente te estarás preguntando como rayos documentar el código, me imagino que en algun momento has utilizado algunas de las etiquetas para este fin, pero las utilizas todas y sabes que significa cada [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/05/15/unable-to-build-project-output-group-content-files-from-x-active/' rel='bookmark' title='Unable to build project output group &#8216;Content Files from x (Active)&#8217;'>Unable to build project output group &#8216;Content Files from x (Active)&#8217;</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/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_1127" class="wp-caption aligncenter" style="width: 464px"><a href="http://qbit.com.mx/blog/wp-content/uploads/xml-doc.png"><img src="http://qbit.com.mx/blog/wp-content/uploads/xml-doc.png" alt="doc-comment tag" title="doc-comment tag" width="454" height="236" class="size-full wp-image-1127" /></a><p class="wp-caption-text">doc-comment tag</p></div>
<p>Si estas empezando en el mundo de la programación utilizando C# .NET.. o quizás siendo ya un poco experimentado en este ambiente.. seguramente te estarás preguntando como rayos documentar el código, me imagino que en algun momento has utilizado algunas de las etiquetas para este fin, pero las utilizas todas y sabes que significa cada una de ellas ??</p>
<p>Este artículo es una reseña sobre las diferentes etiquetas que se utilizan sobre métodos y clases para generar documentación.. bien puede ser utilizando <a href="http://sandcastle.codeplex.com/" title="SandCastle">SandCastle</a> o para documentar los objetos sobre el desarrollo cuando estos son invocados.</p>
<p>Por ejemplo, agregando &#8220;///&#8221; al inicio de una clase, el entorno de desarrollo de .NET automáticamente genera una secuencia especial de comentarios sobre el código y se ve de esta manera:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// Pretendo construir un reloj y esta es la descripcion de este objeto</span>
<span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> Color reloj
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">int</span> hora <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Y como resultado, al implementar el objeto reloj .. Visual Studio me mostraría como documentación lo que escribí dentro de la etiqueta summary.</p>
<p>Creo que este tipo de etiquetas son llamadas &#8220;doc-comments tags&#8221; y forman parte del intellisense del editor de código de Visual Studio .. utilicé el ejemplo de &#8220;summary&#8221; porque virtualmente en cada miembro sea clase, método, propiedad, evento, etc.. se puede utilizar.. A continuación muestro una tabla con todas las etiquetas necesarias para documentar completamente un proyecto de software, veamos.</p>
<p><span id="more-1118"></span></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>summary<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Requerido</em></strong><br />
Se utiliza usualmente para describir un objeto. Es la primera línea de las etiquetas de la documentacion. También es utilizado para ayudar al Intellisense cuando se muestra un tooltip sobre un objeto.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>remarks<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Se utiliza para escribir una descripción detallada de un objeto o método.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>example<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Se utiliza para describir ejemplos sencillos de la implementación.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>seealso<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Agrega enlaces asociados al método.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>param<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Requerido</em></strong><br />
Describe un parámetro en un método, también es mostrado en el intellisense.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>typeparam<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Requerido para cada parámetro de tipo genérico</em></strong><br />
Describe un parámetro o método de tipo genérico.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>returns<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Requerido en cada método que retorna un valor</em></strong><br />
Se utiliza para describir el valor a retornar por un método.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>exception<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Describe una excepción que podría ser lanzada por un método.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>permission<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Se utiliza para describir el nivel de acceso a un método</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>include<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Utilizado para incluir en la documentación un archivo o parte de otro en el código</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>para<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Utilizado para definir un bloque, solo se utiliza a nivel del elemento de documentación.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>list<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Crea una lista con uno o diferentes formatos (bullet, number, table) .. se utiliza solamente a nivel del elemento de documentación.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>code<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Se utiliza para especificar el formato que tendrá el código.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>c<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Similar al anterior, la unica diferencia es que &#8220;code&#8221; permite escribir en multiples líneas.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>see<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Se utiliza para definir un enlace a una página interna (cref) o externa (href).</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>paramref<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Hace referencia a un parámetro dentro de otra etiqueta</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&lt;</span>typeparamref<span style="color: #008000;">&gt;</span></pre></div></div>

<p><strong><em>Opcional</em></strong><br />
Hace referencia a un tipo de parámetro genérico</p>
<p>La información completa incluyendo ejemplos y discusión sobre su uso la pueden encontrar en el sitio de ayuda de microsoft (MSDN): <a href="http://msdn.microsoft.com/en-us/library/5ast78ax.aspx" title="Tags recomendados para generar documentacion">http://msdn.microsoft.com/en-us/library/5ast78ax.aspx</a></p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
 &bull; <a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F24%2Fetiquetas-para-documentar-codigo-en-c-net%2F&amp;t=Etiquetas+para+documentar+c%C3%B3digo+en+C%23+.NET" title="Share this on Facebook" target="_blank" rel="nofollow">Facebook</a> &bull; <a href="http://twitter.com/home?status=Etiquetas+para+documentar+c%C3%B3digo+en+C%23+.NET%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1118%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow">Twitter</a> &bull; <a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F24%2Fetiquetas-para-documentar-codigo-en-c-net%2F&amp;title=Etiquetas+para+documentar+c%C3%B3digo+en+C%23+.NET&amp;notes=%0D%0A%0D%0ASi+estas+empezando+en+el+mundo+de+la+programaci%C3%B3n+utilizando+C%23+.NET..+o+quiz%C3%A1s+siendo+ya+un+poco+experimentado+en+este+ambiente..+seguramente+te+estar%C3%A1s+preguntando+como+rayos+documentar+el+c%C3%B3digo%2C+me+imagino+que+en+algun+momento+has+utiliza" title="Post this on Delicious" target="_blank" rel="nofollow">Delicious</a> &bull; <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F24%2Fetiquetas-para-documentar-codigo-en-c-net%2F&amp;title=Etiquetas+para+documentar+c%C3%B3digo+en+C%23+.NET&amp;bodytext=%0D%0A%0D%0ASi+estas+empezando+en+el+mundo+de+la+programaci%C3%B3n+utilizando+C%23+.NET..+o+quiz%C3%A1s+siendo+ya+un+poco+experimentado+en+este+ambiente..+seguramente+te+estar%C3%A1s+preguntando+como+rayos+documentar+el+c%C3%B3digo%2C+me+imagino+que+en+algun+momento+has+utiliza" title="Submit this to Digg" target="_blank" rel="nofollow">Digg</a> &bull; <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F24%2Fetiquetas-para-documentar-codigo-en-c-net%2F&amp;title=Etiquetas+para+documentar+c%C3%B3digo+en+C%23+.NET" title="Submit this to StumbleUpon" target="_blank" rel="nofollow">StumbleUpon</a>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2012/05/15/unable-to-build-project-output-group-content-files-from-x-active/' rel='bookmark' title='Unable to build project output group &#8216;Content Files from x (Active)&#8217;'>Unable to build project output group &#8216;Content Files from x (Active)&#8217;</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/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/04/24/etiquetas-para-documentar-codigo-en-c-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La subdivisión del espacio en computación 3D usando un Octree  &#8211; I</title>
		<link>http://qbit.com.mx/blog/2012/04/20/la-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=la-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i</link>
		<comments>http://qbit.com.mx/blog/2012/04/20/la-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 19:20:04 +0000</pubDate>
		<dc:creator>Xineohp</dc:creator>
				<category><![CDATA[Sin categoría]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1097</guid>
		<description><![CDATA[&#160; Actualmente estoy programando una funcionalidad para el nuevo sistema de navegación 3D que hemos estado desarrollando ya por algunos años para un cliente. La funcionalidad que requiere el navegador 3D es realizar una búsqueda de objetos en la escena y desplazar la cámara de la posición actual a una posición cercana al objeto buscado, [...]
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=be7fc979f4af473474001d7d6309bab9&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><p>&nbsp;</p>
<div id="attachment_1099" class="wp-caption aligncenter" style="width: 310px"><a href="http://qbit.com.mx/blog/wp-content/uploads/octree1.jpg"><img class="size-medium wp-image-1099" title="octree1" src="http://qbit.com.mx/blog/wp-content/uploads/octree1-300x271.jpg" alt="Octree" width="300" height="271" /></a><p class="wp-caption-text">Octree</p></div>
<p>Actualmente estoy programando una funcionalidad para el nuevo sistema de navegación 3D que hemos estado desarrollando ya por algunos años para un cliente. La funcionalidad que requiere el navegador 3D es realizar una búsqueda de objetos en la escena y desplazar la cámara de la posición actual a una posición cercana al objeto buscado, la cámara tiene que desplazarse por un espacio tridimensional y esquivar en su trayectoria a los objetos que se encuentren entre la posición de origen y la posición final, para hacer esto se requiere de una secuencia de pasos o sea de un algoritmo para calcular el mejor camino hacia la posición final. El algoritmo que utilice en la versión anterior y volveré a utilizar se llama “A*” o Algoritmo de búsqueda A estrella.</p>
<p>Este algoritmo “<span style="color: #333333;"><span style="font-family: Georgia, 'Bitstream Charter', serif;"><span style="font-size: x-small;">Evalúa los nodos combinando g(n), el coste para alcanzar el nodo, y h*(n), el coste estimado de ir al nodo objetivo: f*(n) = g(n) + h*(n)”</span></span></span> .</p>
<p>Aqui hay muy buena información sobre A*:<br />
<span style="font-size: x-small;"><br />
<a href="http://www.policyalmanac.org/games/articulo1.htm">http://www.policyalmanac.org/games/articulo1.htm</a></span><br />
<span style="font-size: x-small;"><br />
<a href="http://poiritem.wordpress.com/2010/01/14/6-5-2-busqueda-heuristica-algoritmo-a/">http://poiritem.wordpress.com/2010/01/14/6-5-2-busqueda-heuristica-algoritmo-a/</a> </span><br />
<span style="font-size: x-small;"><br />
<a href="http://es.wikipedia.org/wiki/Algoritmo_de_búsqueda_A*">http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda_A*</a></span><br />
<span style="font-size: x-small;"><br />
<a href="http://en.wikipedia.org/wiki/A*_search_algorithm">http://en.wikipedia.org/wiki/A*_search_algorithm</a><br />
</span><br />
Lo interesante es que para el navegador 3D adapte el algoritmo para hacer las búsquedas en un espacio tridimensional, en la mayoria de los ejemplos solo se utiliza para espacios en 2D.</p>
<p>El primer paso es dividir el área de búsqueda en una rejilla cuadrada, donde cada cuadro representa un nodo y cada nodo tiene un estado que se puede marcar como transitable o intransitable, y sirve de entrada al algoritmo para calcular la ruta. En el caso del espacio tridimensional utilice un cubo para envolver toda la escena y se subdividió en cubos mas pequeños, luego los cubos que contenían vertices de algún objeto en la escena fueron marcados como cubos o nodos no transitables, de esta manera la camara solo podría moverse por las zonas que no estuvieran ocupadas por algún objeto en la escena.</p>
<p>En la versión anterior el cálculo se hizo recorriendo “todos los nodos” del volumen para verificar cuales eran los nodos intransitables, este cálculo se hacia con una aplicación de procesos distribuidos y tardaba un tiempo considerable para obtener la lista de nodos.</p>
<p>Para esta nueva versión del navegador 3D utilizaré una mejor manera para agilizar la búsqueda de nodos intransitables, y esta es utilizando un Octree. Y Que es un Octree???.</p>
<p>“Un Octree es una estructura de datos en la cual cada nodo interno tiene exactamente 8 hijos. Las estructuras octree se usan mayormente para particionar un espacio tridimensional, dividiéndolo recursivamente en ocho octantes” [1]</p>
<p>“Gráficamente podemos visualizar a un octree como un cubo perfecto que representa al nodo raíz el cual encierra toda la geometría de la escena. Cada nodo está subdividido en ocho cubos más pequeños que representan a sus nodos hijo los cuales son llamados octantes. Cada uno de estos cubos también es subdividido en otros ocho octantes cada uno y así sucesivamente hasta llegar a una condición de término a la que tipicamente se llega en el momento en que los octantes son de cierto tamaño o cuando no llegan a contener un cierto número mínimo de polígonos” [2]</p>
<p>“El primer nodo del árbol, la raiz, es un cubo. Cada nodo tiene ocho hijos o no tiene hijos. Los ocho hijos forman una subdivisión regular de 2x2x2 en el nodo padre. Un nodo con hijos es llamado nodo interno. Un nodo sin hijos es llamado hoja.” [3]</p>
<p>Algunos usos comunes de los octrees son:</p>
<p>Indexación espacial.</p>
<p>Detección de colisiones en tres dimesiones</p>
<p>Mapeado de texturas [3]</p>
<p>Análisis de elementos finitos</p>
<p>Determinación de cara oculta (View Frustrum culling) [2] (aqui hay una excelente explicación de la aplicación de octrees para el manejo de caras ocultas)</p>
<p>La idea de utilizar un octree para encontrar los nodos intransitables es para aprovechar la estructura y definición del octree para hacer un menor número de comparaciones al evaluar si un cubo o nodo en la malla esta ocupado o colisiona con un objeto de la escena, los nodos del octree que envuelvan a los objetos de la escena seran los nodos no transitables.</p>
<div id="attachment_1100" class="wp-caption aligncenter" style="width: 310px"><a href="http://qbit.com.mx/blog/wp-content/uploads/EspacioConOctree.jpg"><img class="size-medium wp-image-1100" title="EspacioConOctree" src="http://qbit.com.mx/blog/wp-content/uploads/EspacioConOctree-300x225.jpg" alt="Ejemplo de una escena dentro de un octree. " width="300" height="225" /></a><p class="wp-caption-text">Ejemplo de una escena dentro de un octree.</p></div>
<p>Mas información sobre octrees :</p>
<p>Hieralchical Spatial Data Structures</p>
<p>Hanan Samet 1989<br />
<span style="font-size: x-small;"><br />
<a href="http://www.cs.umd.edu/~hjs/pubs/SametSSD89.pdf">http://www.cs.umd.edu/~hjs/pubs/SametSSD89.pdf</a><br />
</span><br />
Referencias :<br />
<span style="font-size: x-small;"><br />
[1] <a href="http://es.wikipedia.org/wiki/Octree">http://es.wikipedia.org/wiki/Octree</a><br />
[2] Tesis profesional Desarrollo de un motor gráfico para el recorrido de mundos tridimensionales :<br />
</span><br />
Ricardo Hermina Téllez:<br />
<span style="font-size: x-small;"><br />
<a href="http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/hermida_t_r/capitulo_4.html">http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/hermida_t_r/capitulo_4.html</a></span><br />
<span style="font-size: x-small;"><br />
<span style="color: #444444;"><span style="font-family: 'myriad web pro', calibri, sans-serif;">[3] <a href="http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter37.html">http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter37.html</a></span></span></span></p>
<p>Imagenes :<br />
<span style="font-size: x-small;"><br />
<a href="http://www-lehre.informatik.uni-osnabrueck.de/~vcprakt/kolloquium00/html/octree.html">http://www-lehre.informatik.uni-osnabrueck.de/~vcprakt/kolloquium00/html/octree.html</a></span><br />
<span style="font-size: x-small;"><br />
<a href="http://www.gamedev.net/topic/589587-optimizing-collision-detection-of-player-and-map-with-some-data-structures/">http://www.gamedev.net/topic/589587-optimizing-collision-detection-of-player-and-map-with-some-data-structures/</a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
 &bull; <a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F20%2Fla-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i%2F&amp;t=La+subdivisi%C3%B3n+del+espacio+en+computaci%C3%B3n+3D+usando+un+Octree++%26%238211%3B+I" title="Share this on Facebook" target="_blank" rel="nofollow">Facebook</a> &bull; <a href="http://twitter.com/home?status=La+subdivisi%C3%B3n+del+espacio+en+computaci%C3%B3n+3D+usando+un+Octree++%26%238211%3B+I%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1097%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow">Twitter</a> &bull; <a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F20%2Fla-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i%2F&amp;title=La+subdivisi%C3%B3n+del+espacio+en+computaci%C3%B3n+3D+usando+un+Octree++%26%238211%3B+I&amp;notes=%26nbsp%3B%0D%0A%0D%0A%0D%0A%0D%0AActualmente+estoy+programando+una+funcionalidad+para+el+nuevo+sistema+de+navegaci%C3%B3n+3D+que+hemos+estado+desarrollando+ya+por+algunos+a%C3%B1os+para+un+cliente.+La+funcionalidad+que+requiere+el+navegador+3D+es+realizar+una+b%C3%BAsqueda+de+obje" title="Post this on Delicious" target="_blank" rel="nofollow">Delicious</a> &bull; <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F20%2Fla-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i%2F&amp;title=La+subdivisi%C3%B3n+del+espacio+en+computaci%C3%B3n+3D+usando+un+Octree++%26%238211%3B+I&amp;bodytext=%26nbsp%3B%0D%0A%0D%0A%0D%0A%0D%0AActualmente+estoy+programando+una+funcionalidad+para+el+nuevo+sistema+de+navegaci%C3%B3n+3D+que+hemos+estado+desarrollando+ya+por+algunos+a%C3%B1os+para+un+cliente.+La+funcionalidad+que+requiere+el+navegador+3D+es+realizar+una+b%C3%BAsqueda+de+obje" title="Submit this to Digg" target="_blank" rel="nofollow">Digg</a> &bull; <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F20%2Fla-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i%2F&amp;title=La+subdivisi%C3%B3n+del+espacio+en+computaci%C3%B3n+3D+usando+un+Octree++%26%238211%3B+I" title="Submit this to StumbleUpon" target="_blank" rel="nofollow">StumbleUpon</a>
<!-- End WP Socializer - Social Buttons - Output -->
<p>No hay entradas relacionadas</p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/04/20/la-subdivision-del-espacio-en-computacion-3d-usando-un-octree-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clase Attributes en C#</title>
		<link>http://qbit.com.mx/blog/2012/04/19/clase-attributes-en-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=clase-attributes-en-c</link>
		<comments>http://qbit.com.mx/blog/2012/04/19/clase-attributes-en-c/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 01:03:09 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Sin categoría]]></category>

		<guid isPermaLink="false">http://qbit.com.mx/blog/?p=1089</guid>
		<description><![CDATA[Seguramente algunos de ustedes han visto algunas &#8220;etiquetas&#8221; ubicadas en la parte superior de algunos de los métodos o clases, principalmente cuando están implementando  algún Framework,  cuya funcionalidad de dichas &#8220;etiquetas&#8221;  es  es agregar cierto comportamiento de la clase dentro del framework. Para mi sorpresa, dichas &#8220;etiquetas&#8221; no era lo que pensaba. A mi entender, son constructores de [...]
Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2010/01/12/utilizar-una-clase-java-en-oracle-10g/' rel='bookmark' title='Utilizar una clase Java en Oracle 10g'>Utilizar una clase Java en Oracle 10g</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/15/mis-estimados-rudos-un-poco-de-java-hibernate-ytsql/' rel='bookmark' title='Mis estimados rudos. Un poco de Java, Hibernate y T-SQL'>Mis estimados rudos. Un poco de Java, Hibernate y T-SQL</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=e8c30513ee6bddd0ca43b51c56cf58cd&amp;default=http://qbit.com.mx/blog/archivos/blank_gravatar.png' alt='No Gravatar' width=40 height=40/><p>Seguramente algunos de ustedes han visto algunas &#8220;etiquetas&#8221; ubicadas en la parte superior de algunos de los métodos o clases, principalmente cuando están implementando  algún Framework,  cuya funcionalidad de dichas &#8220;etiquetas&#8221;  es  es agregar cierto comportamiento de la clase dentro del framework.</p>
<p>Para mi sorpresa, dichas &#8220;etiquetas&#8221; no era lo que pensaba. A mi entender, son constructores de alguna clase que hereda de Attribute.</p>
<p>Veamos un ejemplo. Comencemos creando una clase &#8220;MyGridColumnAttribute&#8221;</p>
<h2>Crear Clase tipo Attribute</h2>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>AttributeUsage<span style="color: #008000;">&#40;</span>AttributeTargets<span style="color: #008000;">.</span><span style="color: #0000FF;">Property</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;">class</span> MyGridColumnAttribute<span style="color: #008000;">:</span> Attribute
<span style="color: #008000;">&#123;</span>
&nbsp;
  <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> _headerText<span style="color: #008000;">;</span>
  <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">bool</span> _isHidden<span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> HeaderText
  <span style="color: #008000;">&#123;</span>
    get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _headerText<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    set <span style="color: #008000;">&#123;</span> _headerText <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">bool</span> IsHidden
  <span style="color: #008000;">&#123;</span>
    get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _isHidden<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    set <span style="color: #008000;">&#123;</span> _isHidden <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF; font-weight: bold;">public</span> PagingGridAttribute<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> headerText, <span style="color: #6666cc; font-weight: bold;">bool</span> isHidden<span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    _headerText <span style="color: #008000;">=</span> headerText<span style="color: #008000;">;</span>
    _isHidden <span style="color: #008000;">=</span> isHidden<span style="color: #008000;">;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>&nbsp;</p>
<h2><strong>Un Par de Reglas</strong></h2>
<ol>
<li>En la parte superior de la declaración de la clase se encuentra el atributo &#8220;[AttributeUsage(AttributeTargets.Property)]&#8221; la cual indica en que parte de la clases pueden ser implementado  &#8221;MyGridColumnAttribute&#8221;. Para mas referencias diríjanse a la página de <a title="Attribute" href="http://msdn.microsoft.com/es-es/library/system.attributetargets(v=vs.90).aspx">Microsoft</a>.</li>
<li>El nombre de la clase debe de terminar con  Attribute (MyGridColumn<strong>Attribute</strong>).</li>
</ol>
<div></div>
<h2> Utilizar la Clase Attribute</h2>
<p>Ahora, es tiempo de utilizar nuestra recién creada clase. Para esto, debemos crear otra clase que llamaremos MyCustomDataSource:</p>
<p>&nbsp;</p>

<div class="wp_syntax"><div 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> MyCustomDataSource
<span style="color: #008000;">&#123;</span>
  <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">string</span> _firstName, _lastName, _nickName, _password<span style="color: #008000;">;</span>
&nbsp;
  <span style="color: #008000;">&#91;</span>MyGridColumnAttribute<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Nombre&quot;</span>, <span style="color: #0600FF; font-weight: bold;">true</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;">string</span> FirstNombre
  <span style="color: #008000;">&#123;</span>
    get<span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _firstName<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    set<span style="color: #008000;">&#123;</span> _firstName <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #008000;">&#91;</span>MyGridColumnAttribute<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Apellido&quot;</span>, <span style="color: #0600FF; font-weight: bold;">true</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;">string</span> LastName
  <span style="color: #008000;">&#123;</span>
    get<span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _lastName<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    set<span style="color: #008000;">&#123;</span> _lastName <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #008000;">&#91;</span>MyGridColumnAttribute<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Clave&quot;</span>, <span style="color: #0600FF; font-weight: bold;">true</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;">string</span> NickName
  <span style="color: #008000;">&#123;</span>
    get<span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _nickName<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    set<span style="color: #008000;">&#123;</span> _nickName <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #008000;">&#91;</span>MyGridColumnAttribute<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Contraseña&quot;</span>, <span style="color: #0600FF; font-weight: bold;">true</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;">string</span> Password
  <span style="color: #008000;">&#123;</span>
    get<span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> _password<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    set<span style="color: #008000;">&#123;</span> _password <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>&nbsp;</p>
<p>Para aquellos que gusten cooperar con la causa, el siguiente paso es crear un componente que utilice &#8220;MyCustomDataSource&#8221; y lo muestre en alguna página Web.</p>
<p>&nbsp;</p>
<h2>Compartir y Disfrutar</h2>

<!-- Start WP Socializer - Social Buttons - Output -->
 &bull; <a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F19%2Fclase-attributes-en-c%2F&amp;t=Clase+Attributes+en+C%23" title="Share this on Facebook" target="_blank" rel="nofollow">Facebook</a> &bull; <a href="http://twitter.com/home?status=Clase+Attributes+en+C%23%20-%20http%3A%2F%2Fqbit.com.mx%2Fblog%3Fp%3D1089%20@QbitMexhico" title="Tweet this !" target="_blank" rel="nofollow">Twitter</a> &bull; <a href="http://delicious.com/post?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F19%2Fclase-attributes-en-c%2F&amp;title=Clase+Attributes+en+C%23&amp;notes=Seguramente+algunos+de+ustedes+han+visto+algunas+%22etiquetas%22+ubicadas+en+la+parte+superior+de+algunos+de+los%C2%A0m%C3%A9todos+o+clases%2C+principalmente+cuando%C2%A0est%C3%A1n%C2%A0implementando+%C2%A0alg%C3%BAn+Framework%2C+%C2%A0cuya+funcionalidad+de+dichas+%22etiquetas%22+%C2%A0es+%C2%A0es+agr" title="Post this on Delicious" target="_blank" rel="nofollow">Delicious</a> &bull; <a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F19%2Fclase-attributes-en-c%2F&amp;title=Clase+Attributes+en+C%23&amp;bodytext=Seguramente+algunos+de+ustedes+han+visto+algunas+%22etiquetas%22+ubicadas+en+la+parte+superior+de+algunos+de+los%C2%A0m%C3%A9todos+o+clases%2C+principalmente+cuando%C2%A0est%C3%A1n%C2%A0implementando+%C2%A0alg%C3%BAn+Framework%2C+%C2%A0cuya+funcionalidad+de+dichas+%22etiquetas%22+%C2%A0es+%C2%A0es+agr" title="Submit this to Digg" target="_blank" rel="nofollow">Digg</a> &bull; <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fqbit.com.mx%2Fblog%2F2012%2F04%2F19%2Fclase-attributes-en-c%2F&amp;title=Clase+Attributes+en+C%23" title="Submit this to StumbleUpon" target="_blank" rel="nofollow">StumbleUpon</a>
<!-- End WP Socializer - Social Buttons - Output -->
<p>Entradas Relacionadas:<ol>
<li><a href='http://qbit.com.mx/blog/2010/01/12/utilizar-una-clase-java-en-oracle-10g/' rel='bookmark' title='Utilizar una clase Java en Oracle 10g'>Utilizar una clase Java en Oracle 10g</a></li>
<li><a href='http://qbit.com.mx/blog/2012/03/15/mis-estimados-rudos-un-poco-de-java-hibernate-ytsql/' rel='bookmark' title='Mis estimados rudos. Un poco de Java, Hibernate y T-SQL'>Mis estimados rudos. Un poco de Java, Hibernate y T-SQL</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://qbit.com.mx/blog/2012/04/19/clase-attributes-en-c/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 -->
 &bull; <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">Facebook</a> &bull; <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">Twitter</a> &bull; <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">Delicious</a> &bull; <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">Digg</a> &bull; <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">StumbleUpon</a>
<!-- 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 -->
 &bull; <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">Facebook</a> &bull; <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">Twitter</a> &bull; <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">Delicious</a> &bull; <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">Digg</a> &bull; <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">StumbleUpon</a>
<!-- 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>
	</channel>
</rss>

