Willyfrog

Ludum dared

Este fin de semana me he dado un homenaje tremendamente geek: he participado en un gamejam (explicacion en castellano) de 48 horas, en concreto el ludum dare en su 23ª edición. Las reglas son sencillas: dado un tema tienes 48 horas para hacer un juego completo tú solo (incluye código, animaciones, sonido, etc.)

No he podido entregar al final del concurso, aunque ciertamente no esperaba hacerlo. Este fin de semana he tenido varios compromisos que no me iban a permitir sacar el máximo de horas para el evento, pero estoy contento de tener algo jugable

Una de las cosas que me ha permitido el ir tan relajado es el continue.

Nuevo mini-proyecto: tuitorrent

En estos días, he intentado sacar algo de tiempo para un mini-proyecto que tenía en mente desde hace mucho y que recordé hace poco gracias a un artículo: "Como crear un bot de Twitter en Python" (titulo traducido libremente).

La idea es la de un bot de twitter al que mandarle torrents y que este se encargue de gestionarlos. Por ahora solo descarga el torrent y lo coloca en una carpeta, la cual está vigilada por utorrent que al detectar el nuevo archivo lo pone a la cola. Como efecto extra, también descarga archivos que no sean torrent, pero en este caso no se añaden a la lista y continue.

Curva de Hilbert en un 'tuit'

Actualmente estoy mirando implementaciones de las curvas de Peano y Hilbert y me he encontrado en la lista de python-argentina con una curiosa implementación de una curva de Hilbert en un tweet (es decir en 140 caracteres o menos):

1 from turtle import *
2 l=left
3 f=forward
4 def h(n,a):
5     if n:n-=1;l(a*3);h(n,-a);f(4);l(a);h(n,a);f(4);h(n,a);l(a);f(4);h(n,-a);l(a*3)
6 h(6,90)

Además no conocía el módulo de la tortuga

Snipet: Generador de etiquetas

Para poder generar automaticamente etiquetas para nodos (aunque valdria para cualquier otra cosa) he hecho un generador automatico sencillo que va dando strings de texto:

def generador_etiquetas(self):
    '''genera etiquetas,primero minusculas, luego mayusculas y finalmente
    digitos'''
    for a in string.lowercase:
        yield a
    for A in string.uppercase: #cuando termina con las minusculas, pasa a las
                             #   
continue.

Si un paper fuera un lenguaje de programacion

Quizás por verme cercano al momento PFC he encontrado este cómic bastante gracioso: Una traducción rápida después del salto Fuente: Something of that ilk

Python: Esto es plagio. No puedes hacer "import ensayo" y quedarte tan tranquilo.

Java: Llevo leídas dos páginas y aun no tengo ni idea de lo que estás hablando.

Ensamblador: ¿De verdad tenías que redefinir cada palabra del español?

C: Esta muy bien, pero se te olvidó añadir la terminación en null y ahora solo estoy leyendo basura.

C++: Te pedí una copia, no cuatrocientas.

Shell: No tengo permiso para leer esto

Latex: Tu trabajo no tienen ningún sentido, pero es la cosa más bonita que he visto.

HTML: Esto es continue.

¿Censura o hactivismo?

Hoy, dia ocupado como pocos en el trabajo (pero de eso igual hago otra entrada), me sorprendian un monton de tuits hablando de censura, cosa que no entendia y me comenzaba a temer una nueva vuelta de tuerca (a mucho peor) de la conocida "Ley de Sinde". Pero no, era el anuncio por parte de Twitter acerca de su nueva politica. En resumidas cuentas viene a decir que en base a legislación y bajo peticion expresa de una entidad competente (entiendo que es alguien designado por el gobierno) no serán visibles los tuits que incumplan algun tipo de ley (y en ocasiones cuestiones morales/culturales).

Esto, me ha hecho pensar continue.

Acortador de urls terminado

He terminado (alcanzado el estado de 1.0) mi pequeño proyecto de acortador de urls, no pretende ser útil en el mundo real, pero si quizás sirva como punto de partida para otros en caso de querer ver un ejemplo de flask+redis+sqlalchemy.

La motivación principal, es una entrega para la facultad, pero he aprovechado para aprender un par de cosas y puede que acabe usándola para dar una charla introductoria en codemotion.

Está bajo licencia BSD (3 clausulas), por lo que podeis hacer casi cualquier cosa con ella ;)

Una última cosa, está pensada para trabajar con postgresql, pero cambiando la configuración de la bb.dd. debería poder adaptarse a otras bases de continue.

Recomendacion de libro para aprender haskell

Si estás necesitado de aprender Haskell a marchas forzadas este fin de semana me ayudó mucho el libro: learn you a haskell for greater good. Y si lo prefieres en castellano está traducido en Aprende Haskell (si pongo los dos es porque al parecer la traducción es muy reciente y esta en proceso de revisión). Bastante conciso y la mayoría de los conceptos (si no eres nuevo completamente en programación funcional) se cogen rápido con la excepción quizás de los functores y las mónadas.

Realmente útil para iniciarse en ese complejo mundo que es Haskell. Seguramente acabe cogiendome la versión en papel de amazon

Calculo de numeros primos

En un problema que resolvi recientemente en el proyecto euler, descubrí un algoritmo sencillo para calcular numeros primos: la criba de eratóstenes El cual inicialmente traduje a python como:

1 def eratostenes(m):
2     primos = set(range(2,m+1))
3     for i in xrange(2,int(sqrt(m))+1):
4         if i in primos:
5             for j in xrange(2,m/i+1):
6                 primos.discard(i*j)
7 
8     return primos

No comento el código por continue.

El arbol de navidad de QBert

En el weekly python newsletter, enlazaban al problema de sacar la suma máxima, dado un árbol y utilizando el movimiento del clásico videojuego qBert (no del todo cierto porque qBert sí podía subir, pero eso son tecnicismos). El árbol en concreto sería así:

chrismasTree =   [
                [75],
               [95,64],
             [17,47,82],
            [18,35,87,10],
 
continue.
Previous » « Next