Wedding Countdown

It is currently 193 days (4646 hours) until our planned wedding day.

Why Use Ubuntu?

I've been asked why I use Ubuntu a few times. When asked I ask why not. The answers to that are usually different but always follow the lines of, "Well, I was just curious because you know everything about Linux." That answer makes me laugh a little. My follow up is, I use Ubuntu because it works and does what I want it to. Thats not the only reason though. It's not that I haven't tried other distributions. It's not even that I haven't liked certain things in others more. The real reason is much deeper than that.

Compiled vs. Binary:

This is often a reason for not liking Ubuntu. They'll say that you don't get to control how every package is built. Funny thing is, you can do that in binary distributions just as well. The difference is where things get compiled and how they're distributed. Therefor, the more optimized compiliation argument doesn't fly with me.

Some will argue that the gain is in the "USE flags." I'm obviously going over to Gentoo now but my bias isn't here precisely. In Gentoo you can set USE flags which control what accitional features are or are not compiled with the application. Compile xulrunner and realize you muffed up one flag and you get to do it all over again. You can also configure CFLAGS and CXXFLAGS which are what get passed as compile parameters to gcc. Most Gentoo users won't even touch this because it can so easily hose the entire system.

I had time to kill. I only have one system that I've been using >3yr. I notice little changes very quickly. I did some benchmarking as well but I won't show that data because of it's not relevant.

I decided to go all out on tweaking Gentoo USE, CFLAGS, and CXX flags. In the end I broke gcc a few times and messed up some other things. However, by the time I was done I had things working extremely well. So well in fact that it exactly matched what I achieved in Ubuntu. The difference- it was slower and heavier. The why- lotta reasons.

When you use a compiled distribution you need to first compile what is required to compile that package you want to install. In my ventures I set a lot of use flags such as "minimal -qt -gdm -X" etc. I also used the no-multilib profile. This means that I spent a lot of time ensuring that I was installing the minimum amount possible to achieve the system I wanted. I recompiled the entire system with these optimized flags. -O3, -fomit-frame-pointer, and -funsafe-math-optimizations are just a few I used that should boost the system. Surprise, I gained only about two percent performance increase on a few tasks. Everything else was the same. What does this mean? It means that unless the package can really make use of these nifty options then no performance will be gained from setting them. It's not a fault of gcc or the programmers, there's just no performance worthwhile to be gained from this.

This isn't the only reason to use a compiled distribution. Some say that there is a gain in you being able to setup your system exactly like you want to.

"""
The power of Gentoo lies not in speed, it lies in the ability to adjust most packages with their dependencies.
For example: You dont wanna Use Gnome?, throw gnome out of your useflags.
This results in a smaller system, less packages installed, less packages to update, less security risks, less Bugs ;)
"""

Well.. you sure as heck don't wind up with a smaller system. In fact, because of compile dependencies you actualy tend to end up with a much larger system. You could remove these post install but you will get to recompile them again for any updates or USE flag changes.

When it comes to a binary distribution, you can install only the package you want because another system built the package and installed all of the dependencies to build it which were already compiled and waiting to be used. This in turn is a massive boost in time to get soemthing on your system. Essentially, the time can go from a few hours to a few minutes. Do you want to compile all of OpenOffice.org and all of it's dependencies, or do you want to download and install the already built version? Think carefully, there will likely be little to no performance increase for this action.

What else is there? Compiled fans tend to say that there is a substantial gain from knowing exactly what's going on in your system. They don't alter the packages much and that means you have greater control over what's going on. This is where my biggest laugh came in. Every compiled distribution I cam across had files in a different location. In one there wasn't even anything in /etc/. The reason things get modified in binary distributions is that it offers the ability to keep things in a very uniform manner. Where does this modification take place? In Debian systems in takes place in package-source/debian/rules. What's that file for? It interacts with the Makefile. Somehow that doesn't sound like too much hacking. When you get into the meat of it, there's not much modification to packages as opposed to what Gentoo does. Gentoo does modify them a lot as well.

My choice after spending years working with both is binary. My choice will be so every time. Why? Because I want to get crap done. I don't need to know the OS is there, I need it to do what I want.

The Community:

When I pick a distribution, I want a highly knowledgable and friendly community to back it up. That's extremely important to me.

The Usability:

When I pick a distribution, I want to be able to jump in and use it right away. I don't care if it's complicated, I just don't want to have to learn about little tweaky things with the way the system works. I get very sick of that, very quickly. Just pick a way for things to work and do it.

Gentoo:

Well, I reamed Gentoo some but they're just one of the best compiled distributions out there. I have a lot of experience with it. That's the reason I used them. Now, when talking about their community I'd have to say a majority of their community is much less than friendly or helpful. Sure they'll help if their interested and there are some that really enjoy helping a new user, but overall there's a lot of rtfm. Their community lacks any true order and for this reason any issues that come up can take months or longer to sort out. Good luck... The usability is decent. They have their standard way of doing things but I have yet to be impressed by it.

Debian:

The usability is great. Things are where you expect them to be. You get a light system that only does what you want it to. That'll make you feel warm and fuzzy. The community though, well.. there's some good and some bad. You definitely need to have thick skin around them. However, if you ask the right question- you will get the right answer if it's available. They deal primarily over mailing lists. They definitely have awesome policies setup to ensure the community behaves a certain way. This can cause whiplash for new users. I really wish they could work on this a little. However, if Ubuntu wasn't around I would definitely be settling with Debian.

Ubuntu:

The usability is perfect. That's one of their goals is to make things simple and easy for anyone to use. The community is always there to help you no matter how dumb your question is. It's led be people that truely want to have an impact. There are a few 'bad apples' but they are few and rarely hinder my overall view of the community.

Fedora/RHEL:

Now that's an interesting set of guys. I didn't deal with them much but my view was that they tend to throw a lot of crap at the system and just see what works and what doesn't. It's like a Redhat testing playground. Now RHEL, that doesn't seem like a bad system but things lag so far behind. I guess they shoot for ultra stable. I guess I put RHEL and CentOS in about the same category. They run on teh same idea and the same basic underlying system. Their community is very supportive but not very interactive. Fedora would not be somethin I want to use anywhere. CentOS I can see finding its place on a server of mine. I would prefer Ubuntu but would not freak out with CentOS.

The verdict:

I have a lot of reasons for using Ubuntu as my primary system and for every other system I use. If I ever stop using it, it definitely won't be because it's too simple or it has a bad community or any other reason similar to that. It's an awesome system built by extremely intelligent and innovative people. Truth is, I wouldn't be happy anywhere else.

Besides, what would I do with the Ubuntu t-shirts my fiancee bought me. :P

Comments

Community

Personally, community is so much of why I use Ubuntu. I am still kind of dumbstruck at the attitudes and atmosphere when I visit ubuntu unrelated irc channels (#python comes to mind).

The entire philosophy behind Ubuntu is why I love it, and I'd still use it even if I had to compile everything, or if they released less often.

Compiled distribution?

A "compiled distribution" distributes compiled stuff, a "source distribution" distributes sources. Gentoo is a "source distribution", not a "compiled distribution". Ubuntu would fit the term "compiled distribution".

Sorry

Sorry, I'll make sure to watch my terms more carefully next time. I was actually writing this while doing a pen test on a Slax box. Yay medusa.