ET Server Applet

Hace un tiempito que había empezado un Applet para el panel de Gnome que indica el status de un servidor particular del juego Wolfeinstein : Enemy Territory. Hoy finalmente pude lograr algún progreso :

La ventana de Status

La información que da hasta ahora es :

  • Lista completa de los jugadores conectados
  • Cantidad de lugares y lugares libres en el servidor (con un indicador visual)
  • Configuración de IP:Port del servidor a monitorear
  • Posibilidad de usar Proxy
  • Mapa actual

Algunas cosas que tengo que arreglar antes de sacar la primer versión (o espero hacerlo) :

  • Agregar un GtkTreeModelFilter para ordenar la lista de jugadores
  • Lidiar con un problemita de paso de datos entre el Thread de la GUI y el Thread que realiza la conexión HTTP
  • Probar, Probar, Probar 🙂

GPuzzle

GPuzzle es un simple programa realizado en Mono y GTK# de un viejo juego que tenía cuando era chico. El objetivo es ordenar la secuencia de números que se nos presentan, como se ven en las imágenes de ejemplo.

El otro día se me ocurrió hacerlo cuando leí que Sam Loyd había comercializado un juego llamado The Fifteen Puzzle, cuyo desafío era ordenar la secuencia de números, comenzando solamente con el 14 y 15 invertidos. Claro, que años más tarde un matemático demostró que ese juego no tiene solución :-), utilizando una técnica que mide el «nivel de desorden», con lo que se deduce que para que tenga solución debe tener un nivel par, y el juego de Lloyds tenía nivel de desorden 1 :-), el premio que ofrecía estaba bien a salvo.

Juego Terminado Formación Inicial

Como verán, Debian Sid está un poquito rota y las cosas se ven medio mal, pero no le presten importancia :-), lo mismo a mis feos recortes de imágenes apurados 😉

Bien, aún no está terminado, pero ya funciona y se puede jugar. Para descargarlo pueden utilizar mi repositorio Darcs bajando el repositorio GPuzzle.

GDA – Gazer Darcs Server

Eso mismo, hoy me encargué de crear mi repositorio Darcs para ver de que se trata. Aunque no tengo ni idea si estoy dejando mi vida en manos del mundo, les dejo la dirección de mi server : http://www.gazer.com.ar . Si alguno sabe que debería cerrar algo o restringir lo otro, por favor avise :-), no he tenido tiempo de terminar de leer la documentación.

Como ejemplos de prueba he puesto unos demos de la bibliteca SDL que hice hace mucho tiempo, y que creo que aún son compatibles con la API 1.2 de dicha biblioteca, si no lo son, se aceptan parches 😉

Todavía tengo que resolver algunos problemas con el envío de mails, ya que no he terminado de entender como es este temita en darcs.

Update: Hablando con albertito aprendí un poco más sobre Darcs. Lo más difícil es pensar que los repositorios son distribuídos, ya que uno está muy acostumbrado a pensar en repositorios centralizados. También modifiqué la configuración de mi Apache, ya que el CGI funciona solo como un viewcvs. Los repositorios se encuentran entonces en http://www.gazer.com.ar/repos/. Por ejemplo , para obtener el ejemplo de rotar una imagen con SDL solo basta hacer :

 #> darcs get http://www.gazer.com.ar/repos/rotar

El único problema que le encuentro al método HTTP es que no conserva los permisos de los archivos, por lo que los scrips (como el configure) pierden sus permisos 😦 …

Oregano 0.40.0 liberado!!

Luego de casi un año de trabajo por parte de mucha gente, Oregano 0.40.0 ve la luz. Esta es la primer versión estable desde que hemos comenzado el desarrollo. Mucho ha pasado, mucho ha cambiado y mucho queda por hacer. Personalmente me siento aliviado, si bien se que estoy sacando de prepo esta versión, es un paso que hay que dar algún día, que mejor que el día de mi cumpleaños 🙂

Oregano (Stable) 0.40.x

El código es lo suficiente estable para salir a vivir su vida, aunque quedan algunos detalles por resolver que se irán arreglando en versiones posteriores de la rama estable, como ser :

  • Ir agregando la documentación
  • Ir agregando las traducciones que nos lleguen (o ir aprendiendo todos los idiomas para hacerlas :-D)
  • Bugfixes 😛

El HEAD del CVS va a pasar a ser la versión 0.50.x, en cuando realice el branch de 0.40.

Me siendo realmente muy contento …. ahora veremos como sigue el cuento 🙂

Cuenta Regresiva!

Si!, estamos solo a horas de la fecha propuesta para la salida de la primer versión estable de esta nueva etapa del desarrollo de Oregano. El nuevo plot window está casi terminado (seguramente con varios bugs :-P), permitiendo exportar a PNG(Portable Network Graphics) y Postscript. Básicamente lo que faltaría es una toolbar para las funciones de zoom, y con eso ya me conformo para que salga 😉

Sería interesante que todo el que pueda comience a utilizarlo y probar compilarlo, detectar errores bobos de último momento y ese tipo de cosasa.

Por otro lado, hice mi primer HIG compatible Window :-P, aunque seguro Andrés tendrá que tocarla un poco, fue todo un desafío :

Oregano Export Properties Window

Más Plot de Oregano

Finalmente la herramienta de selección para el zoom en la ventana de ploteo anda como quería, solo era un error mío, ya que Cairo usa los colores RGB(Red Green Blue) en un rango de 0 a 1 y yo los estaba poniendo de 0 a 255 :-P. Una cosa que faltaría hacer es seguir el color del tema de Gtk. El Resultado :

(Plot Selection Tool)

Ya que está avanzando bien, y cairo lo soporta muy bien, agregué un lindo «Save PNG» en el menú de la ventana para probar y …. Oregano exporta las gráficas a PNG 🙂 … esta semana completaré algunos detalles (como detectar que libcairo tenga soporte para PNG(Portable Network Graphics), cambiar el tamaño cuando se guarda, agregar otros backends como PS, tal vez fondo transparente para los PNG, etc). Un ejemplo de un PNG realizado con Oregano :

Oregano Save PNG Feature!

Oregano Update

Salió Oregano 0.30.3 !! .. Cambié el número de versión de 0.3.X a 0.30.X para finalizar el problema de versionado de los paquetes en las distintas distros!..

Como cambio principal, está el nuevo sistema de ploteo.

Oregano se moderniza

Cansado de linear con un bug en la ventana de plot y su total incomodidad para hacer algo que se vea bien, decidí finalmente agregar el GtkCairoPlot como engine de render. Fue un hack de unas 3 horas, al que le queda mucho para que quede bien. Pero es un avance, ya gráfica funciones.

Espero subirlo al CVS en los próximos días, y seguramente saldrá la próxima versión al mismo tiempo.

Ahora a empezar los retoques 🙂

Oregano en Gentoo/Sparc

Ya había comentado antes sobre el eBuild de Oregano. Hoy gustavoz, uno de nuestros Gentoo hackers estuvo mejorando el eBuild ya que faltaban ajustar dependencias y otras cosas, y de paso si queda el como maintainer mejor, así lo podemos apretar y queda todo entre familia :-D.

Para probarlo, lo hizo es su pobre y obsoleta Sparc (realmente no conozco mucho la arquitectura, mi comentario es de NVidia) y nos dejé un lindo screenshot :

image
(son 200kb aprox la imagen ampliada)

Vale, no es mérito nuestro que ande en Sparc, pero da igual 😀

Parche para MCatalog

MCatalog es un catálogos de libros y películas escrito en Mono+GTK# que promete cosas muy lindas. Puede manejar préstamos de nuestras cosas y lo más lindo es que busca en Amazon toda la info del libro/película (incluida una fotito).

Pero bueno, como mi ISP me obliga a usar proxy http, tuve que empezar a leer un poco del System.Net de la plataforma .NET para ver como diablos se le agrega un proxy a las conexiones HTTP.

El primer intento fue exitoso, pero solo era local para el System.Web.Services.Protocols.SoapHttpClientProtocol, que tiene una propiedad que es proxy donde le asignamos una instancia de WebProxy y sale todo andando bonito. El problema es que el resto de las consultas las hace con WebClient, que dentro usa WebHttpRequest. Este último soporta proxy, pero como esta oculto dentro del WebClient no tenia acceso a él.

Luego de un rato de googlear y leer la documentación de MSDN encontré System.Net.GlobalProxySelection !, la magia estaba hecha .. Tiene una propiedad que se llama Select donde asignamos una instancia de WebProxy , y todas nuestras HttpRequest utilizarán proxy cool.

Luego de fixear un par de cosas más, como ser sacar la configuración desde el Gnome Proxy Settings, el parche vino a mí y lo envié a los desarrolladores. Solo falta ver si lo aceptan mrgreen.

El parche fue realizado sobre la versión 0.0.4.