lunes, 3 de agosto de 2009

Memorias de un hacker retirado

Recuerdo mis primeros intentos por desentrañar los misterios de los computadores y la programación, en el lejano 1982. Mi primer compañero fue mi viejo y querido VIC20.

Obviamente, yo era de la hermandad de los fanáticos de Commodore. Y hasta el día de hoy, todavía mantengo largas discusiones con viejos camaradas, sobre cuáles eran los líderes de los primeros microcomputadores para el hogar.

Nunca llegaremos a una conclusión definitiva.

Commodore, Sinclair o Atari, todos con su legión de apasionados defensores y furibundos detractores, plenos de argumentos teñidos por la pasión.

N. del A.: Parece que desde los orígenes del mundo digital, el fundamentalismo forma parte de nuestra cultura.


Mi VIC20 tenía la fabulosa cantidad de 4.096 bytes de RAM (4 Kilobytes ... término que las nuevas generaciones no conocen).

En ese VIC20 aprendí los primeros vericuetos de la programación en BASIC y nació mi amor por transformar una abstracción en código fuente. A través de la animación de sprites, extensiones a la ROM y programación de rutinas de aceleración gráfica, conocí la simpleza y potencia de la fuerza bruta del lenguaje de máquina, la sutileza en el uso de un JMP condicional y la precisión necesaria para hacer un shift de bits en un registro.

Pero mi vida cambió radicalmente, cuando mis padres me pudieron comprar un Commodore 64.

Un nuevo y fabuloso equipo, que seguía conectando en largas veladas nocturnas al TV "en colores" del living de mi casa.

Siempre hemos escuchado que mirar TV excesivamente cerca, hace pésimo para la vista. Claramente, las largas jornadas de 6 o más horas, a una distancia de 35 o 40 centímetros de la pantalla del televisor, programando a punta de peek y poke, son un importante antecedente para mi temprana miopía.

A pesar de tener buses de 8 bits, el C=64 direccionaba hasta 64 Kb. La ROM/BIOS ocupaba sólo 8 Kb., por lo cual el C=64 me ofrecía ahora la fabulosa cantidad de 56 Kb de RAM, disponibles totalmente para mí.

Y permitía hacer maravillas, como ejecutar ese maravilloso juego llamado Ghosts & Goblins.



Así continué aprendiendo y experimentando, hasta que el año '86 tuve mi primer PC en casa.

Un "monstruo" con un procesador 8088 con 768 Kb de RAM (768 = 640 + 128, los geeks entienden por qué :-) y la increíble cantidad de 30 Mb en disco duro.

Cada vez que partía, ese computador con sus vibraciones y crujidos me recordaba el motor de un viejo refrigerador.

También en esa época, alrededor del '86, tuve la oportunidad de poseer un modem de 1.200 bps., aún cuando ciertamente no tenía muchos "nodos remotos" con los cuales aplicar mis nuevas "capacidades telemáticas".

Mi principal actividad remota era conectar mi ruidoso computador, a unos pocos BBS chilenos, participando de las primeras comunidades digitales locales. Incluso en algún momento, recuerdo haber levantado un servidor Wildcat, pero las continuas llamadas telefónicas recibidas en mitad de la noche, hicieron que mis padres rápidamente prohibieran el nuevo hobby.

Eran los tiempos donde debíamos aprender obligadamente las diferencias entre E-7-1 o N-8-1 para una emulación de terminal, y nos sabíamos de memoria los comandos y argumentos Hayes para configurar un módem (recordar un ATDTX3S0=0 me sirvió muchísimo hace unos días ...:-).

Esto de la paridad par o impar era particularmente importante, cuando nos conectábamos a la U para emular un IBM 3270 (que obviamente era MUY distinto de una emulación VT100, para conectarse a una VAX o un equipo Unix). Y aprendíamos con dificultad la diferencia entre la codificación EBCDIC y ASCII.

Ahí, en esos primeros tiempos, aprendí la importancia de la interoperabilidad, más allá de la teoría.

Eran buenos tiempos, donde nos rebuscábamos la mejor forma para poder acceder a ese gran banco de software llamado SIMTEL, ya fuera por una BBS potente o a través de una conexión a BITNET.

Más de alguien aprendió (después de quebrarse la cabeza) que XModem era un protocolo engañoso (porque modificaba los archivos recibidos), alabamos la flexibilidad de YModem y la capacidad de restauración de ZModem. Estos protocolos no sólo los usamos, sino que también los programamos y modificamos, adaptando el modelo de administración de ventanas y puntos de restore para diversos proyectos locales.

Y definitivamente nos graduamos de magos, cuando logramos completar una sesión de transferencia multiplataforma mediante Kermit.

En esos tiempos, lograr transferir un archivo de 150 Kb. era más preciado que un diamante. Y durante los 30 minutos o más que duraba una simple transferencia (en esos tiempos sí que había latencia), rezábamos para que no se cayera la sesión.

La experiencia de esos años austeros, en los cuales debíamos aprovechar al máximo cada bit disponible, me ha servido mucho y en diversos contextos.

Recuerdo un complejo proyecto a principios de los '90, en el cual todos esos conocimientos de hacker, los incluimos en un sistema distribuido de alta disponibilidad, que combinaba computadores clientes con 1 Mb de RAM, procesos residentes con corrutinas bajo DOS e interfaces usuario en Clipper orientado al objeto, una arquitectura fault tolerant sobre 3 nodos servidores VAX/VMS espejados en tiempo real, dispersos geográficamente y conectados sobre redes X.25, con anchos de banda de 64 Kbps. En ese sistema, diseñamos y programamos desde el más mínimo bit hasta los procesos de sincronización en tiempo real. Eran buenos tiempos.

Cuando estuve a cargo de Cybermarket en 1997 y montamos el primer mall virtual en Chile, en una operación de Comercio Electrónico pero "de verdad" (ofrecíamos un mix de 44.000 productos en 4 rubros, incluyendo lechugas, martillos, azúcar, destornilladores y crema facial), definimos algunos criterios de uso de recursos, tiempos de respuesta y usabilidad, que como responsable tecnológico consideré en ese tiempo como "intransables", con el pesar del equipo de implementación.

Cybermarket debía cargar las páginas en los browser de los clientes, en un máximo de 7 segundos, considerando transferencias con un ancho de banda de 14.4 kbps. y sin exigir capacidades de procesamiento de Javascript en el lado cliente. Y por cierto, con esas estrictas definiciones, problemas de interoperabilidad no teníamos.

Fue difícil lograr cumplir con esas duras condiciones. Pero hace más de 12 años, implementamos un sistema de e-commerce con algunos servicios que incluso hoy podrían aparecer como avanzados, porque nos preocupábamos más de la funcionalidad y usabilidad, que de los "bells & whistles" de las interfaces.

Probablemente, si no hubiera aprendido en mis primeros tiempos en un entorno de "carencia digital", habría sido más derrochador durante mi carrera profesional.

Pero en los momentos difíciles no transé y resistí la tentación de la abundancia. Y fue bueno no transar, motivo por el cual varios de esos proyectos fueron exitosos y tuvieron una larga vigencia.

En estos nuevos tiempos de "abundancia", ser un "avaro digital" sigue siendo una buena actitud.

Me sorprende ver cómo algunos nuevos arquitectos y diseñadores, consideran que el "ancho de banda" es cuasi ilimitado, el almacenamiento infinito, la disponibilidad continua, el hardware infalible. Y formados en la "abundancia", diseñan servicios, modelos, negocios, considerando un pool ilimitado de recursos.

Hoy declaro formalmente que soy un "hacker retirado", que se dedica a tomar litros de café conversando sobre el diseño de modelos de negocios y de servicios, y que lo más complejo que programo, son las reglas de distribución de mis correos electrónicos.

Pero a la luz de la experiencia, mi única y principal recomendación a los nuevos programadores (teniendo sólo algunos de ellos los antecedentes suficientes para ser llamados "arquitectos"), es que sean siempre .. unos "avaros digitales". :-)

Stay Tuned!

Fuentes de las imágenes: Wikipedia


21 comentarios:

María Paz 8:36 a. m., agosto 03, 2009  

Que nostálgico tu post.
Yo tuve un Atari y Commodore64. Y si bien en mi casa el objetivo de esas máquinas era jugar, era una de las pocas personas que hacía los ejemplos que venían en el manual. De ahí nació como una alternativa la informática como una opción.

Cainista 9:05 a. m., agosto 03, 2009  

La verdad que me sacaste una lágrima nostálgica, mientras la leía en mi celular con 2Gb de RAM y me reía de la ironía.

Creo que ya te conté cuando le regalé a mi hija de 14 años, mi Atari 800XL (que cumplía 25 años de batallas). Su primera pregunta fue "cómo lo conecto a Internet?"

No se si aceptar de tu parte, la frase de que te retiras como hacker, más bien creo que ocupas tus oscuras artes en otros temas.
Y aún te quedan 2 o 3 lecciones que enseñarle, a los que tratan de ganarse el apodo de "hackers"

Maz 9:06 a. m., agosto 03, 2009  

Y por cierto que aprendiste, MP. Trabajar con una amiga y profesional como tú ha sido una gran suerte. :-) Saludos y gracias!

Maz 9:08 a. m., agosto 03, 2009  

@Chubasco/Mauricio: Nah. Es que bien sabes que me pican las manos por tener el tiempo y poder volver a sentarme frente a un IDE o mejor aún un editor de texto y un compilador modo línea. ;-) Saludos, amigo hacker! (Tantas historias juntos ... :)

Anónimo,  9:32 a. m., agosto 03, 2009  

Tu recuerdo inicio un flashback a mi tiempo de administrador de la red X25, donde las troncales era de 64k y habia que optimizar las velocidades y donde la red de cobre era muy mala..he tenido la fortuna de ver todo el proceso de evolucion de la red en chile ,ahora el Bw es abundante, pero ¿se esta optimizando las aplicaciones ? creo que seria bueno seguir los consejos de maz..saludos y gracias por los recuerdos jln

Roberto Riquelme 9:33 a. m., agosto 03, 2009  

Excelente articulo, MAZ!
Yo empece con un Atari 800XL, principalmente jugando, y copiando juegos en las radios con doble cassettera :-)

Que tiempos aquellos...

Lo que te queria comentar! Nunca te retires de hacker! Lo mejor que uno puede hacer es seguir contando estas historias... es la mejor forma de que la gente entienda que los recursos nunca van a ser ilimitados... y pucha que cuesta que entiendan eso!

Saludos!

Patagon 10:01 a. m., agosto 03, 2009  

Estimado MAZ

acerca da los que han nacido criados en la e-abundancia,... recuerdo que acumule varios cassete con excelentes juegos de Atari y de Sinclair ZX81

Incluso, durante años hice clases con Atari 800

pero tienes mucha razón,.. hoy a veces reclamos de llenos o de e-llenos

hace unos días mi hijo de 8 años me quería convencer de pasar a la "PLAY station 3" o equivalente pues SOLO tiene la "play 2"

A partir de tu post,... que se friegue! prefiero comprarle un lego con mil piezas

De mi parte,... NO TE RETIRES NUNCA de "jaquer" al menos,...

Maz 11:16 a. m., agosto 03, 2009  

@Juan Luis: Y muy bien que lo hacías. Recuerdo las peleas en configurar los PADs, animales difíciles de domar. :) Un abrazo ...

@Roberto: Gracias! En algún momento hay que empezar a escribir memorias. :)

@Patagon/Pato: Por favor, no le des a tu hijo la dirección de mi blog. NO tengo culpa en la decisión de upgrade :-)

lnds 11:20 a. m., agosto 03, 2009  

No se puede dejar de ser hacker, lo que cambian son los compiladores.
Uno de los más grandes hackers de todos decía que su compilador era su pluma:
http://www.lnds.net/2009/07/calidad-correccion-y-elegancia-una-entre.html

Antonio Alfredo 1:03 p. m., agosto 03, 2009  

MAZ,

ME hiciste recordar mi Atari...y mi viejo y fiel EPSON EQUITY II+ (sin disco duro) pero tenia pantalla CGA...lujos en esos años....Estoy plenamente de acuerdo contigo...quienes nos iniciamos en las artes oscuras de esos años cuidabamos los recursos que eran escasos y caros...hoy son más accesibles...programar en pascal y hacer un sistema de 120K y que administraba datos....que tiempos aquellos hoy solo un mail pesa eso.

Creo que las nuevas tecnologías más que simplificar complejizan...

Saludos gracias

por traerlo a mi memoria..

Anónimo,  2:21 p. m., agosto 03, 2009  

MAZ

Me he sentido identificado contigo ya que yo al igual que tu, he crecido junto a esas maravillosas cosas que son las computadoras todavia guardo mi commodore 128 y una vieja spectrum z80 en un armario de mi casa. Justamente hoy me asombraba de los trabajos que se desarrollaron alrededor de la simplicidad de la programacion, hoy levantas una piedra y encuantras un guru o un autodenominado hacker al cual lo pones frente a una sesion telnet y se les caba la sabiduria...en fin. Abrazos desde argentina

patux 5:51 p. m., agosto 03, 2009  

Profe,

Me hubiese gustado nacer tecnológicamente en esa época. Sin embargo, por temas económicos mi primer PC fue un 386, a pesar de que ya había usado algunos XT con PC-DOS y monitores hércules en el colegio.

Siempre he sido respetuoso de las tradiciones y he intentado hacerlo aún ahora en la abundancia que las pasa por alto (aunque me pregunten que es eso del bottom-posting). Sin embargo, mas que nostalgia, la abundancia de hoy me produce preocupación por los desechos que generaŕa. Hoy en día la gente no filtra la data que respalda. El almacenamiento es tan barato que se venden y venden discos y la gente respalda sin organizar. La duplicidad de la información debe ser tremenda, y eso sin duda impactará en el medio ambiente.

La abundancia (y no sólo tecnológica) podría ser nuestra propia perdición...

Saludos!

Rodrigo Seisdedos 9:07 p. m., agosto 03, 2009  

Oh... ¡Pero qué tiempos aquellos!

Me conmovió tu post, aunque tiene un error de concepto, al final te lo digo.

Inicié mis pasos con un Atari 800XL. Tenía 64-KB de veras, aunque para aprovecharlos todos había que usar bank switching porque el acceso al hardware era memory mapped y se requería "deshabilitar" el hardware para direccionar la RAM "oculta".

Recuerdo que mi primer driver fue usar esa memoria oculta como un RAMdisk.

Para los juegos, el Atari tenía el chip ANTIC con player/missile graphics, que le daba 3 patadas en el que te jedi a los sprites del Commodore.

Aprendí a programar assembler 6502 leyendo un manual de Motorola :-)

Antes de conseguirme el precioso MAC/65 me tuve que hacer un ensamblador propio.

Las variables se almacenaban en la famosa página 6, y era un atado porque había que reservarlas para cada programa para que no se topen.

Nunca me compré una diskettera con el chip Happy así que tenía que hacer ingenierís reversa para eliminar las protecciones a mano y poder "respaldar" los juegos :-)

El Atari DOS era ahí no más así que usaba Sparta DOS.

Mis juegos favoritos eran Bruce Lee y QBert. Nunca me gustó la serie Mario Bros.

Hice mi tarea de Arquitectura de Computadores con MAC/65. El profe auxiliar era Carlos Echeverría y no conocía el 6502, así que para corregirla tuvo que hacer un acto de fe :-)

También hice mis tareas de Computación Gráfica con ANTIC, para lo cual tuve que escribir rutinas de 16 bits y usar aritmética discreta para dibujar círculos y líneas.

Me conseguía todas las revistas y me daba la lata de digitar los programas que salían, llenos de DATA statements, pero con una especie de checksum para evitar los typos.

Repito... ¡Oh, qué tiempos aquellos!

Está claro, Zapits, Atari es la "conclusión definitiva" :-)

ClaudioSantibañez 9:08 p. m., agosto 03, 2009  

Parece que son todos "mayorcitos" por aquí... Por suerte yo crecí con Internet y escuchando a los Jonas Brothers; nada de problemas con la escasez de memoria ni de tratar de hacer funcionar un Digital Rainbow con CP/M y monitor ambar, nada de escribir código con editores de texto por lineas (como el SOS de TOP-10), de hacerle un hoyito al disquet de 5 1/4 para usarlo por el otro lado, de tener que usar un memdrive para simular un disco ya que solo se tiene una disquetera, de esperar a que amanezca para imprimir, puesto que si se me ocurriera hacerlo de noche me echan de la casa por el ruido de la Citizen, ya que la impresión térmica no dura lo suficiente. etc, etc...

De todo lo que me salvé por ser de otra época !!!

Maz 11:34 p. m., agosto 03, 2009  

@lnds: Hola Edo. Sabia declaración. Quién somos para contradecir a Dijkstra? Excelente video.

@Antonio: Digamos que este post es un conjunto de "pasas para la memoria digital".

@NN amigo argentino: Gracias por tu comentario y qué bueno que guardes tus recuerdos. Pero me intrigas sobre tu identidad. En general en este íntimo espacio compartido, conozco muchos de mi visitantes. Eres bienvenido y cuando quieras nos cebas un mate! :-)

@patux: Gusto en verte! qué fina tu mirada sobre el impacto ecológico que el derroche digital provoca. Gracias!

@R6D2: Sorry, non negotiable. Commodore es. En todo caso, coincido contigo que QBert era un crack (y que seguimos jugando hasta bastante mayorcitos en los Amiga en el DCC ... te acuerdas? :-)

@Claudio: Menos mal que eres de las nuevas generaciones! Qué habría sido de nosotros si hubieras sido un "viejo hacker". Lindo recuerdo el de hacerle un hoyito adicional al diskette para darlos vuelta y aprovechar la doble cara. Era todo un desafío. :-)

Gabriel Acevedo H. 12:40 p. m., agosto 04, 2009  

Wow! gracias por compartir tus experiencias. Este blog me ha servido de inspiración para varias cosas en mi carrera profesional.

Como dices tú, Stay Tuned!

Anónimo,  12:35 p. m., agosto 05, 2009  

es verdad... ya no eres un hacker... ahora eres un guru.

... malditos! nunca me compraron la disketera!!!

Rodrigo Seisdedos 8:01 p. m., agosto 17, 2009  

@MAZ: non negotiable?

¿Qué dice Google?

Resultados 1 - 10 de aproximadamente 41.300 de vic-20 emulator. (0,11 segundos)

Resultados 1 - 10 de aproximadamente 838.000 de atari emulator. (0,25 segundos)

Parce que los atarianos tenemos más nostalgia que los vic20anos.

:-)

Cristian Bobadilla Cepeda, CISSP 5:56 p. m., diciembre 05, 2009  

Si no leo tu post ni me acuerdo de mi Z80 ni de todas las cosas que tenia adentro cuando ya por fin me atreví a desarmarlo...obviamente no tenía tuvos como el antiguo televisor blanco y negro...
y esas pequeñas cosas que tenia eran todo un misterio...

Hoy mi celular tiene 16GB y mucho mas capacidad que el Z80 y por cierto que tampoco me acuerdo de mi US Roboticm, se tenia que hacer una manda para que pudiera bajar 200 o 300 KB en una noche, cosa que ahora se hace en solo segundos ... me recuerdo que me tenia que despartar a cada hora en la noche para ver si no se caia la retransmición para relanzas el ftp nuevamente con punto de retoma.

:)

Vladimir Gustavo 10:32 p. m., enero 13, 2010  

Hola profe tanto tiempo de esas clases de ayudantía que me hizo y me aceleró aun mas como una sonda espacial frente a un campo gravitacional. Yo empecé en el MICRODIGITAL con BASIC y sin casetera de mi vecino, y luego salté a mi amigo MAC con Turbo Pascal y programación gráfica 3d (reinventé la rueda con mis métodos matemáticos y solo) en el laboratorio que estaba en la esquina del primer nivel del DCC de la U. de Chile.... ahora me pasé al lado oscuro de la fuerza y programo VISUAL C++, MFC y OPENGL sólo para Windows. Estoy construyendo sistemas CAD avanzado (nada de games alguien tiene que trabajar jaja) y creo que esto de la tecnología recién comienza y por eso me acelero cada vez mas (salió el Octane III de SGI nnnnoooo). Me encantaría comunicarme y sepas más de mis proyectos. vladimir.lidsa@gmail.com Un abrazo Vlad

Anónimo,  6:08 p. m., noviembre 01, 2010  

La informática de hoy en día utiliza los recursos de una manera absurda, no te respeta en lo absoluto ya que realiza rutinas que nunca has pedido y te pone lento el sistema al máximo.
El simbolo de esta era tan desastrosa es windows vista con sus gigas y gigas mal usados cuuaaaak. Ya no es como antes.
Para mi el simbolo de la primera maravillosa epoca es el juego Montezuma. Creo que nunca más en la informática se utilizarán los recursos de una manera tan magistral para crear un juego que marcó a toda una generación con apenas 4 o 10kb de información (Mucho mas pequeño que un documento de texto con una letra en Word)

Seguidores

  © Blogger templates Newspaper III by Ourblogtemplates.com 2008
      Header Image: Modification of Technology Curve by Wonderlane

Back to TOP