OpenERP Awards - 2012 Edition
This year's annual summit was a great success due to the quality of the presentations, shared vision and strategy and the ever increasing number of participants. But also, to the opportunity an event like this gives our community and partners to come together, collaborate and also have some fun.
OpenERP is based on a unique ecosystem where the community, partners and editor work together to build a successful, relevant and affordable product. In order to express our gratitude and recognition towards our community and partners, this year's summit included an awards ceremony.
Among the categories selected this year were the Best Contributor Award, Best Partner Asia, Best Partner Europe and many others. It was often quite difficult to select the nominees and particularly to pick one winner among them.
The final award winners are the following:
Best Contributor: Camptocamp
They have been gold partners for more than 5 years now and have been contributing immensely ever since. A quick look on http://apps.openerp.com will show why they won the best OpenERP contributor award 2012. This award specifically rewards the author of the OpenERP modules and tools that are most used by the community. Camptocamp's webkit-based reporting engine and geoengine are great examples of such contributions.
Most active contributor: Vauxoo
The most active contributor awards goes to the contributor who has been producing the largest number of modules, patches, translations and localizations during the last year.
Any member of the community will certainly know Vauxoo for their tireless dedication to the OpenERP community, and their uncompromising open source spirit (Have you seen Nhomar's talk this year? http://slidesha.re/K1eI1O
This incredible company is not only the largest OpenERP Partner in Latin America, but they manage to create and maintain OpenERP localizations and translations for half of LATAM countries, all by themselves! Those yearly contributions represent a huge number of hours and resources, and clearly designates them as most active contributor for 2012.
Best Partner Europe: Smile
Smile has been selected as the best partner in Europe because of it's successes in their customer implementation projects. They helped putting OpenERP in production to some of the biggest companies using OpenERP and they implement an impressive number of projects on OpenERP every year. Some of the big projects that Smile worked on are: France24, Veolia, Nouvelles Frontieres and many others.
Best Partner America: NovaPoint
There are many reasons why Novapoint deserves this recognition. First of all, for an excellent communication with the vendor, in terms of decision making and collaboration. Secondly, for fully embracing OpenERP’s business model and its OpenERP Enterprise. Last, but not least for having published many contributions. They have also been an important player in the penetration of OpenERP in the US market from a product perspective with the adaptation of several specific business concepts like check writing, deposit tickets, credit card payment, and payroll systems integration.
Best Partner Asia: Itara
Itara succeeded to replace a well known ERP for his customer Trident. They have replaced Dynamics with OpenERP and implemented several modules, such as: Sales, Purchase, Manufacturing, Warehouse Management, etc. Later on, they migrated to version 5.0 to 6.0 and after 1 year they get managed to replace Tally, Accounting system with OpenERP. Now, Trident is a big success story in the Indian market with Indian localization. See here an interview with Rajesh Kanna, CEO of Itara: http://bit.ly/JMXljj
Best Partner Africa: Kazacube
From the begining of the partnership, Kazacube has had a good and fruitful relationship with the vendor. In a very short time, it became the second best OpenERP CTP worldwide. Moreover, in terms of revenue and activity in Africa, there is no equal partner just yet.
Best CTP: Vauxoo
It's official, Vauxoo has trained more than 140 people in just one year. They have managed to cover a number of countries in Latin America, like Venezuela, Panama, Costa Rica, Mexico, etc. This winner was a no brainer for OpenERP, as their numbers and dedication speak for themselves. Moreover, Vauxoo forecasts that this year is to at least double this number.
Best Translation team: Arabic Launchpad Team
This award goes to the translation team that has been producing the most impressive translation effort over the past year. Among the 42 teams assigned as of 2012, the Arabic team is clearly the winner. They started translating from scratch little more than a year ago, and have aleady completed 70% of the complete OpenERP translation (more than 18000 terms to translate in total). We do have many teams actively maintaining their translations above the 90% bar, but few of them have been able to get from 0 to 70% in such a short amount of time!
Most active Community website: Openerp-italia
Many countries have an active OpenERP Community, and most of them have a community website. Among them, the Italian Community's website ranks highest in terms of activity, as reported by various traffic analysis means. They have a large number of users and contributors, as well as a wiki and a very active forum, which could even start to overshadow the official OpenERP.com forum!
Although we could only reward 9 winners, for many of them it was a close call, and it is likely that next year's awards will offer quite a different landscape!
We are of course deeply grateful to every single contributor, it is a great honor and pride to build the world's best ERP system together with so many enthusiastic people, from all over the planet!
Elico Corp as the first CTP Premium Partner for China
We are happy to introduce Elico Corp as the first CTP Premium Partner for China.
OpenERP has designed a Certified Training Partner Program to leverage OpenERP training capabilities worldwide. This program aims to enable OpenERP Partners to provide a consistent and high quality level of training.
OpenERP Partners who wish to become Certified Training Partner must provide specialized functional and technical trainings. These trainings cover aspects such as Product lifecycle management, Supply chain management, Warehouse Management, Customer Relationship Management, Sales Order Processing, Online Sales, Financials, Human Resources and Decision Support System, etc. With Elico Corp, OpenERP is able to reach China and offer trainings locally.
Elico Corp is a Sino-European OpenERP official partner. They are fully dedicated to OpenERP consulting solutions towards Chinese-based SMEs. European and Chinese consultants provide out-of-the-box and tailor-made OpenERP implementations completed by local technical team for hosting solutions, hotline assistance and OpenERP development services. Their area of expertise ranges from CRM and services, supply chain management, trading and manufacturing.
More information: http://www.openerp.net.cn
OpenERP Customer, Community & Partners Summit 2012
We have just concluded our three day annual summit in Brussels. It has been a great opportunity for the OpenERP team to share the new features of v7.0., our vision and strategy for 2012, tips and tricks on how to manage OpenERP projects and many more. Furthermore, it has also been a great chance for our community and partners to showcase what they have been working on, may they be developments or successful case studies.
Whether you have been part of our event or not, you can find the presentations held during the Open Days 2012 on our slideshare channel http://slidesha.re/9zuI5o. There were more than 40 presentations covering technical, functional and success stories. Feel free to browse through them, download and share.
We also invite you to look at the pictures of the event. Find yourself, tag and share http://on.fb.me/J3Sk9p Also, after you're done with Facebook, check out what the participants have tweeted during the event http://bit.ly/HQImsU.
3 days, approximately 600 participants, more than 40 presentations!
We want to thank all participants for joining us and sharing our vision. A special thanks goes to all our community members and partners who have presented a topic and contributed to this amazing OpenERP Customer, Community and Partner Summit.
P.S. If you participated to this event and want to give us your feedback, email events(at)openerp.com!
Improvements on the framework
We are going to develop significant improvements in the framework for the version 7.0, expected in September 2012. These improvements will allow OpenERP to be even more modular, to be easier to learn for new developers, to develop module with less lines of code and to be more pythonic.
Our first tests allowed us to reduce a simple module (the "idea" one) from 300 lines of code to 200 lines (33% less). We also significantly reduced the number of methods' signatures to learn by making all concepts more orthogonal and generic. This will lower the learning curve for new developers.
Among all the improvements, the most important ones are:
- a more "object oriented" ORM that also supports write/create on objects, with simplified method signatures "def method(self)" instead of "def method(self, cr, uid, ids, context)".
- a completely new way to manage "on_change" events to simplify inheritance in different modules
- a merge of 3 different concepts (`_defaults`, `on_change`, `fields.function`) into one single concept (`get` attribute) in order to reduce the code to develop, and allow more flexibility (a function field may also be updated by on_change event, in real time, without additional code)
- a pythonic way to express domains. For instance "invoice.partner_id.customer == False or invoice.total > 100", instead of "['|', ('partner_id.customer','=',False), ('total','>',100)]"
- every concept can be implemented in the view definition or in the object:
- a constraint (required, default, ...) in the view impact the encoding, a constraint in the object becomes an integrity constraint for the record
- on_change is just implemented by a "get" in the view, a fields.function is just implemented by a "get" on the object
Of course, we will ensure that all those improvements will be backward compatible so that v7.0 will still support all community modules.
All these improvements will be presented and discussed/challenged during the community meeting of the next week. If you want to read the presentation before or you can not join us next week, you can already find it at http://thu.openerp.com/open-days-2012/core-api-draft.html.
Serving OpenERP 6.1 on multicore systems with Gunicorn
OpenERP 6.1 comes with a load of new features, and one of them provides a much greater ability to scale up on modern hardware. Until now, OpenERP offered only one option: a multi-threaded HTTP layer, with a limited ability to use available computing resources. F or the 6.1 release, one of the goal was to make it easy to run the OpenERP server in multiple processes, harvesting big performance gains. Doing so introduces nice deployment choices and development opportunities.
By running a Python application such as OpenERP 6.1 in multiple processes instead of multiple threads, one can avoid Python's Global Interpreter Lock (GIL[0]) and take advantage of the multiple cores of today's machines.
This (rather technical) post explains how the upcoming OpenERP version runs more efficiently on multi-core systems by using the excellent Gunicorn[1] HTTP server.
This subject will also be covered during the 2012 OpenDays. The slides for the talk are already available at http://bit.ly/IkOYyq
Dance around the GIL
To create and manage processes, we first thought to use the `multiprocessing`[3] module. When the time to finally implement a multi-process solution arrived, we quickly thought it was better to handle the added complexity in the Unix way: make a specific piece of code to manage processes. As it happens, such specific piece of code already exists and we didn't write anything (and thus didn't use `multiprocessing`): we simply turned the server into a WSGI-compliant application, leaving the responsibility to manage it to someone else. That someone else is Gunicorn[1].
Gunicorn is a Python HTTP server with support for WSGI[2]. It uses the pre-fork model to spawn a WSGI-compliant application into different processes. In our case, the WSGI application is the OpenERP server. The server has its WSGI entry point located in the `openerp.wsgi` module. It is simply named `application`. In our repository, we also provide a sample `gunicorn.conf.py` configuration file. Assembling the pieces together, launching the server with multiple processes is a simple as:
> gunicorn openerp:wsgi.core.application -c /path/to/gunicorn.conf.py
You can modify the configuration to your liking. Gunicorn is well documented and the comments in the sample configuration file should prove enough to get you started. Just note that it is not possible to pass arguments to OpenERP on the command line (i.e. the way you would do it with `openerp-server`). Instead, you can directly set OpenERP's configuration values from within the Gunicorn configuration file (as it is done in the example file).
Awesomeness provided by the beast
It is still possible to start the server with the regular `openerp-server` script. Doing so uses a multi-threaded HTTP layer (this is not the 6.0 HTTP layer: we also use the WSGI entry point, this time serving it with `werkzeug`[4]). But serving OpenERP with Gunicorn is great! When handling two concurrent CPU-bound requests with two workers (on at least two cores), you can expect a nearly 2x speed-up[5]. Of course, if the two requests lock the same rows in database and don't spend much of their time running Python code, you might achieve no speed-up at all.
Beside taking advantage of a multi-core setup, Gunicorn provides a few hooks that we use to limit the resources made available to each request. It is also possible to automatically kill and restart processes after they have served a few thousands of requests, to mitigate memory waste, if any. We have added three new options -- although they are documented as command-line options, they really are used only with Gunicorn:
* `virtual-memory-limit` limits how much memory a process can allocate. When the limit is reached, a `MemoryError` is raised.
* `virtual-memory-reset` is a similar limit: when the amount of memory used exceeds that limit, the process will gracefully die after the current request and Gunicorn will re-spawn a new process. This is again a safety net against memory leak.
* `cpu-time-limit` limits the amount of CPU time a request can use, also raising an exception when the limit is reached.
WSGI and statelessness
To ensure we could run multiple OpenERP processes safely, we had to modify the server to make it stateless, because any request can be handled by any process. For this reason, we changed the implementation (and the name) of the `osv_memory` class. Instead of being held in memory, a `TransientModel` is stored in database, just like a regular `Model` (the new name for `osv`). The difference with a `Model` is that `TransientModel` rows are automatically deleted after a while.
Server-side caching is another issue. It's useful for improving performance in some situations, but makes the server partially stateable and thus requires synchronization. Fortunately, most of OpenERP caches are of minor importance and read-only, so the relatively fast process recycling will take care of refreshing The only cache that really required an update is the login cache; because an authentication check is done for each request, if you change your password (causing only one process cache to be updated) you will immediately be locked out. The trivial way we fixed it was to ignore the login cache whenever an authentication fails, causing a refresh of the cache on that process. After a change of password all caches will thus be refreshed transparently one by one.
Still, for the situation that needs it (i.e. it is really necessary to run multiple processes while still allowing configuration changes), we implemented a signalling scheme using the PostgreSQL database. Whenever caches are invalidated on a process, or a new module is installed, the process signals the change to other processes (managed by the same Gunicorn instance, or running on a different machine). The solution will be part of a next 6.1 release.
As mentioned above, the OpenERP server is now a library exposing a WSGI entry point. It is also a kind of WSGI middleware as it can dispatch requests to other, registered entry points. This is indeed the way we have now embedded the web client in the server: the `openerp-web` project provides its own addons directory, which is put in the server's addons path. The server loads the web addons at startup because it is the default value in the new `server_wide_modules`[6] option (exposed on the command line as `--load`). When being loaded, the web addons registers itself as a WSGI entry point: the server serves XML-RPC and regular browser requests on the same port (8069 by default). Of course you can use the same principle for your own modules.
Please note the web client is storing its sessions on disk. If you plan to deploy multiple web clients, embedded in the server or not, you have to make sure the sessions can be accessed by any of them.
Wrapping up
Embracing existing (and great) tools allow us to be leaner and meaner. This is true with WSGI and Gunicorn but we hope to continue in this direction. One important question is left unanswered: how many processes must Gunicorn spawn on a given machine to be as efficient as possible? We don't know yet the answer but we should have it quite soon: we are assembling benchmarks in the `openerp-command` repository.
[0] http://dabeaz.blogspot.com/2010/01/python-gil-visualized.html
[2] http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface
[3] http://docs.python.org/library/multiprocessing.html
[4] http://werkzeug.pocoo.org/
[5] My use of the word 'speed-up' may not be completely appropriate: speed-up is normally used for parallel computation. In this post a 2x speed-up means you can run a second request with no impact on another one.
[6] Server-wide modules are not tied to a particular database. For instance, the web client can serve a page to create a new database; obviously the web client has to run even if a database is not yet loaded.
Ebay integration with OpenERP by BistaSolutions
Bista Solutions announced the release of an E-Commerce module which integrates eBay with OpenERP. The OpenERP eBay connector was developed over a period of two years, while working with several leading eBay sellers.
Some of the benefits this connector is that it provides a single, integrated business application that links your business with ecommerce, CRM, marketing, order management, inventory, manufacturing and accounting. You are now able to manage one or more web stores and execute ecommerce activities in different countries, languages, currencies and channels.
OpenERP eBay connector features:
-
Import product & orders
-
Inventory Synchronization
-
List products to eBay from OpenERP
-
Products Schedule Management
-
Product Status Update
-
High Volume Processing and many more
Watch here a demo of the ebay connector.
If you want the ebay connector, get it here.
Enjoy!
OpenERP 6.1. Functional Demo
The news is out, OpenERP's latest version 6.1. is here. It's more user-friendly, even more business oriented and efficient to manage your company. Read more about the new features.
How to discover the latest version 6.1.?
- Demo: http://demo.openerp.com
- Online: http://openerp.com/online
- Download: http://openerp.com/downloads
We have also put together a functional demo that presents 6.1. Watch this video to learn directly from us what OpenERP 6.1. can do for you. Share it in your company, with your clients and implement it now for your business.
Watch on Youtube!We remind you that we will present v6.1. in detail at our 2012 Community, Customers and Partners Summit. Find out more and get your free ticket to our most important event of the year.
OpenERP is going social with the launch of the new version 6.1.
Yes, it's that important announcement! OpenERP is excited to announce the release of its 6.1. final version. After more than a year of joint effort with our community and partners, we are proud to present the final version of OpenERP 6.1. With the new version we have developed many new features like touchscreen POS, electronic invoicing, kanban views, assets managements, etc. The performance has also been significantly enhanced through the new web client and a new architecture that can now support multi servers and multi processing. Worth mentioning is that the latest technologies, like those used by gmail and facebook have been incorporated in this version. Read more about the new features
Even easier to use and learn
OpenERP has been already recognized for its ease of use compared to other leading ERP softwares. We are going one step further, once you have installed it, you can immediately start using it! No need for configuration, with the exception of the accounting module.
With a much more straight forward welcome page, it's easy to dive right into the applications you need most. As you start using the application and want to use some of its most advanced features, progress bars with menus will help you set the application just the way you want. Users can also enjoy kanban views to manage the flow of applicants, the tasks in a project or even their sales pipeline. Not bad for an ERP!
A brand new web client
The new web client has been entirely redeveloped. We have used the latest web technologies and have redesigned its architecture. As a result, the new OpenERP web interface is more intuitive and the performance is astonishing. The navigation speed through the screens is incredible providing an unmatched level of comfort for the user. But this is not all. The new web client is also extremely modular and allows integrating OpenERP with a web site or a portal in only a few clicks.
Touchscreen Point of Sales
OpenERP 6.1 provides a new module for outlets. This module is 100% web, works offline and automatically synchronizes with the OpenERP server when the connection is restored. The POS module is compatible with all PC tablets and iPad, offering multiple payment methods. Product selection can be done in several ways: using a barcode reader, browsing through categories of products or via a text search.
A social and flexible ERP
Companies still exchange many documents in paper format. An expensive and inefficient way of working. OpenERP 6.1 is offering several options to help companies boost their poductivity. First, integrated portals will allow companies to provide access to OpenERP in a completely secure way to its external partners. At the other end, customers can, for example, refer to the inventory, place orders and track shipments, as well as manage their bills. OpenERP 6.1. goes further than that, as you can send an invoice and/or a sales order and your customer will have an option to access it in OpenERP and even integrate it automatically in his own ERP instance.
New additional modules
Other additional features introduced with OpenERP 6.1 are: new payroll engine, an asset management module, new financial reports, a new event management module and many more. OpenERP is continuing to expand its functionalities through both internal modules and now over 1800 apps available at http://apps.openerp.com
How to discover the latest version 6.1.?
- Demo: http://demo.openerp.com
- Online: http://openerp.com/online
- Download: http://openerp.com/downloads
Get your book now: "OpenERP evaluation with SAP as reference"
Feridis, Luxembourg based IT company, has published in November last year a book analysing the leader (SAP) and the challenger (OpenERP) of the enterprise management software. This book has generated a lot of reactions in the SAP and OpenERP communities, so they have decided to release their book for free, or the price of one tweet.
This book, "OpenERP evaluation with SAP as reference", exposes the SAP experts’ eye on an emerging solution i.e. OpenERP. It puts into perspective the advantages of their implementation methodologies, the differences in the features, customization approaches, and business models.
This new book which gives you an idea on everything you ever needed to know about what an ERP can do. Through detailed analysis, it evaluates and compares SAP, the leader, and OpenERP, the challenger, so you can judge for yourself.
SAP users will discover in this book how OpenERP solves the same problems as SAP but with a totally different approach and point of view in terms of marketing, product development and distribution model. At the other end, OpenERP users will discover what makes SAP the world leader in the enterprise management software market.
Through this book, you will learn how to assess differently OpenERP and SAP based on your specific needs, avoid hidden costs of an OpenERP or SAP implementation and the advantages of different implementation methodologies. Moreover, you will discover what makes SAP such a good and popular product and how OpenERP SA succeed to build a software comparable to SAP in only 5 years.
Do you want to get your hands on a copy of this book before anyone else? Hot of the press, this book is available on Amazon (http://amzn.to/zs28CN), but you can have your free copy by paying with a tweet.
To download the free ebook: http://bit.ly/wVTxjo
OpenERP OpenDays 2012 Agenda
Make sure click "View fullscreen" on the buttom of the slides to visualize the agenda better!
View more presentations from OpenERP.tvOpenERP 2012 Community, Customers and Partners Summit, Brussels
Write in down your agenda and book your tickets. This year's OpenERP Community, Customers and Partners Summit will take place from April 11th to April 13th in Brussels. Last year was a success and we are confident that this year more people will join and more ideas and knowledge will be shared.
What are these days all about?
The event is dedicated to all our community and partners and, for the first time, also for clients. It's a time when we all come together and we present the new features, future version, achievements and a place where you can showcase your case studies, methodology or developments.Be there and see directly from the source the features of the 6.2 release!
What's new for this edition?
- opened to end user customers (for the 11th and 12th). Partners are encouraged to invite their customers
- new format with plenary session in the morning and workshops in the afternoon. You can choose among over 23 tutorial/ training sessions
- afternoon sessions will be split in 5 tracks: developers track, 2 functional tracks, business track and meet with OpenERP track.
Practical info:
- we will organize OpenERP Awards, a fun way to thank our community and partners for their contributions!
- email Nicoleta, at ngh(at)openerp.com if you want to present a topic! (limited seats).
- email our Event Manager for any questions regarding the organization of this event: events(at)openerp.com.
Runbot - new service to test your developments
We have launched a new service called Runbot available now for partners to help them test their own developments. Launchpad allows us to easily collaborate with the community and host all the branches online. Consequently, 'runbot' is a platform where you can test the branches pushed on Launchpad.
With this new service, partners can test very easily, by connecting to any of the available branches. If there are older branches, they can be rebuilt so that they can be tested. If you have branches on Launchpad, even if they are older, you can test them on the runbot.
Why was runbot developed?
The OpenERP Runbot (or simply runbot) is a program monitoring and running branches on Launchpad belonging to the different OpenERP projects, namely "openobject-server", "openobject-addons", "openobject-client-web", and "openerp-web". Doing so it generates a number of useful HTML reports.
Initially, the goal was simply to have constantly an up-to-date (i.e. using the latest commits) running OpenERP server (with its associated addons and web client) for testing and demo purposes, for both the trunk and the stable (v6) branches.
After a while, since installing some modules in demo mode already performs some automatic tests, we changed a bit the runbot to also show on a web page if those tests passed or failed. Since then a few other changes were made (e.g. allow multiple Launchpad teams) but the overall goal is still the same.
The runbot is currently running on http://runbot.openerp.com/ where it monitors thousands of branches and keeps 100 of them alive. It is also available from launchpad.net (http://launchpad.net/openerp-tools) so you can run it on your own infrastructure.
How does it work & how can you use it?
The runbot is regularly fetching branches statuses from Launchpad. Every time a branch is modified the runbot fires a new job. The job is responsible for running the tests and reporting whether the tests did pass or fail; it also runs the server and the web client so that anybody with a browser can actually use the freshly started OpenERP instance.
Browsing is public, but the service is dedicated to partners, so they are welcome to register a few specific branches or a complete team (in this case all the team branches will be monitored) via their Partner Portal: http://openerp.my.openerp.com)
Get in touch with us or register your own branches on your Partner Portal!
Public access here: http://runbot.openerp.com/