<?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>aNieto2K &#187; estandares</title>
	<atom:link href="http://www.anieto2k.com/category/web/estandares/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anieto2k.com</link>
	<description>Desarrollo web, Wordpress, y alguna cosilla más</description>
	<lastBuildDate>Wed, 17 Mar 2010 02:57:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mozilla Firefox, por fín CSS Transitions</title>
		<link>http://www.anieto2k.com/2010/02/23/mozilla-firefox-por-fin-css-transitions/</link>
		<comments>http://www.anieto2k.com/2010/02/23/mozilla-firefox-por-fin-css-transitions/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 10:10:32 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[CSS.transitions]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9712</guid>
		<description><![CDATA[Via Twitter descubro que Firefox 3.7 (la versión pre-alpha2) ya dispone de CSS Transtions. El sistema con el cual mediante sentencias CSS podemos aplicar movimiento a elementos HTML de nuestra página. Esta funcionalidad, disponible en WebKit desde hace ya bastante tiempo, nos permite realizar tareas que actualmente se realizan mediante Javascript, en la capa de [...]]]></description>
			<content:encoded><![CDATA[<a href="http://twitter.com/paulrouget/statuses/9515862501">Via Twitter descubro</a> que <a href="http://www.bitstampede.com/2010/02/22/css-transitions-in-gecko/">Firefox 3.7 (la versión pre-alpha2) ya dispone de CSS Transtions</a>. El sistema con el cual mediante <a href="http://www.w3.org/TR/css3-transitions/">sentencias CSS podemos aplicar movimiento a elementos HTML</a> de nuestra página. Esta funcionalidad, disponible en <a href="http://www.anieto2k.com/2008/08/18/usando-css-animations/">WebKit desde hace ya bastante tiempo</a>, nos permite <a href="http://www.anieto2k.com/2008/04/02/dock-estilo-macos-con-css-animations/">realizar tareas que actualmente se realizan mediante Javascript</a>, en la capa de funcionalidad, en la capa de diseño, algo que ha levantado dispares opiniones al respecto.
<pre><code><strong>// HTML
</strong>&lt;ul&gt;
 &lt;li id="long1"&gt;Long, gradual transition...&lt;/li&gt;
 &lt;li id="fast1"&gt;Very fast transition...&lt;/li&gt;
 &lt;li id="delay1"&gt;Long transition with a 2-second delay...&lt;/li&gt;
 &lt;li id="easeout"&gt;Using ease-out timing...&lt;/li&gt;
 &lt;li id="linear"&gt;Using linear timing...&lt;/li&gt;
 &lt;li id="cubic1"&gt;Using cubic-bezier(0.2, 0.4, 0.7, 0.8)...&lt;/li&gt;
&lt;/ul&gt;

<strong>// CSS
</strong>#delay1 {
 position: relative;
 -moz-transition-property: font-size;
 -moz-transition-duration: 4s;
 -moz-transition-delay: 2s;
 font-size: 14px;
}

#delay1:hover {
 -moz-transition-property: font-size;
 -moz-transition-duration: 4s;
 -moz-transition-delay: 2s;
 font-size: 36px;
}</code></pre>
Podemos descargar <a href="http://nightly.mozilla.org/">la última versión de desarrollo de Firefox</a> y probarlas en nuestras manos usándo <a href="https://developer.mozilla.org/en/CSS/CSS_transitions">la documentación que Mozilla</a> nos ha preparado.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2008/07/20/10-extensiones-para-firefox-con-las-que-mejorar-nuestra-privacidad/" rel="bookmark" title="Permanent Link: 10 extensiones para Firefox con las que mejorar nuestra privacidad">10 extensiones para Firefox con las que mejorar nuestra privacidad</a></li><li><a href="http://www.anieto2k.com/2010/01/21/mozilla-firefox-3-6-esta-entre-nosotros/" rel="bookmark" title="Permanent Link: Mozilla Firefox 3.6 está entre nosotros">Mozilla Firefox 3.6 está entre nosotros</a></li><li><a href="http://www.anieto2k.com/2008/05/18/disponible-la-rc1-de-firefox-3/" rel="bookmark" title="Permanent Link: Disponible la RC1 de Firefox 3">Disponible la RC1 de Firefox 3</a></li><li><a href="http://www.anieto2k.com/2010/01/18/firefox-3-6-rc2-disponible-para-descargar/" rel="bookmark" title="Permanent Link: Firefox 3.6 RC2 disponible para descargar">Firefox 3.6 RC2 disponible para descargar</a></li><li><a href="http://www.anieto2k.com/2008/06/04/firefox-3-rc-2-disponible-extraoficialmente/" rel="bookmark" title="Permanent Link: Firefox 3 RC 2 disponible &#8220;extraoficialmente&#8221;">Firefox 3 RC 2 disponible &#8220;extraoficialmente&#8221;</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/23/mozilla-firefox-por-fin-css-transitions/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>DOMCached, librería para facilitar el almacenamiento DOM con jQuery y Prototype</title>
		<link>http://www.anieto2k.com/2010/02/23/domcached-libreria-para-facilitar-el-almacenamiento-dom-con-jquery-y-prototype/</link>
		<comments>http://www.anieto2k.com/2010/02/23/domcached-libreria-para-facilitar-el-almacenamiento-dom-con-jquery-y-prototype/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 07:34:01 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9710</guid>
		<description><![CDATA[Ayer vimos como Web SQL Database apunta buenas maneras para el futuro del almacenamiento de datos en el cliente. Tambien hemos visto lo interesante del almacenamiento DOM como sustituto de las odiosas cookies, Lawnchair nos ofrecía un interfaz límpio y cómodo para interactuar con estas opciones, y ahora DOMCached, nos facilita tambien la integración con [...]]]></description>
			<content:encoded><![CDATA[Ayer vimos como <a href="http://www.anieto2k.com/2010/02/22/web-sql-database-tu-base-de-datos-en-html5/">Web SQL Database apunta buenas maneras para el futuro</a> del almacenamiento de datos en el cliente. Tambien hemos visto <a href="http://www.anieto2k.com/2007/02/12/el-almacenamiento-dom-y-las-web-applications-10/">lo interesante del almacenamiento DOM</a> como sustituto de las odiosas cookies, <a href="http://www.anieto2k.com/2009/12/12/lawnchair-almacenamiento-dom-mediante-json/">Lawnchair</a> nos ofrecía un interfaz límpio y cómodo para interactuar con estas opciones, y ahora <a href="http://www.domcached.com/">DOMCached</a>, nos facilita tambien la integración con jQuery y Prototype.
<pre><code><strong>// Ejemplo jQuery
</strong>&lt;script src="jquery.js"&gt;&lt;/script&gt;
&lt;script src="jquery-json.js"&gt;&lt;/script&gt;
&lt;script src="domcached.js"&gt;&lt;/script&gt;
&lt;script&gt;
<strong>// Leemos el valor de "key"
</strong>var value = $.DOMCached.get("key");
if(!value){
<strong>	// Si no está disponible lo cargamos desde el servidor
</strong> 	value = load_data_from_server()
<strong> 	// Lo añadimos al DOM para futuros usos
</strong>	$.DOMCached.set("key",value);
}
&lt;/script&gt;</code>
</pre>
Compatible con <a href="http://www.domcached.com/#compatibility">la mayoría de navegadores actuales</a>, <em>DOMCached</em> está disponible como <a href="http://www.domcached.com/#download">plugin para Prototype y para jQuery</a>. Podemos ver <a href="http://github.com/andris9/DOMCached/tree/master/src/">el código fuente alojado en GitHub</a> y probarlo en vivo mediante <a href="http://www.domcached.com/jq-test">este ejemplo usando el plugin jQuery</a>.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/08/30/jquery-10-ha-salido-para-mostrarnos-la-luz/" rel="bookmark" title="Permanent Link: jQuery 1.0 ha salido para mostrarnos la luz">jQuery 1.0 ha salido para mostrarnos la luz</a></li><li><a href="http://www.anieto2k.com/2006/10/13/crea-dom-directamente-con-jquery-y-prototype/" rel="bookmark" title="Permanent Link: Crea DOM directamente con jQuery y Prototype">Crea DOM directamente con jQuery y Prototype</a></li><li><a href="http://www.anieto2k.com/2006/10/15/prototype-vs-jquery/" rel="bookmark" title="Permanent Link: Prototype vs jQuery">Prototype vs jQuery</a></li><li><a href="http://www.anieto2k.com/2009/03/30/prototype-161-rc2-compatibilidad-con-ie8/" rel="bookmark" title="Permanent Link: Prototype 1.6.1 RC2, compatibilidad con IE8">Prototype 1.6.1 RC2, compatibilidad con IE8</a></li><li><a href="http://www.anieto2k.com/2006/11/25/jquery-easing-un-plugin-para-facilitar-nuestros-efectos/" rel="bookmark" title="Permanent Link: jQuery Easing, un plugin para facilitar nuestros efectos">jQuery Easing, un plugin para facilitar nuestros efectos</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/23/domcached-libreria-para-facilitar-el-almacenamiento-dom-con-jquery-y-prototype/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Microsoft Windows te permitirá elegir el navegador que quieras</title>
		<link>http://www.anieto2k.com/2010/02/22/microsoft-windows-te-permitira-elegir-el-navegador-que-quieras/</link>
		<comments>http://www.anieto2k.com/2010/02/22/microsoft-windows-te-permitira-elegir-el-navegador-que-quieras/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 10:26:31 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[de la red]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9705</guid>
		<description><![CDATA[A partir del 1 de Marzo los usuarios de Windows podrán elegir el navegador por defecto de sus sistema operativo. De esta forma, el sistema operativo de Microsoft cumple con la normativa que la Unión Europea le impuso para evitar la ventaja que Internet Explorer tenía sobre los demás navegadores al estar por defecto en [...]]]></description>
			<content:encoded><![CDATA[A partir del 1 de Marzo<a href="http://blogs.technet.com/microsoftblog_es/archive/2010/02/19/la-pantalla-de-selecci-n-de-navegador-en-europa-qu-esperar-cu-ndo-esperarlo.aspx"> los usuarios de Windows podrán elegir el navegador por defecto de sus sistema operativo</a>. De esta forma, el sistema operativo de Microsoft cumple con la normativa que la Unión Europea le impuso para evitar la ventaja que Internet Explorer tenía sobre los demás navegadores al estar por defecto en el sistema operativo.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2010/02/4370168266_ddd0407201.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2010/02/4370168266_ddd0407201.jpg" alt="4370168266_ddd0407201" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2010/02/4370168266_ddd0407201.jpg"><small>(Ver Imagen)</small></a></p>
Se ofrecerá mediante una actualización desde Windows Update y el usuario (cada usuario del sistema) podrá seleccionar su navegador por defecto. El navegador seleccionado se descargará y se instalará directamente desde la aplicación, haciendo sencillo el uso para cualquier usuario  que verá como su navegador por defecto se instala automáticamente en sus sitema.
<h4>Actualización (23/02/2010 10:19):</h4>
<a href="http://www.nukeador.com/">Nukeador</a> nos avisa de que Mozilla ya ha empezado a mover ficha con <a href="http://www.mozilla-hispano.org/europa-elegira-navegador-porque-es-importante/">una campaña para informar a los usuarios sobre la importancia de esta elección</a>.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/09/24/microsoft-reconoce-que-vista-es-una-m/" rel="bookmark" title="Permanent Link: Microsoft reconoce que Vista es una m&#8230;">Microsoft reconoce que Vista es una m&#8230;</a></li><li><a href="http://www.anieto2k.com/2010/01/25/windows-3-11-en-tu-navegador/" rel="bookmark" title="Permanent Link: Windows 3.11 en tu navegador">Windows 3.11 en tu navegador</a></li><li><a href="http://www.anieto2k.com/2008/11/14/prueba-windows-mobile-614-desde-tu-escritorio/" rel="bookmark" title="Permanent Link: Prueba Windows Mobile 6.1.4 desde tu escritorio">Prueba Windows Mobile 6.1.4 desde tu escritorio</a></li><li><a href="http://www.anieto2k.com/2006/06/13/anade-un-wysiwyg-a-tu-web/" rel="bookmark" title="Permanent Link: Añade un WYSIWYG a tu web">Añade un WYSIWYG a tu web</a></li><li><a href="http://www.anieto2k.com/2009/08/29/internet-explorer-8-disponible-en-el-windows-server-update-services-wsus/" rel="bookmark" title="Permanent Link: Internet Explorer 8 disponible en el Windows Server Update Services (WSUS)">Internet Explorer 8 disponible en el Windows Server Update Services (WSUS)</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/22/microsoft-windows-te-permitira-elegir-el-navegador-que-quieras/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Web SQL Database, tu base de datos en HTML5</title>
		<link>http://www.anieto2k.com/2010/02/22/web-sql-database-tu-base-de-datos-en-html5/</link>
		<comments>http://www.anieto2k.com/2010/02/22/web-sql-database-tu-base-de-datos-en-html5/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 08:52:28 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[webdb]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9703</guid>
		<description><![CDATA[HTML5 nos introduce la posibilidad de disponer de un base de datos local almacenada en el navegador del usuario. Mediante Web SQL Database, la W3C ofrece una API estándar destinada a manipular bases de datos en el lado del cliente mediante peticiones SQL de forma asíncrona. Un complemento ideal al Almacenamiento DOM que ya hemos [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5 nos introduce la posibilidad de disponer de un base de datos local almacenada en el navegador del usuario. Mediante <a href="http://dev.w3.org/html5/webdatabase/">Web SQL Database</a>, la W3C ofrece una API estándar destinada a manipular bases de datos en el lado del cliente mediante peticiones SQL de forma asíncrona. Un complemento ideal al <a href="http://www.anieto2k.com/2007/02/12/el-almacenamiento-dom-y-las-web-applications-10/">Almacenamiento DOM</a> que ya hemos visto en otras ocasiones.</p>
<p><a href="http://www.anieto2k.com/2007/06/02/gearssql-facilita-tu-interaccion-con-google-gears/">Al igual que Google Gears SQL</a>, con HTML5 será posible realizar peticiones complejas mediante SQL. Los chicos de <a href="http://www.html5rocks.com/samples/webdatabase/todo/">HTML5Rocks ha creado una pequeña aplicación de ejemplo</a> que funciona sobre Google Chrome y de la que he podido crear una pequeña versión reutilizable que podremos usar en nuestras aplicaciones web.</p>
<pre><code>var webdb = {};
webdb.db = null;

<strong>// Función para crear la base de datos
</strong>webdb.open = function(options) {
	if (typeof openDatabase == "undefined") return;

<strong>	// Opciones por defecto
</strong>   	var options = options || {};
	options.name = options.name || 'noname';
	options.mb = options.mb || 5;
	options.description = options.description || 'no description';
	options.version = options.version || '1.0';

<strong>	// Definimos el tamaño en MB
</strong>   	var dbSize = options.mb * 1024 * 1024;

<strong>	// Cargamos la base de datos
</strong>   	webdb.db = openDatabase(options.name, options.version, options.description, dbSize);
}
<strong>// ExecuteSql
</strong>webdb.executeSql = function(sql, data, onSuccess, onError){
	if (!webdb.db) return;
	webdb.db.transaction(function(tx){tx.executeSql(sql, data,onSuccess,onError);});
}</code></pre>
<p>Este código, nos permite realizar peticiones SQL tales como crear una nueva tabla, leer, borrar o modificar de ella, está claro que únicamente en los navegadores que lo permitan.</p>
<pre><code><strong>// Ejemplo
</strong>var opt = {
	name: "ejemplo",
	mb: 1,
	description: "Base de datos de ejemplo",
	version: "1.0"
};

<strong>// Abrimos la base de datos
</strong>webdb.open(opt);

<strong>// Creamos la tabla
</strong>webdeb.executeSql('CREATE TABLE IF NOT EXISTS ejemplo (ID INTEGER PRIMARY KEY ASC, texto TEXT, added_on DATETIME"', [],
			function(tx, r){
				alert("Tabla creada");
			},
			function(tx, e){
				alert("Se ha producido un error: "e.message);
			});

<strong>// Insertamos un nuevo elemento
</strong>webdb.executeSql('INSERT INTO ejemplo (texto, added_on) VALUES (?,?)', ['Mensaje de ejemplo', new Date()],
			function(tx, r){
				alert("Elemento introducido");
			},
			function(tx, e){
				alert("Se ha producido un error: "e.message);
			});</code></pre>
<p>Esto nos permitirá crear <a href="http://www.anieto2k.com/2010/01/09/aplicaciones-web-offline-para-que-la-conexion-no-sea-problema/">aplicaciones más complejas gracias al almacenamiento de datos en la capa del cliente</a>. Eso si, será mucho más útil cuando todos los navegadores lo incorporen :D</p>
<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/10/20/webkit-ya-integra-almacenamiento-en-el-cliente/" rel="bookmark" title="Permanent Link: WebKit ya integra almacenamiento en el cliente">WebKit ya integra almacenamiento en el cliente</a></li><li><a href="http://www.anieto2k.com/2009/11/13/wordpress-2-9-te-ayudara-a-cuidar-tu-base-de-datos/" rel="bookmark" title="Permanent Link: Wordpress 2.9 te ayudará a cuidar tu base de datos">Wordpress 2.9 te ayudará a cuidar tu base de datos</a></li><li><a href="http://www.anieto2k.com/2009/07/06/enviate-copias-de-seguridad-de-tu-base-de-datos-a-tu-email/" rel="bookmark" title="Permanent Link: Enviate copias de seguridad de tu base de datos a tu email">Enviate copias de seguridad de tu base de datos a tu email</a></li><li><a href="http://www.anieto2k.com/2010/02/24/myjdb-base-de-datos-en-javascript-para-todos-los-navegadores/" rel="bookmark" title="Permanent Link: MyJDB, base de datos en Javascript para todos los navegadores">MyJDB, base de datos en Javascript para todos los navegadores</a></li><li><a href="http://www.anieto2k.com/2010/02/23/domcached-libreria-para-facilitar-el-almacenamiento-dom-con-jquery-y-prototype/" rel="bookmark" title="Permanent Link: DOMCached, librería para facilitar el almacenamiento DOM con jQuery y Prototype">DOMCached, librería para facilitar el almacenamiento DOM con jQuery y Prototype</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/22/web-sql-database-tu-base-de-datos-en-html5/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>El poder oculto de border-radius</title>
		<link>http://www.anieto2k.com/2010/02/11/el-poder-oculto-de-border-radius/</link>
		<comments>http://www.anieto2k.com/2010/02/11/el-poder-oculto-de-border-radius/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 08:15:55 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9689</guid>
		<description><![CDATA[Ya conocemos border-radius, la propiedad CSS que nos permite redondear los elementos de nuestras páginas mediante CSS. Aunque la propiedad aún no está correctamente integrada en los navegadores actuales, podemos disfrutar de ella mediante el uso de los correspondientes prefijos:
// Mozilla
-moz-border-radius:1em;

// WebKit
-webkit-border-radius:1em;

// W3C
border-radius:1em;
Aún así, hay gente que ha estado haciendo cosas realmente interesantes con ella.

(Ver [...]]]></description>
			<content:encoded><![CDATA[Ya conocemos <code>border-radius</code>, <a href="http://www.anieto2k.com/2007/08/22/tecnicas-css3-que-estoy-deseando-que-lleguen-a-mis-manos/">la propiedad CSS que nos permite redondear los elementos de nuestras páginas mediante CSS</a>. Aunque <a href="http://www.anieto2k.com/2009/02/11/quieres-saber-cuando-podras-usar-una-nueva-propiedad/">la propiedad aún no está correctamente integrada</a> en los navegadores actuales, podemos disfrutar de ella mediante el uso de<a href="http://www.anieto2k.com/2008/09/09/microsoft-internet-explorer-8-y-los-prefijos-css/"> los correspondientes prefijos</a>:
<pre><code><strong>// Mozilla
</strong>-moz-border-radius:1em;

<strong>// WebKit
</strong>-webkit-border-radius:1em;

<strong>// W3C
</strong>border-radius:1em;</code></pre>
Aún así, hay <a href="http://blog.creativityden.com/the-hidden-power-of-border-radius-2/">gente que ha estado haciendo cosas realmente interesantes</a> con ella.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2010/02/border-radius.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2010/02/border-radius.jpg" alt="border-radius" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2010/02/border-radius.jpg"><small>(Ver Imagen)</small></a></p>

<h3>Código</h3>
<pre><code>#wrapper{
 width: 1000px;
 margin: auto;
 position: relative;
}
#circle{
 position: absolute;
 top: 100px;
 left: 0;
 z-index: 0;
 width: 200px;
 height: 200px;
 background-color: #a72525;
 -webkit-border-radius: 100px;
}

#circle1{
 position: absolute;
 top: 105px;
 left: 5px;
 z-index: 1;
 width: 200px;
 height: 200px;
 background-color: #efefef;
 -webkit-border-radius: 100px;
}
</code></pre>
Quizás no le encontremos una utilidad real, pero como curiosidad es interesante :D<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2008/12/05/bordes-redondeados-en-internet-explorer/" rel="bookmark" title="Permanent Link: Bordes redondeados en Internet Explorer">Bordes redondeados en Internet Explorer</a></li><li><a href="http://www.anieto2k.com/2008/09/09/microsoft-internet-explorer-8-y-los-prefijos-css/" rel="bookmark" title="Permanent Link: Microsoft Internet Explorer 8 y los prefijos CSS">Microsoft Internet Explorer 8 y los prefijos CSS</a></li><li><a href="http://www.anieto2k.com/2008/08/13/border-imagen-en-firefox-31/" rel="bookmark" title="Permanent Link: Border-imagen en Firefox 3.1">Border-imagen en Firefox 3.1</a></li><li><a href="http://www.anieto2k.com/2008/12/29/bordes-redondeados-con-css-sprites/" rel="bookmark" title="Permanent Link: Bordes redondeados con CSS Sprites">Bordes redondeados con CSS Sprites</a></li><li><a href="http://www.anieto2k.com/2009/05/21/firefox-firebug-vs-ie8-developer-toolbar/" rel="bookmark" title="Permanent Link: Firefox + Firebug vs IE8 + Developer Toolbar">Firefox + Firebug vs IE8 + Developer Toolbar</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/11/el-poder-oculto-de-border-radius/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Google Buzz API, disponible para desarrolladores</title>
		<link>http://www.anieto2k.com/2010/02/10/google-buzz-api-disponible-para-desarrolladores/</link>
		<comments>http://www.anieto2k.com/2010/02/10/google-buzz-api-disponible-para-desarrolladores/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:37:05 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[semántica]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9683</guid>
		<description><![CDATA[La velocidad con la que Google Buzz ha pasado a estar disponible (en alguna cuentas) y la aparición de la API me hace pensar que ya llevaban tiempo detrás de esto. Probablemente desde las primeras versiones para desarrolladores de Google Wave.
Google Buzz API
Los desarrolladores, tenemos ya disponibles unas pequeñas especificaciones para desarrollar aplicaciones usando esta [...]]]></description>
			<content:encoded><![CDATA[La velocidad con la que<a href="http://www.anieto2k.com/2010/02/10/google-buzz-el-friendfeed-de-google/"> Google Buzz</a> ha pasado a estar disponible (en alguna cuentas) y <a href="http://code.google.com/intl/es-ES/apis/buzz/">la aparición de la API</a> me hace pensar que ya llevaban tiempo detrás de esto. Probablemente desde <a href="http://www.anieto2k.com/2009/05/29/google-apuesta-por-el-html5-y-lo-hace-a-lo-grande/">las primeras versiones para desarrolladores de Google Wave</a>.
<h3>Google Buzz API</h3>
Los desarrolladores, tenemos ya disponibles unas pequeñas especificaciones para desarrollar aplicaciones usando esta herramienta.

Por un lado disponemos de la posibilidad de obtener un feed completo con toda nuestra actividad pública mediante una URL única por usuario.
<pre><code>http://buzz.googleapis.com/feeds/{userID}/public/posted</code></pre>
Conseguir el identificador de un usuario es tán secillo como obtenerlo del link que va a sociado a su nombre en Google Buzz. En mi caso es el siguiente:
<pre><code>http://buzz.googleapis.com/feeds/<strong>103886688219972755999</strong>/public/posted</code></pre>
Esto nos permite <a href="http://buzz.googleapis.com/feeds/103886688219972755999/public/posted">acceder a mi feed público</a> y ver en él todo el contenido que he ido añadiendo, al igual que lo disponíamos con FriendFeed. Todo ello usando el <a href="http://tools.ietf.org/html/rfc4287">formato Atom (RFC4287)</a>.
<h3>Añadir sitios y a sitios</h3>
Por defecto Google Buzz detecta sitios que están asociados en tu perfíl y los usa para ofrecertelos para completar tus "<em>Gweets</em>" con información de ellos. Para ello bastará con <a href="http://www.google.com/profiles/me/editprofile">editar tu perfíl</a> y añadir las URL's que quieras asociar a tu perfíl.
<h3>Vínculos a tu perfíl desde sitios externos</h3>
Si quieres relacionar un sitio web contigo, podrás hacer añadiendo un tag HTML que dará información en formato XFN sobre tu perfíl en Google.
<pre><code>&lt;head&gt;
 &lt;!-- ... --&gt;
 &lt;link rel="me" type="text/html" href="http://www.google.com/profiles/your.username"/&gt;
 &lt;!-- ... --&gt;
&lt;/head&gt;</code></pre>
Esto hará que herramientas destinadas a ello, puedan ofrecer más información al visitante sobre el autor de la página que está visitando.
<h3>Opinión</h3>
Google está jugando fuerte, si lo miramos con perspectiva veremos que está montando su propio Facebook usando Internet como tablero. No hay limitaciones, no hay que estar en un mismo dominio para disfrutar de todo lo que la red te ofrece... me hallo entre el miedo, la admiración y la expectación de lo que esto puede significar.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2010/02/10/google-buzz-el-friendfeed-de-google/" rel="bookmark" title="Permanent Link: Google Buzz, el friendfeed de Google">Google Buzz, el friendfeed de Google</a></li><li><a href="http://www.anieto2k.com/2009/06/05/google-chrome-para-mac/" rel="bookmark" title="Permanent Link: Google Chrome para Mac y Linux">Google Chrome para Mac y Linux</a></li><li><a href="http://www.anieto2k.com/2007/11/02/google-opensocial-libera-su-api/" rel="bookmark" title="Permanent Link: Google OpenSocial libera su API">Google OpenSocial libera su API</a></li><li><a href="http://www.anieto2k.com/2010/01/18/ext-js-disponible-desde-google-ajax-libraries/" rel="bookmark" title="Permanent Link: Ext Core disponible desde Google Ajax Libraries">Ext Core disponible desde Google Ajax Libraries</a></li><li><a href="http://www.anieto2k.com/2008/05/15/google-doctype-documentacion-para-desarrolladores-web/" rel="bookmark" title="Permanent Link: Google DocType, documentación para desarrolladores web">Google DocType, documentación para desarrolladores web</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/10/google-buzz-api-disponible-para-desarrolladores/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Sketchpad, paint online con tecnología HTML5</title>
		<link>http://www.anieto2k.com/2010/02/10/sketchpad-paint-online-con-tecnologia-html5/</link>
		<comments>http://www.anieto2k.com/2010/02/10/sketchpad-paint-online-con-tecnologia-html5/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:13:48 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9680</guid>
		<description><![CDATA[Hace unos días descubrí via delicious, Sketchpad, un paint enriquecido completamente online que se aprovecha de las nuevas herramientas que HTML5 pone a nuestra disposición.

(Ver Imagen)
El resultado, como se puede ver, es realmente sorprendente. No solo por lo elegante del diseño, sinó por la soltura con la que se mueve y las posibilidades que ofrece:

	Uso [...]]]></description>
			<content:encoded><![CDATA[Hace unos días descubrí via delicious, <a href="http://mugtug.com/sketchpad/">Sketchpad</a>, un paint enriquecido completamente online que se aprovecha de <a href="http://www.anieto2k.com/2008/01/22/html-5-working-draft-publicado/">las nuevas herramientas que HTML5 </a>pone a nuestra disposición.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2010/02/sketchpad.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2010/02/sketchpad-e1265796122656.jpg" alt="sketchpad" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2010/02/sketchpad.jpg"><small>(Ver Imagen)</small></a></p>
El resultado, como se puede ver, es realmente sorprendente. No solo por lo elegante del diseño, sinó por la soltura con la que se mueve y las posibilidades que ofrece:
<ul>
	<li>Uso de degradados</li>
	<li>Uso de patrones</li>
	<li>Paleta de colores</li>
	<li>Historial de modificaciones</li>
	<li>Posibilidad de salvar el dibujo con <a href="http://en.wikipedia.org/wiki/Data_URI_scheme">Data URI</a></li>
</ul>
Sin duda una muestra lo que nos vamos a ir encontrando por Internet en un futuro no muy lejano.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/07/18/el-paint-de-windows-version-on-line/" rel="bookmark" title="Permanent Link: El Paint de windows versión on-line">El Paint de windows versión on-line</a></li><li><a href="http://www.anieto2k.com/2007/05/21/dibujar-con-css-puro-y-duro/" rel="bookmark" title="Permanent Link: Dibujar con CSS, puro y duro">Dibujar con CSS, puro y duro</a></li><li><a href="http://www.anieto2k.com/2007/03/01/adobe-se-apunta-al-retoque-fotografico-online-con-adobe-remix/" rel="bookmark" title="Permanent Link: Adobe se apunta al retoque fotográfico online con Adobe Remix">Adobe se apunta al retoque fotográfico online con Adobe Remix</a></li><li><a href="http://www.anieto2k.com/2009/11/19/html5-glosary/" rel="bookmark" title="Permanent Link: HTML5 Glosary">HTML5 Glosary</a></li><li><a href="http://www.anieto2k.com/2009/07/06/chuleta-html5/" rel="bookmark" title="Permanent Link: Chuleta HTML5">Chuleta HTML5</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/10/sketchpad-paint-online-con-tecnologia-html5/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gordon, el reproductor flash en Javascript</title>
		<link>http://www.anieto2k.com/2010/02/02/gordon-el-reproductor-flash-en-javascript/</link>
		<comments>http://www.anieto2k.com/2010/02/02/gordon-el-reproductor-flash-en-javascript/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:06:27 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9652</guid>
		<description><![CDATA[Mucho se está hablando de la muerte de Flash con la llegada de HTML5, principalmente por que sitios como YouTube o Vimeo están implementando ya versiones del tag &#60;video /&#62; de HTML5 en ciertas secciones y para navegadores que lo soporten. Aunque Adobe parece no verlo igual.

Por otro lado, Tobias Scheneider ha desarrollado "Gordon", una [...]]]></description>
			<content:encoded><![CDATA[<a href="http://twitter.com/cvander/status/8518178672">Mucho se está hablando de la muerte de Flash</a> con la llegada de HTML5, principalmente por que sitios como <a href="http://youtube-global.blogspot.com/2010/01/-youtube-html5-supported.html">YouTube</a> o <a href="http://vimeo.com/blog:268">Vimeo</a> están implementando ya versiones del <a href="http://www.anieto2k.com/2009/06/30/el-elemento-video-del-html5/">tag <code>&lt;video /&gt;</code> de HTML5</a> en ciertas secciones y para navegadores que lo soporten. Aunque <a href="http://www.neoteo.com/adobe-html-5-no-es-la-muerte-de-flash.neo">Adobe parece no verlo igual</a>.

Por otro lado, <strong>Tobias Scheneider</strong> ha desarrollado "<a href="http://github.com/tobeytailor/gordon">Gordon</a>", una implementación en Javascript de un reproductor de Flash usando <a href="http://es.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> para ello.
<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
	&lt;head&gt;
		&lt;script type="text/javascript" src="../gordon.js"&gt;&lt;/script&gt;
		&lt;script type="text/javascript"&gt;
 			window.onload = function(){
 				// Opciones
 				var opt = { id: 'stage', // ID del contenedor
 					width: 500,
 					height: 400};

 				// Definimos la nueva película
 				new Gordon.Movie('blue.swf', opt);
 			}
		&lt;/script&gt;
	&lt;/head&gt;
 	&lt;body&gt;
 		&lt;div id="stage"&gt;&lt;/div&gt;
 	&lt;/body&gt;
&lt;/html&gt;</code>
</pre>
El resultado es realmente sorprendente, y podemos <a href="http://paulirish.com/work/gordon/demos/">disfrutar de algunos ejemplos directamente aquí</a> (aún está un poco verde y <a href="http://wiki.github.com/tobeytailor/gordon/browser-support-table">solo está disponible para Firefox y WebKit</a>). Además, tenemos disponible <a href="http://github.com/tobeytailor/gordon/">el código en GitHub</a>.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2006/11/21/jquery-flash-plugin/" rel="bookmark" title="Permanent Link: jQuery Flash Plugin">jQuery Flash Plugin</a></li><li><a href="http://www.anieto2k.com/2008/03/31/33-galerias-de-imagenes-javascript-y-flash/" rel="bookmark" title="Permanent Link: 33 galerías de imagenes javascript y flash">33 galerías de imagenes javascript y flash</a></li><li><a href="http://www.anieto2k.com/2006/11/23/%c2%bfdonde-esta-la-linea-entre-flash-y-javascript/" rel="bookmark" title="Permanent Link: ¿Donde esta la línea entre Flash y Javascript?">¿Donde esta la línea entre Flash y Javascript?</a></li><li><a href="http://www.anieto2k.com/2008/07/01/google-comienza-a-indexar-fichero-flash/" rel="bookmark" title="Permanent Link: Google comienza a indexar fichero Flash">Google comienza a indexar fichero Flash</a></li><li><a href="http://www.anieto2k.com/2009/07/29/16-ejemplo-de-javascript-que-intenta-acabar-con-flash/" rel="bookmark" title="Permanent Link: 16 ejemplo de Javascript que intenta acabar con Flash">16 ejemplo de Javascript que intenta acabar con Flash</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/02/02/gordon-el-reproductor-flash-en-javascript/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>YQL: Un lenguaje de programación para Internet</title>
		<link>http://www.anieto2k.com/2010/01/31/yql-un-lenguaje-de-programacion-para-internet/</link>
		<comments>http://www.anieto2k.com/2010/01/31/yql-un-lenguaje-de-programacion-para-internet/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 15:01:08 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[YQL]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9646</guid>
		<description><![CDATA[YQL ( Yahoo! Query Language) es un lenguaje de sintaxis similar a SQL que Yahoo! utiliza para filtrar y unificar datos de Web Services de por toda internet. Dispone de una potente API que nos permite realizar consultas bastante complejas y obtener los datos en XML o JSON.
Consola
Yahoo! nos pone a nuestra disposición una consola [...]]]></description>
			<content:encoded><![CDATA[<a href="http://developer.yahoo.com/yql/">YQL ( Yahoo! Query Language)</a> es un lenguaje de sintaxis similar a SQL que Yahoo! utiliza para filtrar y unificar datos de Web Services de por toda internet. Dispone de <a href="http://developer.yahoo.com/yql/guide/">una potente API</a> que nos permite realizar consultas bastante complejas y obtener los datos en XML o JSON.
<h3>Consola</h3>
Yahoo! nos pone a nuestra disposición <a href="http://developer.yahoo.com/yql/console/">una consola muy completa</a> que nos permite realizar las pruebas necesarias antes de usarlo en proyectos en real.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2010/01/YQL_console.jpg"><img src="http://www.anieto2k.com/wp-content/uploads/2010/01/YQL_console-600x297.jpg" alt="YQL_console" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2010/01/YQL_console.jpg"><small>(Ver Imagen)</small></a></p>

<h3>Usándola en PHP</h3>
Para usarla desde nuestras aplicaciones necesitaremos<a href="http://developer.yahoo.com/dashboard/createKey.html"> obtener una API Key</a> (que será usada en alguna petición) y enviaremos <a href="http://php.net/manual/en/book.curl.php">las peticiones mediante cURL </a> a la URL que Yahoo! pone a nuestra disposición:
<pre><code><strong>// Definimos la consulta
</strong>$query = 'select * from flickr.photos.interestingness(20)';

<strong>// Concatenamos con la consulta
</strong>$url = 'http://query.yahooapis.com/v1/public/yql?format=json&amp;q=' . urlencode($query);

<strong>// Creamos la conexión cURL
</strong>$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false);

<strong>// Lanzamos la petición
</strong>$rawdata = curl_exec($c);
curl_close($c);

<strong>// Convertimos el JSON en un objeto
</strong>$data = json_decode($rawdata);

<strong>// Mostramos la información
</strong>echo '&lt;pre&gt;';
print_r($data);
echo '&lt;/pre&gt;'</code></pre>
Indicando el formato en el que queremos recibir los datos para mostrar en nuestra página podremos trabajar con él y adaptarlo a nuestro diseño fácilmente:
<pre><code>&lt;?php
 $results = $data-&gt;query-&gt;results-&gt;results;
 for ($i = 0; i$i &lt; count($results); $i++) :
 $item = $results[$i]-&gt;item-&gt;item;
 $link = $results[$i]-&gt;item-&gt;resource;
 ?&gt;
 &lt;li&gt;
 &lt;a href="&lt;?=$link?&gt;"&gt;&lt;?=$item?&gt;&lt;/a&gt;
 &lt;/li&gt;
&lt;?php endfor; ?&gt;</code>
</pre>
Realmente es sencillo y potente, además dispone de <strong>más de 130 tablas</strong> de las que obtener información. Un interesante concepto que<a href="http://net.tutsplus.com/tutorials/javascript-ajax/an-api-for-the-web-learning-yql/"> nos ayuda a unificar toda la información disponible por internet</a>.<h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2007/09/26/jawi-script-el-nuevo-lenguaje-de-programacion/" rel="bookmark" title="Permanent Link: Jawi Script, el nuevo lenguaje de programación">Jawi Script, el nuevo lenguaje de programación</a></li><li><a href="http://www.anieto2k.com/2006/11/21/top-20-lenguajes-de-programacion/" rel="bookmark" title="Permanent Link: Top 20 lenguajes de programacion">Top 20 lenguajes de programacion</a></li><li><a href="http://www.anieto2k.com/2008/10/09/la-popularidad-de-los-lenguajes-de-programacion-oct-08/" rel="bookmark" title="Permanent Link: La popularidad de los lenguajes de programación (oct 08)">La popularidad de los lenguajes de programación (oct 08)</a></li><li><a href="http://www.anieto2k.com/2006/11/30/tutoriales-de-javascript/" rel="bookmark" title="Permanent Link: Tutoriales de Javascript">Tutoriales de Javascript</a></li><li><a href="http://www.anieto2k.com/2007/06/09/lolcode-un-lenguaje-de-programacion-diferente/" rel="bookmark" title="Permanent Link: LOLCODE, un lenguaje de programación diferente">LOLCODE, un lenguaje de programación diferente</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/01/31/yql-un-lenguaje-de-programacion-para-internet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS3 @font-face, una visión general</title>
		<link>http://www.anieto2k.com/2010/01/28/css3-font-face-una-vision-general/</link>
		<comments>http://www.anieto2k.com/2010/01/28/css3-font-face-una-vision-general/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 10:08:20 +0000</pubDate>
		<dc:creator>aNieto2k</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[estandares]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[font-face]]></category>

		<guid isPermaLink="false">http://www.anieto2k.com/?p=9636</guid>
		<description><![CDATA[Ya hemos hablado otras veces de @font-face, la capacidad de definir nuestras propias fuentes mediante CSS y que los usuarios las descarguen y las visualizen.
Soporte
Aunque suene raro, Internet Explorer lo implementa desde la versión 4.0 (con sutiles diferencias), y los estándares no se ponian de acuerdo en si añadirla o no, ya que en CSS2 [...]]]></description>
			<content:encoded><![CDATA[Ya hemos <a href="http://www.anieto2k.com/2007/10/09/fuentes-descargables-en-webkit-y-font-face/">hablado otras veces de <code>@font-face</code></a>, la capacidad de definir nuestras propias fuentes mediante CSS y que los usuarios las descarguen y las visualizen.
<h3>Soporte</h3>
Aunque suene raro, <a href="http://www.anieto2k.com/2008/11/04/font-face-en-internet-explorer/">Internet Explorer lo implementa desde la versión 4.0 (con sutiles diferencias)</a>, y los estándares no se ponian de acuerdo en si añadirla o no, ya que <a href="http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#font-descriptions">en CSS2 entró como una interesante novedad</a>, pero en CSS2.1 fué retirada. Tuvo que<a href="http://www.w3.org/TR/css3-fonts/#font-resources"> llegar CSS3 y hacer que se la tenga en cuenta</a>.
<p style="text-align: center;"><a rel="lightbox" href="http://www.anieto2k.com/wp-content/uploads/2010/01/font-face-browser.png"><img src="http://www.anieto2k.com/wp-content/uploads/2010/01/font-face-browser.png" alt="font-face-browser" /></a>
<a href="http://www.anieto2k.com/wp-content/uploads/2010/01/font-face-browser.png"><small>(Ver Imagen)</small></a></p>
Como podemos ver, la mayoría de navegadores la soporta y nos permite usarla con diferentes formatos.
<h3>Forma de uso</h3>
<a href="http://www.evotech.net/blog/2010/01/font-face-browser-support-tutorial/">Veamos como usamos esta propiedad</a>, que pasa por una declaración de nuestra nueva fuente y una posterior aplicación de esta fuente a nuestros elementos.
<h4>Declarando nuestra fuente</h4>
La declaración permitirá establecer el nombre y la ubicación de nuestra fuente para que el navegador la descargue y la asocie para que la aplicación nos la muestre.
<pre><code>@font-face {
 font-family: miFuente; /* required */
 src: source;                        /* required */
 font-weight: weight;                /* optional */
 font-style: style;                /* optional */
}</code></pre>
<h4>Aplicando nuestras fuentes</h4>
Una vez declarada la fuente "<code>miFuente</code>", ya la podemos usar como si de otra fuente se tratara, simplemente estableciéndola con la propiedad CSS <code>font-family</code>.
<pre><code>h3 {
 font-family: miFuente, arial, helvetica, sans-serif;
}
</code></pre>
<h3>Detectar la propiedad</h3>
Si necesitamos detectar si la propiedad está disponible en el navegador del visitante,<a href="http://paulirish.com/2009/font-face-feature-detection/"> Paul Irish nos creó una versión compatible con todos los navegadores modernos</a>.
<pre><code>/*!
 * isFontFaceSupported - v0.9 - 12/19/2009
 * http://paulirish.com/2009/font-face-feature-detection/
 *
 * Copyright (c) 2009 Paul Irish
 * MIT license
 */

var isFontFaceSupported = (function(){

    var fontret,
        fontfaceCheckDelay = 100;

		// IE supports EOT and has had EOT support since IE 5.
		// This is a proprietary standard (ATOW) and thus this off-spec,
		// proprietary test for it is acceptable.
    if (!(!/*@cc_on@if(@_jscript_version&gt;=5)!@end@*/0)) fontret = true;

    else {

    // Create variables for dedicated @font-face test
      var doc = document, docElement = doc.documentElement,
          st  = doc.createElement('style'),
          spn = doc.createElement('span'),
          wid, nwid, body = doc.body,
          callback, isCallbackCalled;

      // The following is a font, only containing the - character. Thanks Ethan Dunham.
      st.textContent = "@font-face{font-family:testfont;src:url(data:font/opentype;base64,T1RUTwALAIAAAwAwQ0ZGIMA92IQAAAVAAAAAyUZGVE1VeVesAAAGLAAAABxHREVGADAABAAABgwAAAAgT1MvMlBHT5sAAAEgAAAAYGNtYXAATQPNAAAD1AAAAUpoZWFk8QMKmwAAALwAAAA2aGhlYQS/BDgAAAD0AAAAJGhtdHgHKQAAAAAGSAAAAAxtYXhwAANQAAAAARgAAAAGbmFtZR8kCUMAAAGAAAACUnBvc3T/uAAyAAAFIAAAACAAAQAAAAEAQVTDUm9fDzz1AAsD6AAAAADHUuOGAAAAAMdS44YAAADzAz8BdgAAAAgAAgAAAAAAAAABAAABdgDzAAkDQQAAAAADPwABAAAAAAAAAAAAAAAAAAAAAwAAUAAAAwAAAAICmgGQAAUAAAK8AooAAACMArwCigAAAd0AMgD6AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEZIRAAAQAAgAC0C7v8GAAABdv8NAAAAAQAAAAAAAAAAACAAIAABAAAAFAD2AAEAAAAAAAAAPAB6AAEAAAAAAAEAAgC9AAEAAAAAAAIABwDQAAEAAAAAAAMAEQD8AAEAAAAAAAQAAwEWAAEAAAAAAAUABQEmAAEAAAAAAAYAAgEyAAEAAAAAAA0AAQE5AAEAAAAAABAAAgFBAAEAAAAAABEABwFUAAMAAQQJAAAAeAAAAAMAAQQJAAEABAC3AAMAAQQJAAIADgDAAAMAAQQJAAMAIgDYAAMAAQQJAAQABgEOAAMAAQQJAAUACgEaAAMAAQQJAAYABAEsAAMAAQQJAA0AAgE1AAMAAQQJABAABAE7AAMAAQQJABEADgFEAEcAZQBuAGUAcgBhAHQAZQBkACAAaQBuACAAMgAwADAAOQAgAGIAeQAgAEYAbwBuAHQATABhAGIAIABTAHQAdQBkAGkAbwAuACAAQwBvAHAAeQByAGkAZwBoAHQAIABpAG4AZgBvACAAcABlAG4AZABpAG4AZwAuAABHZW5lcmF0ZWQgaW4gMjAwOSBieSBGb250TGFiIFN0dWRpby4gQ29weXJpZ2h0IGluZm8gcGVuZGluZy4AAFAASQAAUEkAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAEYATwBOAFQATABBAEIAOgBPAFQARgBFAFgAUABPAFIAVAAARk9OVExBQjpPVEZFWFBPUlQAAFAASQAgAABQSSAAADEALgAwADAAMAAAMS4wMDAAAFAASQAAUEkAACAAACAAAFAASQAAUEkAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAAAAAAADAAAAAwAAABwAAQAAAAAARAADAAEAAAAcAAQAKAAAAAYABAABAAIAIAAt//8AAAAgAC3////h/9UAAQAAAAAAAAAAAQYAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA/7UAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAQAEBAABAQEDUEkAAQIAAQAu+BAA+BsB+BwC+B0D+BgEWQwDi/eH+dP4CgUcAIwPHAAAEBwAkREcAB4cAKsSAAMCAAEAPQA/AEFHZW5lcmF0ZWQgaW4gMjAwOSBieSBGb250TGFiIFN0dWRpby4gQ29weXJpZ2h0IGluZm8gcGVuZGluZy5QSVBJAAAAAAEADgADAQECAxQODvb3h/cXAfeHBPnT9xf90wYO+IgU+WoVHgoDliX/DAmLDAr3Fwr3FwwMHgoG/wwSAAAAAAEAAAAOAAAAGAAAAAAAAgABAAEAAgABAAQAAAACAAAAAAABAAAAAMbULpkAAAAAx1KUiQAAAADHUpSJAfQAAAH0AAADQQAA)}";
      doc.getElementsByTagName('head')[0].appendChild(st);

      spn.setAttribute('style','font:99px _,serif;position:absolute;visibility:hidden'); 

      if  (!body){
        body = docElement.appendChild(doc.createElement('fontface'));
      } 

      // the data-uri'd font only has the - character
      spn.innerHTML = '-------';
      spn.id        = 'fonttest';

      body.appendChild(spn);
      wid = spn.offsetWidth;

      spn.style.font = '99px testfont,_,serif';

      // needed for the CSSFontFaceRule false positives (ff3, chrome, op9)
      fontret = wid !== spn.offsetWidth;

      var delayedCheck = function(){
        if (isCallbackCalled) return;
        fontret = wid !== spn.offsetWidth;
        callback &amp;&amp; (isCallbackCalled = true) &amp;&amp; callback(fontret);
      }

      addEventListener('load',delayedCheck,false);
      setTimeout(delayedCheck,fontfaceCheckDelay);
    }

    function ret(){  return fontret || wid !== spn.offsetWidth; };

    // allow for a callback
    ret.ready = function(fn){
      (isCallbackCalled || fontret) ? fn(fontret) : (callback = fn);
    }  

    return ret;
})();</code></pre>
Si solo necesitas comprobarlo sobre Firefox, Safari, Chrome y Opera, te puedes ahorrar todo este código y usar la siguiente comprobación:
<pre><code>if (!!window.CSSFontFaceRule) ...</code></pre>
<h3>Alternativas</h3>
Mientras los usuarios se adaptan a estas nuevas propiedades siempre es conveniente usar <a href="http://www.anieto2k.com/2009/04/01/tecnicas-de-reemplazamiento-dinamico-de-texto/">alternativas que ofrezcan un resultado similar</a>. Para conseguir esto, la solución pasa por usar alguna de las que ya hemos visto anteriormente:
<ol>
	<li><a title="sIFR 2.0" href="http://www.mikeindustries.com/blog/sifr/">sIFR  2.0</a></li>
	<li><a title="Cufon" href="http://cufon.shoqolate.com/generate/">cufón</a></li>
	<li><a title="P+C DTR" href="http://artypapers.com/csshelppile/pcdtr/">P+C  DTR</a></li>
	<li><a title="FLIR" href="http://facelift.mawhorter.net/">FLIR</a></li>
	<li><a title="SIIR" href="http://www.whaleofadive.com/misc/siir/about.php">SIIR</a></li>
	<li><a title="DTR" href="http://www.alistapart.com/articles/dynatext/">DTR</a></li>
	<li><a title="sIFR 3" href="http://novemberborn.net/sifr3">sIFR 3</a></li>
	<li><a title="Typeface.js" href="http://typeface.neocracy.org/">Typeface.js</a></li>
	<li><a title="IFR" href="http://www.shauninman.com/archive/2004/04/23/ifr_revisited_and_revised">IFR</a></li>
	<li><a title="PHP + CSS DTR" href="http://www.joaomak.net/util/dtr/">PHP+CSS  DTR</a></li>
	<li><a title="CSS Image Replacement" href="http://css-tricks.com/nine-techniques-for-css-image-replacement/">CSS  Image Replacement [static]</a></li>
	<li><a title="swfir" href="http://www.swfir.com/">swfir</a></li>
</ol>
<h3>Más información</h3>
<ul>
	<li><a href="http://www.cssblog.es/sintaxis-de-font-face/">Sintaxis de @font-face</a></li>
	<li><a href="http://www.css3.info/preview/web-fonts-with-font-face/">Web Fonts with @font-face</a></li>
	<li><a href="https://developer.mozilla.org/index.php?title=En/CSS/%40font-face">@font-face - MDC</a></li>
</ul><h3>Artículos relacionados</h3>
<ul><li><a href="http://www.anieto2k.com/2008/09/13/firefox-31-incorporara-font-face/" rel="bookmark" title="Permanent Link: Firefox 3.1 incorporará @font-face">Firefox 3.1 incorporará @font-face</a></li><li><a href="http://www.anieto2k.com/2009/10/05/font-face-en-profundidad/" rel="bookmark" title="Permanent Link: @font-face en profundidad">@font-face en profundidad</a></li><li><a href="http://www.anieto2k.com/2008/11/04/font-face-en-internet-explorer/" rel="bookmark" title="Permanent Link: @font-face en Internet Explorer">@font-face en Internet Explorer</a></li><li><a href="http://www.anieto2k.com/2005/12/31/detector-de-tsunamis-para-el-movil/" rel="bookmark" title="Permanent Link: Detector de Tsunamis para el movil">Detector de Tsunamis para el movil</a></li><li><a href="http://www.anieto2k.com/2009/05/27/fontjazz-usa-cualquier-fuente-en-tus-aplicaciones-web/" rel="bookmark" title="Permanent Link: FontJazz, usa cualquier fuente en tus aplicaciones web.">FontJazz, usa cualquier fuente en tus aplicaciones web.</a></li></ul><p><a href="http://www.anieto2k.com" id="38.107.191.106"><img rel="38.107.191.106" src="http://www.anieto2k.com/favicon.ico" alt="aNieto2k" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.anieto2k.com/2010/01/28/css3-font-face-una-vision-general/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
