Friday, August 28, 2009

Open ERP - Training centers solution

I spend a couple of days working with - This is a serie of addons modules for Open ERP. The target is the management of a training center.

Any companies active in training or conferencing could benefit of it once it is finished -which is far from being the case I must say.

On the mind map you can see more or less the scope of the modules. You first design you library of courses with potentially sub-courses.

Offers represent your commercial offering. For example you could decide to market only course A with course B. Or may be sell them separately and propose a discount on a package of both. A session is basically an instance of an offer with dates -> seances.

The document management is used for support materials and can be associated to products - probably to order from print shops.

There is a trainers management but with minimal functionnality concerning skills and knowledge management.

It seems the modules will be strong at ordering management, managing external resources and cost computations.

I had no time to look at the portal functionality at this stage. Of course there are dash boards and reports... But I could not make a quotation -- too buggy !

Beyond the fact it is not working completely at this time, I see two major concerns:

  • planning is dramatically embryonic - no way to enter planning of availabilities trainers, locations) and very basic seance scheduling. So it will not help building your schedule.
  • the other point is the integration with the rest of the application. From the offer you may link to a product while in my mind a training is a product... The consequence is that the standard Open EPR workflows for offering etc do not apply. So selling a classical product and a training will probably not easy to implement in the system... Potentially one could work around this by creating one product per offer, but I think it is too much admin work.
I hope these weakness will be worked out one way or another. There is really some potential in helping services companies and training management is part of it.

Wednesday, August 26, 2009

DOCLink for DOCMan on Joomla

a year ago, I built a small website for one of our customer. It is built with Joomla 1.5xx. One of the key compoent is DOCman. A small document manager that ease uploading, building a directory tree of documents etc

DOCman is ideal for small corporate web sites, loading brochures, manuals etc But watch out to the size limit (php settings) set by your hoster !

Strangely the menu system enables only to point to a category in the tree - not a document leaf.

What my customer wanted - which is basic I must admit was a simple way to make links from an article to some content in the DOCMan tree. I though I could find the URL of each individual document and create the links manually. I did not succeed - well there is no easy way to find the id of the items.

Finally I found an extension that adds an button on the defaut editor - TinyMCE -and that helps finding the right resourcee and link it. Really easy.

My only regret is that it is not standard and I searched for it during at least one hour...

Also the tip for the day don't forget to go to Extensions/Plugin manager, locate DOCLink and enable it then the button will show up ev ery time you edit an article (rows of buttons under the text area).

Monday, August 24, 2009

Open ERP on Ubuntu 9.04 - HL7

I really regret that Open ERP is made with Python. The best language is the one you use and I will not spend a minute comparing the benefit of one against another... but I strictly believe that the Python packaging is a mess and I regret the JVM, Jar files and custom loading... With Python, good extensions are in binary compiled format and change between platforms, os and python versions.

At this stage Open ERP does not install easily on Ubuntu 9.04. That's because the repository does not include all the packages needed to make it running on the default Python 2.6. The solution in the attach link is to install Python 2.5 then ensure that the Open ERP server will run on 2.5 :

So I continue testing and prepare demo systems...

Today I subscribed to This organization edits a messaging standard to interconnect IT system in the context of an hospital network. We plan to develop an interface to our home-made medical files application so we would grab administrative data from the hospital servers...

Monday, August 17, 2009

OpenERP - Not always so easy on Wiindows ? Login and SQL permission

Today, I am spending a bit of time on simple quotation, ordering, invoicing. To my great surprise I crashed the app in various simple screens of the application.

The point is: it works on Linux install but not on Windows. I am wondering why and investigating. I think the All in One install is not the latest code... Not sure yet.

Because each DB/Install becomes quickly different as modules are installed. I tried to backup the failing DB on Windows then restoring it on my Linux machine.

Sound simple... but it failed immediately... with a message popup "Couldn't backup database" .

I then stopped the Windows service and started the service in its command box -- a trick I recommend to everybody as you will see a good quantity of messages to debug your install... The exe is : openerp-server.exe

There, I could see that the server is prompting for a password!

This is the password used by Application server to connect to the Postgres database. By default the user is 'openpg' and password 'openpgpwd'. Once the password is entered the DB backup is executed in a few seconds.

Here is what you see when attempting to backup a DB from the Open ERP client:

432 user=openpg password=xxxxxxxxx dbname=template1', closed: 0>
Password: openpgpwd

Practically for my Open EPR that's it.

Looking at many applications, this single user scheme is frequent and may raise some questions. DBMS provide complicated authentication and validation schemes and application designers spend their time to shortcut these...

But don't think I am blaming the application deigners, they are just facing difficult time with inappropriate DBMS technology. Mapping one application user to one DBMS user is a pain:

  • Most application want to connect to the DB to get application config that sits in the DB before asking a username to the user.
  • Optimization like connection pooling are better implemented with one common user.
  • There is no concept of SQL inpersonnifcation - (e.g Windows run as / Unix sudo).
  • Security scheme is nice in DBMS but usually not enough for applications that are not expressed as stored procedure.
  • Implementing permission on Business app is often driven by the data - e.g: cannot touch invoice of another office - that are difficult to implement at the DBMS level. So applicaitons developpers prefer a scheme that work for all permission issues.
  • Error code and messages returned by DBMS are not easily map to business concept.
  • Any more ?? Probably.

I see there two approaches to improve things (on the long run):

  • Removing all this permission crap in DBMS that is not that much used (and that very often creates installations problems)
  • Merging completely the application server with a DBMS. So that application code can benefit from DBMS permissioning.

However I know that the trends on the market is to add things and not to remove any. So I doubt somebody will remove the useless things (with the probably correct argument that may be somewhere somebody is using this feature).

The second option would hit the current market conception about generally accepted software layers. Again too bad for me. But remark that these layers in software do not correspond to a business scheme but to the IT sofwtare market structure...

I admit that there is little market pressure for such changes... so I will return to my OpenERP stuff.

Friday, August 14, 2009

Seriously back to OpenERP - duplicated entries on attendance log & timesheet

I will use the blog to keep track of my tests and tutorial preparation that I am doing with Open ERP. Instead of an abstract target, following the principle "eat your own dog food", I am taking my own company as a target... at least to start.

We need accounting, invoicing, HR (vacations, expenses, attendance), time-sheets, CRM (including help-desk / sales contact management),outlook integration, document management.

Having installed hr_timesheet_sheet (what a name for a module), there is an entry
"[Human Resources] > Timesheets > My Timesheets > Current Timesheet" (the entry between [] corresponds to the main menu of the application - ctrl-t). The key functionnality that I am seeking is there: every user can sign-in and sign-out to indicate attendance (my colleagues will not like it) and enter activities that are linked to analytic entries (projects).

As ususual I am the ideal tester meaning that quickly things go wrong. Each time I clicked (sign-in) and then (sign-out) I got two entries per click in my attendance log ! The net result was a single day with -26 hours of missing attendance !

I found quickly the reason. Timesheets are related to employees and sign-in and out to users. As I used the demo data, one user 'Fabien' was already defined and linked to the user Admin and as I configured myself as an employee two employees where configured with the same login...

To clean-up the wrong difference number, I used the garbage icon and removed the incorrect lines on the attendance log. Next of course I removed the link between 'Fabien' and 'Admin'.

Summary for the timesheet (data configuration)

Employee -- link to -> User (so sign-in / sign-out) can work
Employee -- link to -> Product -> Will give standard cost / sales price

Analytic account for the project -- linkto -> Link to Partner and Link to Price list -> Automate invoicing from time-sheet.

Process for the timesheet

User login sign-in sign-out -- record attendance log.
Timesheet record --> record work done on project.

Finance user goes to [Project Management] > Financial projet management > Invoicing

Timesheets have states : draft (employee confirm) --> confirmed -- (manager validate) --> validated.

Approval is done [Human resource] > My department's timesheet > My department's timesheet to validate.

Other resource -- see Setting up a serice company

Remaining questions

Why is there a general account on timesheet. In fact the timesheet are recorded in the general account... I think it is more an internal architecture quirck - analytic accounts are normaly linked to general account...

I have no easy way to invoice my confirmed timesheets. I can see uninvoiced entries but the status is not indicated. As I wanted to change the view using the web cleint but then I hitted

Patents war

Patents war is raging again.

A couple of days ago, headlines were that Microsoft patented word processing XML usage then a few days later, the news are 'Microsoft to stop shipping Word' as there are claims that they abuse a patent about document architecture and content manipulation.

For a lot of people, the patents system is viewed as a romantic ingredient. The poor, lonely, genius, self-made inventor protects it is dramatic contribution to humanity, changing our life for better... finally becomes rich and save children from the street etc etc...

Unfortunately patent is everything but this romance.

It is interesting to read these two patents, at least shortly or may be just the title.

Word-processing document stored in a single XML file that may be manipulated by applications that understand XML.

"Method and system for manipulating the architecture and the content of a document separately from each other".

Both patents share the same bad patents pattern applied to software:
an attempt to present as a new invention a common practice of people in the field.

Separating content and structure is basically every day task of software developers and XML has been designed so different applications can exchange data.

How these patents claim innovation is also similar:
the combination of two existing recognized principles is supposed to be an innovation. Translated in the common world - take 'car' and 'wheel' - these are not patentable (although I heard somebody patented the wheel in Australia years ago) but spare wheel in a car could be an innovation...

The key issue with this way of seeing innovation is that it's in fact strictly prohibiting software development. Indeed most software development is about combining /assembling / adapting existing solutions (algorithms / components/ technologies) to fit a specified request.

The next meta patent could be 'solving requests by combining existing solutions'. That would patent the entire software industry... and may be the entire universe (at least business) !

In Europe, software patents do not exist (yet - there is intense lobbying on that point - they are not accepted)- although the European patent office sometimes accepts one in an attempt to extend it's business. Only software patents that have some relation with a physical device (the classical example is the ABS brakes system) are acceptable.

This European way of doing exclude most of the abuses of the American system. But...

Looking at the ABS system we can see that what is important is not the software but the logic of releasing brakes to optimize their effect. So the ABS could be patented without the mention of software at all ! Note that good car drivers knew since years that brakes blocking resulted in control loss...

So my conclusion is that the European system does does not help people protecting their software / algorithmic invention (new algorithms / new ways of digital processing / new methods of problem solving).

Business method (as we have seen for e-commerce) should not be patentable specially when they are simple translation of everyday concepts into software.

I cannot imagine a good patent system without a very strict definition of innovation. But what is innovation is a philosophical issues - I mean : subject to lengthy discussions.

May be after all the loop is closed and we should not have patents at all thus letting people, companies and the market deciding based on products qualities, usefulness and services... But that's look like jungle life - again it is not romance.

Tuesday, August 11, 2009

VMWARE acquired SpringSource

Strange but confirmed. VMWARE acquires SpringSource... I am on my hass !

The only understandable synergy at this stage is the Hyperic applications monitoring (that SpringSource acquired recently). VMWARE is eager to be a key player in vitual infrastructure - so called cloud. That makes sense. But what will do VMWARE with all this Java stuff?

I am a bit concerned about the future of the Spring container (and Groovy and Grails).