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.
http://www.slideshare.net/openobject/openerpv6technicalpresentation
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.
Monday, November 15, 2010
Friday, October 29, 2010
Bzr - TITLT
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 : http://lucasmanual.com/mywiki/Bazaar
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 : http://lucasmanual.com/mywiki/Bazaar
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 :
http://www.openerp.com/downloads
http://www.openerp.com/downloads
Friday, October 15, 2010
Webkit reporting engine
Nice video about the webkit reporting engine (integrated in the soon coming V6:
http://files.me.com/nbessi/06n92k.mov
http://files.me.com/nbessi/06n92k.mov
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...
#
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.
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 (http://dev.anything-digital.com/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 http://httpd.apache.org/docs/2.2/), proper URL relies on .htaccess. Joomla comes with a htaccess.txt file, renaming to .htacess should do the trick.
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
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 (http://dev.anything-digital.com/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 http://httpd.apache.org/docs/2.2/), 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...
SELECT
columns.table_catalog,
columns.table_schema,
columns.table_name,
columns.column_name
FROM
information_schema.columns;
SELECT
columns.table_catalog,
columns.table_schema,
columns.table_name,
columns.column_name
FROM
information_schema.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 www.openerp.com/events or directly on Eventbrite:
- Part I/5 (New ergonomy, CRM , Marketing Campaign): visit http://openerpwebinar15.eventbrite.com
- Part 2/5 (Manufacturing and Logistics): visit http://openerpwebinar17.eventbrite.com
- Part 3/5 (Accounting and Finance): visit http://openerpwebinar19.eventbrite.com
- Part 4/5 (HR and Project Management): visit http://openerpwebinar21.eventbrite.com
- Part 5/5 (Technical Presentation): visit http://openerpwebinar23.eventbrite.com
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 www.openerp.com/events or directly on Eventbrite:
- Part I/5 (New ergonomy, CRM , Marketing Campaign): visit http://openerpwebinar15.eventbrite.com
- Part 2/5 (Manufacturing and Logistics): visit http://openerpwebinar17.eventbrite.com
- Part 3/5 (Accounting and Finance): visit http://openerpwebinar19.eventbrite.com
- Part 4/5 (HR and Project Management): visit http://openerpwebinar21.eventbrite.com
- Part 5/5 (Technical Presentation): visit http://openerpwebinar23.eventbrite.com
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:
http://bit.ly/9N1s2y
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 :
http://www.camptocamp.com/fr/blog/2010/06/webkit-report-system-revolution-for-openerp/
Well, I think they did :
http://www.camptocamp.com/fr/blog/2010/06/webkit-report-system-revolution-for-openerp/
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...
http://netbeans.org/kb/docs/javafx/database-client.html
WE NEED A DECENT FRAMEWORK FOR BUSINESS APPLICATIONS !
- 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 !
http://netbeans.org/kb/docs/javafx/database-client.html
WE NEED A DECENT FRAMEWORK FOR BUSINESS APPLICATIONS !
- 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:
http://www.tutego.de/java/additional-java-swing-components.htm
http://www.tutego.de/java/additional-java-swing-components.htm
Friday, August 27, 2010
OpenXava
OpenXava (www.openxava.org) 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 http://www.lulu.com/browse/search.php?fListingClass=0&fSearch=openxava.
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:
+ JAVA
+ 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.
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 http://www.lulu.com/browse/search.php?fListingClass=0&fSearch=openxava.
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:
+ JAVA
+ 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
http://www.tikalk.com/java/domain-driven-java-frameworks-review
Well may be when I get tired of Open ERP...
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"
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:
Client:
lp:~openobject-training/+junk/client-training
Server:
lp:~openobject-training/+junk/server-training
Addons Extra:
lp:~openobject-training/+junk/addons-training
Addons Standard:
==> stable from OpenERP.
Dependencies - addons
board_training
board_training_intra
portal_training
profile_training
training
training_degree
training_diagnostic
training_evaluation
training_exam
training_exam_processing
training_intra
training_process
training_report
training_room
warning_training
base_contact
base_contact_team
base_contact_crm
document_scan
smtpclient
account_analytic_plans
account_analytic_default
document
External
Zbar: http://zbar.sourceforge.net/
==> 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 (http://pypi.python.org/pypi/elaphe/):
==> easy_install elaphe
Client:
lp:~openobject-training/+junk/client-training
Server:
lp:~openobject-training/+junk/server-training
Addons Extra:
lp:~openobject-training/+junk/addons-training
Addons Standard:
==> stable from OpenERP.
Dependencies - addons
board_training
board_training_intra
portal_training
profile_training
training
training_degree
training_diagnostic
training_evaluation
training_exam
training_exam_processing
training_intra
training_process
training_report
training_room
warning_training
base_contact
base_contact_team
base_contact_crm
document_scan
smtpclient
account_analytic_plans
account_analytic_default
document
External
Zbar: http://zbar.sourceforge.net/
==> 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 (http://pypi.python.org/pypi/elaphe/):
==> easy_install elaphe
Friday, July 16, 2010
XML & Swing... pita
http://java-source.net/open-source/xml-user-interface-toolkits
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.
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 :
javax.xml.ws.WebServiceException: Unable to create JAXBContext
Blah blah
Caused by: java.security.PrivilegedActionException: 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...
SEVERE: Cannot initialize endpoint : error is :
javax.xml.ws.WebServiceException: Unable to create JAXBContext
Blah blah
Caused by: java.security.PrivilegedActionException: 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.
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
private Collection
public Collection
public void setPatientCollection(Collection
public Collection
public void setDoctorCollection(Collection
}
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... https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html
"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."
So...
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... https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html
"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."
So...
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(MarshallerImpl.java:269)
at com.sun.xml.bind.v2.runtime.BridgeImpl.marshal(BridgeImpl.java:110)
at com.sun.xml.bind.api.Bridge.marshal(Bridge.java:178)
at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:297)
... 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 ...
https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html
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: java.security.PrivilegedActionException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Class has two properties of the same name "id"
Strange...
I foud a solution here : http://www.objectpartners.com/2010/01/25/using-jpa-and-jaxb-annotations-in-the-same-object/
Basically, you will put the JAXB annotation on the accessor not on the variable where you put the JPA ones.
So something like :
....
@XmlRootElement
public class Patient implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
....
@XmlID
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...
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(MarshallerImpl.java:269)
at com.sun.xml.bind.v2.runtime.BridgeImpl.marshal(BridgeImpl.java:110)
at com.sun.xml.bind.api.Bridge.marshal(Bridge.java:178)
at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:297)
... 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 ...
https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html
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: java.security.PrivilegedActionException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Class has two properties of the same name "id"
Strange...
I foud a solution here : http://www.objectpartners.com/2010/01/25/using-jpa-and-jaxb-annotations-in-the-same-object/
Basically, you will put the JAXB annotation on the accessor not on the variable where you put the JPA ones.
So something like :
....
@XmlRootElement
public class Patient implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
....
@XmlID
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 : http://magazine.joomla.org/.
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 : http://typekit.com/about. Not only it solves a need, it is also a great web based business model.
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 : http://typekit.com/about. Not only it solves a need, it is also a great web based business model.
Libellés :
font,
joomla,
joomla-magazine,
typekit,
web web-design
Saturday, July 10, 2010
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 http://netbeans.dzone.com/multilingual-netbeans-platform-applications.
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): http://pivot.apache.org
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 http://netbeans.dzone.com/multilingual-netbeans-platform-applications.
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): http://pivot.apache.org
Libellés :
apache pivot,
gui,
gui ria java,
java,
JavaFx,
netbeans,
open-source,
swing
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
https://help.ubuntu.com/community/Repositories/Ubuntu#Adding%20Canonical%20Partner%20Repositories
2) Then follow the isntruction for java in the following link
https://help.ubuntu.com/community/AMD64/FirefoxAndPlugins
3) Close all Firefox Windows
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.
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
https://help.ubuntu.com/community/Repositories/Ubuntu#Adding%20Canonical%20Partner%20Repositories
2) Then follow the isntruction for java in the following link
https://help.ubuntu.com/community/AMD64/FirefoxAndPlugins
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
http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html
Wednesday, June 30, 2010
Solving python-xml dependency
- get http://sourceforge.net/projects/pyxml/files/pyxml/0.8.4/PyXML-0.8.4.tar.gz/download
- $ tar -zxvf PyXML-0.8.4.tar.gz $ cd PyXML-0.8.4/
- $ sudo python setup.py install
Thursday, June 03, 2010
Here are my changes in netsvc
class GenericXMLRPCRequestHandler(OpenERPDispatcher):
def _dispatch(self, method, params):
try:
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))
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...
def _dispatch(self, method, params):
try:
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))
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...
https://bugs.launchpad.net/openerp/+bug/257581
The 'worst' is there
http://launchpadlibrarian.net/31048347/xmlrpc.patch
which gives the following
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...
https://bugs.launchpad.net/openerp/+bug/257581
The 'worst' is there
http://launchpadlibrarian.net/31048347/xmlrpc.patch
which gives the following
=== modified file 'bin/netsvc.py'
--- bin/netsvc.py 2009-08-28 16:50:27 +0000
+++ bin/netsvc.py 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...)
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...
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
http://
and
http://
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 :
And that's it. More about 6.0 later...
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.
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).
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
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.
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...
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.
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...
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…
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!
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…
- Very few people like programming the DDL (Data Definition Language).
- 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.
- 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
MiscellaneousAnnouncement: project for Payroll management with a social secretariat in Belgium / France. This will probably still require a year of work.
Presentations
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...
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/
- 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.
- 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.
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...
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...
Libellés :
design,
extensibility,
flexibility,
netdirector,
ub
Tuesday, March 09, 2010
Wednesday, February 24, 2010
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."
>> 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:
http://community.joomla.org/blogs/community/1117-how-open-source-development-is-funded.html
Enjoy and think... can it be open, free, sustainable ?
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...
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...
http://blogs.sun.com/theaquarium/entry/rich_web_frameworks_for_glassfish
May be my next app application framework...
Monday, February 15, 2010
Open ERP GPL vs AGPL
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".
http://www.fsf.org/licensing/licenses/agpl-3.0.html
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....
"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".
http://www.fsf.org/licensing/licenses/agpl-3.0.html
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....
GPL Violation - Open source model not so easy and friendly than it sounds ?
There has been a serie of e-mails on the Open ERP partner list about some potential violations of the GPL by some companies. In clear somebody are suspects a company to distribute extensions and modified versions of the Open ERP code without contributing their code etc
I don't want to start a flame war, nor did I contacted the accusator nor the suspected violator. Yet the subject is not so easy as one think:
- Software as a service issue and the so called AGPL license interpretation.
- Difficulty of having evidences of the violation.
- Parties. Only the copyrighter and the violator can truly manage this aspect of things.
- The obligation of providing sources and not restricting rights does not oblige to contribute back via for example launchpad or sourceforge...(GPL vs AGPL again).
- Finally don't forget that normally, by principles you should presume that the so called violator is in fact innocent...
Posted on the list the following article is nice is and truly good reading http://ebb.org/bkuhn/blog/2009/11/08/gpl-enforcement.html.
Having said that, Open Source is a cool concept but it is not always so easy to make business with the concept. The GPL license is great for its viral aspects but it makes difficult for companies to invest up-front in development. When investing time and effort (thus money) they can have the legitimate fear of being abused by free riders.
A consequence is then that Tiny and partners immediate interest is to develop only when contracted to do so.
I am not saying nobody invest in the code (Tiny does a lot, a few big partners too), but the fact is: everybody must find a way or another to get paid.
This create two stress points in the economic model (I am talking here of a GPL commercial open-source model):
- customer find sometimes hard to finance what they consider a 'base functionality'. I will come back on that one later.
- the editor and the partners may stand as competitors. This is implicit in the Open ERP business model presentation and people should think (at least a bit) about it before becoming partner.
I don't want to start a flame war, nor did I contacted the accusator nor the suspected violator. Yet the subject is not so easy as one think:
- Software as a service issue and the so called AGPL license interpretation.
- Difficulty of having evidences of the violation.
- Parties. Only the copyrighter and the violator can truly manage this aspect of things.
- The obligation of providing sources and not restricting rights does not oblige to contribute back via for example launchpad or sourceforge...(GPL vs AGPL again).
- Finally don't forget that normally, by principles you should presume that the so called violator is in fact innocent...
Posted on the list the following article is nice is and truly good reading http://ebb.org/bkuhn/blog/2009/11/08/gpl-enforcement.html.
Having said that, Open Source is a cool concept but it is not always so easy to make business with the concept. The GPL license is great for its viral aspects but it makes difficult for companies to invest up-front in development. When investing time and effort (thus money) they can have the legitimate fear of being abused by free riders.
A consequence is then that Tiny and partners immediate interest is to develop only when contracted to do so.
I am not saying nobody invest in the code (Tiny does a lot, a few big partners too), but the fact is: everybody must find a way or another to get paid.
This create two stress points in the economic model (I am talking here of a GPL commercial open-source model):
- customer find sometimes hard to finance what they consider a 'base functionality'. I will come back on that one later.
- the editor and the partners may stand as competitors. This is implicit in the Open ERP business model presentation and people should think (at least a bit) about it before becoming partner.
Sunday, February 07, 2010
Back from the Java Roadshow 2010
Here is a quick, incomplete summary of what I saw, heard with a touch of personnal feeling...
Remark number 0: there was a limited audience that day (compared to previous venues). Lack of 'announcements' or economic crisis ? Probably a bit of both...
Sales of SUN clothes and gadgets have soared as they will not be available anymore.No hope to get a mug with the SUN logo... So the merge with Oracle was at least good at that...
The acquisition by Oracle is being finalized now.
JDK 7
There has been a short review of JDK 7. Not Java 7 yet because that would require to go through the JCP - it seems there are currently some conflicts/problems on the process itself. Ultimately this will become Java 7 when these 'political' issues are solved.
Here are a few things:
- more annotations (now also on base type).
- modularity - JSR-294. This will help specifying dependencies to module. With range of version etc. Compile will typically check against the lowest version of each version and runtime linking will take the highest (most recent one).
- various language extensions (switches on String - got great welcome).
- simpler resources cleanup (object that inplement a closable interface will get closed when exception occur) thus simplifying resource protection code.
- improvement for dynamic language support
- compressed 64 bits pointers.
JavaFx
- Ok, nice idea. Variable binding looks great. Demos was ok but not that simple to write.
- Where can it be used ? Well on any phone Java enabled etc - sorry I missed the reference (Java ME 2?). So forget IPhone (?) and Android (more or less sure) - but should be ok on Windows Mobile (ah great).
JEE 6
- Improvement, and new concept of 'profile'. So you can be compliant by implementing a subset of it.
- Single WAR file.
- New servlet API - and yes possiblity to upload file in a standard way !
- New JPA.
- EJB 3.1 (Light = can be used outside a container).
- Dependancy injection (very, very good point - lets get away for the JNDI horrible stuff).
Glassfish V3
GlassFish continues to be the reference implementation of JEE6 and looks like a geat product that will continue to be the reference implemenation and is announced as 'production ready'. It seems fast and easy to embedd. Session preservation (accross restart of the container) is great (for end-users) and truly good for developpers (simplify testing your changes)
Glassfish incorporate Apache Felix and so is OSGi compliant !
Java tip & tricks
Well I learn that there are 480 (-XX) options on the Sun JVM. Don't ask me them all. We had a good presentation on the garbage collector. A nice peace of software that tries to adapt memory allocation to various circumstances... With some option again for tuning - for example if you have many threads and performance problem related to contention...
Note that there is a new Garbage Collector (G1) since JRE 6u14 (so a motivation to upgrade to the latest JVM).
For info http://java.sun.com/performance/reference/.
Profiling with visual VM http://visualvm.dev.java.net/
Note that the Garbage Collection was there when the language started (in 1996). So making it a hot topic for the yearly roadshow...
Java for Business
Basically support proposal for the JVM with 3 level of services. Please call for prices...
Embedded Java
Basically Java SE but tailored by modules to get a smaller footprint. Good if you are in the appliance business.
Real Time Java
On realtime Linux or realtime Solaris, Java real time extensions enables to control the throughput and / or predictability of your application (a new range of business for sure).
The last tree points means IMHO : lets try to find a way to get finally a bit of money from it.
But it is not so simple. See for example the way Google used the language for Android without using the runtime to get away the licensing fee...
One more for the road. I will post the link to the presentation slides when they are available.
My final, last point... Walking dinners with hot lunches are not compatible...
Remark number 0: there was a limited audience that day (compared to previous venues). Lack of 'announcements' or economic crisis ? Probably a bit of both...
Sales of SUN clothes and gadgets have soared as they will not be available anymore.No hope to get a mug with the SUN logo... So the merge with Oracle was at least good at that...
The acquisition by Oracle is being finalized now.
JDK 7
There has been a short review of JDK 7. Not Java 7 yet because that would require to go through the JCP - it seems there are currently some conflicts/problems on the process itself. Ultimately this will become Java 7 when these 'political' issues are solved.
Here are a few things:
- more annotations (now also on base type).
- modularity - JSR-294. This will help specifying dependencies to module. With range of version etc. Compile will typically check against the lowest version of each version and runtime linking will take the highest (most recent one).
- various language extensions (switches on String - got great welcome).
- simpler resources cleanup (object that inplement a closable interface will get closed when exception occur) thus simplifying resource protection code.
- improvement for dynamic language support
- compressed 64 bits pointers.
JavaFx
- Ok, nice idea. Variable binding looks great. Demos was ok but not that simple to write.
- Where can it be used ? Well on any phone Java enabled etc - sorry I missed the reference (Java ME 2?). So forget IPhone (?) and Android (more or less sure) - but should be ok on Windows Mobile (ah great).
JEE 6
- Improvement, and new concept of 'profile'. So you can be compliant by implementing a subset of it.
- Single WAR file.
- New servlet API - and yes possiblity to upload file in a standard way !
- New JPA.
- EJB 3.1 (Light = can be used outside a container).
- Dependancy injection (very, very good point - lets get away for the JNDI horrible stuff).
Glassfish V3
GlassFish continues to be the reference implementation of JEE6 and looks like a geat product that will continue to be the reference implemenation and is announced as 'production ready'. It seems fast and easy to embedd. Session preservation (accross restart of the container) is great (for end-users) and truly good for developpers (simplify testing your changes)
Glassfish incorporate Apache Felix and so is OSGi compliant !
Java tip & tricks
Well I learn that there are 480 (-XX) options on the Sun JVM. Don't ask me them all. We had a good presentation on the garbage collector. A nice peace of software that tries to adapt memory allocation to various circumstances... With some option again for tuning - for example if you have many threads and performance problem related to contention...
Note that there is a new Garbage Collector (G1) since JRE 6u14 (so a motivation to upgrade to the latest JVM).
For info http://java.sun.com/performance/reference/.
Profiling with visual VM http://visualvm.dev.java.net/
Note that the Garbage Collection was there when the language started (in 1996). So making it a hot topic for the yearly roadshow...
Java for Business
Basically support proposal for the JVM with 3 level of services. Please call for prices...
Embedded Java
Basically Java SE but tailored by modules to get a smaller footprint. Good if you are in the appliance business.
Real Time Java
On realtime Linux or realtime Solaris, Java real time extensions enables to control the throughput and / or predictability of your application (a new range of business for sure).
The last tree points means IMHO : lets try to find a way to get finally a bit of money from it.
But it is not so simple. See for example the way Google used the language for Android without using the runtime to get away the licensing fee...
One more for the road. I will post the link to the presentation slides when they are available.
My final, last point... Walking dinners with hot lunches are not compatible...
Tuesday, February 02, 2010
European Java Roadshow this Friday
Friday I will be attending the European Java roadshow in Brussels:
http://de.sun.com/sunnews/events/2010/jan/java_roadshow/brussels.jsp.
The morning agenda is more marketing stuff. The afternoon will be more technical with Java EE 7, FX etc
http://de.sun.com/sunnews/events/2010/jan/java_roadshow/brussels.jsp.
The morning agenda is more marketing stuff. The afternoon will be more technical with Java EE 7, FX etc
Monday, February 01, 2010
Open ERP - Open object programming memento
Olivier, who gave the technical class has prepared a memento documenting the essential aspect for developing on the Open Object framework.
Here is the link:
http://www.openobject.com/memento/
It is a very condensed but high quality set of handy information.
Here is the link:
http://www.openobject.com/memento/
It is a very condensed but high quality set of handy information.
Thursday, January 28, 2010
Getting Open ERP latest stable code
Simple and easy:
Create a directory. System must have Python and Bazaar...
bzr branch lp:openerp
then bzr_set.py
You will then get: client, server, web, addons, addons-extra and even the addons-community stuff !
Easy, official, enjoy !
Create a directory. System must have Python and Bazaar...
bzr branch lp:openerp
then bzr_set.py
You will then get: client, server, web, addons, addons-extra and even the addons-community stuff !
Easy, official, enjoy !
Wednesday, January 27, 2010
Changing grub default booting kenel on Ubuntu 9.10
Hm, I am having some trouble with the Vaio (still makes fan noise) but now it does not boot properly by default.
I think this is due to a software update... So my solution right away is to boot the previous version which is still on the disk....
To check the kernel used -> uname -r.
I think this is due to a software update... So my solution right away is to boot the previous version which is still on the disk....
- vi /etc/default/grub
- change GRUB_DEFAULT=0 value to 2 (kernel variation are installed by 2 - normal & safe)
- run "update-grub"
- you can reboot then
To check the kernel used -> uname -r.
Monday, January 25, 2010
Open ERP back from the technical training
So I am back from my Tiny technical Open ERP training. This finishes our upgrade to the Silver partnership.
Yes we are Silver partner ! And we did it by the rules (meaning I am having some troubles about the partnership program...)
I learned a lot during these 5 days concerning the customization of the product, how to extend it and how it works. This was a worth attending class ! Well the subject is difficult and sometimes the throughput was high. I need now to find time to consolidate that knowledge...
It seems the same trainer does the functional training. I suppose it must be good too - for sure better than the one I followed last year.
The course lacked real exercises and a complete doc. Although again their trainer (Olivier) has written a very handy memento for programmers. It should be available soon through Tiny... But I don't know yet what will be the format and if it will be free...
The logistic of the course itself was terrible (the first day, the room was damned cold, staying seated in a cold room is a pain and I am sick since Wednesday), the restrooms were non operational and locked until Wednesday (we had to queue in antoher part of the building), etc etc. It seems this was the last course given in their offices in Grand-Rosière and that they will move to a more confortable and professional location... I ope not too far however...
The other attendees were very nice thus making the class enjoyable if not comfortable...
On the Tiny web site but also on the SUN site you will find announcement of the partnership between Tiny and SUN. See http://www.sun.com/third-party/global/openerp/index.jsp.
This will of course gives great visibility to Open ERP.
Technically speaking, it means that there is now a branch of Open ERP built on top of SQLAlchemy (a Pythin based ORM). This makes possible to support MySQL instead of Postgress. Functionally this has little value (sorry to say so). Please also note this is nor the official trunk nor the stable version !
In theory, all databases supported by SQLAlchemy will work (I should avoid the term 'supported' because in fact nobody knows what will be effectively supported at this stage). Commercially, this will could be a good selling point. But when... I think.... Ideally... We can get the same support for Microsoft stuff (SQL Server and IIS). That would make very much sense as the commercial target of Open ERP fits very well with the Microsoft Small Business server ranges...
Anyway, for the first time I took notes using Freemind. So I have electronic traces of my training... I will try to clean and pack a few things on the blog in the coming days...
Yes we are Silver partner ! And we did it by the rules (meaning I am having some troubles about the partnership program...)
I learned a lot during these 5 days concerning the customization of the product, how to extend it and how it works. This was a worth attending class ! Well the subject is difficult and sometimes the throughput was high. I need now to find time to consolidate that knowledge...
It seems the same trainer does the functional training. I suppose it must be good too - for sure better than the one I followed last year.
The course lacked real exercises and a complete doc. Although again their trainer (Olivier) has written a very handy memento for programmers. It should be available soon through Tiny... But I don't know yet what will be the format and if it will be free...
The logistic of the course itself was terrible (the first day, the room was damned cold, staying seated in a cold room is a pain and I am sick since Wednesday), the restrooms were non operational and locked until Wednesday (we had to queue in antoher part of the building), etc etc. It seems this was the last course given in their offices in Grand-Rosière and that they will move to a more confortable and professional location... I ope not too far however...
The other attendees were very nice thus making the class enjoyable if not comfortable...
On the Tiny web site but also on the SUN site you will find announcement of the partnership between Tiny and SUN. See http://www.sun.com/third-party/global/openerp/index.jsp.
This will of course gives great visibility to Open ERP.
Technically speaking, it means that there is now a branch of Open ERP built on top of SQLAlchemy (a Pythin based ORM). This makes possible to support MySQL instead of Postgress. Functionally this has little value (sorry to say so). Please also note this is nor the official trunk nor the stable version !
In theory, all databases supported by SQLAlchemy will work (I should avoid the term 'supported' because in fact nobody knows what will be effectively supported at this stage). Commercially, this will could be a good selling point. But when... I think.... Ideally... We can get the same support for Microsoft stuff (SQL Server and IIS). That would make very much sense as the commercial target of Open ERP fits very well with the Microsoft Small Business server ranges...
Anyway, for the first time I took notes using Freemind. So I have electronic traces of my training... I will try to clean and pack a few things on the blog in the coming days...
Monday, January 18, 2010
Python IDE - switched to PyDev
Last week, I wanted to prepare to my OpenERP technical training. So I was ready to buy one licence for Wingware. I don't mind paying for a licence, but I don't like their activation limit. I am spending my time installing new pcs, real and virtual one. Will I have to negociate with them exta-keys?
So I decided to give a try to Eclipse 3.5.x. Installing Eclipse is fairly easy, specially on Ubuntu 9.10. Adding PyDev (http://www.pydev.org/) took me only a few minutes.
The net result is an excellent IDE probably exceeding Wingware. Very stable and with a bunch of nice features. The ultimate test: debugging OpenERP ! Yes it does without a problem.
So clearly, it is better than a text editor (although gedit is not that bad with plugins) a bit less user friendly than Netbeans (my point of view), yet an excellent tool for programming Python & OpenERP.
I hope later one this week to be able to add Bazaar support to it...
In my class today, I think almost the half of the students have Eclipse on their machine. Kind of standard !
So I decided to give a try to Eclipse 3.5.x. Installing Eclipse is fairly easy, specially on Ubuntu 9.10. Adding PyDev (http://www.pydev.org/) took me only a few minutes.
The net result is an excellent IDE probably exceeding Wingware. Very stable and with a bunch of nice features. The ultimate test: debugging OpenERP ! Yes it does without a problem.
So clearly, it is better than a text editor (although gedit is not that bad with plugins) a bit less user friendly than Netbeans (my point of view), yet an excellent tool for programming Python & OpenERP.
I hope later one this week to be able to add Bazaar support to it...
In my class today, I think almost the half of the students have Eclipse on their machine. Kind of standard !
Wednesday, January 13, 2010
Open ERP - various news - events - plugins - next release
First the Tiny partners event has been rescheduled to March 25.
Before that, there will be a community event open to all interested parties.
From what I understand this will correspond to the next release (at least announcements) - either 5.2 or 6.0?
I also got a contact with Axelor the new commercial plugins will be officially released and available for purchase end of this month.
There are 3 plugins :
Outlook : Sync of calendar, contact and tasks + possibility to link messages to OpenERP objects - like a contract...
Word : Mail merge with objects.
Excel - Business intelligence.
The plugins will be sold either separately or in a bundle per pack of 10 / 20 or 50 licences with an included subscription and e-mail support.
The price information I got seems affordable to me (but I don't want to publish it before they do), there will be a free evaluation version.
Before that, there will be a community event open to all interested parties.
From what I understand this will correspond to the next release (at least announcements) - either 5.2 or 6.0?
I also got a contact with Axelor the new commercial plugins will be officially released and available for purchase end of this month.
There are 3 plugins :
Outlook : Sync of calendar, contact and tasks + possibility to link messages to OpenERP objects - like a contract...
Word : Mail merge with objects.
Excel - Business intelligence.
The plugins will be sold either separately or in a bundle per pack of 10 / 20 or 50 licences with an included subscription and e-mail support.
The price information I got seems affordable to me (but I don't want to publish it before they do), there will be a free evaluation version.
Friday, January 08, 2010
Some JPA for a tiny library management app
I am part of the parents comittee of my kids school. Among our projects we are trying to setup a small library for kids.
I like helping the community but these projects are challenging because we run on a nearly zero € budget.
So I proposed myself to manage the book catalog. I built a year ago a small Java app for printing stickers with barcode (an opportunity for doing raw printing). Now I am working on the application to mange book leases.
I took this opportunity to use JPA for building a Swing desktop application. The databasee has been designed directly with MySQL. I imported the schema and Netbeans (6.8) generated the persistene unit and the Java classes. Good but the generation was a bit disappointing. Foreign keys (many to one) were not implemented as reference to Java objects, so I had to code this myself.
What I like with JPA is the feeling to be isolated from the DB specificities without being tight to one JPA provider. I switched just to try from Hibernate to TopLink to EclipseLink, it works great.
Building Java Swing application is rumored to be a pain. With Netbeans it is relatively confortable.... You can drag and drop components on forms as you do with Delphi or VB.
The interface builder is doing something very nice. By looking at how you position components it deduces rules you would like to see respected. Nice, things get properly aligned and are well adaptative when you expand windows. Conceptually that's perfect.
Yesterday, I was almost finished with the app, being able to lease out and log book returns... Unfortunately I tried to fix a couple of glitch in the status bar of the app. What I did? Don't know. The net result is that after three hours of work last night, my entire layout collapsed and the app is basically unusable at this stage...
I like helping the community but these projects are challenging because we run on a nearly zero € budget.
So I proposed myself to manage the book catalog. I built a year ago a small Java app for printing stickers with barcode (an opportunity for doing raw printing). Now I am working on the application to mange book leases.
I took this opportunity to use JPA for building a Swing desktop application. The databasee has been designed directly with MySQL. I imported the schema and Netbeans (6.8) generated the persistene unit and the Java classes. Good but the generation was a bit disappointing. Foreign keys (many to one) were not implemented as reference to Java objects, so I had to code this myself.
What I like with JPA is the feeling to be isolated from the DB specificities without being tight to one JPA provider. I switched just to try from Hibernate to TopLink to EclipseLink, it works great.
Building Java Swing application is rumored to be a pain. With Netbeans it is relatively confortable.... You can drag and drop components on forms as you do with Delphi or VB.
The interface builder is doing something very nice. By looking at how you position components it deduces rules you would like to see respected. Nice, things get properly aligned and are well adaptative when you expand windows. Conceptually that's perfect.
Yesterday, I was almost finished with the app, being able to lease out and log book returns... Unfortunately I tried to fix a couple of glitch in the status bar of the app. What I did? Don't know. The net result is that after three hours of work last night, my entire layout collapsed and the app is basically unusable at this stage...
No partner meeting at Tiny
There was an announcement last year for a partners event. A few partners complained about the sort notice (calling in December for January...) and the fact it was still holidays in some countries. I checked early in the week. The event is postponed to an undefined date.
It is a nice team of people but they still lack a bit of organization.
I subscribed to the next technical training. So next week I will be back to OpenERP and Python...
Wait and see...
It is a nice team of people but they still lack a bit of organization.
I subscribed to the next technical training. So next week I will be back to OpenERP and Python...
Wait and see...
First week almost gone already... - recovering OpenOffice file
Well seeing the first week almost finished is a pain. I have some much to do (this week, this month, this year...) and have the feeling of having done so little...
Early this week a friend sent us a corrupted OpenOffice file. When trying to open it we got 'The file xxx is corrupt and therefore cannot be opened. Should OpenOffice.org repair the file'.
Well accepting this just opened a blank document. So repaired, yes, but empty...
OpenOffice documents are in fact zipped structure so I renamed the file to xxx.zip and unzip it. At least I could grab the content of the file (content.xml). So the next step would have been to clean the xml tgas get the content...
I stopped there and tried something else. May be you will think I am sick. I opened it with Word 2007. Word also detected something wrong BUT the recovery was... perfect... So it seems the odf parser of Word is pretty good !
Early this week a friend sent us a corrupted OpenOffice file. When trying to open it we got 'The file xxx is corrupt and therefore cannot be opened. Should OpenOffice.org repair the file'.
Well accepting this just opened a blank document. So repaired, yes, but empty...
OpenOffice documents are in fact zipped structure so I renamed the file to xxx.zip and unzip it. At least I could grab the content of the file (content.xml). So the next step would have been to clean the xml tgas get the content...
I stopped there and tried something else. May be you will think I am sick. I opened it with Word 2007. Word also detected something wrong BUT the recovery was... perfect... So it seems the odf parser of Word is pretty good !
Saturday, January 02, 2010
The lost decade for IT? Best wishes for 2010 !
As we celebrate new year and also the start of a new decade, a lot of reviews article flourished on the net. There, you may rank your favorite gadget, technology or fashion device. Other articles review historical events or political trends, many follows the Top xx scheme.
So far, the best I saw is is on Der Spiegel online The Lost Decade - What the World Can Learn from 10 Years of Excesses). It is worth reading and basically shows 2000-2009 as a lost decade marked by 9/11, wars (against terror), the regression of civil rights, the lost of brilliance of democracy, the cut between real street and Wall street… this is a worth reading article. So what about me and IT ?
Personal changes
For me this decade has been astonishingly short. Obviously these dramatic changes in the global geo-politic context have taken some mental energy and promoted a kind of day to day survival attitude. The arrival of two kids also changed a lot my priorities and way of living. Much less travel and more home based work have been my new standards. The Internet with VPN connections made this possible.
Java
Professionally this decade has been Java based. I enjoyed the language and I enjoyed even much more not being dependent of a single vendor like I was with Delphi. However I continue to think it would have been possible to make much more, much better with a bit of effort and much less arrogance from the Java camp and its historical steward – aka SUN. Announcing less and delivering more that would have been great!
Internationalization – productivity
This decade has profoundly changed the economic landscape with globalization. Nearly all sectors have seen their organizations changed as China, India and a few other countries entered on the global market. There is no reason why one can earn his life here and not there. I remark otherwise that the price reduction related to off-shoring is sustained by lack of productivity improvement. Nor the methodology camp (e.g: UML) nor the agile camp provided a serious relief. Moving to dynamic language on the argument to save time on compile is far from what I call productivity improvement. There is still a lot to go to improve software developer productivity.
Google but not the semantic web
On the side of the best invention that changed my day to day life. I cannot forget Google. Yes, I Google a lot. Error codes, product numbers, technologies, bugs etc There is no day for me without Googling anymore. Truly a good thing, I think. ..
On the other side, this Googling attitude reflects some failures in information organization. Web sites are very often focusing on the flashy side of the communication more than on real information organization, functionality and accessibility.
A bit more than 10 years ago, first web sites were usually built by IT departments focusing more on the web server stuff than on the message to convey on the web. Shortly after, this decade started with the raise of glossy marketing based web sites. That’s a pain and it seems to continue hopelessly. Only those sites that merged information culture, sharp technical design and sense of usability emerged: Google, Wikipedia, Amazon…
We can see in the Google success a global failure to extend the semantic web which was an attempt to build interoperability to classify information and link things intelligently…
Abandon of interoperability and of our citizen rights
The abandon of interoperability is a general and dramatic turn of the end of this decade in IT. When I started looking at the Internet protocols – that is back to 1985. Interoperability was the top subject among networkers. Asking everybody to connect to the same system / provider to exchange information (at that time messages) was considered an obscene non-sense. These were the years one of the most original IT fair / get together was called ‘Interop’.
Dreaming an ideal interoperable world made an entire industry and changed the world
From this seek of openness and interoperability, we have seen emerging the Internet, the web and all the things that go with them.
Unfortunately business centralization powered by an aggressive capitalist seek of immediate profitability has turned the focus on central, closed, non interoperable systems. I am not writhing anything against capitalism or profit but against a closed, non-democratic, unfair short term minded approach.
Typically that’s the so called ‘social networking / twittering ‘ things. Technologically that’s nothing, functionally not that much either but the surrender is enormous as we give up our private information, liberty, freedom of speech and intellectual property to (commercial) entities.
Security acts excessively affected citizen rights but are unable to grant a risk free world
This trend is accentuated by national security laws issued as a consequence of terror acts. All democratic countries have seen their civil right decreased. In a few cases for the good (may be) but in most cases for the bad. The recent terrorist attempt shows clearly that the loss of privacy in communication has done little to improve security yet the attacks against the independent press and the non-governmental associations continue to surge. The danger is serious to lose much more than we can win.
The 'one way of thinking' dominated and pushed the press of the largest and most established democratic country to support the war in Irak while the so called evidences of the Weapon of Mass Destruction were nothing more than (poorly) animated Powerpoints.
Media decoding in the human sense need to be explained to our children but more unfortunately to most citizens and I am afraid even to a lot of professionals.
Intellectual property & centralizing trend
February first, Belgium will extend its taxes on various media storage devices in order to reward musical artists. In spite of what some says (for example Chris Anderson with its book Free), the issue of intellectual property rewarding is far from being solved. Wikipedia authors are not paid by Wikipedia, but how do they live? Somebody must pay them for what they do. Why not for their expertise? The so called free model seems to be supportable only by huge market and giant operators. In any case the Belgian taxes looks like a tax on electricity to support gaz lamp lighters…
Until now, intellectual property protection for software had little success to establish copy protection or fight reverse engineering. The centralization / software as a service / cloud computing stuff is an attempt to keep the software source inaccessible to users.
While understandable, this is not acceptable if we cannot masterize the life of our own data. Interoperability and privacy are simply implemented with personal devices (this was the great expectation from personal computing at the end of the seventies) but are technological challenges for centralized systems.
We should not surrender or give up on that. This is a call against tyranny, for democracy and civil rights.
Reasons to hope at least to act
A few weeks ago, the Copenhagen submit closed without concrete decisions. I remarked in my surrounding some climate-change skeptics . Everybody has the right to his own opinion. But their arguments are globally not scientific but sophist. Arguments against smoking restriction and creationist are very similar. Again that’s frightening….
Ecologists are usually standing on the left side of the political scene and took global posture against the capitalist world because of devastating industries. Again that’s understandable, although observance of nature destruction by socialist and communist countries should merit serious investigation from most ecologists.
My conviction is that a new economy has to be rebuilt not by re-engineering finance but by enforcing global, multi-factors ethic decisions processes in all our economic and social behaviors. Intense analytic decisions and global transparency will be needed, there IT may help.
Independently of any arguments for or against climate changes. I am convinced that doing anything cleanly is better. Some pretend that this new ecological target will prevent business and will cut jobs. I don’t agree, new industries have to be built; they will bring new jobs and opportunities. Being able to bring wealth to all human instead of a minority will be sign of success.
Helping modestly to build the necessary network of knowledge will be, I hope, on the roadmap of my next decade.
Best wishes for 2010!
Christophe Hanon
Libellés :
2010,
cloud,
globalization,
Google,
interoperability,
IT,
java,
productivity,
semantic web,
wishes
Thursday, December 17, 2009
Open ERP Outlook plugin
A new plugin is now released and here is the link. http://www.axelor.com/fr/produits/openerp-oocrm/outlook.html. I tried to install it unfortunately it does not work... and I could not find a way to save the settings.
So no major progress on that one.
Also, Axelor again annouces its Word plugin but no spec, download or price.
Plenty of good ideas there but...
So no major progress on that one.
Also, Axelor again annouces its Word plugin but no spec, download or price.
Plenty of good ideas there but...
Spring 3.0.0 is out !
Spring released its latest major release: 3.0.0.
The new features are there : http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/new-in-3.html.
I have been quickly trough the list, at this stage it is hard for me to say that it is going to change my life as 2.xx did. But for sure I will spend some time looking at these new features.
The new features are there : http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/new-in-3.html.
I have been quickly trough the list, at this stage it is hard for me to say that it is going to change my life as 2.xx did. But for sure I will spend some time looking at these new features.
Tuesday, December 08, 2009
Open ERP - training company project - end of pre-study
Yesterday I sent the result of our pre-analysis for this Open ERP project for a training/coaching/consulting company.
As I expected, training management is not an issue. The organization of the courses catalog and the subscription facility are quite good and I expect a lot of small companies to be able to manage their activities with this module.
Still the project requires a lot of modifications. I expected some of these but not so much.
So of course the budget is high (compared to the first expected figures). Will the customer sign for this ?
I Don't know.
One problem with Open-Source is that a lot of people think that every thing will then be cheap by nature.
So here is a summary of points that need to be addressed:
On the pros side, the customer will get what is needed functionally and will then use a standard platform instead of a proprietary solution. They will have new functionalities and potentially will be later able to leverage more Open ERP standard modules - like stock management, direct mailing etc.
On the cons, they will have to train again their users and probably adopt new ways of working. Also globally the Open ERP interface is not necessary more user-friendly than what they are used to.
Next meeting with the customer is within two weeks...
As I expected, training management is not an issue. The organization of the courses catalog and the subscription facility are quite good and I expect a lot of small companies to be able to manage their activities with this module.
Still the project requires a lot of modifications. I expected some of these but not so much.
So of course the budget is high (compared to the first expected figures). Will the customer sign for this ?
I Don't know.
One problem with Open-Source is that a lot of people think that every thing will then be cheap by nature.
So here is a summary of points that need to be addressed:
- Sales commission / revenue recognition / performance management.
- HR data, contract management (exists but too basic), competency management. Absence management (again it exists but it is too basic).
- Multi-company. Open EPR is multi-company but implicitly. Here in an international context, the customer would like to be able to explicitly choose the company it will send invoices from.
- More flexible invoicing. In clear a project will require multiple invoices with different sources and destinations.
- International handling: internal invoices generation.
- Intermediate accounting movement. Because they are used to request their customers to pay in advance, they need to write in their books 'deferred income' to indicates that they a have debt to perform some services.
- Calendar management. The system need to be able to summarize the availability of multiple resources.
- Time-sheets screens need to be enhanced.
- Document management security need to be enhanced.
- For accounting, the fact is that Open ERP has a lot of international features but does not in standard have all the output to provide legal statements in all the countries covered by my customer. So the solution would be to sync with an external accounting package.
On the pros side, the customer will get what is needed functionally and will then use a standard platform instead of a proprietary solution. They will have new functionalities and potentially will be later able to leverage more Open ERP standard modules - like stock management, direct mailing etc.
On the cons, they will have to train again their users and probably adopt new ways of working. Also globally the Open ERP interface is not necessary more user-friendly than what they are used to.
Next meeting with the customer is within two weeks...
Subscribe to:
Posts (Atom)




