Entradas

Mostrando las entradas de julio, 2016

StackOverflow Documentation

Imagen
En StackOverflow pusieron en BETA Documentation.  Es un lugar donde se pueden subir ejemplos de código de diferentes lenguajes. La gente puede votarlos por utilidad y también clasificarlos por version para la que sirve, etc. Me parece buen lugar donde empezar a generar ejemplos de GeneXus para darle mas visibilidad y mostrar como se pueden hacer cosas sofisticadas con poco código. Tiene de malo, que no todo lo que modelamos con GeneXus se traduce a código, por ejemplo, las estructuras de transacciones y SDT, la definición de variables, el editor abstracto, los patrones, etc, pero para procedures y eventos y reglas, puede funcionar muy bien. Al menos, pondría ahí un ejemplo de cada una de las palabras claves de Genexus, de sus tipos de datos y external objects standard. Si logran hacer con la documentación, lo mismo que hicieron con las preguntas y respuestas de programacion el resultado puede ser bueno. UPDATE Marcos me comentó que el tag #GeneXus aun no tiene movimient

Migrando de GeneXus Evolution 2 a GeneXus Evolution 3.

Imagen
Estamos realizando una migración de version de GeneXus, a la última liberada. Algunas de las tareas involucradas fueron las siguientes Comparación de Navegaciones.  Use el KBDoctor para comparar las navegaciones de la Evolution 2 con la Evolution 3. Unos cuantos objetos cambiaron su navegación, pues ahora cambia el ORDER de algunas sentencias. En general, el criterio que vi es que toma en cuenta las condiciones del WHERE para considerar el orden. Parece mejor en casi todos los casos, pero igual hay que chequear contra la base de datos para ver si alguna sentencia que estaba optimizada no tiene problemas de performance. Comparación de WSDL de servicios publicados.  Tuvimos diferencias en algunos pocos WSDL publicado, pero era por habíamos dejado el Namespace de la KB en su valor por default y como la KB toma el nombre de la KB como Namespace, al cambiar de KB cambiaba la definición del WSDL. Detectamos el problema y lo solucionamos rapido. Objetos con  código nativo.

Codigo simple

Imagen
Terminé de leer el libro  Code Simplicity . Trata el tema de desarrollo de software desde un angulo poco tecnico, pero  tiene algunas cosas que me resultaron interesantes. Enumera varias "leyes" que rigen el desarrollo de software. A la que llama ecuación del diseño de software  que intenta medir como debo diseñar algo para hacer un cambio a un sistema. Donde D es lo deseable que puede ser un desarrollo,  Vn es el valor actual de desarrollar una nueva feature Ei es el esfuerzo actual al desarrollar esa feature  Vf es el valor que va a tener dicha feature en el futuro Em es el valor de mantener dicha feature.  Si dicha característica (feature) va a ser usada durante mucho tiempo, la ecuación va a tender a La conclusion que puede sacarse, es lo que los desarrolladores sabemos por experiencia, que conviene dedicarle tiempo al diseño, para lograr simplificar el software de forma que sea mas fácil de mantener en el futuro. O dicho de otra fo

PIENSOPIENSO: Cual es la salida de este programa?

Imagen
Temgo una tabla de Paises que esta vacia, en una KB GeneXus, generando con C# *PaisID           C(2) PaisNombre    C(100) y un procedimiento Command line //Doy de alta un registro en la tabla.  &PaisNombre='Uruguay' New    PaisID='UY'    PaisNombre=&PaisNombre EndNew //Consulto 1 Con Trim() for each     where PaisNombre=&PaisNombre.Trim()     Msg(PaisID,status) when none     Msg('No existe 1',status) endfor //Consulto 2 Sin Trim() for each     where PaisNombre=&PaisNombre     Msg(PaisID,status) when none     Msg('No existe 2',status) endfor //Consulto con Trim() en variable &PaisNombre=&PaisNombre.Trim() for each     where PaisNombre=&PaisNombre     Msg(PaisID,status) when none     Msg('No existe 3',status) endfor !) Cual es la salida de este programa en SQL Server.  2) Cual es la salida de este programa en Oracle Justifique su respuesta.  UPDATE: David ya dio las r

Reflexiones sobre Machine Learning y los ingenieros de software.

Imagen
Me pareció interesante el articulo   Machine Learning Driven Programming: A New Programming For A New World . Uno de sus párrafos dice: The software engineer is out of the loop . Instead, data flows into a machine learning component and a representation flows out. lo cual me hizo presta mas atención aun. Para algunos problemas, ya las computadoras pueden realizar un mejor aproximación a las soluciones uqe podemos lograr con programas tradicionales. La mayoría de estos problemas tienen muchos datos, salidas conocidas y no varían mucho a través del tiempo.  Por ejemplo, reconocer rostros, reconocer imágenes, clasificar huellas, detección de patrones, clasificación de textos libres son buenos candidatos para hacer un modelo matemático (redes neuronales o algún otro) y sustituir parte de los programas que hasta ahora hacemos en forma manual y ya incorporarlos a nuestros sistemas.  Tal como dice el articulo, se va a necesitar menos ingenieros de software y mas especialis