<?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>mty.Coders &#187; Microsoft</title>
	<atom:link href="http://mtycoders.com/category/computadoras-y-accesorios/microsoft-computadoras-y-accesorios/feed/" rel="self" type="application/rss+xml" />
	<link>http://mtycoders.com</link>
	<description>Comunidad de Desarrolladores de Monterrey</description>
	<lastBuildDate>Sat, 09 Jan 2010 00:35:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>¡Securiza tu IE!</title>
		<link>http://mtycoders.com/%c2%a1securiza-tu-ie/</link>
		<comments>http://mtycoders.com/%c2%a1securiza-tu-ie/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 18:12:01 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Anuncios Interesantes]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Seguridad de Informática]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[securización]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=420</guid>
		<description><![CDATA[Y no solo IE, sino Firefox, Chrome, Safari y Opera. He encontrado un manual en internet que debe resolver todas tus dudas sobre como hacer tu experiencia de navegación en Internet mas segura.
Probablemente este manual va mas enfocado hacia aquellos que no son programadores, o usuarios expertos de computadoras, sin embargo siempre es util tener [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p>Y no solo IE, sino Firefox, Chrome, Safari y Opera. He encontrado un manual en internet que debe resolver todas tus dudas sobre como hacer tu experiencia de navegación en Internet mas segura.</p>
<p>Probablemente este manual va mas enfocado hacia aquellos que no son programadores, o usuarios expertos de computadoras, sin embargo siempre es util tener un manual de referencia. En el se incluye una reseña sobre los procesos de seguridad en general, seguido de como aplicarlo sobre los navegadores mas usados.</p>
<p>Es un PDF y lo puedes ver <a title="Manual de Securización de Navegadores" href="http://www.inteco.es/extfrontinteco/img/File/intecocert/Proteccion/securizacion_de_navegadores(1).pdf" target="_blank">dando clic aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/%c2%a1securiza-tu-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio Beta 2010 liberado!!!</title>
		<link>http://mtycoders.com/visual-studio-beta-2010-liberado/</link>
		<comments>http://mtycoders.com/visual-studio-beta-2010-liberado/#comments</comments>
		<pubDate>Thu, 21 May 2009 19:59:00 +0000</pubDate>
		<dc:creator>hprez21</dc:creator>
				<category><![CDATA[Anuncios Interesantes]]></category>
		<category><![CDATA[Lo Que Viene]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[visual studio 2010]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=397</guid>
		<description><![CDATA[Así es, el día de ayer miércoles, ha sido liberada la versión de Visual Studio 2010 Beta, está muy pero muy cool  
Ahora mismo lo estoy probando, y me ha encantado, con lo que me gusta WPF, les recomiendo que lo prueben !  
 

Link: Descarga Visual Studio 2010
Héctor Uriel Pérez Rojas
]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=14e5bfbbff45352cf25bf80e42cbd34c&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p align="justify">Así es, el día de ayer miércoles, ha sido liberada la versión de Visual Studio 2010 Beta, está muy pero muy cool <img src='http://mtycoders.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p align="justify">Ahora mismo lo estoy probando, y me ha encantado, con lo que me gusta WPF, les recomiendo que lo prueben ! <img src='http://mtycoders.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p> </p>
<p><a href="http://mtycoders.com/wp-content/uploads/image.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" src="http://mtycoders.com/wp-content/uploads/image-thumb.png" border="0" alt="image" width="301" height="226" /></a></p>
<p>Link: <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">Descarga Visual Studio 2010</a></p>
<p align="right"><span style="font-family: Bodoni MT; font-size: medium;"><strong>Héctor Uriel Pérez Rojas</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/visual-studio-beta-2010-liberado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SourceSafe: Destructor de Código?</title>
		<link>http://mtycoders.com/sourcesafe-destructor-de-codigo/</link>
		<comments>http://mtycoders.com/sourcesafe-destructor-de-codigo/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 16:51:11 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[archivos]]></category>
		<category><![CDATA[branching]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[copias]]></category>
		<category><![CDATA[destructor]]></category>
		<category><![CDATA[problema]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[revisiones]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[sourcesafe]]></category>
		<category><![CDATA[studio]]></category>
		<category><![CDATA[versiones]]></category>
		<category><![CDATA[visual]]></category>
		<category><![CDATA[vs]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=380</guid>
		<description><![CDATA[Hay muchas soluciones excelentes para sistemas de control de revisiones. SourceSafe no es una de ellas.
Después de haber usado SourceSafe durante años, he tenido experiencia mala tras experiencia mala. Nuevas versiones no trajeron mejoras considerables. Espero con este artículo persuadirte que no uses SourceSafe, librándote de los problemas que puede causarte.
Características que Faltan
SourceSafe no tiene [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p>Hay muchas soluciones excelentes para sistemas de control de revisiones. <a href="http://msdn.microsoft.com/ssafe/">SourceSafe</a> no es una de ellas.</p>
<p>Después de haber usado SourceSafe durante años, he tenido experiencia mala tras experiencia mala. Nuevas versiones no trajeron mejoras considerables. Espero con este artículo persuadirte que no uses SourceSafe, librándote de los problemas que puede causarte.<span id="more-380"></span></p>
<h2>Características que Faltan</h2>
<h3>SourceSafe no tiene soporte para revisiones alternas o de prueba (branching)</h3>
<p>Un sistema de control de revisiones debe proveer soporte para <em>branching </em>(revisiones alternas). Con un sistema adecuado de <em>branching </em>los desarrolladores pueden hacer revisiones menores de versiones anteriores o actuales mientras se sigue el desarrollo con la version principal para una nueva versión. Permite probar actualizaciones a nivel proyecto sin afectar la versión funcional.</p>
<p>De igual manera debe tener un sistema de diferenciación entre &#8220;<em>branches</em>&#8221; o versiones para poder modificarlos, unirlos, o deshacer cambios. El &#8220;<em>merge</em>&#8221; de SourceSafe está integrado ampliamente con el <em>check-in</em>, haciendo que sea dificil validar las diferencias de una propuesta de merge antes de mandarlo a <em>check-in</em>.</p>
<h3>No se puede extender a SourceSafe de manera segura</h3>
<p>Debería ser posible añadirle funcionalidades al sistema de control de revisiones. Por ejemplo, envío de correos haciendo un resumen de check-ins es muy importante. Al trabajar con un equipo, emails con mensajes listando archivos actualizados así como las actividades realizadas en cada uno pueden mantener a todo el equipo al tanto de las actualizaciones. Quizá también se requiera agregar filtros para prevenir que se actualizen archivos que no cumplen con ciertos requerimientos. Sourcesafe apenas soporta algo remotamente parecido. Aún cuando es posible, cada usuario debe tener la funcionalidad instalada a nivel cliente. Si uno solo no lo tiene, el sistema deja de funcionar de la manera esperada.</p>
<h3>SourceSafe silenciosamente deja archivos muertos en tu sistema</h3>
<p>Cuando se actualizan los archivos de trabajo locales al servidor, los archivos que fueron eliminados en el servidor deberían ser mostrados, o eliminados, ya que de cualquier modo los archivos se podrían restaurar del sistema de control de versiones. No hacer esto causa que archivos viejos o no requeridos se queden colgados del lado de un cliente, integrandose nuevamente al hacer <em>check-in</em>.</p>
<h3>SourceSafe no funciona adecuadamente sobre redes lentas y por medio de Internet</h3>
<p>Se vuelve casi inusable sobre redes/conexiones lentas. Como SourceSafe funciona compartiendo sobre la red, si publicas un servidor de SourceSafe en la red se expone cualquier debilidad en la implementación del compartido de archivos que pueda tener el servidor.</p>
<h3>Se vuelve extremadamente lento ver y regresar a versiones anteriores</h3>
<p>No es extraño llegar a necesitar una version histórica del código fuente. Puedes necesitar una version anterior para verificar un reporte de un <em>bug</em>, o regresar a una versión funcional. SourceSafe soporta esta funcion, sin embargo es bastante lento para proyectos grandes. Para obtener una version histórica requieres generar el historial para todo el proyecto, y luego especificar la versión seleccionando el último check-in que requieres. Para un proyecto con cientos de archivos y un año de historia puede tomar mas de 5 minutos.</p>
<h3>Es dificil mantener copias multiples de manera local de un mismo proyecto</h3>
<p>Al hacer cambios de manera masiva sobre un proyecto puede ser que se requiera hacer un cambio sobre la solución entera. La manera mas eficiente de hacer esto es generar un duplicado para hacer el cambio. SourceSafe presenta un problema al hacer esto. SourceSafe solo reconoce una versión válida en tu sistema. Tendrás que hacer una copia del directorio físico, hacer el cambio, y darle la noción a SourceSafe de la ubicación de la copia.</p>
<h2>Seguridad</h2>
<h3>SourceSafe se vuelve lento y problemático con proyectos grandes</h3>
<p>Microsoft recomienda que tu base de datos de SourceSafe no exceda 5 GB en tamaño. (Fuente: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvss/html/vssbest.asp" target="_blank">Mejores Prácticas de Microsoft</a>). Aunque 5GB es una base de datos bastante grande, es comun para un proyecto grande, especialmente cuando subes archivos binarios como documentos de word, etc.</p>
<h3>Integración de SourceSafe con Visual Studio puede causar inestabilidad</h3>
<p>SourceSafe puede colgarse o tronar cuando tu sistema pierde conexión con la base de datos SourceSafe. Mientras que esto puede ser irritante al usar Visual SourceSafe de manera directa, se vuelve insoportable al usar Visual Studio con integración con SourceSafe ya que puede hacerte perder trabajo.</p>
<h3>SourceSafe depende de transferencia de archivos de manera peligrosa</h3>
<p>SourceSafe no corre realmente como un servidor si no que como un set de archivos compartidos a través de SMB. Como resultado dependes en que cada cliente no debe de comportarse de manera errática. Una sola computadora que falle de hacer lo que debe puede corromper la base de datos. Un solo problema con el sistema para compartir archivos en tu computadora puede destrozar la base de datos.</p>
<h3>Se debe escanear a SourceSafe para detectar corrupción semanalmente</h3>
<p>Claro, con este riesgo grande de corrupción, Microsoft recomienda que corras el programa de diagnostico &#8220;Analyze&#8221; de manera semanal. (Fuente: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvss/html/vssbest.asp">Microsoft Best Practices</a>). Mientras que Analyze está corriendo, todos los desarrolladores quedan encerrados fuera del sistema.</p>
<h3>SourceSafe maneja zonas horarias multiples de manera inadecuada</h3>
<p>Si tienes equipos usando el mismo repositorio SourceSafe en diferentes zonas horarias es muy probable que tengas problemas. (<a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;q248240">Ve el reporte de Microsoft sobre el bug de zona horaria</a>). La unica solución que propone Microsoft es ajustar la hora de la computadora entre zonas a una misma hora, o comprar un producto de un tercero.</p>
<h3>SourceSafe se corrompe</h3>
<p>Tu sistema de control de revisiones debe ser digno de confianza. Estas poniendo tu trabajo en las manos de un sistema. Si los datos se corrompen el sistema es infuncional. El diseño fundamental de SourceSafe supone que los clientes funcionan adecuadamente todo el tiempo y nada se interpondrá entre la comunicación. Por lo tanto, SourceSafe es fragil y no es digno de confianza. Los datos se corrompen, se pierde el trabajo y se gasta tiempo en resolver el problema.</p>
<h2>Conclusión</h2>
<p>Si estas considerando usar SourceSafe, considera algo diferente. Si estas usándolo actualmente, migra tan pronto sea posible.<a href="http://www.highprogrammer.com/alan/windev/sourcesafe-other.html" target="_blank"> Aquí puedes encontrar algunas soluciones diferentes</a>. En mi opinión personal Team Foundation Server o VisualSVN con Tortoise SVN son las mejores opciones.</p>
<p>Si debes usar SourceSafe obligatoriamente, y estas usando SourceSafe 6.0, toma un momento para leer la <a href="http://search.support.microsoft.com/kb/psssearch.asp?FR=0&amp;DU=C&amp;SPR=&amp;LPR=&amp;D=support&amp;LQ=kbssafe600bug+and+not+kbvs600sp1fix+and+not+kbvs600sp2fix+and+not+kbvs600sp3fix&amp;VA=&amp;T=B&amp;KT=BOOLEAN&amp;T1=&amp;S=F&amp;A=T&amp;sh=0&amp;SG=&amp;PSL=&amp;LNG=ENG&amp;VR=http%3A%2F%2Fsupport%2Emicrosoft%2Ecom%2Fsupport&amp;CAT=Support&amp;VRL=ENG&amp;CND=1&amp;SA=MSDN&amp;H=Bugs+in+Visual+SourceSafe+6%2E0" target="_blank">lista de bugs actuales</a> y la <a href="http://search.support.microsoft.com/kb/psssearch.asp?FR=0&amp;DU=C&amp;SPR=&amp;LPR=&amp;D=support&amp;LQ=kbssafe600fix&amp;VA=&amp;T=B&amp;KT=BOOLEAN&amp;T1=&amp;S=F&amp;A=T&amp;sh=0&amp;SG=&amp;PSL=&amp;LNG=ENG&amp;VR=http%3A%2F%2Fsupport%2Emicrosoft%2Ecom%2Fsupport&amp;CAT=Support&amp;VRL=ENG&amp;CND=1&amp;SA=MSDN&amp;H=Fixes+in+Visual+SourceSafe+6%2E0" target="_blank">lista de bugs arreglados </a>en SourceSafe 6.0 para que sepas que puedes esperar. <a href="http://msdn.microsoft.com/bugs/" target="_blank">Esta página </a>puede ser útil para versiones posteriores (página de bugs de Microsoft).</p>
<p><a href="http://www.highprogrammer.com/alan/windev/sourcesafe-other.html"></a></p>
<p>Este artículo es una versión modificada y traducida al español de un artículo web escrito por Alan de Smet. Desafortunadamente comparto sus experiencias negativas con este sistema.</p>
<p><strong>Vía</strong>:<a href="http://www.highprogrammer.com/alan/windev/sourcesafe.html"> http://www.highprogrammer.com/alan/windev/sourcesafe.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/sourcesafe-destructor-de-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safari 4 Domina Navegadores</title>
		<link>http://mtycoders.com/safari-4-domina-navegadores/</link>
		<comments>http://mtycoders.com/safari-4-domina-navegadores/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 16:22:42 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Anuncios Interesantes]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[4]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[domina]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jit]]></category>
		<category><![CDATA[minefield]]></category>
		<category><![CDATA[prueba]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[velocidad]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=344</guid>
		<description><![CDATA[Según un reportaje por ZDNet, Safari 4 (beta) es el navegador mas rápido hasta la fecha. En efecto, es 42 veces mas rápido al interpretar Javascript que Internet Explorer 7. Ademas, superó a Google Chrome, Mozilla Firefox y Opera.

(Imagen y Artículo Original por  Nate Lanxon CNET UK Crave)

Los resultados exactos de esta serie de [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p style="text-align: left;">Según un reportaje por ZDNet, Safari 4 (beta) es el navegador mas rápido hasta la fecha. En efecto, es 42 veces mas rápido al interpretar Javascript que Internet Explorer 7. Ademas, superó a Google Chrome, Mozilla Firefox y Opera.</p>
<p><img class="alignnone size-full wp-image-345" title="pc_benchmarks2425" src="http://mtycoders.com/wp-content/uploads/pc_benchmarks2425.jpg" alt="pc_benchmarks2425" width="425" height="285" /><span id="more-344"></span><br />
<h5 style="text-align: left;">(Imagen y Artículo Original por  Nate Lanxon CNET UK Crave)</h5>
<p><br/></p>
<p style="text-align: left;">Los resultados exactos de esta serie de pruebas fueron los siguientes:</p>
<p style="text-align: left;">1) Safari 4 (Total time: 910ms)<br />
2) Mozilla Minefield 3.2a1 (1,136ms)<br />
3) Google Chrome (1,177ms)<br />
4) Firefox 3 (3,250ms)<br />
5) Opera 9.6 (4,076ms)<br />
6) Internet Explorer 8 (5,839ms)<br />
7) Internet Explorer 7 (39,026ms)</p>
<p style="text-align: left;">Las pruebas fueron realizadas usando SunSpider para probar la ejecución de Javascript. Se realizaron tanto en una PC con Windows XP SP2 como una Mac con OS X 10.6.</p>
<p style="text-align: left;">En mi experiencia personal, provee una navegación diferente a la de otros navegadores. La interfaz es muy distinta a Chrome o Firefox sin embargo provee muchas de las mismas funcionalidades. Uno de los grandes puntos que destacan a Safari 4 es la introducción de CoverFlow a su navegación de Favoritos/Historial.</p>
<p style="text-align: left;">En fin, ¡pruebalo tú mismo! Descarga Safari 4 <a href="http://www.apple.com/safari/" target="_blank">aquí</a>.</p>
<p style="text-align: left;">&lt;&lt; <a href="http://news.zdnet.com/2100-9595_22-272792.html?part=rss&amp;amp;tag=feed&amp;amp;subj=zdnn" target="_blank">Via ZDNet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/safari-4-domina-navegadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrevista con un Desarrollador de Adware</title>
		<link>http://mtycoders.com/entrevista-con-un-desarrollador-de-adware/</link>
		<comments>http://mtycoders.com/entrevista-con-un-desarrollador-de-adware/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 18:09:30 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Adware]]></category>
		<category><![CDATA[Anuncios Interesantes]]></category>
		<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Estándares]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Lenguajes]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[S.O.]]></category>
		<category><![CDATA[Seguridad Web]]></category>
		<category><![CDATA[Seguridad de Informática]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ads]]></category>
		<category><![CDATA[bootstrapper]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[direct revenue]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[informática]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[matt knox]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[sherri davidoff]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=270</guid>
		<description><![CDATA[

El siguiente artículo es verdaderamente interesante, el cual he traducido al Español con permiso del autor original &#8220;Sherri Davidoff&#8220;. Puede ser un poco largo, sin embargo vale la pena por el conocimiento adquirido al final.
¿De qué se trata? Adware, Programación, Internet Explorer, Windows y Seguridad en Informática.
Matt Knox, un instructor y desarrollador talentoso de Ruby [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val=" " /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} p 	{mso-style-noshow:yes; 	mso-style-priority:99; 	mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --></p>
<p><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --></p>
<p><!--[endif]--><span lang="ES">El siguiente artículo es verdaderamente interesante, el cual he traducido al Español con permiso del autor original &#8220;<a href="http://philosecurity.org/about" target="_blank">Sherri Davidoff</a>&#8220;. Puede ser un poco largo, sin embargo vale la pena por el conocimiento adquirido al final.</span></p>
<p><strong><span lang="ES">¿De qué se trata?</span></strong><span lang="ES"> <em>Adware</em>, Programación, Internet Explorer, Windows y Seguridad en Informática.</span></p>
<p><span lang="ES"><span id="more-270"></span></span><strong><span lang="ES">Matt Knox, un instructor y desarrollador talentoso de Ruby nos habla de su inicio diseñando y desarrollando adware para Direct Revenue.</span></strong></p>
<p><strong><span lang="ES">&#8211;<br />
</span></strong></p>
<p><span lang="ES">S: Tú desarrollaste <em>adware</em>. Bastardo.</span></p>
<p><span lang="ES">M: [avergonzado] Si, lo hice. Escribí la mitad de él en <em>Scheme</em>, lo que significa que probablemente he implementado más código <em>Scheme</em> que cualquier otra persona en el planeta.</span></p>
<p><span lang="ES">S: A ver, vamos desde el principio. ¿Por qué desarrollabas <em>adware</em> en el primer lugar?</span></p>
<p><span lang="ES">M: Estuve completamente en la quiebra por un tiempo. Empecé a trabajar en software para filtrar SPAM. La empresa (<em>Direct Revenue</em>) se percató de mi trabajo y me contrató para analizar su cadena de distribución. Por un tiempo, el sitio por medio del cual sus <em>ads</em> (publicidad) corrían estaba dentro de los top 20 en Alexa. Tenía una cantidad impresionante de tráfico. Al llevar entre 4 y 5 meses trabajando ahí, un virus apareció que logró deshabilitar varias de las máquinas que usábamos para <em>adware</em>. Yo dije, &#8220;Se lo suficiente de C que podría remover el virus de las máquinas&#8221;, y lo hice. Ellos dijeron &#8220;Wow, eso fue impresionante. ¿Por qué no haces eso de nuevo?&#8221;. Entonces comencé a remover otros <em>viruses</em>, y ellos dijeron, &#8220;Bastante bueno que removiste todos los virus. ¿Por qué no remueves a la competencia también?&#8221;.</span></p>
<p><span lang="ES">Fue divertido. Me mostró el poder realizar las cosas gradualmente. Es difícil lograr que personas hagan algo malo de un tirón, sin embargo, si puedes despedazarlo en suficientes piezas independientes, puedes hacer que la gente haga casi cualquier cosa.</span></p>
<p><span lang="ES">S: ¿Sentiste que este era el inicio del descenso por el camino hacia el infierno?</span></p>
<p><span lang="ES">M: ¡Oh si! Definitivamente. [Se ríe] De hecho creo que si sumamos todo lo que hice, el resultado es positivo, si solo porque removimos mucho mas <em>adware</em> de lo que yo instalé.</span></p>
<p><span lang="ES">S: ¿Cuál era el modelo de negocios de <em>Direct Revenue</em>?</span></p>
<p><span lang="ES">M: Su modelo de negocios era comprar un <em>screensaver</em> de alguien, o desarrollarlo ellos mismos. Era una tontería como un señor que esta lavando el vidrio. Dirían, &#8220;Oye, si quieres esto, instala nuestro <em>adware</em> y te lo damos gratis&#8221;. Una increíble cantidad de gente lo haría.</span></p>
<p><span lang="ES">S: ¿Como le llamaban a eso? Supongo que no le llamaban &#8220;<em>adware</em>&#8220;.</span></p>
<p><span lang="ES">M: Los buenos distribuidores diríamos &#8220;Este es software soportado por publicidad&#8221;. Aquellos que no eran tan buenos distribuidores lo hacían por medio de <em>exploits </em>en Windows. Además, algunos distribuidores de <em>adware </em>vendían el acceso. En sus términos de licenciamiento, el EULA, agregaban &#8220;Además, instalaremos cualquier otro software que creamos conveniente&#8221;. Claro está que nadie lee los EULAs, así que mucha gente aceptaba esos términos. Digamos, si tuvieran 4 millones de máquinas, lo cual es una red de <em>adware</em> de un tamaño bastante considerable, irían con cualquier otro distribuidor de <em>adware</em> y le dirían &#8220;¡Oye! Tengo 4 millones de máquinas. ¿Deseas pagar 20 centavos por máquina? Te pondré en todas&#8221;. En aquel tiempo no había leyes escritas para esto. Los EULAs eran reconocidos como contratos, así es básicamente cómo funcionaba toda la distribución.</span></p>
<p><span lang="ES">S: ¿Tu empresa no era uno de esos que usaban <em>exploits</em> para lograr introducir software en las computadoras?</span></p>
<p><span lang="ES">M: No, no hacíamos eso. Algunos de los distribuidores si lo hacían. Si encontrábamos que un distribuidor hacía eso, diríamos &#8220;Ya no vamos a distribuir contigo&#8221;, y salíamos de esas máquinas.</span></p>
<p><span lang="ES">Con lo que tenía un verdadero problema era con el trabajo de persistencia que estaba haciendo. Eso era para hacer que fuera más difícil que nuestra competencia nos sacara de la máquina. Era imposible que una persona nos pudiera sacar de la máquina- al menos de que pasaran por nuestro proceso de desinstalación. Tenías que ir a un sitio web, descargar el desinstalador, tomar un pequeño cuestionario sobre la razón por la que removerían el software de la computadora, y luego removía el software y dejaba una llave en el registro para asegurar que no volveríamos a instalar el software en esa PC. Desafortunadamente, algunos antivirus y anti-<em>adware</em> removían esa llave del registro por lo que nuestro programa a veces terminaba de vuelta en la máquina.</span></p>
<p><span lang="ES">S: ¿Me puedes decir más sobre tus estrategias de persistencia?</span></p>
<p><span lang="ES">M: Si. Probablemente debería explicar primero como funciona el <em>adware</em>. La mayoría del <em>adware</em> tiene como presa a usuarios de Internet Explorer (IE) porque conforman al sector más grande del mercado. Además, tienden a ser los menos conocedores de TI del mercado. Si usas IE, entonces no te importa o no conoces las vulnerabilidades que IE tiene.</span></p>
<p><span lang="ES">IE tiene un mecanismo llamado <em>Browser Helper Object</em> (BHO) el cual es un bulto de código ejecutable al que se le informa de todas las llamadas web al ejecutarse. Corre en el proceso del navegador, lo que significa que puede hacer cualquier cosa que el navegador puede- lo cual básicamente significa lo que sea. Tendríamos un BHO que sirve los <em>ads</em> directamente, así que para poder borrarlo tendrías que remover todas las instancias del navegador. Eso es un poco de lo que llamo persistencia.</span></p>
<p><span lang="ES">Agrégale a eso un instalador, que genera una entrada en el registro para que cada vez que inicie el sistema operativo, el instalador revisará que el BHO sigue ahí. Si lo está, bien. Si no lo está, entonces lo instalará. Eso está perfecto hasta que alguien va y elimina el ejecutable.</span></p>
<p><span lang="ES">Lo siguiente que <em>Direct Revenue</em> hizo – de hecho debería decir yo hice, ya que estuve muy involucrado en esto – fue hacer un verificador, el cual revisa cada 10 segundos si el BHO sigue vivo. Si lo está, bien. Si no lo está, el verificador lo instalaría. Para hacer que fuera menos probable que detectaran al verificador, creamos un algoritmo para generar nombres de archivo aleatorios, el cual era igual por máquina, pero difícil de adivinar. Los primeros 6 caracteres eran la dirección MAC DES-codificado. Tomas la dirección MAC, lo codificas con DES, tomas los primeros 6 caracteres y listo. Era bastante bueno, excepto que el archivo era el mismo binario. Si hacías una suma md5 sobre el archivo, era igual donde sea, y siempre en la misma ruta.</span></p>
<p><span lang="ES">Luego hicimos un revolvedor de funciones, el cual entraba en un archivo ejecutable, tomaba las funciones y las acomodaba al azar. Eso hace que la firma sea bastante diferente. También revolvíamos bastantes punteros dentro de las funciones. Eso cambiaba completamente la estructura del archivo.</span></p>
<p><span lang="ES">Luego hicimos un <em>bootstrapper</em>, el cual era una pequeña sección de código escrito en <em>Assembler</em> el cual descifraba el ejecutable en memoria, y luego lo corría. Al mismo tiempo hicimos un proceso virtual ejecutable. Nunca he escuchado que alguien más haya hecho esto. Windows tiene esta  cosa llamada <em>Create Remote Thread</em>. Básicamente lo que hace es: Tú eres un proceso, yo soy otro proceso. Yo te llamo y te digo &#8220;¡Oye! Tengo este pedazo de código. Me gustaría mucho si pudieras correrlo&#8221;. Tú me respondes &#8220;Claro, porque eres un proceso de Windows – Eres todo hippie y amor gratis&#8221;. Los procesos de Windows, por cierto, son bastante promiscuos. Así, llamábamos un montón de procesos, les otorgábamos un pedazo de código, y lo ejecutábamos todo. Cada proceso sabía todo sobre dos de los otros. Eso les permitía generar un anillo&#8230; Soporte mutuo, ¿cierto?</span></p>
<p><span lang="ES">Así que hemos progresado de tener una entrada en el registro, a tener un ejecutable, a tener un ejecutable con un nombre aleatorio, a tener un ejecutable que varía de máquina a máquina, a uno que está cifrado – bastante más de lo normal – a tener uno que ni siquiera corre como ejecutable. Corre como una secuencia de <em>threads</em>. Ahora esos <em>threads</em> pueden comunicarse el uno con el otro, y pueden revisar que el BHO está ahí y corriendo, y que nuestro software también está activo.</span></p>
<p><span lang="ES">Hay un paso más que íbamos a tomar, pero que no terminamos haciendo, y eso es que íbamos a remover el uso de <em>threads</em> completamente y en su lugar usar <em>interrupt handlers</em>. Al parecer, en Windows puedes acceder al <em>interrupt handler</em> sin mucha complicación. De hecho, puedes registrar con el SO un montón de código para manejar un <em>interrupt</em>. Después todo lo que haces es permitir que el <em>interrupt</em> se inicie, y cada vez que ese <em>interrupt</em> arranque, despiertas, haces tus cosas y te vas. Nunca lo hicimos, pero era algo que estábamos pensando en hacer.</span></p>
<p><span lang="ES">Lo que si hicimos fue crear llaves en el registro y archivos que no se podían modificar, por medio de un <em>exploit</em> llamado &#8220;<em>impedance mismatch</em>&#8221; entre el Win32 API y el NT API. Windows, desde XP, esta construido encima del <em>kernel</em> de NT. NT es fundamentalmente un sistema Unicode, así que todas las cadenas internas son Unicode contado de 16-bit. El Win32 API es fundamentalmente Ascii. Hay cadenas que puedes mostrar en Unicode contado de 16-bit que no puedes desplegar en Ascii. Notablemente, puedes tener cadenas con un Nulo en medio de ellas.</span></p>
<p><span lang="ES">Eso significa que podíamos, por ejemplo, crear una llave en el registro que tenga un valor nulo en medio. Como la interfaz de usuario está basada en el Win32 API, las personas podrían ver la llave, pero no podrían interactuar con él porque al solicitarle el nombre estarían solicitando aquél que termina el Nulo. Por eso mismo, podíamos hacer llaves que eran invisibles o inmutables para cualquier persona usando el Win32 API. Como dato interesante, esto no era nada más los usuarios y nuestra competencia, pero aquellos que desarrollan los antivirus.</span></p>
<p><span lang="ES">También desarrollamos un driver de aparatos, y luego un driver para impresoras. Cuando desarrollas un driver haces bastantes cosas locas, aún más allá de las que haces comúnmente en Windows. Esto era alrededor del tiempo en que la compañía [fue demandada por Eliot Spitzer y empezó a desacelerar sus procesos]. Hicieron una decisión de negocios bastante inadecuada para ser visibles, y pusieron su marca sobre todos los anuncios al mismo tiempo que yo estaba removiendo a la competencia y estábamos haciendo el trabajo de persistencia.</span></p>
<p><span lang="ES">Cabe mencionar que también esta <em>Scheme</em>. Llegó un momento en que nos cansamos de desarrollar un nuevo programa en C cada vez que queríamos remover a la competencia de una máquina. Todos decían, &#8220;Necesitamos algo que sea personalizable&#8221;. Yo dije, &#8220;Vamos a instalar un lenguaje <em>Turing-complete</em>&#8220;, y para eso usamos <em>tinyScheme</em>, el cual tiene una licencia BSD y es una implementación bastante pequeña y rápida de <em>Scheme</em> que puede compilarse a un ejecutable de 20K si sabes lo que estás haciendo.</span></p>
<p><span lang="ES">Entonces, en vez de crear un nuevo ejecutable cada vez que salía un nuevo gusano de internet, escribía un poco de <em>Scheme</em> que ponía en el servidor, y luego todo tipo de cosas desaparecían en la oscuridad. Terminó siendo una guerra de código distribuido en una red de 4-10 millones de computadoras.</span></p>
<p><span lang="ES">S: En tu opinión profesional, ¿Cómo podemos evitar tener <em>adware</em>?</span></p>
<p><span lang="ES">M: Um, corre UNIX.</span></p>
<p><span lang="ES">S: [Se ríe]</span></p>
<p><span lang="ES">M: De hecho si pudimos hacer que el cliente de <em>ads</em> funcionara bajo Wine en Linux.</span></p>
<p><span lang="ES">S: Parece que con eso se fueron un poco lejos, ¿no?</span></p>
<p><span lang="ES">M: Yo diría que era un mercado bastante limitado.</span></p>
<p><span lang="ES">S: ¿Cual es el futuro del <em>adware</em>?</span></p>
<p><span lang="ES">M: Hasta el punto donde la publicidad es dirigida de manera hermosa deja de ser publicidad y se vuelve información. El más claro ejemplo de esto es <em>Gmail</em>. No veo más que trabajos de <em>Ruby on Rails</em> y de <em>Scheme</em> en <em>Gmail</em>.</span></p>
<p><span lang="ES">S: ¿No te saca de onda que haya un script automático filtrando tu correo?</span></p>
<p><span lang="ES">M: Cuando pienso sobre eso, a veces me asusta. La buena noticia es que he estado del otro lado de los scripts automatizados. Su capacidad es increíblemente peligrosa, pero en la realidad no tiende a serlo.</span></p>
<p><span lang="ES">Hubiera sido cualquier cosa para mí obtener la información de las tarjetas de crédito. Tenía 4 millones de nodos. Pude haberlo sin que cualquier persona en la empresa lo notara. Yo era el que desarrollaba <em>Scheme</em>, así que pude haber puesto un archivo de texto en algún lado y luego hacer que desaparezca, y no hubiera habido ni un ejecutable por ahí.</span></p>
<p><span lang="ES">Pero no lo hice. Hacer eso, por definición, significado que tendrías que convertirte en criminal, y eso es bastante raro. Así que no estoy muy atemorizado por eso. Creo que la publicidad se convertirá en algo que es una masa de algoritmos, donde alguien dice &#8220;este chavo puede estar interesado en este nuevo lenguaje de programación&#8221;.</span></p>
<p><span lang="ES">S: ¿Que tan privada es la información de la gente hoy en día?</span></p>
<p><span lang="ES">M: Para nada.</span></p>
<p><span lang="ES">S: ¿Crees que en nuestra sociedad nos hacemos creer que tenemos más privacidad de la que en realidad tenemos?</span></p>
<p><span lang="ES">M: Oh, absolutamente. Si lo piensas, cuando yo uso una tarjeta de crédito, el modelo de seguridad es lo mismo que sacando tu cartera y diciendo &#8220;Saca todo lo que crees que ocupas y luego regrésamela&#8221;.</span></p>
<p><span lang="ES">S: &#8230;Sin embargo, parece estar funcionando.</span></p>
<p><span lang="ES">M: La mayoría de las cosas no tienen que ser perfectas. En lo particular, cosas que involucran interacciones humanas no tienen que ser perfectas, porque grupos de humanos tienen todas estas regulaciones y normas integradas. Si tú y yo tenemos un acuerdo y tú me quedas muy mal, siempre tendrás miedo a que aparezca en tu puerta con un bate y te mate. Por lo mismo, la gente no tiende a hacerse daño. Al menos no lo intentan. Un peligro, como sea, de encaminarse a una sociedad dirigida por algoritmos es que los algoritmos no tienen miedo de que aparezcamos y les demos unos golpes. Los algoritmos hacen lo que sea que están diseñados para hacer. Sin embargo, no me preocupo mucho de eso.</span></p>
<p><span lang="ES">S: ¿Hay algo más sobre lo que desees comentar?</span></p>
<p><span lang="ES">M: Lo bueno que tenga la gente es el reflejo de lo duro que trabajen por ello. Si deseas tener una máquina que esté limpio de software maligno, lo puedes tener. Si quieres privacidad personal, es posible &#8211; muy difícil, pero posible. Y yo creo que vale la pena.</span></p>
<p><span lang="ES">&#8211;</span></p>
<p><em><span lang="ES"><strong>Entrevista hecha y editada por Sherri Davidoff (Philosecurity). </strong> Copyright 2009, derechos reservados. Traducido con permiso del autor. Artículo original en Inglés: </span><a href="http://philosecurity.org/2009/01/12/interview-with-an-adware-author" target="_blank"><span lang="ES">http://philosecurity.org/2009/01/12/interview-with-an-adware-author</span></a></em></p>
<h6 class="MsoNormal"><span lang="ES">*<em>Ads</em>: Técnica de promociones surtidas, cuyo objetivo fundamental es informar al público sobre la existencia de bien/es o servicio.</span></h6>
<h6 class="MsoNormal"><span lang="ES">*<em>Adware</em>: Cualquier programa que automáticamente ejecuta, muestra o baja publicidad al computador después de instalado el programa.</span></h6>
<h6 class="MsoNormal"><span lang="ES">*<em>Virus</em>: Malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario</span></h6>
<h6 class="MsoNormal"><span lang="ES">*<em>Scheme: </em>Lenguaje de Programación funcional. Es un dialecto de LISP.</span></h6>
<h6 class="MsoNormal"><span lang="ES">*<em>Gmail: E</em>s el servicio gratuito de correo electrónico ofrecido por Google.</span></h6>
<h6 class="MsoNormal"><span lang="ES">*<em>Ruby on Rails: </em>Framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby.</span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Kernel: </span></em><span lang="ES">Centro principal del sistema operativo, encargado de hacer interactuar el software con el hardware.</span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Bootstrapper: </span></em><span lang="ES">Un programa que puede actualizar al instalador antes de iniciar la instalación del programa.</span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Screensaver: </span></em><span lang="ES">Programa de ordenador originalmente diseñado para conservar la calidad de imagen de las pantallas de ordenador.</span><em><span lang="ES">*Exploit: </span></em><span lang="ES">Método concreto de utilización de un bug, que nos permite entrar de forma ilegítima en un sistema informático.<em></em></span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Direct Revenue: </span></em><span lang="ES">Empresa de Nueva York fundada en 2002 conocida por escribir <em>adware</em>.</span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Assembler: </span></em><span lang="ES">Programa que se encarga de traducir un fichero fuente escrito en lenguaje ensamblador a código máquina ejecutable directamente por el ordenador.</span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Interrupt: </span></em><span lang="ES">Un evento que causa que una computadora deje de hacer lo que estaba haciendo y le dé prioridad a una condición.</span></h6>
<h6 class="MsoNormal"><em><span lang="ES">*Interrupt Handler: </span></em><span lang="ES">Procesos de software ejecutados para manejar cada tipo de interruptor. </span></h6>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/entrevista-con-un-desarrollador-de-adware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los 25 errores de programación mas peligrosos</title>
		<link>http://mtycoders.com/los-25-errores-de-programacion-mas-peligrosos/</link>
		<comments>http://mtycoders.com/los-25-errores-de-programacion-mas-peligrosos/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 18:33:23 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Anuncios Interesantes]]></category>
		<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Estándares]]></category>
		<category><![CDATA[Estándares Web]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[25]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[errores]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[malicioso]]></category>
		<category><![CDATA[peligrosos]]></category>
		<category><![CDATA[penetrable]]></category>
		<category><![CDATA[problema]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[sans.org]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[symantec]]></category>
		<category><![CDATA[vulnerabilidades]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=255</guid>
		<description><![CDATA[La Agencia Nacional de Seguridad de Estados Unidos (NSA) ha ayudado, junto con mas de 30 organizaciones e individuos, a identificar los errores de programación de software más importantes que pueden llevar a hoyos de seguridad y áreas vulnerables que pueden convertirse en presas de criminales cibernéticos.
Expertos dicen que muchos programadores todavía no entienden muy [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p>La Agencia Nacional de Seguridad de Estados Unidos (NSA) ha ayudado, junto con mas de 30 organizaciones e individuos, a identificar los errores de programación de software más importantes que pueden llevar a hoyos de seguridad y áreas vulnerables que pueden convertirse en presas de criminales cibernéticos.</p>
<p>Expertos dicen que muchos programadores todavía no entienden muy bien algunos de estos errores.</p>
<p>Microsoft, NSA, Homeland Security y Symantec, entre otros, fueron quienes publicaron el documento.</p>
<p>&#8220;Necesitamos asegurarnos que todo programador sepa escribir codigo que esté libre de los 25 errores más importantes.&#8221; &#8211; Dice el director de SANS, Mason Brown.</p>
<p>Posteriormente agregó que &#8220;Luego debemos verificar que cada equipo de programación implementa procesos para buscar y arreglar estos problemas.&#8221;</p>
<p><strong>Los 25 errores de programación mas peligrosos son:</strong></p>
<ul>
<li>CWE-20: Falta de Validación de Datos Capturados</li>
<li>CWE-116: Encodificación Incorrecta y/o Falta de Escape de Salida</li>
<li>CWE-89: Falla al conservar la Estructura de Consultas SQL</li>
<li>CWE-79: Falla al conservar la Estructura de Páginas Web</li>
<li>CWE-78: Falla al conservar la Estructura de Comandos del SO</li>
<li>CWE-319: Envío de información crítica como texto plano</li>
<li>CWE-352: Envío/Recepción de Información mediante métodos &#8220;Cross-Site&#8221; (Sitios Cruzados)</li>
<li>CWE-362: Condiciones tipo &#8220;Race&#8221;</li>
<li>CWE-209: Fuga de Información al presentar Mensajes de Error</li>
<li>CWE-119: Falla al Contener Operaciones dentro de los limites de un Buffer de Memoria</li>
<li>CWE-642: Control Externo de Datos de Estados Críticos</li>
<li>CWE-73: Control Externo de Nombre de Archivo o Ruta</li>
<li>CWE-426: Ruta de Busqueda No Confirmado o Inseguro</li>
<li>CWE-94: Falta de Control sobre la Generación de Código</li>
<li>CWE-494: Descarga de Código sin Revisión de Integridad</li>
<li>CWE-404: Eliminación, Cierre o Liberación de Recursos Inapropiado</li>
<li>CWE-665: Inicializacidn Inapropiada</li>
<li>CWE-682: Cálculos Incorrectos</li>
<li>CWE-285: Control de Acceso Inadecuado</li>
<li>CWE-327: Uso de un Algorítmo de Encriptación Roto o Peligroso</li>
<li>CWE-259: Contraseñas establecidas mediante &#8216;Código Duro&#8217;</li>
<li>CWE-732: Asignación Inseguro de Permisos para Recursos Críticos</li>
<li>CWE-330: Uso Insuficiente de Valores Aleatorios</li>
<li>CWE-250: Ejecución sin Privilegios Establecidos o sin su Verificación</li>
<li>CWE-602: Aplicación de Seguridad de Servidor del lado del Cliente</li>
</ul>
<p><strong>Traducción: </strong><a href="http://www.lemiffe.com" target="_blank">LeMiffe</a><br />
<strong>Noticia:</strong> <a href="http://news.bbc.co.uk/2/hi/technology/7824939.stm" target="_blank">BBC</a><br />
<strong>Foto:</strong> <a href="http://flickr.com/photos/moty66/" target="_blank">moty66</a><br />
<strong>Artículo/Lista:</strong> <a href="http://www.sans.org/top25errors/" target="_blank">SANS</a></p>
<pre style="text-align: right;"><span style="text-decoration: underline;">LeMiffe</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/los-25-errores-de-programacion-mas-peligrosos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Eres Desarrollador .NET?</title>
		<link>http://mtycoders.com/%c2%bferes-desarrollador-net/</link>
		<comments>http://mtycoders.com/%c2%bferes-desarrollador-net/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 19:12:14 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Tips de Desarrollo]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[foundation]]></category>
		<category><![CDATA[msdn team]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sourcegear]]></category>
		<category><![CDATA[sourcesafe]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[sugerencias]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=249</guid>
		<description><![CDATA[Entonces quizá esta información te pueda interesar:
TFS: Team Foundation Server

Herramienta para Administración de Versiones y Cambios para Proyectos.
Compilación/Deployment integrado, historial de cambios, administración de elementos de trabajo.
Fácil adaptación de proyectos actuales de VS y SourceSafe a TFC: Copia, Pega, Agrega a Source Control y dale Check In.
Es usado internamente en Microsoft para el control de [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p>Entonces quizá esta información te pueda interesar:</p>
<p><strong>TFS: Team Foundation Server</strong></p>
<ul>
<li>Herramienta para Administración de Versiones y Cambios para Proyectos.</li>
<li>Compilación/Deployment integrado, historial de cambios, administración de elementos de trabajo.</li>
<li>Fácil adaptación de proyectos actuales de VS y SourceSafe a TFC: Copia, Pega, Agrega a Source Control y dale Check In.</li>
<li>Es usado internamente en Microsoft para el control de sus proyectos.</li>
</ul>
<p><strong>MSDN Team</strong></p>
<ul>
<li>Suscripción a todo el software MS Dev, OS, DB, VisualStudio y Office</li>
<li>Cuesta $2,200 USD, igual que Visual Studio solo, pero incluye todos los &#8220;extras&#8221; además de cierto numero de incidentes de sopórte con Microsoft.</li>
<li>Incluye 5 licencias de uso de TFS (5 CALs)</li>
</ul>
<p><strong>SourceGear</strong></p>
<ul>
<li>Herramientas de Control de Versiones para equipos pequeños y medianos.</li>
<li>Alternativa viable a TFS manteniendose mejor que Visual Source Safe.</li>
<li>http://www.sourcegear.com</li>
</ul>
<p><strong>SubVersion</strong></p>
<ul>
<li>Otra alternativa a TFS y SourceSafe</li>
<li>Puede ser complejo para instalar/empezar a usar pero es mejor que Visual Source Safe.</li>
<li>Tiene una integración buena con Explorer y Visual Studio.</li>
<li>El plugin para usarlo con Visual Studio se llama Visual SVN y cuesta $30 USD.</li>
</ul>
<p>Así que si la empresa para la que trabajas tiene dinero, y quiere optimizar sus sistemas y herramientas para mejorar la calidad y el tiempo de producción de software&#8230; Ya sabes que sugerirles&#8230; Microsoft Team Foundation Server!</p>
<h4 style="text-align: right;">LeMiffe</h4>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/%c2%bferes-desarrollador-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emular Safari del iPhone/iPod Touch en Windows</title>
		<link>http://mtycoders.com/emular-safari-del-iphoneipod-touch-en-windows/</link>
		<comments>http://mtycoders.com/emular-safari-del-iphoneipod-touch-en-windows/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 15:36:53 +0000</pubDate>
		<dc:creator>lemiffe</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Computadoras]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[S.O.]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[emular]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[navegador]]></category>
		<category><![CDATA[pda]]></category>
		<category><![CDATA[portatil]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://mtycoders.com/?p=237</guid>
		<description><![CDATA[Para simular el navegador de Safari del iPhone o iPod Touch en windows se recomienda seguir los siguientes pasos. Lo que hace esto es afectar el user agent por lo que páginas diseñadas para navegadores para PDA/iPhone se mostrarán somo si estuvieses en el aparato mismo.

Descarga Safari para Windows -&#62; http://www.apple.com/safari/download/
Habilita el Menu Debug (Develop [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=364886ef355f7a140a39f0a8122212b7&amp;default=http://en.gravatar.com/avatar/bd7add1e40745e37b5fda5854060f728?s=80&r=any' alt='No Gravatar' width=60 height=60/><p>Para simular el navegador de Safari del iPhone o iPod Touch en windows se recomienda seguir los siguientes pasos. Lo que hace esto es afectar el user agent por lo que páginas diseñadas para navegadores para PDA/iPhone se mostrarán somo si estuvieses en el aparato mismo.</p>
<ol>
<li>Descarga Safari para Windows -&gt; <a href="http://www.apple.com/safari/download/" target="_top">http://www.apple.com/safari/download/</a></li>
<li>Habilita el Menu Debug (Develop en 3.2+)<br />
- Edita el archivo <span style="color: #3366ff;">c:\Program Files\Safari\Safari.resources\</span><span style="color: #3366ff;">preferences.plist</span><br />
- Agrega lo siguiente justo antes de &lt;/dict&gt;:</p>
<pre>&lt;key&gt;IncludeDebugMenu&lt;/key&gt;
&lt;true/&gt;</pre>
<p>- Guarda el archivo y reinicia Safari.<br />
- Si no aparece has lo mismo en <span style="color: #3366ff;">C:\Documents and Settings\user\Application Data\Apple Computer\Safari\WebKitPreferences.plist</span></li>
<li><span style="color: #3366ff;"><span style="color: #000000;">Por último selecciona Develop &gt; User Agent &gt; Mobile Safari &#8211; iPhone o iPod Touch.</span></span></li>
<li><span style="color: #3366ff;"><span style="color: #000000;">¡Disfruta!</span></span></li>
</ol>
<p style="text-align: right;"><strong>- LeMiffe</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mtycoders.com/emular-safari-del-iphoneipod-touch-en-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
