Hablando de escritorios

Escuchando un episodio de el podcast de Linux Hispano, en un momento del programa se ponen a hablar de la nueva versión de KDE y como no podía ser de otra manera se ponen a comparar KDE con GNOME. Lo que más me chocó es que siendo todos informáticos sólo compararan las características a nivel de usuario y no entraran en detalles técnicos.

Yo siempres he dicho que me gusta KDE porque tecnológicamente hablando le da mil vueltas a cualquier otro escritorio. No entro en que si uno es mejor que otro porque al final esto como todos sabemos es cuestión de gustos, pero lo que no es cuestión de gustos es la tecnología que subyace y que si se puede valorar.

Cuando KDE llevaba años utilizando DCOP como tecnología para comunicar sus aplicaciones GNOME utilizaba orbit, su implementación de corba de comunicación de componentes. KDE tenía sus kioslaves o sus kparts que dejaban un escritorio realmente integrado y útil. ¿Habeis probado por ejemplo abrir konqueror, conectarte a un servidor remoto a través de ssh utilizando fish, pinchar un archivo de texo que te lo abra con kate y cuando lo vas a guardar simplemente tienes que darle a guardar desde kate que el kioslave que hay por debajo ya se encargará de utilizar el protocolo fish mandar ese archivo al servidor y guardarlo? todo de forma transparente. La opción típica sería utilizar scp para descargarte el archivo, editarlo en local, guardarlo en loca, volver a subirlo con scp.

Luego GNOME empezó a utilizar dbus que no es más que un fork de DCOP evolucionándolo y mejorándolo, por eso se tomó la decisión de utilizarlo en KDE 4.

Ahora sale KDE con tecnologías como strigi, phonon, plasma, nepomuk, etc, etc. Y a lo que se dedican los tertulianos de el podcast de Linux Hispano es a hablar que si KDE sigue teniendo mil y una pijadas y GNOME es más sencillo. Yo flipo.

Cheli

Imagenes en Jasper Reports de Openbravo

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 informes 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

Eticket no envía correos-e ni al cliente ni al agente

Tuve un pequeño problema al poner el sistema de incidencias eticket en producción en el servidor que me propocionaba mi psi (proveedor de servicios de internet). Resulta que no le llegaba el mensaje de confirmación al cliente que había lanzado una incidencia para que pudiera hacer el seguimiento y tampoco me llegaba a mi el correo-e como agente a resolverla.

Consultando la configuración de php y respaldandolo con una consulta a mi psi veo que la función mail de php que se utiliza funciona sin problemas. Al conseguir acceder a los registros (logs) del servidor compruebo que da una advertencia ya que en el php.ini se indica que php está configuado en modo seguro. Compruebo como puede afectar esto a la función mail y veo que el cuarto parámetro que se le pasa a la funcón es un parámetro que se le pasará directamente al ejecutable del servidor de correo-e pero que al estar en modo seguro el php, esto no se permite.

¿Solución? elimintar el cuarto parámetro de la función mail en todos los archivos y línea donde el registro de apache nos ha dado una advertencia.

Espero que os sirva, Cheli.

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

Esto tiene una explicación, OB en la instalación te pide la ip/dominio del servidor donde lo estás montando y en base a este va a montar las url para un montón de cosas por ejemplo para las rutas de las imágenes. El problema viene cuando no hay una coherencia entre lo que pusiste en la instalación y el contexto de la red ip o dominio donde te encuentras y me explico. Si tu pones una ip privada típica de clase C y estás en esa misma red funcionará pero si por ejemplo pusiste localhost que es el valor por defecto OB montará las url en base a localhost (localhost/loquesea/imagen.jpg) si atacas al servidor desde esa misma máquina no hay problema porque se resolverá bien pero cuando lo ataques desde otra máquina esas urls montadas en base a localhost fallarán. Si pusiste una ip privada pero atacas por dominio desde una red pública, pongamos internet esas url se montarán a partir de la red privada (192.168.2.132/loquesea/imagen.jpg) que en contexto de una red pública como internet no tiene sentido y por tanto también fallará.

¿Cuál es la solución?, lo bueno sería atacar siempre por dominio y para resolver ese dominio a la ip privada de tu red tener un servidor dns interno en tu lan que resuleva el dominio a la ip interna. Los dns de tu psi (isp) en redes wan (internet) resolverán ese dominio a la ip de tu servidor con lo que funcionará en todos los escenarios y habremos resuelto el problema.

Si en la instalación pusimos una ip o un dominio y nos damos cuenta que no nos sirve en nuestro contexto y queremos cambiarlo tenemos una solución que a mi me funciona en la 2.34 pero que en la 2.35 después del cambio que han hecho en las tareas ant y demás cosas no me funciona. No me he puesto a depurarlo así que no se todavía porqué, ya lo comentaré cuando sepa algo.

Lo que hay que hacer es editar el archivo Build.xml del raiz de la instalación que en mi caso cae en /opt/OpenbravoERP/AppsOpenbravo y modificar estas dos lineas:

<property name=»web.url» value=»http://ip:puerto/openbravo/web»/ >

 

<property name=»context.url» value=»http://ip:puerto/openbravo»/>

y donde pone ip:puerto (o el dominio si pusisteis dominio) substituirlo por otra ip:puerto o otro dominio. Luego hay que recompilar la aplicación de forma que al terminar haga el despliegue en el webapps de tomcat. Lo normal es o por lo menos era hasta entonces utilizar esta tarea ant:

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

con lo que compilamos diciendole que no compile las traducciones y que compile todas las ventanas ya que si ponemos cualquier cosa en -Dtab que no concuerde con el nombre de ninguna ventana compilará todas.

Con esto ya hemos modificado la ip o domini con la que montará las urls y podremos solucionar parcialmente el problema en un contexto concreto.

Cheli

Sistema eticket en español

En mi empresa nos hacía falta un sistema para gestionar las incidencias a través de internet, finalmente nos hemos decidido a utilizar eticket pero no encontraba ninguna traducción así que como no era mucho trabajo nos decidimos a traducirlo. Esta semana me he dado cuenta que en sourceforge existía una traducción aunque a mi personalmente no me gusta mucho.

Esta es la nuestra.

Cheli

Openbravo Customization & Basic Development Training

Esta fué la segunda semana que estuve en Barcelona para el siguiente curso de Openbravo. Fué la mejor semana de las tres sin lugar a dudas pero no adelantemos acontecimientos.

Repetiamos prácticamente todos y si la primera semana hubo buen rollo, esta fué la monda. Nos cambiaron el profesor ya que empezamos con el tema de desarrolo que trataré en otros apuntes en más profuncidad. El profe en esta ocasión era Jon Alegría, un chaval majo pero un tanto separatista, vamos que no hablaba ni quedaba mucho con nosotros.
En cuanto a contenido debo decir que fué la menos interesante ya que si venías a la tercera donde se daba desarrollo avanzado se repetían muchas cosas. Lo más importante era el tema de informes (jasper reports) que es uno de los temas clave en toda aplicación empresarial, por lo demás prácticamente todo lo que vimos esta semana se volvió a dar a la siguiente pero en más profundidad.

En lo personal fué la mejor porque ya nos conociamos mucho todos, eramos los mismos a excepción de un par de personas que cambiaron en la empresa microgénesis (de los 5 que venían) y un chico que venía de una farmacéutica que se llamaba Chema. Bueno a Chema sólo lo veiamos en clase porque luego se iba a estudiar, trabajar o yo que se.

Todos los días quedabamos para hacer algo después de las clases. El dominicano, Juan,  acordó parar media hora menos para comer y así salir antes, todos estuvimos de acuerdo y así lo hicimos. Esta semana intimamos un poquito más con los microgénesis pero la verdad es que seguían yendo mucho a su bola. Con los brasileños si que hicimos buenas migas durante este tiempo, sobretodo con Sergio Fraga (que crack es el tío). Me lo pasé de pm.

El jueves como despedida fuimos a cenar a un sitio donde nos llevó Roberto, el venezolano y la verdad es que salió un poquito caro (Roberto tío que somos de pueblo joer), luego fuimos a tomar algo y unos cuantos terminamos en el Maremagnum.

Me dió pena irme ese viernes, me hubiera quedado el fin de semana. El chasco llegó al luens siguiente en el tercer y último curso, ahí todo cambió.

Cheli

Nuevo ciclo de desarrollo en OpenBravo, 6 meses por version estable.

¿No os suena de algo eso de los 6 meses?, empezó a hacerlo gnome, también ubuntu y luego se han unido otras a esta moda de tener ciclos de desarrollo de 6 meses. Es una gran noticia ya que, todo hay que decirlo, la liberación de versiones de OB es bastante caótica.

Otra cosa que según mi parecer deberían cambiar es la numeración que tienen por versión. Las versiones de OB se numeran con un numero mayor seguido de dos más donde el primero de esos dos también indica una versión mayor y el segundo la revisión. Como en principio no se sabe cuantas revisiones va a haber hasta la estabilización de la versión hay que ver las notas de la versión (release notes) para saber si es una alfa, beta o estable.

Por ejemplo la supuesta ultima estable es la 2.22 (supuesta porque llamarla estable es demasiado pretencioso) que pertenece a la versión mayor 2.2x revisión 2 y en esta revisión se marco como estable. La siguiente versión mayor donde hubo un montón de cambios, sobretodo en la interfaz y el sistema de gestión de errores es la 2.3x cuya revisión actual es la 2.35 que si no recuerdo mal la siguen etiquetando como beta.

Total que esto es un follón, preferiría una numeración típica en la que los impares son versiones de desarrollo y cuando ya estabilizas numeras con pares ¿no os parece?. Habrá que volver a proponerlo, esta vez a alguien con mas peso en estas cosas como al jefe de proyecto.

Cheli

La novedad más importante de OpenBravo 2.35: DdlUtils

Aunque parece que no está anunciado en ningún sitio, OB 2.35 trae una mejora en la 2.35 muy importante. A partir de ahora se utiliza la herramienta ddlUtils para importar y exportar tanto la definición de la base de datos como el contenido a archivos xml. Esto nos va a permitir independizarnos del sistema de gestión de bases de datos que utilicemos ya que será capaz de por ejemplo crear la definicición de procedimientos almacenados, triggers, etc para la base de datos que utilicemos simplemente pasándole el archivo xml correspondiente.

Una ventaja inmediata para los desarrolladores de OB es que van a llevar un seguimiento de versiones en el nuevo subversion de estos archivos xml y ya no van a tener que utilizar los dump en binarios que hacían hasta ahora tanto de oracle como de postgresql.

Por cierto, ahora se utiliza como sistema de control de versiones principal este subversion (ya era hora), y como ide «oficial» eclipse.

Cheli

Liberado Openbravo 2.35

Con un poco de retraso se ha liberado OB 2.35, se suponía que debería haber salido antes de noviembre pero se ha hecho de rogar. Primero se propuso un prelanzamiento para algunos asociados y así testearla previamente, esto era la primera vez que se hacía y nosotros fuimos rechazados porque hubo una avalancha de peticiones y ya tenían demasiados.

Ahora por fin esta la versión pública, esta es una versión de estabilización donde se corrigen 196 bugs. En principio iba a ser apta para producción pero creo que la han etiquetado como una nueva beta. Habrá que probarla sobretodo porque cada vez se solucionan más problemas con postgresql que normalmente tiene más inconvenientes que oracle al estar menos testeada.

Cheli

Empezando con Openbravo

Una de las pocas cosas que pude llegar a ver en el intervalo de tiempo entre que me puse con OB en el curro y he ido a los cursos es como configurar una entidad.

Los pasos a seguir al terminar la instalación de OB y antes de ponerse a parametrizar nada son los siguientes:

1:- Al entrar por primera vez en openbravo debes hacerlo con usuario Openbravo y contraseña openbravo. Una vez dentro cambia su rol a systemadministrator y utilizalo como tal para tareas de administración. Es muy recomendable que en este punto cambies su contraseña.

2:- Debes crear una Entidad que representará a tu empresa y una o varias organizaciones dentro de dicha entidad dependiendo de los departamentos, sedes, etc que tenga. Lo que debe quedarte claro respecto a las entidades es que dos entidades no comparten información pero dos organizaciones dentro de una entidad, aunque manejan sus propios datos si pueden compartir información.

3:- Al crear una entidad y una organización asociada ya te genera un usuario administrador y un usuario raso para esa entidad con sus respectivos roles.

4:- Una vez tengas tu entidad sales y te logueas de nuevo con el usuario administrador de esa entidad y ya creas, borras o modificas los usuarios y roles que te apetezca para la entidad.

Vamos por lo menos es lo que yo entiendo que debería ser el comportamiento correcto a la hora de administrar usuarios y roles.

Cheli