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 movimiento suficiente co…

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. Tenemos algunos pro…

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 featureEi es el esfuerzo actual al desarrollar esa feature Vf es el valor que va a tener dicha feature en el futuroEm 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 forma, es mas conveniente reducir el esfuerzo de …

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 respuesta correcta en los comentarios, pero lo dejo aqui

En SQL Server, la salida es 

UY
UY
UY

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 especialistas en los datos  Ofer…