Entradas

Mostrando las entradas de 2009

Blog: Resumen del 2009

Imagen

Comparacion de Migraciones en .NET y GeneXus.

Imagen
Leia en Case Study: Migrating a VB6 Large Application to .NET el caso de una migracion de una aplicacion de 950.000 lineas de codigo a .NET de un ERP y dicen (las negritas son agregado mio):


The entire ERP application was migrated in 9 months by 3 developers totaling “3,650 developer-hours to migrate the code, 3,400 hours for code review and refactoring, and 1,300 hours for testing.” The code review was requested because the code would need further development in the future and none of the original developers were available. Total cost: 750,000 Euros, much less than the required one for a customized ERP. The process evolved in phases: when a module was done, it would be integrated with the rest of the VB application until the entire application would have been migrated to .NET.
Siempre me gustan estos articulos donde se detallan numeros pues permiten hacer comparaciones en la vida real dentro de nuestra industria.Nosotros hicimos (en el 2004) una migración "similar", un ERP un…

Velocidad de Internet en America

Imagen
A través del post Velocidad de Internet en América de Jorge Oyhenard, pude comparar las velocidades de internet en Uruguay.
Segun las tablas, en Uruguay solo le ganamos a las islas Malvinas!.

Para todos los que trabajamos desde Uruguay desarrollando para el exterior, esto implica perdida de competitividad. Menor velocidad, implica que demoramos mas en dar respuestas y enviar cambios.

En esta época de virtualización, todos los días estamos tomando control de algunas computadoras en países que están a miles de kilómetros. La diferencia de trabajar con una linea rápida y otra lenta o con cortes, es abismal. Esto se traduce en instalaciones mas lentas y mas errores que nos perjudican .

Esta semana, Ruben tenia que traerse algunos archivos que ocupaban un poco mas de 1Gb desde Costa Rica, para poder realizar un procesamiento aca. Esto parecería ser una tarea trivial, pero lamentablemente llevo muchísimas horas y varios intentos fallidos.

En fin, creo que deberíamos convencer a quienes tienen po…

RethinkDB - The MySQL database for solid state

Imagen
RethinkDB es una base de datos optimizada para trabajar con discos SSD y utiliza algoritmos que solamente agregan datos y pensados para aplicaciones que consultan muchas veces y modifican pocos registros.
En la base de datos se tienen disponibles toda la historia de los datos y se pueden modificar la estructura de las tablas, aunque las mismas se este utilizando con consultas.
Actualmente está en pre-beta, pero creo que conviene tenerla presente, pues hay varias aplicaciones que pueden funcionar muy bien con esta base de datos, sin tener que cambiar nuestras aplicaciones.
Algunas caracteristicas de RethinkDB: Optimized for solid-state drives. RethinkDB is designed and optimized for solid-state drives. Don't just buy new technology, make use of it! The database is the log. Solid-state drives let us use append-only algorithms, so your data is always in a consistent state. Open development process. We believe in releasing early, and releasing often. We will keep our design process open …

Version 1 Sucks, But Ship It Anyway

En el artículo Version 1 Sucks, But Shipt it Anyway, el autor explica porque hay que tener versiones 1.0 temprano en el ciclo de desarrollo. Si bien concuerdo mucho con lo que dice, me cuesta entender porque son los clientes los que deben pagar por dichos ajustes. Me parece un buen argumento para tener versiones gratuitas (o betas) hasta que este garantizada la usabilidad del producto.
Conviene leerlo entero, porque está bueno.

I've been unhappy with every single piece of software I've ever released. Partly because, like many software developers, I'm a perfectionist. And then, there are inevitably … problems:The schedule was too aggressive and too short. We need more time!We ran into unforeseen technical problems that forced us to make compromises we are uncomfortable with.We had the wrong design, and needed to change it in the middle of development.Our team experienced internal friction between team members that we didn't anticipate.The customers weren't who we thou…

GeneXus vs desarrollo tradicional con eclipse. Una comparación de la vida real

Imagen
Algunas veces el trabajo nos sorprende.
Esta ves me permitió poder comprobar algo que intuyo pero que es dificil de comprobar en la práctica, pues no es facil conseguir elementos comparables.
La hipotesis a probar, es que las metodologias de programacion basadas en modelos y/o en generacion de codigo (y en particular GeneXus) permten una mejor productividad en el desarrollo de aplicaciones comerciales y tambien que se las puede mantener con un esfuerzo menor que las metodología de desarrollo tradicional.
Una forma de comprobarlo sería tener dos grupos que desarrollen una aplicacion, uno usando GeneXus y otro con una metodologia de desarrollo tradicional y luego de algunos años comparar el resultado y los tiempos que insumen mantener las aplicaciones. Raramente se van a conseguir esas condiciones por los costos asociadas con el doble desarrollo.
En un trabajo reciente, me tocó hacer una consultoría en la que debía hacer sugerencias para mejorar un sistema que es mantenido por un gr…

Primer procesador programable cuantico.

Imagen
Leo en GizModo Scientists Make Breakthrough With First Programmable Quantum Processor [Quantum Computer]: "In the future, quantum computers will accomplish in seconds what would take years with our best computers today. Physicists at NIST have made a significant leap towards this goal by demonstrating the first 'universal' programmable quantum information processor.In other words, this is the first time anyone has developed a processor that can handle any set of instructions for more than one quantum bit or 'qubit.' Rapid progress when you consider that the first single-task quantum processorfirst arrived on the scene less than a year ago.The NIST team performed 160 different processing routines on the two qubits. Although there are an infinite number of possible two-qubit programs, this set of 160 is large and diverse enough to fairly represent them, Hanneke says, making the processor 'universal.' The researchers used a random number generator to select th…

Ley de Documento Electrónico y de Firma Electrónica.

Imagen
A partir de setiembre / 2009 tenemos en Uruguay una nueva ley para el manejo de documentos electrónicos y firma electrónica que le da sustento a las transacciones electrónicas, lo cual va a facilitar tramites, sobre todo para el cobierno electrónico y el comercio electronico.
Aunque hace años que hay tramites que estan informatizados, y los mismos tienen valor legal, en muchos casos se ha determinado mantener documentacion en papel para complementar tramites y en algunos casos esta establecido que si hay diferencias entre los registros electronicos y los de papel, los que valen son los medios fisicos (lease valen mas los papeles).
Espero que con esta ley los abogados/escribanos aprueben el uso de tramites 100% electronicos.
Algunas cosas interesantes de la ley: Se crea Infraestructura Nacional de Certificación Electrónica y la Autoridad Certificadora Raíz Nacional, asi como la Unidad de Certificación Electronica que va a ayudar a ordenar dicha infraestructura.
Mas informacion en : ht…

Una extensión necesaria: Borrar una KB

Imagen
Estaría bueno tener una extensión de GeneXus (X o superior) que permita borrar una KB. Hoy se puede muy fácilmente crear una KB, pero no es tan fácil borrarla, borrando todo lo que se creo.
La extensión debería (preguntándole al usuario):
Recorrer todos los environment y versiones definidos de la KB y borrar el directorio de programas y ademas los directorios virtuales o webapp que la misma pueda haber creado. También debería hacer el detach de la base de datos SQL Server y borrar la base de datos de la misma.

ELECCIONES EN LATINOAMERICA, INFORMA CNN EN ESPAÑOL

Un post de Marciano Duran: ELECCIONES EN LATINOAMERICA, INFORMA CNN EN ESPAÑOL: Vale la pena escuchar el audio completo, me causo mucha gracia.

– Hola…saludos desde el centro CNN en Atlanta, les habla Alberto Padilla. Este es un informe de CNN en español, Líder Mundial en Noticias con informaciones desde América Latina. Al sur del sur del continente americano en el pequeño estado de República Uruguay acaban de conocerse los primeros resultados de las elecciones nacionales que enfrentan al ex guerrillero José Alberto Mujica del partido Frente Amplio con el ex presidente Luis Lacalle de la agrupación Nacional. Vamos ya a las imágenes en Montevideo con Patricia Janiot, adelante Patricia. Estamos viendo caras de preocupación y tristeza a tu espalda en lo que parece ser el centro de Buenos A…perdón de Montevideo. Rostros de desazón en los candidatos y en los más allegados, Patricia. ¿No esperaban una votación tan mala, verdad?…22
Haga click para escuchar el audio




"

Autonumber de lineas - Una linda complejidad para esconder

Imagen
Con GeneXus se pueden definir campos autonumber y los mismos se numeran en forma automática y sirven cuando se necesita una clave numérica formada por un único campo.
Lo que me gustaría poder solucionar de forma mas sencilla es cuando se quieren tener números que no se repitan en una tabla subordinadas, por ejemplo el número de renglón en la factura.
Para esto, hay que poner una regla serial(AttNum, AttBase, Incremento) y agregar un atributo (AttBase) artificial en el cabezal, que guarde el último número dado para ese registro.
Esto no se podría solucionar de una forma mas fácil para quienes programamos?.
Me gustaría poder ponerle al atributo FacturaLineaId que es autonumber y que no fuera necesario tener que escribir la regla serial(), ni agregar el atributo en forma manual en el cabezal de la factura que no se va a usar para nada mas que para numerar. El atributo podría llamarse FacturaLineaId_Autonumber y lo puede agregar automáticamente Genexus.
Puede haber alguna complicación qu…

Crean nuevo polo tecnológico en Nueva Palmira

Leo en La Republica:

EN GALPONES DE LA VIEJA VOLKSWAGENGabriel Monteagudo | COLONIA La creación de un polo de desarrollo tecnológico o de incubadora de empresas para instalarse en los viejos galpones de la fábrica Volkswagen que hace 16 años permanece cerrada, fue uno de los proyectos que se presentaron en la convocatoria ciudadana que realizó la junta local de Nueva Palmira.Es una idea que se ha desarrollado en otras partes como en el viejo frigorífico Anglo de Fray Bentos o el PTI del Cerro según contó a LA REPUBLICA el activista social Heber Márquez, oriundo de Nueva Palmira "son casi tres manzanas que están vacías en medio de la ciudad y muy cerca del puerto. Creemos que allí se podría llevar adelante la instalación de empresas tecnológicas de primera línea que se vinculen con el puerto y desde allí con el exterior", señaló Márquez. Este viejo edificio podrá servir para que allí se instalen empresas de alta tecnología, teniendo en cuenta que, a pocos metros se encuentra el…

Automatic Pattern Generator

Imagen
Marcos tuvo una idea:
Tomar varios objetos similares que sigan un patrón. Sacar el factor común de dichos objetosGenerar templates y programas necesarios para generar estos objetos basados en atributos. Esto seria una parte de un patrón completo.
La idea es ver si con esto podemos hacer algo útil, para lograr generar patrones de forma mas fácil.
Para esto ya se formó un proyecto colaborativo y el que quiera puede sumarse. Hay que tener ganas de programar, probar y documentar. Si se sabe C#, mejor.
Si no logramos nada util, al menos nos vamos a divertir un rato.

GeneXus X Ev1: Como guardar una lista de objetos con warning y errores.

Imagen
Una de las cosas que mas extraño de GX 9.0 cuando estoy programando con la Evolution I, es no poder guardar una lista de cuales son los objetos que tienen errores o warning.
Cuando hago un cambio en el modelo de datos muchas veces hago un build all, y veo cuales son los objetos que quedaron bien y cuales tienen errores o warning.
Como la ventana de navegacion se reutiliza, la lista de objetos con errores o warning se pierden apenas vuelvo a generar un nuevo objeto, haciendo el proceso de arreglar los objetos con errores/warning muy complicado.
La forma que encontré de lidiar con este problema, es haciendo una categoria Warning y poniendole a todos los objetos que tienen warning en esa categoria, seleccionandolos todos y viendo sus propiedades. En el dialogo inferior, se puede digitar la categoria y asignarselas a todos de una sola vez. **
En algunos KB no se puede aplicar este método, pues modifica la fecha de modificacion del objeto, pero en algunas KB puede tolerarse esto.
Hago lo mi…

Uso de StackOverflow por parte de la comunidad GeneXus.

Imagen
Desde hace un tiempo, StackOverflow es un lugar de referencia para aquellos que programan en lenguajes tradicionales. Es una muy buena plataforma para preguntar y encontrar respuestas, pues las personas que den las mejores respuestas (votadas por los usuarios) van a tener mejor reputación.
Además es muy rápido y permite buscar en preguntas anteriores de forma muy ágil también. También se puede clasificar las preguntas con etiquetas, para que sea mas fácil encontrarlas.
En un intercambio de ideas que se produjo en Twitter, con @mcrispino y @adibatista hablamos de la posibilidad de usar StackOverflow para encontrar respuestas a problemas de GeneXus.
Se me ocurría que sería muy bueno, empezar a usar esta plataforma para complementar los foros Genexus de forma de tener una plataforma mejorada para encontrar soluciones.
Además seria una buena forma de hacer conocida la herramienta en la comunidad internacional.
Busqué por GeneXus y solamente hay 3 consultas que lo nombran y es en preguntas no …

Uruguay becomes first nation to provide a laptop for every primary school student

Imagen
Uruguay becomes first nation to provide a laptop for every primary school student: "

Uruguay's been a huge fan of the One Laptop Per Child initiative for quite some time, and while we're still unsure if it's the entity's biggest customer, the aforesaid nation is certainly doing some serious business with Nicholas Negroponte and Company. After the first swath of youngsters received their green and white XOs back in May of 2007, the final smattering of kids have now joined the proud group of laptop-toting tots in the country's circuit of primary schools. You heard right -- every last pupil in Uruguay's primary school system now has a laptop and a growing love for Linux, and we're told that the whole thing cost the country less than five percent of its entire education budget. So, who's next?

[Via Digg, image courtesy of oso]Filed under: Uruguay becomes first nation to provide a laptop for every primary school student originally appeared on Engad…

Comunidad GeneXus - Una perspectiva personal (2009)

Imagen
Hace 2 años escribí sobre como veía la comunidad GeneXus y hoy quiero hacer lo mismo. Hay quien considera que soy demasiado optimista, pero con sinceridad creo que este es un buen momento para desarrollar aplicaciones con GeneXus.
En el último (XIX) Encuentro Internacional GeneXus pude ir a varias charlas y me gusta comparar con otras comunidades y ver como está el resto de la industria.
Mas aplicaciones. Una de las cosas que parece cada vez más claro, es que se siguen necesitando gran cantidad de aplicaciones y lo mas solicitado por los clientes son aplicaciones con interfaz WEB y también que sea visualizable desde diferentes dispositivos móviles (teléfonos, consolas, PDA, etc).
Aplicaciones Grandes y cada vez mas complejas. Se pueden ver que hay necesidad de aplicaciones grandes en varios sentidos. Hay algunas que necesitan muchos programas, otras que son usadas por muchos usuarios, otras que manejan grandes cantidades de datos, otras necesitan ejecutarse en muchas plataformas o en…

Que está haciendo GeneXus con nuestra forma de resolver problemas?

Imagen
Conversando con un amigo me dijo la siguiente frase:
"GeneXus necesitaría tener algo para forzar a pensar en el modelo de datos".
Él estaba comparando la forma de desarrollo tradicional (lenguaje de programación y DBMS SQL) contra GeneXus.
Con las herramientas mas tradicionales había que hacer una análisis inicial para llegar a un modelo de datos. Una técnica bastante usada, era el hacer diagramas de Entidad-Relación, en papel (y muchas veces con reglas con rombos y cuadraditos) y recién con este modelo de datos, se generaban los scripts para la generación de la tablas necesarias y en ese momento se empezaba a programar.
Estas etapas, eran indispensable para empezar a codificar por lo que se exigía un buen período de tiempo para pensar en el modelo de datos y se sabía que cualquier error que se encontrara después, daba gran trabajo en arreglarlo. Había que re-hacer el diagrama, ajustar los scripts de modificación de la base de datos y por ultimo cambiar los programas, lo cual…

Sirve el Betatesting?.

Imagen
Hablando con colegas, algunos me decían que no entendían porque dedicaba tiempo a hacer betatesting de diferentes productos y que para ellos era una perdida de tiempo y que las veces que habían participado en ciclos de pruebas beta, no habían logrado que sus sugerencias fueran tomadas en cuenta.

Una cosa importante a tener en cuenta, es que la etapa de betatesting es cuales son las expectativas que se pueden tener en un ciclo de pruebas en esta etapa.
Cuando desarrollo un producto y el mismo esta en etapa de BETA, mi intención es tratar que el mismo se pruebe en la mayor cantidad de maquinas y usuarios posibles, de forma de chocar mis programas contra la realidad de forma de ver si se adapta correctamente.

La etapa de BETA, no es para la incorporación de nuevas funcionalides, sino para hacer los ajustes en las funcionalidades que ya están desarrolladas.
Durante la etapa de Betatesting, no se van a incoporar nuevas funcionalidades?. Se pueden incorporar funcionalidades en forma paulatina…

Pizarrón con frases del grupo de desarrollo.

Imagen
Este es un buen dia para publicar las frases del pizarron. Son frases dichas por alguien del grupo y que son buenas para sacar de contexto.

Obvio!!Ah! yo no gasto un peso.Si, yo siempre quiero. Llora cada media hora. La edad es lo de menosMe limito a la raza humanaPrefiero que me haga mal, a que sobreDespertás y sabes que no es un dia mas, es la bimestral.A alguno le haría falta una internadita. Alla no se enteranCual es la verdadera razón?Me la comí yo. (2 veces)Por lo menos vibró, bóMejor grande, que chicoLo peor es la cola doloridaLa banana no me gustaYo no sabía que era gratisPara que sortear?. Si está la listaNosotros siempre llegamos. Yo no me dejo a menos que aparezca la plata. Atiende por varios mostradoresBobby, vamos a Los Yuyos?

Reorganizaciones mas fáciles de ejecutar con script.

Imagen
Un escenario común en empresas que desarrollan aplicaciones con GeneXus, es tener que ejecutar una misma reorganizacion en varias bases de datos.

Por ejemplo para algunos grandes organizaciones, se tienen ambiente de desarrollo, pre-produccion (u homologacion) y produccion, y cada una de estas instalaciones tiene bases de datos independientes, pero que se reorganizan desde una misma KB.

En empresas de desarrollo de software, es comun testear bases de datos, con diferentes servidores o versiones, o tener juegos de datos personalizados para diferentes clientes guardados en bases de datos independientes.

Estos casos, hace que se deba ejecutar la misma reorganizacion contra varias bases de datos, desde la linea de comandos.

Esto hoy se puede hacer, pero los datos de la conexión se deben guardar en archivos de configuración, y para ejecutar en varias bases de datos, es necesario cambiarlos para poder ejecutar.

Mi propuesta seria poder pasarle la información necesaria para conectarse, como …

Código externo en aplicaciones GeneXus

Imagen
Hice un encuesta ** sobre como estaban utilizando código externo en aplicaciones GeneXus. La idea es hacer un pequeño resumen de cuales son las funcionalidades que exigen a los programadores a usar funcionalidades propias del lenguaje que no pueden resolverse con GeneXus.
Dejé en la pagina Código externo en aplicaciones GeneXus en el wiki de la comunidad los principales resultados. Estaría bueno que los que quieran completen la lista con sus necesidades, de forma de poder hacer solucionar estas necesidades de una forma que sea mas fácil de integrar con GeneXus. Si se pueden solucionar estos problemas, vamos a poder hacer aplicaciones mas poderosas en forma mas fácil.
Esta lista es una buena base para la realización de algún proyecto colaborativo por si alguno lo quiere resolver para su uso propio y para ponerlo a disposicion de la comunidad.

Si alguno quiere dejar comentarios en el blog en vez de editar la pagina, tambien es bienvenido.


** Bueno, en realidad revisé algunas KB y le pre…

MonoTouch 1.0 de Novell: Desarrollar para iPhone con .NET Framework.

En el articulo iPhone gets .Net app development dicen:
"Novell on Monday will offer a kit for developers to build Apple iPhone and iPod Touch business applications using Microsoft's .Net Framework instead of the Apple-designated C or Objective-C languages. Leveraging Novell's Mono runtime for running Windows applications on non-Windows systems, Novell's MonoTouch 1.0 is a commercial software development kit that lets developers utilize code and libraries written for .Net and programming languages like C#."Esto acercaría un poco mas el tener un generador en GeneXus que pueda generar aplicaciones que corran en el iPhone/iPod Touch, aunque no se bien que dificultades pueden aparecer en el camino. La suscripción para la versión personal del MonoTouch 1.0 sale U$S 399 al año.

Peugeot ofrecerá WiFi en los autos el año que viene

Imagen
Peugeot ofrecerá WiFi en los autos el año que viene: "

Una gran noticia para los que necesitamos estar conectados todo el día a internet y encima somos fanaticos de la marca del leoncito, ya que Peugeot anunció que a partir del año que viene comenzará a brindar, de manera opcional, la instalación de WiFi en sus autos, salvo por el Peugeot 5008 que ya lo traerá de fábrica. Los clientes que decidan instalar este sistema tendrán que pagar un adicional, obviamente, con el cual le instalarán un router HSDPA con tarjeta 3G para recibir la conexión a internet.
No se conoce la fecha precisa de cuándo comenzará a implementarse este sistema, sólo se sabe que es el año que viene, y tampoco hay información del precio adicional que habrá que pagar para instalarlo, pero supongo que no debe ser muy elevado, ya que el equipamiento, a simple vista, no es costoso.
Visto en Lineup"

KB Grandes

Imagen
En el XIX Encuentro Genexus, se realizó una charla sobre KB Grandes.
Me gusta mucho ver como evolucionan estas reuniones y como cambian las necesidades de las empresas. El año pasado había muchos muy preocupados por la performance de como manejar KB grandes, y en esta oportunidad los planteos fueron bastante diferentes.
** La lista es totalmente interesada e influenciada por mis necesidades.
Navegar KB. Se plantearon las necesidades de poder recorrer una KB de gran tamaño y poder entender que es lo que hace.
Es muy importante poder contar con conocimiento acumulado en KBs. Es indispensable para poder tener aplicaciones del tamaño y complejidad que grandes organizaciones necesitan. Tambien es indispensable, que las personas que deben mantener dichas aplicaciones, puedan entenderlo. Con KB de mas de 2000 objetos, entender como funcionan las mismas muchas veces no es trivial. Si se tiene mas de 10.000 objetos la tarea ya deja de tener dimension humana.
Durante el Encuentro se anuncio qu…