Predesys acaba de ser implantado experimentalmente en la asociación de estudiantes Club .NET de Sevilla de mi escuela, a la que pertenezco. De momento está en un servidor temporal a la espera de poder disponer de otro definitivo, pero funciona bien. He modificado el cliente People Presence Client para usarlo entre los miembros de la asociación, por lo que, con un simple programa para Gnome ya configurado podemos saber quiénes están en el aula de la asociación.
La siguiente imagen es una captura de pantalla del programa cliente que estamos usando en la asociación:
Por fin he liberado ya la primera versión (0.1.0) del proyecto, es decir, la primera versión de cada uno de sus componentes principales (Servidor, API de Servicios y Radar). También he liberado las primeras versiones (0.1.0) del servicio que muestra las personas registradas detectadas que estaba haciendo (servicio People Presence) y de un cliente para Gnome que consume dicho servicio (People Presence Client).
Pronto crearé uno o varios vídeo-tutoriales para enseñar cómo se instala, configura y usa el proyecto.
¡Pues eso mismo! El equipo de 90manager se avergüen… digo enorgullece de publicar la versión 0.0.2.5 de su simulador de ligas de fútbol online.
¿Pero no ibais a publicar la 0.0.2?
Sí, ese era el plan. Publicar justo después del Hackathón la versión 0.0.2. Lo que pasó es que no nos quedó muy convincente, es decir, tenía unos ligeros fallos por pulir y sobre todo, era un horror preparar un equipo con la interfaz que estuvimos diseñando. Por eso en vez de publicar la versión 0.0.2 con la que costaba jugar, decidimos arreglar esos fallos y replantear como preparar un partido. Y de paso refactorización al canto.
Entonces lo que tenéis hecho es…
Pues con la versión 0.0.1 (Que no tuvo nota de publicación) Se podía registrar un jugador y crear sus ligas y sus equipos y jugar contra la máquina. Y poco mas.
Así que los cambios más importantes de la versión 0.0.2.5 son:
- Añadidos CSS, Imágenes, estilo y diseños a la web, ahora tiene una interfaz más agradable(Aunque siga siendo horrible)
- Añadidos atributos a los jugadores
- Añadido generador de nombres de jugador automático (Es un festival del humor)
- Los partidos se juegan dependiendo de la formación y de los atributos de los jugadores
- Cada partido muestra una lista de sucesos
- Varios usuarios pueden jugar en una misma liga, esto viene a ser, ¡¡¡PIQUE!!!
- ¡Formularios de contacto que funcionan! (No abuséis porfa-porfa-plis recubierto de nata)
- Registro de usuarios vía e-mail
- Preparación de partido basada en HTML5. Esto viene a ser, que se usará Drag&Drop (para los de la LOGSE: agarrar y soltar) en los jugadores para situarlos en el campo o el banquillo. (Aviso: al parecer no funcionan aún las etiquetas de HTML5 para el drag&drop en Opera, aunque no está confirmado aún)
- Versión colgada en internet
- Enlaces varios al blog, forja, wiki, twitter, etc.
¿Y ahora que es lo que vais a hacer?
Ahora empezaremos a planear la versión 0.0.3 codename “Mercaillo”, la cual incluirá mejoras en la interfaz, posibilidad de ligas femeninas y mixtas, partidos que no se jueguen instantáneamente, automatización de encuentros, mercado de compra/venta de jugadores y arreglar los fallos que vayamos encontrándonos ahora mismo. Próximamente se publicará una nota más detallada en este blog.
No vamos a descansar, pues ahora mismo estamos en el 2º puesto de la forja Red IRIS, y queremos mantenernos por esos puestos hasta el fin del concurso.
¿Bueno vale, pero, donde puedo ver esto?
Lo normal en los proyectos es distribuir la aplicación mediante un ejecutable o un archivo comprimido, pero en nuestro caso al ser una aplicación web, hemos preferido colgar el proyecto directamente en:
http://90manager.alwaysdata.net/
Sin embargo, para aquellos que quieran probar el proyecto y ver el código pueden hacerlo mediante el svn de la forja Red IRIS
Dicho todo estoy, vamos a echarnos unas partidillas por aquí
Resulta que el último problema que me surgió no era por culpa del proyecto, sino del servidor donde lo estaba probando, que seguramente tenga algún Firewall u otro dispositivo similar que bloquee el Servidor. He probado el proyecto en el servidor de otra asociación de estudiantes de mi escuela (el Club .NET de Sevilla) y funciona perfectamente. La verdad es que ver que el Servidor era accesible remotamente y, por tanto, ya funcionaba todo, me he alegrado bastante.
Voy a mejorar el servicio que hice hace poco, People Presence, y poco después liberaré la primera versión del proyecto.
Dos meses y medio, el ritmo decrece... :-P Lo cierto es que como bien predije este cuatrimestre iba a ser de aupa, y lo ha sido: jornadas de 12 horas, mudanza y media hora mas de transporte... y trabajo para casa los fines de semana. Por suerte hace dos semanas se hizo la presentación de los trenes y no solo la señora Cristina Fernández de Kirchner (para que veais como cotiza el niño... :-D ), sino que encima antes de que se terminara el proyecto conseguí trabajo en Vocento, y tiro oca porque me toca: estoy en todo el centro, tardo la mitad en llegar, el horario es flexible, las horas son ajustadas, el ambiente es agradable, el trabajo es tranquilo... y me pagan un 33% mas. Vamos, que me ha tocado la primitiva :-D Es por eso que despues de varios meses de estress y no dormir no solo vuelvo a tener fuerzas para estudiar en el tren sino que mucho mas importante, vuelvo a tener TIEMPO, y es por eso por lo que en las dos ultimas semanas le he pegado un chute bien fuerte a PirannaFS :-DPara empezar, finalmente pude probar como seria el sistema usando PyFilesystem, y no hay lugar a dudas: me ha convencido. Dejando de lado que por su filosofia tan pythonica se queda a bastante alto nivel de lo que seria un sistema de archivos normal (el acceso a los sectores no se hace directamente sino a nivel de archivos...) lo cierto es que su uso de excepciones hasta la estenuación lo hace realmente potente y sencillo de programar: adios a comprobar continuamente valores de retorno que no nos atañen, si no nos interesa una excepcion ya habra otro que se encargue. Relax... y una limpieza de codigo y un estilo Zen minimalista increible. ¡Si hasta en algunos casos los comentarios de cabecera ocupan mas que el codigo! :-PAdemas, este reinicio cual ave Phoenix me ha permitido el encontrar algunos fallos ciertamente molestos y solventar algunas idiosincrasias como el hecho de que la longitud de los chunks empezara en 1 para apuntar siempre al siempre simplemente por ahorrar algunas sumas de vez en cuando, aparte de poder limpiar codigo y encontrar soluciones mas optimas a algunos problemas, lo cual me ha llevado a pensar que al tener ahora un nucleo mas limpio, quizas si sea buena idea el tener tambien una version Python-FUSE del sistema de archivos saltandome algunas capas de abstraccion de PyFilesystem. Al fin y al cabo, el usar excepciones en lugar de retornar valores de error era el paso logico a dar para tener un codigo en condiciones, hoy dia el hacer las cosas al "estilo C", por muy simple, portable y optimo que pudiese ser, es un sin sentido teniendo opciones mas potentes (mismamente C++).Ahora bien, despues de haberme metido en faena, efectivamente PyFilesystem no es la panacea: todavia esta muy verde e inmaduro, y no esta pensado para desarrollar sistemas de archivos nativos... ni parece que tengan intencion de hacerlo. Al igual que FUSE era famoso porque aparecieron multitud de sistemas de archivos "de juguete" (los sistemas de archivos para acceder a sistemas online son legion) esa filosofia es mucho mas real en PyFilesystem, lo cual tampoco es malo si lo que se pretende es que sea mas facil el desarrollo de sistemas de archivos. Sin embargo esta facilidad lleva implicita cierta abstraccion como es el hecho de acceder a nivel de ficheros (al menos, al ser "file-like objects", la integracion y uso de estos directamente en codigo python externo es directo), y tambien hay algunas decisiones como la ausencia directorio actual y el que los directorios realmente sean sub-sistemas de archivos (logico desde un punto de vista jerarquico-recursivo...) lo hace un poco extraño y dificil de manejar, aparte de que no hay definidas clases neutras desde las que poder heredar de _nada_. Al menos he intentado solucionar estos fallos en mi implementacion de PirannaFS sobre PyFilesystem, asi que cuando lo tenga mas fino y estable los adaptare a la libreria y enviare los parches correspondientes a ver que pasa :-)Y recuerden niños: no olviden supervitaminarse y supermineralizarse hacer unidades de test para todo: no veais el subidon de adrenalina que da despues de haber hecho una metamorfosis completa del codigo el no saber por donde empezar a comprobar que todo esta bien, encontrarse perdido dentro del codigo de PyFilesystem unas unidades de test basicas, ver como te dicen exactamente donde estan los fallos (incluso algunos que ni siquiera suponias que podrias llegar a tener, como es la corrupcion de archivos de gran tamaño) e ir resolviendolos uno a uno (a veces mas ;-) ) poquito a poco y pasar de no superar ninguno de los 49 a que solo queden 10 y la mayoria relaccionados con los hilos... :-D
Como parte del ciclo 4 de desarrollo, se ha trabajado en la utilización de las GNU Autotools para la configuración, compilación e instalación de la aplicación. GNU Autotools permiten, haciendo uso de los conocidos comandos “configure, make y make install“, …
¡Muy buenas a tod@s! Llevo ya unas dos semanas que no actualizo por aquí, pero entre pitos y flautas he tenido que dedicarle mi tiempo a otros menesteres no relacionados con el proyecto. Siento la inconstancia (relativa), pero vengo cargadito de novedades. En primer lugar, me complace anunciar que la biblioteca multimedia para desarrollo de [...]
Hola a todos de nuevo,
hoy he comenzado ya a crear un poco la documentación del proyecto, aunque ahora mismo solo ha sido comentar las clases y funciones del código para explicar como funciona y que hace cada cosa, espero que durante la semana la documentación vaya cogiendo forma y quede bastante bien.
La que he creado hasta ahora a sido bastante fácil gracias a mi yo del pasado que explicaba todas las cosas [1] para situaciones como esta, en estos casos e siento bien conmigo mismo al saber que al menos a mi me sirve lo que creé en su día.
Un saludo !!
[1] http://pyrubik.wordpress.com/2009/04/02/creada-documentacion-en-html-y-en-pdf/
Hola,
hoy he arreglado por fin un fallo que me estaba encontrando en el proyecto desde hace ya bastante tiempo, el cual era que al guardar las piedras que detectaba, me guardaba la piedra que no era, la que desechaba en vez de la candidata. Entre que unas veces le echaba un vistazo y no encontraba el fallo, y otras que decía, -se donde está fallo pero ya lo arreglaré, no me preocupa mucho-, aunque la verdad me daba un poco de coraje cuando fallaba, por que la creación del fichero .sgf donde guardaba la partida, se guardaba mal y quedaba feo.
Pues eso, hoy ha sido el día que he encontrado el fallo, como os podeis imaginar, un fallo tonto que si lo miras cuando tienes que mirarlo se ve fácilmente, pero como lo mires buscando el fallo, no lo encuentras de lo tonto que es.
Un saludo !!