<?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>HTML5 Fácil</title>
	<atom:link href="http://html5facil.com/feed" rel="self" type="application/rss+xml" />
	<link>http://html5facil.com</link>
	<description>Es una nueva comunidad sobre el reciente estándar de la web Html5, donde puedes encontrar tutoriales, tips, consejos, información, noticias y demás en un solo lugar.</description>
	<lastBuildDate>Mon, 20 May 2013 16:10:19 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Digan y hagan  lo que sea W3C si va a implementar DRM en HTML</title>
		<link>http://html5facil.com/noticias/digan-y-hagan-lo-que-sea-w3c-si-va-a-implementar-drm-en-html</link>
		<comments>http://html5facil.com/noticias/digan-y-hagan-lo-que-sea-w3c-si-va-a-implementar-drm-en-html#comments</comments>
		<pubDate>Fri, 17 May 2013 17:12:38 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[alianzas]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[DRM]]></category>
		<category><![CDATA[EME]]></category>
		<category><![CDATA[firmas]]></category>
		<category><![CDATA[hollyweb]]></category>
		<category><![CDATA[protestas]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[W3E]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5131</guid>
		<description><![CDATA[Desde la creación del copyright nadie había tenido problema alguno al reclamar un objeto, pero actualmente la disputa por proteger éste mediante Digital Rights Management (DRM) y evitar abusos ha sido muy debatida. Pese a todos los enfrentamientos, se ha propuesto integrar DRM en HTML5 como un estándar en el World Wide Web Consortium (W3C), [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://html5facil.com/wp-content/uploads/2013/05/DRM-key.jpg"><img class="aligncenter  wp-image-5133" alt="DRMKey" src="http://html5facil.com/wp-content/uploads/2013/05/DRM-key.jpg" width="480" height="360" /></a></p>
<p><span style="text-align: justify;">Desde la creación del copyright nadie había tenido problema alguno al reclamar un objeto, pero actualmente la disputa por proteger éste mediante </span><i style="text-align: justify;">Digital Rights Management</i><span style="text-align: justify;"> (<strong>DRM</strong>) y evitar abusos ha sido muy debatida.</span></p>
<p style="text-align: justify;">Pese a todos los enfrentamientos, se ha propuesto integrar DRM en HTML5 como un estándar en el World Wide Web Consortium (<strong>W3C</strong>), con el nombre de <b>“<a href="https://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media-fpwd.html">Encrypted Media Extensions</a>” (EME).</b></p>
<p style="text-align: justify;">Ante este anuncio la Electronic Frontier Foundation (<strong>EFF</strong>) dijo: “<i>Su adopción sería un desarrollo calamitoso, y debe ser detenido</i>”.</p>
<p style="text-align: justify;">Por otro lado y al igual que la EFF, más de 26.700 personas han firmado para impedir tal cosa estándar.</p>
<p style="text-align: justify;">Ya sabemos que la unión hace la fuerza y anteriormente muchos usuarios internautas se unieron y derrotaron SOPA y PIPA. ¿Por qué no tratar de hacer lo mismo? Es por ello que La EFF ha publicado un artículo donde expone un llamado a la W3C y las organizaciones que apoyan la propuesta a no dar soporte y mucho menos implementar DRM en HTML5 y llama a todo aquel opositor a firmar en pro de abolir el estándar.</p>
<blockquote>
<p style="text-align: justify;"><em>Hacemos un llamado a la World Wide Web Consortium (W3C) y a los miembros de sus organizaciones para rechazar la propuesta llamada Extensiones Multimedia Cifradas (EME), que incorporaría soporte para la Gestión Digital de Restricciones (DRM) en HTML.</em><i></i></p>
<p style="text-align: justify;"><em>EME sería un paso atrás irreversible por la libertad en Internet. Sería respaldar y permitir modelos de negocio sin ética y restringir a los usuarios, sometiéndolos a determinadas empresas de comunicación a ciertas condiciones previsa para toda la ciudadanía Web. Así como Flash y Silverlight finalmente están muriendo, no hay que sustituirlos por una última fantasía de control de los gigantes de los medios de comunicación.</em><i></i></p>
<p style="text-align: justify;"><em>Además, EME contradice los valores fundamentales de la W3C. Sería obstaculizar la interoperabilidad mediante el fomento de la proliferación de plugins de DRM. Sería ir en contra del principio de la W3C de mantener la web libre de regalías – esto es simplemente una puerta trasera para las compañías de medios para requerir software propio. Es la ignorancia deliberada de fingir lo contrario sólo porqué la propuesta no menciona determinadas tecnologías o sistemas DRM por su nombre.</em><i></i></p>
</blockquote>
<p style="text-align: justify;">Las grandes empresas aliadas a la W3E en pro de DRM son Google, Microsoft y Netflix, éstas saben que DRM es rechazado, y aún así insisten en que EME no es DRM pero lo peor del caso es que a nivel técnico EME no es DRM pero sí define un marco para instalar un sistema de DRM o “contenido protegido” en la web.</p>
<p style="text-align: justify;"> Manu Sporny, miembro del grupo de trabajo de HTML, también rechaza la propuesta y menciona que la especificación EME explica la arquitectura para instalar un mecanismo de plug-ins de DRM.</p>
<blockquote>
<p style="text-align: justify;"><i>Los plugins son algo perjudicial para la interoperabilidad, es inevitable que los creadores de estos no sean capaces de dar soporte a todas las plataformas todo el tiempo. Algunas personas podrán ver el contenido, y otras no</i>.</p>
</blockquote>
<p style="text-align: justify;">La analogía que utilizó fue que es como cuando se requiere descargar e instalar Flash, Silverlight o algún otro sistema para visualizar un contenido, si ese plugin no está disponible para tu dispositivo, no puedes acceder al material.</p>
<p style="text-align: center;"><a href="http://html5facil.com/wp-content/uploads/2013/05/drm-660x350.jpg"><img class="aligncenter  wp-image-5132" alt="DRM" src="http://html5facil.com/wp-content/uploads/2013/05/drm-660x350-600x318.jpg" width="420" height="223" /></a></p>
<p style="text-align: justify;">La EFF menciona que EME se deslinda de toda responsabilidad en cuanto de compatibilidad se hable, haciendo que los sitios web deban adquirir software o incluso hardware propietario para operaciones especiales; afirmando lo siguiente:</p>
<blockquote>
<p style="text-align: justify;"><i>Esto es exactamente el opuesto a la razón por la que el W3C existe. W3C es un lugar para crear estándares comprensivos y públicos que garanticen interoperabilidad, no facilitar una explosión de nuevo software mutuamente incompatibles y de sitios y servicios que sólo pueden ser vistos desde dispositivos particulares o aplicaciones. Pero EME es una propuesta para llevar exactamente esta dinámica disfuncional a HTML5</i>.</p>
</blockquote>
<p style="text-align: justify;">Los servicios que brinda Netflix dependen actualmente de plug-ins y software aparte para emitir sus contenidos a través de internet y poder protegerlos y cumplir con los contratos con los estudios. Estos servicios no pueden optar por HTML5, porque éste no ofrece ningún sistema para transmitir video de esta manera, con lo que se espera cambiar con DRM.</p>
<p style="text-align: justify;">Según la idea no es crear un estándar de DRM, sino entregar herramientas necesarias para un sistema genérico de cifrado.</p>
<p style="text-align: justify;">Creemos que el gran problema sería la implementación nula en un navegador de código abierto. ¿Por qué?</p>
<ul style="text-align: justify;">
<li>Nos aseguran que gente cercana no obtendrá el código y mucho menos pueda lucrar con él.</li>
<li>Burlar la seguridad. Siempre de una u otra forma se encuentra la manera de saltarnos la barda.</li>
<li>¿Y si navegadores como Firefox no pueden tener acceso a Netflix o YouTube posteriormente?</li>
<li>Protección en el hardware (disponible solo para móviles) ¿Y las PC’s?</li>
</ul>
<p style="text-align: justify;">En fin!.. La propuesta se sigue discutiendo, ya sabremos a futuro que pasará con esta.</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/digan-y-hagan-lo-que-sea-w3c-si-va-a-implementar-drm-en-html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>¿Quieres ir a CPMX4? HTML5Fácil te regalan cupón del 50% de descuento</title>
		<link>http://html5facil.com/noticias/quieres-ir-a-cpmx4-html5facil-te-regalan-cupon-del-50-de-descuento</link>
		<comments>http://html5facil.com/noticias/quieres-ir-a-cpmx4-html5facil-te-regalan-cupon-del-50-de-descuento#comments</comments>
		<pubDate>Thu, 09 May 2013 17:42:28 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[campus-party]]></category>
		<category><![CDATA[CPMX4]]></category>
		<category><![CDATA[cupon]]></category>
		<category><![CDATA[Descuento]]></category>
		<category><![CDATA[Noticia]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5125</guid>
		<description><![CDATA[Hola chicos! Como ya saben y ha sido confirmado, Campus Party México se celebrará del 30 de Julio al 4 de Agosto. Como comunidad realmente queremos compartir personalmente con nuestros seguidores una semana geek increíble, llena de dinámicas, experiencias, pláticas, anécdotas y más. Ya que Campus Party es el mayor festival tecnológico donde se une innovación, [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_4998" class="wp-caption aligncenter" style="width: 310px"><a href="http://html5facil.com/wp-content/uploads/2013/02/CP.png"><img class="size-medium wp-image-4998" alt="¿Quieres ir a CPMX4? HTML5Fácil te regalan cupón del 50% de descuento " src="http://html5facil.com/wp-content/uploads/2013/02/CP-300x156.png" width="300" height="156" /></a><p class="wp-caption-text">¿Quieres ir a CPMX4? HTML5Fácil te regalan cupón del 50% de descuento</p></div>
<p>Hola chicos!</p>
<p style="text-align: justify;">Como ya saben y ha sido confirmado, <strong>Campus Party México</strong> se celebrará del 30 de Julio al 4 de Agosto. Como comunidad realmente queremos compartir personalmente con nuestros seguidores una <strong>semana geek</strong> increíble, llena de dinámicas, experiencias, pláticas, anécdotas y más.</p>
<p style="text-align: justify;">Ya que<b> Campus Party</b> es el mayor festival tecnológico donde se une innovación, creatividad, ciencia y entretenimiento digital creemos que es una buena plataforma para difundir aún más el conocimiento, conocer gente interesante, hacer nuevos amigos y hasta tener colaboradores de trabajo.</p>
<p>Son por todas estas razones que #<strong>CPMx4</strong> y <strong>HTML5Fáci</strong>l te regalan un cupón de <strong>descuento del 50%</strong> para que asistas al evento tecnológico del año y no te quedes fuera. Recalcamos que aparte de todas las actividades que se realizan dentro del evento, como comunidad <strong>tendremos sorpresas </strong>y<strong> dinámicas</strong> para compartir y pasar un rato más que agradable.</p>
<p>Tan solo pedimos un Tweet para que demás personas puedan enterarse como el siguiente:</p>
<blockquote><p>Gracias a @html5facil, @ninjacodetv  y #CPmx4 tengo 50% de descuento en la compra de mi entrada.</p></blockquote>
<p style="text-align: justify;">El código para obtenerlo es:</p>
<blockquote>
<p style="text-align: justify;"><strong>cpmx4comunidadesmayo</strong></p>
</blockquote>
<p style="text-align: justify;">También puedes participar para ganar un pase totalmente gratis, aprovecha, tan solo tienes que dar click al siguiente enlace &#8220;<a title="Ganar un pase gratis" href="http://campus-party.com.mx/webapp/participante/canal/41O1tvhqv1f0256bOXOX"><strong>Ganar un pase gratis</strong></a>&#8220;.</p>
<p style="text-align: justify;">No te quedes fuera, <strong>invita a todos tus amigos</strong> y nos vemos en <strong>Campus Party edición Latinoamérica</strong>.  ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/quieres-ir-a-cpmx4-html5facil-te-regalan-cupon-del-50-de-descuento/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un Sponsor con mucho sabor a PHP. ¡Gracias ServerGrove!</title>
		<link>http://html5facil.com/noticias/un-sponsor-con-mucho-sabor-a-php-gracias-servegrove</link>
		<comments>http://html5facil.com/noticias/un-sponsor-con-mucho-sabor-a-php-gracias-servegrove#comments</comments>
		<pubDate>Tue, 30 Apr 2013 15:40:47 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Nodejs]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[servergrove]]></category>
		<category><![CDATA[Servidor]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5117</guid>
		<description><![CDATA[¿Sponsor con mucho sabor a PHP? Este es uno de esos post que nos gustaría publicar todos los dias, pues los sponsors alargan la vida de los proyectos y permite que el contenido llegue a mas personas. Estando reunidos y buscando alguna solución de VPS pues por la cantidad de usuarios, que agradecemos a todos y cada [...]]]></description>
				<content:encoded><![CDATA[<h4 style="text-align: justify;">¿Sponsor con mucho sabor a PHP?</h4>
<p>Este es uno de esos post que nos gustaría publicar todos los dias, pues los sponsors alargan la vida de los proyectos y permite que el contenido llegue a mas personas. Estando reunidos y buscando alguna solución de VPS pues por la cantidad de usuarios, que agradecemos a todos y cada uno de ustedes, que frecuentan <a title="html5facil" href="http://html5facil.com">HTML5 Fácil</a> necesitábamos una buena opción y que se acomodara a la inversión del fundador. Pues en el camino nos encontramos con <a href="http://servergrove.com">ServeGrove</a> un equipo de trabajo muy profesional, efectivo y dispuesto a colaborar. Por esto, y no por motivos publicitarios, queremos mostrar otra opción de tantas, pero confiable y con gran soporte para PHP y con una plataforma propia para este fin.</p>
<h4 style="text-align: justify;"><span style="font-size: 1em;">¡Pero!, ¿Qué es ServerGrove?</span></h4>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/SG.jpg"><img class="size-thumbnail wp-image-5119 alignleft" alt="SGLogo" src="http://html5facil.com/wp-content/uploads/2013/04/SG-100x100.jpg" width="100" height="100" /></a></p>
<p style="text-align: justify;">Empresa de <b>hosting</b> que aunque no es la más grande trabaja para ser la mejor; muchas empresas pierden calidad a medida que se agrandan.</p>
<h4 style="text-align: justify;">Servicios que ofrecen</h4>
<p style="text-align: justify;"><b>ServerGrove</b> cuenta con oficinas centrales en Coral Gables, Florida, Estados Unidos. Son muy <b>activos</b> en su <b>comunidad</b>, y <b>apoyan</b> innumerables <b>iniciativas y proyectos open source</b>. Todos los empleados en la empresa dedican 10% de su tiempo haciendo <b>contribuciones en tecnologías</b> y proyectos en los que se encuentran relacionados.</p>
<p style="text-align: justify;">Orgullosos de sus <b>servidores optimizados</b>, una <b>red segura</b> y redundante, así como los <i>backups</i> que realizan diaria y gratuitamente, <b>servidores virtuales seguros</b>, escalables y fáciles de usar para desarrolladores, diseñadores, y emprendedores. Y ni que hablar del panel de control, el cual combina la facilidad de uso de hosting compartido con el poder de un VPS.</p>
<p style="text-align: justify;"><p><a href="http://html5facil.com/noticias/un-sponsor-con-mucho-sabor-a-php-gracias-servegrove"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<h4>Servicios, planes y costos</h4>
<div align="center">
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="150">
<p align="center">Servicio</p>
</td>
<td width="150">
<p align="center"><a href="http://servergrove.com/sharedhosting/es">Hosting Compartido</a></p>
</td>
<td width="150">
<p align="center"><a href="http://servergrove.com/vps/es">Servidores VPS</a></p>
</td>
<td width="150">
<p align="center"><a href="http://www.mongohosting.com/">Hosting MongoDB</a></p>
</td>
</tr>
<tr>
<td width="150">
<p align="center">Costo</p>
</td>
<td width="150">
<p align="center">desde $65 al año</p>
</td>
<td width="150">
<p align="center">desde $20 al mes</p>
</td>
<td width="150">
<p align="center">desde $10 al mes</p>
</td>
</tr>
<tr>
<td width="150">
<p align="center">Descripción</p>
</td>
<td valign="top" width="150">
<div>
<ul>
<li>Pre-configurado para PHP, Symfony y ZF</li>
<li>Instalación y configuración con Maestro para Symfony 2.x y symfony 1.x</li>
<li>Acceso SSH (no incluido en planes Mini)</li>
<li>PHP 5.3 o PHP 5.2</li>
<li>Acceso FTP</li>
<li>Panel de Control Plesk</li>
<li>MySQL vía SSH, phpMyAdmin y acceso remoto</li>
<li>Envío fácil de emails y webmail</li>
<li>Panel de Control en español fácil de usar</li>
<li>Acceso root</li>
<li>Amplia experiencia en hosting de PHP</li>
<li>Escalable bajo demanda</li>
<li>Cache APC activada</li>
<li>Conectividad redundante, 100% de conexión garantizada</li>
<li>Linux pre-configurado con lo último de PHP para ejecutar aplicaciones de ZF o Symfony.</li>
</ul>
</div>
</td>
<td valign="top" width="150">
<div>
<div>
<ul>
<li>Panel de Control en español fácil de usar</li>
<li>Acceso root</li>
<li>Amplia experiencia en hosting de PHP</li>
<li>Escalable bajo demanda</li>
<li>Cache APC activada</li>
<li>Conectividad redundante, 100% de conexión garantizada</li>
<li>Linux pre-configurado con lo último de PHP para ejecutar aplicaciones de ZF o Symfony.</li>
</ul>
</div>
</div>
</td>
<td valign="top" width="150">
<div>
<ul>
<li>· Acceso vía panel de control y/o cliente MongoDB</li>
<li>· Estadísticas históricas</li>
<li>· Sistema de Backups</li>
<li>· Editor de base de datos Web</li>
<li>· Escalable bajo demanda</li>
<li>· Gestión de usuarios</li>
<li>· Gestión de conexiones</li>
<li>· Utilidades para importar/exportar</li>
</ul>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 style="text-align: justify;"><b>Conectividad</b></h4>
<p style="text-align: justify;">A raíz de malas experiencias de conectividad con un solo proveedor, deciden en el año 2010 utilizar un modelo de conexión diferente y que al día de hoy no han tenido ningún problema gracias a la <b>máxima redundancia</b> que hay en todo momento. Tales proveedores son:</p>
<ul style="text-align: justify;">
<li><b>Verizon</b></li>
<li><b>Level 3</b></li>
<li><b>AT&amp;T</b></li>
</ul>
<p style="text-align: justify;">Algunos datos interesantes:</p>
<ul style="text-align: justify;">
<li>Acceso directo al backbone de Internet gracias a la ubicación de nuestro datacenter.</li>
<li>Acceso a una red de más de 100 proveedores.</li>
<li>La mejor conexión disponible en el mercado, muy superior a la conexión ofrecida por la mayoría de los proveedores de hosting.</li>
</ul>
<h4 style="text-align: justify;"><b>Servidores</b></h4>
<p style="text-align: justify;">Los <b>mejores servidores</b> para el mejor funcionamiento; utilizan:</p>
<ul style="text-align: justify;">
<li>Servidores de marca especialmente configurados para máxima velocidad y potencia.</li>
<li>El mejor hardware disponible para servicio de hosting.</li>
<li>Los servidores son sacados de circulación en rotación permanente.</li>
<li>Todos los servidores incluyen doble fuente de alimentación conectados a circuitos separados.</li>
</ul>
<h4 style="text-align: justify;"><b>Energía y Medio ambiente</b></h4>
<p style="text-align: justify;">El NAP de las Américas está diseñado para <b>soportar huracanes de categoría 5</b>, incluye los <b>sistemas más confiables y avanzados</b> en el mundo. Tanto que los técnicos pueden realizar mantenimiento en cualquier parte sin impactar las operaciones normales. El diseño ofrece <b>100% de disponibilidad</b> en los <b>sistemas de energía y refrigeración</b>.</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="302">
<p align="center">Energía</p>
</td>
<td valign="top" width="287">
<p align="center">Medio ambiente</p>
</td>
</tr>
<tr>
<td valign="top" width="302">Corriente alterna con 100% de disponibilidad garantizada</td>
<td valign="top" width="287">5 sistemas redundantes de refrigeración para 2000 toneladas de agua</td>
</tr>
<tr>
<td valign="top" width="302">Sistemas de energía redundantes conectadas a múltiples sub estaciones</td>
<td valign="top" width="287">Humedad constante a 45% &#8211; 55%</td>
</tr>
<tr>
<td valign="top" width="302">Dos conexiones de 13,200 voltios</td>
<td valign="top" width="287">Sistemas de filtrado de aire con 4 ubicaciones en todo el edificio</td>
</tr>
<tr>
<td valign="top" width="302">Circuitos de corriente alterna disponibles en incrementos de 10 y 20 amps</td>
<td valign="top" width="287">Sistemas electrónicos de detección y monitoreo</td>
</tr>
<tr>
<td valign="top" width="302">Circuitos de corriente continua disponibles en incrementos de 20 amps y 48 voltios</td>
<td valign="top" width="287">Detectores de humo y calor disponibles en áreas críticas</td>
</tr>
<tr>
<td valign="top" width="302">Energía estable y sin interrupciones a través de 6 sistemas HiTEC los cuales proveen un tiempo de transferencia 10 veces más rápido que los UPS comúnmente encontrados en otros datacenters</td>
<td valign="top" width="287">Sistema de extinción de incendios TotalPac sin agua</td>
</tr>
<tr>
<td valign="top" width="302">Cada unidad HiTEC provee 2 megawatts para un total de 12 megawatts</td>
<td valign="top" width="287">Temperatura constante a 72 grados F o 21 Celcius</td>
</tr>
</tbody>
</table>
</div>
<h4 style="text-align: justify;">Contacto</h4>
<p style="text-align: justify;">ServerGrove Networks Inc.<br />
1390 S. Dixie Hwy<br />
Suite 2218<br />
Coral Gables, FL. 33146</p>
<p style="text-align: justify;">Llamadas sin cargo (dentro USA): (800) 511-1855<br />
Para llamadas internacionales: (786) 999-6585<br />
En las redes sociales como <a href="https://twitter.com/servergrove">Twitter</a> y <a href="https://www.facebook.com/servergrove">Facebook</a></p>
<h4 style="text-align: justify;">Agradecimiento</h4>
<p style="text-align: justify;">Finalmente nos queda agradecer inmensamente a <b>ServerGrove</b> por ser patrocinador oficial de <b>hosting</b> para <b>HTML5Fácil</b> y <b>NinjaCodeTv</b>. Como comunidad los recomendamos ampliamente ya que el <b>trato</b> que nos han dado ha sido <b>excepcional</b> y como usuario de un servicio lo único que pedimos es el <b>mejor soporte y atención</b>, es por ello que realizamos este post en honor a todo su equipo de trabajo y el trato que amablemente brindan.</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/un-sponsor-con-mucho-sabor-a-php-gracias-servegrove/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resumen: PHP Day el primer evento dedicado a PHP en Puebla</title>
		<link>http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla</link>
		<comments>http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla#comments</comments>
		<pubDate>Thu, 25 Apr 2013 04:02:16 +0000</pubDate>
		<dc:creator>jimmylagp</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[conferencia]]></category>
		<category><![CDATA[Evento]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Noticia]]></category>
		<category><![CDATA[php day]]></category>
		<category><![CDATA[Puebla]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5109</guid>
		<description><![CDATA[¿Qué fue el #PHPDayPuebla? Fue un evento gratuito organizado por CESoLMX, Hackers &#38; Founders Puebla y Comunidad PHP Puebla con el apoyo del Hub Emprendedor. Cuyo objetivo es dar a conocer las mejores prácticas, Frameworks y aplicaciones del lenguaje de programación más usado en Internet y otras herramientas utilizadas en el día a día de todo desarrollador Web. La experiencia Como conferencista en el [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_5116" class="wp-caption aligncenter" style="width: 310px"><a href="http://html5facil.com/wp-content/uploads/2013/04/logo-phpdaypuebla.png"><img class="size-medium wp-image-5116" alt="Resumen: PHP Day el primer evento dedicado a PHP en Puebla" src="http://html5facil.com/wp-content/uploads/2013/04/logo-phpdaypuebla-300x193.png" width="300" height="193" /></a><p class="wp-caption-text">Resumen: PHP Day el primer evento dedicado a PHP en Puebla</p></div>
<h4>¿Qué fue el #PHPDayPuebla?</h4>
<p style="text-align: justify;">Fue un evento <strong>gratuito</strong> organizado por <a href="http://www.cesolmx.org/">CESoLMX</a>, <a href="http://www.hfpuebla.org/">Hackers &amp; Founders Puebla</a> y <a href="http://www.comunidadphppuebla.com/">Comunidad PHP Puebla</a> con el apoyo del <a href="http://www.hubemprendedor.mx/">Hub Emprendedor</a>. Cuyo objetivo es dar a conocer las mejores prácticas, Frameworks y aplicaciones del lenguaje de programación más usado en Internet y otras herramientas utilizadas en el día a día de todo desarrollador Web.</p>
<h4 style="text-align: justify;">La experiencia</h4>
<p style="text-align: justify;">Como conferencista en el evento, puedo asegurar que fue muy grata la experiencia; la cantidad de personas que asistieron a mis 2 conferencias fue mucho más de lo que pensé. Tener el honor de haber sido el primer conferencista suponía dar lo mejor y el <i>feedback</i> que he recibido en Twitter es estupendo.</p>
<h4 style="text-align: justify;">Conocer nuevas personas</h4>
<p style="text-align: justify;">Algo que siempre sucede en eventos de tecnología, es que siempre conoces nuevas personas con las cuales puedes crear una amistad y red de contactos para futuros proyectos o tener a quien preguntar dudas. Esta actividad socialista no solo es para ponentes o talleristas, sino también para los mismos asistentes, los cuales podrían conocer al siguiente amigo con quien podrían lograr un proyecto sustentable a futuro.</p>
<h4>Fotografias del evento</h4>

<a href='http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/attachment/12018_574499955901605_26881315_n' title='12018_574499955901605_26881315_n'><img width="100" height="100" src="http://html5facil.com/wp-content/uploads/2013/04/12018_574499955901605_26881315_n-100x100.jpg" class="attachment-thumbnail" alt="12018_574499955901605_26881315_n" /></a>
<a href='http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/attachment/524118_574499979234936_1140654894_n' title='524118_574499979234936_1140654894_n'><img width="100" height="100" src="http://html5facil.com/wp-content/uploads/2013/04/524118_574499979234936_1140654894_n-100x100.jpg" class="attachment-thumbnail" alt="524118_574499979234936_1140654894_n" /></a>
<a href='http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/attachment/556000_574500389234895_1229230769_n' title='556000_574500389234895_1229230769_n'><img width="100" height="100" src="http://html5facil.com/wp-content/uploads/2013/04/556000_574500389234895_1229230769_n-100x100.jpg" class="attachment-thumbnail" alt="556000_574500389234895_1229230769_n" /></a>
<a href='http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/attachment/31551_398355136938095_1227981766_n' title='31551_398355136938095_1227981766_n'><img width="100" height="100" src="http://html5facil.com/wp-content/uploads/2013/04/31551_398355136938095_1227981766_n-100x100.jpg" class="attachment-thumbnail" alt="31551_398355136938095_1227981766_n" /></a>
<a href='http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/attachment/625453_574500152568252_143089678_n' title='625453_574500152568252_143089678_n'><img width="100" height="100" src="http://html5facil.com/wp-content/uploads/2013/04/625453_574500152568252_143089678_n-100x100.jpg" class="attachment-thumbnail" alt="625453_574500152568252_143089678_n" /></a>
<a href='http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/attachment/20786_574499715901629_4809575_n' title='PHP Day Puebla'><img width="100" height="100" src="http://html5facil.com/wp-content/uploads/2013/04/20786_574499715901629_4809575_n-100x100.jpg" class="attachment-thumbnail" alt="PHP Day Puebla" /></a>

]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/resumen-php-day-el-primer-evento-dedicado-a-php-en-puebla/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faye. Provee servidores de mensajes para Node.js y Rubí mediante el protocolo Bayeux</title>
		<link>http://html5facil.com/noticias/faye-provee-servidores-de-mensajes-para-node-js-y-rubi-mediante-el-protocolo-bayeux</link>
		<comments>http://html5facil.com/noticias/faye-provee-servidores-de-mensajes-para-node-js-y-rubi-mediante-el-protocolo-bayeux#comments</comments>
		<pubDate>Tue, 23 Apr 2013 04:14:58 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[comunicacion]]></category>
		<category><![CDATA[faye]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[Nodejs]]></category>
		<category><![CDATA[Noticia]]></category>
		<category><![CDATA[protocolo]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5099</guid>
		<description><![CDATA[¿Qué es Bayeux? Bayeux es un protocolo de transporte de mensajes asíncronos (principalmente a través de HTTP), con baja latencia entre un servidor y un cliente web. Los mensajes se enrutan a través de canales nombrados y pueden ser entregados en 3 formas: servidor al cliente cliente al servidor cliente a cliente (a través del servidor) [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://html5facil.com/wp-content/uploads/2013/04/Faye.png"><img class="aligncenter size-medium wp-image-5105" alt="Faye. Provee servidores de mensajes para Node.js y Rubí mediante el protocolo Bayeux" src="http://html5facil.com/wp-content/uploads/2013/04/Faye-300x143.png" width="300" height="143" /></a></p>
<h4 style="text-align: justify;">¿Qué es Bayeux?</h4>
<p style="text-align: justify;"><a title="Documentación Bayeux" href="http://svn.cometd.com/trunk/bayeux/bayeux.html">Bayeux</a> es un <b>protocolo de transporte</b> de <b>mensajes asíncronos</b> (principalmente a través de <b>HTTP</b>), con <b>baja latencia</b> <b>entre un servidor y un cliente web</b>. Los mensajes se enrutan a través de canales nombrados y pueden ser entregados en 3 formas:</p>
<ul style="text-align: justify;">
<li>servidor al cliente</li>
<li>cliente al servidor</li>
<li>cliente a cliente (a través del servidor)</li>
</ul>
<h4 style="text-align: justify;">Objetivo</h4>
<p style="text-align: justify;">El principal objetivo es apoyar las interacciones bidireccionales entre las respuestas de los clientes web. Por ejemplo, con el uso de <b>Ajax</b> y el <b>servidor web</b>.</p>
<p style="text-align: justify;"><b>Bayeux</b> busca <b>reducir la complejidad</b> del desarrollo de aplicaciones web Comet, al permitir a los ejecutores interoperar más fácilmente, para resolver la distribución de mensajes comunes y problemas de enrutamiento, y <b>proporcionar mecanismos</b> de <b>mejoras incrementales</b> y extensiones.</p>
<h4 style="text-align: justify;">Faye</h4>
<p style="text-align: justify;"><a title="Página Oficial Faye" href="http://faye.jcoglan.com/"><b>Faye</b></a> es un sistema de <b>mensajería de publicación</b> y <b>suscripción</b> basado en el protocolo <a href="http://svn.cometd.com/trunk/bayeux/bayeux.html"><b>Bayeux</b></a>, el cual proporciona servidores de mensajes para <a href="http://nodejs.org/"><b>Node.js</b></a>, <a href="http://www.ruby-lang.org/"><b>Rubí</b></a> y clientes para su uso en el servidor y en los principales navegadores web.</p>
<h4 style="text-align: justify;">Primeros pasos en Faye</h4>
<p style="text-align: justify;"><em>Iniciando el servidor</em></p>
<pre class="brush: jscript; title: ; notranslate">
var Faye   = require('faye'),
server = new Faye.NodeAdapter({mount: '/'});

server.listen(8000);
</pre>
<p><i>Enviando mensajes</i></p>
<pre class="brush: jscript; title: ; notranslate">
client.publish('/messages', {
text: 'Hello world'
});
</pre>
<h4 style="text-align: justify;">Descarga Faye</h4>
<p><b>Faye</b> es <b>software de código abierto</b> y puedes seguir el desarrollo del mismo en la <a href="http://github.com/faye/faye"><b>página GitHub</b></a> .</p>
<h4 style="text-align: justify;">Descarga de Node.js y navegadores web</h4>
<p>La versión <b>Node.js</b> está disponible a través de la<b> NGP</b>. Este paquete contiene una copia del cliente de navegador, mediante el <b>servidor Faye</b> cuando se ejecuta.</p>
<pre style="padding-left: 30px;">npm instalación faye</pre>
<p style="text-align: justify;">El Paquete de la <a href="http://faye.jcoglan.com/assets/faye.0-8-9.zip"><b>Versión 0.8.9 JavaScript</b></a> contiene:</p>
<ul style="text-align: justify;">
<li><code>nodo / faye-Node.js</code></li>
<li><code>navegador / faye-browser.js</code></li>
<li><code>navegador / faye-browser-min.js</code></li>
<li><code>navegador / faye-browser-min.js.map</code></li>
</ul>
<p style="text-align: justify;">Para utilizar <b>Faye como Node.js</b>, sólo hay que poner estos dos archivos en un directorio, y cargar el componente del lado del servidor usando <code>require ('. / ruta / al / faye-node')</code>. El archivo <code>faye-browser-min.js</code> contiene el cliente del explorador web, en Faye servirá automáticamente.</p>
<p style="text-align: justify;">El cliente de navegador puede utilizarse de forma independiente con otros servidores de <b>Bayeux</b> como <a href="http://cometd.org/"><b>CometD</b></a> (inclyendo <code>faye-browser-min.js</code> en su página web para usarlo).</p>
<h4 style="text-align: justify;">Descarga de Rubí</h4>
<p style="text-align: justify;">Para las plataformas de <b>Ruby</b>, <b>Faye</b> es <b>fácilmente instalable</b> a través <b>RubyGems</b>.</p>
<pre style="padding-left: 30px;">gem install faye</pre>
<p style="text-align: justify;">Este paquete también <b>incluye el cliente de navegador</b> mediante el servidor <b>Faye</b> cuando se ejecuta.</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/faye-provee-servidores-de-mensajes-para-node-js-y-rubi-mediante-el-protocolo-bayeux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modifica tu sitio web con Barley mediante el Editor WYSIWYG.</title>
		<link>http://html5facil.com/noticias/modifica-tu-sitio-web-con-barley-mediante-el-editor-wysiwyg</link>
		<comments>http://html5facil.com/noticias/modifica-tu-sitio-web-con-barley-mediante-el-editor-wysiwyg#comments</comments>
		<pubDate>Tue, 23 Apr 2013 04:11:03 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[barley]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[WYSIWYG]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5100</guid>
		<description><![CDATA[Imaginas poder realizar cualquier tipo de cambio, como agregar, modificar o eliminar el contenido e imágenes directamente desde cualquier página en un sitio sin necesidad de iniciar sesión en WordPress o cualquier otro sistema de administración. Actualmente ya es posible gracias a Barley. ¿Qué es Barley? Barley  comenzó como un producto offshot de Plain, una [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Imaginas poder realizar cualquier tipo de cambio, como agregar, modificar o eliminar el contenido e imágenes directamente desde cualquier página en un sitio sin necesidad de iniciar sesión en WordPress o cualquier otro sistema de administración. Actualmente ya es posible gracias a <b>Barley</b>.</p>
<h4 style="text-align: justify;">¿Qué es Barley?</h4>
<p style="text-align: justify;"><b>Barley</b>  comenzó como un producto <b>offshot de Plain</b>, una empresa fundada por <b>Colin Devroe</b>, <b>Jeff Johns </b>y <b>Kyle Ruane</b>; la idea era permitir la <b>edición en línea</b> a través de <b>cualquier sitio web</b>.</p>
<p style="text-align: justify;"><b>Devroe</b> dice que la inspiración para crear <b>Barley</b> surgió cuando él y Ruane se dieron cuenta de que un vendedor fue capaz de hacer el <b>cambio en su sitio</b> sin necesidad de utilizar una forma definida con un <b>editor WYSIWYG</b>. El título, las fotos, el cuerpo del texto, y cualquier otra cosa podían ser <b>editados</b> con <b>un solo toque</b> y además funciona en <b>cualquier plataforma</b> (PC, Smartphone y tableta).</p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/barley_editor_collage-730x768-1.jpg"><img class="aligncenter size-large wp-image-5101" alt="barleyEditor" src="http://html5facil.com/wp-content/uploads/2013/04/barley_editor_collage-730x768-1-570x600.jpg" width="570" height="600" /></a></p>
<h4 style="text-align: justify;">Estructura</h4>
<p style="text-align: justify;">La plantilla de Barley se creó utilizando sólo <b>HTML</b>, <b>JS</b> y <b>CSS</b> como normalmente se desarrolla para trabajar en el navegador. La estructura es la siguiente:</p>
<p style="text-align: justify;">- /styles<br />
-/javascripts<br />
-/images<br />
- index.html<br />
- about.html<br />
- blog.html<br />
- post.html<br />
- favicon.ico</p>
<h4 style="text-align: justify;">Frameworks</h4>
<p style="text-align: justify;">Puedes sentirte <b>libre de usar o no un framework</b> para tus plantillas, ya que <b>Barley</b> <b>no limita</b> a nadie con los Frameworks  que te gustaría utilizar.</p>
<h4 style="text-align: justify;">Editando con Barley</h4>
<p style="text-align: justify;">Vamos a ver un ejemplo de cómo pueden editar en tu plantilla, ya que puedes elegir que parte editar y que parte no. <b>Barley</b> <b>lee atributos HTML</b> en todos los elementos para decidir dos cosas principales:</p>
<p style="text-align: justify;">1) ¿Es el elemento capaz de ser editado?</p>
<p style="text-align: justify;">2) ¿Qué herramientas puede utilizar el autor para editar esos elementos?</p>
<p style="text-align: justify;">Aquí está el código <b>HTML</b> que utilizamos para determinar que muestra un ejemplo de etiquetas <b>H1</b>.</p>
<pre style="padding-left: 30px;">h1 data-barley="main_title" data-barley-editor="mini"</pre>
<p style="text-align: justify;">Vemos que <b>Barley</b> está mostrando que la etiqueta <b>H1</b> en esta página puede ser editable por el autor utilizando la propiedad data-barley-editor y el valor mini. El valor main_title en el atributo se utiliza para registrar los cambios a esa etiqueta para un dominio específico, es decir, todas las <b>etiquetas capaces de ser editadas</b> en la plantilla <b>deben tener un ID único</b>.</p>
<h4 style="text-align: justify;">Tipos de edición en Barley</h4>
<p style="text-align: justify;">Ya vimos un tipo de edición que podemos utilizar con <b>Barley</b> pero hay varios más que se encuentran disponibles actualmente; próximamente se espera ampliar la lista debido a necesidades que clientes y diseñadores de plantillas requieren.</p>
<ul style="text-align: justify;">
<li>mini &#8211; Sin herramientas en absoluto. El <b>texto</b> se puede cambiar.</li>
<li>simple &#8211; El <b>texto</b> se puede cambiar. El énfasis se puede agregar usando <b>negritas y cursivas</b> al texto.</li>
<li>plus &#8211; Además de lo anterior se puede <b>agregar enlaces</b>, texto de <b>alineación</b> (centro, izquierda, derecha) y <b>listas</b>.</li>
<li>advanced – Además… <b>Subir una imagen</b>.</li>
<li>blog &#8211; <b>Todas las herramientas anteriores</b> se cargan.</li>
</ul>
<p style="text-align: justify;">Y para que tengas una idea más clara de cómo funciona Barley, te dejo 2 teaser’s:</p>
<p style="text-align: justify;"><p><a href="http://html5facil.com/noticias/modifica-tu-sitio-web-con-barley-mediante-el-editor-wysiwyg"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: justify;"><p><a href="http://html5facil.com/noticias/modifica-tu-sitio-web-con-barley-mediante-el-editor-wysiwyg"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: justify;">Para más información sobre <a href="http://getbarley.com/">Barley</a> visita la página oficial, así como para obtener más datos sobre la <a href="http://plainmade.com/blog/5/draft-barley-template-documentation">documentación</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/modifica-tu-sitio-web-con-barley-mediante-el-editor-wysiwyg/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails desde cero: Primeros pasos</title>
		<link>http://html5facil.com/tutoriales/ruby-on-rails-desde-cero-primeros-pasos</link>
		<comments>http://html5facil.com/tutoriales/ruby-on-rails-desde-cero-primeros-pasos#comments</comments>
		<pubDate>Mon, 15 Apr 2013 05:00:20 +0000</pubDate>
		<dc:creator>Michael Brandon Serrato Guerrero</dc:creator>
				<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Introducción]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[RubyonRails]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5071</guid>
		<description><![CDATA[Sin duda Alguna Ruby on Rails (RoR) es uno de los Frameworks  back-end más reconocidos por ciertas y especificas ventajas al programar en él. Ya que con gran facilidad podemos crear aplicaciones muy complejas de manera rápida y en cuestión de minutos lo que ningún otro lenguaje de programación o Framework ofrece. Ruby Ruby es [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://html5facil.com/wp-content/uploads/2013/04/RoRLogo.png"><img class="alignleft size-full wp-image-5090" alt="RoRLogo" src="http://html5facil.com/wp-content/uploads/2013/04/RoRLogo.png" width="54" height="68" /></a></p>
<p style="text-align: justify;">Sin duda Alguna <b>Ruby on Rails</b> (<b>RoR</b>) es uno de los <b>Frameworks</b>  <b>back-end</b> más reconocidos por ciertas y especificas ventajas al programar en él. Ya que con gran facilidad podemos crear <b>aplicaciones muy complejas de manera rápida</b> y en cuestión de minutos lo que ningún otro lenguaje de programación o Framework ofrece.</p>
<h4 style="text-align: justify;">Ruby</h4>
<p style="text-align: justify;"><b>Ruby</b> es un <b>lenguaje de programación</b> totalmente <b>orientado a objetos</b> <b>multiplataforma</b> (lenguaje interpretado y de scripts), en el que <b>RoR</b> fue basado para su creación.</p>
<p style="text-align: justify;"><b>Ruby</b> es totalmente <b>software libre</b> y fue creado por Yukihiro Matsumoto también conocido como <b>Matz</b>; la primera versión liberada al público fue en 1995, su sintaxis es muy parecida a lenguajes como <b>Perl</b> y <b>Python</b>.</p>
<h4 style="text-align: justify;">RoR</h4>
<p style="text-align: justify;">Es un <b>Framework</b> del <b>lado del servidor</b> qué nos facilita la construcción de grandes <b>aplicaciónes web</b> y que a su vez estas son de código abierto; creado por David Heinemeier Hansson liberando la primera versión en Julio del 2004.</p>
<p style="text-align: justify;"><b>Rails</b> maneja el paradigma del <b>MVC</b> (Model-View-Controller) mejor conocido como modelo vista controlador que nos permite dar ciertas configuraciones de manera libre en el controlador para darle lógica a nuestras vistas y permitirnos manejar información de una base de datos mediante consultas al <b>activerecord</b> en base a los atributos o campos de nuestro modelo ya creado.</p>
<p style="text-align: justify;"><b>Su Filosofía</b>: <i>Don´t Repeat yourself</i>. Nos indica que lo que ya está hecho no tiene porqué volver a hacerse.</p>
<p style="text-align: justify;">Una de las cosas más interesantes de este <b>Framework</b>, es que nos permite <b>combinar lenguaje</b> de <b>Ruby</b> con <b>HTML</b> o <b>HTML5</b> mediante archivos con la extensión <b><i>.html</i></b><b><i>.erb </i></b>en las vistas del controlador, lo que nos facilita el manejo de distintas funciones, variables o métodos dentro de nuestra aplicación.</p>
<p style="text-align: justify;">Al igual que muchos otros <b>Frameworks</b>, <b>Rails</b> nos permite instalar librerías y bibliotecas (llamadas <b>Gemas</b>) desde la <b>consola de Rails</b> o desde el mismo <b>símbolo del sistema</b> (en Windows). Ejecutando una simple instrucción como esta:</p>
<p style="padding-left: 30px; text-align: justify;"><b>gem install rails</b></p>
<p style="text-align: justify;">Descargará e instalará las <b>Gemas</b> necesarias para nuestra aplicación. Puedes encontrar los códigos para la instalación de diversas y múltiples tipos de Gemas para tus aplicaciones gracias a la comunidad de programadores de <a href="http://rubygems.org/gems/rails">Ruby &amp; Ruby on Rails</a>.</p>
<p style="text-align: justify;">Volviendo al tema, una de las cosas que más le encantó a la comunidad de programadores de <b>Ruby;</b> es su bella <b>sintaxis</b>, ya que es <b>legible</b> y parecida al <b>pseudo-código</b>.</p>
<p style="text-align: justify;">Muy bien, se habrán dado cuenta que al hablar de RoR no solo estamos hablando del Framework sino también de Ruby; menciono esto ya que es de gran importancia saberlo, puesto que debemos tener conocimientos básicos de Ruby o en su caso conocer muy bien la sintaxis para poder comprender el Framework.</p>
<p style="text-align: justify;">Dejemos aún lado los Conceptos básicos de Ruby y RoR, pasemos a ver un poco de código.</p>
<h4 style="text-align: justify;">Instalación de RoR</h4>
<p style="text-align: justify;">Antes que nada debemos <b>instalar Rails</b> y eso lo pueden hacer de manera muy fácil (<a href="http://railsinstaller.org/">usuario de Windows</a>) y descargándote el Paquete que viene con las versiones más actuales de <b>Ruby</b>, <b>Rails</b>, <b>Bundler</b>, <b>Git</b>, <b>SQL Server Support</b> y <b>MySQLite</b>.</p>
<p style="text-align: justify;">La instalación es muy sencilla simplemente aceptan términos y condiciones y dan siguiente para instalar todos los <b>complementos de Rails</b>; por último hacen clic en el botón finalizar para concluir la instalación.</p>
<p style="text-align: justify;">Ahora nos vamos a la consola y tecleamos el siguiente código:</p>
<p style="padding-left: 30px; text-align: justify;"><b>rails –v</b></p>
<p style="text-align: justify;">Luego:</p>
<p style="text-align: justify;">         <b>ruby –v</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/Instalacion.png"><img class="aligncenter size-full wp-image-5074" alt="Instalacion" src="http://html5facil.com/wp-content/uploads/2013/04/Instalacion.png" width="573" height="254" /></a></p>
<p style="text-align: justify;">Si la instalación es correcta estos códigos nos darán en pantalla las versiones que instalamos de <b>Rails</b> y <b>Ruby</b> en nuestro ordenador, si no es así vuelve a instalar el paquete de <strong>Rails</strong> ya que algo se te pudo haber escapado en la instalación.</p>
<h4 style="text-align: justify;">Mi primera App en RoR</h4>
<p style="text-align: justify;">Ahora vamos a crear nuestra primera aplicación, para ello primero nos posicionaremos en la carpeta donde queremos que se creen todos los archivos necesarios para nuestra aplicación. Ejemplo:</p>
<p style="padding-left: 30px; text-align: justify;"><b>C:\CursoRuby&gt;</b></p>
<p style="padding-left: 30px; text-align: justify;"><b>C:\CursoRuby&gt;   cd  Proyecto01</b></p>
<p style="padding-left: 30px; text-align: justify;"><b>C:\CursoRuby\Proyecto01&gt;</b></p>
<p style="text-align: justify;">Y ahora colocamos lo siguiente:</p>
<p style="padding-left: 30px; text-align: justify;"><b>rails new MiPrimerApp</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp.png"><img class="aligncenter size-full wp-image-5075" alt="MiPrimeraApp" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp.png" width="527" height="274" /></a></p>
<p style="text-align: justify;">Esto nos puede tomar unos segundos para que genere todos los archivos necesarios para nuestra aplicación.</p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp2.png"><img class="aligncenter size-large wp-image-5076" alt="MiPrimeraApp2" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp2-600x324.png" width="600" height="324" /></a></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp3.png"><img class="aligncenter size-full wp-image-5077" alt="MiPrimeraApp3" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp3.png" width="594" height="357" /></a></p>
<p style="text-align: justify;">Una vez listo abrimos nuestro <b>editor de texto</b> (sugiero usar <b>Sublime Text 2</b>) para examinar todas las carpetas y archivos que nos ha creado Rails, esto con el de darnos una idea de cómo es la <b>jerarquía de los ficheros</b>, archivos y/o carpetas que maneja RoR en nuestras aplicaciones.</p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp4.png"><img class="aligncenter size-large wp-image-5078" alt="MiPrimeraApp4" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp4-600x349.png" width="600" height="349" /></a></p>
<p style="text-align: justify;">Volvemos a la Consola y tecleamos lo siguiente:</p>
<p style="padding-left: 30px; text-align: justify;"><b>rails s</b></p>
<p style="text-align: justify;">O también podemos escribir el comando así:</p>
<p style="padding-left: 30px; text-align: justify;"><b>rails server</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp5.png"><img class="aligncenter size-full wp-image-5079" alt="MiPrimeraApp5" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp5.png" width="543" height="326" /></a></p>
<p style="text-align: justify;">Lo que hará este comando así de sencillo será <b>cargar nuestra aplicación</b> para poder <b>visualizarla en el navegador</b>, generalmente la carga en el <b>puerto 3000</b> de nuestro <b>localhost</b>, Ejemplo:</p>
<p style="padding-left: 30px; text-align: justify;"><b>localhost:3000</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp6.png"><img class="aligncenter size-large wp-image-5080" alt="MiPrimeraApp6" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp6-600x352.png" width="600" height="352" /></a></p>
<p style="text-align: justify;">Una vez visualizada la aplicación en el navegador nos podremos dar cuenta que por defecto <b>Rails genero una vista con la portada de RoR</b>, en donde nos indica que esta vista o archivo debe ser borrada y reemplazada por la vista <i>index</i> del controlador <i>welcome</i>.</p>
<p style="text-align: justify;">Muy bien ahora regresamos de nuevo a la consola y nos <b>salimos del servidor</b> mediante la combinación de teclas <b>Ctrl+C</b>.</p>
<p style="text-align: justify;">Después tecleamos lo siguiente:</p>
<p style="padding-left: 30px; text-align: justify;"><b>rails g controller welcome index</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp7.png"><img class="aligncenter size-large wp-image-5081" alt="MiPrimeraApp7" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp7-600x271.png" width="600" height="271" /></a></p>
<p style="text-align: justify;">Lo que hará este comando es crearnos el Controlador “<i>Welcome</i>” con la Vista “<i>Index</i>”.</p>
<p style="text-align: justify;">Una vez creados los ficheros, procedemos a borrar el archivo <i>index.html </i> en la Carpeta <i>/Public</i> de nuestra aplicación.</p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp8.png"><img class="aligncenter size-large wp-image-5082" alt="MiPrimeraApp8" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp8-600x297.png" width="600" height="297" /></a></p>
<p style="text-align: justify;">Luego nos vamos a la carpeta <i>/config</i> y abrimos en nuestro editor de texto el archivo <b><i>routers.rb </i></b> en el cual borraremos el “#” de la línea 53 (que nos sirve para comentar algún texto o código en Ruby), y nos quedará una línea de comandos de Ruby así:</p>
<p style="padding-left: 30px; text-align: justify;"><b>root :to =&gt; &#8216;welcome#index&#8217;</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp9.png"><img class="aligncenter size-large wp-image-5083" alt="MiPrimeraApp9" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp9-600x385.png" width="600" height="385" /></a></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp10.png"><img class="aligncenter size-full wp-image-5084" alt="MiPrimeraApp10" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp10.png" width="597" height="391" /></a></p>
<p style="text-align: justify;">Y ahora para Finalizar nuestra pequeña aplicación de RoR , abrimos el archivo “index.html.erb” que es la Vista “index” de nuestro controlador “Welcome” y colocamos lo siguiente:</p>
<p style="padding-left: 30px; text-align: justify;"><b>&lt;h1&gt; Esta es mi Primer Aplicación en Ruby on Rails &lt;/h1&gt;</b></p>
<p style="padding-left: 30px; text-align: justify;"><b>&lt;p&gt; By: Michael Serrato &lt;/p&gt;</b></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp12.png"><img class="aligncenter size-large wp-image-5086" alt="MiPrimeraApp12" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp12-600x363.png" width="600" height="363" /></a></p>
<p style="text-align: justify;">Por último vamos a cargar nuestra aplicación:</p>
<p style="padding-left: 30px; text-align: justify;"><b>rails s</b></p>
<p style="text-align: justify;">Qué abrirá un servidor con nuestra app en el puerto 3000 (que ya viene así por defecto).</p>
<p style="text-align: justify;">Abrimos nuestro navegador y visualizamos nuestra aplicación, en:</p>
<p style="text-align: justify;"><a href="http://localhost:3000/welcome/index">http://localhost:3000/welcome/index</a></p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp13.png"><img class="aligncenter size-full wp-image-5087" alt="MiPrimeraApp13" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp13.png" width="544" height="84" /></a></p>
<p style="text-align: justify;">Les debe aparecer la Vista en la que creamos la página de HTML5:</p>
<p style="text-align: justify;">&lt;h1&gt; Esta es mi Primer Aplicación en Ruby on Rails &lt;/h1&gt;</p>
<p style="text-align: justify;">&lt;p&gt; By: Michael Serrato &lt;/p&gt;</p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp14.png"><img class="aligncenter size-large wp-image-5088" alt="MiPrimeraApp14" src="http://html5facil.com/wp-content/uploads/2013/04/MiPrimeraApp14-600x350.png" width="600" height="350" /></a></p>
<p>Por último te dejo el video de la presentación en ninjacode.tv del tema; en la primera parte resolvemos dudas en general para posteriormente pasar al código:</p>
<p style="text-align: justify;"><p><a href="http://html5facil.com/tutoriales/ruby-on-rails-desde-cero-primeros-pasos"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: justify;">Y listo ahí tendrán un pequeño ejemplo de cómo es que se trabaja en el<strong> Framework Ruby on Rails</strong> y cómo utilizar la consola y los comandos de Rails.</p>
<p style="text-align: justify;">Espero que les sea de gran ayuda este Post. Recuerden dejar sus dudas o comentarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/tutoriales/ruby-on-rails-desde-cero-primeros-pasos/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La web 3D más cerca que nunca con asm.js</title>
		<link>http://html5facil.com/noticias/la-web-3d-mas-cerca-que-nunca-con-asm-js</link>
		<comments>http://html5facil.com/noticias/la-web-3d-mas-cerca-que-nunca-con-asm-js#comments</comments>
		<pubDate>Thu, 11 Apr 2013 05:46:13 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[asmjs]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Motor]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Noticia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5068</guid>
		<description><![CDATA[Haber generado un motor de juego corriendo en JavaScript con C++, usando WebGL para el renderizado es un gran logro, todo gracias a las herramientas que Mozilla ha desarrollado para hacerlo posible. Muchas interrogantes han surgido a raíz del lanzamiento de Unreal Engine 3 para Asm.js, ¿Cómo funciona en los navegadores?, ¿por qué es importante?, [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Haber generado un motor de juego corriendo en <b>JavaScript</b> con <b>C++</b>, usando <b>WebGL</b> para el <b>renderizado</b> es un gran logro, todo gracias a las herramientas que <b>Mozilla</b> ha desarrollado para hacerlo posible.</p>
<p style="text-align: justify;">Muchas interrogantes han surgido a raíz del lanzamiento de <b>Unreal Engine 3</b> para <b>Asm.js</b>, ¿Cómo funciona en los navegadores?, ¿por qué es importante?, ¿debe ser mi pan de cada día?, ¿funciona en todos los navegadores, hay alguna excepción?, en fin todo lo relacionado al tema.</p>
<h4 style="text-align: justify;">¿Qué es Asm.js?</h4>
<p style="text-align: justify;">Se define como un subconjunto estricto de <strong>JavaScript</strong> que se puede utilizar como un <strong>nivel bajo</strong>, el idioma de destino eficiente para los <strong>compiladores</strong>. Este <strong>sublenguaje</strong> eficazmente describe una <strong>máquina virtual</strong> <strong>segura</strong> para lenguajes de memoria que no lo son, como en el caso de <strong>C</strong> o <strong>C++</strong>.</p>
<p style="text-align: justify;">Una combinación de <b>validación estática y dinámica</b> que permiten a los <b>motores</b> de <b>JavaScript</b> emplear un <b>ahead-of-time</b> (<b>AOT</b>) la estrategia de <b>optimización de compilación de código asm.js válida</b>.</p>
<p style="text-align: justify;"><b>Asm.js</b> proviene de una nueva categoría de aplicaciones de <b>JavaScript</b>, un género completamente innovador creado por <b>Emscripten</b>, un proyecto visionario de <b>Mozilla</b>.</p>
<div id="attachment_5069" class="wp-caption aligncenter" style="width: 310px"><a href="http://html5facil.com/wp-content/uploads/2013/04/la-web-3d-mas-cerca-que-nunca-con-asm-js.jpeg"><img class="size-medium wp-image-5069" alt="La web 3D más cerca que nunca con asm.js" src="http://html5facil.com/wp-content/uploads/2013/04/la-web-3d-mas-cerca-que-nunca-con-asm-js-300x225.jpeg" width="300" height="225" /></a><p class="wp-caption-text">La web 3D más cerca que nunca con asm.js</p></div>
<h4 style="text-align: justify;">¿Cómo funciona Emscripten?</h4>
<p style="text-align: justify;">Lo primero que hace es tomar el código en <b>C/C++</b>, lo pasa a través de <b>LLVM</b>, convirtiéndolo en un <b>bytecode</b> generado en <b>JavaScript</b> (específicamente <b>Asm.js</b>, un subconjunto de <b>JavaScript</b>).</p>
<p style="text-align: justify;">Si el <b>código compilado</b> <b>Asm.js</b> está siendo <b>renderizado</b> es más probable que sea manejado por <b>WebGL</b> (e <b>interpretado</b> usando <b>OpenGL</b>). De esta manera el conjunto de procesos lineales está técnicamente haciendo uso de <b>JavaScript</b> y el <b>navegador</b>. Esto se hace para que el <b>código compilado</b> <b>Asm.js</b> pueda correr tan rápido como sea posible. Como <b>Asm.js</b> es un subconjunto de <b>JavaScript</b> está muy limitado en lo que puede hacer y cómo se puede operar.</p>
<h4 style="text-align: justify;">Objetivo de Asm.js</h4>
<p style="text-align: justify;">Según David Herman (Senior Researcher de Mozilla Research) es hacer de la <b>web abierta</b> una <b>máquina virtual convincente</b>, <b>compilar</b> otros <b>lenguajes</b> y <b>plataformas</b>. Por ahora enfocándose en la <b>compilación de código de bajo nivel</b> como <b>C</b> y <b>C++.</b> A largo plazo, esperan añadir soporte para un mayor nivel de construcciones con <b>objetos estructurados</b> y <b>recolección de basura</b>; plataformas como la <b>JVM</b> y <b>NET</b>.</p>
<p style="text-align: justify;">Como mencionamos anteriormente <b>Asm.js</b> es sólo <b>JavaScript</b>, no hay complementos especiales en el <b>navegador</b> o características necesarias para hacer que funcione (<b>un navegador que es capaz de detectar y optimizar el código Asm.js obviamente se ejecutará más rápido</b>).</p>
<h4 style="text-align: justify;">Funcionamiento de Asm.js</h4>
<p style="text-align: justify;">Vamos a ver como funciona y cuales son las limitantes de <b>Asm.js</b> con una <b>función extraída de un módulo compilado </b>(versión parcial de <a title="Demo BananaBread" href="https://developer.mozilla.org/en-US/demos/detail/bananabread"><b>BananaBread</b></a>).</p>
<pre class="brush: jscript; title: ; notranslate">
function Vb(d) {

d = d | 0;

var e = 0, f = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0,

o = 0, p = 0, q = 0, r = 0, s = 0;

e = i;

i = i + 12 | 0;

f = e | 0;

h = d + 12 | 0;

j = c[h &gt;&gt; 2] | 0;

if ((j | 0) &gt; 0) {

c[h &gt;&gt; 2] = 0;

k = 0

} else {

k = j

}

j = d + 24 | 0;

if ((c[j &gt;&gt; 2] | 0) &gt; 0) {

c[j &gt;&gt; 2] = 0

}

l = d + 28 | 0;

c[l &gt;&gt; 2] = 0;

c[l + 4 &gt;&gt; 2] = 0;

l = (c[1384465] | 0) + 3 | 0;

do {

if (l &gt;&gt;&gt; 0 &lt; 26) {

if ((4980736 &gt;&gt;&gt; (l &gt;&gt;&gt; 0) &amp; 1 | 0) == 0) {

break

}

if ((c[1356579] | 0) &gt; 0) {

m = d + 4 | 0;

n = 0;

while (1) {

o = c[(c[1356577] | 0) + (n &lt;&lt; 2) &gt;&gt; 2] | 0;

do {

if (a[o + 22 | 0] &lt;&lt; 24 &gt;&gt; 24 == 24) {

if (!(Vp(d, o | 0) | 0)) {

break

}

p = (c[m &gt;&gt; 2] | 0) + (((c[h &gt;&gt; 2] | 0) - 1 | 0) * 40 &amp; -1) + 12 | 0;

q = o + 28 | 0;

c[p &gt;&gt; 2] = c[q &gt;&gt; 2] | 0;

c[p + 4 &gt;&gt; 2] = c[q + 4 &gt;&gt; 2] | 0;

c[p + 8 &gt;&gt; 2] = c[q + 8 &gt;&gt; 2] | 0;

c[p + 12 &gt;&gt; 2] = c[q + 12 &gt;&gt; 2] | 0;

c[p + 16 &gt;&gt; 2] = c[q + 16 &gt;&gt; 2] | 0;

c[p + 20 &gt;&gt; 2] = c[q + 20 &gt;&gt; 2] | 0;

c[p + 24 &gt;&gt; 2] = c[q + 24 &gt;&gt; 2] | 0

}

} while (0);

o = n + 1 | 0;

if ((o | 0) &lt; (c[1356579] | 0)) {

n = o

} else {

break

}

}

r = c[h &gt;&gt; 2] | 0

} else {

r = k

} if ((r | 0) == 0) {

i = e;

return

}

n = c[j &gt;&gt; 2] | 0;

if ((n | 0) &gt;= 1) {

i = e;

return

}

m = f | 0;

o = f + 4 | 0;

q = f + 8 | 0;

p = n;

while (1) {

g[m &gt;&gt; 2] = 0.0;

g[o &gt;&gt; 2] = 0.0;

g[q &gt;&gt; 2] = 0.0;

Vq(d, p, f, 0, -1e3);

n = c[j &gt;&gt; 2] | 0;

if ((n | 0) &lt; 1) {

p = n

} else {

break

}

}

i = e;

return

}

} while (0);

if ((c[1356579] | 0) &lt;= 0) {

i = e;

return

}

f = d + 16 | 0;

r = 0;

while (1) {

k = c[(c[1356577] | 0) + (r &lt;&lt; 2) &gt;&gt; 2] | 0;

do {

if (a[k + 22 | 0] &lt;&lt; 24 &gt;&gt; 24 == 30) {

h = b[k + 14 &gt;&gt; 1] | 0;

if ((h - 1 &amp; 65535) &gt; 1) {

break

}

l = c[j &gt;&gt; 2] | 0;

p = (c[1384465] | 0) + 3 | 0;

if (p &gt;&gt;&gt; 0 &lt; 26) {

s = (2293760 &gt;&gt;&gt; (p &gt;&gt;&gt; 0) &amp; 1 | 0) != 0 ? 0 : -1e3

} else {

s = -1e3

} if (!(Vq(d, l, k | 0, h &lt;&lt; 16 &gt;&gt; 16, s) | 0)) {

break

}

g[(c[f &gt;&gt; 2] | 0) + (l * 112 &amp; -1) + 56 &gt;&gt; 2] = +(b[k + 12 &gt;&gt; 1] &lt;&lt; 16 &gt;&gt; 16 | 0);

h = (c[f &gt;&gt; 2] | 0) + (l * 112 &amp; -1) + 60 | 0;

l = k + 28 | 0;

c[h &gt;&gt; 2] = c[l &gt;&gt; 2] | 0;

c[h + 4 &gt;&gt; 2] = c[l + 4 &gt;&gt; 2] | 0;

c[h + 8 &gt;&gt; 2] = c[l + 8 &gt;&gt; 2] | 0;

c[h + 12 &gt;&gt; 2] = c[l + 12 &gt;&gt; 2] | 0;

c[h + 16 &gt;&gt; 2] = c[l + 16 &gt;&gt; 2] | 0;

c[h + 20 &gt;&gt; 2] = c[l + 20 &gt;&gt; 2] | 0;

c[h + 24 &gt;&gt; 2] = c[l + 24 &gt;&gt; 2] | 0

}

} while (0);

k = r + 1 | 0;

if ((k | 0) &lt; (c[1356579] | 0)) {

r = k

} else {

break

}

}

i = e;

return

}
</pre>
<p style="text-align: justify;">Podrás encontrar el código en el <a href="https://gist.github.com/jeresig/5293608/raw/9bfa4721816a16f392bb3f615f72cad1bf87b6c9/bananabread-asm.js">GitHub</a> de<strong> BananaBread</strong>.</p>
<p style="text-align: justify;">Técnicamente esto es código <b>JavaScript</b>, pero ya podemos ver que esto se parece al uso de <b>DOM</b> en <b>JavaScript</b>. Pero… ¿Qué nos dice el código?</p>
<ul style="text-align: justify;">
<li><b>Asm.js</b> sólo es capaz de manejar una selección de diferentes tipos de números y no otra estructura de datos (esto incluye cadenas, booleanos, o los objetos).</li>
<li>Todos los datos externos se almacenan y se hace referencia a un solo objeto, llamado <b>heap</b>, reemplazando las <b>variables globales</b>, <b>estructuras de datos</b>, cierres y cualquier otra forma de almacenamiento de datos.</li>
<li>Al acceder y establecer variables los resultados son constantemente obligados a un tipo específico. Por ejemplo f = e | 0; establece la variable f para igualar el valor de e, también asegura que el resultado será un número entero (|0 hace esto, la conversión de un valor en un entero). También vemos que esto ocurre con datos del tipo float, puedes verlo con el uso de 0,0 y g [...] = + (&#8230;).</li>
<li>En cuanto a los valores que entran y salen de las <b>estructuras de datos</b> aparecen representados por la variable c, un <b>Int32Array</b> (los valores se convierten siempre desde 0 a un número entero usando |0) y g es un <b>Float32Array</b> (los valores son siempre convertidos a un flotador, envolviendo el valor con + (&#8230;)).</li>
</ul>
<p style="text-align: justify;">De esta manera el resultado es altamente optimizado y se puede convertir directamente desde esta sintaxis <b>Asm.js</b> sin tener que interpretar, ya que normalmente se tiene que hacer con el lenguaje <b>Java</b>.</p>
<p style="text-align: justify;">Ejemplo de la especificación Asm.js :</p>
<pre class="brush: jscript; title: ; notranslate">

function DiagModule(stdlib, foreign, heap) {

&quot;use asm&quot;;

// Variable Declarations

var sqrt = stdlib.Math.sqrt;

// Function Declarations

function square(x) {

x = +x;

return +(x*x);

}

function diag(x, y) {

x = +x;

y = +y;

return +sqrt(square(x) + square(y));

}

return { diag: diag };

}

</pre>
<p style="text-align: justify;">Podemos observar mejor la estructura de un <b>módulo Asm.js</b>. Un <b>módulo</b> está contenido dentro de una <b>función</b> y comienza con &#8220;use asm&#8221;. Esto le da al intérprete la insinuación de que todo dentro de la función debe ser manejado como <b>Asm.js </b>y ser compilado para montaje directamente.</p>
<p style="text-align: justify;">¿Observas los argumentos <b>stdlib</b>, <b>foreign</b>, y <b>heap</b>? El objeto <b>stdlib</b> contiene referencias a una serie de funciones integradas de matemáticas. <b>Foreign</b> da acceso a la funcionalidad definida por el usuario (por ejemplo, dibujar una forma en <b>WebGL</b>). Y <b>heap</b> le da un <b>ArrayBuffer</b> que se puede ver a través de un número de diferentes lentes, como <b>Int32Array</b> y <b>Float32Array</b>.</p>
<p style="text-align: justify;">El resto del módulo se divide en tres partes: declaraciones de variables, declaraciones de función y un objeto que exportan las funciones para exponer al usuario.</p>
<p style="text-align: justify;">La exportación es un punto especialmente importante de entender, ya que permite que todo el código dentro del módulo que se maneja como Asm.js pueda ser utilizable al código normal <b>JavaScript</b>. Como en el siguiente ejemplo:</p>
<pre class="brush: jscript; title: ; notranslate">

document.body.onclick = function() {

function DiagModule(stdlib){&quot;use asm&quot;; ... return { ... };}

var diag = DiagModule({ Math: Math }).diag;

alert(diag(10, 100));

};

</pre>
<p style="text-align: justify;">Esto resultaría de un <b>DiagModule</b> en Asm.js que se ha manejado especialmente por el intérprete de <b>JavaScript</b>, pero aún así sigue estando disponible para otro código <b>JavaScript</b> (en el caso de que quisiéramos acceder a ella y usarla dentro de un controlador de clic, por ejemplo).</p>
<p style="text-align: justify;"><p><a href="http://html5facil.com/noticias/la-web-3d-mas-cerca-que-nunca-con-asm-js"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<h4 style="text-align: justify;">¿Cómo es el rendimiento?</h4>
<p style="text-align: justify;">A estas alturas la única implementación que existe es en las versiones nocturnas de <b>Firefox</b>; los primeros números muestran un rendimiento muy bueno. Para aplicaciones complejas (tales como los juegos); el rendimiento es sólo alrededor de 2 veces más lento que normalmente compilado en <b>C++</b> (comparándolo con otros lenguajes como <b>Java</b> o <b>C#</b>).</p>
<p style="text-align: justify;">Esto es sustancialmente más rápido que el tiempo de ejecución actual del navegador, obteniéndose un rendimiento que es alrededor de 4 a 10 veces más rápido que la última versión de <b>Firefox</b> y <b>Chrome</b>.</p>
<h4 style="text-align: justify;">Casos de uso</h4>
<p style="text-align: justify;">Hay que señalar que casi todas las aplicaciones que se están enfocando en <b>Asm.js</b> ahora son compilados de <b>C/C++</b> a <b>Asm.js</b> utilizando <b>Emscripten</b>. Con esto en mente el tipo de aplicaciones que se van a <b>Asm.js</b> son los que se beneficiarán de la <b>portabilidad</b> de correr en un <b>navegador</b>, pero que tienen un nivel de complejidad en el que un puerto directo a <b>JavaScript</b> lo haría imposible.</p>
<p style="text-align: justify;">Hasta ahora la mayoría de los casos de uso se han centrado en bases de código donde el desempeño es muy importante: como en el funcionamiento de los <b>gráficos</b> en los <b>juegos</b>, <b>intérpretes</b> de <b>lenguajes de programación</b> y <b>bibliotecas</b>.</p>
<p style="text-align: justify;">Veamos rápidamente la lista de proyectos <b>Emscripten</b> que serán de uso inmediato para muchos desarrolladores.</p>
<ul style="text-align: justify;">
<li>Una buena demostración de lo que es posible es el juego <b>FPS</b> <b>BananaBread</b>, que se puede jugar directamente en el <b>navegador</b> y trae consigo características <b>multijugador</b> y <b>bots</b>.</li>
<li>Un puerto de <b>LaTeX</b> a <b>JavaScript</b>, llamado <b>texlive.js </b>, utilizando <b>Emscripten</b>, lo que le permite compilar archivos <b>PDF</b> totalmente dentro de su navegador.</li>
<li>Un puerto de <b>SQLite</b> a <b>JavaScript</b> capaz de correr en <b>Node.js</b>.</li>
<li><b>NaCl</b>: Una <b>biblioteca de redes</b> y <b>criptografía</b>.</li>
</ul>
<h4 style="text-align: justify;">Soporte de Asm.js</h4>
<p style="text-align: justify;">Como se mencionó anteriormente la versión nocturna de <b>Firefox</b> es actualmente el único <b>navegador</b> que <b>soporta la optimización</b> de código <b>Asm.js</b>.</p>
<p style="text-align: justify;">Si un navegador no es compatible con arreglos o especialmente al compilar el <b>código Asm.js</b> entonces el rendimiento va a estar mucho peor. Por supuesto, esto no es especial para <b>Asm.js</b>, probablemente cualquier navegador que no tiene esas características, también este sufriendo de otras maneras.</p>
<p style="text-align: justify;">Para más información sobre <a href="http://asmjs.org/">Asm.js</a>, <a href="http://asmjs.org/spec/latest/">especificaciones</a> y el proyecto <a href="https://github.com/kripken/emscripten">Emscripten</a> de <b>Mozilla</b> visita las respectivas páginas oficiales.</p>
<p style="text-align: justify;">Fuente: <strong><a href="http://ejohn.org/blog/asmjs-javascript-compile-target/">John Resig</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/la-web-3d-mas-cerca-que-nunca-con-asm-js/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El desarrollo web, visión y evolución</title>
		<link>http://html5facil.com/informacion/el-desarrollo-web-vision-y-evolucion</link>
		<comments>http://html5facil.com/informacion/el-desarrollo-web-vision-y-evolucion#comments</comments>
		<pubDate>Wed, 10 Apr 2013 04:44:52 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Informacion]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[evolucion]]></category>
		<category><![CDATA[información]]></category>
		<category><![CDATA[vision]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5063</guid>
		<description><![CDATA[Actualmente cualquier persona puede generar cualquier tipo de contenido web, gracias a las miles de herramientas existentes para la creación de las mismas. La Web de hoy es un universo de aplicaciones y páginas web interconectadas llenas de vídeos, fotos y contenido interactivo. Pero lo que no ve el usuario es cómo interactúan los navegadores [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Actualmente cualquier persona puede generar cualquier tipo de <strong>contenido web</strong>, gracias a las miles de herramientas existentes para la creación de las mismas.</p>
<p style="text-align: justify;">La <strong>Web</strong> de hoy es un <strong>universo de aplicaciones</strong> y <strong>páginas web</strong> interconectadas llenas de vídeos, fotos y contenido interactivo. Pero lo que no ve el usuario es cómo interactúan los navegadores y las tecnologías web para hacer esto posible.</p>
<p style="text-align: justify;">A lo largo del tiempo, las <strong>tecnologías web</strong> han evolucionado hasta permitir que los desarrolladores puedan crear nuevas e increíbles experiencias web. La Web actual es el resultado de los continuos esfuerzos de una comunidad abierta que ayuda a definir estas tecnologías y garantizar que todos los <strong>navegadores</strong> web las admitan.</p>
<h4 style="text-align: justify;">¿Qué es el desarrollo Web?</h4>
<p style="text-align: justify;">Es el conjunto de tecnologías de software del lado del <strong>cliente</strong> y el <strong>servidor</strong>, las cuales combinan procesos de <strong>base de datos, navegadores </strong>e <strong>Internet</strong> con el fin de realizar determinadas tareas. Lo que significa que sin un equipo de cómputo y las herramientas necesarias, estás tareas no se pueden realizar.</p>
<h4>Evolución de las tecnologías.</h4>
<p><a href="http://html5facil.com/wp-content/uploads/2013/04/Sin-título2.png"><img class="aligncenter size-large wp-image-5065" alt="Sin título2" src="http://html5facil.com/wp-content/uploads/2013/04/Sin-título2-600x369.png" width="600" height="369" /></a></p>
<p style="text-align: center;">Imagen tomada de Antonio José Sáenz Albanés.</p>
<p style="text-align: justify;">Con el surgimiento del desarrollo web la <a href="http://www.olx.com.mx/computadoras-cat-240">venta de computadoras</a> se disparó en los últimos años, sin embargo en la actualidad la competencia entre estas y los<strong> teléfonos inteligentes</strong> así como las <strong>tabletas</strong> han sido de gran contención. Mucha de las personas que desarrollan para web ahora también se está enfocando mucho en la <strong>portabilidad</strong>, <strong>usabilidad</strong> y <strong>requerimientos</strong> solicitados por las nuevas plataformas que van surgiendo.</p>
<p style="text-align: justify;"><a href="http://html5facil.com/wp-content/uploads/2013/04/Sin-título.png"><img class="aligncenter size-full wp-image-5064" alt="Sin título" src="http://html5facil.com/wp-content/uploads/2013/04/Sin-título.png" width="867" height="556" /></a></p>
<p style="text-align: justify;">Pero así como van existiendo nuevas plataformas, también los requerimientos suelen ser aún más específicos, tal es el caso del <strong>Hardware</strong>. Es allí donde más que presumir <strong>velocidad</strong> o <strong>capacidad</strong> lo realmente importante es hacer óptimo el equipo; los equipos ensamblados de alguna forma adaptan esos requerimientos a nuestras necesidades.</p>
<h4>Especificaciones mínimas para desarrollo web.</h4>
<ul>
<li style="text-align: justify;">Disco duro de 500GB</li>
<li style="text-align: justify;">2Gb de memoria RAM</li>
<li style="text-align: justify;">Procesador AMD Phenom o superior ó Intel Core 2 Duo</li>
<li style="text-align: justify;">Tarjeta de video de 1GB</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/informacion/el-desarrollo-web-vision-y-evolucion/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Blink y Servo los nuevos motores de renderizado de codigo abierto</title>
		<link>http://html5facil.com/noticias/blink-y-servo-los-nuevos-motores-de-renderizado-de-codigo-abierto</link>
		<comments>http://html5facil.com/noticias/blink-y-servo-los-nuevos-motores-de-renderizado-de-codigo-abierto#comments</comments>
		<pubDate>Fri, 05 Apr 2013 06:34:58 +0000</pubDate>
		<dc:creator>cmeacryt</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[blink]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Motor]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Noticia]]></category>
		<category><![CDATA[Renderizado]]></category>
		<category><![CDATA[servo]]></category>

		<guid isPermaLink="false">http://html5facil.com/?p=5055</guid>
		<description><![CDATA[En el año 2001 por KHTML surge WebKit; un motor de renderizado ligero y potente. Su flexibilidad, rendimiento y diseño inteligente lo hicieron la mejor opción para Chromium. El intenso trabajo realizado por todos los miembros de la comunidad hizo que WebKit prosperara y mantuviese un crecimiento en la capacidad de la plataforma web. A pesar de ello Chromium utiliza una arquitectura multiproceso diferente a otros navegadores basados ​​en WebKit, el apoyo de éstas durante todo este tiempo ha [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">En el año 2001 por <b><a href="http://en.wikipedia.org/wiki/KHTML">KHTML</a></b> surge <b><a href="http://webkit.org/">WebKit</a></b>; un motor de <b>renderizado ligero</b> y <b>potente</b>. Su <b>flexibilidad</b>, <b>rendimiento</b> y <b>diseño inteligente</b> lo hicieron la mejor opción para <b>Chromium</b>. El intenso trabajo realizado por todos los miembros de la comunidad hizo que <b>WebKit</b> prosperara y mantuviese un crecimiento en la capacidad de la <b>plataforma web</b>.</p>
<p style="text-align: justify;">A pesar de ello <b>Chromium</b> utiliza una <b>arquitectura multiproceso</b> diferente a otros navegadores basados ​​en <b>WebKit</b>, el apoyo de éstas durante todo este tiempo ha llevado a la creciente complejidad tanto para <b>WebKit</b> como para proyectos de <b>Chromium</b>. Por lo que el proceso del ritmo de innovación colectiva ha disminuido drásticamente, es allí donde <b><a href="http://www.chromium.org/blink">Blink</a></b> entra en acción.</p>
<div id="attachment_5056" class="wp-caption aligncenter" style="width: 310px"><a href="http://html5facil.com/wp-content/uploads/2013/04/chromium.jpg"><img class="size-medium wp-image-5056" alt="Blink y Servo los nuevos motores de renderizado de codigo abierto" src="http://html5facil.com/wp-content/uploads/2013/04/chromium-300x162.jpg" width="300" height="162" /></a><p class="wp-caption-text">Blink y Servo los nuevos motores de renderizado de codigo abierto</p></div>
<h4 style="text-align: justify;">¿Qué es Blink?</h4>
<p style="text-align: justify;">Un nuevo <b>motor de renderización</b> de <b>código abierto</b> basado en <b>WebKit</b>. Se creé que ésta nueva introducción puede llevar a complicaciones intensas para la <b>web</b>, sin embargo tener múltiples motores de renderizado, similar a tener múltiples navegadores, estimulará la innovación y con el tiempo mejorará la salud del <b>ecosistema web</b> <b>abierto</b>.</p>
<h4 style="text-align: justify;">Visión a corto y largo plazo</h4>
<p style="text-align: justify;"><b>Blink</b> traerá a corto plazo pocos cambios para los desarrolladores web. La mayor parte del trabajo inicial se centrará en <b>mejoras en la arquitectura</b> interna y la simplificación de la base de código. En cambio a largo plazo, una base de código más saludable conduce a una mayor estabilidad y un menor número de errores. Durante toda la transición, colaborarán estrechamente con otros fabricantes de <b>navegadores</b> para mover la web hacia adelante y preservar la <b>compatibilidad de un ecosistema</b> exitoso.</p>
<h4 style="text-align: justify;">Cambios arquitectónicos</h4>
<p style="text-align: justify;">Uno de los cambios que planean integrar es <a href="http://www.chromium.org/developers/design-documents/oop-iframes" target="_blank">“<i>out-of-process iframes</i>”</a> . Los cuales permiten separar las partes individuales de una página en distintos procesos de espacio aislado. La aplicación de esta reestructuración requerirá gran cantidad de <i>iframes</i> cómo se manejan en <b>WebKit</b>. Parte de esta reestructuración es incompatible con otros puertos de <b>WebKit</b> por lo que sigue en construcción.</p>
<p style="text-align: justify;">Por otra parte, el código de red actual en <b>WebKit</b> está limitado por las obligaciones antiguas de <b>Mac WebKit API</b> que no se pueden cambiar. Con <b>Blink</b>, volverán a cargar este código de red sin romper  las obligaciones del <b>API</b> de <b>WebKit</b> de otros consumidores.</p>
<p style="text-align: justify;">Algunos otros cambios considerados:</p>
<ul style="text-align: justify;">
<li>Libre de prefijos</li>
<li>Eliminar el árbol <b>Widget</b> (una restricción <b>Mac WebKit1</b>).</li>
<li>Divide <b>WebCore</b> en módulos.</li>
<li>Mover el código para utilizar la <b>Plataforma sandbox API</b> directamente en lugar de <b>WebCore</b>.</li>
<li>Experimentar moviendo <b>DOM</b> dentro de una pila <b>JS</b>.</li>
<li>Experimentar con <b>diseño incremental</b> o paralelo.</li>
<li>Reemplazar <b>WebKitIDL</b> con <b>WebIDL</b> y eliminar código <b>JavaScript</b>, entre otros.</li>
</ul>
<p style="text-align: justify;">Y hablando de motores de renderizado, les comentamos que después del anuncio de <strong>Unreal Engine</strong> para la web, <b>Mozilla</b> sigue con la experiencia de mejorar la web y el avance de la misma como una plataforma para todos. Es por ello que en esta ocasión anuncia un proyecto nuevo en colaboración con <b>Samsung</b> para la construcción de un nuevo motor para renderizar páginas web llamado <b>Servo</b>.</p>
<h4 style="text-align: justify;">¿Qué tienen en mente?</h4>
<p style="text-align: justify;">Según <b>Mozilla</b>, el objetivo es crear un nuevo motor con vistas al futuro el cual esté optimizado para <b>dispositivos con varios núcleos</b> y con un enfoque de <b>seguridad por defecto</b>.</p>
<h4 style="text-align: justify;">Las alianzas</h4>
<p style="text-align: justify;">Gracias a las alianzas entre <strong>Mozilla</strong> y <strong>Samsung</strong> es que ahora existe <a href="http://www.rust-lang.org/">Rust</a> (lenguaje de programación) y <a href="https://github.com/mozilla/servo" target="_blank">Servo</a> , el <strong>motor del navegador web experimental</strong> para <b>Android</b> y <b>ARM</b>. <b>Servo</b> permitirá iniciar una investigación más profunda en los móviles. <b>Samsung</b> ya ha contribuido con un <a href="https://github.com/mozilla/rust/wiki/Doc-building-for-android">backend ARM</a> y la construcción de infraestructura necesaria para la compilación cruzada para <b>Android</b>, junto con muchas otras mejoras.</p>
<div id="attachment_5057" class="wp-caption aligncenter" style="width: 310px"><a href="http://html5facil.com/wp-content/uploads/2013/04/firefox-512-noshadow1.png"><img class="size-medium wp-image-5057" alt="Blink y Servo los nuevos motores de renderizado de codigo abierto" src="http://html5facil.com/wp-content/uploads/2013/04/firefox-512-noshadow1-300x300.png" width="300" height="300" /></a><p class="wp-caption-text">Blink y Servo los nuevos motores de renderizado de codigo abierto</p></div>
<h4 style="text-align: justify;">¿Qué es Servo?</h4>
<p style="text-align: justify;">Servo es un intento de reconstruir el <b>navegador Web</b> desde cero en hardware moderno abordando las causas de las vulnerabilidades de seguridad, mientras que en la parte del diseño de una plataforma se pueda utilizar todo el rendimiento del hardware para permitir nuevas experiencias en la <b>Web</b>.</p>
<h4 style="text-align: justify;">¿Y Rust?</h4>
<p style="text-align: justify;">La construcción de este nuevo motor está basada en <b>Rust</b>, un <b>lenguaje de programación nuevo</b>,  orientado a <b>entornos de multiprogramación</b> y <b>seguridad</b>, sin posibilidad de vulnerabilidades por <i>buffer overflow</i> o por punteros nulos, lo que significa que el valor de <i>null</i> no existe.</p>
<p style="text-align: justify;">Actualmente se encuentra en su versión <a href="https://github.com/mozilla/rust/wiki/Doc-releases">0.6</a> , ha estado en desarrollo durante varios años y se acerca rápidamente a la estabilidad. El objetivo es llenar muchos de los huecos que <b>C++</b> ha dejado en las últimas décadas.</p>
<p style="text-align: justify;">Algunas de las características más relevantes son:</p>
<ul style="text-align: justify;">
<li>Eficiencia de alto nivel.</li>
<li>Abstracciones multi-paradigma.</li>
<li>Control preciso sobre los recursos de hardware.</li>
<li>Prevención de clases enteras de los errores de gestión de memoria que generalmente conducen a los accidentes y vulnerabilidades de seguridad.</li>
<li>Primitivas de concurrencia ligeras que facilitan a los programadores aprovechar la potencia de los núcleos de CPU disponibles en muchas plataformas informáticas actuales y futuras.</li>
</ul>
<p style="text-align: justify;">Lo mejor de todo es que <b>Servo es software libre</b>. Puedes descargarlo desde el <a href="https://github.com/mozilla/servo">repositorio de Github</a>, disponible para <b>OS X</b> o <b>Linux</b> ambos de 64 bits.</p>
<h4 style="text-align: justify;">Lo que viene para Rust</h4>
<p style="text-align: justify;">Esperan completar la primera revisión importante de <b>Rust</b> el año que viene, ésta cubre los siguientes puntos:</p>
<ul style="text-align: justify;">
<li>Limpieza</li>
<li>Ampliación</li>
<li>Documentación de bibliotecas</li>
<li>Construcción de herramientas para mejorar la experiencia del usuario</li>
<li>Reforzar el rendimiento.</li>
</ul>
<p style="text-align: justify;">Al mismo tiempo, esperan poner más recursos a <b>Servo</b>, demostrando que pueden construir un <b>navegador web rápido</b> con <b>paralelismo penetrante</b>, en un <b>lenguaje seguro</b> y <b>divertido</b>.</p>
]]></content:encoded>
			<wfw:commentRss>http://html5facil.com/noticias/blink-y-servo-los-nuevos-motores-de-renderizado-de-codigo-abierto/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
