Ir al contenido principal

Con la vejez a cuestas, dos

 Indefectiblemente cuando se hace cualquier retrospectiva, uno no puede dejar de arrepentirse de algunas cosas. A veces lo decimos muy bajito y solamente lo escucha nuestro subconsciente; otras veces hasta lo escribimos. Pero en todo caso, siendo un poco sinceros con nosotros mismos, siempre tenemos esas astillas de arrepentimiento en diferentes ámbitos.

Este cuento tiene que ver con el ámbito profesional, aunque está bastante influído por otros ámbitos en mi vida. Siempre sentí fascinación por lo lógico que se sentía programar. El poder entender las cosas de manera tan cristalina; de estar tan seguro que una cosa iba a funcionar muchísimo antes de que se pusiera la primera línea de código. Todas las piezas de lego se encuentran ante tus ojos y, con la ayuda de unas cuantas teclas puedes moverlas y ponerlas juntas, separarlas, volverlas dinámicas, cambiarles absolutamente todo. Es tan poco natural el ver el potencial de creación y no hacer nada. Así que lo más normal es ponerse a hacer, programar un poco, programar por mejorar, programar por arreglar ese detalle insulso que tu programa no podía manejar desde hace 3 días.

No necesitas motivación para seguir programando, simplemente es un tema de un rompecabezas incompleto... imposible que se quede así. Y muchas veces pasa que en realidad lo que hiciste fue armar 200 piezas y traer otras 2000 nuevas piezas que armar para después. Ah, que maravilla, todavía me queda un buen tiempo para disfrutar pintando esto.

Era 1989 y no tenía la forma de interactuar con el mouse en Basic, y no tenía quien me diera una mano con eso. A Tim Berners-Lee le faltaba un par de años para poder inventar la WWW así que no tenía dónde buscar. Pero yo necesitaba poder hacer un Paint en Basic. No me acuerdo la verdad que tanto hacía uso del GOTO pero me imagino que, puesto que nadie me había impuesto límites, era parte regular del arsenal que utilizaba para programar. Y mi programa hacía líneas, puntos, curvas, y te permitia dibujar con las flechas del teclado; y fue un día justo que acababa una de las funcionalidades que coloqué sin querer como 3000 fichas más al rompecabezas; necesitaba que el programa pudiera dibujar letras.

No existía tal cosa como fonts para la interfaz gráfica de Basic. Así que debía dibujar cada una de las letras y lidiar con el tema de poder decirle que la letra la quería chica, mediana o grande. Ahí me di cuenta horrorizado que dibujar chico, mediano y grande, cuando se trata de letras, no es replicar el dibujo de manera directamente proporcional; sino que tuve que encontrar un centro imaginario en cada letra para que la proporcionalidad tenga sentido, sino no funcionaba realmente. Lo mismo calculando los anchos de cada letra para ver dónde iba la siguiente.

Así fue que mi padre decidió cambiarme de lenguaje a uno que decían era más poderoso. Me dejó el diskette a un lado y un libro con la introducción a la programación de ... Pascal. Esto ya era otra cosa, se sentía más intuitivo. Y claro, dibujar era un juego de niños en este caso.

Un amigo de mi padre tenía un instituto de computación en el centro de la ciudad. Y me dijo que porqué no daba clases de eso: Pascal enfocado a todas las capacidades de dibujo, movimientos de mouse, etc. Era 1990 y con 14 años estaba dando clases a chicos mayores de 18. Se sentía muy extraño.

Volviendo al punto inicial, es en este momento que hubiera sido ideal tener algo de formalismo. No me tocó, no es el fin del mundo, pero hubiera sido un buen momento para tener un formalismo matemático lógico que te construya las ideas de manera más ordenada. No hubo forma que yo me pregunte el porqué de algunas cosas, se hacían como se podía. Con un poco de suerte podré identificar eso en el futuro, para mí y/o para mis seres queridos y podré hacer algo. Ojalá me pueda dar cuenta.

Comentarios

Entradas más populares de este blog

Hangfire, si no lo estás usando, estás haciendo algo mal (.NET world)

Hangfire es una librería espectacular que permite encolar tareas en un servidor de tareas que funciona dentro de tu aplicación web. Existen varios tutoriales que muestran de manera bastante sencilla cómo puedes ir integrando esto a tu aplicación. En esta publicación vamos a repetir, pero en español, y sobretodo vamos a tratar de ir lo más al punto posible. Qué es? Es una librería que la cargas a través de NUGET como cualquier otra librería. En realidad tenemos que cargar 3 librerías pero eso lo veremos más adelante. Una vez que hayas cargado todo lo necesario en tu aplicación web tendrás lo siguiente: Un servidor de colas : es decir, un lugar al cual le puedes mandar hacer cosas y no se olvida de esas cosas y las va ejecutando a medida que puede o tiene tiempo. Esto es muy útil para que tu aplicación no pierda tiempo haciendo algo que no necesita realmente hacer en ese instante y devolver más rápido al usuario final. Un tablero de control de colas : una serie de ...

Protocolos, qué son?

 En el pasado (y en el presente también) siempre he querido incluir en el contenido de la materia de estructura de datos la posibilidad de hacer un práctico que tenga que ver con redes. Este breve artículo trata de cómo se pueden conectar dos computadoras en red y de las bases por las cuales tenemos protocolos. Veremos: Significado de las direcciones IP y conceptos muy básicos de redes Cómo usar sockets para abrir canales de comnicación entre dos computadoras Concepto de un protocolo y de cómo podemos usar uno para hacer un chat básico Conceptos básicos de redes Si eres de sistemas o te interesan las computadoras pues probablemnte el concepto de conectar dos computadoras en la red parece algo tan sencillo como respirar. Sin embargo, hasta mediados de los 90 era algo que: 1) era complejo; 2) tenía atisbos de magia negra. Por suerte con el tiempo esto se ha ido masificando y ahora es algo muy sencillo. Para poder conectarnos con otra computadora debemos conocer la dirección y el puer...

Nuget muy grande en tu carpeta personal

Problema : Veo que mi disco duro C ha crecido bastante y necesito espacio. Cuando veo que una carpeta .nuget dentro de mi cuenta de usuario tiene 15 GB. Solución : Esa carpeta existe como cache para que VS no busque el paquete cada vez desde la web. Entonces, la solución consiste en los siguientes pasos. Listar cuales son los folders o contenedores de estos paquetes nuget dotnet nuget locals all --list http-cache: <USER>\AppData\Local\NuGet\v3-cache global-packages: <USER>\.nuget\packages\ temp: <USER>\AppData\Local\Temp\NuGetScratch plugins-cache: <USER>\AppData\Local\NuGet\plugins-cache Limpiar las direcciones que tienen estos paquetes nuget con el utilitario de nuget dotnet nuget locals http-cache --clear Clearing NuGet HTTP cache: C:\Users\Vladimir\AppData\Local\NuGet\v3-cache Local resources cleared. y así para cada uno de los locals que se ve en la lista anterior. Luego se debe cambiar las variables de entorno para que esto no nos vuelva a pasar. Como se...