Evitar navegación.
Principal

html

¿Por qué escribir HTML válido?

Es un hecho que aún hoy en día la gran mayoría de páginas webs no son válidas, los blogs son buen ejemplo de ello, mucho se habla de los estándares web son un conjunto de recomendaciones de la World Wide Web Consortium (W3C) y otras organizaciones internacionales.

El principal objetivo de validar tu sitio web es obtener una página que trabaja mejor para todo tipo de navegadores y es mucho más accesible pudiendo funcionar prácticamente en cualquier dispositivo de acceso a Internet, este último punto es muy importante ya que la cantidad de dispositivos diferentes para acceder a Internet ha crecido exponencialmente en los últimos años (teléfonos móviles, teléfonos inteligentes, PDAs, sistemas de televisión interactiva, sistemas de respuesta de voz, puntos de información e incluso algunos pequeños electrodomésticos pueden acceder a la Web).

¿Por qué escribir HTML válido?

Es difícil convencer a los desarrolladores de la necesidad de escribir HTML válido, ya que la gran mayoría de los navegadores procesa e interpreta correctamente el HTML no válido.

Entonces, la pregunta toma aún más interes, ¿Cuál es el incentivo para escribir HTML válido?, pues probablemente la respuesta sea es que si tu sitio web es válido las posibilidades de que la página se muestre y funcione igual en todos los navegadores aumenta considerablemente.

Pongamos un ejemplo básico de HTML y un ejemplo de HTML + Javascript para ver como afectaría un HTML no válido al funcionamiento de nuestra página en ambos casos.

Supongamos que disponemos del código siguiente:

<ol>
<li>Elemento principal uno</li>
<li>Elemento principal dos</li>
</ol>

Como se puede ver los navegadores procesarán sin problemas este código ya que no contiene errores y es bastante sencillo.

Pero que ocurriría si por el contrario cometiéramos errores de validación, por ejemplo:

<ol>
<p><li>Elemento principal uno</li></p>
<p><li>Elemento principal dos</li></p>
</ol>

En este caso el parrafo debería ir dentro del elemento "li" por lo que estamos cometiendo un error, a pesar de ello este error no afectará a la visualización y funcionamiento del HTML... ya que los navegadores podrán interpretarlo sin problemas.

Pero sin embargo si necesitamos el uso de Javascript sobre esta misma página HTML si que nos podemos encontrar con alguna que otra sorpresa.


Términos y condiciones de uso

Es posiblemente uno de los elementos más repetidos en los formularios de alta para servicios web, el apartado protagonista para esta entrada es el de los términos y condiciones de uso esencial para manifestar la conformidad del usuario. A menudo son aceptadas de forma automática por los usuarios que en la gran mayoria de las ocasiones no se detienen a leerlas.

Hay diferentes maneras en las que podemos encontrar este apartado, la manera de integrarlo en nuestra página dependerá en gran medida de si queremos que el usuario conozca o no lo que está aceptando.

Esto podemos llegar a hacerlo por dos motivos:

  • Para cubrirnos las espaldas y cumplir una normativa legal que obligue mostrar la politica de privacidad o los términos y condiciones de uso.
  • Para que el usuario sea realmente consciente de las condiciones que está aceptando.

El principal problema de estos textos es que muy pocas personas tienen el tiempo suficiente para leer el acuerdo y las que se animan a leerlo se encuentran con un lenguaje complicado que a menudo desanima al usuario para posteriores lecturas en procesos similares, particularmente nunca he llegado a leerme completamente ninguno de estos textos.


CSS Sprites

Los CSS Sprites es una sencilla y efectiva técnica de CSS que nos permite ahorrar ancho de banda.

Realmente los sprites son imágenes que contienen varias imágenes y se muestran gracias a diversas técnicas que nos permiten recortarlas.

Inicialmente se utilizó en el desarrollo de videojuegos debido a su versatilidad a la hora de realizar animaciones, hoy también nos lo encontramos como una técnica CSS que nos permite ahorrarnos ancho de banda.

Gracias a esta técnica podemos reducir considerablemente el peso de nuestra aplicación web y lo que es más importante el número de peticiones HTTP, estas dos ventajas nos permiten reducir el tiempo de carga de nuestra aplicación web y reducir la carga en el servidor.

¿Cómo aplicar esta técnica?

Únicamente tenemos que utilizar las propiedades CSS que nos permiten alterar el alto y ancho (height, width), de este modo podemos recortar una imagen que mostraremos como background, además necesitaremos modificar las propiedades de background-position para desplazarnos por la imagen original y mostrar la zona deseada.

Pequeño tutorial para comenzar a utilizar esta técnica.

¿Cuándo utilizar esta técnica?

Debemos de tener en cuenta qque cada vez que nuestra aplicación web llama a imágenes, hojas de estilos, archivos javascripts lo que realmente estamos haciendo son peticiones HTTP que se solicitan de manera individual y aumentan la transferencia y el tiempo de carga.

En primer lugar debemos utilizarla si tenemos un número elevado de usuarios y nuestro servidor alcanza picos de carga altos, también sería conveniente su uso en aplicaciones web que tengan un gran número de imágenes de tamaño pequeño.

El concepto principal a tener en cuenta es que debemos tener cuidado con la suma del tamaño de los archivos externos, no es lo mismo cargar 15 elementos de 10 KB que un único elemento de 150 KB, en el segundo caso la carga sería considerablemente más ligera.

La explicación a esta última afirmación es que al cargar un alto número de elementos estamos realizando peticiones HTTP que incluyen cabeceras y que a su vez vienen acompañadas por cookies (las cookies son relativamente ligeras pero los usuarios navegan con conexiones asimétricas dónde la velocidad de subida es muy inferior).

Por lo tanto podemos llegar al caso en el que las cabeceras de los archivos pesen más que los propios archivos y a menudo la carga que ello representa en el servidor se duplica.

Ejemplos prácticos

Yahoo utiliza esta técnica para mejorar el rendimiento, el principal motivo es el gran número de pequeñas imágenes que utilizan para identificar cada uno de los servicios.




La importancia de los Favicons

Los favicons (FAVOrite ICON) son pequeñas imágenes que aparecen en la gran mayoría de navegadores junto a la dirección de una página web.

Al estar asociado a la dirección de una página web es una parte fundamental de la imagen que el usuario tiene de la página en concreto, hay numerosas maneras de implementarlo pero sólo se va a mostrar de una única manera en el navegador, barra de herramientas o marcadores, por ello hay que ser cuidadoso a la hora de crear el Favicon de tu sitio web.


Rotando letras con Javascript

Un curioso y divertido truco para rotar letras visto en este foro, se trata de una función Javascript que sustituye las letras dadas por los caracteres que más se le parecen al rotar las letras del texto 180º.

Girar Texto

Tras esta breve presentación de Unicode pasemos a ver el truco Javascript para rotar las letras de un texto. Para probarlo introduce una cadena de texto en el campo "Original" y pulsa el botón "Girar Texto".

Original:



Texto rotado180º:





En la gran mayoria de los caracteres se utilizan caracteres unicode pero tambien hay algunos caso en los que para representar una letra del alfabeto invertida se utiliza otra letra del alfabeto para representarla:

b -> q
d -> p
g -> b
l -> 1
n -> u
o -> o
p -> d
s -> s
q -> b
x -> x
z -> z


Los colores en la web

En esta direccion podemos encontrar una lista de formulas para convertir entre los diferentes espacios de color, RGB, XYZ, HSL, etc.

Para la correcta compresión de estas fórmulas debemos tener claro cada uno de los modelos de color.

Esta lista de funciones las podemos aplicar a cualquier aplicación que precise de operaciones para el cálculo y conversión de color, todas las funciones están escritas en un "lenguaje de programación neutral" fácil de transladar a cualquier lenguaje de programación (C, Java, Basic, Pascal, PHP, Perl etc.).

Conversión de colores

RGB: (del inglés Red, Green, Blue; "rojo, verde, azul") es un modelo qye hece referencia a la composición de un color dependiendo de la intensidad de los colores primarios. Se asigna un valor a cada uno de los colores primarios frecuentemente se mide con valores que van del 0 al 255.

CMYK: (acrónimo de Cyan, Magenta, Yellow y Key) este modelo se basa en la mezcla de los colores Cian, Magenta, Amarillo y Negro es muy utilizado para la impresión a color.

Modelo de color para HTML; utiliza también los colores primarios, pero estos colores primarios , en HTML, están representados por tres pares hexadecimales del tipo 0xHH-HH-HH según el siguiente formato: #RRGGBB = #RRVVAA

Como hemos comentado antes en esta direccion dispondremos de las fórmulas necesarias para cualquier tipo de conversión de color.

Si necesitaramos integrar un selector de color en nuestra página mi recomendación es esta (Color Picker) | ver Demo.

CSS Color Generator

Mikko Koppanen publicó hace unos meses el código de una interesante utilidad (CSS Color Generator) en su blog.

Este código / utilidad será realmente interesante para aquellos que carecemos del sentido del gusto para crear hojas de estilos de la nada.

Con esta utilidad podemos crear una pequeña paleta de colores partiendo de una imagen dada (un logotipo por ejemplo sería un buen comienzo) | Código de la utilidad



Listado de provincias y municipios de España

Bueno despues de buscar durante un tiempo y con unos pequeños scripts con los que he podido parsear contenido de alguna página que otra he conseguido una lista decente de provincias y municipios de España.

Es increíble ver lo difícil que es encontrar este tipo de información en Internet con un formato apropiado para crear las listas (xls, csv o en BBDD).

Aquí os dejo un pequeño combo dinámico bastante simple y con un código Javascript un tanto rústico, estoy seguro que más de uno lo agradecerá.

Ver / Descargar código fuente
Ver ejemplo

Esta lista como comento no es muy completa, si lo que necesitas es un listado con un mayor número de ciudades podemos encontrarlos en esta entrada de la Wikipedia (Lista de Provincias de España), es un poco difícil de parsear pero con un poco de esfuerzo se puede conseguir y es sin duda la más completas de las que se pueden encontrar por Internet.


Validar Flash para XHTML

A pesar de que flash es uno de los elementos más activos en las páginas webs hoy en día, la gran mayoría de los diseñadores no saben cómo corregir el extendido problema de insertar flash en un documento HTML, el concepto de estándar propagado por Macromedia es absolutamente incorrecto.

...
embed src="movie.swf" quality="high" bgcolor="#ffffff" width="550" height="400"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"
...

Atributos como object son necesarios en Internet Explorer y no funcionan en otros navegadores, estos otros utilizan el elemento "embed" para el mismo propósito, pero este no está listado en las especificaciones de HTML o XHTML.

Soluciones

¿Que es lo que deseamos?

* Que funcione en la mayoria de los navegadores
* Que muestre contenido alternativo si el usuario no tiene Flash Player

Solución 1

Se han probado distintas soluciones en las cuales siempre uno de los dos grandes navegadores sale perdiendo (Mozilla o IE), pero hay una solución en la que mediante distintas condiciones podemos combinar ambos scripts para que funcione de manera correcta en la mayoría de los navegadores, haciendo especial hincapié en los más populares (Mozilla,IE).

Esta es la solución.

Quizás no sea la más elegante pero es funcional.

* Valida
* Es funcional en todos los navegadores que conozco
* Muestra contenido alternativo si Flash Player no esta instalado
* No requiere el uso de Javascript

Solución 2

Se trata de no validarlo. Es decir, si el único problema en la página es el código para flash, y no hay ningún estándar, entonces lo que hay que hacer es sacar ese código de la página y validarla, pero manteniendo el funcionamiento de la página.

Este proceso es sencillo y práctico, y depende de Javascript. Ya sé que si Javascript es deshabilitado entonces simplemente no se desplegará nada, pero esta opción es valida porque:

* Valida
* Es funcional en todos los navegadores
* Muestra contenido alternativo si Flash Player no esta instalado
* En el caso extremo de que Javascript esté deshabilitado, la animación no se muestra, pero simple código HTML puede hacer la función de soporte, explicando qué había ahí.