Entradas

Mostrando las entradas de noviembre, 2007

Experimento con Caracoles

Imagen
Con Felipe hicimos el experimento que muestran en How to freeze and revive a garden snail.

Los dos caracoles que juntamos del jardín fueron bautizados como Walt Disney y Mamut, porque iban a ser congelados y vuelverían a la vida.

Lo pusimos en agua helada y al freezer. Despues de una hora, el agua estaba congelada y los caracoles también.

Al ponerlos al sol, se descongelo el hielo y rápidamente (bueno, no muy rapidamente) revivieron y salieron raudos a seguir comiendo nuestras plantas...





Ningun caracol fue dañado en la realizacion de este experimento.

Historia de mis logos tristes

Imagen
En el año 1992(*), con Raul y Gustavo, trabajabamos en Facultad de Ingenieria.
Al principio Raul trabajaba en el Centro de Calculo, Gustavo en Mecanica de los Fluidos y yo en Investigación Operativa, pero luego los tres terminamos trabajando en el Centro de Cálculo que era donde habia mas movimiento y estaban los desarrollos mas divertidos.

Hacia unos 4 años que nos habiamos recibido de Ingenieros los tres juntos y todos teniamos otro trabajo para poder subsistir y ya habíamos empezado a hacer algunos desarrollos (Clipper/DOS, VAX, Unix, AS/400) desde el año 1987.

Yo tenía un Grado 1 (el más bajo del escalafón universitario) y trabaja 4 horas diarias y tenia el suculento sueldo equivalente a USD 95 mensuales. El trabajo me encantaba.

En una oportunidad hicimos un curso de manejo de proyectos con un Gerente de una importante empresa multinacional canadiense. Después de un tiempo dicho gerente nos llamó pues necesitaba una aplicación para el AS/400, pues una persona del Centro de Cómputos s…

Wiki de la Comunidad GeneXus

Imagen
Hoy el Wiki de la Comunidad GeneXus estuvo muerto por un largo rato.

Se que es (o era) un tomcat con problemas de memoria y consumo de CPU.
Le avise a su webmaster y sigue caído...

Este tipo de cosas me joroba, porque no me deja avanzar en el trabajo pues la mayoría de la documentación de la Rocha esta únicamente ahí.

Creo que seria bueno poder tener la opción de bajarse el Wiki local u otro wiki replicado para casos de emergencias.

Ojo, no descarto que el problema no sea el servidor sino que yo no pueda verlo o vea otro servidor distinto que otros (por lios de DNS) que no son la primera vez que me suceden, pero de cualquier forma no pude consultar la documentacion.

La re-fragilísima linga que se rompió

Imagen
En la noticia "Un accidente en el Puerto que cuesta US$ 3 millones"

El vicepresidente de la Administración Nacional de Puertos, Gastón Silberman, dijo que la falla en la grúa que trasladaba un escáner destinado a control de contenedores "llama la atención"

Para hacerla corta, compraron (lo pagamos todos!!) un escaner de contenedores, se planificó su uso, y casualmente (!"#$%&/=?¡) se rompió antes de instalarlo.

Ya teníamos pronto el programa para subir las imágenes del escaner de contenedores (que son grandes) y que nos había exigido usar el SAC 18357 "Problema en insert de blob en base de datos".

Veremos como termina la historia.

HP StorageWorks XP24000 Disk Arrays

Un cliente esta por comprar un equipito de discos de 40TB y me pasó la página para revisar las especificaciones.

Ahi encontré este video, que a pesar de ser pura propaganda, esta bueno para ver como pueden testear los planes de contingencia en los lugares que tienen dinero para hacerlo.



También se puede ver aca.

PD: No me gustó la broma de los pescaditos.

Googlizando mi trabajo.

Imagen
Hace unos meses, tenía un notebook que me había acompañado por 5 años. Estaba viejito pero cumplía con los requerimientos para desarrollo GeneXus 8.0 y 9.0 y demás cosas. Lo tenía bastante tuneado para que no cargara nada más que lo necesario para no consumir memoria que era el recurso mas escaso (tenia solo 768 Mb de memoria).



Cuando empecé a probar la versión Rocha de GeneXus, se complicó el panorama pues consumía bastante memoria. Si tenia habierto Outlook y Rocha, se volvía prácticamente intrabajable.



Buscando alguna alternativa a esto, decidí pasarme a Gmail y su manejo de varias cuentas, para recibir y enviar desde ahi todo el correo, tanto el de Concepto, como el que uso para los foros de GeneXus (que era de Gmail).



La experiencia del uso de Gmail para mail de trabajo, tiene puntos altos:

El archivado de mails es responsabilidad de Google.
La busqueda de mails es espectacular
Permite clasificar los mails con varias etiquetas simultaneas.
Usa poca memoria, es rápido y tengo todos los m…

GXUnit - Presentaciones finales de proyecto

Imagen
Hoy (26/11/2007) a las 18:00 y a las 19:30 horas en el Salon Rojo de Facultad de Ingeniería (UdeLaR) se estarán haciendo las presentaciones finales de los dos proyectos de GXUnit.

Son dos grupos, que realizaron extensiones de GeneXus Rocha y dos implementaciones diferentes (unos agregando partes a los objetos y otros creando objetos nuevos) para la realización de pruebas unitarias en objetos (por ahora solo procedimientos) de una KB Genexus.

Aún falta trabajo para que sea un producto terminado y usable, pero es un punto de partida excelente para continuar en el futuro. Quedé contento con el resultado de dichos trabajos.

En los próximos días deberían subir los proyectos a GXOpen.

UPDATE: Ambos grupos aprobaron el curso y la presentación con felicitaciones del tribunal examinador. Ahora hay plazo hasta fin de Febrero, para evaluar el producto, donde podremos probarlo un poco mas. Por mis pruebas, ya cumple con lo que se habia planteado en el alcance primario.

Uno de los grupos implementó el …

Javascripts UserControls

En MooTools Mocha UI v0.5
hay algunas implementaciones de controles de MooTools que están buenos.
La forma de poder arrastrar ventanas y crearlas en forma dinamica, esta bueno.

Introduction Mocha is a MooTools user interface class made with canvas tag graphics. This is an on going exercise to help me become more familiar with both MooTools and the canvas tag. See the windows to the right for more information.

Sobrevivir o sobreactuar?

Imagen
La sobrenatural situación de superpoblación
hizo que el sobretecho cediera,
pues su confección no era sobresaliente

Aun sobresaltado por el sobrepeso
y sobrecogido por el sobreprecio
suspendió la sobremesa.

El sorbete podía esperar.
Sobrevolaba el ambiente
una sobreexitación inexplicable.

Sobrevalorando la situación,
decidió no sobreactuar
pues era llover sobre mojado.

Sin embargo el sobrestante fue sobreseído.
Vivía sobrentrenado
y pudo sobreponerse sin sobresaltos.

(perdón, pero 8 horas de espera en el Aeropuerto de Panamá pueden lograr que escriba esto y cosas peores).

Etiquetas y Categorias

Imagen
En GeneXus Rocha, hay una funcionalidad "nueva" que es la de poder tener objetos en categorías. Esta muy buena.

Esto es algo que veníamos pidiendo desde hace tiempo (**) , por ejemplo en el wiki de la comunidad habia escrito:

User Properties in Objects(Enrique Almeida)
Poder establecer propiedades del usuario, en los objetos GeneXus .
Poder tener TAGS asociados a los objetos, de forma de poder clasificar los objetos por TAGS creados por el usuario.
ESta funcionalidad permitiria que los usuarios definan TAGs por ejemplo.
DELETED - Objeto que no se utiliza mas, pero que no se puede borrar, pues debe ser distribuido para borrarse
SSL - Para los objetos que se deben instalar en un directorio que tengan SSL habilitado.
ERROR - Objeto que tiene errores
REVISAR - Objeto aun no testeado
Deberia poder agregarse y modificarse con GXPublic, sin necesidad de consolidar, sino hacerlo con un UPDATE.

Si el habia pedido algo, y lo implementaron, porque este post?. Porque creo que la implementación se…

Como crear un script que haga inserts de los registros de una tabla (SQL Server)

PROBLEMA: Tengo una tabla con registros y quiero llevar estos registros a otra tabla con el mismo nombre en otra base de datos, en un servidor que no están conectados.

En Creates a data insert script from a table, Nigel Rivett publica un script bueno para crear las sentencias insert, con los valores de tablas que ya existen. Es bueno para pasar los registros que me funcionan correctamente en el ambiente de desarrollo a produccion, a traves de un script.

Copio el script para crear el stored procedure, que luego puede usarse para crear el script. Me resultó muy util.
Tiene un problema con el formato de las fechas, pero es facilmente solucionable.


if exists (select * from sysobjects where id = object_id(N'[dbo].[sp_CreateDataLoadScript]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_CreateDataLoadScript]
GO

Create Procedure sp_CreateDataLoadScript
@TblName varchar(128)
as
/*
exec sp_CreateDataLoadScript 'MyTable'
*/


create table #a (id int identity (1,…

En busca de las reorganizaciones perdidas.

Imagen
Como contaba en el post anterior, uno de nuestros clientes tenia un problema pues habia perdido alguna reorganizacion.

El escenario de trabajo es este:

* KB centralizada, donde mas de una persona consolida los cambios y genera reorganizaciones. Esta en .NET y SQL Server 2000.
* Base de datos de Pre-Produccion donde se realizan los cambios con las reorganizaciones Genexus
* Base de datos de Producción, donde se ejecutan las mismas reorganizaciones que en pre-producción.

El problema se daba porque se habían generado 2 reorganizaciones y no se había salvado la anterior. Por lo tanto, no se tenían todas las reorganizaciones para ejecutar en PRODUCCION.

La situación empeoraba, porque la segunda reorganización necesitaba cambios realizados en la reorganización anterior.

Para arreglar esto, teníamos varias opciones. La que me resulto mas sana, porque solucionaba varios problemas a la vez, era comparar la base de datos que GeneXus pensaba que tenia, con la base de datos real y sincronizar las difere…

Historia de reorganizaciones

En el foro de la rocha, se està conversando sobre la conveniencia o no de guardar dentro de la KB la historia de las reorganizaciones. Gustavo escribio un buen post sobre el tema. Justamente me encuentro trabajando en un proyecto de un cliente, en el cual han perdido alguna(s) reorganizaciones y mi tarea es reconstruir lo perdido y a lo mejor por eso el tema me tiene mas sensibilizado.

Basicamete existen dos posiciones.

a) Guardar la historia de las reorganizaciones y poder ejecutar las reorganizaciones secuencialmente.

b) Tener algun mecanismo de guardar versiones y poder generar la reorganizacion necesaria para que se sincronicen dichas versiones.

Desde mi punto de vista, ambas son validas y ambas necesarias.

La historia de las reorganizaciones, son NECESARIAS. En muchos lugares es obligatorio guardar dichas reorganizaciones, para saber cuando se cambio algo. Por lo tanto si GeneXus no ayuda a guardar la historia de las reorganizaciones, cada quien que lo necesite lo seguirà haciendo en …

Backup de Blogger

Que pasa si alguna vez te borran todo el blog de blogger?.
O si google decide apagar sus servidores?.

Hace unos años, hacer un backup de blogger era medio traumatico.
En estos dias, encontre Blogger Backup, que es un pequeño utilitario que salva a disco los posts de Blogger, con comentarios. Me parecio recomendable, pues es bastante facil de usar.

Toshiba super toilet

Imagen
Toshiba lanzó en Japon el "most eco-friendly super toilet".
Calienta el agua del bidet, permite levantar la tapa con el control remoto, se apaga solo en la noche y larga aire con olor lindo.

Es una lástima que no dice cuanto sale, pues creo que podría comprar un par.

Gurisito - Plan Ceibal - OLPC

Imagen
Niño, mi niño,
vendrás en primavera,
te traeré.
Gurisito mío,
un notebook de U$S 200
te daré.

Y aunque nazcas pobre,
te traigo también:
se precisan niños
para amanecer.

Microsoft Sync Framework y aplicaciones desconectadas

Imagen
Microsoft se puso las pilas y sacó el Microsoft Sync Framework para poder sincronizar aplicaciones que puedan funcionar tanto desconectadas como conectadas.
Aun no tuve tiempo de probarlo, pero parece algo similar a Google Gears, y a primera vista parece mas completo. Va a estar divertido.

Microsoft Sync FrameworkIntroducing the Microsoft Sync Framework CTP1 SDK – a comprehensive synchronization platform enabling collaboration and offline for applications, services and devices with support for any data type, any data store, any transfer protocol, and network topology.Introduction to the Microsoft Sync Framework Runtime
Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline access for applications, services and devices. Using Microsoft Sync Framework runtime, developers can build sync ecosystems that integrate any application, with any data from any store using any protocol over any network. This document will help you understand how t…

Tres conversaciones con mis hijos.

Estos diálogos surgieron en la ida/vuelta con mis hijos al colegio, de esta semana.

1) ¿Papá, que es ser oligarca?
Se ve que Felipe sigue las sesiones de nuestro parlamento y la otra palabra de la frase no le presentaba dudas.

2) ¿Como sabe el teléfono que tiene que llamar a la ciudad en la que estoy o a otra?
Le expliqué que si discaba el número sin 0 (cero) adelante, llamaba a la ciudad en la que estaba, si ponía un 0 delante, era para hacer una llamada a otra ciudad dentro del pais y si digitaba 00 era para llamar a otro país.

Se quedó un ratito pensando y después me dijo:
_Entonces ¿si se marca 000 llamas a otro planeta y con 0000 sería para llamar a otra galaxia?

3) Mp3=Musica, MP4=Video, Mp5?
Veníamos hablando sobre reproductores portátiles pues Emilia y Matilde tienen sus reproductores y Felipe no y quiere uno para Navidad. Me preguntaron que era MP4, y sin entrar en mucho detalle (sobre MPEG 4, y esas cosas) le conte que el Mp3 era solo para música y el MP4 era para poder ver videos.

RSS con autenticación y SSL

Un cliente me pidió una aplicación que permita publicar algunos resultados del sistema en formato RSS.

La idea básica es que pueda cualquier cliente pueda (usando alguna forma de autenticación) leer sus "noticias" publicadas en RSS/Atom.

Como es razonable uno de los requerimientos es que un cliente no pueda ver información de otro y ademas debería asegurarse que no viajen contraseñas en forma de texto plano por internet, para asegurar confidencialidad.

Es un requerimiento razonable, pero los principales readers, no soportan esta funcionalidad y creo que dentro de las empresas van a existir cada vez mas este tipo de RSS "privados".

Un para de paginas interesantes con datos sobre RSS readers que soportan y no SSL/Auth son
http://blog.converter.cz/index.php?m=200310#286 (en checo)
http://labs.silverorange.com/archives/2003/july/privaterss (en ingles).

Supongo que varios en la comunidad GeneXus deben haber pasado por esto, si pusieron algún wiki (con rss) en directorios con…

El Chupacabras ataca de nuevo (II).

Si bien no se animan a comentar en el blog, Laura, Marcos y Martin me mandaron mail diciendo que a ellos también les habían tenido problemas con el model.ini. Parece que el chupacabras sigue activo en los últimos días.

Todos los dias se aprende algo nuevo

Hoy aprendí una palabra nueva: estanflación

Definiendo el término, podemos decir que estanflación es la situación económica que indica la simultaneidad del alza de precios, el aumento del desempleo y el estancamiento económico.

Es bueno ver que no solo los informáticos creamos neologismos.

no hay peor betatesting que el que no se hace

Imagen
hoy estoy raro y no entiendo porque si nada extraño me tuvo a mal traer y este proceso de betatesting empezo en una etapa mucho mas temprana que todos los demas procesos parecidos por los que he pasado teniendo muchos versiones/visiones previas del producto que permiten hacer cosas muy parecidas a la realidad y entonces tenemos algo mucho mas maduro pero ahora que llegamos a la beta1 que es donde empezabamos en los periodos anteriores ya todo el mundo esta medio podrido y ya parece que no entran mas cambios pues ya hay plazo de cierre y lo que hay que hacer es testear que las cosas funcionan y parece mas un testing y no un betatesting y entre tantas falsedades muchas de mis mentiras ya son verdades hice fácil adversidades, y me compliqué en las nimiedades lo que tenemos que hacer ahora es hacer funcionar las aplicaciones que tenemos y entonces hay que probar con aplicaciones existentes y nadie esta probando las caracteristicas nuevas no recuerdo nadie que planteara un cambio con resp…

Pattern: CrossTable entre 2 dimensiones

Se me ha presentado en varias oportunidades, que en aplicaciones GeneXus WEB necesito tener una tabla de cruces de datos. Esta es una tabla donde se muestre una dimension en las columnas y otra dimension en las filas, poniendo algun indicador (suma o cuenta) en las celdas internas de la tabla.

Ejemplo:

Factura
*NroFactura
Cliente
Producto
Importe

y generar una tabla del tipo

..Cliente1Cliente2Cliente3Cliente4Cliente5TotalProducto1

3000

3000Producto2200
10045
345Producto3



1

Libros leídos

Imagen
GeneXus Rocha - Episodio Uno.
Me gustó. Es un enfoque diferente para presentar un tema tan tecnico, y creo que me hubiese servido saber que con GX podia enganchar alguna chiquilina. Yo lo intenté con la versión 3.3, hace muchos años, pero no tuve tanta suerte. Se ve que la interfaz grafica influye.









Aerosmith es una mierda. de Eduardo de la Puente.
Hacía tiempo que no me reía tanto con algunos cuentos. Me gustó mucho.



Smart & Gets Things Done. Joel Spolsky.
Bueno. Enseña a como contratan en su empresa. Tiene cosas interesantes y Joel es excelente escribiendo, aunque casi todo el contenido del libro lo habia leido en su blog.

Los Juegos de Mastropiero.
Me gustó al principio, y despues me resultó medio pesado. Cuenta diferentes recursos o juegos de palabras y despues busca en la obra de Les Luthiers las veces que lo aplicaron. Nombra al grande entre los grandes Leo Masliah.


Managing Humans (Michael Lopp)
Es un área donde debo aprender mucho. Me gustó el libro, tiene algunas cosas interesant…

El Chupacabras ataca de nuevo.

Imagen
Desde hace varios días, hemos sufrido varios ataques de EL CHUPACABRAS. Se especializa en atacar el archivo model.ini de KB en GeneXus 8.0 y GeneXus 9.0.

Lo mas curioso es que siempre ataca cuando hay mas gente trabajando en ellas.
La forma de ataque que tiene son variadas y difÍciles de detectar.

Muchas veces agrega lineas en blanco al archivo, haciendo que cada operación a realizar en la KB demore muchísimo.

Otras veces trunca el contenido del archivo, dejando algunas propiedades perdidas en el hiperespacio.

Para complicar mas las cosas, alguna vez sustituyó el archivo model.ini, con el archivo model.~in.

Le pido por favor, que si alguno lo ve por sus instalaciones, me avise pues estoy organizando un grupo interdisciplinario para aniquilarlo.

Es maravilloso ver que un Build all que llevo toda la noche, quedó mal generado, porque el CHUPACABRAS hizo de las suyas.

ARTech Nearly Done with 'Rocha' Rewrite of GeneXus 4GL

We're still about three months away from seeing the general availability of "Rocha," the codename for the 10th version of the fourth-generation language (4GL) development tool, GeneXus, from ARTech. But to hear company executives talk about it from last week's North American user conference in Chicago, Rocha is ready for users to start using to develop next-generation Web 2.0-style applications, and even to put them into production on System i machines.

http://www.itjungle.com/fhs/fhs110607-story03.html

Wow!

Anoche estaba chateando con un amigo, cuando mi notebook (un HP con Windows Vista Business) me avisó que le quedaba poca batería (decía que quedaban 31 minutos). Fui a buscar el cable para conectarlo a la red eléctrica y lo hice. No demoré mas de 1 minuto.
En ese momento Windows Vista dejo de responder, no funcionaba nada, ni el raton respondia, el reloj del equipo quedo congelado y el disco estaba trabajando como loco. En ese momento miré la hora y eran las 23:44. Decidi esperar para ver si el sistema volvía a responder. Recién a las 23:59 volví a poder hacer algo y demoró algunos minutos mas en estabilizarse.
O sea, perdi 15 minutos de mi vida viendo al disco "hacer cosas" y yo calentito...

Seguramente estaba haciendo algo de paginado y bajar 2GB de memoria a disco puede demorar eso.. pero que un sistema (y mas un sistema operativo) haga algo durante tanto rato sin que el que lo usa sepa que está haciendo, demuestra un problema de usabilidad importante.

WebTest vs. Selenium: Real and Simulated Browser Testing

En WebTest vs. Selenium: Real and Simulated Browser Testing dicen:

Functional testing tools for web applications come in a variety of styles, but one of the most fundamental differences between the choices are between the tools that drive one or more real web browsers in order to fully recreate a realistic environment, like Selenium, and tools that simulate the way a web-browser operates, like Canoo WebTest. Marc Guillemot compared the two, and in his opinion, WebTest wins, with a score of 13-5.

Via: InfoQ.com