jueves, 14 de octubre de 2010

viejas notas desde msn1 Procesadores

Memoria, procesadores y programas

La memoria digital, los datos y los programas.
.
Vimos, cuando hablamos del mundo digital, que los programas interpretan los datos que entran a la computadora y los transforman. Un ejemplo: Un byte admite 256 (=2 ** 8) configuraciones distintas comenzando desde 00000000 hasta 11111111. Si por norma le hago corresponder a cada letra y signo de un alfabeto una de esas configuraciones entonces a una frase se la representa por una sucesión de bytes representando letras y signos, incluidos los espacios. Un programa es el encargado de hacer la conversión (de frase a binario y viceversa) de acuerdo a una norma o tabla de conversión. Entonces una función muy importante de los programas es interpretar los datos. Pero es mucho más que eso. Por ejemplo, mediante un programa se puede cambiar o agregar palabras a la frase, y todo ese proceso lo realiza mientras la información está digitalizada. Entonces los programas interpretan las normas y pueden modificar la información en su estado digital.
.
La memoria RAM.
.
La memoria RAM de una PC común suele ser ahora de 128 o 256 mega bytes. Allí están los files que son sucesiones de ceros y unos que representan datos o programas. El programa es una sucesión de órdenes al procesador para que opere con esos datos. Hace operaciones lógicas y matemáticas, y muchas otras funciones, como cambiar de ubicación en la RAM de algunos bytes. Es claro que tiene que existir una correspondencia exacta entre los datos, y su ubicación en la memoria RAM para que el programa pueda referirse a ellos y es por eso que cada byte de la memoria tiene una dirección única asociada. Por ejemplo, si la RAM es de 128 M. tendrá 2 ** 27 bytes o direcciones diferentes, desde 0 hasta 2**27 -1. Se habla del mapa de memoria para referirse a la distinta funcionalidad de diversas áreas de memoria.
.
Los procesadores.
.
Todos los programas cuando están en memoria RAM son una sucesión muy larga de ceros y unos. De manera tal que si uno ve una memoria RAM, sólo ve ceros y unos y las personas no podemos distinguir si es programa o si es un dato. El procesador, por ejemplo un pentium u otro cualquiera es el que hace las operaciones correctas comandado por los programas. Al iniciar el funcionamiento de la PC existe un mecanismo electrónico para indicarle al procesador el primer programa para que controle la máquina. Cuando termine de realizar su función le pasa el control a otro programa y así sucesivamente hasta que se apague. Por algún error puede indicársele mal y el procesador trate de interpretar lo que son datos como si fuera programa y la máquina se “cuelga”. Otro error es que algún dato se meta dentro de un programa destruyéndolo. Si uno viera la RAM en una enorme pantalla, los ceros como puntos blancos y los unos como puntos negros, parecería un caos total, y sin embargo no es así. Es una armonía perfecta que se mantienen indefinidamente cambiando los valores de 0 y 1 pero siempre bajo control.
.

Los usuarios y los especialistas

.
Al usuario común sólo le interesan determinadas cosas como por ejemplo ver una foto en la pantalla, o poder mandar un mail. Para que eso sea factible fácilmente la computadora debe tener mecanismos sumamente complejos de hardware (la electrónica y electromecánica) y de software (la programación) funcionando a la perfección. Hay muchísima gente que ha trabajado en eso y han hecho buenos negocios pues luego se aplican a cientos de millones de computadoras. Es como todo. Pero es bueno que tengamos alguna idea de esa realidad para que las cosas no sean un misterio absoluto. Todo esto que digo tiene una doble finalidad: por un lado es una presentación del tema para todos los curioso, y por otro lado es una introducción de una manera de ver las cosas para luego discutir temas de especialistas, entre especialistas. De cualquier forma me gustaría que me muestren los errores o lo que no se entiende. conserje@hotmail.com Horacio.
07:50 a.m. | Agregar un comentario | Vínculo permanente | Agregar al blog | Informática e Internet
11 octubre

El mundo digital

Mi idea con esta nota es introducir a las personas con pocos conocimientos de computación en el tema incluyendo a Internet. Creo que les será útil a todos. Pero también esto sirve de introducción a los especialistas en el tema para aunar criterios y tener una visión panorámica del tema para luego analizar nuevos criterios generales, incluyendo Sistemas Operativos y lenguajes de programación. Solicito a quien lea esto que se ponga en contacto conmigo por sugerencias, comentarios, aclaraciones o cualquier otra cosa. Publicaré na serie de notas. conserje@hotmail.com Horacio.
.
Debido a que la tecnología computacional ha adoptado el sistema binario de escritura de información con unos y ceros tenemos que arreglarnos para escribir o representar absolutamente todo lo que queramos manejar valiéndonos de sucesiones de esos valores. Todo dato o información requiere una cantidad de bits para representarla. La mínima cantidad de información es un bit que se usa para objetos que admiten solo dos estados como las variables lógicas. Una sucesión de 8 bits puede ser la representación ve muchos objetos diferentes. Entonces una sucesión de una cantidad de N bits cobra sentido cuando existe una norma o protocolo que lo hace corresponder con algún objeto del mundo real.
.
La información:
.
Se usa el byte u octeto como la unidad con la que se mide la cantidad de información. En esta nueva tecnología es indispensable la precisión absoluta porque las máquinas no toleran los menores errores. Por ese motivo es necesario hacer convenciones, normas y protocolos para entender de que estamos hablando. Cuando se habla de 1 Mega debemos entender exactamente 2 ** 20. Donde ** significa elevado a. Es una suerte que 2** 10= 1024 ,casi mil, y que 2** 20= 1 Mega, poco mas de un millón. Y 2 ** 30 es un Giga aprox 10 ** 9. Por usar la base 2 resultó muy importante el uso de las potencias de 2. Los archivos o files consisten en una sucesión de Bytes, y la cantidad de los mismos se le suele decir “peso” y es el espacio que ocupan en memoria.
.
Un file puede ser un texto, una foto, un sonido, un cuadro sinóptico, una pieza musical, un dibujo o cualquier otra cosa. Y en todos los casos es una sucesión muy larga de ceros y unos, Sólo tienen sentido mediante códigos, normas y protocolos. Las computadoras construyen e interpretan a los files. Los humanos programamos las computadoras para que entiendan las letras y números leyéndolos de un teclado, y luego ellas nos escriben en un printer.
.
Veamos por ejemplo una pieza musical. Las ondas sonoras son captadas por un micrófono y convertidas en ondas eléctricas. Hay muchas maneras de convertir esas ondas eléctricas en información digital, con diferentes propiedades y calidad. Cada una de esas formas tiene una especificación, una norma que se usa cuando se la almacena digitalmente y luego cuando se a reproduce de digital hasta los parlantes. Entonces tenemos:
La info base, en este caso la música
Electrónica que toma la info analógica y la convierte en digital (Hard)
La info analógica es una mezcla de frecuencias y ampitudes
Una norma o protocolo o formato que especifica la conversión.

Hay muchas normas, cada una tiene su nombre.

Un programa (soft) que da el formato digital especificado por la norma.
Un almacenamiento para guardar la música digitalizada.
Otro soft que convierte en sentido contrario (de digital a analógica).
Un hard que complementa al soft y reproduce el sonido en parlantes.
.
¿Qué ventajas tenemos al digitalizar la información?
.
El proceso es similar cualquiera sea la información que digitalicemos. Uno se puede preguntar porqué damos tantas vueltas si antes podíamos hacer casi lo mismo dejando la información como estaba. Nosotros hacíamos todo el proceso y no pasábamos por lo digital. Para la música por ejemplo, usábamos un disco donde grabábamos el sonido y luego lo reproducíamos tal cual.
Bueno, la gran mayoría de las personas creo que comprende la gran ventaja de la tecnología moderna: 1) en la digitalización no se pierde información, o bien se puede controlar bien la precisión de acuerdo a los requerimientos. 2) la información se puede guardar con gran seguridad por tiempo prácticamente ilimitado, 3) en medio del proceso, cuando la información es digital, está bajo el dominio de la computadora y es allí donde podemos hacer casi magia con los datos, muchas veces crearlos desde la nada. El manejo computacional de los datos constituye la segunda gran revolución tecnológica de la humanidad
.
La norma, especificación, protocolo o formato.
.
Pero el baile recién comienza y ya se hacen maravillas. Con problemas claro, debido al extremadamente acelerado crecimiento de la nueva criatura. Así como hablamos del sonido también podemos hablar de digitalizar texto. Se hicieron infinidad de programas diferentes, y cada fabricante del programa con su propia norma. Veamos resumidamente el proceso:
Nosotros escribimos en el teclado ayudados por el mouse.
La pantalla nos muestra lo escrito y nos ayuda a correcciones y mejoras.
Se almacena en la PC y podemos guardarlo, corregirlo o imprimirlo.
Es genial, impresionante respecto a la escritura con una vieja máquina de escribir. El problema es la compatibilidad, porque un texto escrito con un programa no es entendido por otro programa. Eso dentro de una misma máquina. Pero además los diferentes fabricantes de procesadores como Intel y Motorola tienen procesadores distintos e incompatibles. Existen muchos procesadores diferentes, y muchas veces ni existe compatibilidad entre los modelos de un mismo fabricante. Lo anterior significa que un mismo texto puede tener muy diferentes representaciones digitales: Hay una cantidad muy grande de normas y por lo tanto incompatibilidad.
.
¿Tiene solución la incompatibilidad?
.
La incompatibilidad es posiblemente la mayor fuente de problemas, frustraciones y misterios de esta tecnología. Y tiene soluciones costosas.
La dificultad principal es la guerra de intereses de las empresas de hard y soft por ganar mercados. Pero los estándares que fijan las normas se van imponiendo de a poco. Mientras tanto pensemos lo siguiente: Un texto cambia de formato aún dentro de una misma máquina y un mismo programa que lo maneja. Este texto yo lo escribo y entra algo a la PC que va formando el file digital, a partir de allí se transforma para ir a la pantalla, también se transforma para guardarlo en el disco, y para imprimirlo en el printer, porque en todos los casos tiene que respetar las normas de cada dispositivo. Es importante notar que a pesar de todos los cambios de formato la información se mantiene fielmente.
.
La información es la misma independiente del formato y de las máquinas, de los procesadores, de los sistemas operativos. La sucesión de bits que contienen esa información pueden ser muy diferente y son los programas los que pasan de una a otra forma, programando las normas. Si la información del texto está contenida cualquiera sea el formato, siempre puede hacerse un programa que pase de un formato cualquiera a otro. Un ejemplo sencillo: el número 14 o cualquier otro puede expresarse en varios formatos cuya representación digital o binaria es muy diferente, pero sabiendo en cual está representado siempre un programa puede pasarlo a otra representación. Lo mismo sucede con un texto o con cualquier otra información, por ejemplo la música.
.
Pero el cambio de formato puede ser complicado.
.
Supongamos que haya 100 formatos de texto (hay muchos más). Para convertir los formatos necesitaríamos 100x100 = 10.000 programas diferentes, lo que implica un esfuerzo enorme de programación. Y costos enormes. Hay una coartada que consiste en definir un formato comodín y hacer una doble traducción. Entonces en lugar de 10.000 programas traductores necesitamos sólo 200. El comodín debe ser un formato o norma muy bien pensado. Este criterio que se aplica a muchos tipos de información es fundamental para mi proyecto.

HTML5, nuevo formato de páginas, objetos, propuesta



HTML5: http://www.w3.org/blog/ http://www.w3.org/QA/2003/03/web-kit español
HTML5 va saliendo de a poco. abarca HTLM4 + XHTLM + DOM (Document Objet Model)
-En unos años se especificará de tal modo que todos los navegadores deberán ser compatibles.
-Es modular y algunos módulos ya están firmes e implementados por los navegadores.
-Mejora etiquetas, pero lo importante es que sale fuera del texto HTML, para incorporar tecnologías.
-Se dara estructura de cuerpo: nuevas etiquetas para animaciones, audio, video,...
-CANVAS: es una facilidad paracida a flash icluye enimaciones en el API,...
-Permitirá crear bases de datos en la PC del cliente, todo con su API!!!!!
-Web workers: Aplicaciones que se ejecutan localmente y off line del navegador!!!!
-Geolocalización de webs!!!!
-prioriza APIs y CSS!!
Una Opinión Preliminar Mía:
-Luego de leer algo de la futura HTML5, resalto sus características notables como
1)La posibilidad de dejar DB en la pc DEL CLIENTE pero destaco que esto deberá ser muy interactivo con el usuario.
2)La posibilidad de dejar soft en ejecución en el usuario mientras se desconecta del servidor.
Pero me parece que hay una forma más racional de armar las páginas:
-Una página es un gran rectángulo, compuesto de muchos rectangulos interiores y que puede tener otros interiores: O sea un árbol de rectángulos.
-Los rectángulos son objetos de diferente naturaleza: Textos, fotos, gráficos, videos, controles de sonido, gráficos animados,... etc. Se requiere estudiar esto con amplitud.
-En principo sería sencillo armar una página dados los objetos rectangulares. Una página se armaría acomodando en ella los rectángulos El navegador contaría con los recursos para desplegar los rectángulos que vienen como files separados. Cada uno ya viene con su punto de carga en pantalla. El usuario podría manipular los rectángulos. De esta forma se evita el HTML pues los rectángulos ya vienen confeccionados en todas sus partes. La programación script, también viene indicada en pantalla por una pequeña referencia,...
*
-Deseo hacer una consulta:
-Una página es un rectángulo que contiene otros rectángulos.
-Una pantalla rectangular es siempre una página o parte de ella.
-O bien una pantalla puede contener una o varias páginas independientes.
-Toda las pantallas o páginas pueden descomponerse en varios rectángulos distintos.
-(En pocos casos podrán superponerse (fondos))
-Cada rectángulo puede ser considerado un objeto (un texto, una foto, una imágen, un video,..
-Es conveniente precisar las definiciones de clases y objetos para entendernos.?
-Cada objeto puede estar compuesto de otros objetos.
-O sea que existiría una estructura de árbol de objetos (o rectángulos) dentro de un objeto o rectángulo o pantalla.
OBJETOS:
-Existen clases de objetos: Clase texto, clase video, clase imagen, etc que requieren descripoción.....
-La clase texto, por ejemplo, puede derivar en infinidad de representaciones binarias.
-Lo mismo que la clase imágen o cualquier otra, que no sirven para crear objetos.
-Cada representación es una subclase que genera objetos, que debe definirse en forma completa para instanciarla.
-Por ejemplo “texto plano” es una subclase de la clase texto que sirve para crear objetos.
-O “imagen vectorial sistema X” es una subclase de “imagen” con la que se pueden crear objetos.
-Casi todos los objetos tiene una representación gráfica. Lo tiene el texto, o una imagen, pero no el sonido.
-Sin embargo nos conviene indicar la presencia de cada objeto existente en una página (como un sonido o un programa) con algo que se vea en pantalla.
-En todos los casos de objetos podemos mostrar un gráfico que lo represente para poder dar más detalles de él con clics.
-Un programa es un objeto representado por texto (Simbólico) en cualquier lenguaje de programación, Interpretado por otro llamado “compilador”, que lo pasa a binario para un dado procesador.
-”Software” es una clase de alto grado de generalidad y no sirve para instanciar. Solo se describe su funcionalidad.
-Entonces, un programa también es un objeto (cuando está en binario en algún tipo de memoria computacional)
-Una subclase es entonces una clase que puede ser instanciada o sea que permite crear objetos. Las subclases dan normas de instanciación: Como crear un objeto de esa subclase.
-La clase “tabla” dice, en general, la definición de la misma. Puede haber distintas subclases tabla, y cada tipo limita el concepto de tabla. Permite crear un objeto tabla.
-Entonces tenemos Clases de descripción y definición, no instanciables. Y tenemos clases instanciables, específicas, que permiten crear objetos
-O sea que puede haber muchas subclases “tabla” (tabla sql, tabla oracle, ... muchas). Cada una requiere una definición, valores de atributos y propiedades (parámetros, ..) y métodos (rutinas, programas,...)
-Conviene hacer una teoría completa de objetos para que quede oficial de WC3
PÁGINAS
-Una página es un árbol de rectángulos u objetos. (Para hacer cerrar la definición, los fondos derían rectángulos que contienen otros rectángulos siempre enteros)
-Esto vale tanto para aplicaciones de escritorio o de Internet.
-Entonces para armar una página es cuestión de ubicar objetos que uno tenga definido cada uno como un file. Los ubica y listo. Cada objeto o rectángulo se tiene en forma independiente, ya sea una musica u otro sonido, un texto, un programa, un video, una imágen o lo que sea.
-Cada objeto es un encapsulamiento de bits construido de acuerdo a la norma de la subclase instanciada. Ademas de los datos propios del objeto debe contener otros datos que permitan al navegador, ubicarlos en la página, como:
-De que subclase procede, para poder mostrarlo en pantalla. la ubicación. Depende del objeto.
-El navegador (¿o la pc del cliente?) debe contener todos los programas que permiten abrir los objetos y mostrarlos.
.Me parece que de esta forma todo es mucho más racional y no se requiere HTML. Quisiera discutir esto.
.El perfil de las novedades de HTML5 entran dentro de esta estructura. Veamos:
&-El sistema multiligual es fácil de implementar. Será una gran ventaja que se implemente orgánicamente desde la W3C
&-