El Bazar

Todo | Linux | General | Java
Main | Next page »

20040324 Wednesday March 24, 2004

Totalmente gratis

No es que me sobre, pero como parece que a partir de ahora voy a tener algo de tiempo libre me atrevo con la siguiente oferta pública: trabajaré para ti gratis.

El motivo es que hay ciertas herramientas y tecnologías que quiero evaluar, para ello nada mejor que montar una aplicación de abajo a arriba y examinar los resultados. No tengo muchas preferencias sobre qué construir, pero sí reconozco que tener una meta definida puede hacer más fácil mantener la motivación en una aventura de este tipo.

Así que ahí va mi oferta, si tienes cualquier idea sobre una aplicación que te gustaría ver, te hace falta o sencillamente se te ha ocurrido sin ningún motivo especial te agradecería un comentario o un correo a la dirección que tienes arriba a la derecha. El precio por un tiempo limitado será cero, si has llegado a esta página tres años después de que fuese publicada ya no te molestes, a saber donde estoy ahora.

La letra pequeña de este contrato verbal nada vinculante es la siguiente:

A ver si me copian las condiciones de trabajo en los blogs de abogados, médicos, albañiles, electricistas, mecánicos ...

(2004-03-24 18:35:58.0) Permalink Comentarios [14]

20040323 Tuesday March 23, 2004

UE 1 - Microsoft 0 (min. 24)

Algunas publicaciones como News.com, Microsoft Watch o InfoWorld ya han recogido la noticia de que la Unión Europea ha llegado a un consenso y probablemente mañana anuncie una sanción contra Microsoft por su abuso como monopolio. La historia viene de lejos, desde que la UE comenzó a estudiar las prácticas de Microsoft en 1998, actualmente la UE acusa a la compañía de aprovecharse de su situación ventajosa de monopolio en dos ocasiones: al incluir su reproductor multimedia en Windows lo que debilitaría la competencia en ese mercado, y al no proporcionar la información suficiente que permita a productos de otras compañías comunicarse con los servidores Windows.

La consecuencia son que Microsoft debería pagar una multa de 500 millones de euros, ofrecer en Europa una versión de Windows específica sin el reproductor multimedia y proporcionar información técnica que permita la interoperabilidad con los servidores y protocolos de Windows. Sobre la sanción económica se habían considerado cantidades aún mayores, aunque también había quien opinaba que todo el asunto quedaría en un simple estirón de orejas, en cuanto al reproductor multimedia la UE estudió que se incluyesen en Windows otros productos similares de la competencia.

La verdad es que la medida ahora parece que llega demasiado tarde, los reproductores como el Real Player ya han perdido la batalla igual que la perdió Netscape tras comerse ese mercado Internet Explorer en el momento oportuno, encima aún faltan las apelaciones y demás mecanismos legales que eternizarán más las resoluciones si es que al final no las detienen. La multa es una cantidad que a primera vista marea, son más de 80.000 millones de pesetas, pero tampoco tiene gran importancia si tenemos en cuenta que no supone ni el 1% de las reservas en efectivo de Microsoft.

Aquí lo verdaderamente importante no es que la UE intente corregir una situación pasada, algo ya imposible, sino que pretende expresamente aclarar el panorama futuro. Ambos están teniendo un pulso, Microsoft quiere libertad para integrar herramientas y servicios en sus productos Windows, pero la UE quiere restringir la manera en la que esto pueda suceder y además hacer posible la interoperabilidad, su argumento es que en caso contrario la competencia de otras alternativas estaría en una posición muy desfavorable. No se está luchando por si Windows 98 tenía o no un reproductor de video, sino si en Longhorn se repetirá de nuevo la misma situación con otras aplicaciones y si los servidores Windows serán aún más de su madre, de hecho las negociaciones entre la UE y Microsoft se rompieron la semana pasada no por las sanciones presentes, sino porque no se pudo llegar a acuerdos sobre como evitar conflictos futuros.

Lamentablemente para Microsoft la UE va a ser un rival mas serio que los tribunales de su pais.

(2004-03-23 20:21:28.0) Permalink Comentarios [0]

20040316 Tuesday March 16, 2004

El dichoso Ping en Java

¿Qué informático no ha ejecutado nunca el siguiente comando?

C:\>ping www.yahoo.es

Haciendo ping a www.euro.yahoo.akadns.net [217.12.3.11] con 32 bytes de datos:

Respuesta desde 217.12.3.11: bytes=32 tiempo=202ms TTL=243
Respuesta desde 217.12.3.11: bytes=32 tiempo=317ms TTL=243
Respuesta desde 217.12.3.11: bytes=32 tiempo=235ms TTL=243
Respuesta desde 217.12.3.11: bytes=32 tiempo=258ms TTL=243

Estadísticas de ping para 217.12.3.11:
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0
    (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
    Mínimo = 202ms, Máximo = 317ms, Media = 253ms
Es tan común que parece extraño que incluso en la versión actual de Java 1.4.2 no exista ninguna función con ese cometido, pero es que además tampoco puede implementarla uno mismo programando sólo en Java. Por ambos motivos, por lo habitual y la falta de una solución, es tanto una de las preguntas más frecuentes que hacen los desarrolladores que se inician en Java, como una de las peticiones más demandadas a Sun, concretamente la número 4727550 ICMP protocol support a.k.a. PING applets pide que se pueda hacer un ping con código Java ya en Noviembre de 1997 (!hace más de 6 años!), teniendo con sus 254 votos un lugar destacado entre el top 25 de fallos y peticiones de mejoras sobre J2SE.

¿Por que tantos problemas por un simple ping? Pues porque no todo es tan sencillo como parece a primera vista, el asunto no se resuelve con una conexión normal tipo HTTP, sino que este comando excepcionalmente necesita de ICMP que es un protocolo de red de bajo nivel, utilizado por ejemplo para la monitorización de la red o el enrutado. Pero el acceso a ICMP se considera privilegiado ya que su mal uso puede comprometer la seguridad del sistema, por lo que sólo está disponible para el usuario root en Unix o el Administrador de Windows. Por ejemplo en Linux para resolver este inconveniente el comando ping ignora nuestra identidad actual y se ejecuta como root automáticamente, sin necesidad de preguntarnos una contraseña, esto es seguro porque el administrador nos concede estos permisos sólo durante el ping, que es un ejecutable en el que confía y que no puede ser modificado por otros usuarios salvo él mismo. Actualmente no existe ningún API en Java sobre el protocolo ICMP, eso queda pendiente para otra futura mejora ya con 65 votos, pero aunque fuese ese el caso difícilmente el usuario va a conceder alegremente permisos de root o Administrador a nuestros programas Java sólo porque le expliquemos que queremos hacer un ping, mucho menos si se trata de un applet o de una aplicación servidor.

¿Que podemos hacer entonces? La solución más fácil consiste en ejecutar el comando ping de nuestro sistema operativo utilizando la función Runtime.exec y comprobar el valor de retorno que nos dirá cuando el ordenador responde o no. Hay que tener en cuenta que los parámetros del comando ping y su funcionamiento varían ligeramente en Linux y Windows, además el sistema de seguridad de Java nos pedirá autorización si se trata de un applet o una aplicación con webstart, pero no será necesario que seamos ni root ni Administrador. Problema resuelto, no es 100% Java pero sí bastante portable.

A partir de J2SE 1.5 tenemos una opción más. La clase java.net.InetAddress tiene una nueva función public boolean isReachable(int timeout) que viene a ser más o menos como un ping. Esta función intenta determinar si puede establecer una conexión con un ordenador remoto, para ello en primer lugar cuando el usuario tenga los permisos de administrador necesarios enviará un ping, en caso contrario enviará un ECHO. ¿Que es un ECHO? Pues poca cosa, otro protocolo utilizado para determinar si un ordenador está activo o no, tiene la ventaja de que sí se trata de un protocolo normal sin restricciones de seguridad (puerto 7), pero el grandísimo inconveniente de que la mayoría de los ordenadores que sí responden al ping ignoran completamente el ECHO. En la práctica esto significa que si no tenemos esos permisos de administrador la función isReachable no va a poder establecer una conexión en la mayoría de los casos aunque tenga el otro ordenador perfectamente funcionando a dos palmos. Además me he encontrado que en la versión beta actual de J2SE 1.5 esta función en Windows produce una excepción si el usuario no es el Administrador, en vez de mandar ese ECHO como indica su contrato, cosas de betas supongo.

¿Es que no hay una solución mejor? La verdad es que sí, pero requiere plantearse el problema incial y preguntarse ¿para qué necesitamos enviar un ping? ¿que significa establecer una conexión? Por ejemplo quizás queramos descargar unas páginas web para el usuario, tenemos que tener en cuenta entonces que aunque el ordenador remoto nos responda al ping es posible que su servidor web no funcione o que sencillamente no tenga ninguno, además también es habitual encontrarse con servidores web que por seguridad no responden al ping. En este caso el ping no nos aporta la información que queremos, si el servidor web es o no accesible, en su lugar como mecanismo de comprobación es mucho mejor establecer una conexión HTTP habitual que sí nos dirá si el servidor web responde o no, además sin caer en las restricciones de seguridad del ping. La mayoría de las situaciones son muy similares, normalmente lo que queremos saber es si un servicio de un ordenador remoto está operativo, como el servidor web, un servicio XMP-RPC o cualquier otro, una conexión específica a ese servicio con su protocolo nos proprocionará una información más fiable que un simple ping. No es siempre así, en un caso me encontré con una aplicación J2EE que necesitaba comprobar si unos ordenadores estaban encendidos o no, un ping implementado con una llamada al comando del sistema operativo fue la solución en ese caso, pero sólo ha sido una vez entre muchas otras.

Así que la moraleja de esta historia es pensarse dos veces si necesitamos un ping o no, seguramente tendremos una mejor respuesta consultando el servicio que nos interesa, además con código 100% Java.

(2004-03-16 23:09:11.0) Permalink Comentarios [3]

20040311 Thursday March 11, 2004

Nada

No habéis conseguido nada, ahora somos más fuertes y estamos más unidos. De las vidas que habéis quitado en esos trenes no vais a sacar ningún partido. No representáis a ninguna ideología ni a ningún colectivo, estáis solos, y ciegos, si es que no os habéis dando cuenta aún de eso.

Escondeos mientras podáis en vuestras cloacas, encerraos en vuestra mente junto a vuestras propias excusas de lo injustificable. Habéis golpeado duro, ¿y qué? Mañana, como cada día, vais a obtener las mismas respuestas de firme rechazo, pero más enérgicas si cabe.

(2004-03-11 17:43:28.0) Permalink Comentarios [0]

20040309 Tuesday March 09, 2004

Mandrake Linux Community 10.0

En febrero Mandrake anunció un cambio por el que pretende mejorar la solidez de sus distribuciones. Tras cada lanzamiento de una nueva versión era prudente esperar uno o quizás dos meses, hasta que se corrigiesen algunos fallos que podrían haberse escapado de su filtro de versiones betas, como el famoso y grave problema de incompatibilidad entre Mandrake 9.0 y las unidades CD-ROM fabricadas por LG. Tampoco era una mala idea del todo esperar algo más por ejemplo para saltarse la versión 9.0 hasta alcanzar la 9.1.

Hasta la versión anterior el desarrollo diario de Mandrake se basaba en una distribución conocida como Cooker, en permanente evolución al estilo de debian inestable. En ella se probaban las características de una futura versión y se integraban nuevos paquetes, hasta alcanzar las versiones beta donde se esperaba detectar y corregir el mayor número de problemas antes del producto final. Como este modelo ha mostrado algunas deficiencias Mandrake optó por abrir el desarrollo liberando una versión previa conocida como Mandrake Linux Community, a la que dos o tres meses después le seguirá una versión llamada Mandrake Linux Official equivalente a la versiones definitivas actuales. Esperan así que muchos usuarios que quieran probar las nuevas características se descarguen y prueben la versión Community, mientras que aquellos que prefieran una versión más solida puedan esperar a la versión Official, sencillamente diferentes perfiles de usuarios tienen diferentes necesidades.

Este modelo tiene coincidencias con RedHat y su proyecto Fedora, pero con otras ventajas: en primer lugar ambas versiones Community y Official son gratuitas ya que las ediciones comerciales y su soporte es opcional, además también ambas versiones tendrán actualizaciones de seguirdad y correciones de fallos, importantes para mantener un ordenador al día.

Y todo esto viene a cuento porque Mandrake ya ha anunciado su Linux Community 10.0, de momento sólo está disponible para los subscriptores de pago, dentro de unos dias podrá ser descargada públicamente. Del listado de nuevas características destacaría especialmente la inclusión del nuevo y esperado kernel 2.6, concretamente de la versión 2.6.3, el soporte NTFS por ejemplo para cambiar el tamaño de particiones de este tipo durante la instalación y para acceder a ellas en modo de lectura y escritura, además de algunos detalles de escritorio como un look & feel mejorado para KDE y GNOME o el equivalente de la notificación de inserción de CDs de Windows XP, que permite ejecutar aplicaciones del CD automáticamente sin tener que pasar por el montado y desmontado de la unidad. A los más curiosos a lo mejor les gustará ver el listado de paquetes y versiones incluidas.

Así que ya podemos elegir entre tener lo último de Mandrake, sin renunciar a las actualizaciones, o esperar dos meses hasta mayo que es la fecha prevista para el lanzamiento de Mandrake Linux Official. Yo le voy a echar un vistazo.

(2004-03-09 21:34:01.0) Permalink Comentarios [206]

20040308 Monday March 08, 2004

La antioferta de router Wi-Fi

Hace unos días me llegó un mensaje de ya.com en el que me anunciaban la posibilidad, como cliente anterior al 1 de Mayo de 2003, de renovar mi router ADSL por otro inalámbrico 3Com Wi-Fi 11g, a un precio bastante interesante: 59.90 + IVA. Como llevo un tiempo pensando en comprarme otro ordenador, quizás portatil, ya tenía también en mente pasarme pronto a un router Wi-Fi para tener acceso a Internet desde cualquier parte de la casa. Vamos, que la oferta me venía en el momento justo, la mitad de la venta ya la tenían hecha.

Se trata del mismo router que ya.com regala con las altas nuevas, para conocer un poco mejor el aparato le pregunte a mi amigo Google, los resultados han sido muy poco favorables. En primer lugar no está fabricado por 3Com, parece ser que el fabricante realmente es Belkin mientras que 3Com únicamente se dedica a venderlo bajo su marca en exclusiva a ya.com, ese modelo no se puede adquirir de ninguna otra forma, vamos que de 3Com lo único que tiene es el nombre. Por ejemplo eso significa que 3Com no da soporte sobre el router, sino que nos dirigirá ante cualquier consulta y/o problema a ya.com.

Lo realmente grave es la más que completa lista de vulnerabilidades que también incluye gratis. Por ejemplo si se permite el acceso remoto (por defecto está activado) entonces se puede controlar el router sin la contraseña (encima al ser inalambrico esto lo puede hacer nuestro vecino), si se desactiva el firewall también se puede acceder a la administración del router remótamente sin contraseña, la administración remota SNMP está activada por defecto y además no se puede deshabilitar, algunas páginas de administración están ocultas y son accesibles escribiendo su dirección directamente en el navegador, está basado en un servidor Apache 0.6.5 obsoleto y con vulnerabilidades bien conocidas (como la ejecución remota de código), ¿no esta mal no? Es verdad que algunas de estas vulnerabilidades que afectan a la versión 1.02 y anteriores del firmware, están corregidas en la versión 1.05, pero no todas.

La mayoría (si no la totalidad) de los routers de este modelo han sido entregados por ya.com con la versión 1.02 o anterior del firmware, con la configuración totalmente abierta: en modo DHCP y sin encriptación. En la práctica esto significa que cualquiera con una tarjeta inalámbrica puede utilizar este router de su vecino tranquilamente. Evidentemente los usuarios no saben lo que tienen instalado ni los problemas que le puede dar. Algunos por ejemplo habrán notado que los programas P2P no funcionan porque el router se cree estar siendo atacado y no permite entonces las conexiones.

Total que por 59.90 + IVA me puedo quedar con un router inalámbrico que sencillamente es una porquería, eso sí, le puedo actualizar el nuevo firmware y ponerme a configurarlo como dios manda haciendo pruebas y más pruebas unos dias. Paso, prefiero pagar algo más pero no perder tanto el tiempo. Para los que ya lo tengan les recomiendo que se pasen por esta página de pruebas específica para este router que les dirá si son vulnerables a algunos de estos ataques. Seguramente van a necesitar también actualizarse a la última versión disponible del firmware. Hay más información en ADSLAyuda y en los foros de ya.com en BandaAncha.

Me gustaría acabar con una curiosidad de un mensaje que leí en uno de los foros: "Lo único que me he fijado [...] es que al poner el microondas en casa se me queda tostada toda la red y vuelve a la vida en unos minutos, en la información de la tarjeta de red dice que no hay señal y deja de funcionar todo".

(2004-03-08 18:28:52.0) Permalink Comentarios [2]

20040301 Monday March 01, 2004

JBoss explica su aventura de capital riesgo

Utilizando un blog como medio JBoss ha explicado las motivaciones que le han llevado a buscar el apoyo de un inversor de capital riesgo, y de paso intenta despejar algunas dudas que puedan existir entre sus usuarios (perdón, clientes) tras este movimiento.

JBoss quiere dejar de ser percibido como el servidor J2EE casero, útil durante el prototipo pero que finalmente acaba siendo substituido cuando llega la hora de la verdad por otro comercial, más fiable, con un buen soporte y como no bastante caro. Para eso no sólo necesitan competir con un buen producto, algo en lo que obviamente ya venían trabajando, sino con un buen servicio. Y eso les va a costar dinero.

En el último año han ido cambiado su modelo de negocio basado en la consultoría para centrarse en el soporte, como con sus nuevos contratos de soporte 24x7. El pastel es más que apetecible, por ejemplo el artículo habla de unos ingresos por parte de BEA en concepto de soporte de $250 millones (también es verdad que BEA es mucho BEA). Como pez pequeño ellos competirán entre otras cosas con un mejor precio, o sea no tan absurdamente desorbitado como los que rondan en J2EE, por ejemplo no estará basado en el número de CPUs sino en aplicaciones. El papel aguanta todos estos proyectos de crecimiento y expectativas, pero si te inyectan $10 millones es porque tu plan de empresa es bastante sólido, no se los dan a cualquiera.

Comentan también que en sus contactos con más de veinte firmas de capital riesgo buscaron aquellas que compartían esa visión de negocio, descartando ya de entrada aquellas que pretendían obtener ingresos creando una edición extendida del servidor JBoss con una licencia comercial ya no gratuita. Su intención es mantener el producto bajo la misma licencia LGPL, de hecho en la práctica no es tan fácil cambiarla ya que no tienen el copyright de muchas colaboraciones.

Relacionado con JBoss pero en otro sentido, está previsto que esta semana sea liberada la versión 1.0 ya definitiva de JBoss Nukes, un CMS insparado en postnuke (PHP) que últimamente está despertando bastante interés. Un nuevo CMS a la lista, que ya es extensa, de soluciones open source en Java, para que no se diga que a los desarrolladores no nos gusta reinventar la rueda.

(2004-03-01 22:13:45.0) Permalink Comentarios [0]

20040219 Thursday February 19, 2004

JBoss apuesta por crecer deprisa

Hoy JBoss ha anunciado oficialmente haber llegado a un acuerdo con una firma de capital riesgo para financiarse, en una primera fase por $10 millones. Bueno, debería decir The JBoss Group, que no es exactamente lo mismo que simplemente JBoss.

Dentro de la comunidad de desarrolladores en Java, si es que ese concepto existe, The JBoss Group ha levantado sentimiento opuestos. Criticado por muchos por la manera en la que ha llevado a cabo su transición de un simple proyecto open source a un modelo empresarial, pero también alabado por otros por conseguir pertenecer al exclusivo grupo de empresas basadas en un producto open source propio. Tampoco es que ayudasen mucho las polémicas con Sun sobre si debía o no pagar la certificación, o con el proyecto Geronimo con advertencias de abogados incluida.

Tendremos que esperar todavía algún tiempo para ver qué consecuencias tiene este paso. ¿Seguirán basando su modelo de negocio en el soporte de tercer nivel? ¿Se plantearán nuevas formas de ingresos? Se admiten apuestas, la solución aproximadamente dentro de un año.

(2004-02-19 21:14:04.0) Permalink Comentarios [0]

20040218 Wednesday February 18, 2004

Que verguenza

Hoy ETA ha anunciado una tregua para no realizar más atentados pero sólo en Cataluña. Al margen de las opciones políticas respetables de cada uno, yo como catalán, y la gran mayoría de nosotros pensamos lo mismo, podemos entender la vergüenza, la indignación y la sensación de insolidaridad que deben sentir en el resto de comunidades.

La violencia nos afecta a todos por igual, a todos o a ninguno.

(2004-02-18 14:55:54.0) Permalink Comentarios [5]

20040212 Thursday February 12, 2004

Mozilla Firebird ahora es Firefox

Mozilla Firebird, antiguamente conocido como Phoenix, ha vuelto a cambiar de nombre y ahora se llama Firefox. Para el que no lo conozca Mozilla Firebird, perdón Firefox, es el navegador resultado de la evolución de Mozilla. Del Mozilla original han surgido varios proyectos independientes, Firefox como navegador y Thunderbird como cliente de correo y noticias, que muy probablemente lo substituyan en un futuro, migrar es sólo cuestión de tiempo.

Inicialmente el navegador se llamó Mozilla Phoenix, pero se cambió por un problema con la marca comercial del mismo nombre del fabricante de BIOS. Con la versión 0.6 se escogió como nuevo nombre Mozilla Firebird, que tampoco ha sido muy afortunado si tenemos en cuenta las protestas sobre la confusión que causaba con otro popular proyecto open source, la base de datos Firebird. La nueva versión 0.8 además de cambios en el código fuente incluye gratis un nuevo nombre, Firefox. Si en un futuro tienen que volver a cambiarlo va a parecer cachondeo. Moraleja: elige un buen nombre al principio.

Sobre Firefox recientemente una consultora, AMS, lo ha metido en lo que ella llama "Tier 1" entre las aplicaciones open source:

"Esta categoría incluye productos como Linux, el servidor web Apache, Samba, el navegador Mozilla Firebird y en lenguaje de script Perl. Estos productos, ampliamente testeados y percibidos en gran parte como virtualmente sin riesgos, son frecuentemente escogidos por sus puntos fuertes técnicos. La mayoría considera que estos productos son seguros, y muchas compañías hoy día los usan con pocos problemas. De hecho muchos eligen expresamente a estos productos frente a alternativas propietarias sin reparar en el precio".

Pues no le podían hacer mejor publicidad. Yo lo uso en Linux y Windows como mi navegador habitual desde la versión 0.6 y la verdad es que dudo mucho que lo cambie por cualquiera de los otros que ya conozco.

(2004-02-12 14:54:02.0) Permalink Comentarios [4]

20040211 Wednesday February 11, 2004

Vulnerabilidad seria en Windows

Microsoft ha advertido de un nuevo fallo de seguridad crítico que le permite a un intruso ejecutar código en un ordenador remoto como si del administrador se tratase, o sea a hacer cualquier cosa imaginable. Se trata de uno de los problemas de seguridad más serios descubierto hasta la fecha por varios motivos. El primero porque afecta a una amplia gama de sus productos: Windows NT (Workstation y Server), Windows 2000, Windows XP y Windows Server 2003. El segundo porque el fallo no reside en una aplicación concreta sino en una librería (ASN.1) que hace vulnerable a muchas de ellas, especialmente cuando hablamos de servidores.

Ahora sabemos que este problema fue descubierto hace ya seis meses, en su momento naturalmente no se hizo público para no aumentar el riesgo, pero este retraso hasta el día de hoy, cuando se puede corregir con una actualización, viene a sumarse a las críticas que últimamente está recibiendo la compañía sobre su política de seguridad.

Aunque se ha comprobado que el peligro es real, de momento no se conoce ningún uso maligno de este fallo, de todas formas ahora que ya ha sido divulgado ampliamente parece que no será más que cuestión de unas semanas hasta que aparezcan nuevos ataques basados él.

Como siempre a los usuarios Windows les conviene mantener las actualizaciones al día, algo que en general parece que no hacen. Pero la peor parte les puede tocar a la de servidores con muy poco mantenimiento que no se actualizarán hasta dios sabe cuando.

(2004-02-11 19:17:27.0) Permalink Comentarios [0]

20040204 Wednesday February 04, 2004

Es la hora de Subversion

La encuesta del mes pasado de javaHispano dejó bien claro que CVS es el sistema de control de versiones más usado con diferencia, quizás no tanto por sus ventajas (que las tiene y son muchas) como por una cuestión de tradición. Pero CVS también tiene unos cuantos defectos, uno de los más importantes es que sólo trabaja con el contenido de ficheros, de manera que pierde el versionado cada vez que se copia, mueve o renombre un fichero. En Java es un inconveniente especialmente molesto, toda clase pública debe guardarse en un fichero con el mismo nombre y generalmente en un directorio que refleje el nombre del paquete (esto último no es obligatorio pero es lo más habitual), lo que significa que algunas refactorizaciones dejan al CVS ciego. No es de extrañar, CVS ha progresado a partir de un concepto obsoleto como RCS a base de parches.

En mayo de 2004 nació un proyecto open source financiado por una compañía para crear una evolución de CVS, se llamaría Subversion o de forma abreviada SVN. Hace ya mucho tiempo que superaron las deficiencias de CVS conservando al mismo tiempo buena parte de sus virtudes, algunas de las mejoras incluyen la gestión de directorios (por lo que es consciente de cuando se copian, mueven o renombran ficheros), datos arbitrarios asociados a los ficheros o metadata (propiedades como el tipo de contenido, los atributos, notas o cualquier otra cosa), gestión de ficheros binarios, rapidez (en la transferencia de datos o al generar las ramas) o la comunicación que se realiza con el servidor Apache bajo el protocolo WebDav (de quien puede aprovechar características como la autentificación o la encriptación por ejemplo). Además la migración es fácil ya que se puede convertir un repositorio CVS en Subversión con la herramienta cvs2svn.

Desde el 31 de agosto de 2001 el equipo de Subversion empezó ya a utilizar su propio producto para almacenar su código fuente, la estabilidad siempre fue uno de los objetivos y pueden presumir de no haber perdido ningún dato desde entonces. En estos momentos se encuentran en la versión 1.0.0-RC1 (beta), la versión definitiva está prevista para finales de este mes, concretamente el 23 de febrero. En cualquier otra aplicación la palabra "beta" debería ser sinónimo de "cuidado", pero es que no todos la utilizan con el mismo criterio, según uno de los miembros del equipo:

"Subversion es muy estable. La única razón por la que no le hemos llamado ya 1.0 es porque estamos hablando de un sistema de control de versiones en el que se van a almacenar millones de dolares en propiedad intelectual. La gente necesita sentirse segura al hacerlo, y eso significa un nivel de conservadurismo que no tiene lugar en otro tipo de software".

Otra clave son las herramientas, clientes y utilidades CVS los hay a patadas. Afortunadamente con Subversion, que se ha destacado como la alternativa open source a CVS, el panorama es bastante bueno, además de los clientes habituales muchas otras aplicaciones como Ant o Maven ya se entienden con él.

Si alguno se anima aquí tiene algunos enlaces que pueden ser interesantes:

Ya ha llegado la hora de Subversion. En cuanto tenga algo de tiempo me parece que algunos proyectos del trabajo van a abandonar CVS.

(2004-02-04 23:29:09.0) Permalink Comentarios [3]

20040128 Wednesday January 28, 2004

Moneydance gratis

Si buscais una aplicación de control de gastos domésticos gratuita y que además sea decente la verdad es que no teneis muchas opciones. Yo soy usuario desde hace más de un año de gnucash, un programa que además de gratuito es open source, aunque esto último es para mí ahora mismo poco importante, vamos pienso como un usuario que busca un producto final y no como un desarrollador en C interesado en colaborar.

Un punto a favor de gnucash es que es una aplicación que sencilla, algo que después de haber utilizado algunos productos comerciales de la competencia se agradece. Sencilla que no simple, con lo que ya hace gnucash la verdad es que me sobra, no necesito la nueva funcionalidad que se le está dando para además gestionar un pequeño negocio. Además es un proyecto vivo, cada cierto tiempo aparece una nueva versión, lo que da unas ciertas garantías de continuidad y nuevas prestaciones.

Lamentablemente tiene algunos inconvenientes. Uno es que sólo funciona en Linux, eso por sí sólo ya lo convierte en un producto minoritario. Otro es que instalar las nuevas versiones desde el código fuente es bastante palo por el lío de dependencias, o sea que normalmente uno se apaña con la versión que acompañana a la distribución de Linux que suele estar bastante retrasada. Alguna vez se me ha colgado sin guardar los datos, una experiencia que no es agradable.

Tan sencillo me parece gnucash, si no tenemos en cuenta algunas características avanzadas que me parecen un poco dudosas, que de vez en cuando me ronda por la cabeza hacerme una aplicación para mí en Java y ser completamente autosuficiente. Podría ser como no open source.

También hay una aplicación comercial hecha ya en Java, Moneydance, que me parece muy interesante, es similar a gnucash pero además de ser mucho más bonita es portable y funciona también en Windows. La única razón por la que no la he probado más a fondo es que cuesta 30$.

La novedad es que ahora Javalobby ha llegado a un acuerdo por el que está distribuyendo Moneydance de manera gratuita, sólo necesitas ser un usuario registrado y visitar esta página.

Si no habeis probado ningún software de este tipo os recomiendo que le deis una oportunidad. Tras haber introducido unos cuantos datos y generar unos cuantos informes es posible que os guste y os sorprendan algunos resultados. Será que soy catalán.

(2004-01-28 23:29:59.0) Permalink Comentarios [3]

20040122 Thursday January 22, 2004

Un desgraciado fracaso

Quizás se trate de un mensaje subliminal, quizás no sea más que una coincidencia o quizás tenga mucho sentido. Podeis decidir vosotros mismos buscando un desgraciado fracaso en google, concretamente prestad atención a la primera página encontrada. Además se trata de una página oficial del gobierno.

(2004-01-22 23:15:33.0) Permalink Comentarios [0]

20040120 Tuesday January 20, 2004

Demasiado XML

Todos somos tarde o temprano víctimas de las modas. Uno de estos abusos está en la programación en un script basado en XML, algo en lo que seguramente ha influido mucho Ant. Por ejemplo por ese motivo Maven, la nueva herramienta de construcción de proyectos de Jakarta, utiliza también XML como lenguaje, y gana así compatibilidad con los scripts en Ant. Otra influencia notable es sin duda Jelly, una extensión de los conceptos de Ant que permite introducir en un script XML elementos más complejos como control de flujo con bucles y condicionales, variables, funciones, etc.

Leyendo un mensaje reciente de la lista de usuarios de Maven me he encontrado con la siguiente frase de Jason van Zyl, uno de los desarrolladores:

"Ya no soy un fan de Jelly. Ya sé que hay gente que parece estar enamorada de la programación en XML pero creo que es el mayor error que he cometido con Maven, algo que nos has costado mucho. No cometeré errores similares en el futuro".

No puedo estar más de acuerdo. Llevo dos años trabajando en un proyecto donde la personalización con un script es un elemento crucial. Influenciado por la experiencia de éxito de Ant concebí un script basado en XML para que los usuarios (de alto nivel) pudiesen utilizar las tareas que les proporcionaba el lenguaje, que eran como plugins (al estilo Ant). Desde hace ya unos meses sustituimos este lenguaje por un script que ahora es compatible con Python, todo ello gracias a un excelente proyecto open source llamado Jython que combina ambos lenguajes.

Python tiene una sintaxis tan clara (ni { ni } ni ; en el código), es tan incremental (inicialmente no necesitas aprender conceptos como las clases para empezar a trabajar) y tan productivo (no necesitas compilar y puedes probar el código sobre la marcha en una consola interactiva) que ahora nuestros usuarios lo prefieren a la alternativa en XML. Encima para nosotros es más fácil trabajar con Jython, nos cuesta menos mantener el código y sólo tenemos que diseñar un API que desde el script es ya directamente accesible. Tampoco tenemos que educar desde cero a los usuarios porque ya tienen un montón de recursos disponibles sobre Python, sólo les enseñamos como funciona ese API sencillo. Y a medida que los usuarios con la práctica adquieren pericia tienen a su disposición toda la potencia de Python, como una amplia librería estandard para que hagan scripts que nos sorprendan a nosotros mismos.

Desde Maven ya se está hablando de substituir el script XML por otro lenguaje más adecuado como BeanShell, Groovy o Jython, conservando la compatibilidad con el script XML como mínimo inicialmente. También en su día el tema levantó interés en el equipo de Ant. Espero que sepan adaptarse a pesar del coste que supone una refactorización así, si no lo hacen ellos lo harán otros.

Esta era una entrada combinada, un mea culpa público y unas palabras de ánimo para Ant y Maven.

(2004-01-20 22:18:40.0) Permalink Comentarios [0]