Quote of the GET: Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter. Eric S. Raymond

Archive for geek

DebConf10

Este es un delayed post, dado que DebConf10 New York City terminó hace 3 días. Aunque más tarde de lo esperado, no quería dejar pasar la oportunidad de comentar lo bien que la pasé. Siempre es agradable encontrarse con amigos.
Si bien pude dedicar mucho tiempo al security team (generé 3 nuevos DSA aunque, de momento, se ha publicado uno solo), me quedaron muchísimas cosas pendientes por hacer. Además tengo muchas nuevas ideas que me gustaría concretar durante el próximo año.

Entre los pendientes está el de subir fotos, para variar. Así que stay tunned! Para los ansiosos, hay publicadas fotos de otros asistentes aquí. También están disponibles las versiones preliminares de las charlas, donde se me puede ver dado una Lightning Talk, acerca de un prototipo para documentar workflows que se me ocurrió hace unos meses (minuto 10:40 de este video).

Comments (1)

/home/duijvestijn

I have a new guest in my apartment. Give a warm welcome to the Adrianus Johannes Wilhelmus Duijvestijn‘s spirit.

Thanks a lot to Bartu and Rezlaj, who carried out the necessary seance that make this possible.

The complete photo set is here. If you do not have the slightest idea of what I’m talking about, take a look to Wikipedia or my previous post (Spanish only).

(esta entrada también está disponible en Español)

Comments (5)

/home/duijvestijn

Tengo un nuevo huésped en mi departamento. Denle una cálida bienvenida al espíritu de Adrianus Johannes Wilhelmus Duijvestijn.

Muchísimas gracias a Bartu y a Rezlaj, quienes llevaron a cabo la sesión de espiritismo necesaria para hacer esto posible.

Todas las fotos están disponibles aquí. Si no tienes la menor idea de a qué se refiere esto, échale un ojo a la Wikipedia (solo en inglés) o a mi entrada anterior.

(this post is available in English too)

Comments (4)

disección perfecta de polígonos for dummies

Por razones que explicaré en una próxima entrada de este mismo blog, últimamente he estado divagando alrededor del concepto de la disección perfecta de polígonos. Y es este divague el que me gustaría compartir con ustedes en este (demasiado) extenso post.

Empezando por el principio, ¿qué es un polígono? En términos wikipediables:

un polígono es una figura geométrica formada por segmentos consecutivos no alineados, llamados lados.

Nos gusta que los segmentos no estén alineados, porque así forman ángulos, que es parte de la definición etimológica. Por otro lado, el hecho de que los segmentos sean consecutivos, garantiza que la figura quede cerrada. En particular, nos vamos a centrar en polígonos que sean:

  • planos. Es decir, bidimensionales, de lo que se pueden dibujar en un papel.
  • simples. Es decir, que sus lados no se corten entre sí.
  • convexos. Es decir, si al atravesarlo con cualquier recta lo corta en no más de dos puntos.
  • con hasta un máximo de 4 lados. Es decir, triángulos y cuadriláteros

En definitiva, vamos a referirnos a figuras sencillas donde algunas regularidades nos sean agradables, como el hecho de que los lados sean del mismo tamaño o que tenga algunos ángulos iguales.

Una vez acotado el universo de polígonos vayamos a la siguiente parte del asunto: la disección. Esta idea es bastante intuitiva. El objetivo es tomar un polígono y subdividirlo en otros. A estos otros los vamos a llamar elementos, dado que forman y son parte del polígono grande inicial. La cantidad de elementos es el orden de la disección. Un factor interesante que vamos a agregar a esta definición informal es que los elementos solo pueden variar en su proporción u orientación, por ejemplo que sean todos cuadrados o todos triángulos rectángulos, pero no mezclados.

Vamos a por un ejemplo inicial sencillo. Si tomamos un cuadrado, podemos dividirlo en cuatro triángulos isósceles rectángulos del mismo tamaño, como en la figura de la derecha . Así tenemos un polígono interesante (el cuadrado) que puede ser dividido en cuatro polígonos interesantes (los triángulos rectángulos isósceles). Sin un gran esfuerzo de imaginación, también podríamos dividir un cuadrado en 4 cuadrados (pero es una imagen que evitaremos, que me hace acordar a una empresa monopolizadora).

Así obtenemos disecciones de polígonos, que a primera vista, no parecen ninguna genialidad. Sin embargo, algunas ideas interesantes empiezan a surgir. Por ejemplo, dado que tanto el contenedor como los elementos son interesantes, la noción recursiva aflora. Otros conceptos llamativos, como el de teselado regular, temas de empaquetamiento o el problema de Mrs. Perkins’s Quilt pueden desprenderse desde este punto.

Nosotros vamos a tomar otro camino al agregar el último ingrediente de esta receta: la disección perfecta, que pide que los elementos sean todos de distinto tamaño. Acá se pone más interesante y mucho menos obvio. Volvamos a nuestro ejemplo de dividir un cuadrado en triángulos rectángulos isósceles, pero esta vez hagamos una disección perfecta. A continuación, la propuesta de Arthur Stone:

El número es el largo del cateto de triángulo. Estamos entrando en un terreno donde ahora las cosas son difíciles de imaginar a primera vista. Uno podría empezar a preguntarse en cuántas formas distintas se pueden hacer estas disecciones, si es que hay mas de una. Y si hubiese, cómo se pueden construir. En un interesante y largo paper de 1999, Skinner II et. al. proponen una analogía con la primera ley de Kirchhoff (si, esa sobre los nodos de los circuitos eléctricos) para ayudar a la construcción de disecciones perfectas de cuadrados. Este método genera disecciones a triángulos rectángulos isósceles que cortan la diagonal principal de cuadrado que los contiene (lo que permite generar disecciones simples, explicadas más adelante). Como en el siguiente ejemplo extraído de la página 33 del paper:

La siguiente pregunta es si existen disecciones perfectas en otras formas interesantes. Por ejemplo, Brooks et. al. demostraron que no es posible dividir un triángulo equilátero en triángulos equiláteros de forma perfecta. En ese mismo trabajo de 1940 se señala que, a diferencia de la perfectibilidad, era posible hacer una disección de equiláteros en equiláteros que fuese simple.

Se dice que una disección es simple cuando ningún subconjunto de 2 o más elementos forma una figura de las informalmente definidas como interesante. Por ejemplo, en el caso de la distribución propuesta por Stone que ya mencionamos, el subconjunto de elementos pintado con verde forma un triángulo rectángulo isósceles:


Por lo que definimos esta disección como compuesta en contraposición a la simple que expone Skinner et. al.

Una disección puede ser simple y no perfecta, o viceversa. Así, y como venía diciendo, Brooks et. al. dicen que es posible dividir un triángulo equilátero en triángulos equiláteros de forma simple, aunque imperfecta. Dicha forma fue presentada por William Tutte, un famoso criptoanalista británico, y es así:


Y como en la vida misma, lo simple y lo perfecto perecen ser cualidades que cuesta ver en conjunto. Pero que, para belleza de la cosas, no es imposible de encontrar. Así es que me gustaría presentarles el cuadrado de menor orden que puede dividirse en cuadrados de forma simple y perfecta, descubierto por Adrianus Johannes Wilhelmus Duijvestijn la noche del 22 de Marzo de 1978:

Esta disección en 21 cuadrados desiguales que no forman subconjuntos de cuadrados es lo que se conoce como la disección de Duijvestijn, y se pueden comprar remeras con su estampa. Si bien Duijvestijn ya había descubierto disecciones perfectas simples del cuadrado de ordenes superiores, había probado, junto a Bouwkamp, que no era posible crear estas disecciones en órdenes menores a 20. De ahí el esfuerzo por encontrar la más pequeña de las posibilidades.

Espero no haberlos aburrido en demasía. Para mí fue muy entretenido y aprendí muchísimo sobre álgebra y geometría, así como formas de representación imaginativas de conceptos geométricos que permiten razonar de forma algorítmica. Si quieren aprender más sobre los temas tratados en esta entrada, pueden consultar la página Squaring.net que está totalmente dedicada a este tipo de puzzles e incluye biografía de las personalidades referentes del área, así como otros temas relacionados. Este post está fuertemente basado en esta web. El artículo de Wolfram MathWorld al respecto también es muy entretenido. Se puede chusmear la página de wikipedia sobre el problema de Squaring the square para una idea más breve de la representación de Smith.

Comments (7)

DebConf10 meme

I happy to announce that I bought the tickets, so…

To save on the price, the itinerary includes a couple of long waits:

  • AV88 EZE-BOG: 6h 30m
  • Waiting at BOG: 10h 50m
  • AV20 BOG-JFK: 5h 35m
  • AV21 JFK-BOG: 6h 00m
  • Waiting at BOG: 9h 10m
  • AV87 BOG-EZE: 6h 15m

Summarizing, almost half of the trip is waiting… :P

Comments (2)

log log binning

Una de las materias que hice el año pasado (estrictamente hablando, aún la estoy haciendo) fue Topología de Internet, con Nacho Alvarez-Hamelin. En ella estudié a Internet como sistema complejo, donde routers y/o ASs se interconectan y forman un grafo.

Una de las propiedades más características de los grafos es su distribución de grados. El grado es la cantidad de vértices que tiene un nodo. En el ejemplo de la izquierda, el nodo 4 tiene grado 3. La distribución de grados es una característica del grafo en su conjunto y no es otra cosa que contar cuántos nodos hay con grado 0, cuántos con grado 1, y así siguiendo. En el caso de la topología de Internet, no hay nodos con grado 0, ya que es una red totalmente conexa (triste sería estar conectado a ese router que no está conectado a nada más).

La topología de Internet (es decir, cómo se interconectan sus componentes) no se conoce a ciencia cierta (tema que quedará para otro post) pero hay algunos acercamientos académicamente aceptados. Uno de ellos es el de CAIDA que provee información sobre como están conectados los distintos sistemas autónomos. Esta data, después de modificar un poco su formato, puede ser analizada con el módulo Complex Systems Toolbox, para Scilab, un clon libre de Matlab.
Resulta ser que, al analizar la distribución de grados de la topología de Internet, uno se encuentra con una distribución de ley potencial (chocolate por la noticias, dirían los hermanos Faloutsos, que ya sabían esto desde 1999).

Esta ley de potencia (en inglés, power law) es una relación en que la frecuencia de un hecho cae de forma exponencial con respecto a la magnitud. Este tipo de distribuciones tiene una forma de panza hacia el eje de coordenadas y abunda en la naturaleza™, desde el crecimiento de los ríos hasta la popularidad de las personas en las redes sociales. Por su forma tan particular, se suele dibujar en ejes logarítmicos, quedando como una recta que se caracteriza por su pendiente (en el dibujo, b), que es el exponente de la curva en ejes lineales.

En estos dibujos, la curva es continua y elegante. Pero cuando uno va al mundo discreto de la modelización de fenómenos, la cosa cambia. Y mucho. Por ejemplo, este es el gráfico de la distribución de grados de la topología de AS, según CAIDA:

Los puntos rojos son las muestras discretas, las uní solo para que se aprecie mejor cuál va delante de cada cuál. Como se ve, la cosa no queda tan prolijita y agradable. Es que hay veces que la naturaleza™ se resiste a ser modelada con una fórmula y la estimación de al pendiente cuando se trata de datos experimentales puede ser complicada, sobre todo en la cola. Así es como llegamos al concepto de binning.

La idea es sencilla. Consiste en dividir el eje x es zócalos (bins) de tamaño fijo. Después tomar todas las muestras que caigan en un bin y promediarlas. Así, se grafica solo este promedio como un único punto que representa a todo el bin. Como estamos trabajando con ejes logarítmicos, el calculo del ancho de los bins requiere cierta aritmética, dado que estos se van ampliando exponencialmente (de forma tal que queden todos del mismo tamaño, o casi, al plotearlos). A esto lo llamamos log log binning.

Por suerte, el Complex Systems Toolbox tiene una función para hacer esta magia. Y aquí está el resultado:

Las muestras son las cruces rojas, mientras que los puntos verdes son los representantes de binning. Puede verse que están casi equidistantes, sobre todo después de 10. Por otro lado ¿no notan nada raro acá? Vamos por partes. En la parte inicial de la curva, ésta aparece por debajo de la línea de las cruces rojas. Esto empieza a tener poco sentido. Se supone que el promedio de un único punto es ese mismo punto.

Más grave aún es lo que ocurre en la cola. Ahí, esporádicos puntos (hay muchos ceros) generan una recta paralela al eje. Cuando uno promedia varios valores el resultado debería ser cada vez menor si la cantidad de ceros aumenta. Sin embargo, aquí la curva se suaviza hasta perder toda su inclinación.

Fue así como decidí mejorar esta funcion de log log binning (si, toda esta introducción para contarles esto… es que evidentemente soy muy pedante). A continuación, el mismo gráfico, resultado de mi propia implementación:

Algunas reimplementaciones por acá, fixeo de bugs por allá y ahora la pendiente se puede ver mucho más clara. Obvio que también podías leerte el paper de los hermanos Faloutsos, donde se explica que b está entre 2.1 y 2.4, pero no hubiese sido igual de divertido. Tuve que leer bastante y entender aritmética que había olvidado. Putié mucho contra scilab/matlab pero terminé descubriéndole cosas interesantes. En general, fue algo bastante entretenido.

La nueva implementación de log log binning ya está en el trunk de Complex Systems Toolbox y seguramente estará disponible en la próxima versión. También incluí novedades para graficar distribución de grados cuando los grafos son dirigidos y algunas otras pequeñeses de formato.

Comments (2)

(hot) boxing network

Hace unos días comenté que, por razones de practicidad, metí todos mis aparatos de redes en una caja. Si bien le puse alguna ventilación no forzada, varios amigos y conocidos insistieron en la alta temperatura que podía llegar a alcanzarse dentro del susodicho tupperware. Desde mi punto de vista, no hay (había) nada de que preocuparse.

Pero hablar es gratis, así que decidí ir a los papeles y a las pruebas concretas, para lo que, evidentemente, era necesario un termómetro. Fue así como encontré la excusa para hacerme de uno, tal como se puede ver:


Ahora puedo saber que dentro de la caja la temperatura ronda los 48ºC, aunque tiene picos de 50ºC cuando hace calor en el living. En lo personal, era más o menos lo que calculaba. El sensor lo fijé a la tapa superior, con lo que voy a suponer que es el lugar más caliente de la caja (aunque tal vez lo sea entre los transformadores, no se…).

Con la intensión de ver que tan grave puede ser esto para los equipos en su interior, me puse a recolectar las especificaciones de la parte electrónica (¿debería preocuparme también por las condiciones en la que trabajan los transformadores?). Aquí, la lista de dispositivos con el rango de temperatura operativo y links a las fuentes:

Para mi sorpresa (es que claramente soy un ignorante) 3 de los 4 aparatos tienen temperaturas máximas de operación de 40ºC, ~10ºC menos de lo que se respira por esos lares.

Evidentemente, estimados comentaristas, tenían razón. Es que soy un cabeza dura, ya lo saben. El hecho es que tal vez sí debería preocuparme un poco más por bajar la temperatura de ese cajón si es que quiero que mi pequeña red siga funcionando.

update 16 Jan 2010 12:01:10 -0300: Finalmente le puse un ventilador que expulse aire en la tapa (no solo fue la sugerencia de muchos, también era el único lugar donde cabía). Uno de fuente de PC, brushless.


En el mismo lugar de medición, en el que antes tenía 48ºC ahora tengo entre 37ºC y 38ºC, lo cual es buenísimo. Un amigo me sugirió que mida entre los dispositivos. Ahí la historia cambia: 43ºC (no tengo idea de cual era antes en esta ubicación). Tal vez pueda hacer un sistema de tuberías para hacer correr aire entre ellos.

Comments (11)

boxing network

Since I am a housewife (i.e. since I live on my own) my concerns have been extended to foreign horizons, such as taming dust and lint. All my network devices and wires has a particular magnetism for them. To make things worse, the devices cleaning is quiet hard.

So, I decide to boxing them. All you need is a big tupperware and few rubber bands. Here is the process to build it:

boxing process

And this is done:
boxing

Comments (6)

La UTN tiene dueño (wtf)

Hernán me pasó un excelente link de Linkedin (redundancia necesaria), la red social orientada a negocios y el mundo profesional, cuya captura reproduzco a continuación:


Mucho se me ha escuchado putear sobre el corporativismo en la universidad en este blog y otros entornos. Pero este fallido es como demasiado :P
El tiempo de estudio es un bonus wtf (y yo que siempre pensé que mis 8 años de carrera habían sido demasiados)…

El borroneo sobre el nombre tiene como fin no darte el dato directamente, una situación parecida a la ocurrida acá. Ya sé que lo podés conseguir, bien por ti.

Comments (3)

removing your facebook photo tags automagically

Este post también está escrito en español aquí.

Privacy at Facebook is heavy-duty. As a big fan of the Worlds Collide Theory I hate be tagged compulsively. I would like to select in which photos appear in my profile and feed. Since I couldn’t find that option in the setting menu, I looked for the answer in my favorite scripting language: Python.

This 60-lines-long script removes your tag from the latests photos where you has been labelled. You can download it from here. You may run it hourly (or every 15 minutes, or every 5 minutes, depends how paranoid you are) via cron or whatever.

Any improvement is welcome. It probably runs on Windows too. If you managed to do it, leave a comment for the others.

NEW VERSION! (available here).

Comments (2)

remover tu etiqueta de las fotos de facebook automágicamente

This post has been written in English too.

La privacidad en Facebook es un asunto complejo. Como gran suscriptor a la Teoría de Colisión de Mundos es que odio ser etiquetado en fotos de forma compulsiva. Me gustaría tener alguna forma de elegir en que fotos aparezco en mi perfil y actualizaciones. Dado que no pude encontrar tal opción entre la configuración, busqué la respuesta en mi lenguaje de scripting favorito: Python.

Este script de 60 lineas remueve tu etiqueta de las últimas fotos donde te hayan tagueado. Puede ser descargado desde aquí. Hay que correrlo cada hora (o cada 15 minutos, o cada 5, dependiendo de que tan paranoico seas) a través de cron o como sea.

Cualquier mejora es bienvenida. Posiblemente también corra en Windows. Si lograste hacer esto, deja un comentario que pueda serle útil a otros.

¡NUEVA VERSIÓN! (disponible aquí).

Comments (13)

neue Handy

Es claro que los dioses del hardware me odian. Hace unos días comenté sobre el inconveniente con mi laptop. Alrededor de esa misma fecha, mi teléfono celular se consideró a sí mismo en edad de jubilarse. Y así lo hizo, aunque con relativo pre-aviso. Le llevó algo de dos semanas pasar de “a veces funciona a veces no” a “creo que dejó de prender“. Es que estuvo en servicio sus años, ya ni me acuerdo cuantos.

Así fue como mi viejo Nokia 3220 fue reemplazado por un Nokia 3120.

La diferencia es notable:

(efectivamente, lo que tiene en la batería es cinta escoch). ¡Feliz retiro 3220!

Comments (3)

sfd @ mdq

Este sábado se celebra en Mar del Plata (tarde pero seguro) el Día de la Libertad del Software, en inglés Software Freedom Day, una celebración internacional cuyo objetivo es promover el uso del Software Libre para el beneficio del público.

El evento es organizado por gulBAC (grupo de usuarios de Software Libre de Buenos Aires central) y tiene un cronograma con temáticas de los más variado.

Así es como esta noche (mañana por la madrugada, para ser estrictos) me voy para MDQ a pasear, desintoxicarme, leer la pila de papers que tengo pendientes y dar una charla sobre seguridad en el susodicho evento, todo gracias al fuerte esfuerzo de los muchachos/as de gulBAC que se vienen portando de mil maravillas

¿Nos vemos alla?

Comments (5)

aUSBusing

When your laptop is being repaired (and it’s still there, since August 28) you need imaginative ways to be connected.

Here is my Nokia N800 as something near to a desktop computer.

Just few notices:

  • life battery is really short when you plug too many things to the USB interface.
  • usbcontrol rules
  • solder a female-female USB adapter is easy and funny (it came from a broken motherboard)
  • after some weeks using Maemo, ideas about developing applications to it come to my mind
  • the mail client and the browser included with Maemo suck
  • my ocular health is being damaged

Comments (9)

llegar para irse

Todavía no termino de llegar (literalmente, que mi mochila se quedó en Madrid un día más que su dueño) y ya tengo el pasaje salir pasado mañana para Bahía Blanca.

El evento es Jornadas del Sur, durante este fin de semana largo. Hablaré sobre seguridad y empaquetado, además de encontrarme con amigos para beber y divertirse :P

¿Nos vemos allá?

UPDATE Fri, 14 Aug 2009: Las fotos ya están disponibles, a excepción de las de Toledo, que están en una cámara desechable porque me olvidé la digital cuando fui.

Comments (6)

cáceres->lisbon->madrid

Esta última quincena ha sido de lo más intensa.

DebConf9Lo más destacable, por lejos, fue DebConf9. Esa semana donde las cosas se viven de forma profundamente apasionadas, donde a cada paso hay diversión y amigos. Este año tuvo lugar en Cáceres, una ciudad relativamente pequeña de Extremadura. Me dediqué, mayormente, a escuchar charlas, intentar revivir paquetes que tenía algo olvidados, y hacer mucho trabajo de security. Incluso siendo impresionantemente productivo, mi ToDoList, lejos de reducirse durante esa semana, aumentó paradógicamente su tamaño en varias veces. Trabajo y diversión en envase familiar.

Mi idea no era volverme directamente a casa de DebConf9. Por un lado, estar de este lado del charco implica un esfuerzo demasiado grande que requiere ser amortizado. Por otro, conservo la esperanza que la depresión-post-debconf pegue menos si antes de volver doy una vuelta por ahí. El hecho es que, sin un plan, coordine mi pasaje de regreso sumando dos semanas a la finalización de DebConf9. Así fue como terminé en Lisboa, gracias a José que me llevó en su auto y empujado por la promesa de un país más barato que el español.

LisboaEn Lisboa pasé unos 4 días, muy lindos por cierto. Es una ciudad atípica, llena de particularidades, con gente agradable y más extranjeros que locales. Posiblemente el álbum de fotos pueda contar más detalles.

De ahí y en tren, partí a Madrid, donde estoy viviendo la última semana de este viaje. Siempre estoy de paso en Madrid, lo que es injusto, ya que nunca me hice el tiempo para visitarla como un turista más. Con el tiempo he criado algunas amistadas acá, por lo que también ocuparé estos días en ponerme al día y beber cerveza.

Mañana (en algunas horas, para ser estricto) tengo pensado ir a Toledo, así que va llegando el momento de hibernar mi laptop e irme a dormir.

Comments off

at debconf9

Después de dos excelentes días en Madrid, tratando de recuperarme de un viaje demasiado largo, embarcamos en un bus con rumbo a Cáceres, junto con Santiago.

Ahora estoy escribiendo esto desde el hacklab 1 de DebConf9, con esa hermosa senciación de haberme encontrado con mucha gente y de estar listo para vivir esos inolvidables días al año :)

Mañana, junto con Enrico y Steve, estaremos dando una charla en el OpenDay, la cual aún no empezado a preparar, así que será una noche divertida. Posiblemente vaya a estar disponible el streaming de videos, pero aún no se en qué URL.

En breve, fotos.

UPDATE 05 Aug: Lo prometido, las fotos.

Comments off

see you at DebConf9!

I got my air ticket yesterday. So, I’m able to say that I will go to DebConf9!

The only thing missing in my itinerary is a cheap way to go to Cáceres from Madrid (it will be by train, most probably)

Comments (1)

not yours

If I say “I got the third place in a scholarship application”, it doesn’t look bad.

But there is money only for the first two persons. Sometimes, close is not enough. So, without money, I won’t be able to study in Europe… damn…

Maybe next year… maybe not.

Note: The application was, as you can see, for a doctoral scholarship in Spain… my broken English has no effect here…

Comments (8)

interview ( ) { ego++; }

(Sé que estoy escribiendo poco, y sé que con cuestionable calidad. Esta entrada no será la excepción)

Circo Linux, un simpático blog/e-zine, me ha realizado una extensa entrevista que puede leerse aquí. Los temas que tratamos han sido de lo más variado, desde Debian hasta mi afición al go. Fue una charla amena.

Tengo varias ideas en la cabeza que merecen ser posteadas, pero poco tiempo para plasmarlas. Trataré de cambiar dicha situación en el corto plazo y levantar este blog a lo que solía ser: un lugar divertido donde perder el tiempo.

Comments (6)

« Previous Page« Previous entries « Previous Page · Next Page » Next entries »Next Page »