Sunday, July 19, 2009

Ombligología

O el arte de mirarse el ombligo. Si hay algún lector, sirva esto de advertencia.

Andrés me ha pasado un meme. Hasta este preciso momento, la única definición que venía a mi cerebro cuando alguien pronunciaba la palabra meme era la metáfora propuesta por Richard Dawkins para explicar el concepto de selección natural en un contexto no biológico. Otro ejemplo de selección natural no biológica ha sido el propuesto por el inconmensurable Stanislav Lem en su magnífica novela (permítaseme la redundancia: magnífica novela de Stanislav Lem es redundante) Invencible. No viene al caso, pero siempre está bueno recomendar a Lem.

Pero volvamos a los memes: Richard Dawkins se propone demostrar que el mecanismo de selección natural sobre unidades de replicación pequeñas que sufren variaciones aleatorias funciona perfectamente, y no solo en la biología. Para eso toma como unidad de selección las ideas o conceptos: los bautizó 'memes' y propuso un mecanismo de replicación de los memes mejor adaptados. Ojo, no se trata de los memes más benéficos, sino de los mejor preparados para su propia supervivencia: los memes (o ideas, o prejuicios, o conceptos que albergamos) pueden ser perjudiciales para nosotros, sus anfitriones... tal como la conducta cortoplacista que nos sale tan naturalmente nos pone en peligro.

El concepto de meme después lo tomaron Susan Blackmore, Daniel Dennett y otros más. Dawkins, después de algunas idas y vueltas, parece haber aceptado con gusto que su metáfora sea la base del desarrollo de una nueva teoría, de acuerdo a lo que dice en 'El Capellán del diablo'.

Yo creo que la metáfora de los memes es algo más que una buena metáfora. Digo, al fin y al cabo seguimos creyendo (la primera persona es retórica, por cierto) en un señor de barba muy poderoso que se preocupa por lo que hacemos y que está dispuesto a premiarnos y a castigarnos. Pero prometí alejarme de terrenos procelosos en este blog, y en el próximo post me dedicaré a otro mito, muchos menos nocivo que el mentado de pasada más arriba.

Ahora, al punto sobre el meme de Andrés: que puedo ser?. No se, diría. A mi edad, pasados los 30, no tengo derecho a conjeturar que puedo ser algo que no soy (no dije 'a lograr algo que no logré', dije 'a ser algo que no soy'). Y que soy?. Bueno, a veces soy demasiado negativo, tengo gran facilidad para ver las fallas en lo que miro. Tampoco soy de una única manera siempre, pero a veces soy irritable. Me irritan las frases hechas, me irritan los eslóganes y los pensamientos de peluquería (y me irritan porque se escapan de las peluquerías), soy sarcástico y a veces me vuelvo ofensivo. Y como este blog en anónimo, también puedo hablar bien de mí sin que sea pedantería: soy un buen integrante de casi cualquier equipo, soy hábil en lo que hago (y en casi nada más), puedo abstraer conceptos y tirar relaciones razonables entre conceptos aparentemente alejados, y soy un buen autor de metáforas. Claro que para buenas metáforas, están los libros de Stanislav Lem... ya lo recomendé antes?

Saturday, July 11, 2009

Yo no hago eso en público

"Math is like sex. It's something you shouldn't do in public."
--K. Cunningham (estuve toda la semana diciendo que era de Daniel Dennet. Y no se quien es Cunningham)

"Physics is to mathematics as sex is to masturbation"
--R. Feynmann (de esta estoy seguro)


La verdad es que de ambas frases, solo la primera viene a cuento. La segunda la agrego porque me gusta la comparación, y porque me gusta la matemática. Incluso, no veo en la frase ningún contenido peyorativo hacia la matemática: está claro que es la base de la física, y no podés ser un buen físico si no manejás razonablemente bien la matemática. Es decir, la comparación de la frase es perfecta.

Pasada esta pequeña introducción algo adolescente, puedo ir al punto: me encontré estas últimas semanas con un tipo de personaje, simpático si tenemos suerte, insoportable la mayoría de las veces: el matematicofílico. Este curioso personaje no puede dejar de vocear, casi diría de apostar, las complejidades de los algoritmos que ve por ahí. Es capaz de gritar, desde tres escritorios de distancia 'ese algoritmo tiene complejidad (n)* log(n)!!'. Por supuesto, nadie tiene ganas de ponerse a analizar sus afirmaciones.

Me queda claro que nadie determina en cinco segundos la complejidad de un algoritmo, al igual que nadie puede formalizar un problema combinatorio en cinco segundos. No importa, el matematicofílico es capaz de hacer ambas cosas: puede gritar 'eso es una combinatoria sin repetición de 4 en 8!', o puede proferir el grito de guerra del algoritmo que mencionaba antes, y salir de la discusión, contento de haber sido capaz de iluminarnos con su sabiduría, sabiendo que ahora tenemos una luz para guiarnos a hacer software más performante. Gracias totales.

He encontrado más de un tipo de matematicofílico: desde el chanta absoluto (el otro día, mi amigo P. me hacía acordar de A., uno que calificaría de chanta e indeseable) hasta este que inspiró el presente artículo, que cuando programa lo hace bien, que es un tipo que realmente sabe de informática y que ha cursado la mejor carrera de informática que se da por estas pampas.

De todas formas, existe un pequeño detalle: en este caso, el matematicofílico le pone un parche primoroso a algo que son solo harapos. Y pone la energía en el lugar equivocado. Me explico: el software que solemos hacer, sin ser CRUD crudo, se lleva la parte del león del procesamiento en la base de datos. Del tiempo total de las transacciones, un porcentaje abrumador se consume en la base de datos. Más aún, la base de datos (estamos hablando de MS SQL Server, pero lo mismo sería cierto si estuviéramos hablando de Oracle con su maravilloso RAC) es el componente con escalabilidad horizontal más complicada.

El matematicofílico entonces, decía, gasta su energía en optimizar una parte pequeña del problema, mientras descuida las cagadas que hacen los programadores
cuando acceden a los datos, él incluido, que es bueno cuando hablamos de generar código.

Ignoro por qué, pero el patrón de pensar la base de datos como una caja negra misteriosa que, no importa lo que hagamos, siempre responderá igual está extendidísimo. Y no hablo de los malos programadores, sino de los buenos. El origen de ese problema?. Ni idea.