Entradas

Mostrando las entradas de agosto, 2006

GeneXus en libro de IDEA Group

Probando el Google Book, encontre el libro "Managing Information Technology Resources and Applications in the World Economy" que hace referencia a GeneXus y ahora se puede ver esa pagina aqui.
Es medio viejo (1997) pero igual es bueno ver como evaluan desde afuera la herramienta que usamos para desarrollar.

Paralelismo y concurrencia

Desde hace un tiempo, vengo viendo la necesidad que estamos teniendo de poder generar aplicaciones que usen mas la infraestructura de hardware que cada dia son mas comunes:

Cluster/GridsPor el lado de agrupar varias computadoras en procesamiento paralelo se va a poder escalar mucho en el tipo de aplicaciones que vamos a necesitar. Servidores Multiple-procesadorEs comun tener servidores con mas de un procesador. Procesadores Multi-CoreLos equipos de escritorios y notebooks que se compren de aqui en adelante, seran multi-core.

Viendo esto, me hace pensar que necesitamos (y necesitaremos cada dia mas) aplicaciones que puedan sacar partido de toda esta infraestructura que se esta creando. Las mayoria de las aplicaciones actuales , estan muy mal preparadas para poder aprovechar todo el nivel de paralelismo que estas plataformas pueden dar y tengo la sensacion que dominar y explotar los algoritmos de "Programacion Paralela" no es tarea trivial y nos va a exigir focalizar esfuerzos e…

"Usabilizando" Genexus (Consolidacion en Modelos prototipo o produccion)

De la serie "Usabilizando" GeneXus

Me gustaria poder consolidar (ignorando transacciones y atributos) en modelos de prototipo o producción.

En una KB donde mas de un desarrollador esta programando, el pasar a Diseño, es algo que se trata de evitar al maximo, pues mientras alguien esta en Diseño, todos los demas deben esperar.

Uno de los motivos que hace necesario ir a diseño, es el de consolidar objetos.

Considero equivalente el consolidar objetos en un modelo de prototipo o produccion a que un desarrollador cree/edite esos mismos objetos a traves de Genexus, por lo que no veo ninguna dificultad en que se pueda consolidar sin tener uso exclusivo de la KB.
Si se permitiera la consolidacion en modelos que no sean diseño mas de un desarrollador podria usar GXPatterns sobre la misma KB, aumentando asi la productividad del grupo.



"Usabilizando" GeneXus (Consolidaciones Parciales)

De la serie "Usabilizando" GeneXus

Muchas veces me ha sucedido, tener un archivo de distribucion (XPZ) que contiene muchos objetos distribuidos, y tener necesidad de consolidar un subconjunto de estos. Esto pasa cuando se tiene un version vieja del sistema en un xpz y se quiere volver solo un objeto a su estado anterior.

Lo que generalmente hago en estos casos, es consolidar todo en una KB vacia (o en una copia de la actual) y luego distribuir solo los objetos que me interesan y consolidarlos en la KB destino. Todo esto es una perdida de tiempo, que podria solucionarse, permitiendo elegir que objetos quiero consolidar de un distribute.

Desde GeneXus, se puede ver cuales son los objetos que tiene el distribute, pero no se puede elegir cual de ellos consolidar y esto es una verdadera pena.

"Usabilizando" Genexus (Reorganizaciones Parciales)

De la serie "Usabilizando" GeneXus

Creo que este problema se explica solo, con un ejemplo.

Una KB GeneXus de unos 4000 objetos, que tiene un modelo de prototipo y otro de producción.

a)Es necesario programar un nuevo módulo, que implica cambiar 10 transacciones (cambian su estructura y codigo) y algunos objetos adicionales (procedimientos, webpanels, etc). La programacion / pruebas / documentacion van a llevar una semana.

b) Como Murphy trabaja para el enemigo, es común que aparezca durante esa semana, algún cambio URGENTE e impostergable (los mas comunes son algún decreto del gobierno), que obliga a la realización de algún cambio menor en el modelo de datos, que obliga a cambiar alguna otra transaccion del modelo de diseño.

Esto plantea un dilema
Si hago el impacto, va a llevar a producción transacciones que aun no estan listas (las del cambio a)
Si no hago el impacto, no puedo llevar los cambios que necesito para el cambio b.

En cualquiera de las dos opciones, estoy dejando los ob…

"Usabilizando" Genexus (Extensiones)

Una de las fortalezas de GeneXus es que cubre todo el ciclo de desarrollo de una aplicación comercial. Si uno sigue la metodologia propuesta, puede realizar la aplicacion sin demasiados contratiempos.

Cuando se intenta hacer alguna extension a Genexus, empiezan a surgir dificultades. Muchas empreas (entre ellas Concepto) hemos desarrollado aplicaciones para facilitar el desarrollo con Genexus, pero en la practica son muy pocas las que logran integrarlas a Genexus de una forma satisfactoria o usable.

Algunas de las cosas que se me han ocurrido que se podrian integrar con GeneXus

Validacion de Nomenclatura de Objetos, Atributos y TablasBorrado de Objetos No AlcanzablesControl de indices no usados
Control de VersionesMails de Notificacion al terminar determinadas etapas (build all/compile/etc)Reporte de que objetos usan que tablas.Distribucion y consolidacion de objetos en un solo pasoCommand line (en el directorio del modelo)Para casi todas estas funcionalidades existen desarrollos en le me…

Amazon EC2

Amazon anuncio EC2
Amazon Elastic Compute Cloud (Amazon EC2) - Limited BetaAmazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

Con este anuncio, Amazon pretende posicionarse como un proveedor de computos como si fuera electricidad o telefono, asi como ya lo esta haciendo con S3 para el almacenamiento.

En cuanto al costo, parece muy razonable

PricingPay only for what you use. $0.10 per instance-hour consumed (or part of an hour consumed). $0.20 per GB of data transferred outside of Amazon (i.e., Internet traffic). $0.15 per GB-Month of Amazon S3 storage used for your images (charged by Amazon S3).Data transferred within the Amazon EC2 environment, or between Amazon EC2 and Amazon S3, is free of charge (i.e., $0.00 per GB).Amazon S3 usage is billed separately from Amazon EC2; charges for each service will be billed at the end of the month.Junto con Google, Micr…

Genexus Version 9.0 Upgrade 2 y su DataIndependentSpecification

En estos dias se esta liberando el Upgrade 2.0 de la version 9.0 de Genexus.

Escondida dentro de las Releases Notes esta el siguiente mejora:

SAC # 20564 - Data Independent Specification
El objetivo de esta feature es realizar un proceso de especificación más detallado, para ver si realmente es necesario re-generar/compilar el objeto especificado

Para usarla, alcanza con especificar con FULL SPECIFICATION.

Creo que es una MUY BUENA cosa para todos aquellos que manejan KB grandes, pues ahora cuando se modifica algo en una tabla, solamente se regenerán los programas que se vean afectados por esa reorganizacion y no todos los que tocaban la tabla, como hasta ahora.

Esto va a implicar que al crear un indice a una tabla en particular, no se cambie los programas que las usan

Tambien, si se agrega un atributo, los programas que use esa tabla pero no usen ese atributo, no van a ser re-generados (a menos de los que hacen insert y se tiene la propiedad de "Initialize no-referenced attributes&qu…

"Usabilizando" el WEBSac/Download Center/IT Manager

Imagen
El sitio www.gxtechnical.com en sus varias versiones (WebSAC, Download Center, Manejo de IT, etc) tiene un comportamiento extraño cuando se los visita con FireFox.

Tal como muestra la imagen, queda una pagina embebida dentro del browser, de un tamaño ridiculamente chico, que hace que se vea los primeros renglones de lo que se necesita ver.

Esta pagina se ve bien con Internet Explorer, por lo que no es algo que se pueda considerar un error, pero es algo muy poco usable, para los que hemos decicidido usar el firefox, como navegador preferido.

Un truco para solucionarlo, es darle dos veces un doble click al titulo de la ventana, pero es bastante incomodo.

El problema lo reporte hace unos meses, y sigue sin solucionarse, y con el pasar de los años, me estoy volviendo cada vez mas comprensivo, pero menos tolerante, por lo que estas pequeñas boludeces, en la medida que se repiten me molestan cada vez mas.

La situación de la Genexus Developer Library (GXDL) es un poco peor, pues directamente no s…

Usabilizando GeneXus (Editor de tablas HTML)

Imagen
De la serie "Usabilizando" GeneXus


En el editor HTML de GeneXus, se tiene una opcion para poder ver las tablas que se tienen en el formulario.

Estaría óptimo si se pudiera hacer que dibujara los bordes de cada una de las tablas de un color diferente, para hacer mas facil el diseño de tablas anidadas.

"Usabilizando" GeneXus (Diagrama de Tablas y Diagrama Call Browser)

Imagen
De la serie "Usabilizando" GeneXus

Una de las características buenas de las base de conocimiento Genexus es que perduran mucho años, pues el conocimiento es mas perdurable que las tecnologias. Nosotros tenemos varias de mas de 10 años y durante todos estos años, las mismas crecen, teniendo muchos objetos.
Es comun tener KB que generan bases de datos, con varios cientos de tablas.

El enteder un modelo de datos, con este volumen de informacion, se hace muy complicado.
GeneXus posee un diagramador de tablas, que ayuda a enteder la relación de integridad entre las tablas. Este diagramador de tablas, creo que se introdujo con la primver version windows de GeneXus, pero no ha evolucionado junto con la evolucion de la herramienta.

Los diagramas que generan en forma automática para KB medianas o grandes, son totalmente inutiles, pues la cantidad de tablas y sus relaciones, generan diagramas ilegibles.

Se pueden hacer ajustes a mano, moviendo tablas, pero lograr algo que se entienda, es un…

Microsoft Windows Live Writer

Microsoft Windows Live Writer es un editor de blogs que trabaja en el escritorio y  que permite trabajar con varios servicios de blog
Aquí anuncian esta herramienta y tambien se puede bajar. Tiene soporte de Blogger y tambien un API interesante que permite TAGS a las entradas y varias cosas mas. Esta entrada la estoy realizando con esta herramienta y algunas cosas resultan practicas.
Con los servicios de blog de Microsoft, se pueden publicar Mapas, de Virtual Earth, y tambien imagenes, pero lo mismo no funciona con blogger.Me gustó, para poder mezclar la edicion blog en el web, con la edicion desde el desktop.

Prueba informal de Windows Vista

En el fin de semana, instalé una versión del Windows Vista. Encontré muchas cosas buenas, pero también varias cosas a mejorar.

Se nota el trabajo del equipo de Microsoft, en el área de seguridad, pues todo el sistema operativo tiene cambios en esa area. Instalar cualquier cosa es una tarea engorrosa, pues las tareas de administracion exigen poner contraseñas o ejecutar como administrador, lo cual es bastante incomodo.Tampoco consegui algun antivirus que funcionara con Windows vista, pues en symantec, no tienen ninguna versión que funcione con Windows Vista y SVG (da error de kernel).
CA tiene una oferta para todos los que prueben Windows Vista en un año gratis de su ezAntivirus, pero despues de registrarme, en el mail que me mandaron, los links te mandan a sitios donde unicamente pagando se puede bajar el antivirus. En cuanto a la presentacion grafica, es bastante buena, se pueden ver bien las aplicaciones. Me gustó la rapidez con que hiberna y se despierta el PC.No me gusto que en vari…

"Usabilizando" Genexus (Tareas que no tienen foco, que traen ventanas al frente)

Imagen
De la serie "Usabilizando" GeneXus

Es común que me toque trabajar con KB medianas o grandes, con varios environments (TEXT/WIN/WEB) y varios generadores.
En las mismas es comun tener que hacer tareas que demoran un poco como puede ser un build all/full specification.
Cuando necesito hacer una de las tareas que demoran, es común tambien que deje que Genexus haga su magia, mientras me dedico a hacer otras cosas pasándome a otra tarea, como puede ser leer y responder mails.

Muchas veces, la placida lectura de correos, se ve interrumpida por una ventana de generador o del especificador, que aparece de la nada y es bastante molesto. Para peor, el foco cuando aparece la ventana del generador algunas veces el foco está en el boton Cancel, cosa que pocas veces quiero hacer, pero alguna vez presiono sin querer.

Lo que habitualmente hago es:
Estoy en GX / Build all
Alt-Tab, hasta llegar a mi cliente de correo.
Aparece la ventanita..
Estaria bueno que si GeneXus no tiene el foco, se mantenga de…

"Usabilizando" GeneXus (Java Execution Options)

Imagen
5 de la serie "Usabilizando" GeneXus

Porque tener un campo Classpath, que tiene capacidad para mostrar 50 caracteres (o menos) si siempre tengo que poner mas?.

En mi caso:








y en el classpath tengo

gxclassr.zip; . ;SWT.jar ;driverjdbc.jar; iText.jar ; C:\Archivos de programa\Java\jre1.5.0_06\lib\rt.jar

Si se pudiera tener un texto multi-renglon estaria muy bueno.

"Usabilizando" Genexus (Abriendo muchos objetos sin querer)

4 de la serie "Usabilizando" GeneXus

Muchas veces, estoy trabajando con GeneXus y haciendo alguna otra tarea, en forma de multitasking. No es la mejor de las formas de trabajar, pero es la que puedo lograr.
Esto hace que algunas veces deje pantallas con tareas pendientes, como especificar o abrir objetos.

Me ha pasado mas de una vez, que pienso que tengo que especifcar todo el modelo, y en realidad habia realizado un Open Object.
Las pantallas que muestra para seleccionar un objeto tanto para abrirlo y para especificarlo es exactamente igual.

Esto trae como consecuencia, que mucho mas a menudo que lo que me gustaria, realizo la APERTURA de una cantidad de objetos, que no quiero abrir sino especificar.

Al hacerlo, se enlentece terriblemente el PC, consume mucha memoria y para peor, despues hay que cerrar todos los objetos, causando esto una perdida de tiempo innecesaria.

Creo que seria bueno encontrar una forma de diferenciar si lo que voy a hacer es abrir objetos (que generalmente …

"Usabilizando" Genexus (Creacion de Objetos)

Imagen
3 De la serie "Usabilizando" GeneXus

Cuando es necesario crear un objeto, se muestra el dialogo


Lo que generalmente hago es: Pongo el nombre del objeto que quiero crear, ingreso la descripción, selecciono el folder en el que quiero guardar el objeto y le doy OK.En ese momento (en un porcentaje importante de las veces), creo el objeto con el nombre correcto, en el lugar correcto, con la descripcion correcta, y con el TIPO INCORRECTO.Entonces, borro ese objeto y empiezo de nuevo.Reconozco que mi torpeza puede ser mayor a la promedio pues a pesar de que conozco este comportamiento, caigo en la trampa una y otra vez.Si pudiera elegir, pondria la selección del tipo de objeto a la derecha, o este otro, que es menos vistoso, pero puede ser mas efectivo.

"Usabilizando" Genexus (Editor de SDT)

3 De la serie "Usabilizando" GeneXus

Cualquiera que haya querido crear un SDT, con dos niveles paralelos en GeneXus 9.0 (U1) sabe que no es facil, trivial, ni intuitivo poder lograrlo.

Para lograr

Nivel 1
(Nivel 2)
(Nivel 3)

cada vez que se quiere crear el Nivel 3, no hay forma de crearlo directamente, pues agrega campos en Nivel 2.

Para crear el Nivel 3, hay que hacer un Indent en Nivel 2

Nivel 1
(Nivel 2
(Nivel 3)
)

y luego bajar el Nivel 3 con Unindent y de esta forma si se logra el resultado deseado.

Sería bueno, no tener que hacer esto.

"Usabilizando" Genexus (Edicion de Grillas)

Imagen
2 De la serie "Usabilizando" GeneXus

En la version 9.0 U1 (y en las anteriores) la edicion de las grillas, tienen diferencias de comportamiento dependiendo si es Win o Web.

Seria bueno si pudieran uniformizar ambos menues (el que aparece con el right-click), y llegar a tener los mismos o parecidos.

Por ejemplo hoy en WIN muestra


-----------------------------
Properties //El columns queda adentro. :(
Condition
Order
...
Move Control
....
Add New Form (este lo sacaria y lo dejaria solo en el form)
Select Form (este lo sacaria y lo dejaria solo en el form)
y en Web muestra: ..................................
View Source (los pondria abajo)
Edit Html (Lo pondria abajo)
......
Columns
Order
Conditions
Properties
...................................

Me gustaria que AMBOS FUERAN ASI:
----------------------------------------------
Columns
Conditions
Order
Properties
........
Otras opciones propias de la plataforma.
----------------------------------------------
Cuando se esta editando grillas win y web en forma i…

"Usabilizando" Genexus (Introducción)

Este es la primera de una serie de entradas, con reflexiones sobre problemas de usabilidad en GeneXus.

La definición de "problema de usabilidad" que voy a usar, es la que dice que existe un problema de usabilidad, cuando el programa no responde a las espectativas del usuario, por lo tanto todos los "problemas" aqui planteados son personales y discutibles.

Hago estas observaciones, en el cómodo papel de usuario final GeneXus, pues asi tengo la ventaja fundamental de no tener la obligacion de saber lo que quiero, pero quererlo rapido y si tener claro lo que no me gusta.

Solo en caso te tener alguna pista de lo que quiero, lo plantearé como sugerencia.

Usabilizando Genexus (Goto Line o Link to Line)

de la serie "Usabilizando" GeneXus

Hoy en casi todos los mensajes de error de GeneXus, aparece una referencia a en que linea se produce ese error. Cuando el error, se produce en tiempo de salvado del objeto, generalmente se posiciona en forma correcta, donde el error se produce.

En otros casos, como por ejemplo, en los errores que se dan al especificar el objeto, Genexus es lo suficientemente inteligente para darse cuenta de que un error es en una linea determinada de mi codigo, pero no lo es tanto, como para poder llevarme ahi, sin tener que hacer varias operaciones (abrir el objeto, buscar el tab correspondiente e ir a la linea antes mencionada).

Estaria bueno que en cada error, o en cada referencia donde hay un numero de linea (por ejemplo en las navegaciones) se pudiera dar un click y abrir el objeto en la sección que corresponde, y que se parara en la línea que corresponde.

Tambien estaria bueno que el editor de texto tuviera un Goto Line, lo cual facilitaria un poco el de…

GX.ini

Estaba tratando de agregar a GeneXus una opcion del tipo Tools/Command Prompt que permitiera abrir una pantalla con el un pantalla de linea de comandos en el directorio de la KB, equivalente a lo que hoy se hace con Tools/Explore KB Path (lo uso todos los dias!).

La tarea quedó en la categoria "Demasiado para la edad que tengo", pero llegue a mirar el GX.ini, y enocontré esto

[Data sources]
Ds1=DBFCDX (Compound Indexes), DBFCDX
Ds2=DBFIDX, DBFIDX
Ds3=Access, ACCESS
Ds4=iSeries Native, AS400NATIVE
Ds5=DB2 Universal Database, DB2COMMONSERVERS
Ds6=Btrieve, *none
Ds7=Oracle, ORACLE
Ds8=DB/2 for OS/2, *none
Ds9=DB2 UDB for iSeries, DB2400
Ds10=Recital, *none
Ds11=Informix, INFORMIX
Ds12=SQL Server, SQLSERVER
Ds13=Cloudscape, INFORMIX
Ds14=Access (ODBC), SQLSERVER
Ds16=ADOCE, SQLSERVER, DISABLE_EDIT
Ds15=PostgreSQL, POSTGRESQL
Ds17=SQL Server CE, SQLCE
Ds18=MySQL, MYSQL
AvailableForDataStores=5,9,7,11,12,15,17,18
NoClientServer=1,2,3

No sabia que Genexus generara o hubiera tenido planes de generar codig…

Logo del Collaborative Projects :)

Imagen
Un amigo me hizo ver que el logo de los Collaborative Projects de la Comunidad GeneXus, es peligrosamente parecido al logo que presentan en el canal Utilisima, en el programa "Amigos in House". Lamentablemente en el web, no tienen el logo, y para verlo, hay que fumarse el programa en el canal de Cable y de paso te enseñan a cocinar... entre otras cosas.
Para que se hagan una idea, el logo es algo asi:

Capacitación en Calidad de Concepto en LATU Sistemas.

Este fin de semana y el que viene estaremos realizando un ciclo de capacitación en calidad, en LATU Sistemas, sobre Failure mode and effects analysis y otras herramientas aplicadas a calidad.
Estas son metodologías utilizadas en varias industrias (en particular la automotriz) con éxito. El desafio esta en poder adaptarlas al desarrollo de software, y mejorar la calidad de nuestras aplicaciones.

Encuentro en ALADI sobre Certificados de Origen Digital

Durante el jueves y viernes pasados, se realizó en la sede de ALADI, un encuentro internacional de paises que participan en el proyecto de dejar de usar los certificados de origen en papel, para pasar a utilizar un formato electronico.

Son muchos paises (Argentina, Brasil, Chile, Cuba, Colombia, Ecuador, Peru, Bolivia, Paraguay, etc) y tambien muchos interesados (las aduanas, las camaras de industria y comercio de cada pais, los importadores/exportadores, las autoridades certificadoras, etc).

Poner de acuerdo a todos estos diferentes intereses, es una tarea muy complicada, mas cuando hay que consensuar intercambios de XML firmados digitalmente que se basan en cadenas de confianza de los propios certificados.

Los certificados de origen, son los que permiten a una importación realizada desde Brasil, dejar de pagar los aranceles al entrar en Uruguay, con lo cual estan involucrado muchisimos millones de dolares y es necesario que el sistema sea robusto y confiable.

Tenia pocas expectativas en…

Wikis que parecen Blogs y Blogs que merecen ser wikis

Desde hace un tiempo me tiene incomodo, no encontrar algo hibrido entre blog y wiki que permita reflejar por un lado el contenido enciclopedico/informativo (aunque dinamico y armado por varios) que tiene el wiki, con las opiniones que uno da en un blog.

Viendo la entrada de GXWiki sobre Universal Data Models, hay un ejemplo de lo que digo.
________________________________________________________
In Data Model Patterns David Hay presents something called 'Universal Data Model', a generic data model to store any kind of data. The GX version of it should be something like this:

Thing
ThingId*
ThingClassId
ThingClassName
ThingName
(
AttributeId*
AttributeName
AttributeValue
)
Relationship
ThingFromId* subtype of ThingId
ThingFromName subtype of ThingName
ThingToId* subtype of ThingId
ThingToName subtype of ThingName
RelationshipTypeId
RelationshipTypeName
ThingClass
ThingClassId*
ThingClassName
(
AttributeId*
AttributeName
)
Attribute
AttributeId*
AttributeName
RelationshipType
RelationshipTypeId
RelationshipType…

Charlas propuestas para el Encuentro GeneXus

Le propuse a GusCarr varias charlas, para que de ellas seleccionar una, para el XVI Encuentro Internacional GeneXus.

1) Migracion Win-Web / Tres años despues.
Seria una remake de la charla que dimos con Alejandro Rinaldi en el 2003, actualizando todo lo que salio en estos años..y viendo como se fueron mejorando las cosas..
Se puede complementar con los que hicieron el migrador de win a web.

2) Seguridad en aplicaciones GeneXus.
Seria explicar las cosas que se pueden hacer para asegurar aplicaciones Genexus.
Autenticacion, Autorizacion, Roles y Auditoria de tablas.

3) Registro de errores en aplicaciones GeneXus Java
Mostrar el registro de los errores que generan las aplicaciones java (log de errores y excepciones) , el registro en archivos y el volcado a un repositorio centralizado para estadisticas y colaborar en el reporte de dichos problemas.

4) Uso de XML con GeneXus.
Mostrar ejemplos de uso de xmlreader, xmlwriter, xslt, validacion contra xmlschema y como escribir Schemas y transformacion…