Monday, December 13, 2010

The ASF Resigns From the JCP Executive Committee

I think this is very bad news for Java supporters and users. Making the JCP process open, and making possible for multiple open-source implementations of the JVM/ JDK was the best guarantee of future for Java users and developers.

I regret this very much and hope that this will not impact hardly the future of excellent stuff provided by the Apache Software foundation - tomcat, Java DB, Velocity, Pivot, Log4J etc etc

For ope-source, community driven development, this type of news give them reason to stay away from the Java world...

Wednesday, November 24, 2010

Novell acquired by Attachmate

It sounds like the end of the dinosaurs. Novell pioneered a lot of stuff, LAN, network operating system, directory, xns, routing stuff... and much more. They built the first PC based enterprise products in my opinion.

They however always operated in an closed mode spirit. Getting spec from them was impossible for years. They were talented for secret and exasperating administrative process.And shame on them for what they did to Suse.

Why is attachmate buying them? Unclear to me. One thing is sure... I will not regret them.

Monday, November 15, 2010

OpenERP - various things

In average, the webinars organized so far were not an advertising for webex. Very poor sounds and high delays made these presentation real pains. It seems a part were from local settings... And unfortunately none of these sessions were recorder !

The last one, was probably the best (Oliver speak more slowly) and used slides instead of showing the real app. The result was much more acceptable.

I had a look at OERPScenario from camp2camp. This is a testing framework in "natural language". I agree on the target and the general concept. The implementation (in Ruby) annoys me more than anything else. 

Natural language is in this case more regexp than anything else and require ... Ruby coding. If we augment the capacity of the system, we will have hundreds of sentence to know ... is that natural?

So, it remains that currently the framework provides very few objects and  I have troubles to imagine a real test-driven project with this framework.

I will come back later on accounting stuff. V6 is for me the first release that can pretend deliver proper accounting functions (at least out of the box). I recommend following

OpenERP has changed its bug fixing policy, basically they are focusing on the trunk and fixes in stable are done only when reported through a maintenance contract. This is in theory to avoid regression. I think they also push the selling of the maintenance contract (legitimate target). My fear is that getting the next stable will take much more time on the other sides it encourages people to test during the Beta tests. 

Friday, October 29, 2010


From time to time I hit the  "Could not acquire lock".

So if you believe there is no modification happening : bzr break-lock

bzrlib.errors.LockContention: Could not acquire lock "LockDir(file:///home/chanon/OPENERP/openerp-TRUNK/addons-extra/.bzr/branch/lock)":
chanon@bovvmubu:~/OPENERP/openerp-TRUNK$ bzr break-lock /home/chanon/OPENERP/openerp-TRUNK/addons-extra/.bzr/branch/lock
Break lock file:///home/chanon/OPENERP/openerp-TRUNK/addons-extra/.bzr/branch/lock
held by chanon@bob-ubu on host bob-ubu [process #19218]

At the root of the trouble, I am using a common partition between my real Ubuntu and another one on Vmare.

Btw good page on bzr :

Tuesday, October 19, 2010

It is there - OpenERP V6 RC1 - first beta release is out

The future of open-source enterprise solution is in preview at :

Friday, October 15, 2010

Webkit reporting engine

Nice video about the webkit reporting engine (integrated in the soon coming V6:

Wednesday, October 13, 2010

Joomla - sh404sef - Joomfish - images

########## Begin - Joomla! core SEF Section

RewriteRule ^(.*)/images/stories(.*)$ /images/stories/$2 [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php

Well may be the first RewriteRule in the .htaccess file will help somebody trying to get nice URL no ? or param=xx, Joomfish and images on all their articles. Provided you put all your images under /images/stories that should do the trick for today...

Wednesday, October 06, 2010

Joomla some problems with sh404sef and Joom!Fish

We are doing good progress with our new site. But I realized that the translation (I think language switching is more appropriate) does not work as expected. Typically the home page which is a category view does not translate...

I immediately suspected the combination of Joom!Fish and sh404sef as they both manipulate and interpret URL... Indeed to be compatible with another sef plugins you have to turn off the Joom!Fish plugins 'JFRouter'...

Everything is now back to normal.

Thursday, September 30, 2010

Joomla - sh404sef - .htaccess - on Ubuntu 10

I am preparing our new web site for ADINS. We are migrating to a more recent Joomla version, plan to use Docman (document manager), Community builders (registration framework), FlexiContent (Content construction, tags etc) JoomFish (mult-language) and Kunena Forum.

Yesterday we started working with an external consultant for improving our Google rating.

Having nice url with the subject keyword is a first things to do. Joomla in standard helps a bit but the required component remains sh404sef ( With this component you can twist and maps url easily. sh404sef has also an inclusion of Google analytics (not tested yet).

On Apache (see for info, proper URL relies on .htaccess. Joomla comes with a htaccess.txt file, renaming to .htacess should do the trick.
Publier le message

However I continued to get the 404 errors...

I checked, indeed sh404sef must be enabled with standard Joomla sef option.

I configured BaseRewrite to map my sub-directory with the being built web site.

I checked the presence of the mod_rewrite module (easy with webmin)...

Untill I found that the default site configured by the Ubuntu install does not let the distributed .htaccess file to be used.

The solution :

go to "/etc/apache2/sites-available".

- locate your site config file - in my case "default"
- change the AllowOverride None to AllowOverride All.
- restart Apache and you are done...

                Options FollowSymLinks
                AllowOverride All

                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

Tuesday, September 28, 2010

Accessing postgress Meta - info ANSI catalog

A short example : to get columns...


Wednesday, September 22, 2010

OpenERP V6 - webminars - registration information

 FYI some early information about V6 – please note attendance is limited:

Dear Partner,

OpenERP will soon release the new version V6.0!

Therefore, our CEO Fabien Pinckaers will do a series of five Webinars, starting from October.
These Webinars will last about 2 hours and will be public.

The agenda is as follows:

    October the 6th, 10.00-12.00
    Part I/5 : New ergonomy, CRM , Marketing Campaign

    October the 12th, 10.00-12.00
    Part 2/5 : Manufacturing and Logistics

    October the 20th, 10.00-12.00
    Part 3/5 : Accounting and Finance

    October the 27th, 10.00-12.00
    Part 4/5 : HR and Project Management

    November the 3rd, 10.00-12.00
    Part 5/5 : Technical Presentation

You are warmly invited to take part to these Webinars, which will give you the unique opportunity to have a deep insight of the new version of the software.

You can register online to the public sessions through or directly on Eventbrite:

    - Part I/5 (New ergonomy, CRM , Marketing Campaign): visit

    - Part 2/5 (Manufacturing and Logistics): visit

    - Part 3/5 (Accounting and Finance): visit

    - Part 4/5 (HR and Project Management): visit

    - Part 5/5 (Technical Presentation): visit

Friday, September 17, 2010

OpenERP V6 Call for contribution

If you can invest time and want to participate to the polishing of the new V6 read this:

Friday, September 10, 2010

WebKit - new OpenERP report engine

The current standard report engine is been under for many mis-performance. In march campTocamp committed to provide a solution, simple, elegant, performant,python driven...

Well, I think they did :

Thursday, September 02, 2010

Creating a Simple Database Client in JavaFX Composer

If you think that a database application is a 2 buttons 2 values 1 screen plate: this tutorial is for you...


- Text editor, spreadsheet - Even basic stuff
- Reports engine
- Client Server or Web with Plain Ajax
- Easy DB Access and GUI
- i18n really built-in not just a few labels translations...
- Application Framework - GUI / DB / Login / Permissions
- Application Module
- Integrated with IDE support
- Short and soft learning curve !

Wednesday, September 01, 2010

Great compilation of Java Swing stuff

If you are searching nice widgets, docking frameworks have a look at this page:

Friday, August 27, 2010


OpenXava ( is a model driven application framework.The idea is to build your application using JPA and enrich entities by extra-tags so openXava can generates screens.

The core idea is excellent because it throws away the MCV things and centers development around core business objects.

My first exposure is through their book on lulu - see

This book is clearly worth the requested 9$. My only regret, internationalization is not covered - but OpenXava does support at least label translation.

OpenXava itself looks promising however it relies on Java portal (e.g: Liferay) to provide an interface shell and security. Obviously the portal aspect can be seen  as a benefit, but it means also that you need a strong hardware platform to go ahead.

Security management through the portal is may be also a bit short, just granting access to screens will probably not enough for serious enterprise application.

The look and feel is also very rough although they support Ajax making a really appealing product from it will be a challenge.

Summary compare to OpenObject:

+ JPA / HIbernate
+ J2EE application without a hammer in your head
+ High potential in productivity
+ What you cannot do with it, you can do it using JSP...
= I18n features basic but present
= Portal (nice but imho heavy tech and a bit old-fashioned because portals were designed before Ajax)
- Rustic look & feel
- Elementary security through portal
- Internationalization does not take care of domain / fields translation (e.g: multiple names for a product)
- No reporting (need to use something else, no hint about integration put feasible)
- No deployment concepts as in OO

So if you forced to use Java, if you like using a strong ORM... it is worth looking at. But don't forget that the net result will be the deployment of the full Java stack which for small business remains a pain.

Thursday, August 19, 2010

A small but nice article about some MDA Java Framework

Well may be when I get tired of Open ERP...

How to reset a user's Joomla password

 Using the following sql script will reset the password of admin to '1234'

UPDATE `jos_users` SET `password` = MD5( '1234' ) WHERE `jos_users`.`username` = "admin"

Wednesday, August 11, 2010

Open ERP Training module - how to install

Thanks to Alain van de Werve to point me to the following stuff to install the Open ERP training module:



Addons Extra:

Addons Standard:
==> stable from OpenERP.

Dependencies - addons





==> Il faut le compiler avec le module python normallement comme suis: (attention le 'make install' le fonctionne pas correctement pour python 2.6, il faut copier le .so manuellement) ==> ./configure --without-gtk --without-qt --without-imagemagick --with-python

Elaphe (
==> easy_install elaphe

Friday, July 16, 2010

XML & Swing... pita

Well, going through this leads to a conlcusion : client / server with Swing & JEE is a bit like crossing the Death Vallyey wihout a bottle of water.

Dream is not reality

Well I tried to build a web service returning a JFrame... isn't that the cool thing about Java reflexion / serialization.....

SEVERE: Cannot initialize endpoint  : error is : Unable to create JAXBContext

Blah blah

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 21 counts of IllegalAnnotationExceptions
java.awt.LayoutManager is an interface, and JAXB can't handle interfaces.

Well the least I can say, making Swing and Server based Java is not always simple...

Thursday, July 15, 2010

My solution to the XmlID XmlIDREF and the object graph reconstruction

At the previous stage, I stopped with a situation where I could  get an entity (a patient) but nothing about a related entity (a doctor). The reason being that to break the serialization loop I used the XmldID and XmlIDREF annotations.

In the soap response I can see the doctor id (2). In Java the doctor field of the patient points to null (because as shown in the previous post, the doctor is not transfered).

By the way in Open ERP I would get not the doctor but at least the in id in the Python object. One more shame on Oracle/Sun stuff.

Anyway, I created another web service that does not return a single patient record but a compound of entities (a collection of patients and doctors) :

public class wsbr {
    private Collection patientCollection;
    private Collection doctorCollection;
    public Collection getPatientCollection() { return patientCollection ;};
    public void setPatientCollection(Collection p ) {  patientCollection = p;};

    public Collection getDoctorCollection() { return doctorCollection ;};
    public void setDoctorCollection(Collection p ) {  doctorCollection = p;};


Building a web service that returns such object and populating properly the two collection makes possible to transfer the entire graph which is rebuilt properly at the client side (automatically).

Here is the soap :

So my solution is to build a big compound referencing object that will ensure that all references will be carried properly.

Wednesday, July 14, 2010

JPA, JAXB ... not finished yet

I could indeed load one entity... but

Here is my result

Clearly the actor is not passed in the response and so my graph of object is not passed...

Here is the thing I overlooked...

"There are a few things to consider when you do this. First, the object to be referenced must have an ID that is unique within the whole document. You'd also need to ensure that the referenced objects are contained somewhere else (like in the Root class in this case), or else Bar objects will never be marshalled. This technique can be used to remove the cyclic references, but it's only possible when your object model has an easy cut point."


GlassFish - JPA & Jaxb

So I am preparing a major rewriting of our last Major App in Delphi. The client side will be in Java - we need at least one Java component for text manipulation. I will come back later on the client as I looked at a lot of nice stuff.

One the server side things are also difficult. My intention is to go to JPA as it is now the standard ORM and will give us portability between DB and probably also a much cleaner code.

The JPA classes were created automatically by Netbeans. Next I created a stateless session bean and finally a Soap Web service (Netbeans created that one from the session bean). It is a lot of artifact... A good thing again, I suppose done by Netbeans, your web service also generate a small web base tester for the service.

Unfortunately I hitted the first issue yesterday...

Caused by: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML: com.adins.testNISFusion.jpa.Patient[id=1] -> com.adins.testNISFusion.jpa.Actor[id=1] -> com.adins.testNISFusion.jpa.Patient[id=1]]
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
        at com.sun.xml.bind.v2.runtime.BridgeImpl.marshal(
        at com.sun.xml.bind.api.Bridge.marshal(
        ... 56 more

So the session bean works fine but the web service cannot serialize the answer properly because there is a loop in the references (which by the way is the most common things you get in a relational database and these references have been created by Netbeans/JPA).

The solutions are listed here ...

The first one is to make the referenced entity XmlTransient  so basically not referenced any more. It is difficult for me to see this as a solution. May be if your DB is made of non used entities...

The second is to use XMLID and XMLIDREF directive. So instead of serializing recursively JAXB will point to the ID of the other entity.

In my case - I think a common one. The entity being passed through the web service are in fact my JPA entities. So your JPA entitiy gets fields annotated with@ID and @XmlID.

Unfortunately combining JPA and JAXB   creates another issue.

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Class has two properties of the same name "id"


I foud a solution here :

Basically, you will put the JAXB annotation on the accessor not on the variable where you put the JPA ones.

So something like :


public class Patient implements Serializable {
    private static final long serialVersionUID = 1L;
    @Basic(optional = false)

    public String getId() {
        return id;

Conclusion at this time...
1) It works for now.
2) Netbeans is great and generates plenty of stuff that I will have to modify by hands... :-(
3) JPA stuff is very static but JAXB builds XML at runtime. So you get the worst combination : modification requires compiling and compiling does not shield you from syntax error...
4) I don't like that much annotation. The syntax is ugly. In the case of the transient 'solution', it is hard to imagine that you can solve all the real cases statically. Sometines you need the element, sometines not...
5) A stack is just a stack of boxes as drawn on the marketing docs. It seems little people spend time to make these boxes working really together.  
6) I have been trough a lot of readings, an entire stack of books... Building a web service to pass persistent entity is just basic and yet nobody mentions this issue...This is in my opinion the key drama of this industry. Book writers (as tools builder) rarely  build appications,...
7) It would be great to have a single option for JAXB to tell that we want to use ID and REF...Who knows...

Sunday, July 11, 2010

Welcome to the Online Joomla Community Magazine & What is typekit

A new place to look at for those interested in Joomla :

It is just started and already plenty of well presented resources about web-design and my still favorite CMS for small to medium business.

Yet a good thing I learn via the magazine - Typekit a solution to embed legally and precisely fonts and thus use great typography on your web site - this is not only for Joomla - find the idea behind it on the typekit web site : Not only it solves a need, it is also a great web based business model.

Saturday, July 10, 2010


What can be that script ?

/usr/share/doc/libdvdread4$ sudo ./

Thursday, July 08, 2010

Java RIA... getting impressed by... Apache Pivot

More than a year ago, I wrote a few articles on Apache Pivot. Well, my enthusiasm was very limited.

We are now in the process of re-writting a Delphi based application. Ideally using Java...

We could use simply Swing. But note, that the Swing application framework went back to life before to re-die again...

We checked OpenSwing. It is a good library, which adds a lot of good things on top of Swing. Useful but the look & feel... and a lot of code for just a little app.

To ease things, I looked at Netbeans as a platform. Overkill in many cases and it solved many problem we don't have and ignore those we have... Including we need a short learning curve and  among the big issue dynamic localization - language switching

Also I spent a bit of time reading about JavaFX. Nice little language, but I cannot find anything that looks like an enterprise feature. Again the old Sun syndrom, we found a nice idea, lets market it against inacessible competition and consider our installed based as supreme idiots... bringing them features they never asked.

So I checked again Pivot - now version 1.5 and I AM IMPRESSED.

Documentation is very much improved, so that makes the purpose very much understandable.  Plus you have a bunch of very good examples.

The graphical glitches are gone ! Performance looks pretty good.

Most of the things are there and well designed, Web services, binding, event handling, scripting in the UI definition (any JVM language...).

And yes, a good looking mechanism for static localization.

The design is clean and nice (not very fancy but it is good loooking). It is designed to be skinnable, so we can expect much more funny things sooner or later.

You can build GUI using a straightforward XML based language (the layout can then get transferred to the client and transformed into GUI -> yes in fact this what Open ERP Python APP does...) .

So it is a cool toolkit and it appears much more oriented towards enterprise apps than FX. So my new acronym Rich Enterprise Internet Application that fits for Pivot but no go for FX.

The unfortunate thing... it is not compatible with Swing (I can live with that) but I need a minimal kind of word processor for my app (that I have with Swing and EditorKit stuff). Too bad, nothing is perfect... But keep going Apache Pivot you are heading to the right direction. At least I am getting convinced!

Just a link so you can check (you need Java plugin to get the examples running):

Comments - policy change

I found plenty of comments written in Chineese on my blog. As of now you need to be member to post comment. Also comments are not displayed, so no interest in spamming...

Installing Java Plugin for Ubuntu on 64 bits install

By default Ubuntu will install the Open-JDK in principles it is fine but practically it seems not that well working. What about the Java plugin ... hm not so easy.

The Java plugins for 64 bits architectrue is not in the default repository...

1) So enable the alternate repositories... see the link to info on what to change in Synaptic

2) Then follow the isntruction for java in the following link

3) Close all Firefox Windows
Publier le message

4) good trick for the road... enter in the url text box: about:plugins

Java should now be listed...

Why that? Hm, I swapped the damned fan noisy Vaio CS/31 against an HP Elitebook 8540w. Dual boot + shared /gome using vmware under Windows 7 - I love it... And I am back to evaluation of Java GUI alternatives.

Saturday, July 03, 2010

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Good IT jokes are not that frequent. So in this starting holidays period, I can recommend you the following blog post from James Iry. I love it

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Wednesday, June 30, 2010

Solving python-xml dependency

  1. get   
  2. $ tar -zxvf PyXML-0.8.4.tar.gz $ cd PyXML-0.8.4/   
  3. $ sudo python install  

Thursday, June 03, 2010

Here are my changes in netsvc

class GenericXMLRPCRequestHandler(OpenERPDispatcher):
    def _dispatch(self, method, params):
            service_name = self.path.split("/")[-1]
            return self.dispatch(service_name, method, params)
        except OpenERPDispatcherException, e:
#            raise xmlrpclib.Fault(tools.exception_to_unicode(e.exception), e.traceback)
            if 'xmlrpclib' in self.headers.getheader('User-Agent'):
                raise xmlrpclib.Fault(tools.exception_to_unicode(e.exception), e.traceback)
                raise xmlrpclib.Fault(1,tools.exception_to_unicode(e.exception))

The result is that instead of getting a casting error, you get the correct exception like in : org.apache.xmlrpc.XmlRpcException: 'super' object has no attribute '__getattr__'

Which is what you see on the console... Well Open ERP messages are sometimes a bit cryptic in fact in this case the called method does not exist on the object...

Open ERP xmlrpc protocol is not respected

I am working on a small lib to ease Java applications integration with Open ERP.

It works but... in case of error there is no clean error handling and the Apache xmlrpc lib fires an exception. The problem being it cannot cast a String into an int.

Well it appears that Open ERP does not follow the xmlrpc protocol...

The 'worst' is there

which gives the following

=== modified file 'bin/'
--- bin/ 2009-08-28 16:50:27 +0000
+++ bin/ 2009-08-31 10:11:37 +0000
@@ -262,7 +262,10 @@
             service_name = self.path.split("/")[-1]
             return self.dispatch(service_name, method, params)
         except OpenERPDispatcherException, e:
-            raise xmlrpclib.Fault(tools.exception_to_unicode(e.exception), e.traceback)
+            if 'xmlrpclib' in self.headers.getheader('User-Agent'):
+                raise xmlrpclib.Fault(tools.exception_to_unicode(e.exception), e.traceback)
+            else:
+                raise xmlrpclib.Fault(1,tools.exception_to_unicode(e.exception))
 class SSLSocket(object):
     def __init__(self, socket):

So somebody provided a clean fix and nobody cares !

Tuesday, June 01, 2010

Open ERP Installing the trunk... previewing version 6

If you want to see a previewing of the next Open ERP you will need the following...

sudo easy_install formencode
sudo easy_install babel

It is the first time, I got the new look & feel...

Very elegant design. Although I think the colours should be more contrasted to ease readability. Ergonomy and elegance are two things...

The Axelor logo is gone, confirming that the web stuff has been entirely rewritten...

Obviously Ajax driven application have better network performance.

More and more to come (in spite I am very busy...)

Tuesday, May 18, 2010

Olivier Dony presentation at the "Jornadas OpenERP 2010"

Olivier Dony (OpenERP community manager and excellent trainer) posted the following...


Enjoy plenty of good stuff about the soon coming version 6.0 

Friday, April 23, 2010

OpenERP - running the Trunk - YAML dependency missing

So I got the  latest tunk from Bazaar

First run :

chanon@batman:~/openerp-TRUNK/openerp/server/bin$ ./
Traceback (most recent call last):
  File "./", line 54, in
    import netsvc
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/", line 273, in
    import tools
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/", line 26, in
    from convert import *
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/", line 40, in
    from yaml_import import convert_yaml_import
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/", line 10, in
    import yaml_tag
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/", line 1, in
    import yaml
ImportError: No module named yaml

Solution : (find the PyYAML package you need, run the sudo python install command).


[2010-04-23 13:10:34,751] INFO:objects:initialising distributed objects services
Traceback (most recent call last):
  File "./", line 91, in
    import report
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/", line 22, in
    import interface
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/", line 32, in
    import render
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/", line 23, in
    from rml import rml, rml2html, rml2txt, odt2odt , html2html, makohtml2html
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/", line 28, in
    import makohtml2html as makohtml
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/makohtml2html/", line 22, in
    from makohtml2html import parseNode
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/makohtml2html/", line 21, in
    import mako
ImportError: No module named mako

So one more Template engine for today, solution :
easy_install Mako

And that's it. More about 6.0 later...

Thursday, April 22, 2010

Changing the invoice layout in OpenERP

edit the invoice.sxw in ../addons/account/report

python ../../base_report_designer/wizard/tiny_sxw2rml/ invoice.sxw

if the result is something else than an error.. you can save the new invoice.rml.

Wednesday, April 14, 2010

James Gosling left java

As many people know, James Gosling, the father of Java left Oracle. It seems it last speaches describeb the Java Community Process as a Nightmare.

I worked in standardization comitte, years ago. Technical-politics are not fun. In fact it is a general issue with getting people from different horizon to work together for the common interrest.

One remark, JEE6 really rocks and is probably much more agile than many other things. The ability to hot deploy and keep session state in Glassfish is very impressive and largely superior to anything - including the OpenERP Python module load stuff (at least on the debug cycle/ reload cycle).

Monday, April 12, 2010

Open ERP Guidelines

Some guidelines about Open ERP contribution...

Friday, April 09, 2010

VirtualBox / Ubuntu 9.10 getting resolution higher than 800x600

In order to evaluate one more extension for OpenERP (medical), we moved to virtualBox and Ubuntu 9.10.

Windows (7 but also XP) complains about the driver signature but we ignored it and this just worked. However the screen remains stretched at 800x600 resolution. Moving to full screen changed nothing.

Similar experience with Vmware got me to the install of the addons inside the new virtual host. But nothing changed inspite of a few reboots...

So the rest is based on various post on the web and a bit of tweaking on my side...

1) There is a VirtualBox command line :

C:\Program Files\Sun\VirtualBox>VBoxManage.exe setextradata global GUI/MaxGuestResolution 1600,1200

No change at this stage.

2) Searching on the web... I found a comment suggesting to add a display in the /etc/X11/xorg.conf:

SubSection "Display"
            Depth        24
            Modes        "1024x768"

3) But I could not find any xorg.conf !
I and X never made a good couple. 10 years ago I burned a screen playing with frequency settings... A few posts suggested to create and xorg.conf manually. That's the hard way and I am lazy more by caution than by nature...

4) Ubuntu is getting away of xorg.conf !
Here is a post that saved me (could not find the name of the author -- so a lot of thanks if he recognizes these lines)
This command will stop the X : sudo service gdm stop
Now we need to generate the xorg.conf file:  sudo Xorg -configure
This has generated the file in ~/
We need to make the X using it so we have to put this file inside /etc/X11/Example :  ~# sudo mv ~/ /etc/X11/xorg.conf
After moving this file to the proper location you can start the X again and see what happens: sudo service gdm start

No here is my added value of the day:

5) Control the resolutions available with : xrandr

6) And finally the problem is... 
that because in Ubuntu 9.10 xorg.conf is not there by default it is not adapted... so just re-install the virtual box driver (tip when they are installed on the bottom bar you see a mouse with a green arrow)  and you can see X11 being updated. One more restart and you are in business !

See below for reference and enjoy higher resolution !

fred@fred-desktop:/media/cdrom$ sudo ./
[sudo] password for fred:
Verifying archive integrity... All good.
Uncompressing VirtualBox 3.1.6 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version of VirtualBox Guest Additions...
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers
Installing X.Org Server 1.6 modules ...done.
Setting up the Window System to use the Guest Additions ...done.
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Wednesday, April 07, 2010

I love you find !

I messed up again with links in my OpenERP addons  directory...

find . -lname \*addons-extra\*  -exec rm  {} \;

I feel better...

Tuesday, April 06, 2010

Spending a minute in copyright metric

Here is for addons

chanon@batman:~/openerp-REG/openerp/addons$ find . -name *.py -exec grep Copyright {} \;  | wc -l
chanon@batman:~/openerp-REG/openerp/addons$ find . -name *.py -exec grep Copyright {} \;  | grep Tiny | wc -l

And for addons-extra

chanon@batman:~/openerp-REG/openerp/addons-extra$ find . -name *.py -exec grep Copyright {} \;  | wc -l
chanon@batman:~/openerp-REG/openerp/addons-extra$ find . -name *.py -exec grep Copyright {} \;  | grep Tiny | wc -l

So 10% in the first case and 30% in the second one. I will try to elaborate more on these figures.

Back to OpenERP ... programming

So, I just added a wizard for automating membership renewal.

Finding the right company to renew and the right address is a bit tricky with the Open ERP so called ORM.

So the solution is to use the SQL pass-trough alternative: cr.execute.

I did and it works pretty well. On the other side, each of these calls is a short- circuit in the programming model, heritance and ... security checking. Don't take me wrong on this, but let's admit this is a technical insider concern...

So how much does this affect the code base ?

chanon@batman:~/openerp-REG/openerp/addons$ ls -l | wc -l
chanon@batman:~/openerp-REG/openerp/addons$ find . -name *.py -exec grep cr.execute {} \; | wc -l

So without doing many math, I think a good part of the entire code base is concerned.

I am not jumping on this right away, but I need to dig more...

Monday, April 05, 2010

Extensibility Part II - Hot properties

After my look at the past, let’s go back to day to day operations, I closed a deal a few weeks ago for a real estate web site based on Joomla. We build ‘cheap’ here using one of these little extensions that are  on the Joomla market place: Hot Property (HP).

For each property, HP provides a limited number of fields. Each one is implemented as a column in the real estate properties table. Yet the developer had the idea to make the software extensible, so you can add more fields to your properties descriptions. Surprisingly all these fields go in a separate table…  where you find fields id and values and the id off the real estate property.

Obviously, SQL querying on these is a nightmare... (I exaggerate again, at least we can say things are more complicated and imply joins that are source of performance drops and misunderstanding - e.g when customers attempt to build their own reports).

As you can see, values are stored as text (why the hell have they invented all these data types – may be a precursor of XML). I am putting here the layout of the values table. Another table contains the definition of the extra-fields. Strangely, while we have just a foreign key between the extra fields and the property, HP lets only one field (of a given type) per property.

It is difficult to know why a developer took a path or another. This is not a criticism on HP -It is a very affordable and workable Joomla component. I see anyway, a few reasons…

  1. Very few people like programming the DDL (Data Definition Language). 
  2. Attempting to shield from the database, HP is written with a framework including a primitive (sorry to say) persistence layer. Yet if PHP is dynamic the PHP model is statically linked with MySQL using PHP definitions.  
  3. Finally reflection is something that many programmers do not envisage – among the reason is that again DDL and meta-schema is not that standard… 

All that can be combined in one  DDL+Reflexion+Persistence layer (ORM) is still a problem. Choosing at which moment you decide in your layers to be static is a tough decision…

In the case of HP, extensibility could be much higher since the application is basically a CRUD thing. The gotcha in DB application design is there : when adding processing, logic well you are obliged to statically bind your code (even if you don’t realize it, just a reference in  the code and the magic of dynamic reflection is broken) and the persistent DB model.

I like this subject that much that I am afraid… it will be continued again!

Monday, March 29, 2010

Back from Open ERP community days and parnter day 2010

So here are my notes of the community days. Sorry it is very very rough and I don't have the time to polish this more...Note this is not exhaustive. And nothing official in all these...

Community days

New version 6 targeted for July 2010

  • The main menu will be replaced by a Dashboard showing the main functional applications inside the ERP (not to be confused with the module concept).
  • New GTK and Web client : improved client performance 3x with GTK up to 30 with WEB (will of course depends of deployment scenario).
  • Web client
  • New calendar view in WEB.
  • New Web design, main page with a dashboard representing applications.
  • Fully ajax -> performance.
  • Web framework. Web modules (more or less plugins).E.g Web mail.
  • Business intelligence is a plug-in in the web framework.
  • HTML in the view (these are skipped by the GTK client).
  • Etherpad integration (collaborative editing) – See
Next version – functional aspects
  • Reworked CRM – no details.
  • CalDav (shynchronization with virtually any mobile phone) but also sync with desktop PIM Synch / Desktop Pim (outlook thunderbird)+ WebPIM – GMAIL.
  • Calendar improvement: look & feel, recurring items, invitations (similar to a PIM in OpenERP) !
  • Web framework with web module, e.g: HTML / RichText editor.
  • Task, bugs module synchro with Launchpad – collaborative open source project management.
  • Web services reviewed (multiple protocols on the same port)
  • Module prototype for Facebook.
  • Offline reporting : send a request and later on a message is sent to the use indicating that the report is ready.
  • Synchronization between two servers (tool already existed but will be officialy released).
  • Instead of all the menus like, my sales order, etc there will be a single search screen per object with the possibility to put conditions in search. Also it will be possible to save these filters.
  • Smart views. For example possibility to build tree views that include price computed through price list
  • Survey engine. Possibility to build surveys easily and attach them to more or less to any object (transversal concept like document management or e-mail – if an object inherits from mail gateway). Example of use: customer care satisfaction, HR etc. Include invitation management.
  • HR module – Holidays granting / evaluation.
  • Multi-company will be very much improved and will be part of the base. Possibility for a user to switch from one company to another.? Record rules to restrict domain.
  • Project – taks Projects – possibility to lilt task views linked to project participation.
  • Diagrams view extended to nearly anything (was only used for workflow / process) describe the view by defining which entity will be seen as a node / which relation will be used to indicate arrows.
New release schema
  • Monthly bug fixes release. Stable release every 18 months -new concept of a LTS (long term support) release.
  • Maintenance : fix, migration (still unclear what will be public / contributed), bug fixes, security. Belgium – compliancy e.g Vat is guaranteed ?

MiscellaneousAnnouncement: project for Payroll management with a social secretariat in Belgium / France. This will probably still require a year of work.
  • Methodology – CampToCamp
  • Gherking Business Readable Specific Language
  • Demonstration powermail - openlabs.
  • Direct Markting module – OpenERP.
  • Training module - AJM
  • Yaml –testing framework - OpenERP.
  • Mobile access (timesheet client application J2ME) - BHC 
  • OerpScenario (testing framework) Camptocamp : See also Gherking Business Readable Specific Language.See


I attended the finance & accounting workshop. We drafted a list of improvements absolutely necessary for the accounting module and listed a lot of various actions to make it better. There will be later experts workshop to follow-up...

I will come back later on, on the partner day...

Monday, March 22, 2010

Tomorrow ... Open ERP community meetings and partners day

Tomorrow, I will attend the OpenERP community and partners days...

The first day is dedicated to presentations.

The second day is organized as workshops. I still don't know which one I will take, probably  accounting and finance or community contributions. Except my own proposal I have not seen any feedback concerning a potential agenda.

The third day is only for partners and should cover the partners programs.

Finally they decided to organize the meeting in their offices... So I can already predict limited comfort for three days.

I have a lot of questions, expectations and fears, I will post  a summary at the end week.

FYI My proposal for the finance and accounting workshop

1. My ‘shopping list’

Basically, this is mostly extracted from a study done for a customer for which Open-ERP is a bit ‘short’ specially on international / multi-company scenarios.


-          Explicit multi-company operation.

-          Internal invoicing, cross-country selling (country x selling country y services)

-          Service localization

-          Sales commissioning – with contexts.

Temporary accounting statement

-          Deferred income / Revenue to invoice.

Invoicing plan

-          Be able to prepare future invoices for a project

Assets management           

2. Legal statement - cooperation

While the product is announced to be localized for many-countries (chart of account at least) it is not clear (at least for me) which country is fully ‘compliant’ or complete – at least Vat, legal statement for balance etc

It would be great to have a matrix per country of what is really done and with some maintainers – scheduling of changes per country.

For example, when I asked about the VAT statement in Belgium I got little reply so I think that either nobody is using OpenERP for VAT reporting or that the ‘community’ does not contribute back.

3. Blue prints I found on launch pad (I don’t pretend to be exhaustive)

One remark on the blueprints, I never had an issue on this at this stage, but accuracy is may be critical but it needs much more input.

Sunday, March 14, 2010

Flexibility - Extensibility - Part 1 - UB Net Director

Years ago, I worked for a company now disappeared: Ungermann-Bass (then renamed UB networks, but I will simply write UB).

UB on which I could write a complete book  titled “How great ideas can fail thanks to sucking managers” had one of the first usable Network Management products (Net Director).  The persisting, damned choice of OS/2 instead of Windows could be the start of a chapter, the reluctance to open the product to third parties and to manage other vendors devices could be a nice piece of text too… 

Their addiction to management hypes was great (and expensive), I am still hesitating which one was the most irrelevant (writing book is not that easy). Among the perks: we received great motivation via UB TV (VHS tapes) that we were ‘obliged’ to look at during the office hours. Sorry, I don’t have any copies of the one with Squadrons of Flying jets illustrating one of our most elusive core values : working through team work !

Anyway, a lot of software people seem to have difficulties to imagine that their design will not satisfy the end users. Net Director had provision for three extra fields in the database per managed device. I don’t remember their exact names, it was something like comment 1, 2 ,3. 20 year ago that was extensibility… at least for UB.

A big governmental customer wanted to use Net Director as a core to their operations. Basically they wanted to put inventory information, location etc in the system. They did the legitimate request for the product to be enhanced and asked for 7 more fields. The enhancement request was a lengthy process at UB and I am still pretty sure that it took more money to discuss these kinds of enhancements than to please customers by doing them (one more chapter of the book). A couple of paragraphs will cover the fact that a colleague and I, travelled to California to put these 7 extra text boxes and a scroll bar on a window. I really did nice trips for them, and I must say I loved the bay area…

To be continued...

Tuesday, March 09, 2010

PHP5 installing xdebug on Ubuntu

Just to remember...

sudo aptitude install php5-xdebug

Wednesday, February 24, 2010

First preview of new Open ERP interface

Nice & good looking...

License change from GPL to AGPL

Here is an extract of replay from the FSF ( concerning license changes

>> At which condition can an editor (owning copyright) change the license  from GPL to AGPL?

"The copyright holder on a work always has the option of relicensing that work under any terms they choose. Keep in mind, however, that previously released copies of the work would still be under the original license, and anyone who has a copy can continue to modify, copy, and redistribute from their copy under that older license. Thanks once again for your interest, and I hope this helps."

Saturday, February 20, 2010

How Open Source Development is Funded

Open ERP which I discuss at length is commercial open source sofware.

Many other open source projects are non-commercial (at least this is how they like to be advertised). Yet money remains necessary and it seems the Joomla community is having some troubles here, so they surveyed how other projects find resources:

Enjoy and think... can it be open, free, sustainable ?

Wednesday, February 17, 2010

Open ERP raised 3 millions euros

Open ERP will announce todoay that they just raised 3 million euros.

A few things:
    - the open source model of the company ios not affected.
    - Fabien Pinckaers remains the CEO and still holds the majority of the share.
    - They also announced the opening of their USA offices.

I will of course come back later on this...

Tuesday, February 16, 2010

Rich web frameworks for GlassFish v3 (ZK, Vaadin, ...)

 Just a link to an aquarium post...

May be my next app application framework...

Monday, February 15, 2010


Here is a copy of  a post from Fabien... worth looking at:

"More over, I think it's not an AGPL infringement because only the trunk version is in AGPL. The current stable version is still in GPL v3.0".

So this means that newer version will oblige to contribute back the code and will better cover software as a service case...

Again think to your business model....