Entradas

Mostrando las entradas de 2004

Reinstalando mi notebook

Debido a unos extraños errores de DCOM, luego de la instalación de SP2 de XP, he decidido reinstalar mi notebook.

El proceso, que estimaba iba a ser largo y arduo, terminó siendo largo, arduo, penoso y aburrido.

En mi notebook (que uso fundamentalmente para pruebas de concepto y betatesting) tengo instalado
SQLServer (22 bases diferentes!!), Oracle y MySQL.
GeneXus 8.0 y GeneXus YI
Microsoft Office
Visual Studio XP, 2003 y 2005.
Musica
Fotos
Muchos programas mas!!!

Este proceso, llevo la modica suma de 19 horas....
Realmente, es NECESARIO encontrar alguna forma mas racional de funcionamiento.
En primer lugar, que no sea necesaria la re-instalacion.
En segundo lugar, si quiero migrar mis aplicaciones a otra maquina, que sea mas facil, el pasar los configuracion de cada uno de los programas de una maquina a otra.

Realmente, una gran oportunidad de mejora...

GeneXus YI (Noviembre 2004)

Muchas horas de betatesting de esta version de Genexus me ha enseñado, que aun le quedan unos cuantos bugs por encontrar, pero se han incorporado unas cuantas mejoras importantes.

Ahora podemos manejar archivos y directorios con los nuevos tipos de datos File y Directory. Es un pequeño cambio pero que va a ayudar mucho en las futuras migraciones. Siempre nos han complicado mucho la vida, el manejo de los archivos cuando tenemos que movernos de una plataforma a otra.
En este momento estamos migrando 2 KB grandes desde Visual FoxPro a java y seria impecable poder contar con esta funcionalidad, pero lamentablemente, tendremos que hacerlo en Genexus 8.0.

De los errores encontrados

Performance al especificar programas de redundancias. OK.
Property Call Protocol OK.
Property de Cache de tablas OK.
File y Directory DataType en .NET OK.
UDF …
Imagen
Reglas en un baño de Grenada..... No necesitan comentarios...
Imagen
Arduo trabajo
Imagen
Enrique Almeida

GeneXus YI

Empece a testear la nueva versión BETA de GeneXus (Codigo YI).
Lo que me interesa probar es fundamentalmente la posibilidad de generar aplicaciónes multi-idioma. Si esto funciona bien, nos posibilitará tener aplicaciones para diversos mercados, que hoy no estamos pudiendo ofrecer (fundamentalmente, de habla inglesa).
Después cuento como nos fue...

En la proxima version de la beta, estan prometidos los Business Components, que también me interesan mucho para poder probarlos.

SQLServer 64-bits en aduana de Costa Rica.

La semana pasada me toco instalar la primera aplicación desarrollada por Concepto, para una arquitectura en tres capas con .NET en la Aduana de Costa Rica.
La plataforma de instalacion, incluye servidores Itanium (un cluster) para correr SQLServer 2000, en su versión de 64 bits.
La performance fue muy buena, pero me lleve una desilución grande, cuando vi que no posee Enterprise Manager, por lo que toda la administración hay que hacerla en forma remota. Realmente me parece un paso atras.

Por lo demas, la instalación fue todo un exito, pero nos encontramos con un problema, de Kerberos delegation, que necesitamos hacer llegar la identidad del cliente, pasando por el servidor de procesos, hasta la base de datos, y hasta el momento no lo hemos logrado.
Contamos con el apoyo de la gente de Microsoft Costa Rica (Gracias!) pero aun no han podido resolverlo. Si alguien sabe como resolver el DOUBLE HOP O KERBEROS DELEGATION, se agradece. Todos los articulos que hemos encontrado en TechNet y MSDN, n…

Mas sobre el tiempo y su representacion...

Coincidencias de la vida:

En lo laboral, estoy desde hace tiempo dandole vueltas al problema de la representacion de intervalos de tiempos en base de datos, de una forma coherente, lo que me ha hecho pensar en el tiempo y lo mal modelado que lo tenemos.

Por otro lado y en mi tiempo libre, estoy leyendo un libro sobre fisica "The fabric of the cosmos" (Muy recomentable) donde explica, de una forma entendible para no fisicos, sobre las dificultades que tiene la fisica para entender el tiempo, y sobre todo la definicion del ahora. Y tambien explica que nada en las ecuaciones de la relatividad, ni en la cuantica, explica que el tiempo fluya, sino que parece mas una dimension del espacio/tiempo.

El fin de semana pasada, fui a ver con mis niños "Harry Potter y el prisionero de Azkaban" (me gusto :) ) donde Hermione usa el GiraTiempo para retroceder en el tiempo.

De noche fuimos a ver la ultima de Woody Allen (Anything else), que hace referencia al tiempo y a la mecanica …

El tiempo y su representacion

Desde hace un tiempo me tiene preocupado un problema de como representar intervalos de tiempos (sobre todo vigencias) en base de datos relacionales, sobre todo las hechas con GeneXus.

Los principales problemas que tenemos son:

Auditoria
Mantener una copia de las modificaciones que los datos tienen a traves del tiempo

Borrado de datos historicos.
Para evitar el crecimiento excesivo de las base de datos es necesario tener programas que hagan la limpieza de los datos historicos. Generalmente no son triviales para dejar la base de datos relacional coherente.

Intervalos/Vigencias
Es comun tener tablas en las cuales una clave tiene diferentes atributos secundarios a traves del tiempo y hay que guardarlos todos.
Por ejemplo:

Productos
*PrdId
*FechaInicial
FechaFinal
PrdNombre

Movimientos
*MovId
MovFch
PrdId
Cantidad

El problema basico, consiste en recuperar el PrdNombre, correspondiente a la fecha del movimiento de MovFch, con FechaInicial <= MovFch <= FechaFinal.

Esto trae v…

Mejor BetaTester GeneXus

Por tercera vez, me dieron el premio a "Mejor BetaTester de GeneXus" esta vez para la nuevas funcionalidades de la version 8.0.

Pa los contra!!.

Mas detalles en http://genexusxiv.montevideo.com.uy/118



GXUnit - Presentacion en encuentro GeneXus

En en XIV Encuentro Internacional de Usuarios GeneXus hicimos una presentacion enfocada en el Software Testing.

La presentacion que habla sobre el testeo unitario, puede encontrarse aqui
Imagen
Quijada....

Esta es mi Wish List con Genexus

GeneXus 8.0
Toolbars
Poder lograr que las toolbars se queden donde uno quiere!!!!.
Algun extraño mecanismo hace que siempre despues de un tiempo de trabajo, queden alieneadas a la izquierda y arriba, sacando mucho lugar de la pantalla para trabajar.

Object Status
Poder ver cual es el estatus (Ok, error, Warning) de todos los objetos de la KB sin necesidad de tener que largar un build all.

Delete referenced objects
Poder borrar objetos GeneXus anque los mismo esten referenciados por otros objetos.
Que genexus vea que cambios tiene que hacer (por ejemplo modificar los objetos que los referencian, para que ahora llamen a un programa externo).

Global Search and Replace
Poder buscar y sustituir strings en todos los objetos (o los que yo defina por filtros) de mi KB.
Muy util, para muchas tareas, sobre todo migraciones.

GeneXus Trace
Poder generar Trace de aplicaciones GeneXus, que sean de formato compatible entre todos los generadores.

Regular Expresions
Poder validar el ingreso de…
Evento GeneXus.

El 14, 15 y 16 de Junio se realizará en Montevideo, Uruguay el Envento Internacional de Usuarios Genexus.
Estare presentando ahi, la experiencia de la migracion de la aplicacion de la Aduana de Costa Rica, de Visual FoxPro y C/SQL a C#, tres capas.

La idea es contar como se realizo la migracion/adaptacion en los 18 meses que lleva el proyecto y contar tambien como convivir con las versiones Betas de los generadores, de tal forma de lograr los objetivos de la migracion.

Tambien en una charla compartida con IBM y la Universidad de la Republica, expondremos diferentes experiencias con respecto a Software Testing. Mi interes es encontrar voluntarios para que entre varios desarrollemos una version de xUnit, para Genexus, o sea un GXUnit.

En otra charla dada por Alexander Wolf y Marcos Crispino, hablaran de como detectar y corregir problemas de performance en aplicaciones desarrolladas con Genexus.

Aunque este año, no hay ninguna tecnologia "nueva" para mostrar…
Libros buenos.

En mis recientes vacaciones, tuve tiempo de leer algunos buenos libros, que son recomendables para quien este trabajando con .NET.

Performance Testing Microsoft .NET Web Applications .
Cuenta las experiencias del grupo ACE, dentro de Microsoft, haciendo el Tuning de las aplicaciones .NET dentre de Microsoft.com.
Muestra como optimizar la capa del cliente (WEB), la capa de SQLServer (datos) y tambien el aceso a los mismos.
ES bastante detallado, la utilizacion del Performance Monitor, para recolecar estadisticas y alertas sobre objetos .NET.
RECOMENDABLE.

Writing Secure Code, Second Edition
Despues de leer este libro, me cuestiono cualquier programacion que he realizado en C y los riesgos que eso acarreaba.
Muestra con ejemplo formas de vulneral codigo y lo dificil que es escribir codigo seguro.
Demuestra todo lo que nos falta por aprender para lograr escribir aplicaciones seguras.
Muy buenos conceptos de Criptografia.
MUY RECOMENDABLE (aunque un poco denso).

Microsoft .NET Remoting
B…
Testeos Unitarios con GeneXus.

La posibilidad de definir testeos unitarios con GeneXus es posible, pero para lograrlo seria bueno contar con algunas funcionalidades basicas que hicieran esto mas facil.

Por ejemplo, seria bueno poder marcar algunos objetos como que son de testeos, o sea que no forman parte de la aplicaicon a instalar.

De esta forma, cada vez que se defina uno objeto, se podrian tambien solicitar un conjunto de procedimientos (que podrian tener una interfaz ya conocida) que va a ser utilizado para hacer la prueba unitaria del mismo.

Esto facilitaria la confeccion de testos unitarios y podriamos generar programas para que testearan cada uno de los procedimientos que posee una base de conocimiento.

Voy a ver si puedo realizar un pequeño ejemplo y subirlo a GxOpen como "prueba de concepto"
En los últimos dias estuve pensando algunas ventajas que podrian tener alguanas mejoras a GeneXus como herramienta de desarrollo.

Las mas importantes podrian ser:
Separar los objetos transacciones en dos objetos diferentes, separandolas en estructuras y por otro lados paneles de entrada de datos.

Las estructuras tendrian la estructura tal como hoy la conocemos, con sus atributos y algunas reglas sencillas y las formulas

Los paneles, podrian ser los winforms, webforms, wapforms, webservices, etc, o sea las diferentes formas de interactuar con la base de datos a traves de la estructura antes mencionada.

Existiria una relacion, donde diriamos que estructura es utilizada por cada uno de los forms.


Esta solucion tendria muchas ventajas, a saber:

La estructura se haria una vez, y se puede utilizar en muchos lugares, evitandose asi el mantenimiento del mismo conocimiento en mas de un lado.

Se podria tener mas de una interfaz, para el ingreso de datos, cosa que hoy se puede hacer solamen…