miércoles, marzo 30, 2005

Finalmente

En un raro giro del destino, he obtenido la portátil que tanto había buscado, mi tio vino a dejarmela, de una forma no tan buena como esperaba, en fin, debe ser algún tipo de ataque prematuro de andropausía.

Dell Inspiron 1150Mi nuevo equipo es una bella Dell Inspiron 1150, muy bonita por cierto, y como era de esperarse no pude aguantarme las ganas de ponerle Linux, primero le puse Debian Testing, y todo se instalo bien tan fácil, puro OK y listo, me sorprende que ahora Debian ya no sea como antes, ahora es tan fácil, después de la instalación ya tenia GNOME 2.8 y todo configurado automágicamente. Esta forma de instalación es la misma de Ubuntu Warty, así que mejor decidí poner Ubuntu Hoary, con GNOME 2.10. En conclusión todo va genial y muy bien, feliz con mi nuevo equipo.

El gracioso MS Windows se ha quedado en una partición, ¿razones? pues en la escuela debo utilizarlo, además me gusta probar la portabilidad de mis aplicaciones en mono, aunque no creo usarlo ni un 5%, y claro nunca falta alguien que te da algo que únicamente funciona en MS Windows, aunque hoy en día esta díficil que algo sólo funcione ahí.

Ando acondicionando la pórtatil para poder trabajar en la escuela, para hacer demos en vivo :) La arquitectura propuesta anteriormente no se hará, porque el mover tanto código a estas alturas no es bueno, ni caso tiene, he reacomodado algunas cosas para hacerlas independientes y sobretodo más escalables, creo que es mejor ponerle el ojo a cosas como la solución del bug de mucha memoria usada, bug en el cual todos andamos participando Rodolfo ha agregado cosas, Miguel ha hecho pruebas, yo he corregido detalles, pero nada, nuestros esfuerzos sirven sólo para disminuir un poco el uso, pero aun así el bug sigue abierto.

Lo de la Ingeniería Inversa desde ensamblados creo que ya pronto estará, hay unos problemas que aun tengo que solucionar, ya quiero agregar el ensamblado a MonoUML para verlo funcionar, muy pronto estará no hay que presionarse hay que relajarse :).

lunes, marzo 28, 2005

Vacaciones

En esta semana que paso he estado un poco preocupado, realmente tengo mucho que hacer y no he terminado con lo que he planeado, dos proyectos con-pago-real y tres proyectos escolares (que debo terminar obligatoriamente), además la tan cercana liberación de MonoUML en Mayo, ando un poco estresado, pero a pesar de todo esto no me siento 'mal', es un eustress, estoy feliz por todo lo que tengo que hacer, pero a veces me siento tan abrumado, tengo plena confianza en que podré con todo, pero no más, no acepto ni un sólo proyecto por ahora, hay que terminar lo que ahora esta ahi detenido; y no mencione el proyecto de traducción del ECMA (el cual por cierto esta apagadísimo y del cual creo que se tendrán que reasignar los capítulos, aunque bueno a mi me falta menos para terminar mi capítulo más largo, unos 30 XMLs más y termino), el manual de ADO.NET, además de la actualización del sitio web de mi tio, un sistema que le prometí hace como 2 años, en fin, ¡en verdad que tengo cosas que hacer!.

Pero a pesar de que estoy abrumado por las tareas ¡me iré de vacaciones! :P Creo que es lo que me hace falta, ayer compré mis dos boletos, el de ida y el de regreso, estaré mis dos penúltimos días descansando y relajandome, para que el día Martes 5 de Abril pueda regresar a los 4 exámenes que tengo, de los cuales aún no he comenzado a estudiar. A veces, inclusive, por las noches al ir a dormir no puedo, intento desviar mi pensamiento hacía otras cosas, pero cierro los ojos y comienzo a pensar soluciones, soluciones que sirven, pero que por alguna extraña razón solo se me ocurren cuando voy a dormir... y pues me levanto de la cama y a plasmarlas... es bueno poder resolver las cosas, pero hay ocasiones que en verdad quiero descansar, pero no puedo, la ansiedad me trae loco.

Por otro lado, he visto que a aumentando un poco el interés en #monodevelop la creación de un Add-In para UML, por tanto he estado promocionando el proyecto, hay buenas críticas, aunque no se porque siempre esta esa tonta idea de querer recomenzar todo desde cero, no veo el caso de comenzar todo desde cero, en fin. Estoy comenzando a reimplementar la arquitectura de MonoUML, que más que implementar es ordenar el estado que podría considerarse caótico de MonoUML, hacer unos retoques para entre otras cosas, averiguar porque hay tanta memoria utilizada al cargar un XMI, y para mejorar la escalabilidad del proyecto, la idea de modificar algo si que se estropee lo demás debe estar siempre presente. La arquitectura propuesta es una mezcla de todas las ideas de nosotros, que se plasma en un sencillo diagrama de clases:

MonoUML's Architure Redesign

viernes, marzo 25, 2005

Nuevo proyecto

Aunque aún no he terminado el proyecto de los WS (bueno en realidad sí sólo falta la parte de fallos donde el servidor-empresa es inalcanzable por el servidor-hosting) ahora tengo un nuevo proyecto, uno de para un evento de la Cámara de Comercio Exterior (o algo así) el objetivo de este es registrar empresas a través de una interfaz web y que estas requisiten cosas, cosas que forman "parejas" de opciones, es decir, una empresa busca algo (producto, servicio) y una ofrece algo (mismo producto, mismo servicio) y por tanto hay un "match", de esta forma al generar "matchs" que ofrecen y buscan cosas semejantes se arma un agenda de citas. Considero que es sencillo, inclusive ahora somo dos los que estamos haciendo esto, un compañero de la universidad y yo, ¿Con que se hará? Pues pues .NET, tristemente con el de MS, aunque buena parte de Puente Virtual que diseñe en el proyecto anterior seguirá con Gtk#, aunque ahora no será ejecutado en mono sino en el .NET de MS, para esto utilizaré la versión de Gtk# para MS .NET para de esta forma sólo cambiar algunas cosas del Webservice remoto y adaptarlo a la nueva aplicación.

Estos últimos días he estado en eso, pero justo el día de ayer comenzamos a trabajar en realidad, con la creación de la BD en MySQL, la captura de datos iniciales (casi 1000 registros de paises, ciudades y estados) y la creación de los Webservices. La idea es terminarlo para el martes 29, para tener tiempo de hacer cosas de la escuela ahora en la próxima semana. Mi trabajo no es tan pesado, sólo registraré y mostraré información de las empresas, todo se hará con Webservices así que no tengo tanto que sufrir, pero bueno, quiero que quede listo pronto, me parece que haré todos los diagramas UML del proyecto :)

Ya pronto es el regreso a clases... y hay tanto que hacer.

miércoles, marzo 23, 2005

Trusted Computing + Palladium + Patentes

¡Vamos al grano!

Es recomendado leer la lectura anterior, sin perder detalle de nada, inclusive los comentarios son muy buenos, los de la vieja versión también lo son. Es increible en verdad lo que ahora esta pasando en el mundo del Software (incluyendo al problema de las patentes), para aquellos que SOLO lo utilizan quizás les importe un cacahuate, pero los que de alguna forma vivimos de esto, estudiamos para ello y actualmente hacemos software es claro que nos preocupa.

Todo esto se esta saliendo de control, si de por si, es díficil vender software de casas de desarrollo independientes, ahora con tanta patente será más caro, y no decir del software de empresas grandes, en países donde el desarrollo tecnológico relativo al software gira en función al software pirata (por ejemplo mi bello México) y a la pobreza que hay en ellos (digase de nuevo al precioso México) va a resultar prácticamente imposible comprar el software que acompaña al PC y hacer tecnología con él ¡¡NI DECIR DE LAS UNIVERSIDADES DE GOBIERNO!! Olvidense de pedir sus proyectos en SW propietario.. :)

Se me hace una total incongruencia, un absurdo, que el precio del Software que se instale a un equipo nuevo salga más caro que el mismo hardware, ¿Cómo esta eso que el precio de la conjunción del SW de Sistema Operativo + SW de Oficina sea más (y por mucho) caro que todo el PC, ¡¡por favor!!. Claro que la mejor solución es utilizar Sofware Libre (tomese Linux como claro ejemplo, aunque claro que hay muchos más que Linux: *BSD, BeOS, MacOS inclusive)

Si todo va hacia la Trusted Computing y demás panaceas, todo lo que es el SW en nuestros días se irá decayendo, aunque bueno a la gente del Software Libre casi ni le importe, (salvo el problema de los patentes), pero digamos a la gente que tiene una empresa, a la gente común (claro sin ser elitistas), una empresa mediana, seguro que saldrá más caro armar una red con PCs con todos los artilugios de seguridad propuestos y por supuesto.. todo original, oficial, y hasta con edecan incluida, que pagar la nómina de los empleados, y no digamos de las nuevas ideas propuestas para evitar la pirateria

Quizás estoy exagerando y soy muy paranoico, pero todo aquel control que supuestamente tenemos sobre los equipos de cómputo ¿dondé quedará? ¿cómo es eso que ahora un personaje X nos dirá si nuestro software es válido o no? por favor...

Esta clarisimo, Microsoft busca la total dominicación mundial e Intel es su aliado... en fin...

lunes, marzo 21, 2005

MonoUML

Seguimos dandolé con todo al proyecto, ahora que ya hay poco más de tiempo. Inclusive he creado un blog para que los miembros del equipo que quieran escriban algo en él, claro relativo al proyecto, noticias o cosas técnicas que después no tienen gran cosa que ver con los blogs personales, además para darle un poco de mayor proyección internacional al proyecto lo escribiremos en inglés.

Hoy fui a ver lo de un nuevo proyecto, estoy seguro que no me pagarán la gran plata, pero bueno, este será el último proyecto que haré por ahora pues debo prepararme para otras cosas, en verano tomaré la última materia que me falta (si todo sale bien) y ya en otoño-invierno estaré haciendo las prácticas profesionales, podríamos decir que ya estoy en la recta final de los estudios universitarios.

Ya quiero que sea jueves, mi novia vendrá y podré estar un rato con ella, el domingo estaremos un poco más de tiempo juntos :) y también quiero que sea sábado, mi tio ¡por fin me dará la portatil que hace más de 5 años me prometio! Aunque sigo con la duda de si me cumplirá la promesa... esperemos que sí, creo que a la portátil le pondré Debian ¿o con Ubuntu? Ubuntu es excelente para escritorio, pero la portatil no será para eso... en fin, ya veré.

sábado, marzo 19, 2005

¡Vacaciones por fin!

A pesar de estas vacaciones son sólo dos semanas sin ir a la escuela no son totalmente de libertad, tengo muchas cosas que hacer, muchas cosas que terminar y muchas otras que iniciar, principalmente de la escuela, en realidad, casi el 90% de las cosas que haré desde hoy Sábado seran con relación a la escuela, pero también algunas cosas que tengo en la cola de espera, principalmente subir los ejemplos de códigos a Mono Hispano, terminar la traducción de mi capitulo del ECMA, el cual esta un poco apagado (ya no he sabido nada nuevo, creo que tendremos que reasignar capitulos), tengo que terminar el proyecto del que me estan pagando, además que ahora iniciaré otro (este será el ultimo, ya me canse, quiero dedicarme a mis proyectos) aunque lo hacia por una razón: experiencia, aunque yo queria una experiencia diferente a aquella referente a la programación....

Por fin he decido donde hacer mis Prácticas Profesionales, comúnmente llamadas: Residencias, las haré aquí en la ciudad, con mi tio, la idea es adentrarme a las telecomunicaciones, no soy fan total de ellas, pero tampoco las detesto, son interesantes :) aunque aún no se que proyecto hacer para residencias...

Ahora que tengo más tiempo "libre" me la paso haciendo más cosas, he actualizado el logotipo de MonoUML (en realidad no es un logotipo como tal, pero se ve bien :), ahora el mono esta alreves y sostiene el cubo UML de forma diferente, la idea es que esta ofreciendo a UML, he agregado secciones nuevas, para hacer todo un poco más amigable, inclusive escribi algunas partes más para el CSS del sitio y he dentro del proyecto he agregado la capacidad de cargar los campos (generalmente variables) dentro de las clases, todo lo hace bien, sólo faltan algunos detalles más y todo quedará listo.

Ni hablar, a trabajar que las vacaciones se van a acabar :)

viernes, marzo 18, 2005

MonoUML, Ingeniería Inversa. Tercera Parte

Han habido más cambios, tal parece que pronto terminaré :) Ya quiero comenzar a hacer la parte del Drag&Drop (del Tree al Canvas). En este nuevo commit he agregado a las Interfaces, esto incluye a sus métodos, ahora sólo faltan los eventos y los campos de las clases, y definir uno que otro detalle más.

Ingeniería Inversa

Aún no se que tan detallada debe ser la Ingeniería Inversa, porque ahora en este momento hay un modelado alto, se modela todos los elementos relacionados a un grado muy alto, es decir, si dentro del ensamblado se incluye System.String como parámetro o tipo de retorno de algún método o clase (o simplemente se utiliza de alguna forma), esta clase con sus métodos y campos también es importada, ¿esto es bueno o malo? Yo diría que bueno, pues es una importación más a fondo, pero es malo porque el XMI crece consideramente y esas cosas no son tan importantes en algunos casos, creo que este será un parámetro de configuración.

Y por fin... por fin comienzan las vacaciones de semana santa, ahora tengo más trabajo que nunca, pero tengo tiempo para hacerlo todo :).

domingo, marzo 13, 2005

MonoUML, Ingeniería Inversa. Segunda Parte

Después de un día de arduo trabajo, he subido al CVS la versión actual de la parte de ingeniería inversa aunque he detectado los siguientes detalles:

  1. El proceso de importación del ensamblado al XMI no es lento, tampoco la serialización, algo muy bueno.
  2. El proceso de importación del XMI, es decir las deserialización, en MonoUML es un poco tardado (en mi P4 2.8/512 RAM, tardo unos 2 minutos).
  3. Las pruebas que hice fueron con un XMI de unos 5.0MB, es decir la librería de Gtk# completa (además de TODAS sus dependencias), algo no tan bueno aunque viéndolo bien 5.0MB de XMI no es tanto, pues esta completa la librería.
  4. Al XMI aún le hace falta aumentar en tamaño, pues apenas agregue las clases (constructores, métodos) y las enumeraciones además de los tipos primitivos, así que según mis cálculos aumentará un 50% más en tamaño.

Después de esperar aproximadamente 2 minutos para deserializar se ve lo siguiente:

GTK# Cargado GTK# Cargado

Es claro que en el diálogo Reverse Engineering se deben utilizar threads para que el usuario no crea que se ha colgado la aplicación. Cuando todo este mejor sin duda haré el dialogo de importación simultanea de ensamblados para ser salvados en un sólo XMI, aunque sería bueno ayudar a Rodolfo para permitir que dentro de la librería XMI se permitan múltiples archivos simultaneamente, posiblemente eso mejore el serialización de XMI al igual que su deserialización en MonoUML.

Además de todo lo anterior, Rodolfo se propuso hacer esa característica de poder cortar los Edges (asociaciones) como lo hace Poseidón y ArgoUML, y lo ha logrado:

UMLCanvas#

Y no sólo eso, sino que junto con algunas características anteriores escritas por Manuel el canvas se esta convirtiendo en algo más usable, olvidemonos de cosas arcaicas como los Glue Points :) ¡Felicidades!

PD. Que bonito el tema de ClearLooks

jueves, marzo 10, 2005

MonoUML, Ingeniería Inversa

Ya tengo avances en el proceso la importación de ensamblados, es decir una parte del Reverse Engineering para MonoUML (la otra estará basada en códigos fuentes), aún no esta en el CVS pero pronto lo estará. La importación con reflexión y la exportación a XMI con ExpertCoder ha sido un proceso relativamente sencillo salvo uno que otro detalle de características propias de .NET y UML, es decir, la forma en que un elemento de .NET se debe representar en UML y viceversa, pero bueno, con una lectura se averigua quien le corresponde a quien.

Y por supuesto, el demo:

Importando GTK#

Importando GTK#

PD. Creo que necesito conseguir un hosting propio, Yahoo! ya no me aguanta tanta descarga de imágenes :)

miércoles, marzo 09, 2005

GNOME 2.10

Finalmente ha llegado GNOME 2.10 a Ubuntu (en realidad desde hace 3 días atras), muchos cambios de la versión 2.8 a la 2.10, muchas cosas por resaltar, un escritorio agradable, realmente usable, con apariencia muy buena y que ahora esta mejor integrado en sus herramientas.

Siento que esta versión es tan importante cómo aquel cambio de la versión 1.0 a la 2.0, muchos cambios sobresalientes, tiene cosas que antes eran duras de hacer, es el claro ejemplo de la unión de esfuerzos de la comunidad del software libre.

Compartir carpetas con redes MS Windows ahora es sencillisimo, nada de configurar el smb.conf ahora click con el derecho y seleccionar el directorio (estilo MS Windows :P)

Compartiendo con SMB

Compartiendo con SMB

Y si les gustaba la capacidad de automontaje inteligente que utiliza MacOS (y que claro antes se podía hacer con automount y demás malabares (y que ahora utiliza MS WinXP)) ahora esta mejor integrada al GNOME.

Dispositivos montados

Detalles del Roadmap de GNOME, aquí

Por otro lado en MonoUML he comenzado ha hacer la parte de Reverse Engineering, utilizando reflexión y uniendo todo a ExpertCoder para así importar los ensamblados, trasformarlos a XMI y luego cargarlos con MonoUML, la idea es tener todos los tipos de datos utilizados en Mono (Gtk#, Gnome#, etc) incluidos en MonoUML para que se puedan utilizar y de esta forma no se tenga que redefinir cada vez que se cree un modelo nuevo que utilice tales tipos. Claro que se leeran los ensamblados registrados en el GAC para que todo sea mejor.

Además ando haciendo el draft del formato de archivo del proyecto de MonoUML, Rodolfo sugirió utilizar la idea de ArgoUML/Poseidon al usar un zip como archivo de proyecto así dentro de este estará toda la información del proyecto, buena idea, aunque también ando pensando en como se salvará la información particular del usuario dentro de su $HOME, la idea más normal sería utilizar ~/.monodevelop/ y ahi guardar todo, creo que así será.

Vamos bien, no hay que desesperar.

domingo, marzo 06, 2005

Menos trabajo

Tal parece que ya he terminado la segunda parte de aquel proyecto de Webservices que comenze a finales de Enero, en realidad me estoy tomando mucho tiempo para hacerlo, aunque bueno, sólo las noches de viernes son los días que trabajo a fondo, los otros días simplemente miro al cielo esperando tener más tiempo.

El día de ayer reinstale Ubuntu, parezco mujer adolescente a la hora de escoger ropa para salir, en verdad que no me decido, pero bueno tal parece que ahora esta será la distribución base, aunque me siento un poco mal porque todo esta más fácil ;) Inclusive pude instalar mono como lo había hecho en Debian días atras, todo fue normal y muy fácil, unos apt-gets y listo, no se si el error anterior que me salia de depencias fue corregido o era por las fuentes que utilizaba, ahora utilizo unas que Enzo me paso días atras.

Una de las razones que me obligaron moverme a Ubuntu de nuevo fue ese extraño comportamiento del XFree, iniciaba GNOME y comenzaba a consumir recursos llegando a consumir la totalidad en menos de 10 minutos, lo raro es que ni siquiera la suma de procesos indicaba eso, no se si el GNOME System Monitor mentía o el top estaba loco, pero lo que si sabía era que GNOME se comia mis recursos, algo que cuando tenía Ubuntu no pasaba, y ahora que lo tengo de nuevo no pasa, inclusive utilizando Xorg. Es cierto que GNOME consume recursos, pero no más alla de los 100MB, por si sólo claro, ya después de abrir Firefox y Evolution aumenta unos 50 más.

Lo que no me sigue gustando de Ubuntu es esa absurda idea de instalar paquetes innecesarios que no a ti no te sirven y que entorpecen algunos otros procesos, como la sincronización de mi PDA, un apt-get remove apicd soluciono lo anterior, aunque el kernel se sigue quejando del BIOS a pesar de que lo he actualizado, tantas cosas raras que pasan, ahora el volumen del audio esta peor, antes sólo funcionaba por software y ahora, sólo funciona en Rhythmbox y Totem, el reproductor de CD esta al máximo, recuerdo que en mi previa instalación si se podía establecer el volúmen correctamente, en fin.

Ojalá y pronto tenga una portátil para avanzar desde donde pueda, hace falta.

miércoles, marzo 02, 2005

Festival

Atenta invitación a toda la comunidad hispana para el Festival Latinoamericano de Instalación de Software Libre a realizarse el día 2 de abril del 2005, no dudes en inscribir a tu país y ser un orgulloso usuario de Software Libre.

¡Que viva el Software Libre!

Por cierto, ahora MonoUML cuenta únicamente con widgets de Gtk# 1.9.2 sin warnings de obsolecencia :)

martes, marzo 01, 2005

Compilando

Monodevelop 0.5.1 trae buenas cosas, es más ligero y trae algunos addins nuevos, sin duda más profesional. Primero hay que eliminar automake1.4 e instalar automake1.9 para poder crear el configure de monodevelop además de instalar subversion:

# apt-get install automake1.9 subversion && apt-get remove automake1.4

Bajar del SVN las fuentes y compilar como normalmente:

svn co svn://svn.myrealbox.com/monodevelop/trunk/MonoDevelop

svn co svn://svn.myrealbox.com/monodevelop/trunk/gtkmozembed-sharp

svn co svn://svn.myrealbox.com/monodevelop/trunk/gtksourceview-sharp

Y listo Monodevelop funcionando:

Monodevelop 0.5.1 en Debian

¿Más modulos de SVN para compilar?