Why do FLOSS developers keep ranting?

I have a theory, listen carefully.
A theory about why FLOSS sometimes sucks so bad.
Keep reading.

Many of us do FLOSS coding for the ultimate glory of just doing it. Learning, filling empty days with something to do or simply because we need to feel important for somebody else (I’m pointing the finger to you, behated [my opposite of beloved] library developers).
A rainy Sunday is still a rainy Sunday, and most of us find the couch and afternoon naps quite boring.

Here comes the problem. Developer Joe has a boring afternoon to fill, so he starts thinking about how to improve the API of his library that, accidentally, hundred of thousands users are happily using and find fine as it is.

He starts coding and messing with it and, since he’s a free mind, he doesn’t have to respect any API deprecation rules that most companies (for example) have in place for morons like him. Of course, there is no roadmap, Joe just woke up in the morning and decided to change everything. He also has the excuse that he’s not paid and doesn’t give a fuck about supporting users. He just wants to show how good he can be writing code (hoping to get hired by Google, IBM or Oracle — thank god the guy [Developer Joe is a creation of mine] knows ubuntards and doesn’t expect Canonical to hire him after a mission-impossible phone interview where the hardest task was trying to figure out what the interviewer was about to say).

So, it happens that a small change in the API, causes a small change in the ABI, that eventually, causes its shared object name to get bumped from libjoe.so.1 to libjoe.so.2. The little tiny small invisible change Joe did, for sake of speed and architectural cleanliness (OF COURSE! IT HAD TO BE DONE (sarcasm)) breaks other 35 applications and in general around 425 shared objects that were linking against it, requiring their developers to understand what Joe did, voiding all the testing their applications got until now and eventually+hopefully making the program working again with the new libjoe, spending the next two weekends (oh, they don’t have anything else to do, too).

It’s a perverse game that will never stop.

What’s the moral? Unknown people will indirectly break your application someday, and it’s not a security flaw, it’s just because they were getting bored.
Any solution? Yes, don’t use lame fuck people’s libraries.

Vacation!

Hello world, I’m officially on vacation till the end of the month. After a year of non-stop work, rants and “OMG-when-I’ll-be-on-vacation”, I can now take a break, spend more time reading my beloved books (currently: Understanding the Linux Kernel && GNU Make both from O’Reilly) sleeping in the afternoon, watching movies, eating pizza and spaghetti and making cookies.

It seems that my previous blog post caught the interest of many readers, so I’ll try to continue to blog about coding quality and best practices and, consequently about QA in software engineering. Please don’t take what I write personally, I have a strong sense of homour (humor — for American readers) after all.

At the same time, I kindly ask people emailing me to be patient, I’ll answer you in 48/72 hours, and not immediately, during my vacation. This is vacation DAY 0, and it’s rainy outside, yay! (/sarcasm)

Jumping

I’ve been jumping up and down all the week long. I’m done for this week, hooray!
This week I’ve been working on several cool things for a customer that involves GWT (Google Web Toolkit), Android application development using Android SDK and some 389 Directory Server bug squashing with ioggstream from Babel. Working on all these things in parallel drove me nuts! But now I can tell you, I have another week ahead, not though like this one, and then it’s over: two weeks of holy vacation will begin. Of course, for a FLOSS developer, vacation means working on beloved things, like Entropy, Sabayon and satellite projects (I’m already working on a new Molecule plugin, that should make the creation of Amazon EC2 images (AMI) straightforward).
So, the weekend is kicking off right now, and I have some very cool things to do (one is already listed above): 2.6.35 kernels for Sabayon, some Entropy coding, HTTPS on *.sabayon.org virtual hosts, and that Molecule plugin.
As promised several times, I’ll try to find some time to write more documentation about Molecule during my vacation time, even because I won’t be able to get to some exotic location and drink cocktails on the beach this year =_= (sarcasm).

Hello, world

Why this name?
Because there’s always another hand. Or I can say, there’s always another way to do something and it’s sometimes hard to realize what’s the best approach. Most of the discussions I had in my life were just about that. “Why don’t you do X this way instead?”, “Why is X working like that?”, and so on.
Of course, welcome to my blog, hoping that my tweets won’t kill it.

Java:
System.out.println(“Hello, world”);

Python (using sys module):
>>> import sys
>>> sys.stdout.write(“Hello, world\n”)

C++ (without main() etc):
#include
using namespace std;
cout << “Hello, world” << endl;

Bash:
echo “Hello, world”

Enough!

Posted in Me

Permalink 2 Comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 657 other followers

del.icio.us

Follow

Get every new post delivered to your Inbox.

Join 657 other followers