My feedback to the Linux / Open source communities 2013

Most of the truly important people around Linux and open source are free agents who are not getting paid a dime. People who are contributing their time to helping others and build this great operating system – for this we thank you.

A point for project teams

I’m starting off with this initial feedback for project teams. Who exactly? Anyone who has (or is involved with) an open source project.

There are a lot of us who want to contribute to a variety of projects, but are finding it hard to bridge that gap from “just another Linux user / noob” to someone proficient at working with source code / understanding dependencies and compiling for distributions.

For this reason – PLEASE PLEASE PLEASE and PRETTY PLEASE focus on documentation. If there is no allocation in your team then recruit or get new members involved to document their “entry level” experiences.

Real world example:

I had been having major issues with my BT headphones. If you know anything about Linux, then you most likely know that Bluez is the BT stack on Linux and there is a great utility package out there called Bluez-tools. Bluetooth is also a fairly troublesome protocol, but I decided to roll up my sleeves and attempt to modify the source code. Simply put, at times my BT headphones would crash PulseAudio, not connect properly without requiring restarting whole BT service,  at other times stutter , etc. Many different problems.

First order of business was to download Bluez-tools. This went fine since the source is sitting in a GitHub repo. Then time to compile the code AS-IS just to ensure I can compile it, and at this time all hell broke lose with reference errors.

Now here is the thing, according to Distrowatch I am using the most popular distribution of Linux. I’m using Mint 15 Olivia 64bit. I would imagine in 2013 I don’t have to ask anyones permission to use a 64bit OS because imo everyone should be by now.

The few paragraphs of documentation on the Bluez-tools project site do list the dependencies exactly like this:

Requirements:
bluez-tools requires at least bluez-4.69 and obexd-0.30

THAT’S IT! Should be simple right? After all, I’m on at least one of the most widely used distributions and already meet the requirements?

WRONG For the love of God, no amount of tinkering seemed to help. In desperation after (many many) hours of googling, and trying new things, I fired up a VM, installed a copy of Arch and Boom! The package built right away, no fuss at all.

I decided to ask some guys in IRC. Their reply was this isn’t a coding thing, its a distro specific thing. So I took the question to Mint support, only the guys there did not have the technical knowledge to help, since Mint support is for basic end user stuff. The guys over at Bluez-tools didn’t even bother to get back to me. At this point I was essentially screwed but not just yet. A question on askUbuntu, another one on Linux.StackExchange and yet another one on the Mint forums, but no one seemed to know.

So the very first project I tried to get involved with and tinker with and build ended up being an epic fail. But it did show me that for the most part in Linux you can get really fucked sometimes with no one seeming to care about your particular issue.

For this reason I leave the following feedback:

  1. Test out building your projects on the top 5 distros (or at least top 3) and give instructions to get guys up and running where the distro requires additional configuration.
  2. Try to check your emails and respond to requests from people.
  3. Take their questions and turn them into HOW TO articles on your project site.
  4. If you need an example – document like Arch Linux. I find it semi disgraceful that this one distribution is pushing out the best documentation, including documentation that the project owners have failed to write. But Arch Linux guys – Goddamn thank you 1000 times for this.

Stop pushing vim and archaic methodologies as gospel.

As time ticks you can expect more and more of us coming over from Windows backgrounds. Initially Linux is overwhelming. I get the need to embrace the command line, but separate fact from fiction. Vim is useful and extremely powerful, but for a beginner I would seriously recommend using a standard text editor like gEdit. Vim should be pushed as a 2nd year subject, not something essential to getting the most out of your Linux experience. Stop writing your learn Linux guides with Lesson 1 : VIM.

Windows guys moving across DO embrace the command line.

And now I’m talking to Windows developers. In Windows we hardly ever expose the Windows apps we write with command line alternatives, however when you step across to Linux you need to do this! The command line isn’t just for quick fingered kids who like to type, it is essentially the exposed API of your app. So no matter what app you write, try your very best to modulate it, and expose the calls via command line args. The better job you do at this, the better Linux becomes. For example if you wrote a media player application and have command line calls to SET_VOLUME or GET_CURRENT_ARTIST etc, a desktop environment widget can reuse those calls, someone might create a wrapper application around yours. Everything just talks better but – WE ARE USING THE COMMAND LINE FOR THIS.

IRC Mods – go out and get laid.

Irc was fairly dead to me roughly around 2002. And I remember those days with over bearing mods taking their jobs very seriously just waiting to exercise the only authority they most likely had in life some of their authority.

In 2013 I’ve had to take up IRC again because that is where you the Linux guys are at. While I actually love the technology behind IRC. I find that a lot of the mods tend to throw around their power and distract people on the real reasons they’re even on the chat in the first place.

If you’re like this fuck you stop doing this please. But if you’re like the many, many helpful people on IRC assisting others in their Linux quest – then Kudos!

Get your facts straight about Ubuntu.

Ubuntu and Shuttleworth seem to be target for a lot of hatred in the Linux community. After doing some research I realized that a great deal of the Linux community are a bunch of whiny piss ants (who I would classify as power users). Get it out of your head that it is somehow fashionable to hate on Ubuntu and look at the facts.

Myth 1: Ubuntu contributes nothing back to OSS

Ubuntu is that one distribution that has put Linux on the map as a mainstream desktop alternative to Windows and iOS. This is a massive contribution already. They’re the poster child for Linux at the moment. Just like you shouldn’t diss your home team, think of Ubuntu as a massive friend in your corner because the more people that use Linux the better it becomes all around. Many of the Arch user base started off on? Opensuse Slackware Debian Fedora Redhate That’s right – Ubuntu!

Myth 2: Ubuntu is closed source because they want to rewrite x-server (Wayland) and Unity.

x-server is massively outdated, and although I personally think Unity sucks it is just another DE and easy to replace. It isn’t harming OSS, nor have I seen any tangible evidence that Ubuntu are harming OSS or releasing closed source packages. ONLY EVER ACCUSATIONS. So stop propagating myth. If you really have a statement you want to make, back it up with facts.

Gnome 3 team – Go back to school and learn some basic UX

Seriously. I love the way Gnome renders, but the implementation is a real clown show. And I can see exactly why there are forks from Gnome and why people are saying “Gnome is dead to me”.

Honestly – get your heads out your asses, and think about the people who would actually use Gnome.

 

That is all.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s