Contenido

Web Forms 2.0, el futuro de nuestros formularios(I)

17 Sep

+ 9

Con la llegada de HTML5, que parece estar planificada … ¿para 2022?. Traerá muchísimas novedades, como para no traerlas con el tiempo que queda.

Una de las que más me ha llamado la atención ha sido este borrador de Web Forms 2.0, que pretende ser una muestra de lo que serán los formularios del futuro, ya que los actuales comienzan a quedarse cortos y se ha de abusar de javascript para paliar ciertas carencias que podrían estar incluidas en el navegador.

Hay muchas modificaciones, pero especialmente me ha gustado las extensiones que van a sufrir los elementos <input />, los más importantes de nuestros formularios.

Nuevos tipos

Para ampliar las capacidades de estos elementos se han planteado una serie de tipos que describimos a continuación:

  • datetime
  • datetime-local
  • date
  • month
  • week
  • time
  • number
  • range
  • email
  • url

Con estos nuevos tipos de elementos, sumados a los actuales (submit, file, button, radio,…) podemos hacer cosas como estas con únicamente 2 líneas.

<p>
  <label for="time1"> Preferred delivery time: </label>
  <input id="time1" name="time1" type="time" min="08:00" max="17:00" value="08:00" /> —
  <input id="time2" name="time2" type="time" min="08:00" max="17:00" value="17:00" />
 </p>

De esta forma, estamos indicando que se trata de 2 elementos de tipo tiempo y que los rangos entre los que nos permiten definir sus valores van desde las 8:00 a las 17:00… se acabó el Javascript necesario para controlar los valores que introducimos.

Al ser el navegador el que se encarga de dicho control, podemos dedicar nuestros esfuerzos a otros menesteres más interesantes.

Nuevos atributos

Mediante la incorporación de una serie de atributos nuevos podremos realizar interesantes combinaciones, enriqueciendo nuestras aplicaciones sin necesidad de hacer que nuestro código crezca.

  • min
  • max
  • step
  • pattern
  • required
  • form
  • autocomplete
  • autofocus
<input type="date" min="1900-01-07" step="7" name="sunday" >

Sin duda el atributo más interesante, o por lo menos uno de los que más van a dar de sí es pattern, ya que nos permitirá definir una expresión regular y el <input /> validará que el valor que introduzcamos no se salga de dicho patrón.

<label> Credit Card Number:
 <input type="text" pattern="[0-9]{13,16}" name="cc" />
</label>

Con required haremos que un elemento sea imprescindible para que nuestro formulario pueda ser procesado. Algo que hasta ahora hacíamos con Javascript.

<li><label> Name: <input type="text" name="name" required="required" /></label></li>

Con la inclusión del atributo form, podremos indicar a que formulario (o formularios) obedece un elemento <input />, quizás este punto es un poco delicado ya que creo que podría romper la semántica del código informando un elemento <input /> en un lugar distante del formulario, haciendo perder la idea de la estructura actual.

<form id="edit1">
<input form="edit2" type="text" name="value"/>
<input form="edit1" type="submit" name="Edit"/>
</form>
...
<form id="edit2">
...
</form>

En definitiva, una gran cantidad de cambios que de aquí al 2022 podremos ir viendo :D

Espectaculares gráficas con CSS puro y duro

4 Mar

+ 2

Pure CSS data Chart, son unas gráficas creadas únicamente con CSS que no le tienen nada que envidiar a las sobrecargadas con Javascript.[Demo][Descargarc]

60 Directrices para realizar formularios usables

28 Feb

+ 0

Olga, como es de costumbre, nos deleíta con un artículo que recoge las 60 directrices para realizar formularios usables. Algo que todo desarrollador web debería tener presente.

Nuevos tipos de enlaces para el HTML5

8 Ene

+ 10

El gran pegamento que une esta red llamada Internet son los enlaces, con ellos podemos pasar horas frente al ordenador simplemente siguiendolos. Los robots encargados de obtener datos para los buscadores hacen exactamente lo mismo y se recorren las webs y todos sus enlaces para catalogar estratégicamente todo el contenido que se vaya encontrado por el camino y siguiendo los enlaces que haya dentro de él.

Por ese motivo, el nuevo HTML tendrá que ser un poco más descriptivo a la hora de definir el tipo de enlace que estamos enlazando. Para ello usaremos el atributo rel="" de nuestros enlaces que como hasta ahora veníamos haciendo para definir tags, alternate,…

La nueva especificación, aporta una serie de tipos definidos que nos ayudarán a marcar con un tipo definido al enlace que estamos marcando. De esta forma los robots encargados de catalogar la información tendrán algo más de información sobre los enlaces, perfeccionando las futuras busquedas y mejorando los futuros resultados.

Tipos de enlaces HTML5

alternate
Informamos de una forma alternativa de ver el contenido
archives
Enlace a una colección de articulos, documentos o otro tipo de material histórico
author
Enlace al autor del documento
bookmark
Enlace que se relaciona con la sección anterior más cercana.
contact
Enlace hacia una forma de contacto sobre el documento actual.
external
Indica que el enlace referencia una documento externo a nuestro servidor.
feed
Enlace del feed de sindicación del documento
first
Indica el primer documento de una serie de ellos.
help
Enlace hacia un sistema de ayuda sobre el documento.
icon
Importa un icono para representar el documento actual
index
Enlace que nos lleva a la tabla de contenidos o un listado de páginas de nuestro documento
last
Indica el último documento de una serie de ellos.
license
Enlace hacia la descripción de la licencia usada en nuestro documento.
next
Indica el siguiente document de una serie de ellos.
nofollow
Indica que el documento enlazado no es relevante referente al documento actual.
noreferrer
Requiere que el agente de usuario no envie una petición HTTP Referer si el usuario sigue el enlace.
pingback
Enlace de un pingback
prefetch
Indica que el destino debería ser cacheado previamente.(Gracias Martin por la traducción)
prev
Indica el documento anterior de una serie de ellos.
search
Indica que el enlace permite realizar una busqueda.
stylesheet
Importa una hoja de estilos
sidebar
Especifica que el documento enlace está previsto ser mostrado en sidebar del navegador (si este lo tiene)
tag
Indica que se trata de una palabra clave del documento
up
Indica el padre del documento actual.

Internet Explorer 8 y la interacción con el Sistema Operativo

28 Dic

+ 10

Este artículo ha sido la inocentada del 28 de Diciembre de 2007. Siento las molestias que haya podido originar. Si eres un desarrollador de Microsoft, por favor evita olvidar todo lo que hay en este post, no nos hagas sufrir :D

Via Ajaxian, descubrimos lo que el equipo de desarrollo está haciendo con Internet Explorer 8. Visto que la carrera hacia los estandares es algo que no van a conseguir a corto plazo, han decidido apostar por el usuario y plagar a su navegador de una serie de funcionalidades que harán mucho más interesantes la interacción entre el usuario y el sistema operativo.

ieribbon1xv4.jpgieribbon3ph3.jpg

No hace falta decir que estas nuevas funcionalidades son exclusivas para Windows XP (SP3), Vista y superiores, sobre Internet Explorer 8. Que aunque el estado de dichas funcionalidades es de beta están recibiendo un alto grado de aceptación por parte de los desarrolladores nipones.

La magia de navigator.parent

La apuesta de Microsoft por las redes sociales lo han llevado a crear la propiedad parent para el objeto navigator, que nos permite acceder directamente al sistema operativo y en el cual podremos encontrar funcionalidades realmente interesantes como las que veremos a continuación.

var SO = navitator.parent;  

Interacción con los dispositivos de audio

Como era de esperar, la última vuelta de tuerca de M$ ha sido reforzar el Javascript de Internet Explorer 8, a los estandares HTML5 favoraciendo la interacción con los dispositivos del que el usuario tenga instalado. Con el método onChangeSong(), nuestro navegador nos avisará cuando Windows Media Player cambie de canción, algo realmente útil para aplicaciones sociales, tipo Twitter que nos informarán de la canción que están escuchando nuestros usuarios.

Ejemplo 

var SO = navigator.parent;
SO.onChangeSong = function(song) {
	alert("Título: " + song.title + "\nAutor: " + song.title + "\n Duración: " + song.duration);
}

Interacción con dispositivos de video

Los dispositivos de video tambien se verán afectados por estas mejoras, y ahora será posible conocer las películas que nuestro usuario tiene agregadas a las listas de reproducción de su Windows Media Player mediante una simple función, getMovieList(). De esta forma crear aplicaciones p2p que nos permitan conocer las películas que tiene cada usuario será coser y cantar.  Por desgracia no detecta películas .ogg, ni .mp4 optimizadas para iPhone/iPod Touch

var SO = navigator.parent;
SO.getMovieList = function(movie) {
	alert("Título: " + movie.title + "\nDirector: " + movie.director + "\n Formato: " + movie.format);
}

Interacción con MSN Messenger

La aplicación estrella de Microsoft, MSN Messenger, no iba a ser menos, dotada con varios método y propiedades es sin dida la funcionalidad más esperada y que más revuelo está causando entre la comunidad de desarrolladores ya que la interacción con este protocolo hasta ahora había sido algo realmente complicado y casi imposible de integrar con aplicaciones web. Ahora con este ser de funcionalidades, será realmente interesante y fácil desarrollar aplicaciones web basadas en MSN.

API

var SO = navigator.parent; // Sistema Operativo
var MSN = SO.messenger; // Messenger

MSN.status; // Estado del usuario (0=inactivo, 1=conectado, 2=ausente, 3=salí a comer)
MSN.statusText; //Texto del estado
MSN.nickname; //Nombre del usuario
MSN.email; //Email del usuari
MSN.image; //Imagen del usuario
MSN.lastConnect; // Timestamp de la última conexion
MSN.contactlist; // Array de contactos

var list = MSN.contactlist;
for each(var contact in list) {
	contact.nickname; //Nombre del contacto
	contact.email; //Email del contacto
	contact.image; //Imagen del contacto
	contact.lastConnect; //Ultima conexión del contacto
	contact.status; //Estado del contacto
	contact.statusText; //Estado del contacto
}

Por desgracia, estas mejoras únicamente estarán disponibles para usuarios Windows y sobre Windows XP (SP3)/Vista, por ese motivo tendremos que comprobar si tenemos estas funcionalidades disponibles antes de usarlas.

Ejemplo 

if (navigator.parent) {
// Código IE8
} else {
//código alternativo
}

[Via] / [Imagenes via Baluart]

Internet Explorer 8 pasa el Acid 2 test

20 Dic

+ 28

Nada más levantarme, la primera en la frente!! Al abrir el Google Reader veo esta noticia en Ajaxian, en la que informan que Internet Explorer 8, la versión interna de Microsoft, ha pasado el Acid2 Test. La prueba estrella de WebStandars

Acid2 Test

Navegadores como Opera, Firefox 3.0 ya forman parte de la poco extensa lista de privilegiados capaces de pasar el famoso test con un aprobado. Ahora Internet Explorer, el más alejado a estos en cuanto a validación de estandares, se está abriendo camino en esa dirección. Y esto beneficiará a todo el mundo haciendonos entrar, poco a poco, en un mundo más “estandar”.

Un preview al HTML5

4 Dic

+ 17

Los chicos de A List Apart, nos deleítan con un artículo sobre el nuevo HTML y los cambios que vamos a notar al llegar a nuestros editores de código.

Ya se ha comentado mucho de las diferencias con la versión anterior, y tambien de las polémicas con su principal competidor, pero el HTML5 es una realidad y tendremos que ir haciendonos a la idea.

Ahora (HTML 4/xHTML 1.0)

Estructura DIV

El futuro HTML5 

Estructura HMTL5

Interface móviles para clientes BitTorrent

1 Dic

+ 1

Hace ya unas semanas que iEmule nació y la verdad es que me ha ayudado a controlar mis descargas desde cualquier sitio en el que me encontraba. Permitiendome añadir descargas que al llegar a casa no me hubiera acordado, incluso me ha hecho cambiar de planes al ver que ya tenía algo descargado y que podría ir a casa a verlo, y/o escucharlo.

Ahora µTorrent dispone tambien de su propio interface adatado a la tecnología móvil, y como nó para el iPhone/iPod Touch

µTorrent mUI 2.0

La posibilidad de adminitrar tus descargas desde el móvil, puede volver todavía más atractivo este cliente BitTorrent. 

muiutorrent1.jpgmuiutorrent2.jpgmuiutorrent3.jpg

Posibilidades:

  • Ver el estado de los torrents activos
  • Pausar y activar torrents
  • Añadir y Eliminar torrents

[Demo n70][Demo Opera Mini]

µTorrent mUI

iPhone Web para µTorrent

Las nuevas tecnologías tambien están calando fondo a este cliente. 

iphone_utorrent.jpg

Posibilidades:

  • Ver el estado de los torrents activos
  • Pausar, activar torrents.
  • Añadir nuevos torrents añadiendo una URL

iPhone web internet for uTorrent

Buenas prácticas en la implementación de formularios

22 Nov

+ 2

Los formularios, detrás de los enlaces son los elementos que hacen posible la web. Gracias a ellos podemos comunicarnos con otras páginas, en las que podemos comentar, subir archivos e interactuar con el servidor desde nuestro navegador. 

Por eso debemos darle una especial importancia a la hora de implementarlos. Para ello seguiremos unas buenas prácticas que nos asegurarán que funcionen de la forma más óptima y correcta.

  1. Formularios de una sola página.
  2. Si hace falta pagina
  3. Minimiza los datos solocitados
  4. Usa ajax para mejorar el formulario, no lo hagas dependiente de él.
  5. No seas muy agresivo con la validación javascript, guía al usuario.
  6. Usa elementos <label />
  7. Si puedes, mejora la estética de los <input type=”file” />

Nace Faz, la revista de diseños de interacción

19 Nov

+ 1

Via Yusef (HCNet) y Cadius descubro que la Revista Faz nº1 ha sido publicada. Faz es una nueva revista centrada en el diseño de interacción, un término algo desconocido por la comunidad de webmasters pero realmente interesante y sobretodo importantísimo para conseguir una internet para seres humanos.

revistafaz.JPG

Primer número de Faz