4.1 Programación de puertos de la computadora Definición de puertos de la computadora Un puerto en la computadora es por donde la información fluye hacia dentro o hacia fuera. Los dispositivos Hardware como la impresora o modem pueden ser llamados puertos, un puerto que manda información fuera de tu computadora puede ser el monitor o la impresora. Un puerto que recibe información seria el modem o un scanner. Se dividen en 2 tipos: a) Puertos físicos de la computadora: son conectores integrados en tarjetas de expansión ó en la tarjeta principal "Motherboard" de la computadora; diseñados con formas y características electrónicas especiales, utilizados para interconectar una gran gama de dispositivos externos con la computadora, es decir, los periféricos. Usualmente el conector hembra estará montado en la computadora y el conector macho estará integrado en los dispositivos ó cables. Varía la velocidad de transmisión de datos y la forma física del puerto acorde al estándar y al momento tecnológico.
Anteriormente los puertos venían integrados exclusivamente en tarjetas de expansión denominadas tarjetas controladoras, posteriormente se integraron en la
tarjeta principal "Motherboard" y tales controladoras perdieron competencia en el mercado, pero actualmente se siguen comercializando sobre todo para servidores. b) Puertos lógicos de la computadora: son puntos de acceso entre equipos para el uso de servicios y flujo de datos entre ellos, ejemplos el puerto 21 correspondiente al servicio FTP (permite el intercambio de archivos) ó el puerto 515 que está asociado con el servicio de impresión.
Clasificación de los puertos para computadora (físicos) Los puertos generalmente tienen más de un uso en la computadora e inclusive en dispositivos que no se conectan directamente al equipo, por lo que no hay una clasificación estricta, sin embargo se pueden dividir en 7 segmentos básicos: 1) Puertos de uso general: son aquellos que se utilizan para conectar diversos dispositivos independientemente de sus funciones (impresoras, reproductores MP3, bocinas, pantallas LCD, ratones (Mouse), PDA, etc.)
Puerto eSATA
Puerto USB
Puerto FireWire ó IEEE1394
Puerto SCSI
Puerto paralelo / LPTx
Puerto serial / COMx2)
Puertos para impresoras: soportan solamente la conexión de impresoras y algunos Plotter. 3) Puertos para teclado y ratón: su diseño es exclusivo para la conexión de teclados y ratones (Mouse).
Puerto miniDIN - PS/2
Puerto DIN - PS/1
4) Puertos para dispositivos de juegos: permiten la conexión de palancas, almohadillas y volantes de juego.
Puerto de juegos Gameport (DB15
5) Puertos de video permiten la transmisión de señales procedentes de la tarjeta de video hacia una pantalla ó proyector. : Puerto DisplayPort (transmite video, sonido y datos de manera simultánea)
Puerto HDMI (transmite video, sonido y datos de manera simultánea)
Puerto DVI
Puerto S-Video
Puerto VGA
Puerto RCA
Puerto CGA
Puerto EGA
6) Puertos de red: permiten la interconexión de computadoras por medio de cables.
Puerto RJ45 (para red local LAN)
Puerto RJ11 (para red telefónica)
Puerto de red BNC
Puerto de red DB15
7) Puertos de sonido: permiten la conexión de sistemas de sonido como bocinas, amplificadores, etc.
Puerto Jack 3.5"
Los puertos lógicos de la computadora Al conectar un equipo a la red, este forma parte de la misma, y con ello adquiere necesidades de comunicación con Switches, Servidores, otras computadoras, etc. por lo que se asigna un identificador electrónico denominado IP (Internet Protocol), que consiste en su versión IPv4, de 4 bloques de máximo 4 dígitos, como ejemplo 192.168.108.32, con lo cual se presenta e identifica con el equipo destino. En Internet debido a la gran cantidad de servicios que se ofrecen, es necesario diferenciarlos, por lo que se utilizan los denominados puertos (independientemente de los puertos físicos de la computadora). Estos son un tipo de puertos lógicos, son puntos de acceso entre los equipos que les permitirán ó no, transferir información entre sí. Se han contabilizado hasta 65,000 puertos para las conexiones, siendo algunos estratégicos para ciertas actividades e incluso críticos. Estos puertos pueden ser protegidos por medio de Software especializado en ello y también por medio de Firewall (Corta fuegos: que se encarga de filtrar la información que circula entre las redes). 4.2 Elaboración de interfaces
Tipos de Interfaces El interface es de dos tipos que ellos son: Interface Paralelo Un interface paralelo transfiere datos en la forma de uno o varios bytes en la paralela a o del dispositivo. Asuma un ordenador 16 bites, direccionable por el byte, donde la entrada - salida controlada del programa es usada con asincrónico del ducto, y el cronometraje de transferencias de ducto es unos. El interface contiene memorias intermedias de datos separadas para insumo y producción y hay un registro de estado asociado con cada memoria intermedia. Para una operación de insumo, y la palabra de datos es transferida del dispositivo de producción a registros y puesta a 1. Cuando tan pronto como la señal lista es recibida, esto habilita las puertas de producción correspondiente al byte dirigido o palabra y colocación de sus contenido en las líneas de datos. También, la señal de producción aceptan también es puesto a 1. Este constituye la respuesta del interface a la petición leída emitida por la unidad central de proceso. Tan pronto como la señal lista se cae a 0, la señal aceptaré es borrada y todo el ducto es borrado. Note que cuando la memoria intermedia es dirigida, la bandera de estado de insumo es reinicializada a 0. Este es esencial a fin de garantizar que cada artículo de datos de insumo es leído por el ordenador sólo una vez. Una operación de producción procede del mismo modo, cuando la señal habilitaré es puesta a 1. El insumo de reloj a la memoria intermedia de producción es puesto. Este resulta en la carga de la memoria intermedia con los datos en las líneas de datos. Al mismo tiempo, es puesto a 1 indicar que el interface está listo a aceptar una nueva transferencia de producción. Interface Consecutivo Un interface consecutivo transmite y recibe datos un bit a la vez.
Un interface consecutivo contiene el mismo recorrido de control y dirección que el interface paralelo, pero con una adición controla para transferir datos en serie entre registros y el dispositivo de entrada salida. Aquí, un chip es usado, que es un barco de circuito integrado que contiene todo el recorrido lógico para la conversión paralela y consecutiva requerida. Los dos registros y las banderas de estado son incluidos en el chip. Elaborar una interfaz: Como consecuencia del uso masivo de internet y de la gran cantidad de documentación disponible para desarrolladores, es posible encontrar en la actualidad una gran variedad de productos de software. El problema está en que gran parte de esas aplicaciones no cumple con el objetivo principal para el cual debieron ser diseñadas, que es facilitar la vida de sus usuarios, razón por la que muchas veces son descartadas y reemplazadas por otras aplicaciones. En la mayor parte de los casos esto no se debe a errores de codificación, sino más bien a la forma en que las diferentes funcionalidades del software son presentadas a su público, lo que de ahora en adelante conoceremos como "interfaz de usuario". Este elemento, considerado una métrica de la calidad de un software, influye directamente en la percepción final del producto y en la resistencia del usuario a probar la aplicación. ¡Un software podrá ser muy bueno y poderoso, pero no será popular si su interfaz es deficiente! Por eso, basado en mi experiencia como desarrollador y en diversas lecturas sobre el tema, compartiré los elementos que considero más importantes al momento de desarrollar una buena interfaz de usuario. - Uso inmediato: nadie quiere perder el tiempo en aprender algo que no sabe si le servirá finalmente, por esta razón, el software debe presentar sus funcionalidades básicas de la forma más simple e intuitiva posible, debiendo quedar operativo desde el primer momento. Si existe un set de acciones o funciones avanzadas, es ideal que no interfieran con el uso básico del programa y que sólo sirvan como mejoras para cuando el usuario esté en condiciones de utilizarlas.
- Diseño minimalista: entre más elementos existan en la pantalla, más confundido y temeroso se encontrará el usuario. Por eso es importante reducir al máximo el número de componentes visibles, siendo muchas veces recomendada la utilización de asistentes o "wizards", los cuales permiten dividir una gran pantalla de datos en una serie de pasos lógicos, ordenados y sencillos de seguir. El uso de asistentes, al estar compuestos por varias pantallas, permite además mejorar el orden y disposición de los componentes.
- Distinción clara de los elementos: siempre que se incorpore un componente a la pantalla del usuario, el diseñador deberá preocuparse que este sea diferenciable del resto y de que su funcionalidad esté claramente expresada. Para ello, el mejor recurso es la utilización de imágenes, las cuales se recomienda sean únicas para cada componente o agrupación de los mismos, y semejantes a objetos de la vida real, de forma de hacer la aplicación más intuitiva.
- Atención a las glosas o textos: cada vez que se necesite colocar un texto en pantalla, ya sea para reforzar el concepto de un componente o para entregar una instrucción o advertencia, este deberá ser cuidadosamente escrito, procurando utilizar siempre el mismo tamaño, color y fuente de letra, dejando fuera el uso de "negrita" , "cursiva" o cualquier otro elemento que sobrecargue la pantalla más de lo necesario. Aunque suene obvio, los textos deberán ser siempre lo más concisos y claros posibles, intentando idealmente localizarlos de acuerdo a la región geográfica donde vayan a ser utilizados.
- Minimizar el uso del teclado y de comandos especiales: no hay aplicación más confusa y difícil de usar que una pensada para "ingenieros". Muchos software caen en el error de incorporar comandos especiales para realizar acciones de programa, pensando que un usuario experto ganará tiempo evitando el uso del
mouse. Esto es un error, puesto que son pocos los usuarios que destinan tiempo a leer la documentación de un programa antes de comentar a utilizarlo (mucho menos podrán conocer y memorizar sus comandos de uso); además el uso de comandos aumenta la posibilidad de realizar acciones involuntarias, lo cual puede llegar a ser atemorizante para los usuarios. Una aplicación amigable es aquella que muestra todas las posibles acciones en pantalla; el teclado deberá utilizarse sólo cuando sea imprescindible, como en el llenado de formularios u otras acciones similares. - Evitar diálogos innecesarios: existen aplicaciones que ante una acción reiterativa muestran un cuadro de diálogo con un mensaje de éxito. Esto puede resultar extremadamente molesto para un usuario que ya conoce las consecuencias de su acción. Por eso se recomienda el uso de cuadros de diálogo sólo para advertencias o sugerencias críticas (relacionadas a acciones no reversibles). - Prevención de errores: un usuario aprenderá más rápido a utilizar y confiar en una aplicación si sabe que no cometerá errores en su uso o si sabe que estos pueden ser revertidos rápidamente. Para esto el diseñador debe saber acotar las posibilidades de acción del usuario, quitando la mayor cantidad de objetos de error posibles; además debe cuidar que cada acción crítica del programa pueda ser revertida en caso de ser requerido. - Flexibilidad ante todo: no se debe confundir el control con la falta de flexibilidad. Si un usuario, por ejemplo, desea no incorporar una imagen en una tarjeta de presentación utilizando un formato que si la requiere, el software a lo más debería advertir sobre la falta de la foto, pero no prohibirle que termine el proceso de elaboración de su tarjeta. Un desarrollador nunca sabrá los alcances finales y usos definitivos de su software hasta que sea utilizado por sus usuarios, por lo que es mejor enfocar los esfuerzos en mejorar la robustez del software antes que caer en un control excesivo. - Manejo de preferencias de usuario: con la tecnología de hoy no es difícil incorporar mecanismos de almacenamiento personalizado de preferencias para los usuarios. Recordar elementos tan sencillos como la
configuración del idioma o la aparición de ciertos cuadros de diálogo facilitan enormemente el trabajo de quienes utilizan una aplicación. En resumen una buena interfaz: - Disminuye la resistencia natural del usuario a utilizar la aplicación. - Reduce los tiempos de aprendizaje. - Reduce los errores de uso. - Mejora la percepción pública del software. - Mejora la calidad de vida de los usuarios (facilita su labor).