Luego de una charla vía Gmail con Pablo López Liotti, hemos llegado a la decisión de encarar juntos una tarea que yo llamaría “rescate de Catalis”.
¿Por qué rescate? Porque Catalis se encuentra en un estado de semi-abandono, por diversas circunstancias, y no queremos que esa situación se prolongue por más tiempo. La versión oficial, disponible desde junio de 2005, no ha recibido actualizaciones, a excepción de un par de parches que no fueron debidamente integrados a la distribución. Numerosas mejoras locales realizadas por usuarios de Catalis tampoco han sido incorporadas.
A cinco años del lanzamiento de Catalis, es evidente que el desarrollo de la nueva versión se ha estancado, y por otro lado sigue habiendo interés en Catalis, se van sumando nuevos usuarios, y las demandas (de corrección de bugs y agregado de funcionalidades) se van haciendo sentir.
También es cierto que no conocemos mucho de la “comunidad” de usuarios de Catalis. Afortunadamente la lista en Google Groups sigue teniendo alguna actividad, pero la participación es bastante baja.
Desde el punto de vista técnico, la principal cuestión es si vale la pena hacerle mejoras al Catalis viejo, o si es mejor concentrar el esfuerzo en sacar adelante el nuevo Catalis. En varias ocasiones dije que, dado que había una nueva versión de Catalis en desarrollo, la versión original quedaría congelada, sin más modificaciones (oficiales). La decisión de no hacer modificaciones también estaba motivada por la dificultad que implica mantener una aplicación escrita con IsisScripts y un JavaScript semicaótico, sin nada de orientación a objetos. Sin embargo, me han convencido de que se justifica el esfuerzo de implementar un número limitado de mejoras.
La propuesta entonces consiste en encarar este “rescate” en dos áreas:
Esta es una lista informal, como para saber de qué estamos hablando. Luego habrá que formalizarla usando la herramienta provista por el repositorio.
Yo estaba seguro de que las versiones de Catalis para Linux y Windows eran idénticas, excepto por los cambios en los saltos de línea y en las bases Isis, propios de la conversión entre ambas plataformas. Sin embargo, también difieren en estos dos detalles:
$ diff -b linux/catalis-2005.06.09/cgi-bin/catalis_pack/catalis/xis/catalis.xis windows/catalis-2005.06.09/cgi-bin/catalis_pack/catalis/xis/catalis.xis 276c276 < ,cat('HIDDEN-ELEM.HTM'), /* FORM e IFRAME ocultos */ --- > ,cat('HIDDEN-ELEM.HTM'), /* FORM & IFRAME ocultos */ $ diff -b linux/catalis-2005.06.09/cgi-bin/catalis_pack/catalis/xis/grabar.xis windows/catalis-2005.06.09/cgi-bin/catalis_pack/catalis/xis/grabar.xis 38c38 < 'RECORD_NOT_FOUND', --- > '*', 43c43 < <flow action="jump"><pft>if v4000 <> 'RECORD_NOT_FOUND' then 'VALIDATE_SAVE' fi</pft></flow> --- > <flow action="jump"><pft>if v4000 <> '*' then 'VALIDATE_SAVE' fi</pft></flow>