...advanced dreams

24 February 2009

Pssst, Index.hr admini!

Huston, we have a problem :)

21 February 2009

Zašto smo preskupi?!

Prije svega bih htio pohvaliti gospodina Ivana Miloloža, koji se primio posla istraživanja* produktivnosti i stavio brojke na papir. Mišljenja sam da su njegove brojke vrlo realne i dovode nas do zaključka da smo mi sami upravo najveći lopovi, a ne X Y iz stranke ABC. U radnom danu od 6h, ovo su njegova zapažanja:

Prosjecna produktivnost radnika u Srbiji: 3,54 h
Prosjecna produktivnost radnika u BiH: 3,24 h
Prosjecna produktivnost radnika u Makedoniji: 3,18 h
Prosjecna produktivnost radnika u Hrvatskoj: 3,86 h

Prosjecna produktivnost radnika u Njemačkoj: 5,8 h**

Određeni stroj u Francuskoj proizvede 19 proizvoda u minuti, dok u Hrvatskoj taj isti stroj proizvede 11 proizvoda u minuti.

Ovo su katastrofalni rezultati, a identicni su i za privatni i drzavni sektor. Kraj tako slabe prozivodnje, u zemlji u kojoj je pojam biti trgovac, ekonomist ili odvjetnik, mizerna produktivnost je nesto najgore sto se moze desiti. Dodaju li se ovim podacima i razni nameti koje poslodavci placaju drzavi, dolazi se do zakljucka da su nasi poslodavci svi redom kandidati za Nobelovu nagradu jer im firme jos nisu propale.

Ova kriza bi nam trebala biti poticaj da poduzmemo te nepopularne mjere, sredimo mentalni kaos nasih ljudi i uklonimo pijavice s nasih ledja. Dajmo gospodarstvu priliku da razvije ovu zemlju.

* Ovo istrazivanje nije znanstveno, ali uzimajuci u obzir da je provedeno u 45 tvrtki, moze se reci da je izrazito indikativno.

** Radniku se u Njemackoj ovih 0,2h ne placa, dok se radniku u Hrvatskoj ovih 2.14h placa kao odradjeni rad. Strasno. Radnik u Hrvatskoj ima vecu satnicu, a manje proizvede od radnika u Njemackoj. To za sobom povlaci vece troskove rada i time manju placu.

06 February 2009

How do we push open source products into business?

For long we've been telling stories like 'Open Source, you know, millions, billions of eyes are looking at the code and can do modifications they want.'. At first look, this is true. But, also, at first look this scares business.

Open source advocates look at this from perspective 'I can fix any bug if I have brains to do it'. Business managers look at this from perspective 'Are you serious? Anybody can inject any kind of code into the product!'. Both perspectives are wrong to some point.

Open source should have better communication with business. Yes, true, everybody in the world, with good Internet link, could download and check out the code. But, no, not everybody can change it, even if they have brains to do it.

Let's take an example of Linux kernel. You are Russian/American/Iranian/Croatian/pick_your_favourite_black_sheep spy. You can download the code. You can create some malicious code and... What are your options? You could send the code to the upstream (kernel.org/Linus) or you could fork Linux kernel. In first case, if you are extremely lucky, and someone actually reviews code sent by total anonymous, people will check the code and point at the malicious code. Your code would get dropped and you'll never ever get any treatment from these guys again. If you fork Linux kernel, you'll need users and other developers. You'll also get code review from kernel.org guys (cause they probably want to know what's new in your kernel). Again, people will point at the bad code.

So, no, not everybody can change Linux/Apache/MySQL/etc... You can fix your code localy and send a patch to product upstream. That's most you can do.

For business people: Now, how is this different from propriatery software?

Well, with propriatery software, you can't get double check. You bet all your business, and at some degree, your life, on one company. One single company. Imagine that... One of most important rules of business is to have as many clients as possible. Not because of the money, but because bancrupcy of one company won't pull your company into big black hole. Why not applying this to your computers? Your company depends on them. I'm talking here about one product. In proprietary world - one product = one company.

With Open Source software/company, you don't need trust. You can hire another company to check the code. You can even fire the company you buyed software/services from and hire another one, which will just continue where the first one stopped. In Open Source world - one product = countless companies. Your infrastructure doesn't depend on single supplier.

For Open Source people: Up untill recently, business didn't care that much about the price of software.

For people at home, costless software is great. For business, software with a price is investment. So, don't talk about the price when comunicating with business, they don't care about that. And don't tell lies about 'million people could change the code'. No, only core Linux kernel team can change Linux kernel. Others can only send suggestions. And this isn't a bad thing, that's simply great.

Open Source does have a control, and it does have head, tail and roadmap, without control it would failed decades ago. Open Source isn't anarchy, it's just development model - faster than any other we know at the moment.


10 October 2008

Is Ubuntu Server ready for prime time?!

I guess Wikimedia shares my opinion on this one ;)


28 September 2008

IPMI in Ubuntu 8.04

I've recently added Dell's PowerEdge T300 to my collection of 'computer power'. This machine comes with support for IPMI2.0. This is a brief tutorial how to take full advantage of IPMI2.0 in Ubuntu 8.04.

You'll need ipmitool package (universe repository);

sudo apt-get install ipmitool

then you'll need to load all the modules:

sudo modprobe ipmi_devintf
sudo modprobe ipmi_si
sudo modprobe ipmi_msghandler

Next step is to add a user. Since we'll be setting other things too, best thing to do is to start an ipmitool shell:

sudo ipmitool -E shell

then add a user:

user set name 2 USERNAME
user set enable 2
user set password 2 PASSWORD
channel setaccess 1 2 ipmi=on link=on privilege=4

Next stop; setting up IP address:

lan set 1 static
lan set 1 ipaddr IPADDRESS

lan set 1 netmask NETMASK

lan set 1 defgw GATEWAY

lan set 1 access on

lan set 1 user

On T300, all this can be done without ipmitool and operating system at all. During booting, there's a nice 'Hit Ctrl+E to configure remote management' message. After that, we should be able to ping IPADDRESS. Now we are able to connect to this server from another client which has ipmitool:

ipmitool -U USERNAME -H IPADDRESS -I lan -E shell

server will ask us for a password (PASSWORD). Easy check if everything is ok:

power status

First part is over. We are now able to shutdown and power up our server. But, the real fun is console redirection! This task depends on two things; Console redirection on serial port in BIOS and console redirection in operating system. First one depends on your server, and one should check it's manual for correct settings. On T300, console should be redirected to COM2 with enabled redirection during booting. Second part is easy. In /boot/grub/menu.lst we need to enable redirection. This is done with 'defoptions':

# defoptions=quiet serial console=ttyS1,57600n8

Note that there's no 'splash', cause splash screen wouldn't look good on terminal :) Second, baud rate and serial port depend on settings in BIOS. In this case, I used 57.6k and ttyS1. Next stop is upstart. That's an easy one. Create a file in /etc/event.d (I choosed console-redirect), but it isn't important how you call it (I would sugest something unusal, so it doesn't get ovewrriten by some Ubuntu package), containing this:

start on stopped rc2
start on stopped rc3

start on stopped rc4

start on stopped rc5

stop on runlevel 0

stop on runlevel 1

stop on runlevel 6


exec /sbin/getty 57600 ttyS1

Yes, exactly the same port and baud rate as in grub and BIOS. Now, reboot your server and fire up:

ipmitool -U USERNAME -H IPADRESS -l lanplus -E sol activate

and watch your server boot ;)

I've packaged ipmitool with additional support for Dell's functions, go grab it from launchpad:


Functions are under 'delloem' command.


26 September 2008

Ubuntu 8.04 @ PowerEdge T300

I haven't posted anything for... a long time. So, here it is, almost like a fresh start :)

I have a new server! Yay, finally I'll be able to setup some real environments for Ubuntu testing/development and other, business related stuff :D

The installation? Without a single problem.


21 June 2008

Ubuntu-server insight - custom configurations

This is first in the series of posts I'll be doing in next couple of weeks regarding Ubuntu server. With these posts I would like to show you little and, maybe, unknown details which could make your life easier as an Ubuntu system administrator or, if you aren't Ubuntu system administrator, jealous. These posts aren't for new users which don't know how to start with Ubuntu, but for experienced system administrators of other Linux distributions or UNIX operating systems. New users should checkout great server guide - https://help.ubuntu.com/8.04/serverguide/C/index.html.

Most of these posts, if not all, can be applied to Debian and other Debian based distributions, but it's primary target is Ubuntu server platform. So, let's start with a first one.

After installation of services, some customization of configuration is almost always needed. While directly editing /etc/apache2/apache2.conf does work and brings needed results, it can also create problems during update/upgrade of the apache2 package. This is because sometimes default configuration is changed between versions and you end up with diff between new default config and customized config. That's why we have famous '.d' directories:

/etc# find . -name conf.d

In our example, putting custom configuration into the /etc/apache2/conf.d directory results in painless upgrade and fully operational apache after upgrade. Apache2 is also special because of /etc/apache2/sites-enabled|available and /etc/apache2/mods-enabled|available. These directories enable us to create custom web pages in /etc/apache2/sites-available and list all available modules in /etc/apache2/mods-available directory. With a2ensite and a2dissite commands one can easily enable or disable website in Apache2. With a2enmod and a2dismod enable or disable apache modules.

All custom configuration done in conf.d directory overrides settings in the default configuration. Unfortunately, some services can't be handled like this. One very common example is CUPS. This is because CUPS has a web interface which can change configuration and that web interface isn't aware of multiple configuration files. In these case, we are on our own :/.

conf.d directories can contain some default configuration, too. Best example is amavisd-new, which has all of its configuration in /etc/amavis/conf.d. In those cases create a new file and put your configuration in it. In case of amavisd-new, make sure that custom configuration is loaded as a last configuration file. So, if last default configuration file is 50-user, create custom file named 60-my_custom_configuration.

If you follow this rules for configuration, your upgrades from one Ubuntu version to other, with all services up and running after upgrade, will be easy and without any questions.