Entradas

Mostrando las entradas de diciembre, 2006

GeneXus CookBook

Estoy leyendo el libro Ruby Cookbook (Cookbooks (O'Reilly)).
Esta bueno para entender un poco lo que se puede hacer con Ruby y como es la filosofia del lenguaje. Me gustó mucho, sobre todo la forma en que estan diagramadas las "recetas":

Problema: Breve descripcion del problema a resolver.
Solucion: Codigo Ruby y una breve explicación
Discusion: Se discuten posibles alternativas a la implementación

Creo que sería una muy buena cosa hacer un GeneXus Cookbook, como proyecto colaborativo. En el mismo se podrian contestar todas las dudas repetitivas que aparecen en los foros.

Se me ocurren alguna de la forma

* Como incluyo flash en los webpanels
* Como envio mails con Genexus
* Como envio el contenido de un webpanel por mail
un montonazo de etceteras mas..

Habria tener alguna persona encargada de recompilar e ingresar estas recetas a algun wiki y de a poco generar el contenido. La idea es que sirva de referencia con ejemplos sencillos, que muestre lo que se puede hacer de una forma bi…

Ebook gratis!. Developing time-oriented Database Applications in SQL

Richard T. Snodgrass muestra en su libro (Developing Time-Oriented Database Applications in SQL ), metodologias para manejo de bases de datos relacionales que manejen el concepto de tiempo e intervalos.Es un PDF un poco largo (+500 paginas) pero vale la pena darle una leida, si tienen que realizar bases de datos, que manejen vigencias.

Es un tema que me tiene medio obsesionado, porque no hay buenas soluciones para atacarlo, ni a nivel de base de datos, ni hay patrones bien definidos para resolverlos. Hay una oportunidad de negocio grande para el que logre abstraer y resolver este intringüilis.
En la aplicación de la aduana, todos los datos basicos (paises, depositos, productos, etc) necesitan tener una vigencia y ahi caen todos los conceptos de integridad referencial, por lo que el uso de las transacciones GeneXus, sirven de poco y hay que utilizar muchos procedimientos para lograr los chequeos.

Sobre FoxPro y los 5 años perdidos por la industria..

Imagen
Cada vez veo con mas cariño, al pobre Visual FoxPro.

Creo que sufrió por haber sido comprado por Microsoft, y que (erroneamente) competia con Visual Basic.

Ahora todo el mundo habla de lenguajes interpretados, capaces de definir variables de diferentes tipos y ejecutar sentencias dinamicas.
Todo eso lo tiene Visual Foxpro y ademas tiene un modelo de objetos bueno y un manejador de datos razonable (y gratis) con sus DBF.

Creo que es un gran error el que cometió Microsoft en dejarlo morir (y en ayudar a su rápido fallecimiento).

Creo que si Microsoft hubiera seguido apostando a Visual FoxPro, podria haber sacado una ventaja mas importante sobre el resto de la industria, pues ahora con .NET estan recien alcanzando algunas de las funcionalidades que tenia.

Resulta paradogico que Microsoft este recien ahora tratando de hacer herramientas de programacion para los NO profesionales de la misma. Haciendo algunos arreglos indispensables (manejar mejor los errores, corregir la corrupcion de indices y…

Usabilizando GeneXus (Saves changes to 'ObjectName' HTML?)

Imagen
En modelos que tienen ambiente web, pasa muy a menudo que al abrir un objeto, y querer cerrarlo SIN MODIFICARLE ABSOLUTAMENTE NADA, se presenta la pregunta si queremos salvarlo.

Pasa mucho cuando estoy consultando algunos objetos en KB por diversos motivos. Al salvarlo el mensaje deja de salir (algunas veces) y no vuelve a suceder, hasta el próximo momento. Se ve que el motivo de esto es que internamente cambia el HTML, cuando lo lee y lo interpreta (como se traduce el "parsing"?).

El contestar que SI, trae como consecuencia un objeto modificado, que debe ser especificado, distribuido y a veces generado y testeado. De cualquier forma, muchas veces igual contestando que SI, el mensaje vuelve a aparecer.

El contestar que NO, hace que vuelva a aparecer esta pregunta.

Seria bueno, que la pregunta apareciera solo si modifico el HTML de alguna forma.

Blogger se renueva

Este blogfuemigrado a lasnueva versión del Blogger. Por fin sepuedentenerpalabrasclavesdebúsqueda y algunascosas mas quehabíandejado a la herramientade Google mas atrasadasquelasdemás en eltemadepublicaciónde Blogs. Veremoscomo me va con la nueva versión, creoqueahora no quedandemasiadasexcusas para mejorar la estéticadelmismo.

Usabilizando Genexus (User 'EALMEIDA' is already using this KB)

Imagen
De la serie "Usabilizando Genexus"

Mucho mas a menudo de lo que me gustaría me salta el error User 'EALMEIDA' is already using this KB.

El texto del error es clarísimo e indica que no el mismo usuario no puede acceder dos veces a la misma KB, en forma concurrente.

Es muy útil, poder acceder varias veces a una KB, para hacer consultas, mientras se realiza una tarea de las que demoran, como puede ser un Build all o un distribute.

Esto es algo que se "soluciona" facilmente cambiando la variable de ambiente GXUSER.
Se podria hacer un bat que haga:

SET GXUSER=BANANA
GXW32.exe

y con eso se puede trabajar sin problemas. Sería bueno encontrarle una solución mas prolija a este asunto, pues resulta llamativo que puedan trabajar mas de un usuario con nombres diferentes en la KB simultáneamente, pero no puedo tener dos instancias abiertas con el mismo usuario.

Second Life

Hace unos seis meses que estoy jugando (jugando??) a Second Life. Tengo 2 avatars bien distintos para poder tener diferentes puntos de vista del juego y analizar como interactuan los personajes. No los publico por vergüenza que puede darme de encontrarme con alguno conocido :)
Es increible ver como evolucionan los lugares y como algunas empresas estan adaptandose a este nuevo mundo.
Ejemplos:
Wimbledon en Second Life,
Reunion de IBMers y el CEO de IBM en Second Life

y tiendas de ventas de articulos virtuales

Seria lindo tener mas L$ para poder comprar alguna propiedad. Me hace acordar a los primeros tiempos del WEB, cuando las empresas mas avanzadas creaban sus primeras paginas web, antes que nadie viera claramente como lucrar con ellas.

Tarjeta SonyEricsson EDGE

Un amigo me mostró una tarjeta SonyEricsson para notebooks capaz de navegar a traves de la red celular, a 3.6 Mbps y (ampliable a 7.2 Mbps, actualizando el firmware).
En Argentina ya estan en pruebas pilotos para video en la red celular y parece que en Uruguay tambien se haria un piloto en los próximos meses.Creo que van a habilitarse nuevas aplicaciones con este ancho de banda en los celulares y notebooks.



Black holes are where God divide by zero

Imagen
Black holes are where God divided by zero. by Steven Wright
Esa frase que me pasó Mastropietro, está buena..y da un poco de miedo saber que Dios no controla bien las excepciones..

Ajax no es el camino (o al menos, no es el unico).

Imagen
Después de los primeros intentos de hacer funcionar aplicaciones web, desarrolladas con funcionalidad AJAX, me convenzo cada vez mas que dicha tecnología es buena, para determinado conjunto de aplicaciones, relativamente sencillas, pero que no esta bien situada para
Los problemas que se han dado:Performance.
La performance de las aplicaciones AJAX es decepcionante en muchas máquinas. Los factores son variados, influyendo mucho la versión del navegador que se utiliza. El peor de todos es IE 6.0 y el mejor es Firefox. La versión 7.0 del IE mejoro, pero aun es mala.
Usabilidad.
Mezclado con los problemas de performance, se mezclan problemas de usabilidad, porque al ser los llamados asincronicos, se disparan en momentos no deseados. Pasa varias veces se esta digitando un campo y saltan controles correpondientes a otro campo de la pantalla o limpia el contenido de lo que estamos digitando.
Practicidad de instalación.
Una de las mejores caracteristicas que tienen las aplicaciones web, es que…

Instituto Pasteur de Montevideo.

En el dia de hoy, se inauguró el el Instituto Pasteur de Montevideo. Es una buena señal para todo el Uruguay y también un gran logro de Guillermo Dighiero.
En la prensa fue nombrado en Observa :.  y Diario EL PAIS - Montevideo - Uruguay
y en Francia.

Al tio Willie, felicitaciones pues se que es su sueño desde hace mas de 10 años!!!.


Bare Naked Languages or What Not to Model

Un articulo interesante sobre DSL (GeneXus es un DSL para aplicaciones de negocios) y alguna informacion sobre en que casos conviene usar Domain-specific languages y en que casos es inapropiado, pues intentan abarcar demasiado.
El resumen:

Domain-specificlanguage (DSL) technology was introduced at Microsoft as part of thesoftware factories methodology. While DSLs are useful as stand-alonelanguages, placing them in the context of a software factory makes themmore powerful and helps avoid some common pitfalls in applying thetechnology. This article explains how DSLs fit into the softwarefactories methodology and how using the methodology can help DSLdevelopers avoid some common pitfalls.The Architecture Journal - Issue 9: Bare Naked Languages or What Not to ModelEnrique
"tuve un rapto de imaginación y nadie pago el rescate"

Open Source Web Design - Un sitio recomendable para los que diseñan aplicaciones WEB

En el sitio OpenSourceWebDesign se pueden bajar buenos diseños de sitios web (templates) y combinaciones de colores atractivas.En mi caso, tengo una gran dificultad para lograr combinaciones de colores que les gusten a los demás (a mi me gustan todas!).También esta bueno para ver como los que saben hacen CSS (para sacar ideas para los Themes) y algunos javascripts.

Metodologias de trabajo con Genexus

Voy a empezar una serie de post, sobre metodologia de desarrollo o problemas que se encuentran desarrollando aplicaciones "grandes" con Genexus.

La idea es generar un poco de discusión sobre:

Forma de entrega de cambios. Agil o no tan agil.Programacion en una KB o en varias KB y consolidar el trabajoControl de versiones y concurrencia de desarrolloNormas de programación y normas de estiloProgramacion orientada a patterns, cuando conviene usar los GX Patterns. Como se testea una aplicación hecha en Genexus ?? (el que sepa que explique :) )
Comunicacion en el grupo de trabajoEs necesario un DBA en el grupo de desarrollo?Migrar de version de Genexus. Cuando tiene sentido y cuando es inevitableCiclo de vida de una aplicacion, como adaptar el grupo de desarrollo a dicho cicloHerramientas recomendadas para utilizar en el desarrollo.
todos los etc, que quieran agregar.

Error en SQLServer 2000 que se resiste

com.genexus.GXRuntimeException: java.sql.SQLException: [SRV-DB1]
Could not continue scan with NOLOCK due to data movement

.....
Cada tanto (54 veces en los últimos 2 meses), nos pasa que una aplicación hecha en GeneXus / java, accediendo a SQL Server 2000, nos da el error de arriba. Esto es causado porque el programa hace un for each sobre una tabla, recorriéndola, pero no actualizándola (lo que genera un select con NOLOCK).Al mismo tiempo la tabla es actualizada por otros usuarios, dando de alta y de baja registros de la misma.
Si otro proceso borra un registro, después que el programa declaró el cursor, pero antes de terminar de recorrerlo, se produce el error y cancela el programa.
Este error únicamente nos da en el cliente con mas usuarios.... Se "soluciona", sacando el NOLOCK (en Genexus seria actualizar algún atributo al recorrer, con lo cual bloquearía los registros que voy a actualizar), lo cual no sirve para estos casos.Otra opción, seria cambiar el ISOLATION LEVEL, que…