Today the library of congress adopted exemptions (or here) that recognize consumer's rights to modify (jailbreak) their owned devices regardless that device's use of copyrighted software. In recognition of this event, here is a document I wrote in 2002 on the subject. Its pretty interesting to compare this to what actually happened.
The Open
Source Appliance: A Manifesto
Rev 0.5 12/5/2002
The advent of
inexpensive connectivity technologies1
has promised to drastically change the way home appliances operate.
By communicating with a home computer, appliances will have the
ability to provide a much richer user interface and a larger set of
features then is available with the front panel buttons and the LCD
display common in most appliances. By communicating with each other,
appliances may be able to implement coordinated behaviors
(inter-operate), creating a better, safer living environment.
Interoperability will also allow appliances to use each other’s
features, resulting in simpler and cheaper individual appliances, and
provide [], creating features which are greater then provided by any
individual appliance.
The
ideal end result is a “unified” appliance that has no unnecessary
or redundant parts, and is aware of its environment, providing
greater flexibility and more features at a lower cost then appliances
that do not inter-operate.
Interoperability
But lets be realistic:
what will REALLY happen is that you’ll have appliances made by
different companies and so will be almost entirely incompatible. For
example, you may have an Acme (just a made-up company name) VCR and a
Paragon phone system. Both of these systems will have a nifty
Windows program (sorry, they only support windows2)
that allows you to control the appliance. However, when you try to
call from work to record a show you’ll realize that the Paragon
phone software can’t talk to this version of the Acme VCR software.
Or maybe the call won’t even be picked up because Windows has
crashed (again!).
Although
some systems will interconnect as advertised, especially if all of
your home appliances are made by the same manufacturer, the sheer
number of different home appliances and different manufacturers make
it impossible to test all configurations, so many will not
inter-operate. As an example of corporate ineffectiveness in
ventures of this sort please examine your coffee table. How many
remotes are sitting there? Unless you bought a special “universal”
remote that was specifically created to communicate with many
manufacturer’s devices, you probably have 3 or 4. And if you DID
buy a “universal” remote, I think you’re already convinced…
Functionality
The
purpose of having appliance connectivity is to allow your devices to
act in concert to implement coordinated behaviors or to allow devices
to share resources. Through these behaviors, devices can provide
enhanced features. For example, your stereo could mute when the
phone rings (coordinated behaviors), and your answering machine could
store its messages in your computer (resource sharing). Your
answering machine would no longer need a cassette tape to record
incoming messages, making it cheaper and more reliable. You could
then view your messages through the computer’s display, and listen
to them through the computer’s speakers (enhanced feature). In
this way, connectivity improves quality of life and reduces appliance
cost.
But
how are a bunch of engineers (probably under great schedule pressure)
going to implement the behavioral or resource sharing features that
fit your lifestyle and your appliances? Although I am certain that a
minimum functionality will be implemented, such as your basic
connect-VCR-to-cable-box functionality, many features exist that
would be great to have but do not fuel a marketing campaign. For
example, I have an oven and a microwave with alarms that can’t be
heard from everywhere in the house. So I would like them to beep (a
different sound than ring!) my phones when the alarm goes off. And
my phone could also “ding-dong” when the doorbell is rung.
I want to use my cordless phones as an intercom system. I want to use
them to control what music is playing through my CD player (since the
remote won’t reach far enough), either through a touchtone voice
menu interface, or directly via the buttons on the phone. I want to
put callers on “speaker phone”, causing music that happens to be
playing to pause and the phone’s output be routed though my living
room speakers. I want my answering machine to display the history of
received calls on my PC and let me listen to the messages through my
main speaker system. I want incoming calls to be answered by a
machine before the phones actually ring, and callers be told to hit
“1” for me, and “2” for my girlfriend, and then ring all
phones with two different sounds… no scratch that – I don’t
want the bedroom phone to ring at night.
I’m just warming up! And this is only what I think I want. I won’t
really know until I use the system for a while. You almost certainly
need other features. Perhaps you run a small business and want your
PC to run an inexpensive touch tone help or ordering system attached
to your incoming line, or individual cordless phones that can call
each other for interoffice communications. Or maybe you want to
automatically store your favorite TV shows on your computer’s hard
drive and allow fast forwarding through the commercials, essentially
turning your PC into a digital video recorder.
Reality:
No
company is going to fully inter-operate with all other companies.
No
company is going to give you the features you need.
No
company is going to act against their self-interest to solve your
individual problem.
The software is
developed and sold before it is USED. This is always the case, which
is why the first versions of software are so notoriously poor.
Companies will also develop the software for a fictitious “average”
user, so it is often too simple for technically savvy users, and too
complicated for “please just work when I plug it in” types. It
frequently is not well tested against rival components. Arbitrary
restrictions are imposed so that “professional” or “small
business” versions can be sold at 10 times the home consumer price.
What can be done?
Why
wait until the corporations have failed to bring us usefully
inter-operating products? We must take the initiative and solve
these problems now!
The
solution is to create open source home appliances.
The
idea that consumers can actually fix faulty products is not radical
outside of the software industry. For example, consumers are
responsible for the maintenance of their houses and cars, and a large
“home improvement” and “automobile after market” industry
exists to help consumers in this task. In fact, under pressure from
congress, the [automobile association] recently released the
diagnostic codes for cars’ internal computers so that individuals
and independent repair shops can continue to fix all automotive
problems
(http://www.cnn.com/2002/TECH/ptech/09/27/diagnosing.car.repairs.ap/index.html).
It
is possible to fix traditional home appliances (such as blenders).
They often come with a parts list, so replacements can be ordered.
As
with other products, the owner of a home appliance should have the
right to fix or modify it. As software becomes central to the
operation of an appliance (as in information or media appliances such
as DVD players and phone systems), this right will be lost unless the
appliance is based upon open source.
Open
source is not a new idea. Significant open source projects currently
exist. For example over half of all internet web sites are served by
an open source program called Apache (see
http://www.netcraft.com/survey/).
Apache itself is often run on an open source operating system
(Linux). Also, the Netscape web browser is based on an open source
project called “Mozilla” (see http://www.mozilla.org
). Furthermore, many embedded systems (basically the computer
industry’s term for all non-personal computer devices that contain
software, such as DVD players, cell phones, or portable mp3 players)
are developed using open source development tools (gcc, gnu make,
gdb, emacs, etc. see http://www.gnu.org/).
A
user would not need to purchase only open source home appliances to
derive benefit from purchasing one open source appliance. A single
open source product could communicate with other products, and code
could be written to compensate for bugs or problems with the other
product. For example, an open source phone system with an infrared
light (IR) communicator accessory (essentially how the VCR’s remote
control works) could be used to control a proprietary VCR. A
consumer can then write a program to control the VCR through the
phone system so that, for example, the consumer could literally
telephone the VCR from work and tell it to record a show.
But I cannot
program. How will Open Source help me fix a faulty appliance, add
connectivity, or create a new feature?
An
intrinsic part of Open Source projects is the existence of associated
online communities. By “community,” I mean that users of the
product communicate with each other about issues and problems with
the product. A normal corporation’s product support site does not
qualify as a “community” because all communications take place
between individual users and the corporation. This makes it very
difficult for users with similar problems to swap notes, especially
since it is in the corporation’s interest not to report the number
or severity of bugs in a product (lest it scare purchasers away).
But in an open source user community, it is likely that you will find
other users with the same problem, one of whom may be a programmer
that can post a fix.
However,
with open source, it is also possible to imagine groups of users
hiring an independent programmer to implement special features or fix
certain bugs. With a large enough user community, one could envision
a market of programming consultants serving the user base. This has
not previously occurred, perhaps because historically most users of
Open Source products are programmers. However, a step has been taken
in this direction – companies currently exist that provide support,
add features, and fix bugs in Open Source projects. But instead of
dealing with individual user groups on a bug-by-bug basis, they
generally sell complete packages of the software (that contain all
fixed bugs), and large, multi-user service contracts.
Over
the long run, programming languages are becoming easier to use.
Furthermore, the number of programmers is continually increasing,
with the burgeoning computer industry. Ten years from now, adding a
software feature to an open appliance may be a fun weekend project
for the “software hobbyist,” just like wiring a surround speaker
system or installing an after-market muffler is for the electronics
and automotive hobbyist today.
Finally,
mature open source programs generally have fewer bugs than their
counterparts because more programmers become involved in fixing the
bugs and more configurations can be tested. So you are less likely
to have a problem in the first place.
Is an Open Source Appliance Company Possible?
While
the purpose of this document is not to present a business case, this
section is included to show that an open source appliance product is
not incompatible with a profitable company.
The
survivability of companies whose revenue or product line is
significantly based upon open source software has been demonstrated
by companies such as Wind River Systems, Cygnus, Red Hat, and many
other Linux-based startups. As first stated by the Free Software
Foundation’s “Free Software Definition”
(http://www.fsf.org/philosophy/free-sw.html),
the “free” aspect of open software refers more to the concept of
“freedom” and less to that of “price.” These companies have
traditionally made money either by providing an essential adjunct to
the open source software, selling well-packaged easy-install versions
of the open source software, or by selling maintenance and support
contracts.
The business case for
open source appliances is even stronger due to the fact that the open
source appliance software is essentially useless without a hardware
and firmware platform to run it on. The customer must purchase the
company’s hardware in order to run the software, thus ensuring
revenue. Although competing companies could start producing
compatible hardware to take advantage of the software (as happened to
IBM corporation and the IBM PC computer architecture), or could port
the software to their hardware, this is not necessarily bad. First
of all, companies who restrict free enterprise in their product lines
often fail. As an example, note that the other early PC
architectures (Apple, Amiga, Commodore, Apple Macintosh), are either
gone or have little market share. Secondly, note that other
companies only copy successful products, implying that the open
source company would have to be successful before attracting
copycats. Finally, the original company by definition has market
leadership, a position that is easier to keep than to gain.
Research, Development, and Marketing
It
would require a large company to produce a line of home appliances
from scratch, and a huge company to market and support them. A small
startup would need to use a different strategy. One strategy that
would shorten research and development would be to license the
hardware platforms from an existing manufacturer. In fact, many
consumer electronic devices are currently OEMed, so the only
nonstandard part of an agreement would be the negotiation to “open”
the programming interface for the hardware. Of course, this approach
makes it much easier for a competing company to sell compatible
hardware (they can also license it), potentially eroding the
advantage proprietary hardware confers (as described in the previous
section).
In
terms of marketing, it would probably be best to start small and to
create high quality versions of the core A/V appliances: a cordless
phone network, infrared controller, CD/DVD player, digital video
recorder, and A/V receiver could make up the initial products. Until
the open source community starts submitting code, the software will
not deliver the features, interoperability, and stability promised by
open source. Therefore, it does not make sense to “launch” the
product line to the general department store consumer right away. In
fact, a web interface selling to programmers and audiophiles (with
perhaps some PR in audiophile and programming magazines) would give
the products the necessary “incubation” period, and give a
company the low overhead and reasonably high margins required for low
volume business. Many people are already having a lot of fun
modifying their home appliances – a pastime that has become
especially popular on DVD players due to the DVD region encoding
fiasco (see these links for examples
http://www.nerd-out.com/darrenk/,
http://www.area450.com/).
This is an untapped customer base, requiring exactly the sort of
niche product envisioned as a first release. When the software
stabilizes and the feature set becomes greater than that of
competitors’ appliances, a product “launch” could be
undertaken.
Conclusion
In
the near future, the computer shall be an intrinsic part of all
devices. For open source to remain a viable and powerful concept, it
must make the transition from the desktop into the world. Home
appliance interoperability and intercommunication will enable this
transition, both by allowing new software to be easily “downloaded”
to the appliance, and by creating additional software complexity most
easily solved by the open source methodology. The alternative cannot
be repaired, has features that you don’t need, is missing those
that you do, and is limited in interoperability by corporate
feudalism. Let’s build a revolution!
1
The 900Mhz and 2.4Ghz radio bands (like wireless phones), power plug
serial communications (like X11, IBM home director), Bluetooth, and
the USB serial protocol (the next generation computer to peripheral
connection)
2
The windows operation system is run on the vast majority of home
computers because of its rich set of document processing
applications, so it is unlikely that a company will support other
operating systems. But there are reasons for consumers to use other
operating systems, like greater reliability, higher performance, or
less cost.
No comments:
Post a Comment