Monday, May 17, 2010

The end of the (Linux) desktop as we know it ?

Embedded Linux : common trends

More and more of the Linux ecosystem (PC hardware vendor, phone hardware vendor, search engine giant and more recently a well known Linux distro, Ubuntu) uses Linux as an embedded system for the desktop. Some examples to illustrate this trend :
  • Asus Express gate embed Linux in the motherboard. You can have, in a few seconds, a browser, skype, etc.
  • Google Chrome OS : not yet released but it is define as the Web OS with a minimalist/zen approach (like an OS based on Chrome, the browser)
  • Mobile platform : you'll have plenty to choose. ARM based : Symbian, Meego, Android, etc.
  • Last but not least, Canonical announce "Unity", a minimal/Zen OS that will be available to OEM but can be nonetheless deployed on Ubuntu Lucid and later.

Major desktop environment (Gnome, KDE) : things of the past ?

One interesting Linux specificity is the fragmentation of the windows manager market. No other "mainstream" operating system has such a complexity : the window manager is unique and completely integrated (from kernel to applications) into the Operating system. Thanks to the XFree standardization, Linux is more complex : several window managers exist and have to co-exist.

However, on this level, things are changing rapidly :
  • Collaboration between Gnome, KDE and XFCE (and others) is accomplished with the Freedesktop project. The project goals are to define common tools (like X.org), sub-systems (Dbus, etc.), API to ease integration and interoperability of the different window manager.
  • Zen-ification : Simple is beautiful. Minimalist systems set the trend. Clunky interfaces tends to disappear and are flagged as bad design. Esthetic and ergonomic are the two main change drivers. Simplicity is especially important in order to "cross the chasm" and reach the general public.
  • Cloud computing : Browsers are the key to the world these days. An interesting point to notice is that none of the desktop environment are relevant in the browser war : they use/integrate a major browser based on user choices (OK. they provide a browser but ... those browsers do no exist on the larger scale of the Internet!).

Negative impacts for the (Linux) desktop

  • With the cloud, more and more users will be completely satisfied with a browser. As a consequence, users are more likely to care about their browser and the associated information (bookmark, session, password, cookies, etc.) than about their desktop. Major browsers offers a form of cloud synchronization : Mozilla Weave and Chrome Sync (with a google account ... of course) are leading the pack here. Those tools contribute to free the user from the desktop : everything can reside in the cloud.
  • Even if a desktop is less and less relevant, migration from 100% local applications (PC) to a 100% cloud will take time. During this time, a desktop is still needed but this is an end-of life situation for this product line. The fact that major players roll out their own desktop environment is a sign that current desktop environment do not meet the needs of the future. Instead of improving the current ones, major organization decided to ... create their own. Asus with Express Gate, google with Android and soon Chrome OS and, more recently, Canonical with Unity.
  • The direct consequence is a form of "commoditization" of the different desktop environments : they all look alike and most "regular" users don't really care. The differentiation factor is small/difficult to point out : only style, look and feel is experienced by the user after all !
  •  
     
Positive impact 
  • Linux everywhere : after the servers, here come some form of "desktop". The platform is now very popular and we can see convergence between mobile phones, netbook, mobile internet device, etc.
  • Hardware support ... will become better and better on the "desktop". As more and more hardware manufacturers provide an embedded Linux, hardware support will become a non-issue. Most components are standard and this will lead to a well supported platform for the desktop.

Conclusion ?

The value is shifting from desktop environment and desktop applications to browser and cloud applications. The direct consequence is that the Linux desktop environments should unite and work more closely together in order to address this need.

This will not be an easy task as lot of flame-wars and ego-wars will have to be resolved : the feud between the different windows manager is long-lasting and not really decreasing. Key projects like Freedesktop are very important in this regard.

Major players created their own "non-desktop environment" to provide a zen-minimal environment that contain a browser and some additional technologies (video-conferencing, etc.). Those players decisions should be a serious wake-up call for the window managers : a major hardware manufacturer, google, an open-source friendly distribution editor (Canonical with the recent Unity announce) decided to create their own "desktop" environment. Those products will be delivered to millions of users...

At a certain level, one can say that the battle is already lost : the current desktop environments can not really fight this war as they don't own the key technology : the browser. As a consequence, the risk, for them (Gnome, KDE, etc.) is to be a tool that will launch a browser. A (relatively) simple tool that can be easily changed with almost no user impact...

Sunday, May 9, 2010

The Cloud : at least an environment that favor open-source !

What is the cloud ... without its marketing tag ?

During the 2010 think tank in Napa, the cloud was very present. One of the question was about the "threat" that the cloud represents for Open Source. This is funny because some very well in informed participants mention some key statistics. The major player in the cloud field, namely Amazon and Google, run an open-source (linux based) solution for their cloud.

Some unofficial statistics mention that more than 90% of Amazon EC2 instances run ... Linux. At some point, one could define the cloud as an Open Source OS + Open Source virtualization.


Why open source matters ?

Price of a computing cycle, bandwidth, RAM and storage are going down because of various factors including Moore's law (processors, memory) and unprecedented market size increase : developing countries are now entering in the digital age and crossing the digital divide.

An old open-source theory stated that, when the cost of a computer will reach 250$ then Open Source software will be in a strong position because it will be very difficult to pay hundred of dollars for ... software (was not able to find the reference but this is not my theory, feel free to comment and I will correct this blog entry).

I think that Open Source allows the cloud to exists : as the cost of servers get under 2500$ (lets assume that a server can be used by 10 users, we will find the same kind of ratio as for the initial prediction). In this context, when you manage 100 000s of servers, should you pay for ... operating system ? virtualization layer ? etc. In fact, most of the cloud players (Google, Facebook, Amazon, etc.), as start-ups, rely exclusively on open source. Constraint drive innovation and I really think that the present scale of those companies is a direct consequence of their platform choice : using any type of closed source software would have hurt the control on their platform and kill any innovation in the egg.

From and end-user point of view, the number one OS vendor (Microsoft) adapted itself to the cloud in a very reactive mode. In order to use a proprietary system in the cloud, you have to pay an extra 10c/hours/EC2 instance. If you use 100000s of hours, should you pay this tax ? Should you port your cloud-software to ... Linux ? At a certain level, RedHat and other licence-based commercial distros have the same problems : they have to somehow "rent" you your licence so that you can use them on the cloud. Once again, why pay for this and not use ... a freer distro like Debian or Ubuntu or even Fedora, CentOS or OpenSuse ? As a customer, no doubt you will consider alternatives and cost/benefits as it


What of the dominant players ?


While there is different players, I will concentrate on Amazon as Amazon is clearly in the leadership position : they published the API and offer a multi-tenant cloud infrastructure that is very cheap and very ... scalable. Scalability is not the problem of the user anymore at least from a hardware, storage and bandwidth point of view. However, applications scalability on the cloud is a very young and immature science ;-)

The EC2 API is in the process of becoming a de-facto standard and most of the cloud provider build their solution on top of this API. Others, like Eucalyptus, re-implement the API with a different toolbox (i.e. : other virtualization technologies) and as an open-source : you can have your own private cloud on your servers.




The Cloud : at least an environment that favor open-source !

If you look at the proprietary/closed-source/traditional licence-based business model they have to adapt to the cloud and somehow switch from a multi-instance architecture to a multi-tenant one. They also have to switch from a per-user licence to a per-usage model.  This involves all kind of interesting gymnastic like the one Microsoft did : 10c/hour/instance. If you "rent" an instance for one year, your cost for MS Windows in the cloud is .10$*24*365 = 876$. Very expensive IMHO : they don't really believe in the cloud. If you are doing the math, you better buy a bunch of  server licences that includes 5 VM : this will be way cheaper.

On the other hand there is no cost involved and no change required to any open-source software is you want to run it on the cloud : just do it ! No licence change, no hassle, almost no difference from a regular deployment in your data-center, no supplier to contact and ask "if you can run it on the cloud/how you can run it, etc.", no special provisioning (to have your precious licence number for each instance or to connect your licence server to your instances).

Moreover, open-source companies that develop open-source software already have a business model that is compatible with the Cloud : their software is already freely downloadable and can be run on any computer. When the old license-based model is used then some adaptation on the business sides of things, for instance usage based vs instance based. When a service-model is used, then no change is needed.

This can be a great opportunity for Open Source : a virgin territory without any legacy players and a business advantage because there is no need to change the existing software to benefit from this new market...

Wednesday, May 5, 2010

Switch : When change is hard. A change management book !

Introduction

Another book about change management could certainly be your reaction when reading this review. The Heath brothers are well known for the bestseller "Made to stick". In "Made to stick" (this is a recommended reading ;-), the emphasis is psychological and human centric : this is a (vulgarized) psychological book that propose a model for human mind : rational mind and emotional mind. I think this is important to mention because "Switch" is compatible with this psychological model and both books work well together.

Change : if was easy, it would already be done !

Change is, by definition, hard. If it was not the case then ... it would already be done. As a consequence, the second part of the title is somehow redundant but that is certainly a good marketing coup ;-) The second part of the title has at least one virtue : it explains clearly what he book is about "How to change when change is hard". I've read in an unidentified source (don't remember!) that the greater the success, the harder the change. 

Friday, April 30, 2010

How to help large organizations to contribute open source project ?

Context

During the 2010 thinktank in Napa, one of the participant asked the audience the following question "How could we help organizations to contribute to Open Source software".

The problem is the following : most of the large organizations rely on open source software one way or another. There is not necessarily an official policy about FLOSS usage but system engineers and IT administrators & developers tends to use and deploy Open Source software.

In this context, and because, more-often than not, this software is critical to one or several business unit, in theory, it should be easy to contribute.

Hypothesis : IP protection and no open source policy

The problem is more acute for large organization because there is, more often than not, a legal department and some policies are in place to guide workers. Those policies are in place to protect industrial secret and more generally IP of those organizations.

In those organization, more often than not, there is no open source policy : open source leaders do not necessarily have corporate support and, as a consequence, those projects tends to be hidden/not widely publicized.

How to improve the situation : patchs & minor contributions ?

A public Open Source policy (like the one from the government of California) should be published : the goal is not really to have non-open source users contribute but simply to help open source projects to become more publicized inside the organization. It is a clear sign that Open Source is welcome in town !

Lawyers should become involved at this point in order to define a "contribution policy" for the organization. The main question to answer is : Is the corporation OK to contribute with his own name and (c) on the code or not (for marketing, business or fear of liabilities reasons).

If the organization is OK to be involved and become a more or less official contributor of the projects then, proceed to next step.

If the organization is not OK to be involved, the idea is to use a partner : more often than not an Open Source integrator that will be able to somehow "white label" the contributions and, as a consequence, cut any potential liability between the organization and the contributions (as a matter of fact, we already did this for several customers : they did not want their name to appear in the patch for various reasons).

Once this legal issue is defined, then the CIO should then publish a "contribution guideline" that officially allows and encourage bugfix, patches, documentation update and contribution to be made by internal IT either directly or indirectly (via a partner). The goal of this guideline is not, once again, to _force_ contribution : it simply show the path and will make contributing easy and possible for everyone in the organization.

As contribution become more common, good practice should be encouraged : an internal blog or intranet can be set-up to list every contribution in order to reinforce the positive attitude and to create rock stars among their peers : top contributors could be awarded some really cool things like ... attending the developer meeting of their proffered technology, attend training session or technical training, etc.

Contributing to a community is a good thing and you could then suggest the marketing & communication department to publicize your contributions to the open source community. HT department will be interested as well by this as you will be able to attract highly skilled and motivated IT professionals.


How to improve the situation : major improvements, plugins, new projects ?

In this case, the situation is a bit more complex. We did several consulting sessions for customers that really wanted to open source either a complete project or certain area of the code. Most of those projects were initiated by the IT department and let's say that the relation with the legal department was very very conflictual.

One of the root cause of this conflict is the fact that the legal department was not part of the initial project team, they were seen as a necessary evil and ... they behave as such ;-)

Lesson learned : please, involve your legal department as soon as possible. Propose them to work with a lawyer firm specialized in open source IP and licensing. Have them have lawyers luncheons and let them decide of the funny things like license and IP management for the project. 



Initially, I would recommend to start with small scale project. Ideally, select an existing add-on, plugins, piece of code. Once you can have a small success and contribute one component, you can expect the process to become more and more routine like.

After some successful projects, we could even envision an official "open-source policy" for any project that is not part of the core business/specificity of your organization but I don't think that this should be a goal : this is a consequence of the normalization or major contribution. The same concepts apply : you should celebrate success, list contribution and eventually publicize them !


Before any open-source release, you should have a process in place. The process could be very simple (in our company, this is a very simple form that ask for the Open Sourcing of a project) in order to make sure that : you own the code that you want to open source (it seems evident but ... is it ? Do you have cut&paste some code snippet, have some of your code been developed by sub-contractors, etc.) and then you can make sure that the code is not something you want to offer to your competitors. Finally, you can select the appropriate license based on your own legal department advice but also based on the type of license in use by this specific open source community.



Conclusion


I think that those small steps could really help large organizations to contribute more to the open source software they are using. Those ideas are grounded, easy to implement and easy to put in application. 
  • The "contribution barrier" will be lowered inside the organization
  • It will reveal a clear path for open source contributors
  • It will reveal a clear path for starting open source projects
  • Legal department will feel respected and part of the solution
  • Internal publicity (blog/intranet) will reinforce the process inside the organization







Wednesday, April 28, 2010

Snow snow snow the 27th of April

Well, I can't really believe it :  with a brand new bike in my house and a natural desire to ride it, weather is not cooperating !

In order to convince myself, I did a video of this "event" :



Disclaimer : I'm not that much a "weather" person, most of the time, I'm very happy with whatever mother nature is giving us. Instead of a bike ride, I went to a run but I've found the timing to be particularly bad.

I'm now more than ready for summer especially after my Californian trip is the conclusion of this post !