07 julio 2008

Desde hace mas de un año

De nuevo aqui con una entrada para quitar el polvo de este blog, por el momento no tengo codigo que pegar, pero lo que si se tiene es un proyecto en mente que espero no entumirme demasiado e irlo publicando y dandole forma, lo mas seguro es que sea programado con c# para darle un mejor sabor a todo esto, pero en fin dejo esto hasta aqui para irme preparando y ademas para desempolve con estas lineas es suficiente.

19 enero 2007

Concierto privado

Aqui dejo un video de un concierto privado del PDC03, tema "Miguel My Belle" dedicacion de Don Box a Miguel de Icaza.

18 enero 2007

Quemaduras por el Sol

Hace ya una tanda de años atras, recuerdo haber ido a la playa y pasar el día completo al sol sin bloqueador solar y pasarmela de lo lindo, al terminar el día solo tenia una leve quemadita por el sol que no pasaba a mayores, pero las cosas cambian, creces y tratas lo mas posible de no estar expuesto al Sol, así que la piel se hace mas sensible y claro no le quitemos credito al incremento de la radiación UV-B por la destrucción gradual de la capa de ozono, bueno creo que ya me sali del tema, el caso que en días pasados me decidi irme con mi familia a la playa, así que como nunca habia tenido problemas en la piel por el Sol, me atrevi a no aplicarme bloqueador solar y mucho menos andar en la playa con camiseta (no queria perder la oportunidad de mostrar mi gran abdomen mas de 100 cm) por lo que sufri unas quemaduras tremendas principalmente en la espalda, al menos ese día por la noche no pude dormir boca arriba y por la mañana tenia un dolor tan tremendo que queria andar sin ropa, en fin los siguientes días me la he pasando curandome las quemaduras y durmiendo boca abajo y no se hable de sentarme sin recargar la espalda por lo que ya ando con un dolor de espalda tremendo.

Quizas el leer esto despues me cause risa, pero lo unico que puedo decir es que ya no lo vuelvo a hacer y aconsejo no hagan lo que yo, jajaja, hasta luego y no sean muy duros y me llenen de mensajes de burla.

11 enero 2007

A la Alza

Empieza el año y ya las estimaciones inflacionarias de nuestros economistas han sido superadas en un poco mas de 0.04% y ahora con el alza del precio de la tortilla el panal se ha alborotado y las avispas andan bravas, claro sin considerar que los medios de comunicación lo resaltan a mas no poder y buscando por toda la republica el precio mas alto del kg de tortilla que primero decian $14, luego $15 y ahora resulta que ha llegado hasta $18.

Ahora segun nuestros secretarios dicen que el precio elevado se debe al alto costo del Maíz y que ademas nuestro campo mexicano no satisface la demanda de grano y que se debe recurrir a la importación, pero que pasa, si ya el campo mexicano ha sido olvidado, ahora quieren darle otro golpe mas, no creen que seria mas conveniente quitar a los intermediarios que compran barato al productor y almacenan el grano para venderlo caro.

En fin yo no soy economista ni tampoco pretendo serlo, pero lo que si quiero es que nuestro gobierno busque soluciones de largo plazo y no siga dando aspirinas.

10 enero 2007

Especificadores de formato

c -> Formato de moneda
d -> Formato decimal
f -> Coma fija
n -> Número
p -> Porcentaje
r -> Format para evitar perdida de precisión

Los resultados de los especificadores pueden diferir ya que dependen de las caracteristicas culturales consideradas en ese momento actuales por C#.

Ejemplo: Se muestra el resultado que proporciona el especificador 'c' cuando se trabaja con las caracteristicas culturales de Estados Unidos.

using System;
using System.Globalization;

class FormateoEU
{
public static void Main()
{
CultureInfo N = new CultureInfo("en-US");
string cadena = 12345.6.ToString("c",N); //Mostraria $12,345.60
Console.WriteLine(cadena);
}
}

01 enero 2007

Comienza el 2007

Despues de meses de espera empezamos un nuevo año, en primer lugar no sabia si escribiria una entrada este día y en segundo lugar no sabia si aguantaria 1 año con este blog, ya que las estadisticas nos dicen que para el 2007 mas de la mitad de los blogs creados seran abandonados, debido a las prestaciones de los nuevos celulares para comunicarse y otros rollos, pero como yo no tengo celular de los nuevecitos con camara ciber-shot incluida y conexión a internet, pues seguire escribiendo en este humilde blog, aunque a veces sea yo el unico que me lea jajajaja, en fin lo unico que espero es que tengamos todos mucha salud y que sea prospero el año 2007 y todos los venideros, me despido y no sean gandallas dejenme un mensaje, sean de los primeros por que luego el blog no tiene cupo.

20 diciembre 2006

Vista Preeliminar con C#

En ciertas ocasiones nuestro programa debe enviar por impresora información ya sea de una base de datos o de algun documento plano, pero entonces nos topamos con los diseñadores de reportes (cristal report) por llamarlo asi, pero que sucede cuando no lo tenemos a la mano, pues aqui planteo una forma interesante de enviar un archivo XML a vista preeliminar y claro desde aqui ya podemos imprimir, que es lo que se necesita:

Con este pequeño codigo es mas que suficiente

using System.Xml; //Con esto trataremos los objetos para XML
using System.Xml.Xsl;

Ahora el codigo de la función

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("s.xsl"); //Archivo con el que le daremos forma a nuestro archivo XML

//Aqui le aplicamos la transformación y lo guardamos como archivo HTML
xslt.Transform("Miarchivo.xml", "informe.html");

//Con un control webBrowser (disponible en el framework .NET 2.x ) insertado en nuestro form
//Cargamos el archivo HTML creado

web.Navigate(new Uri(Environment.CurrentDirectory + "file://informe.html/"));

//Ahora solo llamamos al metodo PrintPreviewDialog y listo

web.ShowPrintPreviewDialog();

Figura(1) Este es el control a insertar


Figgura(2) Asi es como saldria nuestra ventana con vista preeliminar


14 diciembre 2006

¿Y la educacion?

Con gran desconcierto escuchaba la noticia del recorte al presupuesto para la educación superior en México, y me pregunto, pensaran que le estaban dando mucho?, o por que el recorte?, estas cosas son las que me molestan, terminamos el año con el cambio de presidente despues de varios meses en disputas pos-electorales, despues la burla del gobierno austero y ahora el recorte, y para acabarla no tengo nada en mente para escribir en el blog y me pongo a escribir estas patrañas... me despido y que tengan un buen dia.

13 diciembre 2006

C# y xml

En dias pasados instale el visual c# express de Microsoft (nadie es perfecto jejeje), y para empezar me programe un directorio telefonico pero utilizando XML para almacenar los contactos y en realidad me agrado, aunque el codigo no esta muy optimizado en cierta forma es funcional, de momento aqui les dejo el pantallazo y el codigo, espero no sea muy criticado el hecho de haber abordado esto con Mono, pero recuerdo que solo es un ejemplo de prueba con Visual C# express, aunque no se ha perdido la esencia ya que seguimos utilizando C#.



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;



namespace WindowsApplication1
{
public partial class frmppal : Form
{
DataSet archivoXML;
DataGrid Grid;
public frmppal()
{
InitializeComponent();
}



private void frmppal_Load(object sender, EventArgs e)
{
Grid = new DataGrid();
Grid.Name = "Grid";
Grid.Size = new Size(200, 150);
Grid.Location = new Point(0, 50);
Grid.Dock = DockStyle.Fill;
pgrid.Controls.Add(Grid);



//crear un objeto para estilos en el Datagrid
DataGridTableStyle estilo = new DataGridTableStyle();
estilo.MappingName = "CONTACTO";
estilo.BackColor = Color.LightGray;
estilo.AlternatingBackColor = Color.LightSteelBlue;
estilo.ForeColor = Color.Black;
estilo.LinkColor = Color.Black;

//Crear objetos del tipo DataGridTextBoxColumn
//para cada columna de la tabla del Datagrid
DataGridTextBoxColumn columna = new DataGridTextBoxColumn();



//Configurar cada columna
//Esta es la primera columna
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Nombre del contacto";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "NOMBRE";
columna.Width = 280;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);
//Direccion
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Direccion";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "DIRECCION";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//CARGO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Cargo";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "CARGO";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//GRUPO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Grupo";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "GRUPO";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//LETRA
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Letra";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "LETRA";
columna.Width = 50;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);
//FAX
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Fax";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "FAX";
columna.Width = 90;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);
//EMAIL
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Correo Electronico";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "EMAIL";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//crear un objeto para estilos en el Datagrid
DataGridTableStyle estiloTelefono = new DataGridTableStyle();
estiloTelefono.MappingName = "TELEFONO";
estiloTelefono.BackColor = Color.Beige;
estiloTelefono.AlternatingBackColor = Color.AliceBlue;



//NUMERO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Numero Telefonico";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "NUMERO";
columna.Width = 300;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estiloTelefono.GridColumnStyles.Add(columna);
//TIPO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Tipo de Telefono";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "TIPO";
columna.Width = 180;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estiloTelefono.GridColumnStyles.Add(columna);
//ANOTACION
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Acerca del Telefono";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "DESCRIBE";
columna.Width = 220;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estiloTelefono.GridColumnStyles.Add(columna);



Grid.TableStyles.Add(estilo);
Grid.TableStyles.Add(estiloTelefono);
}



private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}



private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog fo = new OpenFileDialog();
fo.InitialDirectory = Environment.CurrentDirectory + "\\";
fo.Filter = "xml Archivos (*.xml)*.xml";
fo.RestoreDirectory = true;
if (fo.ShowDialog() == DialogResult.OK)
{
if (fo.OpenFile() != null)
{
archivoXML = new DataSet();
archivoXML.ReadXml(fo.FileName);
Grid.CaptionText = fo.FileName;
Grid.SetDataBinding(archivoXML, "CONTACTO");
//Grid.Update();
}
}
}



private void guardarToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
//escribir el DataSet al archivo XML
archivoXML.WriteXml(Grid.CaptionText);
archivoXML.Clear();
archivoXML.ReadXml(Grid.CaptionText);
MessageBox.Show("Datos Guardados", "Aviso al usuario", MessageBoxButtons.OK);
}
catch(Exception pollo)
{
MessageBox.Show("Error","Aviso al usuario", MessageBoxButtons.OK);
}



}



private void acercaDeDirectorioToolStripMenuItem_Click(object sender, EventArgs e)
{
frmacerce frmacerca = new frmacerce();
frmacerca.ShowDialog();
}
}
}


Cualquier comentario es bienvenido, si desean todos los archivos del proyecto, dejen su comentario y se los hare llegar.

30 noviembre 2006

Se acabo Noviembre

Asi como dice el titulo de esta entrada, se ha acabado Noviembre y solo una triste entrada en este, me pregunto a que se debera, sera por la nostalgia del fin de año?, pero en fin durante este mes descubri algo que quizas ya algunos conozcan, estoy hablando de un compilador de Php para generar ejecutables para Mono, si asi como se escucha, el compilador en cuestion va en la version 0.2, pero ya tiene bastante funcionalidad, y al igual que c# tambien puede integrarse Gtk, como ejemplo voy a escribir las siguientes lineas de codigo:

Codigo en PHP, guardado como >>>> EjemploPhp.php

< ? php
echo "\n\nEl blog de Gsur...!\n\n";
?>

Compilar el script de la siguiente forma

mono mPHP.exe EjemploPhp.php



si todo sale bien, tenemos el archivo >>>> EjemploPhp.exe


ahora ejecutamos y tenemos en pantalla: El blog de Gsur...!


Y listo, rapido creo yo, en la siguiente entrada mostrare un ejemplo de mPHP pero con Gtk, para descargar visitar
http://php4mono.sourceforge.net espero sus comentarios.

06 noviembre 2006

Proyecto en mente

Ultimamente he estado trabajando con una imagen jpeg y puntos sensitivos al paso del puntero del raton sobre esta, pero para ello lo he hecho con flash, por la facilidad que representa implementar estas situaciones, pero llegas al punto donde flash tiene sus limitantes y ya no es lo suficiente para lo que se quiere implementar, por este motivo estaba pensando como hacerlo con Mono, en realidad este proyecto es algo como un SIG, aunque no totalmente, ahora lo que me queda es investigar y claro si alguien ya lo hizo agradecere su comentario.

18 octubre 2006

Estas lluvias

Que barbaro 4 dias lloviendo sin parar, y claro ya esto ha dejado estragos en mi persona con tremenda tos y combinado con gripe, en que momento me ha sucedido, justo cuando he terminado el programa de sumatic y ya estoy en la documentación del codigo fuente, ni modos esto tendra que esperar ya que estoy mas que mallugado por la gripe, pero bueno no todo es programar en la vida.

16 octubre 2006

Terminado! Sumatic

Ahora si doy por terminada la version 0.1 de mi juego Sumatic programado en lenguaje c# y usando gtk# y glade para la interfaz del juego y claro todo esto bajo mono, ahora que ya funciona estoy limpiando un poco el codigo y viendo donde se puede optimizar, pero aqui les dejo 2 pantallas de una jugada espectacular que hice de prueba, por cierto solucione lo del arrastre de los numeros desde las Labels, claro que tuve que usar un EventBox, me costo trabajo e incluso no estoy convencido como lo utilice, pero en fin funciona de esa manera, si lo modifico despues ya sacare la version modificada, entonces aqui deja las pantallas y esten pendientes a la publicacion del codigo completo, la verdad he aprendido mucho al realizar este juego, entre lo aprovechable se encuentra el como hacer un Drag and Drop, manejo de un Timer y un ProgressBar, utilizacion de EventBox y utilización de Sqlite basico para almacenar los records y entre otras cosas interesantes, bueno aqui le dejo las pantallas para no aburrir.

Pantallas


12 octubre 2006

Cerca del fin Sumatic

Ya ahorita esta en un 65% el juego de sumatic, solo resta el codigo de los records, que tengo pensado almacenarlos con Sqlite para ponerlo mas interesante, pero todavia tengo un pequeño problema, utilice unas labels para recibir los numeros arrastrados y ahora el detalle radica en como regreso estos numeros o los muevo de los labels, ya que intente aplicar los eventos de arrastre y nada que no funciona, espero que alguien me pueda iluminar, y si no pues por el momento lo sacare asi y ya en la version siguiente cambiare las labels por unos botones o unos pictures, en fin aqui dejo una pantalla del avance.

Pantalla sumatic

Hasta el proximo post....

10 octubre 2006

Correcciones y pantalla modificada

Bueno aqui un breve cambio en la pantalla de sumatic y por lo que veo yo creo que habra mas cambios, estoy encontrando problemas en el arrastre, pero bueno aqui dejo parte del codigo y la nueva pantalla de sumatic.




Codigo


// ------------------------------------------ //
// Proyecto: Juego de sumas
// Desarrollador: gsur
// Licencia: GPL
// Blog: http:gsur.blogspot.com
// Email: rafamp78(dot)gmail.com
// ------------------------------------------
// mcs -pkg:gtk-sharp-2.0 -pkg:glade-sharp-2.0 -resource:vsumatic.glade Sumatic-0.1.cs
// mono Sumatic-0.1.exe



using System;
using Gtk;
using Gdk;
using GtkSharp;
using Glade;
class Sumatic
{
[Glade.Widget] Gtk.Window window;
[Glade.Widget] Gtk.HBox boxBotones;
[Glade.Widget] Gtk.Table tabla;
[Glade.Widget] Gtk.Button btNuevo;
[Glade.Widget] Gtk.Button btN1;
[Glade.Widget] Gtk.Button btN2;
[Glade.Widget] Gtk.Button btN3;
[Glade.Widget] Gtk.Button btN4;
[Glade.Widget] Gtk.Button btN5;
[Glade.Widget] Gtk.Button btN6;
[Glade.Widget] Gtk.Button btN7;
[Glade.Widget] Gtk.Button btN8;
[Glade.Widget] Gtk.Button btN9;
[Glade.Widget] Gtk.Button btN10;
[Glade.Widget] Gtk.Label lblN1;
[Glade.Widget] Gtk.Label lblN2;
[Glade.Widget] Gtk.Label lblN3;
[Glade.Widget] Gtk.Label lblN4;
[Glade.Widget] Gtk.Label lblN5;
[Glade.Widget] Gtk.Label lblN6;
[Glade.Widget] Gtk.Label lblN7;
[Glade.Widget] Gtk.Label lblN8;
[Glade.Widget] Gtk.Label lblN9;
[Glade.Widget] Gtk.Label lblN10;
int Nfila1, Nfila2, Nresultado;
static void Main()
{
Application.Init();
new Sumatic();
Application.Run();
}
public Sumatic()
{
Glade.XML gxml = new Glade.XML("vsumatic.glade", "window", null);
gxml.Autoconnect(this);
window.ShowAll();
btNuevo.Clicked += Nuevo_Juego;
TargetEntry [] te = new TargetEntry [] { new TargetEntry ("STRING", 0, 1), };
foreach(Gtk.Widget b in boxBotones)
{
Gtk.Drag.SourceSet (b, Gdk.ModifierType.Button1Mask, te, Gdk.DragAction.Copy);
b.DragDataGet += OnBtNDragGet;
}
foreach(Gtk.Widget lbl in tabla)
{
Gtk.Drag.DestSet (lbl, DestDefaults.All, te, DragAction.Copy);
lbl.DragDataReceived += OnlblNDropDragDataRecieved;
}
iniciar();
}
public void on_window_delete_event(object obj, DeleteEventArgs args)
{
Application.Quit();
}
public void on_btsalir_clicked(object obj, EventArgs args)
{
Application.Quit();
}
private void Nuevo_Juego(object obj, EventArgs args)
{
Random r = new Random();
Nfila1 = r.Next(100,999);
Nfila2 = r.Next(100,999);
Nresultado = Nfila1 + Nfila2;
string numeros = Nresultado.ToString();
if(numeros.Length < 4)
numeros += "?";
numeros += Nfila1.ToString() + Nfila2.ToString();
int i=0;
foreach(Gtk.Button b in boxBotones)
{
b.Label = numeros[i].ToString();
i+=1;
}
}
private void OnBtNDragGet(object o, DragDataGetArgs args)
{
Gtk.Button boton = (Gtk.Button) o;
Atom [] targets = args.Context.Targets;
args.SelectionData.Set(targets [0], 8, System.Text.Encoding.UTF8.GetBytes(boton.Label));
}
private void OnlblNDropDragDataRecieved(object o, DragDataReceivedArgs args)
{
Gtk.Widget source = Gtk.Drag.GetSourceWidget(args.Context);
Gtk.Button boton = (Gtk.Button) source;
Gtk.Label Contenedor = (Gtk.Label) o;
string strB = boton.Data["disponible"].ToString();
string strL = Contenedor.Data["vacio"].ToString();
if((strB.Equals("si") == true) && (strL.Equals("si") == true))
{
string data = System.Text.Encoding.UTF8.GetString ( args.SelectionData.Data );
Contenedor.Markup = "< background="\" foreground="\" size="\"> " + data + " < / span >";
boton.Data["disponible"] = "no";
Contenedor.Data["vacio"]="no";
boton.Label = "-";
//boton.Hide();
}
}
private void iniciar()
{
foreach(Gtk.Widget b in boxBotones)
{
b.Data["disponible"] = "si";
}
foreach(Gtk.Widget lbl in tabla)
{
lbl.Data["vacio"] = "si";
}
}
}


Pantalla

Ya solo falta la parte logica del juego, claro que si alguien quisiera aportar alguna mejora con gusto sera recibida, pero ahora hasta aqui dejo esto, ya es tarde y quiero ver mi programa en la tele.

Primera pantalla

Aqui dejo la primer pantalla del Juego que comente comenzaria a pasar a Mono, por el momento el avance casi se reduce a esta pantalla, sin funciones todavia, bueno un poco ya de avance en el codigo de arrastre de los numeros pero falta todavia, pero les dejo la pantalla para que vayan conociendo el proyecto en cuestion.

09 octubre 2006

Juego Interesante

Bueno aqui de nuevo planteando otro proyecto a realizar, creo que ya van varios planteamientos que aun no han sido realizados o al menos expuestos, pero este sera algo especial, este no es un proyecto que partira desde cero, en realidad se trata de un pequeño juego que realice en visual basic y que buscando unos archivos en mis respaldos de archivos lo encontre, asi que me he planteado pasarlo ahora a Mono, en resumen es un juego de esos que te distraen en un rato de ocio y que en parte te hace ocupar un poco de masa encefalica.

El juego en cuestion trata sobre una serie de numeros que se han de acomodar en un tablero de tal forma que se realiza una suma, pero para que dar mas detalles, mejor cuando este listo vendra la pantalla y la explicación a detalle, y si se preguntan de que servira esto para el aprendizaje de Mono, pues lo que aqui se manejara sera el arrastre o Drag and Drop de objetos cosa que no hemos abordado en ninguna entrada anterior y claro no desmerecera el codigo de generación de numeros para el juego.

05 octubre 2006

Mejora en dbimage

Estaba pensando en agregarle alguna mejora al programa dbimage y nada mejor que incluir la opcion de guardar los datos cargados en el treeview, asi que he optado por guardar esa informacion en un archivo xml, por lo que ahora veremos un poco como se manipula un archivo xml con c# en Mono, ahora me pongo a trabajar en ello y espero tener algo en los siguientes dias

Referencias previas:

Pantalla de dbimage

Codigo de dbimage

30 septiembre 2006

Mas memoria para mi pc

Ahora si que ya no se ni como contar esta anecdota, si molesto o contento, les explicare molesto por que y contento tambien.

Resulta que ultimamente venia pensando en comprarle mas memoria a mi pc, no era por que estuviera lenta o que sintiera que ya la necesitaba, pero me dije pues por que no ponerle algo extra que al final de cuentas se llega a necesitar, asi que me dirijo a la tienda (que segun es la mas surtida) y pregunto por una memoria DDR pc3200 (400 Mhz) de 512 Mb y el empleado en tono como burlon me dice "Esas ya no las vendemos" y ya fue todo, que es lo que pasa con este tipo, en realidad su salario es tan poco, que solo se limita a contestar a un cliente de esa manera, ahora ya entenderan la parte molesta de esta anecdota, si ya se mi pc esta rucona, y con esa idea me largue de la mendiga tienda, pero y ahora entonces mi pc la debo tirar, debo buscar un incauto y vendersela para actualizarme o por ultimo regalarla.

Pero bueno despues de calmarme opte por dirigirme al lugar donde compre mi pc, ya ahi le digo al dueño (por que en este caso no es empleado, es el mero dueño) tienes una memoria DDR pc3200 (400 Mhz) de 512 Mb, y el de manera muy amable me dice claro y saca la memoria y me la entrega, asi mero se debe de tratar al cliente, hasta ni me queje por el costo de la memoria.

La conclusion de todo esto me lleva a una cosa, si yo estoy a gusto con mi pc y solo quiero hacerle unos ajustes por que me han de obligar a decidirme por regalar o vender mi pc, no señores distribuidores estan en un error y creo que deben capacitar muy bien a sus empleados para que no corran a los clientes, en fin por el moment0 mi pc ya tiene sus 512 mb adicionales y yo a gusto hasta que no tenga que buscar algo nuevamente para ella.

28 septiembre 2006

Se acaba septiembre

Se acaba septiembre y las entradas en este mes fueron a cuenta gotas, pero que mas queda decir, espero que en el proximo mes acabe los proyectos iniciados o de perdida descargue la nueva version de Mono 1.1.17 y la instale para reemplazar el 1.1.16.1 que apenas instale, segun cuentan que cambiaron por completo el compilador del visual basic .net para Mono, cosa que me empieza a causar tentacion probarlo con Mono y recordar aquellos tiempos en los que aprendi a programar con visual basic (el que diga que no a programado en vb que alce la mano), pero seria algo interesante poner mis codigos escritos ahora en vb .net

A veces se me viene a la mente las palabras del señor Miguel de Icaza respecto a programar en Visual Basic en el ambiente de Mono (jajaja), en fin Octubre llega y ahora a recargar pilas para comenzar de nuevo por el buen camino.