Entradas

Mostrando las entradas de octubre, 2016

El día que el Presidente de la República nos ayudó con el sistema LUCIA.

Imagen
En los primeros años del siglo, estábamos trabajando en el sistema LUCIA en sus primeras versiones en la Aduana de Uruguay.  Habíamos logrado entusiasmar a la Aduana de Costa Rica, pues habían visto el sistema funcionando y lo querían. Necesitábamos que la Aduana de Uruguay nos autorizara alguna forma de colaboración entre Aduanas para que el sistema pudiera ser instalado en el exterior.  Con el director de aduana de la época no teníamos mucha llegada y desconfiaba de casi todos lo que había en aduana y habíamos participado en la confección del LUCIA. A Gustavo (mi socio) escuchó en la radio, que el presidente recibía y contestaba cartas que le llegaban a la casa presidencial y comentó que iba a hacer un intento de mandarle una explicando la situación.  Con una carta manuscrita en un sobre, fue a la casa presidencial de Suarez y Reyes, donde fue amablemente recibido por la guardia presidencial. Entregó la carta y poco menos de una semana después, recibió por la noche u

Modularizar sin modulos.

Imagen
Cuando trabajamos con GeneXus Evolution 3 o superior, una de las funcionalidades que mas ayudan a mantener el desarrollo ordenado, es la de los Módulos. Una de las consecuencias de usar Módulos en la KB es que cambian el nombre de los objetos: Cambia la URL de las aplicaciones WEB Cambia el nombre de los web services publicados Cambia el nombre de los procesos batch command line Me ha tocado trabajar en KB que vienen de versiones anteriores de GeneXus que en las cuales es bueno usar la metodología de módulos, pero es difícil y costoso cambiar el nombre de los web services publicados por la aplicación, pues son usados por muchas empresas. Estuve buscando una forma temporaria de trabajo, que me permita usar módulos, pero que no modifique los objetos y llegue a una metodología que no es matenible en el tiempo, pero permite avanzar en la modularización hasta llegar a algo mas definitivo. Supongamos que tengo un Folder llamado  ALERTAS y quiero hacer un modulo con los objetos

Xcopy con exclude.

El comando xcopy tiene una opcion EXCLUDE, que permite excluir los archivos que no se quieren copiar. Lo que no es intuitivo es la forma en que lo resolvieron, pues lo que hay que ponerle es un archivo que contenga los archivos que no hay que copiar. Por ejemplo para hacer un xcopy deployment de una aplicacion generada con GeneXus hago: set curndate=%date% set dd=%curndate:~0,2% set mm=%curndate:~3,2% set aaaa=%curndate:~6,4% xcopy web\*.* /s /d /i /y /c /EXCLUDE:NOCOPIAR.TXT web%aaaa%%mm%%dd% xcopy web%aaaa%%mm%%dd%\*.* /s /d /i /y /c //webserver/DirVirtual pause Y en el archivo NOCOPIAR.TXT, tiene como contenido: .cs\ .rsp .002 .bld .config .ver .web .xsl .rsp .log .XPZ .GEN .VER .xml .bat que son las extensiones de archivos que no quiero copiar. PD: Este es un post para que me sirva de recordatorio, pues es algo que siempre me olvido.

Grupo para interesados en Code Review con GeneXus

Imagen
Creamos un grupo de Google Groups para intercambiar mails e ideas sobre revisión de código con GeneXus. Quienes quieran colaborar con la herramienta que estamos armando, pueden inscribirse en el mismo. La dirección es : https://groups.google.com/forum/#!forum/kbcodereview

Windows 10 aniversario corta nombre de Folders y Objetos

Imagen
Para aquellos que tienen Windows 10 y monitores de alta densidad de pixels, pueden tener problemas con la actualización aniversario de Windows 10. Después de aplicar la misma, se cortan los nombres de los folders en GeneXus, tanto en las Preferences, como en el Folder View SOLUCIÓN: Sobre el GeneXus.exe, dar click derecho e ingresar a las Propiedades. Ir al tab "Compatibility" y marcar el check "Disable Display scaling on high DPI settings" Afecta tanto a Evo2 y Evo3 y es posible que la 15 aunque no lo probé. 

Indicador "Tiempo de armado de puesto de trabajo"

Imagen
Hace un tiempo que buso  algunos indicadores sencillos que permitan medir que tan bien (o mal) está el proceso de desarrollo, midiéndolo en su totalidad. Lo ideal seria bueno poder tener algo que mida desde la captura del requerimiento, análisis, diseño, codificación, pruebas, instalación, soporte y desinistalacion y borrado cuando no se use mas. Encontrar indicadores para todo el proceso no es fácil, pero hay algunos que son mas fáciles de medir y ayudan a entender que tan bien evolución un grupo de trabajo. Un indicador que me gusta mucho es el que mide el tiempo que lleva crear el ambiente de desarrollo para una maquina recién instalada hasta el primer build all exitoso. La idea es tomar la cantidad de horas que lleva hacer los siguientes pasos: 1) Instalar la versión de GeneXus que se necesite 2) Instalar todos los UC / Extensiones necesarios y sus dependencias 3) Bajar la KB del Server (o importar xpz) 4) Create database sin errores 5) Build all sin errores y

Modularizando KB: Tabla privada y transaccion publica.

Imagen
Cuando se modulariza una KB, me ha pasado querer tener una tabla privada (que desde afuera del modulo no se pueda acceder con for each), pero necesito dejar la transacción que la define, accesible desde afuera del modulo, por ejemplo para que se pueda llamar un call o link. No hay solución elegante para este escenario. Lo que puede ayudar es tener por ejemplo un procedimiento que devuelva el link a la transacción, y poner la transacción como privada y de esta forma la tabla también queda privada. Lo mismo puede hacerse con el call, aunque puede traer algunos otros inconvenientes. O sea, en vez de poner &Control.Link = Trn.Link() se pone &Control.Link = prcTrnLink()   //prcTrnLink es del modulo de la Trn, y devuelve Trn.Link() De esta forma, la transacción puede quedar privada y la tabla también. Según tengo entendido, en próximas versiones de GeneXus, en las tablas vamos a poder declarar a que modulo pertenecen en forma directa y también si la misma es publica o

ACeDedario (se pronuncia aKeDeDario)

Imagen
Esta es una anécdota de cuando estaba en cuarto de escuela, en la Escuela No. 7 de Nueva Palmira. En tercero habíamos tenido un maestro (Hugo) que a mi me gustaba mucho, porque no nos obligó a aprendernos las tablas de memoria, sino que nos dejaba usar la tabla pitagórica para hacer las pruebas. En ese momento, no se habian inventado aun las calculadoras electrónicas y la tabla pitagorica era lo mas avanzado. En cuarto, nos tocó una maestra llamada Diver (que nombre!) y que era mas tradicional y exigente. A mi  me costaba mucho escribir sin faltas en los trabajos de redacciones y dictados, a pesar que armaba bastante bien las frases. Para tratar de resolver el problema, decidí diseñar un nuevo conjunto de letras, para poder codificar las palabras en español, que se llamaba ACeDedario. Las letras eran A B = Se sustituye por V C = Era similar a la K D E F G = Siempre sonaba como g H = Igual a la CH de hoy. I J L LL = Se sutituye por Y M N Ñ = Se sustitutye por N