Prefab May Give Any Software Open Sourciness
A new tool developed at the University of Washington has the potential to make all software effectively open source -- in a way.
Rather than manipulating the software's code, however, the application -- dubbed "Prefab" -- hijacks what it displays and makes it customizable.
"Microsoft and Apple aren't going to open up all their stuff, but they all create programs that put pixels on the screen," explained James Fogarty, the assistant professor of computer science and engineering who is leading the project. "And if we can modify those pixels, then we can change the program's apparent behavior."
Because Prefab works from the pixels of the interface, "we can't see anything that's not included in the interface," Fogarty told LinuxInsider. "We're not opening the source of the application itself."
Fogarty will demonstrate his system later this month at the Association for Computing Machinery's Conference on Human Factors in Computing Systems in Atlanta.
Prefab's approach is essentially an effort to bring the mashup capabilities of the Web to desktop software.
The technology takes advantage of the fact that almost all displays are made from prefabricated blocks of code such as buttons, sliders, check boxes and drop-down menus. Prefab looks for those blocks as many as 20 times per second and alters their behavior.
"Let's say I'm writing a paper in Microsoft Word but I want to listen to music at the same time," explained co-author Morgan Dixon, a UW doctoral student in computer science and engineering.
Currently, any user in such a situation would have to click back and forth between Word and music software like iTunes. With Prefab, however, users can simply add a few iTunes buttons to the Word toolbar.
A Boon for Accessibility
Not only would the application let users combine the features they want from their favorite programs -- it would also allow people to benefit from accessibility tools that have been gathering dust in academic research labs.
One example is target-aware pointing, which can make many interfaces easier for people with muscular dystrophy, Parkinson's disease, cerebral palsy or other motor-control disabilities. One such tool, the bubble cursor, highlights the button closest to it, making it easier for people with disabilities to click a button without having to hit it dead-on.
Fogarty and Dixon's tool can create what they say is the first implementation of a bubble cursor in various commercial applications.
The system could also translate a program's interface into a different language, for instance, or reorder menus to bump up favorite commands. Alternatively, it could allow programs to move easily from computer screens to mobile devices, dramatically lowering the threshold for getting new innovations into existing, complex programs, Fogarty said.
Fogarty and Dixon are currently exploring commercialization possibilities for Prefab, which was funded by the Hacherl Endowed Graduate Fellowship in the UW Department of Computer Science & Engineering, a fellowship from the Seattle chapter of the Achievement Rewards for College Scientists, and Intel.
"One of the first things we'll be looking at is how to apply Prefab to improve the accessibility of applications," Fogarty said. "If Prefab makes a company's software accessible to a larger audience by adding new support for people with a particular type of motor impairment, then everybody wins. More people can use the application, and those companies get new customers for free."
Such deployments could start within a year, he added.
'Software Is Not Owned'
There's little doubt "new customers for free" will come as music to software companies' ears; what's less clear is how they'll feel about users' newfound ability to modify the interfaces of the products they sell.
"A lot of companies have really embraced the mashup culture on the Web, and Prefab can be seen as introducing that same capability to the desktop," Fogarty noted. "We've seen plug-in architectures and mod communities around different kinds of software, and companies see value in supporting that."
Nevertheless, "what this product fails to mention is that software is not owned -- it is licensed or leased," Raymond Van Dyke, a technology lawyer in Washington, D.C., told LinuxInsider. "You do not own the underlying code unless you have specifically contracted for it. Thus, users of that code must abide by the license agreement associated with it."
'Derivative Works Are Not Necessarily Desired'
Although some reverse engineering is lawful, "there are limits on extracting proprietary information for personal or public gain," Van Dyke explained. "Since copyrights include works derived from the source code, companies can argue that users' derived creations are owned by the company."
Of course, some companies actually encourage users to modify their code and create add-ons, he said.
"For systemic programs like operating systems and the like, however, where standardization and regularity in use are key, derivative works are not necessarily desired," noted Van Dyke.
In short, "software represents considerable work and investment," he concluded. "Not all code is free, and it is usually unlawful to make free something proprietary."
'Generally a Good Thing'
"Anything that helps make it easier for users to control their computing environment is generally a good thing," Donald Robertson, copyright administrator with the Free Software Foundation, told LinuxInsider.
Still, "a technology like this will not transform a proprietary work into free software," Robertson added. "In order for a piece of software to be considered free, it must meet the free software definition."
Prefab may enable someone to modify a proprietary work, but "that person won't be able to share that modified version with others," he pointed out. "If the license restricts what uses they may make of the software, then the user does not actually control the code even if they can manipulate it."
In essence, then, "Prefab can't change the license on the programs that it modifies, and the license is usually the strongest tool that proprietary developers use to restrict computer user freedom," Robertson said.
"While the technical ability to modify a program -- best embodied by access to the complete source code -- is an important part of freedom as well, without the permissions granted by free licenses such as the GNU GPL," Robertson concluded, "a user cannot fully control their computing environment."