La extorsión que ejercen algunas compañias

Negocios, Openbravo, Personal 2 Comments

Hace poco he vivido el peor momento colaborando en un proyecto de software libre, y resulta cómico porque lo normal es que colaborar en estos proyectos me resulte divertido, reconfortante además de que aprendo mucho. El caso es que a raiz de realizar unos cursos de formación en Barcelona organizados por la empresa Openbravo decidí montar una bitácora con el nombre obtrainings en honor a los cursos, inicalmente junto a un compañero que conocí en Barcelona,  con la idea de apoyar y retroalimentarnos de la gente que realizara los cursos en el futuro. Al final el único editor de la bitácora acabé siendo yo mismo y la idea inicial terminó diluyéndose y convirtiéndose en una bitácora dónde hablaba de las novedades del producto y dónde escribía artículos y tutoriales de Openbravo ERP.

Pasaron algunos meses y me fuí enterando de algunas cosas siempre por terceras personas, por ejemplo me enteré que algunos directivos de openbravo leían la bitácora ya que me llegaban comentarios del tipo –Oye, ¿sabes que el otro día estuve con tal y me dijo que le gustó el artículo pascual de obtrainings?– donde tal era el directivo en cuestión. Lo bueno era que yo sabía de estas cosas sin que nunca nadie de Openbravo me hubiera dicho nada aunque eso tampoco me importaba, y entonces fué cuando vinieron los problemas.

Igual que escribía artículos contando las bondades que me parecían interesantes de openbravo, escribía artículos donde criticaba los puntos débiles o las cosas a mejorar dentro del sistema y metodologías de desarrollo que se estaban llevando a cabo, siempre con la intención de que se detectaran esos problemas y se corrigieran. Parece que esto no les gustó a esos directivos e igual que no se pusieron en contacto conmigo para decirme que algo les había gustado tampoco lo hicieron cuando les disgustó alguno de mis apuntes de obtrainings. Hasta aquí todo correcto, sólo que a mi me hubiera gustado tener retroalimentación con sus opiniones ya que sin ella se avanza más despacio.

Lo indignante fué que en vez de ponerse en contacto conmigo lo que empezaron a hacer es contactar con mi jefe para decirle que me atara en corto. Se ve que no les quedó claro que cuando yo escribo en mi bitácora escribo en nombre propio, que las opiniones, decisiones o consideraciones respecto a openbravo que haga mi empresa las realizan sus dos socios fundadores y que yo en esas deciones no tengo ni voz ni voto. Que igual que cuando Openbravo tiene que tratar algún tema con mi empresa se ponen en contacto con mis jefes y yo quedo totalmente al margen, cuando yo escribo algo mi empresa está totalmente al margen también, lo que puede significar que mi opinión y la de mi empresa no concuerden en muchos sentidos. Mi rol dentro de la empresa es de consultor y desarrollador, al final hago lo que me mandan y punto lo que no quita que tenga mis propias opiniones.

A lo mejor pensaban que podrían extorsionarme y hacer que dejara de escribir lo que pienso. Eso nunca lo iban a conseguir y como mucho hubieran conseguido que me despidieran, quizá era eso lo que pretendían, no lo se.

Total que después de la tercera reunión con mi jefe por estos temas, cada vez que escribía algo que pensaba que podría no haber gustado a alguien en openbravo ya sabía que al día siguiente tendría otro encuentro. Al principio se que estas llamadas venían de Miguel Magán, pero luego ya ni siquiera me enteraba de quién había venido el mensaje.  Lo que hice es ponerme en contacto con Miguel para decirle que cuando tuviera un problema con lo que yo escribía que se pusiera en contacto conmigo y no con mi jefe con los mismos argumentos de competencias dentro de mi empresa que he expuesto anteriormente. Él me contesto dándome consejos como gran magnate de los negocios (notese la ironía), porque según él debo ser más diplomático. Yo seré muy directo y diré las cosas tal cual las pienso pero por lo menos no intento extorsionar a nadie cosa que él si hizo conmigo.

Al final y después de muchas desilusiones de cómo se estaba llevando el proyecto y al sumarle lo que os estoy contando decidí descontinuar la bitácora. Curiosamente fué en ese momento cuando Openbravo se puso en contacto conmigo por primera vez. Primero Paolo Juvara me escribió para pedirme que siguiera colaborando en el proyecto y pidiéndome que qué podía hacer para convencerme, yo le expliqué lo que estaba pasando y le dije que la decisión ya estaba tomada. Me sorprendio que me comentara que él de estas cosas no se había enterado. Después se puso en contacto conmigo Josep Mitjà, un tío bastante coherente con el que tuve una conversación telefónica muy cordial y aunque no estuvimos de acuerdo en bastantes puntos fué la primera vez que tuve el placer de hablar sobre todos los asuntos que yo comentaba en mi bitácora con una persona de openbravo.

Lo que me ha quedado claro después de este tiempo es algo que ya he comentado alguna vez, Openbravo es una empresa que se ha metido en el software libre porque lo ha visto como una oportunidad de negocio, cosa muy lícita y que yo defiendo, pero que no tiene muy claro las implicaciones ético sociales que esto conlleva y concretamente las consideraciones que debería tomar hacia la comunidad, y me refiero a la comunidad del software libre porque visto lo visto dudo mucho que pueda existir una comunidad de openbravo. Almenos algunos de sus directivos no lo tienen muy claro porque utilizan tácticas sucias al uso en empresas tradicionales.

Por último quiero dar las gracias a la gente con la que me he encontrado en el irc y los foros, entre ellos muchos desarrolladores de openbravo, que me han ayudado y a las que he intentado ayudar en lo que he podido. Ellos no tienen nada que ver con lo que cuento en este apunte, ellos igual que yo son gente que pretendía crear una comunidad alrededor del proyecto y que creían realmente en que eso fuera posible. De nuevo gracias.

Cheli

¿Qué hace que un proyecto y su plataforma de desarrollo fracase?

Openbravo, Software Libre 6 Comments

Son cosas que todos sabemos pero que sigo viendo en muchos proyectos, algunos de ellos se han hecho bastante populares.

  1. Debe estar documentada. Es de perogrullo pero es una cosa que a ningún desarrollador le gusta hacer pero es lo primero que buscamos cuando estamos programando. Un API sin documentación no sirve de mucho. Ejemplos de bibliotecas que triunfan y tienen una gran documentación y puede que parte de su éxito sea justamente este detalle son PHP, QtJava.
  2. Compatibilidad a lo largo del tiempo. Un api de programación tiene que ser estabable a lo largo del tiempo, si se empiezan a cambiar las interfaces de los métodos o funciones, se crean incompatibilidades binareas, etc esta librería nos dará muchísimos quebraderos de cabeza. Lo que suelen hacer algunos fabricantes es que durante la versión mayor de una biblioteca se mantiene la compatibilidad y cuando se pasa a la siguiente versión mayor ya si que se puede añadir lo que se quiera porque se permite la incompatibilidad con la versión anterior.
  3. Debe facilitar la actualización. Cuando se crea una nueva versión se debería pensar en la forma de actualizar desde la versión anterior de manera que luego no existan problemas en las migraciones.
  4. No se pueden dejar funcionalidades a medias. Si empiezas un desarrollo y no lo terminas no puedes dejar la aplicación llena de partes de dicho desarrollo pero que en verdad no sirven de nada.
  5. El código fuente debe estar en inglés. Habrá gente que no le guste pero el idioma internacional para la tecnología es el inglés y es el que todos los desarrolladores suelen entender. Si tu código está en otro idioma estás cerrando puertas para que otros desarrolladores entren al proyecto.

Existen muchos más problemas asociados pero estos 5 me parecen fundamentales. En Openbravo me he encontrado estos y nos está afectando actualmente en varios proyectos en los que estoy metido en mi empresa.

Ante el primer problema y preguntando cómo funciona tal método de una clase a desarrolladores de Openbravo directamente, gente que lleva trabajando para la empresa Openbravo desde hace bastante tiempo y que están en el equipo de ingeniería la respuesta es - No lo se, yo pillo un ejemplo parecido que ya esté hecho y copio o pego. A la pregunta de si estaba documentado la respuesta era no y que en todo caso se iban a la propia definición en el código de la biblioteca.La culpa no es de ellos, la culpa es de que el que escribió las bibliotecas y herramientas que utilizan no las documentó y actualmente no hay ningún recurso en Openbravo para documentarlas.

El segundo caso me pasó cuando intentamos utilizar un informe que desarrollamos según las indicaciones del wiki de Openbravo, este informe funcioaba perfectamente en la versión 2.35 pero al intentar compilarlo en la versión 2.40 no funcionaba. El problema venía porque habían modificado unos atributos privados de la clase base  de la que heredaba la clase que lanzaba el informe. En verdad habían hecho bastante limpieza en esa clase y si a eso le añadimos que a los atributos no se accede mediante métodos públicos, una interfaz pública pues no tiraba. Lo suyo es que como se comenta más arriba se mantenga el api de todas las bibliotecas que se utilizan en el proyecto a lo largo del tiempo. Se podría refactorizar el código pero siempre que mantuvieras las interfaces de las clases, pero es que en muchos casos ni siquiera hay interfaces bien definidas.

El tercer caso me ha pasado al intentar actualizar Openbravo, se supone que Openbravo utiliza un fork propio de ddlutils para la manipulación de la información en la base de datos. Su actualizar de la 2.40beta  a la 2.40 funcionaba  a la perfección con la instalación de la 2.40beta limpia pero si intentaba aplicarlo sobre uno de nuestros proyectos me dió un error tan chorra como que un campo que no era único había pasado a ser único en una tabla y al detectar duplicados no podía terminar el proceso de actualización del a base de datos dejandola en un estado incoherente. Este tipo de cambios no se deberían dar enuna base de datos medianamente estable, pero si se dan y quieres hacerlos debes tener mucho cuidad de que no existan problemas al actualizar.

El cuarto caso es muy típico en Openbravo, la aplicación está plagada de campos, ventanas/pestañas que no sirven para nada pero que por alguna extraña razón alguien dejó ahí. Esto a parte de confundir al usuario da una sensación de dejadez impresionante. Aquí os dejo un ejemplo.

El quinto caso sigue ocurriendo en Openbravo, han ido limpiando muchas partes del código pasándolo al inglés pero todavía queda mucho trabajo por hacer, sigue habiendo mucho código en castellano.

¿Qué problemas soleis encontrar vosotros en los proyectos en los que estais?

Cheli

Tanteando realizar cursos de Openbravo

Negocios, Openbravo No Comments

Estoy planteándome empezar a dar cursos de Openbravo, la emrpesa Openbravo ya realiza una serie de cursos pero tienen algunos inconvenientes. El primero es que son muy caros y el segundo es que se realizan en Madrid, Barcelona o Pamplona.

Lo que me he planteado es dar dos cursos, uno de funcional y otro de desarrollo básico a un precio alrededor de un tercio de lo que oferta Openbravo. Para que os hagais una idea estos cursos en Openbravo salen por 2.490€ y tienen una duración de 5 días.

Los cursos que yo planteo serían los viernes por la tarde y sábados por la mañana durante 4 semanas en Alicante por lo que seguimos teniendo el problema de localización pero ahora con una alternativa nueva (Alicante) y en otro horario (viernes tarde y sábados mañana). Me gustaría que me digerais si os resulta interesante y si pensáis que tendrían buena acogida para así poder empezar a prepararme el material necesario (apuntes, local, datos de ejemplo, ejercicios).

Cheli

Llegó el mensaje

Openbravo, Software Libre 3 Comments

El otro día me quejaba de la actitud de Jordi Mas como responsable de comunidad de OB, pues parece que le llegó el mensaje aunque con un tanto de ruido y ahora veréis porqué .

Entré al canal de ob en castellano del freenode como cada mañana y ni me di cuenta que Jordi estaba por allí hasta que me soltó esto:

You have joined channel #openbravo-es
<cheli> buenas tardes
nick01 (n=nick01@215.Red-80-26-11.staticIP.rima-tde.net) has joined channel #openbravo-es
<nick01> cheli???
<cheli> si
mmarquez (n=mmarquez@213.227.45.224.static.user.ono.com) has joined channel #openbravo-es
<nick01> cheli, aceptas el privado???
<cheli> no he visto ningun privado, es que estoy con ksirc que no me gusta nada y tampoco me entero mucho pero vamos no veo nada
<nick01> lees los privados o no??
<iarwain> nick01: si no registras e identificas en freenode no va a leer privados tuyos (políticas de seguridad de freenode)
<iarwain> A no se que se ponga en modo “unfiltered”.
<iarwain> me refiero a identificar el nick.
<nick01> vale!!
<cheli> por eso no veia tu privado entonces
<nick01> y ahora los ves??
<cheli> no nada
<cheli> de hecho te abri yo uno y creo que tu tampoco lo ves
<iarwain> cheli: si quieres recibir mensajes de todos tendrás que hacer: “/msg nickserv set unfiltered on”.
<iarwain> Así lo tengo yo y no he recibido spam.
<jordimas> cheli: por cierto, yo noy español, sino catalán. Que te quede claro
<cheli> que eres tonto? ya lo sabia pero gracias por confirmarmelo
<jordimas> Creo que puedo elegir mi nacionalidad. Nada más
<nick01> tu eres tonto, chaval!!!
<jordimas> :)
<nick01> me das asco… paso, me piro..
Signoff: nick01 ()
mik01 (n=mig@215.Red-80-26-11.staticIP.rima-tde.net) has joined channel #openbravo-es
mik01 has left channel #openbravo-es

Yo me excedí en la contestación y pido perdón por ello, pero es que me puse muy nervioso, ya me veía venir una guerra sin sentido y sin venir a cuento. No sabía a que venía eso de si es catalán o español porque sinceramente no me interesa lo que quiera ser. Lo que más me entristece es que de todo lo que le decía él sólo se quedó con que le llamé español.

A mi me la trufa si quiere considerarse español, si tiene derecho a elegir su nacionalidad o lo que quiera, ahí no voy a entrar. A mi lo único que me importaba y me sigue importando es su función como responsable de comunidad de OB pero parece que eso es irrelevante.

Una nota curiosa fué lo del danzarín del nick01/mick01, creía que quería preguntarme algo y accedí a ello pero ya veo que ese no era su propósito.

Cheli

El encargado de comunidad de openbravo

Openbravo, Software Libre 1 Comment

Me tiene un tanto decepcionado Jordi Mas, no es que tenga nada contra él entre otras cosas porque no le conozco pero si tengo muchas cosas en contra de su actitud como responsable de comunidad.

Jordi es español y aunque siempre le verás en el canal de irc de openbravo en inglés nunca le he visto en el correspondiente en castellano. Por lo visto también pasa más tiempo en el foro en inglés que en el de lengua castellana, e incluso le he llegado a ver comentar en el foro español pero en inglés. Para ser español y hablar castellano perfectamente poco apoyo tiene por la comunidad hispana de ob. Como el suele decir, es su decisión.

Después de la polémica que hubo unos días atrás con la licencia creative commons que le han puesto al wiki y el libro que sacó un impresentable tal negritx copiando muchas partes de la documentación del propio wiki, he preguntado en el foro si lo habían colgado en algún sitio ya que Jordi comentó que OB había comprado uno de estos libros. Pues  bueno, esto es lo que me contestó:

Hola,

Yo lo compré a título personal (no Openbravo como empresa) desde (una url que no voy a poner)

Sin embargo, yo no lo voy a colgar (es mi decisión personal). Sin embargo, tal como se ha explicado, la licencia da derecho a quien quiera hacerlo.

Atentamente,

Jordi,

¿Qué tiene que ganar Jordi con esto? ¿esta es su forma de crear comunidad?

Yo sinceramente no le entiendo pero bueno, este es el tio que tenemos de encargado de comunidad. Me imagino que la comunidad anglosajona a la que le dedica muchísimo más tiempo no opina lo mismo.

Cheli

Importación masiva de datos en Openbravo

Openbravo 2 Comments

He escrito un documento en el que explico como utilizar las herramientas de importación de datos masiva de OB. Si teneis alguna sugerencia por favor comentármela.

Cheli

No me cargan las imágenes en Openbravo ¿qué hago? segunda parte

Openbravo, Software Libre No Comments

    Ya comenté en un apunte anterior cómo solucionar este problema, lo que no comenté es como hacerlo sin tener que recompilar. Por ejemplo si hemos montado un servidor en producción donde sólo hemos hecho el despliegue del war que nos ha dado como resultado de nuestro desarrollo.

En este caso lo único que tenemos que hacer es editar el archivo WEB-INF/web.xml dentro de nuestro contexto de tomcat que es el archivo donde se hacen los mapeos de urls y modificar esta parte:

<context-param>
<param-name>ReplaceWith</param-name>
<param-value>http://ip:puerto/contexto/web</param-value>
</context-param>

Eso es todo.

Cheli

¿No puedes autentificarte en Openbravo después del primer intento?

Openbravo 2 Comments

En mi empresa he decidido ir aplicando los parches para algunos bugs de la versión actual y que se están corrigiendo en el subvesrion para la siguiente versión 2.40. El problema es que esta nueva versión no saldrá hasta junio y por tanto nos quedan unos 3 o 4 meses sin solución a esos bugs.

Lo que estoy haciendo es sacar los parches del subvesion y luego aplicarlos sobre la 2.35mp1 que tengo instalada para posteriormente probar que realmente funcionan.

El primero era un bug que se lleva arrastrando desde hace muchísimo y que aunque es un poco chorra nos puede llegar a fastidiar bastante. El tema es que cuando fallabas a la hora de autentificarte ya no podías volver a intentarlo hasta que no recargabas la página desde el propio navegador.

Este es el parche y lo podeis aplicar copiando el archivo al directorio  AppsOpenbravo de los fuentes y luego ejecutando esta orden:

patch -p0 < login.diff

Ahora recompilas OB con:

ant compile.development -Dtr=no -Dtab=xxx

y listo.

Cheli

Imagenes en Jasper Reports de Openbravo

Openbravo, Software Libre No Comments

Empezaremos por algo fácil. Mucha gente que empieza con OB pide cambiar el informe de factura para que aparezca el logotipo de la empresa. OB utiliza Jasper Reports como sistema de informes, el cual tiene un editor de informes bastante chulo llamado iReport.

Una vez tenemos instalado iReport correctamente lo único que tenemos que hacer es insertar una nueva imágen y darle como fuente el sitio donde la vamos a colgar. Yo las cuelgo en url/web/images/ , por lo que me aprovecho de una parámetro de Jasper que viene ya en los formularios de OB que se llama BASE_WEB. Al final en propiedades de la imágen->imagen->expresión de imagen me queda esto:

$P{BASE_WEB} + “/images/logo.jpg”

Ahora en los fuentes de OB tienes que dejar el archivo logo.jpg justamente en esa ruta fuentes/web/images y luego compilar como de costumbre:

ant compile.development -Dtr=no -Dtab=xxx

Si todo ha ido bien ya tienes tu imágen en su sitio y funcionando.

Cheli

Informe en openbravo con jasper da error de conexión a X Window System

Openbravo No Comments

Concretamente si os da este error:

Caused by: java.lang.InternalError: Can’t connect to X11 window server using ‘:0.0′ as the value of the DISPLAY variable.

El motivo es porque ciertas bibliotecas de jasper utilizan AWT y piden acceder al display , la solución pasa por decirle a java que utilice el modo Headless. Para eso por ejemplo podrias meterle en el CATALINA_OPTS el parámetro -Djava.awt.headless=true de forma que quede así:

CATALINA_OPTS=”-Djava.awt.headless=true”

Reiniciais tomcat y listo.

Cheli

« Previous Entries