Entradas

PIENSOPIENSO: Cual es la salida de este programa?

Imagen
  Tengo una tabla  con la estructura *Key         Numeric(4)  Filter      Numeric(4)   Description VarChar(40) y un procedure GeneXus que hace //Grabo registros en la tabla (esta vacía) New    Key = 1    Filter = 1    Description = 'UNO' EndNew New     Key = 2        Filter = 2    Description = 'DOS' EndNew // Recorro la tabla, muestro los valores leídos for each     where Filter > 0     do 'ShowMessage' endfor Sub 'ShowMessage'    Msg(Format("Key = %1, Filter = %2, Description = %3", Key, Filter,Description), status) EndSub Cual es la salida de dicho programa?.  1)  Key =  1, Filter = 1, Description = UNO Key =  2, Filter = 2, Description = DOS 2)   Key = 1, Filter = 1, Description = DOS Key = 2, Filter = 2, Description = DOS 3)  Key = 2, Filter = 2, Description = DOS Key = 2, Filter = 2, De...

Incluir código externo en una KB GeneXus

Imagen
Existen varias formas de incluir código nativo (java, C#) en aplicaciones Genexus. Método 1) Cuando se tiene que ponder algo de codigo especifico, unas pocas lineas de codigo, conviene usar los comandos para incluir codigo fuente dentro del codigo Genexus. Método 2) Hay casos, en que conviene desarrollar un Objeto Externo Nativo , cuando se necesita una funcionalidad mas compleja y el codigo es mas largo. Hay que crear un proyecto con Visual Studio o Eclipse y crear una dll o class para poder importarla en GeneXus. Existen casos, en que solo tengo que incluir un bloque de código, pero es incomodo usar cualquiera de las opciones anteriores. Como son varias lineas de codigo no es practica el metodo 1, porque Genexus muchas veces no maneja correctamente los paréntesis en los código externo. Y como es poco código, el costo de mantener un proyecto externo, es demasiado solo para tener algunas lineas de código. Método 3) Este es un metodo *no recomendado*, pero que funciona. Es aplicable c...

Poniendo nombres a objetos GeneXus

Imagen
Una de las cosas mas importantes (y difíciles) en Ingeniería de Software es ponerle buenos nombres a todas las cosas que usamos.  Un buen nombre ayuda a entender que es lo que un programa hace, y por lo tanto, hace mas rapido los cambios que se necesiten y por lo tanto se puede ser mas productivo.  Una técnica sencilla, que me ayuda a elegir buenos nombres de parámetros y de objetos, es la de solo ver la regla parm() Ej: Parm(IN:&DocumentID, OUT:&DocumentName) ; Esto parece ser un objeto que dado un ID de documento, devuelve el Nombre del mismo.  Una vez que vemos que es lo que el proceso debe hacer por los parámetros, ponerle un buen nombre es mucho mas faci.  En los casos que las variables tienen nombres mal puesto, es mucho mas dificil deducir que es lo que hace el objeto solo con la regla parm(). Por eso, conviene renombrar los parámetros hasta que tengan un significado con solo verlo.  Ej2: Parm(IN:&Pais, OUT:&Permite); El parámetro &Per...

La Misma Alienación

La Misma Alienación Emiliano , El Alemán Se levantaba siempre primera Invierno, otoño y en primavera Dotada de estrategias sin final Yo nunca me quería levantar Mi madre me mandaba a la escuela Merienda en bolsa, pan con manteca Yo tuve quien me dijo: "eso está mal" Quien me enseñara un caminito para andar Hay quien no podrá sentir lo mismo Derrumbándose al abismo, sin motivo ni razón Si solamente como el resto de la gente Refleja lo que aprendió Sin ir a la escuela, sin tener la panza llena Si no hay nadie que te explique cómo es Lo que te muestran de botija Como malo o como bueno, lo aprendés Lalala-lalalayla-lalayla Lalala-lalalayla-lalayla Larala-lalalala-lalala Larala-lalalala-lalala Lalala-lalalayla-lalayla Lalala-lalalayla-lalayla Larala-lalalala-lalala Larala-lalalala-lalala Nunca pasé hambre, siempre tuve a quien llorarle Y yo no sé lo que es dormir el hormigón Por eso, es triste cuando alguno con soltura Y en muy buena posición Juzga a otro' gurice', pues, s...

Ser Familia Amiga

Imagen
Hace poco más de un año, Matilde y Mariana propusieron un proyecto familiar para tratar de devolver un poco de todo lo que la sociedad uruguaya nos ha dado y ayudar a algún bebé que no tuviera la suerte que hemos tenido nosotros.  Para esto, nos contactamos con la  Fundación MIR  que se focaliza en ayudar a bebes de 0 a 12 meses que pierden o ven interrumpido los cuidados de sus familias de origen. Una de las opciones que nos presentaron, era ser   Familia Amiga del INAU , que consiste en llevar un bebé a casa durante el tiempo que se necesite (generalmente son 4 o 5 meses, con un máximo de un año) hasta que vuelva con su familia de origen o que la justicia determine que sea adoptado.  Desde el principio nos aclararon que era algo temporal, pues al ser Familia Amiga, no se puede estar en el Registro Unico de Aspirantes, donde hay que inscribirse para poder adoptar a niños en Uruguay.  El 23 de Diciembre de 2020, tuvimos la primer entrevista en el INA...

GeneXus, aplicaciones complejas y futuro

Imagen
La sensaciones que tengo para los próximos años: Se necesitarán mas aplicaciones Los problemas que resuelven estas aplicaciones son cada vez mas complejos, lo que necesitan aplicaciones sofisticadas.  Hay escasez de gente con capacidad para hacer estas aplicaciones Las aplicaciones ya dejaron de tener escala humana (no hay una persona que entienda toda la aplicación) y ya están dejando de tener escala empresa (las futuras aplicaciones seran desarrolladas por muchas empresas).  Tomando esas sensaciones como hipótesis de trabajo, veo a la comunidad GeneXus bastante bien posicionada, pues tenemos herramientas como para hacer las aplicaciones que se necesiten.  También veo que no tenemos la escalabilidad suficiente para captar una parte importante de los proyectos que se presentarán en el futuro.  Sabemos resolver problemas a escalas pequeñas, pero nos cuesta reproducir estas experiencias.  Siento como que somos Tesla, pero sin las Gigafactory, con un producto que l...

AMA: Knowledge Base Modeling for Mission-critical Systems

Imagen
  Ayer se realizó un WEBINAR donde se pueden hacer preguntas y respuestas sobre como modelar aplicaciones de mision critica con GeneXus .  Recomiendo que tienen KB grandes vean los posibles evoluciones que puedan tener en el futuro dichas KB.  De cualquier forma hay varias preguntas que no quedaron bien respondidas, porque es muy dificil explicarlo en una hora.  KB Monolítica con una única base de datos, y una única instalacion KB Monolítica con una única base de datos, con instalacion en varias webapps o en cluster (divida con diferentes criterios) KB Monolítica modularizada con una única base de datos instalada en varias webapps o en varias máquinas (cluster)  Varias KB, con una única base de datos, instalada en varias  webapps o varias máquinas o serverless Varias KB, cada una con su base de datos independiente, que comparten algunas tablas, instalada en varias webapps o varias máquinas o serverless Varias KB, con ...