GeneXus, Open Source y otras yerbas

martes, diciembre 26, 2006

XMHD - XmailHardDrive

Siguiendo con la búsqueda de alternativas para respaldar en algún lugar que sea gratis y que sea accesible desde internet encontré el proyecto XMHD. A pesar de que la herramienta se encuentra en una versión beta tuve buenos resultados.

Para entrar se usa la cuenta de gmail y el espacio que se asigna es el que se tenga libre en la cuenta de gmail que en mi caso son casi 3 GB.
 
La recomiendo, el link para acceder a la misma es:
 
 
 
 

GMail Drive shell extension

La verdad que esta herramienta esta muy buena y nos crea una unidad virtual utilizando el espacio que tenemos en gmail, a pesar que se encuentra en estado experimental me ha dado buenos resultados y lo uso para hacer backup de cosas pequeñas ya que archivos grandes no puedo copiar....
 
Los archivos los copio como si los hiciera a una unidad de almacenamiento externa y luego los puedo ver desde el web-mail de gmail, la verdad que está muy bueno y a mi me dio una solución alternativa al tema de los respaldos ya que en ocasiones necesito respaldar cosas rápido y ponerlas en un lugar que se encuentre accesible desde internet.
 
Lo recomiendo por si necesitan tener un backup en internet. :-)
 
 
 
 
 

martes, noviembre 28, 2006

Segunda reunión de la Comunidad GeneXus en Montevideo - II

La verdad que la reunión fue todo un éxito, la concurrencia fue buena y estuvo todo muy bueno. En lo personal disfrute mucho de la pequeña demo que hizo Carlos Enciso sobre GeneXus 3.0 L3. En está charla me gusto mucho ver a Mastropietro disfrutar de la misma y haciendo varios comentarios sobre el tema.
 
La charla de la Rocha estuvo buena pero según mi impresión la gente disfruto mucho la charla de GX 3.0 ya que para varias personas era una cosa bastante extraña pero interesante de ver como en el año 1992 GX hacía las cosas. :-)
 
Después de las charlas se hicieron los sorteos de los libros, el encargado de sacar a los ganadores fue el Autor del Libro Daniel Marquez.
 
En síntesis la reunión estuvo muy pero muy buena, esperemos que la próxima sea mejor todavía.
 
 

viernes, noviembre 24, 2006

Segunda reunión de la Comunidad GeneXus en Montevideo

Segunda reunión de la Comunidad GeneXus en Montevideo
 

 

El próximo sábado 25 de noviembre, haremos la segunda reunión de la comunidad, más allá de pasar un buen rato entre amigos, esta vez nos vamos a entretener con la incorporación de un par de conferencias:

 

        *****   Demo-Future: Gastón MIlano nos mostrara las cosas que haremos con la Rocha CTP2

 

        *****  Demo-Retro: Jorge Mastropietro & Carlos Enciso nos mostraran las cosas que hacían con la 3.0 (versión DOS)

 

 

El lugar será el mismo de la vez anterior, restaurante El Lobizón, Calle San José 1242 esq Yí a las 12 hs.

 

El costo del ticket es de $ 200 (all inclusive) y hay variedad de platos para elegir, los tickets se reservan con anticipacion.

 

Si alguien quiere plantearnos alguna idea o sugerencia, todas son bienvenidas.

 

Quienes tengan interés, por favor pónganse en contacto con nosotros respondiendo este mail o a info@gxopen.com.uy

 

De paso despedimos el 2006 !!

 

GXOpen Task Force
We believe in GeneXus.

Uso de &Mode no Documentado...

Hace un par de semanas teníamos que implementar una especie de auditoria para un sistema que íbamos a poner en producción en pocos días.
Mediante GXPublic generamos unos programitas que se encargaban de devolver un xml con el valor correspondiente a la tabla que se le pasara.
En el evento Start de todas las TRN pegamos dos líneas de código similares a las que pongo aquí:
 
Event Start
    .......
    
    &Clave_Tabla = Trim('') + Trim(PaisCod) + '|' + Trim(Str(Dptcod)) + '|'
    PAuditoriaStart.Call(Tablas.PAIDEPZON,'PAIDEPZON',&Clave_Tabla, &Mode, &Xml_Clave_Origen2,&Xml_Origen2)
EndEvent  // Start
 
Después de haber realizado el cambio en 500 TRN del sistema y hacer build all + compilación completa probamos y en todas las TRN teníamos un comportamiento no esperado. En algunas TRN cuando presionábamos el botón confirmar nos hacía un Return, en otras nos daba un mensaje de que el registro 0 no existia.
 
Después de haber probado miles de cosas consultamos a Soporte, después de plantear la situación soporte de Artech nos dio una gran mano ya que analizamos el problema juntos. Por suerte la gente de Soporte consulto a desarrollo del generador Java y revisando el código generado se dieron cuenta de que se estaba haciendo un chequeo del &Mode.
 
En realidad nosotros no usábamos el &Mode para nada, solo que se lo pasábamos al procedimiento AuditoriaStart pero adentro no lo modificabamos. El &Mode tampoco lo pasábamos en las rules ni nada, en síntesis el &Mode no participaba en nada.
 
Al final nos explicaron de que el especificador si encuentra al &Mode en el Start lo usa como si fuera una Rules por eso nos estaba haciendo un control ya que el &Mode no traía un valor valido.
 
La verdad de que yo nunca me hubiera dado cuenta de eso ya que en ninguna documentación aparece de que no se puede usar el &Mode en el evento Start llamando a un proc. :-)
 
Por suerte tuve el apoyo se Soporte de Artech para solucionar este problema, al final lo que hice fue quitar el &Mode y listo.
 
Lo documento por si a alguien le pasa lo mismo.
 
 
 
 
 
 
 
 

jueves, octubre 26, 2006

Asamblea UYLug

Lo siguiente lo saque del blog de Mauricio Campiglia y me pareció importante publicarlo:
 
"El UYLug convoca (y solicita que desparramen la convocatoria) a asamblea de socios, futuros socios y allegados este sábado 28 de Octubre a las 20:00 en el Salón Comunal de Villa Santa Elena, Luis Alberto de Herrera 3030 entre Chiavari y Canstant. Es importante lograr la mayor concurrencia posible ya que se tratarán temas de importancia legal para el grupo. Colaboremos entre todos para redondear la re-organización que todos estamos esperando. ¡No faltes! "
 
Yo voy a estar ya que soy un allegado al grupo. :-)
 
 

miércoles, julio 19, 2006

OpenDocument Format y GeneXus

Hace unos meses tuve la necesidad de poder leer desde GeneXus archivos de OpenOffice, no me quedo otra que salir a investigar como poder hacerlo ya que no tenia la menor idea. Lo primero que hice fue buscar que significaban las extensiones odt, ods y odp ya que eran los archivos que tenia que leer para extraer el texto y luego procesar ese texto.

Las extensiones pertenecían a:

OpenOffice.org Writer (.odt) - Procesador de Texto
OpenOffice.org Calc (.ods) - Planilla de Calculos
OpenOffice.org Impress (.odp) - Presentaciones

Después de tener esto claro comencé a buscar como hacer para leer estos formatos desde GX y lamentablemente no tenia forma de hacerlo desde GX, por lo menos con los conocimientos que tenia hasta ese momento.

Cuando ya estaba por darme por vencido descubrí que el OpenOffice trabaja con un formato abierto llamado OpenDocument, cuando comprendí que los archivos que yo tenia que leer estaban en un formato abierto no me quedaba otra que estudiar el OpenDocument para poder interpretar ese formato.

OpenDocument es un estándar abierto que pretende ser una alternativa a los formatos cerrados de Microsoft Office. Este formato está basado en un esquema XML. Por mas información consultar el siguiente link:

http://es.wikipedia.org/wiki/OpenDocument

Después que estudie el estándar del OpenDocument Format todo me quedo mas claro ya que alcanza con descomprimir el contenido de los archivos de OpenOffice y acceder a los diferentes XMLS:

content.xml
meta.xml
settings.xml
styles.xml

De esos xml para acceder al contenido de un documento alcanza con leer el content.xml, después que llegue a tener él conocimiento necesario para interpretar el OpenDocument me di cuenta que desde GX alcanzaba con hacer un programa que lea un xml y extraiga el texto.

El procedimiento me quedo de la siguiente manera:

//**********************************************************************************
/*
Autor : Cristhian Gómez (urulinux@adinet.com.uy)
Start Date : 02-03-2006
Last Update: 02-03-2006
Versión : 1.0.01
*/

&NombreArchivo = &NombreArchivoExterno

// El primer parámetro es el nombre del Archivo de OpenOffice o de StarOffice
// El procedimiento me devuelve el nombre del XML que tengo
// que leer (content.xml)

&Archivo.Source = &NombreArchivo

if &Archivo.Exists()
call('unzipjava', &NombreArchivo, &Nombre_Content)
&readfile.open(&Nombre_Content)
&readfile.ReadType(1, 'office:body')
&readfile.read()
do while &readfile.name <> 'office:body'
&Auxiliar = trim(&readfile.value)
if &Auxiliar <> NullValue(&Auxiliar)
&txtBody = &txtBody + newline() + &Auxiliar
endif
&readfile.read()
enddo
&readfile.close()
&OutText = &txtBody
else
&OutText = "No existe un archivo en el servidor para leer...."
endif

//**********************************************************************************

Como pueden ver en el código con muy pocas líneas de código puedo leer desde GX archivos de OpenOffice, lo único externo a GX es el programa que se encarga de descomprimir el archivo de OpenOffice (unzipjava).

Esto me demostró que los problemas en informática van a depender del conocimiento del programador ya que en mi caso alcanzo con dedicarle un tiempo a investigar el OpenDocument como para poder cumplir mi objetivo.

Los que quieran ver un ejemplo de esto funcionando pueden entrar a:

http://www.gxopen.com:8080/gxotf_odf/servlet/hopenofficetest

Está aplicación sube el documento al servidor y lo abre mostrando el texto plano en pantalla extraído del documento de OpenOffice.

lunes, julio 17, 2006

GeneXus Collaborative Projects

En lo personal pienso que los proyectos colaborativos son una muy buena idea y creo que todos los miembros de la comunidad debemos colaborar para que esta iniciativa pueda dar buenos resultados ya que los proyectos colaborativos van a beneficiar a toda la comunidad genexus.

Una de las cosas que se está dejando para decidir por parte de cada grupo que participe en un proyecto es la organización de los participantes.

Siempre tuve la duda de como se organizaban en general los proyectos de open source para recibir las colaboraciones de los participantes, por suerte pude preguntarle a Federico Wagner y a mas de un miembro del UyLug en diferentes reuniones y todos me comentaban lo mismo.....

En síntesis los proyectos de open source cuentan con un grupo que se encargan de actualizar el proyecto y organizar las tareas para que el resto de los miembros puedan colaborar. Los encargados de actualizar el proyecto tienen que revisar y validar los cambios recibidos para luego incluirlos en las nuevas versiones.

En los “Collaborative Projects” creo que debemos seguir el mismo modelo de organización que tienen los proyectos en el mundo del open source.

Continuara...

jueves, abril 06, 2006

Instalando Suse Linux en discos SATA

En el día de hoy me toco en suerte instalar un Linux para poder tener un servidor y hacer pruebas, la aplicación a instalar es una aplicación desarrollada con GeneXus 9.0 generando Java utilizando Tomcat como servidor de aplicaciones y MySQL como DBMS.

Me ofrecí a instalarlo y cuando me preguntaron que Linux dije Suse. Me acercaron unos CD´s con Suse 9.0 y puse manos a la obra, mi emoción duro unos segundos ya que cuando comencé la instalación el Setup no me reconocía el disco duro. Pensé que estaba haciendo algo mal ya que hace mucho tiempo que no instalo un Linux, después de probar un par de veces mas pedí ayuda al viejo y querido “Google”. Por suerte encontré que varias personas habían tenido problemas similares a los míos.

No me quedaban muchas opciones mas que probar con otra versión de Suse, grabe a CD desde unos ISO que tenia en mi PC la versión 9.3 con la cual tuve los mismos resultados.

A la mitad de la tarde se me dio por querer bajar la versión 10.0 y me encontré con que tenemos dos productos iguales pero distintos. :-)

Por un lado tenemos:

Suse Linux

OpenSuse

La diferencia está en que uno contiene solo software libre. La tendencia es que se use Suse Linux para el Servidor y openSuse para los clientes. Esto a gran escala ya que el tema es como para hablar con mas tiempo. :-)

Suse Linux lo pueden encontrar en:

http://www.novell.com/products/suselinux/downloads/suse_linux/index.html

openSuse:

http://en.opensuse.org/Welcome_to_openSUSE.org

En lo personal opte por openSuse, se pueden bajar los cinco cds o el dvd.

Una de las cosas que me gusto es que Suse trae Mono, lo instale y quedo todo ok.

Me olvidaba, con Suse 10 quedo todo funcionando sin problemas y pude instalar con discos SATA.

Suerte