Ir al contenido principal

Jueguitos en Ruby

Hace un tiempo en una de las meetups menos concurridas de Ruby Lit estuvimos viendo varios juegos hechos por @jjconti en Python. Ahí creo que surgió la pregunta si había algo parecido a PyGame en Ruby. Creería que no sabíamos de alternativas en su momento. Así que en un momento de aburrimiento me puse a investigar y me encontre con Gosu, una librería con la que es muy sencillo hacer juegos 2D en Ruby.

La creación de juegos no es ciertamente mi area de experiencia pero me resulto fácil crear un pequeño entorno, y un bastante precario sistema de gravedad. Aún estoy peleando un poco con como calcular y responder a las colisiones, pero eso lo hace aún más interesante para mí.

fit-width

enlace al ejemplo

Gosu

Edit: Por lo que veo en la página para física recomiendan Chipmunk, y hay también recomendaciones para frameworks sobre Gosu, los cuales seguramente voy a investigar.

Varias cosas II

Hola, hace un tiempo que no actualizo mi blog, no obstante han pasado varias cosas desde la ultima vez que escribí.

Nuevas funcionalidades

Añadí una precaria funcionalidad de reply a los comentarios, que aunque el blog no tenga muchos, sin duda el software ha tomado un rumbo a un CMS algo más genérico y me pareció necesario. Por ahora solo permite 1 nivel de anidado, ya que estoy pensando en la mejor forma de limitarlo (n-niveles rompería el layout) y debido a las características del sistema de templates de Go no encontré una buena forma de hacerlo que no involucre JS.

También hay una funcionalidad para añadir páginas estáticas, lo cual lo hace un poco más versátil.

fit-width

Fuera de esto estoy pensando en mover el desarrollo del blog a un repositorio aparte, ponerle un nombre (¿ideas?) y difundirlo un poco más, quizás encuentre gente que le sirva y quiera colaborar con un mini CMS hecho en Go.

Docker

Durante el fin de semana he estado estudiando un poco de Docker, un poco motivado por la meetup de DevOps Litoral y la charla de Germán y Manuel. La verdad avance mucho menos de lo que quería pero leí bastante sobre containers y demás.

The Force Awakens

El otro fin de semana me di el gusto de ver la nueva peli de Star Wars, sinceramente iba preparado para una decepción pero no fue así, me gustó mucho. No voy a contar muchos detalles fuera de eso :).

Blog update

I've added some features to this little piece of software. Mainly you will notice you can now get a proper RSS feed for the blog posts, for this I created a little small Go library which just uses the encoding/xml package of go STL. Also now it's possible to access posts by pretty urls rather than by id, which is something I had to do a long time ago but forgot to do it far too many times.

I'm also working on a prettier admin interface based on SB admin bootstrap template.

La mezquindad de los condenados

Sinceramente nunca me fue mucho la retórica del anti-chori sobre los que "van a tener que volver a trabajar", será porque mi paladar poco delicado esta más cerca de disfrutar un chori que comida gourmet, y porque durante todos estos años solo he conocido y me he relacionado gente que labura. Y algo que he descubierto, es que hay cierta rabia, cierto odio cuando cierta persona accede a algo "inmerecido", porque el trabajo que vale solo es el mío, y el del resto es una boludez, una trivialidad.

fit-width

La mente básica y la lógica tribal de algunas personas les hacen odiar al vecino en sus tiempos de bonanza (sin importar como nos vaya a nosotros mismos) porque estamos tan acostumbrados a la escasez. Silvio decía "...dirán que la gente es mala y no merece...", y claramente es el caso, el rabiar porque el otro no merece nada bueno si no nos demostró que lo gano con un sufrimiento desmedido (y en cuyo caso se convierte en un panfleto del "vieron que se puede salir adelante con esfuerzo?" para dejar las cosas como están).

Es doloroso que la gente haya votado con esto en la cabeza. Es doloroso ver los colmillos de la mezquindad y el revanchismo contra gente que no le ha hecho nada y simplemente tuvo el atrevimiento, la osadía de disfrutar un poco más de la vida cuando la oportunidad se le presentó.

Por que el odio ya no es contra el dirigente del otro partido, es contra la gente, es odio de ver gente con la panza llena, con zapatillas nuevas o accediendo a servicios que deberían ser solo de la élite y de ciertos colores de piel.

Es doloroso ver que en el fondo no cambio nada una mierda ni va a cambiar nunca.

(Este es un posteo de facebook que como le interesó a varias personas decidí guardarlo acá y compartirlo x twitter)

Helm Dash

fit-width

Frecuentemente tengo que consultar documentación así que busqué un modulo de emacs que me permita hacerlo. Helm Dash permite fácilmente consultar la documentación tanto en el punto actual como buscar dentro de los docsets (fácilmente instalables utilizando M-x helm-dash-install-docset ) para conveniencia defini 2 shortcuts

(global-set-key "\C-hp" 'helm-dash-at-point) ;; busca la documentación de la función señalada por el cursor
(global-set-key "\C-hs" 'helm-dash) ;; inicia el modo busqueda de helms dash

La instalación esta explicada en la web del proyecto aunque a mi los paquetes de melpa/marmalade no me funcionaron y tuve que instalar helm manualmente.

en acción

como llegamos a esto

Estamos en período eleccionario y tenemos que tomar una díficil decisión. Se decide el futuro presidente del país al menos por los 4 años que vienen (o hasta que se arme la próxima gorda). Aunque la pregunta es ¿Hay realmente una elección?

Actualmente tanto Macri como Scioli tienen un grueso prontuario de dichos poco felices, ideas aterradoras y fracasos estrepitosos. Fuera de esto, me preocupa más la forma de pensar de ciertos sectores que ciertamente delata un gran problema de los argentinos. La especulación de este me va dar X o me va a quitar Y.

Sinceramente me choca esta actitud de votar pensando en el próximo vencimiento de un crédito, en el autito que te querés comprar o la casa que querés terminar de construir. Por otro lado lo comprendo y pienso que es inevitable, pero la pregunta que me surge es si esto es así ¿realmente que estamos eligiendo? La respuesta es que estamos eligiendo la dádiva a la que aspiramos, no presidentes, ni proyectos ( y es que ¿realmente hay proyectos? ).

Prioridades

Estaría bueno que hubiéramos votado en favor de quienes realmente no pueden solo

PyDay Recap

El sábado tuve la suerte de poder asistir al PyDay organizado por gente del LugLi y PyAr. La verdad es que hacía un tiempo que no asistía a una jornada tan interesante. Si bien de momento no me encuentro programando en Python (Ruby y Go) son ya demasiado para aprender a la vez, disfruté muchísimo de las charlas.

Llegue medio tarde y me perdí la charla de Juanjo Conti ( aunque pude ver los slides y se ve que estuvo muy buena), pero pude asistir a la de Django un framework web que me resulto un poco raro, pero interesante y seguramente estaré mirando cuando tenga tiempo. Luego vino la emotiva charla de Argentina en Python por humitos en la que me pude enterar del estado de la gran movida que estan llevando a cabo (que conocí el año pasado pero se ve que han hecho progresos enormes).

fit-width

Disfrute mucho de ambas charlas de Machine Learning, principalemente porque había empezado a estudiar eso a mitad de año pero no pude continuar por falta de tiempo (y agotamiento). Estuve chusmeando alternativas para utilizar [OpenCV] en Ruby, al menos hasta que encuentre tiempo de arrancar más de lleno con Python.

Pude escuchar algo de la charla de Flask, pero ya estaba corto de tiempo y me tuve que ir. Al parecer es un micro-framework para Python, definitivamente algo útil para tener en la caja de herramientas.

Otras yerbas

Estuve probando PRY para ruby, una versión de irb en esteroides, muy interesante y cómodo de usar.

También estuve mirando Lotus, un framework que promete ser más liviano que Rails, pero no un micro-framework como Sinatra o Cuba. Definitivamente algo interesante para tener en cuenta en un futuro.

Y nada que ver...

En la última feria del libro me compré el primer tomo de los libros de Terramar, que había oído que eran muy recomendables para lectores de Tolkien. La verdad es que no es ni parecido en mi opinión, pero esto no significa que sea malo, solo que el foco de la narrativa parece pasar por otro lado. Cuando lo termine (si tengo tiempo quizás haga una breve reseña)

Ayreon - Into The Electric Castle

Mi banda favorita sin duda es Ayreon, y algunos otros proyectos del genio musical Arjen Lucassen. Si bien tengo la discografía completa, un album que siempre había pasado por alto es "Into The Electric Castle". Principalmente por estar desconectado de la linea de tiempo de Ayreon (sobre la cual seguramente hare un post más adelante). Hace una semana que lo estoy escuchando y simplemente no puedo creer de lo que me había perdido.

pull-left

Es díficil definir que canción es la mejor de este trabajo ya que la mayoría tienen una marca distintiva, desde los riffs pegadizos de Amazing Flight a la ominosidad de The Castle Hall, con unas líricas increibles de Fish que lamentablemente desaparece en la mitad del album, y un desarrollo de personajes increible.

En fin, me sorprende haber dejado pasar por alto esta genialidad, altamente recomendable.

Proceso secuencial

Me tope con un problema en el cual debía ejecutar un proceso en varias partes y ejecutarlo nuevamente si es que había finalizado antes de terminar la tarea que necesitaba terminar, por suerte con un poco de ayuda de germán armé este pequeño script salvaje que resuelve el problema:

#!/usr/bin/bash
COMMAND="process name";

$COMMAND &
PID=$!
FINISH=0

echo 0 > process_finished
while true
do
    if ! ps -p $PID >/dev/null;
    then
    FINISH=`cat process_finished`;
    if [ $FINISH -eq 1 ]
    then
        echo "batch finished running";
        break;
    else
        echo "running again";       
        $COMMAND &
        PID=$!
    fi
    fi
    sleep 1;
done

Básicamente el comando se ejecuta nuevamente si no esta siendo ejecutado a menos que se encuentre 1 en el archivo process_finished .

Quizás no es una solución elegante pero muy util y eficaz para resolver un problema puntual.