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.