Conferencias de la Akademy-es 2012 y Qt5

Ahora que se acaba de lanzar Qt5 es un buen momento para recodar la Akademy-es 2012. Tenía colgadas algunas de las conferencias desde hacía tiempo y esta semana por fin me las he visto. Os recomiendo especialmente las de Alex Fiestas, el tío se explica muy bien, y claro está las centradas en Qt5.

 

Programa

 

Cheli

¿Cuándo preguntar a la comunidad?

Hace poco me llegó un comentario de un miembro del equipo funcional de un proyecto en el que estoy participando, me dijo que un cliente estaba molesto porque había visto preguntas mias en el foro de la aplicación que le habíamos puesto. Me dijo que el problema es que el cliente no entiende como funciona una comunidad de software libre y que por tanto hacer preguntas en un foro puede dar mala imágen.

 

Si soy sincero el comentario me molestó un poco porque da a entender que no soy profesional en mi trabajo y que si lo fuera no necesitaría preguntar en los foros. La realidad es que la gran mayoría de las preguntas que se hacen en los foros de las aplicaciones empresariales basadas en software libre que montamos son de empresas implantadoras. Y es lo normal, nadie puede saberlo todo, además que las aplicaciones de gestión empresarial tipo ERP son un mundo y nunca puedes saber todos los entresijos de todos los módulos que existen y todas las funcionalidades que pueden llegar a ofrecer.

 

En mi caso sigo las recomendaciones que aprendí desde que empecé a participar en comunidades de software libre. Primero investigo el problema, por un lado me gusta analizar el problema, ver donde falla la aplicación y buscar una posible solución. Segundo porque si hay documentación hay que leerla, que para eso está, y si no la hay qué mejor documentación que el propio código. Si me quedo atascado o si el problema viene por una parte del software que no me atañe entonces es cuando pregunto. A veces también pregunto por temas funcionales ya que en principio no es mi parte, yo soy informático, no administrativo, ni contable, ni agente de banca, etc, y a veces no tengo los conocimientos suficientes para algunos casos de uso.

Otra cosa que hay que tener en cuenta es que la comunidad no tiene ninguna obligación de contestarte. Si alguien lo hace has de estar agradecido porque lo habrá hecho porque le apetece, porque le gusta ayudar o por cualquier otro motivo pero en ningún caso porque esté obligado a hacerlo. Así que si alguien te ayuda da las gracias.

Por último decir que igual que tú puedes ir buscando ayuda, otros seguramente van a necesitar la tuya. Si tienes los conocimientos para poder resolver un problema a alguien la mejor forma de devolver el favor es ayudándole. En eso consiste una comunidad, en ayudarse los unos a los otros y así ganar todos.

 

Cheli

Replicación MySQL

Vi este curso en Barrapunto y lo he seguido desde youtube. Me ha parecido interesante, muy bien explicado, con un ritmo muy bueno que hace que el taller se haga ameno. Si estás interesados en este tema os lo recomiendo.

 

 

Cheli

Finalmente Openbravo se queda sin forja

Hace unos días hablaba sobre la posible pérdida por parte de Openbravo de su forja, pues hoy he entrado y finalmente la han perdido. Actualmente aparece un mensaje indicándonos que efectivamente está caida y que están intentando migrarla o un sistema nuevo, también nos comentan que esperan tenerla funcionando en noviembre.

 

Y yo me pregunto ¿en noviembre?, saben desde septiembre que iban a perder la forja por contratar un servicio externo, no conozco los detalles del contrato pero visto lo visto debe ser un servicio tipo SAAS en el que pagas por el servicio pero en el que ni el software ni la infraestructura nunca son tuyos, no tienes ningún control sobre el sistema. Como ya comenté en la anterior entrada, choca ver que una compañía como Openbravo que vende software privativo disfrazado de un core libre haga lo contrario a lo que pretende que hagan sus clientes. Ellos venden Openbravo como un producto libre aunque no lo sea, y ponen como ventajas las que todos sabemos y entre ellas se encuentra la independencia del proveedor, pero cuando ellos van a contratar un servicio entonces contratan un SAAS privativo. Esto me recuerda cuando vendían la versión profesional únicamente sobre Oracle alegando que era mucho más madura y fiable que Postgresql, por entonces yo decía, eso es como decir que compren mejor Navision porque es mucho más madura y fiable que Openbravo, totalmente absurdo.

Aún así, ¿no son capaces de restaurar su forja sea con el sistema que sea y necesitan almenos dos meses?, como ellos mismos dijeron, en septiembre ya sabían que iban a tener este problema y ahora dicen que esperan tenerla de nuevo funcionando durante el mes de noviembre, me parece demasiado tiempo. Estan danto muy mala imágen por la pésima gestión de la situación, el tiempo de respuesta tan alto y principalmetne porque sin forja quitan a sus socios y desarrolladores la herramienta para desarrollar y gestionar sus módulos.

 

Así es Openbravo, un mar de contradicciones, mientras tanto publican conferencias de sus gurús como algo digno de ver cuando son estos los que al fin y al cabo toman este tipo de decisiones. Todo muy al estilo de los políticos, economistas y banqueros actuales.

 

Cheli

OpenERP, módulo «Purchase Quotation from Sales Quotation»

Antes de explicar qué hace este módulo y porqué lo hemos necesitado os tengo que explicar el problema que intenta resolver y concretamente el problema que nosotros teníamos.

Mi último proyecto es una empresa subsidiaria de otra y realmente lo que hace es vender en Europa el producto. Por tanto necesitaba que cada vez que se realizara un pedido de venta se generara un pedido de compra a la empresa raiz. Esto en OpenERP es sencillo, simplemente debes parametrizar el producto de forma correcta y si además utilizas el módulo mrp_jit entonces ese pedido de compras se genera automáticamente. Entonces ¿cuál es el problema?, pues que en realidad lo que hace OpenERP es generar necesidades de material por producto, según la parametrización le podemos indicar que el modo de abastecimiento es compra y por tanto genera el pedido, pero lo que hará es generar un pedido por cada necesidad de material y consecuentemente si nuestro pedido tenía 20 lineas con 20 productos diferentes entonces generará 20 necesidades de material y sus 20 pedidos diferentes, uno por cada producto.  Esto es un problema importante, ya que luego hay que  fusionar los pedidos y es un follón.

 

Me puse a buscar módulos que solucionaran el problema, que fueran capaces de generar un único pedido de compra por cada pedido de venta, pero todos añadían funcionalidad como diferentes esquemas de abastecimiento pero siempre basándose en la idea que se debe generar necesidades de material y estas a su vez dispararán la generación de pedidos de compra, por lo que no solucionábamos el problema. Entonces encontré un módulo que hacía justo lo que necesitaba, el módulo en cuestión se llama «pq_from_so» aunque en la descripción aparece como «Purchase Quotation from Sales Quotation«. Este módulo añade un botón en el presupuesto de venta para que puedas generar un presupuesto de compra con las mismas lineas.

 

Cuando creía que lo tenía todo solucionado apareció un problema, este módulo no tiene en cuenta los impuestos de los productos para generar las lineas de pedido de compra. Esto no sería un problema en sí si no fuera porque esos impuestos luego se arrastran a la factura. Otro problema es que necesitábamos que tuviera en cuenta los impuestos según la posición fiscal del proveedor, así que me puse manos a la obra y generé el parche para corregirlo.

 

Aquí os dejo el parche.

 

diff

 

Para aplicarlo previamente deberéis tener instalado el módulo. La forma de aplicarlo es tan sencilla como copiarlo al directorio donde habéis instalado el módulo, típicamente el directorio addons, y ejecutar

 

patch -p0 < pq_from_so.diff

 

en dicho directorio.

 

Actualización 29-08-2012:

Se ha corregido un problema cuando no hay producto en la línea o el producto no tiene proveedor. Cuando esto suceda ya no se producirá el error pero la línea tampoco se añadirá al pedido de compra.

 

Cheli

 

Por qué deberíamos utilizar Software Libre

Y nada mejor que leer un artículo de un defensor del software privativo para entenderlo.

 

De forma reiterativa, en los ambientes de informática se escuchan discusiones entre los talibanes del Software Libre y el resto de la industria de desarrollo.

Oímos los alegatos de Stallman y sus seguidores más radicales, en donde enarbolan espadas dialécticas para fulminar a los pecadores que no sigan sus enseñanzas, y en especial contra los demonios del Software Propietario. Lo cual no significa que no haya también fanboy’s de marcas como Apple, Microsoft u Oracle. Y que utilicen argumentaciones tristemente similares.

Es más, muchas veces este debate se convierte en algo vacuo y sin posibilidades de llegar a ningún buen puerto, ya que no está basado en el respeto al diferente, si no en el menosprecio del enemigo.

Pero hoy quiero compartir mi opinión desde el punto de vista de un desarrollador de aplicaciones de software.

 

¿Qué es Free Software?


Básicamente es la pataleta de Stallman, por allí por los años 80, cuando se encontró que no le permitían modificar el código de una impresora para hacerla funcionar bien.

Obviamente cualquier desarrollador sabe que tenía varias soluciones: modificar el driver del SO o hacer una capa intermedia con la impresora que corrigiera los errores. O cualquier usuario final hubiera llamado al servicio técnico de la impresora, o la hubiera sustituido por una que funcionará.

Pero Stallman, llego a la conclusión que allí lo que ocurría era una falta de libertad. Viniendo de una extraordinaria experiencia en los inicios de la Sociedad de la Información, en donde el código fluía libremente, y demostrando que el ego de un programador es algo inconmensurable, consideró que el software era un derecho al nivel de la libertad de expresión.

Y así se forjó la definición de Free Software como aquel que cumple las siguientes cuatro libertades:

 

  1. La libertad de usar el programa, con cualquier propósito.
  2. La libertad de estudiar cómo funciona el programa y modificarlo,  adaptándolo a tus necesidades.
  3. La libertad de distribuir copias del programa.
  4. La libertad de mejorar el programa y hacer públicas esas mejoras a los demás.

 

Pero ¿cómo me gano la vida siendo programador de Software Libre? Pues no hay problema, porque puedes cobrar por las aplicaciones. Software Libre, no significa software gratis. Ni mucho menos.

Como muy bien se describe en Wikipedia:

El negocio detrás del software libre se caracteriza por la oferta de servicios adicionales al software como: la personalización y/o instalación del mismo, soporte técnico, donaciones, patrocinios o como un elemento de responsabilidad social corporativa.

 

Incongruencias del modelo

 

Aquí veo varios problemas que me hacen rechazar esta manera de entender el software.

El uso de la palabra libertad en este contexto me parece una banalización profunda de un concepto por el que generaciones han muerto y sacrificado. Es muy cuestionable utilizar algo tan serio como el significado de esta palabra, para argumentar un derecho que nunca ha existido.

Yo tengo el derecho de regalar lo que me dé la gana siempre que sea mío. Pero si el de al lado decide que lo suyo, aunque sea similar que lo mío, vale dinero y restringe el acceso a una compra ¿quién soy yo para arrogarme la potestad de juzgarlo y tacharlo de inmoral por ello?

Y ojo, no estamos hablando de necesidades fundamentales como el agua o el alimento, o un nivel por encima como la educación o la vivienda, o un nivel aún más por encima como el trabajo o la búsqueda de la felicidad. Estamos hablando de utilizar Word o LibreOffice. De IE o FireFox. De Linux u Apple.

Hablar de libertad es, en mi opinión, simplemente obsceno. Un término que solamente unos muy ricos habitantes del primer mundo podrían utilizar de esa forma. Pero, esta es una discusión semántica, de ideas y sensibilidades que no tiene sentido continuar en este artículo.

 

El programador es superfluo

 

Hay un dicho que dice “No hay nada más tonto incronguente que un obrero de derechas”. Esto lo podríamos cambiar y decir que no hay nada más incoherente que un programador que abrace Free Software.

El negocio detrás del software libre se caracteriza por la oferta de servicios adicionales al software.

Espera un momento. El trabajo de construcción, el trabajo intelectual, el difícil. En donde es crítico el equipo, el talento, el aprendizaje continuo, la búsqueda de la excelencia. El reto intelectual diario de construir soluciones mejores y por encima de la realidad… ese trabajo no es el que genera beneficio, sino todo lo demás.

¿Cómo siendo programador, puedo estar de acuerdo en que mi trabajo, el núcleo de todo este tinglado (incluso en el hardware), lo que nadie más que yo puedo hacer, será justamente lo que se trate como lo desechable?

Que yo DEBO cuidar de la libertad de todos los demás, menos la mía. La de poder hacer con mi código lo que me dé la gana y de obtener beneficio de el como mejor me convenga.

O, una trampa aún más retorcida, dejarme la piel para ser el mejor del equipo que hemos desarrollado una aplicación, con la esperanza en que una empresa me contrate, o aparezca un mecenas que me pague un sueldo. Pero, ¿y si soy del montón? ¿Y los que no somos brillantes y que somos los que más? ¿Y si la meritocracia desemboca en politiqueo, y no llega el mejor si no el que mejor se vende?

 

Otro camino, Open Source

 

Racionalizando las argumentaciones filosóficas de Stallman y el movimiento Free Software, yo tengo preferencia por el movimiento Open Source.

Es un movimiento mucho más pragmático que se basa en el concepto de que el acceso al código enriquece el conocimiento de la comunidad, pero con un par de matices que lo convierten en algo muy interesante sin eliminar el trabajo del desarrollador de la ecuación.

Para que una aplicación se considere de Código Abierto, debe poder ser modificada y redistribuida de forma gratuita y sin coste. Los desarrollos derivados del código deben mantener la licencia original.

Pero, aquí llegan los matices. Se debe mantener la integridad del código del autor. O sea puedo modificar el código por medio de actualizaciones o extensiones, para que no se pierda el material original.

Y, además la licencia de Open Source no puede limitar la licencia de otro software. Es decir, que mi aplicación de código Abierto no debe obligar a que el resto de aplicaciones lo sean.

A mi entender esto es un: vive, y deja vivir. Yo, como autor y pica código quiero compartir mi experiencia y conocimiento con la comunidad. Una comunidad que siempre ha sido extraordinariamente generosa con compartir el conocimiento. Pero reconozco que no soy quien para decirle a otro Autor cómo debe tratar su código.

¿No tiene mucho más sentido? De hecho, el paradigma del software libre, Linux, es actualmente mucho más Open Source que Free Software. Y es un modelo de tan sentido común, que las grandes corporaciones de desarrollo de software como Microsoft, o IBM o Sun (cuando era Sun), han abrazado y apoyado con firmeza, en la última década al menos.

 

Software Propietario

 

Desde el punto de vista empresarial, desde los inicios del software, la manera más eficiente para obtener rendimientos económicos de las aplicaciones que desarrollo es por medio del licenciamiento. Es decir, cobrarle al usuario por que adquirir mi software. Impidiendo que pueda acceder al código fuente, modificarlo, distribuirlo, copiarlo, y un largo etc.

Este es un paradigma empresarial que funciona muy bien. De hecho gracias a este paradigma nuestra sociedad y civilización está en plena revolución de la Información. Ya que el volumen de beneficios ha permitido a las grandes compañías invertir ingentes cantidades de dinero, de personas y de recursos en I+D+I.

Dentro del Software Propietario también hay que englobar al freeware, que son programas totalmente gratuitos y libres en su copia y distribución, al shareware que utiliza la técnica de pruebe y si le gusta cómprelo y a muchas otras formas de promoción y distribución que, demasiada gente piensa que nacieron con el Software Libre cuando no es así.

 Además, al conformarse como una actividad laboral, el abanico de programador que puede integrarse en una empresa dedicada al Software Propietario es muy amplio. No debes ser un crack, ni un talento del desarrollo, ni tener qué enseñar o tan siquiera, que el picar código sea tu forma de vida. Permite a personas normales que no sueñar en binario a vivir de su trabajo. Incluso aunque no sea lo que más le guste en la vida.

Y los grandes talentos, bueno fuera de nuestro país, pueden vivir más que dignamente. No solamente del reconocimiento de la comunidad, si no del sueldo que cualquier empresa inteligente le ofrece a un valor, y que obtiene de los beneficios del Software Propietario que construye.

 

Conclusiones

 

No estoy de acuerdo con la filosofía de Free Software porque sus argumentos, a mi parecer, nos convierten a los desarrolladores en la parte despreciable de la ecuación. Dándole todo el valor a los servicios añadidos, como si el software se hiciera solo. Además de arrogarse la prepotente capacidad de enjuiciar la moral de los demás y de entrar en una confrontación bipolar “o conmigo o contra mi”.

Estoy plenamente de acuerdo y practico la filosofía “Open Source”, al igual que muchas compañías desarrolladores de Software Propietario, y la inmensa mayoría de las consultoras de España. El realizar ofertas de manera continuada me lleva a poder afirmar que son raros los casos en que un desarrollo no implique la entrega del código fuente y la total libertad de su uso por parte del cliente.

También creo que el Software con Propietario ha demostrado que permite llegar más allá de lo que permite otros modelos de negocio. Siendo este tipo de aplicaciones el origen de nuestra actual Sociedad de la Información, salvo muchas y honrosas excepciones.

Pero sobre todo creo que se debe eliminar de los debates el menosprecio al contrario y partir de la base que cualquier software, sea cual sea su licencia, es una actividad extraordinariamente compleja que tiene un valor intrínseco que hay que respetar y elogiar.

 

Juan Quijano

 

La primera respuesta es realmente brillante.

 

Hace tiempo que no leía un artículo tan hipócrita y bajo moralmente, pero con señores como este en Genbeta ya entiendo muchas cosas, menuda diferencia entre Nación Red y algún otro blog de weblogs, para llorar.

Este señor ( le llamaré así por no ponerme a su nivel ) empieza con esta frase, que ya de por sí sería suficiente para dejar de leer eso que ha escrito:

«De forma reiterativa, en los ambientes de informática se escuchan discusiones entre los talibanes del Software Libre y el resto de la industria de desarrollo.»

¿ Perdón ? ¿ Por defender el software libre soy un talibán ? Y lo más chocante es lo que dice un poco más abajo:

«Es más, muchas veces este debate se convierte en algo vacuo y sin posibilidades de llegar a ningún buen puerto, ya que no está basado en el respeto al diferente, si no en el menosprecio del enemigo.»

Te doy toda la razón, porque empezar el escrito llamando talibanes a los que defienden el Software Libre es un claro ejemplo.

Otra perla:

«¿Qué es Free Software?
Básicamente es la pataleta de Stallman, por allí por los años 80, cuando se encontró que no le permitían modificar el código de una impresora para hacerla funcionar bien.»

Que prosa, que argumentos tan sólidos, me has convencido. Se resuelve todo en que es una pataleta, muy bien.

«Aquí veo varios problemas que me hacen rechazar esta manera de entender el software.

El uso de la palabra libertad en este contexto me parece una banalización profunda de un concepto por el que generaciones han muerto y sacrificado.»…

«Y ojo, no estamos hablando de necesidades fundamentales como el agua o el alimento, o un nivel por encima como la educación o la vivienda, o un nivel aún más por encima como el trabajo o la búsqueda de la felicidad. Estamos hablando de utilizar Word o LibreOffice. De IE o FireFox. De Linux u Apple.»

«Hablar de libertad es, en mi opinión, simplemente obsceno. Un término que solamente unos muy ricos habitantes del primer mundo podrían utilizar de esa forma. Pero, esta es una discusión semántica, de ideas y sensibilidades que no tiene sentido continuar en este artículo.»

Mira, te contaré un secreto. Vivimos en pleno siglo XXI, la informática e Internet en particular están cambiando el mundo. Ya que hablas de muertes, hablemos de muertes. ¿ Te suena lo de la primavera árabe ? Gracias a Internet y las nuevas tecnologías han sido posibles. Para conectar a Internet puedes usar un PC, un tablet, etc… Y estos utilizan software.

En nuestro país tenemos un fenómeno más cercano: el 15M. También posible gracias a Internet. Y te contaré más. Si Internet en vez de estar basada en protocolos abiertos y públicos fuese propiedad de tu amada Microsoft ( que ya intentó montar su red paralela y fue un fracaso por suerte ), Apple ( ¿ te imaginas que sólo te dejasen conectar con un iCacharro o que las páginas webs tuviesen que pasar por su filtro ? ) o cualquier otra corporación hoy en día no tendría tanto impacto o quizá ni existiría. Stallman y el movimiento del software libre también tratan todos estos aspectos éticos que afectan directamente a nuestro mundo y nuestros derechos en el mundo real, si para ti el tema se reduce entre usar Libreoffice o Office no has entendido nada ni aún comprendes en qué mundo vives. Para que te hagas una idea te recomiendo que te leas el magnífico blog de Nación Red, que es de esta casa además: http://www.nacionred.com/

Y verás que cosas como la SOPA, ACTA, la ley Sinde y otras tantas afectan directamente a nustros derechos y nuestra libertad.

«Otro camino, Open Source»

«Para que una aplicación se considere de Código Abierto, debe poder ser modificada y redistribuida de forma gratuita y sin coste. Los desarrollos derivados del código deben mantener la licencia original.

Pero, aquí llegan los matices. Se debe mantener la integridad del código del autor. O sea puedo modificar el código por medio de actualizaciones o extensiones, para que no se pierda el material original.

Y, además la licencia de Open Source no puede limitar la licencia de otro software. Es decir, que mi aplicación de código Abierto no debe obligar a que el resto de aplicaciones lo sean.

A mi entender esto es un: vive, y deja vivir. Yo, como autor y pica código quiero compartir mi experiencia y conocimiento con la comunidad. Una comunidad que siempre ha sido extraordinariamente generosa con compartir el conocimiento. Pero reconozco que no soy quien para decirle a otro Autor cómo debe tratar su código.

¿No tiene mucho más sentido? De hecho, el paradigma del software libre, Linux, es actualmente mucho más Open Source que Free Software. Y es un modelo de tan sentido común, que las grandes corporaciones de desarrollo de software como Microsoft, o IBM o Sun (cuando era Sun), han abrazado y apoyado con firmeza, en la última década al menos.»

Es que encima, con todos los respetos, no sabes de lo que hablas, infórmate por favor. Las diferencias entre el movimiento del software libre y del open source son éticas, en la práctica es lo mismo. Estás mezclando el tema de las licencias con copyleft con las que no tienen copyleft. Se deduce que defiendes licencias como la Apache o la BSD por encima de la GPL, porque estas al no ser copyleft permiten que terceros puedan coger código y hacer con él prácticamente lo que quieran, incluso cerrarlo y hacer una aplicación comercial. Eso es contradictorio con lo que dices de que el código original se debe mantener intacto, porque este tipo de licencias precisamente son las más permisivas. Y luego lo acabas rematando diciendo que Linux es más open source que free software, intuyo que también lo dices por la licencia. Pues siendo decirte que Linux usa la licencia GNU GPL v2. Has leído bien, usa una licencia con copyleft creada por la Free Software Foundation del «talibán» Stallman. En serio, antes de escribir tantas burradas infórmate. Y digo burradas porque se nota que no sabes del tema, no porque opines distinto.

«También creo que el Software con Propietario ha demostrado que permite llegar más allá de lo que permite otros modelos de negocio. Siendo este tipo de aplicaciones el origen de nuestra actual Sociedad de la Información, salvo muchas y honrosas excepciones.»

Más del 70% de servidores de Internet usan Linux. Compañías como Facebook y Google usan Linux y otras tecnologías libres para su infraestructura, navegadores como Chrome ( este basado en el código de Chromium, libre ) y Firefox han cambiado el desolador panorama web que nos dejó Internet Explorer. XMPP, el protocolo abierto de mensajería es lo que mueve Gtalk y Facebook chat. Internet mismo, que es la base de todo, es de naturaleza libre y abierta.

«O, una trampa aún más retorcida, dejarme la piel para ser el mejor del equipo que hemos desarrollado una aplicación, con la esperanza en que una empresa me contrate, o aparezca un mecenas que me pague un sueldo. Pero, ¿y si soy del montón? ¿Y los que no somos brillantes y que somos los que más? ¿Y si la meritocracia desemboca en politiqueo, y no llega el mejor si no el que mejor se vende?»

No seré cruel y no comentaré esto ni te compararé con el autor del artículo de meneame y lo que ha conseguido él y lo que has hecho y aportado tú, pero por favor, para la próxima vez aparte de informarte para saber al menos de lo que hablas, me bastaría con eso y con que no descalificases gratuitamente llamando talibanes a los que no piensan como tú.
ascari

 

Visto en Genbeta.

 

Cheli

Instalar el depurador de Postgresql en Debian / Ubuntu

Es una tarea que tenía pendiente desde hace tiempo, pero después de que mi amigo Pablo me comentara que lo había compilado en su Freidora Fedora y que funcionaba bastante bien me decidí a ponerlo.

 

Para poder depurar código en Postgresql hay que instalar una extensión en el servidor.  El problema es que esta extensión viene en forma de código fuente que hay que compilar, y para poder compilarlo necesitamos hacerlo contra el código de Postgresql, así que lo primero que hay que hacer es instalar el paquete postgresql-server-dev-8.4 (en mi caso 8.4 porque es la versión soportada por Openbravo 2.50).

 

Se suponía que con este paquete era suficiente ya que trae todos los archivos de cabecera necesario para compilar las extensiones de Postgresql, pero la verdad es que a mi no me funcionó, seguramente porque el código de la extensión espera encontrarse los fuentes de Postgresql en el formato que tiene cuando lo descargamos desde su página web. Lo que hice entonces fué descargame el código fuente desde la página de  Postgresql.

 

Primero tenemos que saber qué versión de Postgresql estamos ejecutando. Podemos verlo por ejemplo desde el gestor de paquetes.

dpkg -l | grep postgresql-8.4
ii  postgresql-8.4     8.4.9-0ubuntu0.11.04     object-relational SQL …

 

Ahora tenemos que descargar dicha versión.

 

wget http://ftp.postgresql.org/pub/source/v8.4.9/postgresql-8.4.9.tar.bz2

 

Descomprimimos y desempaquetamos.

 

tar xvfj postgresql-8.4.9.tar.bz2

 

Ahora tenemos que ejecutar el configure, pero para saber las opciones con las que se compiló nuestro servidor de postgres en ejecución podemos apoyarnos en la orden pg_config.

 

pg_config –configure | ./configure

 

Luego compilamos con make y ya tenemos el código de Postgresql preparado para compilar nuestra extensión.

 

Nota: No he indicado las librerias de desarrollo necesarias para compilar Postgres porque dependerá de vuestra instalación.

 

El siguiente paso es descargar el código de la extensión y copiarlo al directorio contrib. El problema es que la última versión disponible no compila correctamente pero si la última versión del cvs, así que utilizaremos esta última.

 

cd contrib

cvs -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/edb-debugger login
cvs -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/edb-debugger checkout server

 

Actualización: Ahora el proyecto está en un repositorio git.

http://git.postgresql.org/gitweb/?p=pldebugger.git;a=summary

 

Esto nos generará un directorio que se llama server, entramos en él y hacemos make.

 

cd server

make

 

Si todo ha ido bien ya tenemos la extensión compilada, ahora sólo nos queda hacer un make install como root.

 

Nos quedan dos cositas para que la extensión funcione, la primera es cargarla en el arranque de  Postgresql. Editamos el archivo postgresql.conf de nuestro servidor y añadimos la siguiente linea.

 

shared_preload_libraries = ‘/usr/lib/postgresql/plugins/plugin_debugger’

 

Nota: la ruta puede cambiar dependiendo de la instalación.

La segunda cosa que hay que hacer es abrir pgadmin y ejecutar el script sql que encontraremos en el archivo pldbgapi.sql del código de la extensión. Pero antes deberemos substituir cada aparición de $libdir por «/usr/lib/postgresql» para que funcione.

 

El depurador es un poco limitado pero nos permite hacer cosas chulas como la siguiente.

 

 

Ahora ya podéis depurar vuestro código.

 

Cheli

Ubuntu en todas partes

La idea es la siguiente, tienes un teléfono móvil de última generación que posee la potencia de varios núcleos, 1GB de RAM, y suficiente espacio en memoria microSD. ¿Por qué no utilizar esa potencia de cálculo para algo más que un teléfono?, ¿qué tal si llegas a casa, enchufas tu teléfono a la tele y se convierte en tu Media Center?, ¿y si lo enchufas a un monitor, teclado y ratón y pasa a ser tu escritorio?, con la ventaja de no tener que estar sincronizando datos de aquí para allá. Pues eso es Ubuntu para Android.

Cheli

Diferencias técnicas entre OpenERP y Openbravo 1

A primera vista hay dos grandes diferencias técnicas entre OpenERP y Openbravo, la primera es la arquitectura. Mientras openbravo está desarrollado en Java JEE y se ejecuta sobre Tomcat (es el recomendado por Openbravo) y por tanto su arquitectura se podría resumir en este gráfico.

 

Arquitectura Openbravo

 

OpenERP tiene una arquitectura en la que separa claramente las diferentes capas, por una lado tiene el servidor que maneja la lógica, al igual que Openbravo tiene la base de datos, y en un tercer nivel tenemos las diferentes vistas. En este caso se ha utilizado Python para desarrollar las diferentes capas.

 

Arquitectura OpenERP

 

 

Las desventaja que tiene Openbravo en cuanto a arquitectura es que su interfaz (vista) está centrada en el web. La única forma de conseguir una interfaz diferente a una básada en tecnología web es utilizandos servicios web, este es el caso por ejemplo del TPV (Terminal Punto de Venta), es la misma tecnología que podríamos utilizar para integrar cualquier otro sistema externo. En el caso de OpenERP el acceso al servidor está estandarizado, esto significa que podemos desarrollar el cliente que queramos pero todos accederán de forma estándar al servidor.

 

La segunda gran diferencia es el hecho de que Openbravo utilice mucho código en base de datos en forma de funciones (procedimentos almacenados pl /sql), triggers y restricciones. En el patrón MVC (Modelo Vista Controlador) de Openbravo se desplaza gran parte de la lógica (Controlador) a la capa de de acceso a datos (Modelo), esto genera varios problemas.

 

Postgresql Openbravo

Por una parte se dispersa la lógica entre el controlador (código java en el contenedor de servlets Tomcat) y el Modelo (código pl /sql, trigger y restricciones en la base de datos). Otro problema es que la independencia de base de datos queda casi descartada, además el matenimiento del código de base de datos se complica hasta tal punto que migrar de una versión del gestor de base de datos a la siguiente puede resultar un problema. Por ejemplo, Openbravo 2.50 no soporta oficialmente postgresql 9.1, que es la última versión.

Openbravo intenta solventar parcialmente este inconveniente con DBSorucesmanagement, que permite estandarizar de forma más o menos elegante el código en base de datos y exportarlo a xml. Hasta el momento soportan Postgresql y Oracle y aunque no es perfecto, no suelen haber muchos problemas graves, y los que hay suelen solucionarse sin excesivas complicaciones, eso si, hay que generar el código pensando en esta compatibilidad.

 

En OpenERP no existe código en base de datos, por lo que la independencia de base de datos es mucho más fácil de conseguir. Además en OpenERP actualizar de una versión de la base de datos a la siguiente es casi inmediato. Pero entonces ¿dónde está el código?, pues es sencilo, la lógica está toda en la capa de controlador.

 

Postgresql OpenERP

Ya iremos desgranando más diferencias en otros apuntes.

Nota:

Estoy ofreciendo unos mini cursos de desarrollo en OpenERP por 200€.

 

Cheli