Monday, May 6, 2013

> Linux is about choice.
If I could only have one thing this year, it would be to eliminate that
meme from the collective consciousness. It is a disease. It strangles
the mind and ensures you can never change anything ever because someone
somewhere has OCD'd their environment exactly how they like it and how
dare you change it on them you're so mean and next time I have friends
over for Buffy night you're not invited mom he's sitting on my side
again.
As a consumer, yes, you have lots of choices in which Linux you use.
This does not mean Linux is in any sense _about_ choice, any more than
because there are so many kinds of cars you can buy that cars are about
choice.
The complaints up-thread about juju and pulse are entirely valid, but
the solution is not to try to deliver two things at once. If you try to
deliver both at once you have to also deliver a way of switching between
the two. Now you have three moving parts instead of one, which means
the failure rate has gone up by a factor of _six_ (three parts, and
three interactions). We have essentially already posited that we have
insufficient developer effort to have 100%-complete features at ship
time, so asking them to take on six times the failure rate when they're
already overburdened is just madness. Alternatively, we could say that
we're integrating features too rapidly, but you do that at the expense
of goal 1, to be the showcase for the latest and greatest in free
software.
Software is hard. The way to fix it is to fix it, not sweep it under
the rug.
There is a legitimate discussion to be had about where and how we draw
the line for feature inclusion, about how we increase and formalize our
testing efforts, and about how we develop and deploy spike solutions for
corner-case problems like the one device class that juju happens to do
worse than the old stack. But the chain of logic from "Linux is about
choice" to "ship everything and let the user chose how they want their
sound to not work" starts with fallacy and ends with disaster.
- ajax

Tuesday, October 30, 2012

More evidence of cluelessness. In a weird late night rage, against my better judgement, I found myself reading this article over at Phoronix, about how Ubuntu is thinking about an SDK.

A proper Ubuntu Software Development Kit would be nice for developers targeting Ubuntu SDK with a standard set of libraries/interfaces that are stable, but this isn't likely to please non-Ubuntu Linux users. This SDK that Canonical will look to push to application developers will likely be centered just around Ubuntu's needs and not the Linux ecosystem as a whole with other Linux distributions not being a focus, which could potentially lead to greater Linux desktop fragmentation.

Anyone who's been around long enough knows that any time some one of people tries to move the ball forward by doing something different, everyone thinks it's their right to crap on them. Worrying about fragmentation is the fucking dumbest thing you could do at this particular moment.

Desktop Linux is already heavily fragmented. The benefit of potentially getting major app developers to sign up far outweighs any incremental fragmentation this might create. In fact, if this actually works, I predict that suddenly every other freetard distriution will offer SDK compatibility, and then spew on about how open source is great because it allows all kinds of variation while keeping compatibility. In other words, you will see someone writing a blog post about how you can run Steam in XMonad. Because that's totally relevant, and it's the one thing that desktop Linux is missing.

It's not about how many incompatible choices there are, it's about how your users are distributed. Nobody gives a shit about how Ubuntu creating a stable SDK makes life harder for some crack-laced minty fresh Ubuntu derivative. Ubuntu already has a lot of users, if not the majority of desktop Linux users. That means this move could make desktop Linux better for the majority of users. If some big ISV signs on, it could mean that there are now 5x more Ubuntu users, making it by far the biggest majority. When Ubuntu grows the market by 5x, and owns 80% of it, the Linux desktop userbase is now less fragmented than where it started.

Fragmentation doesn't mean shit when the market is so small. Freetards argue about how things are fragmented for the 1%. Well, when you only have 1%, the problem isn't that you're too fragmented. The problem is you're not doing the right things to grow beyond 1%. Fragmentation is a problem for Android. Not desktop Linux.

Friday, July 27, 2012

There is a certain art to buidling a website for your open source project.Before you create your own, make sure you know and follow the rules. You’ll thank me later.It’s simple, really. It’s all about the first impression.In particular, your site’s first page must communicate the following points:

It must mention the fact that your software is open source or free, or whatever bastardly combination of the two, even before explaining what your software does. Extra points if you mention exactly which license you use, and if you help educate the masses about how speech and beer are in fact, different worldly entities. Studies show that if your users do not understand exactly whether binary linking is allowed with your software, they will not use it.

If the name of your software is an acronym, you must explain what the acronym stands for, with even more confusing terms.

You must note which programming language your software is coded in, because that’s the first thing that any potential user will care about.

You must note how your program is modularized, and anyone can add modules and customize it to actually do what it was supposed to just do in the first place.

You must mention that your software is localized. Because, crappy software is somehow better when it speaks your language.

You must immediately jump into a “recent announcements” section, which has items that only the 3 developers on your project would possibly understand or derive any value from. Extra points if you have an embedded commit log.

You must mention that your software runs on at least 5 irrelevant platforms.

Refer to your application as a framework. Since all good great applications are framework. Firefox is a browsing framework. Gimp is a image processing framework. iTunes is a music listening framework. See?

Don’t ever call it an installer. Call it a binary distribution. Better yet, make sure the only way to install is through github. Make sure your github page offers no clues on what to do once you’re there.

There. Now you’re equipped to go create a site can compete with the best of ‘em. You’re welcome.

Tuesday, November 22, 2011

The Ubuntu One team have started work on u1db, a project codename for an easy-to-use database API layer which can work on any platform (Ubuntu, web servers, Windows, smartphone platforms) with the existing native databases (SQLite, MySQL, API layers, everything)

Is it just me, or does this sound like the database equivalent of pulse audio? I can't wait until we have the ultimate abstracted UI. The one that lets you watch porn in the same way across all platforms. It will have to be open source, of course.

Seriously though. If I've learned anything, it's that OSS projects can't make a choice. And when you can't make a choice, what do you do? You support all options! Yay! How do we support all options? An abstraction layer! Yay! Abstraction layers are fun to write! Yay!