Junio 4th, 2011

Terminamos este especial sobre HTML5 con la parte más desagradable (o agradable) del estándar: lo que se elimina. Es curioso que un montón de elementos comunes pasan a estar prohibidos en HTML5, por razones diversas que ahora veremos. Por esas mismas razones bastantes atributos han sido eliminados bien de un elemento concreto o de todos los elementos.
Sin embargo hay que aclarar estas prohibiciones, ya que hay dos caras en esta moneda. Por un lado los desarrolladores no pueden usarlos, si quieren que sus documentos sean HTML5 válidos. Por el otro lado, los navegadores tienen la obligación de implementarlos y soportarlos, para ser compatible hacia atrás con HTML4 y anteriores. Esta dualidad es muy interesante y nos ahorra bastantes problemas de una manera limpia definida en el estándar.
Como decía, estos son los elementos eliminados y las razones de por qué son prohibidos:
Para empezar, todos los atributos referentes a la presentación han sido eliminados, por la misma razón de antes: CSS sirve mejor ese propósito. Recuerdo que el atributo style (que contiene CSS) es ahora universal y puede ser aplicado a todos los elementos, así que si queremos indicar su presentación sin añadir una hoja de estilos aparte, tendremos que usar este atributo. Atención a la lista porque esto sí que es importante, ya que algunos de estos elementos son muy usados, aunque otros están muy obsoletos:
Como veis, algunos de estos atributos sí que se mantienen para ciertos elementos, como la anchura y altura en las imágenes. Sin embargo estos no son los únicos atributos que se eliminan, también hay otros que se quitan por redundancia, por evitar confusiones, por su bajo uso o porque simplemente se han quedado obsoletos.
Hay diversos elementos que no se eliminan por su extendida fama, pero que siendo un tanto ortodoxos deberían eliminarse. Para evitar esto los que están escribiendo el estándar han tenido que redefinir su definición, de tal forma que se tratan de manera similar pero semánticamente son diferentes.
Un ejemplo muy claro es u e i, muy usados pero que progresivamente pierden importancia frente a strong y em. Estos dos elementos, que indicaban negrita y cursiva respectivamente, pasan a definirse de una manera muy vaga para indicar un texto diferente en alguna manera al texto normal. Otros elementos se redefinen, particularmente me resulta curioso que se mantenga small mientras big se elimina. De cualquier manera, no es demasiado relevante para los desarrolladores web, en el sentido de que podrán seguir usándolos como ahora.
Tal y cómo habéis ido viendo, las novedades de HTML5 se centran en facilitar la implementación de aplicaciones web, avanzar hacia la web semántica y limpiar un poco toda la basura heredada de las anteriores versiones de HTML. Aunque todo eso parezca lejano, lo cierto es que muchos navegadores ya implementan algunas partes sueltas de HTML5, y ya existen varias páginas experimentales que juegan con estos elementos. Por ejemplo, cerramos este minucioso especial precisamente en el día en que Firefox 3.5 es lanzado, pero Safari, Opera, Chrome e incluso IE8 ya soportan algunas cosas.
Ahora queda preguntarnos, ¿cuándo se acabará este estándar? Precisamente no hay ninguna fecha, y la condición para que HTML5 se considere estándar es, según la W3C, que al menos un navegador implemente todo HTML5 correctamente. De esta manera se asegura que todo el estándar es factible, que puede ser implementado. Para esto puede quedar dos o tres años, si todo va bien, pero nada es seguro.

Después de las dos primeras entregas de este repaso a HTML5 (parte I y parte II), llegamos a la parte dinámica del estándar, lo que se añade al DOM y a Javascript para conseguir aplicaciones web avanzadas. Por un lado tenemos diversas APIs, es decir, conjuntos de funciones y herramientas que implementan un propósito concreto. Por el otro lado tenemos varias funciones y atributos que sirven a propósitos más generales y que no se pueden enmarcar en una API concreta.
No está claro que todas las APIs siguientes se vayan a incluir en el estándar HTML5 propiamente, de hecho seguro que alguna de ellas se separará creando un estándar propio dedicado. De cualquier forma, estas son las nuevas APIs que nacen o se desarrollan en HTML5:
Se han añadido a los elementos del DOM nuevas funciones y atributos que facilitan su uso y permiten realizar acciones muy usadas. Aquí comentaré los más interesantes, que trabajan sobre el documento (HTMLDocument) o sobre cualquier elemento (HTMLElement).
Con esto ya hemos acabado con todas las novedades de HTML5, al menos las más importantes e interesantes para los desarrolladores web. Pero aún nos queda una parte muy importante: los elementos y atributos que se eliminan del estándar y que formaban parte de HTML4 y anteriores. Son muchos y variados, y algunos pueden causar más de un dolor de cabeza, así que los dejamos para la cuarta y última entrega de este especial.

Si en la primera parte de este repaso a HTML5 os comentamos todos los nuevos elementos, ahora vamos a centrarnos en los nuevos atributos más interesantes. Al igual que como comentaba en la primera parte, hay que tener en cuenta que no es un estándar acabado, así que estas especificaciones pueden cambiar y cambiarán. También hay que tener en cuenta que estos no son todos los cambios, solo he seleccionado los relevantes para el día a día de un desarrollador web. Por último, habría que distinguir entre los atributos que solo afectan a un subconjunto de los elementos y los globales, que afectan a cualquier elemento.
Los elementos ya existentes añaden nuevos atributos que permiten hacer cosas muy interesantes. Los más importantes o novedosos son:
<form>.Además de los anteriores tenemos otros atributos que pueden ser aplicados a todos los elementos de un documento. Esto lo hacen especialmente conveniente si vamos a usar Javascript para modificarlos dinámicamente, ya que no tenemos que comprobar el tipo de elemento para usar los atributos comunes.
Por supuesto estos no son todos los cambios, en próximas entregas explicaremos otros aspectos de este nuevo estándar.

HTML5 está llamada a ser el reemplazo del actual (X)HTML, una de las patas de la web desde su nacimiento. Precisamente en un momento en el que la web está lo suficientemente madura, este estándar aprende de los errores cometidos e intenta solucionar la mayoría de problemas con los que un desarrollador web se encuentra. Como muchas de sus novedades son interesantes y afectan directamente a la futura web, desde AnexoM te vamos a comentar en varios artículos los cambios más importantes, empezando por este artículo donde comentaremos los nuevos elementos.
Antes de seguir habría que aclarar que HTML5 sigue en borrador y lo seguirá estando durante algunos años más. El enfoque general ha cambiado bastante respecto a versiones anteriores de HTML, añadiendo semántica y accesibilidad implícitas, especificando cada detalle y borrando cualquier ambigüedad. También se tiene en cuenta que muchas páginas web actuales son dinámicas, pareciéndose más a aplicaciones que a documentos. Algo básico es que HTML5 está definido en base al DOM (la representación interna de una web con la que trabaja un navegador), dejando de lado la representación “real”, definiendo a la vez un estándar HTML y XHTML.
Hoy en día se abusa bastante del elemento div, que nos permite estructurar una web en bloques. En HTML5 hay varios elementos que sirven para estructurar mejor una página web, estableciendo qué es cada sección, y reemplazando en muchas ocasiones a div. Con este extra de semántica, será mucho más coherente y fácil de entender por otras personas. Y lo que es más importante, será trivial de entender para una máquina, dándole más importancia a unas secciones y pudiendo jugar con esos datos automáticamente. Concretamente, la tarea de un buscador será mucho más fácil, pero cualquier aplicación que “lea” páginas web se beneficiará. Estos son los elementos:

En la anterior imagen vemos un ejemplo de cómo cambiaría un documento escrito en HTML normal a HTML5 con estos elementos.
El elemento input ha sido ampliado y ahora permite todos estos tipos de datos:
Lo más interesante de esto es que los navegadores podrán implementar interfaces específicas para cada tipo de dato, por ejemplo una fecha o un color se podrán indicar de manera directa e intuitiva. Otro ejemplo sería el teclado del iPhone, que muestra unos símbolos u otros dependiendo de si es un texto normal, un email (añade @ y el punto) o una url (añade la barra y el punto com), y que por tanto gana mucho con este estándar.
En las próximas entradas veremos más novedades interesantes de HTML5, centrándonos en aspectos más dinámicos.
Adobe presenta en AdobeLabs una extensi�n para el uso de HTML5 con Dreamweaver CS5. Esta extensi�n proporciona la posibilidad de desarrollar para HTML5 y CSS3, e incluye actualizaciones y mejoras WebKit para la vista de dise�o y renderizado en Live View.
Esta extensi�n incorpora estas caracter�sticas:

Podemos descargar la extensi�n desde la siguiente URL:
http://labs.adobe.com/downloads/html5pack.html
Tambi�n disponemos de un foro espec�fico por si tenemos alguna duda o consulta:
http://forums.adobe.com/community/labs/html5pack/
Android 2.2 FroYo (Frozen Yogurt) fue anunciado hoy en el Google I/O 2010. La velocidad fue aumentada increblemente. Tiene Flash Player 10.1 completo, juegos 3D de alto rendimiento, Wifi Sync, tienda de mp3 y otras sorpresas.
Es el Android listo para ser servido en Android Tablets.

Cambios profundos al cdigo y al kernel han hecho todo el sistema operativo increblemente veloz. Experiencias como Flash, Javascript pesado, juegos 3D y clculos complejos que se esperan en un desktop funcionan con un rendimiento muy similar en Android ahora.
El VP de Google, Vic Gundotra, demostr Need for Speed para Android. En el sandbox del Google I/O tambin vimos varios juegos corriendo sin problemas. S, eso incluye FarmVille y Plants vs. Zombies en Android.
Ya creamos un artculo entero hablando de Flash Player 10.1 corriendo en Android y apps nativas de Android hechas en Flash. Pero en resumen, es la experiencia del escritorio en el telfono. Apple dijo que no se poda, pero Google y Adobe mostraron la realidad.

Internet. Existe. Google anuncia una tienda de Android basada en web sincronizada con tu telfono. Si desde tu laptop vas a la web de Android Market y compras una app, est se descarga inmediata y automticamente en tu telfono. Es tan fcil como suena.
Pero tambin venden mp3, compitiendo de frente con iTunes y dando una patada a Apple. El mp3 se descarga automticamente al telfono o puedes elegir mantenerlo en la web y acceder a tu librera de msica por streaming. Todo automtico, sin sincronizacin ni nada.
Ahora es posible actualizar las apps en masa o automtico. Es algo que todos los que usamos Android odibamos, as que est bien. Debi estar ah desde el principio.
Agregaron soporte fuerte a Exchange, API de backup, Tethering (usar el plan de datos del celular en un laptop por puerto USB), control remoto. Cosas que le interesan a las empresas.
Para la gente que desarrolla apps para Android o sitios mviles, Google anuncia un nuevo tipo de anuncios llamados Mobile Ads. Incluyen anuncios interactivos desplegables con imgenes, videos o HTML5. Anuncios clicktocall que llaman al nmero del anunciante. Anuncios localizados por GPS y la promesa de estar abiertos a cualquier red de publicidad.
La apertura es un punto de competencia contra Apple. La publicidad mvil de Apple exige un pago premium para ser parte del programa, exige exclusividad de plataforma y prohbe el uso de otras redes de publicidad en el iPhone fuera de la de Apple.
Android 2.2 FroYo estar disponible para todos los telfonos que han corrido Android 2.x antes. Nexus One, HTC Incredible, Desire, EVO, Motorola Droid, Milestone, etc. Para los viejos G1, Magic y Hero, puede que no salga.
Todos lo saban, pero sigue siendo una gran noticia. Android tendr instalado por defecto Flash Player 10.1 y podr reproducir, tal como funciona en un desktop, todos los sitios y aplicaciones hechas en Flash o Flex. Nada del bullshit de Steve Jobs. Flash corre perfecto en dispositivos mviles touch, no es un "drenador" de batera y no requiere recodear toda la web. Simplemente funciona.
En el sandbox muestran tambin varias apps nativas de Androids que se instalan desde el market, pero que fueron construidas con Flash y compiladas con AIR. Tal como funcionaba el compilador para iPhone, un developer puede crear una app en Flash y ponerla en el market de Android, la Ovi Store de Nokia o el Market de Blackberry.
Para el usuario, ambas experiencias son nativas y transparentes. Para los desarrolladores, la vida es ms fcil.
Google TV fue anunciado hoy en el Google I/O 2010. Es una "caja" que se integra con el TV, el cable y todo tu sistema de entretenimiento y aade una caja de busqueda, la web entera y el sistema operativo Android de manera transparente a la televisin. El cdigo de Google TV es open source.
Lo realmente revolucionario es que funciona.
El primer cambio es simblico para Google. Una caja de bsqueda en el TV cambia la forma y la usabilidad de la televisin. Puedes poner el nombre de un canal y te lo cambia. El de un show y te lo pone en el canal que est. Si no est en vivo, te lleva a la web para verlo en demanda donde lo encuentre.
Google TV trae un navegador completo (Chrome con Flash 10.1) con lo que es posible usar Youtube, Hulu, Youporn, Amazon OnDemand, Netflix o lo que sea. Completamente integrado con la televisin.
Antes podas hacerlo con Boxee y un par de hacks, pero no tan fcil como Google TV. Y definitivamente superior a como Apple TV lo hace.
La idea es reemplazar el control remoto de tu TV con uno de los muchos controles "universales" creados para Google TV. Controlan todo tu TV, pero tambin dan un teclado y acceso total a la web completa. Eso puede ser un punto en contra, pero si el uso se masifica, ser natural comprar un Televisor que diga "GoogleTV Ready".
O puedes usar Android. Google empuj en el I/O 2010 mucho el uso de Android. Si tienes un telfono con Android, puedes simplemente decirle "cnn" por voz y el canal cambiar. Control completo por voz o touch con el telfono.
En teora, el protocolo de control de Google TV es abierto, as que quizs pueda haber una app para iPhone que controle Google TV. Eso es si Apple lo aprueba.
Corto y rpido. Google cree que sabe lo que te gustara, as que creo Youtube Leanback. Un algoritmo detecta tus costumbres y videos ms vistos y reproduce automticamente videos que el algoritmo asume que te gustarn. Igualmente, Youtube lanz la posibilidad de rentar pelculas y series, que podrs ver en la app de Youtube de Google TV.
Al igual que Android, Google TV tiene un market de aplicaciones instalables en el TV. Apps especializadas de Netflix, FOX y dems para dar una interfaz mucho ms optimizada que un sitio web y as acceder a contenido por demanda.
Las apps moviles de Android funcionan en Google TV tambin. Igual que las apps de iPhone funcionan en iPad. Ligeramente "escaladas", pero funcionan. Tienes Android entero en tu TV.

Funciona, es lindo. Pero claramente est enfocado al mercado gringo inicialmente. Yo uso un laptop conectado a Boxee para hacer algo muy similar a Google TV, pero gratis y ya mismo. Google TV tiene Android, Youtube y lo ms importante, la caja de bsqueda. Falta ver precios y detalles, pero Te interesa? Lo compraras?
Los desarrolladores/diseadores web siempre han tenido la limitacin en cuanto al uso de tipografas en el diseo web, para lidiar con esto actualmente se utilizan varias alternativas mediante el uso de Javascript e inclusive Flash, Cufn y SIFR por mencionar algunos, pero hoy Google introdujo su Font API y Font Directory en el Google I/O, ofrecindonos una excelente alternativa para usar nuevas tipografas en web de forma gratuita.
Existen dos formas de utilizar el Font API:
Simplemente agregamos la siguiente lnea en nuestro HTML entre las etiquetas <head>:
Código :
<!-- embebemos la tipografa Tangerine --> <link href="http://fonts.googleapis.com/css?family=Tangerine" rel="stylesheet" type="text/css" />
y en nuestro CSS le aplicamos la propiedad font al elemento que queramos:
Código :
h1 { font-family: 'Tangerine', serif; }
En este caso estamos aplicando la tipografa Tangerine que llamamos en el ‘link’ del HTML a las etiquetas h1.
El otro mtodo sin necesidad de modificar nuestro HTML es hacerlo directamente en nuestra hoja de estilos usando @import:
Código :
@import url('http://fonts.googleapis.com/css?family=Droid+Sans');
Y luego en el elemento:
Código :
h2 { font-family: 'Droid Sans', serif; }
En este caso estamos aplicando la tipografa Droid Sans que llamamos en el ‘import’ del CSS a las etiquetas h2.
Para conocer que otras tipografas se pueden utilizar, visiten el directorio de fuentes y elijan la tipografa que ms les guste.
La API de Google Fonts esconde una gran complejidad. Por detrs, la infraestructura de Google se encarga de convertir la fuente en un formato compatible con cualquier navegador moderno (como Internet Explorer 6 en adelante) y enviar a nuestra web los caracteres exactos con los estilos que les hayamos definido.
Estas fuentes tambin funcionan bien con CSS3 y HTML5, incluyendo sombras, rotacin, etc. Funcionan de la misma manera que las fuentes locales, facilitando la separacin de contenido y presentacin.
Si quieren ver esto en accin, una reconocida web ya relanz su sitio haciendo uso de la tipografa Droid Sans.
Funciona en todos los navegadores, la diferencia es que en algunos se muestra anti-alias y en otros no, en cuanto a navegadores mviles al parecer no funciona por eso es una buena prctica definir una segunda fuente alternativa.
Esto es un gran recurso gratuito para que desarrolladores podamos usar tipografas diferentes sin necesidad de javascript.
Google Font API
Google Font Directory