[*MiIT}– Computación Personal, herramienta indispensable. 13: Analógico vs. digital

Carlos M. Padrón

Se ha repetido muchas veces —y yo lo he hecho también— que la computadora fue diseñada y hecha a imagen del hombre: cerebro, sentidos de diferente tipo, y capacidad de lógica comparativa, que se corresponden con CPU, unidades de I/O, .. y también capacidad de lógica comparativa. Pero, sin embargo, hay dos importantes áreas en que la correspondencia o es limitada o, simplemente, no es posible. Hoy nos ocuparemos de la primera de esas dos áreas..

Una de las grandes diferencias entre computadora y hombre está en el modo de operación. Las computadoras son digitales y operan con los dígitos que conforman el sistema binario. El hombre es, por naturaleza, analógico, y en algún momento inventó los números y luego los sistemas basados en ellos.

Los relojes de pulsera podrían servirnos como ejemplo. Básicamente, y haciendo salvedad de variantes un tanto frívolas que descuidan la función utilitaria de este valioso instrumento, hay dos tipos:

a) los que tienen dos agujas que se mueven sobre un dial marcado con las horas, desde la 1 hasta las 12; y,

b) los que en el dial muestran sólo los números dígitos correspondientes a la hora, p.ej., 04:24.

Los relojes tipo “a” son analógicos porque para determinar la hora que indican tenemos que establecer una analogía entre las marcas del dial y la posición que con respecto a ellas ocupan las dos agujas, Los tipo “b” son digitales, pues el determinar la hora no requiere de analogía alguna: sólo leer 04:24 que es la forma en que diríamos la hora al interpretarla en un reloj analógico.

¿Cuál de los dos sistemas es más difícil? Obviamente, el analógico; si no lo creen así, traten de enseñar a un niño a leer un reloj de ese tipo. El sistema analógico requiere de la aplicación de un proceso lógico y comparativo que, en muchos casos, incluye más factores que los que se notan a primera vista, pues en el caso del reloj analógico debemos determinar si las 4 y 24 son de la madrugada o de la tarde. El digital no nos obliga a esto, pues indica am o pm, según sea el caso, o, mejor aún, usa la notación de 24 horas, y para las 4 y 24 de la madrugada indica 04:24, y para las 4 y 24 de la tarde indica 16:24.

Al lenguaje escrito, como tal, se le considera una tecnología. Una tecnología que, usando diferentes métodos (p.e., gramática) y símbolos (caracteres, como las letras o los ideogramas) permite representar valores numéricos, expresar ideas, comunicar sentimientos, describir un mundo real, crear mundos de ficción, etc.

Esa tecnología es en sí un medio que la computadora usa solamente para la primera de las representaciones antes listadas, o sea, para representar valores numéricos. De ahí que su lenguaje, tanto para la lectura como para el proceso y la escritura, sea de base binaria, que luego, por medio de programas traductores, puede convertirse a las letras y números de nuestro sistema de escritura, o del sistema cirílico, o del griego, el mandarín, etc.

Por tanto, si la computadora tiene que darnos la hora 04:24 pm a través de, p.ej., una impresora, le es mucho más fácil escribir 16:24 que convertir ese valor numérico a una versión analógica que nos muestre el dial del reloj, la posición que sobre él deben tener las agujas, y, además, añadir las siglas “pm”.

Esta limitación no quiere decir que la Ciencia no continúe haciendo esfuerzos por dar a la computadora capacidades analógicas. Un primer paso, y logro embrionario en ese sentido, lo representan las bases de datos relacionales o asociativas que, como ya hemos dicho, funcionan asociando eventos, no relacionando datos como, p.ej., un nombre con un número, que es el caso de esa base de datos tan común que llamamos guía telefónica.

Pero aún en el caso de aquellas bases de datos, la información almacenada en ellas lo está en forma digital, y el hombre no almacena información en esa forma.

El recuerdo que guardo de la sonrisa de mi nieta no es digital, y menos lo es el sentimiento que tal recuerdo me causa. Es más, cuando hablamos por teléfono con alguien que está al otro lado del océano, le preguntamos qué hora es en la ciudad donde está, y nos dice, p.ej., que son las 6 y cuarto de la tarde, eso desencadena en nosotros una secuencia de imágenes y hasta sentimientos, pues tal vez recreemos en nuestra mente la imagen de un reloj analógico con sus agujas en la posición de las 06:15 pero, como se trata de la tarde, es posible que nos imaginemos la luz mortecina, típica del atardecer, que en ese momento podría haber allá donde está nuestro interlocutor.

Y si nosotros estuvimos allí alguna vez y nos ocurrió algo sobre esa hora, es casi seguro que, queramos o no, se activarán los recuerdos y sentimientos asociados con ese algo.

No nos limitamos a centrarnos, como sí lo hace una máquina, en la imagen —fría, escueta, y sin implicación ni consecuencia alguna— de los números 18:15, pues no somos una máquina; la computadora sí lo es.

[*MiIT}– Computación Personal, herramienta indispensable. 12: Virus y otro malware (2/2)

Carlos M. Padrón

A fin de hacerme entender mejor, voy a diferenciar entre los programas antivirus y los programas anti-malware, entendiendo por malware —a efectos de este artículo, repito— todo objeto maligno que no sea el clásico virus que sólo busca causar daño al HW o SW de la PC.

Por años, los programas antivirus funcionaron solamente en base a “signatures” (= firmas), o sea, fichas de los virus que fueron descubiertos pululando en la Red. Era algo así como la Interpol que, una vez que conoce las características particulares de un delincuente, hace de él una ficha y la distribuye a las Policías del mundo.

Los dueños del programa antivirus y anti-malware hacen una signature de cada virus identificado y la envían por Internet a los usuarios de su programa, con lo cual éste se actualiza, o, mejor dicho, algunos de estos programas se actualizan automáticamente; otros requieren que el usuario solicite actualización, aunque estos casos de actualización sólo manual son pocos actualmente. Suele ser común que estos programas indiquen la cantidad de signatures que en un determinado momento tiene su base de datos.

Pero en el periodo de tiempo que media entre que el virus aparece en la Red dispuesto a causar destrozos, y el momento en que al programa antivirus llega la signature correspondiente, el virus puede ocasionar verdaderos desastres.

Para reducir este peligro aparecieron las técnicas de heurística que, usando un ejemplo muy pedestre, funcionan como el “Si tiene cuatro patas, rabo y ladra, es perro”. O sea, que la heurística intercepta todo objeto sospechoso que pretenda entrar a la PC, y lo somete a un escrutinio para determinar si tiene ciertas características típicas de los objetos malignos.

Si el resultado es positivo, a ese objeto no se le permite entrar, y se le somete a rastreo intensivo hasta que se logra hacer para él, si resulta maligno, la signature correspondiente, que se distribuye luego en la forma ya descrita.

Esto no obstante, y comoquiera que la heurística no es 100% segura, es casi obligatorio que, por lo menos una vez a la semana, se pida, tanto al programa antivirus como al anti-malware, debidamente actualizados ambos, que escaneen toda la PC, por si, a pesar de las medidas descritas, logró colarse algún objeto maligno cuya signature ya está en la base de datos correspondiente.

Por tanto, la función de un programa, antivirus o anti-malware, es eliminar los objetos malignos (virus unos, y malware no tan maligno los otros) que encuentre en la PC, y tratar de impedir, en base a signatures o técnicas heurísticas, la entrada de otros.

Y para que el programa cumpla bien su función hay que “customizarlo”, hacerle set-up o ponerle los settings. (He visto que en las versiones en español traducen este término como “personalizar”, pero para mí no son equivalentes, pues “customizar” o “settings” implica usar del programa aquellas características operativas que éste tiene disponibles y que a mí, como usuario, me convengan, me gusten o no; mientras que a “personalizar” le veo más connotación de “poner en la forma que a mí me guste”. El customizar o set-up es más funcional, y el personalizar más subjetivo).

En función de la facilidad de customización hay programas, tanto antivirus como anti-malware, que van desde muy simple hasta sólo para expertos. Cuando más complejo, más funciones ofrece y mejor cumplirá su trabajo si se le customiza bien.

Por esto es importante tener la versión en el idioma que mejor domine el usuario, aunque a veces éste —como me ocurrió a mí que, aunque los uso en inglés, se los instalo en español a personas que no entienden inglés— se quede perplejo ante términos como “ventana emergente”, que me produjo un ataque de risa la primera vez que lo vi y, después de bastante trabajo, logré entender que era la traducción de “pop-ups”.

Hoy día, los más de los programas antivirus proclaman que cuentan con la técnica heurística más avanzada. Y hay programas, tanto antivirus como anti-malware, que, con tal de conseguir quien los compre, usan lo que se ha dado en llamar falso-positivo, que no es más que el truco, malicioso las más de las veces, de hacer aparecer como malignos objetos que no lo son.

Y, lo que es peor, los hay que hasta hacen aparecer en la PC tales supuestos malignos para luego aparentar que los eliminan y hacer creer al usuario que son una maravilla porque encontraron y eliminaron lo que otros no pudieron detectar.

Generalmente, estos programas —y también muchos que sirven para dar mejorar el rendimiento de la PC, eliminar archivos temporales, corregir fallas en los registros, etc.— no ofrecen periodo de uso gratis, sino que permiten que se los instale en prueba, que se escanee con ellos la PC, y al final del escaneo dicen que han encontrado varios objetos malignos —o mucha “basura” para sacar—, pero que si se quiere que los elimine —o saque— hay que comprar el programa. Un caso reciente de trucos como el descrito, y que llegó a los tribunales, es el reportado en el artículo “Antispyware Company to Reimburse Some Customers”.

En consecuencia, no suelo comprar ningún programa, sea del tipo que fuere, que no ofrezca un periodo de prueba gratuito, y que durante el mismo opere con todas sus funciones.

Una guía que considero buena para saber más de la calidad de un antivirus es la publicación digital inglesa VirusBulletin (VB) editada por una compañía supuestamente imparcial que hace pruebas periódicas y comparativas de todos los programas antivirus que se presten a ellas.

Analizando los varios reportes VB a través del tiempo se ve que hay más programas antivirus de los que uno pensaba que existían, y que sólo algunos se han mantenido por tiempo ganando siempre un “VB Award” (premio al desempeño satisfactorio), prueba tras prueba y en distintas plataformas, mientras que otros o no han salido de la mediocridad o, lo que es peor, en vista de que nunca conseguían un aprobado optaron por no presentarse más; pero, eso sí, se autopromocionan de todas las formas imaginables, desde la publicidad directa hasta la medio disfrazada en artículos sobres temas de seguridad que atraen al lector por lo novedosos de su título, pero que, ya al final, mencionan como fuente —poco fiable, por supuesto— a la bendita compañía. ¿Podría uno confiar en un programa de este tercer tipo?.

En el caso de los programas anti-malware ocurre otro truco diferente: lo que para unos es malware para otros no lo es. ¿Por qué? Porque hay de por medio intereses comerciales, y algunas compañías pagan a los fabricantes de programas anti-malware para que no traten como malware las cookies, rootkits y demás objetos más o menos malignos que ellas meten en las computadoras cuando se visitan ciertas páginas de Internet. De ahí la conveniencia de usar más de un programa anti-malware.

Tengo tres en mi PC, y hago que los tres la escaneen al menos una vez por semana. Afortunadamente, hace tiempo que ninguno de estos tres encuentra nada. Sin embargo, la semana pasada recibí evaluaciones contradictorias acerca de un programa anti-malware producido por la misma compañía que produce uno de mantenimiento que me ha resultado bueno.

Curioso, instalé —en versión de prueba, por supuesto— ese programa anti-malware, e hice que los otros tres que tengo escanearan mi PC. Cuando me cercioré de que ninguno encontró nada, entonces puse a escanear a ése del que me llegaron evaluaciones contradictorias y, ¡oh, sorpresa!, al final del escaneo dijo haber encontrado 14 objetos malignos; y, ¡oh, mayor sorpresa!, me dijo que si quería que los eliminara tenía que comprarlo. Por supuesto, lo mandé a paseo.

[*MiIT}– Computación Personal, herramienta indispensable. 12: Virus (1/2)

Carlos M. Padrón

Lamentablemente, es éste un tema que no pierde actualidad, pues seguro estoy de que todo aquél que use correo electrónico debe haber recibido varios mensajes con un attachment (adjunto) infectado con algún virus.

¿Qué es un virus? Una definición técnica dice que es simplemente un programa o secuencia de instrucciones creada con el único propósito de causar daño mediante la alteración del correcto funcionamiento de la computadora —de su hardware (HW) y/o su software (SW)— por la vía, en la mayoría de los casos, de corromper o destruir parte o la totalidad de los datos almacenados en el disco duro.

Para el mundo informático existen varias clases de virus, con notables diferencias entre sí, como, por ejemplo, Virus ‘Puro’, Bomba Lógica, Caballo de Troya, Gusano o Worm, etc. Pero una cosa es segura: todos hacen daño; en mayor o menor grado, pero hacen daño.

Hablemos un poco sobre la variedad “pura”, que no recibe el calificativo precisamente por lo pulcro y puro de sus intenciones u obras. Un verdadero virus, como se considera que es el llamado “puro”, se destaca por su capacidad de copiarse a sí mismo en soportes (archivo, registro de arranque del sistema, partición, etc.) diferentes a aquéllos en los que llegó o se alojó en nuestra computadora, y, por supuesto, también por su capacidad de hacer esto con el mayor sigilo posible y de forma inadvertida para el usuario. A esa capacidad de copiarse a sí mismo se la conoce como «infección», y por eso en todo este asunto de los virus se usa una terminología propia de la medicina, como «vacuna», «tiempo de incubación», etc.

Por sí solo, un virus no puede llevar a cabo su destructiva labor; para ello necesita de un programa portador que lo haga llegar hasta la memoria de la computadora donde se instalará. Y para conseguir esto del tal programa, necesita modificarlo de forma tal que cuando éste se ejecute incluya en su operación al virus como si de algo normal se tratara. Al ejecutarse el programa, o sea, al efectuar aquello para lo que el programa fue hecho, el virus ejecuta también su función destructiva.

El medio de transporte que los virus usan con más frecuencia para entrar en la computadora son los archivos llamados ejecutables, como los que se identifican con las extensiones .EXE y .COM. De ahí que se haya extendido la costumbre de borrar, sin abrirlos, los mensajes de e-mail que nos lleguen enviados por un remitente desconocido para nosotros y que traigan como attachment un archivo con cualquier nombre seguido de .EXE o .COM. Este indicio del remitente desconocido es cada vez menos válido, pues ahora los virus pueden llegar en mensajes supuestamente enviados por personas que conocemos muy bien, aunque ellas no saben nada de tal envío.

Un ejemplo simple. Un cartero viene a nuestra casa y nos entrega un sobre que tiene nuestro nombre y dirección. Confiados, abrimos el sobre y encontramos un papel en blanco. o con un texto que puede o no resultarnos extraño, y, pegada a ese papel, una bolsita. Curiosos, abrimos la bolsita, y al hacerlo aspiramos, sin querer, un polvo, invisible e inodoro, que venía dentro de la bolsita y que, de inmediato o más tarde, nos causa una enfermedad que puede llevarnos a la muerte.

• El cartero es el programa portador, digamos que Outlook. Él hizo su trabajo, pero ignorando que alguien había puesto una sustancia nociva dentro del sobre que, honesta e inocentemente, el programa nos entregó.

• El sobre es un mensaje de e-mail que, confiados —y muchas veces imprudentes—, abrimos para ver qué contenía.

• El papel debería contener el texto de ese mensaje, pero a veces viene en blanco porque, como el único fin del mensaje es hacer posible la entrada del virus, en cuanto la bolsita sea abierta se consigue ese fin, así que no tiene mucho sentido escribir algo en el papel, como no sea una burla, lo cual suele ocurrir.

• El polvo invisible e inodoro es el virus en sí.

• Nuestra nariz es el medio de entrada al sistema, y, una vez dentro de él, ya el mal está hecho.

¿Quiénes hacen los virus y para qué? La teoría más aceptada es que son obra de mentes pervertidas que sólo buscan hacer daño a cambio de —y esto luce como más lógico aunque no menos execrable— alcanzar notoriedad entre los miembros de la sociedad de los “hackers” , que así se les llama a las personas, casi todas muy jóvenes, con un conocimiento tan profundo de Internet y del mundo de la PC, que pueden acceder a cuentas de banco, archivos gubernamentales, etc.

Entre hackers podrían mantener una especie de torneo a ver quién logra hacer el virus que cause el mayor daño y que tome el mayor tiempo y esfuerzo a los especialistas que se ocupan de desarrollar un antídoto efectivo.

Sin embargo, hoy día han disminuido mucho los ataques de virus de sólo propósito destructivo, y aumentado los de troyanos, espías, etc. La explicación que de este cambio se da es que quienes antes hacían virus sólo por placer de causar daño, ahora se han dedicado a hacer programas que, aunque se instalan en la PC como los virus, en vez de causarle daño al HW/SW operan como espías que envían a su dueño información que servirá a éste para, por ejemplo, ordenar con destino a su propia cuenta bancaria transferencias desde la cuenta del usuario de la PC, robar datos clave de las tarjetas de crédito del usuario, engañar a éste para que, en una pantalla que simula ser la de su banco, introduzca confiado los datos clave, UserID y password [= código de usuario y contraseña]) que suele introducir en la pantalla auténtica, etc.

Éste es hoy día un negocio millonario, y de ahí la necesidad ineludible que hoy tenemos de instalar en nuestras computadoras tres programas de importancia vital que sean compatibles entre ellos: un buen antivirus, un buen anti-spyware (anti espía), y un firewall (cortafuego).

Pero sigamos con los virus, que es el tema que al momento nos ocupa.

Tomando en cuenta varios factores, además del índice de detección de virus, entre los antivirus que he probado hasta hoy están, por orden de calidad según mi experiencia con ellos (el último en la lista es para mí el mejor,… hasta hoy), los siguientes:

McAfee http://www.mcafee.com/us/ – Sólo versión de pago.

RAV. Era bueno y sólo de pago, pero en 2003 Microsoft (MS) compró GeCAD, la compañía propietaria del RAV, y este programa, tal y como lo conocí, dejó de existir. Se dice que en base a él creó MS su propio antivirus, del cual poco he sabido. Tal vez aquí funcionó lo que llamo “el toque de pajidas” —el inverso del “toque de Midas”— que suelen tener algunas compañías. La interfaz del BitDefender recuerda mucho a la del RAV, por lo que no me extrañaría que los creadores de BitDefender hayan sido ex empleados de GeCAD.

Avast  – Tiene versión gratuita.

AVG  – Tiene versión de pago y gratuita.

BitDefender  – Tiene versión de pago y gratuita.

Kaspersky (KAV)  – Sólo versión de pago.

NOD32  – Sólo versión de pago.

ESET Smart Security suite. (Es una actualización, pues este producto salió al mercado años después de la fecha de este post). Incluye el NOD32 antivirus, firewall, antispam, protección antirrobo, protección contra botnets, protección en acceso a la web, anti-phishing, control paternal, modo de juegos.

NOTA.- Los nombres de los programas son un link (enlace) de acceso a la información sobre ellos. La condición de pago o gratuita era la de cada uno de estos programas en la fecha de este post.

Creo que resulta obvio que si una misma compañía ofrece dos versiones de un mismo antivirus, una gratuita y la otra de pago, la de pago es de pago porque es mejor que la gratuita; de no ser así, nadie compraría la de pago sino que se quedaría con la gratuita. Por tanto, la lógica dice que nuestra PC estará mejor protegida con la versión de pago de un programa antivirus que con la versión gratuita del mismo programa.

En términos generales, creo que los mejores programas antivirus son los hechos tras lo que fuera la Cortina de Hierro, o sea, en países que fueron comunistas (República Checa, Eslovenia, Rumania, Rusia, etc.).

  • Lo básico que espero de un antivirus es que tenga (no hay ningún orden especial en esta lista):
  • Rapidez en su carga; antes que la conexión de línea
  • Capacidad para eliminar los virus ya en la PC e impedir la entrada de otros
  • Sistema heurístico. Hoy día no basta con sólo la base de datos de firmas (datos identificadores de los virus ya descubiertos)
  • Escaneo a diferentes niveles. El usuario puede escoger cuál, y también en qué discos y en qué archivos dentro de cada disco.
  • Actualización automática, frecuente y notificada
  • Que sea ‘ligero’, o sea, que no ponga lenta la PC
  • Opción de avisar, con imagen y preferiblemente también con sonido, cuando detecta un virus
  • Opción de no detenerse al detectar virus
  • Opción de qué hacer con virus detectados, y detalles sobre ellos
  • Compatibilidad con otros programas de seguridad, como firewall y anti-spyware
  • Fácil opción de enable/disable (habilitar/deshabilitar)
  • Facilidad para enviar a su fabricante e-mails de SOS, con perfil de HW/SW incluido automáticamente
  • Opción de escaneo al start up (inicio de la PC)
  • Ausencia de conflicto con puertos usados por otros programas
  • Capacidades de anti-spyware y, sobre todo, de anti rootkits, sólo deseables si no ralentizan la PC
  • Opción de apagar la PC al término de un escaneo
  • Servicio técnico de soporte preferiblemente vía chat, en vivo, o, cuando menos, vía simple e-mail
  • Opción de escaneo programado
  • Capacidad para escanear en el background dejando libre suficiente poder de PC como para que el usuario pueda continuar trabajando con ella, si lo desea.

Para terminar la primera entrega de este tema, es bueno destacar que en una misma PC debe tenerse un solo programa antivirus. Podríamos tener dos o más programas anti-spyware, y dos o más firewalls, pero sólo un programa antivirus.

[*MiIT}– Computación Personal, herramienta indispensable. 11. Mainframe vs. PC

Carlos M. Padrón

A diferencia de la moderna computadora personal, más comúnmente llamada PC, los mainframes operaban en base a una gran memoria principal —ubicada físicamente en el CPU y con la facilidad de que se podía acceder a ella en fracciones de segundo, o sea, muy rápidamente— y a mayor memoria auxiliar, ubicada principalmente en discos, con formato de paquetes removibles (acceso directo y más rápido), y en cintas magnéticas (acceso secuencial y más lento).

El procesamiento como tal se efectuaba en la memoria principal, a la cual se traía, desde las memorias auxiliares, la información que para tal fin se necesitara, y el resultado obtenido se enviaba a los terminales, si de TP se trataba, o se guardaba en alguna de las memorias auxiliares desde donde se imprimía o se mantenía lista para ser usada cuando se la necesitara.

Una de las grandes diferencias entre esos mainframes y las PCs es que en éstas la memoria que podríamos equiparar a la principal de aquéllos, y que se conoce como RAM (Random Access Memory) es pequeña en términos de capacidad de almacenamiento, pues cuando tiene 128MB ya se la considera aceptable, aunque en algunos modelos de PC se la puede aumentar a 256MB, 512MB, 1GB, etc., siendo cada vez más alto el límite. La memoria en disco, la que reside en el llamado “disco duro” (hard disk), tiene, en cambio, mucha capacidad de almacenamiento, y es común que el disco duro de nuestra PC tenga desde, por ejemplo, mínimo 40GB y hasta cientos de MB, y también es común, y conveniente, que la PC tenga más de un disco duro, al menos más de uno lógico, que sería cada una de las porciones en las que puede dividirse, como si de compartimentos diferentes se tratara, un disco físico.

Otra diferencia, al menos en términos de configuración de la máquina, está en lo que hoy llamamos el “procesador”, el que le da a la PC su velocidad de procesamiento, que se mide en ciclos o Hertz (abreviado, Hz), y determina que las operaciones se efectúen a mayor o menor velocidad. Hoy se ofrecen procesadores en términos de Giga Hertz (GHz), o sea, que operan a miles de millones de ciclos por segundo. Todos hemos oído alguna vez el término Pentium en relación con una PC. Se refiere a una de las marcas o tipos de procesador fabricado por una reputada empresa que hoy ofrece (tal vez al momento en que escribo esto ya tiene algo mejor) el modelo Pentium 4 con una capacidad de proceso de 2.4 GHz, o sea, de 2.400.000.000 (sí, usted leyó: dos mil cuatrocientos millones) de ciclos por segundo.

El procesador está íntimamente vinculado con lo que es el corazón de toda PC, la llamada “tarjeta madre” o Mother Board. Es esta pieza la que contiene toda la circuitería clave para que la PC pueda operar. Es el CPU de la PC, y en relación con ella y el procesador podría decirse que todo lo demás en la PC es accesorio.

Otra diferencia entre los mainframes de que hemos hablado y la moderna PC es la gran variedad de unidades de I/O o periféricas de que ésta dispone.

Mientras un mainframe típico tiene CPU, consolas con monitores, unidades de disco, y unidades de cintas e impresoras, una PC puede tener CPU con teclado y ratón (mouse); pantalla a color —también llamada monitor y que comúnmente era de 15 pulgadas pero que puede ser de 17, 19, 21 ó más—; disco duro (uno o más, según ya dijimos antes); unidad lectora y grabadora de disquetes (típicamente de 1.44MB; cada día se usa menos); unidad de CD-ROM (Compact Disk Read-Only Memory) —que, como su nombre indica, es sólo de lectura pero que hoy puede ser de lectura y grabación (llamada en criollo “quemadora”) con, generalmente, capacidad de 600MB— o CD/DVD-ROM —lectora y grabadora de CDs y DVDs; unidad lectora y grabadora de Zip (la capacidad del medio con que opera comenzó con 100MB y hoy se ofrecen de 200GB y más); escáner, de varios tipos y capacidades; impresora monocromática o a color, y de tipo impacto, inyección de tinta o láser; cámara de TV, integrada o externa; micrófono, integrado o externo; auriculares (head set), altavoces, etc.

La capacidad de cómputo que tiene hoy una PC con los elementos listados en el párrafo precedente excede en mucho a la que tenía el común de los mainframes de comienzo de los 80s, cuando la PC empezó a popularizarse. Pero tal vez lo más dramático a la vista sea que aquel mainframe requería una sala especial de unos 100m2; piso falso bajo el cual pasaba la maraña de pesados cables de diferente grosor que interconectaban las varias unidades periféricas y el CPU, y pasaban también los ductos de un potente aire acondicionado imprescindible para contrarrestar el enorme calor que todo el equipo generaba; instalación eléctrica especial según especificaciones; y, fuera de esa sala pero conectada directamente con el CPU, una unidad llamada UPS (Uninterrupted Power Suply) que, en caso de falla en el suministro eléctrico externo, producía por cierto tiempo (cuanto más largo ese tiempo más cara esta máquina) energía suficiente para que la computadora pudiera concluir correctamente las operaciones que estaba haciendo al momento en que ocurrió la falla.

Pero la PC que, como ya dijimos, supera en poder de cómputo a este mainframe, sólo requiere el espacio que ofrece uno de esos escritorios que para tal fin podemos encontrar en cualquier tienda de computación.

Mientras escribo esto, todavía me asombra esa abismal diferencia.

[*MiIT}– Computación Personal, herramienta indispensable. 10: ‘Virtualidad’

Carlos M. Padrón

En 1971 salió al mercado la primera versión de la IBM/370.

cuyas capacidades y rendimiento fueron mejorando en tres sucesivas etapas, y así, de contar con memoria a base de chips de 0.8 centímetros de lado (los chips eran cuadrados) y 5 bits por chip, como la IBM/360, pasó a chips de igual tamaño pero con capacidad para 256 bits cada uno, y luego a chips de 3 milímetros de lado y con capacidad para 1.434 bits cada uno. Este drástico aumento en capacidad de memoria y velocidad de procesamiento permitió el anuncio, que nos llegó en 1974 y en base a una nueva versión de la IBM/370, de lo que llamo “virtualidad”, o sea, de la memoria virtual y la máquina virtual, lo cual trajo consigo la realidad en la operación y accesibilidad del concepto de tiempo compartido (time sharing).

El concepto de memoria virtual permitió, a efectos prácticos, que el usuario tuviera a su disposición más memoria principal (memoria del CPU) de la que la máquina realmente tenía. Es un recurso basado en la alta velocidad de acceso y procesamiento que permitieron usar como si fuera memoria principal la que en realidad estaba en los discos (memoria auxiliar) conectados a la IBM/370. En éstos, y en formatos llamados páginas, se guardaba parte importante de lo que, según se entendía hasta entonces, debía residir en la memoria principal, y cuando esas páginas se necesitaban eran copiadas casi instantáneamente en la memoria principal sobre otras que ya no se necesitaban. Todo esto requirió de un nuevo método de acceso y de manejo de archivos que proporcionara la velocidad y seguridad necesarias. Ese método recibió el nombre de VSAM (Virtual Storage Access Method) que se constituyó como de uso obligatorio para el logro de la “virtualidad”.

Una de las expresiones prácticas de la “virtualidad” —la fragmentación virtual de la máquina— hizo posible compartirla entre varios usuarios de forma que cada uno tuviera la impresión de que disponía, para sí solo, de una máquina completa, pues tenía memoria principal (mayormente virtual, por supuesto), tenía espacio en discos, tenía espacio en cintas, tenia almacenados, en área reservada sólo para él, sus programas y aplicaciones, etc. Todo gracias a la gran capacidad de memoria, tanto principal como auxiliar, como a la gran velocidad de procesamiento.

Como ejemplo podemos tomar la técnica que se ha aplicado a las líneas telefónicas y que es lo que permitió que algunas compañías de comunicación ofrecieran llamadas a muy bajo precio. ¿Cómo? Mediante tecnología, tomaban una línea telefónica con ancho de banda normal y la subdividían en varios canales. Por cada uno de ellos gestionaban una conversación diferente, y rotaban a gran velocidad la conexión de cada una de tales conversaciones. Así, si en el canal 1 está la conversación A, en el 2 está la B, etc., dan curso a la A por fracciones de segundo, luego dan curso a la B por igual tiempo, luego a la C, etc. Por supuesto, mientras está en curso la conversación B, las personas de la conversación A no se escuchan entre ellas porque su conexión queda interrumpida y su conversación cortada, pero como las interrupciones son cortas en términos de “tiempo humano”, el cerebro de los que conversan puede reconstruir las pequeñas faltas ocurridas durante esas interrupciones, de sólo fracciones de segundo, de su conversación. A veces se extremó el procedimiento y ello dio lugar a que se escucharan otras conversaciones, y a que hubiera interferencias o interrupciones demasiado largas que hacían perder sílabas y hasta palabras. Pero ésta es la base que en computación tiene el concepto del tiempo compartido.

Por supuesto que tanto la memoria virtual como la cantidad de máquinas virtuales y la cantidad de usuarios que pueden disfrutar “simultáneamente” de tiempo compartido, es limitada, pues todo eso está en función de los recursos reales de la máquina; a más recursos reales (memoria principal, memoria auxiliar, velocidad de procesamiento, etc.) mayor la cantidad de usuarios que pueden disfrutar de la “virtualidad”, y mejor (más corto) el tiempo de respuesta que tiene para con cada uno la computadora que todos están usando.

Es obvio que un mecanismo tan sofisticado como éste requería de un sistema operativo adecuado y capaz para administrarlo eficientemente y que se entendiera con el VSAM. Y en 1974, a poco de anunciarse la primera versión de la IBM/370, se anunció —junto con la técnica de “virtualidad”, y especialmente diseñado para manejarla y administrarla— el sistema operativo MVS (Multiple Virtual Storage) que fue mejorando en el tiempo y que, aunque ha tenido sucesores como el OS/390, se usa aún en mainframes.

Como habrán notado, a pesar de todo esto la computadora sigue haciendo lo mismo: recibiendo órdenes que cumple a cada vez mayor velocidad. Sigue siendo tonta, sigue sin crear nada realmente nuevo, sin hacer nada que el hombre no le haya dicho cómo hacerlo.

[*MiIT}– Computación Personal, herramienta indispensable. 9: DB/DC

Carlos M. Padrón

Son las siglas de Data Base (Base de Datos) / Data Communication (Comunicación de Datos), conceptos éstos que, a fines prácticos, nacieron con el TP ya que eran y siguen siendo necesarios para que el TP dé lo que de él se espera, sin afectar en lo posible las operaciones “batch” de la computadora.

La definición más simple de DB es “conjunto de datos, de un mismo tipo e índole, organizados según una secuencia lógica que, de forma sencilla y transparente, permite el acceso a ellos”. Una guía telefónica es una DB. Está compuesta por nombres, direcciones y números de teléfono de personas naturales o jurídicas (datos de un mismo tipo e índole), y nos permite, de forma relativamente sencilla, el acceso a la información que contiene, o sea, la consecución del número de teléfono de una persona (usemos sólo el ejemplo de las naturales) cuyo nombre sabemos.

Las guías telefónicas tienen, generalmente en el ángulo superior externo de cada página, el apellido de la primera y de la última persona cuyo nombre y teléfono asociado aparecen en esa página, y si queremos buscar el teléfono o dirección de alguien apellidado Rodríguez buscamos primero —pasando muchas páginas juntas y avanzando así rápidamente— el Rodríguez en el ángulo superior externo, y en la primera página en que éste aparezca comenzamos a buscar, avanzando ahora mucho más lentamente, el segundo apellido, o inicial de éste, y el nombre de la persona cuyos datos nos interesan.

Al primer tipo de búsqueda, y a la DB en él basada, se le dio el nombre de indexada, pues equivale al índice de un libro que nos permite llegar rápidamente al comienzo de cierto capítulo sin necesidad de ir buscándolo hoja por hoja. Al segundo tipo de búsqueda, equivalente al “hoja por hoja” del libro, se le dio el nombre, así como a la DB en él basada, de secuencial porque requiere la lectura de los datos, uno por uno y en la misma secuencia en que están colocados en la DB, hasta dar con el que buscamos.

Con el aumento en la capacidad de almacenamiento y de la velocidad de proceso de las computadoras, las DBs fueron haciéndose cada vez más complejas y eficientes (existe la profesión de especialista en base de datos), y aparecieron nuevos tipos como la relacional, la orientada a objetos, etc. La meta parece estar enmarcada en el concepto “a imagen del ser humano” que inspiró la estructura básica de la computadora, pues la más sofisticada de las DBs se concibe basada en redes neurales y operando por asociación, como operamos los humanos que al oír, p.ej., los compases de una vieja canción recordamos de golpe que estábamos oyéndola hace 20 años, en el recreo de nuestro primer día de liceo, cuando hubo conmoción en todo el grupo por la muerte repentina de nuestro profesor. Extraña relación ésa que vincula el recuerdo (dato) de una canción con el recuerdo (dato) de una muerte, pero así funcionamos los humanos y así se quiere que las computadoras usen la información almacenada en sus bases de datos, enriqueciendo éstas con nuevas relaciones, como harían los robots.

Comoquiera que la ventaja del TP es el ahorro de tiempo, se entiende que el logro de esta meta requiere de bases de datos que tengan, actualizada y lista para acceder a ella, la información que necesiten las operaciones que a través de TP se efectúen. Además, las computadoras que trabajan en TP hacen también operaciones que sólo requieren datos y herramientas locales que están en la misma computadora. A estas operaciones se les llamó “batch” para diferenciarlas de las de TP. Es como si se tratara de una gran compañía que debe realizar transacciones totalmente internas (las batch mencionadas al comienzo) y transacciones que requieren envío o recepción de información a/desde el exterior (TP).

Pues bien, para que el TP no retrase los procesos batch, desde sus comienzos usó programas de ayuda que constituyen lo conocido como DC y cuyas funciones se asemejan a las de una hipotética División de Administración de esa compañía que determina qué es interno y qué externo, que envía lo primero a quien competa dentro de la compañía (batch), y encarga lo segundo (TP) a una Central de Correo Externo que maneja redes de motorizados, cada una con especialidad diferente (motos, carros, camiones cava, camiones blindados, etc.), y entrega a éstos bien los mensajes a llevar o las instrucciones pertinentes para los mensajes a traer, y la indicación sobre la mejor vía a seguir, qué rutas evitar, y qué vías alternas usar.

Una vez de regreso, cada motorizado entrega a la Central de Correo Externo el mensaje que trajo o la certificación de recepción del que llevó, y también la información de los eventuales contratiempos que tuvo en su viaje, la cual será útil para otros motorizados que deban hacer igual recorrido. La Central de Correo Externo entrega a la División de Administración los mensajes recibidos de afuera, y ésta se encarga de que sean usados internamente para los fines consiguientes.

Así trabajó el dúo DB/DC, presente hoy —con mayor sofisticación y transparencia, y aunque no lo notemos— en nuestra computación personal. Sin el DB/DC no habría operaciones en línea ni existiría Internet.

[*MiIT}– Computación Personal, herramienta indispensable. 8: Teleproceso (TP)

Carlos M. Padrón

Con la aparición de la IBM/360, su para entonces gran capacidad de memoria, su gran velocidad de procesamiento y el uso del sistema operativo, hicieron posible el desarrollo del concepto de teleproceso (TP), o proceso a distancia, hoy más conocido como operación en línea o, simplemente, online.

En Venezuela no sólo se instaló una de las primeras /360 en modo nativo sino que también se desarrolló y puso en operación el primer “Paquete en línea para Bancos” (éste era el nombre que tenía): un conjunto integrado de programas (paquete) que permitió que, por primera vez, un cliente de banco pudiera retirar fondos de su cuenta desde cualquier agencia que su banco tuviera en línea, y no necesariamente —y como siempre ocurrió antes— de la agencia en la que ese cliente había abierto la cuenta en cuestión.

El concepto era en apariencia simple: en la agencia bancaria se instalaba un terminal de uso general pero con adaptaciones (en su expresión más simple era una máquina de escribir eléctrica con ranura especial para impresión de libretas de ahorro) que se comunicaba, a través de una línea telefónica común, con la computadora IBM/360 instalada en la sede central del banco.

A través del terminal se le preguntaba a la computadora la validez y el saldo de la cuenta que el cliente quería afectar con un depósito o un retiro, y si la respuesta, que llegaba a través del mismo terminal, era positiva, el operador o cajero de la agencia efectuaba la operación y, como consecuencia, la computadora aumentaba el saldo de la cuenta (si depósito) o lo rebajaba (si retiro), y dejaba una detallada constancia de la operación efectuada.

Pero la realización del concepto no eran tan simple, pues hubo que lidiar por primera vez con líneas telefónicas (conmutadas o no conmutadas, equivalente a compartida o muerta/dedicada) , hilos (half o full duplex) módems, ecualización, ancho de banda, multiplexado, esquemas de conexión (punto a punto, multipunto, cluster, concentrador, loops), códigos de transmisión (EBCDIC, USASCI, etc.), disciplinas de transmisión (start-stop, BSC, SDLC, etc.) y modalidades de transmisión (sincrónica o asíncrona), protocolos de diálogo (addressing, polling, acknowledgement, retraso de propagación, etc.), y software especializado —software que entonces debió hacerse desde el primero al último bit, instrucción por instrucción— como bases de datos, gestión de líneas, manejo de colas y volúmenes, buffers, etc.

De esta larga aunque no completa lista, todo correspondía al para entonces mundo interno de la computación, excepto las líneas telefónicas, y ésas fueron un gran dolor de cabeza porque, en su mayoría, habían sido instaladas desde hacía años y tenían problemas físicos, como humedad, corrosión, etc., que producían ruido y mermaban su eficiencia, y para cuya corrección se requería de ecualización, o sea, igualar el ancho de banda o capacidad de transmisión de forma que, desde un extremo al otro de la línea, pudiera transmitirse a la “enorme” velocidad de 1.200 baudios o bps (bits por segundo).

Hoy el común de los módems transmite a 56KB, y ya existen programas, hechos y probados, que manejan, en forma transparente para el programador, todas las tareas antes descritas y muchas más, y la mayoría de los usuarios de hoy poco saben de las vicisitudes por las que pasaron los pioneros del TP y que permitieron que hoy podamos encender nuestra PC y estar en línea en cuestión de segundos accediendo —por interconexión entre varios mainframes, servidores, terminales, concentradores, etc.— a información que puede estar cerca de nosotros o al otro lado del mundo, y haciendo tal acceso a través de satélites, fibra óptica, etc., y no sólo, como antes ocurría, a través de líneas telefónicas de cables de cobre.

(Fernando Lacoste en 1970).

Es bueno recordar, aunque sólo sea por aquello de que “Al césar lo que es del César”, que en Venezuela vivió y trabajó Fernando Lacoste, uno de esos pioneros que con un esfuerzo casi sobrehumano escribió en 1967 —ayudado por tres expertos analistas de sistemas y programadores, y en lenguaje físico de máquina (Physical I/O Language)— el primer paquete en línea para bancos, para manejo de cuentas de ahorro, que existió en el mundo. Lacoste y su equipo lo instalaron en el Banco de Venezuela (hoy Banco de Santander), donde también Lacoste había instalado la primera IBM/360 en modo nativo.

En 1969, el equipo liderado por Lacoste le añadió a ese paquete los módulos necesarios para el manejo de cuentas corrientes, y el estreno de la versión así ampliada correspondió al entonces Banco Unión (hoy Banesco). A partir de ahí lo adoptaron casi todos los bancos del país.

En 1973, este paquete, una vez convertido a COBOL y adaptado a terminales bancarios especializados, recibió el nombre de SAFE/3600 (Sistema de Aplicaciones Financieras En línea, para terminales IBM /3600) y se convirtió, que yo sepa, en el único producto informático “made in Venezuela” que se instaló con éxito en varios bancos de 57 países de Centro y Suramérica, Asia y Europa, y hoy, pasados ya 33 años, aún opera en algunos de tales bancos.

Gracias a SAFE, buscando su expansión y el diseño de un sustituto, le di la vuelta al mundo dos veces. Y gracias al genio de Fernando Lacoste que creó el “Paquete en línea para Bancos”, fueron muchas las personas que en IBM, adjudicándose indulgencias con escapulario ajeno, escalaron posiciones y ganaron mucho dinero —y algunos siguen ganándolo— sin concederle por ello a Fernando el más que merecido reconocimiento, y sin ni siquiera acordarse de llamarlo o visitarlo en su retiro en Florida. A decir del propio Fernando, el que más dinero ganó fue uno que le impusieron como jefe, y que se autodenominó «Coordinador de Teleproceso» aunque de eso nada sabía.

Como sostengo desde hace mucho tiempo, la ingratitud es hija de la bajeza, hermana de la injusticia y madre de la desconfianza. A veces, también puede matar.

[*MiIT}– Computación Personal, herramienta indispensable. 7: Sistema Operativo

Carlos M. Padrón

En 1964 tuvo lugar lo que hoy se considera la primera gran innovación en computación, el inicio explosivo de la era informática en que estamos: la introducción del Sistema Operativo. La hizo IBM junto con el lanzamiento de su familia de computadoras Sistema/360 (abreviado, /360) que en vez de transistores (un bit por unidad), usaba chips de silicona que almacenaban 5 bits por unidad, y al inicio daban a la /360 capacidades de memoria desde 32KB hasta 128KB.

Antes de la /360, (la foto que sigue es de una línea de ensamblaje de la /360)

lo más avanzado era el programa (uno por vez) almacenado en la memoria. Un sistema operativo es una colección homogénea de programas que permite a una computadora supervisar sus propias operaciones rutinarias, llamando a uso, según los va necesitando, a otros programas, lenguajes, datos, etc. para la producción continua de una serie de trabajos; es el gobierno interno de la computadora. El sistema oprativo que se anunció con la /360 fue el DOS (Disk Operating System), pues la mayor parte de él residía en un disco magnético (la /360 requería discos), mientras que un componente, llamado Sistema de Control, o “director de orquesta”, residía en la memoria y se encargaba de ir trayendo a ella desde el disco las partes que necesitara para realizar su trabajo. Entre los sistemas operativos más usados o conocidos están MS-DOS, OS, OS2/Warp, MVS, Netware y Unix; y en la computación personal el Linux y el Windows, que es el que tomaremos como referencia.

Los sistemas operativos relevan al usuario de una inmensa cantidad de trabajo, y dan a la máquina ciertas características de comportamiento de corte humanoide, como compatibilidad (p.ej., el Windows es más compatible con Word que con…) y hasta inestabilidad, que en criollo hemos dado en llamar “guindarse”, y así oímos decir “El Windows se guindó” para significar que, sin causa ni motivo aparente, dejó de trabajar, se quedó inerme y “mudo”, lo cual, por cierto, es casi típico de algunos sistemas operativos de computadoras personales (PCs), y casi inconcebible en los de mainframes.

Con la aparición de los sistemas operativos comienza a popularizarse el uso del término “software” y, por contraposición, el de “hardware”; el primero para referirse a la parte no físicamente tangible de la computadora, o sea, a los programas; y el segundo para la parte que sí puede tocarse, para los “hierros”, o sea, las máquinas y sus componentes físicos, aquello de lo que hemos dicho que era muy costoso, pero que hoy cuesta comparativamente menos cada día, a diferencia del software que, definido también como la razón de ser del hardware, es el ánima que hace que el hardware sirva a los propósitos del usuario, y es, comparativamente, la parte que más costosa resulta.

Hasta la generación de la IBM-1401 se hablaba de programa. Como ya esa generación comenzó a procesar gran volumen de trabajo, apareció el concepto de “aplicación” para definir al conjunto de programas que, ejecutados en secuencia, permitía alcanzar un resultado complejo, como podría ser la emisión de los estados de cuenta de los clientes de un banco, lo cual requería previamente, p.ej., liquidación de bloqueos, cálculo de intereses, deducción de comisiones, consideraciones de cuentas conjuntas, etc., y, finalmente, la consolidación, generación e impresión de los estados de cuenta. A título de ejemplo, repito, cada uno de esos pasos podría ser objeto de un programa, y al conjunto de ellos se le llamaba “Aplicación de Estados de Cuenta”. Con el tiempo, y posiblemente a causa del mayor alcance y poder de los sistemas operativos, ha caído en desuso el término “aplicación” y se ha vuelto al de “programa” a secas, hasta el punto de que oímos decir que Windows es un programa de Microsoft.

El concepto de sistema operativo fue tan revolucionario en su época que algunos de los expertos en programación, profesionales todos de altas calificaciones, que asistieron en EEUU al primer curso que IBM dictó al respecto, al regresar a sus países presentaron sin más la renuncia porque, según dijeron “Esta compañía se volvió loca: eso del al sistema operativo no funcionará”. Otros, sin embargo, entendieron muy bien el concepto, y entre ellos destaca uno de Venezuela que no sólo ayudó a vender aquí la primera /360 sino que efectuó, él solo, una de las primeras instalaciones de /360 “en modo nativo”, o sea, trabajando ya con sistema operativo, pues, como cabe suponer, las primeras de tales computadoras se entregaron con la capacidad de trabajar en ese modo o en el de emulación de 1401, ya que, en su mayoría, vinieron a reemplazar a una 1401, y los usuarios necesitaban tiempo para modificar programas, y, sobre todo, para entender y aprender cómo usar el sistema operativo, hito histórico y origen de la era informática que hoy vivimos.

[*MiIT}– Computación Personal, herramienta indispensable. 6: La computadora rentable

Carlos M. Padrón

A partir de la ENIAC (1946) la computadoras tenía ya CPU (memoria y tiempos de procesamiento), Unidades de I/O (consola, lectora de tarjetas, cintas, discos, impresora), lenguajes de programación, compiladores, programas, y programa almacenado, elementos éstos que casi configuran una moderna PC.

Sin embargo, en comparación con una PC o con mainframes de hoy, las computadoras de la época eran muy grandes, pesadas, lentas, ocupaban mucho espacio, disipaban mucho calor (requerían sistemas de enfriamiento), consumían mucha energía, etc., y eran muy costosas. Se fabricaban para fines muy puntuales y contra pedido. Pero con el advenimiento del transistor en 1957 (más capacidad de memoria, menos espacio, menos calor y menor costo), en 1959 IBM lanzó al mercado la famosa computadora 140, que ilustra esta foto:

que, desarrollada con tecnología SMS (Standard Modular System) vino a representar para la computación lo que el avión DC-3 representó para la aviación comercial: la hizo rentable y marcó el inicio de su gran desarrollo. Por eso es famosa.

De la 1401, con capacidad de memoria de 4K, 8K ó 16K (un simple disquete de hoy tiene 90 veces 16K) y con I/O de consola, impresora de cadena, lectora de tarjetas y cintas (podía también usar discos), se vendieron más de mil unidades durante los primeros seis años, cifra impresionante para la fecha.

El lenguaje de programación más usado con la 1401era el Assembler, cuyos buenos programadores eran escasos y bien pagados en su medio, pero realmente se conocían de cabo a rabo todo lo relativo a la programación de esta computadora, hasta el último bit de su memoria y la última instrucción del programa.

Su mayor orgullo era lograr desarrollar un programa muy complejo que cupiera en la memoria disponible, que generalmente era de 4K. Algunos llevaron esto a extremos, y así el Gerente de Procesamiento de Datos (que así se llamaba entonces al más alto nivel del centro de cómputo) de un Banco, programador de vocación, ante la necesidad que se presentó de disponer de un programa clave, prometió a la alta gerencia que él lo desarrollaría de forma tal que cupiera en los 4K de memoria de su 1401, con lo cual le ahorraría al Banco el costo del módulo adicional de 4K, que, de no ser así, tendrían que comprar.

Este señor se dedicó a su tarea con tal devoción que no sólo descuidó sus responsabilidades gerenciales sino también las personales y familiares. Cuando en mis labores de venta me tocaba visitarlo, no me invitaba a tomar asiento, y, al igual que yo, se quedaba parado junto a su escritorio como un medio de ponerme presión para que mi visita fuera muy corta, y como un medio también de hacerme sentir su molestia porque yo le había dicho a la alta gerencia que el costo del tiempo que tomaría desarrollar el mencionado programa, más el salario de las personas que deberían dedicarse a las tareas que nuestro hombre había abandonado, más el valor de lo que el Banco estaba perdiendo en espera del tal programa, etc. era superior al costo del módulo adicional de 4K que permitiría disponer en poco tiempo del programa en cuestión. Pero cada vez que la gerencia mencionaba esto, el señor, actuando como programador y no como gerente, reiteraba con renovada fuerza sus promesas y compromisos.

Un día me molesté y fui a la visita semanal decidido a que, aunque no me invitara a sentarme ni se sentara él, yo permanecería en su oficina mientras pudiera. Por 48 largos minutos estuvimos ambos parados junto a su escritorio, hasta que tuvo que dejarme por una reunión urgente. El motivo de tal reunión fue anunciarle su despido, pues un gerente alto, víctima número 1 de la falta del programa clave, repasó el cálculo antes mencionado, concluyó que era cierto, y mandó a comprar de inmediato el módulo de 4K. Y ya, con base a 8K, un programador, de menor rango y menor salario, tuvo listo el programa para la fecha en que ese módulo fue instalado en la 1401.

Hoy los programadores disponen de computadoras con gigabytes y más gigabytes de memoria. El precio a pagar es que, a diferencia de sus colegas de antes, los de ahora no pueden ya tener el profundo conocimiento de lo que ocurre hasta la última instrucción del programa y el último bit de la computadora, pues las de hoy no tienen la limitación de ejecutar sólo un programa a la vez; pueden ejecutar varios al mismo tiempo y con miles y miles de instrucciones cada uno, lo cual aumenta la necesidad de exactitud de que ya hablamos, pues si la 1401 nos daba basura si la alimentábamos con instrucciones y/o datos erróneos, las de ahora nos inundarían literalmente de basura porque, aunque más veloces, más rendidoras, más capaces, etc., siguen siendo tan tontas como sus antecesoras.

A partir de la ENIAC (1946) la computadoras tenía ya CPU (memoria y tiempos de procesamiento), Unidades de I/O (consola, lectora de tarjetas, cintas, discos, impresora), lenguajes de programación, compiladores, programas, y programa almacenado, elementos éstos que casi configuran una moderna PC.

Sin embargo, en comparación con una PC o con mainframes de hoy, las computadoras de la época eran muy grandes, pesadas, lentas, ocupaban mucho espacio, disipaban mucho calor (requerían sistemas de enfriamiento), consumían mucha energía, etc., y eran muy costosas. Se fabricaban para fines muy puntuales y contra pedido. Pero con el advenimiento del transistor en 1957 (más capacidad de memoria, menos espacio, menos calor y menor costo), en 1959 IBM lanzó al mercado la famosa computadora 140, que ilustra esta foto:

que, desarrollada con tecnología SMS (Standard Modular System) vino a representar para la computación lo que el avión DC-3 representó para la aviación comercial: la hizo rentable y marcó el inicio de su gran desarrollo. Por eso es famosa.

De la 1401, con capacidad de memoria de 4K, 8K ó 16K (un simple disquete de hoy tiene 90 veces 16K) y con I/O de consola, impresora de cadena, lectora de tarjetas y cintas (podía también usar discos), se vendieron más de mil unidades durante los primeros seis años, cifra impresionante para la fecha.

El lenguaje de programación más usado con la 1401era el Assembler, cuyos buenos programadores eran escasos y bien pagados en su medio, pero realmente se conocían de cabo a rabo todo lo relativo a la programación de esta computadora, hasta el último bit de su memoria y la última instrucción del programa.

Su mayor orgullo era lograr desarrollar un programa muy complejo que cupiera en la memoria disponible, que generalmente era de 4K. Algunos llevaron esto a extremos, y así el Gerente de Procesamiento de Datos (que así se llamaba entonces al más alto nivel del centro de cómputo) de un Banco, programador de vocación, ante la necesidad que se presentó de disponer de un programa clave, prometió a la alta gerencia que él lo desarrollaría de forma tal que cupiera en los 4K de memoria de su 1401, con lo cual le ahorraría al Banco el costo del módulo adicional de 4K, que, de no ser así, tendrían que comprar.

Este señor se dedicó a su tarea con tal devoción que no sólo descuidó sus responsabilidades gerenciales sino también las personales y familiares. Cuando en mis labores de venta me tocaba visitarlo, no me invitaba a tomar asiento, y, al igual que yo, se quedaba parado junto a su escritorio como un medio de ponerme presión para que mi visita fuera muy corta, y como un medio también de hacerme sentir su molestia porque yo le había dicho a la alta gerencia que el costo del tiempo que tomaría desarrollar el mencionado programa, más el salario de las personas que deberían dedicarse a las tareas que nuestro hombre había abandonado, más el valor de lo que el Banco estaba perdiendo en espera del tal programa, etc. era superior al costo del módulo adicional de 4K que permitiría disponer en poco tiempo del programa en cuestión. Pero cada vez que la gerencia mencionaba esto, el señor, actuando como programador y no como gerente, reiteraba con renovada fuerza sus promesas y compromisos.

Un día me molesté y fui a la visita semanal decidido a que, aunque no me invitara a sentarme ni se sentara él, yo permanecería en su oficina mientras pudiera. Por 48 largos minutos estuvimos ambos parados junto a su escritorio, hasta que tuvo que dejarme por una reunión urgente. El motivo de tal reunión fue anunciarle su despido, pues un gerente alto, víctima número 1 de la falta del programa clave, repasó el cálculo antes mencionado, concluyó que era cierto, y mandó a comprar de inmediato el módulo de 4K. Y ya, con base a 8K, un programador, de menor rango y menor salario, tuvo listo el programa para la fecha en que ese módulo fue instalado en la 1401.

Hoy los programadores disponen de computadoras con gigabytes y más gigabytes de memoria. El precio a pagar es que, a diferencia de sus colegas de antes, los de ahora no pueden ya tener el profundo conocimiento de lo que ocurre hasta la última instrucción del programa y el último bit de la computadora, pues las de hoy no tienen la limitación de ejecutar sólo un programa a la vez; pueden ejecutar varios al mismo tiempo y con miles y miles de instrucciones cada uno, lo cual aumenta la necesidad de exactitud de que ya hablamos, pues si la 1401 nos daba basura si la alimentábamos con instrucciones o datos erróneos, las de ahora nos inundarían literalmente de basura porque, aunque más veloces, más rendidoras, más capaces, etc., siguen siendo tan tontas como sus antecesoras.