Saturday, December 13, 2014

Betterment of Ubuntu Ecosystem

I wanted to make this post so that I can make it clear where I stand on the various processes, cycles and work done by Ubuntu and Canonical.

From what I have seen till date, I believe that the people using Ubuntu can be classified into this set of three distinct people
  1. Developer base (people who are knee deep into development process)
  2. Pro-user base (Ubuntu users who know stuff but are not in any way contributing to Ubuntu)
  3. New userbase
Just to make things clear I am in the transition between pro-user base to the developer base. And I have been with all these sets of people to know the best about how people are and how their mentality is. So, when I offer suggestions, I not only mean them as my personal ones, but I speak as the self-appointed representative of the Pro-user base and the New Userbase.

Grievances of New User Base

First, let me represent the New User base. Their main problem is lack of information and the overwhelming nature of the information. I have personally met more than 10 people in my college who are fascinated by something other than MS that could make them look geeky (partly because of my promotion). And I have successfully converted around 10 people into Ubuntu users. I have installed LTS, gave them Ubuntu restricted extras and told them that this is the software center and use it to do anything.

I have experimented with the newbie section a lot. For the ones who I have installed Ubuntu, almost all of them quit the next day. Except for a few brave hearts. And there is a good reason for that. I will be telling the reason in another post.


http://aveemashfaq.blogspot.in/2014/12/my-experience-on-kde-and-takeaways.html

 My room mates use Ubuntu (as a result of me) on a regular basis. They use the stock system with the stock theme and stock everything. The reason why they stick along is that, I am their room mate. I am always there to help them out with any error message that they get. I mean even the basic of things. For example, my friend broke his system because he was doing a software update and the software updater was taking it's time in unpacking the data. The progress bar was not moving and he thought that his Linux has gone wrong. So, he shutdown his laptop. Then, I guess, I did a dpkg --configure -a and he is now not only happy, but very fascinated that I used one command and it coughed out all the problems. He wants to learn to use terminal. Yeah, the same person who did not click the details to see what was being unpacked now wants to learn this mysterious terminal commands.

I know that the new users are scared the hell out of getting into uncharted waters without any assurances of help. Hence, they abandon using Linux (mostly as I have seen).

On this, I wanted to add a note.

Solution to the New User Base

I believe that we need a centralized archive of information. And that information that is known to them. It was during the time of writing this article that I have remembered seeing an Ubuntu help. So, I explored it and found it in a good state. But the thing is that, since in other OSes the help is not useful, we naturally assume that this would be rubbish as well. so, no one cares. Remind them that you can use this help. Have a first boot up opening video. Something like this. Ofcourse with a lot of other information as well. For reference, watch what gnome did. Their intro video.



The written instructions do not usually be much helpful as videos. That is because the in the videos, they can actually see that he has a similar issue and they relate to it. Whereas in the writing, you have to read a lot, you do not post screenshots for every step and it is not soothing. Remember people panicking and shutting down their PC just because they felt that the software updater is not working fine.

Then, they will slowly grow up into Pro-users and we can lure them into contributing.

Problems of Pro-users

This is a great chunk of the user base. They are the ones who know, participate in google plus, askubuntu etc. We (I mean Pro-users) know the basics of Ubuntu, how it is working and what services are etc. We know how to add a PPA, how to edit a system file (example /etc/default/grub), all the software. And there are a lot of us. And the interesting thing about us is that most of us are interested contributing to Ubuntu at some level. But the reason is that we are alien to the development processes. We simply run in tangents to the development process by bugging all the g+ forums and writing on askubuntu.com until someone in the development team picks it up and implements it.

I shall admit that after a month or so of being in the community team and browsing through all the pages, I can only claim to know 50% of what Ubuntu is. I mean that I know there is Ubuntu on air, Ubuntu flavours, Mailing lists, Ubuntu clouud, QA team etc. But I am not sure whether I know all about what I need to know about Ubuntu. I want to help the people of Ubuntu with Project UbuntuNewbie. Daniel Holbach said to me Good. Get some like minded people and make the scripts and produce the videos. I showed him the mockup of website. He said, Yeah I like the direction that you are heading in development of the website. But the question is, I will design. But how will I be able to edit the community website. I don't want to create another website with these instructions ( I mean I don't want to make ubuntunewbie.com) because several attempts have been made and are also being made. My complete moaning is here.

http://aveemashfaq.blogspot.in/2014/11/bridging-gaps-in-ubuntu-user-base.html

So, we lack a general direction of heading.

Solution to the Pro-Users

Make an app. We have been past the years of mailing lists and separate accounts for every other activity. We are living in the world of integration and convergence giving the end users have a lot of simplicity. Today, to contribute to Ubuntu, you have no commonplace to be. For example, I am a pro-user wanting to come into Ubuntu development. I want to experiment all the ways possible and choose the best one that suits me. I am willing to learn whatever it takes to work in the position I look out to myself to be in (trust me there are people who want to learn whatever it takes to be in that position).

Firstly he does not know what ways there are to contribute in Ubuntu. The community website is not properly designed. My side of the argument is here.

http://aveemashfaq.blogspot.in/2014/11/my-design-ubuntu-community-website.html

Then, he has to create multiple accounts and use multiple sites to get into helping the community. For example, he would get into the google plus community when he wants to help out. Then get into askubuntu.com (which is stackexchange), setup launchpad account for contributing translations and I have recently discovered that Kubuntu team using something else blah blah blah. My point is clear.

Then the tutorials are not so clear. Documentation is boring. And the new environment looks scary. Trust me it is scary. Try doing a task which you have no knowledge of sitting beside an expert. For instance, try changing your car piston rings. You will know what I mean. Here is my experience with KDE.

http://aveemashfaq.blogspot.in/2014/12/my-experience-on-kde-and-takeaways.html

And then setup an IRC and whatever is required and all.

Instead, why can't we create a small app that can integrate all of these functions. An IRC client running in the background. Instead of the mailing lists, get the topic lists. In which the main content would be there. When a person clicks on the space after the line, he can add a comment which would have spacing. Something like giving a tab space after programmers create a loop. People can show their interest with a promote or demote system like in askubuntu. Hot trending topics will be displayed. And we could also have the launchpad Ubuntu projects linked or matched somehow. So, the latest needs for the projects can be posted so that someone can jump in. Like, I am making a video. I will be asking for helpers in general as well as specialists in animation creation. There will be a creative team which will be publishing articles so that people are hooked up (I mean a substitute for newsletter). Then there could also be that askubuntu.com is linked to it so that the questions are answered here. An integrated interface. And the most active person will be getting karma and bounty and all. And since I have been listening to the mailing list, I suggest you can select the top 10 karma people every year and send them some Ubuntu merchandise or whatever.

My aim for inviting the users is
  1. Make them aware of how to contribute (We do not have the exhaustive list of how to contribute. Even the website is a bit out of shape. Make an app)
  2. Make small tutorial videos for them to know how to do like the one given above.
  3. Create a bounty system to lure them and make them stick to the ecosystem.
  4. Integrate all of them into one place (one app).
  5. Finally, bring all the flavours together. More helping hands, more number of people, more inter-disciplinary work and faster development of the platform (the app and the resources behind it).
Finally, the developer base

We know that the developer base is more of an alien environment for me. But from the past experience that I have gathered, let me tell you the problems of the developer base. The basic problem with the developer base is the lack of co-ordination and support to the new ones. Let me make the issues clear point by point.

It seems that the idea of linux concept that you do whatever you want to do without asking anyone is the main issue. Let me narrate this as a story. A person decides to write a piece of software (assume that gtk on mir is written by one person) all by himself. Another piece of software is written by another guy (say suru icon theme is written by another one). The problem is that firstly, suru icon theme will get more praises in the non-developer base and a lot of accolades. The other guy who did the gtk on mir will be getting a lot of questions telling him that his gtk is broken or some feature is not implemented. A thousand mails, then he will have to do all the bug fixing and then in the UOS, a lot of negative comments on how you should not be getting a new server or you should be integrating with wayland etc. The best example of this is the debian guys on systemd.

Now, the second issue is that a person decides to maintain his own software. So, he is a part of the testing squad. He does a lot of testing, he is anxious and tries his hardest to break the software, get the bug fixes done in time. What does he get? He is just another guy. No one cares for him, no much effort is recognized. The best part of recognition is that he will be mentioned as bug fixer. yay. But the fellow who came up with the plan of having a scope and has written say those 5 scopes of unity 7 will have more fame because he is the writer of something.

Let us also assume that a person is very actively involved in the development of Kubuntu. I guess it has smaller userbase than ubuntu. Now, they do not have the fame to match the Ubuntu guys and they do things differently. We all know that Ubuntu has a trouble finding contributors. I can only imagine how hard it could be to get somebody into the development of allied flavours.

None of this issue is much of a problem. But, all of them together are impactful in demoralizing the developer. Then comes the fact that most of the developers are overloaded with work. It makes no sense that developers do the task of small things forcefully (I mean a person has written juju charms and he is good at writing them. Instead of making an effort to test every case of it's working, it is simpler to teach people how to use juju charm. They will generate the test cases by themselves). So, we need a proper governance team to ensure that efficient participation is taking place within the development process and that the developers are not demoralized. They can also perform the additional task of distributing the work and guiding people, motivating them etc.

Solution to the developers

Get a development app so that everyone is measured on the same scale. Even developers need motivation. AND being the top developer is the biggest motivation. Get a management of resources team so that more efficient work can take place. Trust me on this, they can make work far much happier to the developers than it is. And far more efficient and also very motivating.

Complaints with the current set of line of action

FIrst of all is the transparency paradox. I know that this is the first UOS I have attended. But, the biggest problem with them is that the transparency paradox. I have seen that in the verge of making it transparent for people to participate, they are having hangouts session stored on the internet. You are idiots to do that. No one wants to listen to an hour of hangouts in which half the time, you are typing something or half the other time, you are saying the word "um". WE are in the age of talk shows and all kinds of refined media. We are bored and confused(pro-users) as to why the hell they have these things. I know that this is the place  where I have come in. But I cannot fail to forget that I have played some other videos during my time in the ubuntu google plus community, waited for the 1st minute where you were asking questions am i online, wait let me set this up, and then moved forward to the middle of the conversation and then some things spoken on tangents and using high level words. Let me make this clear to you. It is supposed to show transparency. Not show people that the developers know a lot of technical terms. And not cutting off the first bit does not help. Instead, if you have a consolidated and concise video report of what has been happening along with a Q&A session where people who have registered questions over weeks have been answered, that would be lesser transparent and more successful. The only reason why you have people getting into development after stumbling into UOS is that because there is no better way. The community website is crap (no offence meant) and for the lack of other ways, the only way people actually get into Ubuntu teams is from the UOS. That does not mean that UOS is the best practice. It is still deeply flawed and is not meeting the the requires standards.

Now, coming to the second biggest complaint. Your attitude that when you want to contribute, just grab a chair and start contributing. That is one of the stupidest things to do. Get some mentors. Guide them through the various steps of the development process. Put some points for good mentorship as well in the app (that i have just proposed). Let them discover their interests in those things. When you know all of something, then it is easy for you. But when you know nothing, you would be stuck even at small things which are universally accepted as easy. For example, when I was a child, I always wondered that when you turn the key to start your car, does the key get stuck in the start position or does it spring back (as it actually comes back when left). Pretty dumb huh. But true. We need good mentorship as well. I mean as of now, we need mentors to create a batch of mentors so that the newly formed mentors, i.e newbies who have become mentors can help out to let the cycle going.

All your argument and rambling. It is a community. We need to have a conversation thread instead of mailing list with a voting up feature. So that the others know about the hot topics and the most supported conversations so that soemone else if interested can get things done. Like Project Ubuntu Newbie. I have seen that the days following it, I have had almost 20 to 30 messages about showing support, commenting and improving it. Then it just died out (because it happened during a weekend and the people who ignored the mail in the weekend got new ideas and this became history). I whole heartedly wish that someone would say, "OK. Lets make Ubuntu Newbie. I will ask whether people like your ideas. Then, I can design the website on the mockups you have made (because I have never done a website editing) and you can make the videos."

PS: I had exams till now and have not followed the conversation that happened on #ubuntu-on-air as of the time of posting. I will be watching all of those soon.

Wednesday, December 10, 2014

My experience on KDE and the takeaways

I have been using Linux for about a year and a half now. I started with Linux Mint 14. Exactly when it was released, I installed Cinnamon. Then, I drifted to gnome and then to Unity. I have been using Unity since 13.04 (actually I decided to give unity a try as soon as 13.04 was launched) and since then sticked to it.

The reason why I wanted to give KDE a shot was because KDE5 was launched. I took the preview image. Then I thought, how different KDE4 could be. Here are my views.

First of all, you have a very good looking polished and a very eye candy desktop. The mouse pointer is the highlight of them all. I simply love the bouncy animation and the flipping of the pointer and the shape of the mouse. The animations that I have tried out were fantastic.

Takeaway: I actually installed Kubuntu as replacement for Ubuntu just because of the eye candy.

Then comes the interface. The Super key not assigned to the menu. I am afraid to point out that no matter how many arguments that you make, Super key is traditionally attached to the Launcher and that is it. No more arguments. If you decide one day that, no I am going to change this, you will be abandoned because you are doing a non-productive task. A key combination is not going to work (because it is too complicated). The absence of the key might put off the user to use mouse everytime he wants to access start menu. I know that there are ways to reassign Super key to launcher. But the point is that, you don't say that "This is the latest laptop to come to the market. Do you want to have a HDD in this, because I thought you might carry your old HDD with you so that your files are backed up".

Takeaway: There should be a minimum set of features and checklists in doing a particular task. They should be satisfied or you will be loosing your User Base.

The theming system was better than what we have for Unity. I know that unity has tweak tool which applies the theme etc. But the presence of an inbuilt theming system with one click install is awesome. Although it did not work for me, I can only applaud at your sensible choices. I guess the theme looked outdated but we should realize that we are actually speaking about the time when the replacement is being launched. So, no worries.

Takeaway: Something other linux DEs should learn (I mean unity and gnome) is that get a few things as standard. Even Xubuntu has a theming service. Why not unity. Please get a click to add PPA system. Make everything accesible even in GUI (I mean traditionally all the modifications are done in CLI. Get a GUI substitute as well).

Now to the bad bits. No universal proxy. I know we are a small set of people who live in proxified networks (because of colleges) but please do not ignore us. It is irritating to add and remove proxy all the time. I know about the third party app, But gnome and unity and Cinnamon have Proxy options inbuilt.

The absolute reason for me to turn back to Ubuntu is the shear number of buttons in each program. I know I might sound like a coward but it is true. For an experienced user, it is OK because he knows what he is doing. But for a novice, seeing those many options simply means, I am more noob than I thought I was. Please so not scare us to death. Make things simple. I know you have as I have seen in the developer preview.

But, this was not meant as a review of KDE4. It was meant to be a platform to put my points forth that what in general can attract newbies and what can repel them.