There could yet be hope for Windows

I’m in rant mode, and Microsoft you’re next on my list. Seriously if you’re part of the Windows product team you might want to read this because I have some good feedback for you, something you guys with your research budget seem unable to figure out.

The good

Keeping this simple, the good thing about Windows is the existing ecosystem. Every player in the game knows their part. MS provide the API’s, Manufacturers the drivers and developers the applications.

A real world example of this would be a complex Logitech mouse. The end user is able to setup the device using Set point, and everyone has done their job well. The end user is really happy.

On Linux it isn’t that simple. Logitech don’t release the driver. Developers don’t have access to rich tooling and the end user gets told – USE THE COMMAND LINE. And then who or what is Linux? Exactly who’s responsibility is it to fix this?

So Windows wins hands down in terms of a logical ecosystem.

Tooling on Windows is also exceptional. Visual Studio / WPF / And all the good things that go with that. Easy to take for granted, but the tooling in Windows is second to none.

The concept of executables by extension too is something I’ve taken for granted but having installers and executables is logical. In Linux the closest thing to this is a .deb package and that too is good.

But don’t pat yourself on the back yet,

The bad

Closed source, one size fits all offering. Windows comes with a boat load of services and features a lot of people don’t actually want or need. A lot of super users are frustrated that no matter how much they want to tinker Windows, it remains FAT and bloaty. Indeed Windows is the most bloaty OS I know.

Isn’t it about time to modulate Windows a bit? Offering Windows as a series of layers that can be installed in a modular fashion, similar to how things are done in Linux. This would mean providing the building blocks for the operating system and handing over the reigns to the end user for the exact implementation.

If Windows was more modular, it could really compete as a modern desktop.

Ditch the registry already!

Seriously get rid of it.

Offer a standardized development approach.

I know .net offers a good suggestion for standardized development, but a lot of this isn’t enforced. It’s 2013 and we know enough about computer science to know what is the best way to store configuration (for example). Standardize it!

Expose a Desktop Environment API

Seriously give users the ability to tinker their system till their heart is content. Allow users the ability to create distributions based on Windows that for example resemble Chrome book. Exactly why are you so scared of relinquishing the control? Implement incentives for users to license these derived distributions and consider offering a percentage based payment scheme to authors.

Stop pushing the hybrid tablet UI

If you exposed the desktop Environment API, you would allow users to create full desktop mode or full tablet mode variations of Windows, instead you assume wrongly  what your users want and provide them with a terrible user experience.

Some food for thought!


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:

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.