<?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>Círculo de Maquetadores</title>
	<atom:link href="http://www.circulodemaquetadores.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.circulodemaquetadores.com</link>
	<description>Comunidad de Maquetadores Web</description>
	<lastBuildDate>Tue, 28 May 2013 12:47:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Meta viewport y la densidad de píxeles</title>
		<link>http://www.circulodemaquetadores.com/meta-viewport-densidad-pixeles-ppi/</link>
		<comments>http://www.circulodemaquetadores.com/meta-viewport-densidad-pixeles-ppi/#comments</comments>
		<pubDate>Tue, 28 May 2013 10:06:22 +0000</pubDate>
		<dc:creator>Eduardo Sainz Lopez</dc:creator>
				<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Web Móvil]]></category>
		<category><![CDATA[densidad]]></category>
		<category><![CDATA[ejemplos viewport]]></category>
		<category><![CDATA[navegadores moviles]]></category>
		<category><![CDATA[pixel]]></category>
		<category><![CDATA[resolución]]></category>
		<category><![CDATA[tamaños pantalla]]></category>
		<category><![CDATA[viewport]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=2173</guid>
		<description><![CDATA[Al final del artículo anterior mencionamos la meta viewport, vamos a explicar con más detalle para que sirve y cómo se utiliza. Como curiosidad, comentar que esta nueva etiqueta fue creada por Apple, con ella, los desarrolladores conseguían mejorar el aspecto de sus aplicaciones web en cualquiera de sus dispositivos móviles (iphone, ipad ..) En [...]]]></description>
			<content:encoded><![CDATA[<p>Al final del <a href="http://www.circulodemaquetadores.com/diseno-web-responsivo-media-queries/" title="Diseño web responsivo y media queries">artículo anterior</a> mencionamos la <strong>meta viewport</strong>, vamos a explicar con más detalle para que sirve y cómo se utiliza.</p>
<p>Como curiosidad, comentar que esta nueva etiqueta fue <strong>creada por Apple</strong>, con ella, los desarrolladores conseguían mejorar el aspecto de sus aplicaciones web en cualquiera de sus dispositivos móviles (iphone, ipad ..)</p>
<p>En principio se desarrolló para Safari, pero actualmente ya se puede considerar un estándar, la mayoría de los navegadores la reconocen.</p>
<p><span id="more-2173"></span></p>
<h2>El problema, tu píxel no es como el mío</h2>
<p><strong>Cada vez hay más tamaños de pantalla y más tipos de resoluciones</strong>, lo que provoca que cada dispositivo pueda tener un número distinto de píxeles por pulgada (<abbr title="Pixels Per Inch">ppi</abbr>), por ese motivo el contenido que se cargue en cada uno, se presentará de distinta forma.</p>
<div class="nota">
<p>Nota: muchas veces se habla de dpi (dots Per Inch / Puntos por pulgada)  queriéndose refererir a ppi (Pixels per inch / Pixeles por pulgada). </p>
<p>Tenemos que tener en cuenta que, <strong>el acrónimo dpi se utiliza en el campo de la impresión</strong>, y es una medida que nos determina el número de gotas de tinta que se utilizarán por pulgada.</p>
<p>En la imagen de abajo podemos ver con claridad la diferencia:</p>
</div>
<div class="imagen alignCenter"><img src="http://www.circulodemaquetadores.com/images/ppi-dpi.png" alt="Diferencia entre ppi y dpi" /></div>
<p>Así que en en el desarrollo web, <strong>nos vamos a referir siempre a los ppi </strong>.</p>
<p>Ahora, pongamos el ejemplo de una <strong>misma imagen</strong> (mismo tamaño en px) mostrándose en un varios monitores con las mismas pulgadas pero con <strong>distintas densidades de píxeles por pulgada</strong>. Como vemos abajo, en el primer caso, con 100 ppi, la imagen ocupa toda la pantalla, en el segundo caso (200ppi), lógicamente la misma imagen ocupa la mitad que en el monitor anterior, y en el tercer caso (400ppi) la imagen ocupará una cuarta parte que la pantalla inicial.</p>
<div class="imagen alignCenter"><img src="http://www.circulodemaquetadores.com/images/ppi-ejemplo.gif" alt="Ejemplo de pantallas con distintos ppi" /></div>
<p>Para comprobar la variedad de densidades de pixeles, aquí tenéis una extensa lista de dispositivos: <a title="Listado dispositivos por densidad de pixeles, abre nueva ventana." href="http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density" target="_blank">http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density</a></p>
<p>Si quieres conocer la densidade de pixeles de tu dispositivo, aqui te dejo una interesante <strong>calculadora de ppi y dpi</strong>: <a title="Calculadora DPI PPI, abre ventana nueva" href="http://members.ping.de/~sven/dpi.html" target="_blank">http://members.ping.de/~sven/dpi.html</a></p>
<h2>¿Qué es y para que nos sirve el viewport?</h2>
<p>El viewport podemos definirlo como el <strong>área útil</strong> donde se mostrará una página web, este área útil no siempre está configurado con su número real de pixels, por ejemplo el <a href="http://es.wikipedia.org/wiki/IPhone_Original" title="Información de iphone en wikipedia, abre nueva ventana" target="_blank">primer iphone</a>, tenía 320px de ancho, pero su viewport simulaba un área de 980px. Esta simulación la hacen multitud de dispositivos móviles, por eso muchas veces vemos páginas a tamaños nada óptimos para su lectura.</p>
<div class="nota">
<p>En resumen, el viewport no corresponde al tamaño real de la pantalla en píxeles, sino al <strong>espacio de pantalla que el dispositivo está emulando</strong>.</p>
</div>
<p>Esta etiqueta nos permite definir, entre otras propiedades, el ancho, alto y escala del área usada por el navegador para mostrar contenido, veamos con más detalle sus propiedades.</p>
<h2>Atributos viewport</h2>
<p>Estas son las <strong>propiedades viewport</strong> que podemos definir:</p>
<ul>
<li><strong>device-width</strong>, devuelve el ancho del viewport</li>
<li><strong>device-height</strong>, devuelve la altura del viewport</li>
<li><strong>initial-scale</strong>, fija la escala que se va a mostrar en un principio la página (valor 0.1 en adelante)</li>
<li><strong>maximum-scale</strong>, establece el zoom máximo que podremos hacer a la página (valor 0.1 en adelante)</li>
<li><strong>minimum-scale</strong>, estable el zoom mínimo que podremos hacer (valor 0.1 en adelante)</li>
<li><strong>user-scalable</strong>, define si el usuario puede o no hacer zoom (yes o no)</li>
<li><strong>target-densitydpi</strong>, exclusiva de dispositivos android, se recomienda utilizar mejor <a title="Artículo media queries" href="http://www.circulodemaquetadores.com/diseno-web-responsivo-media-queries/">media queries</a></li>
</ul>
<h2>Ejemplos viewport</h2>
<p>Un ejemplo de uso de la etiqueta viewport sería:</p>
<p><code>&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, user-scalable=no&quot;&gt;</code></p>
<p>En este caso, se mostrará todo el contenido a una escala 100%, donde el usuario no podrá hacer zoom.</p>
<p><code>&lt;meta name=&quot;viewport&quot; content=&quot;width=320px, user-scalable=no&quot;&gt;</code></p>
<p>Con este código, estamos definiendo nuestro viewport a 320px y evitando que el usuario pueda hacer aumentar/disminutir el contenido</p>
<p><code>&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width; initial-scale=2&quot;/&gt;</code></p>
<p>Se nos mostrará el contenido al 100% del ancho de dispositivo, pero aumentado a una escala x2</p>
<h2>Su incorporación en css</h2>
<p>Se está preparando su introducción de la propiedad viewport en las hojas de estilo css3, podemos consultar en el borrador de la w3c <a title="Borrador css3, abre nueva ventana" href="http://dev.w3.org/csswg/css-device-adapt/#the-viewport" target="_blank">http://dev.w3.org/csswg/css-device-adapt/#the-viewport</a></p>
<p>La forma de insertar viewport en nuestra css sería:</p>
<p><code><br />
&lt;style type='text/css'&gt;<br />
// microsoft<br />
@-ms-viewport { width: device-width; }<br />
// opera mobile 11<br />
@-o-viewport { width: device-width; }<br />
// resto navegadores<br />
@viewport { width: device-width; }<br />
&lt;/style&gt;<br />
</code></p>
<p>Esperamos haber aclarado alguna de tus dudas sobre esta etiqueta, ahora combinándola con las <a href="/diseno-web-responsivo-media-queries/" title="Artículo sobre media queries y diseño responsivo">media queries</a> podemos preparar nuestra web a cualquier dispositivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/meta-viewport-densidad-pixeles-ppi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diseño web responsivo y media queries</title>
		<link>http://www.circulodemaquetadores.com/diseno-web-responsivo-media-queries/</link>
		<comments>http://www.circulodemaquetadores.com/diseno-web-responsivo-media-queries/#comments</comments>
		<pubDate>Fri, 15 Mar 2013 22:23:17 +0000</pubDate>
		<dc:creator>Eduardo Sainz Lopez</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Web Móvil]]></category>
		<category><![CDATA[adaptable]]></category>
		<category><![CDATA[ayuda mediaqueries]]></category>
		<category><![CDATA[ayuda responsivo]]></category>
		<category><![CDATA[media query]]></category>
		<category><![CDATA[mediaqueries]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[responsivo]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=2161</guid>
		<description><![CDATA[En este artículo vamos hablar del Diseño web responsivo o diseño web adaptativo, seguramente ya lo estés aplicando a tus proyectos o al menos has oído hablar de esta evolución del concepto de adaptación web. Así empezó todo. El concepto fue modelado hace ya unos años, tanto la idea y como el propósito del diseño [...]]]></description>
			<content:encoded><![CDATA[<p>En este artículo vamos hablar del <strong>Diseño web responsivo</strong> o <a title="Artículo en wikipedia, abre nueva ventana" href="http://es.wikipedia.org/wiki/Dise%C3%B1o_web_adaptativo" target="_blank">diseño web adaptativo</a>, seguramente ya lo estés aplicando a tus proyectos o al menos has oído hablar de esta evolución del concepto de <strong>adaptación web.</strong></p>
<p><img src="/images/web-responsivo.png" alt="" /><br />
<span id="more-2161"></span></p>
<h2>Así empezó todo.</h2>
<p>El concepto fue modelado hace ya unos años, tanto la idea y como el propósito del diseño web adaptativo fueron previamente discutidos y descritos por el consorcio <abbr title="World Wide Web Consortium">W3C</abbr> en julio de 2008, en su recomendación &#8220;<a title="Acceder a la documentación en la w3c, abre nueva ventana" href="http://www.w3.org/TR/mobile-bp/" target="_blank">Mobile Web Best Practices</a>&#8221; bajo el subtítulo &#8220;<strong>One Web</strong>&#8220;.</p>
<p>A nivel más general, se empezó a conocer en mayo de 2010, donde <a title="Web personal de Ethan Marcotte, abre nueva ventana" href="http://ethanmarcotte.com/" target="_blank">Ethan Marcotte</a> escribió un <a href="http://alistapart.com/article/responsive-web-design" title="Acceder al artículo en alistapart.com, abre nueva ventana" target="_blank">artículo</a> sobre esta técnica, aunque el despegue del <abbr title="Diseño web responsivo">DWR</abbr> fue a partir del 2012, convirtiéndose en la actualidad en algo casi imprescindible para cualquier desarrollo web.</p>
<p>En Junio de 2012, la W3C lo adoptó como recomendación.</p>
<h2>¿Qué es un diseño web responsivo?</h2>
<p>Básicamente es aquel que permite que una web se adapte automáticamente al tamaño de pantalla del dispositivo por el cuál accede un usuario, por ejemplo, un móvil, una tableta, una TV o un PC.</p>
<p>A diferencia de como se hacía años atrás, con el DWR el contenido se redistribuye de forma que pueda mostrarse la información sin tener que recurrir a crear versiones alternativas o nuevos contenidos adaptados.</p>
<p>Es decir, misma página y recursos, lo que se resume en <strong>ahorro de tiempo para los desarrolladores</strong>, un aspecto más profesional y limpio, además de <strong>mejorar el SEO</strong> ya que tenemos una misma url, todo ventajas.</p>
<h2>¿Que navegadores lo soportan?</h2>
<ul>
<li>Safari 4+</li>
<li>Chrome 4+</li>
<li>Firefox 3.5+</li>
<li>IE9+</li>
</ul>
<h2>¿Cómo funciona?</h2>
<p>Hay varias formas de implementación, una es a través de una query dentro del atributo media de una hoja de estilos linkeada:</p>
<p><code>&lt;link href=&quot;movil.css&quot; type=&quot;text/css&quot; media=&quot;screen and (max-device-width: 480px)&quot; rel=&quot;stylesheet&quot;/&gt;<br />
</code></p>
<p>&#8230; dentro de nuestra css:
<p>
<code>@media only screen and (max-device-width: 480px)<br />
{<br />
/* estilos para movil */<br />
}</code></p>
<p>&#8230; o utilizando la regla @import en nuestra css:
<p>
<code>@import url(/style.css) only screen and (max-device-width: 480px);<br />
</code></p>
<h3>Ejemplos de media queries:</h3>
<p>Dispositivos de ancho máximo 480px y orientados horizontalmente:</p>
<p><code>@media only screen and (max-device-width: 480px) and (orientation : landscape) {<br />
/* estilos */<br />
}</code></p>
<p>Pantallas con ancho mínimo de 680px a máximo de 979px y una orientación vertical:</p>
<p><code>@media only screen and (min-width: 680px) and (max-width: 979px) and (orientation : portrait) {<br />
 /* estilos */<br />
}</code></p>
<p>Pantallas con una relación de aspecto 16/9 (panorámico):</p>
<p><code>@media only screen and (device-aspect-ratio: 16/9) {<br />
/* estilos */<br />
}</code></p>
<p>Media Query para Samsung galaxy s3:</p>
<p><code>@media only screen and (-webkit-device-pixel-ratio: 2) {<br />
/* estilos */<br />
}</code></p>
<p>Media Query para iphone 5:</p>
<p><code>@media screen and (device-aspect-ratio: 40/71) {<br />
/* estilos */<br />
}</code></p>
<p>En la web <a title="Abre nueva ventana" target="_blank" href="http://nmsdvid.com/snippets/">http://nmsdvid.com/snippets/</a>, podéis ver un <strong>listado de media queries</strong> para distintos dispositivos y modelos comerciales específicos.</p>
<h2>Lista de propiedades de las media queries</h2>
<table width="100%" border="0" cellpadding="0" class="tabla1">
<thead>
<tr>
<th width="25%"><strong>Propiedad</strong></th>
<th width="20%"><strong>Valor</strong></th>
<th width="15%"><strong>Min/Max</strong></th>
<th width="40%"><strong>Descripción</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>width</td>
<td>Ancho (px)</td>
<td>Si</td>
<td>Ancho del área visible</td>
</tr>
<tr>
<td>height</td>
<td>Alto (px)</td>
<td>Si</td>
<td>Altura del área visible</td>
</tr>
<tr>
<td>device-width</td>
<td>Ancho (px)</td>
<td>Si</td>
<td>Ancho total del dispositivo</td>
</tr>
<tr>
<td>device-height</td>
<td>Alto (px)</td>
<td>Si</td>
<td>Altura total del dispositivo</td>
</tr>
<tr>
<td>orientation</td>
<td>&#8220;portrait&#8221; o &#8220;landscape&#8221;</td>
<td>No</td>
<td>Orientación del dispositivo</td>
</tr>
<tr>
<td>aspect-ratio</td>
<td>Relación (w/h)</td>
<td>Si</td>
<td>Relación ancho/alto expresado con dos enteros separados por / (ejem: 16/9)</td>
</tr>
<tr>
<td>device-aspect-ratio</td>
<td>Relación (w/h)</td>
<td>Si</td>
<td>Relación ancho/alto del dispositivo, expresado con dos enteros separados por /</td>
</tr>
<tr>
<td>color</td>
<td>Número entero</td>
<td>Si</td>
<td>Número de bits por color (si no hay color valor 0)</td>
</tr>
<tr>
<td>color-index</td>
<td>Número entero</td>
<td>Si</td>
<td>Número de entradas en la tabla de color del dispositivo</td>
</tr>
<tr>
<td>monochrome</td>
<td>Número entero</td>
<td>Si</td>
<td>Número de bits por píxel en la memoria de vídeo monocromo (blanco y negro si no, el valor es 0)</td>
</tr>
<tr>
<td>resolution</td>
<td>Resolución</td>
<td>Si</td>
<td>Densidad de píxeles del dispositivo, se expresa entero seguido de dpi (puntos por pulgada) o dpcm (puntos por centímetro)</td>
</tr>
<tr>
<td>scan</td>
<td>Progressive o interlace</td>
<td>No</td>
<td>Progresivo o entrelazado, Proceso de digitalización utilizada por los dispositivos de TV</td>
</tr>
<tr>
<td>grid</td>
<td>0 o 1</td>
<td>No</td>
<td>Si se establece en 1, el dispositivo está basado en red, tal como un terminal de teletipo o pantalla del teléfono con una sola fuente fija (todos los otros dispositivos son 0)</td>
</tr>
</tbody>
</table>
<h2>¿Y qué pasa con la meta viewport?</h2>
<p>Podemos utilizar conjuntamente esta meta con las media queries para ajustar completamente nuestra página, pero eso nos dará para un próximo artículo.</p>
<p><code>&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;</code></p>
<h2>Enlaces de interés</h2>
<ul>
<li><a href="http://mediaqueri.es/">Galería de webs que adoptan diseño responsivo</a></li>
<li><a href="https://developer.mozilla.org/en/docs/CSS/Media_queries" target="_blank">Documentación Mozilla</a></li>
<li><a href="http://www.w3.org/TR/css3-mediaqueries/" target="_blank">Documentación oficial media queries</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/diseno-web-responsivo-media-queries/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Las innovaciones de Internet Explorer</title>
		<link>http://www.circulodemaquetadores.com/las-innovaciones-de-internet-explorer/</link>
		<comments>http://www.circulodemaquetadores.com/las-innovaciones-de-internet-explorer/#comments</comments>
		<pubDate>Sat, 06 Oct 2012 10:15:24 +0000</pubDate>
		<dc:creator>Jorge López</dc:creator>
				<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=2120</guid>
		<description><![CDATA[Para bien o para mal, Internet Explorer ha sido en parte responsable de como conocemos el desarrollo web hoy en día. En las primigenias versiones del navegador, se aplicaron una serie de innovaciones que se han convertido en estándares, e incluso algunas han terminado en la especificación de HTML5. Esto no es nada raro, de hecho es lógico que lanzando un montón de nuevas características con cada versión, unas pocas de ellas salgan bien y sean aceptadas.]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Para bien o para mal, Internet Explorer ha sido en parte responsable de como conocemos el desarrollo web hoy en día. En las primigenias versiones del navegador, se aplicaron una serie de innovaciones que se han convertido en estándares, e incluso algunas han terminado en la especificación de <abbr title="HyperText Markup Language" lang="en">HTML</abbr>5. Esto no es nada raro, de hecho es lógico que lanzando un montón de nuevas características con cada versión, unas pocas de ellas salgan bien y sean aceptadas.<span id="more-2120"></span></p>
<p>A mediados de los 90, Microsoft vio potencial en la web y lanzó la primera versión de Internet Explorer, lo que a la postre desencadenó una guerra entre navegadores. La competencia fomentó la innovación, pero se llegó al punto de que cada navegador implementaba capacidades propias sin tener en cuenta las recomendaciones del <abbr title="World Wide Web Consortium" lang="en">w3c</abbr>. El desarrollo web se polarizó tanto, que durante un tiempo las páginas tuvieron que optimizarse para que se visualizaran correctamente en cada navegador.</p>
<p>Algunas de estas capacidades propietarias calaron tan hondo que abrieron camino al desarrollo web actual, veamos algunas de ellas:</p>
<h2><abbr title="Document Object Model" lang="en">DOM</abbr></h2>
<p>El DOM proporciona a los desarrolladores acceso a cualquier parte de una página web a través de JavaScript. Internet Explorer 3 Netscape y 3 sólo se permitían el acceso mediante JavaScript a los elementos de formulario, imágenes y enlaces. Internet Explorer 4 mejoró la situación al permitir el acceso de todos los elementos de la página a través de <strong lang="en">document.all</strong>, (Netscape tenía algo parecido con <strong lang="en">document.layers</strong>).En muchos aspectos, document.all fue la primera versión de <strong lang="en">document.getElementById ()</strong>. También introdujo la posibilidad de obtener una lista de elementos mediante el nombre de una etiqueta a través de <strong lang="en">document.all.tags ()</strong>, versión primigenia del <strong lang="en">document.getElementsByTagName ()</strong>.</p>
<p>Explorer 4 también presentó <strong>innerHTML</strong>, resultando tan útil, que se ha estandarizado en HTML5 y es ampliamente soportado por los navegadores. Por lo tanto Internet Explorer fue el primero que permitió dicho acceso programático a los elementos de la página.</p>
<p>En la misma línea, Internet Explorer 4 introdujo <strong lang="en">insertAdjacentHTML()</strong>, una forma de insertar texto HTML en un documento. Éste método costó un poco más, pero también se aprobó para HTML5 y es ampliamente soportado por los navegadores.</p>
<h2>Eventos</h2>
<p>Al principio, no había sistema de eventos de JavaScript. Tanto Netscape como Microsoft tomaron un camino diferente para implementarlos. Netscape aportó el <strong lang="en">event capturing</strong>, la idea de que un evento se libera primero en la ventana, y luego en el documento, y así sucesivamente hasta que por fin alcanzar el objetivo previsto.</p>
<p>Microsoft tomó el camino contrario y encaró el problema con el<strong lang="en"> event bubbling</strong> o burbujeo de eventos. De este modo el evento debe comenzar en el objeto y luego disparar contra los padres, y así sucesivamente hasta el documento.</p>
<h2>&lt;iframe&gt;</h2>
<p>Los marcos fueron introducidas por Netscape 2 incluyendo &lt;frameset&gt;,&lt;frame&gt; y &lt;NOFRAMES&gt;. La idea era proporcionar un marco a los elementos de navegación que se repetían en todas las páginas, para que solo se cargara una vez. Esto hacía que la transferencia de datos del servidor fuera menor, minimizando el tiempo de carga de una página.</p>
<p>En Internet Explorer 3 <strong>Microsoft añadió su propia etiqueta de marco, el &lt;iframe&gt;</strong>. Esta etiqueta permitía incrustar una página dentro de otra. Inicialmente, este fue uno de los campos de batalla más importantes entre Internet Explorer y Netscape.</p>
<p>El &lt;iframe&gt; empezó a ser más popular, ya que era más productivo. Netscape 4 introdujo &lt;ilayer&gt; con características muy similares a &lt;iframe&gt;. Ambas etiquetas fueron estandarizadas en HTML 4, pero la etiqueta &lt;ilayer&gt; se quedó obsoleta y cayó en desuso. Finalmente &lt;iframe&gt; se ha aprobado para HTML5.</p>
<h2><abbr title="eXtensible Markup Language" lang="en">XML</abbr> y <abbr title="Asynchronous JavaScript And XML" lang="en">Ajax</abbr></h2>
<p>Aunque actualmente XML no se utiliza tanto como muchos pensaban, Internet Explorer también abrió el camino al soporte XML. Internet Explorer 5 fué el primer navegador que soporta en cliente el análisis de XML y <abbr title="Extensible Stylesheet Language Transformations" lang="en">XSLT</abbr>. Por desgracia, lo hizo a través de objetos ActiveX que representan los documentos XML y los procesadores XSLT. La gente de Mozilla claramente pensó que había algo allí, porque ellos inventaron una funcionalidad similar en la forma de <strong>DOMParser</strong>, <strong>XMLSerializer</strong> y <strong>XSLTProcessor</strong>. Los dos primeros son ahora parte de HTML5. Además antes de que el término AJAX fuera acuñado, Explorer introdujo <strong>XMLHttpRequest</strong> en JavaScript.</p>
<h2><abbr title="Cascading Style Sheets" lang="en">CSS</abbr></h2>
<p>Internet Explorer 3, lanzado en Agosto de 1996, <strong>fue el primer navegador comercial en dar soporte a CSS</strong>. Admitía de manera más o menos fiable la mayoría de las propiedades de color, fondo, fuente y texto, pero no implementa casi nada del modelo de caja.</p>
<p>En ese momento, Netscape era bastante escéptico con respecto a las hojas de estilo, y estaban desarrollando una propuesta alternativa, las Hojas de Estilo de JavaScript (JSSS), que pasaban por encima de las CSS. Esta propuesta utilizaba JavaScript para definir los estilos, por lo que si se desactivaba JavaScript, CSS no funcionaba en Netscape 4. Explorer 4 se acercó mucho más a la interpretación correcta de la especificación, aunque sin cumplirla completamente.</p>
<p>Además Explorer aportó algunas propiedades que han terminado siendo estandarizadas para CSS3 y de hecho actualmente son soportadas por la mayoría de los navegadores. Algunas de ellas son las propiedades <strong>overflow-x</strong> y <strong>overflow-y</strong>, <strong>word-break</strong> o <strong>word-wrap</strong> que aparecen por primera vez en Internet Explorer 5 o <strong>text-overflow</strong>, que apreció con Internet Explorer 6.</p>
<p>Muchos de los efectos visuales CSS3 ya estaban disponibles en Internet Explorer 4, mediante los vilipendiados Filtros. Los filtros son trozos de código propietario que se introducen en las hojas de estilo y que se valen de DirectX para mostrar efectos visuales complejos. Eran incompatibles con el resto de navegadores, su sintaxis era terrible, los efectos se veían feos, e incluso no interactúan demasiado bien entre sí. Pero recordemos que entre la infinidad de efectos, en 1997 con estos filtros se podían hacer cosas como:</p>
<ul>
<li>Generación de gradientes.</li>
<li>Creación de elementos semitransparentes.</li>
<li>Rotación de elementos.</li>
<li>Aplicación de sombras a elementos html.</li>
<li>Además, Internet Explorer 4 tenía una característica llamada transiciones, que permitía hacer animaciones básicas.</li>
</ul>
<p>Hay que reconocer que con la tecnología de la época, fueron capaces de dotar al navegador de unas capacidades, cuyo soporte se está empezando a extender ahora, 15 años más tarde.</p>
<h2>Otras contribuciones de Internet Explorer</h2>
<ul>
<li><strong lang="en">Drag and Drop</strong>: esta <abbr title=" Application Programming Interface" lang="en">API</abbr> se apareció por primera vez en Internet Explorer 5 y ha pervivido con muy pocos cambios hasta HTML5. La principal diferencia es la aparición del atributo draggable. Aparte de eso, la API refleja fielmente el original y es ahora compatible con la mayoría de navegadores.</li>
<li>Los <strong>Faviconos</strong> también fueron invención de IE, teniendo soporte desde la versión 5.</li>
<li>El <strong>Doctype</strong> se creó para Internet Explorer 5 versión Mac. De este modo los desarrolladores pudieron <strong>crear páginas con código estandarizado</strong> sin que les reventara el navegador. El modo no estándar se definió como quirks mode. Pronto, todos los demás navegadores lo adoptaron.</li>
<li><strong><abbr title="Dynamic HTML" lang="en">DHTML</abbr></strong> fue introducido para Internet Explorer 4, lo que permitió que las páginas web <strong>cambiaran dinámicamente su contenido mediante JavaScript</strong>.</li>
</ul>
<p>Es importante aclarar que Microsoft no tuvo ningún interés por estandarizar estas innovaciones, dejando que la mayoría de ellas fueran funcionalidades exclusivas de su navegador. Esto supuso que durante un tiempo, maquetar para Internet Explorer, fuera la manera “estándar&#8221; de crear sitios.</p>
<p>Cuando Internet Explorer 6, alcanzó una cuota de mercado del 96%, se detuvo abruptamente el desarrollo de cualquier nueva funcionalidad o innovación. A partir de ese momento todas las versiones de Explorer han ido tecnológicamente detrás de la competencia. Actualmente con su posición dominante amenazada, Microsoft se está preocupando de desarrollar navegadores medianamente competitivos y cada vez más respetuosos con los estándares. ¿Será la versión 10 de Internet Explorer la que rehabilite el prestigio de Microsoft entre los desarrolladores y usuarios?, queda poco tiempo para averiguarlo.</p>
<h2>Más información</h2>
<p><a title="Enlace abre en nueva ventana" lang="en" href="http://www.nczonline.net/blog/2012/08/22/the-innovations-of-internet-explorer/" target="_blank">The innovations of Internet Explorer<!--more--></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/las-innovaciones-de-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Introducción a las URL Schemes</title>
		<link>http://www.circulodemaquetadores.com/introduccion-a-las-url-schemes/</link>
		<comments>http://www.circulodemaquetadores.com/introduccion-a-las-url-schemes/#comments</comments>
		<pubDate>Wed, 20 Jun 2012 15:25:21 +0000</pubDate>
		<dc:creator>Jorge López</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Schemes]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=2114</guid>
		<description><![CDATA[Los URL Schemes son recursos que invocan las aplicaciones instaladas en cada dispositivo, para poder delegar funcionalidad en ellas. De esta manera conseguiremos una experiencia más fluida para el usuario. Los schemes son válidos para las aplicaciones nativas de iOS, Android y HTML5. Las ventajas de los URL Schemes son evidentes, las más importantes son: [...]]]></description>
			<content:encoded><![CDATA[<p>Los <abbr title="uniform resource locator" lang="en">URL</abbr> <span lang="en">Schemes</span> son <strong>recursos que invocan las aplicaciones instaladas</strong> en cada dispositivo, para poder delegar funcionalidad en ellas. De esta manera conseguiremos una experiencia más fluida para el usuario. Los schemes son válidos para las aplicaciones nativas de iOS, Android y <abbr title="HyperText Markup Language" lang="en">HTML5</abbr>.<span id="more-2114"></span></p>
<p>Las ventajas de los URL <span lang="en">Schemes</span> son evidentes, las más importantes son:</p>
<ul>
<li>No obligan al usuario a <strong>estar conectado permanentemente</strong> a la red.</li>
<li>Son un método simple y rápido de integrar las aplicaciones de sistema con nuestras aplicaciones. Llegando a poder utilizarse <strong>dentro del código HTML</strong>.</li>
<li>Proporcionan una interfaz de comunicación pública, que cualquier aplicación puede aprovechar.</li>
</ul>
<p>Su funcionamiento es muy sencillo. Cada aplicación se registra con un identificador, que es reconocido por el navegador del móvil. La función del navegador será:</p>
<ul>
<li>Comprobar si hay alguna aplicación instalada que responda al nombre de ese identificador.</li>
<li>Abrirla.</li>
<li>Pasarle como parámetro los datos de la URL que le hayamos definido.</li>
</ul>
<p>Hay una enorme cantidad de <span lang="en">Schemes</span>, pero ahora veremos algunos de los más sencillos y útiles:</p>
<h2>tel URL Scheme</h2>
<p>El esquema de URL tel se utiliza iniciar la <strong>marcación el número de teléfono</strong> que le hayamos especificado.  Al tocar un enlace telefónico, se mostrará  una alerta preguntándole si el usuario realmente quiere marcar el número especificado.  Si este acepta se iniciará la llamada. Ten en cuenta que si proporcionas un número internacional, tendrás que incluir el código del país. Un enlace telefónico se puede especificar tanto en aplicaciones nativas de iOS/android, como para web. El marcado HTML sería el siguiente.</p>
<pre>&lt;a href="tel:000000000"&gt;000000000&lt;/a&gt;</pre>
<p>En iOS y Android, la detección de número de teléfono está activada por defecto. Para desactivar esta detección de número, utiliza la siguiente meta etiqueta:</p>
<pre>&lt;meta name = "format-detection" content = "telephone=no"&gt;</pre>
<h2>Text URL Scheme</h2>
<p>Este <span lang="en">Scheme </span><strong>configura el cliente de SMS </strong>para que los usuarios puedan enviar rápidamente un mensaje de texto. También es posible proporcionar el cuerpo del mensaje. El marcado HTML es el siguiente.</p>
<pre>&lt;a href="sms:<em> 000000000</em>"&gt;Escriba un nuevo mensaje de SMS&lt;/a&gt;</pre>
<h2>mailto URL Sheme</h2>
<p>El esquema mailto, es un antiguo conocido de los maquetadores web. Se utiliza para <strong>iniciar la aplicación de correo</strong> predeterminada del dispositivo.  En su forma más simple, un mailto URL contiene una dirección de correo de electrónico:</p>
<pre>&lt;a   href="mailto:ejemplo@mail.com"&gt;ejemplo&lt;/a&gt;</pre>
<h2>Recursos:</h2>
<ul>
<li><strong><a title="Página a bre en nueva ventana" href="http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html" target="_blank">Apple Developer Reference</a></strong>: proporciona información sobre los de URL Schemas, y la forma de utilizarlos en aplicaciones de Apple</li>
<li><strong><a title="Página abre en nueva ventana" href="http://wiki.akosma.com/IPhone_URL_Schemes " target="_blank">Wiki oficial de akosma</a></strong>: podrás encontrar un completísimo repositorio de Schemas.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/introduccion-a-las-url-schemes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maquetación Móvil con jQuery Mobile</title>
		<link>http://www.circulodemaquetadores.com/jquerymobile/</link>
		<comments>http://www.circulodemaquetadores.com/jquerymobile/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 17:16:10 +0000</pubDate>
		<dc:creator>Álvaro Brito</dc:creator>
				<category><![CDATA[Web Móvil]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquerymobile]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[móvil]]></category>
		<category><![CDATA[web móvil]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=1927</guid>
		<description><![CDATA[En la era de los dispositivos móviles, el interés por el desarrollo web móvil cada vez es mayor. Actualmente lo más utilizado es aplicar el &#8220;diseño responsivo (responsive design)&#8221; en las web que desarrollemos, para que se visualice o se adapten correctamente en los dispositivos móviles (smartphone, tablet, etc). Esto lo conseguimos haciendo uso de [...]]]></description>
			<content:encoded><![CDATA[<p>En la era de los dispositivos móviles, el interés por el <strong>desarrollo web móvil</strong> cada vez es mayor.</p>
<p>Actualmente lo más utilizado es aplicar el &#8220;<strong>diseño responsivo (responsive design)</strong>&#8221; en las web que desarrollemos, para que se visualice o se adapten correctamente en los dispositivos móviles <em>(smartphone, tablet, etc)</em>. Esto lo conseguimos haciendo uso de <a title="Abre en ventana nueva (en inglés)" lang="en" href="http://www.w3.org/TR/css3-mediaqueries/" hreflang="en" rel="external" target="_blank">Media Queries CSS3</a>.</p>
<p>Por otro lado tenemos los <strong>Frameworks JavaScript</strong> orientados exclusivamente para el desarrollo de aplicaciones y sitios web para móvil. Hoy hablaremos de uno de los más útiles, prácticos y que conlleva menor esfuerzo en el desarrollo de aplicaciones web<strong>:</strong></p>
<div class="imagen alignCenter">
<h2>jQuery Mobile</h2>
<p><a href="http://www.circulodemaquetadores.com/jquerymobile/"><img class="alignnone size-medium wp-image-1928" title="jQuery Mobile" src="http://www.circulodemaquetadores.com/wp-content/uploads/2012/03/jquerymobile-300x297.png" alt="jQuery Mobile" width="300" height="297" /></a></p>
</div>
<p><span id="more-1927"></span></p>
<h2>¿Qué es jQuery Mobile?</h2>
<p>Es un framework de Javascript basado en <strong>jQuery</strong> y <strong>jQuery UI</strong>, para el desarrollo de aplicaciones web y de escritorio (nativas) en dispositivos móviles. Soportando una amplia variedad de dispositivos.</p>
<h2>¿Por qué nos interesa?</h2>
<ul>
<li>Está basado en <strong>jQuery</strong>, por lo tanto la curva de aprendizaje será mínima para aquellas personas que hayan utilizado jQuery.</li>
<li>Compatible con las principales plataformas móviles y de escritorio:<em> iOS, Android, Blackberry, Palm WebOS, Nokia/Symbian, Windows Phone 7, MeeGo, Opera Mobile/Mini, Firefox Mobile, Kindle, Nook</em> y todos los <strong>navegadores modernos</strong>. <a href="http://jquerymobile.com/demos/1.0b2/#/demos/1.0b2/docs/about/platforms.html" target="_blank">Ver todas las plataformas soportadas</a></li>
<li>Su peso de (20kb) y el uso mínimo de imágenes en sus componentes.</li>
<li>Uso de marcado <strong>HTML5</strong> en la estructura de las páginas y componentes, utilizando los diferentes atributos para &#8220;disparar&#8221; automáticamente los <strong>Widgets</strong> de jQueryMobile. Además podemos aplicar los diferentes comportamientos que trae cada componente<em> sin tener que aplicar ningún script adicional.</em></li>
<li>Enfocado tanto a aplicaciones web como a <strong>aplicaciones nativas</strong>. Combinando <a title="Ver documentación jQuery Mobile con PhoneGap" href="http://jquerymobile.com/test/docs/pages/phonegap.html" target="_blank">jQuery Mobile con PhoneGap</a>.</li>
<li><strong>Accesibilidad</strong> en sus componentes, basados en la especificación <a title="Ver especificación WAI-ARIA" href="http://www.w3.org/TR/wai-aria" target="_blank">WAI-ARIA </a> y haciendo uso de los <em>&#8216;roles&#8217;</em>.  De tal manera que trabaje con los lectores de pantalla. <a title="Ver más detalle" href="http://jquerymobile.com/demos/1.1.0-rc.1/docs/about/accessibility.html" target="_blank">Accesibilidad en jQuery Mobile</a></li>
<li>Proporciona una potente herramientas para crear diferentes <strong>temas (themes): </strong><a title="Ir a la herramienta ThemeRoller" href="http://jquerymobile.com/themeroller/" target="_blank">ThemeRoller</a>.</li>
</ul>
<h2>¿Cómo lo utilizamos?</h2>
<p>jQuery Mobile proporciona un <em>cojunto de widgets</em> de fácil implementación y un sistema de <strong>navegación con AJAX </strong>para la transición entre páginas. A continuación veremos como crear fácilmente nuestra primera página:</p>
<h3>&#8220;EL ESQUELETO&#8221;</h3>
<h4>HEAD</h4>
<p>Primero agregamos las referencias necesarias a jQuery, jQuery Mobile y el theme básico de CSS. En el siguiente paso agregaremos nuestro propio theme personalizado.</p>
<p>Una vez que hemos terminado de referenciar las librerías necesarias, creamos la estructura de la plantilla principal de la página <strong>utilizando HTML5</strong>, y luego definimos las areas de contenido<em> (content region)</em> que proporciona jQueryMobile.</p>
<p>Utilizamos el <strong>meta viewport</strong>, con el que podemos establecer el ancho del dispositivo y definir la escala . Por defecto, lo podemos dejar definido con la constante <em>width=device-width </em>y definir la escala mínima y máxima a 1; <em>initial-scale=1.0 maximum-scale=1.0</em>. Podemos añadir <a title="Abre en ventana nueva" href="http://dev.w3.org/csswg/css-device-adapt/#the-viewport-rule" target="_blank">más reglas en el meta viewport</a><em>, </em>por ejemplo si queremos permitir que el usuario pueda escalar la página.</p>
<h4>BODY</h4>
<p>En el cuerpo del documento HTML, especificamos la <em>Página</em> <strong>(data-role=&#8221;page&#8221;)</strong>, la <em>Cabecera</em> <strong>(data-role=&#8221;header&#8221;),</strong> el <em>Contenido</em> <strong>(data-role=&#8221;content&#8221;)</strong> y el Pié <strong>(data-role=&#8221;footer&#8221;)</strong> de la misma<em>, </em>añadiendo los <strong>atributos data- HTML5</strong>, que utiliza jQuery Mobile para transformarlo en Widgets funcionales y con los estilos del theme utilizado.</p>
<pre class="brush:xml">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;Título página&lt;/title&gt;
	&lt;meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" /&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
	&lt;link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" /&gt;
	&lt;script src="http://code.jquery.com/jquery-1.7.1.min.js"&gt;&lt;/script&gt;
	&lt;script src="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt; 

&lt;!-- Página principal --&gt;
&lt;section data-role="page"&gt;

	&lt;header data-role="header"&gt;
		&lt;h1&gt;Título&lt;/h1&gt;
	&lt;/header&gt;&lt;!-- /banner --&gt;

	&lt;section data-role="content"&gt;
		&lt;p&gt;Hola Mundo&lt;/p&gt;
	&lt;/section&gt;&lt;!-- /content --&gt;

	&lt;footer data-role="footer"&gt;
		&lt;p&gt;&lt;abbr lang="en" title="Copyright"&gt;©&lt;/abbr&gt; 2012&lt;/p&gt;
	&lt;/footer&gt;&lt;!-- /footer --&gt;	

&lt;/section&gt;&lt;!-- /page --&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<h3>Añadiendo tu propio contenido</h3>
<p>Puedes añadir <strong>contenido HTML</strong> dentro del <strong>data-role=&#8221;content&#8221;</strong>, de esta manera usará el estilo del theme asignado.</p>
<p>Si queréis añadir contenido HTML propio, sin que contenga funcionalidad de <em>jQuery Mobile</em>, tendréis que omitir el <strong>atributo data- </strong> y utilizar el <em>role</em> adecuado para cada contenido HTML <em>(si no queréis utilizar roles omitir este paso)</em>.</p>
<pre class="brush:xml">&lt;section role="main"&gt;
	&lt;p&gt;Hola Mundo&lt;/p&gt;
&lt;/section&gt;&lt;!-- /content --&gt;</pre>
<ul>
<li><a href="http://jquerymobile.com/test/docs/content/content-html.html" target="_blank">Contenido HTML de jQuery Mobile</a></li>
<li><a title="Ver tipos de widgets" href="http://jquerymobile.com/demos/1.0.1/docs/content/index.html" target="_blank">Tipos de Widgets de contenido</a></li>
</ul>
<h3>Múltiples páginas</h3>
<p>Todas las páginas estarán incrustadas en el mismo documento. Como hemos visto anteriormente, cada página del sitio estará representada con el atributo <strong>data-role=&#8221;page&#8221;, </strong>también podemos añadirle un título a cada página con el atributo <strong>data-title=&#8221;Título página 1&#8243;</strong>.</p>
<p>Por último debemos añadir el <strong>atributo id </strong>a cada página, de esta manera podemos <em>interactuar</em> con ella, por ejemplo para poder navegar de una página a otra.</p>
<pre class="brush:xml">&lt;!-- Página principal --&gt;
&lt;section data-role="page" data-title="Página de inicio" id="page1"&gt;

	&lt;header data-role="header"&gt;
		&lt;h1&gt;Título&lt;/h1&gt;
	&lt;/header&gt;&lt;!-- /banner --&gt;

	&lt;section data-role="content"&gt;
		&lt;p&gt;Hola Mundo&lt;/p&gt;
	&lt;/section&gt;&lt;!-- /content --&gt;

	&lt;footer data-role="footer"&gt;
		&lt;p&gt;&lt;abbr lang="en" title="Copyright"&gt;©&lt;/abbr&gt; 2012&lt;/p&gt;
	&lt;/footer&gt;&lt;!-- /footer --&gt;	

&lt;/section&gt;&lt;!-- /page --&gt;

&lt;!-- Segunda página --&gt;
&lt;section data-role="page" data-title="Segunda página" id="page2"&gt;

	&lt;header data-role="header"&gt;
		&lt;h1&gt;Título&lt;/h1&gt;
	&lt;/header&gt;&lt;!-- /banner --&gt;

	&lt;section data-role="content"&gt;
		&lt;p&gt;Hola Mundo&lt;/p&gt;
	&lt;/section&gt;&lt;!-- /content --&gt;

	&lt;footer data-role="footer"&gt;
		&lt;p&gt;&lt;abbr lang="en" title="Copyright"&gt;©&lt;/abbr&gt; 2012&lt;/p&gt;
	&lt;/footer&gt;&lt;!-- /footer --&gt;	

&lt;/section&gt;&lt;!-- /page --&gt;</pre>
<p class="brush:xml"><a href="http://jquerymobile.com/demos/1.0.1/docs/pages/multipage-template.html" target="_blank">Ver Múltiples páginas en jQuery Mobile</a></p>
<h3 class="brush:xml">Navegación entre páginas</h3>
<p>La navegación es muy sencilla, solo tenemos que poner en el &#8216;<em>href&#8217; </em>del enlace el &#8216;<em>id&#8217; </em>de la página destino.  El  código HTML quedaría de la siguiente forma:</p>
<pre class="brush:xml">&lt;a href="#page2" data-role="button"&gt;Ir a la página 2&lt;/a&gt;</pre>
<p class="brush:xml">Podemos especificar el tipo de transición con el atributo <strong>data-transition</strong>, la transición por defecto es <em>slide</em> pero existen varios <a href="http://jquerymobile.com/demos/1.0.1/docs/pages/page-transitions.html" target="_blank">tipos de transiciones jQuery Mobile</a>.</p>
<p class="brush:xml">Las que podemos usar en la versión actual de <em>jQuery Mobile</em> son las siguientes</p>
<ul>
<li>slide</li>
<li>slideup</li>
<li>slidedown</li>
<li>pop</li>
<li>fade</li>
<li>flip</li>
</ul>
<p class="brush:xml">También puedes definir la dirección de la transición con el atributo <em><strong>data-direction</strong>, por ejemplo: data-direction=&#8221;reverse&#8221; </em>para invertir la dirección.</p>
<h3 class="brush:xml">Themes jQuery Mobile</h3>
<p>Podemos crear nuestros propios <strong>themes</strong> de forma sencilla y rápida con el <a href="http://www.jquerymobile.com/themeroller" target="_blank">ThemeRoller </a>que nos ofrece <em>jQueryMobile</em>. Una de las principales características de esta herramienta, es la multitud de themes que podemos crear y asignar cada componente que usemos en nuestra aplicación.</p>
<p class="alignCenter"><a href="http://jquerymobile.com/themeroller/"><img class="alignnone size-medium wp-image-2033" title="ThemeRoller jQuery Mobile" src="http://www.circulodemaquetadores.com/wp-content/uploads/2012/03/themroller-mobile-logo-300x101.png" alt="ThemeRoller jQuery Mobile" width="300" height="101" /></a></p>
<p>Cada theme o tema tiene asignado una letra, con la que podemos identificar el theme y aplicarlo a cualquier componente que queramos, usando el atributo <strong>data-theme</strong>. Veamos un sencillo ejemplo:</p>
<pre class="brush:xml">&lt;!-- Página principal --&gt;
&lt;section data-role="page" data-title="Página de inicio"
data-theme="b" id="page1"&gt;</pre>
<p>En la documentación oficial podemos ver más sobre el uso de <a href="http://jquerymobile.com/demos/1.0.1/docs/api/themes.html" target="_blank">themes en jQuery Mobile</a> y las opciones posibles para cada uno de los componentes.</p>
<p>Debemos tener en cuenta que jQuery Mobile genera clases para cada uno de sus componentes usando el <strong>prefijo ui-</strong>.</p>
<h3>Formularios</h3>
<p>Los componentes de formulario de jQuery Mobile, nos aportan multitud de funciones ya definidas y diferentes tipos de elementos propios. Todos los formularios deben estar dentro de la etiqueta <em>form </em>y con el <em>action</em> y <em>method</em> asignados para procesar la información en servidor:</p>
<pre class="brush:xml">&lt;form action="form.php" method="post"&gt; ... &lt;/form&gt;</pre>
<p class="brush:xml">Existen varios tipos de controles, que son mas que suficientes para poder crear formularios complejos. Con galería de <a href="http://jquerymobile.com/demos/1.0.1/docs/forms/forms-all.html" target="_blank">elementos de formularios jQuery Mobile</a> podemos ver de un vistazo todos los elementos y la funcionalidad de cada uno de ellos.</p>
<p class="brush:xml">También nos da la opción de crear un formulario con una <a title="Ver comparación formularios mini y normal" href="http://jquerymobile.com/test/docs/forms/forms-all-compare.html" target="_blank">versión mini </a>de sus controles, útil para formularios extensos o para aprovechar espacio en la pantalla del dispositivo. Para ello debemos añadir el atributo <strong>data-mini=&#8221;true&#8221; </strong>en el <em>controlgroup:</em></p>
<pre class="brush:xml">&lt;form action="form.php" method="post" id="form"&gt;
	&lt;div data-role="fieldcontain"&gt;
		&lt;fieldset data-role="controlgroup" data-mini="true"&gt;
			&lt;legend&gt;Opciones:&lt;/legend&gt;
			&lt;input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" /&gt;
			&lt;label for="radio-choice-1"&gt;Opción 1&lt;/label&gt;
			&lt;input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2"  /&gt;
			&lt;label for="radio-choice-2"&gt;Opción 2&lt;/label&gt;
		&lt;/fieldset&gt;
	&lt;/div&gt;
&lt;/form&gt;</pre>
<h4 class="brush:xml">Accesibilidad en formularios</h4>
<p>Si se requiere ocultar la etiqueta <em>label</em> por motivos de accesibilidad y que los lectores de pantalla puedan leerla, podemos ayudarnos de la clase <strong>ui-hidden-accessible </strong>y añadir el atributo<strong> placeholder </strong>para usar el elemento de formulario como label:</p>
<pre class="brush:xml">&lt;label for="nombreusuario" class="ui-hidden-accessible"&gt;Usuario:&lt;/label&gt;
&lt;input type="text" name="nombreusuario" id="nombreusuario" value="" placeholder="Usuario" /&gt;</pre>
<p>Si tenemos un contenedor de <em>jQuery Mobile</em> para controles de formularios le asignamos la clase al propio contenedor:</p>
<pre class="brush:xml">&lt;div data-role="fieldcontain" class="ui-hide-label"&gt;
	&lt;label for="nombreusuario"&gt;Usuario:&lt;/label&gt;
	&lt;input type="text" name="nombreusuario" id="nombreusuario" value="" placeholder="Usuario" /&gt;
&lt;/div&gt;</pre>
<p>Ambos ejemplos se verían de la siguiente forma:</p>
<p class="alignCenter"><img class="alignnone size-full wp-image-2044" title="input" src="http://www.circulodemaquetadores.com/wp-content/uploads/2012/03/input.png" alt="Input accesible sin etiqueta label" width="292" height="55" /></p>
<p><span style="text-decoration: underline;"><strong>Nota:</strong></span> Si necesitamos deshabilitar ciertos elementos del formulario, usaremos el <strong>atributo disabled</strong>. En el caso de que necesitemos aplicar el estilo disabled a un elemento que no sea un control de formulario, podemos utilizar la clase <strong>ui-disabled </strong>sobre el elemento.</p>
<h2>Conluyendo</h2>
<p>Hemos analizado de forma rápida las nociones básicas que debemos saber de <strong>jQuery Mobile</strong> y  sus principales componentes, podéis ver la información técnica más detallada en la <a title="Documentación jQuery Mobile" href="http://jquerymobile.com/demos/1.0.1/" target="_blank">documentación oficial</a>.</p>
<p>Para concluir os dejo una <a title="Ver guía de referencia" href="http://jquerymobile.com/demos/1.0.1/docs/api/data-attributes.html" target="_blank">Guía de referencia de jQuery Mobile</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/jquerymobile/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Trabajando con Drupal</title>
		<link>http://www.circulodemaquetadores.com/drupal/</link>
		<comments>http://www.circulodemaquetadores.com/drupal/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 22:24:17 +0000</pubDate>
		<dc:creator>Eduardo Sainz Lopez</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[historia]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=1823</guid>
		<description><![CDATA[Vamos a hablar de Drupal, uno de los gestores de contenido con más éxito actualmente. Drupal es uno de los CMS más utilizados junto con WordPress y Joomla, según las estadísticas de Google, podríamos situarlo en tercera posición. Al igual que sus competidores, es gratuito y basado en php. &#8220;Druplicon&#8221;, una gota con el detalle [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos a hablar de <strong>Drupal</strong>, uno de los gestores de contenido con más éxito actualmente.</p>
<p>Drupal es uno de los <strong>CMS más utilizados</strong> junto con WordPress y Joomla, según las estadísticas de Google, podríamos situarlo en tercera posición. Al igual que sus competidores, es gratuito y basado en php.</p>
<div class="imagen alignCenter"><img src="/images/drupal_logo.png" alt="Logotipo de Drupal" />
<p>&#8220;Druplicon&#8221;, una gota con el detalle del símbolo de infinito</p>
</div>
<p><span id="more-1823"></span></p>
<p>De primeras, Drupal es más difícil de manejar que los otros CMS citados, pero también nos ofrece mucha <strong>más potencia</strong> a la hora de desarrollar una web avanzada. <strong>Se puede decir que Drupal es apto para cualquier tipo de web, pero no para cualquier usuario.</strong> Así que para manejarnos con este CMS, tendremos que tener unas nociones de administración de usuarios, permisos, roles, nodos, bloques, menús, etc &#8230;</p>
<div class="imagen alignCenter"><img src="/images/trends_cms.png" alt="Logotipo de Drupal" />
<p>Estadísticas Google Trends</p>
</div>
<p>Drupal se ha caracterizado por su ligereza y optimización de código, aunque en las últimas versiones, el CMS está &#8220;<em>engordando</em>&#8221; considerablemente, en la versión 5.x el paquete pesaba unos 750 Kb, mientras que en la versión 7.x ya se superaron los 2mb. Según sus desarrolladores, este aumento de peso es debido a muchas mejoras, sobre todo, en la usabilidad del sistema.</p>
<h2>¿Qué webs usan Drupal?</h2>
<p>Webs como <a title="Amnistía Internacional" href="http://amnesty.org" target="_blank">amnesty.org</a>, <a title="The White House" href="http://whitehouse.gov" target="_blank">whitehouse.gov</a>, <a title="Java Net" href="http://java.net" target="_blank">java.net</a> o <a title="MotoGP" href="http://motogp.com" target="_blank">motogp.com</a> utilizan Drupal, esto nos demuestra que <strong>las capacidades de este gestor son enormes</strong>.</p>
<p>Aquí podemos ver un <strong><a title="Sitios hechos con Drupal" href="http://delicious.com/tag/madewithdrupal" target="_blank">listado más amplio de sitios hechos con Drupal.</a></strong></p>
<h2>Un poco de historia</h2>
<div class="imagen alignCenter"><img src="/images/drupal_dries.jpg" alt="Dries Buytaert, creador de Drupal" />
<p>Dries Buytaert, el &#8220;culpable&#8221; de todo esto.</p>
</div>
<p>En el año 2000, <a title="Web personal de Dries Buytaert" href="http://buytaert.net/" target="_blank"><strong>Dries Buytaert</strong></a> empezó a trabajar en un pequeño sitio de noticias, para permitir a sus compañeros de universidad dejarse notas y compartir archivos.</p>
<p>Dries pensó en añadir un nombre a su script, y en un principio lo llamó &#8220;Drop&#8221;, adquiriendo el dominio “drop.org”. Dorp es la palabra holandesa para “aldea o pueblo”, la cual fue considerada la palabra que se ajustaba a la pequeña comunidad.</p>
<p>Una vez establecido drop.org en la web, la web comenzó a ganar visitas y actividad, añadiendo características nuevas, como moderación, sindicación y autenticación distribuida, poco a poco los usuarios iban haciendo el script más potente.</p>
<p>Fue ya en enero de 2001, cuando Dries decidió liberar el software drop.org con el nombre de Drupal. El propósito era permitir a otros usar y extender la plataforma de experimentación para que más personas pudieran explorar nuevos caminos para el desarrollo.</p>
<p>El nombre Drupal, pronunciada “droo-puhl”, deriva de la pronunciación en inglés de la palabra holandesa “druppel”, que significa “gota”.</p>
<h2>¿Cuáles han sido las claves del éxito?</h2>
<ul>
<li>Código abierto y gratuito.</li>
<li>Alta modularidad y escalabilidad.</li>
<li>Miles de módulos disponibles (más de 15.000)</li>
<li>Bajos requerimientos técnicos.</li>
<li>Apto para cualquier tipo de web (flexibilidad y adaptabilidad)</li>
<li>Amplia y activa comunidad de desarrollo.</li>
</ul>
<h2>Empezando con drupal.</h2>
<p>Lo primero de todo, es conocer los requerimientos mínimos para instalar este CMS en su última versión:</p>
<ul>
<li>PHP Versión: 5.2 o superior</li>
<li>Base de datos: MySQL 5.0.15 o PostgreSQL 8.3, también es compatible con Oracle, SQLite y Microsoft SQL Server</li>
<li>PHP Memoria: 40 MB &#8211; 64 MB</li>
</ul>
<p>Como veis, unos requisitos bastante asumibles en cualquier servidor. Cumplida esta parte, sólo nos queda ir a <a title="Página oficial de Drupal" href="http://drupal.org/start" target="_blank">la página oficial</a> donde podremos encontrar todas las descargas y soporte necesario.</p>
<h2>Maquetación de plantillas en Drupal.</h2>
<p>Respecto al apartado que interesa a los <strong>desarrolladores Frontend</strong>, Drupal también es un poco más complejo de personalizar que sus homólogos Joomla y WordPress.</p>
<p>Tenemos multitud de <strong>plantillas gratuitas para Drupal</strong> en la web oficial <a title="Plantillas gratuitas para Drupal" href="http://drupal.org/project/themes" target="_blank">http://drupal.org/project/themes</a></p>
<p>Una vez descargada la plantilla, tendremos que extraerla en <strong>sites/all/themes/</strong>, después, en el panel de administración, nos dirigimos a administer &gt; site building &gt; themes, y pulsamos en activar la plantilla que hemos subido.</p>
<p><strong>Consejos a la hora de maquetar:</strong></p>
<ul>
<li>Evitar usar &#8220;id&#8221; para dar estilo.</li>
<li>Añadir directamente las clases dentro de la etiqueta.</li>
<li>El encabezado principal del sitio, debe llevar la id &#8221;site-name&#8221;</li>
<li>El resto de encabezados h1, debe llevar la clase title &lt;h1 id=&#8221;page-title&#8221; class=&#8221;title&#8221;&gt;</li>
<li>Los subencabezados y los títulos de bloque, deberán ser &lt;h2&gt;</li>
</ul>
<h2>Plantillas Drupal.</h2>
<div class="imagen alignCenter"><img src="/images/theme7_anatomy.png" alt="Estructura plantillas" />
<p>Estructura típica de una theme Drupal</p>
</div>
<p>Las plantillas de drupal deben estar formadas por una serie de archivos que aquí detallamos:</p>
<p><strong>. info (requerido)</strong></p>
<p>En este archivo va toda la información de la plantilla. Es requerido desde la versión 6.x, aquí se especifican los meta datos, hojas de estilo, JavaScripts, los regiones del diseño.</p>
<p>Este es el contenido de un archivo .info:</p>
<ul>
<li>name <em>(obligatorio)</em></li>
<li>description <em>(recomendado)</em></li>
<li>screenshot</li>
<li>version <em>(descontinuado)</em></li>
<li>core  <em>(obligatorio)</em></li>
<li>engine <em>(obligatorio en la mayoría de casos)</em></li>
<li>base theme</li>
<li>regions</li>
<li>features</li>
<li>stylesheets</li>
<li>scripts</li>
<li>php</li>
</ul>
<p><strong>.tpl.php</strong></p>
<p>Los archivos con esta extensión, son las plantillas donde podemos escribir nuestro código xhtml y insertar variables php.</p>
<p><strong>template.php</strong></p>
<p>En este archivo, vamos a introducir las funciones, condicionales que necesitaremos en nuestro sitio.</p>
<p>Espero más adelante poder elaborar un pequeño tutorial de maquetación para Drupal y poder entrar más en detalle en el desarrollo de plantillas para este gran CMS.</p>
<h2>Enlaces</h2>
<p><a title="Web oficial de Drupal" href="http://drupal.org/">Web oficial</a><br />
<a title="Comunidad de soporte Drupal en español" href="http://drupal.org.es/">Drupal Hispano</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/drupal/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como semantizar textos &#8211; Parte 2 &#8211; (Microformatos)</title>
		<link>http://www.circulodemaquetadores.com/semantica-microformatos/</link>
		<comments>http://www.circulodemaquetadores.com/semantica-microformatos/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 13:42:46 +0000</pubDate>
		<dc:creator>Jorge López</dc:creator>
				<category><![CDATA[Semántica Web]]></category>
		<category><![CDATA[microformatos]]></category>
		<category><![CDATA[semántica web]]></category>
		<category><![CDATA[textos enriquecidos]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=1882</guid>
		<description><![CDATA[Hace mucho tiempo explicamos que eran los microformatos e incluso pusimos algunos ejemplos de los más utilizados. En aquella época todavía no estaban muy extendidos y se tomaban como una iniciativa bienintencionada pero sin un claro futuro.



La situación ha cambiado radicalmente desde que los buscadores más importantes presentaron schema.org, para recomendar y alentar el uso de formatos enriquecidos. Incluso su utilización condiciona la visualización de los resultados de búsqueda sobretodo para búsquedas relacionadas con opiniones, eventos, recetas y otros tantos.]]></description>
			<content:encoded><![CDATA[<p>Hace mucho tiempo <a title="Enlace abre en nueva ventana" href="http://www.circulodemaquetadores.com/microformatos/" target="_blank">explicamos que eran los microformatos</a> e incluso pusimos algunos ejemplos de los más utilizados. En aquella época todavía no estaban muy extendidos y se tomaban como una iniciativa bienintencionada pero sin un claro futuro.</p>
<p class="alignCenter"><img class="size-medium wp-image-1884" title="microformat-logo" src="http://www.circulodemaquetadores.com/wp-content/uploads/2012/03/microformat-logo1-300x83.png" alt="Logotipo de microformatos.org" width="300" height="83" /></p>
<p>La situación ha cambiado radicalmente desde que los buscadores más importantes presentaron <a title="Enlace abre en nueva ventana" href="http://www.schema.org" hreflang="en" target="_blank">schema.org</a>, para <a title="Abre en nueva ventana" href="http://support.google.com/webmasters/bin/answer.py?hl=es&amp;answer=146897" target="_blank">recomendar</a> y <a title="Enlace abre en nueva ventana" href="http://support.google.com/webmasters/bin/answer.py?hl=es&amp;answer=99170" target="_blank">alentar</a> el uso de formatos enriquecidos. Incluso su utilización <strong>condiciona la visualización de los resultados de búsqueda</strong> sobretodo para búsquedas relacionadas con opiniones, eventos, recetas y otros tantos.</p>
<p><span id="more-1882"></span></p>
<p>Quizá los microformatos sea considerados por muchos como <strong>el método más sencillo para semantizar textos</strong>, por ello hemos percibido un aumento de su utilización. Esto hace aún más necesario recordar sus ventajas, sus inconvenientes y dar algunos consejos para que tendrémos que tener en cuenta cuando los utilicemos.</p>
<p>Recordamos que los microformatos son <strong>trozos de código HTML</strong> que utilizan clases, normalmente en etiquetas div y span, para enriquecer y semantizar contenido. De esta manera mediante un marcado estandarizado, lograremos crear contenidos rico semánticamente para que las máquinas puedan entenderlo. La página oficial de los microformatos es: <a title="Enlace abre en nueva ventana" href="http://microformats.org" hreflang="en" target="_blank">microformats.org</a></p>
<h2>Ventajas</h2>
<ul>
<li>Son fáciles de utilizar y tienen una amplia implementación.</li>
<li>Son una de las mejores soluciones para adoptar de forma completa <strong>el desarrollo según estándares y marcado semántico</strong>.</li>
<li>Tienen una gran modularidad, además su simplicidad aumenta la probabilidad de que el <span lang="en">software</span> aproveche su presencia en las páginas web.</li>
<li>Tienen aplicación inmediata y solucionan problemas concretos.</li>
<li>Permiten la adaptación a <abbr title="eXtensible HyperText Markup Language" lang="en">XHTML</abbr> de <abbr title="Resource Description Framework" lang="en">RDFs</abbr> existentes.</li>
<li><strong>Cualquiera puede proponer un microformato</strong> y someterlo a la revisión de la comunidad de modo que siempre se impondrán los más útiles.</li>
<li>Para adoptarlos <strong>no es necesario realizar grandes modificaciones</strong> a nuestras páginas, tan solo hay que agregar nuevos atributos a las etiquetas ya existentes.</li>
<li>No es necesario contar con ninguna herramienta especializada para utilizarlos.</li>
<li>Siguiendo la idea ya introducida por Yahoo! Search Monkey, actualmente <strong>Google muestra resultados enriquecidos</strong> basados en microformatos, mostrando algunos resultados con información ampliada.</li>
</ul>
<h2>Desventajas</h2>
<ul>
<li>Microformas.org es una <strong>iniciativa &#8220;independiente&#8221;</strong>, adoptada por muchos desarrolladores, pero no forma parte de la propuesta <abbr title="World Wide Web Consortium" lang="en">W3C</abbr> para Web Semántica.</li>
<li>Tienen un vocabulario reducido.</li>
<li>Existen muchos microformatos &#8220;moribundos&#8221; que puedes estar utilizando sin saberlo.</li>
<li>Al ser un vocabulario aprobado por la comunidad, <strong>no puede ser modificado de manera anónima por desarrolladores independientes</strong>.</li>
<li>Su aplicación todavía es muy genérica y acotada a casos muy concretos.</li>
<li>Quizás algunas nomenclaturas no sean lo suficientemente descriptivas, lo que podría provocar confusiones y errores en algunos programadores no familiarizados con su utilización.</li>
</ul>
<h2>Consejos</h2>
<ul>
<li>Es importante <strong>utilizar los microformatos con sentido común</strong>, tenemos que entender que todavía se ajustan a casos muy concretos. Debemos usarlos cuando sean realmente necesarios.</li>
<li>El contenido oculto mediante hoja de estilo o JavaScript, no será mostrado por el buscador.</li>
<li>Cuando utilices el microformato de críticas (hReview), las puntuaciones que debemos pasar al microformato deben de ir de 1(Mala) a 5 (Muy Buena). El sistema de puntuación de tu página se deberá ajustar a ese criterio.</li>
<li>Estate siempre atento a schema.org, porque cada vez se van adoptando más y más convenciones de marcado semántico.</li>
<li>Google ha puesto a disposición de los desarrolladores la <a title="Enlace abre en nueva ventana" href="http://www.google.com/webmasters/tools/richsnippets" hreflang="en" target="_blank"><span lang="en"><strong>Rich Snippets Testing Tool</strong></span></a> donde podremos testear nuestros fragmentos enriquecidos y nos mostrarán el aspecto que estos tendrán en los <abbr title="Search Engine Results Page" lang="en">SERPs</abbr>.</li>
<li>Algunos de los microformatos más utilizados como el hCard o hproduct, todavía no generan una vista especial en los Resultados de Google.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/semantica-microformatos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como semantizar textos &#8211; Parte 1 &#8211; (Los formatos RDF)</title>
		<link>http://www.circulodemaquetadores.com/semantica-html-rdf-rdfa-erd/</link>
		<comments>http://www.circulodemaquetadores.com/semantica-html-rdf-rdfa-erd/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 12:53:48 +0000</pubDate>
		<dc:creator>Jorge López</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Semántica Web]]></category>
		<category><![CDATA[eRDF]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[RDFa]]></category>
		<category><![CDATA[semántica]]></category>
		<category><![CDATA[semántica web]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=1749</guid>
		<description><![CDATA[Cada vez se hace más evidente que aportar textos enriquecidos a nuestras web trae muchas ventajas. Actualmente los robots intentar deducir un dato basándose en el contenido que lo rodea, pero con semántica seremos nosotros quien le digamos a los robots que tipo de información es. Obtendremos así búsquedas más precisas y mejoradas aumentando también la experiencia de usuario, porque las búsquedas en Yahoo y Google mejoran su apariencia con contenidos semantizados.

Actualmente la información semántica puede aparecer en la web de las siguientes formas:

    Ficheros RDF
    Meta etiquetas
    Utilizando vínculos relacionales
    Etiquetas HTML semánticas
    Microformatos
    Microdatos]]></description>
			<content:encoded><![CDATA[<p>Cada vez se hace más evidente que aportar textos enriquecidos a nuestras web trae muchas ventajas. Actualmente los robots intentar deducir un dato basándose en el contenido que lo rodea, pero con semántica seremos nosotros quien le digamos a los robots que tipo de información es. Obtendremos así <strong>búsquedas más precisas y mejoradas</strong> aumentando también la experiencia de usuario, porque las búsquedas en Yahoo y Google mejoran su apariencia con contenidos semantizados.</p>
<p>Actualmente la información semántica puede aparecer en la web de las siguientes formas:</p>
<ul>
<li>Ficheros <acronym title="Resource Description Framework" lang="en">RDF</acronym></li>
<li>Meta etiquetas</li>
<li>Utilizando vínculos relacionales</li>
<li>Etiquetas <acronym title="HyperText Markup Language" lang="en">HTML</acronym> semánticas</li>
<li>Microformatos</li>
<li>Microdatos</li>
</ul>
<p><span id="more-1749"></span></p>
<p>Dejando de lado algunas etiquetas muy concretas HTML4 y el uso de metadatos en la cabecera de los documentos HTML, el primer paso firme para la adopción de textos enriquecidos fueron los eRDF (estándar para <acronym title="eXtensible HyperText Markup Language" lang="en">XHTML</acronym> 1.0) y los RDFa (para XHTML1.1). Estas semánticas las explicaremos con más detalle en este artículo.</p>
<h2>Texto enriquecido mediante RDF (<span lang="en">Resource Description Framework</span>)</h2>
<p>Se trata de es un <span lang="en">framework</span> para metadatos recomendado por la <acronym title="World Wide Web Consortium" lang="en">W3C</acronym> en 1999. Bajo una sintaxis <acronym title="Extensible Markup Language" lang="en">XML</acronym>, está pensado para dar <strong>semántica a la información y generar metadatos sobre dicha información</strong>. Esto permite que los datos puedan ser integrados y reutilizados.</p>
<p>RDF constituye una tecnología fundamental dentro de la Web Semántica, cuyo funcionamiento se resume en una conversión de recursos de la Web en expresiones compuestas que se estructuran en tres partes:</p>
<ul>
<li>Lo que se describe.</li>
<li>La propiedad del recurso que se desea definir.</li>
<li>El valor de la propiedad con el que se define la relación.</li>
</ul>
<h3>Ejemplo de RDF</h3>
<p>La frase: <cite>&#8220;La semántica y la web 3.0 &#8211; Parte 1, está escrito por Jorge López en el blog círculo de maquetadores&#8221;</cite>, se representa en RDF de esta manera:</p>
<pre class="brush:xml">&lt;rdf:RDF&gt;
  &lt;rdf:Description about="http://www.circulodemaquetadores.com/semantica-RDF-RDFa"&gt;
  &lt;s:Creator&gt;Jorge López&lt;/s:Creator&gt;
  &lt;dc:title&gt; La semántica y la web 3.0 - Parte 1&lt;/dc:title&gt;
  &lt;dc:publisher&gt;Cículo de maquetadores&lt;/dc:publisher&gt;
  &lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;</pre>
<p>El resto de información y gramáticas formales sobre RDF la podrás encontrar en la <a title="Abre en nueva ventana" href="http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm" target="_blank">correspondiente especificación</a> de la W3C.</p>
<h2>RDFa (<span lang="en">Resource Description Framework-in-attributes</span>)</h2>
<p>Se trata de extensiones específicas de XHTML 1.1, (a la espera de su implementación en HTML 5) propuestas por W3C. Este método <strong>enriquece los textos a través de los atributos y anotaciones</strong> de las etiquetas XHTML invisibles para el usuario. Se validan mediante la <acronym title="document type definition" lang="en">DTD</acronym> – <span lang="en">Document Type Definition</span>- XHTML1.1+RDFa. Aunque todo esto parezca muy complicado, en realidad de lo que se trata de extender el manejo de los atributos &#8220;rel&#8221;, &#8220;<span lang="en">content</span>&#8221; y &#8220;<span lang="en">property</span>&#8220;.</p>
<p>Para estandarizar su uso utilizaremos diccionarios predefinidos como Dublin Core. Para indicar en RDFa que estamos utilizando un diccionario, lo haremos de la siguiente manera:</p>
<pre class="brush:xml">&lt;body&gt;
  &lt;div class="articulo"&gt;
    &lt;h2&gt; Como semantizar textos - Parte 1 &lt;/h2&gt;
    &lt;p&gt;Texto del artículo.&lt;/p&gt;
    &lt;p&gt;Autor: &lt;span property="dc:author" content="Jorge lópez"&gt; Jorge lópez &lt;/span&gt;&lt;/p&gt;
    &lt;p&gt;Fecha: &lt;span property="dc:date" content="2011-12-14"&gt;14 de diciembre de 2011&lt;/span&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/body&gt;</pre>
<p>En el diccionario <span lang="en">Dublin Core</span> vienen especificados los términos <span lang="en">author</span> y <span lang="en">date</span>. Para buscar otros términos solo tendremos que buscarlos en el diccionario.</p>
<p>Como vemos la ventaja de RDFa es que sus reglas son genéricas, lo que facilitará la labor de muchos autores. <strong>Las páginas que no contienen RDFa se visualizan igual</strong> que las que tienen, ya que de lo que se trata es de aportar riqueza semántica a la información, no de cambiar ni el contenido ni de la disposición de los elementos.</p>
<p>Nuevamente, la mejor manera de completar la información sobre RDFa es hacer referencia al <a title="Abre en nueva ventana" href="http://www.w3.org/TR/rdfa-in-html/" target="_blank">borrador de trabajo</a> sobre RDFa de la W3C. <a title="Abre en nueva ventana" href="http://support.google.com/webmasters/bin/answer.py?hl=es&amp;answer=146898" target="_blank">El blog para webmasters de google</a> también recomienda utilizar marcado RDFa para mejorar los resultados y además proporciona algunos ejemplos.</p>
<h2>eRDF (<span lang="en">Embedded RDF</span>)</h2>
<p>El formato eRDF fue creado en 2005 por Ian Davis inspirado por los microformatos. Se trata de una sintaxis para extraer la información del documento ya sea por medio de un Parser o una Hoja de estilos <acronym title="Extensible Stylesheet Language- Transformations" lang="en">XSLT</acronym>. eRDF solo está parcialmente apoyado por la W3C.</p>
<p>Para que un documento HTML le sea reconocido la existencia de eRDF se debe declarar la adhesión a un perfil especial. Esto se logra sumando el atributo <span lang="en">profile</span> en el <span lang="en">head</span> del documento:</p>
<pre class="brush:xml">&lt;head profile="http://purl.org/NET/erdf/profile"&gt;</pre>
<p>Toda la información sobre eRDF en el blog de <a title="Página en inglés abre en nueva ventana" href="http://blog.iandavis.com/2005/10/19/introducing-embedded-rdf/" hreflang="en" target="_blank">Ian Davis</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/semantica-html-rdf-rdfa-erd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La semántica de los enlaces: definiciones de atributo rev y rel</title>
		<link>http://www.circulodemaquetadores.com/semantica-enlaces-definiciones-atributo-rev-rel/</link>
		<comments>http://www.circulodemaquetadores.com/semantica-enlaces-definiciones-atributo-rev-rel/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 13:10:25 +0000</pubDate>
		<dc:creator>Jorge López</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Semántica Web]]></category>
		<category><![CDATA[Enlaces]]></category>
		<category><![CDATA[semántica]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=1742</guid>
		<description><![CDATA[<h2>La semántica de los enlaces: definiciones de atributo rev y rel</h2>
<p>Con la aparición de los microformatos y más recientemente de los microdatos de <acronym title="HyperText Markup Language" lang="en">HTML</acronym>5, se ha desatado un enorme interés por la semántica. Hay muchas maneras de enriquecer texto para ayudar a los buscadoras a entender e indexar mejor la información que generamos. Un método clásico, pero no muy extendido, para generar metadados es a través de los enlaces.</p>]]></description>
			<content:encoded><![CDATA[<p>Con la aparición de los microformatos y más recientemente de los microdatos de <acronym title="HyperText Markup Language" lang="en">HTML</acronym>5, se ha desatado un enorme interés por la semántica. Hay muchas maneras de enriquecer texto para ayudar a los buscadoras a entender e indexar mejor la información que generamos. Un método clásico, pero no muy extendido, para generar metadados es a través de los enlaces.</p>
<p>Repasemos algunos atributos básicos de los enlaces. Como veremos, algunos de ellos ya aportan información extra sobre el contenido enlazado:</p>
<p><span id="more-1742"></span></p>
<h2>Definiciones de atributos</h2>
<ul>
<li><strong>href</strong>: Especifica la localización de un recurso de la Web. La ruta generada podrá ser absoluta o relativa respecto a la web.</li>
<li><strong>hreflang</strong>: Ester atributo sólo puede utilizarse junto con href, porque especifica el idioma del recurso enlazado.</li>
<li><strong>title</strong>: Añade información sobre un vínculo. Esta información puede ser utilizada de manera opcional por los agentes de usuario o dependiendo de la versión de navegador, puede ser representada mediante un <span lang="en">tool-tip</span>.</li>
<li><strong>name</strong>: Asigna un nombre a un enlace de modo que éste pueda actuar como destino de otro vínculo a modo de ancla.</li>
<li><strong>type</strong>: Especifica qué tipo de contenido es el contenido enlazado con href. Por ejemplo, podemos especificar que lo que enlazamos es un documento <acronym title="portable document format" lang="en">PDF</acronym>. Si es un tipo de contenido no soportado por los agentes de usuario, pueden optar por no mostrarlo. En <a title="Abre en nueva ventana" href="http://www.circulodemaquetadores.com/lista-de-tipos-de-contenido-mime-para-enlaces-a-documentos" hreflang="en" target="_blank">este artículo</a> repasamos algunos de los tipos de contenido registrados.</li>
<li><strong>charset</strong>: Este atributo especifica la codificación de caracteres de la página o recurso enlazado con el atributo href.</li>
</ul>
<p>Para enriquecer semánticamente los enlaces, los atributos más interesantes y puede que más útiles son rev y rel. Ahora veremos su función y sus valores.</p>
<h2>Atributos rev y rel</h2>
<ul>
<li><strong>rel</strong>: Permite definir la relación entre la página actual y la enlazada.</li>
<li><strong>rev</strong>: Define la relación que tendrá la página enlazada con la actual.</li>
</ul>
<h2>Valores de los atributos de rev y rel</h2>
<ul>
<li><strong>alternate</strong>: Indica que es una versión alternativa al documento actual. Cuando se utiliza conjuntamente con el atributo &#8220;hreflang&#8221;, significa que enlaza a una versión traducida del documento. Si es utilizada con el atributo &#8220;media&#8221;, implica que esa versión está preparada para un medio diferente (como una impresora)</li>
<li><strong>stylesheet</strong>: Indica que se ha enlazado una hoja de estilos externa. Se puede utilizar junto con &#8220;Alternate&#8221; para ofrecer hojas de estilo alternativas seleccionables por el usuario.</li>
<li><strong>start</strong>: Indica a los motores de búsqueda que el documento actual es considerado por el autor como el punto de inicio de un conjunto de documentos. Por ejemplo la primera página de una paginación o el primer capítulo de un manual&#8230;etc.</li>
<li><strong>next &#8211; prev</strong>: Indica que es el documento que enlazados es anterior o siguiente al actual dentro de una secuencia lógica de documentos. En una paginación estos valores pueden sernos muy útiles.</li>
<li><strong>index</strong>: Es el documento que hace la función de índice en una secuencia de documentos.</li>
<li><strong>copyright</strong>: Se refiere al aviso de copyright del documento actual.</li>
<li><strong>help</strong>: Se refiere a un documento que ofrece ayuda (más información, vínculos a otros recursos informativos, etc.)</li>
</ul>
<p>La <a title="Abre en nueva ventana" href="http://www.w3.org/TR/1999/REC-html401-19991224/types.html#type-links" hreflang="en" target="_blank">especificación oficial de HTML</a> define la lista completa de tipos de relaciones que se pueden utilizar.</p>
<h2>Como microformatos</h2>
<p>Se han creado <a title="Abren en nueva ventana" href="http://microformats.org/2005/12/01/rel-vs-rev" hreflang="en" target="_blank">varios microformatos</a> para ser utilizados como valor de estos atributos. Algunos de estos microformatos son tan útiles y se han hecho tan populares que incluso han sido recomendados por google para no ser penalizados, a continuación veremos unos pocas aplicaciones:</p>
<ul>
<li><strong>nofollow</strong>: Sin duda es el más popular de todos. Fue propuesto por algunos buscadores para indicar qué enlace no debe ser considerado por los algoritmos de posicionamiento y de este modo para luchar más eficazmente contra los spammers. Su aplicación más común, es para aplicarlo a respuestas y comentarios en blogs. <a title="Abre en nueva ventana" href="http://microformats.org/wiki/rel-nofollow" hreflang="en" target="_blank">Enlace a documentación</a>.</li>
<li><strong>license</strong>: Indicar el tipo de licencia que tiene el contenido. Lo podemos utilizar para indicar que el destino del enlace es la licencia del contenido de la página actual. <a title="Abre en nueva ventana" href="http://microformats.org/wiki/rel-license" hreflang="en" target="_blank">Enlace a documentación</a></li>
<li><strong>tag</strong>: sirve para agregar etiquetas en los post de los blogs. Así podrá categorizar nuestras webs mediante la adopción de este tipo de etiquetas. <a title="Abre en nueva ventana" href="http://microformats.org/wiki/rel-tag" hreflang="en" target="_blank">Enlace a documentación</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/semantica-enlaces-definiciones-atributo-rev-rel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Umbraco</title>
		<link>http://www.circulodemaquetadores.com/umbraco/</link>
		<comments>http://www.circulodemaquetadores.com/umbraco/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 22:56:55 +0000</pubDate>
		<dc:creator>Eduardo Sainz Lopez</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[plantillas]]></category>
		<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://www.circulodemaquetadores.com/?p=1715</guid>
		<description><![CDATA[Es posible que a muchos no os suene de nada Umbraco, pero hoy por hoy, es uno de los CMS muy a tener en cuenta. Está desarrollado con C# y funciona sobre infraestructura Microsoft (.net). Con Umbraco se pueden construir desde sitios pequeños (páginas personales, blogs) hasta crear sitios avanzados, portales, proyectos para grandes empresas. [...]]]></description>
			<content:encoded><![CDATA[<p>Es posible que a muchos no os suene de nada <strong>Umbraco</strong>, pero hoy por hoy, es uno de los CMS muy a tener en cuenta. Está desarrollado con C# y funciona sobre infraestructura Microsoft (.net).</p>
<p>Con Umbraco se pueden construir desde sitios pequeños (páginas personales, blogs) hasta crear sitios avanzados, portales, proyectos para grandes empresas. De hecho, grandes compañías ya han apostado por este gestor, algunas de renombre como Toyota, Sandisk, Microsoft, Peugeot, Vogue &#8230;, veamos que nos puede ofrecer este CMS.</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-1687" src="http://www.sledgedev.com/blog/wp-content/uploads/2011/11/umbraco_logo.jpg" alt="Logotipo de Umbraco" /></p>
<p><span id="more-1715"></span></p>
<h2>Un poco de historia</h2>
<p>Aunque muchos lo hayamos conocido hace poco, Umbraco no es nuevo; fue desarrollado por Niels Hartvig en el año 2000 y fue liberado como software open source en 2004, por lo que Umbraco se convierte en un CMS gratuito con un gran potencial. Está construído sobre <strong>Microsoft .NET Framework</strong>, sí, Microsoft y OpenSource parece que se están haciendo buenos amigos.</p>
<p>De Umbraco se puede destacar la sencillez y fácilidad de manejo, permite usar los controles de usuario .NET que hayas desarrollado con Visual Studio sin necesidad de realizar cambios de código, o bien utilizar controles personalizados comerciales. Soporta la mayoría de los lenguajes de la red y, por supuesto, todo lo referido a Ajax; aunque está escrito en C#, permite utilizar cualquier lenguaje compatible con .NET como VB.NET, IronPython, IronRuby, e incluso lenguajes “funky” como LOLCODE.</p>
<h2>Maquetación de plantillas en Umbraco</h2>
<p>Los <strong>maquetadores estamos de suerte</strong>, ya que incluye un compacto motor de plantillas, que permite editar y rediseñar plantillas existentes o bien, crear nuestro propioHTML y CSS sin restricciones, con un código limpio y accesible.</p>
<p>En la web oficial, nos ofrecen un <a href="http://our.umbraco.org/projects/starter-kits/templatecreator">una plantilla base</a>, como punto de partida a nuestro diseño, utilizando el framework css 960 e incluyendo algunos propiedades de <strong>css3</strong>.</p>
<p>También dispone de una <a href="http://our.umbraco.org/forum/templating/templates-and-document-types">comunidad</a> donde plantear nuestras dudas de maquetación</p>
<p>Después de trabajar con Umbraco, podemos afirmar que es unos de los gestores más flexibles a la hora de maquetar.</p>
<h2>Enlaces de interés</h2>
<ul>
<li><a href="http://www.umbraco.com">Web oficial</a></li>
<li><a href="http://our.umbraco.org/">Comunidad oficial</a></li>
<li><a href="http://holaumbraco.org/">Umbraco españa</a></li>
<li><a href="http://www.umbracolombia.com">Umbraco colombia</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.circulodemaquetadores.com/umbraco/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
