Tag programacion - Userlinux.net

Posts sobre el tag programacion

Gamificación en la programación

14.Sep.2011 ~ 2 Comentarios ~ 460 Lecturas

Y sin haberlo preparado me ha salido un pareado. El fenómeno de la gamificación se está extendiendo en montón de ámbitos, hoy en día es muy normal desbloquear logros e ir subiendo de nivel en tiendas online, redes sociales, foros especializados y cualquier otro tipo de aplicación que lo haya implantado.

Releyendo el artículo del amigo Alberto Luengo sobre este nuevo "palabro" llego a la conclusión de que todo sería mucho más divertido en el fantástico mundo de la programación si hubiera alguna metodología organizativa que tuviera un plugin para implementar dicho nivel motivacional.

Imaginaos un Scrum que en cada fin de sprint otorgue un logro al usuario más activo, al que más lineas de código haya escrito o al que más issues haya cerrado. Sé que es un ejemplo muy específico pero sería fantástico y motivador competir con tus compañeros de grupo por ser el "Major del ACL de autentificación".

Django: templatetag pygments

18.Apr.2011 ~ 4 Comentarios ~ 965 Lecturas

Cuando empecé a programar mi propio pasteador de código (post relacionado) una de las features que quería incorporarle era un mínimo coloreado que facilitara la lectura del mismo. Navegando, leyendo y preguntando vi que ya existía pygments así que ¿por qué reinventar la rueda?.

Obviamente tenía que aprender a integrar este tipo de addons dentro de mi proyecto Django... y así me enteré de la existencia de los templatetags. Crear uno es sencillo, hacemos una carpeta templatetags dentro del directorio de la aplicación (con su respectivo __ini__.py) y dentro un colorea.py con el siguiente código:

Categorías:

Google AI Challenge

26.Nov.2010 ~ 2 Comentarios ~ 880 Lecturas

Si es que me dejo llevar, lo sé, pero nunca había participado en un reto de programación y esta vez Juanjo me ha puesto los dientes largos, así que antes de lo que pensaba ya estaba inscrito y con el starter pack descargado para empezar a analizar que era eso del Google AI Challenge.

Sin embargo los primeros problemas llegaron a la hora de ejecutar la partida simulada en local. A través de un comando en java le decimos al sistema que simule una partida entre nuestro bot y uno de los que vienen de ejemplo en un mapa concreto, pero el Player2 (el bot de ejemplo en java) siempre devuelve un timeout:

$ java -jar tools/PlayGame.jar maps/map1.txt 1000 1000 log.txt "php MyBot.php" "java -jar example_bots/RandomBot.jar" | java -jar tools/ShowGame.jar
WARNING: player 2 timed out.
Turn 1
Player 1 Wins! 

Podría estar contento porque siempre gano, sin embargo me da la sensación de que al subir el bot no les va a hacer mucha gracia así que buscando por los foros de la web veo que no soy al único que le pasa, es un problema común a todos los que no tienen las locales en inglés. Solución:

$ java -Duser.language=en -Duser.region=US -jar tools/PlayGame.jar maps/map1.txt 1000 1000 log.txt "php rBot.php" "java -Duser.language=en -Duser.region=US -jar example_bots/RandomBot.jar" | java -jar tools/ShowGame.jar

Bueno, el tema es que he modificado levemente la estrategia del robot que viene por defecto en el starter kit y lo he subido, aquí podéis visualizar las batallas que lleva. De momento voy mejor de lo que pensaba puesto que al no haber hecho gran AI esperaba que me pulieran por todos lados.

No sé si se puede forzar un enfrentamiento directo con el bot de Juanjo, pero siempre nos queda la de hacerlo en local y subir el ¿flash? resultado de la partida, ¿he oído reto por algún sitio? ;).

Diving into Python #2

25.Nov.2010 ~ 1 Comentarios ~ 591 Lecturas

No es que haya avanzado demasiado pero si algo me ha quedado claro despues de 15 páginas de buceo en este nuevo lenguaje es que todo en Python es un objeto. Mark Pilgrim no se cansa de repetirlo las veces que haga falta.

Una vez instalado en todas las máquinas desde las que estoy siguiendo el curso (ha sido sencillo porque ya estaba instalado) he escrito mi primer programa:

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

if __name__ == "__main__":
    myParams = {"server":"mpilgrim", 
                "database":"master", 
                "uid":"sa", 
                "pwd":"secret" 
                }
    print buildConnectionString(myParam

Y hemos aprendido a declarar funciones, a llamar a objetos, lo que es el doc string, como importar archivos para utilizar sus funciones, la correcta indentación del código, etc. El siguiente paso será tener claros los tipos de datos (tuplas, diccionarios y demás), lo que es el módulo de __name__ ==" __main__" y como utilizarlo.

Todo en menos de media hora y con telecinco de fondo, así que tiene el doble de mérito. Si no se quieren perder... sigan buceando con nosotros.

Categorías:

Diving into Python #1

24.Nov.2010 ~ 3 Comentarios ~ 743 Lecturas

Este mediodía he ido a por mi primer paquete de Amazon, se trataba de un lujo de dos libros sobre mi nueva aventura. La verdad es que -siendo sinceros- cada día que pasa me aburre un poco más programar en PHP como un autómata y era la única forma de atacar esa pasividad ante un nuevo lenguaje de programación:

¿Por qué Python y Django?, pues ha sido una elección bastante sencilla, después de valorar varias alternativas me apetecía algo que realmente fuera RAD y que tuviera una extensa documentación que poder llevarme a la boca. Tenía dos opciones: Python y Ruby así que, tal vez por madurez del proyecto, por influencias directas como Borja, o por querer empezar "la casa por el tejado"... decidí validar de una vez el "order" y ponerme a bucear, me explico.

El argumento de "la casa por el tejado" tiene una explicación algo más racional. Hace algunos días y para comprobar el funcionamiento de Django puse en práctica un ejercicio habitual, migrar una mini aplicación de PHP a este nuevo framework. El experimento salió mejor de lo que pensaba -aunque eso da para otra anotación- pero lo más importante es que resultó divertido y no puedo negar que me ayudó a decantarme a favor del pony.

Sea como fuere intentaré desenpolvar y sacarle brillo a la experiencia de empezar de nuevo desde cero con algo. Y aquí estará este humilde sitio para contarlo, si queréis :).

[OT] Tienda de Perros

01.Jun.2010 ~ 1 Comentarios ~ 647 Lecturas

Aunque he puesto el off-topic me apetece comentar un proyecto al que estoy ligado en mayor o menor medida. Como sabéis BidoBido, DiscoAzul, Arenal, PlanetaDeJuego, Picsystems... y muchos otros proyectos son en los que he estado trabajando alrededor de estos dos últimos años y medio.

Ahora le ha llegado el turno la Tienda de Perros, que hoy nace gracias a la amplia experiencia que tiene todo el equipo humano que compone esta apasionante empresa. En la tienda encontraréis todo lo necesario para vuestras mascotas, alimentación, juguetes, higiene...

Así que si tenéis un perro y queréis entrar en una de las mayores comunidades de habla hispana hecha por y para vuestras mascotas, Perros.com os espera con los brazos abiertos.

Categorías:

Programador: definición perfecta

22.Feb.2010 ~ 3 Comentarios ~ 2428 Lecturas
Programador, definición: Programar no es como hacer chorizos ni poner ladrillos, programar es un trabajo puramente intelectual, quizás la tarea más intensiva intelectualmente que conozco. A más horas, no hay más producción, a veces un programador puede ser más productivo en una mañana que en 2 semanas y lo más fascinante, esto no es un problema a resolver, sino algo inherente a la tarea de programar y hay que aceptarlo. Si no te gusta te puedes dedicar al cultivo del champiñón o cualquier otro negocio donde el resultado sea más predecible.
Categorías:

Agregando locales en Debian

03.Nov.2009 ~ 5 Comentarios ~ 1399 Lecturas
Cuando jugamos con archivos .po y .mo en un proyecto web para dar soporte a distintos idiomas tenemos dependencia de las polémicas locales de cada sistema. Vamos a intentar solucionarlo.

En Debian -y en cualquier distribución desde que se sabe hacer- es sencillo, con el comando locale podemos saber las locales que tenemos instaladas:
# locale -a
C
POSIX
eS_ES.utf8
Pero nosotros queremos modificar esa lista, agregar nuevas locales o eliminar las que no se vayan a usar.

Primeros pasos con Mercurial

28.Oct.2009 ~ 8 Comentarios ~ 2617 Lecturas
Debería haber escrito este post hace algún tiempo pero ya se sabe como somos la gente importante que no tenemos tiempo a nada (modo ironic off). De todas formas nunca es tarde así que allá vamos, a adentrarnos en el maravilloso y fascinante mundo de Mercurial (hg para los amigos).

A estas alturas todos sabréis que Mercurial es una herramienta de sistema de control de versiones multiplataforma para desarrolladores de software implementado en Python (wikipedia dixit). Lo que igual se hace menos familiar es la facilidad con la que podemos crear un repositorio en 3 simples pasos:

¡Felíz día del programador!

15.Sep.2009 ~ 0 Comentarios ~ 623 Lecturas
Dos días más tarde de lo habitual -es lo que pasa cuando uno no se entera de la fiesta- quisiera enviar mis felicidades a todos los programadores e intrusos laborales que -por H ó por B- tienen que ejercer de picateclas.
Día del programador
Más información sobre la iniciativa. Así que ya sabéis chicos, a celebrarlo que son dos días (de retraso). (vía @javivf blog).
Categorías:

Buscar

Cargando...

Últimos comentarios

  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece
  • r0sk
  • flexo
  • r0sk
  • MarcosBL
  • r0sk
  • isra

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

bake ubuntu blogsfera ps3 barça programación conciertos freebsd twitt mundial macosx frases lugo nintendo deportes futbol software iphone vacaciones blog ds league canción opinion juegos cake seguridad champions games linux hack 2008 mac alemania_2006 web bash cumpleaños lucux mysql humor bsd userlinux sysadmin cakephp ssh openbsd 2007 django films personal rfilms apple felicidades blogs debian meme php rsidenotes twitter sidenotes

Archivo

Social

Enlaces de interés