Tuesday, January 22, 2008

Communication in an overgrown community

Here I try to answer problems posted at Why I’ve stopped reporting bugs to Ubuntu. In this discussion we should assume that everyone involved in a free software project is benevolent. This may not be true in some particular cases, but greatly simplifies discussion.
I belive problems you are facing with Ubuntu developers are part of a larger communication problem within the free software development community. Namely the community has grown so large, that it becomes difficult to communicate with others involved. Actually there are two problems here: communication between project members and communication between different projects. Here I will limit to the first, which will still take a lengthy post.

Developers now hardly only scratch their own 'itch', as there are many requirements coming from all over the world. Experienced developers have more features to add, have more developers-wanna-bes to teach, so they spend less time teaching the beginning developers. Also beginning developers have more and more bugs to solve and less time to spend with them. They are likely to haste the closing of a bug as that could take them closer to being 'full' developers. They have a rather self imposed target of closing bugs and that is a normal desire for advancement. They may not even realize that their bug patch is not ready for 'prime time'. This is not to say that it is anyone's fault. Everyone is working just as before, only there is more work to be done, there are more people to talk to.

Let us take some examples:
On the developer side, I belive the SourceForge.net, has over 1.7 million members and 167,515 projects. Even assuming half or more of those accounts/projects are inactive, these are still staggering figures. Imagine a quarter of these projects are active need at least a maintainer to make them work in your favorite distro, that requires 40.000 maintainers per distro!
On the user side UbuntuForums.org has 483,921 users. How do you handle that many users asking what not and making a flurry of bug reports? Most Linux Distros/projects are expected to hit this wall sooner or later, depending on their how good are their best practices in communication. Please read what Daniel Robbins says about the Gentoo community(-ies) at A tale of two cultures

Let us go to large monolithic projects, where the kernel 'Linux' tops over all other projects with 2500 developers. Here is the perspective on the developer side Being a Moron on linux-kernel. On the user side, nobody really knows how many running kernels are in the world, but we can surely tell that the figure puts a big strain on the user support sites. Communications problems here lead to ugly situations like Kernel Developers vs. Mainstream Users Duel. Also, here is a quote from the APC interview with Con Kolivas:

If there is any one big problem with kernel development and Linux it is the complete disconnection of the development process from normal users. You know, the ones who constitute 99.9% of the Linux user base.

Here is my atempt at a plan to solve this issue:
  • we need to raise awareness that we have a communication issue;

  • once everyone knows we have this communication issue, we should try to define it more thoroughly;

  • once it is defined we should try to find solutions.

There are several problems with this plan:
  • it requires communication throughout the community

  • we do not know precisely who is 'everyone' in the free software world.

    But How do we talk to non-contributing users? We surely can not ignore them, they are part of the problem!

  • How do we know when everyone knows enough about it? How do we know we have reached an agreement on defining this issue?

Let us not even discuss how can we solve it. It could lead us to solving problems of a group and ignoring everyone else's. That is no way good. Before introducing the "gate" system, Linux kernel developers had big problems like having no free time. Is the new system better? For developers it is, for users I'll let you, the reader, answer that question.
To end up on the positive side people should know this issue is being addressed at Linux_Foundation_Collaboration_Summit and here is where Mark Shuttleworth talks about some nice tools on improving collaboration: Ubuntu perspective.
These efforts are something that need be encouraged and extended. Also read my older posts at Better free software development and Standard for communication between project infrastructures

The social change towards using Free Software

IF Microsoft or it's partners could do anything else to threaten us they would undoubtedly DO it right away and they would not let it linger. Also if this is the best they can do, then the rightful conclusion is that we are superior to them.

Read what Mahatma Gandhi said:

"First they ignore you, then they laugh at you, then they fight you, then you win." Wikiquote(This quote is also promoted by Red Hat.)
How do Gandhi's words apply to Linux: In 1996 Microsoft ignored Linux, in 2001 they laughed at us, now Microsoft fights us: Google
search on NCSoft and Linux
. Now they fear us as their most dreadful enemy. But how long can one company's greed and desire for domination can win against everybody's desire for freedom? Not indefinitely, that's for sure! And we're not going away!

See what Martin Luther King Jr. spoke about fighting for social change:

As the days unfolded, however, the Christian doctrine of love, operating through the Gandhian method of nonviolence, was one of the most potent weapons available to the Negro in his struggle for freedom. San
Francisco Chronicle

Like Gandhi and King, we also fight for social change: using Linux is ultimately a social activity,
helping others use Linux is also a social activity, developing Linux software is only more so.

Keep fighting, be civil, helpful on forums and never despair. Linux and free software was never in a better position than it is today. We fought a long way, there is a long way ahead of us and we have to keep it up! Do not be angry with Microsoft, relax and invite others join the Linux party, it's so much fun!

Wednesday, January 16, 2008

Quote: To parents: A free (as in “freedom”) exercise for your children

I read this blog post "
A free (as in “freedom”) exercise for your children
which promotes free software as a tool for educating children. I belive this is a must read for any parent!

The idea presented helps children learn many things:

  • collaborate with other children

  • make something with a purpose

  • being proud of what they have done

Sunday, January 6, 2008

Standard for communication between project infrastructures

I see the way forward as a Foundation Board (free to join as individual contributors, not permited for companies) that establishes community standards on all collaboration resources.

Such a standard should include what kind of information should be contained in a bug report, and this could in turn be implemented as a RDF resource. As far as I have seen LaunchPad already provides RDF resources for bugs. This way there would be an easy transition between different project infrastructures: maybe one will be able to take all the bugs (closed or open) her/his project has on Source Forge and have them automatically imported, as a batch, into LaunchPad or CollabNet.

For project infrastructure there are also tools like Maven, which ads the goodness of dependency management. We should check the effectiveness of Maven and similar tools, find their weakest spot and make a request to the responsible team to improve that feature.

I also think we need to research more thoroughly a free software development methodology. We do not like some Agile or XP programming ways of doing things, so we need our own methodology/-ies. There are some academic studies on our development model but they are scatterd across different web sites. The idea is that we do need a more structured, integrated documentation tool on how we do/should work.

This research is needed to prepare the infrastructure we will use 2,4,8 years from now, when both the number and the diversity of contributors to our community will grow immensely.

GPL versus Creative Commons

GPL is the license under which most free software is released.
Creative Commons are a set of licenses under which most free art is released.
Both licenses can be used for collaborative development.

There are many Creative Commons licenses and they have only one thing in common: their name. The actual terms of licensing can vary broadly from one license to another.
See the article Richard Stallman gave to the LinuxP2P.com (link to web.archive.org):

Some Creative Commons licenses are free licenses; most permit at least noncommercial verbatim copying. But some, such as the Sampling Licenses and Developing Countries Licenses, don't even permit that, which makes them unacceptable to use for any kind of work. All these licenses have in common is a label, but people regularly mistake that common label for something substantial.

I no longer endorse Creative Commons. I cannot endorse Creative Commons as a whole, because some of its licenses are unacceptable. It would be self-delusion to try to endorse just some of the Creative Commons licenses, because people lump them together; they will misconstrue any endorsement of some as a blanket endorsement of all. I therefore find myself constrained to reject Creative Commons entirely.
I agree some Creative Commons licenses have nothing to do with Free Culture, but why is no one promoting the GPL license for artwork?

Here is what the Free Software Foundation publishes on their page on licensing:
Licenses for Works Besides Software and Documentation
  • GNU General Public License
  • GNU Free Documentation License
  • Creative Commons Attribution 2.0 license (a.k.a. CC-BY)
  • Creative Commons Attribution-Sharealike 2.0 license (a.k.a. CC-BY-SA)
  • Design Science License (DSL)
  • Free Art License

Free Culture sells Linux better than any feature set

No matter how many features we add to free software, when a user compares our products with a proprietary one she/he does not see any difference. It is still a buggy piece of crap, made by some folks far away, that does not work as expected. We are not any different from them. Free software will never differentiate from the proprietary products in our current proprietary culture. Real end users see us as programmers, not as different institutions, companies. There is no Microsoft to fight with in that world, only some programmers or IT support people. The IT people are generally some bad guys, scum, dirt lovers whose help everyone needs. To succeed in this world we need paint ourselves in a whole different color than proprietary vendors.

Features and feature sets are the tools of marketing the old proprietary software. In a free software world, when comparing two free software products features are irrelevant, as anybody can copy source code from everybody.
"XMMS got a new feature I don't have in my music player software? Where is that XMMS's source code? Hmm, no problem I'll add it in two weeks!"

Features and feature-set comparisons with other software (proprietary or not) make us look the same as the old proprietary software. Features we have (and proprietary does not have) are hidden to new users, so we are not a bit different. Or even worse, we lack that feature X from their previous software. No matter what, we are lagging behind. This is no way forward.

Start advertising something no proprietary software has! That "something" is "Free Culture". Since Free Software is a subset of "Free Culture", no proprietary vendor in his right mind will advertise that.

What is this "Free Culture" I keep talking about? Here are a few definitions:
Free Cultural Works
Wikipedia page on Free Culture Movement

What means promoting Free Software through Free Culture? It means we need to start advertising the collaboration tools in our software. We have to enable and encourage artists to share their work with other artists and with the world - just as our programmers do. Go out there and tell student/young artists how they can work more efficient as a collective. Show them examples of "free cultural projects' that are successful and which they can contribute to. Examples include:

  1. Wikipedia
  2. Students for Free Culture
  3. Mutopia Project - sharing free music sheets
  4. Project Gutenberg, the first producer of free electronic books
We have the motivation, the responsibility and the technical means to promote Free Culture. What stops us from doing this? Licensing?
That we will lose support of some people? That is unavoidable anyhow!
But look what we would gain!

Switching to Linux, switching to free software

This blog entry was first filed on The Tux Project in response to a forum question "What caused you to want to use Linux?" At "The Tux Project" people come and share ideas on how to promote Linux.

First a little more about myself: I work in Bucharest, Romania, Eastern Europe.  My mother is a computer analyst/programmer and I had a PC at home since 1991. I went to a highschool where I studied informatics (mostly programming in Turbo Pascal 6.0, Borland C++ 3.1). Then I went to university to study, again, Pascal, C++ and Microsoft .Net. Now I am employed as a Java programmer for a proprietary software company. I know a few things about software security too. 

I know about Linux for 7 or 8 years. First contact was with some other students in my high school talked to me about that other operating system called Linux. They were using this Linux system for a while, so they were more experienced with it.
It sounded interesting but I could not give up Windows, as I feared the change would render my PC unusable. Then another student had set up a Linux server in the Informatics Lab. The server was access by telnet and we were playing MUD and netris (games with a cli interface) on the virtual terminals. The server was also hosting schools's website and mail server, so we had pretty much to play with. This was my first meeting with bash.
And then I got a CD with Red Hat Linux 5.? or 7.2 from the Chip Magazine. I installed it, but all I new about Linux was that it's free and it was hard to use. My X server was not configured out of the box (bug?), so I was stressing out other students using Linux. Then I had learnt about RTFM and the tomes of documentation I had to learn before using it effectively. If I did not know the cause of the problem -most often- then I did not know where to find information about it. Back then I did not know the power of aking for help on a public forum. When I asked other students about the problems I had, they said I'm on my own
and I should help myself. So if I broke something in Linux I would simply reinstall it, instead of trying to find a fix. This was a major barrier in trying to use Linux.
I think Linux lacked an entry in the help menu saying "If you have problems, post here!"

Since then I had been using Linux for short periods of time: I installed Windows, then Linux. Then Windows broke and I had to reinstall Windows, which resulted in Linux loader being deleted pretty frequent. Since I knew nothing I could do in Linux, that I could not do in Windows and Windows was familiar to me, the Linux partition was deleted soon after Linux Loader. Then I would not use Linux for another 8 months. When I discovered SuSE was amazed by its usability so I kept dual booting it longer than Red Hat.

This touch and go game I played with Linux happened for several years until the second semester of 2006. By now my Internet searching skills had been improved, so I had read a lot about Linux and Free Software. Because of fear of malware I was using only free software programs on my Windows XP (* more on this malware below), but I was not convinced to move to Linux. And then Windows crashed. My computer at the time was already having only SATA hard disk drives and Windows XP would not install without a SATA driver floppy disk. I had 2 floppy drives at home and lots of floppies to use for a driver disk. None of them were usable in Windows Setup, although they were just fine otherwise. You should note that I did not have a valid licence for any Windows version so calling Microsoft for support or going to a computer shop to have Windows installed for me were not valid options.

For the first time in my life I did not know what to do with Windows, so I decided to try again Linux. I tried several distributions - SuSE, Fedora. None could completely replace my Windows. Debian was rejected as I could not understand how can I administer the system without being able to login with root. Then I tried Ubuntu 6.06 LTS. I was impressed most of things worked out of the box. Then the same issue with root, only now I had made more effort on researching the problem. I understood it and afterward I started to love Ubuntu. I still had Windows partitions, but I had not use Windows partitions for a long while.

Back to the present: I got a new computer with SATA hard disks, so I decided to install Windows XP first, just to check out if anything was wrong with my Windows installation skills and possibly to check out hardware problems. After installing Windows, I installed Ubuntu 7.10 (Gutsy Gibbon) in a dual-boot configuration. However since I have the possibility of using Windows again, I never felt the need to boot Windows. Ubuntu fills all my needs now - even gaming.

First I stopped using Windows XP, because of their lack of security. I had to constantly check for antivirus updates and configure so many firewall rules that my computer became unusable. The time needed to keep my PC in working condition was increasing constantly. I could "pride" myself for having the "latest" worms on my network. A newly installed Windows XP would start to break after 30 - 40 minutes of working online.

Automatic updates were another pain in the lower part of my back. Schneier of BT Counterpane summarized very well some critics against Windows XP (and Vista). It was an article on  Schneier's blog  that helped me decide that it was time to ditch Windows for good.

AFTER using Linux constantly for a while and taking part at a Free/Open Source Software Conference (Eliberatica.ro) I started to appreciate its freedom, which until then I could not fully understand.

I could not understand if this development model is stable and won't shake down like a sand castle does when a big wave comes closer. When I finally understood what is pushing this system forward I went through full steam ahead.

Now I am struggling to learn more and more and I try to become a free software developer. Yet, my migration to Linux will not be complete until I become a successful free software developer. I want to at least be as successful as GNU Emacs which is still in development after 20 years since its inception.

Friday, January 4, 2008

Marketing Linux in the Free Society

I think it is wrong to promote Linux only by its features. To be sold, any product needs to have a unique set of "selling points". Even if Linux has the unique features U, V, Z , no other OS has, this is not a strong selling point for it, because:

  • new users are not accustomed to these new features, they do not use them, so they do not actually exist for them; instead they will remark that it does not has features X, Y, with which they are very accustomed from their previous OS
  • at any moment a proprietary OS can copy some of these ideas (no patents, right?), and then it won't be so unique.
We need something to differentiate us from the rest of the software products crowd.
The major selling point about Linux, about which too few people talk about, is that Linux is a philosophy, a lifestyle, a platform on which everybody can develop. Our marketing message should invite people to participate to Free Society. Imagine that your Linux message reaches a housewife halfway across the globe. The moment your ad finishes she should know that using Linux helps her to improve her cooking receipts: she can submit her receipts to a cooking receipts wiki, and then she should expect feedback from other readers. Show them how using Linux for sharing their work makes them more efficient.
Inspire yourself from what others write about Linux. Tim O'Reilly published the best description for Linux (http://www.oreillynet.com/pub/a/oreilly/tim/articles/architecture_of_participation.html): "any system designed around communications protocols is designed for participation". Imagine a logo containing that: "Linux, designed for participation"! Priceless!

Let me give you another perspective:
We need more contributors to the Free Software community, right?
Well, my take is, we aren't getting any spectacular numbers of new contributors from the software industry. Surely the number of contributors increases steadily, just not as fast as in 1987 - 1997 years. We need to broaden our view and look for different contributors: graphic artists, office writers, psychologists, accountants. We need to get creative about what contributions we ask! 

Let's take office writers and see how can they improve on our software: How many times did you have something to write down and did not know where to start? How would it be to have a template to start from? Proprietary software vendors do ship a lot of templates with their office products. Why are we lagging behind? Can't we make a public web service that integrates easily into our free office suites? Publishing such a template could be as easily as “Save as”, and office writers that would submit their templates would get the benefit of improving the their initial template.
Did you notice I wrote about psychologists? You may ask what do we need them for? Well, I'm sure you heard about psychologists in usability studies of proprietary software. How many such studies have you heard of about free software? Very few is my answer. It is worthy to note that usability is the biggest complaint to our products. And it's not like they did not offer their help, it's that we never asked them.

What happens if a student accountant does her/his homework using free software and then publishes her work? Isn't that the greatest proof that your accountancy programs do work? What happens, if in turn, another accountancy student improves on the exercise? It's the same concept that arose with free/open source software, only that it is applied to other domains.

If we do want a free society to live in, we also need free content, not only free software. But right now most of the contributions to free society are in software development, which is not necessarily on top of the list of most interesting activities everybody can do. It's like inviting people to a karaoke party, but requiring them to sing and read in Latin. Or giving craftsman's tools to an office worker.

In short, we need to let users contribute what they want, not only what we ask them to. It must be easy for them to submit their work, not only our very much needed bug reports. Start enabling non-software developers do their work in Free Society! Put the right tools in the right hands! Take "Free Society" concepts out of our dreams and put it in our lives!

Thursday, January 3, 2008

Better free software development

Is there a team of volunteers doing research on improving the ways we work to develop free software?

I mean there have been this far on-going debates over using mailing lists and archives versus web forums, but little is known of what situations one of the choices is better than the other.

Example1: Personally I vote for webforums for user support (see the traffic at ubuntuforums.org – I belive no mailing list supports that amount of traffic) and mailing lists for developers. I also think forums are better for noobs. But is there any volunteer project that tries to find which is actually better and in which situations?

Example2: So far much of the development talk has been done via mailing lists and the few time contributors meet at Dev-cons. What about achieving consensus over an IRC channel conference? Sure there are a lot of problems that go along with it, but it could be a nice complement to mailing lists. What about adding archives, voice-chat to such conference talks. Could screen-cast fasten development?

Archives and repository submission logs are just perfect for a statistical study measuring a project's success or downfall. Could a statistical study discover lots of questions in a certain area of the project, faster than humans? Could this lead to a request to improve documentation in that certain area?

These are just crazy questions now, but, with a dedicated team of volunteers testing them out, goodness and craziness will separate.

eLiberatica 2008 - The Benefits of Open and Free Technologies Conference