Glider Gun en thewalnut.io

This week in walnutland…

Después de mi implementación inicial del juego de la vida en walnut, me dieron ganas de implementar un patrón más complejo: el Gosper Glider Gun.

Me frenaba el hecho de que el setup del estado inicial es bastante a mano aún, pero las ganas fueron más y un día le dediqué una hora a cargar las celdas necesarias.

Cuando le di play, se cortó a los dos pasos: primero pinchaba por temas de memoria y luego de unos cambios por tiempo de ejecución :(

Ahora tenía que escribir una versión más optimizada del juego de la vida de Conway. La versión a la que llegué funcionaba bien con patrones simples, pero con el Glider Gun degeneraba mal. Fisa, uno de los desarrolladores de thewalnut.io me ayudó a debugearlo y antes de que termine el día pude ver el ejemplo corriendo:

Glider Gun

Publicado en General | Etiquetado , , | Deja un comentario

Primera experiencia con thewalnut.io

Esta semana se publicó la versión beta del sitio web thewalnut.io (creado por amigos de #machinalis). El sitio permite visualizar graficamente algoritmos y compartirlos con otros usuarios. Es una herramienta de aprendizaje y de comunicación. Una puede comunicar una idea de forma gráfica más fácil que con palabras o pseudocódigo. Y puede basarse en lo que otro construyó para experimentar, modificando, y así crear conocimiento.

En concreto

Ir de cero a la visualización de un algoritmo cualquiera no es trivial; es necesario llevar a cabo cuatro pasos:

  1. Describir un mundo: esto se hace mediante un DSL y require definir el estado del mundo (se hace con el keyword state y puede ir desde una variable booleana a una estructura de datos compleja), definir los roles para los agentes que interactuarán con el mundo (se hace con el keyword role, definiendo un sensor y actuadores), definir una función performance (no la estuve usando) y una función de fin de condición (le di el valor False porque quería hacer una simulación sin fin).
  2. Escribir un agente que interactúe con ese mundo: se puede hacer con Python3 o JavaScript. En el agente va la lógica para definir qué actuador se ejecuta ante cierta percepción del mundo.
  3. Plantear problemas para ese agente: se hace mediante una interfaz gráfica. Esto incluye principalmente el estado inicial del mundo.
  4. Escribir un visualizador: al igual que el mundo, se describe mediante un DSL propio.

Para lograr entender lo anterior, hice mi propio ejemplo desde cero. El objetivo era entender todas las partes y completarlo en un día.

El juego de la vida

1) Creé un mundo genérico para autómatas celulares.

2) Escribí un agente (no muy optimizado) que implemente el algoritmo del Juego de la vida de Conway (usando Python3; también se puede usar JavaScript).

3) Planteé el problema más sencillo que se me ocurrió, Blinker (Parpadeador).

4) Escribí un visualizador para visualizarlo.

Logre hacerlo funcionar luego de varias iteraciones.

Con esto andando, implementar cualquier patrón fue fácil.

Gilder

Lo siguiente fue jugar cambiando las reglas originales creando un nuevo agente:

celularautomata

Fork

El círculo se completó cuando alguien (redelmann) hizo un fork de mi mundo, planteó un nuevo problema, cambió el agente para que tenga una nueva propiedad y escribió un nuevo visualizador (visualizarlo):

ForkeadoEn este momento, en el sitio es un poco confusa la forma de correr simulaciones y forkear mundos y termina habiendo muchas copias con con nombres repetidos, pero confío en que el caos se va a ordenar pronto.

Publicado en General | Etiquetado | 1 comentario

Soledad en Santa Fe #VivirEsHoy

Anoche fuimos a ver a Soledad a ATE Casa España. El recital es la presentación del disco Vivir es hoy. Cuando saqué las entradas, hace más de un mes, mi idea era tenerlo bien escuchado para disfrutar más del show, pero se me pasó, lo escuchamos una tarde mientras Ceci corregía exámenes de matemática pero después me olvidé de seguir machacando. De hecho estaba medio perdido con la fecha, pensaba que era el 28 de julio pero los carteles en la calle me avivaron de que era un mes antes.

Después de misa y con una tormenta que asomaba, manejé hasta el centro. La dejé a Ceci en la puerta (ya llovía) y di un par de vueltas hasta que estacioné a tres cuadras. Miré el reloj: 9:05. Apuré el paso. Pero como no había comido nada paré en un kiosco a comprar un chocolate. Cuando entré, todavía no había empezado, compartimos el chocolate contentos. Luego se apagaron las luces y empezó la música.

Saqué la cámara para tirar algunas fotos pero desde la fila 16 no salían muy bien, así que me puse a filmar unos fragmentos. Luego del primero se me ocurrió una idea. Tengo un amigo, Juan, que es super fanático de Soledad. Cuando le conté que iba a verla me pidió que le guarde el ticket de mi entrada de recuerdo. Entonces ahí, luego de filmar algunos segundos de una canción, se me ocurrió que podía filmar un pedacito de varias y luego compilarlo en un video, subirlo a YouTube y mandarle el link.

¡En un momento se me quedó sin memoria la cámara! No pude grabar una de las canciones con más fuerza. Fue el segundo tema luego del cambio de ropa. ¿Alguen recuerda cuál era? (no era del último CD) Borré algunos videos que ya había bajado a la computadora y me aseguré poder grabar el final (o al menos lo que yo pensaba que era el final).

Por suerte el audio salió muy bien y con una mínima edición quedó algo presentable:

Luego de que guardé la cámara llegó la parte más emocionante. Cuatro personas subieron al escenario y Soledad cantó su Aleluya. El rockero que tenía al lado lloró a moco tendido.

Una nota final. El tecladista de Soledad, Bruno Orgaz, es del mismo pueblo que Juan y yo. Y la rompe:

Tweets:

Publicado en Eventos, Videos | Etiquetado | 4 comentarios

Libros que leí mientras estudiaba Swift

Swift Pocket Reference

Swift Development with Cocoa: Developing for the Mac and iOS App Stores

 

Publicado en Aprendiendo Swift | Deja un comentario

Screensaver Ninja

Este año estuve programando algo totalmente distinto a todos los programas que hice en el pasado: una aplicación de escritorio para Mac OS X. En el camino tuve que aprender un nuevo lenguaje, Swift, y adaptarme al entorno de desarrollo XCode.

La semana pasada se publicó la versión 1.0 de Screensaver Ninja, un protector de pantalla que permite mostrar páginas web e ir rotándolas, customizarlas con JavaScript y CSS y mantener las sesiones que se inicien allí aisladas de la de los otros browsers de la computadora.

Screensaver Ninja

Estoy muy contento desarrollándolo. Tanto el equipo de trabajo como el ambiente es muy bueno.

Algunas fotos de Screensaver Ninja en acción.

Publicado en Aprendiendo Swift | Etiquetado | Deja un comentario

Tarta de frutilla

Este post lleva en borrador años. Cada vez que queremos hacer esta tarta o la torta bombón o la torta de merengue, tenemos que entrar a buscar la receta de la masa. Le doy publicar así me facilito el camino para la próxima.

Esta noche hicimos con Ceci tarta de frutilla. Es la primera vez que hacemos este postre y como armamos la receta sacando ideas de varios lados, la subimos al blog para poder buscarla la próxima vez (esta era la idea original evidentemente).

Ingredientes:

  • Para la masa
    • 100 g. de manteca
    • 100 g. de azúcar
    • 1 huevo
    • esencia de vainilla
    • 250 g. de harina
  • Para el relleno
    • 1 pote grande de crema de leche
    • 5 cucharadas soperas de azúcar
    • 1/2 kg. de frutillas en lo posible del mismo tamaño.
    • 1 sobre chico (4 porciones) de gelatina

Pasos previos:

  1. Lavar las frutillas y sacarles el cabito.
  2. Cortarlas al medio y colocarlas en un bol espolvoreadas con azúcar.
  3. Guardarlas en la heladera.

Preparación de la base:

  1. Enmantecar y enharinar una tartera (usamos una de 36 cm. de diámetro).
  2. Pisar la manteca (si no está a temperatura ambiente), incorporar el azúcar y batir.
  3. Agregar el huevo y una cucharadita de esencia de vainilla. Volver a batir.
  4. Incorporar el harina y mezclar con espátula.
  5. Armar un bollo de masa.
  6. Poner el bollo entre dos films.
  7. Estirar la masa con un palo de amasar hasta superar el diámetro de la tartera.
  8. Retirar el film de arriba y dar vuelta la masa sobre el molde.
  9. Acomodar los bordes y utilizar el palo de amasar para cortar los bordes sobrantes.
  10. Retirar el film.
  11. Pinchar toda la superficie con un tenedor y marcar los bordes.
  12. Dejar reposar en la heladera media hora.
  13. Prender el horno a fuego máximo. Cuando esté caliente, poner la tartera y dejarla entre 10 y 15 minutos.
  14. Va a estar lista cuando se haya dorado. Se puede probar clavándole un escarbadientes y verificando que salga limpio.
  15. Sacar la tartera y dejar enfriar.

Preparación de la crema chantilly:

  1. Batir un poco la crema para airearla.
  2. Agregar el azúcar.
  3. Seguir batiendo hasta lograr el punto.

Final:

  1. Cubrir la base con la crema chantilly.
  2. Distribuir prolijamente las frutillas sobre la crema. Hacerlo en forma concéntrica, de afuera hacia adentro.
  3. Preparar la gelatina según las instrucciones de la caja y ponerla en el freezer aproximadamente 5 minutos.
  4. Cuando tenga cuerpo revolver bien para que quede pareja y no se endurezca y distribuirla con una cuchara sobre la tarta.
  5. Llevar a heladera.
Publicado en Recetas | 2 comentarios

Audio de la entrevista en Recreo Diario sobre mi artículo sobre el escrutinio en las elecciones Santa Fe 2015

Luego de publicar el post Jugando con los datos del escrutinio provisorio me contactaron de radio Continental Santa Fe para participar del programa Recreo Diario contando lo que hice.

Luego de mi entrevista siguió una con Pepito Cybrian y Cecilia Milone. Me saqué una foto con ellos y la usé para ilustrar el audio.

Publicado en Aprendiendo Python, Videos | Etiquetado , | 2 comentarios

Jugando con los datos del escrutinio provisorio

Anoche estuve jugando un poco con los datos (publicados) del escrutinio provisorio de las elecciones a gobernador en la provincia de Santa Fe.

La misma noche de las elecciones, cuando los resultados provisorios no lo favorecieron, Miguel del Sel y los partidarios del PRO en general empezaron a instalar una sospecha de fraude. No tardaron en hacerse eco en las redes sociales distinto tipo de usuarios: obsecuentes, tira bombas, paranoicos, ingenuos.

En distintos medios, Del Sel mostró como “prueba” del fraude errores producidos al realizar la carga manual de datos durante el escrutinio provisorio, es decir durante el proceso humano de mirar una planilla completada a mano e ingresar (tipeando) los valores en el sistema.

De los tipos de errores, voy a tomar uno, el primero que mostró (1, 2): el candidato figura con 0 votos en el sitio web, pero en la planilla tiene X votos.

Mi objetivo es ver cuantas veces se da este error y como afecta a los distintos candidatos.

Programé un pequeño script que hace lo siguiente:

  1. Baja el archivo XML con los datos de la categoría Gobernador correspondiente a cada mesa.
  2. Lee los archivos XML para obtener, para cada mesa, la cantidad de votos de los 3 partidos dominantes.
  3. Encuentra las mesas en las que cada partido tiene 0 votos.
    1. Si en una mesa los 3 candidatos tienen 0 votos, se asume que se trata de una mesa con telegrama desestimado.

Luego revisé los archivos PDF de los telegramas de estas mesas. Arribé a lo siguiente:

Partido Nº de mesa Votos
PRO 1725 0
PRO 270 73
PRO 5351 0 *
Total votos faltantes PRO 73
FPV 1478 0
FPV 7591 0
FPV 5545 0
FPV 4912 0
FPV 7601 0
FPV 1845 0
FPV 4950 0
FPV 4729 85
FPV 6555 0
FPV 6333 0 *
Total votos faltantes FPV 85
FPCS 6852 0 *
FPCS 1478 0
FPCS 134 0
FPCS 7591 0
FPCS 5485 82
FPCS 4501 75
FPCS 6555 0
FPCS 1845 0
Total votos faltantes FPCS 157
* la casilla estaba en blanco en el telegrama

Se pueden analizar otros tipos de errores en la carga, pero con uno me alcanza para demostrar mi punto: esto no es prueba ni de fraude ni del accionar de un cracker, solo errores humanos distribuidos uniformemente.

Es decir, este tipo de error ocurrió una vez para el PRO (a quien se le deben contabilizar 73 votos más), una vez para el FPV (a quien se le deben contabilizar 85 votos más) y 2 veces para el FPCS (a quien se le deben contabilizar 157 votos más).

Los datos y las herramientas están disponibles para periodistas y entusiastas que quieran seguir explorando el espectro de los votos mientras el tribunal sigue contando.

Finalmente, como esto se puso muy serio, cierro con un poco de humor, uno de los mejores Eameos:

MI-DA-CHIActualización: audio disponible.

 

Publicado en Aprendiendo Python | Etiquetado , | 10 comentarios

Video de mi charla Ruby para programadores Python

Hoy encontré que los organizadores de PyConAr 2014 habían subido el video de mi charla Ruby para programadores Python. Se que subir todos los videos de una conferencia lleva tiempo y es mucho trabajo. Muchas gracias!

Publicado en Aprendiendo Python, Aprendiendo Ruby, Eventos, Videos | Etiquetado , | Deja un comentario

El operario – Jonatan Lipner

El tipo saluda a los guardias
pasa la tarjeta por el lector
y ficha el horario de entrada
de ahí al vestuario
a calzarse la ropa de trabajo
para ir a su sector
atravesando
un laberinto de máquinas
que no comprende
ni necesita comprender
Llega hasta su lugar
en la cadena
y empieza
lo esperan ocho horas de trabajo
haciendo lo mismo
haciendo lo mismo
haciendo lo mismo
haciendo lo mismo
haciendo lo mismo
las manos operan
separadas de la cabeza
armar, ordenar, apilar
es más natural que respirar
cada dos horas
(creo que lo dice la ley)
le corresponde un descanso
quince minutos
para ir a mear
fumarse un pucho
tomar agua
Después
a volver una vez más
a la panza de la bestia
a llenarse de olor a queso y lavandina
tan fuerte
que se pega a la piel
como una etiqueta:
uno es queso y lavandina
para volver otra vez
a su lugar en la cadena
a que las manos operen
más allá de la cabeza
y la cabeza carbure
más allá de la fábrica
la fábrica nunca podrá
meterse en las cabezas
y son ocho horas
de sacar cuentas
¿me alcanzará para el alquiler?
¿podré pagar la luz?
deudas, deudas, deudas
sueños, sueños, sueños
deudas y sueños
el que anda a pata
piensa en la moto
el que anda en moto
piensa en el auto
el que anda en auto
piensa en la casa
como ratas en una carrera
no paran
sólo que en realidad
somos ratas en una rueda
El que lo tiene todo
se inventa cosas que no tiene
y le echa la culpa por la carencia
a los que no hacen nada
como el dueño de la fábrica
pero sin plata.
A la mitad de la jornada
(creo que lo dice la ley)
hay que ir al comedor
un limbo triste y desolado
sentado inclinado hacia delante
uno come lo que pudo traer de la casa
y toma algo, aunque sea mate
y mira el reloj
tiene media hora de esparcimiento
le queda media jornada por recorrer
algunos
los más osados
espían
a las chicas de administración
princesas de oficinas con aire acondicionado
dos mundos separados por un pasillo
el reloj sigue su marcha
y uno debe arrastrar
el sudor y la suciedad
de vuelta al sector
lavarse los botines o las botas
echarse desinfectante en las manos
lo único sucio son los operarios
que se ponen su cofia
antes de abrir la puerta
para que el adn de su pelo
no arruine ninguna partida
uno se pasa ocho horas viendo rostros
sólo rostros, como máscaras
sin pelo
si los vieras en la calle
no los reconocerías
la cofia nos iguala en la pena
la cofia nos iguala en la servidumbre
Entonces se hace la hora
y llega tu reemplazo
a agarrar la posta que dejaste
porque las máquinas no paran nunca
el hombre sigue el ritmo de la máquina
el hombre está al servicio de la máquina
y uno vuelve, cansado, a los vestuarios
y se pone su ropa de civil
sólo entonces aparece el otro
sólo entonces te das cuenta
de que no sos vos el que labura al lado tuyo
algunos se ponen desodorante
esperanzados
pero es inútil
una vez pases la tarjeta por el lector
y fiches el horario de salida
y saludes a los guardias en la entrada
caminarás libre por la calle
pero llevarás en la piel
el olor de la fábrica

Levemente editado en base a la versión original.

Publicado en Cosas que leo | Etiquetado | Deja un comentario

Videos de FELISA 2015

Del jueves 7 de mayo al sábado 9 se desarrolló en Santa Fe la segunda edición del Festival de Literatura de Santa Fe. La dinámica de cada día estaba repartida en tres partes: a las 17 hs en el Centro Experimental del Color en la estación, a las 19:30 en el bar Saer a pocos metros y a partir de las 22 en Ochava Roma (lecturas).

Jueves y viernes hablaba y leía uno de mis escritores preferidos, Leonardo Oyola, así que me llegué con la cámara para hacer algunos videos para compartir. Como no había filmación oficial, terminé filmando algunas cosas más, lo que podía.

Claudia Chamudis

Mi lector y yo

Beatriz Vignoli

Pablo Escudero

Roque Larraquy

Cecilia Moscovich

 

Publicado en Eventos | Etiquetado , | Deja un comentario

Visita al dentista (video)

La semana pasada leí en una presentación de libros de La Gota, en Uhlalá Café. Leí Visita al dentista, un cuento del libro La prueba del dulce de leche:

Otras lecturas de la noche: Madamme Cherry, Gonzalo, Alejandra, Adriana, Daiana.

Publicado en Cosas que escribo, Videos | Deja un comentario

6 nuevos libros de Diego Arbit

Nuevos para mi, por supuesto. Algunos fueron publicados hace varios años ya.

Hoy me llegó un paquete con libros que compré hace unos meses. No me acordaba ni que los había comprado, de hecho me sorprendió la cantidad: 6.

Había leído dos libros del autor y luego de eso me topé con que estaba vendiendo por Facebook los que le quedaban. Aproveché la oportunidad y ahora tengo material de lectura para rato. ¿Qué orden me recomendás seguir, Diego?

 

 

Publicado en Cosas que leo | 1 comentario

El pelo en el jabón (remasterizado)

Para el 3er SLAM de poesía oral de Santa Fe rescaté un texto de mi primer libro y lo pulí un poco más. Estoy bastante conforme con el resultado, y en su presentación oral tubo buena aceptación.

El pelo en el jabón

Probablemente un pelo en el jabón sea uno de los objetos más limpios del universo. Sin embargo, cuando uno —con su cuerpo transpirado y el pelo sucio— se dirige a la ducha para descargar ahí toda la mugre del día —del cuerpo y del alma— y se encuentra un pelo en el jabón…

¡Ah! que desazón y que violencia, que sentimiento de violación a la intimidad de las gotas de agua que están cayendo sobre nosotros.
Es que es tal la relación que se tiene con el jabón, ese pan blanco protector y confidente, que el solo hecho de encontrar un pelo incrustado, cual fosil en piedra, nos recuerda que el vínculo que nos une a él, no es inmaculado.

Más personas frotan su cuerpo transpirado en él.

Y entonces, entre parientes y amigos, empezamos a buscar sospechosos.

Lo medimos, estudiamos su color, ¿rubio oscuro o castaño claro? ¿De qué parte del cuerpo de ese vil rufián será el pelo? Demasiado corto para cabellera de mujer, demasiado largo para pelo de pierna de hombre.

La cadena de deducciones se congela en el cerebro y el estómago se nos revuelve. Con las uñas y precisión quirúrgica nos animamos, lo sujetamos y lo retiramos de su soporte pastoso. Lo sostenemos ante nuestros ojos para examinarlo mejor. Reflexionamos. Una nueva inspección ocular. Parece que sí. Falsa alarma. Se trataba de un pedazo de hilo que se escapó del calzoncillo mientras lo lavábamos rasguñando su textil composición la noche anterior. Ahora sí, fuera de peligro podemos bañarnos tranquilos. Pero… ¿qué sucede? Se terminó el agua caliente.

Publicado en Cosas que escribo, Videos | Etiquetado | Deja un comentario

Lecturas en la presentación del libro Pulóver

El jueves Elián del Mestre presentó su segundo libro: Pulóver. Yo participé de la mesa editorial ofreciendo mis libros y otros escritores estuvieron leyendo ante el público del bar.

En un momento me fui de la mesa y me senté a escuchar las lecturas. Aproveché que tenía la cámara en la mano y filmé una buena parte de estas.

Más:

Publicado en Cosas que leo, Videos | Etiquetado , | Deja un comentario