domingo, 30 de diciembre de 2007

Definiendo la arquitectura general

Supongamos que queremos desarrollar un wiki desde cero, en lugar de partiendo de algunos existentes. Teniendo en cuenta que se trata de una aplicación web y la propia idiosincrasia de los wikis, lo más lógico sería que su arquitectura estuviese separada en capas. El motivo es que así podremos repartir las responsabilidades de la aplicación entre las diferentes capas, favoreciendo un bajo acoplamiento y una facilidad de reutilización en el futuro.
Por otro lado, teniendo en cuenta las ventajas inherentes al uso de patrones de diseño, lo más lógico sería utilizar el patrón de diseño MVC (Modelo-Vista-Controlador).
Pues bien, ya que si desarrollásemos el wiki desde cero lo haríamos organizando la arquitectura (a alto nivel) por capas mediante el patrón MVC, sería ideal escoger como base para la arquitectura un wiki que estuviese implementado siguiente dicho patrón de diseño. En nuestro caso tenemos 2: JSPWiki y bitweaver. El primero, como ya se señaló en entradas anteriores, está mejor construido que el segundo, que aprovecha lo poco estricto que es PHP en muchos sentidos para realizar un desarrollo mezclando paradigmas estructurado y orientado a objetos, por poner un ejemplo.
En conclusión, considero que la arquitectura "general" de JSPWiki es la más idónea de todos los wikis que son objeto de estudio.
Por otro lado, ahora el trabajo consistirá en "entrar" dentro de cada capa y tratar de estructurarla mediante patrones de diseño.
¡A trabajar!

sábado, 22 de diciembre de 2007

Vuelta al trabajo

Ayer, tras una clarificadora reunión con el director del proyecto, comprendí mejor en qué consistía realmente dicho proyecto. Por ello, veo necesario replantear parcialmente el proceso de selección. Principalmente me refiero a las últimas fases, donde escogía los wikis con los que trabajaría definitivamente. Así pues, tras repasar mis notas, he tomado varias decisiones que repaso a continuación.
En primer lugar, he decidido mantener la decisión de utilizar JSPWiki. Para justificar esta decisión, diré a modo de resumen (para saber más detalles recomiendo leer las entradas anteriores del blog) que se trata de uno de los más interesantes.
Por otro lado, descarto ScrewTurn Wiki, que si llegó tan adelante fue por ser el más indicado dentro de su lenguaje.
Sin embargo, el wiki bitweaver sí considero que tiene la calidad suficiente como para continuar trabajando con él (más detalles en las entradas anteriores).
En cuanto a los wikis descartados, Daisy wiki es, teniendo en cuenta el proyecto que se pretende desarrollar uno de los más interesantes. Esto es así debido a su arquitectura interna, que, como expliqué en entradas anteriores, está dividida en dos partes: un respositorio accesible a través de servicios web REST y una interfaz web.
XWiki parece también un wiki interesante tras el análisis, todavía no muy profundo realizado. Además, a estas alturas, ya tienen actualizado el servidor de documentación, que era la única pega que le encontré en estudios anteriores al wiki.
En conclusión, éstos son los wikis que considero más interesantes desde el punto de vista de la arquitectura interna:

  • bitweaver

  • Daisy wiki

  • JSPWiki (Java)

  • XWiki


Ahora el trabajo consistirá en encontrar los puntos fuertes de cada uno en cuanto a su arquitectura, la manera de aunarlos todos en uno, analizar el posible uso de patrones de diseño para resolver ciertos problemas,...
¡A por ello!

domingo, 9 de diciembre de 2007

MI decisión final

Arquitectura externa


Lo primero que hice cuando me decidí a elegir uno de los tres candidatos "finalistas" fue volver a realizar la comparación de wikimatrix. Tal y como era de esperar la comparación dio como resultado que todos son bastante parejos en características, especialmente en las más relevantes (lógico, pues habían pasado la criba inicial en función de estas características). En cuanto a las menos relevantes, cabe destacar que ScrewTurn wiki es el traducido a más lenguas, mientras que los otros dos, sólo disponen de interfaz en inglés. Por otra parte, en el resto de aspectos están en general más fuertes JSPWiki y bitweaver, aunque las características peores de uno suelen coincidir con las mejores del otro de manera que, por decirlo de alguna manera, se compensan y ninguno destaca por encima del otro. Conclusión: si cabe, el peor hasta ahora es ScrewTurn.

Arquitectura interna


En primer lugar, cabe destacar la poca versatilidad que le confiere al wiki ScrewTurn la necesidad del framework .NET (teóricamente paliable a través del ya citado Proyecto Mono.
Por otro lado, si entramos a estudiar someramente la arquitectura de los 3 wikis, veremos que es el único que no utiliza el patrón de diseño MVC, lo que lo relega casi irremediablemente a la tercera plaza. Continuemos con los otros dos. Sabmos que ambos están implementados siguiendo el patrón de diseño MVC, lo que los hace relativamente parecidos. Sin embargo, tal como se puede comprobar si se examina el código detalladamente, los desarrolladores de bitweaver aprovechan la manga ancha que da PHP a la hora de codificar para codificar algunas partes de manera digamos que menos limpia/elegante (como muestra algunos archivos de la carpeta users). Esto no puede ocurrir en Java, por lo que me decantaría más a favor de JSPWiki.

Aspectos personales


Dado que tendré que trabajar durante algún tiempo con el wiki seleccionado, opino que es importante tenerme en cuenta como un factor más a la hora de llevar a cabo la elección.
Como se especificó al principio del proceso de selección todos los lenguajes me son familiares, aunque unos más que otros. El orden de familiaridad, de mayor a menor sería: Java, PHP y ASP.NET. En este último es en el que menos experiencia tengo puesto que sólo he desarrollado algunos proyectos académicos de tamaño pequeño-medio. En el caso de PHP, he desarrollado varios proyectos por mi cuenta y alguno académico, aunque, de nuevo, todos eran de tamaño pequeño-medio. En el caso de Java, he desarrollado varios proyectos académicos, de diversa envergadura, desde pequeños hasta medianos-grandes.
Así pues, MI orden de preferencia de los wikis sería JSPWiki, Bitweaver y ScrewTurn.

Conclusiones


Las conclusiones extraídas de toda esta entrada se pueden resumir en que JSPWiki es el candidato más firme en todos los sentidos, seguido de Bitweaver y, por último, ScrewTurn, que parece el menos indicado para el proyecto.

viernes, 7 de diciembre de 2007

Casting de wikis escritos en Java

Después de un trabajo intensivo he terminado el proceso de selección de wikis escritos en Java. Tal y como había previsto, el trabajo ha sido más complicado que en el caso anterior. Probablemente se deba a las peculiaridades de cada lenguaje. Todos sabemos que PHP es un lenguaje un poco "caótico", por así decirlo, cosa que no le ocurre a Java. Para entendernos, escribir código claro en PHP requiere cierta voluntariedad, sobre todo en cuanto al uso de elementos como patrones de diseño y demás refinamientos del mundo de la programación. Esto es así porque este lenguaje se suele usar/asociar más para cosas pequeñas por lo que no se suelen atender todo este tipo de detalles. Sin embargo, el lenguaje Java ya se considera algo más "serio", por así decirlo. Además de tener una sintaxis más clara, obliga al uso del paradigma de la orientación a objetos, lo que hace que haya que pensarse más las cosas antes de ponerse a programarlas.
Por otra parte, pude observar que la gran mayoría de los wikis seleccionados para esta fase del proceso de selección, independientemente del lenguaje de programación en que estaban escritos, eran proyectos muy serios, cuyo código respondía a las espectativas que su funcionalidad externa había generado.
Así las cosas, presento a continuación las conclusiones del estudio de los wikis escritos en Java.

Daisy


Este wiki es bastante curioso por su arquitectura, ya que está divido en 2 partes bien diferenciadas:

  • Un repositorio accesible a través de HTTP/XML (usando servicios web REST).

  • Una interfaz web para edición y publicación.


Esto hace que me plantee qué sería lo que podríamos aportar debido a la idiosincrasia del proyecto que pensamos desarrollar. Aparentemente no tendríamos nada que hacer pues ya está todo desarrollado, no obstante sería necesario profundizar en el estudio del código para estar seguros de ello.
Por otra parte, cabe destacar también una documentación bastante buena y el hecho de estar construido utilizando el framework MAVEN.

JAMWiki


En este caso se trata de un wiki pensado para ofrecer las mismas características que MediaWiki pero desarrollado en Java. De nuevo, está construído utilizando el ya citado framework MAVEN y a simple vista parece una opción interesante.
Sin embargo, hay un par de detalles preocupantes, como son la escasa documentación y el hecho de tratarse de una versión 0.x,con lo que ello conlleva (no obstante, en la página www.wikimatrix.org el autor asegura que se trata de un software en etapa madura).

JSPWiki


Hay poco que decir sobre este wiki, pero la verdad que todo es bueno. Además de estar implementado utilizando el patrón de diseño MVC y todo lo que ello conlleva en muchos sentidos (como ya he dicho, queda fuera de los objetivos de este blog hablar de las ventajas del uso de patrones de diseño, aunque a lo mejor un día me animo :D), está el hecho de contar con una documentación de calidad, que permitirá comprender mejor y más rápidamente el sistema.

SnipSnap


Este wiki no tiene nada especialmente interesante que comentar. Parece interesante y tiene una documentación relativamente amplia. Nada más.

VQWiki


En este caso los desarrolladores se han "olvidado" de documentar lo desarrollado. El wiki parece interesante. Nada más.

XWiki


Se trata de un wiki bastante interesante. Posee abundante documentación, que, según me indican no está obsoleta a pesar de lo que se indica en su sitio web. No obstante, me dicen que el próximo lunes estará disponible el nuevo servidor de documentación, así que habrá que echar un ojo.

yaWiki


Este wiki está tan falto de documentación que me ha sido imposible averiguar nada más sobre él.

Teniendo todo lo anterior en cuenta, opino que el mejor candidato es JSPWiki, aunque en este caso la diferencia ya no es nada ostensible. Sin embargo, las razones expuestas en su favor me parecen tan importantes que, mientras no sea necesario el cambio tras un estudio más profundo, considero que es el único wiki escrito en Java que continúa con el proceso. De este modo, las listas quedarían de la siguiente manera:

C#/ASP.NET



  • ScrewTurn wiki


JAVA



  • JSPWiki


PHP



  • bitweaver


En este momento, creo que lo mejor sería consultar con el director del proyecto para definir la dirección a tomar, aunque es posible que escriba una nueva entrada con el que considero el mejor wiki para trabajar.
¡Hasta pronto!

jueves, 6 de diciembre de 2007

Casting de wikis en PHP

Tras varios días, por fin he terminado (hace breves instantes) el casting realizado entre los wikis escritos en PHP. El proceso ha consistido principalmente en un estudio somero del código fuente y la documentación de cada wiki, pues la calidad de la arquitectura externa era muy similar en todos los casos. El proceso me ha resultado más sencillo de lo que en un principio había pensado, aunque no por ello fácil. De hecho en algunos casos encontrar algo de documentación me ha requerido algo de tiempo. Y ya sin más preámbulos, paso a comentar los resultados del estudio, en orden alfabético.

Bitweaver


En principio parece el mejor wiki de todos los escritos en PHP y, además, con bastante diferencia. Dicha diferencia se debe principalmente en el hecho de que está implementado basándose en el patrón de diseño Modelo-Vista-Controlador. Además de lo apropiado del patrón para el problema que plantea el desarrollo de wikis, están todas las ventajas inherentes al uso de patrones de diseño. Creo que a estas alturas, hablar de dichas ventajas sería prolongar innecesariamente esta entrada, por lo que remito a aquellos que las desconozcan a alguno de los muchos sitios web especializados en el tema.
Por otra parte la documentación me ha parecido bastante buena. En principio parece extensa y de calidad. Además, los ficheros están autodocumentados con un sistema parecido al javadocs.
Además el código es orientado a objetos, lo que, en mi opinión, supone una ventaja importante a la hora de trabajar con el wiki (suponiendo, claro, que el diseño sea apropiado).
Por todo ello, si tuviera que quedarme con un wiki escrito en PHP sería con éste sin lugar a dudas.

DekiWiki


Se trata de un wiki externamente muy interesante, aunque su arquitectura interna me ha parecido un poco extraña. Tiene varias características muy originales y es un buen candidato, bien documentado además, pero me lo pensaría un poco si tuviera que trabajar con él.

MediaWiki


Probablemente ha sido el wiki que ha contado con mejores recursos para su desarrollo (ojo porque no hablo de recursos económicos necesariamente) y tiene algunas características en las que sobrepasa con creces a sus competidores, como por ejemplo su interfaz traducida a 100 lenguas (el siguiente debe estar traducido a 20 ó 30). Sin embargo su arquitectura es bastante farragosa y no está especialmente bien documentado. A simple vista da la impresión de ser un sistema diseñado ad hoc en su día para unas circunstancias concretas y al ir creciendo no se ha modificado, sino más bien parcheado.
Por ello,no creo que sea la mejor opción para trabajar con él.

PhpWiki


Este wiki tiene una arquitectura un tanto extraña. Su sitio web es un poco pobre en cuanto a recursos y la documentación del sistema es bastante mejorable.
No creo que sea tampoco una opción interesante puestos a trabajar como desarrollador sobre él.

TikiWiki


Se trata de un wiki con una documentación extensísima, que dispone además de un buen sitio web (aunque algún diagrama se agradecería). En principio parece una opción más "apetecible" que algunas de las anteriores, pero lo considero peor que Bitweaver.

WikkaWiki


Se trata de un wiki muy ligero y rápido, que dispone de bastante documentación y de bastante calidad. Está implementado utilizando el paradigma de orientación a objetos lo que lo convierte en un candidato serio, pero no tanto como Bitweaver.

WikyBlog


Este wiki está implementado usando también el paradigma de la orientación a objetos, pero me parece perfectamente descartable debido a que no dispone de documentación alguna.


Por todo lo dicho considero que el wiki más interesante escrito en PHP es Bitweaver y, de momento, es el único que sigue en el proceso de selección.
Por tanto, las listas quedarían así:

C#/ASP.NET



  • ScrewTurn wiki


JAVA



  • Daisy

  • JAMWiki

  • JSPWiki

  • SnipSnap

  • VQWiki

  • XWiki

  • yawiki


PHP



  • bitweaver


Ahora "sólo" resta hacer lo mismo con los wikis escritos en JAVA, cosa que ya de por si es más complicada puesto que están a un nivel muy similar entre ellos.
¡A trabajar!

lunes, 3 de diciembre de 2007

Último descarte (+ Lista 12)

Como no quiero empezar una vez más diciendo que la calidad de tal wiki es buena pero lo descarto, iré directamente a las características.
He decidido descartar el wiki Wiclear, aún a pesar de sus virtudes, como generar xhtml 1.0 strict o soporte para contenidos en varios lenguajes, porque me ha parecido ligeramente inferior a sus competidores (menos flexible, peor documentado,...) y he encontrado algunos inconvenientes al usarlo (sobre todo con el navegador Mozilla Firefox) como el menú de contenidos que se superpone al de herramientas y al de feeds, impidiendo su uso mientras no lo desplacemos de nuevo, entre otros. También he encontrado algún pequeño inconveniente, como el uso de un plug-in para la conversión a UTF-8, cosa que podría causar algun problema en algunos sistemas (en realidad lo ideal sería probarlo en varios sistemas y ver el resultado, pero hacerlo con todos los wikis sería demasiado costoso a nivel temporal).
Por todo lo dicho, elimino el wiki de la lista, dejándola como sigue:

  • bitweaver

  • Daisy

  • DekiWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • VQWiki

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki


En este momento, con sólo 15 wikis candidatos, comienzo el proceso anteriormente citado de seleccionar los mejores para cada lenguaje, contando con 7 wikis escritos total o parcialmente en PHP, 7 en JAVA y 1 en C#/ASP.NET. Por ello, éste último (ScrewTurn wiki) estaría automáticamente clasificado y solamente haría falta realizar el proceso con los wikis en PHP y en JAVA.

C#/ASP.NET



  • ScrewTurn wiki


JAVA



  • Daisy

  • JAMWiki

  • JSPWiki

  • SnipSnap

  • VQWiki

  • XWiki

  • yawiki


PHP



  • bitweaver

  • DekiWiki

  • MediaWiki

  • PhpWiki

  • TikiWiki

  • WikkaWiki

  • WikyBlog

PmWiki descartado (+Lista 11)

Llegados a estas alturas uno siente que se excede descartando wikis de una calidad muy alta por detalles insignificantes. Sin embargo, cuando esos detalles no son ajenos a la competencia, se viene a demostrar quién es bueno y quién excelente. En el caso de PmWiki me ha sucedido eso mismo: la calidad del wiki es buena, aunque quizás sea necesario instalar demasiados plug-ins para muchas funcionalidades básicas (como el uso de bases de datos) cosa que puede causar algún contratiempo, pero tiene algunos detalles que hacen que sea mejor su competencia. Uno de ellos es la documentación, que es bastante pobre. Las personas que desarrollan software libre tienden a pensar que, al disponer del código fuente, no es necesaria la documentación y nada más lejos de la realidad, pues la documentación facilita enormemente la tarea del programador. También se puede decir que, en general, es levemente inferior a sus competidores, pero casi no me atrevería a decir los motivos que me llevan a pronunciarme en este sentido, pues podría ser tachado de excesivamente puntilloso (llegados a este punto es dificilísimo escoger).
Por otra parte, una característica que me sorprendió positivamente de PmWiki fue el hecho de que la interfaz estuviera traducida a más de 20 idiomas, tan sólo superado de manera clara por MediaWiki.
Por todo lo dicho, he tomado la decisión de eliminarlo de la lista y, por tanto, ésta queda de la siguiente forma:

  • bitweaver

  • Daisy

  • DekiWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • VQWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki


Para finalizar, decir que ahora sí que creo que es prácticamente imposible eliminar ningún otro wiki de la lista por lo que, sería interesante agruparlos por lenguajes y tratar de elegir los 2 ó 3 mejores de cada lenguaje.
¡Mañana más!

jueves, 29 de noviembre de 2007

Corendal Wiki descartado (+ Lista 10)

En este caso, las razones para descartar Corendal Wiki han sido bastante claras. Como se puede observar, su sitio web está out. Por este motivo, no es posible encontrar documentación alguna sobre el wiki (además, tampoco he encontrado ningún otro lugar donde exista). No obstante, se puede bajar tanto el software como el código fuente de SourceForge (en caso contrario lo hubiese descartado directamente, claro).
Por otra parte, me gustaría resaltar que éstas no han sido las únicas razones que me han llevado a tomar la decisión, sino que, en última instancia lo que me ha decidido ha sido el hecho de que sus competidores sean un poco mejores en características generales.
Por todo lo dicho anteriormente, descarto Corendal wiki de la lista, dejándola como sigue:

  • bitweaver

  • Daisy

  • DekiWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • PmWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • VQWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki

Un descarte más(+ Lista 9)

Debido a que su calidad es relativamente inferior a la del resto de sus competidores, he decidido descartar el wiki wackowiki. El motivo que finalmente me ha decidido a eliminarlo es el hecho de ser necesarios privilegios de administrador para poder instalarlo. Esta característica, que comparte con DaisyWiki y DekiWiki, lo hace menos versátil, lo que unido a otros detalles me convenció definitivamente.
De este modo, la lista queda de la siguiente forma:

  • bitweaver

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • PmWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • VQWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki

miércoles, 28 de noviembre de 2007

Primer descarte: ProntoWiki (+ Lista 8)

A pesar de lo dicho sobre centrarme en seleccionar, tras analizar por separado las características de ProntoWiki me he dado cuenta de que es bastante inferior al resto de candidatos pues aunque en las partes clave "cumple" le faltan bastantes características que sus competidores si tienen. Por otra parte, me resultó imposible encontrar documentación alguna sobre el sistema en el sitio web. En estos casos es muy frecuente encontrar algún diagrama y algo de documentación junto con el código descargado, por lo que procedí a descargarlo para comprobarlo. Sin embargo, una vez hecho, se comprobó que no existía tal documentación anexa al código. Simplemente me fue imposible encontrar documentación alguna sobre el sistema.
Todas las razones citadas me llevan a tomar la decisión de descartar ProntoWiki de la lista:

  • bitweaver

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • PmWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • VQWiki

  • WackoWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki

Conclusiones sobre el trabajo realizado hasta este momento

En primer lugar, comentar que lo que se ha conseguido es una lista relativamente reducida de wikis que cumplen una serie de características generales. Tras conseguir esto,la lista se ha ido refinando descartando aquellos wikis que carecían de alguna característica específica básica (p. ej. aquellos que no tenían salida xhtml). El problema surge al querer seguir eliminando wikis para elegir el candidato final. Esto sucede porque todos los wikis candidatos son ya de una gran calidad y por así decirlo la competencia es muy fuerte. En este punto no sería razonable continuar descartando wikis por motivos "simples", pues corremos el riesgo de eliminar un buen wiki por una nimiedad. Además, como puede observarse si los comparamos, todos tienen algún detalle mejorable y los puntos flacos de uno suelen ser los fuertes de los otros.
En consecuencia, para continuar con la selección, opino que lo mejor es invertir el procedimiento de selección/eliminación de candidatos: hasta ahora se eliminaban aquellos que presentaban alguna carencia concreta. A partir de ahora la idea sería analizar cada uno por separado y, teniendo en cuenta las conclusiones de dicho análisis, elegir los wikis más apropiados. En otras palabras: antes me centraba en eliminar los "malos" y a partir de ahora me centraré en seleccionar los "buenos". El motivo de este cambio de perspectiva es que me permitirá formarme una idea de la calidad de la arquitectura externa de cada wiki en particular en su conjunto y no de una parte concreta.
Por otra parte, mi idea continúa siendo realizar el proceso restante de selección en 3 fases:

  1. Primera: Elección de los 10-15 mejores wikis.

  2. Segunda: Elección de los 5-6 wikis más apropiados.

  3. Tercera: Análisis de la arquitectura interna de esos 5-6 wikis para seleccionar el definitivo.


Así que, ¡a trabajar!

martes, 27 de noviembre de 2007

Lista 7 de wikis

Teniendo en cuenta la importancia del uso de estándares en Internet, considero imprescindible eliminar aquellos wikis cuya salida no sea, como mínimo, XHTML. Por otra parte, en última instancia, se valorará que, además, dicha salida sea XHTML 1.1. Por ello, he decidido eliminar de la lista el wiki Erfurt wiki.
En otro orden de cosas, también considero importante trabajar con un wiki que se encuentre en un estado maduro de desarrollo, evitando así de antemano los problemas derivados del trabajo con versiones beta (bugs, partes sin desarrollar, cambios "inoportunos" de versión...). En general podría decirse que la estabilidad que ofrece una versión madura a priori me hace decidirme en favor de las mismas. Por ello, elimino de la lista los dos wikis en estado de desarrollo beta, a saber: IkeWiki y UniWakka.
Estas últimas decisiones, dejan la lista como sigue:

  • bitweaver

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • PmWiki

  • ProntoWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • VQWiki

  • WackoWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki

Lista 6 de wikis

Un detalle en el que podríamos fijarnos a la hora de aceptar/rechazar un wiki podría ser su independencia de plataforma. Evidentemente, esto nos llevaría casi instantáneamente a pensar en un wiki escrito en JAVA, pero, como veremos, tenemos más opciones. Incluso en el caso de los wikis escritos para ejecutar sobre la plataforma .NET de Microsoft, podemos pensar en ejecutarlo en otro tipo de sistemas operativos gracias al Proyecto Mono. Evidentemente, en última instancia, sería necesario confirmar empíricamente dicha posibilidad, asunto que se deja para más adelante.
Teniendo en cuenta esta idea, se podrían descartar 2 wikis:

  • Midgard wiki

  • miniWiki


En el primer caso, no podría ejecutarse, por ejemplo, sobre la plataforma Windows y el segundo caso, sólo podría ejecutarse en entornos Unix/Linux.
De este modo, la lista resultante sería:

  • bitweaver

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • ErfurtWiki

  • IkeWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • PhpWiki

  • PmWiki

  • ProntoWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • UniWakka

  • VQWiki

  • WackoWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki

Lista 5 de wikis

Tal como cabía esperar de una lista tan refinada, todos los wikis preseleccionados cumplían con el criterio de guardar historial de página. Por ello, esta lista es idéntica a la anterior:

  • bitweaver

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • ErfurtWiki

  • IkeWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • Midgard Wiki

  • miniWiki

  • PhpWiki

  • PmWiki

  • ProntoWiki

  • ScrewTurn wiki

  • SnipSnap

  • TikiWiki

  • UniWakka

  • VQWiki

  • WackoWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki


Una vez llegados a este punto, debemos proceder a un estudio somero tanto de los wikis candidatos como de la documentación disponible sobre los mismos. Lo más interesante sería poder descartar algún wiki por su arquitectura externa, ya que entrar a analizar la interna supondría un enorme gasto temporal (recordemos que se trataría de hacerlo con 25 wikis). Así pues, éste será el trabajo para los próximos días, que debería dar como fruto una breve lista de wikis (recordemos, de 5 ó 6) para seleccionar el más idóneo.
¡A trabajar!

P.D.: Teniendo en cuenta que todos los criterios de eliminación aplicados hasta aquí son condiciones sine qua non, en caso de tener que recomenzar el proceso, bastaría con retornar hasta este punto.

lunes, 26 de noviembre de 2007

Cambios

Se ha editado la entrada Primeros pasos, introduciendo un nuevo criterio de selección de wikis, por lo que mañana se procederá a la aplicación del mismo a la lista de candidatos.

Lista 4 de wikis

La lista actual, en principio la última de esta serie, es el resultado de eliminar de la anterior todos aquellos wikis que no permiten el almacenamiento en bases de datos. Cabe reseñar que algunos de los presentes sólo lo permiten mediante el uso de un plug-in. La lista es la siguiente:

  • bitweaver

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • ErfurtWiki

  • IkeWiki

  • JAMWiki

  • JSPWiki

  • MediaWiki

  • Midgard Wiki

  • miniWiki

  • PhpWiki

  • PmWiki

  • ProntoWiki

  • ScrewTurn Wiki

  • SnipSnap

  • TikiWiki

  • UniWakka

  • VQWiki

  • WackoWiki

  • Wiclear

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki


Como se puede comprobar, la lista aún es relativamente extensa (25 wikis), por lo que, atendiendo a razones que describiré en su momento, considero que debería reducirse aún hasta 15 o como mucho 20. De esta manera, la elección de los wikis a estudiar exhaustivamente resultará menos complicada. No obstante, la criba ha resultado efectiva, pues de una lista inicial de 106 wikis se llegó a una final de 25, habiendo eliminado aproximadamente un 75% de los mismos.
Por otra parte, cabe reseñar que finalmente se ha decidido eliminar los wikis escritos en Ruby.
¡Mañana más!

Lista 3 de wikis

Para esta lista se han eliminado aquellos wikis no escritos en PHP, Java o ASP.NET, por las razones anteriormente descritas. No obstante, se han dejado provisionalmente 3 wikis escritos en Ruby y uno en HTML, CSS y JavaScript que no tiene programación en la parte del servidor. Así pues, la lista resultante es la siguiente:

  • bitweaver

  • ButorWiki

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • DokuWiki

  • ErfurtWiki

  • FlexWiki

  • Friki

  • Giki

  • IkeWiki

  • Instiki (Ruby)

  • JAMWiki

  • JaWiki

  • JSPWiki

  • LunaWiki

  • MediaWiki

  • Midgard Wiki

  • miniWiki

  • MoniWiki

  • Perspective

  • PhpWiki

  • Pimki (Ruby)

  • PmWiki

  • ProntoWiki

  • PukiWiki

  • Riki (Rails)

  • ScrewTurn Wiki

  • SnipSnap

  • TiddlyWiki (JavaScript no tiene parte servidor)

  • TikiWiki

  • UniWakka

  • VQWiki

  • WackoWiki

  • Wiclear

  • Wikepage

  • WikiNi

  • WikiRootry

  • WikkaWiki

  • WikyBlog

  • XWiki

  • yawiki

  • ZAPwiki


Como se puede ver, aún queda una lista bastante extensa (44 wikis) por lo que habrá que refinarla aún más, siguiendo los criterios anteriormente descritos, así que ¡a ello voy!

domingo, 25 de noviembre de 2007

Lista 2 de wikis

La siguiente lista, es la resultante de eliminar de la anterior aquellos wikis de los cuales no es posible obtener su código fuente, debido a su licencia u otras causas:

  • bitweaver

  • ButorWiki

  • CanvasWiki

  • Corendal Wiki

  • Daisy

  • DekiWiki

  • DokuWiki

  • ErfurtWiki

  • FlexWiki

  • Friki

  • Gazest

  • GeboGebo

  • Giki

  • IkeWiki

  • ikiwiki

  • Instiki

  • JAMWiki

  • JassWiki

  • JaWiki

  • JSPWiki

  • KeheiWiki

  • KWikiKWiki

  • Luminotes

  • LunaWiki

  • MediaWiki

  • MicKI

  • Midgard Wiki

  • miniWiki

  • MoinMoin

  • MoniWiki

  • Oddmuse

  • OpenWikiNG

  • Perspective

  • PhpWiki

  • Pier

  • Pimki

  • PmWiki

  • PodWiki

  • ProntoWiki

  • ProWiki

  • PukiWiki

  • Riki

  • ScrewTurn Wiki

  • SnipSnap

  • SubWiki

  • Sycamore

  • TiddlyWiki

  • TikiWiki

  • TracWiki

  • TWiki

  • UniWakka

  • UseMod

  • VQWiki

  • WackoWiki

  • Wala Wiki

  • Wiclear

  • Wikepage

  • Wiki-Toolkit

  • WikiASP

  • WikiNi

  • WikiRootry

  • WikiSH

  • WikkaWiki

  • WikyBlog

  • wxWikiServer

  • XWiki

  • yawiki

  • ZAPwiki

  • Zwiki


Como se puede ver, la lista se ha reducido sensiblemente. No obstante, para refinarla aún más, se continuará aplicando los criterios restantes. En la siguiente entrada, se habrán eliminado de la lista aquellos wikis no escritos en los lenguajes aceptados, esto es: PHP, Java y ASP.NET

Lista inicial de wikis

A continuación presento la lista inicial de wikis, de entre los cuales, como ya se ha señalado en la entrada anterior, se obtendrá otra lista de candidatos, en este caso mucho más reducida que la anterior (5 ó 6) para su estudio exhaustivo:

  • @Wiki

  • AspWiki

  • ArtificialMemory

  • bitweaver

  • bLADE Wiki

  • BrainKeeper

  • ButorWiki

  • CanvasWiki

  • CentralDesktop

  • CityWiki

  • Clearspace

  • ClearWiki

  • codeBeamer

  • Confluence

  • Corendal Wiki

  • Cospire

  • Csa Wiki

  • Daisy

  • DekiWiki

  • DokuWiki

  • EditMe

  • ErfurtWiki

  • FlexWiki

  • FpWiki

  • Friki

  • Gazest

  • GeboGebo

  • Giki

  • Groupswiki

  • IkeWiki

  • ikiwiki

  • Incentive

  • Instiki

  • JAMWiki

  • JassWiki

  • JaWiki

  • JSPWiki

  • KeheiWiki

  • KWikiKWiki

  • Luminotes

  • LunaWiki

  • MediaWiki

  • Metadot Wiki

  • MicKI

  • Midgard Wiki

  • miniWiki

  • MoinMoin

  • MoniWiki

  • Netcipia

  • nexdo

  • Oddmuse

  • OpenWikiNG

  • PAUX

  • PBwiki

  • Perspective

  • PhpWiki

  • Pier

  • Pimki

  • PmWiki

  • PodWiki

  • ProjectForum

  • ProntoWiki

  • ProWiki

  • PukiWiki

  • Qwik

  • Qwikiwiki

  • Riki

  • SamePage

  • ScrewTurn Wiki

  • ScribbleWiki

  • SeedWiki

  • SnipSnap

  • Socialtext

  • StikiPad

  • SubWiki

  • Sycamore

  • telepark.wiki

  • TiddlyWiki

  • TikiWiki

  • TracWiki

  • TWiki

  • UniWakka

  • UseMod

  • VQWiki

  • WackoWiki

  • Wala Wiki

  • Wetpaint

  • Wiclear

  • Wikepage

  • Wiki Spot

  • Wiki-Toolkit

  • Wikia

  • WikiASP

  • WikiDoc

  • Wikidot

  • WikiNi

  • WikiRootry

  • WikiSH

  • Wikispaces

  • WikkaWiki

  • WikyBlog

  • wxWikiServer

  • XWiki

  • yawiki

  • ZAPwiki

  • Zwiki



Como se puede ver, la lista es bastante extensa, aún cuando podemos estar seguros de que no se hallan recogidos todos los wikis existentes (si bien si los más conocidos).
A partir de este punto, el trabajo consistirá en reducir esta lista eliminando aquellos wikis que no cumplan los criterios establecidos en la entrada anterior. De este modo, se efectuará una criba inicial que permitirá un estudio superficial de los candidatos para seleccionar aquellos más interesantes.
Ahora, ¡a trabajar!

viernes, 23 de noviembre de 2007

Primeros pasos

Los primeros pasos de este proyecto consisten en llevar a cabo la selección del wiki más indicado para trabajar sobre el mismo posteriormente. Sobre dicho trabajo posterior prefiero obviar comentarios al no contar aún con el beneplácito del director del Proyecto para la publicación de información sobre el proyecto en este blog. Inicialmente se consiguió una (muy) extensa lista de wikis candidatos. A la hora de seleccionar los wikis más indicados para la realización del Proyecto se tendrá en cuenta, dicho grosso modo, la arquitectura interna (cómo está construido el wiki) y la arquitectura externa (funcionamiento externo del wiki, principalmente desde el punto de vista de los usuarios).



Por otra parte, existen también una serie de factores que no encajan en ninguno de los grupos anteriores y que son de vital importancia a la hora de llevar a cabo la selección. De entre ellos, cabe destacar los siguientes:



  • Licencia: Debemos obtener el código fuente de la aplicación por lo que el wiki debe estar publicado bajo licencia GNU/GPL, lo que permitirá descartar rápidamente varios candidatos.

  • Lenguaje en que está escrito el wiki: El lenguaje de programación en que esté escrito el wiki, salvo excepciones, debería ser conocido por el desarrollador (un servidor). El motivo principal de ello es facilitar dicho desarrollo, teniendo en cuenta que esto no supone una gran desventaja al existir, como se verá más adelante, buenos wikis escritos en todos los lenguajes. La lista inicial de lenguajes aceptados se reducirá a Java, PHP y ASP.NET.

  • Sistema de almacenamiento: Preferentemente se elegirán aquellos wikis que utilicen bases de datos en lugar de ficheros, por la facilidad/comodidad de consulta posterior.

  • Historial de cambios: Dado que se pretende trabajar con un wiki de carácter general, no específico para ningún ámbito sino lo más amplio posible, es importante almacenar el historial de cambios de una página. Si el wiki fuera para uso privado/personal, no sería imprescindible, pero en caso de ser público, es el mejor método que conocemos acualmente para luchar contra el spam y el vandalismo.



Así pues, teniendo en cuenta los criterios descritos, se procederá a la selección de un grupo reducido (un máximo de 5 ó 6) de wikis para realizar un estudio exhaustivo de cada uno de ellos y elegir finalmente el que se considere más idóneo para el trabajo posterior. Ya que se trata de un trabajo muy abstracto, deberé concretar en cada caso cuáles fueron las razones que motivaron la toma de las decisiones (al menos de aquellas más relevantes) para conseguir que el proceso de selección resulte verdaderamente útil.


Y de nuevo, nada más por hoy. ¡Mañana más!

jueves, 22 de noviembre de 2007

Inauguración

Sirva este post para inaugurar el blog. En él iré añadiendo artículos que considere interesantes para el desarrollo del proyecto, noticias sobre el mismo, ideas, etc... Espero tener la constancia necesaria para ir manteniéndolo, pues considero que puede ayudarme en diversos aspectos como la documentación o la motivación necesaria para trabajar en el proyecto de manera continuada.
Si has llegado hasta aquí y algún artículo te resulta interesante, o quieres realizar algún comentario o corrección, no dudes en dejar tu comentario.
Por hoy esto es todo... ¡Mañana más!