Literature Review: Motivations for contributing to Linux Kernel

This is my literature review of a paper by G. Hertel et al. titled – “Motivation of software developers in Open Source projects: an Internet-based survey of contributors to the Linux kernel”.

Based on discussions in the mailing list, the two motivations for contributing to Linux kernel were identified: “fun to program” and to compete with other projects and commercial software. But since there wasn’t any empirical evidence to verify this anecdotal evidence, the authors conducted a research study the Linux Kernel community to verify the claim.

Open Source Software (OSS) development  has some properties of a social movement and a small work team. The authors used models developed by sociologists, to explain participation in social movements (EKM) and work teams (VIST). Thus the authors combined the data from three sources – Open Source community, research on social movement participation and work teams to develop a model for explaining OSS participation.

The authors announced the survey on the mailing list. In the spirit of openness the survey and its motivations were published on a website and invited comments. The final survey was expected to take a 15 minutes to complete. Survey respondents were classified into developers (kernel developers or module maintainers) and readers.

Using factor analysis, seven factors were identified in the responses as follows:

  1. Identification as Linux user
  2. Identification as a Linux developer or with a Linux subsystem
  3. Pragmatic motives related to the improvement of one’s own software and career advantages
  4. Norm-oriented motives related to reactions of relevant others (family, friends, colleagues)
  5. Social and political motives related to supporting independent software and networking within the Linux community
  6. Hedonistic motives such as pure enjoyment of programming
  7. Motivational obstacles related to time losses due to Linux-related activities

Not all the factors had influence on the contributions made to the project. Only the following factors predicted contributions to Linux Kernel:

  • Factors (2) and (7) predicted the numbers of hours spent, especially by developers.
  • Factor (3) predicted willingness to engage in Linux related activities in future

The developers worked on subsystem like a virtual team. Survey respondents who were developers answered additional questions about their contribution like number of lines and patches. These variables were predicted using motivational processes.

  • Number of hours spent is correlated with how important a developer considered his/her contribution to the subsystem (referred as Instrumentality).
  • A developer’s willingness to increase participation in the subsystem was correlated with his/her perceived value of the subsystem goals (referred as valence)  and instrumentality.
  • Number of patches accepted from a developers was explained by self-efficacy and instrumentality.
  • Finally, the number of lines a developer submitted was correlated with self-efficacy.

The authors have made a good case for treating open source community participation as a social movement. Which gives a good source of reference for researchers studying open source communities.   The study also gives a set of motivational factors that can be used to other open source communities.

I was concerned that survey might have selection bias since respondents choose to participate. Also the paper did not mention the population size, although that is difficult to determine given the nature of the medium. It is not surprising that the authors did not receive many responses when they started a discussion about the survey before launching. I’m curious if the researchers received many comments that were against the intentions of the study, how they would proceed. Finally, I was tad disappointed that the research did not use any data from mailing list or source code repository. It would have been interesting if the study involved correlating surv

Random Number Generation without a physical device

Random numbers are an important part of the digital world. Computer security relies on prime numbers and random numbers to secure communication channels. And we rely on physical devices to provide us with a random number.

Humans are hopeless in coming up with a random number. Ironically, it is because we try to avoid any pattern while coming up with a random series. I’m fascinated that we need a physical device to generate an ideal random number. In other words there is no algorithm that will yield a random number every time it is executed. There are some pseudo random number generators that are good enough. But in theory they are not truly random.

We essentially need a black box to generate the random number. We should not know how the black box works inside. True random number generators rely on the quantum properties to generate a random number.

Impact of industrialization on fashion

A while back I read the book Sustainable Fashion: Why Now? – a book on technologies, methodologies and practices to developing a sustainable clothing. I can’t use word industry because the book advocates abandoning the contemporary industry’s producer-consumer approach to solve problems.

It was interesting to learn about the clothing and fashion before the advent of industrial age. Resources like fiber were scarce; people spun the fibers and wove clothes in families and communities. Clothes were reused heavily. Damaged clothes would be re-purposed as another garment or in worst case used as cleaning rags. Thus the life span of the fabric increased. In essence all the garmenting was done by the users.

With the advent of industrial age, the process user production of garments was disrupted. Industrialization of fabric and garment production caused the supply to outstrip demand. It changed the framework of garment production to a producer-consumer linear model. In the new framework, if there is a need for a product, then a producer gathers raw materials, processes it and floods the consumer market. So we consume more clothing than we need. Unused clothing ends up in landfill instead of being recycled like pre-industrial age.

Many solutions to reduce fabric waste and improving recycling are discussed in the book. Fashion was very democratic. It was defined by users who wore the garments, and reused it heavily. Industrialization disrupted this model. Now we have fashion designers and trend setters to define the fashion.

Bifocal display prototype

MVI_0250
I’m reading Sketching User Experience by Bill Buxton. It is a interesting book, just the title convinced me to read the book. In a chapter the author refers to the prototyping of the bifocal display  (YouTube Video of the original prototype) which displays receding text above and below the user’s field of vision. This allows to gauge what is coming up ahead and what was just read. This solution can be useful for reading text in small displays. The author recreated a prototype of the bifocal display using materials found around the office. THe author went on to say any interaction designer should be able to recreate the prototype and record a video of it in 30 minutes. I took up the challenge and started creating the prototype.

The book has pictures showing how the prototype was constructed. So I started by collecting materials similar to what was used in the book – cardboard pieces, magazine cutouts, pens. I didn’t have a printer or a screenshot printout – so I sketched it on a blank paper. I used rice instead of glue (gross!). For the first 5 minutes I thought this would be a cake walk. But when I started putting together the cardboard and the screenshot I had aligned issues. Then there were problems with the thick edges of the cardboards.

I kept reminding myself that the end objective is to show how the user experience will be, the materials and method don’t matter. I tore up the thick edges and used a cardboard box instead of the single cardboard sheet. Finally I set up the camera on a bar stool and recorded the video. I completed the prototype in 35 minutes. My prototype would not be effective in communicating the intended experience of the bifocal display. But it was a good learning experience for me.

Cost of making a financial transaction

I came across an interesting service Tipjoy. to simplify the hard problem of co-ordinating a monetary transaction. Exchanging money is a very strong social signal. When we communicate with others we are exchanging only attention, other costs associated with communicating are almost zero. Internet and mobile technologies have made attention very scarce resource. I would argue that in some context it is more scarce than money. Attention scarcity is one of the challenges facing development of new Web 2.0 applications.

I think money, in the form of micro transactions, can be used to solve of this problem. By micro payments I mean in the order of few dollars or dimes. But coordinating human activities is very difficult, let alone exchanging money. So the cost of making a financial transaction is greater than transacted amount (a few cents dimes.)

It is not a very difficult problem. But I think it is a more rewarding problem to solve than doing information aggregation (news feeds), new messaging channel (Twitter), or similar tools which only steal more attention from us.

Go tipjoy, go, run like a wind….

Dell Mini 9 – too small for comfort

I got a Dell Mini 9 netbook. One of friends bought a Dell Studio 15, along with it the Mini 9 was offered for $100. So I lapped it from him :-) It was a pretty good deal.

It is base model Mini 9 – with 512 MB RAM, 5GB SSD and Ubuntu 8.04. It has no moving parts – not even a cooling fan. I love the fact that it make no noise. I’ve gotten used to the humming sound from all computers. This is my first silent computer.

The switch from the enormous 15″, 3lbs laptop to a 8″ netbook is interesting. Two things I noticed quickly are screen real estate and keyboard layout.

  • I knew that netbooks are underpowered but I didn’t know that meant I can run only Firefox. If open Firefox and the Ubuntu update manager, Firefox would stop responding. In such scenarios the system mamager would report max CPU and/or RAM utilization. The major resource hogers were – Firefox and GNOME. Firefox is definitely not recommeded for netbook. I installed Midori web browser – which has much lesser memory foot print. But flash is not working in Midori – I need to fix that problem. Next I installed OpenBox Window manager which is supposed to be much lighter than GNOME. It seems faster, but I don’t have the numbers yet. GNOME panel which runs the OS taskbar takes 30 MB. The only information I need from the GNOME panel is battery and wifi information. I’m hunting for options to get these info without the GNOME panel.
  • The screen size is 8.9″ – which is sufficient for my needs. But the title bars and task bars take up a lot of screen space. I used Metacity window manager to remove the title bars. I tried autohiding the taskba, but it wasn’t annoying at times – the taskbar won’t come out sometimes, or would take too long.
  • The keyboard is definitely cramped; many keys are ridiculously small. I don’t blame Dell – they have used all the space they had. I think 10″ netbooks would be the sweet spot – to have a full sized keyboard. From a human factors perspective – width across two comfortably held hands would be 10″ to 12″. So I think 10″ would be the sweet spot – as long as the main input device is an analog keyboard. The Mini keyboard doesn’t have the F11 key (so I use full screen), there is only one Ctrl key, and page-down, insert keys are entered using Fn key combinations.
  • Battery life is an acceptable 3 hours. But the standby time seems to be poor. I didn’t measure it – but I think it consumes relatively more battery during standby.

Bollywood Actor Network

As a fun project, I’m working on the actors social network in Bollywood; in this network the nodes represent Bollywood actors and actresses, an edge connects actors who starred in a movie together. Hollywood actor networks have been studies for a long time. It would be interesting to compare Bollywood and Hollywood actors network, to find useful insights into Bollywood.

IMDB is obvious choice for getting this data. I was skeptical if it covered foreign film industry. After getting the database, I think it is very comprehensive. IMDB offers unix and windows programs to download and maintain the IMDB files locally. I found them a pain to install; I could not install it on my Ubuntu box. JMDB is a Java based program to import the IMDB files into a MySql database. It was easy to use; although it takes a few hours to import the whole database.

Some numbers from the dataset:

  • Number of Hindi movies: 8,119
  • Number of actors:15,954 (Male:10816, Female: 5138)
  • Number of actors who have acted in more than one movie: 5,365 (Male: 3516, Female: 1849)

The database includes both movies and TV. This may be a problem, since TV has larger cast and has different variables than movies.

2007 Bollywood Actor Movie Network

2007 Bollywood Actor Movie Network

I generated the network for the year 2007. The whole network is too big for my computer. I need to figure out methods to visualize such large networks. The red nodes are movies, green nodes are actors.

I will be working on this network, trying to gain insights. I’m interested in identifying ‘star children’; whom I hypothize get a shortcut into the industry. Also I want to find the cliques or clans in the network. Watch this space.

Indian's Internet language preference

In a recent submit, the CEO of Rediff.com a popular Indian Internet portal said that Indian Internet users don’t want content in their native language. His supporting evidence is Rediff provides email services in 11 languages, but only 1% of users use the non-english version. Indians learn English before completing higher education, he added.

His comments are not surprising. But I don’t think Rediff users’ language preference can’t be extended to all Indian Internet users. I hardly write in Tamil (my mother tongue) and I have never used Rediff’s services in non English languages. But I don’t think Rediff provides the best user experience; their UI and overall design needs lot of improvement. So Rediff users may be not using other languages for other reasons like bad interface.

India has 29 languages that are spoken by more than a million people (2001 Census).  There is definitely a need for providing Internet service in Indian languages to reach a wider user base in the country. Indic Computing is a project to provide computing resources in Indian languages. There are other technology intitatives around Indian Languages.

Ruby Error – "no such file to load — digest.so"

I was getting a weird error whenever I invovked Ruby interpreter. Like ruby script\server or ruby script\console. The error message ended with “no such file to load — digest.so”. I reinstalled Ruby, but the error came back.

I learned from a Google groups message that the error was due to AVG quarantining the digest.so file. I opened AVG Control center, selected Virus Vault, clicked Open button. The digest.so file was in the vault. I selected the file and restored it under its original location (AVG points to the file’s original location while replacing.)

Now ruby is working as expected. I hope digest.so is not really infected :)

My thoughts on Microsoft and Open Source Community

When I was in college I was a staunch supporter of Microsoft. I admired their sheer will power to steam roll into any market and garner the market share. Such power has to be backed by intelligence, perseverance and raw power.

On the other hand, I thought that the Linux, the flagship open source community project was run by a bunch of nerds and rebels; whose prime motive is opposition to power. These people will rebel against anyone in power. I installed Linux with much difficulty and found it ungainly. I was appalled when it prompted for the destination folder when I copied a file, I had give the destination folder immediately after I chose a copy operation. Later when I became a technology writer, one of my major work was on installing and uninstalling Linux. The article was assigned to me for my hatred towards Linux.

In a way I have switched campus; not because Microsoft kidnapped me and tortured me for teaching the public the easy steps to try Linux. But because my principles and values I respect have changed. The time since I joined college has been amazing. I felt like Alice in Wonderland. Except that I was also the rabbit hole. Earlier I admired the superiority and money power wielded by Microsoft. Now I think the open source community can produce more user focused software than any commercial organization.

Open Source communities like Mozilla, Linux and Apache have a community based approach. They are not free of monetary objectives. The 50 million dollar deal between Google and Mozilla sure raises a lot of eyebrows. But such communities will not have a marketing department that is very intrusive.

On one hand you have developers who are afraid that if they do a bad job they will be fired. On the other hand open source developers have only one objective produce what they think is the best code. I have chosen a convenient position. But I firmly believe that an community based developer is free to produce their best work. A MS developer working for Ubuntu should produce better work for the latter.

Now I think breaking MS into multiple companies will help us all and prevent a major bankrupcy.

Facebook/iLike is an example of how companies can have symbiotic relationship.

I don’t think there was any objection or anyone could object to having the IE tab extension in Firefox. But it took MS years to add Google as an option for the search engine into IE. This symbolizes how commercial establishments are different from a community based software.

I do not want companies to discard their monetary objectives and start philanthropic activities. They should be willing to sacrifice their objectives for those of the users. By such sacrifices they can gain the trust of their users. What can be more rewarding?