Ubuntu@Work

February 22nd, 2005 | by | general, mono

Feb
22

Ayer y hoy estuve sin PC en el trabajo por culpa del micro que se quemó. Cuando tuve micro nuevo, tuve que cambiar el mother porque no lo soportaba, y con el nuevo mother algo falló y me quedé sin disco (solo lógicamente). Por lo que al tener que reinstalar, aproveché y migré a Ubuntu Linux.

La tarea fue muy dificil, no por la distro, sino porque luego de 4 horas de tratar de instalarlo (pasando por pruebas con Knoppix 2.4 y 3.6, y cambio de memoria), descubrí que el mother nuevo tiene problemas con el IDE0 y por eso fallaba. En fin, ya tengo cambie el que no andaba y terminó de instalar mi PC para poder retornar a mis tareas diarias.

GPuzzle

Leyendo este artículo de OsNews.com, me encontré con que nombraron a GPuzzle entre los programas desarrollados con Mono “menos conocidos” :-) , claro, seguramente la editora tomó una lista de GnomeFiles.org y no ha tenido tiempo de probarlos todos :-P , porque GPuzzle apesta :-) (y lo dice quién lo programó). Una excusa para mejorarlo :-P

No Comments »

Ponele un TrayIcon a tu aplicación

January 20th, 2005 | by | mono

Jan
20

Es realmente muy simple hacer que nuestra aplicación use el área de notificación de Gnome utilizando Mono y C#, gracias a que Todd Bermann hace ya unas semanas escribió el módulo Egg TrayIcon enteramente en C#, liberándonos de la tortura del código en C :-) … realmente se implementa en unos pocos minútos, veamos.

1) Primero bajamos el archivo TrayIcon.cs que Todd Bermann ha hecho.
2) Escribimos nuestra applicación de prueba, contará hacia adelante (hasta el overflow del int) :

// Namespaces que vamos a utilizar
using System;
using Gtk;
using Gnome;
using Egg; // Este namespace está definido en el archivo TrayIcon.cs
 
// Nuestra clase de ejemplo
class TrayTest {
  static int count = 0;
  static Label label;
 
  public static void Main(string[] args) 
  {
    EventBox eb;
    TrayIcon trayIcon;
    // Creamos un programa
    Program test = new Program ("Test", "0.0.1", Modules.UI, args);
 
    // Creamos la etiqueta
    label = new Label ("Hola Mundo");
 
    // No realmente necesario para este ejemplo, pero si deseamos agregar
    // menú contextual o tooltip es necesario
    eb = new EventBox ();
    eb.Add (label);
 
    // Creamos el tooltip
    trayIcon = new TrayIcon ("Test");
    trayIcon.Add (eb);
    trayIcon.ShowAll ();
 
    // Iniciamos el texto
    Count ();
 
    // Refresco cada 1 segundo
    GLib.Timeout.Add (1000, new GLib.TimeoutHandler (Count));
 
    // Done!, Corriendo!!!
    test.Run ();
  }
 
  public static bool Count ()
  {
    label.Text = String.Format ("Voy contando {0} veces ...", count);
    count++;
    return true;
  }
}

3) Compilamos nuestra aplicación :

 $ mcs -target:exe -out:TrayTest.exe -pkg:gtk-sharp -pkg:gnome-sharp *.cs
 Compilation succeeded

4) La ejecutamos :

 $ mono ./TrayIcon.exe    (en Debian con "./TrayIcon.exe" alcanza, no se si otras distros usan binfmt por defecto)

Si no tenemos área de notificación en nuestro panel de Gnome, lo agregamos antes para ver el resultado, y veríamos algo como :

Ejemplo de TrayIcon

Como se darán cuenta, muy simple y rápido …. Espero que lo disfruten!

2 Comments »

GPuzzle

December 7th, 2004 | by | mono, programación

Dec
07

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.

No Comments »

Parche para MCatalog

October 25th, 2004 | by | general, mono, programación

Oct
25

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.

No Comments »