Three Case Studies in Community-Oriented, Open-Source Software Development
What do a Japanese PDA, a video capture card and a multimedia appliance that connects your television to the network have in common? They are all examples of specialized Linux-based devices with thriving subcultures surrounding them—communities of enthusiasts toiling nights and weekends obsessively coercing their toys into working exactly the way they want them to work. Of course, 15 years ago, Linux itself had a similar beginning.
“Hello everybody out there using minix—I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.” Not satisfied with the manufacturer's choices, Linus Torvalds wanted to use his Intel-based computer on his terms. He started hacking, and then he used these simple words to reach out to the world, announcing his achievement and attracting helpers. Does this spirit live on today?
July 4, 2005. Eerily, once again, the IVTV developers have made a release right as I picked up the project. Maybe I should wait it out a bit until things settle down. Their progress fluctuates—first the audio isn't right, then the video looks bad. The install script sure is easier this time—no more mysterious sequence of modprobes to get things working. The main guy working on this doesn't even have the same model as I do—how does he do it?
So continues one of my typical holiday or weekend ventures into a randomly discovered Linux project. In this article, in addition to profiling a few specific Linux-friendly products and project accomplishments, I also provide a brief survey of some Open Source communities encompassing them, with a focus on one prominent person in each community.
First, I start with a Microsoft Windows product—the prefix and suffix in its model number both describe its target market. The WinTv PVR-150MCE by Hauppauge is a TV tuner and a video capture card. Directly storing broadcast-quality video is impractical with current technology. Even if your hard drive's throughput is sufficient to receive the data, your available storage space will be quickly consumed. MPEG-2 compression, the same as used by the DVD standard, eases the requirements considerably, using less storage space and decreasing the streaming rate to a more manageable 6Mbps. Moderate compromises in quality reduces the storage requirements to 2G or less per hour of video. Compressing video is computationally intensive and taxes the fastest processors, but the PVR-150MCE gets around this by using its MPEG-2 encoder hardware, relieving your system from the time consuming chore of compressing data. So, you can record compressed video in real time using modest hardware. It costs less than $100 US, and if you don't already know why I am describing a Windows Media Center Edition (MCE) product in a magazine about Linux, you will after reading the next paragraph.
IVTV is a project that allows Conexant-based video capture devices to run under Linux. The PVR-150MCE is but one of several in a family of cards based on the Conexant chipset. Hauppauge makes many of these cards, but several other manufacturers produce cards based on Conexant. Around 12 different cards are expected to work now or in a future version of the driver. By the way, the name IVTV is pronounced “Ivy TV”. It is not an acronym, but was inspired by an early Conexant model number, iTVC15. Other manufacturers who make compatible cards include Yuan, Avermedia and Adaptec. Please see the IVTV Web site (see the on-line Resources) for details. Although they have the same core chipset, these cards are by no means identical, and supporting all the subtle permutations is easier said than done. In extreme cases, you might even have to travel across the Atlantic to experience the differences.
In addition to several different models of these cards, both the European PAL and the US NTSC video standards are supported. Testing both of these signals is especially tricky, because a given developer has easy access only to one of these sources of video. This group has coordinated internationally to provide good support for both. Is this just the matter of flipping a bit somewhere in the source? Or are they exploiting the fact that light travels around the globe in microseconds and that a developer in Europe is going to bed around the time his US counterpart is awakening? A Netherlands-based developer's request for an NTSC modulator leads me to believe the latter.
The lead developer for this project, Chris, welcomes donations:
I have been maintaining the IVTV driver since around December 2003, keeping all patches merged and also have reverse engineered the DMA, and redesigned the internal parts of the driver to allow growth and stability. I have devoted many hours to IVTV, often more than 40 hours a week in the past, and hope to continue work like this into the future. I have recently divorced, have a need for income since most is taken now, and would appreciate any donations to help and hopefully my work on the driver helps you too. I have a lot of fun working on the driver and am glad to be able to provide this service to people in getting the MPEG-2 encoding chip working the best it possibly can on these WinTV/etc. pci cards.
Next, the MediaMVP is a solid-state device with an Ethernet jack, S-Video/Composite outputs and stereo RCA audio. For around $100 US, you can telnet in to a box running Linux that plugs into your TV. Well, almost. Before you can telnet in, you probably will need to install mvpmc.
Setup for this project is well documented, but it isn't trivial. It involves setting up a DHCP server and a TFTP server for delivering the alternative bootloader to the device. You probably also want to export one or more NFS shares to provide content to the device. Building the source involves setting up a cross-compiler, unless your gcc happens to target the powerpc-405-linux-uclibc architecture. Nightly automated builds are also available as an alternative to cross-compiling the source.
The reward for this hard work is that you can browse your filesystem for multimedia files or stream video from MythTV using a device that has no moving parts and no concerns about overheating or fan noise.
For nearly two years, Jon, a professional firmware engineer living in the United States, has tirelessly checked in improvements and responded to questions on the project's mailing lists. In response to the question, “Jon, did you ever consider accepting donations for this project via SourceForge?” he sums up a common but noble attitude: “No. I'd prefer it if people would send me code instead of money. Or hardware, if you want something supported that I wouldn't otherwise buy.”
Finally, if your definition of a personal information manager includes the latest version of Emacs that you compiled yourself, then the Sharp SL-C3100 could be a dream come true. Sharp sells this versatile (think modest laptop that fits in your shirt pocket) product only in Japan, but a lively community has developed around it, many of whom import the $800 US device directly from Japan. It is an awesome machine—a 640x480 VGA display, 4G microdrive storage, in a clamshell case with a QWERTY keyboard, USB, CF and SD. A testament to its Japanese roots, it omits Bluetooth and Wi-Fi, as those wireless protocols are less ubiquitous in that market. The community offers advice ranging from tips on importing to practical experience with particular hardware compatibility.
The Zaurus has tremendous potential, but is not necessarily easy. There seems to be a trade-off between functionality and stability. Seeking the latest software can be rewarding. So whether you perceive it as half full or half empty, and whether you buy one and where you buy it are personal decisions. For warranty repairs, the unit would need to be returned to Japan. Who pays the shipping and handling costs? It depends on whether you purchase one from a value-added reseller or from a no-frills exporter. The community can help you with this choice. By the way, if you import it yourself, you might find the Japanese version of “tap the screen to get started” a bit intimidating, and you will probably need to take advantage of an English translation. Again, the Zaurus community has exploited the speed of light to overcome many international barriers—step by step guides to navigating the foreign instructions are readily available.
Zaurus dominates discussions on the Open Embedded Software Foundation (OESF) forums. There you will probably meet “Meanie”, a prolific advocate for Sharp/Linux from Australia. He has captured the essence of Zaurus ownership in a series of Web pages that detail his customizations and enhancements. Meanie's hard work let me vicariously assess the product before committing to its purchase. In a recent posting, he alerts us that he fried his $800 Zaurus SL-C3000 when using a generic USB cable. The community recognizes his valuable presence and offers to help, but he turns down their repeated offers to chip in to buy him a replacement. Instead, he chronicles his purchase of a newer model Zaurus SL-C3100 plus suggests that well-wishers donate to his favorite Zaurus developer.
But sometimes a little financial support goes a long way. Consider this request from pdaXrom, a popular Zaurus subproject: “Did you know? That our main programmer needs only a monthly total of $200 US to keep all his bills paid and thereby keeping focus on developing....”
So, why these particular products? They happen to be three of my own personal latest technology purchases. I did my research before buying them, and I am certainly biased towards Linux products, but otherwise, these communities were chosen fairly arbitrarily. In case you are wondering, yes, they work together smoothly. I can use my Zaurus PDA's Web browser to access MythTV and select a program to record using my PVR-150MCE, and I can also use it to telnet into my MediaMVP for debugging, exploration and upgrades. (The actual video playback is initiated by the remote control.) More importantly, after some grueling transcoding, I can bypass the MediaMVP and watch SpongeBob SquarePants on the 3.7 inch screen.
Hauppauge has been commendably supportive by providing solid documentation and allowing redistribution of its copyrighted firmware, simplifying installation. This demonstrates the company's progressive values as well as the diligent communication from the IVTV developers. So don't let the questionably redundant product name dissuade you from considering this device. Who knows, maybe someday Hauppauge will re-brand this card with a name like “LinTv PVR-150 MythTV Edition”.
Sharp has complemented its hardware with GPL software and has, of course, followed through by supplying source for its derivative work. On top of that, it has encouraged developers with documentation and occasional promotions. Let's hope future versions of the Zaurus will again be directly promoted outside of the Japanese market.
Two of these projects benefit directly from the GPL's stringent requirements. I am not being a zealot—I have personally found occasions where other licenses were effective and convenient—but it is hard to imagine these manufacturers releasing source code if they were not obligated.
All of these projects are successful because they have passionate individuals banded together in a community. These individuals are otherwise ordinary developers who have become involved in these projects and are now key members of thriving project communities.
The people running these projects are not just sitting at home ranting on Slashdot—they are spending their time creatively, showing the discipline to do the next right thing in order to develop great products systematically for the world to enjoy freely. They are skilled technicians who have become community leaders, patiently and quickly answering questions and offering advice.
These communities are focused and not burdened by formality. It is a practical affair—typically, you come to the community with a specific problem and it supplies answers. I personally tend to lurk—scouring the forums until I find the answer to my problem, then slinking away. Perhaps, instead of slinking, it would be better for all if I posted a quick “thank you” message, something to the effect of, “Thanks for this valuable resource; I was able to find the answer to my question of XYZ by reading through the past threads. By the way, the answer is ABC, in case someone stumbles onto this message while in search of it.”
How can you support these and similar projects? If the answer is not already posted in a FAQ, start by asking! There is no single answer—as noted here, some projects actively seek financial support while others shun it. Be sure to pay attention to any advertisements on the various sites and visit their sponsors (when appropriate). Study the community for a bit, and if it seems right, try jumping in.
Resources for this article: /article/8718.
Randall Embry (firstname.lastname@example.org) is an employee of Indiana University paid to develop open-source software for higher education. He has worked on the Sakai course management system and the OSP electronic portfolio. He is now a development manager for the Kuali financial information system.