¿Cuál fue tu primera came?

Para escribir esta entrada he invertido 1h 52m.

👴 Recuerdo un tiempo antes de las Redes Sociales en el que la red era mucho más social y era habitual tener respuestas cuando preguntabas. Rememorando aquel entonces os lanzo esta pregunta que yo mismo voy a responder: ¿Cuál fue tu primera came?

En aquellos tiempos, cuando los foros php reinaban en el vasto imperio de Internet y este blog se llamaba «0,» (cerocoma.blogspot.com), era habitual tener respuestas de vosotras, personitas, ya fueran en comentarios, como en una entrada en otro blog que te hacía pingback o directamente con algo tan obsoleto como mandar un correo electrónico. Ahora lo llamaríamos red social federada y lo venderíamos como el futuro, pero lo de colaborar cada una desde su casa es más viejo que la orilla de la mar.

Eran tiempos bonitos, en los que hacerse viral era conseguir portada en barrapunto o meneame (u otros más de nicho como debug_mode=on), o si lo petabas mucho en slashdot. Yo tuve mi minuto de gloria cuando instalé Compiz (una innovación de los laboratorios de Suse que permitía prenderle fuego al escritorio o hacerle girar) en el Ubuntu de aquella época. Si buceas en el archivo del blog encontrarás algunos posts al respecto, pero no mucho más, siempre he andado de fracaso en fracaso (:

Eran tiempos de frikis donde a los fascistas se los trolleaba en el IRC y desde luego no se les consentía que tuvieran el control de absolutamente nada comunitario. El Javi de aquel entonces habría creído imposible la deriva autoritaria actual en la que estamos…

Pero recapitulemos que nos perdemos en memorias que no volverán: ¿Qué es una came? ¿Cuál fue tu primera, Javi?

Una came es una CAgada MEmorable. Una de esas que te hacen ponerte colorado cuando las recuerdas y no se la cuentas a nadie aunque hayan pasado más de (1, 2, 3… ¡wow!) unos cuantos años. Pues yo voy a hacerlo. Aireemos nuestras vergüenzas. ¡Os voy a contar mi primera came!

Corrían los dosmiles, hacia la mitad más o menos. Tendría que echar cuentas para concretar, pero es innecesario porque el NDA seguro que ya está caducado.

Yo tenía mi primer trabajo. Antes había sido becario, pero en aquel entonces ser becario no se consideraba un trabajo ni aunque te pagasen buenas perras. En mis primeros meses me dieron una tarea:

Hacer un proceso de recordatorio que enviase emails transaccionales a todos los investigadores que tuvieran facturas pendientes de revisar.

Esos eran todos los requisitos, tan escuetos como la documentación del producto, pero no había queja. Easy peasy lemon squeezy.

Eché un vistazo en nuestra base de datos de desarrollo a la tabla de las facturas y había un campo «revisada» con valores «S» y «N». En aquel modelado de base de datos era habitual que los programadores antiguos usasen campos string para booleanos, por lo que no me llamó la atención.

Maqueté la plantilla del correo e hice un proceso que recuperaba todas las facturas que no («N») habían sido revisadas con los correos de los responsables, rellenaba la plantilla y mandaba los correos.

Se lo enseñé al senior que me tutorizaba vigilaba en aquel entonces y me dijo «¿Funciona? Pues a producción». Probablemente hoy esté vibe-codeando por algún lado, ¡un abrazo si me lees! :_)

Un par de semanas después se desató el caos y llegó el drama. ¿Qué has hecho? ¡La que has liado! Sin saber cómo ni porqué me empezó a llover mierda y broncas de todo el mundo.

Homer Simpson avisando del fin del mundo

Al parecer, el campo «revisada» en la base de datos del cliente además de los valores «S» y «N», también guardaba valores «P». ¡El campo no era booleano! La «S» quería decir que la factura se había revisado y la «P» era que estaba pendiente de revisarse. ¿Y la «N»? ¡La «N» era que no tenía que revisarse! ¡Obvio! «¿Cómo has sido tan zopenco para no darte cuenta de algo tan evidente?»

Cómo dicen los guiris «long story short», nadie por encima del último mono (yo) asumió su parte y me tocó mandarle un correo de disculpas a todo el personal responsable del cliente al que le había mandado correos diciendo que tenían pendiente de revisar unas facturas que realmente no tenían que revisar y aprendí que no debía fiarme del trabajo previo de nadie, ni del mío mismo, porque hay muchos motivos por los que podría haberse hecho una marranada que no esté documentada en ninguna parte.

Y nada, esa fue mi cagada memorable, ponemos fin al modo abuelo cebolleta.

Esta es mi pequeña piedrita para recuperar las cosas buenas del viejo internet. También he añadido en el sidebar (o en el menú en pantallas estrechas) una lista de blogs de gente (BOFHer) con la que interacciono habitualmente, por si queréis seguir leyendo cosas frikis de informáticos.

Esa fue mi came, pero ¿cuál fue la tuya?

La niña que cambió el mundo

Aunque pueda sonar un poco raro, hubo una vez una niña que tenía super poderes, y gracias a ellos cambió el mundo para convertirlo en lo que hoy en día conocemos. Sin ella las cosas no serían como son hoy en día, sin ella es seguro que yo no sería quien soy, ni vosotros podríais estar leyendo esto. Vamos a conocerla.

Ada Lovelace child portrait Somerville College

Nació en 1815, y aunque su mayor logro lo realizó cuando tenía 26 años, todo lo que hizo fue gracias a su dura infancia, a lo que vivió, a lo que aprendió y a quién la rodeo.

¿Su nombre? Augusta Ada Byron, también conocida como Augusta Ada King o Ada Lovelace.

Lord Byron coloured drawing

Su padre, (Lord) George Byron, era un tipo peculiar. Uno de los principales poetas del romanticos, quien era tremendamente volatil.

El día de su boda le dijo a su nueva esposa «te arrepentirás de haberte casado con el diablo». Así fue. Tras un año tortuoso, y sólo un mes y cinco días después del nacimiento de Ada, su madre se hartó de él y se marchó. Los motivos podrían ser muchos: aunque fuese un Lord y un artista famoso, las deudas lo perseguían; además era bisexual y la sodomía no estaba bien vista en esa época. Para colmo una de sus amantes era su propia hermanastra, con la que estaba completamente obsesionado.

Ada nunca llegó a conocerle. Tras el abandono, él escapó de sus acreedores huyendo del país y 8 años después murió en Grecia. Ada no salió de Inglaterra hasta los 10 años, momento en el que hizo un viaje de 15 meses alrededor del mundo.

Annabella Byron (1792-1860)

Su madre, Anna Isabella Noel Byron (Annabella), venía de una familia que le había permitido estudiar. Esto hizo que se preocupara desde el principio de que la pequeña Ada estudiase, sobre todo su matería preferida: matemáticas.

Al parecer, fue muy estricta con su hija. La obligaba a seguir un rígido horario y no solía dejarla jugar con otros niños. La rodeaba de adultos para que se cultivase y aprendiese, ¡y vaya si lo hizo!

MarySomerville

Con la mayoría de estos adultos interaccionaba en las fiestas y eventos sociales, pero con algunos tuvo un trato más cercano.

Por ejemplo, la matemática Mary Somerville hizo de mentora de Ada llegando a tener una muy estrecha relación con la niña.

Por tanto, la infancia de Ada estuvo casi completamente centrada en el estudio. Además, sufrió varios problemas de salud que la mantuvieron largos periodos postrada en cama, dónde su único pasatiempo era estudiar y leer libros, teniendo a su imaginación como único medio para escapar.

Difference engine plate 1853

Gracias a Somerville, Ada conoció a un señor llamado Charles Babbage.

Este había ideado una máquina analítica que servía para calcular números. Nunca se llegó a construir, pero Ada se interesó mucho por dicha máquina.

Trabajó en la traducción de un artículo de Luigi Menabrea, en el que hablaba de la máquina de Babbage, y comentaba como se podía usar.

Sin embargo, Ada no se quedó en traducir el artículo que definía el posible uso. Fué mucho más allá.

A esa traducción le añadió unas notas. En ellas añadíó muchos conceptos importantes.

Por ejemplo, sus contemporáneos sólo habían pensado en usar la máquina para realizar cálculos matemáticos. Ada, quien tenía una imaginación muy entrenada, vió mucho más allá. Fue la primera persona en abstraerse de las «simples» matemáticas y en darse cuenta que los números se podrían asociar a cualquier cosa (por ejemplo música) y así usar esa máquina para absolutamente todo lo que se quisiera:

» Supongamos, por ejemplo, que las relaciones fundamentales entre los sonidos, en el arte de la armonía, fueran susceptibles de tales expresiones y adaptaciones: la máquina podría componer piezas musicales todo lo largas y complejas que se quisiera».

Fue capaz de un nivel de abstracción tan alto, que incluso se dió cuenta de la similitud de esta máquina con otra contemporanea pensada para una función completamente distinta. El telar de Jacquard, una máquina inventada en 1801, fue la primera en usar tarjetas perforadas para cambiar sus acciones. Fue el precursor del uso de estas para transmitir los programas y los datos a los ordenadores que se usaron durante los años 60 y 70 del sigrlo XX. Pero no nos perdamos, eso es otra historia que deberá ser contada en otro momento.

Además, en la última de las notas escribió algo que cambió completamente el mundo. En su famosa «Nota G», Ada diseño y explicó el modo en que deberían de usarse tarjetas perforadas para transmitirle a la máquina el modo de calcular los números de Bernoulli (unos números representados por la función zeta de Riemann que sirve para definir la distribución de los números primos). Esta nota se considera el primer algoritmo pubicado, y aunque no llegó a testarse nunca porque la máquina no se construyó, podemos decir que Ada fue la primera persona programadora de la historia.

A los 36 años murió de un cancer de útero. Hoy, casi el único recuerdo que nos queda de ella es un lenguaje de programación nombrado en su honor, que se creó en los años 70 para unificar el lenguaje de todos los proyectos del departamento de defensa de Estados Unidos de América (otra historia que deberá ser contada en otro momento).

Sin embargo, en la mano de todos está usar la imaginación para visualizarla trabajando, para recordarla imaginando lo que podría ser el mundo y hacerse con esas máquinas que estaban empezando a surgir. Su capacidad de abstracción, sus experiencias vividas, y el poder de una mente tan capaz e imaginativa cambiaron el mundo a lo que es hoy en día, permitiendo que yo programe ordenadores y que vosotros podáis leer estas líneas.

 

Como empezar a programar apps distribuidas en Solidity para Ethereum

Podría parecer que para programar Dapps, las aplicaciones que corren sobre la máquina virtual de Ethereum, es necesario ser un experto en blockchain, saber de criptografía, entender cómo se calculan los hash de los bloques, entender cómo está implementado el Proof of Work, o incluso saber cómo se mina. Sin embargo, no hace falta profundizar tanto para echar a andar una aplicación distribuida, veamos por dónde se puede empezar.

learn photo

Para desarrollar Dapps, basta con conocer cómo funciona la Ethereum Virutal Machine, conocer las arquitecturas y patrones que se emplean y manejarse con alguno de los lenguajes pensados para tal fin. El más popular es Solidity, que está basado en javascript, aunque hay otros como LLL (que está basado en Lisp) o Serpent (basado en Python).

Para aprender a programar con Solidity se puede empezar por muchos sitios. Puedes empezar a dar vueltas por el Wiki de Ethereum, o ir directamente a la documentación oficial, aunque personalmente creo que es un poco tediosa y no va demasiado al grano. Otra opción es buscar un buen tutorial en el que te enseñen paso a paso, como Cryptozombies que te enseña a hacer desde cero un juego como el popular Cryptokitties.

Para aprender el lenguaje cualquiera de esas vías es válida. Sin embargo,  por desgracia, creo que es necesario pasar por todas esas documentaciones para tener conocimiento de los patrones más habituales y estar preparado para hacer cualquier tipo de aplicación, ya que si por ejemplo te quedas en ver cómo está hecho Cryptokitties, sólo conocerás aquellos que sirven para hacer un sistema de compraventa de bienes únicos.

Es cierto que esto puede llevar mucho tiempo, y si tienes prisa por empezar a programar, puedes buscar un curso para que alguien te guíe y te dé información concisa y bien estructurada. Recientemente he empezado a colaborar con DevAcademy, una academia que ofrece cursos de alto nivel para las tecnologías más punteras (DevOps, Machine Learning, Big Data, …) y, cómo no, entre ellos tiene un curso de Solidity. Es una buena alternativa para que te lo den todo mascado, y además, le puedes pedir a tu empresa que te lo pague ya que le saldrá gratis por ser formación bonificada. Si quieres saber más sobre este u otro de sus cursos, no dudes en ponerte en contacto conmigo y que podamos ver tus necesidades o las de tu empresa.