Tuesday, May 18, 2010

Olivier Dony presentation at the "Jornadas OpenERP 2010"

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

http://www.openerp.com/talks/odony-jornadas-openerp-2010-05-14.pdf

and

http://vimeo.com/11737021

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$ ./openerp-server.py
Traceback (most recent call last):
  File "./openerp-server.py", line 54, in
    import netsvc
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/netsvc.py", line 273, in
    import tools
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/__init__.py", line 26, in
    from convert import *
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/convert.py", line 40, in
    from yaml_import import convert_yaml_import
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/yaml_import.py", line 10, in
    import yaml_tag
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/tools/yaml_tag.py", line 1, in
    import yaml
ImportError: No module named yaml



Solution : http://pyyaml.org/wiki/PyYAML (find the PyYAML package you need, run the sudo python setup.py install command).

Second

[2010-04-23 13:10:34,751] INFO:objects:initialising distributed objects services
Traceback (most recent call last):
  File "./openerp-server.py", line 91, in
    import report
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/__init__.py", line 22, in
    import interface
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/interface.py", line 32, in
    import render
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/__init__.py", line 23, in
    from rml import rml, rml2html, rml2txt, odt2odt , html2html, makohtml2html
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/rml.py", line 28, in
    import makohtml2html as makohtml
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/makohtml2html/__init__.py", line 22, in
    from makohtml2html import parseNode
  File "/home/chanon/openerp-TRUNK/openerp/server/bin/report/render/makohtml2html/makohtml2html.py", 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/tiny_sxw2rml.py 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.

http://www.theserverside.com/discussions/thread.tss?thread_id=59733.

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

http://doc.openerp.com/contribute/15_guidelines/

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"
        EndSubSection

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 ~/xorg.conf.new.
We need to make the X using it so we have to put this file inside /etc/X11/Example :  ~# sudo mv ~/xorg.conf.new /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 ./VBoxLinuxAdditions-x86.run
[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
 ...done.
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
776
chanon@batman:~/openerp-REG/openerp/addons$ find . -name *.py -exec grep Copyright {} \;  | grep Tiny | wc -l
718

And for addons-extra

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

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
114
chanon@batman:~/openerp-REG/openerp/addons$ find . -name *.py -exec grep cr.execute {} \; | wc -l
579




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 http://etherpad.com/
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.
Presentations
  • Methodology – CampToCamp
  • https://launchpad.net/agile-openerp-support
  • Gherking Business Readable Specific Language
  • Demonstration powermail - openlabs. http://openlabs.co.in
  • Direct Markting module – OpenERP.
  • Training module - AJM
  • Yaml –testing framework - OpenERP.
  • Mobile access (timesheet client application J2ME) - BHC 
  • OerpScenario (testing framework) Camptocamp : http://www.camptocamp.com/fr/blog/2009/10/oerpscenario-the-simple-way-to-write-test-scenario-for-openerp/. See also Gherking Business Readable Specific Language.See http://wiki.github.com/aslakhellesoy/cucumber/gherkin.


Workshops
See http://piratepad.net/communitydays

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.

Multi-company

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

https://blueprints.launchpad.net/openobject-addons/+spec/generic-accuracy-improvement

https://blueprints.launchpad.net/openobject-server/+spec/multi-price-accuracy

https://blueprints.launchpad.net/openobject-addons/+spec/price-accuracy

https://blueprints.launchpad.net/openobject-addons/+spec/multi-company-account

https://blueprints.launchpad.net/openobject-addons/+spec/creditlimit

https://blueprints.launchpad.net/openobject-addons/+spec/creating-a-project-from-sales-order

https://blueprints.launchpad.net/openerp-venezuela-localization/+spec/hr-salesman-commision-lines-update

https://blueprints.launchpad.net/account-banking/+spec/multiple-currency-bank-accounts

https://blueprints.launchpad.net/openerp/+spec/changes-price-calculation

https://blueprints.launchpad.net/openobject-addons/+spec/account-balance-name-field

https://blueprints.launchpad.net/account-banking/+spec/account-banking-processing

https://blueprints.launchpad.net/openobject-addons/+spec/account-period-selection

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

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC3L4A7NaWlQnTWF4l_eb9QuBC0E3Wz_CDQCA4_K8orP4xJJEE-BzuJPkEoamrB4JxtQsYQ4a9vROOzcROQf_JUG-0HjSdZKL7IUiCm6-BIxpLc3-7_XYEelTgo2CATaD30YzM/s1600-h/sales.png

License change from GPL to AGPL

Here is an extract of replay from the FSF (http://www.fsf.org/) 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."

www.lemonde.fr

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:
 
http://community.joomla.org/blogs/community/1117-how-open-source-development-is-funded.html

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


http://blogs.sun.com/theaquarium/entry/rich_web_frameworks_for_glassfish

May be my next app application framework...