OpenBravo recibe una inyección de 12 millones de dólares

OpenBravo, el ERP opensource con sede en Navarra, ha recibido una inyección de capital de 12 millones de dólares. Un ERP que comenzó como un fork de Compiere, de la mano de dos profesores de la Universidad de Navarra, se ha convertido en la referencia a nivel mundial, en software ERP bajo código abierto. No obstante, según la Wikipedia, Openbravo Community Edition está licenciado bajo Openbravo Public License Version 1.1 («OBPL«), adaptación de la licencia libre Mozilla Public License que aplica algunas restricciones que la hacen incompatible con la licencia GPL.

JavaCup 2008: demuestra tus habilidades Java

¿Sabes programar en Java? No hay que ser ningún experto, basta con que sepas seguir un API para poder participar en el concurso JavaCup 2008, organizado por JavaHispano y SUN Microsystems por 2º año consecutivo. El objetivo: programar una táctica que seguirá tu equipo de fútbol virtual para derrotar al contricante. Incluso hay vídeos explicativos paso a paso de cómo crear un equipo simplón 😉  El año pasado animé a mis alumnos a participar y no tuve éxito. Veamos si este año encuentro a algún valiente 😉

Plantilla en Java del patrón Singleton para Eclipse

Parafraseando a Groucho Marx: éstos son mis títulos de post. Si a usted no le gustan, tengo otros 😉

Warning: post muy técnico.

Si programas en un lenguaje orientado a objetos, es probable que te hayas encontrado a menudo con el patrón singleton. Últimamente me he encontrado tecleando las líneas de este patrón en Java una y otra vez, con lo que se me ha encendido la bombilla de la pereza: «y ésto… ¿no lo podré automatizar?» Por supuesto. En Eclipse es sencillo:

Window->Preferences->Java->Editor->Templates. Click en New e insertar el siguiente código. Darle un nombre («singleton» podría ser una decisión acertada 😉 . Cuando quieras usar el patrón en tus clases Java, escribe «singleton» y pulsa Ctrl+Espacio. ¡Magia!

private static ${enclosing_type} instance;
private ${enclosing_type}(){}
public static ${enclosing_type} getInstance(){
if(null == instance){
instance = new ${enclosing_type}();
}
return instance;
}

Nota: ojito, que esta forma de implementación del patrón parece sufrir una condición de carrera en el bloque if … una posible solución sería inicializar la referencia estática en la propia sección de declaraciones.

TopCoder UML Tool: publicado el código fuente

TopCoder UML ToolTopCoder.com publica semanalmente varios retos relacionados con distintos aspectos de la ingeniería del software. Retan a los ingenieros informáticos de todo el mundo a ofrecer soluciones de diseño de aplicaciones, diseño de componentes, ensamblado de componentes, programación de dichos diseños, programación de algoritmos,… Todos (o casi todos) los retos vienen acompañados de recompensas económicas. Lo más importante, en mi opinión, es que todo el material que se genera en esos retos suele publicarse (a veces sólo durante la fase de revisión pública, como algunos diseños), de tal forma que si te has atascado en algún reto o bien quieres ver cómo han solucionado otros informáticos el problema, puedes hacerlo. Me resulta especialmente interesante ver y estudiar el código de los problemas de algoritmos más duros, así como los diagramas UML de algunos diseños, de los cuales, se aprende todos los días algo jugoso. Una gran web y un gran recurso formativo.

Hecha la presentación de TopCoder me gustaría hablaros ahora de una herramienta que, a pesar de llevar ya algún tiempo publicada, no ha sido hasta hace unas semanas cuando TopCoder ha decidido publicar su código fuente: se trata de la aplicación TopCoder UML Tool, una herramienta que permite generar distintos diagramas UML: diagramas de clase, de secuencia, de casos de uso, …

Hasta la aparición de TopCoder UML, los diseñadores debían de usar Poseidon para generar los diagramas UML solicitados. Gran herramienta, basada originalmente en ArgoUML, ésta última software libre (y que participó el año pasado en el Google Summer Of Code para añadirle algunas funcionalidades que no poseía, como la posibilidad de realizar diagramas de secuencia).

Lo bueno de la ‘liberación’ de TopCoder UML no sólo es que han publicado el código fuente, sino que en el esfuerzo han abierto para la comunidad toda la documentación generada en su proceso de construcción: casos de uso, diagramas de actividad, documento de especificación de requerimientos, prototipos, plan de gestión de la calidad, diagramas de secuencia, diagramas de componentes, diagramas de interfaces, especificación de componentes, … Estudiar esta documentación nos puede servir para hacernos una idea muy concreta de lo que supone construir una aplicación moderna, hoy en día, siguiendo una metodología, es decir, justo lo que interesa a cualquier alumno de ingeniería del software. Eso sí, hay que tomárselo con calma y mucho café al lado, dado que hay mucho material 😉

Cómo borrar la caché de credenciales de Eclipse

Si trabajas con Eclipse y Subversion (plugin Subclipse) tal vez te haya pasado: has metido mal el login y/o password en la ventana de autenticación y quieres poner el correcto. O bien, has puesto el correcto pero al día siguiente te comunican que ha cambiado. Eclipse no te dejará cambiarlo, se acordará constantemente del viejo. ¿Cómo arreglarlo? Borrándole la memoria 🙂 Es decir, borrando el fichero caché de credenciales que en mi PC se guarda aquí:

~/.eclipse/org.eclipse.platform_3.3.0_1543616141/configuration/org.eclipse.core.runtime/.keyring

Espero que al menos os sirva para ahorraros el quebradero de cabeza que he sufrido (y a mí para recordarlo en el futuro…)