Wednesday, November 25, 2009

Ubuntu suspend without keyboard

Some similar problems seem related to the intel keyboard controller.
Well the following command should cure and identify my problem :

root@batman:~# echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind
root@batman:~# echo -n "i8042" > /sys/bus/platform/drivers/i8042/bind

No change, so I can forget about the entire set of stuff related to this hardware...

Tuesday, November 24, 2009

Dzone article about Java missing features

I could not resit to reply to this article on Dzone about Java missing features:

http://java.dzone.com/news/java%E2%80%99s-missing-features#comment-21249

Well, this is more student work than anything else. So for me Java, the language is fine.New things are nice, yes. Don't take me wrong. But I don't think productivity will dramatically change thanks to closure or anything else in the list.

Java the platform is more a problem.

What am I missing from Java :

  • Simpler persistence (I know each version makes it simpler but it is still too complicated).May be a pure standard object oriented database with an integrated reporting...
  • Better, much better Swing, an easy Desktop application framework (I know it is coming, just cannot wait).
  • MS (or OO) Office like components (a word processor; a spread sheet,...) easy to embbed and to enhance. All in Java please.
  • In the same way, a Java based web browser component. Or merge Mozilla in JVM.
  • XUL like language for interface building.
  • Plenty of bug fixes and performance improvement.
  • Better integration with Desktop (Windows, Mac, Linux)
  • A standard ZK like web development framework.
  • ...
Well plenty of things to make it a good client application builder. And simpler enough to be effective on small size project.
Also political and commercial aspects matter:
  • Truly OpenSource I mean the real JDK not a //  product.
  • Bundlled and distributed in all Linux distro.
  • Popular as PHP among hosters with prices comparable to PHP.
  • Nice really Open Source apps -for example CMS - not these open-source-for-the-basic-stuff-and-need-to-pay40K$ -for-getting-still-less-than-joomla.
  • transparent market place not the -if-you-want-to-know-the-price-write-us.

So these are my dreams. And be sure that if I find something open and multi-vendors like this, I will consider to move on.

Monday, November 23, 2009

Still searching a solution on hibernate for the Vaio - Ubuntu 9.10 - CS31

While I am testing other stuff I re-installed Ubuntu, did an update and switched to the Nvidia driver.

Suspsend: stops the computer quickly. When resuming unfortunately the keyboad does not work !

Hibernate: black screen, then blinking cursor for around 1 minute, then error messages and finally shutdown. Restarting from hibernate. I see Grub loading. The Ubuntu logo (white) then a minute or two (may be three), error messages and finally I can login and indeed my desktop is properly re-initialized.

So the situation has evolved since I started looking at Karmic (Koala 9.10... I will now try to dig in the logs.

Two busy weeks - still not hibernating with Ubuntu

I still have problem with my Ubuntu 9.10 on my CS31 Vaio.

An old problem of Ubuntu installer related to hibernation is the swap size. There is a need to have a swap size as big as the RAM size. So, I learned that the swap is used to hibernate. Cool and logical. Usually Linux install are recommending a swap size equal to two times the RAM size. Considering the extra requirement of the hibernate swap the allocation of 12 GB - (2+1) x 4G - of swap for 4GB of RAM makes sense.

Anyway, it is not my problem. I saw may posts on the Ubuntu forum on this issue but none of the tips worked. Some net rumors pointed me to think  hat it could be 64 bits related... So I tried 32 bits install, no change - I moved back to 9.04 no changes either ! Glad to see it is not a Karmic problem... Clearly the power - ACPI management changes depending on the video card driver. I swapped the Ubuntu driver by the proprietary Nvidia driver. Good for performance and extra setup controls, but nothing changes on my hibernation issue.

Will I find the time to dig into the ACPI stuff? It is far from my day to day business.

Two busy weeks - back from Milan - Number portability - the Belgium case

Last Monday, I did a one day trip to Milan to give a class about our middleware for number portability. A big piece of Java work that would have very much benefited of Spring.

In fact I solved the beans configuration exactly the reversed way Spring does. Basically I stored all the configuration stuff in a single object for each sub process and every component take what's relevant for its job.

I know this make all this code dependent on this big fat object. I think some people call that a white board design. I agree this lack elegance and hinder re-usability. On the other side it simplified very much configuration and because objects share the config info it is naturally consistent. The same object also implemented a factory pattern, creating and initializing most of the objects (a better part of my design).

Most of us keep looking forward, but I think checking what happened backwards brings also some values.


There is a lot to say on this project not only on the Java side but also project wise.

Number portability (moving from one operator to another but keeping your number) has been implemented in most European countries (because of European market regulation). Yet each country had the freedom to implement it its own way. This has been for me an opportunity to work many times ( for Belgium, Luxembourg, Spain, Portugal, Italy, Germany, Hungary Finland, Latvia, Nederlands, Lithuania, Estonia, Croatia, Hungary ) on similar but different projects.

Typically, number portability is solved by a central database that lists those numbers that have been ported to another operator. An administrative process - kind of work flow -  has to be implemented, usually with time constraints. Once porting is agreed between the donor and the receiving operators, a technical phase propagates the porting information to all operators. The net result being that all operators own a copy of the central database that feeds the operators switches (usually trough what is called an Intelligent Network platform).

Belgium was the first process I developed. The central database project was outsourced to a contractor -  a very  big, well known international software house.

The entire process was driven by a committee piloting the contractor. That generated what committees like to get: papers (probably also a lot of meetings and a high volume of coffee breaks).

The full documentation filled an entire CD (for comparison I received the Spain technical documentation - a single file format description - on one page).

Technically this was my first exposure to Web services (more or less 6-7 years ago). That part was great. However the web services was described as an XML schema - no WSDL. So I had to use an XML parser,code and decode the messages.

The rest of the project was 'nuts' and was a school case on what not to do.

The committee-contractor tandem generated a lengthy and mostly absurd acceptance process, so we had to simulate business transactions of all kinds in an absurd repetitive fashion. Testing and preparing acceptance reports took finally 3-4 times more resources than developing the Web services.

More funny was the total absence of service oriented attitude of the contractor. The idea of giving an easy test platform, a reference implementation, or any basic tools (e.g: raw messages) for developers was out of their mind. Just for one reason. Not only they got the contract for the central database, they also expected to take the business of all the connecting operators. So the motivation to help anybody was naturally extremely low.


They also provided a web based application. They used Java and the most modern computers stuff at that time - multi-processors Sun servers, clusters, Oracle, Nokia Checkpoint appliances, load-balancers etc This was very professional. Unfortunately the application quickly turned out to be a pig. Users started to complain from availability, performance , error messages, failling transactions etc.

In my opinion, this was due to the inexperience of the programming staff and finally a very poor design.

A constant problem of big consulting companies is that they send their senior people to win a deal and send junior staff to implement it. As the amount of problems became important, their support staff could not follow anymore. They entered into crisis management by the book - thus delivering an help-desk procedure that requested a complete network description just for asking a password... Of course, this exasperated their users more than it solved problems.

I never attended these comittee meetings. The specs were done when  I started the project for my customer.Why have they decided to build their on messaging infrastructure on top of relational database using Soap. I don't know. However I saw later similar designs and it seems they copied a system developed in the UK.


In a search to create additional work, they decided that a VPN was not enough. SSL certificates were used between all parties. Good. Obviously they created their own certificate request process with conventions about what to put in each field of the certificate - this was described in a 20+ pages document (all other countries I saw after, simply ask to exchange public certificates between the operator and the central database - final point). In fact their policy and certificate distribution could have been meaningful if the transaction had to be secured end to end - operator to operator - which they did not.

In the line with their policy to create work, the certificates were issued for a single year, this created a permanent state of maintenance multiplied by two (test and production had to be renewed). The funniest thing was when I setup our messages reception point. The only way I could setup the server to get messages was turning off client certificate authentication! Half of their stuff did not work because they were not providing a complete certificate chain. When I discussed that with the contractor security 'expert', I could measure a long silence that finished by  'what's important is that it works now'. Indeed but  as far security is concerned...

A few years later, the outsourcing contract expired. The operators committee took the decision to swap the contractor and the entire application! So the new contractor re-implemented the entire system ! Their implementation had to be identical for the Soap transaction and they decided to keep  the SSL security system, unchanged...

Tuesday, November 17, 2009

Open ERP Training module - updates

First of all, my project for a training company continues.

We did 3 days of interviews (mind mapping) and drafted the functional perimeter (a structured list of points). Basically for my customer there are two business lines Open Courses (OC) and Intra Courses (IC). The same difference is present in Open ERP training module.

The subscription mechanism, the catalog and offer concepts fill the need for a training center.  There is also a few screens for 'Intra' which is basically what I call IC.

For my customer, I think on the OC side we have a 99% match. For IC, the situation is more complex. If things go on, I will post more on this project.In fact the training module is so good that most of the work will be for other business management aspects...

Typically the offering process is more complex for IC because by nature the offers are customized to suit the customers requirements. My customer see each of these offers as a 'project' - the current Intra functionality is elementary compared to their needs (sales management, commissioning, revenue recognition, international aspects,...).

Anyway it seems this training module is gaining interest and I saw some posts on the Tiny partners list.

Without revealing any secret (and nothing official here), we can expect the training module to merge with the trunk within a few weeks.  So I hope to find it in extra addons before the end of the year...

Good to know, currently the initial customer for which the module has been developed is in production.

As far as I know they are still at work for the portals. We should have 4 pre-defined portals:student (agenda, achievement, tests results,...), customers-partners (to enroll their employees), suppliers (to view and confirm orders) and teachers (planning + confirmation, access to training material).

On the roadmap they still have the scanning of documents (exams, evaluation form,...).

Wednesday, November 04, 2009

Not so Karmic Koala

Well, back to my Vaio. I am not yet happy with the current setting. My intention was then to install the latest Ubuntu.

Install was very smooth. I see Ubuntu progressing at each release. very impressing.

Unfortunately, hibernating or suspending is not properly working. Well they may do so but restarting is an issue. I searched a bit on the net. Not that much at this stage...