Archive for the ‘HTML’ Category

Cambios “al vuelo” en páginas Web

Tuesday, June 24th, 2008

Me pasaron un interesante enlace[cs.washington.edu], en donde se menciona un estudio realizado por un grupo de investigadores de CSE e ICSI. En dicho estudio demuestran que aproximadamente 1% de 50.000 usuarios, reciben las páginas web modificadas. Esta modificación “al vuelo”, se produce mientras la página deja el servidor y antes de llegar al browser del usuario. Las modificaciones consisten en inyectar anuncios, producidos en gran medida por agentes externos a los usuarios, por ejemplo los firewall de los ISP. Esto puede producir errores y vulnerabilidades.

Para poder medir estos cambios, desarrollaron un programa llamado web tripwires, que tiene la habilidad de detectar los cambios producidos en las páginas Web. Esta desarrollado en JavaScript y básicamente detecta cambios textuales en la página HTTP, reportandolos al usuario. Acá hay un ejemplo de cómo funciona, son dos páginas web con tripwire incluido.

Web tripwire está disponible para bajar.

Crear una presentacion S5

Monday, January 7th, 2008

En un anterior post había comentado sobre las presentaciones S5, ahora voy a explicar como hacer una. Para que nos sirva de ayuda podemos bajar una plantilla básica desde el blog del autor. Al descomprimirlo tenemos un archivo s5-blank.html y una carpeta ui, el archivo tiene la estructura básica de S5 y dentro de la carpeta se encuentra las CSS y el script javaScript, el cual se encarga de mostrar las diapositivas. Es importante mantener todo dentro del directorio que lo descomprimamos, ya que si cambiamos de lugar tanto s5-blank.html o ui se invalidarán las referencias. Si hacemos un cambio, habrá que cambiar la sección de link dentro del encabezado.

La estructura básica está formada por así decirlo por el encabezado y el cuerpo. El encabezado tiene el siguiente aspecto

[html]
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



….

….


[/html]

Y el cuerpo tiene este aspecto:
[html]



[/html]

El encabezado se encuentra entre las etiquetas <head></head> y dentro de él tenemos:

  1. Título de la presentación
  2. Metadatos
  3. Parámetros de configuración
  4. Links a las CSS
  5. Link al script JavaScripts

El título de la presentación debemos colocarlo entre las etiquetas <title></title>, luego en las etiquetas de metadatos <meta … />, van datos relacionados con la presentación, por ejemplo el autor, la fecha, la compañia, etc. Por ejemplo cambiemos el título de la presentación:

[html][/html]
Y cambiemos el autor y compañia
[html]


[/html]

Eso es suficiente modificar en el encabezado, vayamos al cuerpo. El cuerpo se podría dividir en dos partes:

  1. Diseño
  2. Presentación

El diseño se encuentra entre las etiquetas <div class=”layout”></div>, en él encontramos unas etiquetas que no hay que editar, sólo tenemos que cambiar dos etiquetas, las cuales son el título de la presentación y la fecha de la misma. Estas se mostrarán en la parte inferior izquierda de la presentación (teniendo en cuenta el estilo con que viene la presentación)

[html]

[/html]

La presentación se encuentra entre <div class=”presentation”></div>, dentro de él encontramos varías etiquetas <div class=”slide></div>, éstas son las diapositivas. Coloquemos una diapositiva a la presentación.

[html]

¡Esto es muy fácil!

No es necesario conocer mucho de HTML

Ni tampoco de CSS

Y menos de javaScript

[/html]

Con esto sería suficiente para tener una una diapositiva. Si ahora abren la diapositiva con su browser, notarán que contiene signos extraños en los lugares donde hay acentos, esto se soluciona fácilmente. Deben colocar la siguiente línea en el encabezado al principio de la sección de metadatos

[html]

[/html]

Con esto sabe el browser con cuál codificación mostrar los caracteres. Aquí hay una muestra de cómo se vería

Imagen que muestra una presentación S5

Al final de las etiquetas de presentación encontramos

[html]

[any material that should appear in print but not on the slide]

[/html]

El contenido que agreguemos dentro de éstas etiquetas, no se mostrará en una diapositiva, pero sí saldrá cuando imprimamos la presentación. Por ejemplo aquí se podría colocar información relacionada con la muestra de diapositivas.

Para finalizar, vamos agregar una diapositiva con efecto de muestra incremental, esto es que cada vez que hagamos click en la pantalla aparecerá un nuevo elemento. La diapositiva la agregaremos a continuación de la anterior, siempre dentro de las etiquetas <div class=”presentation”></div>; tendrá una lista de elementos, los cuales aparecerán con cada click

[html]

Efecto de muestra incremental

  • Esto
  • es
  • muy
  • fácil

[/html]

Bueno, se puede hacer mucha cosas más, ya que es una página HTML, por ejemplo, agregar imágenes, link, efectos, animaciones, etc.

Presentación en S5

Sunday, January 6th, 2008

S5 es una forma de realizar presentaciones de diapositivas (slide) basandose en 3 tecnologías:

  • XHTML
  • CSS
  • JavaScript

Gracias a estas sólo necesitamos de un browser para poder exponer la presentación, aumentando enormemente la portabilidad, pudiendo lograr que la presentación se pueda reproducir en casi cualquier parte.

JavaScript es el encargado de efectuar el efecto de pasar las diapositivas. No va a ser de sorprenderse que dentro de poco salgan script que hagan incontable efectos en nuestras presentaciones, dejando atrás a cualquier efecto que nos pueda brindar un paquete ofimático de presentaciones.

Algo de mucha utilidad es que al trabajar con CSS, se pueden diseñar distintos CSS según el medio para tener una visualización acorde, por ejemplo una CSS diseñada para un medio como la impresora facilitaría su visualización porque no se imprime como se muestra en la pantalla del monitor, o sea en forma de diapositivas; esto abre un gran abanico de posibilidades, por citar algunas es posible portar nuestras presentaciones a medios como dispositivos táctiles para braille o impresoras braille.

Una contra que se le puede encontrar (pero no por mucho, supongo) es que para poder elaborar las presentaciones debemos contar con conocimientos en HTML, para el contenido y en CSS para poder diseñar el estilo de nuestra presentación. Es sólo cuestión de tiempo para que salgan interfaces que faciliten el proceso de desarrollo, además ya se encuentrar varios temas para aplicar estilos a las presentaciones.

En el blog del autor de S5 hay basta documentación del mismo.

Selectores CSS

Monday, December 31st, 2007

Una de las confusiones que se suele presentarse a la hora de diseñar CSS es saber la diferencia entre los distintos selectores. CSS cuenta con los siguientes

Veamos exactamente que es un selector:
[css]p { font-size: 12px; }[/css]

Esto se denomina una regla CSS. p es un selector y lo que se encuentra dentro de los paréntesis es una declaración (puede haber más de una declaración). Una declaración está formada por dos elementos: propiedad y valor; la propiedad en éste caso sería font-size y el valor sería 12px.

El selector de tipo, índica que se apliquen las declaraciones a todas las etiquetas del documento. Este selector es el menos restrictivo
Por ejemplo:
[css]h4 { color: blue; }[/css]

Aplicado al siguiente código html
[html]

soy un h4

soy otro h4

¡Somos todos del mismo color!

[/html]
Salida
Aplicación de selector de tipo
Como se puede ver en la salida sólo se aplico el estilo a todas las etiquetas que coincidieron con el selector.
En el siguiente ejemplo aplicaremos el mismo estilo a dos etiquetas, CSS nos ayuda a simplificar la notación, para no definir dos veces las mismas declaraciones.
[css]strong, em{color:green;}[/css]

Notar que los selectores están separados por coma

que lo aplicaremos a
[html]

Soy un strong verde

soy em verde y también un strong verde

[/html]
Salida:
Aplicación de selector de tipo, con notación reducida
Con esto logramos que todas las etiquetas strong y em en la página tengan el mismo estilo.

Los selectores descendentes sólo aplica las declaraciones cuando coincide el selector y el anidamiento de etiquetas especificado. Veamos un ejemplo para aclarar las cosas
[css]p strong {color:red;}[/css]

Notar que los selectores están separados por espacios

Y tengamos el siguiente código HTML
[html]

Tengo una parte strongpero ¡no es rojo!

Sólo dentro de mi es rojo

[/html]
Salida
Aplicación de selector de descendencia
No se aplico el estilo en h5, porque el selector descendente especifica que el estilo se aplique dentro de p, o sea se aplica el estilo al selector más a la izquierda y que se encuentre contenido en el selector de la derecha. Sólo dentro p cumple con el anidamiento especificado en el selector de descendencia.

A través de los selectores de clase podemos referenciar etiquetas especificas de la página que no lo podríamos lograr con los anteriores selectores. Una situación sería la siguiente:

Marcar con amarillos 3 etiquetas strong. Donde por lo menos una deben encontrarse dentro de cualquier etiqueta.

En está situación no podemos usar los selectores de tipo, ya que nos indica que sólo marquemos 3 strong, ni los selectores de descendencia porque los encabezados se pueden encontrar dentro de cualquier etiqueta.
Para solucionar dicha situación deberemos definir un selector de clase, estos se aplican a todas las etiquetas con el valor del atributo class igual al selector. Un mismo elemento puede tener una o más class.
[css].amarillo{color:yellow;}[/css]

Notar el signo punto al inicio del selector

Que aplicaremos al siguiente código
[html]

Tengo un strong pero no es amarillo

Tengo un strong y es amarillo

puedo ser amarillo en cualquier parte

Falta un ultimo strong

[/html]
La salida sería
Aplicación de selector de clase
Con el selector de clase podemos aplicar el estilo a una o más etiquetas determinadas.

Y por último tenemos el selector de ID, cumple la misma función que el selector de clase. Pero para aplicar dicho estilo se utiliza el atributo id de las etiquetas. Veamos como se define
[css]#unico{color:#6947a7}[/css]

Notar el signo almohadilla al inicio del selector

Y lo aplicamos en el siguiente código
[html]

soy el único strong de la página con este color

No puedo ser de ese color

Tampoco lo puedo ser

[/html]
Salida
Aplicación de selector de ID
Como se puede ver, estos dos selectores se comportan de manera muy parecida ¿Cuál es entonces la diferencia entre un selector de clase y uno de id? La diferencia es sútil y radica en que un selector de clase puede aparecer una o más veces en una misma página, en cambio un selector de ID sólo puede aparecer una sóla vez en la página, debido a que se utiliza el atributo id de la etiqueta, y en una misma página no pueden haber dos etiquetas con el mismo valor de id. Por lo tanto el selector de ID se utiliza para que aparezca una vez en la página, por ejemplo definir el estilo de la etiqueta body; por el contrario el selector de clase aparece varias veces en la misma página, como vimos en el ejemplo de los tres encabezados.

Esto cuatros selectores pueden combinarse entre sí y dar una amplia variedad de forma de especificar elementos en los documentos. Les dejo un último ejemplo para mostrarles lo muy complejo que se puede volver una notación de selectores
[css]
p#directo strong.especial em a#video { … }
[/css]
Las declaraciones se aplicarán sólo a un link que tenga el valor id igual a video y que se encuentre dentro de un elemento em, que a su vez se encuentre dentro de un elemento strong con el atributo class igual a especial, el cual se encuentra dentro de un elemento p con el atributo id igual a directo.

Páginas web dinámicas

Sunday, December 9th, 2007

Acá les dejo una explicación de las dos formas en que se puede generar contenido dinámico en documentos web. Ya que he notado que varias personas no comprenden bien la diferencias de las dos formas. Ninguna forma es “superior” a la otra, sino que se complementan. Hay varias ocasiones donde es necesario usar ambas formas para poder solucionar un determinado problema.

Contenido dinámico del lado del servidor:

Por ejemplo imaginen el siguiente escenario, se está llenando un formulario para ser un usuario de un determinado sitio web. Al enviar el formulario, se envía un mensaje al servidor, pero no para solicitar un archivo de regreso. Sino, se debe pasar los valores del formulario a alguna aplicación del servidor para que lo procese. Por ejemplo se podría disparar una consulta a una base de datos, para verificar que el nombre de usuario indicado en el formulario no está asignado. Entonces aquí tenemos una generación de contenido dinámica, porque según los datos del formulario se generará distintos contenidos, por ejemplo si el nombre de usuario ya está registrado se podría mostrar una página indicando que dicho nombre ya está usado, o en cambio si los datos fueron correctos generar una página felicitando al nuevo usuario. Hay varios lenguajes para escribir estos programas: Perl, PHP, JSP, ASP.

Contenido dinámico del lado del cliente:

Hoy en día está muy de moda colocar “efectos” en las páginas. Uno que es muy usado es que cuando se presiona un botón (o se pasa por arriba de este) ocurre algo, por ejemplo, cambia de color o se abre una etiqueta que nos indica a que hace referencia ese botón, etc. Como se puede ver todo ese contenido dinámico es en respuesta a la interacción con el usuario y no es necesario para nada el servidor de donde se solicitó la página. Para generar esos efectos es necesario tener comandos incrustados dentro de la página y que actúen en función de lo que hace el usuario. Un lenguaje muy popular para esto es Javascript.

 

Como se puede ver la diferencia entre ambas es muy rígida, pero a través de la tecnología AJAX, es posible unir las otras dos y que interaccionen de una manera más flexible ofreciendo una mayor calidad al usuario, un mayor grado de interactividad.

Algo que hay que destacar es que AJAX en sí no es una tecnología ni un lenguaje de programación, es más bien la unión de varias tecnologías. AJAX es una técnica de desarrollo web.

Una explicación sómera de como se utiliza AJAX (sin entrar en detalles técnicos) podría ser el caso en que se busca una palabra en la barra de Google, al colocar la primera letra, el servidor despliega una lista de sugerencias de palabras que empiezan con esa letra. Al colocar una segunda letra se vuelve a mostrar otra lista de sugerencias.

Efecto AJAX


Efecto AJAX, después de interacción con usuario

Aquí se puede ver que para obtener la lista se necesita información del servidor y la lista está en función de la interacción que tiene el usuario con la página. De aquí que unimos las dos tecnologías y damos una apariencia de mayor fluidez al usuario, primero por que la página no se refresca completa, sino, la lista de sugerencias y segundo una comunicación más rápida con el servidor, porque no tiene que traer toda una página, sino una pequeña lista.