Saturday 28 June 2008

Awesomeness

This is awesomeness. Since when did Bravo broadcast anything important?

Sunday 15 June 2008

SUMMER!

I set my goals higher everyday
I make my own rules that I will obey each moment as long as I live
This is the life I was born to lead
Unique chance for me to express myself
And fulfill my dreams
I'm in control of this ship of mine
And everything will be just fine
Like the wind I'm free to go anywhere
I got my song, it dances in the air
Now I know what I'll do with my life
Now you will hear my freedom call

All those bad times I've had in my life
Change into blessings if I change the point of view
I needed them to grow
I've changed so much
I'm finally free
To do what I want
Without any fear and guilt
It's so amazing
I'm in control
Like the wind

-- Freedom by Stratovarius

Thursday 12 June 2008

Make Ubuntu a simple "Gateway" Distribution, make switching to something else easy

Sorry for having to post this here but Brainstorm wouldn't let me enter the whole text :(

This is not an idea to be implemented now, or for Intrepid, so please don't vote for it as such, instead think of it as a goal which will hopefully be achievable at some point (most likely with some clever hacks).

My idea is simple, literally.

Some background:

There are many, many balancing acts to perform as a distribution. The number of included applications versus the space needed for them. New and interesting software versus potential instability. The problem with these kinds of decisions is that they have to be made, but different people want different things.

Ubuntu is descended from Debian. Before Ubuntu, Debian was a huge collection of packages on CDs/DVDs/line/whatever in which the only distinction given was "neccessary" or "unneccessary". Neccessary packages are those packages which are needed to have a working package manager. Once their installation was fulfilled, Debian's installation was finished, leaving the user with a shell prompt from which they can apt-get anything else they might like. Ultimate flexibility, but ultimately unapproachable (well, except when compared to Gentoo maybe).

Ubuntu's installation, on the other hand, specifically installed many packages deemed unneccessary, such as a graphics server, desktop environment, office tools, web browser, music player, etc. These choices took away flexibility but they made the system a lot more approachable: after installation the user is presented with a largely approachable and intuitive interface (a GUI is subdivided and organised and can thus be explored, whilst a CLI has no depth as everything is the same distance away (a command) and can arguably only be used by someone who knows the commands they want, or else be overwhelmed by everything at once). They gave Debian a face. Not only did these decisions force unneccessary packages onto the system, they also forced certain choices of those unneccessary packages (Gnome over KDE/Fluxbox/GNUStep/Enlightenment/etc., Firefox over Epiphany/Konqueror/Galeon/Dillo/etc.)

This could be done since Ubuntu had no user base and could therefore install anything and be judged on the merits of that decision, rather than having a protracted argument with current users over those choices and ending up with a system that some of their users didn't like anymore.

Taking the step of making these decisions for the user made Ubuntu phenomenally popular. Distributions which had already been installing graphical desktops by default such as RedHat, Mandriva, etc. were overtaken by a Debian installation, which had existed in exactly the same form for a decade with the only difference being the replacement of Debian's "Take what you want" with Ubuntu's "Try these". Ubuntu has become extremely popular amongst the Free Software community. It is used by the newcomers who don't know anything else, there are huge numbers of people who are using Free Software around the world only because of Ubuntu, and it is used by the professional kernel hackers who want their computer up and running so they can get to work reprogramming it.

The problem:

The combination of Ubuntu's ease of use, the open and transparent nature of its development, the huge number of users and the nationalism/patriotism/etc. and resistance to change inherent in most people form a problem for Ubuntu. That problem is that Ubuntu is now on the other extreme of the can't-change-due-to-user-complaints scales. Ubuntu is one of the, if not the, most widely used Free Software computer systems in the world. The current users obviously like how it works or else they wouldn't be using it in a world of constant pressure to give up and use Microsoft Windows.

This means any kind of change is going to upset some current users. However, change must happen or else momentum is lost, and 'bitrot' makes even the latest and greatest unusable after a period of years (for example try running the very best floppy-based system from 1994 now where floppy disks are hard to come by, or try using a more common USB drive on it and end up manually installing so many dependencies that the system essentially becomes a modern distro).

There are three things which change: the type of users running the system, which was originally "For Human Beings" as opposed to geeky hacker-types, but is now run by a large proportion of said geeky hacker-types (including me); the users already running the system, who tend to become more experienced and knowledgeable of the system over time; the system itself.

Based on the tendency of the users to become on average more and more proficient with Ubuntu there is pressure to make the system's entry-level proficiency higher so that current users can enjoy more flexibility. However, this is contrary to Ubuntu's original success and is akin to accepting a few more people into the fold and becoming entrenched again, as opposed to pushing for everyone's involvement.

My idea:

Turn Ubuntu into a "gateway" distro. This doesn't mean sacrificing any flexibility in a system, since an installed Ubuntu can be turned into anything the user wants, it merely means simplify finding out about, getting and subsequently installing Ubuntu. Such concerns should take precedence over power or control. For example, many people would like the option for what gets installed. This is a 'power-user' convenience feature, and a hindrance to new users. Freeing up space by not installing programs means absolutely nothing to a huge proportion of people. There is a reason why handheld music players are everywhere whilst handheld computers which can play music are not, it is the same reason Ubuntu exploded whilst Debian merely expanded. There is a reason why such music players are advertised based on an inaccurate metric of the number of songs it can store instead of the exact metric of drive size, it is because scoffing geeks are in a minority whilst people who do not know what a megabyte is are in the majority, and it is how Apple, Microsoft and others routinely wring them of their cash, strip them of their rights, monitor what they do, etc. whilst we try explaining why we are different in terms they do not understand.

If you install Ubuntu, or any computer system for that matter, for someone try asking them everything the installer does. What timezone would you like? Would you like to import web browser bookmarks? What keyboard layout is this? I guarantee they will give an answer along the lines of "whatever you think". This is because people who care about such questions are more than capable of using the installer on their own and know this, whilst those who cannot use the installer (for either real "I don't know what this is asking of me" or imagined "I don't know computers" reasons), and thus need someone to help, do not care. Such people's inability or unwillingness to use the installer is a very, very important bug. However, it is incredibly underappreciated since it takes someone else to report it on their behalf.

I'm focusing on installing since that is the major hurdle to overcome. In the proposed gateway distribution everything that can possibly be made automatic or preselected is done so. Questions are avoided unless absolutely needed, with user direction being preferred eg. the "Choose your language" options could be replaced with a scrolling list of "Click the language you can read best" written in various languages, the keyboard layout could ask the user to press certain differentiating button combinations to discern the layout from (out of a shortened list, since Dvorak keyboards, out of production keyboards, etc. can be removed as niche). Clueless people preferr concrete, doable instructions rather than the stress of a question (even if it seems superfluous to those not ignorant of the program).

The ideal installation program would be one that doesn't exist and thus has absolutely no options at all. This can be seen in preinstalled systems, which are without doubt the easiest to set up. This fact is also why Microsoft and Apple enjoy such widespread adoption of their systems; only a tiny fraction of their users have ever installed it. This method is proven to work and thus should be strived for, and a step in that direction is removing as much as possible from the installer. The next step from preinstallation would be a big button on ubuntu.com which says "Give me Ubuntu" which, when clicked, results in a default Ubuntu desktop appearing on the machine ready for use. The user may never touch some of the software installed by default, but they don't care and they are the ones wo matter. Those who do care should not complain, since they're using a gateway distro and if they want more control they should use something else, which they are more than capable of doing since they understand things like installing and removing software.

This brings me to the second major issue after ripping as much as possible from the installer: Changing distros should be painless. This could receive a lot of criticism since distro-nationalism is widespread, but the "not ready for granny" users and the "let me choose GNOME or KDE" users should not be using the same distribution, plain and simple.

In the Free Software world distributions are their packages. Changing the options presented to granny and desktop chooser means changing the software they use (having an "Advanced Mode" only goes so far, especially when some users want a QT-based installer and some want GTK, some want LVM set up by default, others want a single partition by default, the sort answer is that defaults can't be different), which means using different packages which, from the Kubuntu/Xubuntu/etc. take on the definition of distribution (which is the sense I'm using here), means using a different distribution. The difference may be as small as Ubuntu/Kubuntu or it may be as large as Ubuntu/OpenSolaris, it doesn't matter. Ubuntu should exist as a conduit, facilitating the flow of people from the non-free world to the Free World. After that decisions are pragmatic, ie. what does the user want to use?

Once users are asking themselves this question they should be able to move around with as little hassle as possible. That means not only from distro A to distro B but also from distro-with-desktop A to distro-with-desktop B, distro-with-package-system-A to distro-with-package-system-B, disto-with-kernel A to distro-with-kernel B and any mixture of those and everything in between. This doesn't mean with no effort of course, but it means that no data is lost, documents are still openable, etc. This is obviously a large undertaking, but it is completely possible with a combined effort, perhaps enforced by upstreams if distros are incapable of doing it themselves, and isn't as hard as the installation issue from a technical point of view since it could be implemented as another option of the ditros' installers as it is assumed only advanced users would stray from Ubuntu, and those incapable of doing so wouldn't know or care about which system they use anyway and thus wouldn't understand what switching distros would mean.

With such a system implemented there can obviously still be the distro wars of old which we all love, yet they should only take place separate from the conduit layer. Users should strive to introduce people to gateway distributions (there doesn't just have to be one) rather than to the GreatOnceYouKnowItButItTakesAWhileToLearn Linux 8.4.12 beta 3 which they just so happen to use, and fighting between gateway distros would be severely frowned upon (their job is to get users from Windows Land, Mac Land and Never Used A Computer Land, not from each other or any other distro, once people choose Free Software no marketing from their peers should push and pull them around anymore. Even if their distro really does suck). Adding extra complexity to a gateway distro would need very careful consideration, with the caveat that if it doesn't make life simpler for someone completely new to the system then it should be done in a different distro away from the gateways. Non-gateway ideas would include things like "allow me to choose packages that get installed", "option to disable Tracker", "add tabs/split screen/yet another right-click option to Nautilus", etc. whilst gateways should welcome ideas like "put all printing options in one place", "mount USB drives synchronously so unplugging doesn't lose data", etc. since such things would make life simpler, even if there are those who would oppose them for some other reason.

Sunday 1 June 2008

My Dilemma

Other than fitting blocks into a designated area, of course, is the battle between what I want to do and what I want to do. It is the internal confict of desirable means with no ends versus less desirable means with ends. I'll try to list the current options for spending my time post-exams:

Programming - Pros: Learning and getting better, has a good output, possibly career-related, Cons: tedious at times, solitary, staying inside

Drawing - Pros: Learning and getting better, has a good output, Cons: can't be simply turned on, staying inside, solitary

Animating - Pros: Learning and getting better, has a good output, Cons: staying inside, solitary

Computer games - Pros: Time can be spent with other people, fun, Cons: Doesn't achieve any output, doesn't better myself

IRL games - Pros: Time can be spent with other people, fun, time can be spent outside, can involve exercise, Cons: Doesn't achieve any output

Exercise - Pros: Has an output, time spent outside, Cons: Has little transferable output

Watching TV/Films - Pros: Can be done any time, little effort required, time can be spent with other people, Cons: No output, staying inside

Sleeping - Pros: Needs to be done sometime, Cons: Doesn't have any output

Getting a job - Pros: Produces an output, possibly career-related, Cons: Fixed timeframe, may be difficult to find something desirable

Those are a few of my options. I generally catagorise things into creating and consuming, then avoid the consuming things unless there is a reason not to. This is the reason I don't play computer games or watch Anime anymore, why I minimise my TV watchage, keep away from NoDDSoc, etc. However, if I'm to be internally self-consisent I need to make sure I actually do stuff. A breakdown of my University holidays would go as follows:

1st year Christmas: Long periods at home doing nothing significant other than talking online to Harriet and waiting to go to Huddersfield, interspersed with periods spent there. Can't remember making anything creative I can look at now. Altogether dominated by the time wasted at home, pretty hypocritical really.

1st year Easter: Long periods at home where I worked on a physics engine in Java, partly course related partly personal. Learned a LOT about programming. Interspersed with going to Harriet's and Harriet coming to Sandbach. Pretty productive overall, since time alone was spent well.

1st year Summer: Very long periods doing very little at home, interspersed with short periods with a lot of activity. These periods were going to Huddersfield a few times, all such visits I am counting as being productive BTW since relationship time is always time well spent (why else be in a relationship?) LUG Radio Live, GUADEC and time at Loz's and in Sheffield. Was slightly productive when I was on my own, since I made the first incarnation of my package management tool, but considering the time I was alone it's pretty mediocre.

2nd year Christmas: Other than going to Jo's didn't produce any kind of output, except for negative shortbread. Time alone spent badly.

2nd year Easter: Mostly spent at Jo's so very little time to waste on my own. Still, didn't get much done.

So, I am writing this because I am clearly a lazy bastard who needs to either stick to his philosophy and be creative and useful, or else spend the time he's not being productive doing something he would enjoy (ie. the stuff I've been stopping myself doing).

The irony of this post is that I should be revising for my Solids exam which looks like I will fail epically at.