Hay un lenguaje llamado COBOL

Soy un escritor. Reivindico mi pertenencia a un subconjunto de la raza humana que escribe. Pero no soy un escritor típico, porque en regla general no son los seres humanos los que leen lo que escribo. Sino maquinas.

Dicho asi suena como si yo fuese un mago. Y en el siglo 21, es un poco asi: escribo programas para computadoras, tambien conocidos en la jerga como «software».

Literalmente, la palabra «software» significa «lo blando», o «cosa blanda». La palabra la inventaron los yanquis, en contraposicion o yuxtaposicion a lo que ellos denominan «hardware». Esta ultima palabra ya se usaba desde la revolucion industrial, probablemente desde antes, para denominar la chatarra, lo ferreo, lo metalico, las maquinas como la de tejer o el tren.

Los simbolos de las dos primeras revoluciones industriales, las de Hobsbawm, eran llamadas comunmente «hardware».

En la tercer revolucion industrial, aparecio el «software», lo intangible, lo etereo, y lo pelotudo que me siento tratando de explicar esto usando palabras tan idiotas. Sigamos.

He aqui la verdad, la que mi abuela nunca supo (por razones que seran obvias, espero): un programa se escribe, asi como un escritor escribe su novela. En ambos casos se usa un teclado (aunque dudo que Hemingway hubiese escrito programas con su Remington del ’32), y el resultado final se lee de izquierda a derecha, en lineas que se suceden de arriba para abajo.

Siempre me pregunte lo que seria la programacion si los arabes no hubiesen detenido sus investigaciones matematicas, por ejemplo despues de inventar los numeros arabigos, o despues de publicar aquel best seller de Al-Khowarizmi en el siglo 11. Escribiríamos los programas de derecha a izquierda?

Lo que quedo del buen señor Al-Khowarizmi fue su nombre, que derivo en la palabra «algoritmo», que es una palabra complicada para designar recetas de cocina.

Decia, entonces, que escribir un programa es como escribir un libro. Claro que no es usted quien lee el libro en cuestión. En realidad usted hace doble clic en un dibujito en su pantalla y no ve lo que yo he escrito; usted «ejecuta» el programa, y en realidad, en su pantalla usted ve una pelicula.

Porque en realidad, lo que uno escribe como programador se parece mas a guiones de cine que a otra cosa. Hay personajes, accion, suspenso, drama, persecuciones y emociones, todas sucediendo entre usted y lo que ve en la pantalla.

Pantalla que le devuelve una version edulcorada de lo que sucede, en realidad, en el interior de su computadora. Y no me venga con las imagenes de «Tron» o «Matrix», porque en realidad, la cosa es mucho mas violenta, como una mezcla de «Full Metal Jacket» con «Dumb and Dumber» y «When Harry Meets Sally». Y una pizca de «Madagascar», sobre todo la parte con los pinguinos milicos. No le miento.

Es tan violenta que hasta nosotros mismos, los programadores, usamos lenguajes que no son los de la computadora. Porque la computadora necesita que le traduzcamos lo que le decimos; imaginese que el lenguaje de la maquina es tan intricado que solo algunos iniciados lo conocen. Por ahi los ha visto usted en algun documental sobre el tema; unos barbudos californianos convencidos de que el mundo empezó el 1ro de enero de 1970.

En la jerga, al proceso de traduccion le decimos «compilacion», porque es como juntar muchos exitos de Eddy Mitchell en un disco y no morir en el intento. Si no saben quien es Eddy Mitchell, no saben que suerte tienen. Basicamente, al compilar el programa escrito por nuestras manos llenas de sudor, cafe y caspa, se obtiene un «algo» dificil de definir, pero que aparentemente se asemeja a una serie de unos y ceros, y que la computadora comprende lo suficientemente bien como para fallar al primer error que encuentra, y asi mostrarnos una ventanita de «dialogo» (que palabra mas optimista, cuando lo unico que se le puede contestar es «ok», «cancel», «retry» o «abort»), que es la version computadorizada de mandarnos a freir churros, o, al menos, a preparar otra taza de cafe antes de empezar todo de vuelta.

Y al lenguaje propio de la maquina, le decimos «assembler» o «ensablador», porque son los ladrillos ultimos con los que se ensamblan estos juegos de Lego diabolicos en los que nos encontramos.

A los lenguajes que se «compilan», se les pone unos nombres muy originales, y la verdad es que hay centenas, miles de lenguajes distintos. Si usted piensa que aprender idiomas es tedioso, gran parte de nuestra vida y de nuestro trabajo de programador consiste en, justamente, aprender nuevos idiomas todo el tiempo.

Pero ojo, que no es solamente el idioma, sino sus dialectos locales, con sus «patois» y sus expresiones tipicas de cada region.

Igual, no nos quejemos tanto, ya que no son idiomas tan complejos como los humanos: en regla general un lenguaje de programacion no cuenta mas de 40 o 50 palabras, y tienen, en regla general, estructuras gramaticales que se asemejan muchisimo entre si; aprender un nuevo lenguaje de programacion despues de que se aprendio el primero toma, en promedio, un par de semanas, y obviamente, la practica ayuda a reducir esos tiempos.

Los lenguajes de programacion se especializan: los hay para todos los gustos y colores. Algunos son buenos para calculo estadistico, otros son mejores para dibujar. Algunos son ideales para mandar cohetes al espacio, otros sirven para conectarse a Facebook o Twitter.

Y hay una gran mayoria que pueden, con mayor o menor dificultad, ser usados para cualquier cosa.

Por ejemplo, hay un lenguaje que se llama COBOL; el nombre es una sigla que significa literalmente «lenguaje comun orientado a negocios». Tiene varias particularidades que lo hacen indicado para trabajar en un ambitos bancarios: es verborragico a muerte y SE ESCRIBE TODO EN MAYUSCULAS. Por ejemplo, en COBOL se le dice a la compu

ATENCION ACA ARRANCA PROGRAMA
CARGAME EL CODIGO EN MEMORIA PARA ESCRIBIR TEXTO
ABRI CONEXION CON LA BASE DE DATOS
VOY A ESCRIBIR ALGO ATENTI CATALINA
ESCRIBI EN LA PANTALLA «QUE HACELGA»
AHORA EL PROGRAMA ESTA POR TERMINAR
AVISEN A ADMINISTRACION QUE YA NOS VAMOS
UN SALUDO A MI VIEJA QUE ME ESTA MIRANDO.

Otros lenguajes son menos vistosos. Por ejemplo, en Assembler el mismo programa es mucho mas dificil de escribir, y basicamente consiste en decirle al chip Pentium que tenes en la compu que haga lo mismo, pero mas complicado:

prep memori
guard «que hacelga»
ponr texto, memoria
prep pantalla
escr variable
tfuiste

Los lenguajes de programacion llevan puesta la neurosis de su creador. Cuanto mas esquizofrenico el inventor, mas estravagante el lenguaje. Y la esquizofrenia es moneda corriente en nuestra industria. Creanme, estar muchas horas delante de una computadora no es inocuo.

Por ejemplo, uno de los casos emblematicos de lenguaje esquizofrenico es uno llamado «Python», que fue creado por un holandes que era fanatico de los Monty Python. La consigna de base del lenguaje es que «existe una sola manera de hacer las cosas correctamente» (no es broma), la cual, obviamente, parte del punto de vista miope e irracional de su autor. No voy a dar un ejemplo de este lenguaje porque es tan aberrante como popular. Pareciera que a muchos programadores les encanta dejar de pensar; la verdad es que, conociendo a muchos fanaticos de Python, no me extrana.

Obviamente, al decir esto me expongo a insultos, amenazas de muerte, reuniones del Ku Klux Klan delante de mi casa, o peor aun, autos con megafonos tocando temas de Pimpinela presentados por Mateyko por doquier.

Porque de la misma manera que los lenguajes de programacion llevan en si el germen de la psicosis de su creador, tambien aglutinan a su alrededor a verdaderas «tribus», cuyos enfrentamientos hacen que un River-Boca se asemeje a una discusion de jubilados en una cancha de bochas en algun pueblo del Tirol.

Les gens pensent que je suis tessinois – Part I

C’est sérieux, c’est toujours pareil. Apparemment j’ai un accent étrange, relativement difficile à placer, paraît-il. Alors les gens me demandent, “alors, vous venez du Tessin?”

Ben oui, vous voyez mon nom de famille? Je fais partie des fameux tessinois polonais, les “Luganiski”. On mange des pierogis farcis au risotto, c’est mortel.

Evidemment la question qui suit c’est “et vous venez d’où déjà?”, parce qu’il est vachement important de savoir d’où on vient. On parle différemment aux gens suivant leur origine. Non, mais c’est vrai. Moi par exemple lorsque je me retrouve devant des argentins je leur parle en espagnol, voyez vous. Si je leur parlait en français ils me regarderaient avec un oeil éberlué qui varierait de l’émerveillement a l’incompréhension la plus absolue.

A moins qu’ils ne parlent français, ce qui arrive plus souvent qu’on ne le pense, mais généralement on ne l’apprends qu’après les avoir envoyé paître en français, ce qui n’apprécieront pas forcément.

Ah parce que je vous ai pas dit, en fait je viens d’Argentine, oui. Vous savez, là-bas le français c’est génial pour draguer. Ah, non, mais c’est énorme. Je ne sais pas pourquoi, mais cela explique pourquoi on dit que Buenos Aires c’est le “Paris de l’Amérique Latine”; en fait on a aussi un périf, des présidents corrompus, une équipe de foot qui a su gagner des titres il y a très longtemps, et une équipe de rugby qui promet d’aller très loin un jour.

Parce que comme je disais, je viens de l’Argentine. Un jour de 1987 je me rappelle que j’ai reçu une lettre de l’ambassade Suisse, et il y avait à l’intérieur un document qui disait en allemand, français et italien que j’étais suisse. Evidemment je ne l’ai pas su tout de suite, car je ne parlais ni allemand, ni français, ni italien; je suis donc allé au bar le plus proche pour appeler ma mère au travail – oui, on n’avait pas le téléphone. En fait, il y avait 5 ou 6 téléphones dans un rayon de 1000 mètres autour de la maison. Il devait y en avoir plus, mais les voisins qui en avaient un le gardaient en secret, parce qu’ils voulaient pas le prêter, ben oui vous vous imaginez bien qu’aider les gens qui ont besoin d’une ambulance ou d’appeler la police ou les pompiers, ce n’est pas pratique, surtout lorsque cela arrive souvent.

Du coup j’ai fait les 500 mètres qui me séparaient du téléphone disponible le plus proche. C’était dans un bar, un vieux bar avec une grosse montre Longines accrochée au mur (quand je dit grosse, je veux dire du genre un mètre de diamètre) avec l’effigie de Carlos Gardel à côté. Ce bar se situait a l’intersection de Arenales et Azcuénaga, dans le quartier de Vicente Lopez. Evidemment cela ne vous dit rien, mais s’était aussi le terminus de la ligne 133, a l’époque ou elle s’arrêtait dans le bas Vicente Lopez, ce qui, comme vous vous en doutez certainement, ce n’est plus le cas, et en plus, cela n’a pas le moindre rapport avec ce que je vous raconte.

Donc je me suis rendu a ce bar, le vieil Espagnol qui le tenait me connaissait déjà. Dans le salon on entends un tango. On est bien en Argentine. Je le salue, je lui demande si on peut utiliser le téléphone, il me répond par l’affirmative. Je me dirige vers le téléphone en question, je décroche.

Pas de tonalité. Je le fais savoir a l’espagnol, qui me dit que depuis hier il n’y a pas de tonalité. Je me demande pourquoi il ne m’a pas dit cela avant de décrocher.

Miracle, quelques secondes plus tard, alors que j’étais a point de raccrocher, la tonalité se fait entendre. Je lui dit qu’il y a tout à coup la tonalité. Il me dit que oui, qu’après quelques minutes la tonalité apparaît toute seule. Je me demande pourquoi il ne me l’a pas dit avant.

Bref, j’appelle ma mère (il faut se dépêcher, il pourrait y avoir d’autres surprises imprévues et pas encore révélées par l’espagnol). Je raconte a ma mère a propos de la lettre. Elle me demande si j’ai mangé à midi. Je lui dit que oui et qu’il y a une lettre de l’ambassade. J’entends qu’elle parle a une collègue de travail. Elle me demande si ça a été ce matin au collège. Je lui dit que oui et je pense, en secret, que tout cela m’agace un peu. Cela fait 5 minutes que j’essaie de savoir ce que cette foutue lettre de l’ambassade veut dire et ni l’espagnol ni ma mère semblent s’en soucier. Bref.

Ma mère réagit ensuite a l’histoire de la lettre de l’ambassade, et me demande tout naturellement “ah oui! Et qu’est-ce que dit la lettre?”. Ma réponse est simple: “Je ne sais pas, c’est en allemand, français et italien”. Il faut dire que bien que je prenais des cours de français après le collège, mon niveau n’était pas à la hauteur d’une lettre officielle de l’ambassade, loin de là. Tout juste si je pouvais demander un café au lait avec des croissants au monsieur Dupont à Paris. Et Paris ce n’est pas en Suisse, alors c’est mal parti, parce qu’ici c’est plutôt un renversé, ou même un schale mit gipfeli bitte, alors tu vois de quoi ça m’a servi d’apprendre le français au collège a Buenos Aires.

Comme ma mère était très contente d’avoir reçu la lettre, je la lui lit; comprenons-nous bien; je la lui lit en espagnol; je lis du français comme si s’était du castillan. Je vous laisse le soin d’imaginer le résultat d’une telle opération.

Je pense que ma mère a eu pitié de moi et n’a pas trop rigolé. Mais elle avait compris le fond de la question: j’avais reçu la nationalité suisse.

(à suivre)

Plan for a Brighter Smile

Every so often I decide to make what could visually be described as “cutting the fat” in my life.

Taking out elements that make me heavy, that do not provide any enjoyment, that drag me down, that I probably used to enjoy in a past life, but that do not bring any pleasure anymore.

Developing apps for third parties was one of them, definitely, and this is what motivated my decision of stopping that part of my business, giving me the energy and CPU time to concentrate in the parts that I’m enjoying the most: consulting and training.

I’m not going to jump into a rant like those I’ve wrote in the past, because I think I’ve been fortunate enough to participate, albeit in a small, probably inconsequential way, to the 3rd or 4th biggest industrial revolutions known to mankind. First the web, now the mobile; I’m happy to have been at the right time, at the right place. I met incredible people, many of which have changed my life forever in subtle, uncanny, and sometimes even earth-shattering ways.

However, there are factors in the services business that are, simply put, unbearable. Getting to sign NDAs to discover later how bad some ideas are; having to explain once and again that the sale price of an app has absolutely no connection whatsoever with the development cost; dealing with non-technical middlemen who will weigh their political influence to get their mindless input into the final product; und so weiter.

I am tired of all that.

What now? Well, the future. The bright and beautiful future. I am going to expand my teaching operations; simply because that’s the thing I enjoy the most. I enjoy being able to transmit to others what I’ve learnt. And, of course, writing more books is part of the deal. I simply need to write, I need to feel my fingers on the keyboard, sewing stitches of knowledge, all while sipping a maté or listening to some good old progressive rock. I’m also going to work on my own apps, of course.

Maybe at some time I’ll dive into other kinds of writing, like fiction or comedy (I’ve been wanting to write a one-man show for a while), write books in other languages too, start a podcast, star in a movie, play the piano again. Who knows. I’ve got a right side of my brain that’s mostly underexplored, and it’s screaming to get out.

I’ll be around, of course; it’s just that, well, from now on I’ll have a brighter smile on my face.

Cuando vengas

Cuando vengas, te llevare a pasear, a ver la vida con otro color. Cuando quieras, sere tu ultima rendicion, la tremenda realizacion de una vida sin frenos.

Cuando vengas, no te llamare amor, sere sin embargo un corazon perdido que acaba de encontrar una ruta, un embargo del perdon y una perdida de direccion.

Cuando vengas, no estare solo, sino acompañado de la tremenda miseria de mi tristeza, que es parte fundamental de mi ser perdido y encontrado.

Cuando vengas, y solo cuando vengas, vere que mi ser no es mas sin el tuyo.

Cuando vengas, yo vendre tambien, que tanto.

Anticuario de la Web

Ya soy un programador viejo. Muchas veces me encuentro delante de otros programadores y les cuento, que cuando empecé creando páginas web en el ’96…

… en aquellos tiempos usábamos HoTMetaL Pro o el editor de Netscape 3…

… que teníamos que hacer las páginas compatibles con el <LAYER> de Netscape y el <DIV> del Internet Explorer…

… que el CSS era una curiosidad del Internet Explorer, y que la norma era usar el atributo FONT y otras atrocidades similares…

… que la mayor parte del código HTML que escribíamos era en mayúscula, y que los parámetros de los atributos muchas veces venían sin comillas…

… que JavaScript era totalmente incomprendido en aquellos tiempos, lejos estábamos de tener algo como jQuery, y que lo mas parecido a un JavaScript cross-browser era lo que salía de las entrañas de Dreamweaver…

… que escribir componentes ActiveX o applets en Java era más común (y hasta fácil) que crear movies en Flash…

… que Opera era un pedo en el océano…

… que Apple estaba a punto de quebrar…

… que era común que un formulario utilice el atributo METHOD=GET

… que el UTF-8 era un mito…

… y me miran con ojos de huevo frito, atónitos, incrédulos y mirando para otro lado.

Astucia Ferroviaria

Conozco los trenes suizos bastante bien como para tener toda una serie de trucos que me permiten viajar mas cómodo, mas rápido, mas tranquilo.

Algunos son simples y pelotudos, como por ejemplo evitar los trenes de hora pico. Bueno, hasta ahí, nada nuevo.

Pero acá va algo que seguramente no saben; todos los trenes de Suiza (y cuando digo todos son todos) tienen los vagones de primera clase mirando hacia Zurich. Todos.

Me explico; los trenes suizos son unos convoys de la hostia. Imaginense bestias de 14 vagones de 30 metros de largo cada uno, si, 400 metros de trenes con dos pisos que van a 160 km/h entre Ginebra, Berna y Zurich. Las estaciones en las cuales se detienen estas moles son consecuentes. Particularmente las de Berna y Zurich, que son las mas importantes del trayecto.

Estos trenes tienen vagones de primera y segunda clase, que solo difieren por la cantidad de espacio para las piernas. Pero los vagones de primera clase, invariablemente, están del lado del tren que mira para Zurich.

Por que es esto así? Bueno, resulta que la estación de Zurich es la única en cul de sac, es decir, es la única en la cual los trenes no siguen de largo, sino que tienen que salir marcha atrás, por el mismo camino que llegaron. De esa manera, los pasajeros que estan en primera siempre caminan lo menos posible para llegar o salir del tren.

Ventajas de la clase.

Todas las estaciones de suiza estan preparadas para este hecho, y por ejemplo, las paradas de taxis, los mejores restaurantes y los pasillos mas cómodos, están colocados justamente del lado donde frenan los vagones de primera clase.

Mi Abuela Herta

Mi abuela materna se llamaba Herta Schlerff.

Murió cuando yo tenía 11 años. Encadenó una serie de problemas de salud crónicos, entre un par de paros cardíacos y una fractura de cadera, pero murió tranquilamente, en su sueño, una mañana de abril de 1985, en la Clínica Olivos, ahí en Arenales y Maipú.

La velamos en la casa de sepelios que estaba en la avenida Maipú, enfrente de la quinta presidencial. Luego cremamos sus restos y los esparcimos en el Río de la Plata.

Pero no sirve de nada que les cuente tantos detalles sobre su muerte, sin antes contarles más sobre ella y su vida.

La abuela Herta (como siempre la llamé, un poco para distinguirla de mi otra abuela, Janina) nació el 31 de diciembre de 1903 en Filipópolis, una ciudad de Bulgaria que luego de varias guerras mundiales pasó a llamarse Plovdiv. O fue al revés, no me acuerdo. La cosa es que la familia Schlerff, alemanes de culto protestante, eran floristas. En aquella época, aparentemente, eran los floristas más importantes de Europa Oriental: incluso fueron los proveedores oficiales, a fines del siglo XIX, del sultán de Turquía, lo cual supongo yo, en tiempos del Imperio Otomano, no era moco de pavo.

La abuela Herta tenía cinco hermanas, todas con nombres más raros unas que otras: Mitzi, Reemda, y otros nombres que me he olvidado en este momento. De las seis hermanas, tres se casaron y tres quedaron solteras, ocupándose de su madre, una tal Ana Havel, una señora de carácter que marcaba el paso de toda la familia.

Por razones que no me quedaron claras, la abuela Herta hizo la escuela primaria en Alejandría, en Egipto. Aparentemente uno de sus compañeritos de escuela era un tal Rudolf Hess, y cotejando edades llegué a la conclusión de que es el mismo Rudolf Hess del que hablan, lamentablemente y con razón, los libros de historia.

La historia pega otro per saltum, y hacia fines de la primera guerra mundial Herta estaba estudiando matemáticas en la Universidad de Ginebra, en Suiza. Mi abuela se llevó a la tumba las razones de tales cambios geográficos.

La abuela no me contaba mucho de su vida pasada. Tampoco le contó mucho a mi vieja, Evelyne, que en definitiva sabía bastante poco de su madre. Herta era una mujer inteligente, taciturna, muy culta. Leía constantemente, me explicaba los problemas de matemática que yo no entendía, y trató infructuosamente de enseñarme a jugar al ajedrez. Y yo, tan pelotudo fui, que nunca le presté atención.

La abuela egresó de la Universidad de Ginebra con honores: tuvo el honor de ser la primer mujer que se haya graduado en matemáticas en dicha institución. Su diploma, firmado por un tal William Rappard, estaba entre las cosas que descubrí en el departamento de mamá despues de su fallecimiento.

Después de graduarse, alrededor de 1921, Herta consiguió un trabajo en la recientemente creada Sociedad de las Naciones, en Ginebra; le tocó dar un examen de entrada, para el que aparentemente habia 5000 postulantes, y entraron mi abuela y dos personas más.

La abuela Herta era un cerebro.

Hablando de su estadía en Ginebra, una vez mi mamá encontró una de esas «agendas perpetuas» en las que mi abuela anotaba cumpleaños, direcciones y efemérides varias. En una de las páginas de aquella agenda, una inscripción misteriosa figuraba: «Place des Eaux-Vives, 19h, Tapio Voionmaa». Así nomás, sin el año ni nada. Mi vieja me contó que, al preguntarle sobre el tal Tapio, mi abuela estalló de ira (algo inusual en ella), le arrancó la agenda, y, le prohibió hablar de Tapio. La cosa quedó ahí; mi abuela se llevó el secreto al morir, pero mi mamá pensaba que habían sido novios, o quizás amantes. El tal Tapio fue, años más tarde, ministro y embajador de Finlandia.

Como verán, la historia de mi abuela está llena de hiatos y agujeros; sabrán disculpar la desprolijidad.

A fines de los años 20, antes del gran crash, mi abuela se casó (quizás á contre-cœur) con un tal Roland George, ingeniero mecánico de origen ginebrino.

La familia George había llegado a Ginebra desde Francia, durante las persecuciones contra los protestantes de las que se habla en los libros de historia. Ahí se instalaron, hicieron fortuna, y después la perdieron. Los descendientes de los George, entre los que se contaba a Roland, aparentemente lloraban día y noche por los tiempos pretéritos en que su familia poseía gran parte de lo que hoy se llama el Grand-Saconnex, barrio a 10 minutos del centro de Ginebra.

Hasta yo, de nene, escuché las historias de las riquezas que tenían los George. Cosas raras de la historia, mi primer departamento de soltero lo alquilé en el Grand-Saconnex, precisamente. Y mi vieja falleció en el barrio de al lado, el Petit-Saconnex, a 100 metros de las tumbas de su abuela y su tía, es decir, la mama y dos de las hermanas de la abuela Herta.

Los círculos se cierran de maneras misteriosas, a veces.

Escribo estas líneas mientras mi tren se detiene en la estación de Ginebra. Pareciese como si mi ADN tuviese un GPS integrado.

La abuela Herta se casó, entonces, con Roland hacia fines de la década del 20. Este Roland (que es el único de mis 4 abuelos al que nunca conocí personalmente) trabajaba para una empresa petrolera, llamada «Astra». Esta empresa lo mandó a México, a principios de los años 30, para ocuparse de unos yacimientos. Fue allí que nació el primer hijo de Herta y Roland, mi tío Charles, allá por el año 32. 4 años después nació el segundo hijo, Henri, que se escribe con «i» y no con «y», ya que es un nombre en francés. Ambos, pues, nacieron en México, creo yo en el DF, pero no estoy seguro.

Nunca conocí al tío Charles, ya que falleció en un accidente de auto en la ruta 2, en Argentina, en el año 62. Al tío Henri si lo conozco, pero no tengo mucho para decir.

A fines de los años 30, la empresa de mi abuelo lo mandó lo más lejos posible de Suiza (nunca supe si fue por causa de la guerra, o porque como todos me han contado, el tipo tenia un carácter insoportable). Fue así como la familia de mis abuelos terminó mudándose a Comodoro Rivadavia, en la provincia de Santa Cruz, en Argentina.

El culo del mundo, como decía mi abuela. No usaba seguido esa expresión; solamente al hablar de la Patagonia. Me contó que el viento la volvía loca. Al final, después de mucho insistir para irse de ahí, mis abuelos se radicaron en Buenos Aires. Corría el año 41 o 42.

Obviamente, para ese entonces, volver a Europa era impensable. Así que decidieron quedarse en Buenos Aires. Y en el 44 mi abuela se quedó embarazada por última vez, esta vez de mi madre, Evelyne. En aquella época la familia George-Schlerff vivía una vida anónima y apacible, en una casa de la calle Cuba en Belgrano, entre Quesada e Iberá, a pocas cuadras de la avenida Congreso.

De Filipópolis a Belgrano.

Mi abuelo Roland tenía una pequeña fábrica de repuestos para máquinas hidráulicas hacia fines de los 40, empresa que alimentaba la familia. Después, la empresa alimentaba también a los punteros peronistas del barrio, a los cuales se les pasaba un dinero para que los planes sociales de Eva Perón puedan prosperar, y para que no le cierren la fábrica o lo metan en cana.

Mi abuela nunca tuvo una inclinación política clara, salvo el hecho de ser una antiperonista acérrima. Me acuerdo lo alegre que estuvo cuando ganó Alfonsín en el 83, pero mi vieja me contó que también se alegró cuando fue el golpe del 76. La cosa era no estar a favor de Perón o de los peronistas.

La escena siguiente de la vida de mi abuela no es tan colorida o viajera. Por lo que pude entender y cotejar, mi abuela no había querido llevar a término el embarazo de mi madre; eso se tradujo en una cierta apatía, que mi madre sufrió hasta el día de su muerte. Un abandono por parte de sus padres.

En realidad, no, peor que eso. Mi abuelo, en algún momento de la infancia de mi madre, abusó de su única hija. Mi madre descubrió ese recuerdo, totalmente hundido en su subconsciente, mediante terapia hipnótica.

Nunca supimos si mi abuela supo de ello o no, el tema es que en el año 62 se mata en la ruta 2 el hermano mayor de mamá, Charles. Este acontecimiento es una bisagra, un punto de inflexión que modificó para siempre la dinámica de la familia. Charles era el hermano amado de mi madre, el que la protegía, el que, quizás, supo la verdad del abuso.

Mi madre, sin embargo, supo de la muerte de su hermano a través de un periódico. Leyendo, por casualidad, la sección de avisos fúnebres. Porque, por alguna razón ignota, mi abuela no le quiso avisar la noticia a mamá, que se enteró de todas maneras, de esta manera, horrible si las hay.

La locura humana no tiene raíces inexplicables. A veces son incomprensibles, pero no son nunca inexplicables. Mi vieja vaciló en el precipicio de la locura más absoluta en ese preciso instante. Toda la vida de mi madre, toda su relación con la abuela Herta, y también su relación conmigo, fue definida en ese preciso instante.

Mi abuela se separa de Roland a principios de los 60, y con mamá se van a vivir a una casa sobre la calle Haedo, en el barrio de Vicente López, a unas cuadras del cruce con la avenida Maipú, del lado de Florida. Mi abuela laburaba de traductora para una empresa mecánica de origen alemán, que tenía sus oficinas en Munro. Mi vieja laburaba de vendedora, y trataban de llegar a fin de mes, muchas veces comiendo la misma polenta que le preparaban a la perra.

Hablando de idiomas, para esa época mi abuela Herta le enseñaba francés a una amiga entrañable de mi mamá, Eleonora, que tenía que preparar los exámenes de la Alianza Francesa. Años más tarde, antes de venir a vivir a Suiza, allá por el 89, Eleonora me enseñó el francés a mí. Y tal vez, en estos momentos, una de las hijas de Eleonora esté leyendo este texto, y así va la vida.

Finalmente, hacia fines de los 60, mi abuela Herta y mi mamá lograron ahorrar algo y se compraron un departamento con vista al río, en la zona del bajo Vicente López; sobre Avenida Libertador, entre San Martín y Arenales. El arquitecto que estaba a cargo de las obras era un pibe pintón de ojos verdes de unos 27 años llamado Alberto Kosmaczewski. Al poco tiempo, mi mamá y él empezaron a salir juntos, y se casaron en el 71.

Exactamente para esa época, mi abuela tuvo su primer infarto. Fue un domingo a la tarde, después del almuerzo; mi mamá y ella estaban viendo «Los Campanelli» en la televisión, y mi abuela le dijo a mi vieja «me siento mal», y entró en coma.

Tuvo tres paros cardio-respiratorios en pocas horas, y estuvo en coma 21 días. Milagrosamente se salvó, y tan buena fue su recuperación que se fue a Europa a visitar a sus hermanas y familia.

Cabe indicar que para esa época la situación financiera de la familia se había mejorado mucho. Mi abuela empezó a cobrar la jubilación suiza, que dado el tipo de cambio de aquella época, representaba un ingreso comparable al del un senador, un narcotraficante y un gerente de multinacional, todos juntos y multiplicado por 2.

En setiembre del 73 nací yo. La abuela me adoraba; me traía regalos de Europa y así crecí, con ella y mi mamá. Tal vez mi llegada haya servido para que la relación entre ambas se endulce; en todo caso, no tengo recuerdos de peleas jodidas entre ellas. Si, una cierta tensión, palpable, pero ni gritos ni platos rotos.

Pensándolo bien, tal vez les hubiese venido bien romper algunos platos. No sé.

En 1981 le diagnosticaron la enfermedad de Parkinson a mi abuela Herta. A partir de ahí, su estado de salud empezó a desmoronarse inexorablemente. Temblaba mucho, babeaba continuamente. En el 83 la operaron del nervio trigémino, y eso le curó el Parkinson, y fuimos a festejar sus 80 años a la costa atlántica. Pero tanto tratamiento la dejó muy débil.

Festejamos su último cumpleaños una noche de diciembre del 84. Tenía 81 años. Hacía un calor de locos, me acuerdo, y ella sufría mucho el calor.

A principios de abril del 85 se le fracturó la cadera y se cayó; lo que no supieron los médicos fue si se le fracturó la cadera por caer, o si se cayó por que se le fracturó la cadera; ellos nos decían que ambas situaciones eran posibles, aunque en realidad, el dato es de una inutilidad espantosa. La operaron y le pusieron una prótesis, y 10 días después falleció.

La última vez que la vi fue un viernes, después de la escuela. Yo iba a la numero ocho, que está enfrente de la clínica. Me acuerdo que cuando nos íbamos de su habitación justo llegaban unos médicos para revisarla, y ella me miraba fijo mientras se cerraba la puerta, y yo caminaba, de la mano de mi vieja, mirando para atrás y siguiendo su mirada.

Esa mirada, su mirada se quedó para siempre en mi memoria.

Size matters

One of the facts I vividly remember of studying physics in university (this was in the mid 90′s in Geneva, Switzerland) was a certain disconnection between Relativity and Quantum Mechanics. The former is a theory used to describe phenomena at macro level, like galaxies, planets, stellar systems, while the latter describes the interactions at micro level, the atoms, light, particles, energy at microscopic levels.

When you apply some relativity equations to atoms, you get results that are not supported by experimentation; and the same happens when you apply some quantum theory equations to objects like planets. It is not that all the relativistic facts do not apply at micro level, or that all quantum facts do not apply in macro level; it is that there is no unifying theory that explains everything, and this quest is the graal of modern physics.

Fast-forward 5 years.

One of the facts I vividly remember of studying Economics in university (this time in Buenos Aires) was a certain disconnection between Microeconomy and Macroeconomy. The models that describe the behavior of the consumer (which is the heart of the study of Microeconomy) yield wrong conclusions when applied to issues like unemployment, foreign trade or other matters that are usually better explained by Macroeconomy; and similarly, well, you get the picture.

As a matter of fact, my Macroeconomics teacher would say that whatever we learnt in Microeconomics class was wrong, and that he had the right answers; of course, the Micro teacher told us the same the year before.

Fast-forward 5 years.

One of the facts that I vividly remember of studying Computer Science during my master degree program was a certain disconnection between small and big software projects. What works in small, simple applications and systems, including human and technical factors, does not usually work in bigger, more complex projects.

It is not the same to work on a startup project with some friends in a garage to create the next social networking site, where coordination is easy, most of the tools required are available for free, where the projects rarely have any dedicated quality assurance team, than working in, say, a bigger organization like Microsoft, together with other 1500 engineers and testers, all dedicated full time to writing and testing the next version of Windows.

The hardware requirements are not the same, either; in small projects you could use a couple of Mac Minis and a cloud hosting service and you are done; at Google they have MapReduce and a couple hundred thousand computers in a datacenter with air conditioning and security 24/7, and they still require more infrastructure every day.

However, and this is my main point, there is no proven recipe that can help a company grow from 10 to 10’000 people and from 10 to 10 million customers in a snap; there are some good techniques and principles, here and there, to make your software grow; but nobody actually knows of a generic recipe for every software company.

There are so many factors in macro problems, that the interaction of those factors has to be taken into account; not only the factors themselves, but also their interdependencies. I guess you see where I am going with this. This problem is usually called scaling in computer circles, and I think that the word can be applied to economy and physics.

As humans, we have trouble scaling. Scale is important in our eyes, because we tend to think that bigger is better. Bigger is more money, in general, but not necessarily better; we have trouble going from small to big and vice versa. Not only in facts; also in concepts. We cannot foresee the implications of scaling. At least, not completely, and not so far.

This disconnection creates lots of problems in our society. Politicians forget the human being altogether, buried beneath tons of numbers and statistics. Voters do not understand that managing a country is not like managing your household economy. Schools do not teach how to solve scalability problems; heck, they do not even properly teach kids how to work in teams to solve small, micro problems.

Small companies do not understand that scaling is neither automatic nor a required process, and that not all companies should grow; some companies work better when small than when they grow up, and that’s why they sometimes fail. Venture capitalists that are not familiar with technology cannot understand this fact, and will sometimes sacrifice good working teams for just making more money or for getting into the stock market.

The knowledge we have about the problem of scaling is limited; I actually sometimes ask myself whether there is a solution to it, that would justify the search of a global theory in physics, a unified theory in economics, or a generic scaling procedure for companies and software systems.

I do not have the answer; the fact is that size matters, and that this pattern has to do with the world we are living in; it does not matter whether you are a physicist, an economist or a programmer; this is how the world works.

Best Books of 2011

Just like in 2010, 2009, 2008 and 2007, here goes the traditional book of the year post for 2011! This year my reading list included design, history, and lots of JavaScript.

Here goes the list, in a completely arbitrary order of personal preference:

“Design for Hackers” by David Kadavy

It all started, around August, with a conversation with Paul, my cousin from London, the founder of Zerofee; we were talking that while designers could easily find tutorials and documentation to learn about software development, it was much harder for developers to find material about design, at least to learn the basic concepts.

Somehow, David Kadavy must have heard us, and he came up the following month with this great book. I have recommended it to every one of my students since I read it; it is built like a computer book, with clear explanations, diagrams and lots of pictures; every concept is described in detail, including historical references and examples.

David provides a healthy introduction to design, going through subjects such as fonts, proportions, color theory, structure, grids, and much, much more.

I insist; this is a must read for any developer, particularly those who, like me, are self-taught and eager to expand their own possibilities.

“Steve Jobs”, by Walter Isaacson

The day Steve Jobs passed away I was in South Africa, giving some trainings in Johannesburg, precisely about iOS. I remember waking up, opening my copy of Echofon in my iPhone, and seeing lots of tweets with just an apple sign on them.

I said to myself, as I started to scroll downwards, that this was it. I sat on the edge of the bed, realizing that it was the end of a huge chapter for the computer industry.

That very same morning, I gave an introduction to iOS to some developers, and of course there was a special thing to that training. Somehow there was a legacy of the guy in every NSObject that we allocated in memory.

Later that same month, I went to the USA and landed in Newark. While waiting for my connecting flight, I was dragging my feet in the terminal, and the corner of my eye saw the book in the shelves of a bookstore.

I read it in about 5 days. There had not been a book that hook me as much as this one in ages.

I will not go as far as saying that this was the book of the year. I won’t add anything to what is already available online about it. It was, without any doubt, the most hyped book of the decade. And it is a surprisingly good one; not biased, very acid in some parts – I guess Jobs would not have liked reading some sections of it. I picture him throwing the book out of the window, outraged, while weeping at some chapters.

I admit, I’ve shed some tears in some parts. All in all, a very emotional piece, not to be missed.

“JavaScript Patterns”, by Stoyan Stefanov

2011 was the year of the mobile web. Not only because some analyst said so, but because the demand for mobile web solutions from companies has increased dramatically in one year. Also because the capabilities of smartphones have grown in such a way that today, web apps are a viable choice for consumers.

This means, by all standards, that JavaScript regains a preeminence on the web; longtime a language that was bashed and forgotten, JavaScript reappears in front of many developers as the instrument by which the mobile web becomes a reality.

This book is a perfect way to rediscover JavaScript; to forget the pain of the past, to see that it is a wonderful language that, as Crockford would say, was hugely misunderstood.

By the way, readers should have read Crockford’s “JavaScript: the Good Parts” before this book; Stefanov builds on top of that knowledge and provides the developer with a fresh bouquet of idioms and constructions that will be useful in every JavaScript project.

Finally, given the rise of Node.js in the past few years, reading it provides also with a solid background for the next wave of JavaScript frameworks hitting the market these days.

“Programming the Mobile Web”, by Maximiliano Firtman

Maximiliano is a genius. The guy has pulled the complete bible, the absolute reference, for everything that has to do with mobile web development. The book is a treasure of capabilities, comparisons, history, and nitty-gritty details about every possible mobile web browser in the planet.

How he does it, it’s his great mystery. After publishing this book, he came up with the great Mobile HTML5 site which, if you haven’t seen it yet, you should.

Even better, he’s argie like I am, and I’ve had the opportunity of inviting him to Zürich last year, to hear him talk about jQuery Mobile. Which reminds me of…

“jQuery Mobile: Up and Running”, again by Maximiliano Firtman

… his latest book; this time, Maximiliano tackled the hottest mobile framework of the moment. I’ve read the book in “early release” mode, prior to the final publication, and so far it looks very promising.

In this book, Maximiliano explains the core concepts of jQuery Mobile, the semantics and the capabilities of the framework, clearly explaining its strengths as well as its weaknesses.

I have learnt a lot about jQuery Mobile through this book, so I strongly recommend it to anyone interested in the subject.

“Mobile Design for iPhone and iPad”, by Smashing Magazine

A very nice and concise eBook by the great people of Smashing Magazine, with great tips and tricks about how to create UIs for the new generation of touchscreen devices. I’ve learnt a lot with this book.

“iPad at Work”, by Apple

Finally, a nice free eBook by Apple, very useful for explaining the iPad and its multiple capabilities to business people; I am personally seeing more and more iPads in enterprise contexts, so I think that this is an important (and small) title to read.

MoMA and Software as an Art

What would be the place, in a museum like MoMA, of a collection of art dedicated to software?

If there is something that MoMA can make, is to boost your imagination. Anything is possible; the myriad of options for the expression of human creativity has no end, the mind boggles.

My dream has been, for years, to explain software, its intricacies, to make this part of our world accessible to anyone. Software rules our world, it is one of the most complex creations of man, yet it remains understood (albeit partly) by just a few.

There are many dimensions to software; the first to explore is size. When you tell anyone outside of the field that Windows 2000 took 5 years to a team of 1400 developers to complete, and that the whole thing is about 29 millions lines of code, it is still not enough; however, if you printed the whole code of Windows and put it in a series of books, how many books would it be?

On Kawara has created a piece called “One Million Years”, on display at MoMA; the whole thing is a series of books where the pages show, one after the other, as the name implies, one million years.

At 80 lines per page, at 1000 pages per volume, the source code of Windows 2000 would take… 363 volumes. Given that the Encyclopædia Universalis or the Encyclopædia Britannica consist of 20 or 30 volumes each, we are talking that a single company has been able to pull 12 encyclopædias out of the hat for a single version of a product. I’m not talking about quality or other characteristics; just size, raw and simple.

That’s the magnitude of software. Now we can begin to understand the magnitudes, the cost, the implications.

Another magnitudes worth exploring would be cost, number of people involved, number of errors… Infographies would explain in detail the interconnections and the different dimensions, their relations, their impact. But again, the whole thing remains so virtual, so out of reach, so different of anything else, that we just run out of analogies in no time.

What other dimensions could be used?