Is there a future for Ubuntu? You might be Surprised

Linux has been going through constant changes and developing for many years, and I have been its user for more than a few years.

future for UbuntuAt first, I was freaking out when I’ve heard about complete changes of my favorite operating system. But what I have learned from previous changes is that it will be good eventually and that I have nothing to worry about.

Will new changes be good for Ubuntu?

Since I’ve been coding for living for many years now, I was asking the same question like millions of Ubuntu users- Is there a future for it? The answer is YES, but it is not so simple. This system is frequently changing, and if you are looking for a static operative system, you should look elsewhere. There are many who are programming on other systems like Windows 10 or MacOS, but the popularity of Linux is growing fast.

We all heard that there would be some changes regarding Gnome succeeding Unity as a default desktop. That might be true, but this is not the first time that a significant time change, like this one, happens. Ubuntu has been changing and experimenting almost all the time since I’ve been using it. Nevertheless, I was skeptical about this one, but if you think a little bit more about this, you will realize that this is a good thing.

So far, I am more than satisfied with changes that have been made so far. Older users might remember a similar situation in 2003. When Red Hat has been dropped, and Red Hat enterprise Linux has been developed. We saw many changes like these, and after all, we “recovered” successfully. It will still be the most usable open source desktop network but with slight changes.

Some changes might surprise you!

Users who know nothing about Ubuntu might be amazed when they update to the new version. New applications, completely new desktop interface, and new interaction method – they are just some of the many changes.

Ubuntu GnomeSince Ubuntu Gnome and Ubuntu Desktop are developing resources together and focusing on one platform, this might be the idea with many benefits. But what excites me the most is the fact that there will be a bigger focus on Snaps. Snaps is one of the most popular manager packages, and I was happy to use them.

What to expect from Ubuntu in the future?

Since I’ve been a user for many years, now I can only expect changes and constant searching for perfection. New ideas and learning from previous mistakes makes us better. I’m sure that same will happen with new Ubuntu.
My advice for everybody would be to be patient and to be prepared and informed about those new changes.

It is not something that we haven’t dealt with before, and certainly not the last time. It wasn’t so scary like we thought it might be. It will take some time to get used to new changes but overall, future for Ubuntu looks bright, and with right moves, they will grow even better and bigger. I know that I am excited.

(DC)²: Going forward to a 1.0 Release

It was a bit blog silence about me during the last 2 months, but I was really busy with some projects @work.

Today, I would like to write some bits and pieces about the “DataCenter Deployment Control” Project aka (DC)².
In my last article you could see (DC)² in action, deploying some virtual machines on a Xen Server (or on VMWare or on BareMetal or on every device which is able to do some PXE).

At this time, (DC)² was using as backend the Django Framework and as RPC module the fantastic RPC4Django. As database engine was MySQL in use. We used as tftp server the very good working tftpy and as PXE bootloader PXELinux from Syslinux. As frontend development framework I used the “Qooxdoo” JavaScript framework.

Now, I was improving all of this.

The Backend

First of all, I replaced Django and RPC4Django with web.py and a self developed XMLRPC and JSON-RPC module. With less overhead all RPC calls are much faster now.
Furthermore, I revisited the whole RPC namespace and refactored most of it.

Another important change was to go away from the relational database (MySQL), as this was introducing more complexity to the project.
When I started to think about moving away from the relational model to a document oriented model, I was giving first CouchDB a try. But CouchDB wasn’t the best candidate for this, so I had a look at MongoDB.

And MongoDB it is.

So, with MongoDB and PyMongo you can work without special table models, but if you want you are able to implement a relational db style, which was needed from some workflows in my case.
Furthermore, the replication and sharding functionality of MongoDB was exactly what I was looking for. Easy to setup and configure.

And MongoDB gives you JSON output, or when you work with PyMongo native dictionary types, which was important to me, because one feature I wanted for (DC)² that its documents can be easily improved.

Example:

We do auto inventory for servers. That means, I needed some infos from the servers which are unique.
I defined my server document like that:

SERVER_RECORD = {
“uuid”:True,
“serial_no”:True,
“product_name”:False,
“manufacturer”:False,
“location”:False,
“asset_tags”:False
}

Reading this, we just need a server UUID (which you can normally find under /sys/class/dmi/id/product_uuid , if this displays 00000 or something else then a uuid nowadays, you should stone your hardware manufacturer) and a serial number (/sys/class/dmi/id/product_serial).
These informations are needed to identify a server. Any other infos are not necessary (during the inventory job I try to get those infos, but actually they are just not that important).
But this record is not complete. Some server admins do need more informations like “how many CPU cores does the server has?” or “How much memory does the server has?” If you want to add this information you just add them to the inventory job (how you do it, is a topic for another article). But you just push the record with the needed fields and your added fields just to the same RPC call, and (DC)² will just save it to MongoDB.

And this is possible all over the system. I defined some informations which are needed for the standard work, which is really enough to help you deploy servers and help you with the bookkeeping, but you can add as much informations you need on top. Without changing one bit of backend code.

The Middleware

Well, (DC)² is mostly bookkeeping and configuration management and helping you to control your server fleet.
The deployment itself is done by FAI – Fully Automatic Installation. Which is an easy tool to deploy Debian Based Distros as well as RPM Based Distros like RHEL, CentOS, SLES, Fedora, Scientific Linux etc.

So, how does it interact with (DC)²?

As said before, the backend is speaking XMLRPC and JSON-RPC. The JSON-RPC part is for the frontend, the XMLRPC part is for the middleware and all tools needing data from (DC)².

The PXE Booting is also improved. Instead of using TFTP for loading the kernel and initrd I switched from the old pxelinux to the new gpxelinux (included in syslinux 4.02).
GPXElinux needs only tftp for loading the gpxelinux.0 file, all other files are being downloaded via HTTP protocol.
This gives you a wonderful possibility to cheaply scale your deployment infrastructure.

The Frontend

The frontend changed not so dramatically as the backend, but good things are still be found.

First of all, I put most of the code into separate modules. So, right now, there are modules for the models, which are used for JSON-RPC calls and pushing back the data to the widgets.
There is a module for all globally used widgets. You’ll see that there is one widget which is mostly used. It’s called “TableWidget” and has mostly all functionality in it.

But you put any widget you need into the tab view.

You see that the webfrontend is just looking like a desktop application. Which was indeed the purpose of using Qooxdoo and no “HTML add on framework” like Dojo or YUI. I needed a real developers framework, and Qooxdoo is really one of the best. You can code like Nokias Qt and it’s following the OOP paradigma most of the time.

And even for me, someone who had no clue about Javascript it was easy to learn and adapt.

To show you how easy it is, to add a new tab with a tablewidet, here is the javascript code of the Servers Tab.

Code Example:

_showInventoryServers:function(e) {            
            if ("inventory_server" in this._tabPages) {
                this._tabView.setSelection([this._tabPages["inventory_server"]]);
            } else {
                var server_tbl=new dc2.models.Servers(dc2.helpers.BrowserCheck.RPCUrl(false));
                var server_search_dlg=new dc2.dialogs.search.Servers();               
                var server_edit_dialog=new dc2.dialogs.EditServer();
                var server_table_options={
                    enableAddEntry:false,
                    enableEditEntry:true,
                    enableDeleteEntry:true,
                    enableReloadEntry:true,                   
                    editDialog:server_edit_dialog,
                    searchFunctions: {
                        searchDialog:server_search_dlg
                    },
                    tableModel:server_tbl,
                    columnVisibilityButton:false,
                    columnVisibility:[
                                      {
                                        column:0,
                                        visible:false
                                      }
                                      ]
                };               
                var server_table=new dc2.widgets.TableWidget(server_table_options);
                this._addTabPage("inventory_server",'Servers',server_table);
                server_table.showData();
            }
        },

A closer look to the other code you can have on the DC² code browsing page on Launchpad. You’ll find all the code on Launchpad.
The current frontend version of (DC)² is using Qooxdoo Version 1.5.

New Features

CS²

As you can see on the screenshots, there is a another menu entry with the name “CS²”.

This (CS)² means “Centralized SSL CA System” and helps you to manage your SSL host keys, CSRs, Certs and CRLs. Mostly used in the deployment system for Puppet or FreeIPA or whatever tools you are using which are in need of SSL Authorization.
(CS)² can be integrated in (DC)² but is also usable as standalone application. It has, equally to (DC)², a XMLRPC and JSON-RPC backend, has a qooxdoo frontend and is completly written in Python. Check out the screenshots.

RPM Based Distributions

Thanks to the work of the great Michael Goetze FAI is able to install RPM Based Distros like CentOS or Scientific Linux. I converted the CentOS Deployment to RHEL 5 and RHEL 6, so now, you are able to deploy mostly all world wide used RPM based Distributions with FAI.
Thanks to Thomas Lange, who is the new maintainer of Rinse, who added my patch to it.

What’s still going to come?

AWESOME!

Oh wow…it’s not the first time, that I’m reading a really big flamewar…but this is…AWESOME!!

Not that we are only making a fool of ourselves, no, we are just giving everybody outside of our business a picture, that most of the OpenSource people are just kids in a sandpit.

I know, I know, commercial interests are coming first, but honestly, do we need to nitpick?

There is Mark, with a clear view of what he wants to achieve on the linux desktop, and prominent spokesman of Canonical and Ubuntu.
There is GNOME, KDE, Jeff, Aaron, Jono, GregKH, Jef oh I’m too lazy to write down all the names involved.

Seriously, I’m a true believer, that the OpenSource Business as we know it, is not going to survive. We need to change things, as we did in the past, as we do now, and as we are going to do in the future. Community wise and especially in commercial business.

But what’s going on here?

We’re digging our own grave. Nobody will take us as serious business partner, when we will go on as we do right now. Not in the server market, not in the desktop market.

Really, OpenSource is about choice. If someone has a view of doing this like so, and others do have another view, let’s fork it, change it, see if it works. Other projects or stakeholders or companies will take what they need, and leave the rest to the sharks.

Nobody, right now, is without a sin. Everyone involved has something to say, whysoever, someone is pissed personally, another one is pissed, because it’s not what he or she expects to see from the other party. and so on and so on.

And then there are the fanboys and fangirls. They do have their own view, and they rattle, too (I include myself into this group, but I’m really a fan of Ubuntu, RH, SuSE so I could rattle a lot)

But really, right now, I see more destruction then cure. It’s more “You poked my eye, I’ll slice your nose”. This is really not going to help here.

We are destroying ourselves, we are throwing away a good reputation.

Hopefully we can settle all this sh*t during a conference sitting around a table with some cool drinks and smoking a pipe of peace.

Anyways, what’s amazing to see, that only pawns are fighting. Not the kings or queens. There is no Jane (Canonical) or Jim (RedHat) or Ronald (Novell)

I really would like to see, that we are going back to business. Let’s get Unity rolling, let’s improve Gnome-shell and Plasma, there is still so much to do and we all can participate and we could all have a win-win situation.

But please, let us stop this celebrity death match…there will be no winner.

My 2 Euro Cent

My Life, My Work, My OpenSource

Breaking News: Google is going to acquire Novell and the Unix copyright

Some secret source inside Google Inc. reported to us, that Google is going to acquire Novell, the Company who brought you Novell Netware.

After all court fights between SCO and Novell, regarding the Unix Copyright, the Google Board was afraid to be sued by SCO, too, as most of Googles infrastructure is running on the illegal Unix derivate “Linux”.

Eric Schmidt, Google Board member and CEO of Google, said to, as reported by our secret source, Larry Page:
“I have no time or the money to fight against SCO. After the desaster of Google China, we need to save the money for bribing the old farts on the Chinese Government, that they open up the great firewall. Therefore we need to buy Novell and their staff, because Novell is the copyright holder of Unix, and you know I was at Novell, and when we have the copyright, we will be evil!”

It’s not known, when this will happen, but there is already a plan how Google will make revenue out of the new Unix Copyright.

Nikesh Arora, President, Global Sales Operations and Business Development will start to enforce Unix Licensing to all Linux, BSD, Solaris, AIX, Xenix and Windows Distributors and Linux, BSD, Solaris, AIX, Xenix and Windows Users who won’t sign up for an account to a Google Service, like GMAIL or Google Buzz or porting their software towards Googles Apps API.

“If those people won’t share their private data with us, we will enforce our rights. There is no way to avoid Google, the easy way or the hard way. Google hates users, Google don’t know. All Microsoft Users, and especially the Microsoft Board including the fat, dancing Ballmer and the funky Gates, will be sued, because Microsoft does use a good portion of Unix Sources inside their crappy kernel”.

Chris DiBona, public sector engineering manager at Google Inc, wasn’t suprised, as our insder reports.
“We knew (for some years) already that Microsoft is using a lot of GPL and BSD Licensed Software Snippets inside their Microsoft products. We reverse engineered the Microsoft Kernel and found that they still have portions of Minix Source. This changed for Windows 7. The Windows 7 kernel is mostly the Linux Kernel with some adjustments from BSD and removed License and Copyright statements. Therefore, Microsoft will have a to pay a lot of Copyright fees to us. This will be fun! But we still have a problem about something we found while disassembling the kernel. We found a piece of code named >>jbacon_robot.c< <. Somehow it always sends out messages in random intervals to Twitter and Facebook with a random ammount of “awesome”, “rock” or “horsemen” + more random content. It has no real functionality, it’s just there. We wonder if this is the real trojan horse the world speaks about when the user’s windows computer is crashing. Another surprise was to see, that Microsoft Office actually is an older branch of StarOffice with a refined UI.” (StarOffice became during time OpenOffice)

When we (I and my colleagues) heard this news, we were shocked.
But when you get bad news, there is also good news.
I shouldn’t be writing about this, but after this bad news from Google, I have to tell you this secret (Sorry, Mark!):
Ubuntu and Canonical won’t be hit by this war between Google and the Users.
Canonical and their Launchpad Team are already working on rewriting the Linux Kernel in Python, so actually there is no C code anymore, and nobody will sue Canonical or Ubuntu Users.
The new python kernel will be shipped to the Ubuntu community after the Ubuntu 10.04 LTS release.

Oh, and I’m happy to report that the lucid+1 release will be named “Monster Marble”.