martes, 29 de septiembre de 2009
El funcionamiento de una computadora
Quienes desean adentrarse en el funcionamiento de una computadora, ya sea por curiosidad o por motivos profesionales, tropiezan a menudo con el problema de carecer de los simples principios que permiten visualizar a estos equipos en sus bloques principales, como intervienen en los procesos y además cual ejecuta cada uno de ellos.
Cuando inicialmente se tiene en claro estos conceptos básicos, se obtiene la plataforma ideal para iniciar el aprendizaje. Luego, toda la descripción inmediata de los procesos, elementos y dispositivos tecnológicos empleados en el ámbito técnico de la computación, se hace más entendible. Por este motivo hemos decidido comenzar esta obra explicando brevemente aquellos conceptos y términos que creemos son la puerta de entrada a tan fascinante universo.
¿Qué hace una computadora? Básicamente cualquier tipo de computadora realiza operaciones de procesamiento de datos, exponiéndolos luego como información. Precisamente, la función primordial de una computadora es llevar a cabo procesos de datos en forma automática, a gran velocidad y sin la intervención humana.
Cuando los datos ingresados son ordenados de acuerdo a un esquema lógico, se transforman en información disponible para el usuario. La adquisición de información a partir de datos es la función relevante de una computadora siendo la Informática la ciencia que estudia la obtención de información a través de sistemas automáticos.
Los datos que ingresan a la computadora se procesan por medio de rutinas contenidas en los "programas de aplicación".
Fundamentalmente los distintos tipos y modelos de computadoras, principalmente difieren en el volumen de datos que pueden procesar, así como la velocidad con que se efectúa esta operación.
El principio de la caja negra
Cuando se tiene un dispositivo o módulo dispuesto para una función, es muy importante considerarlo como una "caja negra", es decir no se sabe que dispositivos o componentes hay dentro de él, sino que procesos lleva a cabo. Este método es muy utilizado pedagógicamente para permitir una rápida comprensión global de la función del dispositivo estudiado. Para elaborar la función descrita anteriormente (ingresar datos, elaborar los mismos y luego dar salida a la información obtenida), se necesitan tres módulos principales en los que podemos agrupar a todos los dispositivos que intervienen en los procesos mencionados. Estos son:
• Módulo de entrada/salida
• Memoria de trabajo
• Unidad procesadora
Introducción al procesamiento de datos
Una computadora está constituida por centenares o miles de complejos dispositivos y circuitos electrónicos adecuadamente integrados, tanto en sus componentes físicos, como en la función de los mismos. Debido a esto para comprender su funcionamiento, dividiremos a la computadora en bloques sin tener en cuenta en esta etapa, los pormenores de la parte electrónica que integra cada uno (método de explicación denominado "caja negra").
El primer módulo de "entrada - salida", identificado con la sigla E/S, es usualmente más conocido por las palabras en ingles Input- Output (I/O).
Este módulo que en realidad tiene dos funciones, cuenta en algunos casos con dispositivos que individualmente sólo pueden ser considerados como de entrada (input), o de salida (output), mientras que otros dispositivos permiten ejecutar ambas operaciones (input-output).
En la figura 1.1, podemos ver un ejemplo de cómo en el módulo I/O, puede haber un dispositivo que cumpla ambas funciones, o un dispositivo distinto para cada una de ellas.
A través de las unidades de entrada, se introducen los datos que se van a procesar, además de las instrucciones (programas de aplicación) que se utilizan para tratar los mismos. Por otra parte, la información obtenida (datos procesados) es emitida a través de las unidades de salida que son las que permiten "ver el resultado".
El segundo módulo es "la memoria". Cuando se ingresan datos, estos son almacenados en espera de su proceso en una "memoria de trabajo" o también denominada "memoria principal" que es temporaria (técnicamente conocida como "memoria RAM"). También en la RAM se cargan las instrucciones del programa de aplicación, que indicará a qué operación serán sometidos los datos ingresados. Del mismo modo los datos ya procesados son almacenados hasta su salida, en la memoria RAM.
Para comprender lo descrito anteriormente, la figura 1.2 nos muestra un esquema, que ilustra como en un momento cualquiera en la memoria RAM, pueden estar presentes, los datos ingresados en espera de procesamiento, los datos del programa de aplicación y datos que han sido procesados, en espera de su salida.
Esquema de funcionamiento de una computadora. Conceptos previos. Funcionamiento interno de una computadora. El procesador. El concepto de interrupción. Jerarquía de memoria. Estructuras básicas de interconexión. Computadoras personales (PC). Paralelismo en computadoras.
El procesador
§1 Presentación
En realidad "procesador" es un término relativamente moderno. Se refiere a lo que en los grandes ordenadores de antaño se conocía como Unidad Central de Proceso UCP (CPU "Central Processin Unit" en la literatura inglesa). Comenzó siendo del tamaño de un armario, posteriormente se redujo al de una gran caja, después se construyó en una placa de unas 15 x 15 pulgadas. Finalmente se construyó en un solo circuito integrado encapsulado en un "chip" que se inserta en un zócalo de la placa-base [0].
En los primeros tiempos de la informática personal, que podemos suponer se inicia con la introducción del PC ("Personal Computer") por IBM a mediados de 1981 [1], el mercado de microprocesadores para el PC estaba copado por Intel, que arrancando con el 8088 [2], un modesto procesador de 16 bits a 4.77 MHz de velocidad de reloj ( H2), fue sufriendo sucesivas mejoras; principalmente en lo que respecta a la velocidad (que en el 2001 ha alcanzado más de 1 GHz. para equipos comerciales); capacidad de procesamiento en paralelo; capacidad de los registros; cache interna y facilidades hardware para multiprogramación.
El concepto de interrupción
• El Esquema Ordenador.
o Unidad de control.
o Reloj
o Unidad de Proceso o Aritmética Lógica.
• La Memoria
o Memorias ROM y RAM.
o Bancos de Memoria
• Microprocesador 8086
o Registros del microprocesador
o Dirección Efectiva
o Segmentos
o Modos de direccionamiento
• Interrupciones
o Las interrupciones desde el punto de vista del Hardware
o Las interrupciones desde el punto de vista del software
o La interrupción 21
• BIOS (Sistema básico de entrada/salida)
• POST
• La BIOS (algoritmos)
o Programa SETUP
• Teclado
o Interrupción 9
o Buffer de teclado
• Modo de video
o Características de la placa
o La BIOS de video
o Desplazamiento de pantalla (Scrolling)
o Construcción de la pantalla mediante el monitor
o La controladora CRT
o RAM de video
• Discos flexibles
• Discos rígidos
o Técnicas de transferencia entre la controladora del disco y la memoria
Jerarquía de memoria
De Wikipedia, la enciclopedia libre
Saltar a navegación, búsqueda
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
• Cantidad
• Velocidad
• Coste
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:
• A menor tiempo de acceso mayor coste
• A mayor capacidad mayor coste
• A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.
Estructura básica de interconexión
Un sistema computacional es un sistema complejo que puede llegar a estar constituido por millones de componentes electrónicos elementales.
Esta naturaleza multinivel de los sistemas complejos es esencial para comprender tanto su descripción como su diseño. En cada nivel se analiza su estructura y su función en el
sentido siguiente:
Estructura: La forma en que se interrelacionan las componentes
Función: La operación de cada componente individual como parte de la estructura
Por su particular importancia se considera la estructura de interconexión tipo bus.
ESTRUCTURACIÓN DE LOS BUSES
Existen dos organizaciones físicas de operaciones E/S que tienen que ver con los buses que son:
Bus único
Bus dedicado
La primera gran diferencia entre estas dos tipos de estructuras es que el bus único no permite un controlador DMA (todo se controla desde la CPU), mientras que el bus dedicado si que soporta este controlador.
El bus dedicado trata a la memoria de manera distinta que a los periféricos (utiliza un bus especial) al contrario que el bus único que los considera a ambos como posiciones de memoria (incluso equipara las operaciones E/S con las de lectura/escritura en memoria). Este bus especial que utiliza el bus dedicado tiene 4 componentes fundamentales:
Datos: Intercambio de información entre la CPU y los periféricos.
Control: Lleva información referente al estado de los periféricos (petición de interrupciones).
Direcciones: Identifica el periférico referido.
Sincronización: Temporiza las señales de reloj.
La mayor ventaja del bus único es su simplicidad de estructura que le hace ser más económico, pero no permite que se realice a la vez transferencia de información entre la memoria y el procesador y entre los periféricos y el procesador.
Por otro lado el bus dedicado es mucho más flexible y permite transferencias simultáneas. Por contra su estructura es más compleja y por tanto sus costes son mayores.
Interacción persona-computador
De Wikipedia, la enciclopedia libre
(Redirigido desde Interacción Persona-computador)
Saltar a navegación, búsqueda
Para otros usos de este término, véase IPO (desambiguación).
Todavía no hay una definición concreta para el conjunto de conceptos que forman el área de la interacción persona-computador. En términos generales, podríamos decir que es la disciplina que estudia el intercambio de información entre las personas y los computadores. Ésta se encarga del diseño, evaluación e implementación de los aparatos tecnológicos interactivos, estudiando el mayor número de casos que les pueda llegar a afectar. El objetivo es que el intercambio sea más eficiente: minimizar errores, incrementar la satisfacción, disminuir la frustración y, en definitiva, hacer más productivas las tareas que rodean a las personas y los computadores.
Aunque la investigación en este campo es muy complicada, la recompensa una vez conseguido el objetivo de búsqueda es mucho gratificante. Es muy importante diseñar sistemas que sean efectivos, eficientes, sencillos y amenos a la hora de utilizarlos, dado que la sociedad disfrutará de estos avances. La dificultad viene dada por una serie de restricciones y por el hecho de que en ocasiones se tienen que hacer algunos sacrificios. La recompensa sería: la creación de librerías digitales donde los estudiantes pueden encontrar manuscritos medievales virtuales de hace centenares de años; los utensilios utilizados en el campo de la medicina, como uno que permita a un equipo de cirujanos conceptualizar, alojar y monitorizar una compleja operación neurológica; los mundos virtuales para el entretenimiento y la interacción social, servicios del gobierno eficientes y receptivos, que podrían ir desde renovar licencias en línea hasta el análisis de un testigo parlamentario; o bien teléfonos inteligentes que saben donde están y cuentan con la capacidad de entender ciertas frases en un idioma. Los diseñadores crean una interacción con mundos virtuales integrandolos con el mundo físico.
Programas utilizados para dar mantenimiento al computador. Mostrar funcionamiento
¿Porque es necesario hacer un mantenimiento al PC?
Para que todo funcione correctamente y evitar posibles errores y fallos, es necesario realizar un Mantenimiento de nuestro Equipo tanto en el ámbito Físico, como en el de Programación, por ello vamos a tratar de exponer en esta Sección algunos procedimientos de mantenimiento sino bien imprescindibles al menos sí recomendables para mantener nuestro PC en correcto funcionamiento.
Empezaremos por hacer mención a algunos problemas típicos que nos suceden cuando instalamos o desinstalamos muchos programas, y no utilizamos herramientas adecuadas para la desinstalación de esos programas que ya no usamos, como consecuencia de esto, nuestro PC se vuelve lento y nos preguntamos como es posible que siendo una máquina tan veloz y con tantos recursos, actué de esa manera. En estos casos es muy conveniente tener instalados programas específicos para estos temas que realicen una desinstalación completa de aquellos programas que ya no utilizamos, pues sino iremos almacenando ficheros y bibliotecas que no nos hacen falta que aumentan el tamaño del registro de Windows, y que quitan recursos a nuestro PC.
Por nombrar alguno de estos Programas uno que va muy bien es el RegCleaner, el cual está disponible en muchos idiomas, entre ellos el Español.
Otro Problema típico que conviene nombrar es cuando apagamos de forma incorrecta nuestro PC, ya sea por inestabilidad en el Sistema (que se quede colgado), por corte de luz, o por malos hábitos de utilización, en estos casos no debemos pasar por alto el hecho realizar a nuestro PC un chequeo que nos revise la integridad de nuestro disco o discos en busca de errores, para ello, podemos utilizar la herramienta Scandisk la cual la incluye nuestro Sistema Operativo Windows.
También es conveniente cada cierto tiempo, tiempo que dependerá en función del uso que se le haga al PC, y de en que cantidad instalamos o desinstalamos programas en el PC, realizar una operación de desfragmentación del Disco, para organizar la información que tenemos en él, que a consecuencia de tantos procesos se ha desordenado, para ello podemos utilizar una utilidad de la que dispone Windows, la cual podremos encontrarla en Inicio->Programas->Accesorios->Herramientas del Sistema, o utilizar otras que realizan esta tarea muy eficientemente como es el caso de Diskeeper lite 7.0418., una utilidad que además de ser gratuita es de los mejores Programas para desfragmentar discos.
Tenemos también que nombrar como no, el hecho de eliminar cada cierto tiempo, archivos temporales que se guardan en nuestro PC, y que no hacen más que ocupar espacio en el Disco, como es el caso de los archivos temporales de Internet, que podemos eliminarlos entrando en el Internet Explorer, y desde el menú Herramientas->Opciones de Internet->General->Eliminar archivos.
Los Programas nombrados, podréis encontrarlos en nuestra sección de Programas.
Contenidos relacionados:
Mantenimiento y limpieza del Ordenador
Hacer una limpieza y mantenimiento de hardware
Windows Vista: Mantenimiento del disco duro
Mantenimiento del disco duro
Cuidados y mantenimiento de una impresora
miércoles, 23 de septiembre de 2009
Definición de datos del Pseudocódigo
Un pseudocódigo (falso lenguaje), es una serie de palabras léxicas y gramaticales referidos a los lenguajes de programación, pero sin llegar a la rigidez de la sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software. Es, netamente, lenguaje de tipo informático.
Para probar el algoritmo se utiliza un Pseudo intérprete el cual se encuentra disponible para las plataformas GNU/Linux y Windows, es de código libre y está escrito en C++. El mismo se ejecuta en un Terminal.
El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas. Su objetivo es permitir que el programador se centre en los aspectos lógicos de la solución a un problema.
No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay una estructura semántica ni arquitectura estándar. Es una herramienta ágil para el estudio y diseño de aplicaciones, veamos un ejemplo, que podríamos definir como: lenguaje imperativo, de tercera generación, según el método de programación estructurada.
Pseudocódigo = Pseudo (Supuesto) + Código (Instrucción)
Definición de datos del Pseudocódigo [editar]
La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente.
Diagrama n-s
DIAGRAMAS DE NASSI - SCHNEIDERMAN
Definición. El diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripción textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo.
El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigüedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas más utilizadas son:
Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Función
Entero Real Caracter Cadena
Lógico Retornar
Los símbolos utilizados en el diagrama de Chapin son corresponden a cada tipo de estructura. Dado que se tienen tres tipos de estructuras, se utilizan tres símbolos. Esto hace que los procesos del algoritmo sean más fáciles de representar y de interpretar.
Diagrama de Flujo de Datos
Componentes de un Diagrama de Flujo de Datos (DFD) según la notación de Yourdon y DeMarco.
Un diagrama de flujo de datos (DFD por sus siglas en español e inglés) es una representación gráfica del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre el sistema y la entidades externas. Este contexto a nivel de DFD se "explotó" para mostrar más detalles del sistema que se está modelando.
Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos" . Los diagramas de flujo de datos (DFDs) son una de las tres perspectivas esenciales de Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que el sistema funcione, lo que el sistema va a lograr, y cómo el sistema se pondrá en práctica. El antiguo sistema de diagramas de flujo de datos puede ser elaborado y se comparó con el nuevo sistema de diagramas de flujo para establecer diferencias y mejoras a aplicar para desarrollar un sistema más eficiente. Los diagramas de flujo de datos pueden ser usados para proporcionar al usuario final una idea física de cómo resultarán los datos a última instancia, y cómo tienen un efecto sobre la estructura de todo el sistema. La manera en que cualquier sistema es desarrollado puede determinarse a través de un diagrama de flujo de datos. El desarrollo de un DFD ayuda en la identificación de los datos de la transacción en el modelo de datos.
Los diagramas derivados de los procesos principales se clasifican en niveles, los cuales son:
- Nivel 0: Diagrama de contexto.
- Nivel 1: Diagrama de nivel superior.
- Nivel 2: Diagrama de detalle o expansión.
Diagrama de Contexto: Nivel 0 [editar]
En el diagrama de contexto sólo se dibuja el proceso principal y los flujos entre éste y sus entidades. Representacion grafica de un SISTEMA DE INFORMACION.
Diagrama de Nivel Superior: Nivel 1 [editar]
En el diagrama de nivel inferior se plasman todos los procesos que describen al proceso principal. En este nivel los procesos no pueden interrelacionarse directamente, sino que entre ellos siempre debe existir algún almacenamiento o entidad externa que los una. fgerg
Diagrama de Detalle o Expansión: Nivel 2 [editar]
Nota: Diagrama de nivel 2 (o superior) en la fotografía. Es de nivel >= 2, y no de nivel 1 porque en el nivel 1 no se permiten las interconexiones entre procesos, como puede verse entre el proceso 2 y 3.

martes, 22 de septiembre de 2009
jueves, 2 de abril de 2009
HTML Hoy les mostraré un concepto que me han pedido varios lectores del blog, y es el de insertar tablas en las entradas de blogger, como en todo existen varias maneras de realizarlo, pero explicaré fundamentalmente dos. La primera es la más adecuada y es la que siempre tendríamos que usar.
En esta primera entrada sobre tablas únicamente explicaré como insertarlas, y en una entrada posterior explicaré como podemos editar el fondo el borde u otras características.
En primer lugar explicaré algunos conceptos de HTML, muy básicos pero que nos ayudarán a entender bien como introducir las tablas y como hacerlas funcionar. Hemos de recordar estas tres palabras:
1. table. Como bien su nombre indica en inglés, indica que comienza una tabla o acaba.
2. tr. Etiqueta que usaremos para crear una nueva fila.
3. td. Etiqueta que usaremos para crear una nueva columna.
Teniendo estos conceptos claros pasamos directamente a ver un ejemplo de código y su proyección en el blog.
1 | <table border=1><td>Columna 1, fila 1</td><td>Columna 2, fila 1</td><td>Columna 3, fila 1</td><tr><td>Columna 1, fila 2<td>Columna 2, fila 2<td>Columna 3, fila 2</td></table> |
| Fila 1, Columna 1 | Fila 1, Columna 2 | Fila 1, Columna 3 |
| Fila 2, Columna 1 | Fila 2, Columna 2 | Fila 2, Columna 3 |
Observamos que hemos creado una tabla, en la cual he introducido dos filas, y dentro de cada una de ellas tres columnas. Para aplicar esto en nuestro blog, únicamente tendríamos que agregar nuevas celdas td o tr, según cuales sean nuestras necesidades.
Este código es el que recomiendo, porque como veremos en entradas posteriores tiene mucho más juego a la hora de introducir efectos que veremos en posteriores entradas.
Sin embargo, como para todo, no siempre hay una única manera, también lo podemos hacer pegando una tabla como imagen que por ejemplo hagamos en excel. Principalmente a esta solución le veo dos inconvenientes:
- Muy poca flexibilidad para cambiarla.
- Tendremos que subir una imagen a blogger.
Los pasos serán los siguientes:
1. Vamos a nuestro Excel o Word, y hacemos un capturar pantalla de nuestra tabla (pulsar tecla imprimir pantalla).
2. Vamos a un programa como paint, y copiamos la captura de la pantalla, recortamos la tabla, y lo guardamos como imagen.
3. En nuestro blog, vamos a crear una nueva entrada, y a continuación lo insertamos como imagen.
Impostar el fondo
Impostar el fondo
Impostar el fondo Impostar el fondo
En la lección precedente hemos visto cómo crear un documento HTML partiendo de cero y cómo impostar el título y las marcas de metainformación.
La operación que sigue a la impostación del documento es la definición del color o de la imagen del fondo, así como de los colores de los enlaces activos y de los visitados.
El elemento se coloca inmediatamente después del cierre de la marca y, en cualquier caso, dentro de los elemenos ; tiene una marca de apertura y una de cierre y delimitado por ellas figura el cuerpo del documento.
Si el elemento contenía metainformación (es decir, datos no visualizados materialmente por el navegador) la función de la marca es la de mostrar los objetos (texto, imágenes, sonidos, apliques, etc.) de la página.
La sintaxis correcta del elemento es la siguiente:
Contenido del documento
La marca se utiliza también para proporcionar al navegador información sobre la disposición de los objetos en el documento, así como para impostar varios atributos de visualización para el documento. A continuación veremos cuáles.BGCOLOR
El atributo BGCOLOR imposta un fondo de un solo color. La sintaxis correcta es:
Es posible sustituir el nombre en inglés con valores hexadecimales. Por ejemplo, el color rojo (red) se sustituye de esta manera:
La utilidad de los colores hexadecimales es mayor cuando no se desea un color estándar sino tonalidades diversas o difuminadas. Los editores HTML de mayor difusión prevén paletas para la definición de los colores hexadecimales, mientras que Paint Shop Pro proporciona también, además del color, el correspondiente valor hexadecimal que copiar/pegar.BACKGROUND
BACKGROUND tiene una función similar a BGCOLOR, pero mientras el segundo muestra un tono único del color, el primero visualiza en el fondo una imagen en formato gráfico .gif o .jpg.
Imaginemos, por ejemplo, que queremos construir un fondo con la siguiente imagen:
La imagen se llama sfondo.gif y se encuentra depositada en el mismo directorio que el documento. La sintaxis correcta para impostar la imagen como fondo es:
El navegador visualiza la imagen sfondo.gif y la repite en todos los puntos disponibles de la pantalla. En otras palabras, no se limita a visualizar la imagen una sola vez, en el centro de la página por ejemplo, sino que llena todo espacio a disposición.
Por esta razón, es absolutamente necesario crear un fondo que, si viene repetido, no presente interrupciones sino un aspecto lo más uniforme posible.
Es conveniente elegir una imagen de fondo que no dificulte la lectura y que se ajuste lo más posible al color del texto. Por ejemplo, un texto naranja sobre fondo rojo no podría leerse. Es siempre mejor usar el color negro para el texto y tonos pastel para el fondo.TEXT
Si no viene establecido diversamente, el color del texto del documento es el negro ya que los navegadores asignan este color por defecto. Gracias al atributo TEXT es posible asignar al texto un color distinto del negro. La sintaxis correcta es:
También en este caso los colores pueden expresarse con nombres o con valores hexadecimales. En el interior del documento podemos marcar parte del texto con colores diferentes del que hemos impostado en TEXT.LINK
Si no viene establecido diversamente, el color de los enlaces (que todavía no se han visitado) es el azul. Gracias al atributo LINK podemos definir colores diferentes:
Todos los enlaces de la página no serán ya azules sino rojos (red). Este color puede expresarse en valores hexadecimales.ALINK
Cuando hacemos clic en un enlace, éste se vuelve de un color distinto al impostado en LINK (o al azul de la opción por defecto). Gracias a ALINK (la A significa Active), es posible modificar este color:VLINK
Cuando se visita un URL asociado a un enlace, este último se vuelve de un color distinto al de LINK (o al azul de la opción por defecto). Gracias a VLINK (la V significa Visited), es posible modificar este color:BGPROPERTIES
Hablando del atributo BACKGROUND hemos resaltado el hecho de que las imágenes estén dispuestas ocupando toda la pantalla disponible. Si la página fuera tan larga como para tener que activar la barra de desplazamiento lateral, el fondo (la imagen asociada) iría pasando junto con la página. Para comprender mejor esta cuestión, haz clic aquí para ver un ejemplo, y después pasa la página hacia abajo.
Gracias a la propiedad BGPROPERTIES es posible hacer que el fondo permanezca inmóvil respecto al desplazamiento de página. La sintaxis correcta es:
Esto funciona sólo con MsIe y no con Netscape que, en cambio, continúa desplazando la página.
sábado, 28 de marzo de 2009
Introducción a la estructura de un documento HTML
1. Especificación del idioma del contenido: el atributo lang
1. Códigos de idioma
2. Herencia de los códigos de idioma
3. Interpretación de los códigos de idioma
2. Especificación de la dirección del texto y de las tablas: el atributo dir
1. Introducción al algoritmo bidireccional
2. Herencia de la información sobre la dirección del texto
3. Especificación de la dirección del texto incluido
4. Anulación del algoritmo bidireccional: el elemento BDO
5. Referencias de caracteres para el control de la direccionalidad y de la unión
6. Efecto de las hojas de estilo en la bidireccionalidad
Esta sección del documento trata sobre dos temas importantes que afectan a la internacionalización del HTML: la especificación del idioma (el atributo lang) y de la dirección (el atributo dir) del texto de un documento.
8.1 Especificación del idioma del contenido: el atributo lang
Definiciones de atributos
lang = código de idioma [CI]
Este atributo especifica el idioma base de los valores de los atributos y del texto contenido en un elemento. El valor por defecto de este atributo es desconocido.
La información sobre el idioma especificada por medio del atributo lang puede ser utilizada por un agente de usuario de diferentes formas para controlar la representación. Algunas cosas para las que la información sobre el idioma proporcionada por el autor puede ser útil son las siguientes:
* Ayudar a los motores de búsqueda
* Ayudar a los sintetizadores de voz
* Ayudar al agente de usuario a elegir variaciones de un signo para tipografía de alta calidad
* Ayudar al agente de usuario a elegir un conjunto de caracteres para el entrecomillado de citas
* Ayudar al agente de usuario a hacer decisiones sobre separación de palabras, ligaduras, y espaciado
* Ayudar a los verificadores de ortografía y gramática
El atributo lang especifica el idioma del contenido del elemento y de los valores de los atributos; el que sea relevante para un atributo dado dependerá de la sintaxis y de la semántica del atributo y de la operación involucrada.
El objetivo del atributo lang es permitir a los agentes de usuario representar el contenido de forma más significativa según la práctica cultural aceptada para un idioma dado. Esto no implica que los agentes de usuario deberían representar los caracteres que no son típicos de un idioma dado de maneras menos significativas; los agentes de usuario deben intentar representar todos los caracteres lo mejor posible, independientemente del valor especificado por lang.
Por ejemplo, si aparecen caracteres del alfabeto griego dentro un texto escrito en español:
Sus superpoderes son el resultado de las
dijo él.
radiaciones γ,
un agente de usuario (1) debería intentar representar el contenido en español de una manera apropiada (p.ej., en lo que respecta a la puntuación de la cita) y (2) debe intentar representar γ lo mejor posible aunque no sea un carácter español.
Consulte la sección sobre caracteres no representables para información relacionada.
8.1.1 Códigos de idioma
El valor del atributo lang es un código de idioma que identifica un languaje natural hablado, escrito o usado de cualquier modo para la comunicación de información entre personas. Los lenguajes de ordenador están explícitamente excluidos de los códigos de idiomas.
La [RFC1766] define y explica los códigos de idioma que deben ser usados en los documentos HTML.
En pocas palabras, los códigos de idioma consisten en un código principal y una serie posiblemente vacía de subcódigos:
código-de-idioma = código-principal ( "-" subcódigo )*
Aquí tenemos algunos ejemplos de códigos de idioma:
* "en": inglés
* "en-US": la variación estadounidense del inglés.
* "en-cockney": la variación de Cockney del inglés.
* "i-navajo": el idioma Navajo hablado por algunos nativos americanos.
* "x-klingon": la marca principal "x" indica un lenguaje experimental
En la [ISO639] se reservan códigos principales de dos letras para las abreviaturas de los idiomas. Entre estos códigos de dos letras están fr (francés), de (alemán), it (italiano), nl (neerlandés), el (griego), es (español), pt (portugués), ar (árabe), he (hebreo), ru (ruso), zh (chino), ja (japonés), hi (hindi), du), y sa (sánscrito).
Se sobreentiende que cualquier código de dos letras es un código de país de [ISO3166].
8.1.2 Herencia de los códigos de idioma
Un elemento hereda la información sobre el código de idioma de acuerdo con el siguiente orden de precedencia (de más alto a más bajo):
* El atributo lang establecido para el propio elemento.
* El elemento padre más cercano que tenga establecido el atributo lang (es decir, el atributo lang se hereda).
* El encabezado HTTP "Content-Language" (que puede ser configurado en un servidor). Por ejemplo:
Content-Language: en-cockney
* Valores por defecto del agente de usuario y preferencias del usuario.
En este ejemplo, el idioma principal del documento es el francés ("fr"). Hay un párrafo que se declara como escrito en español ("es"), después del cual el idioma principal vuelve a ser el francés. El párrafo siguiente incluye un frase en japonés ("ja"), después de la cual el idioma principal vuelve a ser el francés.
...Interpretado como francés...
...Interpretado como español...
...Interpretado de nuevo como francés...
...Texto en francés interrumpido por algo
en japonés Aquí vuelve a empezar en francés...
Nota. Las celdas de las tablas pueden heredar los valores los valores de lang no de su padre, sino de la primera celda de un tramo. Consulte la sección sobre herencia de la alineación para más detalles.
8.1.3 Interpretación de los códigos de idioma
En el contexto del HTML, los agentes de usuario deberían interpretar un código de idioma como una jerarquía de símbolos más que como un símbolo independiente. Cuando un agente de usuario ajusta la representación de acuerdo con la información sobre el idioma (por ejemplo, comparando los códigos de idioma de las hojas de estilos y los valores de lang), siempre debería dar prioridad a un emparejamiento exacto, pero también debería considerar suficiente el emparejamiento de códigos principales. Así, si se establece un valor "en-US" para el atributo lang del elemento HTML, un agente de usuario debería preferir en primer lugar la información de estilo correspondiente a "en-US", y a continuación la correspondiente al valor más general "en".
Nota. Las jerarquías de códigos de idioma no garantizan que todos los idiomas con un mismo prefijo serán entendidos por aquellos que dominen uno o más de esos idiomas. Lo que hacen es permitir a un usuario englobar varios idiomas bajo un prefijo común cuando sea el caso para ese usuario.
8.2 Especificación de la dirección del texto y de las tablas: el atributo dir
Definiciones de atributos
dir = LTR | RTL [CI]
Este atributo especifica la dirección base del texto direccionalmente neutro (es decir, texto que no tiene direccionalidad heredada según se define en [UNICODE]) de los contenidos o los valores de los atributos de un elemento. También especifica la direccionalidad de las tablas. Valores posibles:
* LTR: Texto o tabla de izquierda a derecha (Left-to-right).
* RTL: Texto o tabla de derecha a izquierda (Right-to-left).
Los autores, además de especificar el idioma de un documento con el atributo lang, pueden necesitar especificar la direccionalidad base (izquierda a derecha o derecha a izquierda) de porciones de texto de un documento, de la estructura de una tabla, etc. Esto se hace con el atributo dir.
La especificación [UNICODE] asigna direccionalidad a los caracteres y define un algoritmo (complejo) para determinar la direccionalidad correcta del texto. Si un documento no contiene un carácter mostrable de derecha a izquierda, no se requiere a un agente de usuario conforme que aplique el algoritmo bidireccional [UNICODE]. Si un documento contiene caracteres de derecha a izquierda, y si el agente de usuario muestra estos caracteres, el agente de usuario debe usar el algoritmo bidireccional.
Si bien Unicode especifica caracteres especiales que tratan con la dirección del texto, HTML ofrece construcciones de código de mayor nivel que hacen lo mismo: el atributo dir (no confundir con el elemento DIR) y el elemento BDO. Así, para expresar un cita en hebreo, es más intuitivo escribir
...una cita en hebreo...
que la referencias equivalentes en Unicode:
״...una cita en hebreo...״
Los agentes de usuario no deben usar el atributo lang para determinar la direccionalidad del texto.
El atributo dir se hereda y puede ser anulado. Consulte la sección sobre información acerca de la herencia de la dirección del texto para más detalles.
8.2.1 Introducción al algoritmo bidireccional
Los siguientes ejemplos ilustran el comportamiento esperado del algoritmo bidireccional. Intervienen dos idiomas: el inglés, con escritura de izquierda a derecha, y el hebreo, con escritura de derecha a izquierda.
Consideremos el siguiente texto de ejemplo:
inglés1 HEBREO2 inglés3 HEBREO4 inglés5 HEBREO6
Los caracteres de este ejemplo (y de todos los ejemplos relacionados) se almacenan en el ordenador del modo que se muestra aquí: el primer caracter de la fila es "i", el segudo es "n", y el último es "6".
Supongamos que el idioma predominante del documento que contiene a este párrafo es el inglés. Eso significa que la dirección base es de izquierda a derecha. La presentación correcta de esta línea sería:
inglés1 2OERBEH inglés3 4OERBEH inglés5 6OERBEH
<------ <------ <------ H H H ---------------------------------------------->
I
Las líneas a trazos indican la estructura de la frase: el inglés es el que predomina y hay algunos textos incluidos en hebreo. Para lograr la presentación correcta no se necesita código adicional, ya que los agentes de usuario que apliquen el algoritmo bidireccional invertirán correctamente los fragmentos en hebreo.
En cambio, si el idioma predominante del documento es el hebreo, la dirección base es de derecha a izquierda. La presentación correcta es por tanto:
6OERBEH inglés5 4OERBEH inglés3 2OERBEH inglés1
------> ------> ------>
I I I
<---------------------------------------------- H En este caso, se ha escrito la frase entera de derecha a izquierda, y las secuencias incluidas en inglés se han invertido apropiadamente con el algoritmo bidireccional. 8.2.2 Herencia de la información sobre la dirección del texto El algoritmo bidireccional de Unicode obliga a que los bloques de texto tengan una dirección de texto base. Para especificar la dirección base de un elemento en bloque, se establece el atributo dir del elemento. El valor por defecto del atributo dir es "ltr" (left-to-right, texto de izquierda a derecha). Cuando se establece el atributo dir de un elemento en bloque, éste tiene efecto hasta la finalización del bloque y en cualquier elemento en bloque anidado. Si se establece el atributo dir para algún elemento anidado, se anula en él el valor heredado. Para establecer la dirección de texto base de un documento completo, se establece el atributo dir del elemento HTML. Por ejemplo:
...texto de derecha a izquierda...
...texto de izquierda a derecha...
...de nuevo texto de derecha a izquierda...
Los elementos en línea, por su parte, no heredan el atributo dir. Eso significa que un elemento en línea sin un atributo dir no abre un nivel adicional de inclusión con respecto al algoritmo bidireccional. (Aquí se considera que un elemento está en línea o en bloque según su presentación por defecto. Téngase en cuenta que los elementos INS y DEL pueden estar en bloque o en línea dependiendo de su contexto.)
8.2.3 Especificación de la dirección del texto incluido
El algoritmo bidireccional [UNICODE] invierte automáticamente las secuencias incluidas de caracteres de acuerdo con su direccionalidad inherente (como se ilustra en los ejemplos previos). Sin embargo, en general sólo se puede tener en cuenta un nivel de inclusión. Para lograr niveles adicionales de cambios de dirección por inclusión, debe hacerse uso del atributo dir de un elemento en línea.
Consideremos el mismo texto del ejemplo anterior:
inglés1 HEBREO2 inglés3 HEBREO4 inglés5 HEBREO6
Supongamos que el idioma predominante del documento que contiene a este párrafo es el inglés. Supongamos además que la frase en inglés anterior contiene una sección en hebreo que va desde HEBREO2 hasta HEBREO4, y que la sección en hebreo contiene una cita en inglés (inglés3). La presentación deseada de este texto es por lo tanto:
inglés1 4OERBEH inglés3 2OERBEH inglés5 6OERBEH
------>
I
<---------------------- H ---------------------------------------------->
I
Para lograr dos cambios de dirección por inclusión, debemos proporcionar información adicional, para lo cual delimitamos la segunda inclusión explícitamente. En este ejemplo, utilizamos el elemento SPAN y el atributo dir para dar formato al texto:
inglés1 HEBREO2 inglés3 HEBREO4 inglés5 HEBREO6
Los autores también pueden utilizar los caracteres especiales de Unicode para lograr cambios múltiples de dirección por inclusión. Para una inclusión de izquierda a derecha, se rodea el texto incluido con los caracteres LEFT-TO-RIGHT EMBEDDING (inclusión de izquierda a derecha, "LRE", hexadecimal 202A) y POP DIRECTIONAL FORMATTING (fin de formato direccional, "PDF", hexadecimal 202C). Para una inclusión de derecha a izquierda, se rodea el texto incluido con los caracteres RIGHT-TO-LEFT EMBEDDING (inclusión de derecha a izquierda, "RTE", hexadecimal 202B) y PDF.
Uso conjunto del código de direccionalidad de HTML y de los caracteres Unicode. Los autores y los diseñadores de programas de creación deberían tener en cuenta que pueden surgir conflictos si se utilizan al mismo tiempo el atributo dir de los elementos en línea (incluyendo BDO) y los caracteres de formato [UNICODE] correspondientes. Se usará preferiblemente uno u otro sistema exclusivamente. La especificación del formato con HTML ofrece mayores garantías de integridad estructural del documento y evita los problemas que puedan surgir al editar texto bidireccional HTML con un editor de textos sencillo, pero algunos programas pueden ser más aptos para la utilización de los caracteres [UNICODE]. Si se usan ambos métodos, deberían tomarse todas las precauciones para asegurar el anidamiento correcto del código y los caracteres de formato; de otro modo los resultados de la representación son imprevisibles.
8.2.4 Anulación del algoritmo bidireccional: el elemento BDO
Etiqueta inicial: obligatoria, Etiqueta final: obligatoria
Definiciones de atributos
dir = LTR | RTL [CI]
Este atributo obligatorio especifica la dirección base del texto contenido en el elemento. Esta dirección prevalece sobre la direccionalidad inherente de los caracteres según se define en [UNICODE]. Valores posibles:
* LTR: Texto de izquierda a derecha (Left-to-right).
* RTL: Texto de derecha a izquierda (Right-to-left).
Atributos definidos en otros lugares
* lang (información sobre el idioma)
En general, el algoritmo bidireccional y el atributo dir son suficientes para controlar los cambios de direccionalidad por inclusión. Sin embargo, a veces pueden darse casos en que el algoritmo bidireccional produce una presentación incorrecta. El elemento BDO permite a los autores desactivar el algoritmo bidireccional para fragmentos de texto específicos.
Consideremos un documento que contenga el mismo texto que antes:
inglés1 HEBREO2 inglés3 HEBREO4 inglés5 HEBREO6
pero supongamos que este texto ya ha sido puesto en su orden visual. Una razón para ello podría ser que los estádares MIME ([RFC2045], [RFC1556]) recomiendan el orden visual, es decir, que las secuencias de caracteres de derecha a izquierda se inserten de derecha a izquierda en el flujo de caracteres. En un mensaje de correo electrónico, se podría dar el siguiente formato al texto anterior, incluyendo saltos de línea:
inglés1 2OERBEH inglés3
4OERBEH inglés5 6OERBEH
Esto generaría un conflicto con el algoritmo bidireccional [UNICODE], ya que el algoritmo invertiría 2OERBEH, 4OERBEH, y 6OERBEH una segunda vez, mostrando las palabras en hebreo de izquierda a derecha en lugar de derecha a izquierda.
La solución en este caso es anular el algoritmo de bidireccionalidad colocando el extracto del mensaje de correo en un elemento PRE (para conservar los saltos de línea) y cada línea en un elemento BDO, cuyo atributo dir sea igual a LTR:
inglés1 2OERBEH inglés3
4OERBEH inglés5 6OERBEH
Esto le dice al algoritmo bidireccional "¡Déjame de izquierda a derecha!" y produce la presentación deseada:
inglés1 2OERBEH inglés3
4OERBEH inglés5 6OERBEH
El elemento BDO debería utilizarse en aquellos casos en que fuera preciso un control absoluto del orden de las secuencias (p.ej., números de referencia multi-lenguaje). El atributo dir es obligatorio para este elemento.
Los autores también pueden usar los caracteres especiales Unicode para anular el algoritmo bidireccional -- LEFT-TO-RIGHT OVERRIDE (anular izquierda a derecha, 202D) o RIGHT-TO-LEFT OVERRIDE (anular derecha a izquierda, hexadecimal 202E). El caracter POP DIRECTIONAL FORMATTING (hexadecimal 202C) finaliza ambas anulaciones de bidireccionalidad.
Nota. Recuérdese que pueden surgir conflictos si se usan simultáneamente el atributo dir de los elementos en línea (incluyendo BDO) y los caracteres de formato [UNICODE] correspondientes.
Bidireccionalidad y codificaciones de caracteres. De acuerdo con [RFC1555] y [RFC1556], existen convenciones especiales sobre el uso del parámetro "charset" para indicar el tratamiento de la bidireccionalidad que se hace en el correo MIME, en particular para distinguir entre direccionalidad visual, implícita y explícita. El valor "ISO-8859-8" (para hebreo) indica codificación visual, "ISO-8859-8-i" indica bidireccionalidad implícita, e "ISO-8859-8-e" indica direccionalidad explícita.
Como HTML usa el algoritmo de bidireccionalidad de Unicode, los documentos conformes codificados con la ISO 8859-8 deben ser marcados como "ISO-8859-8-i". Con HTML también es posible el control direccional explícito, pero no puede expresarse con ISO 8859-8, y por tanto no debería utilizarse "ISO-8859-8-e" .
El valor "ISO-8859-8" implica que se ha dado formato visual al documento, utilizando código incorrectamente (como por ejemplo TABLE con alineación a la derecha y sin ajuste automático de líneas) para asegurarse de que los agentes de usuario antiguos que no soportan bidireccionalidad puedan realizar una presentación razonable del documento. Tales documentos no son conformes con la especificación presente. Si es necesario, pueden hacerse conformes con esta especificación (y al mismo tiempo se mostrarán correctamente en agentes de usuario antiguos) añadiendo elementos BDO donde haga falta. Al contrario de lo que se dice en [RFC1555] y en [RFC1556], ISO-8859-6 (Árabe) no se ordena visualmente.
8.2.5 Referencias de caracteres para el control de la direccionalidad y de la unión
Dado que a veces se dan ambigüedades en la direccionalidad de ciertos caracteres (p.ej., los de puntuación), la especificación [UNICODE] incluye caracteres que permiten la resolución apropiada de dichas ambigüedades. Además, Unicode incluye algunos caracteres para controlar el comportamiento de unión y separación de caracteres cuando esto sea necesario (p.ej., algunas situaciones con letras árabes). HTML 4 incluye referencias de caracteres para estos caracteres.
Los siguientes extractos del DTD presentan algunas de las entidades direccionales:
La entidad zwnj (zero width non-joiner) se utiliza para evitar el comportamiento de unión en aquellos contextos en que la unión ocurre pero no debería. La entidad zwj (zero width joiner) hace lo contrario: fuerza la unión cuando no ocurre aunque debería. Por ejemplo, la letra árabe "HEH" se utiliza para abreviar "Hijri", el nombre del sistema de calendario islámico. Como la "HEH" aislada se parece a la escritura manual del dígito árabe cinco (basada en dígitos índicos), para evitar confundir "HEH" con un dígito cinco al final de un año, se usa la forma inicial de "HEH". Sin embargo, no sigue ningún contexto (es decir, una letra de unión) al que pueda unirse la "HEH". El carácter zwj proporciona ese contexto.
Análogamente, en textos persas, hay casos es que una letra que normalmente se uniría a la letra subsiguiente, en escritura cursiva no debería hacerlo. En estos casos se utiliza el carácter zwj para evitar la unión.
Los otros caracteres, lrm y rlm, se usan para forzar la direccionalidad de caracteres de direccionalidad neutral. Por ejemplo, si hay un signo de comillas dobles entre un texto árabe (derecha a izquierda) y otro en latín (izquierda a derecha), la dirección de las comillas no está clara (¿corresponden al texto árabe o al latín?). Los caracteres lrm y rlm tienen propiedad direccional, pero no propiedades de anchura ni de separación de palabras o líneas. Consulte [UNICODE] para más detalles.
Signos de caracteres reflejados. En general, el algoritmo bidireccional no refleja signos de caracteres, sino que los deja intactos. Una excepción a esto son los caracteres tales como los paréntesis (ver [UNICODE], tabla 4-7). En aquellos casos en que se desee reflejar signos, por ejemplo para jeroglíficos egipcios, o en boustrophedon griego, o para efectos especiales de diseño, debería controlarse esto con hojas de estilo.
8.2.6 Efecto de las hojas de estilo en la bidireccionalidad
En general, la utilización de hojas de estilo para cambiar la representación visual de un elemento en bloque a en línea o viceversa no ofrece ninguna dificultad. Sin embargo, debido a que el algoritmo bidireccional se basa en la distinción en línea/en bloque, debe tenerse especial cuidado si se hace esta transformación.
Cuando un elemento en línea que no tiene un atributo dir se transforma mediante una hoja de estilo al estilo de un elemento en bloque, hereda el atributo dir del elemento padre en bloque más cercano que defina la dirección base del bloque.
Cuando un elemento en bloque que no tiene un atributo dir se transforma mediante una hoja de estilo al estilo de un elemento en línea, la presentación resultante debería ser equivalente, en términos de formato de la bidireccionalidad, al formato obtenido añadiendo explícitamente al elemento transformado un atributo dir (igual al valor heredado).


