An up-to-date look at free software and its makers

Projects on the Move


The Open PC helps the dream of free hardware come true, and robot simulations fire the imagination.

By Carsten Schnober

Yuri Arcurs, 123rf.com

To its pioneers, free software is a production model for a better society. Unlimited, loss-free copies mean that the only barriers to reproducing digital media are either of a legal nature or due to copy protection. Development is the only really expensive part of producing software; media prices for DVDs or Internet servers are negligible

New Business Models

Producers and vendors of proprietary software claim that they need to recoup the cost of development by selling individual copies; otherwise, they would be unable to afford the salaries that professional developers earn. Companies such as Red Hat, Novell, and many others disprove this by relying on a business model in which individual licenses do not generate turnover. In both cases, this is not strictly what the Utopian pioneers of free software had in mind, in that neither Red Hat nor Novell have foresworn profit as the maxim of trade but simply modified the process to reflect the characteristics of "software" as an asset: They no longer sell the reproducible product, but provide services related to it.

Although free software so far hasn't created a society free of material need and social imparity, it can point to measurable success that does more than benefit a couple of companies. In recent years, free software has managed to shorten the digital gap between poor and rich. An African child could soon be equipped with a laptop and a free (as in beer and freedom) Linux operating system at a price even poor governments can afford [1].

The Utopians still haven't found a conclusive answer to the question of how to apply the principle of free software to other products. Most other economic goods need raw materials, special production plants, or both. Progress in the fight against digital imparity is thus just a battle in a larger war on other material needs, and its benefits are not felt by most of humanity.

"Free Hardware" [2] applies the principles of free software to other fields. Plans for a free car, called OScar [3], and the free Sun OpenSPARC [4] CPU show that this doesn't just mean computers, although these free hardware efforts often follow a process closer to the legacy, closed model.

The Open PC

At the Gran Canaria Desktop Summit (GCDS) in July, where supporters of free desktop environments such as KDE and Gnome got together, Frank Karlitschek from Stuttgart, Germany, hit on a new idea for promoting the development of a PC optimized for Linux (Figure 1): The free software community should design a community PC. Of course, this simply means putting together free individual components rather than building them.

Figure 1: Open-PC is the name of a computer designed to meet the demands of the Linux community.

The motivation for the Open-PC [5] is the perception that the hardware market does not have anything satisfactory to offer users of free software. The Linux PCs offered by several major players (including Asus, Dell, and Acer) more or less rely on modified systems, thus compromising typical Linux-style individuality, often with driver problems and a lack of support, says Karlitschek.

To combat this, the Linux community should design its own PC. The advantage of the Open-PC is that its hardware would not be put together with the aim of supporting Windows (in contrast to Linux computers offered by major hardware vendors). Instead, full support for the free operating system would be the major premise, with community support to follow at a later stage. Users would also have access to an App Store with applications that would run perfectly on their Open-PCs.

Community Driven?

When this issue went to press, the Open-PC website was still in the initial planning phase, in which the community was asked to complete a survey to achieve a consensus on hard disk size, acceptable pricing, preferred desktop environment, and a number of standard programs. The roadmap envisages the next phase starting August 15 with another survey on details of software and hardware requirements.

User requirements will help ascertain which individual components are most appropriate, and if free hardware that meets these performance requirements is available, it will be preferred for price reasons. Having said this, there is not a big choice of hardware with open specifications. Of course, manufacturers without Linux support cannot be considered at all, and between these two are extremes hardware manufacturers who provide Linux support for their proprietary devices.

According to Karlitschek, Open-PC production will be starting next fall. Details of the hardware vendor who will be organizing production and sales have not been revealed, and other partners are being sought. In his talk at the Gran Canaria Desktop Summit, Karlitschek quoted a target price of US$ 300 to $400. If the survey reveals that the community's price expectations differ from this target, Karlitschek might change his mind. One also hopes that the free software community will benefit from the project financially, in that Karlitschek is looking to donate part of the profits.

Open Questions

The announcement of the Open-PC more or less pales into insignificance compared with the high expectations the community has placed on development efforts in the past.

If you keep Karlitschek's pragmatism in mind, the promise to solve Linux users' most intractable hardware problems this year sounds more believable than many other ambitious projects that have never managed to come up with a widely usable product despite many years of trying.

The goal of boosting Linux acceptance seems achievable if you consider that many potential users currently fear the lack of vendor support.

The question of how to organize the project remains open. If this is a business model, will the members of the free software community find themselves in the role of consumers who will benefit from more choice but will not really have a voice apart from web surveys? Or will critical decisions be made along the lines of open projects such as Debian or Wikipedia?

Do-it-Yourself Robot

Hardware tinkerers face vastly different problems from software developers. Creative experimenting can destroy a device or, depending on its characteristics, present a real danger. Many developers look for realistic simulations, keeping any possibility for damage strictly virtual.

The aim of the Robocode [6] game is not that of producing realistic hardware. Instead, users are asked to program a battle robot that fights against one or more similar machines in a virtual arena (Figure 2). Using the on-board gun and sophisticated navigation, players try to send their opponents to the happy robot hunting grounds. Various sample robots are provided to act as initial opponents, and more are available for downloading from the Robocode homepage.

Figure 2: In Robocode, the player programs a virtual battle robot, learning Java as a side effect.

But Robocode is more than just a game: Players need to use Java to program new robots. The machine has to be equipped with a basic routine that the robot follows until one of its sensors is triggered, and it needs a set of responses to a variety of possible events. Each robot is equipped with rotatable radar, which it uses to locate opponents. If the robot detects a target, a ScannedRobotEvent is triggered, and the response would typically be to fire a shot in the direction of the target. Other events tell the robot whether the shot was a hit, if it has been hit by an opponent, or if a crash with the edge of the playing field or another battle robot has occurred.

Unlimited Possibilities

The complete Java programming language is available, so nothing can prevent programmers from developing highly complex algorithms from the field of artificial intelligence. Robocode is highly addictive. Just a modicum of programming lets you can create a highly interactive robot, which makes it hard to escape from the vicious circle of the built-in editor (Figure 3) and battlefield.

Figure 3: The built-in Java editor makes it easy for newcomers to program a robot, and advanced Java developers can battle it out to their hearts' content.

Robocode will run on any operating system that supports a Java Runtime Environment. The program has provided nine years of fun and spawned hundreds of budding Java programmers; little wonder fans of other languages are now following suit.

Ruby is one of these languages: KDE developer Jordi Polo has launched a new project titled Rubots [7] that implements the Robocode principle in Ruby and shifts the battlefield to a 3D world. The developer is looking to teach newcomers Ruby in an enjoyable way while extending the language to cover robotics and artificial intelligence.

Rubots relies on Player [8]. The collection of tools and libraries includes the Stage library, which simulates robots and provides sensors and objects for navigation in a 2D world. The Gazebo extension adds a third dimension.

If Rubots is successful, it could spawn a whole new crop of Ruby fans. A similar experiment was launched for Python a couple of years ago [9]; however, it disappeared before reaching the initial release stage.

INFO
[1] One Laptop Per Child: http://www.laptop.org
[2] Free hardware: http://en.wikipedia.org/wiki/Open_source_hardware
[3] OScar: http://www.theoscarproject.org
[4] OpenSPARC: http://www.opensparc.net
[5] Open-PC: http://open-pc.com
[6] Robocode: http://robocode.sourceforge.net
[7] Rubots: http://www.bahasara.org/projects/rubots
[8] The Player Project: http://playerstage.sourceforge.net
[9] pyRobocode: http://sourceforge.net/projects/pyrobocode