Posted by Eduardo Millán on octubre 15, 2004
Filed under Nb vs Ecli |
1 Comentarios
Sí, desgraciadamente Eclipse me ha engañado. Estoy hablando del tema de las codificaciones de archivos. Mi anterior experiencia con NetBeans era muy satisfactoria, cogías un archivo ya fuese JSP, HTML, XHTML o XML, y arriba del todo, donde vosotros ya sabéis, le ponías eso del encoding, normalmente o pones UTF-8 o ISO-8859-1. Los editores de NetBeans eran lo suficientemente avanzados como para deducir desde esta información en qué codificación debían guardar los archivos.
Pues bien, no ocurre lo mismo con Eclipse, a menos que alguien me demuestre lo contrario. Durante más de dos semanas he tenido un archivo en un proyecto codificado en UTF-8 y guardado en ISO-8859-1. Para solucionarlo, he tenido que copiar el contenido al portapapeles, borrar el archivo, crearlo de nuevo con el mismo nombre y ponerle la codificación ISO-8859-1. ¡Un lío!
Realmente, en Eclipse solamente encuentro una opción en Window -> Preferences -> Workbench -> Editors donde seleccionar la codificación para los archivos de texto, pero
eso no es lo mismo que en NetBeans, porque se supone que esta configuración es para todos los
archivos que edite, no me sirve.
¿Conocéis editores que respeten la codificación? Aunque sea poniéndolo explícitamente en configuración o eso. Yo solamente conozco dos:
- NetBeans (libre)
- XML Spy (de pago)
¿Alguno más?
Posted by Eduardo Millán on septiembre 22, 2004
Filed under General |
0 Comentarios
Esta mañana he descubierto en algún mail perdido que me mandan desde
alguna lista de correos cuyo nombre no quiero acordarme (ese
Cervantes!!) una web realmente útil al menos para mi, que cambio de PC
bastante. Se trata de del.icio.us una web pensada para
que los usuarios
puedan crear sus propias bookmarks, en inglés. Ahora ya tenemos
disponibles nuestros enlaces favoritos, allá donde estemos.
Lo bueno (o malo) del sistema es que los links se comparten entre los
distintos usuarios de la web, por lo que no interesa poner bookmarks a
contenidos privados, eso sí es totalmente gratuito y se puede indicar
etiquetas para los links de forma que los podemos categorizar.
Un ejemplo, supongamos que añado un link a javaHispano y le indico como
etiquetas: java y
spain.
Pues bien, una vez añadido el link puedo ver cuántos usuarios tienen
este mismo link, también puedo ver los links del resto de usuarios con
las etiquetas que yo he utilizado, es decir, los usuarios que han
añadido links con etiqueta java
o spain.
En definitiva, un sistema gratuito, si no interesante, al menos
curioso.

Posted by Eduardo Millán on junio 02, 2004
Filed under Nb vs Ecli |
0 Comentarios
Bien amigos, aquí va otro tip para el control de tipos de archivo
cuando estamos trabajando con CVS en eclipse. Se da el caso de que
cuando Eclipse maneja un archivo en el workspace, lo interpreta como
ASCII o Binary según su extensión, o según la lista que tiene
almancenada el IDE, si no lo encuentra ahí por defecto lo trata como
Binary. Pues bien, al contrario que otros IDE's }:-) en Eclipse podemos
configurar esta lista. Imaginemos que tenemos nuestro archivo con
extensión *.ext y queremos que lo trate como ASCII. Tendríamos que hacer lo siguiente:
- Nos vamos a Window -> Preferences
- Ahi dentro nos vamos a Team -> File Content
- Añadimos los tipos de archivo que queremos que nos interprete como ASCII, en nuestro caso:
- Add, ext. Por defecto nos lo toma como ASCII (si lo queremos cambiar nos
vamos al listado y hacemos clic en el combo para pasarlo a binary, pero
no es nuestro caso).
Posted by Eduardo Millán on mayo 24, 2004
Filed under Nb vs Ecli |
0 Comentarios
En eclipse es posible configurar con qué editor se va a abrir un
determinado archivo. Por ejemplo, supongamos que tenemos definidos
archivos con formato XML y queremos que se abran con el editor de
XMLBuddy, en lugar de que sea considerado un archivo de texto. Pues
bien, para ello haremos lo siguiente (explicación indicada para Eclipse 3M7, puede ser válida para el resto de versiones) :
-
Abrimos el menú Window -> Preferences
- Nos vamos a Workbench -> File Associations
- En el cuadro de arriba, hacemos clic en el botón Add de File Types
- Metemos la extensión de los archivos que queremos editar, en nuestro caso *.ext
- Especificamos el editor que queremos utilizar con este tipo de archivos, hacemos clic en el botón Add de Associated Editors, nos saldrá una ventana con la lista de editores disponibles, seleccionamos el que queramos y le damos a OK.
También es posible hacer la asociación con programas externos, es
decir, que los archivos especificados se abran con un programa externo
a Eclipse, instalado en el sistema operativo.
Posted by Eduardo Millán on abril 01, 2004
Filed under Nb vs Ecli |
13 Comentarios
Empiezo esta serie de capítulos en los que voy a ir comparando
mis experiencias con estos dos IDE's. Sé que hay partidarios y
detractores muy aférrimos a cada uno de ellos, pero yo voy a tratar de
ser objetivo.
Tengo que deciros que desde hace ya casi dos años he estado utilizando NetBeans
de manera asídua, así que muchos de vosotros podréis pensar que voy a
favorecer este IDE, pero os digo en serio que no lo voy a hacer,
trataré de ser independiente :).
La verdad es que Eclipse tiene muy buena pinta, en cuanto a
aspecto visual quizás sea mejor que Netbeans, y sobre todo con las
últimas capturas que he estado viendo de las nuevas versiones, o sea
que esto lo tiene ganado.
En cuanto a editores XML y HTML, veo que Eclipse carece de ellos, sí, ya se que en el mundo Eclipse son todo plugins, pero en eso no se diferencia tanto de NetBeans, éste tiene los NetBeans Modules,
eso sí, desarrollados todos bajo la comunidad NetBeans. He estado
buscando plugins para HTML y XML y la verdad no encuentro nada bueno
que sea Open Source, aquí suelto este post a ver vosotros que tenéis o
estáis utilizando, la verdad voy perdido en este tema.
En cuanto a edición de archivos fuente Java, Eclipse ofrece el Outline,
que está muy bien para navegar, también ofrece el completado de
sintaxis, aunque a día de hoy NetBeans también está intentando sacar un
clon de esto, el Navigator para ofrecer las mismas ventajas.
En cuanto a archivos Ant, Eclipse mejora a NetBeans por lo que
respecta a completado de sintaxis y navegación jerárquica (el
outline/navigator mencionado), pero veo mucho más facil ejecutar un
target Ant en NetBeans que en Eclipse.
En próximos posts trataré de informar, eso sí, objetivamente, sobre
otras características como pueden ser CVS, JSP, web-apps, etc.
Por supuesto, todo esto es discutible y lo dejo abierto a vuestros comentarios, feel free to criticize my opinion.
Hasta el próximo post.
Posted by Eduardo Millán on marzo 16, 2004
Filed under Bases de Datos |
2 Comentarios
Ante la pregunta de un amigo, me ha surgido la curiosidad de saber qué es un
clustered index y para qué se utiliza. Este gran amigo confió en mi, ya que sabe
que tengo más de cinco años de experiencia trabajando con bases de datos.
El caso es que hasta el momento, solamente había trabajado con las Bases de Datos
de forma lo más estándar posible, ya que como todos sabéis esto te permite que la base de datos utilizada pueda ser reemplazada en un futuro por otra de otro fabricante, sin que el impacto en la empresa cliente sea importante, aunque siempre teniendo en cuenta las particularidades, ventajas e inconvenientes de cada una.
Como os iba diciendo, hasta ahora había oído hablar de PRIMARY KEY, FOREIGN KEY, VIEWS, INDEXES, UNIQUE, etc, cosas así. Vamos lo que todo el mundo que trabaja diariamente con bases de datos. O sea, que ante la pregunta de mi amigo me he puesto a investigar, a ver si es tan difícil la respuesta como para venir a consultarme tan urgentemente.
Como podemos suponer, los CLUSTERED INDEXES, no son algo que esté definido en el SQL ANSI estándar. Más bien está definido por algunas bases de datos propietarias, sea el caso por ejemplo de SQL SERVER, aunque también lo podemos encontrar en Postgres o Sybase. Como podemos adivinar, todo este tipo de características tratan de mejorar el rendimiento de un Sistema de Base de datos, mejorando las búsquedas. Para todos los que hemos recibido clases y nos hemos examinado de Ingeniería del Software, sabemos que en los algorítmos de búsqueda es muy importante la ordenación, y esto es lo que se trata de conseguir con este tipo de índices mejorar el rendimiento del sistema en función de las necesidades específicas, sin olvidar la mejora en el espacio físico de almacenamiento del servidor.
Características de los clustered indexes:
- Un clustered index es aquél en el cual el órden lógico de las claves (índices) es el mismo que el que hay almacenado físicamente para la tabla correspondiente.
- Cada tabla puede contener un, y solo uno, índice cluster ya que lógicamente solamente puede existir un orden físico.
- El índice cluster de una tabla deberá restringirse a una única columna o campo.
Principales aplicaciones de los clustered indexes:
- Tablas con gran cantidad de registros, generalmente.
- Busquedas en tablas cuyos campos índice tienen un número limitado de valores UNIQUE
- Consultas que devuelven grandes cantidades de filas
- Consultas preguntando por un dato entre dos límites, uso de la cláusula BETWEEN.
- Campos sobre los que es típico realizar consultas de tipo
Min() o Max()
- En el caso particular de SQL Server, los INSERTs se realizan al final de la tabla y los UPDATEs se realizan en dos pasos, DELETE+INSERT. Con lo cual la presencia de un clustered index mejora notablemente el rendimiento, aunque a veces no sea tan obvio a qué campo le corresponde asignárselo.
Inconvenientes que debemos tener en cuenta:
- Mantener un orden físico de índice supone una carga de proceso adicional en el servidor
- La tabla con un índice cluster debe ser reordenada en cada operación de adición (INSERT) para obtener su estado correcto, esto supone un coste si la tabla es escrita con frecuencia.
En qué situaciones no es recomendable utilizarlo:
- Tablas sujetas a un gran número de INSERTs
- Tablas con índices incrementales (identificadores de tablas como pedidos, fechas, etc)
- Tablas pequeñas
- Tablas sobre las que se realizan consultas que devuelven un número reducido de registros
- En campos índice con valores amplios, es decir, muchos dígitos.
Pues bueno, querido amigo, espero que esto resuelva tus dudas respecto a tu pregunta, la elección de este tipo de índices va a depender de tu análisis de necesidades para cada situación en concreto, y por supuesto de las pruebas de rendimiento que realices.
Como ves, podías confiar en mi ya que a veces no cuenta tanto lo que sepas, sino la capacidad que tengas para averiguarlo y comprenderlo y por tanto utilizarlo, y esto es una garantía de éxito. Piensa que a pesar de nuestra experiencia, siempre nos quedan cosas por aprender todos los días, pero es precisamente nuestra experiencia, talento y profesionalidad la que nos lleva a ser capaces de solucionar los problemas que se nos presentan o las dudas que nos aparecen con total confianza.
Amigo, no dudes en acudir a mi cuando necesites alguna cosa más, estaré encantado de atenderte, como debes saber.
ATENCIÓN: En próximos artículos os hablaré sobre las DTS de SQL SERVER, os advierto que va a ser un artículo interesante. ;)
Y por supuesto, aquí tenéis las referencias:
Posted by Eduardo Millán on febrero 27, 2004
Filed under Java |
1 Comentarios
Bueno, pues de nuevo estoy aquí, con otro tip para Java, en este caso se trata de algo curioso que me ha pasado con la internacionalización, los archivos properties que se utilizan para traducir aplicaciones, y que una vez conozco, estoy seguro que traerá de cabeza a más de uno, al menos a mi me ha pasado hasta que descubrí la solución, por casualidad ;).
Para todos aquellos que programáis en entornos web para PDA's (¿Al?) seguro vamos, seguro que os ha ocurrido si habéis intentado internacionalizar la aplicación. ¿o no?
Bueno, el problema parte de que, como somos Latinos, pues nada, utilizamos acentos, eñes, y todo eso que a los americanos no les gusta XDD.
¿Cuál es el problema?, bueno pues que al final se cansan de nosotros y como ejemplo, si este texto estuviese internacionalizado, lo veríamos así:
En definitiva, que no nos entienden XDD.
Bueno, hablando ya en serio, este es el problema que me ha ocurrido. Yo tan tranquilamente escribiendo los textos de internacionalización en mi archivo properties, y al visualizarlo en PDA's (en navegadores PC no me ha ocurrido, no sé por qué) me encuentro con este tipo de problemas.
NOTA: El problema me ha pasado concretamente al utilizar la internacionalización de Struts, pero según mis investigaciones es un problema común a los ResourceBundle
creados con archivos properties según se desprende de la información existente en los javadoc de la API Java 1.4.
Afortunadamente :) el otro día buscando información acerca de los ResourceBundle creí encontrar la solución. El tema es que al guardar propiedades en archivos properties se utiliza el encoding ISO-8859-1. Para aquellos caracteres que no se pueden expresar en esta codificación, se utilizan códigos de escape Unicode con la partcularidad de que solamente se puede utilizar una "u" en la secuencia. Para la conversión de archivos entre diferentes codificaciones el JDK provee de una herramienta llamada
native2ascii
tanto para Windows como para Solaris (supongo que en Linux ya habrá herramientas de este tipo).
¡A jugaaaaaaaaarrrrrrr!
Si queréis hacer pruebas y tenéis definido el path al directorio bin del JDK, abrid una pantalla de consola y teclead:
> native2ascii
Ahora podéis hacer pruebas. Meted palabras con acentos o eñes, y veréis cual es su representación correcta en archivos properties. Por ejemplo:
están es est\u00a0n
sartén es sart\u201an
gañán es ga\u00a4\u00a0n
¿Qué mas palabras se os ocurren? ;)
Posted by Eduardo Millán on enero 15, 2004
Filed under Java |
5 Comentarios
Tratando de utilizar la, por el momento, mejor implementación de XForms, Chiba, me he topado con los problemas que tiene meter distintas aplicaciones en un mismo Tomcat, utilizar Xerces y aplicaciones web que dependen de Xerces.
¿Has tenido tú problemas con Tomcat, Xerces y TUs aplicaciones web?
XDD. Je, je.
No me sorprende en absoluto, hay bastante literatura escrita al respecto. Yo voy a intentar de resumir aquí los principales problemas que me he encontrado, supongo que si el servidor de aplicaciones que utilizas no es Tomcat (Weblogic, WebSphere, etc) tendrás similiares problemas que *tendrán* similares soluciones.
Pues eso, según he estado leyendo
en la web de Tomcat
este servidor de aplicaciones utiliza diferentes classloaders para la carga de
clases, y se relacionan en forma de árbol. De forma que cuando un classloader
necesita cargar una clase, primero delega este trabajo al padre, y si éste no
consigue la carga de la clase entonces delega el trabajo al hijo (el classloader
en cuestión).
Bootstrap
|
System
|
Common
/ \
Catalina Shared
/ \
Webapp1 Webapp2 ...
Tomcat añade una particularidad, y es que el classloader de cada webapp siempre va a tener preferencia sobre el resto. Así pues, desde el punto de vista de tu aplicación, la búsqueda de clases se realiza de la siguiente forma:
* /WEB-INF/classes en tu webapp
* /WEB-INF/lib/*.jar en tu webapp
* Bootstrap classes en tu JVM
- Runtime Java
- $JAVA_HOME/jre/lib/ext
* System class loader classes
- $CATALINA_HOME/bin/bootstrap.jar
- $JAVA_HOME/lib/tools.jar
* $CATALINA_HOME/common/classes
* $CATALINA_HOME/common/endorsed/*.jar
* $CATALINA_HOME/common/lib/*.jar
* $CATALINA_HOME/shared/classes
* $CATALINA_HOME/shared/lib/*.jar
Además de estas reglas, hay una particularidad con respecto a las clases que forman parte de J2SE y que son cargadas por el classloader de cada webapp:
API SAX, API DOM, Xalan, Xerces y cualquier clase que empiece por javax.".
En este caso se delega la carga al classloader padre sin tener en cuenta la configuración establecida anteriormente. Además el classloader de cada webapp no va a cargar nunca las clases estándar java, aquellas que empiezan por java.*.
¿Queda claro el sistema de classloaders de Tomcat? ¿Sí? Bien, sigamos con las particularidades de la versión del JDK.
Xerces y JDK 1.4
Entre otros cambios, a Sun se le ocurrió la *feliz* idea de empaquetar la API JAXP junto con una versión de Xerces en su versión 1.4 del JDK. Esto supone un gran inconveniente en aquellas aplicaciones que quieran utilizar sus propias versiones de parseadores SAX y DOM, puesto que la versión incluida en el JDK tiene preferencia en la carga. Por ejemplo, cuando se ejecuta Tomcat con JDK 1.4 el proceso de delegación de classloaders va a elegir siempre la implementación presente dentro del JDK y no la existente en Tomcat.
Sun, para permitir que se pueda reemplazar versiones incluidas en el JDK, ideó un mecanismo llamado Endorsed Standards Override Mechanism que consiste en situar paquetes de clases Java (*.jar) en determinados directorios que reemplacen a los definidos por la JVM. Estos directorios suelen tener el nombre endorsed y para la JVM, por ejemplo se sitúa en $JAVA_HOME/jre/lib/endorsed. Tomcat tambien dispone de un directorio de paquetes endorsed: $CATALINA_HOME/common/endorsed, carga estos paquetes de forma que sustituyen a los definidos en el JDK.
Tercer problema: ¿Qué versión de Xerces necesitan nuestras aplicaciones?
Este suele ser el punto más crítico, ya que por la experiencia que he tenido NO todas las aplicaciones web soportan cualquier versión de Xerces y puede obligarnos a tener que instalar varias instancias de Tomcat para conseguir que todo funcione.
Conclusión
Para poder utilizar Xerces correctamente en nuestras aplicaciones web y Tomcat tendremos en cuenta las siguientes recomendaciones:
- Averiguar la versión de Xerces que necesita cada una de nuestras webapps
- Obtener las versiones de Xerces y Xalan (u otra API JAXP de transformación compatible) más recientes que cumplan los requisitos de las webapps
- Instalar las versiones más recientes en
$CATALINA_HOME/common/endorsed dentro del directorio de Tomcat
- Quitar cualquier versión citada del directorio
WEB-INF/lib de nuestra webapp
- Rezar para que todo funcione (XDDDDD, NO, en serio... que sí que va... pffffffff)
Tengo que ver todavía el caso de Cocoon, que no sé por qué no me funciona con la última versión de Xerces...
Posted by Eduardo Millán on enero 04, 2004
Filed under General |
1 Comentarios
Con la entrada del nuevo año me he decidido a formar parte de un proyecto que me ha parecido interesante. Se trata de jNode, un sistema operativo creado completamente en Java que pretende servir de plataforma para facilitar el desarrollo y uso de programas escritos en este lenguaje.
Tenéis que saber que hay varios equipos, cada uno de ellos con un grupo de tareas asignadas. Yo, como soy *telemático*, pues he decidido unirme a la parte de desarrollo de red (the Net Team).
Voy a meterme en ayudar a solucionar problemas que haya a medio a hacer, e investigar/desarrollar la parte de soporte a wireless y a la ejecución de Tomcat sobre jNode, que me han parecido atractivas.
Con el *poquito* tiempo de que dispongo y con mis *humildes* conocimientos intentaré aportar mi granito de arena a este proyecto. Así que, deseadme suerte... :-)
Posted by Eduardo Millán on diciembre 17, 2003
Filed under Java |
1 Comentarios
Esta tarde he estado analizando un framework para visualizar o mezclar páginas web. Se trata de SiteMesh, es de la empresa OpenSymphony y fue anunciado por Martin en una noticia de javaHispano Según mi análisis, es un sistema de decoración de páginas web que trata de ofrecer un mecanismo para conseguir una integración en cuanto al aspecto (look and feel) de un sitio web.
Sinceramente, después de analizar el proyecto, me sorprende lo sencillo de su arquitectura. Se basa en un servlet filter que captura y procesa las peticiones HTTP aplicando un decorator según corresponda. Para decidir
cuál es el decorator que aplica, utiliza valores de la página a procesar:
- content-type
- meta tags
- css aplicado
- user agent
- lenguaje de la página (header accept-language)
- parametros de la petición (request parameters)
- otros...

Arquitectura de Sitemesh (haz clic para ampliar)
Utiliza dos conjuntos de taglibs para manejar las páginas, sitemesh-decorator
y sitemesh-page. La primera es para meter las partes de las páginas en
la página marco (layout). La segunda es para instanciar a los decorators que se
utilizan o para pasarles parámetros.
He tenido experiencia con Struts-Tiles y la verdad, si comparamos SiteMesh con
Tiles, el primero se queda a años luz del segundo. La arquitectura de SiteMesh, aunque
sencilla, es muy cerrada mientras que la de Tiles es más abierta y estructurada.
De hecho, en Alba Software hemos extendido
Tiles con muy buenos resultados. Por ejemplo, un gran defecto de SiteMesh es que
utiliza page-includes en lugar de jsp-includes, lo cual te obliga
a recompilar en cada cambio las JSP's que utilices.
Pongo este pequeño análisis aquí por si a alguien le sirve de ayuda, y para que no
tenga que realizarlo él mismo. También acepto opiniones acerca del framework.
Sigamos currando ;-)
Posted by Eduardo Millán on diciembre 05, 2003
Filed under En el mundo |
0 Comentarios
Bueno, pues este fin de semana se celebran en mi ciudad Ontinyent (Valencia) las fiestas de la patrona: "La Purísima Concepción". Lo más atractivo de las fiestas para los ontinyentins son las fiestas de "el bou embolat" (toro embolado).
Durante las tardes del sábado 6-dic y domingo 7-dic sacarán a la calle tres toros, protegidos con bolas en los cuernos, y llevado de una cuerda por los "mozos" que se dedican al festejo.
Previamente, el viernes (es decir, al dia de escribir este blog), se realiza el acto de "l'embolà", que es cuando bajan sucesivamente a los tres toros a la plaza del ayuntamiento, y delante del todo el público asistente y protegido por barreras de madera, se le colocan las "bolas" en los cuernos de los toros.
Yo he vivido toda mi infancia en calles adyacentes al recorrido de los toros, así que es una fiesta muy familiar para mí, aunque me fastidiaba un poco cuando no podía sacar la moto e irme por ahí (no me gusta mucho correr delante de un toro, aunque he salido muchas veces por los amigos), porque estaba todo lleno de gente.
Es una fiesta muy popular y arraigada en Ontinyent, así que os invito a todos los que podáis os acerquéis a participar si es que os gusta esta fiesta (advierto, los toros según me han dicho no tienen ni idea de Java... :P )
Posted by Eduardo Millán on noviembre 28, 2003
Filed under General |
1 Comentarios
Tras unos experimentos realizados ayer en mi PC Windows XP me he decidido a
postear este blog. ¿Habéis oido hablar alguna vez de la generación espontánea?
Pues sí amigos, existe.
Al menos en mi Windows XP.
Resulta que no se por donde ni de donde se me ha instalado un graciosillo
programa proveniente de pillamusica.com que pretende instalar un dialer en el equipo (el pobre iluso no sabe que no tengo modem y que en la red hay un SIE-Firewall, y NO, no he entrado en páginas "raras"). El tal programa, que no se por donde anda instalado, lanza el
Internet Explorer (puajj!! yo utilizo Mozilla Firebird) el cual lanza a su
vez el instalador del dialer. Y suele ser cuando vuelvo por la tarde a trabajar,
se ve que a mediodia tiene hambre y sale.
Mi intención es localizar el archivo (sospecho que se ejecuta con RUNDLL32.DLL).
Pues bien, idea que se me ocurrió:
- Ya está (pensé), como el programilla lanza el iexplorer.exe, pues cojo éste
último y lo borro de mi PC, así cuando vaya a lanzarlo dará el típico error de
windows y sabré qué programa es.
Parecía buena idea, ¿eh?
Nada más lejos de la realidad, como dirían los puristas. Podéis hacer la prueba con vuestro XP, este archivo ejecutable posee la capacidad de generarse espontáneamente, borráis el iexplore.exe (situado en c:\archivos de programa\Internet Explorer) y al cabo de unos segundos, se vuelve a crear :-O, 8-|.
También ocurre con otro archivo situado en c:\windows, el winlogon.exe. Lo curioso es que he descubierto que éste crea a aquél.
Las conclusiones que se me ocurren son:
- Windows XP tiene generación espontánea
- No sé borrar archivos :P
- M$ me toma por tonto, o toma por tonto a los usuarios de Windows XP
- No tengo la tecla Supr en mi teclado... :-(
- ...(pensando más)...
Acepto más conclusiones.
Después de toda esta exposición... noto que... quizás ya lo sabiais... :-|
Posted by Eduardo Millán on noviembre 14, 2003
Filed under General |
0 Comentarios
Lo dicho, no es por copiar, pero veo que este estilo nuevo me gusta XD. Si, si, ya se que ya está muy visto, pero es que el anterior estaba muy apagado. Se que sabréis perdonarme.
Weno, a seguir con lo mio.
Posted by Eduardo Millán on octubre 21, 2003
Filed under Java |
2 Comentarios
En estos días me estoy *peleando* con Cocoon. No, no es que no lo conociera todavía, me lo habían *presentado*, pero no en profundidad. Ya me sonaba del primer proyecto de documentación de Alba Software, aquella típica página de inicio tan similar a la que ahora conozco como página de inicio de los ejemplos de Cocoon 2.1. Que curioso.
El caso es que ahora lo necesitaba conocer más a fondo, me he paseado y utilizado el proyecto Forrest de Apache, y me ha parecido muy interesante. Se trata del proyecto de documentación de la ASF, y está basado en Cocoon. No sabía yo que Cocoon era tan potente, que incluso se podía utilizar sin atacarlo como servlet, es decir, mediante el *command line interface*.
Bueno, pues Cocoon en sí es todo un esquema de generación de documentos, más bien, generador de respuestas según coincidencias en la petición. A raíz de una URI que enviemos al servlet, se genera toda una serie de procesos, generación de entrada XML, transformaciones, serialización, etc; me ha dejado fascinado.
Solamente le veo un inconveniente, y es que cada uno de los componentes, está *desconectado del otro*, es decir, no van a compartir espacios de memoria, si no que se intercambian información en formato XML. Si esto es así, y lo que interesa es que todo el proceso de petición-respuesta esté *encadenado*, no alcanzo a entender como hacer para unir los componentes de un *pipeline*. Si, ya se, tenemos los actions que generan claves de sustitución (procesos que calculan variables y las hacen disponibles al siguiente componente), pero esto no me sirve porque... ¿que pasa si estamos hablando de arrays de datos?, la solución de Cocoon es una serie de tuplas clave-valor, y no veo como hacer cuando manejas otra serie de datos y los quieres pasar al siguente componente.
Realmente es un proyecto interesante, ya que todo el tema de generación de documentos de diferentes content-types está ya solucionado. En fins, seguiré investigando.