11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Encyclopedia</strong> <strong>of</strong><strong>Computer</strong> science<strong>and</strong> technologyRevised Editionharry henderson


In memory <strong>of</strong> my brother,Bruce Henderson,who gave me my first opportunity to explorepersonal computing almost 30 years ago.ENCYCLOPEDIA OF COMPUTER SCIENCE <strong>and</strong> TECHNOLOGY, Revised EditionCopyright © 2009, 2004, 2003 by Harry HendersonAll rights reserved. No part <strong>of</strong> this book may be reproduced or utilized in any form or byany means, electronic or mechanical, including photocopying, recording, or by anyinformation storage or retrieval systems, without permission in writing from the publisher.For information contact:Facts On File, Inc.An imprint <strong>of</strong> Infobase Publishing132 West 31st StreetNew York NY 10001Library <strong>of</strong> Congress Cataloging-in-Publication DataHenderson, Harry, 1951–<strong>Encyclopedia</strong> <strong>of</strong> computer science <strong>and</strong> technology / Harry Henderson.—Rev. ed.p. cm.Includes bibliographical references <strong>and</strong> index.ISBN-13: 978-0-8160-6382-6ISBN-10: 0-8160-6382-61. <strong>Computer</strong> science—<strong>Encyclopedia</strong>s. 2. <strong>Computer</strong>s—<strong>Encyclopedia</strong>s. I. Title.QA76.15.H43 2008004.03—dc22 2008029156Facts On File books are available at special discounts when purchased in bulk quantitiesfor businesses, associations, institutions, or sales promotions. Please call our Special SalesDepartment in New York at (212) 967-8800 or (800) 322-8755.You can find Facts On File on the World Wide Web at http://www.factsonfile.comText design by Erika K. ArroyoCover design by Salvatore Luongolllustrations by Sholto AinsliePhoto research by Tobi Zausner, Ph.D.Printed in the United States <strong>of</strong> AmericaVB Hermitage 10 9 8 7 6 5 4 3 2 1This book is printed on acid-free paper <strong>and</strong> contains30 percent postconsumer recycled content.


C on t e n t sAcknowledgmentsivintroduction to the Revised EditionvA–Z Entries1Appendix IBibliographies <strong>and</strong> Web Resources527Appendix IIA Chronology <strong>of</strong> Computing529Appendix IIISome Significant Awards542Appendix IV<strong>Computer</strong>-Related Organizations553Index555


A c k no w l e d g m e n t swish to acknowledge with gratitude the patient <strong>and</strong> thoroughI management <strong>of</strong> this project by my editor, Frank K. Darmstadt. I canscarcely count the times he has given me encouragement <strong>and</strong> nudgesas needed. I also wish to thank Tobi Zausner, Ph.D., for her ability <strong>and</strong>efficiency in obtaining many <strong>of</strong> the photos for this book.iv


I n t r od u c t ion to t h eR e v i s e d E d i t ionChances are that you use at least one computer or computer-relateddevice on a daily basis. Some are obvious:for example, the personal computer on your desk or atyour school, the laptop, the PDA that may be in your briefcase.Other devices may be a bit less obvious: the “smart”cell phone, the iPod, a digital camera, <strong>and</strong> other essentiallyspecialized computers, communications systems, <strong>and</strong> datastorage systems. Finally, there are the “hidden” computersfound in so many <strong>of</strong> today’s consumer products—such asthe ones that provide stability control, braking assistance,<strong>and</strong> navigation in newer cars.<strong>Computer</strong>s not only seem to be everywhere, but alsoare part <strong>of</strong> so many activities <strong>of</strong> daily life. They bringtogether willing sellers <strong>and</strong> buyers on eBay, allow youto buy a book with a click on the Amazon.com Web site,<strong>and</strong> <strong>of</strong> course put a vast library <strong>of</strong> information (<strong>of</strong> varyingquality) at your fingertips via the World Wide Web.Behind the scenes, inventory <strong>and</strong> payroll systems keepbusinesses running, track shipments, <strong>and</strong> more problematically,keep track <strong>of</strong> where people go <strong>and</strong> what theybuy. Indeed, the infrastructure <strong>of</strong> modern society, fromwater treatment plants to power grids to air-traffic control,depends on complex s<strong>of</strong>tware <strong>and</strong> systems.Modern science would be inconceivable without computersto gather data <strong>and</strong> run models <strong>and</strong> simulations.Whether bringing back pictures <strong>of</strong> the surface <strong>of</strong> Mars ordetailed images to guide brain surgeons, computers havegreatly extended our knowledge <strong>of</strong> the world around us <strong>and</strong>our ability to turn ideas into engineering reality.The revised edition <strong>of</strong> the Facts On File <strong>Encyclopedia</strong> <strong>of</strong><strong>Computer</strong> <strong>Science</strong> <strong>and</strong> <strong>Technology</strong> provides overviews <strong>and</strong>important facts about these <strong>and</strong> dozens <strong>of</strong> other applications<strong>of</strong> computer technology. There are also many entriesdealing with the fundamental concepts underlying computerdesign <strong>and</strong> programming, the Internet, <strong>and</strong> othertopics such as the economic <strong>and</strong> social impacts <strong>of</strong> the informationsociety.The book’s philosophy is that because computer technologyis now inextricably woven into our everyday lives,anyone seeking to underst<strong>and</strong> its impact must not onlyknow how the bits flow, but also how the industry works<strong>and</strong> where it may be going in the years to come.New <strong>and</strong> Enhanced CoverageThe need for a revised edition <strong>of</strong> this encyclopedia becomesclear when one considers the new products, technologies,<strong>and</strong> issues that have appeared in just a few years. (Considerthat at the start <strong>of</strong> the 2000 decade, Ajax was still only acleaning product <strong>and</strong> blog was not even a word.)The revised edition includes almost 180 new entries,including new programming languages (such as C# <strong>and</strong>Ruby), s<strong>of</strong>tware development <strong>and</strong> Web design technologies(such as the aforementioned Ajax, <strong>and</strong> Web services), <strong>and</strong>exp<strong>and</strong>ed coverage <strong>of</strong> Linux <strong>and</strong> other open-source s<strong>of</strong>tware.There are also entries for key companies in s<strong>of</strong>tware,hardware, <strong>and</strong> Web commerce <strong>and</strong> services.Many other new entries reflect new ways <strong>of</strong> using informationtechnology <strong>and</strong> important social issues that arisefrom such use, including the following:• blogging <strong>and</strong> newer forms <strong>of</strong> online communicationthat are influencing journalism <strong>and</strong> political campaigns• other ways for users to create <strong>and</strong> share content, suchas file-sharing networks <strong>and</strong> YouTube• new ways to share <strong>and</strong> access information, such asthe popular Wikipedia• the ongoing debate over who should pay for Internetaccess, <strong>and</strong> whether service providers or governmentsshould be able to control the Web’s content• the impact <strong>of</strong> surveillance <strong>and</strong> data mining on privacy<strong>and</strong> civil liberties


viIntroduction to the Revised Editionas• threats to data security, ranging from identity thieves<strong>and</strong> “phishers” to stalkers <strong>and</strong> potential “cyberterrorists”• the benefits <strong>and</strong> risks <strong>of</strong> social networking sites (suchas MySpace)• the impact <strong>of</strong> new technology on women <strong>and</strong> minorities,young people, the disabled, <strong>and</strong> other groupsOther entries feature new or emerging technology, such• portable media devices (the iPod <strong>and</strong> its coming successors)• home media centers <strong>and</strong> the gradual coming <strong>of</strong> thelong-promised “smart house”• navigation <strong>and</strong> mapping systems (<strong>and</strong> their integrationwith e-commerce)• how computers are changing the way cars, appliances,<strong>and</strong> even telephones work• “Web 2.0”—<strong>and</strong> beyondFinally, we look at the farther reaches <strong>of</strong> the imagination,considering such topics as• nanotechnology• quantum computing• science fiction <strong>and</strong> computing• philosophical <strong>and</strong> spiritual aspects <strong>of</strong> computing• the ultimate “technological singularity”In addition to the many new entries, all existing entrieshave been carefully reviewed <strong>and</strong> updated to include thelatest facts <strong>and</strong> trends.Getting the Most Out <strong>of</strong> This BookThis encyclopedia can be used in several ways: for example,you can look up specific entries by referring from topics inthe index, or simply by browsing. The nearly 600 entriesin this book are intended to read like “mini-essays,” givingnot just the bare definition <strong>of</strong> a topic, but also developing itssignificance for the use <strong>of</strong> computers <strong>and</strong> its relationship toother topics. Related topics are indicated by small capitalletters. At the end <strong>of</strong> each entry is a list <strong>of</strong> books, articles,<strong>and</strong>/or Web sites for further exploration <strong>of</strong> the topic.Every effort has been made to make the writing accessibleto a wide range <strong>of</strong> readers: high school <strong>and</strong> collegestudents, computer science students, working computerpr<strong>of</strong>essionals, <strong>and</strong> adults who wish to be better informedabout computer-related topics <strong>and</strong> issues.The appendices provide further information for reference<strong>and</strong> exploration. They include a chronology <strong>of</strong> significantevents in computing; a listing <strong>of</strong> achievements incomputing as recognized in major awards; an additionalbibliography to supplement that given with the entries;<strong>and</strong> finally, brief descriptions <strong>and</strong> contact information forsome important organizations in the computer field.This book can also be useful to obtain an overview <strong>of</strong>particular areas in computing by reading groups <strong>of</strong> relatedentries. The following listing groups the entries by category.AI <strong>and</strong> Roboticsartificial intelligenceartificial lifeBayesian analysisBreazeal, CynthiaBrooks, Rodneycellular automatachess <strong>and</strong> computerscognitive sciencecomputer visionDreyfus, Hubert L.Engelberger, Josephexpert systemsFeigenbaum, Edwardfuzzy logicgenetic algorithmsh<strong>and</strong>writing recognitioniRobot Corporationknowledge representationKurzweil, Raymond C.Lanier, JaronMaes, PattieMcCarthy, JohnMinsky, Marvin LeeMIT Media Labnatural language processingneural interfacesneural networkPapert, Seymourpattern recognitionroboticssingularity, technologicals<strong>of</strong>tware agentspeech recognition <strong>and</strong> synthesistelepresenceWeizenbaum, JosephBusiness <strong>and</strong> E-Commerce ApplicationsAmazon.comAmerica Online (AOL)application service provider (ASP)application s<strong>of</strong>twareapplication suiteauctions, onlineauditing in data processingbanking <strong>and</strong> computersBezos, Jeffrey P.Brin, Sergeybusiness applications <strong>of</strong> computersCraigslistcustomer relationship management (CRM)decision support systemdesktop publishing (DTP)


Introduction to the Revised Editionviienterprise computingGooglegroupwarehome <strong>of</strong>ficemanagement information system (MIS)middleware<strong>of</strong>fice automationOmidyar, Pierreonline advertisingonline investingonline job searching <strong>and</strong> recruitingoptical character recognition (OCR)Page, LarryPDF (Portable Document Format)personal health information managementpersonal information manager (PIM)presentation s<strong>of</strong>twareproject management s<strong>of</strong>twaresmart cardspreadsheetsupply chain managementsystems analysttelecommutingtext editortransaction processingtrust <strong>and</strong> reputation systemsword processingYahoo!<strong>Computer</strong> Architectureaddressingarithmetic logic unit (ALU)bits <strong>and</strong> bytesbufferingbuscachecomputer engineeringconcurrent programmingcooperative processingCray, Seymourdevice driverdistributed computingembedded systemgrid computingparallel portreduced instruction set computer (RISC)serial portsupercomputerUSB (Universal Serial Bus)<strong>Computer</strong> IndustryAdobe SystemsAdvanced Micro Devices (AMD)Amdahl, Gene MyronApple CorporationBell, C. GordonBell Laboratoriesbenchmarkcertification <strong>of</strong> computer pr<strong>of</strong>essionalsCisco Systemscompatibility <strong>and</strong> portabilitycomputer industryDell, Inc.education in the computer fieldemployment in the computer fieldentrepreneurs in computingGates, William III (Bill)Grove, AndrewIBMIntel Corporationjournalism <strong>and</strong> the computer industrymarketing <strong>of</strong> s<strong>of</strong>twareMicros<strong>of</strong>t CorporationMoore, Gordon E.Motorola Corporationresearch laboratories in computingst<strong>and</strong>ards in computingSun MicrosystemsWozniak, Steven<strong>Computer</strong> <strong>Science</strong> FundamentalsChurch, Alonzocomputer sciencecomputability <strong>and</strong> complexitycyberneticshexadecimal systeminformation theorymathematics <strong>of</strong> computingmeasurement units used in computingTuring, Alan Mathisonvon Neumann, JohnWiener, Norbert<strong>Computer</strong> Security <strong>and</strong> Risksauthenticationbackup <strong>and</strong> archive systemsbiometricscomputer crime <strong>and</strong> securitycomputer forensicscomputer viruscopy protectioncounterterrorism <strong>and</strong> computerscyberstalking <strong>and</strong> harassmentcyberterrorismDiffie, Bailey Whitfielddisaster planning <strong>and</strong> recoveryencryptionfault tolerancefirewallhackers <strong>and</strong> hackingidentity theftinformation warfareMitnick, Kevin D.online frauds <strong>and</strong> scamsphishing <strong>and</strong> spo<strong>of</strong>ingRFID (radio frequency identification)


viiiIntroduction to the Revised Editionrisks <strong>of</strong> computingSpafford, Eugene H.spamspyware <strong>and</strong> adwareY2K ProblemDatabasesCORBA (Common Object Request Broker Architecture)data conversiondata dictionarydata miningdata securitydata warehousedatabase administrationdatabase management system (DBMS)databasehashinginformation retrievalOracle CorporationSAPSOAP (Simple Object Access Protocol)SQLData Communications <strong>and</strong> Networking(General)b<strong>and</strong>widthBluetoothbroadb<strong>and</strong>cable modemclient-server computingdata acquisitiondata communicationsdata compressionDSL (digital subscriber line)error correctionfiber opticsfile serverfile transfer protocolsFireWirelocal area network (LAN)modemnetworksatellite Internet serviceShannon, Claude Esynchronous/asynchronous operationtelecommunicationsterminalWifiwireless computingData Types <strong>and</strong> Algorithmsalgorithmarraybindingbitwise operationsBoolean operatorsbranching statementscharacters <strong>and</strong> stringsclassconstants <strong>and</strong> literalsdatadata abstractiondata structuresdata typesenumerations <strong>and</strong> setsheap (data structure)Knuth, Donaldlist processingnumeric dataoperators <strong>and</strong> expressionssorting <strong>and</strong> searchingstacktreevariableDevelopment <strong>of</strong> <strong>Computer</strong>sAiken, Howardanalog <strong>and</strong> digitalanalog computerAtanas<strong>of</strong>f, John VincentBabbage, CharlescalculatorEckert, J. Presperhistory <strong>of</strong> computingHollerith, HermannMauchly, John WilliammainframeminicomputerZuse, KonradFuture ComputingbioinformationDertouzos, MichaelJoy, Billmolecular computingnanotechnologyquantum computingtrends <strong>and</strong> emerging technologiesubiquitous computingGames, Graphics, <strong>and</strong> Mediaanimation, computerart <strong>and</strong> the computerbitmapped imagecodeccolor in computingcomputer gamescomputer graphicsdigital rights management (DRM)DVR (digital video recording)Electronic Artsfilm industry <strong>and</strong> computingfontfractals in computinggame consolesgraphics card


Introduction to the Revised Editionixgraphics formatsgraphics tabletimage processingmedia center, homemultimediamusic <strong>and</strong> video distribution, onlinemusic <strong>and</strong> video players, digitalmusic, computeronline gamblingonline gamesphotography, digitalpodcastingPostScriptRSS (real simple syndication)RTF (Rich Text Format)sound file formatsstreaming (video or audio)Sutherl<strong>and</strong>, Ivan Edwardvideo editing, digitalYouTubeHardware ComponentsCD-ROM <strong>and</strong> DVD-ROMflash driveflat-panel displayfloppy diskhard diskkeyboardmonitormotherboardnetworked storageoptical computingprinterspunched cards <strong>and</strong> paper tapeRAID (redundant array <strong>of</strong> inexpensive disks)scannertape drivesInternet <strong>and</strong> World Wide Webactive server pages (ASP)Ajax (Asynchronous JavaScript <strong>and</strong> XML)Andreessen, MarcBerners-Lee, Timblogs <strong>and</strong> bloggingbulletin board systems (BBS)Bush, Vannevarcascading style sheets (CSS)Cerf, Vinton G.certificate, digitalCGI (common gateway interface)chat, onlinechatterbotsconferencing systemscontent managementcookiesCunningham, Howard (Ward)cyberspace <strong>and</strong> cyber culturedigital cash (e-commerce)digital convergencedomain name system (DNS)eBaye-books <strong>and</strong> digital librariese-commercee-mailfile-sharing <strong>and</strong> P2P networksflash <strong>and</strong> smart mobHTML, DHTML, <strong>and</strong> XHTMLhypertext <strong>and</strong> hypermediaInternetInternet applications programmingInternet cafes <strong>and</strong> “hot spots”Internet organization <strong>and</strong> governanceInternet radioInternet service provider (ISP)Kleinrock, LeonardLicklider, J. C. R.mashupsNetiquettenetnews <strong>and</strong> newsgroupsonline researchonline servicesportalRheingold, Howardsearch enginesemantic Websocial networkingTCP/IPtexting <strong>and</strong> instant messaginguser-created contentvideoconferencingvirtual communityWales, JimmyWeb 2.0 <strong>and</strong> beyondWeb browserWeb camWeb filterWebmasterWeb page designWeb serverWeb serviceswikis <strong>and</strong> WikipediaWorld Wide WebxmLOperating Systemsdemonemulationfileinput/output (I/O)job control languagekernelLinuxmemorymemory managementmessage passingmicros<strong>of</strong>t windowsMS-DOSmultiprocessing


Introduction to the Revised Editionmultitaskingoperating systemOS Xsystem administratorregular expressionRitchie, DennisshellStallman, RichardTorvalds, LinusUNIXOther Applicationsbioinformaticscars <strong>and</strong> computingcomputer-aided design <strong>and</strong> manufacturing (CAD/CAM)computer-aided instruction (CAI)distance educationeducation <strong>and</strong> computersfinancial s<strong>of</strong>twaregeographical information systems (GIS)journalism <strong>and</strong> computerslanguage translation s<strong>of</strong>twarelaw enforcement <strong>and</strong> computerslegal s<strong>of</strong>twarelibraries <strong>and</strong> computinglinguistics <strong>and</strong> computingmap information <strong>and</strong> navigation systemsmathematics s<strong>of</strong>twaremedical applications <strong>of</strong> computersmilitary applications <strong>of</strong> computersscientific computing applicationssmart buildings <strong>and</strong> homessocial sciences <strong>and</strong> computingspace exploration <strong>and</strong> computersstatistics <strong>and</strong> computingtypography, computerizedworkstationPersonal <strong>Computer</strong> ComponentsBIOS (Basic Input-Output System)boot sequencechipchipsetclock speedCPU (central processing unit)green PCIBM PClaptop computermicroprocessorpersonal computer (PC)PDA (personal digital assistant)plug <strong>and</strong> playsmartphonetablet PCProgram Language Conceptsauthoring systemsautomatic programmingassemblerBackus-Naur Form (BNF)compilerencapsulationfinite state machineflagfunctional languagesinterpreterloopmodeling languagesnonprocedural languagesontologies <strong>and</strong> data modelsoperators <strong>and</strong> expressionsparsingpointers <strong>and</strong> indirectionprocedures <strong>and</strong> functionsprogramming languagesqueuer<strong>and</strong>om number generationreal-time processingrecursionscheduling <strong>and</strong> prioritizationscripting languagesStroustrup, BjarnetemplateWirth, NiklausProgramming LanguagesAdaAlgolAPLawkBASICCC#C++CobolEiffelForthFORTRANJavaJavaScriptLISPLOGOLuaPascalPerlPHPPL/1PrologPythonRPGRubySimulaTclSmalltalkVBScriptSocial, Political, <strong>and</strong> Legal Issuesanonymity <strong>and</strong> the Internetcensorship <strong>and</strong> the Internet


Introduction to the Revised Editionxicomputer literacycyberlawdeveloping nations <strong>and</strong> computingdigital dividedisabled persons <strong>and</strong> computinge-governmentelectronic voting systemsglobalization <strong>and</strong> the computer industrygovernment funding <strong>of</strong> computer researchidentity in the online worldintellectual property <strong>and</strong> computingLessig, Lawerencenet neutralityphilosophical <strong>and</strong> spiritual aspects <strong>of</strong> computingpolitical activism <strong>and</strong> the Internetpopular culture <strong>and</strong> computingprivacy in the digital agescience fiction <strong>and</strong> computingsenior citizens <strong>and</strong> computingservice-oriented architecture (SOA)social impact <strong>of</strong> computingStoll, Cliffordtechnology policywomen <strong>and</strong> minorities in computingyoung people <strong>and</strong> computingS<strong>of</strong>tware Development <strong>and</strong> Engineeringappletapplication program interface (API)bugs <strong>and</strong> debuggingCASE (computer-aided s<strong>of</strong>tware engineering)design patternsDijkstra, Edsgerdocumentation <strong>of</strong> program codedocumentation, userdocument modelDOM (document Object Model)error h<strong>and</strong>lingflowchartHopper, Grace Murrayinformation designinternationalization <strong>and</strong> localizationlibrary, programmacroMicros<strong>of</strong>t .NETobject-oriented programming (OOP)open source movementplug-inprogramming as a pr<strong>of</strong>essionprogramming environmentpseudocodequality assurance, s<strong>of</strong>twarereverse engineeringsharewareSimonyi, Charlessimulations<strong>of</strong>tware engineeringstructured programmingsystems programmingvirtualizationUser Interface <strong>and</strong> Supportdigital dashboardEngelbart, Dougergonomics <strong>of</strong> computinghaptic interfacehelp systemsinstallation <strong>of</strong> s<strong>of</strong>twareJobs, Steven PaulKay, AlanMacintoshmouseNegroponte, Nicholaspsychology <strong>of</strong> computingtechnical supporttechnical writingtouchscreenTurkle, Sherryser groupsuser interfacevirtual realitywearable computers


Aabstract data type See data abstraction.active server pages (ASP)Many users think <strong>of</strong> Web pages as being like pages ina book, stored intact on the server, ready to be flippedthrough with the mouse. Increasingly, however, Web pagesare dynamic—they do not actually exist until the userrequests them, <strong>and</strong> their content is determined largely bywhat the user requests. This dem<strong>and</strong> for greater interactivity<strong>and</strong> customization <strong>of</strong> Web content tends to fall first onthe server (see client-server computing <strong>and</strong> Web server)<strong>and</strong> on “server side” programs to provide such functions asdatabase access. One major platform for developing Webservices is Micros<strong>of</strong>t’s Active Server Pages (ASP).In ASP programmers work with built-in objects that representbasic Web page functions. The RecordSet object canprovide access to a variety <strong>of</strong> databases; the Response objectcan be invoked to display text in response to a user action;<strong>and</strong> the Session object provides variables that can be usedto store information about previous user actions such asadding items to a shopping cart (see also cookies).Control <strong>of</strong> the behavior <strong>of</strong> the objects within the Webpage <strong>and</strong> session was originally h<strong>and</strong>led by code writtenin a scripting language such as VBScript <strong>and</strong> embeddedwithin the HTML text (see html <strong>and</strong> VBScript). However,ASP .NET, based on Micros<strong>of</strong>t’s latest Windowsclass libraries (see Micros<strong>of</strong>t .net) <strong>and</strong> introduced in2002, allows Web services to be written in full-fledgedprogramming languages such as Visual Basic .NET <strong>and</strong>C#, although in-page scripting can still be used. This canprovide several advantages: access to s<strong>of</strong>tware developmenttools <strong>and</strong> methodologies available for establishedprogramming languages, better separation <strong>of</strong> programcode from the “presentational” (formatting) elements <strong>of</strong>HTML, <strong>and</strong> the speed <strong>and</strong> security associated with compiledcode. ASP .NET also emphasizes the increasinglyprevalent Extensible Markup Language (see xml) for organizingdata <strong>and</strong> sending those data between objects usingSimple Object Access Protocol (see soap).Although ASP .NET was designed to be used withMicros<strong>of</strong>t’s Internet Information Server (IIS) under Windows,the open-source Mono project (sponsored by Novell)implements a growing subset <strong>of</strong> the .NET classes for use onUNIX <strong>and</strong> Linux platforms using a C# compiler with appropriateuser interface, graphics, <strong>and</strong> database libraries.An alternative (or complementary) approach that hasbecome popular in recent years reduces the load on theWeb server by avoiding having to resend an entire Webpage when only a small part actually needs to be changed.See Ajax (asynchronous JavaScript <strong>and</strong> XML).Further ReadingBellinaso, Marco. ASP .NET 2.0 Website Programming: Problem—Design—Solution. Indianapolis: Wiley Publishing, 2006.Liberty, Jesse, <strong>and</strong> Dan Hurwitz. Programming ASP .NET. 3rd ed.Sebastapol, Calif.: O’Reilly, 2005.McClure, Wallace B., et al. Beginning Ajax with ASP .NET. Indianapolis:Wiley Publishing, 2006.Mono Project. Available online. URL: http://www.mono-project.com/Main_Page. Accessed April 10, 2007.


AdaAdaStarting in the 1960s, the U.S. Department <strong>of</strong> Defense(DOD) began to confront the growing unmanageability <strong>of</strong>its s<strong>of</strong>tware development efforts. Whenever a new applicationsuch as a communications controller (see embeddedsystem) was developed, it typically had its own specializedprogramming language. With more than 2,000 suchlanguages in use, it had become increasingly costly <strong>and</strong>difficult to maintain <strong>and</strong> upgrade such a wide variety <strong>of</strong>incompatible systems. In 1977, a DOD working group beganto formally solicit proposals for a new general-purpose programminglanguage that could be used for all applicationsranging from weapons control <strong>and</strong> guidance systems to barcodescanners for inventory management. The winning languageproposal eventually became known as Ada, namedfor 19th-century computer pioneer Ada Lovelace see alsoBabbage, Charles). After a series <strong>of</strong> reviews <strong>and</strong> revisions<strong>of</strong> specifications, the American National St<strong>and</strong>ards Institute<strong>of</strong>ficially st<strong>and</strong>ardized Ada in 1983, <strong>and</strong> this first version <strong>of</strong>the language is sometimes called Ada-83.Language FeaturesIn designing Ada, the developers adopted basic languageelements based on emerging principles (see structuredprogramming) that had been implemented in languagesdeveloped during the 1960s <strong>and</strong> 1970s (see Algol <strong>and</strong>Pascal). These elements include well-defined controlstructures (see branching statements <strong>and</strong> loop) <strong>and</strong>the avoidance <strong>of</strong> the haphazard jump or “goto” directive.Ada combines st<strong>and</strong>ard structured language features(including control structures <strong>and</strong> the use <strong>of</strong> subprograms)with user-definable data type “packages” similar to theclasses used later in C++ <strong>and</strong> other languages (see class<strong>and</strong> object-oriented programming). As shown in thissimple example, an Ada program has a general form similarto that used in Pascal. (Note that words in boldface type arelanguage keywords.)with Ada.Text_IO; use Ada.Text_IO;procedure Get_Name isName : String (1..80);Length : Integer;beginPut (“What is your first name?”);Get_Line (Name, Length);New_Line;Put (“Nice to meet you,”);Put (Name (1..Length));end Get_Name;The first line <strong>of</strong> the program specifies what “packages”will be used. Packages are structures that combine datatypes <strong>and</strong> associated functions, such as those needed forgetting <strong>and</strong> displaying text. The Ada.Text.IO package, forexample, has a specification that includes the following:package Text_IO istype File_Type is limited private;type File_Mode is (In_File, Out_File, Append_File);procedure Create (File : in out File_Type;Mode : in File_Mode := Out_File;Name : in String := “”);procedure Close (File : in out File_Type);procedure Put_Line (File : in File_Type;Item : in String);procedure Put_Line (Item : in String);end Text_IO;The package specification begins by setting up a datatype for files, <strong>and</strong> then defines functions for creating <strong>and</strong>closing a file <strong>and</strong> for putting text in files. As with C++classes, more specialized packages can be derived frommore general ones.In the main program Begin starts the actual data processing,which in this case involves displaying a messageusing the Put function from the Ada.Text.IO function <strong>and</strong>getting the user response with Get_Line, then using Putagain to display the text just entered.Ada is particularly well suited to large, complex s<strong>of</strong>twareprojects because the use <strong>of</strong> packages hides <strong>and</strong> protects thedetails <strong>of</strong> implementing <strong>and</strong> working with a data type. Aprogrammer whose program uses a package is restricted tousing the visible interface, which specifies what parametersare to be used with each function. Ada compilers are carefullyvalidated to ensure that they meet the exact specificationsfor the processing <strong>of</strong> various types <strong>of</strong> data (see datatypes), <strong>and</strong> the language is “strongly typed,” meaning thattypes must be explicitly declared, unlike the case with C,where subtle bugs can be introduced when types are automaticallyconverted to make them compatible.Because <strong>of</strong> its application to embedded systems <strong>and</strong> realtimeoperations, Ada includes a number <strong>of</strong> features designedto create efficient object (machine) code, <strong>and</strong> the languagealso makes provision for easy incorporation <strong>of</strong> routines writtenin assembly or other high-level languages. The latest <strong>of</strong>ficialversion, Ada 95, also emphasizes support for parallelprogramming (see multiprocessing). The future <strong>of</strong> Ada isunclear, however, because the Department <strong>of</strong> Defense no longerrequires use <strong>of</strong> the language in government contracts.Ada development has continued, particularly in areasincluding exp<strong>and</strong>ed object-oriented features (includingsupport for interfaces with multiple inheritance); improvedh<strong>and</strong>ling <strong>of</strong> strings, other data types, <strong>and</strong> files; <strong>and</strong> refinementsin real-time processing <strong>and</strong> numeric processing.Further Reading“Ada 95 Lovelace Tutorial.” Available online. URL: http://www.adahome.com/Tutorials/Lovelace/lovelace.htm. Accessed April18, 2008.Ada 95 On-line Reference Manual (hypertext) Available online.URL: http://www.adahome.com/Resources/refs/rm95.html.Accessed April 18, 2008.Barnes, John. Programming in Ada 2005 with CD. New York: PearsonEducation, 2006.Dale, Nell, <strong>and</strong> John W. McCormick. Ada Plus Data Structures: AnObject-Oriented Approach. 2nd ed. Sudbury, Mass.: Jones <strong>and</strong>Bartlett, 2006.


Adobe SystemsaddressingIn order for computers to manipulate data, they must beable to store <strong>and</strong> retrieve it on dem<strong>and</strong>. This requires a wayto specify the location <strong>and</strong> extent <strong>of</strong> a data item in memory.These locations are represented by sequential numbers, oraddresses.Physically, a modern RAM (r<strong>and</strong>om access memory)can be visualized as a grid <strong>of</strong> address lines that crisscrosswith data lines. Each line carries one bit <strong>of</strong> the address,<strong>and</strong> together, they specify a particular location in memory(see memory). Thus a machine with 32 address lines canh<strong>and</strong>le up to 32 bits, or 4 gigabytes (billions <strong>of</strong> bytes) worth<strong>of</strong> addresses. However the amount <strong>of</strong> memory that can beaddressed can be extended through indirect addressing,where the data stored at an address is itself the address <strong>of</strong>another location where the actual data can be found. Thisallows a limited amount <strong>of</strong> fast memory to be used to pointto data stored in auxiliary memory or mass storage thusextending addressing to the space on a hard disk drive.Some <strong>of</strong> the data stored in memory contains the actualprogram instructions to be executed. As the processorexecutes program instructions, an instruction pointeraccesses the location <strong>of</strong> the next instruction. An instructioncan also specify that if a certain condition is met theprocessor will jump over intervening locations to fetchthe next instruction. This implements such control structuresas branching statements <strong>and</strong> loops.Addressing in ProgramsA variable name in a program language actually referencesan address (or <strong>of</strong>ten, a range <strong>of</strong> successive addresses, sincemost data items require more than one byte <strong>of</strong> storage). Forexample, if a program includes the declarationInt Old_Total, New_Total;when the program is compiled, storage for the variablesOld_Total <strong>and</strong> New_Total is set aside at the next availableaddresses. A statement such asNew_Total = 0;is compiled as an instruction to store the value 0 in theaddress represented by New_Total. When the program laterperforms a calculation such as:New_Total = Old_Total + 1;the data is retrieved from the memory location designatedby Old_Total <strong>and</strong> stored in a register in the CPU, where 1 isadded to it, <strong>and</strong> the result is stored in the memory locationdesignated by New_Total.Although programmers don’t have to work directly withaddress locations, programs can also use a special type <strong>of</strong>variable to hold <strong>and</strong> manipulate memory addresses for moreefficient access to data (see pointers <strong>and</strong> indirection).Further Reading“<strong>Computer</strong> Architecture Tutorial.” Available online. URL: http://www.cs.iastate.edu/~prabhu/Tutorial/title.html. Accessed April10, 2007.Murdocca, Miles J., <strong>and</strong> Vincent P. Heuring. Principles <strong>of</strong> <strong>Computer</strong>Architecture. Upper Saddle River, N.J.: Prentice Hall, 2000.Virtual memory uses indirect addressing. When a program requestsdata from memory, the address is looked up in a table that keepstrack <strong>of</strong> each block’s actual location. If the block is not in RAM, oneor more blocks in RAM are copied to the swap file on disk, <strong>and</strong> theneeded blocks are copied from disk into the vacated area in RAM.Adobe SystemsAdobe Systems (NASDAQ symbol ADBE) is best known forproducts relating to the formatting, printing, <strong>and</strong> display <strong>of</strong>documents. Founded in 1982 by John Warnock <strong>and</strong> CharlesGeschke, the company is named for a creek near one <strong>of</strong> theirhomes.Adobe’s first major product was a language that describesthe font sizes, styles, <strong>and</strong> other formatting needed to printpages in near-typeset quality (see PostScript). This was asignificant contribution to the development <strong>of</strong> s<strong>of</strong>tware fordocument creation (see desktop publishing), particularly onthe Apple Macintosh, starting in the later 1980s. Building onthis foundation, Adobe developed high-quality digital fonts(called Type 1). However, Apple’s TrueType fonts proved tobe superior in scaling to different sizes <strong>and</strong> in the precisecontrol over the pixels used to display them. With the licensing<strong>of</strong> TrueType to Micros<strong>of</strong>t for use in Windows, TrueTypefonts took over the desktop, although Adobe Type 1 remainedpopular in commercial typesetting applications. Finally, inthe late 1990s Adobe, together with Micros<strong>of</strong>t, established anew font format called OpenType, <strong>and</strong> by 2003 Adobe hadconverted all <strong>of</strong> its Type 1 fonts to the new format.Adobe’s Portable Document Format (see pdf) has becomea ubiquitous st<strong>and</strong>ard for displaying print documents. Adobegreatly contributed to this development by making a freeAdobe Acrobat PDF reader available for download.


Advanced Micro Devices (AMD)Image Processing S<strong>of</strong>twareIn the mid-1980s Adobe’s founders realized that they couldfurther exploit the knowledge <strong>of</strong> graphics rendition that theyhad gained in developing their fonts. They began to creates<strong>of</strong>tware that would make these capabilities available to illustrators<strong>and</strong> artists as well as desktop publishers. Their firstsuch product was Adobe Illustrator for the Macintosh, a vector-baseddrawing program that built upon the graphics capabilities<strong>of</strong> their PostScript language.In 1989 Adobe introduced Adobe Photoshop for theMacintosh. With its tremendous variety <strong>of</strong> features, theprogram soon became a st<strong>and</strong>ard tool for graphic artists.However, Adobe seemed to have difficulty at first in anticipatingthe growth <strong>of</strong> desktop publishing <strong>and</strong> graphic artson the Micros<strong>of</strong>t Windows platform. Much <strong>of</strong> that marketwas seized by competitors such as Aldus PageMaker <strong>and</strong>QuarkXPress. By the mid-1990s, however, Adobe, fueled bythe continuing revenue from its PostScript technology, hadacquired both Aldus <strong>and</strong> Frame Technologies, maker <strong>of</strong> thepopular FrameMaker document design program. MeanwhilePhotoShop continued to develop on both the Macintosh <strong>and</strong>Windows platforms, aided by its ability to accept add-onsfrom hundreds <strong>of</strong> third-party developers (see plug-ins).Multimedia <strong>and</strong> the WebAdobe made a significant expansion beyond document processinginto multimedia with its acquisition <strong>of</strong> Macromedia(with its popular Flash animation s<strong>of</strong>tware) in 2005 at a cost<strong>of</strong> about $3.4 billion. The company has integrated Macromedia’sFlash <strong>and</strong> Dreamweaver Web-design s<strong>of</strong>tware into itsCreative Suite 3 (CS3). Another recent Adobe product thattargets Web-based publishing is Digital Editions, which integratedthe existing Dreamweaver <strong>and</strong> Flash s<strong>of</strong>tware into apowerful but easy-to-use tool for delivering text content <strong>and</strong>multimedia to Web browsers. Buoyed by these developments,Adobe earned nearly $2 billion in revenue in 2005, about$2.5 billion in 2006, <strong>and</strong> $3.16 billion in 2007.Today Adobe has over 6,600 employees, with its headquartersin San Jose <strong>and</strong> <strong>of</strong>fices in Seattle <strong>and</strong> San Franciscoas well as Bangalore, India; Ottawa, Canada; <strong>and</strong> other locations.In recent years the company has been regarded as asuperior place to work, being ranked by Fortune magazineas the fifth best in America in 2003 <strong>and</strong> sixth best in 2004.Further Reading“Adobe Advances on Stronger Pr<strong>of</strong>it.” Business Week Online, December18, 2006. Available online. URL: http://www.businessweek.com/investor/content/dec2006/pi20061215_986588.htm. Accessed April 10, 2007.Adobe Systems Incorporated home page. Available online. URL:http://www.adobe.com. Accessed April 10, 2007.“Happy Birthday Acrobat: Adobe’s Acrobat Turns 10 Years Old.”Print Media 18 (July–August 2003): 21.Advanced Micro Devices (AMD)Sunnyvale, California-based Advanced Micro Devices, Inc.,(NYSE symbol AMD) is a major competitor in the marketfor integrated circuits, particularly the processors that areat the heart <strong>of</strong> today’s desktop <strong>and</strong> laptop computers (seemicroprocessor). The company was founded in 1969 by agroup <strong>of</strong> executives who had left Fairchild Semiconductor.In 1975 the company began to produce both RAM (memory)chips <strong>and</strong> a clone <strong>of</strong> the Intel 8080 microprocessor.When IBM adopted the Intel 8080 for its first personalcomputer in 1982 (see Intel Corporation <strong>and</strong> IBM PC),it required that there be a second source for the chip. Inteltherefore signed an agreement with AMD to allow the latterto manufacture the Intel 9806 <strong>and</strong> 8088 processors. AMDalso produced the 80286, the second generation <strong>of</strong> PC-compatibleprocessors, but when Intel developed the 80386 itcanceled the agreement with AMD.A lengthy legal dispute ensued, with the CaliforniaSupreme Court finally siding with AMD in 1991. However,as disputes continued over the use by AMD <strong>of</strong> “microcode”(internal programming) from Intel chips, AMD eventuallyused a “clean room” process to independently create functionallyequivalent code (see reverse engineering). However,the speed with which new generations <strong>of</strong> chips wasbeing produced rendered this approach impracticable bythe mid-1980s, <strong>and</strong> Intel <strong>and</strong> AMD concluded a (largelysecret) agreement allowing AMD to use Intel code <strong>and</strong> providingfor cross-licensing <strong>of</strong> patents.In the early <strong>and</strong> mid-1990s AMD had trouble keeping upwith Intel’s new Pentium line, but the AMD K6 (introducedin 1997) was widely viewed as a superior implementation <strong>of</strong>the microcode in the Intel Pentium—<strong>and</strong> it was “pin compatible,”making it easy for manufacturers to include it ontheir motherboards.Today AMD remains second in market share to Intel.AMD’s Athlon, Opteron, Turion, <strong>and</strong> Sempron processorsare comparable to corresponding Intel Pentium processors,<strong>and</strong> the two companies compete fiercely as each introducesnew architectural features to provide greater speed or processingcapacity.In the early 2000s AMD seized the opportunity to beatIntel to market with chips that could double the data b<strong>and</strong>widthfrom 32 bits to 64 bits. The new specification st<strong>and</strong>ard,called AMD64, was adopted for upcoming operatingsystems by Micros<strong>of</strong>t, Sun Microsystems, <strong>and</strong> the developers<strong>of</strong> Linux <strong>and</strong> UNIX kernels. AMD has also matchedIntel in the latest generation <strong>of</strong> dual-core chips that essentiallyprovide two processors on one chip. Meanwhile,AMD strengthened its position in the high-end server marketwhen, in May 2006, Dell <strong>Computer</strong> announced that itwould market servers containing AMD Opteron processors.In 2006 AMD also moved into the graphics-processing fieldby merging with ATI, a leading maker <strong>of</strong> video cards, ata cost <strong>of</strong> $5.4 billion. Meanwhile AMD also continues tobe a leading maker <strong>of</strong> flash memory, closely collaboratingwith Japan’s Fujitsu Corporation (see flash drive). In2008 AMD continued its aggressive pursuit <strong>of</strong> market share,announcing a variety <strong>of</strong> products, including a quad-coreOpteron chip that it expects to catch up to if not surpasssimilar chips from Intel.


AjaxFurther ReadingAMD Web site. Available online. URL: http://www.amd.com/usen/.Accessed April 10, 2007.Rodengen, Jeffrey L. The Spirit <strong>of</strong> AMD: Advanced Micro Devices. Ft.Lauderdale, Fla.: Write Stuff Enterprises, 1998.Tom’s Hardware [CPU articles <strong>and</strong> charts]. Available online. URL:http://www.tomshardware.com/find_by_topic/cpu.html.Accessed April 10, 2007.advertising, online See online advertising.agent s<strong>of</strong>tware See s<strong>of</strong>tware agent.AI See artificial intelligence.Aiken, Howard(1900–1973)AmericanElectrical EngineerHoward Hathaway Aiken was a pioneer in the development<strong>of</strong> automatic calculating machines. Born on March 8, 1900,in Hoboken, New Jersey, he grew up in Indianapolis, Indiana,where he pursued his interest in electrical engineeringby working at a utility company while in high school. Heearned a B.A. in electrical engineering in 1923 at the University<strong>of</strong> Wisconsin.By 1935, Aiken was involved in theoretical work onelectrical conduction that required laborious calculation.Inspired by work a hundred years earlier (see Babbage,Charles), Aiken began to investigate the possibility <strong>of</strong> buildinga large-scale, programmable, automatic computing device(see calculator). As a doctoral student at Harvard, Aikenaroused interest in his project, particularly from ThomasWatson, Sr., head <strong>of</strong> International Business Machines (IBM).In 1939, IBM agreed to underwrite the building <strong>of</strong> Aiken’sfirst calculator, the Automatic Sequence Controlled Calculator,which became known as the Harvard Mark I.Mark I <strong>and</strong> Its ProgenyLike Babbage, Aiken aimed for a general-purpose programmablemachine rather than an assembly <strong>of</strong> special-purposearithmetic units. Unlike Babbage, Aiken had accessto a variety <strong>of</strong> tested, reliable components, including cardpunches, readers, <strong>and</strong> electric typewriters from IBM <strong>and</strong>the mechanical electromagnetic relays used for automaticswitching in the telephone industry. His machine used decimalnumbers (23 digits <strong>and</strong> a sign) rather than the binarynumbers <strong>of</strong> the majority <strong>of</strong> later computers. Sixty registersheld whatever constant data numbers were needed to solvea particular problem. The operator turned a rotary dial toenter each digit <strong>of</strong> each number. Variable data <strong>and</strong> programinstructions were entered via punched paper tape. Calculationshad to be broken down into specific instructions similarto those in later low-level programming languages suchas “store this number in this register” or “add this numberto the number in that register” (see assembler). The results(usually tables <strong>of</strong> mathematical function values) could beprinted by an electric typewriter or output on punchedcards. Huge (about 8 feet [2.4 m] high by 51 feet [15.5 m]long), slow, but reliable, the Mark I worked on a variety<strong>of</strong> problems during World War II, ranging from equationsused in lens design <strong>and</strong> radar to the designing <strong>of</strong> the implosivecore <strong>of</strong> an atomic bomb.Aiken completed an improved model, the Mark II, in1947. The Mark III <strong>of</strong> 1950 <strong>and</strong> Mark IV <strong>of</strong> 1952, however,were electronic rather than electromechanical, replacingrelays with vacuum tubes.Compared to later computers such as the ENIAC <strong>and</strong>UNIVAC, the sequential calculator, as its name suggests,could only perform operations in the order specified. Anylooping had to be done by physically creating a repetitivetape <strong>of</strong> instructions. (After all, the program as a whole wasnot stored in any sort <strong>of</strong> memory, <strong>and</strong> so previous instructionscould not be reaccessed.) Although Aiken’s machinessoon slipped out <strong>of</strong> the mainstream <strong>of</strong> computer development,they did include the modern feature <strong>of</strong> parallel processing,because different calculation units could work ondifferent instructions at the same time. Further, Aiken recognizedthe value <strong>of</strong> maintaining a library <strong>of</strong> frequentlyneeded routines that could be reused in new programs—another fundamental <strong>of</strong> modern s<strong>of</strong>tware engineering.Aiken’s work demonstrated the value <strong>of</strong> large-scale automaticcomputation <strong>and</strong> the use <strong>of</strong> reliable, available technology.<strong>Computer</strong> pioneers from around the world came toAiken’s Harvard computation lab to debate many issues thatwould become staples <strong>of</strong> the new discipline <strong>of</strong> computerscience. The recipient <strong>of</strong> many awards including the EdisonMedal <strong>of</strong> the IEEE <strong>and</strong> the Franklin Institute’s John PriceAward, Howard Aiken died on March 14, 1973, in St. Louis,Missouri.Further ReadingCohen, I. B. Howard Aiken: Portrait <strong>of</strong> a <strong>Computer</strong> Pioneer. Cambridge,Mass.: MIT Press, 1999.Cohen, I. B., R. V. D. Campbell, <strong>and</strong> G. Welch, eds. Makin’ Numbers:Howard Aiken <strong>and</strong> the <strong>Computer</strong>. Cambridge, Mass.: MITPress, 1999.Ajax (Asynchronous JavaScript <strong>and</strong> XML)With the tremendous growth in Web usage comes a challengeto deliver Web-page content more efficiently <strong>and</strong> withgreater flexibility. This is desirable to serve adequately themany users who still rely on relatively low-speed dial-upInternet connections <strong>and</strong> to reduce the dem<strong>and</strong> on Webservers. Ajax (asynchronous JavaScript <strong>and</strong> XML) takesadvantage <strong>of</strong> several emerging Web-development technologiesto allow Web pages to interact with users while keepingthe amount <strong>of</strong> data to be transmitted to a minimum.In keeping with modern Web-design principles, theorganization <strong>of</strong> the Web page is managed by coding inXHTML, a dialect <strong>of</strong> HTML that uses the stricter rules <strong>and</strong>


Algolgrammar <strong>of</strong> the data-description markup language XML(see html, dhtml, <strong>and</strong> xhtml <strong>and</strong> xml). Alternatively,data can be stored directly in XML. A structure calledthe DOM (Document Object Model; see dom) is used torequest data from the server, which is accessed through anobject called httpRequest. The “presentational” information(regarding such matters as fonts, font sizes <strong>and</strong> styles, justification<strong>of</strong> paragraphs, <strong>and</strong> so on) is generally incorporatedin an associated cascading style sheet (see cascading stylesheets). Behavior such as the presentation <strong>and</strong> processing<strong>of</strong> forms or user controls is usually h<strong>and</strong>led by a scriptinglanguage (for example, see JavaScript). Ajax techniques tiethese forms <strong>of</strong> processing together so that only the part <strong>of</strong>the Web page affected by current user activity needs to beupdated. Only a small amount <strong>of</strong> data needs to be receivedfrom the server, while most <strong>of</strong> the HTML code needed toupdate the page is generated on the client side—that is, inthe Web browser. Besides making Web pages more flexible<strong>and</strong> interactive, Ajax also makes it much easier to developmore elaborate applications, even delivering fully functionalapplications such as word processing <strong>and</strong> spreadsheets overthe Web (see application service provider).Some critics <strong>of</strong> Ajax have decried its reliance on Java-Script, arguing that the language has a hard-to-use syntaxsimilar to the C language <strong>and</strong> poorly implements objects(see object-oriented programming). There is also a needto st<strong>and</strong>ardize behavior across the popular Web browsers.Nevertheless, Ajax has rapidly caught on in the Web developmentcommunity, filling bookstore shelves with bookson applying Ajax techniques to a variety <strong>of</strong> other languages(see, for example, php).Ajax can be simplified by providing a framework <strong>of</strong>objects <strong>and</strong> methods that the programmer can use to set up<strong>and</strong> manage the connections between server <strong>and</strong> browser.Some frameworks simply provide a set <strong>of</strong> data structures<strong>and</strong> functions (see application program interface), whileothers include Ajax-enabled user interface components suchas buttons or window tabs. Ajax frameworks also vary inhow much <strong>of</strong> the processing is done on the server <strong>and</strong> howmuch is done on the client (browser) side. Ajax frameworksare most commonly used with JavaScript, but also exist forJava (Google Web Toolkit), PHP, C++, <strong>and</strong> Python as well asother scripting languages. An interesting example is Flapjax,a project developed by researchers at Brown University.Flapjax is a complete high-level programming language thatuses the same syntax as the popular JavaScript but hidesthe messy details <strong>of</strong> sharing <strong>and</strong> updating data between client<strong>and</strong> server.Drawbacks <strong>and</strong> ChallengesBy their very nature, Ajax-delivered pages behave differentlyfrom conventional Web pages. Because the updatedpage is not downloaded as such from the server, thebrowser cannot record it in its “history” <strong>and</strong> allow theuser to click the “back” button to return to a previouspage. Mechanisms for counting the number <strong>of</strong> page viewscan also fail. As a workaround, programmers have sometimescreated “invisible” pages that are used to make thedesired history entries. Another problem is that since contentmanipulated using Ajax is not stored in discrete pageswith identifiable URLs, conventional search engines cannotread <strong>and</strong> index it, so a copy <strong>of</strong> the data must be providedon a conventional page for indexing. The extentto which XML should be used in place <strong>of</strong> more compactdata representations is also a concern for many developers.Finally, accessibility tools (see disabled persons<strong>and</strong> computers) <strong>of</strong>ten do not work with Ajax-deliveredcontent, so an alternative form must <strong>of</strong>ten be provided tocomply with accessibility guidelines or regulations.Despite these concerns, Ajax is in widespread use <strong>and</strong>can be seen in action in many popular Web sites, includingGoogle Maps <strong>and</strong> the photo-sharing site Flickr.com.Further ReadingAjaxian [news <strong>and</strong> resources for Ajax developers]. Availableonline. URL: http://ajaxian.com/. Accessed April 10, 2007.Crane, David, Eric Pascarello, <strong>and</strong> Darren James. Ajax in Action.Greenwich, Conn.: Manning Publications, 2006.“Google Web Toolkit: Build AJAX Apps in the Java Language.”Available online. URL: http://code.google.com/webtoolkit/.Accessed April 10, 2007.Holzner, Steve. Ajax for Dummies. Hoboken, N.J.: Wiley, 2006.Jacobs, Sas. Beginning XML with DOM <strong>and</strong> Ajax: From Novice toPr<strong>of</strong>essional. Berkeley, Calif.: Apress, 2006.Ajax is a way to quickly <strong>and</strong> efficiently update dynamic Webpages—formatting is separate from content, making it easy torevise the latter.AlgolThe 1950s <strong>and</strong> early 1960s saw the emergence <strong>of</strong> two highlevelcomputer languages into widespread use. The first wasdesigned to be an efficient language for performing scientificcalculations (see fortran). The second was designedfor business applications, with an emphasis on data processing(see cobol). However many programs continued tobe coded in low-level languages (see assembler) designedto take advantages <strong>of</strong> the hardware features <strong>of</strong> particularmachines.In order to be able to easily express <strong>and</strong> share methods<strong>of</strong> calculation (see algorithm), leading programmers


algorithmbegan to seek a “universal” programming language thatwas not designed for a particular application or hardwareplatform. By 1957, the German GAMM (Gesellschaft fürangew<strong>and</strong>te Mathematik und Mechanik) <strong>and</strong> the AmericanACM (Association for Computing Machinery) had joinedforces to develop the specifications for such a language. Theresult became known as the Zurich Report or Algol-58, <strong>and</strong>it was refined into the first widespread implementation <strong>of</strong>the language, Algol-60.Language FeaturesAlgol is a block-structured, procedural language. Each variableis declared to belong to one <strong>of</strong> a small number <strong>of</strong> kinds<strong>of</strong> data including integer, real number (see data types),or a series <strong>of</strong> values <strong>of</strong> either type (see array). While thenumber <strong>of</strong> types is limited <strong>and</strong> there is no facility for definingnew types, the compiler’s type checking (making sure adata item matches the variable’s declared type) introduced alevel <strong>of</strong> security not found in most earlier languages.An Algol program can contain a number <strong>of</strong> separateprocedures or incorporate externally defined procedures(see library, program), <strong>and</strong> the variables with the samename in different procedure blocks do not interfere withone another. A procedure can call itself (see recursion).St<strong>and</strong>ard control structures (see branching statements<strong>and</strong> loop) were provided.The following simple Algol program stores the numbersfrom 1 to 10 in an array while adding them up, then printsthe total:begininteger array ints[1:10];integer counter, total;total := 0;for counter :=1 step 1 until counter > 10dobeginints [counter] := counter;total := total + ints[counter];end;printstring “The total is:”;printint (total);endAlgol’s LegacyThe revision that became known as Algol-68 exp<strong>and</strong>edthe variety <strong>of</strong> data types (including the addition <strong>of</strong> boolean,or true/false values) <strong>and</strong> added user-defined types<strong>and</strong> “structs” (records containing fields <strong>of</strong> different types<strong>of</strong> data). Pointers (references to values) were also implemented,<strong>and</strong> flexibility was added to the parameters thatcould be passed to <strong>and</strong> from procedures.Although Algol was used as a production language insome computer centers (particularly in Europe), its relativecomplexity <strong>and</strong> unfamiliarity impeded its acceptance,as did the widespread corporate backing for the rival languagesFORTRAN <strong>and</strong> especially COBOL. Algol achievedits greatest success in two respects: for a time it becamethe language <strong>of</strong> choice for describing new algorithms forcomputer scientists, <strong>and</strong> its structural features would beadopted in the new procedural languages that emerged inthe 1970s (see Pascal <strong>and</strong> c).Further Reading“Algol 68 Home Page.” URL: http://www.algol68.org. AccessedApril 10, 2007.Backus, J. W., <strong>and</strong> others. “Revised Report on the Algorithmic LanguageAlgol 60.” Originally published in Numerische Mathematik,the Communications <strong>of</strong> the ACM, <strong>and</strong> the Journal <strong>of</strong> the British<strong>Computer</strong> Society. Available online. URL: http://www.masswerk.at/algol60/report.htm. Accessed April 10, 2007.algorithmWhen people think <strong>of</strong> computers, they usually think <strong>of</strong>silicon chips <strong>and</strong> circuit boards. Moving from relays tovacuum tubes to transistors to integrated circuits hasvastly increased the power <strong>and</strong> speed <strong>of</strong> computers, butthe essential idea behind the work computers do remainsthe algorithm. An algorithm is a reliable, definable procedurefor solving a problem. The idea <strong>of</strong> the algorithm goesback to the beginnings <strong>of</strong> mathematics <strong>and</strong> elementaryschool students are usually taught a variety <strong>of</strong> algorithms.For example, the procedure for long division by successivedivision, subtraction, <strong>and</strong> attaching the next digit isan algorithm. Since a bona fide algorithm is guaranteed towork given the specified type <strong>of</strong> data <strong>and</strong> the rote following<strong>of</strong> a series <strong>of</strong> steps, the algorithmic approach is naturallysuited to mechanical computation.Algorithms in <strong>Computer</strong> <strong>Science</strong>Just as a cook learns both general techniques such as howto sauté or how to reduce a sauce <strong>and</strong> a repertoire <strong>of</strong> specificrecipes, a student <strong>of</strong> computer science learns both generalproblem-solving principles <strong>and</strong> the details <strong>of</strong> common algorithms.These include a variety <strong>of</strong> algorithms for organizingdata (see sorting <strong>and</strong> searching), for numeric problems(such as generating r<strong>and</strong>om numbers or finding primes),<strong>and</strong> for the manipulation <strong>of</strong> data structures (see list processing<strong>and</strong> queue).A working programmer faced with a new task first triesto think <strong>of</strong> familiar algorithms that might be applicable tothe current problem, perhaps with some adaptation. Forexample, since a variety <strong>of</strong> well-tested <strong>and</strong> well-understoodsorting algorithms have been developed, a programmer islikely to apply an existing algorithm to a sorting problemrather than attempt to come up with something entirelynew. Indeed, for most widely used programming languagesthere are packages <strong>of</strong> modules or procedures that implementcommonly needed data structures <strong>and</strong> algorithms (seelibrary, program).If a problem requires the development <strong>of</strong> a new algorithm,the designer will first attempt to determine whetherthe problem can, at least in theory, be solved (see computability<strong>and</strong> complexity). Some kinds <strong>of</strong> problems havebeen shown to have no guaranteed answer. If a new algorithmseems feasible, principles found to be effective in thepast will be employed, such as breaking complex problems


ALUdown into component parts or building up from the simplestcase to generate a solution (see recursion). For example,the merge-sort algorithm divides the data to be sortedinto successively smaller portions until they are sorted, <strong>and</strong>then merges the sorted portions back together.Another important aspect <strong>of</strong> algorithm design is choosingan appropriate way to organize the data (see data structures).For example, a sorting algorithm that uses a branching(tree) structure would probably use a data structure thatimplements the nodes <strong>of</strong> a tree <strong>and</strong> the operations for adding,deleting, or moving them (see class).Once the new algorithm has been outlined (see pseudocode),it is <strong>of</strong>ten desirable to demonstrate that it will workfor any suitable data. Mathematical techniques such as thefinding <strong>and</strong> proving <strong>of</strong> loop invariants (where a true assertionremains true after the loop terminates) can be used todemonstrate the correctness <strong>of</strong> the implementation <strong>of</strong> thealgorithm.Practical ConsiderationsIt is not enough that an algorithm be reliable <strong>and</strong> correct,it must also be accurate <strong>and</strong> efficient enough for itsintended use. A numerical algorithm that accumulates toomuch error through rounding or truncation <strong>of</strong> intermediateresults may not be accurate enough for a scientific application.An algorithm that works by successive approximationor convergence on an answer may require too many iterationseven for today’s fast computers, or may consume toomuch <strong>of</strong> other computing resources such as memory. Onthe other h<strong>and</strong>, as computers become more <strong>and</strong> more powerful<strong>and</strong> processors are combined to create more powerfulsupercomputers (see supercomputer <strong>and</strong> concurrentprogramming), algorithms that were previously consideredimpracticable might be reconsidered. Code pr<strong>of</strong>iling(analysis <strong>of</strong> which program statements are being executedthe most frequently) <strong>and</strong> techniques for creating more efficientcode can help in some cases. It is also necessary tokeep in mind special cases where an otherwise efficientalgorithm becomes much less efficient (for example, a treesort may work well for r<strong>and</strong>om data but will become badlyunbalanced <strong>and</strong> slow when dealing with data that is alreadysorted or mostly sorted).Sometimes an exact solution cannot be mathematicallyguaranteed or would take too much time <strong>and</strong> resources tocalculate, but an approximate solution is acceptable. A socalled“greedy algorithm” can proceed in stages, testing ateach stage whether the solution is “good enough.” Anotherapproach is to use an algorithm that can produce a reasonableif not optimal solution. For example, if a group <strong>of</strong>tasks must be apportioned among several people (or computers)so that all tasks are completed in the shortest possibletime, the time needed to find an exact solution risesexponentially with the number <strong>of</strong> workers <strong>and</strong> tasks. Butan algorithm that first sorts the tasks by decreasing length<strong>and</strong> then distributes them among the workers by “dealing”them one at a time like cards at a bridge table will, as demonstratedby Ron Graham, give an allocation guaranteed tobe within 4/3 <strong>of</strong> the optimal result—quite suitable for mostapplications. (A procedure that can produce a practical,though not perfect solution is actually not an algorithm buta heuristic.)An interesting approach to optimizing the solution toa problem is allowing a number <strong>of</strong> separate programs to“compete,” with those showing the best performance surviving<strong>and</strong> exchanging pieces <strong>of</strong> code (“genetic material”)with other successful programs (see genetic algorithms).This <strong>of</strong> course mimics evolution by natural selection in thebiological world.Further ReadingBerlinksi, David. The Advent <strong>of</strong> the Algorithm: The Idea That Rulesthe World. New York: Harcourt, 2000.Cormen, T. H., C. E. Leiserson, R. L. Rivest, <strong>and</strong> Clifford Stein.Introduction to Algorithms. 2nd ed. Cambridge, Mass.: MITPress, 2001.Knuth, Donald E. The Art <strong>of</strong> <strong>Computer</strong> Programming. Vol. 1: FundamentalAlgorithms. 3rd ed. Reading, Mass.: Addison-Wesley,1997. Vol. 2: Seminumerical Algorithms. 3rd ed. Reading, Mass.:Addison-Wesley, 1997. Vol. 3: Searching <strong>and</strong> Sorting. 2nd ed.Reading, Mass.: Addison-Wesley, 1998.ALU See arithmetic logic unit.Amazon.comBeginning modestly in 1995 as an online bookstore, Amazon.combecame one <strong>of</strong> the first success stories <strong>of</strong> the earlyInternet economy (see also e-commerce).Named for the world’s largest river, Amazon.com wasthe brainchild <strong>of</strong> entrepreneur Jeffrey Bezos (see Bezos,Jeffrey P.). Like a number <strong>of</strong> other entrepreneurs <strong>of</strong> theearly 1990s, Bezos had been searching for a way to marketto the growing number <strong>of</strong> people who were going online.He soon decided that books were a good first product, sincethey were popular, nonperishable, relatively compact, <strong>and</strong>easy to ship.Several million books are in print at any one time,with about 275,000 titles or editions added in 2007 inthe United States alone. Traditional “brick <strong>and</strong> mortar”(physical) bookstores might carry a few thous<strong>and</strong> titlesup to perhaps 200,000 for the largest chains. Bookstoresin turn stock their shelves mainly through major bookdistributors that serve as intermediaries between publishers<strong>and</strong> the public.For an online bookstore such as Amazon.com, however,the number <strong>of</strong> titles that can be made available is limitedonly by the amount <strong>of</strong> warehouse space the store is willingto maintain—<strong>and</strong> no intermediary between publisher <strong>and</strong>bookseller is needed. From the start, Amazon.com’s businessmodel has capitalized on this potential for variety <strong>and</strong>the ability to serve almost any niche interest. Over the yearsthe company’s <strong>of</strong>ferings have exp<strong>and</strong>ed beyond books to34 different categories <strong>of</strong> merch<strong>and</strong>ise, including s<strong>of</strong>tware,music, video, electronics, apparel, home furnishings, <strong>and</strong>even nonperishable gourmet food <strong>and</strong> groceries. (Amazon.com also entered the online auction market, but remains adistant runner-up to market leader eBay).


Amazon.comExpansion <strong>and</strong> Pr<strong>of</strong>itabilityBecause <strong>of</strong> its desire to build a very diverse product line,Amazon.com, unusually for a business startup, did notexpect to become pr<strong>of</strong>itable for about five years. The growingrevenues were largely poured back into expansion.In the heated atmosphere <strong>of</strong> the Internet boom <strong>of</strong> thelate 1990s, many other Internet-based businesses echoedthat philosophy, <strong>and</strong> many went out <strong>of</strong> business followingthe bursting <strong>of</strong> the so-called dot-com bubble <strong>of</strong> theearly 2000s. Some analysts questioned whether even thehugely popular Amazon.com would ever be able to convertits business volume into an operating pr<strong>of</strong>it. However,the company achieved its first pr<strong>of</strong>itable year in 2003(with a modest $35 million surplus). Since then growthhas remained steady <strong>and</strong> generally impressive: In 2005,Amazon.com earned $8.49 billion revenues with a netincome <strong>of</strong> $359 million. By then the company had about12,000 employees <strong>and</strong> had been added to the S&P 500stock index.In 2006 the company maintained its strategy <strong>of</strong> investingin innovation rather than focusing on short-term pr<strong>of</strong>its.Its latest initiatives include selling digital versions <strong>of</strong>books (e-books) <strong>and</strong> magazine articles, new arrangementsto sell video content, <strong>and</strong> even a venture into moviemaking.By year end, annual revenue had increased to $10.7 billion.In November 2007 Amazon announced the Kindle, abook reader (see e-books <strong>and</strong> digital libraries) with asharp “paper-like” display. In addition to books, the Kindlecan also subscribe to <strong>and</strong> download magazines, contentfrom newspaper Web sites, <strong>and</strong> even blogs.As part <strong>of</strong> its expansion strategy, Amazon.com hasacquired other online bookstore sites including Borders.com<strong>and</strong> Waldenbooks.com. The company has also exp<strong>and</strong>edgeographically with retail operations in Canada, the UnitedKingdom, France, Germany, Japan, <strong>and</strong> China.Amazon.com has kept a tight rein on its operations evenwhile continually exp<strong>and</strong>ing. The company’s leading marketposition enables it to get favorable terms from publishers<strong>and</strong> manufacturers. A high degree <strong>of</strong> warehouse automation<strong>and</strong> an efficient procurement system keep stock movingquickly rather than taking up space on the shelves.Information-Based StrategiesAmazon.com has skillfully taken advantage <strong>of</strong> informationtechnology to exp<strong>and</strong> its capabilities <strong>and</strong> <strong>of</strong>ferings. Examples<strong>of</strong> such efforts include new search mechanisms, cultivation<strong>of</strong> customer relationships, <strong>and</strong> the development <strong>of</strong>new ways for users to sell their own goods.Amazon’s “Search Inside the Book” feature is a goodexample <strong>of</strong> leveraging search technology to take advantage<strong>of</strong> having a growing amount <strong>of</strong> text online. If the publisher<strong>of</strong> a book cooperates, its actual text is made available foronline searching. (The amount <strong>of</strong> text that can be displayedis limited to prevent users from being able to read entirebooks for free.) Further, one can see a list <strong>of</strong> books citing(or being cited by) the current book, providing yet anotherway to explore connections between ideas as used by differentauthors. Obviously for Amazon.com, the ultimatereason for <strong>of</strong>fering all these useful features is that morepotential customers may be able to find <strong>and</strong> purchase bookson even the most obscure topics.Amazon.com’s use <strong>of</strong> information about customers’buying histories is based on the idea that the more oneknows about what customers have wanted in the past, themore effectively they can be marketed to in the futurethrough customizing their view <strong>of</strong> the site. Users receiveautomatically generated recommendations for books orother items based on their previous purchases (see alsocustomer relationship management). There is even a“plog” or customized Web log that <strong>of</strong>fers postings relatedto the user’s interests <strong>and</strong> allows the user to respond.There are other ways in which Amazon.com tries toinvolve users actively in the marketing process. For example,users are encouraged to review books <strong>and</strong> other products<strong>and</strong> to create lists that can be shared with other users.The inclusion <strong>of</strong> both user <strong>and</strong> pr<strong>of</strong>essional reviews in turnmakes it easier for prospective purchasers to determinewhether a given book or other item is suitable. Authors aregiven the opportunity through “Amazon Connect” to provideadditional information about their books. Finally, inlate 2005 Amazon replaced an earlier “discussion board”facility with a wiki system that allows purchasers to createor edit an information page for any product (see wikis<strong>and</strong> Wikipedia).The company’s third major means <strong>of</strong> expansion is t<strong>of</strong>acilitate small businesses <strong>and</strong> even individual users inthe marketing <strong>of</strong> their own goods. Amazon Marketplace,a service launched in 2001, allows users to sell a variety <strong>of</strong>items, with no fees charged unless the item is sold. Thereare also many provisions for merchants to set up online“storefronts” <strong>and</strong> take advantage <strong>of</strong> online payment <strong>and</strong>other services.Another aspect <strong>of</strong> Amazon’s marketing is its referral network.Amazon’s “associates” are independent businessesthat provide links from their own sites to products on Amazon.For example, a seller <strong>of</strong> crafts supplies might includeon its site links to books on crafting on the Amazon site. Inreturn, the referring business receives a commission fromAmazon.com.Although <strong>of</strong>ten admired for its successful business plan,Amazon.com has received criticism from several quarters.Some users have found the company’s customer service(which is h<strong>and</strong>led almost entirely by e-mail) to beunresponsive. Meanwhile local <strong>and</strong> specialized bookstores,already suffering in recent years from the competition <strong>of</strong>large chains such as Borders <strong>and</strong> Barnes <strong>and</strong> Noble, haveseen in Amazon.com another potent threat to the survival<strong>of</strong> their business. (The company’s size <strong>and</strong> economic powerhave elicited occasional comparisons with Wal-Mart.)Finally, Amazon.com has been criticized by some laboradvocates for paying low wages <strong>and</strong> threatening to terminateworkers who sought to unionize.Further ReadingAmazon.com Web site. Available online. URL: http://www.amazon.com. Accessed August 28, 2007.Daisey, Mike. 21 Dog Years: Doing Time @ Amazon.com. New York:The Free Press, 2002.Marcus, James. Amazonia. New York: New Press, 2005.


10 Amdahl, Gene MyronShanahan, Francis. Amazon.com Mashups. New York: Wrox/Wiley,2007.Spector, Robert. Amazon.com: Get Big Fast: Inside the RevolutionaryBusiness Model That Changed the World. New York: Harper-Business, 2002.Amdahl, Gene Myron(1922– )AmericanInventor, EntrepreneurGene Amdahl played a major role in designing <strong>and</strong> developingthe mainframe computer that dominated data processingthrough the 1970s (see mainframe). Amdahl was bornon November 16, 1922, in Fl<strong>and</strong>reau, South Dakota. Afterhaving his education interrupted by World War II, Amdahlreceived a B.S. from South Dakota State University in 1948<strong>and</strong> a Ph.D. in physics at the University <strong>of</strong> Wisconsin in1952.As a graduate student Amdahl had realized that furtherprogress in physics <strong>and</strong> other sciences required better,faster tools for computing. At the time there were only a fewcomputers, <strong>and</strong> the best approach to getting access to significantcomputing power seemed to be to design one’s ownmachine. Amdahl designed a computer called the WISC(Wisconsin Integrally Synchronized <strong>Computer</strong>). This computerused a sophisticated procedure to break calculationsinto parts that could be carried out on separate processors,making it one <strong>of</strong> the earliest examples <strong>of</strong> the parallel computingtechniques found in today’s computer architectures.Designer for IBMIn 1952 Amdahl went to work for IBM, which had committeditself to dominating the new data processing industry.Amdahl worked with the team that eventually designed theIBM 704. The 704 improved upon the 701, the company’sfirst successful mainframe, by adding many new internalprogramming instructions, including the ability to performfloating point calculations (involving numbers thathave decimal points). The machine also included a fast,high-capacity magnetic core memory that let the machineretrieve data more quickly during calculations. In November1953 Amdahl became the chief project engineer forthe 704 <strong>and</strong> then helped design the IBM 709, which wasdesigned especially for scientific applications.When IBM proposed extending the technology by buildinga powerful new scientific computer called STRETCH,Amdahl eagerly applied to head the new project. However,he ended up on the losing side <strong>of</strong> a corporate power struggle,<strong>and</strong> did not receive the post. He left IBM at the end <strong>of</strong>1955.In 1960 Amdahl rejoined IBM, where he was sooninvolved in several design projects. The one with the mostlasting importance was the IBM System/360, which wouldbecome the most ubiquitous <strong>and</strong> successful mainframe computer<strong>of</strong> all time. In this project Amdahl further refined hisideas about making a computer’s central processing unitmore efficient. He designed logic circuits that enabled theprocessor to analyze the instructions waiting to be executed(the “pipeline”) <strong>and</strong> determine which instructions could beexecuted immediately <strong>and</strong> which would have to wait for theresults <strong>of</strong> other instructions. He also used a cache, or specialmemory area, in which the instructions that would be needednext could be stored ahead <strong>of</strong> time so they could be retrievedimmediately when needed. Today’s desktop PCs use thesesame ideas to get the most out <strong>of</strong> their chips’ capabilities.Amdahl also made important contributions to thefurther development <strong>of</strong> parallel processing. Amdahl createda formula called Amdahl’s law that basically says thatthe advantage gained from using more processors graduallydeclines as more processor are added. The amount <strong>of</strong>improvement is also proportional to how much <strong>of</strong> the calculationcan be broken down into parts that can be run inparallel. As a result, some kinds <strong>of</strong> programs can run muchfaster with several processors being used simultaneously,while other programs may show little improvement.In the mid-1960s Amdahl helped establish IBM’sAdvanced Computing Systems Laboratory in Menlo Park,California, which he directed. However, he became increasinglyfrustrated with what he thought was IBM’s too rigidapproach to designing <strong>and</strong> marketing computers. Hedecided to leave IBM again <strong>and</strong>, this time, challenge it inthe marketplace.Creator <strong>of</strong> “clones”Amdahl resolved to make computers that were more powerfulthan IBM’s machines, but that would be “plug compatible”with them, allowing them to use existing hardware <strong>and</strong>s<strong>of</strong>tware. To gain an edge over the computer giant, Amdahlwas able to take advantage <strong>of</strong> the early developments inintegrated electronics to put more circuits on a chip withoutmaking the chips too small, <strong>and</strong> thus too crowded forplacing the transistors.Thanks to the use <strong>of</strong> larger scale circuit integration,Amdahl could sell machines with superior technology tothat <strong>of</strong> the IBM 360 or even the new IBM 370, <strong>and</strong> at alower price. IBM responded belatedly to the competition,making more compact <strong>and</strong> faster processors, but Amdahlmet each new IBM product with a faster, cheaper alternative.However, IBM also countered by using a sales techniquethat opponents called FUD (fear, uncertainty, <strong>and</strong>doubt). IBM salespersons promised customers that IBMwould soon be coming out with much more powerful <strong>and</strong>economical alternatives to Amdahl’s machines. As a result,many would-be customers were persuaded to postpone purchasingdecisions <strong>and</strong> stay with IBM. Amdahl Corporationbegan to falter, <strong>and</strong> Gene Amdahl gradually sold his stock<strong>and</strong> left the company in 1980.Amdahl then tried to repeat his success by starting anew company called Trilogy. The company promisedto build much faster <strong>and</strong> cheaper computers than those<strong>of</strong>fered by IBM or Amdahl. He believed he could accomplishthis by using the new, very-large-scale integrated siliconwafer technology in which circuits were deposited in layerson a single chip rather than being distributed on separatechips on a printed circuit board. But the problem <strong>of</strong> dealingwith the electrical characteristics <strong>of</strong> such dense circuitry,


America Online 11as well as some design errors, somewhat crippled the newcomputer design. Amdahl was forced to repeatedly delaythe introduction <strong>of</strong> the new machine, <strong>and</strong> Trilogy failed inthe marketplace.Amdahl’s achievements could not be overshadowed bythe failures <strong>of</strong> his later career. He has received many industryawards, including Data Processing Man <strong>of</strong> the Year bythe Data Processing Management Association (1976), theHarry Goode Memorial Award from the American Federation<strong>of</strong> Information Processing Societies, <strong>and</strong> the SIGDA PioneeringAchievement Award (2007).Further Reading“Gene Amdahl.” Available online. URL: http://www.thocp.net/biographies/amdahl_gene.htm. Accessed April 10, 2007.Slater, Robert. Portraits in Silicon. Cambridge, Mass.: MIT Press,1987.America Online (AOL)For millions <strong>of</strong> PC users in the 1990s, “going online” meantconnecting to America Online. However, this once dominantservice provider has had difficulty adapting to thechanging world <strong>of</strong> the Internet.By the mid-1980s a growing number <strong>of</strong> PC users werestarting to go online, mainly dialing up small bulletin boardservices. Generally these were run by individuals from theirhomes, <strong>of</strong>fering a forum for discussion <strong>and</strong> a way for usersto upload <strong>and</strong> download games <strong>and</strong> other free s<strong>of</strong>tware <strong>and</strong>shareware (see bulletin board systems). However, someentrepreneurs saw the possibility <strong>of</strong> creating a commercialinformation service that would be interesting <strong>and</strong> usefulenough that users would pay a monthly subscription feefor access. Perhaps the first such enterprise to be successfulwas Quantum <strong>Computer</strong> Services, founded by Jim Kimseyin 1985 <strong>and</strong> soon joined by another young entrepreneur,Steve Case. Their strategy was to team up with personalcomputer makers such as Commodore, Apple, <strong>and</strong> IBM toprovide special online services for their users.In 1989 Quantum Link changed its name to AmericaOnline (AOL). In 1991 Steve Case became CEO, taking overfrom the retiring Kimsey. Case’s approach to marketing AOLwas to aim the service at novice PC users who had troublemastering arcane DOS (disk operating system) comm<strong>and</strong>s<strong>and</strong> interacting with text-based bulletin boards <strong>and</strong> primitiveterminal programs. As an alternative, AOL provided acomplete s<strong>of</strong>tware package that managed the user’s connection,presented “friendly” graphics, <strong>and</strong> <strong>of</strong>fered point-<strong>and</strong>clickaccess to features.Chat rooms <strong>and</strong> discussion boards were also exp<strong>and</strong>ed<strong>and</strong> <strong>of</strong>fered in a variety <strong>of</strong> formats for casual <strong>and</strong> more formaluse. Gaming, too, was a major emphasis <strong>of</strong> the earlyAOL, with some <strong>of</strong> the first online multiplayer fantasy roleplayinggames such as a version <strong>of</strong> Dungeons <strong>and</strong> Dragonscalled Neverwinter Nights (see online games). A third popularapplication has been instant messaging (IM), includinga feature that allowed users to set up “buddy lists” <strong>of</strong> theirfriends <strong>and</strong> keep track <strong>of</strong> when they were online (see alsotexting <strong>and</strong> instant messaging).Internet ChallengeBy 1996 the World Wide Web was becoming popular (seeWorld Wide Web). Rather than signing up with a proprietaryservice such as AOL, users could simply get an accountwith a lower-cost direct-connection service (see Internetservice provider) <strong>and</strong> then use a Web browser such asNetscape to access information <strong>and</strong> services. AOL was slowin adapting to the growing use <strong>of</strong> the Internet. At first, theservice provided only limited access to the Web (<strong>and</strong> onlythrough its proprietary s<strong>of</strong>tware). Gradually, however, AOL<strong>of</strong>fered a more seamless Web experience, allowing users torun their own browsers <strong>and</strong> other s<strong>of</strong>tware together withthe proprietary interface. Also, responding to competition,AOL replaced its hourly rates with a flat monthly fee ($19.95at first).Overall, AOL increasingly struggled with trying to fulfilltwo distinct roles: Internet access provider <strong>and</strong> contentprovider. By the late 1990s AOL’s monthly rates were higherthan those <strong>of</strong> “no frills” access providers such as NetZero.AOL tried to compensate for this by <strong>of</strong>fering integration <strong>of</strong>services (such as e-mail, chat, <strong>and</strong> instant messaging) <strong>and</strong>news <strong>and</strong> other content not available on the open Internet.AOL also tried to shore up its user base with aggressivemarketing to users who wanted to go online but were notsure how to do so. Especially during the late 1990s, AOLwas able to swell its user rolls to nearly 30 million, largelyby providing millions <strong>of</strong> free CDs (such as in magazineinserts) that included a setup program <strong>and</strong> up to a month <strong>of</strong>free service. But while it was easy to get started with AOL,some users began to complain that the service would keepbilling them even after they had repeatedly attempted tocancel it. Meanwhile, AOL users got little respect from themore sophisticated inhabitants <strong>of</strong> cyberspace, who <strong>of</strong>tencomplained that the clueless “newbies” were clutteringnewsgroups <strong>and</strong> chat rooms.In 2000 AOL <strong>and</strong> Time Warner merged. At the time, thedeal was hailed as one <strong>of</strong> the greatest mergers in corporateAmerica Online (AOL) was a major online portal in the 1990s,but has faced challenges adapting to the modern world <strong>of</strong> theWeb. (Screen image credit: AOL)


12 analog <strong>and</strong> digitalhistory, bringing together one <strong>of</strong> the foremost Internet companieswith one <strong>of</strong> the biggest traditional media companies.The hope was that the new $350 billion company wouldbe able to leverage its huge subscriber base <strong>and</strong> rich mediaresources to dominate the online world.From Service to Content ProviderBy the 2000s, however, an increasing number <strong>of</strong> peoplewere switching from dial-up to high-speed broadb<strong>and</strong> Internetaccess (see broadb<strong>and</strong>) rather than subscribing to servicessuch as AOL simply to get online. This trend <strong>and</strong> theoverall decline in the Internet economy early in the decade(the “dot-bust”) contributed to a record loss <strong>of</strong> $99 billionfor the combined company in 2002. In a shakeup, Time-Warner dropped “AOL” from its name, <strong>and</strong> Steve Case wasreplaced as executive chairman. The company increasinglybegan to shift its focus to providing content <strong>and</strong> servicesthat would attract people who were already online, withrevenue coming from advertising instead <strong>of</strong> subscriptions.In October 2006 the AOL division <strong>of</strong> Time-Warner(which by then had dropped the full name America Online)announced that it would provide a new interface <strong>and</strong> s<strong>of</strong>twareoptimized for broadb<strong>and</strong> users. AOL’s OpenRidedesktop presents users with multiple windows for e-mail,instant messaging, Web browsing, <strong>and</strong> media (video <strong>and</strong>music), with other free services available as well. These<strong>of</strong>ferings are designed to compete in a marketplace wherethe company faces stiff competition from other major Internetpresences who have been using the advertising-basedmodel for years (see Yahoo! <strong>and</strong> Google).Further ReadingAOL Web site. Available online. URL: http://www.aol.com.Accessed August 28, 2007.Kaufeld, John. AOL for Dummies. 2nd ed. Hoboken, N.J.: Wiley,2004.Klein, Alec. Stealing Time: Steve Case, Jerry Levin, <strong>and</strong> the Collapse<strong>of</strong> AOL Time Warner. New York: Simon & Schuster, 2003.Mehta, Stephanie N. “Can AOL Keep Pace?” Fortune, August 21,2006, p. 29.Swisher, Kara. AOL.COM: How Steve Case Beat Bill Gates, Nailed theNetheads, <strong>and</strong> Made Millions in the War for the Web. New York:Times Books, 1998.analog <strong>and</strong> digitalThe word analog (derived from Greek words meaning “byratio”) denotes a phenomenon that is continuously variable,such as a sound wave. The word digital, on the otherh<strong>and</strong>, implies a discrete, exactly countable value that can berepresented as a series <strong>of</strong> digits (numbers). Sound recordingprovides familiar examples <strong>of</strong> both approaches. Recordinga phonograph record involves electromechanically transferringa physical signal (the sound wave) into an “analogous”physical representation (the continuously varying peaks<strong>and</strong> dips in the record’s surface). Recording a CD, on theother h<strong>and</strong>, involves sampling (measuring) the sound levelat thous<strong>and</strong>s <strong>of</strong> discrete instances <strong>and</strong> storing the results ina physical representation <strong>of</strong> a numeric format that can inturn be used to drive the playback device.Most natural phenomena such as light or sound intensity are analogvalues that vary continuously. To convert such measurementsto a digital representation, “snapshots” or sample readings must betaken at regular intervals. Sampling more frequently gives a moreaccurate representation <strong>of</strong> the original analog data, but at a cost inmemory <strong>and</strong> processor resources.Virtually all modern computers depend on the manipulation<strong>of</strong> discrete signals in one <strong>of</strong> two states denoted by thenumbers 1 <strong>and</strong> 0. Whether the 1 indicates the presence <strong>of</strong>an electrical charge, a voltage level, a magnetic state, a pulse<strong>of</strong> light, or some other phenomenon, at a given point thereis either “something” (1) or “nothing” (0). This is the mostnatural way to represent a series <strong>of</strong> such states.Digital representation has several advantages over analog.Since computer circuits based on binary logic can bedriven to perform calculations electronically at ever-increasingspeeds, even problems where an analog computer bettermodeled nature can now be done more efficiently with digitalmachines (see analog computer). Data stored in digitizedform is not subject to the gradual wear or distortion <strong>of</strong>the medium that plagues analog representations such as thephonograph record. Perhaps most important, because digitalrepresentations are at base simply numbers, an infinitevariety <strong>of</strong> digital representations can be stored in files <strong>and</strong>manipulated, regardless <strong>of</strong> whether they started as pictures,music, or text (see digital convergence).Converting between Analog <strong>and</strong>Digital RepresentationsBecause digital devices (particularly computers) are themechanism <strong>of</strong> choice for working with representations <strong>of</strong>text, graphics, <strong>and</strong> sound, a variety <strong>of</strong> devices are used todigitize analog inputs so the data can be stored <strong>and</strong> manipulated.Conceptually, each digitizing device can be thought<strong>of</strong> as having three parts: a component that scans the input<strong>and</strong> generates an analog signal, a circuit that converts theanalog signal from the input to a digital format, <strong>and</strong> a componentthat stores the resulting digital data for later use. Forexample, in the ubiquitous flatbed scanner a moving headreads varying light levels on the paper <strong>and</strong> converts them to


analog computer 13a varying level <strong>of</strong> current (see scanner). This analog signalis in turn converted into a digital reading by an analog-todigitalconverter, which creates numeric information thatrepresents discrete spots (pixels) representing either levels<strong>of</strong> gray or <strong>of</strong> particular colors. This information is thenwritten to disk using the formats supported by the operatingsystem <strong>and</strong> the s<strong>of</strong>tware that will manipulate them.Further ReadingChalmers, David J. “Analog vs. Digital Computation.” Availableonline. URL: http://www.u.arizona.edu/~chalmers/notes/analog.html.Accessed April 10, 2007.Hoeschele, David F. Analog-to-Digital <strong>and</strong> Digital-to-Analog ConversionTechniques. 2nd ed. New York: Wiley-Interscience, 1994.analog computerMost natural phenomena are analog rather than digital innature (see analog <strong>and</strong> digital). But just as mathematicallaws can describe relationships in nature, these relationshipsin turn can be used to construct a model in whichnatural forces generate mathematical solutions. This is thekey insight that leads to the analog computer.The simplest analog computers use physical componentsthat model geometric ratios. The earliest known analogcomputing device is the Antikythera Mechanism. Constructedby an unknown scientist on the isl<strong>and</strong> <strong>of</strong> Rhodesaround 87 b.c., this device used a precisely crafted differentialgear mechanism to mechanically calculate the intervalbetween new moons (the synodic month). (Interestingly,the differential gear would not be rediscovered until 1877.)Another analog computer, the slide rule, became theconstant companion <strong>of</strong> scientists, engineers, <strong>and</strong> studentsuntil it was replaced by electronic calculators in the 1970s.Invented in simple form in the 17th century, the slide rule’smovable parts are marked in logarithmic proportions,allowing for quick multiplication, division, the extraction<strong>of</strong> square roots, <strong>and</strong> sometimes the calculation <strong>of</strong> trigonometricfunctions.The next insight involved building analog devices thatset up dynamic relationships between mechanical movements.In the late 19th century two British scientists, JamesThomson <strong>and</strong> his brother Sir William Thomson (later LordKelvin) developed the mechanical integrator, a devicethat could solve differential equations. An important newprinciple used in this device is the closed feedback loop,where the output <strong>of</strong> the integrator is fed back as a newset <strong>of</strong> inputs. This allowed for the gradual summation orintegration <strong>of</strong> an equation’s variables. In 1931, VannevarBush completed a more complex machine that he called a“differential analyzer.” Consisting <strong>of</strong> six mechanical integratorsusing specially shaped wheels, disks, <strong>and</strong> servomechanisms,the differential analyzer could solve equationsin up to six independent variables. As the usefulness <strong>and</strong>applicability <strong>of</strong> the device became known, it was quicklyreplicated in various forms in scientific, engineering, <strong>and</strong>military institutions.These early forms <strong>of</strong> analog computer are based on fixedgeometrical ratios. However, most phenomena that scientists<strong>and</strong> engineers are concerned with, such as aerodynamics,fluid dynamics, or the flow <strong>of</strong> electrons in a circuit,involve a mathematical relationship between forces wherethe output changes smoothly as the inputs are changed. The“dynamic” analog computer <strong>of</strong> the mid-20th century tookadvantage <strong>of</strong> such force relationships to construct deviceswhere input forces represent variables in the equation, <strong>and</strong>Converting analog data to digital involves several steps. A sensor (such as the CCD, or charge-coupled device in a digital camera) createsa varying electrical current. An amplifier can strengthen this signal to make it easier to process, <strong>and</strong> filters can eliminate spurious spikes or“noise.” The “conditioned” signal is then fed to the analog-to-digital (A/D) converter, which produces numeric data that is usually stored in amemory buffer from which it can be processed <strong>and</strong> stored by the controlling program.


14 Andreessen, MarcCompleted in 1931, Vannevar Bush’s Differential Analyzer was a triumph <strong>of</strong> analog computing. The device could solve equations with up tosix independent values. (MIT Museum)nature itself “solves” the equation by producing a resultingoutput force.In the 1930s, the growing use <strong>of</strong> electronic circuitsencouraged the use <strong>of</strong> the flow <strong>of</strong> electrons rather thanmechanical force as a source for analog computation. Thekey circuit is called an operational amplifier. It generatesa highly amplified output signal <strong>of</strong> opposite polarity to theinput, over a wide range <strong>of</strong> frequencies. By using componentssuch as potentiometers <strong>and</strong> feedback capacitors, ananalog computer can be programmed to set up a circuit inwhich the laws <strong>of</strong> electronics manipulate the input voltagesin the same way the equation to be solved manipulates itsvariables. The results <strong>of</strong> the calculation are then read as aseries <strong>of</strong> voltage values in the final output.Starting in the 1950s, a number <strong>of</strong> companies marketedlarge electronic analog computers that containedmany separate computing units that could be harnessedtogether to provide “real time” calculations in which theresults could be generated at the same rate as the actualphenomena being simulated. In the early 1960s, NASA setup training simulations for astronauts using analog realtimesimulations that were still beyond the capability <strong>of</strong>digital computers.Gradually, however, the use <strong>of</strong> faster processors <strong>and</strong>larger amounts <strong>of</strong> memory enabled the digital computer tosurpass its analog counterpart even in the scientific programming<strong>and</strong> simulations arena. In the 1970s, some hybridmachines combined the easy programmability <strong>of</strong> a digital“front end” with analog computation, but by the end <strong>of</strong> thatdecade the digital computer had rendered analog computersobsolete.Further Reading“Analog <strong>Computer</strong>s.” <strong>Computer</strong> Museum, University <strong>of</strong> Amsterdam.Available online. URL: http://www.science.uva.n/museum/Analog<strong>Computer</strong>s.html. Accessed April 18, 2007.Hoeschele, David F., Jr. Analog-to-Digital <strong>and</strong> Digital-to-AnalogConversion Techniques. 2nd ed. New York: John Wiley, 1994.Vassos, Basil H., <strong>and</strong> Galen Ewing, eds. Analog <strong>and</strong> <strong>Computer</strong> Electronicsfor Scientists. 4th ed. New York: John Wiley, 1993.Andreessen, Marc(1971– )AmericanEntrepreneur, ProgrammerMarc Andreessen brought the World Wide Web <strong>and</strong> itswealth <strong>of</strong> information, graphics, <strong>and</strong> services to the desktop,setting the stage for the first “e-commerce” revolution<strong>of</strong> the later 1990s. As founder <strong>of</strong> Netscape, Andreessen also


Andreessen, Marc 15created the first big “dot-com,” or company doing businesson the Internet.Born on July 9, 1971, in New Lisbon, Wisconsin,Andreessen grew up as part <strong>of</strong> a generation that wouldbecome familiar with personal computers, computer games,<strong>and</strong> graphics. By seventh grade Andreessen had his own PC<strong>and</strong> was programming furiously. He then studied computerscience at the University <strong>of</strong> Illinois at Urbana-Champaign,where his focus on computing was complemented by a wideranginginterest in music, history, literature, <strong>and</strong> business.By the early 1990s the World Wide Web (see WorldWide Web <strong>and</strong> Berners-Lee, Tim) was poised to changethe way information <strong>and</strong> services were delivered to users.However, early Web pages generally consisted only <strong>of</strong>linked pages <strong>of</strong> text, without point-<strong>and</strong>-click navigation orthe graphics <strong>and</strong> interactive features that adorn Web pagestoday.Andreessen learned about the World Wide Web shortlyafter Berners-Lee introduced it in 1991. Andreessen thoughtit had great potential, but also believed that there neededto be better ways for ordinary people to access the newMarc Andreessen, Chairman <strong>of</strong> Loudcloud, Inc., speaks at Fortunemagazine’s “Leadership in Turbulent Times” conference on November8, 2001, in New York City. (Photo by Mario Tama/GettyImages)medium. In 1993, Andreessen, together with colleague EricBina <strong>and</strong> other helpers at the National Center for SupercomputingApplications (NCSA), set to work on what becameknown as the Mosaic Web browser. Since their work waspaid for by the government, Mosaic was <strong>of</strong>fered free tousers over the Internet. Mosaic could show pictures as wellas text, <strong>and</strong> users could follow Web links simply by clickingon them with the mouse. The user-friendly programbecame immensely popular, with more than 10 millionusers by 1995.After earning a B.S. in computer science, Andreessen leftMosaic, having battled with its managers over the future <strong>of</strong>Web-browsing s<strong>of</strong>tware. He then met Jim Clark, an olderentrepreneur who had been CEO <strong>of</strong> Silicon Graphics. Theyfounded Netscape Corporation in 1994, using $4 millionseed capital provided by Clark.Andreessen recruited many <strong>of</strong> his former colleagues atNCSA to help him write a new Web browser, which becameknown as Netscape Navigator. Navigator was faster <strong>and</strong>more graphically attractive than Mosaic. Most important,Netscape added a secure encrypted facility that people coulduse to send their credit card numbers to online merchants.This was part <strong>of</strong> a two-pronged strategy: First, attract thelion’s share <strong>of</strong> Web users to the new browser, <strong>and</strong> then sellbusinesses the s<strong>of</strong>tware they would need to create effectiveWeb pages for selling products <strong>and</strong> services to users.By the end <strong>of</strong> 1994 Navigator had gained 70 percent<strong>of</strong> the Web browser market. Time magazine namedthe browser one <strong>of</strong> the 10 best products <strong>of</strong> the year, <strong>and</strong>Netscape was soon selling custom s<strong>of</strong>tware to companiesthat wanted a presence on the Web. The e-commerce boom<strong>of</strong> the later 1990s had begun, <strong>and</strong> Marc Andreessen was one<strong>of</strong> its brightest stars. When Netscape <strong>of</strong>fered its stock to thepublic in summer 1995, the company gained a total worth<strong>of</strong> $2.3 billion, more than that <strong>of</strong> many traditional bluechipindustrial companies. Andreessen’s own shares wereworth $55 million.Battle with Micros<strong>of</strong>tMicros<strong>of</strong>t (see Micros<strong>of</strong>t <strong>and</strong> Gates, Bill) had been slowto recognize the growing importance <strong>of</strong> the Web, but by themid-1990s Gates had decided that the s<strong>of</strong>tware giant had tohave a comprehensive “Internet strategy.” In particular, thecompany had to win control <strong>of</strong> the browser market so userswould not turn to “platform independent” s<strong>of</strong>tware thatcould deliver not only information but applications, withoutrequiring the use <strong>of</strong> Windows at all.Micros<strong>of</strong>t responded by creating its own Web browser,called Internet Explorer. Although technical reviewers generallyconsidered the Micros<strong>of</strong>t product to be inferior toNetscape, it gradually improved. Most significantly, Micros<strong>of</strong>tincluded Explorer with its new Windows 95 operatingsystem. This “bundling” meant that PC makers <strong>and</strong> consumershad little interest in paying for Navigator when theyalready had a “free” browser from Micros<strong>of</strong>t. In responseto this move, Netscape <strong>and</strong> other Micros<strong>of</strong>t competitorshelped promote the antitrust case against Micros<strong>of</strong>t thatwould result in 2001 in some <strong>of</strong> the company’s practicesbeing declared an unlawful use <strong>of</strong> monopoly power.


16 animation, computerAndreessen tried to respond to Micros<strong>of</strong>t by focusingon the added value <strong>of</strong> his s<strong>of</strong>tware for Web servers whilemaking Navigator “open source,” meaning that anyone wasallowed to access <strong>and</strong> modify the program’s code (see opensource). He hoped that a vigorous community <strong>of</strong> programmersmight help keep Navigator technically superior toInternet Explorer. However, Netscape’s revenues began todecline steadily. In 1999 America Online (AOL) bought thecompany, seeking to add its technical assets <strong>and</strong> Webcenteronline portal to its own <strong>of</strong>ferings (see America Online).After a brief stint with AOL as its “principal technicalvisionary,” Andreessen decided to start his own company,called LoudCloud. The company provided Web-site development,management, <strong>and</strong> custom s<strong>of</strong>tware (including e-commerce “shopping basket” systems) for corporations thathad large, complex Web sites. However, the company wasnot successful; Andreessen sold its Web-site-managementcomponent to Texas-based Electronic Data Systems (EDS)while retaining its s<strong>of</strong>tware division under the new nameOpsware. In 2007 Andreessen scored another coup, sellingOpsware to Hewlett-Packard (HP) for $1.6 billion.In 2007 Andreessen launched Ning, a company that<strong>of</strong>fers users the ability to add blogs, discussion forums, <strong>and</strong>other features to their Web sites, but facing established competitorssuch as MySpace (see also social networking). InJuly 2008 Andresseen joined the board <strong>of</strong> Facebook.While the future <strong>of</strong> his recent ventures remains uncertain,Marc Andreessen’s place as one <strong>of</strong> the key pioneers <strong>of</strong>the Web <strong>and</strong> e-commerce revolution is assured. His inventiveness,technical insight, <strong>and</strong> business acumen made hima model for a new generation <strong>of</strong> Internet entrepreneurs.Andreessen was named one <strong>of</strong> the Top 50 People under theAge <strong>of</strong> 40 by Time magazine (1994) <strong>and</strong> has received the<strong>Computer</strong>world/Smithsonian Award for Leadership (1995)<strong>and</strong> the W. Wallace McDowell Award <strong>of</strong> the IEEE <strong>Computer</strong>Society (1997).Further ReadingClark, Jim. Netscape Time: The Making <strong>of</strong> the Billion-Dollar StartupThat Took on Micros<strong>of</strong>t. New York: St. Martin’s Press, 1999.Guynn, Jessica. “Andreessen Betting Name on New Ning.” SanFrancisco Chronicle, February 27, 2006, p. D1, D4.Payment, Simone. Marc Andreessen <strong>and</strong> Jim Clark: The Founders <strong>of</strong>Netscape. New York: Rosen Pub. Group, 2006.Quittner, Joshua, <strong>and</strong> Michelle Slatala. Speeding the Net: The InsideStory <strong>of</strong> Netscape <strong>and</strong> How It Challenged Micros<strong>of</strong>t. New York:Atlantic Monthly Press, 1998.animation, computerEver since the first h<strong>and</strong>-drawn cartoon features entertainedmoviegoers in the 1930s, animation has been an importantpart <strong>of</strong> the popular culture. Traditional animation uses aseries <strong>of</strong> h<strong>and</strong>-drawn frames that, when shown in rapidsuccession, create the illusion <strong>of</strong> lifelike movement.<strong>Computer</strong> Animation TechniquesThe simplest form <strong>of</strong> computer animation (illustrated ingames such as Pong) involves drawing an object, then erasingit <strong>and</strong> redrawing it in a different location. A somewhatmore sophisticated approach can create motion in a sceneby displaying a series <strong>of</strong> pre-drawn images called sprites—for example, there could be a series <strong>of</strong> sprites showing asword-wielding troll in different positions.Since there are only a few intermediate images, the use<strong>of</strong> sprites doesn’t convey truly lifelike motion. Modernanimation uses a modern version <strong>of</strong> the traditional drawnanimation technique. The drawings are “keyframes” thatcapture significant movements by the characters. The keyframesare later filled in with transitional frames in a processcalled tweening. Since it is possible to create algorithmsthat describe the optimal in-between frames, the advent <strong>of</strong>sufficiently powerful computers has made computer animationboth possible <strong>and</strong> desirable. Today computer animationis used not only for cartoons but also for video games <strong>and</strong>movies. The most striking use <strong>of</strong> this technique is morphing,where the creation <strong>of</strong> plausible intermediate imagesbetween two strikingly different faces creates the illusion <strong>of</strong>one face being transformed into the other.Algorithms that can realistically animate people, animals,<strong>and</strong> other complex objects require the ability to createa model that includes the parts <strong>of</strong> the object that can moveseparately (such as a person’s arms <strong>and</strong> legs). Because themovement <strong>of</strong> one part <strong>of</strong> the model <strong>of</strong>ten affects the positions<strong>of</strong> other parts, a treelike structure is <strong>of</strong>ten used todescribe these relationships. (For example, an elbow movesan arm, the arm in turn moves the h<strong>and</strong>, which in turnmoves the fingers). Alternatively, live actors performing arepertoire <strong>of</strong> actions or poses can be digitized using wearablesensors <strong>and</strong> then combined to portray situations, suchas in a video game.Less complex objects (such as clouds or rainfall) can betreated in a simpler way, as a collection <strong>of</strong> “particles” thatmove together following basic laws <strong>of</strong> motion <strong>and</strong> gravity.Of course when different models come into contact (forexample, a person walking in the rain), the interactionbetween the two must also be taken into consideration.While realism is always desirable, there is inevitablya trade<strong>of</strong>f between the resources available. Computationallyintensive physics models might portray a very realisticspray <strong>of</strong> water using a high-end graphics workstation, butsimplified models have to be used for a program that runson a game console or desktop PC. The key variables are theframe rate (higher is smoother) <strong>and</strong> the display resolution.The amount <strong>of</strong> available video memory is also a consideration:many desktop PCs sold today have 256MB or more <strong>of</strong>video memory.Applications<strong>Computer</strong> animation is used extensively in many featurefilms, such as for creating realistic dinosaurs (JurassicPark) or buglike aliens (Starship Troopers). <strong>Computer</strong>games combine animation techniques with other techniques(see computer graphics) to provide smoothaction within a vivid 3D l<strong>and</strong>scape. Simpler forms <strong>of</strong> animationare now a staple <strong>of</strong> Web site design, <strong>of</strong>ten writtenin Java or with the aid <strong>of</strong> animation scripting programssuch as Adobe Flash.


API 17The intensive effort that goes into contemporary computeranimation suggests that the ability to fascinate thehuman eye that allowed Walt Disney to build an empire isjust as compelling today.Further Reading“3-D Animation Workshop.” Available online. URL: http://www.webreference.com/3d/indexa.html. Accessed April 12, 2007.Comet, Michael B. “Character Animation: Principles <strong>and</strong> Practice.”Available online. URL: http://www.comet-cartoons.com/toons/3ddocs/charanim. Accessed April 12, 2007.Hamlin, J. Scott. Effective Web Animation: Advanced Techniques forthe Web. Reading, Mass.: Addison-Wesley, 1999.O’Rourke, Michael. Principles <strong>of</strong> Three-Dimensional <strong>Computer</strong> Animation:Modeling, Rendering, <strong>and</strong> Animating with 3D <strong>Computer</strong>Graphics. New York: Norton, 1998.Parent, Rick. <strong>Computer</strong> Animation: Algorithms <strong>and</strong> Techniques. SanFrancisco: Morgan Kaufmann, 2002.Shupe, Richard, <strong>and</strong> Robert Hoekman. Flash 8: Projects for LearningAnimation <strong>and</strong> Interactivity. Sebastapol, Calif.: O’ReillyMedia, 2006.anonymity <strong>and</strong> the InternetAnonymity, or the ability to communicate without disclosinga verifiable identity, is a consequence <strong>of</strong> the way mostInternet-based e-mail, chat, or news services were designed(see e-mail, chat, texting <strong>and</strong> instant messaging, <strong>and</strong>netnews <strong>and</strong> newgroups). This does not mean that messagesdo not have names attached. Rather, the names canbe arbitrarily chosen or pseudonymous, whether reflectingdevelopment <strong>of</strong> an online persona or the desire to avoidhaving to take responsibility for unwanted communications(see spam).AdvantagesIf a person uses a fixed Internet address (see tcp/ip), it maybe possible to eventually discover the person’s location <strong>and</strong>even identity. However, messages can be sent through anonymousremailing services where the originating address isremoved. Web browsing can also be done “at arm’s length”through a proxy server. Such means <strong>of</strong> anonymity can arguablyserve important values, such as allowing persons livingunder repressive governments (or who belong to minoritygroups) to express themselves more freely precisely becausethey cannot be identified. However, such techniques requiresome sophistication on the part <strong>of</strong> the user. With ordinaryusers using their service provider accounts directly, governments(notably China) have simply dem<strong>and</strong>ed that theuser’s identity be turned over when a crime is alleged.Pseudonymity (the ability to choose names separatefrom one’s primary identity) in such venues as chat roomsor online games can also allow people to experiment withdifferent identities or roles, perhaps getting a taste <strong>of</strong> howmembers <strong>of</strong> a different gender or ethnic group are perceived(see identity in the online world).Anonymity can also help protect privacy, especially incommercial transactions. For example, purchasing somethingwith cash normally requires no disclosure <strong>of</strong> the purchaser’sidentity, address, or other personal information.Various systems can use secure encryption to create a cashequivalent in the online world that assures the merchant<strong>of</strong> valid payment without disclosing unnecessary informationabout the purchaser (see digital cash). There are als<strong>of</strong>acilities that allow for essentially anonymous Web browsing,preventing the aggregation or tracking <strong>of</strong> information(see cookies).ProblemsThe principal problem with anonymity is that it can allowthe user to engage in socially undesirable or even criminalactivity with less fear <strong>of</strong> being held accountable. The combination<strong>of</strong> anonymity (or the use <strong>of</strong> a pseudonym) <strong>and</strong> thelack <strong>of</strong> physical presence seems to embolden some peopleto engage in insult or “flaming,” where they might be inhibitedin an ordinary social setting. A few services (notablyThe WELL) insist that the real identity <strong>of</strong> all participantsbe available even if postings use a pseudonym.Spam or deceptive e-mail (see phishing <strong>and</strong> spo<strong>of</strong>ing)takes advantage both <strong>of</strong> anonymity (making it hardfor authorities to trace) <strong>and</strong> pseudonymity (the abilityto disguise the site by mimicking a legitimate business).Anonymity makes downloading or sharing files easier(see file-sharing <strong>and</strong> P2P networks), but also makesit harder for owners <strong>of</strong> videos, music, or other content topursue copyright violations. Because <strong>of</strong> the prevalence <strong>of</strong>fraud <strong>and</strong> other criminal activity on the Internet, therehave been calls to restrict the ability <strong>of</strong> online users toremain anonymous, <strong>and</strong> some nations such as South Koreahave enacted legislation to that effect. However, civil libertarians<strong>and</strong> privacy advocates believe that the impact onfreedom <strong>and</strong> privacy outweighs any benefits for security<strong>and</strong> law enforcement.The database <strong>of</strong> Web-site registrants (called Whois)provides contact information intended to ensure thatsomeone will be responsible for a given site <strong>and</strong> be willingto cooperate to fix technical or administrative problems.At present, Whois information is publicly available.However, the Internet Corporation for Assigned Names<strong>and</strong> Numbers (ICANN) is considering making the contactinformation available only to persons who can show alegitimate need.Further ReadingLessig, Lawrence. Code: Version 2.0. New York: Basic Books, 2006.Rogers, Michael. “Let’s See Some ID, Please: The End <strong>of</strong> Anonymityon the Internet?” The Practical Futurist (MSNBC), December13, 2005. Available online. URL: http://www.msnbc.msn.com/ID/10441443/. Accessed April 10, 2007.Wallace, Jonathan D. “Nameless in Cyberspace: Anonymity on theInternet.” CATO Institute Briefing Papers, no. 54, December8, 1999. Available online. URL: http://www.cato.org/pubs/briefs/bp54.pdf. Accessed April 10, 2007.AOL See America Online.API See applications program interface.


18 APLAPL (a programming language)This programming language was developed by Harvard(later IBM) researcher Kenneth E. Iverson in the early 1960sas a way to express mathematical functions clearly <strong>and</strong>consistently for computer use. The power <strong>of</strong> the languageto compactly express mathematical functions attracted agrowing number <strong>of</strong> users, <strong>and</strong> APL soon became a full general-purposecomputing language.Like many versions <strong>of</strong> BASIC, APL is an interpreted language,meaning that the programmer’s input is evaluated“on the fly,” allowing for interactive response (see interpreter).Unlike BASIC or FORTRAN, however, APL hasdirect <strong>and</strong> powerful support for all the important mathematicalfunctions involving arrays or matrices (see array).APL has over 100 built-in operators, called “primitives.”With just one or two operators the programmer can performcomplex tasks such as extracting numeric or trigonometricfunctions, sorting numbers, or rearranging arrays<strong>and</strong> matrices. (Indeed, APL’s greatest power is in its abilityto manipulate matrices directly without resorting to explicitloops or the calling <strong>of</strong> external library functions.)To give a very simple example, the following line <strong>of</strong> APLcode:X [D X]sorts the array X. In most programming languages thiswould have to be done by coding a sorting algorithm in adozen or so lines <strong>of</strong> code using nested loops <strong>and</strong> temporaryvariables.However, APL has also been found by many programmersto have significant drawbacks. Because the languageuses Greek letters to st<strong>and</strong> for many operators, it requiresthe use <strong>of</strong> a special type font that was generally not availableon non-IBM systems. A dialect called J has been devised touse only st<strong>and</strong>ard ASCII characters, as well as both simplifying<strong>and</strong> exp<strong>and</strong>ing the language. Many programmers findmathematical expressions in APL to be cryptic, makingprograms hard to maintain or revise. Nevertheless, APLSpecial Interest Groups in the major computing societiestestify to continuing interest in the language.Further ReadingACM Special Interest Group for APL <strong>and</strong> J Languages. Availableonline. URL: http://www.acm.org/sigapl/. Accessed April 12,2007.“APL Frequently Asked Questions.” Available from various sitesincluding URL: http://home.earthlink.net/~swsirlin/apl.faq.html. Accessed May 8, 2007.Gilman, Leonard, <strong>and</strong> Allen J. Rose. APL: An Interactive Approach.3rd ed. (reprint). Malabar, Fla.: Krieger, 1992.“Why APL?” Available online. URL: http://www.acm.org/sigapl/whyapl.htm. Accessed.Apple CorporationSince the beginning <strong>of</strong> personal computing, Apple has hadan impact out <strong>of</strong> proportion to its relatively modest marketshare. In a world generally dominated by IBM PC-compatiblemachines <strong>and</strong> the Micros<strong>of</strong>t DOS <strong>and</strong> Windows operatingsystems, Apple’s distinctive Macintosh computers <strong>and</strong>more recent media products have carved out distinctivemarket spaces.Headquartered in Cupertino, California, Apple wasc<strong>of</strong>ounded in 1976 by Steve Jobs, Steve Wozniak, <strong>and</strong> RonaldWayne (the latter sold his interest shortly after incorporation).(See Jobs, Steve, <strong>and</strong> Wozniak, Steven.) Theirfirst product, the Apple I computer, was demonstrated t<strong>of</strong>ellow microcomputer enthusiasts at the Homebrew <strong>Computer</strong>Club. Although it aroused considerable interest, theh<strong>and</strong>-built Apple I was sold without a power supply, keyboard,case, or display. (Today it is an increasingly valuable“antique.”)Apple’s true entry into the personal computing marketcame in 1977 with the Apple II. Although it was moreexpensive than its main rivals from Radio Shack <strong>and</strong> Commodore,the Apple II was sleek, well constructed, <strong>and</strong> featuredbuilt-in color graphics. The motherboard includedseveral slots into which add-on boards (such as for printerinterfaces) could be inserted. Besides being attractive tohobbyists, however, the Apple II began to be taken seriouslyas a business machine when the first popular spreadsheetprogram, VisiCalc, was written for it.By 1981 more than 2 million Apple IIs (in several variations)had been sold, but IBM then came out with the IBMPC. The IBM machine had more memory <strong>and</strong> a somewhatmore powerful processor, but its real advantage was theaccess IBM had to the purchasing managers <strong>of</strong> corporateAmerica. The IBM PC <strong>and</strong> “clone” machines from othercompanies such as Compaq quickly displaced Apple asmarket leader.The MacintoshBy the early 1980s Steve Jobs had turned his attention todesigning a radically new personal computer. Using technologythat Jobs had observed at the Xerox Palo AltoResearch Center (PARC), the new machine would have afully graphical interface with icons <strong>and</strong> menus <strong>and</strong> the abilityto select items with a mouse. The first such machine,the Apple Lisa, came out in 1983. The machine cost almost$10,000, however, <strong>and</strong> proved a commercial failure.In 1984, however, Apple launched a much less expensiveversion (see Macintosh). Viewers <strong>of</strong> the 1984 SuperBowl saw a remarkable Apple commercial in which a femalefigure runs through a group <strong>of</strong> corporate drones (representingIBM) <strong>and</strong> smashes a screen. The “Mac” sold reasonablywell, particularly as it was given more processing power <strong>and</strong>memory <strong>and</strong> was accompanied by new s<strong>of</strong>tware that couldtake advantage <strong>of</strong> its capabilities. In particular, the Maccame to dominate the desktop publishing market, thanks toAdobe’s PageMaker program.In the 1990s Apple diversified the Macintosh line witha portable version (the PowerBook) that largely set thest<strong>and</strong>ard for the modern laptop computer. By then Applehad acquired a reputation for stylish design <strong>and</strong> superiorease <strong>of</strong> use. However, the development <strong>of</strong> the rather similarWindows operating system by Micros<strong>of</strong>t (see Micros<strong>of</strong>tWindows) as well as constantly dropping prices for IBMcompatiblehardware put increasing pressure on Apple <strong>and</strong>kept its market share limited. (Apple’s legal challenge to


applet 19Micros<strong>of</strong>t alleging misappropriation <strong>of</strong> intellectual propertyproved to be a protracted <strong>and</strong> costly failure.)Apple’s many Macintosh variants <strong>of</strong> the later 1990sproved confusing to consumers, <strong>and</strong> sales appeared to bogdown. The company was accused <strong>of</strong> trying to rely on anincreasingly nonexistent advantage, keeping prices high,<strong>and</strong> failing to innovate.However, in 1997 Steve Jobs, who had been forced out <strong>of</strong>the company in an earlier dispute, returned to the company<strong>and</strong> brought with him some new ideas. In hardware therewas the iMac, a sleek all-in-one system with an unmistakableappearance that restored Apple to pr<strong>of</strong>itability in 1998.On the s<strong>of</strong>tware side, Apple introduced new video-editings<strong>of</strong>tware for home users <strong>and</strong> a thoroughly redesignedUNIX-based operating system (see OS X). In general, thenew incarnation <strong>of</strong> the Macintosh was promoted as the idealcompanion for a media-hungry generation.Consumer ElectronicsApple’s biggest splash in the new century, however, camenot in personal computing, but in the consumer electronicssector. Introduced in 2001, the Apple iPod has been phenomenallysuccessful, with 100 million units sold by 2006.The portable music player can hold thous<strong>and</strong>s <strong>of</strong> songs <strong>and</strong>easily fit into a pocket (see also music <strong>and</strong> video players,digital). Further, it was accompanied by an easy-touseinterface <strong>and</strong> an online music store (iTunes). (By early2006, more than a billion songs had been purchased <strong>and</strong>downloaded from the service.) Although other types <strong>of</strong> portableMP3 players exist, it is the iPod that defined the genre(see also podcasting). Later versions <strong>of</strong> the iPod includethe ability to play videos.In 2005 Apple announced news that startled <strong>and</strong> perhapsdismayed many long-time users. The company announcedthat future Macintoshes would use the same Intel chipsemployed by Windows-based (“Wintel”) machines like theIBM PC <strong>and</strong> its descendants. The more powerful machineswould use dual processors (Intel Core Duo). Further, in2006 Apple released Boot Camp, a s<strong>of</strong>tware package thatallows Intel-based Macs to run Windows XP. Jobs’s newstrategy seems to be to combine what he believed to be asuperior operating system <strong>and</strong> industrial design with industry-st<strong>and</strong>ardprocessors, <strong>of</strong>fering the best user experience<strong>and</strong> a very competitive cost. Apple’s earnings continuedstrong into the second half <strong>of</strong> 2006.In early 2007 Jobs electrified the crowd at the MacworldExpo by announcing that Apple was going to “reinventthe phone.” The product, called iPhone, is essentiallya combination <strong>of</strong> a video iPod <strong>and</strong> a full-featured Internet-enabledcell phone (see smartphone). Marketed byApple <strong>and</strong> AT&T (with the latter providing the phone service),the iPhone costs about twice as much as an iPod butincludes a higher-resolution 3.5-in. (diagonal) screen <strong>and</strong> a2 megapixel digital camera. The phone can connect to otherdevices (see Bluetooth) <strong>and</strong> access Internet services suchas Google Maps. The user controls the device with a newinterface called Multitouch.Apple also introduced another new media product, theApple TV (formerly the iTV), allowing music, photos, <strong>and</strong>video to be streamed wirelessly from a computer to an existingTV set. Apple reaffirmed its media-centered plans byannouncing that the company’s name would be changed fromApple <strong>Computer</strong> Corporation to simply Apple Corporation.In the last quarter <strong>of</strong> 2006 Apple earned a recordbreaking$1 billion in pr<strong>of</strong>it, bolstered mainly by verystrong sales <strong>of</strong> iPods <strong>and</strong> continuing good sales <strong>of</strong> Macintoshcomputers.Apple had strong Macintosh sales performance in thelatter part <strong>of</strong> 2007. The company has suggested that itspopular iPods <strong>and</strong> iPhones may be leading consumers toconsider buying a Mac for their next personal computer.Meanwhile, however, Apple has had to deal with questionsabout its backdating <strong>of</strong> stock options, a practice bywhich about 200 companies have, in effect, enabled executivesto purchase their stock at an artificially low price.Apple has cleared Jobs <strong>of</strong> culpability in an internal investigation,<strong>and</strong> in April 2007 the Securities <strong>and</strong> Exchange Commissionannounced that it would not take action against thecompany.Further ReadingCarlton, Jim. Apple: The Inside Story <strong>of</strong> Intrigue, Egomania <strong>and</strong> BusinessBlunders. New York: R<strong>and</strong>om House, 1997.Deutschman, Alan. The Second Coming <strong>of</strong> Steve Jobs. New York:Broadway Books, 2000.Hertzfeld, Andy. Revolution in the Valley. Sebastapol, Calif.:O’Reilly, 2005.Kunkel, Paul. AppleDesign: The Work <strong>of</strong> the Apple Industrial DesignGroup. New York: Graphis, 1997.Levy, Steven. Insanely Great: The Life <strong>and</strong> Times <strong>of</strong> Macintosh, The<strong>Computer</strong> that Changed Everything. New York: Penguin Books,2000.Linzmayer, Owen W. Apple Confidential 2.0: The Definitive History<strong>of</strong> the World’s Most Colorful Company. 2nd ed. San Francisco,Calif.: No Starch Press, 2004.appletAn applet is a small program that uses the resources <strong>of</strong> alarger program <strong>and</strong> usually provides customization or additionalfeatures. The term first appeared in the early 1990sin connection with Apple’s AppleScript scripting languagefor the Macintosh operating system. Today Java applets representthe most widespread use <strong>of</strong> this idea in Web development(see Java).Java applets are compiled to an intermediate representationcalled bytecode, <strong>and</strong> generally are run in a Webbrowser (see Web browser). Applets thus represent one<strong>of</strong> several alternatives for interacting with users <strong>of</strong> Webpages beyond what can be accomplished using simple textmarkup (see html; for other approaches see Javascript,php, scripting languages, <strong>and</strong> ajax).An applet can be invoked by inserting a reference toits program code in the text <strong>of</strong> the Web page, using theHTML applet element or the now-preferred object element.Although the distinction between applets <strong>and</strong> scriptingcode (such as in PHP) is somewhat vague, applets usuallyrun in their own window or otherwise provide their owninterface, while scripting code is generally used to tailorthe behavior <strong>of</strong> separately created objects. Applets are also


20 application program interfacerather like plug-ins, but the latter are generally used toprovide a particular capability (such as the ability to reador play a particular kind <strong>of</strong> media file), <strong>and</strong> have a st<strong>and</strong>ardizedfacility for their installation <strong>and</strong> management (seeplug-in).Some common uses for applets include animations <strong>of</strong>scientific or programming concepts for Web pages supportingclass curricula <strong>and</strong> for games designed to be playedusing Web browsers. Animation tools such as Flash <strong>and</strong>Shockwave are <strong>of</strong>ten used for creating graphic applets.To prevent badly or maliciously written applets fromaffecting user files, applets such as Java applets are generallyrun within a restricted or “s<strong>and</strong>box” environmentwhere, for example, they are not allowed to write or changefiles on disk.Further Reading“Java Applets.” Available online. URL: http://en.wikibooks.org/wiki/Java_Programming/Applets. Accessed April 10, 2007.McGuffin, Michael. “Java Applet Tutorial.” Available online. URL:http://www.realapplets.com/tutorial/. Accessed April 10, 2007.application program interface (API)In order for an application program to function, it mustinteract with the computer system in a variety <strong>of</strong> ways, suchas reading information from disk files, sending data to theprinter, <strong>and</strong> displaying text <strong>and</strong> graphics on the monitorscreen (see user interface). The program may need to findout whether a device is available or whether it can haveaccess to an additional portion <strong>of</strong> memory. In order to providethese <strong>and</strong> many other services, an operating systemsuch as Micros<strong>of</strong>t Windows includes an extensive applicationprogram interface (API). The API basically consists <strong>of</strong>a variety <strong>of</strong> functions or procedures that an application programcan call upon, as well as data structures, constants, <strong>and</strong>various definitions needed to describe system resources.Applications programs use the API by including calls toroutines in a program library (see library, program <strong>and</strong>procedures <strong>and</strong> functions). In Windows, “dynamic linklibraries” (DLLs) are used. For example, this simple functionputs a message box on the screen:MessageBox (0, “Program Initialization Failed!”,“Error!”, MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);In practice, the API for a major operating system such asWindows contains hundreds <strong>of</strong> functions, data structures,<strong>and</strong> definitions. In order to simplify learning to access thenecessary functions <strong>and</strong> to promote the writing <strong>of</strong> readablecode, compiler developers such as Micros<strong>of</strong>t <strong>and</strong> Borl<strong>and</strong>have devised frameworks <strong>of</strong> C++ classes that package relatedfunctions together. For example, in the Micros<strong>of</strong>t FoundationClasses (MFC), a program generally begins by derivinga class representing the application’s basic characteristicsfrom the MFC class CWinApp. When the program wants todisplay a window, it derives it from the CWnd class, whichhas the functions common to all windows, dialog boxes,<strong>and</strong> controls. From CWnd is derived the specialized classModern s<strong>of</strong>tware uses API calls to obtain interface objects such asdialog boxes from the operating system. Here the application callsthe CreateDialog API function. The operating system returns apointer (called a h<strong>and</strong>le) that the application can now use to access<strong>and</strong> manipulate the dialog.for each type <strong>of</strong> window: for example, CFrameWnd implementsa typical main application window, while CDialogwould be used for a dialog box. Thus in a framework suchas MFC or Borl<strong>and</strong>’s OWL, the object-oriented concept <strong>of</strong>encapsulation is used to bundle together objects <strong>and</strong> theirfunctions, while the concept <strong>of</strong> inheritance is used to relatethe generic object (such as a window) to specialized versionsthat have added functionality (see object-orientedprogramming <strong>and</strong> encapsulation inheritance).In recent years Micros<strong>of</strong>t has greatly extended the reach<strong>of</strong> its Windows API by providing many higher level functions(including user interface items, network communications,<strong>and</strong> data access) previously requiring separate s<strong>of</strong>tware componentsor program libraries (see Micros<strong>of</strong>t.net).Programmers using languages such as Visual Basic cantake advantage <strong>of</strong> a further level <strong>of</strong> abstraction. Here thevarious kinds <strong>of</strong> windows, dialogs, <strong>and</strong> other controls areprovided as building blocks that the developer can insertinto a form designed on the screen, <strong>and</strong> then settings canbe made <strong>and</strong> code written as appropriate to control thebehavior <strong>of</strong> the objects when the program runs. While theprogrammer will not have as much direct control or flexibility,avoiding the need to master the API means that usefulprograms can be written more quickly.Further Reading“DevCentral Tutorials: MFC <strong>and</strong> Win32.” Available online. URL:http://devcentral.iftech.com/learning/tutorials/submfc.asp.Accessed April 12, 2007.


application service provider 21Petzold, Charles. Programming Windows: the Definitive Guide to theWin32 API. 5th ed. Redmond, Wash.: Micros<strong>of</strong>t Press, 1999.“Windows API Guide.” Available online. URL: http://www.vbapi.com/. Accessed April 12, 2007.application service provider (ASP)Traditionally, s<strong>of</strong>tware applications such as <strong>of</strong>fice suites aresold as packages that are installed <strong>and</strong> reside on the user’scomputer. Starting in the mid-1990s, however, the idea <strong>of</strong><strong>of</strong>fering users access to s<strong>of</strong>tware from a central repositoryattracted considerable interest. An application service provider(ASP) essentially rents access to s<strong>of</strong>tware.Renting s<strong>of</strong>tware rather than purchasing it outright hasseveral advantages. Since the s<strong>of</strong>tware resides on the provider’sserver, there is no need to update numerous desktopinstallations every time a new version <strong>of</strong> the s<strong>of</strong>tware (or a“patch” to fix some problem) is released. The need to shipphysical CDs or DVDs is also eliminated, as is the risk <strong>of</strong>s<strong>of</strong>tware piracy (unauthorized copying). Users may be ableto more efficiently budget their s<strong>of</strong>tware expenses, sincethey will not have to come up with large periodic expensesfor upgrades. The s<strong>of</strong>tware provider, in turn, also receives asteady income stream rather than “surges” around the time<strong>of</strong> each new s<strong>of</strong>tware release.For traditional s<strong>of</strong>tware manufacturers, the main concernis determining whether the revenue obtained by providingits s<strong>of</strong>tware as a service (directly or through a thirdparty) is greater than what would have been obtained byselling the s<strong>of</strong>tware to the same market. (It is also possibleto take a hybrid approach, where s<strong>of</strong>tware is still sold, butusers are <strong>of</strong>fered additional features online. Micros<strong>of</strong>t hasexperimented with this approach with its Micros<strong>of</strong>t OfficeLive <strong>and</strong> other products.)Renting s<strong>of</strong>tware also has potential disadvantages. Theuser is dependent on the reliability <strong>of</strong> the provider’s servers<strong>and</strong> networking facilities. If the provider’s service is down,then the user’s work flow <strong>and</strong> even access to critical datamay be interrupted. Further, sensitive data that resides on aprovider’s system may be at risk from hackers or industrialspies. Finally, the user may not have as much control overthe deployment <strong>and</strong> integration <strong>of</strong> s<strong>of</strong>tware as would beprovided by outright purchase.The ASP market was a hot topic in the late 1990s, <strong>and</strong>some pundits predicted that the ASP model would eventuallysupplant the traditional retail channel for mainstreams<strong>of</strong>tware. This did not happen, <strong>and</strong> more than a thous<strong>and</strong>ASPs were among the casualties <strong>of</strong> the “dot-com crash” <strong>of</strong>the early 2000s. However, ASP activity has been steadier ifless spectacular in niche markets, where it <strong>of</strong>fers more economicalaccess to expensive specialized s<strong>of</strong>tware for applicationssuch as customer relationship management, supplychain management, <strong>and</strong> e-commerce related services—forexample, Salesforce.com. The growing importance <strong>of</strong> such“s<strong>of</strong>tware as a service” business models can be seen inrecent <strong>of</strong>ferings from traditional s<strong>of</strong>tware companies suchas SAS. By 2004, worldwide spending for “on dem<strong>and</strong>”s<strong>of</strong>tware had exceeded $4 billion, <strong>and</strong> Gartner Researchhas predicted that in the second half <strong>of</strong> the decade abouta third <strong>of</strong> all s<strong>of</strong>tware will be obtained as a service ratherthan purchased.Web-Based Applications <strong>and</strong> Free S<strong>of</strong>twareBy that time a new type <strong>of</strong> application service providerhad become increasingly important. Rather than seekingto gain revenue by selling online access to s<strong>of</strong>tware, thisnew kind <strong>of</strong> ASP provides the s<strong>of</strong>tware for free. A strikingexample is Google Pack, a free s<strong>of</strong>tware suite <strong>of</strong>fered by thesearch giant (see Google). Google Pack includes a variety<strong>of</strong> applications, including a photo organizer <strong>and</strong> search <strong>and</strong>mapping tools developed by Google, as well as third-partyprograms such as the Mozilla Firefox Web browser, Real-Player media player, the Skype Internet phone service (seevoip), <strong>and</strong> antivirus <strong>and</strong> antispyware programs. The s<strong>of</strong>twareis integrated into the user’s Windows desktop, providingfast index <strong>and</strong> retrieval <strong>of</strong> files from the hard drive.(Critics have raised concerns about the potential violation<strong>of</strong> privacy or misuse <strong>of</strong> data, especially with regard to a“share across computers” feature that stores data about userfiles on Google’s servers.) America Online has also begun toprovide free access to s<strong>of</strong>tware that was formerly availableonly to paid subscribers.This use <strong>of</strong> free s<strong>of</strong>tware as a way to attract users toadvertising-based sites <strong>and</strong> services could pose a majorthreat to companies such as Micros<strong>of</strong>t that rely on s<strong>of</strong>twareas their main source <strong>of</strong> revenue. In 2006 Google unveileda Google Docs & Spreadsheets, a program that allowsusers to create <strong>and</strong> share word-processing documents <strong>and</strong>spreadsheets over the Web. Such <strong>of</strong>ferings, together withfree open-source s<strong>of</strong>tware such as Open Office.org, mayforce traditional s<strong>of</strong>tware companies to find a new modelfor their own <strong>of</strong>ferings.Micros<strong>of</strong>t in turn has launched Office Live, a servicedesigned to provide small <strong>of</strong>fices with a Web presence <strong>and</strong>productivity tools. The free “basic” level <strong>of</strong> the service isadvertising supported, <strong>and</strong> exp<strong>and</strong>ed versions are availablefor a modest monthly fee. The program also has featuresthat are integrated with Office 2007, thus suggesting anattempt to use free or low-cost online services to add valueto the existing st<strong>and</strong>-alone product line.By 2008 the term cloud computing had become a popularway to describe s<strong>of</strong>tware provided from a central Internetsite that could be accessed by the user through any form<strong>of</strong> computer <strong>and</strong> connection. An advantage touted for thisapproach is that the user need not be concerned with wheredata is stored or the need to make backups, which areh<strong>and</strong>led seamlessly.Further ReadingChen, Anne. “Office Live Makes Online Presence Known.” eWeek,November 2, 2006. Available online. URL: http://www.eweek.com/article2/0,1759,2050580,00.asp. Accessed May 22, 2007.Focacci, Luisa, Robert J. Mockler, <strong>and</strong> Marc E. Gartenfeld. ApplicationService Providers in Business. New York: Haworth,2005.Garretson, Rob. “The ASP Reincarnation: The Application ServiceProvider Name Dies Out, but the Concept Lives onamong Second-Generation Companies Offering S<strong>of</strong>tware asa service.” Network World, August 29, 2005. Available online.


22 application s<strong>of</strong>twareURL: http://www.networkworld.com/research/2005/082905-asp.html. Accessed May 22, 2007.“Google Spreadsheets: The Soccer Mom’s Excel.” eWeek, June 6,2006. Available online. URL: http://www.eweek.com/article2/0,1759,1972740,00.asp.Accessed May 22, 2007.Schwartz, Ephraim. “Applications: SaaS Breaks Down the Wall:Hosted Applications Continue to Remove Enterprise Objections.”Infoworld, January 1, 2007. Available online. URL:http://www.infoworld.com/article/07/01/01/01FEtoyapps_1.html. Accessed May 22, 2007.application s<strong>of</strong>twareApplication s<strong>of</strong>tware consists <strong>of</strong> programs that enable computersto perform useful tasks, as opposed to programs thatare concerned with the operation <strong>of</strong> the computer itself (seeoperating system <strong>and</strong> systems programming). To mostusers, applications programs are the computer: They determinehow the user will accomplish tasks.The following table gives a selection <strong>of</strong> representativeapplications:Developing <strong>and</strong> Distributing ApplicationsApplications can be divided into three categories basedon how they are developed <strong>and</strong> distributed. Commercialapplications such as word processors, spreadsheets, <strong>and</strong>general-purpose Database Management Systems (DBMS)are developed by companies specializing in such s<strong>of</strong>tware<strong>and</strong> distributed to a variety <strong>of</strong> businesses <strong>and</strong> individualusers (see word processing, spreadsheet, <strong>and</strong> databasemanagement system). Niche or specialized applications(such as hospital billing systems) are designed for <strong>and</strong> marketedto a particular industry (see medical applications<strong>of</strong> computers). These programs tend to be much moreexpensive <strong>and</strong> usually include extensive technical support.Finally, in-house applications are developed by programmerswithin a business or other institution for their ownuse. Examples might include employee training aids or aWeb-based product catalog (although such applicationscould also be developed using commercial s<strong>of</strong>tware such asmultimedia or database development tools).While each application area has its own needs <strong>and</strong> priorities,the discipline <strong>of</strong> s<strong>of</strong>tware development (see s<strong>of</strong>twareengineering <strong>and</strong> programming environment) isgenerally applicable to all major products. S<strong>of</strong>tware developerstry to improve speed <strong>of</strong> development as well as programreliability by using s<strong>of</strong>tware development tools thatsimplify the writing <strong>and</strong> testing <strong>of</strong> computer code, as wellas the manipulation <strong>of</strong> graphics, sound, <strong>and</strong> other resourcesused by the program. An applications developer must alsohave a good underst<strong>and</strong>ing <strong>of</strong> the features <strong>and</strong> limitations <strong>of</strong>the relevant operating system. The developer <strong>of</strong> commercials<strong>of</strong>tware must work closely with the marketing departmentto work out issues <strong>of</strong> feature selection, timing <strong>of</strong> releases,<strong>and</strong> anticipation <strong>of</strong> trends in s<strong>of</strong>tware use (see marketing<strong>of</strong> s<strong>of</strong>tware).Further Reading“Business S<strong>of</strong>tware Buyer’s Guide.” Available online. URL: http://businessweek.buyerzone.com/s<strong>of</strong>tware/business_s<strong>of</strong>tware/buyers_guide1.html. Accessed April 12, 2007.ZDnet Buyer’s Guide to <strong>Computer</strong> Applications. Available online.URL: http://www.zdnet.com/computershopper/edit/howtobuy/.Accessed April 12, 2007General Area Applications examplesBusiness Operations payroll, accounts receivable, specialized business s<strong>of</strong>tware, general spreadsheets <strong>and</strong>inventory, marketingdatabasesEducation school management, curriculum attendance <strong>and</strong> grade book management, drill-<strong>and</strong>-practicereinforcement, reference aids, s<strong>of</strong>tware for reading or arithmetic, CD or online encyclocurriculumexpansion orpedias, educational games or simulations, collaborativesupplementation, training<strong>and</strong> Web-based learning, corporate training programsEngineering design <strong>and</strong> manufacturing computer-aided design (CAD), computer-aided manufacturing(CAM)Entertainment games, music, <strong>and</strong> video desktop <strong>and</strong> console games, online games, digitized musicdistribution (MP3 files), streaming video (including movies)Government administration, law enforcement, tax collection, criminal records <strong>and</strong> field support for police,militarylegal citation databases, combat information <strong>and</strong> weaponscontrol systemsHealth Care hospital administration, health care hospital information <strong>and</strong> billing systems, medical recordsdeliverymanagement, medical imaging, computer-assisted treatmentor surgeryInternet <strong>and</strong> World web browser, search tools, browser <strong>and</strong> plug-in s<strong>of</strong>tware for video <strong>and</strong> audio, searchWide Web e-commerce engines, e-commerce support <strong>and</strong> secure transactionsLibraries circulation, cataloging, reference automated book check-in systems, cataloging databases, CDor online bibliographic <strong>and</strong> full-text databasesOffice Operations e-mail, document creation e-mail clients, word processing, desktop publishing<strong>Science</strong> statistics, modeling, data analysis mathematical <strong>and</strong> statistical s<strong>of</strong>tware, modeling <strong>of</strong> molecules,gene typing, weather forecasting


array 23application suiteAn application suite is a set <strong>of</strong> programs designed to beused together <strong>and</strong> marketed as a single package. For example,a typical <strong>of</strong>fice suite might include word processing,spreadsheet, database, personal information manager, <strong>and</strong>e-mail programs.While an operating system such as Micros<strong>of</strong>t Windowsprovides basic capabilities to move text <strong>and</strong> graphics fromone application to another (such as by cutting <strong>and</strong> pasting),an application suite such as Micros<strong>of</strong>t Office makes it easierto, for example, launch a Web browser from a link within aword processing document or embed a spreadsheet in thedocument. In addition to this “interoperability,” an applicationsuite generally <strong>of</strong>fers a consistent set <strong>of</strong> comm<strong>and</strong>s <strong>and</strong>features across the different applications, speeding up thelearning process. The use <strong>of</strong> the applications in one packagefrom one vendor simplifies technical support <strong>and</strong> upgrading.(The development <strong>of</strong> comparable applications suitesfor Linux is likely to increase that operating system’s acceptanceon the desktop.)Applications suites have some potential disadvantagesas compared to buying a separate program for eachapplication. The user is not necessarily getting the bestprogram in each application area, <strong>and</strong> he or she is als<strong>of</strong>orced to pay for functionality that may not be needed ordesired. Due to their size <strong>and</strong> complexity, s<strong>of</strong>tware suitesmay not run well on older computers. Despite these problems,s<strong>of</strong>tware suites sell very well <strong>and</strong> are ubiquitous intoday’s <strong>of</strong>fice.(For a growing challenge to the traditional st<strong>and</strong>alones<strong>of</strong>tware suite, see application service provider.)Further ReadingVillarosa, Joseph. “How Suite It Is: One-Stop Shopping for S<strong>of</strong>twareCan Save You Both Time <strong>and</strong> Money.” Available online.Forbes magazine online. URL: http://www.forbes.com/buyers/070.htm. Accessed April 12, 2007.arithmetic logic unit (ALU)The arithmetic logic unit is the part <strong>of</strong> a computer systemthat actually performs calculations <strong>and</strong> logical comparisonson data. It is part <strong>of</strong> the central processing unit (CPU), <strong>and</strong>in practice there may be separate <strong>and</strong> multiple arithmetic<strong>and</strong> logic units (see cpu).The ALU works by first retrieving a code that representsthe operation to be performed (such as ADD). The code alsospecifies the location from which the data is to be retrieved<strong>and</strong> to which the results <strong>of</strong> the operation are to be stored.(For example, addition <strong>of</strong> the data from memory to a numberalready stored in a special accumulator register withinthe CPU, with the result to be stored back into the accumulator.)The operation code can also include a specification<strong>of</strong> the format <strong>of</strong> the data to be used (such as fixed or floating-pointnumbers)—the operation <strong>and</strong> format are <strong>of</strong>tencombined into the same code.In addition to arithmetic operations, the ALU can alsocarry out logical comparisons, such as bitwise operationsthat compare corresponding bits in two data words, correspondingto Boolean operators such as AND, OR, <strong>and</strong> XOR(see bitwise operations <strong>and</strong> Boolean operators).The data or oper<strong>and</strong> specified in the operation code isretrieved as words <strong>of</strong> memory that represent numeric data,or indirectly, character data (see memory, numeric data,<strong>and</strong> characters <strong>and</strong> strings). Once the operation is performed,the result is stored (typically in a register in theCPU). Special codes are also stored in registers to indicatecharacteristics <strong>of</strong> the result (such as whether it is positive,negative, or zero). Other special conditions called exceptionsindicate a problem with the processing. Commonexceptions include overflow, where the result fills more bitsthan are available in the register, loss <strong>of</strong> precision (becausethere isn’t room to store the necessary number <strong>of</strong> decimalplaces), or an attempt to divide by zero. Exceptions aretypically indicated by setting a flag in the machine statusregister (see flag).The Big PictureDetailed knowledge <strong>of</strong> the structure <strong>and</strong> operation <strong>of</strong> theALU is not needed by most programmers. Programmerswho need to directly control the manipulation <strong>of</strong> data inthe ALU <strong>and</strong> CPU write programs in assembly language(see assembler) that specify the sequence <strong>of</strong> operations tobe performed. Generally only the lowest-level operationsinvolving the physical interface to hardware devices requirethis level <strong>of</strong> detail (see device driver). Modern compilerscan produce optimized machine code that is almost as efficientas directly-coded assembler. However, underst<strong>and</strong>ingthe architecture <strong>of</strong> the ALU <strong>and</strong> CPU for a particular chipcan help predict its advantages or disadvantages for variouskinds <strong>of</strong> operations.Further ReadingKleitz, William. Digital <strong>and</strong> Microprocessor Fundamentals: Theory<strong>and</strong> Applications. 4th ed. Upper Saddle River, N.J.: PrenticeHall, 2002.Stokes, Jon. “Underst<strong>and</strong>ing the Microprocessor.” Ars Technica.Available online. URL: http://arstechnica.com/paedia/c/cpu/part-1/cpu1-1.html. Accessed May 22, 2007.arrayAn array stores a group <strong>of</strong> similar data items in consecutiveorder. Each item is an element <strong>of</strong> the array, <strong>and</strong> it can beretrieved using a subscript that specifies the item’s locationrelative to the first item. Thus in the C language, the statementint Scores (10);sets up an array called Scores, consisting <strong>of</strong> 10 integer values.The statementScores [5] = 93;stores the value 93 in array element number 5. One subtlety,however, is that in languages such as C, the first element <strong>of</strong>the array is [0], so [5] represents not the fifth but the sixthelement in Scores. (Many version <strong>of</strong> BASIC allow for settingeither 0 or 1 as the first element <strong>of</strong> arrays.)


24 arrayIn languages such as C that have pointers, an equivalentway to access an array is to declare a pointer <strong>and</strong> store theaddress <strong>of</strong> the first element in it (see pointers <strong>and</strong> indirection):int * ptr;ptr = &Scores [0];(See pointers <strong>and</strong> indirection.)Arrays are useful because they allow a program to workeasily with a group <strong>of</strong> data items without having to use separatelynamed variables. Typically, a program uses a loop totraverse an array, performing the same operation on eachelement in order (see loop). For example, to print the currentcontents <strong>of</strong> the Scores array, a C program could do thefollowing:int index;for (index = 0; i < 10; i++)printf (“Scores [%d] = %d \n”, index,Scores [index]);This program might print a table like this:Scores [0] = 22Scores [1] = 28Scores [2] = 36<strong>and</strong> so on. Using a pointer, a similar loop would incrementthe pointer to step to each element in turn.An array with a single subscript is said to have onedimension. Such arrays are <strong>of</strong>ten used for simple data lists,strings <strong>of</strong> characters, or vectors. Most languages also supportmultidimensional arrays. For example, a two-dimensionalarray can represent X <strong>and</strong> Y coordinates, as on ascreen display. Thus the number 16 stored at Colors[10][40]might represent the color <strong>of</strong> the point at X=10, Y=40 on a640 by 480 display. A matrix is also a two-dimensionalarray, <strong>and</strong> languages such as APL provide built-in supportfor mathematical operations on such arrays. A four-dimensionalarray might hold four test scores for each person.Some languages such as FORTRAN 90 allow for defining“slices” <strong>of</strong> an array. For example, in a 3 × 3 matrix, theexpression MAT(2:3, 1:3) references two 1 × 3 “slices” <strong>of</strong> thematrix array. Pascal allows defining a subrange, or portion<strong>of</strong> the subscripts <strong>of</strong> an array.Associative ArraysIt can be useful to explicitly associate pairs <strong>of</strong> data itemswithin an array. In an associative array each data elementhas an associated element called a key. Rather than usingsubscripts, data elements are retrieved by passing the keyto a hashing routine (see hashing). In the Perl language, forexample, an array <strong>of</strong> student names <strong>and</strong> scores might be setup like this:%Scores = (“Henderson” => 86, “Johnson” => 87, “Jackson”=> 92);The score for Johnson could later be retrieved using thereference:$Scores (“Johnson”)Associative arrays are h<strong>and</strong>y in that they facilitate look-uptables or can serve as small databases. However, exp<strong>and</strong>ingthe array beyond its initial allocation requires rehashing allthe existing elements.A two-dimensional array can be visualized as a grid, with thearray subscripts indicating the row <strong>and</strong> column in which a particularvalue is stored. Here the value 4 is stored at the location(1,2), while the value at (2,0), which is 8, is assigned to N. Asshown, the actual computer memory is a one dimensional line<strong>of</strong> successive locations. In most computer languages the array isstored row by row.Programming IssuesTo avoid error, any reference to an array must be withinits declared bounds. For example, in the earlier example,Scores[9] is the last element, <strong>and</strong> a reference to Scores[10]would be out <strong>of</strong> bounds. Attempting to reference an out<strong>of</strong>-boundsvalue gives an error message in some languagessuch as Pascal, but in others such as st<strong>and</strong>ard C <strong>and</strong> C++, itsimply retrieves whatever happens to be in that location inmemory.Another issue involves the allocation <strong>of</strong> memory for thearray. In a static array, such as that used in FORTRAN 77,the necessary storage is allocated before the program runs,<strong>and</strong> the amount <strong>of</strong> memory cannot be changed. Static arraysuse memory efficiently <strong>and</strong> reduce overhead, but are inflexible,since the programmer has to declare an array basedon the largest number <strong>of</strong> data items the program might becalled upon to h<strong>and</strong>le. A dynamic array, however, can use aflexible structure to allocate memory (see heap). The programcan change the size <strong>of</strong> the array at any time while itis running. C <strong>and</strong> C++ programs can create dynamic arrays<strong>and</strong> allocate memory using special functions (malloc <strong>and</strong>free in C) or operators (new <strong>and</strong> delete in C++).


art <strong>and</strong> the computer 25In the early days <strong>of</strong> microcomputer programming, arraystended to be used as an all-purpose data structure for storinginformation read from files. Today, since there are morestructured <strong>and</strong> flexible ways to store <strong>and</strong> retrieve such data,arrays are now mainly used for small sets <strong>of</strong> data (such aslook-up tables).Further ReadingJensen, Ted. “A Tutorial on Pointers <strong>and</strong> Arrays in C.” Availableonline. URL: http://pw2.netcom.com/~tjensen/ptr/pointers.htm. Accessed April 12, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Addison-Wesley, 2008.art <strong>and</strong> the computerWhile the artistic <strong>and</strong> technical temperaments are <strong>of</strong>tenviewed as opposites, the techniques <strong>of</strong> artists have alwaysshown an intimate awareness <strong>of</strong> technology, including thephysical characteristics <strong>of</strong> the artist’s tools <strong>and</strong> media. Thedevelopment <strong>of</strong> computer technology capable <strong>of</strong> generating,manipulating, displaying, or printing images has <strong>of</strong>fered avariety <strong>of</strong> new tools for existing artistic traditions, as wellas entirely new media <strong>and</strong> approaches.<strong>Computer</strong> art began as an <strong>of</strong>fshoot <strong>of</strong> research into imageprocessing or the simulation <strong>of</strong> visual phenomena, such asby researchers at Bell Labs in Murray Hill, New Jersey, duringthe 1960s. One <strong>of</strong> these researchers, A. Michael Noll,applied computers to the study <strong>of</strong> art history by simulatingtechniques used by painters Piet Mondrian <strong>and</strong> BridgetRiley in order to gain a better underst<strong>and</strong>ing <strong>of</strong> them. Inaddition to exploring existing realms <strong>of</strong> art, experimentersbegan to create a new genre <strong>of</strong> art, based on the ideas <strong>of</strong>Max Bense, who coined the terms “artificial art” <strong>and</strong> “generativeesthetics.” Artists such as Manfred Mohr studiedcomputer science because they felt the computer could providethe tools for an esthetic strongly influenced by mathematics<strong>and</strong> natural science. For example, Mohr’s P-159/A(1973) used mathematical algorithms <strong>and</strong> a plotting deviceto create a minimalistic yet rich composition <strong>of</strong> lines. Otherartists working in the minimalist, neoconstructivist, <strong>and</strong>conceptual art traditions found the computer to be a compellingtool for exploring the boundaries <strong>of</strong> form.By the 1980s, the development <strong>of</strong> personal computersmade digital image manipulation available to a much widergroup <strong>of</strong> people interested in artistic expression, includingthe more conventional realms <strong>of</strong> representational art <strong>and</strong>photography. Programs such as Adobe Photoshop blend art<strong>and</strong> photography, making it possible to combine imagesfrom many sources <strong>and</strong> apply a variety <strong>of</strong> transformationsto them. The use <strong>of</strong> computer graphics algorithms makerealistic lighting, shadow, <strong>and</strong> fog effects possible to a muchgreater degree than their approximation in traditionalmedia. Fractals can create l<strong>and</strong>scapes <strong>of</strong> infinite texture<strong>and</strong> complexity. The computer has thus become a st<strong>and</strong>ardtool for both “serious” <strong>and</strong> commercial artists.Artificial intelligence researchers have developed programsthat mimic the creativity <strong>of</strong> human artists. For example,a program called Aaron developed by Harold CohenAir, created by Lisa Yount with the popular image-editing programAdobe Photoshop, is part <strong>of</strong> a group <strong>of</strong> photocollages honoring theancient elements <strong>of</strong> earth, air, water, <strong>and</strong> fire. The “wings” in thecenter are actually the two halves <strong>of</strong> a mussel shell. (Lisa Yount)can adapt <strong>and</strong> extend existing styles <strong>of</strong> drawing <strong>and</strong> painting.Works by Aaron now hang in some <strong>of</strong> the world’s mostdistinguished art museums.An impressive display <strong>of</strong> the “state <strong>of</strong> the computer art”could be seen at a digital art exhibition that debuted inBoston at the SIGGRAPH 2006 conference. More than 150artists <strong>and</strong> researchers from 16 countries exhibited work<strong>and</strong> discussed its implications. Particularly interestingwere dynamic works that interacted with visitors <strong>and</strong> theenvironment, <strong>of</strong>ten blurring the distinction between digitalarts <strong>and</strong> robotics. In the future, sculptures may changewith the season, time <strong>of</strong> day, or the presence <strong>of</strong> people inthe room, <strong>and</strong> portraits may show moods or even conversewith viewers.Implications <strong>and</strong> ProspectsWhile traditional artistic styles <strong>and</strong> genres can be reproducedwith the aid <strong>of</strong> a computer, the computer has thepotential to change the basic paradigms <strong>of</strong> the visual arts.The representation <strong>of</strong> all elements in a composition in digitalform makes art fluid in a way that cannot be matched


26 artificial intelligenceby traditional media, where the artist is limited in the abilityto rework a painting or sculpture. Further, there is nohard-<strong>and</strong>-fast boundary between still image <strong>and</strong> animation,<strong>and</strong> the creation <strong>of</strong> art works that change interactivelyin response to their viewer becomes feasible. Sound, too,can be integrated with visual representation, in a way farmore sophisticated than that pioneered in the 1960s with“color organs” or laser shows. Indeed, the use <strong>of</strong> virtualreality technology makes it possible to create art that can beexperienced “from the inside,” fully immersively (see virtualreality). The use <strong>of</strong> the Internet opens the possibility<strong>of</strong> huge collaborative works being shaped by participantsaround the world.The growth <strong>of</strong> computer art has not been without misgivings.Many artists continue to feel that the intimatephysical relationship between artist, paint, <strong>and</strong> canvas cannotbe matched by what is after all only an arrangement <strong>of</strong>light on a flat screen. However, the pr<strong>of</strong>ound influence <strong>of</strong>the computer on contemporary art is undeniable.Further Reading<strong>Computer</strong>-Generated Visual Arts (Yahoo). Available online. URL:http://dir.yahoo.com/Arts/Visual_Arts/<strong>Computer</strong>_Generated/.Accessed April 13, 2007.Ashford, Janet. Arts <strong>and</strong> Crafts <strong>Computer</strong>: Using Your <strong>Computer</strong> asan Artist’s Tool. Berkeley, Calif.: Peachpit Press, 2001.Kurzweil Cyber Art Technologies homepage. Available online.URL: http://www.kurzweilcyberart.com/index.html. AccessedMay 22, 2007.Popper, Frank. Art <strong>of</strong> the Electronic Age. New York: Thames &Hudson, 1997.Rush, Michael. New Media in Late 20th-Century Art. New York:Thames & Hudson, 1999.SIGGRAPH 2006 Art Gallery. “Intersections.” Available online.URL: http://www.siggraph.org/s2006/main.php?f=conference&p=art. Accessed May 22, 2007.artificial intelligenceThe development <strong>of</strong> the modern digital computer followingWorld War II led naturally to the consideration <strong>of</strong> theultimate capabilities <strong>of</strong> what were soon dubbed “thinkingmachines” or “giant brains.” The ability to perform calculationsflawlessly <strong>and</strong> at superhuman speeds led someobservers to believe that it was only a matter <strong>of</strong> time beforethe intelligence <strong>of</strong> computers would surpass human levels.This belief would be reinforced over the years by the development<strong>of</strong> computer programs that could play chess withincreasing skill, culminating in the match victory <strong>of</strong> IBM’sDeep Blue over world champion Garry Kasparov in 1997.(See chess <strong>and</strong> computers.)However, the quest for artificial intelligence would facea number <strong>of</strong> enduring challenges, the first <strong>of</strong> which is alack <strong>of</strong> agreement on the meaning <strong>of</strong> the term intelligence,particularly in relation to such seemingly different entitiesas humans <strong>and</strong> machines. While chess skill is considereda sign <strong>of</strong> intelligence in humans, the game is deterministicin that optimum moves can be calculated systematically,limited only by the processing capacity <strong>of</strong> the computer.Human chess masters use a combination <strong>of</strong> pattern recognition,general principles, <strong>and</strong> selective calculation to comeup with their moves. In what sense could a chess-playingcomputer that mechanically evaluates millions <strong>of</strong> positionsbe said to “think” in the way humans do? Similarly, computerscan be provided with sets <strong>of</strong> rules that can be used tomanipulate virtual building blocks, carry on conversations,<strong>and</strong> even write poetry. While all these activities can be perceivedby a human observer as being intelligent <strong>and</strong> evencreative, nothing can truly be said about what the computermight be said to be experiencing.In 1950, computer pioneer Alan M. Turing suggesteda more productive approach to evaluating claims <strong>of</strong> artificialintelligence in what became known as the Turing test(see Turing, Alan). Basically, the test involves having ahuman interact with an “entity” under conditions where heor she does not know whether the entity is a computer oranother human being. If the human observer, after engagingin teletyped “conversation” cannot reliably determinethe identity <strong>of</strong> the other party, the computer can be said tohave passed the Turing test. The idea behind this approachis that rather than attempting to precisely <strong>and</strong> exhaustivelydefine intelligence, we will engage human experience <strong>and</strong>intuition about what intelligent behavior is like. If a computercan successfully imitate such behavior, then it at leastmay become problematic to say that it is not intelligent.<strong>Computer</strong> programs have been able to pass the Turingtest to a limited extent. For example, a program calledELIZA written by Joseph Weizenbaum can carry out whatappears to be a responsive conversation on themes chosenby the interlocutor. It does so by rephrasing statementsor providing generalizations in the way that a nondirectivepsychotherapist might. But while ELIZA <strong>and</strong> similarprograms have sometimes been able to fool human interlocutors,an in-depth probing by the humans has alwaysmanaged to uncover the mechanical nature <strong>of</strong> the response.Although passing the Turing test could be consideredevidence for intelligence, the question <strong>of</strong> whether a computermight have consciousness (or awareness <strong>of</strong> self) inthe sense that humans experience it might be impossible toanswer. In practice, researchers have had to confine themselvesto producing (or simulating) intelligent behavior, <strong>and</strong>they have had considerable success in a variety <strong>of</strong> areas.Top-Down ApproachesThe broad question <strong>of</strong> a strategy for developing artificialintelligence crystallized at a conference held in 1956 at DartmouthCollege. Four researchers can be said to be founders<strong>of</strong> the field: Marvin Minsky (founder <strong>of</strong> the AI Laboratory atMIT), John McCarthy (at MIT <strong>and</strong> later, Stanford), <strong>and</strong> HerbertSimon <strong>and</strong> Allen Newell (developers <strong>of</strong> a mathematicalproblem-solving program called Logic Theorist at the R<strong>and</strong>Corporation, who later founded the AI Laboratory at CarnegieMellon University). The 1950s <strong>and</strong> 1960s were a time<strong>of</strong> rapid gains <strong>and</strong> high optimism about the future <strong>of</strong> AI (seeMinsky, Marvin <strong>and</strong> Mccarthy, John).Most early attempts at AI involved trying to specify rulesthat, together with properly organized data, can enable themachine to draw logical conclusions. In a production systemthe machine has information about “states” (situations) plusrules for moving from one state to another—<strong>and</strong> ultimately,


artificial intelligence 27to the “goal state.” A properly implemented production systemcannot only solve problems, it can give an explanation<strong>of</strong> its reasoning in the form <strong>of</strong> a chain <strong>of</strong> rules that wereapplied.The program SHRDLU, developed by Marvin Minsky’steam at MIT, demonstrated that within a simplified “microworld”<strong>of</strong> geometric shapes a program can solve problems<strong>and</strong> learn new facts about the world. Minsky later developeda more generalized approach called “frames” to provide thecomputer with an organized database <strong>of</strong> knowledge aboutthe world comparable to that which a human child assimilatesthrough daily life. Thus, a program with the appropriateframes can act as though it underst<strong>and</strong>s a story abouttwo people in a restaurant because it “knows” basic factssuch as that people go to a restaurant to eat, the meal iscooked for them, someone pays for the meal, <strong>and</strong> so on.While promising, the frames approach seemed to founderbecause <strong>of</strong> the sheer number <strong>of</strong> facts <strong>and</strong> relationshipsneeded for a comprehensive underst<strong>and</strong>ing <strong>of</strong> the world.During the 1970s <strong>and</strong> 1980s, however, expert systems weredeveloped that could carry out complex tasks such as determiningthe appropriate treatment for infections (MYCIN)<strong>and</strong> analysis <strong>of</strong> molecules (DENDRAL). Expert systemscombined rules <strong>of</strong> inference with specialized databases <strong>of</strong>facts <strong>and</strong> relationships. Expert systems have thus been ableto encapsulate the knowledge <strong>of</strong> human experts <strong>and</strong> make itavailable in the field (see expert systems <strong>and</strong> knowledgerepresentation).The most elaborate version <strong>of</strong> the frames approach hasbeen a project called Cyc (short for “encyclopedia”), developedby Douglas Lenat. This project is now in its thirddecade <strong>and</strong> has codified millions <strong>of</strong> assertions about theworld, grouping them into semantic networks that representdozens <strong>of</strong> broad areas <strong>of</strong> human knowledge. If successful,the Cyc database could be applied in many differentdomains, including such applications as automatic analysis<strong>and</strong> summary <strong>of</strong> news stories.Bottom-Up ApproachesSeveral “bottom-up” approaches to AI were developed inan attempt to create machines that could learn in a morehumanlike way. The one that has gained the most practicalsuccess is the neural network, which attempts toemulate the operation <strong>of</strong> the neurons in the human brain.Researchers believe that in the human brain perceptions orthe acquisition <strong>of</strong> knowledge leads to the reinforcement <strong>of</strong>particular neurons <strong>and</strong> neural paths, improving the brain’sability to perform tasks. In the artificial neural network alarge number <strong>of</strong> independent processors attempt to performa task. Those that succeed are reinforced or “weighted,”while those that fail may be negatively weighted. This leadsto a gradual improvement in the overall ability <strong>of</strong> the systemto perform a task such as sorting numbers or recognizingpatterns (see neural network).Since the 1950s, some researchers have suggested thatcomputer programs or robots be designed to interact withtheir environment <strong>and</strong> learn from it in the way that humaninfants do. Rodney Brooks <strong>and</strong> Cynthia Breazeal at MIThave created robots with a layered architecture that includesmotor, sensory, representational, <strong>and</strong> decision-making elements.Each level reacts to its inputs <strong>and</strong> sends informationto the next higher level. The robot Cog <strong>and</strong> its descendantKismet <strong>of</strong>ten behaved in unexpected ways, generating complexresponses that are emergent rather than specificallyprogrammed.The approach characterized as “artificial life” adds agenetic component in which the successful componentspass on program code “genes” to their <strong>of</strong>fspring. Thus, thepower <strong>of</strong> evolution through natural selection is simulated,leading to the emergence <strong>of</strong> more effective systems (seeartificial life <strong>and</strong> genetic algorithms).In general the top-down approaches have been moresuccessful in performing specialized tasks, but the bottomupapproaches may have greater general application, as wellas leading to cross-fertilization between the fields <strong>of</strong> artificialintelligence, cognitive psychology, <strong>and</strong> research intohuman brain function.Application AreasWhile powerful artificial intelligence is not yet ubiquitousin everyday computing, AI principles are being successfullyused in a number <strong>of</strong> application areas. These areas, whichare all covered separately in this book, include• devising ways <strong>of</strong> capturing <strong>and</strong> representing knowledge,making it accessible to systems for diagnosis <strong>and</strong>analysis in fields such as medicine <strong>and</strong> chemistry (seeknowledge representation <strong>and</strong> expert systems)• creating systems that can converse in ordinary languagefor querying databases, responding to customerservice calls, or other routine interactions (see naturallanguage processing)• enabling robots to not only see but also “underst<strong>and</strong>”objects in a scene <strong>and</strong> their relationships (see computervision <strong>and</strong> robotics)• improving systems for voice <strong>and</strong> face recognition, aswell as sophisticated data mining <strong>and</strong> analysis (seespeech recognition <strong>and</strong> synthesis, biometrics,<strong>and</strong> data mining)• developing s<strong>of</strong>tware that can operate autonomously,carrying out assignments such as searching for <strong>and</strong>evaluating competing <strong>of</strong>ferings <strong>of</strong> merch<strong>and</strong>ise (sees<strong>of</strong>tware agent)ProspectsThe field <strong>of</strong> AI has been characterized by successive waves<strong>of</strong> interest in various approaches, <strong>and</strong> ambitious projectshave <strong>of</strong>ten failed. However, expert systems <strong>and</strong>, to a lesserextent, neural networks have become the basis for viableproducts. Robotics <strong>and</strong> computer vision <strong>of</strong>fer a significantpotential pay<strong>of</strong>f in industrial <strong>and</strong> military applications. Thecreation <strong>of</strong> s<strong>of</strong>tware agents to help users navigate the complexity<strong>of</strong> the Internet is now <strong>of</strong> great commercial interest.The growth <strong>of</strong> AI has turned out to be a steeper <strong>and</strong> morecomplex path than originally anticipated. One view suggestssteady progress. Another, shared by science fiction


28 artificial lifewriters such as Vernor Vinge, suggests a breakthrough, perhapsarising from artificial life research, might somedaycreate a true—but truly alien—intelligence (see singularity,technological).Further ReadingAmerican Association for Artificial Intelligence. “Welcome to AITopics.” Available online. URL: http://www.aaai.org/Pathfinder/html/welcome.html. Accessed April 13, 2007.“An Introduction to the <strong>Science</strong> <strong>of</strong> Artificial Intelligence.” Availableonline. URL: http://library.thinkquest.org/2705/. AccessedApril 13, 2007.Feigenbaum, E. A. <strong>and</strong> J. Feldman, eds. <strong>Computer</strong>s <strong>and</strong> Thought.New York: McGraw-Hill, 1963.Henderson, Harry. Artificial Intelligence: Mirrors for the Mind. NewYork: Facts On File, 2007.Jain, Sanjay, et al. Systems that Learn: An Introduction to LearningTheory. 2nd ed. Cambridge, Mass: MIT Press, 1999.Kurzweil, Ray. The Age <strong>of</strong> Spiritual Machines: When <strong>Computer</strong>sExceed Human Intelligence. New York: Viking, 1999.McCorduck, Pamela. Machines Who Think. 25th Anniversaryupdate. Notick, Mass.: A. K. Peters, 2004.Shapiro, Stuart C. <strong>Encyclopedia</strong> <strong>of</strong> Artificial Intelligence. 2nd ed.New York: Wiley, 1992.artificial life (AL)This is an emerging field that attempts to simulate thebehavior <strong>of</strong> living things in the realm <strong>of</strong> computers <strong>and</strong>robotics. The field overlaps artificial intelligence (AI) sinceintelligent behavior is an aspect <strong>of</strong> living things. The design<strong>of</strong> a self-reproducing mechanism by John von Neumann inthe mid-1960s was the first model <strong>of</strong> artificial life (see vonNeumann, John). The field was exp<strong>and</strong>ed by the development<strong>of</strong> cellular automata as typified in John Conway’sGame <strong>of</strong> Life in the 1970s, which demonstrated how simplecomponents interacting according to a few specific rulescould generate complex emergent patterns. A program byCraig Reynolds uses this principle to model the flockingbehavior <strong>of</strong> simulated birds, called “boids” (see cellularautomata).The development <strong>of</strong> genetic algorithms by John Holl<strong>and</strong>added selection <strong>and</strong> evolution to the act <strong>of</strong> reproduction.This approach typically involves the setting up <strong>of</strong> numeroussmall programs with slightly varying code, <strong>and</strong> having themattempt a task such as sorting data or recognizing patterns.Those programs that prove most “fit” at accomplishing thetask are allowed to survive <strong>and</strong> reproduce. In the act <strong>of</strong>reproduction, biological mechanisms such as genetic mutation<strong>and</strong> crossover are allowed to intervene (see geneticalgorithms). A rather similar approach is found in theneural network, where those nodes that succeed better atthe task are given greater “weight” in creating a compositesolution to the problem (see neural network).A more challenging but interesting approach to AL is tocreate actual robotic “organisms” that navigate in the physicalrather than the virtual world. Roboticist Hans Moravec<strong>of</strong> the Stanford AI Laboratory <strong>and</strong> other researchers havebuilt robots that can deal with unexpected obstacles byimprovisation, much as people do, thanks to layers <strong>of</strong> s<strong>of</strong>twarethat process perceptions, fit them to a model <strong>of</strong> theworld, <strong>and</strong> make plans based on goals. But such robots,built as full-blown designs, share few <strong>of</strong> the characteristics<strong>of</strong> artificial life. As with AI, the bottom-up approach <strong>of</strong>fersa different strategy that has been called “fast, cheap, <strong>and</strong>out <strong>of</strong> control”—the production <strong>of</strong> numerous small, simple,insectlike robots that have only simple behaviors, but arepotentially capable <strong>of</strong> interacting in surprising ways. If ameaningful genetic <strong>and</strong> reproductive mechanism can beincluded in such robots, the result would be much closer totrue artificial life (see robotics).The philosophical implications arising from the possibledevelopment <strong>of</strong> true artificial life are similar to thoseinvolved with “strong AI.” Human beings are used to viewingthemselves as the pinnacle <strong>of</strong> a hierarchy <strong>of</strong> intelligence<strong>and</strong> creativity. However, artificial life with the capability<strong>of</strong> rapid evolution might quickly outstrip human capabilities,perhaps leading to a world like that portrayed by sciencefiction writer Gregory Benford, where flesh-<strong>and</strong>-bloodhumans become a marginalized remnant population.Further Reading“ALife Online 2.0.” Available online. URL: http://alife.org/.Accessed April 13, 2007.“Karl Sims Retrospective.” Available online. URL: http://www.biota.org/ksims/. Accessed April 13, 2007.Langton, Christopher G., ed. Artificial Life: an Overview. Cambridge,Mass.: MIT Press, 1995.Levy, Stephen. Artificial Life: the Quest for a New Creation. NewYork: Pantheon Books, 1992.Tierra homepage. Available online. URL: http://www.his.atr.jp/çray/tierra. Accessed.ASP See application service provider.assemblerAll computers at bottom consist <strong>of</strong> circuits that can performa repertoire <strong>of</strong> mathematical or logical operations. The earliestcomputers were programmed by setting switches foroperations <strong>and</strong> manually entering numbers in working storage,or memory. A major advance in the flexibility <strong>of</strong> computerscame with the idea <strong>of</strong> stored programs, where a set <strong>of</strong>instructions could be read in <strong>and</strong> held in the machine in thesame way as other data. These instructions were in machinelanguage, consisting <strong>of</strong> numbers representing instructions(operations to be performed) <strong>and</strong> other numbers representingthe address <strong>of</strong> data to be manipulated (or an addresscontaining the address <strong>of</strong> the data, called indirect addressing—seeaddressing). Operations include basic arithmetic(such as addition), the movement <strong>of</strong> data between storage(memory) <strong>and</strong> special processor locations called registers,<strong>and</strong> the movement <strong>of</strong> data from an input device (such as acard reader) <strong>and</strong> an output device (such as a printer).Writing programs in machine code is obviously atedious <strong>and</strong> error-prone process, since each operation mustbe specified using a particular numeric instruction codetogether with the actual addresses <strong>of</strong> the data to be used. Itsoon became clear, however, that the computer could itselfbe used to keep track <strong>of</strong> binary codes <strong>and</strong> actual addresses,


asynchronous JavaScript <strong>and</strong> XML 29In this assembly language example, the “define byte” (.db) directive is used to assign one memory byte to each <strong>of</strong> the symbolic names (variables)firstnum, secondnum, <strong>and</strong> total. The two mov comm<strong>and</strong>s then load 2 <strong>and</strong> 3 into firstnum <strong>and</strong> secondnum, respectively. Firstnum isthen loaded into the processor’s accumulator (a), <strong>and</strong> secondnum is then added to it. Finally, the sum is moved into the memory locationlabeled total.allowing the programmer to use more human-friendlynames for instructions <strong>and</strong> data variables. The programthat translates between symbolic language <strong>and</strong> machinelanguage is the assembler.With a symbolic assembler, the programmer can givenames to data locations. Thus, instead <strong>of</strong> saying (<strong>and</strong> havingto remember) that the quantity Total will be in location&H100, the program can simply define a two-byte chunk <strong>of</strong>memory <strong>and</strong> call it Total:Total DBThe assembler will take care <strong>of</strong> assigning a physical memorylocation <strong>and</strong>, when instructed, retrieving or storing thedata in it.Most assemblers also have macro capability. This meansthat the programmer can write a set <strong>of</strong> instructions (a procedure)<strong>and</strong> give it a name. Whenever that name is used inthe program, the assembler will replace it with the actualcode for the procedure <strong>and</strong> plug in whatever variables arespecified as oper<strong>and</strong>s (see macro).ApplicationsIn the mainframe world <strong>of</strong> the 1950s, the development <strong>of</strong>assembly languages represented an important first steptoward symbolic programming; higher-level languages suchas FORTRAN <strong>and</strong> COBOL were developed so that programmerscould express instructions in language that was morelike mathematics <strong>and</strong> English respectively. High-level languages<strong>of</strong>fered greater ease <strong>of</strong> programming <strong>and</strong> sourcecode that was easier to underst<strong>and</strong> (<strong>and</strong> thus to maintain).Gradually, assembly language was reserved for systems programming<strong>and</strong> other situations where efficiency or the needto access some particular hardware capability required theexact specification <strong>of</strong> processing (see systems programming<strong>and</strong> device driver).During the 1970s <strong>and</strong> early 1980s, the same evolutiontook place in microcomputing. The first microcomputerstypically had only a small amount <strong>of</strong> memory (perhaps8–64K), not enough to compile significant programs in ahigh-level language (with the partial exception <strong>of</strong> some versions<strong>of</strong> BASIC). Applications such as graphics <strong>and</strong> games inparticular were written in assembly language for speed. Asavailable memory soared into the hundreds <strong>of</strong> kilobytes <strong>and</strong>then megabytes, however, high level languages such as C<strong>and</strong> C++ became practicable, <strong>and</strong> assembly language beganto be relegated to systems programming, including devicedrivers <strong>and</strong> other programs that had to interact directlywith the hardware.While many people learning programming today receivelittle or no exposure to assembly language, some underst<strong>and</strong>ing<strong>of</strong> this detailed level <strong>of</strong> programming is still usefulbecause it illustrates fundamentals <strong>of</strong> computer architecture<strong>and</strong> operation.Further ReadingAbel, Peter. IBM PC Assembly Language <strong>and</strong> Programming. 5th ed.Upper Saddle River, N.J.: Prentice Hall, 2001.Duntemann, Jeff. Assembly Language Step by Step: Programmingwith DOS <strong>and</strong> Linux. 2nd ed. New York: Wiley, 2000.Miller, Karen. An Assembly Language Introduction to <strong>Computer</strong>Architecture Using the Intel Pentium. New York: Oxford UniversityPress, 1999.asynchronous JavaScript <strong>and</strong> XML See ajax.


30 Atanas<strong>of</strong>f, John VincentAtanas<strong>of</strong>f, John Vincent(1903–1995)American<strong>Computer</strong> EngineerAccording to a federal court it was John Atanas<strong>of</strong>f, not JohnMauchly <strong>and</strong> Presper Eckert, who built the first digital computer.At any rate the “ABC” or Atanas<strong>of</strong>f-Berry computer representeda pioneering achievement in the use <strong>of</strong> binary logic circuits forcomputation. (Iowa State University)John V. Atanas<strong>of</strong>f is considered by many historians to bethe inventor <strong>of</strong> the modern electronic computer. He wasborn October 4, 1903, in Hamilton, New York. As a youngman, Atanas<strong>of</strong>f showed considerable interest in <strong>and</strong> a talentfor electronics. His academic background (B.S. in electricalengineering, Florida State University, 1925; M.S. in mathematics,Iowa State College, 1926; <strong>and</strong> Ph.D. in experimentalphysics, University <strong>of</strong> Wisconsin, 1930) well equipped himfor the design <strong>of</strong> computing devices. He taught mathematics<strong>and</strong> physics at Iowa State until 1942, <strong>and</strong> during thattime, he conceived the idea <strong>of</strong> a fully electronic calculatingmachine that would use vacuum tubes for its arithmetic circuits<strong>and</strong> would store binary numbers on a rotating drummemory that used high <strong>and</strong> low charges on capacitors.Atanas<strong>of</strong>f <strong>and</strong> his assistant Clifford E. Berry built a successfulcomputer called ABC (Atanas<strong>of</strong>f-Berry computer)using this design in 1942. (By that time he had taken a wartimeresearch position at the Naval Ordnance Laboratory inWashington, D.C.)The ABC was a special-purpose machine designed forsolving up to 29 simultaneous linear equations using analgorithm based on Gaussian elimination to eliminatea specified variable from a pair <strong>of</strong> equations. Because <strong>of</strong>inherent unreliability in the system that punched cards tohold the many intermediate results needed in such calculations,the system was limited in practice to solving sets <strong>of</strong>five or fewer equations.Despite its limitations, the ABC’s design proved the feasibility<strong>of</strong> fully electronic computing, <strong>and</strong> similar vacuumtube switching <strong>and</strong> regenerative memory circuits weresoon adopted in designing the ENIAC <strong>and</strong> EDVAC, whichunlike the ABC, were general-purpose electronic computers.Equally important was Atanas<strong>of</strong>f’s use <strong>of</strong> capacitors to storedata in memory electronically: The descendent <strong>of</strong> his capacitorscan be found in the DRAM chips in today’s computers.When Atanas<strong>of</strong>f returned to Iowa State in 1948, he discoveredthat the ABC computer had been dismantled tomake room for another project. Only a single memory drum<strong>and</strong> a logic unit survived. Iowa State granted him a fullpr<strong>of</strong>essorship <strong>and</strong> the chairmanship <strong>of</strong> the physics department,but he never returned to that institution. Instead, hefounded the Ordnance Engineering Corporation in 1952,which grew to a 100-person workforce before he sold thefirm to Aerojet General in 1956. He then served as a vicepresident at Aerojet until 1961.Atanas<strong>of</strong>f then semi-retired, devoting his time to a variety<strong>of</strong> technical interests (he had more than 30 patents tohis name by the time <strong>of</strong> his death). However, when SperryUnivac (owner <strong>of</strong> Eckert <strong>and</strong> Mauchly’s computer patents)began dem<strong>and</strong>ing license fees from competitors in the mid-1960s, the head lawyer for one <strong>of</strong> these competitors, Honeywell,found out about Atanas<strong>of</strong>f’s work on the ABC <strong>and</strong>enlisted his aid as a witness in an attempt to overturn thepatents. After prolonged litigation, Judge Earl Richard Larsonruled in 1973 that the two commercial computing pioneershad learned key ideas from Atanas<strong>of</strong>f’s apparatus <strong>and</strong>writings <strong>and</strong> that their patent was invalid because <strong>of</strong> this“prior art.”Atanas<strong>of</strong>f received numerous awards for his work for theNavy on acoustics <strong>and</strong> for his pioneering computer work.These awards included the IEEE <strong>Computer</strong> Pioneer Award(1984) <strong>and</strong> the National Medal <strong>of</strong> <strong>Technology</strong> (1990). Inaddition, he had both a hall at Iowa State University <strong>and</strong>an asteroid (3546-Atanas<strong>of</strong>f) named in his honor. JohnAtanas<strong>of</strong>f died on June 15, 1995, in Monrovia, Maryl<strong>and</strong>.Further ReadingBurks, A. R., <strong>and</strong> A. W. Burks. The First Electronic <strong>Computer</strong>: theAtanas<strong>of</strong>f Story. Ann Arbor, Mich: University <strong>of</strong> MichiganPress, 1988.Lee, J. A. N. <strong>Computer</strong> Pioneers. Los Alamitos, Calif.: IEEE <strong>Computer</strong>Society Press, 1995.“Reconstruction <strong>of</strong> the Atanas<strong>of</strong>f-Berry <strong>Computer</strong> (ABC).” Availableonline. URL: http://www.scl.ameslab.gov/ABC/ABC.html. Accessed April 13, 2007.


authentication 31auctions, onlineBy the late 1990s, millions <strong>of</strong> computer users had discovereda new way to buy <strong>and</strong> sell an immense variety <strong>of</strong> itemsranging from traditional collectibles to the exotic (such as aworking German Enigma encoding machine).Since its founding in 1995, leading auction site eBay hasgrown to 78 million users in mid-2006, with revenue <strong>of</strong>about $7.6 billion in 2007 (see eBay). (Two other e-commercegiants, Amazon.com <strong>and</strong> Yahoo!, also entered theonline auction market, but with much more modest results.)ProceduresOnline auctions differ from traditional auctions in severalways. Traditional auction firms generally charge the seller<strong>and</strong> buyer a commission <strong>of</strong> around 10 percent <strong>of</strong> the sale or“hammer” price. Online auctions charge the buyer nothing,<strong>and</strong> the seller typically pays a fee <strong>of</strong> about 3–5 percent <strong>of</strong> theamount realized. Online auctions can charge much lowerfees because unlike traditional auctions, there is no liveauctioneer, no catalogs to produce, <strong>and</strong> little administration,since all payments pass from buyer to seller directly.An online auction is like a mail bid auction in that bidscan be posted at any time during the several days a typicalauction runs. A buyer specifies a maximum bid <strong>and</strong> ifhe or she becomes the current high bidder, the high bid isadjusted to a small increment over the next highest bid. Aswith a “live” auction, however, bidders can revise their bidsas many times as they wish until the close <strong>of</strong> the auction.An important difference between online <strong>and</strong> traditional liveauctions is that a traditional auction ends as soon as noone is willing to top the current high bid. With an onlineauction, the bidding ends at the posted ending time. Thishas led to a tactic known as “sniping,” where some bidderssubmit a bid just over the current high bid just before theauction ends, such that the previous high bidder has notime to respond.Future <strong>and</strong> ImplicationsOnline auctions have become very popular, <strong>and</strong> an increasingnumber <strong>of</strong> people run small businesses by selling itemsthrough auctions. The markets for traditional collectiblessuch as coins <strong>and</strong> stamps have been considerably affectedby online auctions. Knowledgeable buyers can <strong>of</strong>ten obtainitems for considerably less than a dealer would charge, orsell items for more than a dealer would pay. However, manyitems are overpriced compared to the normal market, <strong>and</strong>faked or ill-described items can be a significant problem.Attempts to hold the auction service legally responsiblefor such items are met with the response that the auctionservice is simply a facilitator for the seller <strong>and</strong> buyer <strong>and</strong>does not play the role <strong>of</strong> traditional auctioneers who catalogitems <strong>and</strong> provide some assurance <strong>of</strong> authenticity. If courtsor regulators should decide that online auctions must bearthis responsibility, the cost <strong>of</strong> using the service may rise orthe variety <strong>of</strong> items that can be <strong>of</strong>fered may be restricted.Further ReadingCohen, Adam. The Perfect Store: Inside eBay. Boston: Little, Brown,2002.Encell, Steve, <strong>and</strong> Si Dunn. The Everything Online Auctions Book:All You Need to Buy <strong>and</strong> Sell with Success—on eBay <strong>and</strong> Beyond.Avon, Mass.: Adams Publishing Group, 2006.Kovel, Ralph M., <strong>and</strong> Terry H. Kovel. Kovels’ Bid, Buy, <strong>and</strong> SellOnline: Basic Auction Information <strong>and</strong> Tricks <strong>of</strong> the Trade. NewYork: Three Rivers Press, 2001.auditing in data processingThe tremendous increase in the importance <strong>and</strong> extent <strong>of</strong>information systems for all aspects <strong>of</strong> commerce <strong>and</strong> industryhas made it imperative that businesses be able to ensurethe accuracy <strong>and</strong> integrity <strong>of</strong> their accounting systems <strong>and</strong>corporate databases. Errors can result in loss <strong>of</strong> revenue<strong>and</strong> even exposure to legal liability.Auditing involves the analysis <strong>of</strong> the security <strong>and</strong> accuracy<strong>of</strong> s<strong>of</strong>tware <strong>and</strong> the procedures for using it. For example,sample data can be extracted using automated scriptsor other s<strong>of</strong>tware tools <strong>and</strong> examined to determine whethercorrect <strong>and</strong> complete information is being entered into thesystem, <strong>and</strong> whether the reports on which managementrelies for decision making are accurate. Auditing is alsoneeded to confirm that data reported to regulatory agenciesmeets legal requirements.In addition to confirming the reliability <strong>of</strong> s<strong>of</strong>tware <strong>and</strong>procedures, auditors must necessarily also be concernedwith issues <strong>of</strong> security, since attacks or fraud involvingcomputer systems can threaten their integrity or reliability(see computer crime <strong>and</strong> security). The safeguarding <strong>of</strong>customer privacy has also become a sensitive concern (seeprivacy in the digital age). To address such issues, theauditor must have a working knowledge <strong>of</strong> basic psychology<strong>and</strong> human relations, particularly as they affect largeorganizations.Auditors recommend changes to procedures <strong>and</strong> practicesto minimize the vulnerability <strong>of</strong> the system to bothhuman <strong>and</strong> natural threats. The issues <strong>of</strong> backup <strong>and</strong>archiving <strong>and</strong> disaster recovery must also be addressed(see backup <strong>and</strong> archive systems). As part accountant<strong>and</strong> part systems analyst, the information systems auditorrepresents a bridging <strong>of</strong> traditional practices <strong>and</strong> rapidlychanging technology.Further ReadingCannon, David L., Timothy S. Bergmann, <strong>and</strong> Brady Pamplin.CISA: Certified Information Systems Auditor Study Guide. Indianapolis:Wiley Publishing, 2006.Champlain, Jack. Auditing Information Systems. Hoboken, N.J.:Wiley, 2003.Information Systems Audit <strong>and</strong> Control Association. Availableonline. URL: http://www.isaca.org/. Accessed May 22, 2007.Pathak, Jagdish. Information Systems Auditing: An Evolving Agenda.New York: Springer-Verlag, 2005.authenticationThis process by which two parties in a communicationor transaction can assure each other <strong>of</strong> their identity is afundamental requirement for any transaction not involvingcash, such as the use <strong>of</strong> checks or credit or debit cards.(In practice, for many transactions, authentication is “one


32 authoring systemsway”—the seller needs to know the identity <strong>of</strong> the buyeror at least have some way <strong>of</strong> verifying the payment, but thebuyer need not confirm the identity <strong>of</strong> the seller—except,perhaps in order to assure proper recourse if somethingturns out to be wrong with the item purchased.)Traditionally, authentication involves paper-based identification(such as driver’s licenses) <strong>and</strong> the making <strong>and</strong>matching <strong>of</strong> signatures. Since such identification is relativelyeasy to fake, there has been growing interest in theuse <strong>of</strong> characteristics such as voice, facial measurements,or the patterns <strong>of</strong> veins in the retina that can be matcheduniquely to individuals (see biometrics). Biometrics, however,requires the physical presence <strong>of</strong> the person before asuitable device, so it is primarily used for guarding entryinto high-security areas.Authentication in Online SystemsSince many transactions today involve automated systemsrather than face-to-face dealings, authentication systemsgenerally involve the sharing <strong>of</strong> information unique to theparties. The PIN used with ATM cards is a common example:It protects against the physical diversion <strong>of</strong> the card byrequiring information likely known only to the legitimateowner. In e-commerce, there is the additional problem <strong>of</strong>safeguarding sensitive information such as credit card numbersfrom electronic eavesdroppers or intruders. Here a systemis used by which information is encrypted before it istransmitted over the Internet. Encryption can also be usedto verify identity through a digital signature, where a messageis transformed using a “one-way function” such that it ishighly unlikely that a message from any other sender wouldhave the same encrypted form (see encryption). The mostwidespread system is public key cryptography, where eachperson has a public key (known to all interested parties) <strong>and</strong>a private key that is kept secret. Because <strong>of</strong> the mathematicalrelationship between these two keys, the reader <strong>of</strong> a messagecan verify the identity <strong>of</strong> the sender or creator.The choice <strong>of</strong> technology or protocol for authenticationdepends on the importance <strong>of</strong> the transaction, the vulnerability<strong>of</strong> information that needs to be protected, <strong>and</strong> theconsequences <strong>of</strong> failing to protect it. A Web site that is providingaccess to a free service in exchange for informationabout users will probably not require authentication beyondperhaps a simple user/password pair. An online store, on theother h<strong>and</strong>, needs to provide a secure transaction environmentboth to prevent losses <strong>and</strong> to reassure potential customersthat shopping online does not pose an unacceptable risk.Authentication ultimately depends on a combination<strong>of</strong> technological <strong>and</strong> social systems. For example, cryptographickeys or “digital certificates” can be deposited witha trusted third party such that a user has reason to believethat a business is who it says it is.Further ReadingRatha, Nalini, <strong>and</strong> Ruud Bolie, eds. Automatic Fingerprint RecognitionSystems. New York: Springer-Verlag, 2004.Smith, Richard E., <strong>and</strong> Paul Reid. User Authentication Systems <strong>and</strong>Role-Based Security. Upper Saddle River, N.J.: Pearson CustomPublishing, 2004.Tung, Brian. Kerberos: A Network Authentication System. Reading,Mass.: Addison-Wesley, 1999.authoring systemsMultimedia presentations such as computer-based-training(CBT) modules are widely used in the corporate <strong>and</strong> educationalarenas. Programming such a presentation in a highlevellanguage such as C++ (or even Visual Basic) involveswriting code for the detailed arrangement <strong>and</strong> control <strong>of</strong>graphics, animation, sound, <strong>and</strong> user interaction. Authoringsystems <strong>of</strong>fer an alternative way to develop presentations orcourses. The developer specifies the sequence <strong>of</strong> graphics,sound, <strong>and</strong> other events, <strong>and</strong> the authoring system generatesa finished program based on those specifications.Authoring systems can use a variety <strong>of</strong> models for organizingpresentations. Some use a scripting language thatspecifies the objects to be used <strong>and</strong> the actions to be performed(see scripting languages). A scripting languageuses many <strong>of</strong> the same features as a high-level programminglanguage, including the definition <strong>of</strong> variables <strong>and</strong> theuse <strong>of</strong> control structures (decision statements <strong>and</strong> loops).Programs such as the once ubiquitous Hypercard (for theMacintosh) <strong>and</strong> Asymetrix Toolbook for Windows organizepresentations into segments called “cards,” with instructionsfleshed out in a scripting language.As an alternative, many modern authoring systemssuch as Discovery Systems’ CourseBuilder use a graphicalapproach to organizing a presentation. The various objects(such as graphics) to be used are represented by icons, <strong>and</strong>the icons are connected with “flow lines” that describethe sequence <strong>of</strong> actions, serving the same purpose as controlstructures in programming languages. This “iconic”type <strong>of</strong> authoring system is easiest for less experiencedprogrammers to use <strong>and</strong> makes the creation <strong>of</strong> small presentationsfast <strong>and</strong> easy. Such systems may become moredifficult to use for lengthy presentations (due to the number<strong>of</strong> symbols <strong>and</strong> connectors involved), <strong>and</strong> speed <strong>of</strong> thefinished program can be a problem. Other popular modelsfor organizing presentations include the “timeline” <strong>of</strong>Macromedia Flash, which breaks the presentation into“movies” <strong>and</strong> specifies actions for each frame, as well asproviding multiple layers to facilitate animation. With themigration <strong>of</strong> many presentations to the Internet, the ability<strong>of</strong> authoring systems to generate HTML (or DHTML)code is also important.Further ReadingMakedon, Fillia, <strong>and</strong> Samuel A. Rebelsky, ed. Electronic MultimediaPublishing: Enabling Technologies <strong>and</strong> Authoring Issues. Boston:Kluwer Academic, 1998.“Multimedia Authoring Systems FAQ.” Available online. URL:http://fags.cs.uu.nl/na-dir/multimedia/authoring-systems/part1.html. Accessed August 8, 2007.Murray, T. “Authoring Intelligent Tutoring Systems: An analysis <strong>of</strong>the state <strong>of</strong> the art.” International J. <strong>of</strong> Artificial Intelligence inEducation 10 (1999): 98–129.Wilhelm, Jeffrey D., Paul Friedman, <strong>and</strong> Julie Erickson. Hyperlearning:where Projects, Inquiry, <strong>and</strong> <strong>Technology</strong> Meet. York,Me.: Stenhouse, 1998.


awk 33automatic programmingFrom the beginning <strong>of</strong> the computer age, computer scientistshave grappled with the fact that writing programsin any computer language, even relatively high-level onessuch as FORTRAN or C, requires painstaking attention todetail. While language developers have responded to thischallenge by trying to create more “programmer friendly”languages such as COBOL with its English-like syntax,another approach is to use the capabilities <strong>of</strong> the computerto automate the task <strong>of</strong> programming itself. It is truethat any high-level language compiler does this to someextent (by translating program statements into the underlyingmachine instructions), but the more ambitious taskis to create a system where the programmer would specifythe problem <strong>and</strong> the system would generate the high-levellanguage code. In other words, the task <strong>of</strong> programming,which had already been abstracted from the machine codelevel to the assembler level <strong>and</strong> from that level to the highlevellanguage, would be abstracted a step further.During the 1950s, researchers began to apply artificialintelligence principles to automate the solving <strong>of</strong> mathematicalproblems (see artificial intelligence). For example,in the 1950s Anthony Hoare introduced the definition <strong>of</strong>preconditions <strong>and</strong> postconditions to specify the states <strong>of</strong>the machine as it proceeds toward an end state (the solution<strong>of</strong> the problem). The program Logic Theorist demonstratedthat a computer could use a formal logical calculus to solveproblems from a set <strong>of</strong> conditions or axioms. Techniquessuch as deductive synthesis (reasoning from a set <strong>of</strong> programmedprinciples to a solution) <strong>and</strong> transformation (stepby-steprules for converting statements in a specificationlanguage into the target programming language) allowed forthe creation <strong>of</strong> automated programming systems, primarilyin mathematical <strong>and</strong> scientific fields (see also prolog).The development <strong>of</strong> the expert system (combining aknowledge base <strong>and</strong> inference rules) <strong>of</strong>fered yet anotherroute toward automated programming (see expert systems).Herbert Simon’s 1963 Heuristic Compiler was anearly demonstration <strong>of</strong> this approach.ApplicationsSince many business applications are relatively simple inlogical structure, practical automatic principles have beenused in developing application generators that can create,for example, a database management system given adescription <strong>of</strong> the data structures <strong>and</strong> the required reports.While some systems output code in a language such as C,others generate scripts to be run by the database managements<strong>of</strong>tware itself (for example, Micros<strong>of</strong>t Access).To simplify the underst<strong>and</strong>ing <strong>and</strong> specification <strong>of</strong> problems,a visual interface is <strong>of</strong>ten used for setting up the applicationrequirements. Onscreen objects can represent itemssuch as data files <strong>and</strong> records, <strong>and</strong> arrows or other connectinglinks can be dragged to indicate data relationships.The line between automated program generators <strong>and</strong>modern s<strong>of</strong>tware development environments is blurry. Aprogramming environment such as Visual Basic encapsulatesa great deal <strong>of</strong> functionality in objects called controls,which can represent menus, lists, buttons, text input boxes,<strong>and</strong> other features <strong>of</strong> the Windows interface, as well asother functionalities (such as a Web browser). The VisualBasic programmer can design an application by assemblingthe appropriate interface objects <strong>and</strong> processing tools, setproperties (characteristics), <strong>and</strong> write whatever additionalcode is necessary. While not completely automating programming,much <strong>of</strong> the same effect can be achieved.Further ReadingAndrews, James H. Logic Programming: Operational Semantics <strong>and</strong>Pro<strong>of</strong> Theory. New York: Cambridge University Press, 1992.“Automatic Programming Server.” Available online. URL: http://www.cs.utexas.edu/users/novak/cgi/apserver.cgi. AccessedApril 14, 2007.“Programming <strong>and</strong> Problem Solving by Connecting Diagrams.”Available online. URL: http://www.cs.utexas.edu/users/novak/cgi/vipdemo.cgi. Accessed April 14, 2007.Tahid, Walid, ed. Semantics, Applications <strong>and</strong> Implementation <strong>of</strong>Program Generation. New York: Springer-Verlag, 2000.awkThis is a scripting language developed under the UNIXoperating system (see scripting languages) by Alfred V.Aho, Brian W. Kernighan, <strong>and</strong> Peter J. Weinberger in 1977.(The name is an acronym from their last initials.) The languagebuilds upon many <strong>of</strong> the pattern matching utilities<strong>of</strong> the operating system <strong>and</strong> is designed primarily for theextraction <strong>and</strong> reporting <strong>of</strong> data from files. A number <strong>of</strong>variants <strong>of</strong> awk have been developed for other operatingsystems such as DOS.As with other scripting languages, an awk program consists<strong>of</strong> a series <strong>of</strong> comm<strong>and</strong>s read from a file by the awkinterpreter. For example the following UNIX comm<strong>and</strong>line:awk -f MyProgram > Reportreads awk statements from the file MyProgram into theawk interpreter <strong>and</strong> sends the program’s output to the fileReport.Language FeaturesAn awk statement consists <strong>of</strong> a pattern to match <strong>and</strong> anaction to be taken with the result (although the pattern canbe omitted if not needed). Here are some examples:{print $1} # prints the first field <strong>of</strong> every# line <strong>of</strong> input (since no pattern# is specified)/debit/ {print $2} # print the second field <strong>of</strong># every line that contains the# word “debit”if ( Code == 2 ) # if Code equals 2,print $3 # print third field# <strong>of</strong> each linePattern matching uses a variety <strong>of</strong> regular expressions familiarto UNIX users. Actions can be specified using a limitedbut adequate assortment <strong>of</strong> control structures similar to


34 awkthose found in C. There are also built-in variables (includingcounters for the number <strong>of</strong> lines <strong>and</strong> fields), arithmetic functions,useful string functions for extracting text from fields,<strong>and</strong> arithmetic <strong>and</strong> relational operators. Formatting <strong>of</strong> outputcan be accomplished through the versatile (but somewhatcryptic) print function familiar to C programmers.Awk became popular for extracting reports from datafiles <strong>and</strong> simple databases on UNIX systems. For moresophisticated applications it has been supplanted by Perl,which <strong>of</strong>fers a larger repertoire <strong>of</strong> database-oriented features(see Perl).Further ReadingAho, Alfred V., Brian Kernighan, <strong>and</strong> Peter J. Weinberger. TheAwk Programming Language. Reading, Mass.: Addison-Wesley,1998.Goebel, Greg. “An Awk Primer.” Available online. URL: http://www.vectorsite.net/tsawk.html. Accessed May 22, 2007.


BBabbage, Charles(1791–1871)BritishMathematician, InventorCharles Babbage made wide-ranging applications <strong>of</strong> mathematicsto a variety <strong>of</strong> fields including economics, socialstatistics, <strong>and</strong> the operation <strong>of</strong> railroads <strong>and</strong> lighthouses.Babbage is best known, however, for having conceptualizedthe key elements <strong>of</strong> the general-purpose computer about acentury before the dawn <strong>of</strong> electronic digital computing.As a student at Trinity College, Cambridge, Babbagewas already making contributions to the reform <strong>of</strong> calculus,championing new European methods over the Newtonianapproach still clung to by British mathematicians.But Babbage’s interests were shifting from the theoreticalto the practical. Britain’s growing industrialization as wellas its worldwide interests increasingly dem<strong>and</strong>ed accuratenumeric tables for navigation, actuarial statistics, interestrates, <strong>and</strong> engineering parameters. All tables had to beh<strong>and</strong>-calculated, a long process that inevitably introducednumerous errors. Babbage began to consider the possibilitythat the same mechanization that was revolutionizingindustries such as weaving could be turned to the automaticcalculation <strong>of</strong> numeric tables.Starting in 1820, Babbage began to build a mechanicalcalculator called the difference engine. This machineused series <strong>of</strong> gears to accumulate additions <strong>and</strong> subtractions(using the “method <strong>of</strong> differences”) to generatetables. His small demonstration model worked well,so Babbage undertook the full-scale “Difference EngineNumber One,” a machine that would have about 25,000moving parts <strong>and</strong> would be able to calculate up to 20 decimalplaces. Unfortunately, Babbage was unable, despitefinancial support from the British government, to overcomethe difficulties inherent in creating a mechanicaldevice <strong>of</strong> such complexity with the available machiningtechnology.Undaunted, Babbage turned in the 1830s to a new designthat he called the Analytical Engine. Unlike the DifferenceEngine, the new machine was to be programmable usinginstructions read in from a series <strong>of</strong> punch cards (as in theJacquard loom). A second set <strong>of</strong> cards would contain thevariables, which would be loaded into the “store”—a series<strong>of</strong> wheels corresponding to memory in a modern computer.Under control <strong>of</strong> the instruction cards, numbers could bemoved between the store <strong>and</strong> the “mill” (corresponding to amodern CPU) <strong>and</strong> the results <strong>of</strong> calculations could be sentto a printing device.Collaborating with Ada Lovelace (who translated his lecturetranscripts by L. F. Menebrea) Babbage wrote a series<strong>of</strong> papers <strong>and</strong> notes that explained the workings <strong>of</strong> the proposedmachine, including a series <strong>of</strong> “diagrams” (programs)for performing various sorts <strong>of</strong> calculations.Building the Analytical Engine would have been a farmore ambitious task than the special-purpose DifferenceEngine, <strong>and</strong> Babbage made little progress in the actual construction<strong>of</strong> the device. Although Babbage’s ideas wouldremain obscure for nearly a century, he would then be recognizedas having designed most <strong>of</strong> the key elements <strong>of</strong> themodern computer: the central processor, memory, instructions,<strong>and</strong> data organization. Only in the lack <strong>of</strong> a capability35


36 backup <strong>and</strong> archive systemsthe economic value <strong>of</strong> data has increased. Potential threatsto data include bugs in the operating system or s<strong>of</strong>twareapplications, malicious acts such as the introduction <strong>of</strong>computer viruses, theft, hardware failure (such as in harddisk drives), power outages, fire, <strong>and</strong> natural disasters suchas earthquakes <strong>and</strong> floods.A variety <strong>of</strong> general principles must be considered indevising an overall strategy for creating <strong>and</strong> maintainingbackups:Reliability: Is there assurance that the data is stored accuratelyon the backup medium, <strong>and</strong> will automatic backupsrun reliably as scheduled? Can the data be accuratelyretrieved <strong>and</strong> restored if necessary?Physical storage: Is the backed-up data stored securely <strong>and</strong>organized in a way to make it easy to retrieve particulardisks or tapes? Is the data stored at the site where it is tobe used, or <strong>of</strong>f-site (guarding against fire or other disasterstriking the workplace).If it had been built, Charles Babbage’s Analytical Engine, althoughmechanical rather than electrical, would have had most <strong>of</strong> theessential features <strong>of</strong> modern computers. These included input,(via punched cards), a processor, a memory (store), <strong>and</strong> a printer.A reproduction <strong>of</strong> part <strong>of</strong> the early Difference Engine is shownhere. (Photo Researchers, Inc.)to manipulate memory addresses did the design fall short <strong>of</strong>a modern computer.Further Reading“The Analytical Engine: the First <strong>Computer</strong>.” Available online. URL:http://www.fourmilab.ch/babbage/. Accessed April 20, 2007.Babbage, Henry Prevost, ed. Babbage’s Calculating Engines: A Collection<strong>of</strong> Papers. With a new introduction by Allan G. Bromley.Los Angeles: Tomash, 1982.Campbell-Kelly, M., ed. The Works <strong>of</strong> Charles Babbage. 11 vols.London: Picerking <strong>and</strong> Chatto, 1989.“Who Was Charles Babbage?” Charles Babbage Institute. Availableonline. URL: http://www.cbi.umn.edu/exhibits/cb.html.Accessed April 20, 2007.Swade, Doron D. “Redeeming Charles Babbage’s Mechanical <strong>Computer</strong>.”Scientific American, February 1993.backup <strong>and</strong> archive systemsThe need to create backup copies <strong>of</strong> data has become increasinglyimportant as dependence on computers has grown <strong>and</strong>The daughter <strong>of</strong> poet Lord Byron, Lady Ada Lovelace (1815–52)acquired mathematical training usually denied to her gender.When she met Charles Babbage <strong>and</strong> learned about his computerdesign, she translated his work <strong>and</strong> wrote the world’s firstcomputer programs. (Photo Researchers, Inc. / <strong>Science</strong>Photo Library)


ackup <strong>and</strong> archive systems 37Ease <strong>of</strong> Use: To the extent backups must be set up or initiatedby human operators, is the system easy to underst<strong>and</strong><strong>and</strong> use with minimal training? Ease <strong>of</strong> use bothpromotes reliability (because users will be more likelyto perform the backups), <strong>and</strong> saves money in trainingcosts.Economy: How does a given system compare to others interms <strong>of</strong> the cost <strong>of</strong> the devices, s<strong>of</strong>tware, media (suchas tapes or cartridges), training, <strong>and</strong> administration?The market for storage <strong>and</strong> backup s<strong>of</strong>tware <strong>and</strong> serviceshas grown rapidly in the mid-2000s, driven in part bya new awareness <strong>of</strong> the need <strong>of</strong> corporations to protect theirvital data assets from natural disasters or possible terroristattacks (see cyberterrorism <strong>and</strong> disaster planning <strong>and</strong>recovery). In many corporations the amount <strong>of</strong> data thatneeds to be backed up or archived grows at a rate <strong>of</strong> 50 percentper year or more.Choice <strong>of</strong> MethodsThe actual choice <strong>of</strong> hardware, s<strong>of</strong>tware, <strong>and</strong> media dependsconsiderably on how much data must be backed up (<strong>and</strong>how <strong>of</strong>ten) as well as whether the data is being generatedon individual PCs or being stored at a central location. (Seefile server, data warehouse.)Backups for individual PCs can be accomplished usingthe backup s<strong>of</strong>tware that comes with various versions <strong>of</strong>Micros<strong>of</strong>t Windows or through third-party s<strong>of</strong>tware.In addition to traditional tapes, the media used includeCDs or DVDs (for very small backups), tiny USB “flashdrives” (generally up to a few gigabytes <strong>of</strong> data), cartridgedrives (up to 70 gigabytes or more), or even compact externalUSB hard drives that can store hundreds <strong>of</strong> gigabytes.(see cd <strong>and</strong> dvd rom, flash drive, hard drive, tapedrive, <strong>and</strong> usb.)In addition to backing up documents or other data generatedby users, the operating system <strong>and</strong> applications s<strong>of</strong>twareis <strong>of</strong>ten backed up to preserve configuration informationthat would otherwise be lost if the program were reinstalled.There are utilities for Micros<strong>of</strong>t Windows <strong>and</strong> other operatingsystems that simplify the backing up <strong>of</strong> configurationinformation by identifying <strong>and</strong> backing up only those files(such as the Windows Registry) that contain informationparticular to the installation.The widespread use <strong>of</strong> local area networks makes it easierto back up data automatically from individual PCs <strong>and</strong>to store data at a central location (see local area network<strong>and</strong> file server). However, having all data eggs inone basket increases the importance <strong>of</strong> building reliability<strong>and</strong> redundancy into the storage system, including the use<strong>of</strong> RAID (multiple disk arrays), “mirrored” disk drives, <strong>and</strong>uninterruptible power supplies (UPS). Despite such measures,the potential risk in centralized storage has led toadvocacy <strong>of</strong> a “replication” system, preferably at the operatingsystem level, that would automatically create backupcopies <strong>of</strong> any given object at multiple locations on the network.Another alternative <strong>of</strong> growing interest is the use <strong>of</strong> theInternet to provide remote (<strong>of</strong>f-site) backup services.By 2005 Gartner Research was reporting that about94 percent <strong>of</strong> corporate IT managers surveyed were usingor considering the use <strong>of</strong> “managed backup” services.IDC has estimated that the worldwide market for onlinebackup services would reach $715 million by 2011. Onlinebackup <strong>of</strong>fers ease <strong>of</strong> use (the backups can be run automatically,<strong>and</strong> the service is particularly h<strong>and</strong>y for laptopcomputer users on the road) <strong>and</strong> the security <strong>of</strong> <strong>of</strong>f-sitestorage, but raise questions <strong>of</strong> privacy <strong>and</strong> security <strong>of</strong> sensitiveinformation, particularly if encryption is not builtinto the process. Online data storage is also provided toindividual users by a variety <strong>of</strong> service providers such asGoogle. Application Service Providers (ASPs) have a naturalentry into the online storage market since they alreadyhost the applications their users use to create data (seeapplication service provider).A practice that still persists in some mainframe installationsis the tape library, which maintains an archive <strong>of</strong> dataon tape that can be retrieved <strong>and</strong> mounted as needed.ArchivingAlthough using much <strong>of</strong> the same technology as makingbackups, archiving <strong>of</strong> data is different in its objectives <strong>and</strong>needs. An archive is a store <strong>of</strong> data that is no longer neededfor routine current use, but must be retrievable upondem<strong>and</strong>, such as the production <strong>of</strong> bank records or e-mailas part <strong>of</strong> a legal process. (Data may also be archived forhistorical or other research purposes.) Since archives mayhave to be maintained for many years (even indefinitely),the ability <strong>of</strong> the medium (such as tape) to maintain datain readable condition becomes an important consideration.Besides physical deterioration, the obsolescence <strong>of</strong> file formatscan also render archived data unusable.Management ConsiderationsIf backups must be initiated by individual users, the usersmust be trained in the use <strong>of</strong> the backup system <strong>and</strong> motivatedto make backups, a task that is easy to put <strong>of</strong>f toanother time. Even if the backup is fully automated, samplebackup disks or tapes should be checked periodically tomake sure that data could be restored from them. Backuppractices should be coordinated with disaster recovery <strong>and</strong>security policies.Further ReadingBackup Review. Available online. URL: http://www.backupreview.info/index.php. Accessed April 22, 2007.Jacobi, Jon L. “Online Backup Services Come <strong>of</strong> Age.” PC WorldOnline, July 28, 2005. Available online. URL: http://www.pcworld.com/article/id,121970-page,1-c,utilities/article.html.Accessed April 22, 2007.Jackson, William. “Modern Relics: NIST <strong>and</strong> Others Work on Howto Preserve Data for Later Use.” Available online. URL: http://www.gcn.com/print/25_16/41069-1.html. Accessed April 22,2007.Storage Search. Available online. URL: http://www.storagesearch.com/. Accessed April 22, 2007.Preston, W. Curtis. Backup & Recovery. Sebastapol, Calif.: O’ReillyMedia, 2006.


38 Backus-Naur formBackus-Naur formAs the emerging discipline <strong>of</strong> computer science struggledwith the need to precisely define the rules for new programminglanguages, the Backus-Naur form (BNF) was devisedas a notation for describing the precise grammar <strong>of</strong> a computerlanguage. BNF represents the unification <strong>of</strong> separatework by John W. Backus <strong>and</strong> Peter Naur in 1958, when theywere trying to write a specification for the Algol language.A series <strong>of</strong> BNF statements defines the syntax <strong>of</strong> a languageby specifying the combinations <strong>of</strong> symbols that constitutevalid statements in the language.Thus in a hypothetical language a program can bedefined as follows: ::= programbeginend;Here the symbol ::= means “is defined as” <strong>and</strong> items inbrackets are metavariables that represent placeholdersfor valid symbols. For example, can consist <strong>of</strong> a number <strong>of</strong> different statements defined elsewhere.Statements in square brackets [] indicate optional elements.Thus the If statement found in most programminglanguages is <strong>of</strong>ten defined as: ::= if >boolean_expression> then[ else ]end if ;This can be read as “an If statement consists <strong>of</strong> a boolean_expression (something that evaluates to “true” or “false”)followed by one or more statements, followed by an optionalelse that in turn is followed by one or more statements, followedby the keywords end if.” Of course each item in anglebrackets must be further defined—for example, a Boolean_expression.Curly brackets {} specify an item that can be repeatedone or more times. For example, in the definition ::= { | }An identifier is defined as a letter followed by one or moreinstances <strong>of</strong> either a letter or a digit.An extended version <strong>of</strong> BNF (EBNF) <strong>of</strong>fers operatorsthat make definitions more concise yet easier to read. Thepreceding definition in EBNF would be:Identifier = Letter{Letter | Digit}EBNF statements are sometimes depicted visually inrailroad diagrams, so called because the lines <strong>and</strong> arrowsindicating the relationship <strong>of</strong> symbols resemble railroadtracks. The definition <strong>of</strong> expressed in a railroaddiagram is depicted in the above figure.This “railroad diagram” indicates that an identifier must beginwith a letter, which can be followed by a digit or another letter.The tracks curving back indicate that an element can appear morethan once.BNF <strong>and</strong> EBNF are useful because they can provideunambiguous definitions <strong>of</strong> the syntax <strong>of</strong> any computer languagethat is not context-dependent (which is to say, nearlyall <strong>of</strong> them). It can thus serve as a reference for introduction<strong>of</strong> new languages (such as scripting languages) <strong>and</strong> fordevelopers <strong>of</strong> parsers for compilers.Further ReadingGarshol, Lars Marius. “BNF <strong>and</strong> EBNF: What Are They <strong>and</strong> HowDo They Work?” Available online. URL: http://www.garshol.priv.no/download/text/bnf.html. Accessed April 23, 2007.Jensen, K., N. Wirth et al. Pascal User Manual <strong>and</strong> Report: ISO PascalSt<strong>and</strong>ard. New York: Springer-Verlag, 1985.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 9th ed.Boston: Addison-Wesley, 2008.b<strong>and</strong>widthIn its original sense, b<strong>and</strong>width refers to the range <strong>of</strong> frequenciesthat a communications medium can effectivelytransmit. (At either end <strong>of</strong> the b<strong>and</strong>width, the transmissionbecomes too attenuated to be received reliably.) For a st<strong>and</strong>ardvoice telephone, the b<strong>and</strong>width is about 3kHz.In digital networks, b<strong>and</strong>width is used in a rather differentsense to mean the amount <strong>of</strong> data that can be transmittedin a given time—what is more accurately described asthe information transfer rate. A common measurement isMb/sec (megabits per second). For example, a fast Ethernetnetwork may have a b<strong>and</strong>width <strong>of</strong> 100 Mb/sec while a homephone-line network might have a b<strong>and</strong>width <strong>of</strong> from 1 to 10Mb/sec <strong>and</strong> a DSL or cable modem runs at about 1 Mb/sec.(By comparison, a typical dial-up modem connection has ab<strong>and</strong>width <strong>of</strong> about 28–56 kb/sec, roughly 20 times slowerthan even a slow home network.)The importance <strong>of</strong> b<strong>and</strong>width for the Internet is that itdetermines the feasibility <strong>of</strong> delivering new media such assound (MP3), streaming video, <strong>and</strong> digital movies over thenetwork, <strong>and</strong> thus the viability <strong>of</strong> business models based onsuch products. The growth <strong>of</strong> high-capacity access to theInternet (see broadb<strong>and</strong>) is changing the way people usethe network.Further ReadingBenedetto, Sergio, <strong>and</strong> Ezio Biglieri. Principles <strong>of</strong> Digital Transmission:With Wireless Applications. New York: Springer, 1999.Smith, David R. Digital Transmission Systems. 3rd ed. New York:Kluwer Academic Publishers, 2003.


BASIC 39banking <strong>and</strong> computersBeginning in the 1950s, banks undertook extensive automation<strong>of</strong> operations, starting with electronic funds transfer(EFT) systems. Check clearing (the sending <strong>of</strong> checksfor payment to the bank on which they are drawn) wasfacilitated by the development <strong>of</strong> magnetic ink characterrecognition (MICR) that allowed checks to be automaticallysorted <strong>and</strong> tabulated. Today an automated clearinghouse (ACH) network processes checks <strong>and</strong> other paymentsthrough regional clearinghouses.Starting in the 1960s, the use <strong>of</strong> credit cards became anincreasingly popular alternative to checks, <strong>and</strong> they weresoon joined by automatic teller machine (ATM) networks<strong>and</strong> the use <strong>of</strong> debit cards (cards for transferring funds froma checking account at the point <strong>of</strong> sale).Direct deposit <strong>of</strong> payroll <strong>and</strong> benefit checks has alsobeen promoted for its safety <strong>and</strong> convenience. Credit card,ATM, <strong>and</strong> debit card systems rely upon large data processingfacilities operated by the issuing financial institution.Because <strong>of</strong> the serious consequences <strong>of</strong> system failure bothin immediate financial loss <strong>and</strong> customer goodwill, thesefund transfer systems must achieve a high level <strong>of</strong> reliability<strong>and</strong> security. Reliability is promoted through the use<strong>of</strong> fault-tolerant hardware (such as redundant systems thatcan take over for one another in the event <strong>of</strong> a problem).The funds transfer messages must be provided a high level<strong>of</strong> security against eavesdropping or tampering through theuse <strong>of</strong> algorithms such as the long-established DES (DataEncryption St<strong>and</strong>ard)—see encryption. Designers <strong>of</strong>EFT systems also face the challenge <strong>of</strong> providing a legallyacceptable paper trail. Electronic signatures are increasinglyaccepted as an alternative to written signatures forauthorizing fund transfers.Online BankingThe new frontier <strong>of</strong> electronic banking is the online bank,where customers can access many banking functions viathe Internet, including balance queries, transfers, automaticpayments, <strong>and</strong> loan applications. For the consumer, onlinebanking <strong>of</strong>fers greater convenience <strong>and</strong> access to informationthan even the ATM, albeit without the ability to obtaincash.From the bank’s point <strong>of</strong> view, online banking <strong>of</strong>fers anew way to reach <strong>and</strong> serve customers while relieving thestrain on the ATM hardware <strong>and</strong> network. However, use <strong>of</strong>the Internet increases vulnerability to hackers <strong>and</strong> raisesissues <strong>of</strong> privacy <strong>and</strong> the h<strong>and</strong>ling <strong>of</strong> personal informationsimilar to those found in other e-commerce venues (seecomputer crime <strong>and</strong> security <strong>and</strong> privacy in the digitalage). In 2006 a Pew Center survey found that 43 percent<strong>of</strong> Internet users were banking online—a total <strong>of</strong> about63 million American adults. Other surveys have foundabout a third <strong>of</strong> Internet users now pay bills online. Thereare also a relatively small but growing number <strong>of</strong> Internetonlybanks, many <strong>of</strong> which are affiliated with traditionalbanks. A particularly attractive feature <strong>of</strong> online banking isthe ability to integrate bank services with popular personalfinance s<strong>of</strong>tware such as Quicken.As impressive as it has been, the growth in online bankingmay have been inhibited by a perceived lack <strong>of</strong> security.A 2006 Gartner Research survey reported that nearly half<strong>of</strong> adults surveyed said that concerns over the potential forinformation theft <strong>and</strong> computer attacks had affected theiruse <strong>of</strong> online services such as banking <strong>and</strong> e-commercetransactions. Gartner translates this to an estimated 33 millionU.S. adults who do not bank online because <strong>of</strong> suchconcerns. (Banks are frequently impersonated in deceptiveemails <strong>and</strong> Web sites—see phishing <strong>and</strong> spo<strong>of</strong>ing.)In response, government regulations (FFIEC or FederalFinancial Institutions Examination Council) guidelinesissued in October 2005 required banks by the end <strong>of</strong> 2006to provide detailed risk assessments <strong>and</strong> mitigation plansfor dealing with data breaches. Large banks spent about $15million each on this process in 2006. Much greater expensesare likely as banks find themselves compelled to purchase<strong>and</strong> install more-secure user authentication s<strong>of</strong>tware. Theyface the multiple challenge <strong>of</strong> securing their systems whilereassuring their users <strong>and</strong> not forcing them to go throughcomplicated, hard-to-remember log-in procedures.Credit card issuers are also starting to turn to the Internetto provide additional services. According to the com-Score service 524 million credit card bills were paid onlinein 2006. By 2007 about 70 percent <strong>of</strong> all credit card holdershad logged on to their accounts at least once. Many customershave responded to incentives to discontinue receivingpaper statements.Further ReadingFox, Susannah, <strong>and</strong> Jean Beier. “Online Banking 2006: Surfingto the Bank.” Pew Internet & American Life Project, June14, 2006. Available online. URL: http://www.pewinternet.org/pdfs/PIP_Online_Banking_2006.pdf. Accessed April 23,2007.Macklin, Ben. “Trust Has Value in E-Commerce,” November 30,2006. Available online. URL: http://www.emarketer.com/Article.aspx?1004323. Accessed April 23, 2007.BASICThe BASIC (Beginner’s All-purpose Symbolic InstructionCode) language was developed by J. Kemeny <strong>and</strong> T. Kurtzat Dartmouth College in 1964. At the time, the college wasequipped with a time-shared computer system linked toterminals throughout the campus, an innovation at a timewhen most computers were programmed from a single locationusing batches <strong>of</strong> punch cards. John G. Kemeny <strong>and</strong>Thomas Kurtz wanted to take advantage <strong>of</strong> the interactivity<strong>of</strong> their system by providing an easy-to-learn computer languagethat could compile <strong>and</strong> respond immediately to comm<strong>and</strong>styped at the keyboard. This was in sharp contrast tothe major languages <strong>of</strong> the time, such as COBOL, Algol, <strong>and</strong>FORTRAN in which programs had to be completely writtenbefore they could be tested.Unlike the older languages used with punch cards,BASIC programs did not have to have their keywords typedin specified columns. Rather, statements could be typedlike English sentences, but without punctuation <strong>and</strong> witha casual attitude toward spacing. In general, the syntax for


40 basic input/output systemdecision <strong>and</strong> control structures is simpler than other languages.For example, a for loop counting from 1 to 10 in Clooks like this:for (i = 1; i


Bell, C. Gordon 41has changed. There are now two fewer face cards (12 - 2 = 10)<strong>and</strong> four fewer non-face cards (40 - 4 = 36), so the probabilitythat a given card is a face card becomes 10/36 or 5/18.While this is pretty straightforward, in many situationsone cannot easily calculate the shifting probabilities. WhatBayes discovered was a more general formula:P(T|E) =P(E|T) * P(T)P(E)In this formula T is a theory or hypothesis about afuture event. E represents a new piece <strong>of</strong> evidence thattends to support or oppose the hypothesis. P(T) is an estimate<strong>of</strong> the probability that T is true, before considering theevidence represented by E. The question then becomes: IfE is true, what happens to the estimate <strong>of</strong> the probabilitythat T is true? This is called a conditional probability, representedby the left side <strong>of</strong> the equation, P(T|E), which isread “the probability <strong>of</strong> T, given E.” The right side <strong>of</strong> Bayes’sequation considers the reverse probability—that E will betrue if T turns out to be true. This is represented by P(E|T),multiplied by the prior probability <strong>of</strong> T <strong>and</strong> divided by theindependent probability <strong>of</strong> E.Practical ApplicationsIn the real world one generally has imperfect knowledgeabout the future, <strong>and</strong> probabilities are seldom as clear cutas those available to the card counter at the blackjack table.However, Bayes’s formula makes it possible to continuallyadjust or “tune” estimates based upon the accumulatingevidence. One <strong>of</strong> the most common applications <strong>of</strong> Bayesiananalysis is in e-mail filters (see spam). Bayesian spamfilters work by having the user identify a sample <strong>of</strong> messagesas either spam or not spam. The filter then looks forpatterns in the spam <strong>and</strong> non-spam messages <strong>and</strong> calculatesprobabilities that a future message containing thosepatterns will be spam. The filter then blocks future messagesthat are (above some specified threshold) probablyspam. While it is not perfect <strong>and</strong> does require work on thepart <strong>of</strong> the user, this technique has been quite effective inblocking spam.A Bayesian algorithm’s effectiveness can be expressed interms <strong>of</strong> its rate <strong>of</strong> false positives (in the spam example, thiswould be the percentage <strong>of</strong> messages that have been mistakenlyclassified as spam). If the rate <strong>of</strong> “true positives” istoo low, the algorithm is not effective enough. However, ifthe rate <strong>of</strong> false positives is too high, the negative effects(blocking wanted e-mail) might outweigh the positiveones (blocking unwanted spam).Further ReadingKantor, Andrew. “Bayesian Spam Filters Use Math that WorksLike Magic.” USA Today online, September 17, 2004. Availableonline. URL: http://www.usatoday.com/tech/columnist/<strong>and</strong>rewkantor/2004-09-17-kantor_x.htm. Accessed March15, 2007.Lee, Peter M. Bayesian Statistics: An Introduction. 3rd ed. NewYork: Wiley, 2004.Sivia, D. S. Data Analysis: A Bayesian Tutorial. 2nd ed. New York:Oxford University Press, 2006.“Thomas Bayes, 1702–1761.” St. Andrews University Mac Tutor.Available online. URL: http://www-history.mcs.st-<strong>and</strong>rews.ac.uk/Mathematicians/Bayes.html. Accessed March 15, 2007.BBS See bulletin board system.Bell, C. Gordon(1934– )AmericanEngineer, <strong>Computer</strong> DesignerChester Gordon Bell (also known as Gordon Bennet Bell)was born August 19, 1934, in Kirksville, Missouri. As ayoung boy Bell worked in his father’s electrical contractingbusiness, learning to repair appliances <strong>and</strong> wire circuits.This work led naturally to an interest in electronics, <strong>and</strong>Bell studied electrical engineering at MIT, earning a B.S. in1956 <strong>and</strong> an M.S. in 1957. After graduation <strong>and</strong> a year spentas a Fulbright Scholar in Australia, Bell worked in the MITSpeech Computation Laboratory (see speech recognition<strong>and</strong> synthesis). In 1960 he was invited to join the DigitalEquipment Corporation (DEC) by founders Ken Olsen <strong>and</strong>Harlan Anderson.Bell was a key architect <strong>of</strong> DEC’s revolutionary PDPseries (see minicomputer), particularly as designer <strong>of</strong> theinput/output (I/O) hardware in the PDP-1 <strong>and</strong> the multitaskingPDP-6. Bell left DEC to teach computer science atCarnegie Mellon University (1966–72), but then returned toDEC until his retirement in 1983 following a heart attack.During this time Bell developed a deployment plan for thenew VAX series minicomputers, which were data-processingworkhorses in many organizations during the 1970s<strong>and</strong> 1980s.As a close observer <strong>of</strong> the computer industry, Bell formulated“Bell’s Law <strong>of</strong> <strong>Computer</strong> Classes” in 1972. It basicallystates that as new technologies (such as the microprocessor)emerge, they result about once a decade in the emergence<strong>of</strong> new “classes” or computing platforms, each beinggenerally cheaper <strong>and</strong> being perceived as a distinct productwith new applications. Within a given class, price tends tohold constant while performance increases. Examples thusfar include mainframes, minicomputers, personal computers<strong>and</strong> workstations, networks, cluster or grid computing,<strong>and</strong> today’s ubiquitously connected wireless, portabledevices. Bell has indeed suggested that the trend to ubiquitouscomputing will continue (see ubiquitous computing<strong>and</strong> wearable computers).After retirement Bell soon became active again. Hefounded Encore <strong>Computer</strong>, a company that specialized inmultiprocessor computers, <strong>and</strong> later was a founding member<strong>of</strong> Ardent <strong>Computer</strong> as well as participating in the establishment<strong>of</strong> the Microelectronics <strong>and</strong> <strong>Computer</strong> <strong>Technology</strong>Corporation, a consortium that attempted to be America’sanswer to a surging competitive threat from Japanese companies.Bell was also active in debates over technology policy,playing an instrumental role as an assistant directorin the National <strong>Science</strong> Foundation’s computing initiatives


42 Bell Laboratories<strong>and</strong> the early adoption <strong>of</strong> the Internet. In 1987 Bell establishedthe Gordon Bell Prize for achievements in parallelprocessing.Bell began the 1990s in a new role, helping Micros<strong>of</strong>tdevelop a research group, where he was still working as <strong>of</strong>2008. Here Bell has developed what amounts to a new paradigmfor managing personal data, a project called MyLife-Bits. Its main idea is that pictures, e-mails, documents, <strong>and</strong>other materials that are important to a person’s life <strong>and</strong>work should be organized according to their chronological<strong>and</strong> other relationships so they can be retrieved naturally<strong>and</strong> virtually automatically, eschewing the <strong>of</strong>ten arbitraryconventions <strong>of</strong> traditional file systems <strong>and</strong> interfaces. In1992 Bell presciently told a <strong>Computer</strong> World interviewerthat “twenty-five years from now . . . computers will beexactly like telephones. They are probably going to be communicatingall the time.”Bell also retains a strong interest in the history <strong>of</strong> computing.He c<strong>of</strong>ounded the <strong>Computer</strong> History Museum inBoston in 1979 <strong>and</strong> was also a founder <strong>of</strong> its successor, the<strong>Computer</strong> History Museum in Mountain View, California.Bell is a distinguished member <strong>of</strong> the American Academy<strong>of</strong> Arts <strong>and</strong> <strong>Science</strong>s, American Association for theAdvancement <strong>of</strong> <strong>Science</strong>, the Association for ComputingMachinery (ACM), <strong>and</strong> the Institute <strong>of</strong> Electrical <strong>and</strong> ElectronicEngineering (IEEE). His awards include the IEEEVon Neumann Medal, the AEA Inventor Award, <strong>and</strong> theNational Medal <strong>of</strong> <strong>Technology</strong> (1991).Further ReadingGordon Bell Home Page. Micros<strong>of</strong>t Bay Area Research Center.Available online. URL: http://research.micros<strong>of</strong>t.com/users/gbell/. Accessed April 30, 2007.Slater, Robert. Portraits in Silicon. Boston: MIT Press, 1987.“Vax Man: Gordon Bell.” <strong>Computer</strong>world, June 22, 1992, p. 13.Available online. URL: http://research.micros<strong>of</strong>t.com/~gbell//CGB%20Files/<strong>Computer</strong>world%20Vax%20Ma n%20920622%20c.pdf. Accessed April 30, 2007.Bell LaboratoriesBell Telephone Laboratories was established in 1925 inMurray Hill, New Jersey: It was intended to take over theresearch arm <strong>of</strong> the Western Electric division <strong>of</strong> AmericanTelephone <strong>and</strong> Telegraph (AT&T) <strong>and</strong> was jointly administeredby the two companies. The organization’s principaltask was to design <strong>and</strong> develop telephone switching equipment,but there was also research in facsimile (fax) transmission<strong>and</strong> television.The research that would have the greatest impact,however, would come from a relative h<strong>and</strong>ful <strong>of</strong> Bell scientistswho were given resources to undertake fundamentalresearch. In the 1930s Bell scientist Karl Jansky, investigatinginterference with long-range radio transmissions,discovered that radio waves were arriving from space,leading to the development <strong>of</strong> radio astronomy. Other BellLabs developments <strong>of</strong> the 1930s <strong>and</strong> 1940s included thevocoder, an early electronic speech synthesizer, <strong>and</strong> thephotovoltaic cell, with its potential application to solarpower systems.Several Bell Labs technologies would have a directimpact on the computer field. The transistor, developedby Bell Labs researchers John Bardeen, Walter Brattain,<strong>and</strong> William Shockley, would make a new generation <strong>of</strong>more compact <strong>and</strong> reliable computers possible. Informationtheory (see information theory <strong>and</strong> Shannon,Claude) would revolutionize telecommunications, signalprocessing, <strong>and</strong> data transfer. Work on the laser in the1960s would eventually lead to the compact disc (see cdrom<strong>and</strong> dvd-rom). Other hardware contributions includethe charge-coupled device (CCD) that would revolutionizeastronomical <strong>and</strong> digital photography <strong>and</strong> fiber-optic cablesfor high-volume data communications.In s<strong>of</strong>tware engineering the most important achievements<strong>of</strong> Bell researchers were the development <strong>of</strong> the Cprogramming language <strong>and</strong> the UNIX operating system inthe early 1970s (see c; Ritchie, Dennis; <strong>and</strong> unix). Theelegant design <strong>of</strong> the modular UNIX system is still admiredtoday, <strong>and</strong> versions <strong>of</strong> UNIX <strong>and</strong> Linux power many servers<strong>and</strong> networks.New Corporate DirectionPerhaps ironically, AT&T’s near monopolistic position inthe telecommunications industry both provided substantialrevenue for fundamental research <strong>and</strong> shielded the labfrom competitive pressure <strong>and</strong> the need to tie research tothe development <strong>of</strong> commercial products. As a result, BellLabs arguably became the most important private researchinstitution in the 20th century. By the end <strong>of</strong> the 1980s,however, court decisions had reshaped the l<strong>and</strong>scape <strong>of</strong> thecommunications field, <strong>and</strong> Bell Labs became a victim <strong>of</strong> thecompany’s change from monopolist to competitor.In 1996 AT&T divested Bell Labs along with its mainequipment manufacturing facilities into a new company,Lucent Technologies. A smaller group <strong>of</strong> researchers wereretained <strong>and</strong> reorganized as AT&T Laboratories. As the 2000sbegan these researchers made new achievements, includingtiny transistors whose size is measured in atoms, opticaldata routing (see optical computing) <strong>and</strong> nanotechnology,DNA-based computing (see molecular computing), <strong>and</strong>other esoteric but potentially momentous fields.In recent years, however, the organization has largelychanged its focus from long-term research in fundamentaltopics to the search for projects that can be quickly turnedinto commercial products—in essence the requirement thatthe Labs become a pr<strong>of</strong>it center. The merger <strong>of</strong> Lucent <strong>and</strong>another communications giant, Alcatel, in 2006 has led torenewed concerns that consolidation <strong>and</strong> even tighter integration<strong>of</strong> the Labs with corporate goals might come at theexpense <strong>of</strong> the kind <strong>of</strong> research culture that has inspiredthe Labs’ greatest breakthroughs.Further ReadingAlcatel-Lucent Bell Laboratories. Available online. URL: http://www.alcatel-lucent.com. Accessed May 2, 2007.Bell Labs Technical Journal. Available online. URL: http://www3.interscience.wiley.com. Accessed May 2, 2007.Gehani, Narain. Bell Labs: Life in the Crown Jewel. Summit, N.J.:Silicon Press, 2003.


Berners-Lee, Tim 43benchmarkA benchmark is a tool used to evaluate or compare theperformance <strong>of</strong> computer s<strong>of</strong>tware or systems. Typically,this involves the design <strong>of</strong> a program (or suite <strong>of</strong> programs)that performs a series <strong>of</strong> operations that mimic “real world”activities. For example, computer processors (CPUs) can begiven calculations in floating-point arithmetic, yielding aresult in “flops” (floating point operations per second). Similarly,several different C-language compilers can be giventhe same files <strong>of</strong> source code <strong>and</strong> rated according to howquickly they produce the executable code, as well as thecode’s compactness, speed, or efficiency.Some examples <strong>of</strong> computer industry benchmarksinclude:• Dhrystone <strong>and</strong> Whetstone for integer <strong>and</strong> floatingpoint arithmetic, respectively• mIPS (millions <strong>of</strong> instructions per second) <strong>and</strong>MFLOPS (millions <strong>of</strong> floating point instructions persecond) for microprocessors• FPS (frames per second) for various types <strong>of</strong> graphics• 3DMark for three-dimensional graphics• test suites using Linpack <strong>and</strong> LAPACK for supercomputersThe devising <strong>of</strong> appropriate benchmarks is importantbecause they can help prospective purchasers decidewhich competing CPU, program development tool, databasesystem, or Web server to buy. Often the aspects<strong>of</strong> systems that are highlighted in advertising are notthose that are most relevant to determining their actualutility. For example, CPUs are <strong>of</strong>ten compared accordingto clock speed, but a chip with a superior architecture<strong>and</strong> algorithm for h<strong>and</strong>ling instructions might actuallyoutperform chips with faster clock speeds. By puttingchips through their paces using the same arithmetic, datatransfer, or graphics instructions, the benchmark providesa more valid comparison.The most relevant benchmarks tend to focus on re-creatingreal-world use. Thus database systems can be comparedin their speed <strong>of</strong> retrieval or update <strong>of</strong> data records.Real-world benchmarks also help guard against manufacturers“tweaking” their systems to create artificially highbenchmark results. Nevertheless, benchmarks cannot beused mechanically. While a given industry may have an“industry st<strong>and</strong>ard” benchmark, <strong>and</strong> a given product maybe the highest performer using that test, the user must considerhow well that benchmark reflects the actual work forwhich the system or program is being purchased. Performance,however well benchmarked, is usually only one keyconsideration, with environment (such as network connections),reliability, security, ease <strong>of</strong> use, <strong>and</strong> <strong>of</strong> course costbeing other considerations.Further Readingcomp.benchmarks (USENET newsgroup).Jones, Capers. S<strong>of</strong>tware Assessments, Benchmarks, <strong>and</strong> Best Practices.Boston: Addison-Wesley, 2000.Netlib [repository for mathematical benchmarking s<strong>of</strong>tware].Available online. URL: http://www.netlib.org/. Accessed May10, 2007.Berners-Lee, Tim(1955– )British<strong>Computer</strong> ScientistA graduate <strong>of</strong> Oxford University, Tim Berners-Lee createdwhat would become the World Wide Web in 1989 whileworking at CERN, the giant European physics researchinstitute. At CERN, he struggled with organizing the dozens<strong>of</strong> incompatible computer systems <strong>and</strong> s<strong>of</strong>tware thathad been brought to the labs by thous<strong>and</strong>s <strong>of</strong> scientistsfrom around the world. With existing systems each requiringa specialized access procedure, researchers had littlehope <strong>of</strong> finding out what their colleagues were doing or <strong>of</strong>learning about existing s<strong>of</strong>tware tools that might solve theirproblems.Berners-Lee’s solution was to bypass traditional databasesystems <strong>and</strong> to consider text on all systems as “pages”that would each have a unique address, a universal documentidentifier (later known as a uniform resource locator,or URL). He <strong>and</strong> his assistants used existing ideas <strong>of</strong> hypertextto link words <strong>and</strong> phrases on one page to another page(see hypertext <strong>and</strong> hypermedia), <strong>and</strong> adapted existinghypertext editing s<strong>of</strong>tware for the NeXT computer to createthe first World Wide Web pages, a server to provide accessto the pages <strong>and</strong> a simple browser, a program that could beused to read pages <strong>and</strong> follow the links as the reader desired(see Web server <strong>and</strong> Web browser). But while existinghypertext systems were confined to browsing a single fileor at most, the contents <strong>of</strong> a single computer system, Berners-Lee’sWorld Wide Web used the emerging Internet toprovide nearly universal access.Between 1990 <strong>and</strong> 1993, word <strong>of</strong> the Web spreadthroughout the academic community as Web s<strong>of</strong>tware waswritten for more computer platforms (see World WideWeb). As dem<strong>and</strong> grew for a body to st<strong>and</strong>ardize <strong>and</strong> shapethe evolution <strong>of</strong> the Web, Berners-Lee founded the WorldWide Web Consortium (W3C) in 1994 <strong>and</strong> continues asits director. Together with his colleagues, he has struggledto maintain a coherent vision <strong>of</strong> the Web in the face <strong>of</strong> tremendousgrowth <strong>and</strong> commercialization, the involvement<strong>of</strong> huge corporations with conflicting agendas, <strong>and</strong> contentiousissues <strong>of</strong> censorship <strong>and</strong> privacy. His general approachhas been to develop tools that would empower the user tomake the ultimate decision about the information he or shewould see or divulge.Berners-Lee now works as a senior researcher at theMassachusetts Institute <strong>of</strong> <strong>Technology</strong> <strong>Computer</strong> <strong>Science</strong><strong>and</strong> Artificial Intelligence Laboratory. In his original visionfor the Web, users would create Web pages as easily as theycould read them, using s<strong>of</strong>tware no more complicated thana word processor. While there are programs today that hidethe details <strong>of</strong> HTML coding <strong>and</strong> allow easier Web page creation,Berners-Lee feels the Web must become even easier to


44 Bezos, Jeffrey P.use if it is to be a truly interactive, open-ended knowledgesystem. He is also interested in developing s<strong>of</strong>tware thatcan take better advantage <strong>of</strong> the rich variety <strong>of</strong> informationon the Web, creating a “semantic” Web <strong>of</strong> meaningful connectionsthat would allow for logical analysis <strong>and</strong> permithuman beings <strong>and</strong> machines not merely to connect, but toactively collaborate (see semantic Web <strong>and</strong> xml).In the debate over a possible tiered Internet service (seeInternet access policy) Berners-Lee has spoken out for“net neutrality,” the idea that priority given to materialpassing over the Internet should not depend on its contentor origin. He describes equal treatment to be a fundamentaldemocratic principle, given the primacy <strong>of</strong> the Net today.Berners-Lee has garnered numerous awards <strong>and</strong> honorarydegrees. In 1997 he was made an Officer <strong>of</strong> the BritishEmpire, <strong>and</strong> in 2001 he became a Fellow <strong>of</strong> the British RoyalSociety. Berners-Lee also received the Japan Prize in 2002<strong>and</strong> in that same year shared the Asturias Award with fellowInternet pioneers Lawrence Roberts, Robert Kahn, <strong>and</strong>Vinton Cerf. In 2007 Berners-Lee received the Charles StarkDraper Prize <strong>of</strong> the U.S. National Academy <strong>of</strong> Engineering.Further ReadingBerners-Lee, Tim. Home page with biography <strong>and</strong> links: Availableonline. URL: http://www.w3.org/People/Berners-Lee/.Accessed April 20, 2007.———. Papers on Web design issues. Available online. URL:http://www.w3.org/DesignIssues/.———. “Proposal for the World Wide Web, 1989.” Availableonline. URL: http://www.w3.org/History/1989/proposal.html.Berners-Lee, Tim, <strong>and</strong> Mark Fischetti. Weaving the Web. San Francisco:HarperSanFrancisco, 1999.Henderson, Harry. Pioneers <strong>of</strong> the Internet. San Diego, Calif.:Lucent Books, 2002.Mark<strong>of</strong>f, John. “ ‘Neutrality’ Is New Challenge for Internet Pioneer.”New York Times, September 27, 2006. Available online. URL:http://www.nytimes.com/2006/09/27/technology/circuits/27neut.html. Accessed April 25, 2007.Bezos, Jeffrey P.(1964– )AmericanEntrepreneurWith its ability to display extensive information <strong>and</strong> interactwith users, the World Wide Web <strong>of</strong> the mid-1990s clearlyhad commercial possibilities. But it was far from clear howtraditional merch<strong>and</strong>ising could be adapted to the onlineworld, <strong>and</strong> how the strengths <strong>of</strong> the new medium could betranslated into business advantages. In creating Amazon.com, “the world’s largest bookstore,” Jeff Bezos would showhow the Web could be used to deliver books <strong>and</strong> other merch<strong>and</strong>iseto millions <strong>of</strong> consumers.Jeff Bezos was born on January 12, 1964, <strong>and</strong> grew upin Miami, Florida. He would be remembered as an intense,strong-willed boy who was fascinated by gadgets but alsoliked to play football <strong>and</strong> other sports. His uncle, PrestonGise, a manager for the Atomic Energy Commission,encouraged young Bezos’s interest in technology by givinghim electronic equipment to dismantle <strong>and</strong> explore. BezosJeff Bezos, founder <strong>and</strong> CEO <strong>of</strong> Amazon.com, poses for a portraitin the Internet retailer’s distribution center. (© Jack Kurtz/TheImage Works)also liked science fiction <strong>and</strong> became an enthusiastic advocatefor space colonization.Bezos entered Princeton University in 1982. At first hemajored in physics, but later switched to electrical engineering,graduating in 1986 with highest honors. By thenBezos had become interested in business s<strong>of</strong>tware applications,particularly financial networks. At the age <strong>of</strong> only23, he led a project at Fitel, a financial communicationsnetwork, managing 12 programmers <strong>and</strong> commuting eachweek between the company’s New York <strong>and</strong> London <strong>of</strong>fices.As a vice president at Bankers Trust, a major Wall Streetfirm in the late 1980s, Bezos became very enthusiastic aboutthe use <strong>of</strong> computer networking <strong>and</strong> interactive s<strong>of</strong>tware forproviding timely information for managers <strong>and</strong> investors.However, he found that the “old line” Wall Street firmsresisted his efforts <strong>and</strong> declined to invest in these new uses<strong>of</strong> information technology.In 1990, however, Bezos was working at the D.E. ShawCompany <strong>and</strong> his employer asked him to research the commercialpotential <strong>of</strong> the Internet, which was starting to grow(even though the World Wide Web would not reach mostconsumers for another five years). Bezos ranked the top 20possible products for Internet sales. They included computers<strong>of</strong>tware, <strong>of</strong>fice supplies, clothing, music—<strong>and</strong> books.Analyzing the publishing industry, Bezos identifiedways in which he believed it was inefficient. Even largebookstores could stock only a small portion <strong>of</strong> the availabletitles, while on the other h<strong>and</strong> many books that werein stock stayed on the shelves for months, tying up money<strong>and</strong> space. Bezos believed that by combining a single hugewarehouse with an extensive tracking database, an onlineordering system, <strong>and</strong> fast shipping, he could satisfy manymore customers while keeping costs low.Bezos pitched his idea to D.E. Shaw. When the companydeclined to invest in the venture, Bezos decided to put hispromising corporate career on hold <strong>and</strong> start his own onlinebusiness. By then it was the mid-1990s <strong>and</strong> the World WideWeb was just starting to become popular, thanks to the newgraphical Web browsers such as Netscape.


inding 45Looking for a place to set up shop, Bezos decided on Seattle,partly because the state <strong>of</strong> Washington had a relativelysmall population (the only customers who would have topay sales tax) yet had a growing pool <strong>of</strong> technically trainedworkers, thanks to the growth <strong>of</strong> Micros<strong>of</strong>t <strong>and</strong> other companiesin the area. After several false starts he decided tocall his store Amazon, deciding that the name <strong>of</strong> the Earth’sbiggest river would be suited to earth’s biggest bookstore.Amazon’s first headquarters was a converted garage.Bezos soon decided that the existing s<strong>of</strong>tware for mailorderbusinesses was too limited <strong>and</strong> set a gifted programmernamed Shel Kaphan to work creating a custom programthat could keep track not only <strong>of</strong> each book in stock, buthow long it would take to get more copies from the publisheror book distributor.By mid-1995 Amazon.com was ready go online from anew Seattle <strong>of</strong>fice using $145,553 contributed by Bezos’smother from the family trust. As word about the storespread through Internet chat rooms <strong>and</strong> a listing on Yahoo!,the orders began to pour in <strong>and</strong> Bezos had to struggle tokeep up. Despite the flood <strong>of</strong> orders, the business was losingmoney as expenses piled up even more quickly.Bezos went to Silicon Valley in search <strong>of</strong> venture capital.Bezos’s previous experience as a Wall Street “star,” togetherwith his self-confidence, enabled him to raise $1 million.Bezos believed that momentum was the key to long-termsuccess. The company’s motto became “get big fast.” Revenuewas poured back into the business, exp<strong>and</strong>ing salesinto other product lines such as music, video, electronics,<strong>and</strong> s<strong>of</strong>tware. The other key element <strong>of</strong> Bezos’s growth strategywas to take advantage <strong>of</strong> the vast database that Amazonwas accumulating—not only information about books <strong>and</strong>other products, but about what products a given individualor type <strong>of</strong> customer was buying. Once a customer hasbought something from Amazon, he or she is greeted byname <strong>and</strong> given recommendations for additional purchasesbased upon what items other customers who had boughtthat item had also purchased. Customers are encouragedto write reviews <strong>of</strong> books <strong>and</strong> other items so that each customergets the sense <strong>of</strong> being part <strong>of</strong> a virtual peer group.By 1997, the year <strong>of</strong> its first public stock <strong>of</strong>fering, Amazonseemed to be growing at an impressive rate. A yearlater the stock was worth almost $100 a share, <strong>and</strong> by 1999Jeff Bezos’s personal wealth neared $7.5 billion. Bezos <strong>and</strong>Amazon proved to be one <strong>of</strong> the few Internet businessesto weather the “dot-bust” collapse <strong>of</strong> 2000 <strong>and</strong> 2001. In2003 Amazon.com chalked up its first annual pr<strong>of</strong>it, <strong>and</strong>the company’s stock prices tripled during that time.Bezos gained a reputation as a very dem<strong>and</strong>ing CEO,insisting on recruiting top talent, then dem<strong>and</strong>ing that projectsset bold goals <strong>and</strong> complete them ahead <strong>of</strong> schedule.The pressure resulted in high turnover <strong>of</strong> top executives,but Bezos has also been quick to encourage <strong>and</strong> rewardinitiative. (The company’s “Just Do It” program encouragesmanagers to start projects without asking permission <strong>of</strong>their superiors.)Aside from Amazon.com, Bezos has maintained hisinterest in space travel. In 2002 he founded a companycalled Blue Origin, whose spaceship project has remainedshrouded in secrecy. However, in January 2007 the companyreleased video <strong>of</strong> the first successful (albeit brief) test<strong>of</strong> a prototype suborbital passenger craft.Bezos has written a new chapter in the history <strong>of</strong> retailing,making him a 21st-century counterpart to such pioneersas Woolworth <strong>and</strong> Montgomery Ward. Time magazineacknowledged this by making him its 1999 Person <strong>of</strong> theYear, while Internet Magazine put Bezos on its list <strong>of</strong> the 10persons who have most influenced the development <strong>of</strong> theInternet.Further ReadingBlue Origin website. Available online. URL: http://public.blueorigin.com/index.html.Accessed April 10, 2007.Byers, Ann. Jeff Bezos: The Founder <strong>of</strong> Amazon.com. New York:Rosen Publishing Group, 2006.Marcus, James. Amazonia: Five Years at the Epicenter <strong>of</strong> the Dot.Com Juggernaut. New York: New Press, 2004.Spector, Robert. Amazon.com: Get Big Fast: Inside the RevolutionaryBusiness Model that Changed the World. New York: HarperBusiness, 2000.bindingDesigners <strong>of</strong> program compilers are faced with the question<strong>of</strong> when to translate a statement written in the source languageinto final instructions in machine language (see alsoassembler). This can happen at different times dependingon the nature <strong>of</strong> the statement <strong>and</strong> the decision <strong>of</strong> the compilerdesigner.Many programming languages use formal data types(such as integer, floating point, double, string, <strong>and</strong> so on)that result in allocation <strong>of</strong> an exact amount <strong>of</strong> storage spaceto hold the data (see data types). A statement that declaresa variable with such a type can be effectively bound immediately(that is, a final machine code statement can be generated).This is also called compile-time binding.However, there are a variety <strong>of</strong> statements for whichbinding must be deferred until more information becomesavailable. For example, it is common for programmers to uselibraries <strong>of</strong> precompiled routines. A statement that calls sucha routine cannot be turned immediately into machine languagebecause the compiler doesn’t know the actual addresswhere the routine will be embedded in the final compiledprogram. (That address will be determined by a programcalled a linker that links the object code from the sourceprogram to the library routines called upon by that code.)Another aspect <strong>of</strong> binding arises when there is morethan one object in a program with the same name. In languagessuch as C or Pascal that use a nested block structure,lexical binding can determine that a name refers to theclosest declaration <strong>of</strong> that name—that is, the smallest scopethat contains that name (see variable). In a few languagessuch as Lisp, however, the reference for a name depends onhow (or for what) the function is being called, so bindingcan be done only at run time.Binding <strong>and</strong> Object-Oriented LanguagesThe use <strong>of</strong> polymorphism in object-oriented languages suchas C++ raises a similar issue. Here there can be a base class


46 bioinformatics<strong>and</strong> a hierarchy <strong>of</strong> derived classes. A function in the baseclass can be declared to be virtual, <strong>and</strong> versions <strong>of</strong> the samefunction can be declared in the derived classes. In this casea statement containing a pointer to the function in the baseclass cannot be bound until run time, because only thenwill it be known which version <strong>of</strong> the virtual function isbeing called. However, compilers for object-oriented languagescan be written so they do early binding on statementsfor which it is safe (such as those involving staticdata types), but do dynamic binding when necessary.From the point <strong>of</strong> view <strong>of</strong> efficiency, early binding is betterbecause memory can be allocated efficiently. Dynamicbinding provides greater flexibility, however, <strong>and</strong> facilitatesdebugging—for example, because the name <strong>of</strong> a variableis normally lost once it is bound <strong>and</strong> the machine code isgenerated.Further ReadingAho, Alfred V., et al. Compilers: Principles, Techniques, <strong>and</strong> Tools.2nd ed. Reading, Mass.: Addison-Wesley, 2006.Scott, Michael L. Programming Language Pragmatics. 2nd ed. SanFrancisco: Morgan Kaufmann, 2005.bioinformaticsBroadly speaking, bioinformatics (<strong>and</strong> the related field <strong>of</strong>computational biology) is the application <strong>of</strong> mathematical<strong>and</strong> information-science techniques to biology. This undertakingis inherently difficult because a living organism representssuch a complex interaction <strong>of</strong> chemical processes.Underst<strong>and</strong>ing any one process in isolation gives littleunderst<strong>and</strong>ing <strong>of</strong> the role it plays in physiology. Similarly,as more has been learned about the genome <strong>of</strong> humans<strong>and</strong> other organisms, it has become increasingly clear thatthe “programs” represented by gene sequences are “interpreted”through complex interactions <strong>of</strong> genes <strong>and</strong> the environment.Given this complexity, the great strides that havebeen made in genetics <strong>and</strong> the detailed study <strong>of</strong> metabolic<strong>and</strong> other biological processes would have been impossiblewithout advances in computing <strong>and</strong> computer science.Application to GeneticsSince information in the form <strong>of</strong> DNA sequences is the heart<strong>of</strong> genetics, information science plays a key role in underst<strong>and</strong>ingits significance <strong>and</strong> expression. The sequences <strong>of</strong>genes that determine the makeup <strong>and</strong> behavior <strong>of</strong> organismscan be represented <strong>and</strong> manipulated as strings <strong>of</strong> symbolsusing, for example, indexing <strong>and</strong> search algorithms.It is thus natural that the advent <strong>of</strong> powerful computerworkstations <strong>and</strong> automated lab equipment would lead tothe automation <strong>of</strong> gene sequencing (determining the order<strong>of</strong> nucleotides), comparing or determining the relationshipbetween corresponding sequences, <strong>and</strong> identifying<strong>and</strong> annotating regions <strong>of</strong> interest. The completion <strong>of</strong> thesequencing <strong>of</strong> the human genome well ahead <strong>of</strong> schedulewas thus a triumph <strong>of</strong> computer science as much as biology.Today the systematic search for genetic <strong>and</strong> metabolic interactionshas been greatly sped up by the use <strong>of</strong> microarrays,silicon chips with grids <strong>of</strong> tiny holes that each contain aA scientist observes an experiment performed by roboticequipment. (Andrei Tchernov/iStockphoto)specified material that can be automatically tested for reactionto a given sample.Evolutionary BiologyThe ability to compare genes <strong>and</strong> to account for the effects<strong>of</strong> mutation has also established evolutionary biology on afirm foundation. Given a good estimate <strong>of</strong> the mutation rate(a “molecular clock”) in mitochondrial DNA, the chronology<strong>of</strong> species <strong>and</strong> common ancestors can be determinedwith considerable accuracy using statistical methods <strong>and</strong>appropriate data structures (see tree). The results <strong>of</strong> suchresearch have cast intriguing if sometimes controversiallight on such issues in paleontology as the relationshipbetween early modern humans <strong>and</strong> Ne<strong>and</strong>erthals. Computationalgenetics can also measure the biodiversity <strong>of</strong> apresent-day ecosystem <strong>and</strong> predict the likely future <strong>of</strong> particularspecies in it.From Genes to ProteinsGene sequences are only half <strong>of</strong> many problems in biology.Computational techniques are also being increasinglyapplied to the analysis <strong>and</strong> simulation <strong>of</strong> the many intricate


iometrics 47chemical steps that link genetic information to expressionin the form <strong>of</strong> a particular protein <strong>and</strong> its three-dimensionalstructure in the process known as protein folding. Alreadymolecular simulations <strong>and</strong> predictive techniques are beingused to determine which <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> possible molecularconfigurations might have promising pharmaceuticalapplications. The development <strong>of</strong> better algorithms <strong>and</strong>more powerful computing architectures for such analysiscan further speed up research, avoid wasteful “dead ends,”<strong>and</strong> bring effective treatments for cancer <strong>and</strong> other seriousdiseases to market sooner. Recently, the unlikely platform<strong>of</strong> a Sony PlayStation 3 <strong>and</strong> its powerful new processor hasbeen harnessed to turn gamers’ idle time to the processing<strong>of</strong> protein-folding data in the Folding@Home project.SimulationA variety <strong>of</strong> other types <strong>of</strong> biological computer simulationhave been employed. Examples include the chemicalcomponents (metabolites <strong>and</strong> enzymes) that are responsiblefor metabolic activity in organisms, the structure <strong>of</strong>the nervous system <strong>and</strong> the brain (see neural network),<strong>and</strong> the interaction <strong>of</strong> multiple predators <strong>and</strong> food sourcesin an ecosystem. Simulations can also incorporate algorithmsfirst devised by artificial intelligence researchers(see genetic algorithms <strong>and</strong> artificial life). Simulationsare combined with sophisticated graphics to enableresearchers to visualize structure. Such visualization canprovide insight <strong>and</strong> encourage intuitive “leaps” that mightbe missed when working only with formulas. Visualizationalgorithms developed for biomedical research can alsobe applied to the development <strong>of</strong> advanced MRI <strong>and</strong> otherscans for use in diagnosis <strong>and</strong> therapy.A Fruitful RelationshipBioinformatics has been one <strong>of</strong> the “hottest” areas in computingin recent years, <strong>of</strong>ten following trends in the broader“biotech” sector. This challenging field involves such diversesubjects as genetics, biochemistry, physiology, mathematics(structural <strong>and</strong> statistical), database analysis <strong>and</strong> searchtechniques (see data mining), simulation, modeling, graphics,<strong>and</strong> image analysis. Major projects <strong>of</strong>ten involve closecooperation between bioinformatics specialists <strong>and</strong> otherresearchers. Many computer scientists may find it pr<strong>of</strong>itableto study biology just as biologists will need to learn about<strong>and</strong> master the latest s<strong>of</strong>tware tools. Researchers must alsoconsider how the availability <strong>of</strong> ever-increasing computingpower might make previously impossible projects feasible(see supercomputer <strong>and</strong> grid computing). (The NationalInstitutes <strong>of</strong> Health (NIH) currently funds seven biomedicalcomputation centers, including the National Center forPhysics-based Simulation <strong>of</strong> Biological Structures at StanfordUniversity. )The relationship between biology <strong>and</strong> computer scienceseems destined to be even more fruitful in coming years. Ass<strong>of</strong>tware tools allow researchers to probe ever more deeplyinto biological processes <strong>and</strong> to bridge the gap betweenphysics, biochemistry, <strong>and</strong> the emergent behavior <strong>of</strong> livingorganisms, underst<strong>and</strong>ing <strong>of</strong> those processes may in turninspire the creation <strong>of</strong> new architectures <strong>and</strong> algorithms inareas such as artificial intelligence <strong>and</strong> robotics.Further ReadingBader, David A. “Computational Biology <strong>and</strong> High-PerformanceComputing.” Communications <strong>of</strong> the ACM 47, 11 (2004): 34–41.Brent, Roger, <strong>and</strong> Jehoshua Bruck. “Can <strong>Computer</strong>s Help toExplain Biology?” Nature 440 (March 23, 2006): 416.Campbell, A. Malcolm, <strong>and</strong> Laurie J. Heyer. Discovering Genomics,Proteomics, <strong>and</strong> Bioinformatics. 2nd ed. San Francisco: BenjaminCummings, 2006.Claverie, Jean-Michel, <strong>and</strong> Cedric Notredame. Bioinformatics forDummies. 2nd ed. Indianapolis: Wiley, 2006.Cohen, Jacques. “<strong>Computer</strong> <strong>Science</strong> <strong>and</strong> Bioinformatics.” Communications<strong>of</strong> the ACM 48 (2005): 72–78.“Just the Facts: A Basic Introduction to the <strong>Science</strong> UnderlyingNCBI Resources: Bioinformatics.” National Center for BiotechnologyInformation. Available online. URL: http://www.ncbi.nlm.nih.gov/About/primer/bioinformatics.html. AccessedApril 24, 2007.<strong>Computer</strong>s can create detailed representations that give scientistsunprecedented ability to visualize nature’s most intricate structures.This is a computer model <strong>of</strong> trypanathione Reductase, a proteincrystal. (NASA photo; Marshall Space Flight CenterImage Exchange)biometricsThe earliest use <strong>of</strong> biometrics was probably the developmentby Alphonse Bertillon in 1882 <strong>of</strong> anthropometry, a system<strong>of</strong> classification by physical measurements <strong>and</strong> description.While this was soon supplanted by the discovery that fingerprintscould serve as an easier to use means <strong>of</strong> uniqueidentification <strong>of</strong> persons, the need for a less invasive means<strong>of</strong> physical identification has led to the development <strong>of</strong> a


48 biometricsvariety <strong>of</strong> biometric scanners that take Bertillon’s ideas to amuch more detailed level.TechnologiesIn general, biometric scanning involves four steps: thecapture <strong>of</strong> an image using a camera or other device, theextraction <strong>of</strong> key features from the image, the creation <strong>of</strong>a template that uniquely characterizes the person beingscanned, <strong>and</strong> the matching <strong>of</strong> the template to stored templatesin order to identify the person.There are several possible targets for biometric scanning,including the following areas:Facial ScanningFacial scanning uses cameras <strong>and</strong> image analysis s<strong>of</strong>twarethat looks at areas <strong>of</strong> the human face that change littleduring the course <strong>of</strong> life <strong>and</strong> are not easily alterable, suchas the upper outline <strong>of</strong> the eye sockets <strong>and</strong> the shape <strong>of</strong>the cheekbones. Researchers at MIT developed a series <strong>of</strong>about 125 grayscale images called eigenfaces from whichfeatures can be combined to characterize any given face.The template resulting from a scan can be compared withthe one on file for the claimed identity, <strong>and</strong> coefficientsexpressing the degree <strong>of</strong> similarity are calculated. Varianceabove a specified level results in the person being rejected.Facial scanning is <strong>of</strong>ten viewed as less intrusive than theuse <strong>of</strong> fingerprints, <strong>and</strong> it can also be applied to surveillanceimages.However, iris scanning involves the front <strong>of</strong> the eye <strong>and</strong> ismuch less intrusive, <strong>and</strong> the person being scanned needsonly to look into a camera.Voice ScanningVoice scanning <strong>and</strong> verification systems create a “voiceprint”from a speech sample <strong>and</strong> compare it to the voice<strong>of</strong> the person being verified. It is a quick <strong>and</strong> nonintrusivetechnique that is particularly useful for remote transactionssuch as telephone access to banking information.Behavioral BiometricsBiometrics are essentially invariant patterns, <strong>and</strong> these canbe found in behavior as well as in physical features. One <strong>of</strong>the most promising techniques (recently patented) analyzesthe pace or rhythm <strong>of</strong> a person’s typing on a keyboard <strong>and</strong>generates a unique numeric code. A similar approach mightbe applicable to mouse usage.Applications <strong>of</strong> BiometricsDue to the expense <strong>of</strong> the equipment <strong>and</strong> the time involvedin scanning, biometrics were originally used primarily inverifying identity for people entering high-security installations.However, the development <strong>of</strong> faster <strong>and</strong> less intrusivetechniques, combined with the growing need to verify users<strong>of</strong> banking (ATM) <strong>and</strong> other networks has led to a growingFinger ScanningFinger scanning involves the imaging <strong>and</strong> automatic analysis<strong>of</strong> the pattern <strong>of</strong> ridges on one or more fingertips. Unliketraditional fingerprinting, the actual fingerprint is notsaved, but only enough key features are retained to providea unique identification. This information can be stored in adatabase <strong>and</strong> also compared with full fingerprints stored inexisting databases (such as that maintained by the FederalBureau <strong>of</strong> Investigation). Finger scanning can meet withresistance because <strong>of</strong> its similarity to fingerprinting <strong>and</strong> theassociation <strong>of</strong> the latter with criminality.H<strong>and</strong> GeometryThis technique measures several characteristics <strong>of</strong> theh<strong>and</strong>, including the height <strong>of</strong> <strong>and</strong> distance between thefingers <strong>and</strong> the shape <strong>of</strong> the knuckles. The person beingscanned places the h<strong>and</strong> on the scanner’s surface, aligningthe fingers to five pegs. H<strong>and</strong>-scanning is reasonably accuratein verifying an individual compared to the templateon file, but not accurate enough to identify a scan from anunknown person.Iris <strong>and</strong> Retina ScanningThese techniques take advantage <strong>of</strong> many unique individualcharacteristics <strong>of</strong> these parts <strong>of</strong> the eye. The scannedcharacteristics are turned into a numeric code similar to abar code. Retina scanning can be uncomfortable because itinvolves shining a bright light into the back <strong>of</strong> the eye, <strong>and</strong>has generally been used only in high-security installations.A portable iris recognition scanner being demonstrated at the Biometrics2004 exhibition <strong>and</strong> conference in London. (Ian Waldie/Getty Images)


BIOS 49interest in biometrics. For example, a pilot program in theUnited Kingdom has used iris scanning to replace the PIN(personal identification number) as a means <strong>of</strong> verifyingATM users.The general advantage <strong>of</strong> biometrics is that it does notrely on cards or other artifacts that can be stolen or otherwisetransferred from one person to another, <strong>and</strong> in turn,a person needing to identify him or herself doesn’t haveto worry about forgetting or losing a card. However, whileworkers at high-security installations can simply be requiredto submit to biometric scans, citizens <strong>and</strong> consumers havemore choice about whether to accept techniques they mayview as uncomfortable, intrusive, or threatening to privacy.Recent heightened concern about the stealing <strong>of</strong> personalidentification <strong>and</strong> financial information (see identitytheft) may promote greater acceptance <strong>of</strong> biometric techniques.For example, a built-in fingerprint reader (alreadyprovided on some laptop computers) could be used tosecure access to the hard drive or transmitted to authenticatean online banking customer.Of course every security measure has the potential forcircumvention or misuse. Concerns about the stealing <strong>and</strong>criminal use <strong>of</strong> biometric data (particularly online) mightbe addressed by a system created by Emin Martinian <strong>of</strong> theMitsubishi Electric Research Laboratories in Cambridge,Massachusetts. The algorithm creates a unique code basedon a person’s fingerprint data. The data itself is not stored,<strong>and</strong> the code cannot be used to re-create it, but only tomatch against the actual finger.The growing use <strong>of</strong> biometrics by government agencies(such as in passports <strong>and</strong> border crossings) is <strong>of</strong> concernto privacy advocates <strong>and</strong> civil libertarians. When combinedwith surveillance cameras <strong>and</strong> central databases, biometrics(such as face analysis <strong>and</strong> recognition) could aidpolice in catching criminals or terrorists, but could alsobe used to strip the anonymity from political protesters.The technology is thus double-edged, with the potentialboth to enhance the security <strong>of</strong> personal information <strong>and</strong> toincrease the effectiveness <strong>of</strong> surveillance.Further ReadingAshborn, Julian D. M. Biometrics: Advanced Identity Verification,the Complete Guide. New York: Springer-Verlag, 2000.“Biometrics Overview.” Available online. URL: http://www.biometricgroup.com/a_bio1/_technology/research_a_technology.htm.Accessed April 20, 2007.Biometrics Research Homepage at Michigan State University. Availableonline. URL: http://biometrics.cse.msu.edu/. AccessedApril 24, 2007.“Biometrics: Who’s Watching You?” Electronic Frontier Foundation.Available online. URL: http://www.eff.org/Privacy/Surveillance/biometrics/.Accessed April 24, 2007.Harreld, Heather. “Biometrics Points to Greater Security.” Federal<strong>Computer</strong> Week, July 22, 1999. Available online. URL:http://www.cnn.com/TECH/computing/9907/22/biometrics.idg/index.html.Jain, Anil, Ruud Bolle, <strong>and</strong> Sharath Pankanti. Biometrics: PersonalIdentification in Networked Society. Norwell, Mass.: KluwerAcademic Publishers, 1999.Woodward, John D., Nicholas M. Orlans, <strong>and</strong> Peter T. Higgins.Biometrics: Identity Assurance in the Information Age. NewYork: McGraw-Hill, 2002.BIOS (Basic Input-Output System)With any computer system a fundamental design problemis how to provide for the basic communication between theprocessor (see cpu) <strong>and</strong> the devices used to obtain or displaydata, such as the video screen, keyboard, <strong>and</strong> parallel<strong>and</strong> serial ports.In personal computers, the BIOS (Basic Input-OutputSystem) solves this problem by providing a set <strong>of</strong> routinesfor direct control <strong>of</strong> key system hardware such as diskdrives, the keyboard, video interface, <strong>and</strong> serial <strong>and</strong> parallelports. In PCs based on the IBM PC architecture, theBIOS is divided into two components. The fixed code isstored on a PROM (programmable read-only memory) chipcommonly called the “ROM BIOS” or “BIOS chip.” Thiscode h<strong>and</strong>les interrupts (requests for attention) from theperipheral devices (which can include their own specializedBIOS chips). During the boot sequence the BIOS coderuns the POST (power-on self test) <strong>and</strong> queries variousdevices to make sure they are functional. (At this time thePC’s screen will display a message giving the BIOS manufacturer,model, <strong>and</strong> other information.) Once DOS is running,routines in the operating system kernel can accessthe hardware by making calls to the BIOS routines. In turn,application programs can call the operating system, whichpasses requests on to the BIOS routines.The BIOS scheme has some flexibility in that part <strong>of</strong>the BIOS is stored in system files (in IBM PCs, IO.SYS <strong>and</strong>IBMIO.COM). Since this code is stored in files, it can beupgraded with each new version <strong>of</strong> DOS. In addition, separatedevice drivers can be loaded from files during systemstartup as directed by DEVICE comm<strong>and</strong>s in CONFIG.SYS,a text file containing various system settings.For further flexibility in dealing with evolving devicecapabilities, PCs also began to include CMOS (complementarymetal oxide semiconductor) chips that allow for thestorage <strong>of</strong> additional parameters, such as for the configuration<strong>of</strong> memory <strong>and</strong> disk drive layouts.In modern PCs the BIOS setup screen also allows usersto specify the order <strong>of</strong> devices to be used for loading systemstartup code. This, for example, might allow a potentiallycorrupted hard drive to be bypassed in favor <strong>of</strong> a bootableCD or DVD with disk repair tools. Another scenario wouldallow users to boot from a USB memory stick (see flashdrive) <strong>and</strong> use a preferred operating system <strong>and</strong> workingfiles without disturbing the PC’s main setup.The data on these chips is maintained by a small onboardbattery so settings are not lost when the main systempower is turned <strong>of</strong>f.Additionally, modern PC BIOS chips use “flash memory”(EEPROM or “electrically erasable programmable read-onlymemory”) to store the code. These chips can be “flashed” orreprogrammed with newer versions <strong>of</strong> the BIOS, enabling thesupport <strong>of</strong> newer devices without having to replace any chips.Beyond the BiosWhile the BIOS scheme was adequate for the earliest PCs,it suffered from a lack <strong>of</strong> flexibility <strong>and</strong> extensibility. Theroutines were generic <strong>and</strong> thus could not support all thefunctions <strong>of</strong> newer devices. Because BIOS routines for


50 bitmapped imagesuch tasks as graphics tended to be slow, applications programmers<strong>of</strong>ten bypassed the BIOS <strong>and</strong> dealt with devicesdirectly or created device drivers specific to a particularmodel <strong>of</strong> device. This made the life <strong>of</strong> the PC user morecomplicated because programs (particularly games) maynot work with some video cards, for example, or at leastrequired an updated device driver.While both the main BIOS <strong>and</strong> the auxiliary BIOS chipson devices such as video cards are still essential to theoperation <strong>of</strong> the PC, modern operating systems, such asMicros<strong>of</strong>t Windows <strong>and</strong> applications written for them, generallydo not use BIOS routines <strong>and</strong> employ high performancedevice drivers instead. (By the mid-1990s BIOSesincluded built-in support for “Plug <strong>and</strong> Play,” a system forautomatically loading device drivers as needed. Thus, theBIOS is now usually <strong>of</strong> concern only if there is a hardwarefailure or incompatibility.)Further Reading“System BIOS Function <strong>and</strong> Operation.” Available online. URL:http://www.pcguide.com/ref/mbsys/bios/func.htm. AccessedApril 20, 2007.bitmapped imageA bitmap is a series <strong>of</strong> bits (within a series <strong>of</strong> bytes inmemory) in which the bits represent the pixels in an image.In a monochrome bitmap, each pixel can be represented byone bit, with a 1 indicating that the pixel is “on.” For grayscaleor color images several bits must be used to store theinformation for each pixel. The pixel value bits are usuallypreceded by a data structure that describes various characteristics<strong>of</strong> the image.For example, in the Micros<strong>of</strong>t Windows BMP format,the file for an image begins with a BITMAPFILEHEADERthat includes a file type, size, <strong>and</strong> layout. This is followedby a BITMAPINFOHEADER that gives information aboutthe image itself (dimensions, type <strong>of</strong> compression, <strong>and</strong>color format). Next comes a color table that describes eachIn a monochrome bitmapped image, a 1 is used to represent a pixelthat is turned on, while the empty pixels are represented by zeroes.Color bitmaps must use many more bits per pixel to store colornumbers.color found in the image in terms <strong>of</strong> its RGB (red, green,blue) components. Finally comes the consecutive bytes representingthe bits in each line <strong>of</strong> the image, starting fromlower left <strong>and</strong> proceeding to the upper right.The actual number <strong>of</strong> bits representing each pixeldepends on the dimensions <strong>of</strong> the bitmap <strong>and</strong> the number<strong>of</strong> colors being used. For example, if the bitmap has amaximum <strong>of</strong> 256 colors, each pixel value must use one byteto store the index that “points” to that color in the colortable. However, an alternative format stores the actual RGBvalues <strong>of</strong> each pixel in three consecutive bytes (24 bits),thus allowing for a maximum <strong>of</strong> 24 (16,777,216) colors (seecolor in computing).Shortcomings <strong>and</strong> AlternativesThe relationship between number <strong>of</strong> possible colors <strong>and</strong>amount <strong>of</strong> storage needed for the bitmap means that themore realistic the colors, the more space is needed to storean image <strong>of</strong> a given size, <strong>and</strong> generally, the more slowly thebitmap can be displayed. Various techniques have been usedto shrink the required space by taking advantage <strong>of</strong> redundantinformation resulting from the fact that most imageshave areas <strong>of</strong> the same color (see data compression).Vector graphics <strong>of</strong>fer an alternative to bitmaps, particularlyfor images that can be constructed from a series <strong>of</strong> lines.Instead <strong>of</strong> storing the pixels <strong>of</strong> a complete image, vector graphicsprovides a series <strong>of</strong> vectors (directions <strong>and</strong> lengths) plusthe necessary color information. This can make for a muchsmaller image, as well as making it easy to scale the image toany size by multiplying the vectors by some constant.Further ReadingArtymiak, Jacek. Dynamic Bitmap Graphics with PHP <strong>and</strong> Gd. 2nded. Lublin, Pol<strong>and</strong>: devGuide.net, 2007.“Micros<strong>of</strong>t Windows Bitmap File Format Summary.” FileFormat-Info. Available online. URL: http://www.fileformat.info/format/bmp/egff.htm. Accessed May 10, 2007.Slaybaugh, Matt. Pr<strong>of</strong>essional Web Graphics. Boston: Course <strong>Technology</strong>,2001.bits <strong>and</strong> bytes<strong>Computer</strong> users soon become familiar with the use <strong>of</strong> bits(or more commonly bytes) as a measurement <strong>of</strong> the capacity<strong>of</strong> computer memory (RAM) <strong>and</strong> storage devices suchas disk drives. They also speak <strong>of</strong> such things as “16-bitcolor,” referring to the number <strong>of</strong> different colors that canbe specified <strong>and</strong> generated by a video display.In the digital world a bit is the smallest discernablepiece <strong>of</strong> information, representing one <strong>of</strong> two possible states(indicated by the presence or absence <strong>of</strong> something such asan electrical charge or magnetism, or by one <strong>of</strong> two voltagelevels). Bit is actually short for “binary digit,” <strong>and</strong> a bit correspondsto one digit or place in a binary (base 2) number.Thus an 8-bit value <strong>of</strong>11010101corresponds, from right to left, to (1 * 2 0 ) + (0 * 2 1 ) + (1 *2 2 ) + (0 * 2 3 ) + (1 * 2 4 ) + (0 * 2 5 ) + (1 * 2 6 ) + (1 * 2 7 ), or 213in terms <strong>of</strong> the familiar decimal system.


itwise operations 51in terms <strong>of</strong> bytes. A byte is 8 bits or binary digits, whichamounts to a range <strong>of</strong> from 0 to 255 in terms <strong>of</strong> decimal (base10) numbers. A byte is thus enough to store a small integeror a character code in the st<strong>and</strong>ard ASCII character set(see character). Common multiples <strong>of</strong> a byte are a kilobyte(thous<strong>and</strong> bytes), megabyte (million bytes), gigabyte (billionbytes), <strong>and</strong> occasionally terabyte (trillion bytes). The actualnumbers represented by these designations are actually somewhatlarger, as indicated in the accompanying table.Further Reading“How Bits <strong>and</strong> Bytes work.” Available online. URL: http://www.howstuffworks.com/bytes.htm. Accessed April 22, 2007.One byte in memory can store an 8-bit binary number. Just as eachplace to the left in a decimal number represents the next higherpower <strong>of</strong> 10, the places in the byte increase as powers <strong>of</strong> 2. Here theplaces with 1 in them add up to a total decimal value <strong>of</strong> 213.With regard to computer architectures the number<strong>of</strong> bits is particularly relevant to three areas: (1) The size<strong>of</strong> the basic “chunk” <strong>of</strong> data or instructions that can befetched, processed, or stored by the central processing unit(CPU); (2) The “width” <strong>of</strong> the data bus over which data issent between the CPU <strong>and</strong> other devices—given the sameprocessor speed, a 32-bit bus can transfer twice as muchdata in a given time as a 16-bit bus; <strong>and</strong> (3) The width <strong>of</strong> theaddress bus (now generally 32 bits), which determines howmany memory locations can be addressed, <strong>and</strong> thus themaximum amount <strong>of</strong> directly usable RAM.The first PCs used 8-bit or 16-bit processors, whiletoday’s PC processors <strong>and</strong> operating systems <strong>of</strong>ten use 32-bits at a time, with 64-bit processors now entering the market.Besides the “width” <strong>of</strong> data transfer, the number <strong>of</strong> bitscan also be used to specify the range <strong>of</strong> available values.For example, the range <strong>of</strong> colors that can be displayed bya video card is <strong>of</strong>ten expressed as 16 bit (65,536 colors) or32 bit (16,777,777,216 colors, because only 24 <strong>of</strong> the bits areused for color information).Since multiple bits are <strong>of</strong>ten needed to specify meaningfulinformation, memory or storage capacity is <strong>of</strong>ten expressedbitwise operationsSince each bit <strong>of</strong> a number (see bits <strong>and</strong> bytes) can holda truth value (1 = true, 0 = false), it is possible to use individualbits to specify particular conditions in a system, <strong>and</strong>to compare individual pairs <strong>of</strong> bits using special operatorsthat are available in many programming languages.Bitwise operators consist <strong>of</strong> logical operators <strong>and</strong> shiftoperators. The logical operators, like Boolean operators ingeneral (see Boolean operators), perform logical comparisons.However, as the name suggests, bitwise logical operatorsdo a bit-for-bit comparison rather than comparing theoverall value <strong>of</strong> the bytes. They compare the correspondingbits in two bytes (called source bits) <strong>and</strong> write result bitsbased on the type <strong>of</strong> comparison.The AND operator compares corresponding bits <strong>and</strong>sets the bit in the result to one if both are one. Otherwise, itsets it to zero.Example: 10110010 AND 10101011 = 10100010The OR operator compares corresponding bits <strong>and</strong> setsthe bit in the result to one if either or both <strong>of</strong> the bits areones.Example: 10110110 OR 10010011 = 10110111The XOR (“exclusive OR”) operator works like ORexcept that it sets the result bit to one only if either (notboth) <strong>of</strong> the source bits are ones.Example: 10110110 XOR 10010011 = 00100101The COMPLEMENT operator switches all the bits totheir opposites (ones for zeroes <strong>and</strong> zeroes for ones).Example: COMPLEMENT 11100101 = 00011010Measurement Number <strong>of</strong> Bytes examples <strong>of</strong> Usebyte 1 small integer, characterkilobyte 2 10 1,024 RAM (PCs in the 1980s)megabyte 2 20 1,048,576 hard drive (PCs to mid-1990s)RAM (modern PCs)gigabyte 2 30 1,073,741,824 hard drive (modern PCs)RAM (latest PCs)terabyte 2 40 1,099,511,627,776 large drive arrays


52 blogs <strong>and</strong> bloggingThe shift operators simply shift all the bits left (LEFTSHIFT) or right (RIGHT SHIFT) by the number <strong>of</strong> placesspecified after the operator. Thus00001011 LEFT SHIFT 2 = 00101100<strong>and</strong>00001011 RIGHT SHIFT 2 = 00000010 (bits that shift <strong>of</strong>fthe end <strong>of</strong> the byte simply “drop <strong>of</strong>f” <strong>and</strong> are replaced withzeroes).While we have used words in our general description <strong>of</strong>these operators, actual programming languages <strong>of</strong>ten usespecial symbols that vary somewhat with the language. Theoperators used in the C language are typical:& AND| OR^ Exclusive OR~ Complement>> Right Shift


Boolean operators 53Blogging can also be seen as part <strong>of</strong> a larger trend towardWeb users taking an active role in expressing <strong>and</strong> sharingopinion <strong>and</strong> resources (see user-created content, filesharing<strong>and</strong> p2p networks, <strong>and</strong> YouTube).Social <strong>and</strong> Economic ImpactBlogs first emerged in popular consciousness as a new wayin which people caught in the midst <strong>of</strong> a tragedy such as theSeptember 11, 2001, attacks could reassure friends abouttheir safety while describing <strong>of</strong>ten harrowing accounts. TheIraq war that began in 2003 was the first war to be bloggedon a large scale. Like their journalistic counterparts, bloggers,whether American or Iraqi, were “embedded” in the<strong>of</strong>ten-violent heart <strong>of</strong> the protracted conflict, but they werealso effectively beyond the control <strong>of</strong> government or militaryauthorities. (See also political activism <strong>and</strong> theInternet.)Blogs are also being used widely in business. Within acompany, a blog can highlight ongoing activities <strong>and</strong> relevantresources that might otherwise be overlooked in a large corporatenetwork. S<strong>of</strong>tware developers can also report on theprogress <strong>of</strong> bug fixes or enhancements <strong>and</strong> solicit commentsfrom end users. There has been some concern, however, thatcorporate blogs are not sufficiently supervised to preventthe dissemination <strong>of</strong> sensitive information or the posting <strong>of</strong>libelous or inflammatory material. (For the collaborative creation<strong>of</strong> large bodies <strong>of</strong> structured knowledge, see wikis <strong>and</strong>Wikipedia.)Blogs have provided an outlet where other means <strong>of</strong>expression are unavailable because <strong>of</strong> war (as in Iraq),disaster (Hurricane Katrina), or government censorship—although China in particular has hired hundreds <strong>of</strong> censorsto remove <strong>of</strong>fending postings as well as requiring blog providerssuch as MSN to police their content (see censorship<strong>and</strong> the Internet).Further ReadingBlogger. Available online. URL: http://www.bloger.com. AccessedSeptember 2, 2007.Bloglines. Available online. URL: http://www.bloglines.com. AccessedApril 10, 2007.Blood, Rebecca. The Weblog H<strong>and</strong>book: Practical Advice on Creating<strong>and</strong> Maintaining Your Blog. Cambridge, Mass.: Perseus, 2002.Burden, Matthew Currier. The Blog <strong>of</strong> War: Front-Line Dispatchesfrom Soliders in Iraq <strong>and</strong> Afghanistan. New York: Simon &Schuster, 2006.Dedman, Jay. Videoblogging. New York: Wiley, 2006.Farber, Dan. “Reflections on the First Decade <strong>of</strong> Blogging.” February25. 2007. Available online. URL: http://blogs.zdnet.com/BTL/?p=4541&tag=nl.e539. Accessed April 10, 2007.Hasin, Hayder. WordPress Complete: Set Up, Customize, <strong>and</strong> MarketYour Blog. Birmingham, U.K.: Packt Publishing, 2006.Radio Userl<strong>and</strong>. Available online. URL: http://radio.userl<strong>and</strong>.com.Accessed September 2, 2007.Rebecca’s Pocket. Available online. URL: http://www.rebeccablood.net/. Accessed April 10, 2007.Technorati. Available online. URL: http://www.technorati.com.Accessed April 10, 2007.WordPress. Available online. URL: http:// www.wordpress.com.Accessed April 10, 2007.BluetoothLoosely named after a 10th-century Danish king, Bluetoothis a wireless data communications <strong>and</strong> networking systemdesigned for relatively short-range operation (generallywithin the same room, although it can be used over longerdistances up to several hundred feet [tens <strong>of</strong> meters]). Theradio transmission is in the 2.4-GHz b<strong>and</strong> <strong>and</strong> is typicallylow power, making it suitable for battery-powered devicessuch as laptops.ApplicationsBluetooth was originally developed by Ericsson Corporationto provide a wireless connection for mobile telephoneheadsets. Today it is <strong>of</strong>ten used to “sync” (update data)between a PDA such as a Blackberry or Palm (see PDA)with a Bluetooth-equipped laptop or desktop. Many cellphones are also equipped with Bluetooth, allowing them tobe dialed from a PDA, although the growing use <strong>of</strong> phonesthat combine telephony <strong>and</strong> PDA functions is making thisscenario less common (see smartphone). Bluetooth canalso be used for wireless keyboards, mice, or printers.It is possible to connect PDAs or PCs to the Internet <strong>and</strong>local area networks using a Bluetooth wireless access point(WAP) attached to a router, but faster <strong>and</strong> longer range Wifi(802.11) wireless connections are much more widely usedfor this application (see Wifi).Bluetooth connections between devices are specifiedusing pr<strong>of</strong>iles. Pr<strong>of</strong>iles have been developed for commonkinds <strong>of</strong> devices, specifying how data is formatted <strong>and</strong>exchanged. For example, there are pr<strong>of</strong>iles for controllingtelephones, printers <strong>and</strong> faxes, digital cameras, <strong>and</strong> audiodevices. Most modern operating systems (including WindowsMobile, Linux, Palm OS, <strong>and</strong> Mac OS X) include supportfor basic Bluetooth pr<strong>of</strong>iles. Functions fundamental toall Bluetooth operations are found in Bluetooth Core Specifications(version 2.1 as <strong>of</strong> August 2007). Planned futureenhancements include accommodation for ultra-wide b<strong>and</strong>(UWB) radio technology, allowing for data transfer up to480 megabits per second. At the same time, Bluetooth isextending the ultra-low-power modes that are particularlyimportant for wearable or implanted medical devices.Further Reading“Bluetooth.” Wikipedia. Available online. URL: http://en.wikipedia.org/wiki/Bluetooth. Accessed July 20, 2007.Bluetooth Special Interest Group. Available online. URL: http://www.bluetooth.com/bluetooth/. Accessed July 20, 2007.Layton, Julia, <strong>and</strong> Curt Franklin. “How Bluetooth Works.” Availableonline. URL: http://www.howstuffworks.com/bluetooth.htm. Accessed September 3, 2007.Boolean operatorsIn 1847, British mathematician George Boole proposed asystem <strong>of</strong> algebra that could be used to manipulate propositions,that is, assertions that could be either true or false. Inhis system, called propositional calculus or Boolean Algebra,propositions can be combined using the “<strong>and</strong>” <strong>and</strong> “or”


54 boot sequenceoperators (called Boolean operators), yielding a new propositionthat is also either true or false. For example:“A cat is an animal” AND “The sun is a star” is truebecause both <strong>of</strong> the component propositions are true.“A square has four sides” AND “The Earth is flat” is falsebecause only one <strong>of</strong> the component propositions is true.However “A square has four sides” OR “The Earth isflat” is true, because at least one <strong>of</strong> the component propositionsis true.A chart called a truth table can be used to summarizethe AND <strong>and</strong> OR operations. Here 1 means true <strong>and</strong> 0means false, <strong>and</strong> you read across from the side <strong>and</strong> downfrom the top to see the result <strong>of</strong> each combination.AND table0 10 0 01 0 1OR table0 10 0 11 1 1A variant <strong>of</strong> the OR operator is the “exclusive OR,”sometimes called “XOR” operator. The XOR operator yieldsa result <strong>of</strong> true (1) if only one <strong>of</strong> the component propositionsis true:XOR table0 10 0 11 1 0Additionally, there is a NOT operator that simplyreverses the truth value <strong>of</strong> a proposition. That is, NOT 1 is0 <strong>and</strong> NOT 0 is 1.ApplicationsNote the correspondence between the two values <strong>of</strong> Booleanlogic <strong>and</strong> the binary number system in which each digit canhave only the values <strong>of</strong> 1 or 0. Electronic digital computersare possible because circuits can be designed to follow therules <strong>of</strong> Boolean logic, <strong>and</strong> logical operations can be harnessedto perform arithmetic calculations.Besides being essential to computer design, Booleanoperations are also used to manipulate individual bits inmemory (see bitwise operations), storing <strong>and</strong> extractinginformation needed for device control <strong>and</strong> other purposes.<strong>Computer</strong> programs also use Boolean logic to make decisionsusing branching statements such as If <strong>and</strong> loop statementssuch as While. For example, the Basic loopWhile (Not E<strong>of</strong>()) OR (Line = 50)Read (Line$)Print (Line$)Line = Line + 1Endwhilewill read <strong>and</strong> print lines from the previously opened fileuntil either the E<strong>of</strong> (end <strong>of</strong> file) function returns a value <strong>of</strong>True or the value <strong>of</strong> Line reaches 50. (In some programminglanguages different symbols are used for the operators. InC, for example, AND is &&, OR is ||, <strong>and</strong> NOT is !.)Users <strong>of</strong> databases <strong>and</strong> Web search engines are als<strong>of</strong>amiliar with the use <strong>of</strong> Boolean statements for definingsearch criteria. In many search engines, the search phrase“computer science” AND “graduate” will match sites thathave both the phrase “computer science” <strong>and</strong> the word“graduate,” while sites that have only one or the other willeither not be listed or will be listed after those that haveboth (see search engine).Further ReadingUniversity at Albany Libraries. “Boolean Searching on the Internet.”Available online. URL: http://www.albany.edu/library/internet/boolean.html.Whitesitt, J. E. Boolean Algebra <strong>and</strong> Its Applications. New York:Dover, 1995.boot sequenceAll computers are faced with the problem that they needinstructions in order to be able to read in the instructionsthey need to operate. The usual solution to this conundrumis to store a small program called a “loader” in a ROM(read-only memory) chip. When the computer is switchedon, this chip is activated <strong>and</strong> runs the loader. The loaderprogram has the instructions needed to be able to accessthe disk containing the full operating system. This processis called booting (short for “bootstrapping”).Booting a PCWhile the details <strong>of</strong> the boot sequence vary with the hardware<strong>and</strong> operating system used, a look at the booting <strong>of</strong> a“Wintel” machine (IBM architecture PC running DOS <strong>and</strong>Micros<strong>of</strong>t Windows) can serve as a practical example.When the power is turned on, a chip called the BIOS(basic input-output system) begins to execute a small program(see bios). The first thing it does is to run a routinecalled the POST (power-on self test) that sends aquery over the system bus (see bus) to each <strong>of</strong> the keydevices (memory, keyboard, video display, <strong>and</strong> so on) fora response that indicates it is functioning properly. If anerror is detected, the system generates a series <strong>of</strong> beeps,the number <strong>of</strong> which indicates the area where the problemwas found, <strong>and</strong> then halts.Assuming the test runs successfully (sometimes indicatedby a single beep), the BIOS program then queries thedevices to see if they have their own BIOS chips, <strong>and</strong> if so,executes their programs to initialize the devices, such asthe video card <strong>and</strong> disk controllers. At this point, since thevideo display is available, informational <strong>and</strong> error messagescan be displayed as appropriate. The BIOS also sets variousparameters such as the organization <strong>of</strong> the disk drive, usinginformation stored in a CMOS chip. (There is generallya way the user can access <strong>and</strong> change these informationscreens, such as when installing additional memory chips.)


anching statements 55The BIOS now looks for a disk drive that is bootable—that is, that contains files with the code needed to load theoperating system. This is generally a hard drive, but couldbe a floppy disk or even a CD-ROM or USB device. (Theorder in which devices are checked can be configured.) Ona hard drive, the code needed to start the operating systemis found in a “master boot record.”The booting <strong>of</strong> the operating system (DOS) involves thedetermination <strong>of</strong> the disk structure <strong>and</strong> file system <strong>and</strong> theloading <strong>of</strong> the operating system kernel (found in files calledIO.SYS <strong>and</strong> MSDOS.SYS), <strong>and</strong> a comm<strong>and</strong> interpreter (COM-MAND.COM). The latter can then read the contents <strong>of</strong> thefiles AUTOEXEC.BAT <strong>and</strong> CONFIG.SYS, which specify systemparameters, device drivers, <strong>and</strong> other programs to beloaded into memory at startup. If the system is to run Micros<strong>of</strong>tWindows, that more elaborate operating system will thentake over, building upon or replacing the foundation <strong>of</strong> DOS.Further ReadingPC Guide. “System Boot Sequence.” Available online. URL: http://www.pcguide.com/_ref/mbsys/bios/bootSequence-c.html.Accessed April 10, 2008.branching statementsThe simplest calculating machines (see calculator)could only execute a series <strong>of</strong> calculations in an unalterablesequence. Part <strong>of</strong> the transition from calculator to fullcomputer is the ability to choose different paths <strong>of</strong> executionaccording to particular values—in some sense, to makedecisions.Branching statements (also called decision statementsor selection statements) give programs the ability to chooseone or more different paths <strong>of</strong> execution depending on theresults <strong>of</strong> a logical test. The general form for a branchingstatement in most programming languages isif (Boolean expression)statementelse statementFor example, a blackjack game written in C might have astatement that reads:if ((Card_Count + Value(This_Card)) > 21)printf (“You’re busted!”);Here the Boolean expression in parenthesis following the ifkeyword is evaluated. If it is true, then the following statement(beginning with printf) is executed. (The Booleanexpression can be any combination <strong>of</strong> expressions, functioncalls, or even assignment statements, as long as they evaluateto true or false—see also boolean operators.)The else clause allows the specification <strong>of</strong> an alternativestatement to be executed if the Boolean expression is nottrue. The preceding example could be exp<strong>and</strong>ed to:if (Card_Count + Value (This_Card) > 21)printf (“You’re busted!”);elseprintf(“Do you want another card?”);In most languages if statements can be nested so that asecond if statement is executed only if the first one is true.For example:if (Turn > Max_Turns){if (Winner() )PrintScore();}Here the first if test determines whether the maximumnumber <strong>of</strong> turns in the game has been exceeded. If it has,the second if statement is executed, <strong>and</strong> the Winner() functionis called to determine whether there is a winner. Ifthere is a winner, the PrintScore() function is called. Thisexample also illustrates the general rule in most languagesthat wherever a single statement can be used a block <strong>of</strong>statements can also be used. (The block is delimited bybraces in the C family <strong>of</strong> languages, while Pascal usesBegin . . . End.)The switch or case statement found in many languagesis a variant <strong>of</strong> the if statement that allows for easy testing <strong>of</strong>several possible values <strong>of</strong> a condition. One could write:if (Category = = “A”)AStuff();else if (Category = = “B”)BStuff();else if (Category = = “C”)CStuff();elseprintf “(None <strong>of</strong> the above\n”);However, C, Pascal, <strong>and</strong> many other languages provide amore convenient multiway branching statement (calledswitch in C <strong>and</strong> case in Pascal). Using a switch statement,the preceding test can be rewritten in C as:switch (Category) {case “A”:AStuff();break;case “B”:BStuff();break;case “C”CStuff();break;default:printf (“None <strong>of</strong> the above\n”);}(Here the break statements are needed to prevent executionfrom continuing on through the other alternatives whenonly one branch should be followed.)Further ReadingSebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Addison-Wesley, 2008.


oadb<strong>and</strong>Technically, broadb<strong>and</strong> refers to the carrying <strong>of</strong> multiplecommunications channels in a single wire or cable. In thebroader sense used here, broadb<strong>and</strong> refers to high-speeddata transmission over the Internet using a variety <strong>of</strong> technologies(see data communications <strong>and</strong> telecommubroadb<strong>and</strong>57ficial skin <strong>and</strong> an array <strong>of</strong> 32 separate motors, Leonardo’sfacial expressions are much more humanlike than Kismet’s.Body language now includes shrugs. The robot can learnnew concepts <strong>and</strong> tasks both by interacting with a humanteacher <strong>and</strong> by imitating what it sees people do, startingwith facial expressions <strong>and</strong> simple games.Breazeal’s group at MIT is currently investigating waysin which computers can use “body language” to communicatewith users <strong>and</strong> even encourage better posture. “RoCo”is a computer whose movable “head” is a monitor screen.Using a camera, RoCo can sense the user’s posture <strong>and</strong>emotional state.Breazeal has also created “responsive” robots in newforms, <strong>and</strong> for venues beyond the laboratory. In 2003 theCooper-Hewitt National Design Museum in New Yorkhosted a “cyberfloral installation” designed by Breazeal. Itfeatured “flowers” <strong>of</strong> metal <strong>and</strong> silicone that exhibit behaviorssuch as swaying <strong>and</strong> glowing in bright colors when aperson’s h<strong>and</strong> comes near.Besides earning her a master’s degree (1993) <strong>and</strong> doctoraldegree (2000) from MIT, Breazeal’s work has broughther considerable acclaim <strong>and</strong> numerous appearances in themedia. She has been widely recognized as being a significantyoung inventor or innovator, such as by Time magazine<strong>and</strong> the Boston Business Forward. Breazeal is one <strong>of</strong> 100“young innovators” featured in MIT’s <strong>Technology</strong> Review.Further ReadingBar-Cohen, Yoseph, <strong>and</strong> Cynthia Breazeal. Biologically InspiredIntelligent Robots. Bellingham, Wash.: SPIE Press, 2003.Biever, Celeste. “Robots Like Us: They Can Sense Human Moods.”San Francisco Chronicle, May 6, 2007. Available online. URL:http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/05/06/ING9GPK9U51.DTL. Accessed May 7, 2007.Breazeal, Cynthia. Designing Sociable Robots. Cambridge, Mass.:MIT Press, 2002.Brooks, Rodney. Flesh <strong>and</strong> Machines: How Robots Will Change Us.New York: Pantheon Books, 2002.Dreifus, Claudia. “A Passion to Build a Better Robot, One withSocial Skills <strong>and</strong> a Smile.” New York Times, June 10, 2003, p.F3.Henderson, Harry. Modern Robotics: Building Versatile Machines.New York: Chelsea House, 2006.Robotic Life Group (MIT Media Lab). Available online. URL:http://robotic.media.mit.edu/. Accessed May 1, 2007.Brin, Sergey(1973– )Russian-AmericanEntrepreneurC<strong>of</strong>ounder <strong>and</strong> current president <strong>of</strong> technology at Google,Sergey Brin has turned the needs <strong>of</strong> millions <strong>of</strong> Web usersto find information online into a gigantic <strong>and</strong> pervasiveenterprise.Brin was born in Moscow, Russia, on August 21, 1973to a Jewish family (his father, Michael, was a mathematician<strong>and</strong> economist). However, the family immigratedto the United States in 1979, settling in Maryl<strong>and</strong>. Brin’sfather supplemented his education, particularly in mathematics.Brin graduated with honors from the University<strong>of</strong> Maryl<strong>and</strong> in 1993, earning a bachelor’s degree in computerscience <strong>and</strong> mathematics. Brin then went to Stanford,receiving his master’s degree in computer science in 1995.Along the way to his Ph.D., however, Brin was “sidetracked”by his growing interest in the Internet <strong>and</strong> World WideWeb, particularly in techniques for searching for <strong>and</strong> identifyingdata (see also data mining).Search Engines <strong>and</strong> GoogleThe year 1995 was pivotal for Brin because he met fellowgraduate student Larry Page (see Page, Larry). Pageshared Brin’s interests in the Web, <strong>and</strong> they collaboratedon a seminal paper titled “The Anatomy <strong>of</strong> a Large-ScaleHypertextual Web Search Engine.” This work (includingthe key “PageRank” algorithm) would form the basis for theworld’s most widely used search engine (see Google <strong>and</strong>search engine).In 1998 Brin took a leave <strong>of</strong> absence from the Ph.D. program.The fall <strong>of</strong> that year Brin <strong>and</strong> Page launched Google.The search engine was much more useful <strong>and</strong> accurate thanexisting competitors, <strong>and</strong> received a Technical ExcellenceAward from PC magazine in 1999. Google soon appearednear the top <strong>of</strong> many analysts’ lists <strong>of</strong> “companies to watch.”In 2004 the company went public, <strong>and</strong> Brin’s personal networth is now estimated to be more than $16 billion. (Brin<strong>and</strong> Page remain closely involved with Google, promotinginnovation such as the aggregation <strong>and</strong> presentation <strong>of</strong>information including images <strong>and</strong> maps.)Besides Google, Brin’s diverse interests include moviemaking(he was an executive producer <strong>of</strong> the film BrokenArrow) <strong>and</strong> innovative transportation (he is an investor inTesla Motors, makers <strong>of</strong> long-range electric vehicles). In2005 Brin was named as one <strong>of</strong> Time magazine’s 100 mostinfluential people. In 2007 Brin was named by PC World asnumber one on their list <strong>of</strong> the 50 most important peopleon the Web.Further ReadingBrin, Sergey, <strong>and</strong> Lawrence Page. “The Anatomy <strong>of</strong> a Large-ScaleHypertextual Web Search Engine.” Available online. URL:http://infolab.stanford.edu/~backrub/google.html. AccessedSeptember 3, 2007.“The Founders <strong>of</strong> Google.” NPR Fresh Air interview, October 14,2003 [audio]. Available online. URL: http://www.npr.org/templates/story/story.php?storyId=1465274. Accessed September3, 2007.Sergey Brin’s Home Page. Available online. URL: http://infolab.stanford.edu/~sergey/. Accessed September 3, 2007.“Sergey Brin Speaks with UC Berkeley Class” [video]. Availableonline. URL: http://video.google.com/videoplay?docid=7582902000166025817. Accessed September 3, 2007.


58 broadb<strong>and</strong>nications). This can be distinguished from the relativelyslow (56 Kbps or slower) dial-up phone connections used bymost home, school, <strong>and</strong> small business users until the late1990s. A quantitative change in speed results in a qualitativechange in the experience <strong>of</strong> the Web, making continuousmultimedia (video <strong>and</strong> sound) transmissions possible.Broadb<strong>and</strong> TechnologiesThe earliest broadb<strong>and</strong> technology to be developed consists<strong>of</strong> dedicated point-to-point telephone lines designated T1,T2, <strong>and</strong> T3, with speeds <strong>of</strong> 1.5, 6.3, <strong>and</strong> 44.7 Mbps respectively.These lines provide multiple data <strong>and</strong> voice channels,but cost thous<strong>and</strong>s <strong>of</strong> dollars a month, making thempracticable only for large companies or institutions.Two other types <strong>of</strong> phone line access <strong>of</strong>fer relativelyhigh speed at relatively low cost. The earliest, ISDN (IntegratedServices Digital Network) in typical consumer form<strong>of</strong>fers two 64 Kbps channels that can be combined for 128Kbps. (Special services can combine more channels, such asa 6 channel 384 Kbps configuration for videoconferencing.)The user’s PC is connected via a digital adapter rather thanthe usual analog-to-digital modem.The most common telephone-based broadb<strong>and</strong> systemtoday is the digital subscriber line (see DSL). Unlike ISDN,DSL uses existing phone lines. A typical DSL speed todayis 1–2 Mbps, though higher speed services up to about 5Mbps are now being <strong>of</strong>fered. The main drawback <strong>of</strong> DSL isthat the transmission rate falls <strong>of</strong>f with the distance fromthe telephone company’s central <strong>of</strong>fice, with a maximumdistance <strong>of</strong> about 18,000 feet (5,486.4 m).The primary alternative for most consumers uses existingtelevision cables (see cable modem). Cable is generallya bit faster (1.5–3 Mbps) than DSL, with premium service<strong>of</strong> up to 8 Mbps or so available in certain areas. However,cable speed slows down as more users are added to a givencircuit. With both DSL <strong>and</strong> cable upload speeds (the rateat which data can be sent from the user to an Internet site)are generally fixed at a fraction <strong>of</strong> download speed (<strong>of</strong>tenabout 128 kbps). While this “throttling” <strong>of</strong> upload speeddoes not matter much for routine Web surfing, the growingnumber <strong>of</strong> applications that involve users uploading videosor other media for sharing over the Internet (see user-createdcontent) has led to some pressure for higher uploadspeeds.Ultra Broadb<strong>and</strong>Rather surprisingly, the country that brought the world theInternet has fallen well behind many other industrializednations in broadb<strong>and</strong> speed. In Japan, DSL speeds up to40 Mbps are available, <strong>and</strong> at less cost than in the UnitedStates. South Korea also <strong>of</strong>fers “ultra broadb<strong>and</strong>” speeds <strong>of</strong>20 Mbps or more. American providers, on the other h<strong>and</strong>,have tended to focus on exp<strong>and</strong>ing their networks <strong>and</strong>competing for market share rather than investing in higherspeed technologies. However, this situation is beginning toimprove as American providers ramp up their investmentin fiber networks (see fiber optics). For example, in 2005Verizon introduced Fios, a fiber-based DSL service that canreach speeds up to 15 Mbps. However, installing fiber networksis expensive, <strong>and</strong> as <strong>of</strong> 2007 it was available in onlyabout 10 percent <strong>of</strong> the U.S. market.Cable <strong>and</strong> phone companies typically <strong>of</strong>fer Internet <strong>and</strong>TV as a package—many are now including long-distancephone service (<strong>and</strong> even mobile phone service) in a “tripleplay” package. (For long-distance phone carried via Internet,see voip).Wireless Broadb<strong>and</strong>The first wireless Internet access was provided by a wirelessaccess point (WAP), typically connected to a wired Internetrouter. This is still the most common scenario in homes<strong>and</strong> public “hot spots” (see also Internet cafés <strong>and</strong>“hot spots”). However, with many people spending much<strong>of</strong> their time with mobile devices (see laptop, PDA, <strong>and</strong>smartphone), the need for always-accessible wireless connectivityat broadb<strong>and</strong> speeds has been growing. The largestU.S. service, Nextlink, <strong>of</strong>fered wireless broadb<strong>and</strong> in 37markets in 2007 (including many large <strong>and</strong> mid-sized cities)at speeds starting at 1.5 Mbps. An alternative is <strong>of</strong>feredby cell phone companies such as Verizon <strong>and</strong> Sprint, which“piggy back” on the existing infrastructure <strong>of</strong> cell phonetowers. However, the speed <strong>of</strong> this “3G” service is slower,from 384 kbps up to 2 Mbps.Yet another alternative beginning to appear is WiMAX,a technology that is conceptually similar to Wifi but hasmuch greater range because its “hot spots” can be manymiles in diameter. WiMAX <strong>of</strong>fers the possibility <strong>of</strong> coveringentire urban areas with broadb<strong>and</strong> service, although questionsabout its economic viability have slowed implementationas <strong>of</strong> 2008.Satellite Internet services have the advantage <strong>of</strong> beingavailable over a wide area. The disadvantage is that there isabout a quarter-second delay for the signal to travel from ageostationary satellite at an altitude <strong>of</strong> 22,300 km. (Loweraltitudesatellites can be used to reduce this delay, but thenmore satellites are needed to provide continuous coverage.)Adoption <strong>and</strong> ApplicationsBy mid-2007, 53 percent <strong>of</strong> adult Americans had a broadb<strong>and</strong>connection at home. This amounts to 72 percent <strong>of</strong>home Internet users. (About 61 percent <strong>of</strong> broadb<strong>and</strong> connectionsused cable <strong>and</strong> about 37 percent DSL.)With dial-up connections declining to less than 25percent, Web services are increasingly designed with theexpectation that users will have broadb<strong>and</strong> connections.This, however, has the implication that users such as ruralresidents <strong>and</strong> the inner-city poor may be subjected to a“second class” Web experience (see also digital divide).Meanwhile, as with connection speed, many other countriesnow surpass the United States in the percentage <strong>of</strong>broadb<strong>and</strong> users.Broadb<strong>and</strong> Internet access is virtually a necessity formany <strong>of</strong> the most innovative <strong>and</strong> compelling <strong>of</strong> today’sInternet applications. These include downloading media(see podcasting, streaming, <strong>and</strong> music <strong>and</strong> video distribution,online), uploading photos or videos to sites


Brooks, Rodney 59such as Flickr <strong>and</strong> YouTube, using the Internet as a substitutefor a traditional phone line (see voip), <strong>and</strong> even gaming(see online games). Broadb<strong>and</strong> is thus helping drive theintegration <strong>of</strong> many forms <strong>of</strong> media (see digital convergence)<strong>and</strong> the continuous connectivity that an increasingnumber <strong>of</strong> people seem to be relying on (see ubiquitouscomputing).Further ReadingBates, Regis. Broadb<strong>and</strong> Telecommunications H<strong>and</strong>book. 2nd ed.New York: McGraw-Hill, 2002.Bertolucci, Jeff. “Broadb<strong>and</strong> Exp<strong>and</strong>s.” PC World (August 2007):77–90.Cybertelecom. “Statistics: Broadb<strong>and</strong>.” Available online. URL:http://www.cybertelecom.org/data/broadb<strong>and</strong>.htm. AccessedJuly 17, 2007.Gaskin, James E. Broadb<strong>and</strong> Bible. New York: Wiley, 2004.Hellberg, Chris, Dylan Greene, <strong>and</strong> Truman Boyes. Broadb<strong>and</strong>Network Architectures: Designing <strong>and</strong> Deploying Triple-PlayServices. Upper Saddle River, N.J.: Prentice Hall, 2007.Brooks, Rodney(1954– )Australian, AmericanRoboticistRodney Brooks’s ideas about robots have found their wayinto everything from vacuum cleaners to Martian rovers.Today, as director <strong>of</strong> the Artificial Intelligence Laboratoryat the Massachusetts Institute <strong>of</strong> <strong>Technology</strong>, Brookshas extended his exploration <strong>of</strong> robot behavior into newapproaches to artificial intelligence.Brooks was born in Adelaide, Australia, in 1954. Asa boy he was fascinated with computers, but it was stillthe mainframe era, <strong>and</strong> he had no access to them. Brooksdecided to build his own logic circuits from discardedelectronics modules from the defense laboratory where hisfather worked. Brooks also came across a book by GreyWalter, inventor <strong>of</strong> the “cybernetic tortoise” in the late1940s. He tried to build his own <strong>and</strong> came up with “Norman,”a robot that could track light sources while avoidingobstacles. In 1968, when young Brooks saw the movie 2001:A Space Odyssey, he was fascinated by the artificial intelligence<strong>of</strong> its most tragic character, the computer HAL 9000(see artificial intelligence <strong>and</strong> robotics).Brooks majored in mathematics at Flinders Universityin South Australia, where he designed a computer language<strong>and</strong> development system for artificial intelligence projects.He also explored various AI applications such as theoremsolving, language processing, <strong>and</strong> games. He was then ableto go to Stanford University in Palo Alto, California, in 1977as a research assistant.While working for his Ph.D. in computer science,awarded in 1981, Brooks met John McCarthy, one <strong>of</strong> the“elder statesmen” <strong>of</strong> AI in the Stanford Artificial IntelligenceLab (SAIL). He also joined in the innovative projectsbeing conducted by researchers such as Hans Moravec, whowere revamping the rolling robot called the Stanford Cart<strong>and</strong> teaching it to navigate around obstacles.In 1984 Brooks moved to the Massachusetts Institute<strong>of</strong> <strong>Technology</strong>. For his Ph.D. research project, Brooks <strong>and</strong>his fellow graduate students equipped a robot with a ring<strong>of</strong> sonars (adopted from a camera rangefinder) plus twocameras. The cylindrical robot was about the size <strong>of</strong> R2D2<strong>and</strong> was connected by cable to a minicomputer. However,the calculations needed to enable a robot to identify objectsas they appear at different angles were so intensive that therobot could take hours to find its way across a room.Brooks decided to take a lesson from biological evolution.He realized that as organisms evolved into more complexforms, they could not start from scratch each time theyadded new features. Rather, new connections (<strong>and</strong> ways <strong>of</strong>processing them) would be added to the existing structure.For his next robot, called Allen, Brooks built three “layers”<strong>of</strong> circuits that would control the machine’s behavior. Thesimplest layer was for avoiding obstacles: If a sonar signalsaid that something was too close, the robot would changedirection to avoid a collision. The next layer generated ar<strong>and</strong>om path so the robot could “explore” its surroundingsfreely. Finally, the third layer was programmed to identifyspecified sorts <strong>of</strong> “interesting” objects. If it found one, therobot would head in that direction.Each <strong>of</strong> these layers or behaviors was much simplerthan the complex calculations <strong>and</strong> mapping done by a traditionalAI robot. Nevertheless, the layers worked together ininteresting ways. The result would be that the robot couldexplore a room, avoiding both fixed <strong>and</strong> moving obstacles,<strong>and</strong> appear to “purposefully” search for things.In the late 1980s, working with Grinell More <strong>and</strong> anew researcher, Colin Angle, Brooks built an insectlikerobot called Genghis. Unlike Allen’s three layers <strong>of</strong> behavior,Genghis had 51 separate, simultaneously running computerprograms. These programs, called “augmented finitestate machines,” each kept track <strong>of</strong> a particular state orcondition, such as the position <strong>of</strong> one <strong>of</strong> the six legs. It isthe interaction <strong>of</strong> these small programs that creates therobot’s ability to scramble around while keeping its balance.Finally, three special programs looked for signals from theinfrared sensors, locked onto any source found, <strong>and</strong> walkedin its direction.Brooks’s new layered architecture for “embodied” robots<strong>of</strong>fered new possibilities for autonomous robot explorers.Brooks’s 1989 paper, “Fast, Cheap, <strong>and</strong> Out <strong>of</strong> Control: ARobot Invasion <strong>of</strong> the Solar System,” envisaged flocks <strong>of</strong>tiny robot rovers spreading across the Martian surface,exploring areas too risky when one has only one or twovery expensive robots. The design <strong>of</strong> the Sojourner Marsrover <strong>and</strong> its successors, Spirit <strong>and</strong> Opportunity, would partiallyembody the design principles developed by Brooks<strong>and</strong> his colleagues.In the early 1990s Brooks <strong>and</strong> his colleagues beg<strong>and</strong>esigning Cog, a robot that would embody human eyemovement <strong>and</strong> other behaviors. Cog’s eyes are mountedon gimbals so they can easily turn to track objects, aidedby the movement <strong>of</strong> the robot’s head <strong>and</strong> neck (it has nolegs). Cog also has “ears”—microphones that can help itfind the source <strong>of</strong> a sound. The quest for more humanlikerobots continued in the late 1990s with the development <strong>of</strong>


60 bufferingKismet, a robot that includes dynamically changing “emotions.”Brooks’s student Cynthia Breazeal would build herown research career on Kismet <strong>and</strong> what she calls “sociablerobots” (see Breazeal, Cynthia).By 1990, Brooks wanted to apply his ideas <strong>of</strong> behaviorbasedrobotics to building marketable robots that couldperform basic but useful tasks, <strong>and</strong> he enlisted two <strong>of</strong> hismost innovative <strong>and</strong> hard-working students, Colin Angle<strong>and</strong> Helen Greiner (see iRobot Corporation). The companyis best known for the Roomba robotic vacuum cleaner.Brooks remains the company’s chief technical <strong>of</strong>ficer.Meanwhile Brooks has an assured place as one <strong>of</strong> thekey innovators in modern robotics research. He is a FoundingFellow <strong>of</strong> the American Association for Artificial Intelligence<strong>and</strong> a Fellow <strong>of</strong> the American Association for theAdvancement <strong>of</strong> <strong>Science</strong>. Brooks received the 1991 <strong>Computer</strong>s<strong>and</strong> Thought Award <strong>of</strong> the International Joint Conferenceon Artificial Intelligence. He has participated innumerous distinguished lecture series <strong>and</strong> has served as aneditor for many important journals in the field, includingthe International Journal <strong>of</strong> <strong>Computer</strong> Vision.Further ReadingBrockman, John. “Beyond Computation.” Edge 2000. Availableonline. URL: http://www.edge.org/3rd_culture/brooks_beyond/beyond_index.html. Accessed May 3, 2007.———. “The Deep Question: A Talk with Rodney Brooks.” Edge29 (November 19, 1997). Available online. URL: http://www.edge.org/documents/archive/edge29.html. Accessed May 3,2007.Brooks, Rodney. Flesh <strong>and</strong> Machines: How Robots Will Change Us.New York: Pantheon Books, 2002.<strong>Computer</strong> <strong>Science</strong> <strong>and</strong> Artificial Intelligence Laboratory (CSAIL),MIT. Available online. URL: http://www.csail.mit.edu/index.php. Accessed May 3, 2007.Henderson, Harry. Modern Robotics: Building Versatile Machines.New York: Chelsea House, 2006.O’Connell, Sanjida. “Cog—Is It More than a Machine?” LondonTimes (May 6, 2002): 10. Rodney Brooks [homepage]. CSAIL.Available online. URL: http://people.csail.mit.edu/brooks/.Accessed May 3, 2007.“Rodney Brooks—The Past <strong>and</strong> Future <strong>of</strong> Behavior Based Robotics”[Podcast]. Available online. URL: http://lis.epfl.ch/resources/podcast/mp3/TalkingRobots-RodneyBrooks.mp3.Accessed May 3, 2007.buffering<strong>Computer</strong> designers must deal with the way different parts<strong>of</strong> a computer system process data at different speeds. Forexample, text or graphical data can be stored in main memory(RAM) much more quickly than it can be sent to aprinter, <strong>and</strong> in turn data can be sent to the printer fasterthan the printer is able to print the data. The solution tothis problem is the use <strong>of</strong> a buffer (sometimes called aspool), or memory area set aside for the temporary storage<strong>of</strong> data. Buffers are also typically used to store data to bedisplayed (video buffer), to collect data to be transmittedto (or received from) a modem, for transmitting audio orvideo content (see streaming) <strong>and</strong> for many other devices(see input/output). Buffers can also be used for data thatmust be reorganized in some way before it can be furtherprocessed. For example, character data is stored in a communicationsbuffer so it can be serialized for transmission.Buffering TechniquesThe two common arrangements for buffering data are thepooled buffer <strong>and</strong> the circular buffer. In the pool buffer,multiple buffers are allocated, with the buffer size beingequal to the size <strong>of</strong> one data record. As each data record isreceived, it is copied to a free buffer from the pool. When itis time to remove data from the buffer for processing, datais read from the buffers in the order in which it had beenstored (first in, first out, or FIFO). As a buffer is read, it ismarked as free so it can be used for more incoming data.In the circular buffer there is only a single buffer, largeenough to hold a number <strong>of</strong> data records. The buffer is setup as a queue (see queue) to which incoming data recordsare written <strong>and</strong> from which they are read as needed for processing.Because the queue is circular, there is no “first” or“last” record. Rather, two pointers (called In <strong>and</strong> Out) aremaintained. As data is stored in the buffer, the In pointer isincremented. As data is read back from the buffer, the Outpointer is incremented. If either pointer reaches aroundback to the beginning, it begins to wrap around. The s<strong>of</strong>twaremanaging the buffer must make sure that if the Inpointer goes past the Out pointer, then the Out pointermust not go past In. Similarly, if Out goes past In, then Inmust not go past Out.The fact that programmers sometimes fail to check forbuffer overflows has resulted in a seemingly endless series<strong>of</strong> security vulnerabilities, such as in earlier versions <strong>of</strong> theUNIX sendmail program. In one technique, attackers canuse a too-long value to write data, or worse, comm<strong>and</strong>sinto the areas that control the program’s execution, possiblytaking over the program (see also computer crime <strong>and</strong>security).Buffering is conceptually related to a variety <strong>of</strong> othertechniques for managing data. A disk cache is essentially aspecial buffer that stores additional data read from a disk inanticipation that the consuming program may soon requestit. A processor cache stores instructions <strong>and</strong> data in anticipation<strong>of</strong> the needs <strong>of</strong> the CPU. Streaming <strong>of</strong> multimedia(video or sound) buffers a portion <strong>of</strong> the content so it can beplayed smoothly while additional content is being receivedfrom the source.Depending on the application, the buffer can be a part<strong>of</strong> the system’s main memory (RAM) or it can be a separatememory chip or chips onboard the printer or other device.Decreasing prices for RAM have led to increases in thetypical size <strong>of</strong> buffers. Moving data from main memoryto a peripheral buffer also facilitates the multitasking featurefound in most modern operating systems, by allowingapplications to buffer their output <strong>and</strong> continue processing.Further ReadingBuffer Overflow [articles]. Available online. URL: http://doc.bughunter.net/buffer-overflow/.Accessed May 23, 2007.Grover, S<strong>and</strong>eep. “Buffer Overflow Attacks <strong>and</strong> Their Countermeasures.”Linux Journal, March 3, 2003. Available online.URL: http://www.linuxjournal.com/article/6701. AccessedMay 23, 2007.


ulletin board systems 61bugs <strong>and</strong> debuggingIn general terms a bug is an error in a computer programthat leads to unexpected <strong>and</strong> unwanted behavior. (Lore hasit that the first “bug” was a burnt moth found in the relays<strong>of</strong> the early Mark I computer in the 1940s; however, as earlyas 1878 Thomas Edison had referred to “bugs” in the design<strong>of</strong> his new inventions.)<strong>Computer</strong> bugs can be divided into two categories: syntaxerrors <strong>and</strong> logic errors. A syntax error results fromfailing to follow a language’s rules for constructing statements,or from using the wrong symbol. For example, eachstatement in the C language must end with a semicolon.This sort <strong>of</strong> syntax error is easily detected <strong>and</strong> reported bymodern compilers, so fixing it is trivial.A logic error, on the other h<strong>and</strong>, is a syntactically validstatement that does not do what was intended. For example,if a C programmer writes:if Total = 100instead <strong>of</strong>if Total == 100the programmer may have intended to test the value <strong>of</strong> Totalto see if it is 100, but the first statement actually assigns thevalue <strong>of</strong> 100 to Total. That’s because a single equals sign inC is the assignment operator; testing for equality requiresthe double equals sign. Further, the error will result in theif statement always being true, because the truth value <strong>of</strong> anassignment is the value assigned (100 in this case) <strong>and</strong> anynonzero value is considered to be “true” (see branchingstatements).Loops <strong>and</strong> pointers are frequent sources <strong>of</strong> logical errors(see loop <strong>and</strong> pointers <strong>and</strong> indirection). The boundarycondition <strong>of</strong> a loop can be incorrectly specified (for example,< 10 when < = 10 is wanted). If a loop <strong>and</strong> a pointer orindex variable are being used to retrieve data from an array,pointing beyond the end <strong>of</strong> the array will retrieve whateverdata happens to be stored out there.Errors can also be caused in the conversion <strong>of</strong> data <strong>of</strong>different types (see data types). For example, in many languageimplementations the compiler will automatically convertan integer value to floating point if it is to be assignedto a floating point variable. However, while an integer canretain at least nine decimal digits <strong>of</strong> precision, a float mayonly be able to guarantee seven. The result could be a loss<strong>of</strong> precision sufficient to render the program’s results unreliable,particularly for scientific purposes.Debugging TechniquesThe process <strong>of</strong> debugging (identifying <strong>and</strong> fixing bugs) isaided by the debugging features integrated into most modernprogramming environments. Some typical featuresinclude the ability to set a breakpoint or place in the codewhere the running program should halt so the values <strong>of</strong> keyvariables can be examined. A watch can be set on specifiedcertain variables so their changing values will be displayedas the program executes. A trace highlights the source codeto show what statements are being executed as the programruns. (It can also be set to follow execution into <strong>and</strong> throughany procedures or subroutines called by the main code.)During the process <strong>of</strong> s<strong>of</strong>tware development, debuggingwill usually proceed h<strong>and</strong> in h<strong>and</strong> with s<strong>of</strong>tware testing.Indeed, the line between the two can be blurry. Essentially,debugging deals with fixing problems so that the programis doing what it intends to do, while testing determineswhether the program’s performance adequately meets theneeds <strong>and</strong> objectives <strong>of</strong> the end user.Further ReadingAgans, David J. Debugging: The Nine Indispensable Rules for FindingEven the Most Elusive S<strong>of</strong>tware <strong>and</strong> Hardware Problems. NewYork: AMACOM, 2002.Robbins, John. Debugging Applications. Redmond, Wash.: Micros<strong>of</strong>tPress, 2000.Rosenberg, Jonathan B. How Debuggers Work: Algorithms, DataStructures, <strong>and</strong> Architecture. New York: Wiley, 1996.bulletin board systems (BBS)An electronic bulletin board is a computer application thatlets users access a computer (usually with a modem <strong>and</strong>phone line) <strong>and</strong> read or post messages on a variety <strong>of</strong> topics.The messages are <strong>of</strong>ten organized by topic, resultingin threads <strong>of</strong> postings, responses, <strong>and</strong> responses to theresponses. In addition to the message service, many bulletinboards provide files that users can download, suchas games <strong>and</strong> other programs, text documents, pictures, orsound files. Some bulletin boards expect users to uploadfiles to contribute to the board in return for the privilege <strong>of</strong>downloading material.The earliest form <strong>of</strong> bulletin board appeared in the late1960s in government installations <strong>and</strong> a few universities participatingin the Defense Department’s ARPANET (the ancestorto the Internet). As more universities came online in theearly 1970s, the Netnews (or Usenet) system <strong>of</strong>fered a way touse UNIX file-transfer programs to store messages in topicalnewsgroups (see netnews <strong>and</strong> newsgroups). The newssystem automatically propagated messages (in the form <strong>of</strong> a“news feed”) from the site where they were originally postedto regional nodes, <strong>and</strong> from there throughout the network.By the early 1980s, a significant number <strong>of</strong> personalcomputer users were connecting modems to their PCs. Bulletinboard s<strong>of</strong>tware was developed to allow an operator(called a “sysop”) to maintain a bulletin board on his orher PC. Users (one or a few at a time) could dial a phonenumber to connect to the bulletin board. In 1984, programmerTom Jennings developed the Fido BBS s<strong>of</strong>tware, whichallowed participating bulletin boards to propagate postingsin a way roughly similar to the distribution <strong>of</strong> UNIX Netnewsmessages.Decline <strong>of</strong> the BBSIn the 1990s, two major developments led to a drastic declinein the number <strong>of</strong> bulletin boards. The growth <strong>of</strong> major servicessuch as America Online <strong>and</strong> CompuServe (see onlineservices) <strong>of</strong>fered users a friendlier user interface, a comprehensiveselection <strong>of</strong> forums <strong>and</strong> file downloads, <strong>and</strong>


CCThe C programming language was developed in the early1970s by Dennis Ritchie, who based it on the earlier languagesBCPL <strong>and</strong> B. C was first used on DEC PDP-11computers running the newly developed UNIX operatingsystem, where the language provided a high-level alternativeto the use <strong>of</strong> PDP Assembly language for development<strong>of</strong> the many utilities that give UNIX its flexibility.Since the 1980s, C <strong>and</strong> its descendent, C++, have becomethe most widely used programming languages.Language FeaturesLike the earlier Algol <strong>and</strong> the somewhat later Pascal, Cis a procedural language that reflects the philosophy <strong>of</strong>programming that was gradually taking shape duringthe 1970s (see structured programming). In general,C’s approach can be described as providing the necessaryfeatures for real world computing in a compact <strong>and</strong>efficient form. The language provides the basic controlstructures such as if <strong>and</strong> switch (see branching statements)<strong>and</strong> while, do, <strong>and</strong> for (see loop). The built-indata types provide for integers (int, short, <strong>and</strong> long),floating-point numbers (float <strong>and</strong> double), <strong>and</strong> characters(char). An array <strong>of</strong> any type can be declared, <strong>and</strong> a stringis implemented as an array <strong>of</strong> char (see data types <strong>and</strong>characters <strong>and</strong> strings).Pointers (references to memory locations) are used for avariety <strong>of</strong> purposes, such as for storing <strong>and</strong> retrieving datain an array (see pointers <strong>and</strong> indirection). While theuse <strong>of</strong> pointers can be a bit difficult for beginners to underst<strong>and</strong>,it reflects C’s emphasis as a systems programminglanguage that can “get close to the hardware” in manipulatingmemory.Data <strong>of</strong> different types can be combined into a recordtype called a struct. Thus, for example:struct Employee_Record {char [10] First_Name;char [1] Middle_Initial;char [20] Last_Name;int Employee_Number;} ;(There is also a union, which is a struct where the samestructure can contain one <strong>of</strong> two different data items.)The st<strong>and</strong>ard mathematical <strong>and</strong> logical comparisonoperators are available. There are a couple <strong>of</strong> quirks: theequals comparison operator is = =, while a single equal sign= is an assignment operator. This can create a pitfall for thewary, since the conditionif (Total = 10)printf (“Finished!”);always prints Finished, since the assignment Total = 10returns a value <strong>of</strong> 10 (which not being zero, is “true” <strong>and</strong>satisfies the if condition).C also features an increment ++ <strong>and</strong> decrement - - operator,which is convenient for the common operation <strong>of</strong> raisingor lowering a variable by one in a counting loop. In Cthe following statements are equivalent:65


66 CTotal = Total + 1;Total += 1;Total ++;Unlike Pascal’s two separate kinds <strong>of</strong> procedures (func,or function, which returns a value, <strong>and</strong> proc, or procedure,which does not), C has only functions. Arguments arepassed to functions by value, but can be passed by referenceby using a pointer. (See procedures <strong>and</strong> functions.)Sample ProgramThe following is a brief example program:#include float Average (void);main () {printf (“The average is: %f”, Average() );}float Average (void) {int NumbersRead = 0;int Number;int Total = 0;while (scanf(“%d\n”, &Number) == 1){Total = Total + Number;NumbersRead = NumbersRead + 1;}return (Total / NumbersRead);}}Statements at the beginning <strong>of</strong> the program that beginwith # are preprocessor directives. These make changes tothe source code before it is compiled. The #include directiveadds the specified source file to the program. Unlike manyother languages, the C language itself does not includemany basic functions, such as input/output (I/O) statements.Instead, these are provided in st<strong>and</strong>ard libraries.(The purpose <strong>of</strong> this arrangement is to keep the languageitself simple <strong>and</strong> portable while keeping the implementation<strong>of</strong> functions likely to vary on different platforms separate.)The stdio.h file here is a “header file” that definesthe I/O functions, such as printf() (which prints formatteddata) <strong>and</strong> scanf() (which reads data into the program <strong>and</strong>formats it).The next part <strong>of</strong> the program declares any functions thatwill be defined <strong>and</strong> used in the program (in this case, thereis only one function, Average). The function declarationbegins with the type <strong>of</strong> data that will be returned by thefunction to the calling statement (a floating point value inthis case). After the function name comes declarations forany parameters that are to be passed to the function by thecaller. Since the Average function will get its data from userinput rather than the calling statement, the value (void) isused as the parameter.Following the declaration <strong>of</strong> Average comes the main()function. Every C program must have a main function. Mainis the function that runs when the program begins to execute.Typically, main will call a number <strong>of</strong> other functionsto perform the necessary tasks. Here main calls Averagewithin the printf statement, which will print the average asreturned by that function. (Calling functions within otherstatements is an example <strong>of</strong> C’s concise syntax.)Finally, the Average function is defined. It uses a loopto read in the data numbers, which are totaled <strong>and</strong> thendivided to get the average, which is sent back to the callingstatement by the return statement.A programmer could create this program on a UNIXsystem by typing the code into a source file (test.c in thiscase) using a text editor such as vi. A C compiler (gcc inthis case) is then given the source code. The source code iscompiled, <strong>and</strong> linked, creating the executable program filea.out. Typing that name at the comm<strong>and</strong> prompt runs theprogram, which asks for <strong>and</strong> averages the numbers.% gcc test.c% a.out579.The average is: 7.000000Success <strong>and</strong> ChangeIn the three decades after its first appearance, C became one<strong>of</strong> the most successful programming languages in history.In addition to becoming the language <strong>of</strong> choice for mostUNIX programming, as microcomputers became capable <strong>of</strong>running high-level languages, C became the language <strong>of</strong>choice for developing MS-DOS, Windows, <strong>and</strong> Macintoshprograms. The application programming interface (API) forWindows, for example, consists <strong>of</strong> hundreds <strong>of</strong> C functions,structures, <strong>and</strong> definitions (see application programminginterface <strong>and</strong> Micros<strong>of</strong>t Windows).However, C has not been without its critics amongcomputer scientists. Besides containing idioms that canencourage cryptic coding, the original version <strong>of</strong> C (asdefined in Kernighan <strong>and</strong> Ritchie’s The C ProgrammingLanguage) did not check function parameters to makesure they matched the data types expected in the functiondefinitions. This problem led to a large number <strong>of</strong>hard-to-catch bugs. However, the development <strong>of</strong> ANSIst<strong>and</strong>ard C with its stricter requirements, as well as typechecking built into compilers has considerably amelioratedthis problem. At about the same time, C++ becameavailable as an object-oriented extension <strong>and</strong> partial rectification<strong>of</strong> C. While C++ <strong>and</strong> Java have considerablysupplanted C for developing new programs, C programmershave a relatively easy learning path to the newerlanguages <strong>and</strong> the extensive legacy <strong>of</strong> C code will remainuseful for years to come.Further ReadingKernighan, B. W., <strong>and</strong> D. M. Ritchie. The C Programming Language,2nd ed. Upper Saddle River, N.J.: Prentice-Hall, 1988.Prata, Stephen. C Primer Plus. 5th ed. Indianapolis: SAMS, 2004.Ritchie, D. M. “The Development <strong>of</strong> the C Language,” in History <strong>of</strong>Programming Languages II, ed. T. J. Bergin <strong>and</strong> R. G. Gibson,678–698. Reading, Mass.: Addison-Wesley, 1995.


C++ 67C#Introduced in 2002, C# (pronounced “C sharp”) is a programminglanguage similar to C++ <strong>and</strong> Java but simplifiedin several respects <strong>and</strong> tailored for use with Micros<strong>of</strong>t’slatest programming platform (see Micros<strong>of</strong>t.net). C# isa general-purpose language <strong>and</strong> is thoroughly objectoriented—allfunctions must be declared as members <strong>of</strong>a class or “struct,” <strong>and</strong> even fundamental data types arederived from the System.Object class (see class <strong>and</strong> objectorientedprogramming).Compared with C++, C# is stricter about the use <strong>and</strong>conversion <strong>of</strong> data types, not allowing most implicit conversions(such as from an enumeration type to the correspondinginteger—see data structures). Unlike C++,C# does not permit multiple inheritance (where a type canbe derived from two or more base types), thereby avoidingan added layer <strong>of</strong> complexity in class relationships inlarge s<strong>of</strong>tware projects. (However, a similar effect can beobtained by declaring multiple “interfaces” or specifiedways <strong>of</strong> accessing the same class.)Unlike Java (but like C++), C# includes pointers (<strong>and</strong>a safer version called “delegates”), enumerations (enumtypes), structs (treated as lightweight classes), <strong>and</strong> overloading(multiple definitions for operators). The latest version<strong>of</strong> the language, C# 3.0 (introduced in 2007), providesadditional features for list processing <strong>and</strong> functional programming(see functional languages).The canonical “Hello World” program looks like this inC#:using System;// A “Hello World!” program in C#namespace HelloWorld{class Hello{static void Main(){System.Console.WriteLine(“Hello World!”);}}}Essentially all program structures must be part <strong>of</strong> aclass. The first statement brings in the System class, fromwhich are derived basic interface methods. A program canhave one or more namespaces, which are used to organizeclasses <strong>and</strong> other structures to avoid ambiguity. This programhas only one class (Hello), which includes a Mainfunction (every program must have one <strong>and</strong> only one). Thisfunction calls the Console member <strong>of</strong> the System class, <strong>and</strong>in turn uses the WriteLine method to display the text.C++ <strong>and</strong> Micros<strong>of</strong>t DevelopmentC# is part <strong>of</strong> a family <strong>of</strong> languages (including C++, J#[an equivalent version <strong>of</strong> Java], <strong>and</strong> Visual Basic.NET). Allthese languages compile to a common intermediate language(IL). The common class framework, Micros<strong>of</strong>t.NET,has replaced earlier frameworks for Windows programming<strong>and</strong>, increasingly, for modern Web development (seealso Ajax).Although it has been primarily associated with Micros<strong>of</strong>tdevelopment <strong>and</strong> Windows, the Mono <strong>and</strong> Dot GNUprojects provide C# <strong>and</strong> an implementation <strong>of</strong> the CommonLanguage Infrastructure, <strong>and</strong> many (but not all) <strong>of</strong> the.NET libraries for the Linux/UNIX environment.Further Reading“The C# Language.” MSDN. Available online. URL: http://msdn2.micros<strong>of</strong>t.com/en-us/vcsharp/aa336809.aspx. Accessed April28. 2007.Davis, Stephen R<strong>and</strong>y. C# for Dummies. New York: Hungry Minds,2002.Hejlsberg, Andres, Scott Wiltamuth, <strong>and</strong> Peter Golde. The C# ProgrammingLanguage. 2nd ed. Upper Saddle River, N.J.: Addison-Wesley,2006.C++The C++ language was designed by Bjarne Stroustrup atAT&T’s Bell Labs in Murray Hill, New Jersey, starting in1979. By that time the C language had become well establishedas a powerful tool for systems programming (seeC). However Stroustrup (<strong>and</strong> others) believed that C’s limiteddata structures <strong>and</strong> function mechanism were provinginadequate to express the relationships found in increasinglylarge s<strong>of</strong>tware packages involving many objects withcomplex relationships.Consider the example <strong>of</strong> a simple object: a stack ontowhich numbers can be “pushed” or from which they can be“popped” (see stack). In C, a stack would have to be implementedas a struct to hold the stack data <strong>and</strong> stack pointer,<strong>and</strong> a group <strong>of</strong> separately declared functions that couldaccess the stack data structure in order to, for example“push” a number onto the stack or “pop” the top numberfrom it. In such a scheme there is no direct, enforceablerelationship between the object’s data <strong>and</strong> functions. Thismeans, among other things, that parts <strong>of</strong> a program couldbe dependent on the internal structure <strong>of</strong> the object, orcould directly access <strong>and</strong> change such internal data. In alarge s<strong>of</strong>tware project with many programmers working onthe code, this invites chaos.An alternative paradigm already existed (see objectorientedprogramming) embodied in a few new languages(see Simula <strong>and</strong> Smalltalk). These languages allow for thestructuring <strong>of</strong> data <strong>and</strong> functions together in the form <strong>of</strong>objects (or classes). Unlike a C struct, a class can containboth the data necessary for describing an object <strong>and</strong> thefunctions needed for manipulating it (see class). A class“encapsulates” <strong>and</strong> protects its private data, <strong>and</strong> communicateswith the rest <strong>of</strong> the program only through calls to itsdefined functions.Further in object-oriented languages, the principle <strong>of</strong>inheritance could be used to proceed from the most general,abstract object to particular versions suited for specifictasks, with each object retaining the general capabilities<strong>and</strong> revising or adding to them. Thus, a “generic” list foundationclass could be used as the basis for deriving a variety<strong>of</strong> more specialized lists (such as a doubly-linked list).


68 C++While attracted to the advantages <strong>of</strong> the object-orientedapproach, Stroustrup also wanted to preserve the Clanguage’s ability to precisely control machine behaviorneeded for systems programming. He thus decided to builda new language on C’s familiar syntax <strong>and</strong> features withobject-oriented extensions. Stroustrup wrote the first version,called “C with Classes” as his Ph.D. thesis at CambridgeUniversity in Engl<strong>and</strong>. This gradually evolved intoC++ through the early 1980s.C++ FeaturesThe fundamental building block <strong>of</strong> C++ is the class. A classis used to create objects <strong>of</strong> its type. Each object containsa set <strong>of</strong> data <strong>and</strong> can carry out specified functions whencalled upon by the program. For example, the followingclass defines an array <strong>of</strong> integers <strong>and</strong> declares some functionsfor working with the array. Typically, it would be putin a header file (such as stack.h):const int Max_size=20; // maximum elementsin Stackclass Stack { // Declare the Stack classpublic: // These functions are availableoutsideStack(); // Constructor to create Stackobjectsvoid push (int); // push int on Stackint pop(); // remove top elementprivate: // This data can only be used inclassint index;int Data[Max_size];};Next, the member functions <strong>of</strong> the Stack class aredefined. The definitions can be put in a source file Stack.cpp:#include “Stack.h” // bring in the declarationsStack::Stack() { index=0;} // set zero fornew stackvoid Stack::push (int item) { // put a numberon stackData[index++] = item;}int Stack::pop(){ // remove top numberreturn Data [index–];}Now a second source file (Stacktest.cpp) can be written.It includes a main() function that creates a Stack object <strong>and</strong>tests some <strong>of</strong> the class functions:#include “Stack.cpp” // include the Stackclass#include // include st<strong>and</strong>ard I/Olibrarymain() {Stack S; // Create a Stack object called Sint index;for (index = 1; index


cache 69particularly for writing s<strong>of</strong>tware to run on Web servers <strong>and</strong>browsers (see Java). For an alternative approach to creatinga somewhat more “streamlined” C-type language, see c#.Further Reading“C++ Archive.” Available online. URL: http://www.austinlinks.com/CPlusPlus/. Accessed May 24, 2007.“Complete C++ Language Tutorial.” Available online. URL:http://www.cplusplus.com/_doc/tutorial/. Accessed May24, 2007.Prata, Stephen. C++ Primer Plus. 5th ed. Indianapolis: SAMS,2004.Stroustrup, Bjarne. “A History <strong>of</strong> C++: 1979–1991.” In History <strong>of</strong>Programming Languages II, edited by Thomas J. Bergin, Jr.,<strong>and</strong> Richard G. Gibson, Jr. New York: ACM Press; Reading,Mass.: Addison-Wesley, 1996, 699–755.———. The C++ Programming Language. Special 3rd ed. Reading,Mass.: Addison-Wesley, 2000.cable modemOne <strong>of</strong> the most popular ways to connect people to theInternet takes advantage <strong>of</strong> the cable TV infrastructure thatalready exists in most communities. (For another pervasivealternative, using telephone lines, see dsl.)Cable systems <strong>of</strong>fer high-speed access (see broadb<strong>and</strong>)up to about 6 megabits/second (Mb/s), at least 20 timesfaster than an ordinary telephone modem <strong>and</strong> generallysuitable for receiving today’s multimedia <strong>of</strong>ferings, includingstreaming video. (Upload speeds are usually “throttled”to 384 kb/s or fewer.)In a typical installation, a splitter is used to separate thesignal used for cable TV from the one used for data transmission.The data cable is then connected to the modem.The modem can then either be connected directly to a computerusing a st<strong>and</strong>ard Ethernet “Cat 5” cable, or connectedto a switch (or more commonly, a router) that will in turnprovide the Internet connection to computers on the localnetwork. (If the cable modem is connected directly to acomputer, additional security against intrusions should alsobe provided. See firewall.)A typical cable TV system has from 60 channels to severalhundred, most <strong>of</strong> which are used for TV programming.A few channels are dedicated to providing Internet service.Users in a given division <strong>of</strong> the cable network (typically asmall neighborhood) thus share a fixed pool <strong>of</strong> b<strong>and</strong>width,which can reduce speed at times <strong>of</strong> high usage. The cablesystem can adjust by reallocating channels from TV to dataor by adding new channels.DOCSIS (Data Over Cable Service Interface Specification)is the industry st<strong>and</strong>ard for cable modems in NorthAmerica.Marketing ConsiderationsAs <strong>of</strong> 2007 there were about 30 million households in NorthAmerica with cable Internet service. Monthly service feesare $40–$60, though cable providers generally try to bundletheir cable TV <strong>and</strong> Internet services. Increasingly theyare also <strong>of</strong>fering telephone service over the cable network,using voice over Internet protocol (see voip).In turn, telephone companies compete with cable companiesby <strong>of</strong>fering DSL Internet access. Although “traditional”DSL is generally somewhat slower than cablemodems, Verizon in 2005 announced a new, much fasterfiber-based form <strong>of</strong> DSL called fios, with speeds <strong>of</strong> up to15 Mb/s (see also fiber optics). And just as cable companiescan now <strong>of</strong>fer phone service over the Internet, phonecompanies can <strong>of</strong>fer video content, potentially competingwith cable TV services. (Verizon has announced its ownInternet-based television network, IPTV.) In general there islikely to be increased competition <strong>and</strong> more (if sometimesperplexing) choices for consumers.Further ReadingCable Industry Insider. Available online. URL: http://www.lightreading.com/cdn/.Accessed May 10, 2007.Cable Modem Information Network. Available online. URL: http://www.cable-modem.net/. Accessed May 10, 2007.Dominick, Joseph R., Barry L. Sherman, <strong>and</strong> Fritz J. Messere.Broadcasting, Cable, the Internet <strong>and</strong> Beyond: An Introductionto Electronic Media. 6th ed. New York: McGraw-Hill, 2007.Dutta-Roy, Amitava. Cable Modem: <strong>Technology</strong> <strong>and</strong> Applications.New York: Wiley-Interscience, 2007.cacheA basic problem in computer design is how to optimizethe fetching <strong>of</strong> instructions or data so that it will be readywhen the processor (CPU) needs it. One common solutionis to use a cache. A cache is an area <strong>of</strong> relatively fast-accessmemory into which data can be stored in anticipation <strong>of</strong> itsbeing needed for processing. Caches are used mainly in twocontexts: the processor cache <strong>and</strong> the disk cache.CPU CacheThe use <strong>of</strong> a processor cache is advantageous becauseinstructions <strong>and</strong> data can be fetched more quickly fromthe cache (static memory chips next to or within the CPU)than they can be retrieved from the main memory (usuallydynamic RAM). An algorithm analyzes the instructionscurrently being executed by the processor <strong>and</strong> triesto anticipate what instructions <strong>and</strong> data are likely to beneeded in the near future. (For example, if the instructionscall for a possible branch to one <strong>of</strong> two sets <strong>of</strong> instructions,the cache will load the set that has been used most<strong>of</strong>ten or most recently. Since many programs loop over<strong>and</strong> over again through the same instructions until somecondition is met, the cache’s prediction will be right most<strong>of</strong> the time.)These predicted instructions <strong>and</strong> data are transferredfrom main memory to the cache while the processor isstill executing the earlier instructions. If the cache’s predictionwas correct, when it is time to fetch these instructions<strong>and</strong> data they are already waiting in the high-speed cachememory. The result is an effective increase in the CPU’sspeed despite there being no increase in clock rate (the rateat which the processor can cycle through instructions).The effectiveness <strong>of</strong> a processor cache depends on twothings: the mix <strong>of</strong> instructions <strong>and</strong> data being processed <strong>and</strong>


70 calculatorthe location <strong>of</strong> the cache memory. If a program uses longsequences <strong>of</strong> repetitive instructions <strong>and</strong>/or data, caching willnoticeably speed it up. A cache located within the CPU itself(called an L1 cache) is faster (albeit more expensive) than anL2 cache, which is a separate set <strong>of</strong> chips on the motherboard.Changes made to data by the CPU are normally writtenback to the cache, not to main memory, until the cache isfull. In multiprocessor systems, however, designers <strong>of</strong> processorcaches must deal with the issue <strong>of</strong> cache coherency.If, for example, several processors are executing parts <strong>of</strong> thesame code <strong>and</strong> are using a shared main memory to communicate,one processor may change the value <strong>of</strong> a variable inmemory but not write it back immediately (since its cacheis not yet full). Meanwhile, another processor may load theold value from the cache, unaware that it has been changed.This can be prevented by using special hardware that c<strong>and</strong>etect such changes <strong>and</strong> automatically “write through” thenew value to the memory. The processors, having receiveda hardware or s<strong>of</strong>tware “signal” that data has been changed,can be directed to reread it.Disk CacheA disk cache uses the same general principle as a processorcache. Here, however, it is RAM (either a part <strong>of</strong> mainmemory or separate memory on the disk drive) that is thefaster medium <strong>and</strong> the disk drive itself that is slower. Whenan application starts to request data from the disk, the cachereads one or more complete blocks or sectors <strong>of</strong> data from thedisk rather than just the data record being requested. Then, ifthe application continues to request sequential data records,these can be read from the high-speed memory on the cacherather than from the disk drive. It follows that disk cachingis most effective when an application, for example, loads adatabase file that is stored sequentially on the disk.Similarly, when a program writes data to the disk, thedata can be accumulated in the cache <strong>and</strong> written back tothe drive in whole blocks. While this increases efficiency,if a power outage or other problem erases or corrupts thecache contents, the cache will no longer be in synch withthe drive. This can cause corruption in a database.Micros<strong>of</strong>t’s Windows Vista introduced an ingenioustype <strong>of</strong> cache at the system level. The “ReadyBoost” featuresallows many inexpensive USB flash drives to be used automaticallyas disk caches to store recently used data that hadbeen paged out <strong>of</strong> main RAM memory.Network CacheCaching techniques can be used in other ways. For example,most Web browsers are set to store recently read pageson disk so that if the user directs the browser to go back tosuch a page it can be read from disk rather than having tobe retransmitted over the Internet (generally a slower process).Web servers <strong>and</strong> ISPs (such as cable services) can alsocache popular pages so they can be served up quickly.Further ReadingNottingham, Mark. “Caching Tutorial for Web Authors <strong>and</strong> Webmasters.”Available online. URL: http://www.wdvl.com/Internet/Cache/index._html. Accessed May 24, 2007.“System Cache.” Available online. URL: http://www.pcguide.com/ref/mbsys/cache/. Accessed April 14, 2008.Peir, J.-K., W. Hsu, <strong>and</strong> A. J. Smith. “Implementation Issues inModern Cache Memories.” IEEE Transactions on <strong>Computer</strong>s,48, 2 (1998): 100–110.calculatorThe use <strong>of</strong> physical objects to assist in performing calculationsbegins in prehistory with such practices as countingwith pebbles or making what appears to be countingmarks on pieces <strong>of</strong> bone. Nor should such simple manipulationsbe despised: In somewhat more sophisticated form ityielded the abacus, whose operators regularly outperformedmechanical calculators until the advent <strong>of</strong> electronics.Generally, however, the term calculator is used to referto a device that is able to store a number, add it to anothernumber, <strong>and</strong> mechanically produce the result, taking care<strong>of</strong> any carried digits. In 1623, astronomer Johannes Keplercommissioned such a machine from Wilhelm Schickard.The machine combined a set <strong>of</strong> “Napier’s bones” (slidesmarked with logarithmic intervals, the ancestor <strong>of</strong> the sliderule) <strong>and</strong> a register consisting <strong>of</strong> a set <strong>of</strong> toothed wheels thatcould be rotated to displays the digits 0 to 9, automaticallycarrying one place to the left. This ingenious machine wasdestroyed in a fire before it could be delivered to Kepler.In 1642, French philosopher <strong>and</strong> mathematician BlaisePascal invented an improved mechanical calculator. Itsmechanism used a carry mechanism with a weight thatwould drop when a carry was reached, pulling the nextwheel into position. This avoided having to use excessiveforce to carry a digit through several places. Pascal produceda number <strong>of</strong> his machines <strong>and</strong> tried to market themto accountants, but they never really caught on.Schikard’s <strong>and</strong> Pascal’s calculators could only add, butin 1674 German mathematician Gottfried Wilhelm Leibnizinvented a calculator that could work with all the digits <strong>of</strong>a number at once, rather than carrying from digit to digit.It worked by allowing a variable number <strong>of</strong> gear teeth tobe engaged in each digit wheel. The operator could, forexample, set the wheels to a number such as 215, <strong>and</strong> thenturn a crank three times to multiply it by three, giving aresult <strong>of</strong> 645. This mechanism, gradually improved, wouldremain fundamental to mechanical calculators for the nextthree centuries.The first calculator efficient enough for general businessuse was invented by an American, Dorr E. Felt, in 1886.His machine, called a Comptometer, used the energy transmittedthrough the number-setting mechanism to performthe addition, considerably speeding up the calculating process.Improved machines by William Burroughs <strong>and</strong> otherswould replace the arm <strong>of</strong> the operator with an electricmotor <strong>and</strong> provide a printing tape for automatically recordinginput numbers <strong>and</strong> results.Electronic CalculatorsThe final stage in the development <strong>of</strong> the calculator wouldbe characterized by the use <strong>of</strong> electronics to replacemechanical (or electromechanical) action. The use <strong>of</strong> logic


cars <strong>and</strong> computing 71circuits to perform calculations electronically was first seenin the giant computers <strong>of</strong> the late 1940s, but this was obviouslyimpractical for desktop <strong>of</strong>fice use. By the late 1960s,however, transistorized calculators comparable in size tomechanical desktop calculators came into use. By the 1970s,the use <strong>of</strong> integrated circuits made it possible to shrink thecalculator down to palm-size <strong>and</strong> smaller. These calculatorsuse a microprocessor with a set <strong>of</strong> “microinstructions” thatenable them to perform a repertoire <strong>of</strong> operations rangingfrom basic arithmetic to trigonometric, statistical, or business-relatedfunctions.The most advanced calculators are programmable bytheir user, who can enter a series <strong>of</strong> steps (including perhapsdecisions <strong>and</strong> branching) as a stored program, <strong>and</strong>then apply it to data as needed. At this point the calculatorcan be best thought <strong>of</strong> as a small, somewhat limited computer.However, even these limits are constantly stretched:During the 1990s it became common for students to usegraphing calculators to plot equations. Calculator use isnow generally accepted in schools <strong>and</strong> even in the taking <strong>of</strong>the Scholastic Aptitude Test (SAT). However, some educatorsare concerned that overdependence on calculators maybe depriving students <strong>of</strong> basic numeracy, including the abilityto estimate the magnitude <strong>of</strong> results.Further ReadingAspray, W., ed. Computing Before <strong>Computer</strong>s. Ames: Iowa StateUniversity Press, 1989.The Old Calculator Museum. Links to Interesting Calculator-RelatedSites. Available online. URL: http://www.oldcalculatormuseum.com/links.html. Accessed May 25, 2007.cars <strong>and</strong> computingDevelopment <strong>of</strong> automotive technology has tended to beincremental rather than revolutionary. The core “hardware”such as the engine <strong>and</strong> drive train has changed little overseveral decades, other than the replacement <strong>of</strong> carburetorswith fuel injection systems, <strong>and</strong> some improvements inareas such as brake design. On the other h<strong>and</strong> there havebeen significant improvements in safety features such asseat belts, air bags, <strong>and</strong> improved crash absorption barriers.In recent years, however, the incorporation <strong>of</strong> computersin automobile design (see also embedded system) hasled to a number <strong>of</strong> significant advances in areas such asfuel efficiency, traction/stability, crash response, <strong>and</strong> driverinformation <strong>and</strong> navigation. Put simply, cars are becoming“smarter” <strong>and</strong> are making driving easier <strong>and</strong> safer.Hybrid cars (such as gas/electric systems) depend oncomputers to sense how the car is being driven <strong>and</strong> whento augment electric power with the gas engine, as well ascontrolling the feeding <strong>of</strong> power back into the batteries (asin regenerative braking). In all cars, a general-purpose computingplatform (such as one that has been developed byMicros<strong>of</strong>t) can keep drivers up to date on everything fromroad conditions to regular maintenance reminders. Manypurchasers <strong>of</strong> higher-end vehicles are purchasing servicessuch as OnStar that provide a variety <strong>of</strong> communication,navigation, <strong>and</strong> security <strong>and</strong> safety features. An example <strong>of</strong>the latter includes the automatic sending <strong>of</strong> a signal whenair bags are deployed. An operator then tries to determine ifassistance is needed, <strong>and</strong> contacts local dispatchers. Driverswho lock themselves out accidentally can also have theircars unlocked remotely.Another promising approach is to build systems thatcan monitor the driver’s condition or behavior. For example,by analyzing images <strong>of</strong> the driver’s eyes, facial features,<strong>and</strong> posture (such as slumping), the car may be able to tellwhen the driver has a high probability <strong>of</strong> being impaired(sleepy, drunk, or sick) <strong>and</strong> take appropriate action. (Ofcourse many drivers may object to having their car “watch”them all the time.)Ultimate Smart CarsMuch future progress in car computing will depend on creatingintegrated networking between vehicles <strong>and</strong> the road. Anadvanced navigation system could take advantage <strong>of</strong> real-timeinformation being transmitted by the surrounding vehicles.For example, a stalled car would transmit warning messagesto other drivers about the impending obstacle. Vehicles thatsense an oil slick, ice, or other road hazard could also “mark”the location so it can be avoided by subsequent drivers. Dataabout the speed <strong>and</strong> spacing <strong>of</strong> traffic could provide real-timeinformation about traffic jams, possibly routing vehicles intoalternative lanes or other roads to reduce congestion <strong>and</strong>travel time (see mapping <strong>and</strong> navigation systems).For many futurists, the ultimate “smart car” is one thatcan drive itself with little or no input from its human occupant.Such cars (with appropriate infrastructure) couldeliminate most accidents, use roads more efficiently, <strong>and</strong>maintain mobility for a rapidly aging population. Such eventsas the annual DARPA automated vehicle challenge show considerableprogress being made: Automated cars are alreadydriving cross-country, with the human driver or follow-onvehicle serving only as a safety backup. In 2005 for the firsttime some competitors actually made it across the finishline. “Stanley,” a robotic Volkswagen Touareg designed byStanford University, won the race over an arduous 131-mileThis Mercedes Benz has an integrated navigation system—a featureappearing increasingly in other higher-end cars. (© WolfgangMeier / Visum / The Image Works)


72 cascading style sheetsMojave Desert course, navigating by means <strong>of</strong> a camera, laserrange finders, <strong>and</strong> radar. In 2007 the contest entered a moredifficult arena, where the robot vehicles had to deal withsimulated urban traffic, negotiate intersections <strong>and</strong> trafficcircles, <strong>and</strong> merge with traffic, all while obeying traffic laws.Meanwhile efforts continue for developing a practicalautomated system that could be used for everyday driving. A“tethered” system using magnetic or radio frequency guidesembedded in the road would reduce the complexity <strong>of</strong> theon-board navigation system, but would probably require dedicatedroads. A “free” system linked only wirelessly would bemuch more flexible, but would require the ability to visualize<strong>and</strong> assess a constantly changing environment <strong>and</strong>, ifnecessary, make split-second decisions to avoid accidents.Such systems may also feature extensive automatic communication,where cars can provide each other with informationabout road conditions as well as their intended maneuvers.The biggest obstacles to implementation <strong>of</strong> a fully automatedhighway system may be human rather than technical:the cost <strong>of</strong> the infrastructure, the need to convince thepublic the system is safe <strong>and</strong> reliable, <strong>and</strong> concerns aboutpotential legal liability.Ironically, just as information technology is making carssafer, such activities as cell phone use, text messaging, <strong>and</strong>use <strong>of</strong> in-car entertainment systems seem to be makingdrivers more distracted. Whether cars will get smart fastenough to compensate for increasingly inattentive driversremains an open question.Further ReadingDARPA Gr<strong>and</strong> Challenge. Available online. URL: http://www.darpa.mil/gr<strong>and</strong>challenge/index.asp. Accessed May 18, 2007.Edwards, John. “Robotic Cars Get Street Smart.” Electronic Design55 (June 29, 2007): 89 ff.Shladover, Steven E. “What if Cars Could Drive Themselves?” Availableonline. URL: http://faculty.washington.edu/jbs/itrans/ahspath.htm. Accessed May 18, 2007.Whelan, Richard. Smart Highways, Smart Cars. Boston: ArtechHouse, 1995.cascading style sheets (CSS)Most word processor users are familiar with the use <strong>of</strong> stylesin formatting text. Using a built-in style or defining one’sown, particular characteristics can be assigned to the structuralparts <strong>of</strong> a document, such as headings, lead <strong>and</strong> bodyparagraphs, quotations, references, <strong>and</strong> so on. There are severaladvantages to using styles. Once a style is associatedwith an element, the formatting attached to that style canautomatically be applied to all instances <strong>of</strong> the element. If thewriter decides that, for example, level two headings shouldbe in italics rather than normal font, a simple change to the“head2” style will change all level two headings to italics.Cascading style sheets (CSS) extend this idea to thecreation <strong>of</strong> Web pages. The style sheet defines the structuralelements <strong>of</strong> the document <strong>and</strong> applies the desired formatting.Instead <strong>of</strong> the main text <strong>of</strong> the document being filledwith formatting directives (see html), a style sheet is associatedwith the document. When a compatible Web browserloads the page, it also loads the associated style sheet <strong>and</strong>Cascading Style sheets enable the appearance <strong>and</strong> formatting <strong>of</strong> aWeb page to be h<strong>and</strong>led separately from the page contents. Specificationsprovided in one sheet can be inherited or modified by othersheets.uses it to determine how the page will be displayed. Inother words, the structure <strong>of</strong> the document is separatedfrom the details <strong>of</strong> its presentation. This not only makesit easier to change styles (as with word processing), but italso means that different style sheets can be used to tailorthe document to different viewing situations (for example,viewing in a browser on a h<strong>and</strong>held PDA).CSS uses a st<strong>and</strong>ard “box model” for laying out the presentation<strong>of</strong> a page. From outside in, the areas are definedas outer edge, margin, border, padding, inner edge, <strong>and</strong> thecontent area. Styles are applied in an order that dependson the relationship <strong>of</strong> the affected elements. For example,a style defined for the text body will be inherited by theparagraph, which can then redefine one or more <strong>of</strong> its elements.Similarly, an emphasis style used within a sentencemight override the paragraph style in turn. It is this flowing<strong>of</strong> definitions down through the hierarchy <strong>of</strong> styles that createsthe “cascading” part <strong>of</strong> CSS.As CSS developed further, separate specifications havebeen provided for different media that can be included ina Web page: speech (to be read by a speech synthesizer),Braille (for a tactile Braille system), Emboss (for Brailleprinting), H<strong>and</strong>held (for PDAs <strong>and</strong> other devices with limiteddisplay space), Print, Projection (for computer projectionor transparencies), Screen, Tty (teletype-like displayswith fixed-width characters), <strong>and</strong> TV.Further Reading“CSS From the Ground Up.” Web Page Design. Available online.URL: http://www.wpdfd.com/editorial/basics/index.html.Accessed May 19, 2007.Lie, Hakon Wium, <strong>and</strong> Bert Ros. Cascading Style Sheets: Designingfor the Web. 3rd ed. Addison-Wesley Pr<strong>of</strong>essional, 2005.


CASE 73Meyer, Eric A. CSS: The Definitive Guide. 3rd ed. Sebastapol, Calif.:O’Reilly, 2007.“Zen Garden: The Beauty <strong>of</strong> CSS Design.” Available online. URL:http://www.csszengarden.com. Accessed May 19, 2007.CASE (computer-aided s<strong>of</strong>tware engineering)During the late 1950s <strong>and</strong> 1960s, s<strong>of</strong>tware rapidly grew morecomplex—especially operating system s<strong>of</strong>tware <strong>and</strong> largebusiness applications. With the typical program consisting<strong>of</strong> many components being developed by different programmers,it became difficult both to see the “big picture”<strong>and</strong> to maintain consistent procedures for transferring datafrom one program module to another. As computer scientistsworked to develop sounder principles (see structuredprogramming) it also occurred to them that the power <strong>of</strong>the computer to automate procedures could be used to createtools for facilitating program design <strong>and</strong> managing theresulting complexity. CASE, or computer-aided s<strong>of</strong>twareengineering, is a catchall phrase that covers a variety <strong>of</strong> suchtools involved with all phases <strong>of</strong> development.Design ToolsThe earliest design tool was the flowchart, <strong>of</strong>ten drawnwith the aid <strong>of</strong> a template that could be used to trace thesymbols on paper (see flowchart). With its symbols forthe flow <strong>of</strong> execution through branching <strong>and</strong> looping, theflowchart provides a good tool for visualizing how a programis intended to work. However large <strong>and</strong> complex programs<strong>of</strong>ten result in a sea <strong>of</strong> flowcharts that are hard torelate to one another <strong>and</strong> to the program as a whole. Startingin the 1960s, the creation <strong>of</strong> programs for manipulatingflow symbols made it easier both to design flowcharts <strong>and</strong>to visualize them in varying levels <strong>of</strong> detail.Another early tool for program design is pseudocode, alanguage that is at a higher level <strong>of</strong> abstraction than the targetprogramming language, but that can be refined by addingdetails until the actual program source code has beenspecified (see pseudocode). This is analogous to a writeroutlining the main topics <strong>of</strong> an essay <strong>and</strong> then refiningthem into subtopics <strong>and</strong> supporting details. Attempts weremade to create a well-defined pseudocode that could beautomatically parsed <strong>and</strong> transformed into compilable languagestatements, but they met with only limited success.During the 1980s <strong>and</strong> 1990s, the graphics capabilities<strong>of</strong> desktop computers made it attractive to use a visualrather than linguistic approach to program design. Symbols(sometimes called “widgets”) represent program functionssuch as reading data from a file or creating various kinds<strong>of</strong> charts. A program can be designed by connecting thewidgets with “pipes” representing data flow <strong>and</strong> by settingvarious characteristics or properties.CASE principles can also be seen in mainstream programmingenvironments such as Micros<strong>of</strong>t’s Visual Basic<strong>and</strong> Visual C++, Borl<strong>and</strong>’s Delphi <strong>and</strong> Turbo C++, <strong>and</strong> others(see also programming environment). The designapproach begins with setting up forms <strong>and</strong> placing objects(controls) that represent both user interface items (such asmenus, lists, <strong>and</strong> text boxes) <strong>and</strong> internal processing (suchas databases <strong>and</strong> Web browsers). However these environmentsdo not in themselves provide the ability <strong>of</strong> full CASEtools to manage complex projects with many components.Analysis ToolsOnce a program has been designed <strong>and</strong> implementation isunder way, CASE tools can help the programmers maintainconsistency across their various modules. One such tool(now rather venerable) is the data dictionary, which is adatabase whose records contain information about the definition<strong>of</strong> data items <strong>and</strong> a list <strong>of</strong> program components thatuse each item (see data dictionary). When the definition<strong>of</strong> a data item is changed, the data dictionary can providea list <strong>of</strong> affected components. Database technology is alsoapplied to s<strong>of</strong>tware design in the creation <strong>of</strong> a database <strong>of</strong>objects within a particular program, which can be used toprovide more extensive information during debugging.Integration <strong>and</strong> TrendsA typical CASE environment integrates a variety <strong>of</strong> toolsto facilitate the flow <strong>of</strong> s<strong>of</strong>tware development. This processmay begin with design using visual flowcharting,Many tools are used today to aid the complex endeavor <strong>of</strong> s<strong>of</strong>twareengineering. Design tools include the traditional flowchart, pseudocode,<strong>and</strong> design specifications document. Additionally, many systemstoday use interactive, visual layout tools. During the coding<strong>and</strong> debugging phase, a data dictionary <strong>and</strong>/or class database canbe used to describe <strong>and</strong> verify relationships <strong>and</strong> characteristics <strong>of</strong>objects in the program. Once the code is “built,” a version controlsystem keeps track <strong>of</strong> what was changed, <strong>and</strong> various automaticdocumentation features can be used to obtain listings <strong>of</strong> classes,functions, <strong>and</strong> other program elements.


74 CD-ROM <strong>and</strong> DVD-ROM“rapid prototyping,” or other design tools. Once the overalldesign is settled, the developer proceeds to the detailedspecification <strong>of</strong> objects used by the program <strong>and</strong> perhapscreates a data dictionary or other databases with informationabout program objects. During the coding process,source control or versioning facilities help log <strong>and</strong> keeptrack <strong>of</strong> the changes to code <strong>and</strong> the succession <strong>of</strong> newversions (“builds”). While testing the program, an integrateddebugger (see bugs <strong>and</strong> debugging) can use informationfrom the program components database to helppinpoint errors. As the code is finished, other tools canautomatically generate documentation <strong>and</strong> other supportingmaterials (see technical writing <strong>and</strong> documentation<strong>of</strong> program code).Just as some early proponents <strong>of</strong> the English-likeCOBOL language proclaimed that pr<strong>of</strong>essional programmerswould no longer be needed for generating businessapplications, CASE tools have <strong>of</strong>ten been hyped as apanacea for all the ills <strong>of</strong> the s<strong>of</strong>tware development cycle.Rather than causing the demise <strong>of</strong> the programmer, however,CASE tools have played an important role in keepings<strong>of</strong>tware development viable.In recent years, tools for managing or debugging codehave been supplemented with tools to aid the design processitself (see modeling languages). There are also toolsto aid in refactoring, or the process <strong>of</strong> reorganizing <strong>and</strong>clarifying code to make it easier to maintain.In a broader sense, CASE can also include tools for managingthe programming team <strong>and</strong> its efforts. Even socialnetworking tools (see blogs <strong>and</strong> blogging <strong>and</strong> wikis <strong>and</strong>Wikipedia) can play a part in keeping programmers intouch with issues <strong>and</strong> concerns relating to many differentaspects <strong>of</strong> a project.Further ReadingCarnegie Mellon S<strong>of</strong>tware Engineering Institute. “What Is a CASEEnvironment?” Available online. URL: http://www.sei.cmu.edu/legacy/case/case_whatis.html. Accessed May 18, 2007.CASE Tool Index. Available online. URL: http://www.cs.queensu.ca/S<strong>of</strong>tware-Engineering/tools.html. Accessed May 18,2007.Stahl, Thomas, <strong>and</strong> Markus Voelter. Model-Driven S<strong>of</strong>tware Development:<strong>Technology</strong>, Engineering, Management. New York:Wiley, 2006.CD-ROM <strong>and</strong> DVD-ROMCD-ROM (compact disk read-only memory) is an opticaldata storage system that uses a disk coated with a thin layer<strong>of</strong> metal. In writing data, a laser etches billions <strong>of</strong> tiny pitsin the metal. The data is encoded in the pattern <strong>of</strong> pits <strong>and</strong>spaces between them (called “l<strong>and</strong>s”). Unlike the case witha magnetic hard or floppy disk, the data is written in asingle spiral track that begins at the center <strong>of</strong> the disk. TheCD-ROM drive uses another laser to read the encoded data(which is read from the other side as “bumps” rather thanpits). The drive slows down as the detector (reading head)moves toward the outer edge <strong>of</strong> the disk. This maintains aconstant linear velocity <strong>and</strong> allows for all sectors to be thesame size. This system was adapted from the one used forSchematic <strong>of</strong> the components <strong>of</strong> a CD drive. The tracking drive<strong>and</strong> tracking motor move the laser pickup assembly across thespinning disk drive to position it to the correct track. The laserbeam hits the disk surface, reflecting differently from the pits <strong>and</strong>flat areas (l<strong>and</strong>s). This pattern <strong>of</strong> differences encodes the data asones <strong>and</strong> zeros.the audio CDs that largely supplanted phonograph recordsduring the 1980s.A CD can hold about 650 MB <strong>of</strong> data. By the early 1990s,the CD had become inexpensive <strong>and</strong> ubiquitous, <strong>and</strong> it hasnow largely replaced the floppy disk as the medium <strong>of</strong> s<strong>of</strong>twaredistribution. The relatively large capacity meant thatone CD could replace multiple floppies for a distribution<strong>of</strong> products such as Micros<strong>of</strong>t Windows or Word, <strong>and</strong> italso made it practical to give users access to the entire text<strong>of</strong> encyclopedias <strong>and</strong> other reference works. Further, theCD was essential for the delivery <strong>of</strong> multimedia (graphics,video, <strong>and</strong> sound) to the desktop, since such applicationsrequire far more storage than is available on 1.44-MB floppydisks. CD drives declined in price from several hundreddollars to about $50, while their speeds have increased by afactor <strong>of</strong> 30 or more, allowing them to keep up with games<strong>and</strong> other s<strong>of</strong>tware that needs to read data quickly from thedisk.Recordable CDsIn the late 1990s, a new consumer technology enabled usersto create their own CDs with data or audio tracks. Thecheapest kind, CD-R (Compact Disk Recordable) uses alayer <strong>of</strong> a dyed material <strong>and</strong> a thin gold layer to reflect thelaser beam. Data is recorded by a laser beam hitting the dyelayer in precise locations <strong>and</strong> marking it (in one <strong>of</strong> severalways, depending on technology). The lengths <strong>of</strong> marked(“striped”) track <strong>and</strong> unmarked track together encode thedata.A more versatile alternative is the CD-RW (CompactDisk, Readable/Writeable), which can be recorded on,erased, <strong>and</strong> re-recorded many times. These disks have alayer made from a mixture <strong>of</strong> such materials as silver, antimony,<strong>and</strong> rare earths such as indium <strong>and</strong> tellurium. The


cellular automata 75mixture forms many tiny crystals. To record data, an infraredlaser beam is directed at pinpoint spots on the layer.The heat from the beam melts the crystals in the targetspot into an amorphous mass. Because the amorphous statehas lower reflectivity than the original crystals, the readinglaser can distinguish the marked “pits” from the surroundingl<strong>and</strong>s. Because <strong>of</strong> a special property <strong>of</strong> the material, abeam with a heat level lower than the recording beam canreheat the amorphous material to a point at which it will,upon cooling, revert to its original crystal form. This permitsrepeated erasing <strong>and</strong> re-recording.DVD-ROMThe DVD (alternatively, Digital Video Disc or Digital VersatileDisc) is similar to a CD, but uses laser light with ashorter wavelength. This means that the size <strong>of</strong> the pits <strong>and</strong>l<strong>and</strong>s will be considerably smaller, which in turns meansthat much more data can be stored on the same size disk. ADVD disk typically stores up to 4.7 GB <strong>of</strong> data, equivalent toabout six CDs. This capacity can be doubled by using bothsides <strong>of</strong> the disk.The high capacity <strong>of</strong> DVD-ROMs (<strong>and</strong> their recordableequivalent, DVD-RAMs) makes them useful for storingfeature-length movies or videos, very large games <strong>and</strong>multimedia programs, or large illustrated encyclopedias.The development <strong>of</strong> high-definition television (HDTV)st<strong>and</strong>ards spurred the introduction <strong>of</strong> higher capacityDVD formats. The competition between Sony’s Blu-Ray<strong>and</strong> HD-DVD (backed by Toshiba <strong>and</strong> Micros<strong>of</strong>t, amongothers) was resolved by 2008 in favor <strong>of</strong> the former. Blu-Ray <strong>of</strong>fers high capacity (25GB for single layer discs, 50GBfor dual layer).Further ReadingAbout.com “Home Recording: Burning CDs.” Available online. URL:http://homerecording.about.com/cs/burningcds/. Accessed May10, 2007.Taylor, Jim. DVD Demystified. 3rd ed. New York: McGraw-Hill,2006.White, Ron, <strong>and</strong> Timothy Edward Downs. How <strong>Computer</strong>s Work.8th ed. Indianapolis: Que, 2005.cellular automataIn the 1970s, British mathematician John H. Conwayinvented a pastime called the Game <strong>of</strong> Life, which was popularizedin Martin Gardner’s column in Scientific American.In this game (better termed a simulation), each cell in a grid“lived” or “died” according to the following rules:1. A living cell remains alive if it has either two orthree living neighbors.2. A dead cell becomes alive if it has three livingneighbors.3. A living cell dies if it has other than two or threeliving neighbors.Investigators created hundreds <strong>of</strong> starting patterns <strong>of</strong> livingcells <strong>and</strong> simulated how they changed as the rules wererepeatedly applied. (Each application <strong>of</strong> the rules to thecells in the grid is called a generation.) They found, forA screen from a Game <strong>of</strong> Life simulator called Mirek’s Celebration.(This version runs as a Web browser–accessible Java applet.) This<strong>and</strong> other programs make it easy to experiment with a variety <strong>of</strong>Life patterns <strong>and</strong> track them across hundreds <strong>of</strong> “generations.”example, that a simple pattern <strong>of</strong> three living cells in a row“blinked” or switched back <strong>and</strong> forth between a horizontal<strong>and</strong> vertical orientation. Other patterns, called “gliderguns” ejected smaller patterns (gliders or spaceships) thattraveled across the grid.The Game <strong>of</strong> Life is an instance <strong>of</strong> the general classcalled cellular automata. Each cell operates like a tiny computerthat takes as input the states <strong>of</strong> its neighbors <strong>and</strong>produces its own state as the output. (See also finite statemachine.) The cells can be arranged in one (linear), two(grid), or three dimensions, <strong>and</strong> a great variety <strong>of</strong> sets <strong>of</strong>rules can be applied to them, ranging from simple variants<strong>of</strong> Life to exotic rules that can take into account how long acell has been alive, or subject it to various “environmental”influences.ApplicationsCellular automata theory has been applied to a variety <strong>of</strong>fields that deal with the complex interrelationships <strong>of</strong> components,including biology (microbe growth <strong>and</strong> populationdynamics in general), ecology (including forestry), <strong>and</strong>animal behavior, such as the flight <strong>of</strong> birds. (The cues that abird identifies in its neighbors are like the input conditionsfor a cell in a cellular automaton. The “output” would be thebird’s flight behavior.)The ability <strong>of</strong> cellular automatons to generate a richcomplexity from simple components <strong>and</strong> rules mimics thedevelopment <strong>of</strong> life from simple components, <strong>and</strong> thus cellularautomation is an important tool in the creation <strong>and</strong>study <strong>of</strong> artificial life. This can be furthered by combininga set <strong>of</strong> cellular automation rules with a geneticalgorithm, including a mechanism for inheritance <strong>of</strong>characteristics. Cellular automation principles can also beapplied to engineering in areas such as pattern or imagerecognition.


76 censorship <strong>and</strong> the InternetIn 2002, computer scientist <strong>and</strong> mathematician StephenWolfram (developer <strong>of</strong> the Mathematica program) publisheda book titled A New Kind <strong>of</strong> <strong>Science</strong> that undertakes themodest project <strong>of</strong> explaining the fundamental structure <strong>and</strong>behavior <strong>of</strong> the universe using the principles <strong>of</strong> cellularautomation. Time will tell whether this turns out to besimply an idiosyncratic (albeit interesting) approach or agenerally useful paradigm.Further ReadingGutowitz, Howard, ed. Cellular Automata. Cambridge, Mass.: MITPress, 1991.“Patterns, Programs, <strong>and</strong> Links for Conway’s Game <strong>of</strong> Life.”Available online. URL: http://www.radicaleye.com/lifepage/.Accessed May 28, 2007.Wojtowicz, Mirek. “Welcome to Mirek’s Celebration.: 1D <strong>and</strong>2D Cellular Automation Explorer.” Available online. URL:http://www.mirwoj.opus.chelm.pl/ca/. Accessed May 28,2007.Wolfram, S. A New Kind <strong>of</strong> <strong>Science</strong>. Champaign, Ill.: WolframMedia, 2002.———. Theory <strong>and</strong> Applications <strong>of</strong> Cellular Automata. Singapore:World Scientific, 1986.censorship <strong>and</strong> the InternetGovernments have always to varying degrees concernedthemselves with the content <strong>of</strong> public media. The growinguse <strong>of</strong> the Internet for expressive activities (see blogs<strong>and</strong> blogging <strong>and</strong> journalism <strong>and</strong> computers) hasprompted authoritarian governments such as that <strong>of</strong> Chinato attempt to block “objectionable” material both throughfiltering techniques (see Web filter) <strong>and</strong> through pressureon service providers. Further, users identified as creators <strong>of</strong>banned content may be subjected to prosecution. Howeverbecause <strong>of</strong> the Internet’s decentralized structure <strong>and</strong> theability <strong>of</strong> users to operate relatively anonymously, Internetcensorship tends to be only partially effective (see anonymity<strong>and</strong> the Internet).In the democratic West, Internet censorship generallyapplies to only a few forms <strong>of</strong> content. Attempts to criminalizethe online provision <strong>of</strong> pornography to minors in the1996 Communications Decency Act have generally beenoverturned by the courts as excessively infringing on theright <strong>of</strong> adults to access such content. However, a succession<strong>of</strong> bills seeking to require schools <strong>and</strong> libraries to installWeb-filtering s<strong>of</strong>tware culminated in the Children’s InternetProtection Act, which was upheld by the U.S. SupremeCourt in 2003.Another area <strong>of</strong> potential censorship involves the rights<strong>of</strong> bloggers <strong>and</strong> other nontraditional journalists to post orlink to documents that might be involved with a legal case.Although the term “censorship” is sometimes limitedto government action under criminal law, there areother ways in which Internet content may be restricted.For example, content providers seek to protect their workfrom unauthorized copying or distribution (see intellectualproperty <strong>and</strong> computing). Civil sanctions can bebrought to bear on violators <strong>of</strong> copyright or in cases <strong>of</strong>libel. However, as with other forms <strong>of</strong> censorlike activityon the Internet, the targeted behavior can be curtailed onlyto a limited extent.Censorship in ChinaChina has played a central role in the debate over censorship.The rapidly growing Chinese economy <strong>of</strong>fersseemingly unlimited market potential for Internet-basedbusinesses <strong>and</strong> sellers <strong>of</strong> s<strong>of</strong>tware <strong>and</strong> hardware. Howeverthe Chinese government’s desire to closely control thespread <strong>of</strong> “subversive” ideas has brought it into collisionwith the liberal ideas shared by many <strong>of</strong> the Internet’s mostimportant developers.Human rights organizations such as Amnesty Internationalhave criticized online service providers such as Yahoo,Google, <strong>and</strong> Micros<strong>of</strong>t for providing the Internet addresses<strong>of</strong> users who have then been arrested. The companies havebeen accused <strong>of</strong> putting the potential pr<strong>of</strong>its <strong>of</strong> China’s hugemarket ahead <strong>of</strong> ensuring free access to information. Generally,the companies say they have no choice but to complywith all local laws <strong>and</strong> legal dem<strong>and</strong>s for information aboutusers. However, critics charge that the technology companieshave <strong>of</strong>ten gone well beyond mere compliance to theprovision <strong>of</strong> sophisticated filtering s<strong>of</strong>tware for Web sites,blogs, <strong>and</strong> online chat <strong>and</strong> discussion groups.The actual extent <strong>of</strong> censorship in China seems to varyconsiderably, depending on shifting political considerations.The nation’s increasingly sophisticated users <strong>of</strong>tenfind ways around the censorship, such as through using“proxy servers” that are inside the “Great Firewall” but canconnect to the outside Internet. (Encrypted protocols suchas VPN [virtual private networks] <strong>and</strong> SSH [secure shell]can also be used, because their content is not detected bymonitoring <strong>and</strong> filtering s<strong>of</strong>tware.)Although generally not as highly organized, Internetcensorship can also be found in countries such as Burma(Myanmar), North Korea, Iran, <strong>and</strong> Syria <strong>and</strong> to a lesserextent in South Korea <strong>and</strong> Saudi Arabia.While Internet censorship can be viewed as being ultimatelya political problem, technical realities limit its effectiveness,<strong>and</strong> curtailing the free exchange <strong>of</strong> information<strong>and</strong> open-ended communication that the Net affords islikely to have economic costs as well.Further ReadingAmnesty International. Available online. URL: http://www.amnestyusa.org. Accessed May 22, 2007.Axelrod-Contrada, Joan. Reno v. ACLU: Internet Censorship. NewYork: Benchmark Books, 2006.Chase, Michael. You’ve Got Dissent! Chinese Dissident Use <strong>of</strong> theInternet <strong>and</strong> Beijing’s Counter-Strategies. Santa Monica, Calif.:RAND Corporation, 2002.Herumin, Wendy. Censorship on the Internet: From Filters to Freedom<strong>of</strong> Speech. Berkeley Heights, N.J.: Enslow, 2004.Reporters without Borders. H<strong>and</strong>book for Bloggers <strong>and</strong> Cyber-Dissidents. Available online. URL: http://www.rsf.org/rubrique.php3?id_rubrique=542. Accessed May 8, 2007.Ringmar, Erik. A Blogger’s Manifesto: Free Speech <strong>and</strong> Censorship inthe Age <strong>of</strong> the Internet. London: Anthem Press, 2007.


censorship <strong>and</strong> the Internet 77While some parents <strong>and</strong> many schools use filtering s<strong>of</strong>tware to block Web sites considered to be inappropriate for children, another approach is toprovide a site with “child friendly” material <strong>and</strong> links. (Image courtesy <strong>of</strong> the estate <strong>of</strong> Keith Haring, www.haringkids.com)


78 central processing unitcentral processing unit See CPU.Cerf, Vinton D.(1943– )American<strong>Computer</strong> ScientistVinton (Vint) Cerf is a key pioneer in the development <strong>of</strong>the packet-switched networking technology that is the basisfor the Internet. In high school, Cerf distinguished himselffrom his classmates by wearing a jacket <strong>and</strong> a tie <strong>and</strong> carryinga large brown briefcase, which he later described as“maybe a nerd’s way <strong>of</strong> being different.” He has a lifelonglove for fantasy <strong>and</strong> science fiction, both <strong>of</strong> which exploredifference. Finally, Cerf was set apart by being hearingimpairedas a result <strong>of</strong> a birth defect. He would overcomethis h<strong>and</strong>icap through a combination <strong>of</strong> hearing aids <strong>and</strong>communications strategies. And while he was fascinated bychemistry <strong>and</strong> rocketry, it would be communications, math,<strong>and</strong> computer science that would form his lifelong interest.After graduating from Stanford in 1965 with a B.S. inmathematics, Cerf worked at IBM as an engineer on itstime-sharing systems, while broadening his background incomputer science. At UCLA he earned on M.S. <strong>and</strong> then aPh.D. in computer science while working on technologythat could link one computer to another. Soon he was workingwith Len Kleinrock’s Network Measurement Center toplan the ARPA network, a government-sponsored computerlink. In designing s<strong>of</strong>tware to simulate a network that asyet existed only on paper, Cerf <strong>and</strong> his colleagues had toexplore the issues <strong>of</strong> network load, response time, queuing,<strong>and</strong> routing, which would prove fundamental for the realworldnetworks to come.By the summer <strong>of</strong> 1968, four universities <strong>and</strong> researchsites (UCLA, UC Santa Barbara, the University <strong>of</strong> Utah, <strong>and</strong>SRI) as well as the firm BBN (Bolt Beranek <strong>and</strong> Newman)were trying to develop a network. At the time, a customcombination <strong>of</strong> hardware <strong>and</strong> s<strong>of</strong>tware had to be devisedto connect each center’s computer to the other. The hardware,a refrigerator-sized interface called an IMP, was stillin development.By 1970, the tiny four-node network was in operation,cobbled together with s<strong>of</strong>tware that allowed a user on onemachine to log in to another. This was a far cry from asystem that would allow any computer to seamlessly communicatewith another, however. What was needed on thes<strong>of</strong>tware end was a universal, consistent language—a protocol—thatany computer could use to communicate withany other computer on the network.In a remarkable display <strong>of</strong> cooperation, Cerf <strong>and</strong> hiscolleagues in the Network Working Group set out to designsuch a system. The fundamental idea <strong>of</strong> the protocol is thatdata to be transmitted would be turned into a stream <strong>of</strong>“packets.” Each packet would have addressing informationthat would enable it to be routed across the network <strong>and</strong>then reassembled back into proper sequence at the destination.Just as the Post Office doesn’t need to know what’sin a letter to deliver it, the network doesn’t need to knowwhether the data it is h<strong>and</strong>ling is e-mail, a news article, orsomething else entirely. The message could be assembled<strong>and</strong> h<strong>and</strong>ed over to a program that would know what to dowith it.With the development <strong>of</strong> what eventually became TCP/IP (Transmission Control Protocol/Internet Protocol) VintCerf <strong>and</strong> Bob Kahn essentially became the fathers <strong>of</strong> theInternet we know today (see tcp/ip). As the online worldbegan to grow in the 1980s, Cerf worked with MCI in thedevelopment <strong>of</strong> its electronic mail system, <strong>and</strong> then set upsystems to coordinate Internet researchers.In later years, Cerf undertook new initiatives in thedevelopment <strong>of</strong> the Internet. He was a key founder <strong>and</strong> thefirst president <strong>of</strong> the Internet Society in 1992, serving in thatpost until 1995 <strong>and</strong> then as chairman <strong>of</strong> the board, 1998–1999. This group seeks to plan for expansion <strong>and</strong> changeas the Internet becomes a worldwide phenomenon. Cerf’sinterest in science fiction came full circle in 1998 when hejoined an effort at the Jet Propulsion Laboratory (JPL) inPasadena, California. There they are designing an “interplanetaryInternet” that would allow a full network connectionbetween robot space probes, astronauts, <strong>and</strong> eventualcolonists on Mars <strong>and</strong> elsewhere in the solar system.In 2005 Cerf joined Google as its “chief Internet evangelist,”where he has the opportunity to apply his imaginationto network applications <strong>and</strong> access policies. Cerf alsoserved as chairman <strong>of</strong> the board <strong>of</strong> the Internet Corporationfor Assigned Names <strong>and</strong> Numbers (ICANN), a position thathe left in 2007.Cerf has received numerous honors, including the IEEEKobayashi Award (1992), International TelecommunicationsUnion Silver Medal (1995), <strong>and</strong> the National Medal <strong>of</strong> <strong>Technology</strong>(1997). In 2005 Cerf (along with Robert Kahn) wasawarded the Presidential Medal <strong>of</strong> Freedom, the nation’shighest civilian award.Further Reading“Cerf’s Up.” Personal Perspectives. Available online. URL: http://global.mci.com/ca/resources/cerfs_up/personal_perspective/.Accessed May 28, 2007.Hafner, Katie <strong>and</strong> Matthew Lyon. Where Wizards Stay Up Late: theOrigins <strong>of</strong> the Internet. New York: Simon & Schuster, 1996.Henderson, Harry. Pioneers <strong>of</strong> the Internet. San Diego, Calif.:Lucent Books, 2002.certificate, digitalThe ability to use public key encryption over the Internetmakes it possible to send sensitive information (suchas credit card numbers) to a Web site without electroniceavesdroppers being able to decode it <strong>and</strong> use it for criminalpurposes (see encryption <strong>and</strong> computer crime <strong>and</strong>security). Any user can send information by using a personor organization’s public key, <strong>and</strong> only the owner <strong>of</strong> thepublic key will be able to decode that information.However, the user still needs assurance that a site actuallybelongs to the company that it says it does, ratherthan being an imposter. This assurance can be providedby a trusted third party certification authority (CA), suchas VeriSign, Inc. The CA verifies the identity <strong>of</strong> the appli-


certification <strong>of</strong> computer pr<strong>of</strong>essionals 79program for accepting tax returns that are digitally certified<strong>and</strong> signed.Further ReadingAltreya, Mohan, et al. Digital Signatures. Berkeley, Calif.: Osborne/McGraw-Hill, 2002.Br<strong>and</strong>s, Stefan A. Rethinking Public Key Infrastructures <strong>and</strong> DigitalCertificates. Cambridge, Mass.: MIT Press, 2000.Feghhi, Jalal, <strong>and</strong> Peter Williams. Digital Certificates: AppliedInternet Security. Reading, Mass.: Addison-Wesley, 1998.Digital certification relies upon public key cryptography <strong>and</strong> theexistence <strong>of</strong> a trusted third party, the Certificate Authority (CA).First a business properly identifies itself to the CA <strong>and</strong> receives adigital certificate. A consumer can obtain a copy <strong>of</strong> the business’sdigital certificate <strong>and</strong> use it to obtain the business’s public key fromthe CA. The consumer can now send encrypted information (suchas a credit card number) to the business.cant <strong>and</strong> then provides the company with a digital certificate,which is actually the company’s public key encryptedtogether with a key used by the CA <strong>and</strong> a text message.(This is sometimes called a digital signature.) When a userqueries the Web site, the user’s browser uses the CA’s publickey to decrypt the certificate holder’s public key. Thatpublic key is used in turn to decrypt the accompanyingmessage. If the message text matches, this proves that thecertificate is valid (unless the CA’s private key has somehowbeen compromised).The supporting technology for digital certification isincluded in a st<strong>and</strong>ard called Secure Sockets Layer (SSL),which is a protocol for sending encrypted data across theInternet. SSL is supported by leading browsers such asMicros<strong>of</strong>t Internet Explorer <strong>and</strong> Netscape. As a result, digitalcertification is usually transparent to the user, unlessthe user is notified that a certificate cannot be verified.Digital certificates are <strong>of</strong>ten attached to s<strong>of</strong>tware such asbrowser plug-ins so the user can verify before installationthat the s<strong>of</strong>tware actually originates with its manufacturer<strong>and</strong> has not been tampered with (such as by introduction <strong>of</strong>a virus).The use <strong>of</strong> digital certification is exp<strong>and</strong>ing. For example,VeriSign <strong>and</strong> the federal General Services Administration(GSA) have begun an initiative called ACES (AccessCertificates for Electronic Services) that will allow citizensa secure means to send information (such as loan applications)<strong>and</strong> to view benefits records. The IRS has a pilotcertification <strong>of</strong> computer pr<strong>of</strong>essionalsUnlike medicine, the law, or even civil engineering, thecomputer-related fields do not have legally required certification.Given society’s critical dependence on computers<strong>of</strong>tware <strong>and</strong> hardware for areas such as infrastructuremanagement <strong>and</strong> medical applications, there have beenpersistent attempts to require certification or licensing <strong>of</strong>s<strong>of</strong>tware engineers. However, the fluid nature <strong>of</strong> the informationscience field would make it difficult to decide whichapplication areas should have entry restrictions.At present, a variety <strong>of</strong> academic degrees, pr<strong>of</strong>essionalaffiliations, <strong>and</strong> industry certificates may be considered inevaluating a c<strong>and</strong>idate for a position in the computing field.Academic <strong>and</strong> Pr<strong>of</strong>essional CredentialsThe field <strong>of</strong> computer science has the usual levels <strong>of</strong> academiccredentials (baccalaureate, master’s, <strong>and</strong> doctoraldegrees), <strong>and</strong> these are <strong>of</strong>ten considered prerequisites foran academic position or for industry positions that involveresearch or development in areas such as robotics or artificialintelligence. For business-oriented IT positions, abachelor’s degree in computer science or information systemsmay be required or preferred, <strong>and</strong> c<strong>and</strong>idates whoalso have a business-oriented degree (such as an MBA) maybe in a stronger position. However, degrees are generallyviewed only as a minimum qualification (or “filter”) beforeevaluating experience in the specific application or platformin question. While not a certification, membership in themajor pr<strong>of</strong>essional organizations such as the Associationfor Computing Machinery (ACM) <strong>and</strong> Institute for Electrical<strong>and</strong> Electronic Engineers (IEEE) can be viewed as part<strong>of</strong> pr<strong>of</strong>essional status. Through special interest groups <strong>and</strong>forums, these organizations provide computer pr<strong>of</strong>essionalswith a good way to track emerging technical developmentsor to broaden their knowledge.In the early years <strong>of</strong> computing <strong>and</strong> again, in the microcomputerindustry <strong>of</strong> the 1980s, programming experience<strong>and</strong> ability were valued more highly than academic credentials.(Bill Gates, for example, had no formal college trainingin computer science.) In general, degree or certificationrequirements tend to be imposed as a sector <strong>of</strong> the informationindustry becomes well defined <strong>and</strong> established in thecorporate world. For example, as local area networks cameinto widespread use in the 1980s, certifications were developedby Micros<strong>of</strong>t, Novell, <strong>and</strong> others. In turn, colleges<strong>and</strong> trade schools can train technicians, using the certificateexaminations to establish a curriculum, <strong>and</strong> numerousbooks <strong>and</strong> packaged training courses have been marketed.


80 CGIIn a newly emerging sector there is less emphasis oncredentials (which are <strong>of</strong>ten not yet established) <strong>and</strong> moreemphasis on being able to demonstrate knowledge throughhaving actually developed successful applications. Thus, inthe late 1990s, a high dem<strong>and</strong> for Web page design <strong>and</strong> programmingemerged, <strong>and</strong> a good portfolio was more importantthan the holding <strong>of</strong> some sort <strong>of</strong> certificate. However ase-commerce <strong>and</strong> the Web became firmly established in thecorporate world, the cycle is beginning to repeat itself ascertification for webmastering <strong>and</strong> e-commerce applicationsis developed.Industry CertificationsSeveral major industry certifications have achieved widespreadacceptance.Since 1973, the Institute for Certification <strong>of</strong> ComputingPr<strong>of</strong>essionals (ICCP) has <strong>of</strong>fered certification based on generalprogramming <strong>and</strong> related skills rather than mastery <strong>of</strong>particular platforms or products. The Associate ComputingPr<strong>of</strong>essional (ACP) certificate is <strong>of</strong>fered to persons who havea basic general knowledge <strong>of</strong> information processing <strong>and</strong>who have mastered one major programming language. Themore advanced Certified Computing Pr<strong>of</strong>essional (CCP) certificaterequires several years <strong>of</strong> documented experience inareas such as programming or information systems management.Both certificates also require passing an examination.A major trade group, the Computing <strong>Technology</strong> IndustryAssociation (CompTIA) <strong>of</strong>fers the A+ Certificate forcomputer technicians. It is based on passing a Core ServiceTechnician exam focusing on general hardware-related skills<strong>and</strong> a DOS/Windows Service Technician exam that emphasizesknowledge <strong>of</strong> the operating system. The exams areupdated regularly based on required job skills as assessedthrough industry practices.Networking vendor Novell <strong>of</strong>fers the Certified NetWareEngineer (CNE) certificate indicating mastery <strong>of</strong> the installation,configuration, <strong>and</strong> maintenance <strong>of</strong> its networkingproducts or its GroupWise messaging system. The CertifiedNetWare Administrator (CNA) certificate emphasizes systemadministration.Micros<strong>of</strong>t <strong>of</strong>fers a variety <strong>of</strong> certificates in its networking<strong>and</strong> applications development products. The best knownis the Micros<strong>of</strong>t Certified System Engineer (MCSE) certificate.It is based on a series <strong>of</strong> required <strong>and</strong> elective examsthat cover the installation, management, configuration, <strong>and</strong>maintenance <strong>of</strong> Windows 2000 <strong>and</strong> other Micros<strong>of</strong>t networks.A number <strong>of</strong> other vendors including Cisco Systems <strong>and</strong>Oracle <strong>of</strong>fer certification in their products. Given the everchangingmarketplace, it is likely that most computer pr<strong>of</strong>essionalswill acquire multiple certificates as their careeradvances.Further ReadingCompTIA Certification Page. Available online. URL: http://www.comptia.org/. Accessed May 28, 2007.Institute for Certification <strong>of</strong> Computing Pr<strong>of</strong>essionals. Availableonline. URL: http://www.iccp.org. Accessed May 28, 2007.“MCSE Guide.” Available online. URL: http://www.mcseguide.com/Novell Education Page. Available online. URL: http://www.novell.com/training/certinfo/howdoi.htm. Accessed May 28, 2007.CGI (common gateway interface)By itself, a Web page coded in HTML is simply a “static”display that does not interact with the user (other than forthe selection <strong>of</strong> links). (See html, dhtml, <strong>and</strong> xhtm.) ManyWeb services, including online databases <strong>and</strong> e-commercetransactions, require that the user be able to interact withthe server. For example, an online shopper may need tobrowse or search a catalog <strong>of</strong> CD titles, select one or morefor purchase, <strong>and</strong> then complete the transaction by providingcredit card <strong>and</strong> other information. These functions areprovided by “gateway programs” on the server that canaccess databases or other facilities.One way to provide interaction with (<strong>and</strong> through) a Webpage is to use the CGI (common gateway interface). CGI is afacility that allows Web browsers <strong>and</strong> other client programsto link to <strong>and</strong> run programs stored on a Web site. The storedprograms, called scripts, can be written in various languagessuch as JavaScript or PHP (see scripting languages) <strong>and</strong>placed in a cgi-bin folder on the Web server.The CGI script is referenced by an HTML hyperlink onthe Web page, such asMyScript Or more commonly, it is included in an HTML formthat the user fills in, then clicks the Submit button. Ineither case, the script executes. The script can then processthe information the user provided on the form, <strong>and</strong>return information to the user’s Web browser in the formCGI or Common Gateway Interface allows a program linked toa Web page to obtain data from databases <strong>and</strong> use it to generateforms to be shown on users’ Web browsers. For example, a CGIprogram can link a Web user to a “shopping cart” <strong>and</strong> inventorysystem for online purchases.


characters <strong>and</strong> strings 81<strong>of</strong> an HTML document. The script can perform additionalfunctions such as logging the user’s query for marketingpurposes.The complexity <strong>of</strong> Web features <strong>and</strong> the heavy load onservers have prompted a number <strong>of</strong> strategies for servingdynamic content more efficiently. Traditionally, each timea CGI request is passed to the URL for a script, the appropriatelanguage interpreter must be loaded <strong>and</strong> initialized.However, modern Web servers such as Apache have built-inmodules for commonly used scripting languages such asPHP, Perl, Python, <strong>and</strong> Ruby. This allows the Web serverto run the script directly without the overhead <strong>of</strong> starting anew interpreter process.A more fundamental shift in implementation is thedevelopment <strong>of</strong> methods to tie together DHTML <strong>and</strong> XMLwith a document model <strong>and</strong> scripting languages to allowfor dynamic changes in page content without having toreload the page (see Ajax).Note: the acronym CGI can also st<strong>and</strong> for “computergeneratedimagery” (see computer graphics).Further Reading“A Guide to HTML <strong>and</strong> CGI Scripts.” Available online. URL: http://snowwhite.it.brighton.ac.uk/~mas/mas/courses/html/html.html. Accessed May 30, 2007.Hamilton, Jacqueline D. CGI Programming 101. Houston, Tex.:CGI101.com, 2000. (First six chapters are available freeonline at URL: http://www.cgi101.com/book/.) AccessedAugust 12, 2007.“The Most Simple Intro to CGI.” Available online. URL: http://bignosebird.com/prcgi.shtml. Accessed August 12, 2007.characters <strong>and</strong> stringsWhile the attention <strong>of</strong> the first computer designers focusedmainly on numeric calculations, it was clear that much <strong>of</strong>the data that business people <strong>and</strong> others would want tomanipulate with the new machines would be textual innature. Billing records, for example, would have to includecustomer names <strong>and</strong> addresses, not just balance totals.The “natural” representation <strong>of</strong> data in a computer is asa series <strong>of</strong> two-state (binary) values, interpreted as binarynumbers. The solution for representing text (letters <strong>of</strong> thealphabet, punctuation marks, <strong>and</strong> other special symbols) isto assign a numeric value to each text symbol. The result isa character code, such as ASCII (American St<strong>and</strong>ard Codefor Information Interchange), which is the scheme usedmost widely today. (Another system, EBCDIC (ExtendedBinary-Coded Decimal Interchange Code) was used duringthe heyday <strong>of</strong> IBM mainframes, but is seldom used today.)The seven-bit ASCII system is compact (using one byte<strong>of</strong> memory to store each character), <strong>and</strong> was quite suitablefor early microcomputers that required only the basicEnglish alphabet, punctuation, <strong>and</strong> a few control characters(such as carriage return). In an attempt to use charactersto provide simple graphics capabilities, an “extendedASCII” was developed for use on IBM-compatible PCs.This used eight bits, increasing the number <strong>of</strong> charactersavailable from 128 to 256. However, the use <strong>of</strong> bitmappedgraphics in Windows <strong>and</strong> other operating systemsmade this version <strong>of</strong> ASCII unnecessary. Instead, the ANSI(American National St<strong>and</strong>ards Institute) eight-bit characterset used the additional character positions to store avariety <strong>of</strong> special symbols (such as fractions <strong>and</strong> the copyrightsymbol) <strong>and</strong> various accent marks used in Europeanlanguages.Table <strong>of</strong> 7-Bit ASCII Character CodesThe following are control (nonprinting) characters:0 Null (nothing)7 Bell (rings on an old teletype; beeps on most PCs)8 Backspace9 Tab10 Line feed (goes to next line without changing columnposition)13 Carriage return (positions to beginning <strong>of</strong> next line)26 End <strong>of</strong> file27 [Esc] (Escape key)The characters with codes from 32 to 127 produce printablecharacters.32 [space] 64 @ 96 `33 ! 65 A 97 a34 “ 66 B 98 b35 # 67 C 99 c36 $ 68 D 100 d37 % 69 E 101 e38 & 70 F 102 f39 ‘ 71 G 103 g40 ( 72 H 104 h41 ) 73 I 105 i42 * 74 J 106 j43 + 75 K 107 k44 ‘ 76 L 108 l45 - 77 M 109 m46 . 78 N 110 n47 / 79 O 111 o48 0 80 P 112 p49 1 81 Q 113 q50 2 82 R 114 r51 3 83 S 115 s52 4 84 T 116 t53 5 85 U 117 u54 6 86 V 118 v55 7 87 W 119 w56 8 88 X 120 x57 9 89 Y 121 y58 : 90 Z 122 z59 ; 91 [ 123 {60 < 92 \ 124 |61 = 93 ] 125 }62 > 94 ^ 126 ~63 ? 95 - 127 [delete]


82 characters <strong>and</strong> stringsAs computer use became more widespread internationally,even 256 characters proved to be inadequate. A newst<strong>and</strong>ard called Unicode can accommodate all <strong>of</strong> the world’salphabetic languages including Arabic, Hebrew, <strong>and</strong> Japanese(Kana Unicode schemes can also be used to encodeideographic languages (such as Chinese) <strong>and</strong> languagessuch as Korean that use syllabic components. At presenteach ideograph has its own character code, but Unicode 3.0includes a scheme for describing ideographs through theircomponent parts (radicals). Most modern operating systemsuse Unicode exclusively for character representation. However,support in s<strong>of</strong>tware such as Web browsers is far fromcomplete, though steadily improving. Unicode also includesmany sets <strong>of</strong> internationally used symbols such as thoseused in mathematics <strong>and</strong> science. In order to accommodatethis wealth <strong>of</strong> characters, Unicode uses 16 bits to store eachcharacter, allowing for 65,535 different characters at theexpense <strong>of</strong> requiring twice the memory storage.Programming with StringsBefore considering how characters are actually manipulatedin the computer, it is important to realize that what thebinary value such as 1000001 (decimal 65) stored in a byte<strong>of</strong> memory actually represents depends on the context givento it by the program accessing that location. If the programdeclares an integer variable, then the data is numeric. If theprogram declares a character (char) value, then the data willbe interpreted as an uppercase “A” (in the ASCII system).Most character data used by programs actually representswords, sentences, or longer pieces <strong>of</strong> text. Multiplecharacters are represented as a string. For example, in traditionalBASIC the statement:NAME$ = “Homer Simpson”declares a string variable called NAME$ (the $ is a suffixindicating a string) <strong>and</strong> sets its value to the character string“Homer Simpson.” (The quotation marks are not actuallystored with the characters.)Some languages (such as BASIC) store a string in memoryby first storing the number <strong>of</strong> characters in the string,followed by the characters, with one in each byte <strong>of</strong> memory.In the family <strong>of</strong> languages that includes C, however,there is no string type as such. Instead, a string is stored asan array <strong>of</strong> char. Thus, in C the preceding example mightlook like this:char Name [20] = “Homer Simpson”;This declares Name as an array <strong>of</strong> up to 20 characters, <strong>and</strong>initializes it to the string literal “Homer Simpson.”An alternative (<strong>and</strong> equivalent) form is:char * Name = “Homer Simpson”;Here Name is a pointer that returns the memory locationwhere the data begins. The string <strong>of</strong> characters “HomerSimpson” is stored starting at that location.Unlike the case with BASIC, in the C languages, thenumber <strong>of</strong> characters is not stored at the beginning <strong>of</strong> thedata. Rather, a special “null” character is stored to mark theend <strong>of</strong> the string.Programs can test strings for equality or even for greaterthan or less than. However, programmers must be carefulto underst<strong>and</strong> the collating sequence, or the order given tocharacters in a character set such as ASCII. For example thetestIf State = “CA”will fail if the current value <strong>of</strong> State is “ca.” The lowercasecharacters have different numeric values than their uppercasecounterparts (<strong>and</strong> indeed must, if the two are to bedistinguished). Similarly, the expression:“Zebra” < “aardvark”is true because uppercase Z comes before lowercase “a” inthe collating sequence.Programming languages differ considerably in theirfacilities for manipulating strings. BASIC includes built-infunctions for determining the length <strong>of</strong> a string (LEN) <strong>and</strong>for extracting portions <strong>of</strong> a string (substrings). For examplegiven the string Test consisting <strong>of</strong> the text “Test Data,” theexpression Right$ (Test, 4) would return “data.”Following their generally minimalist philosophy, theC <strong>and</strong> C++ languages contains no string facilities. Rather,they are provided as part <strong>of</strong> the st<strong>and</strong>ard library, which canbe included in programs as needed. In the following littleprogram:#include #include void main (){char String1[20];char String2[20];strcpy (String1, “Homer”);strcpy (String2, “Simpson”);//Concatenate string2 to the end <strong>of</strong> string1strcat (String1, String2);cout String1


chatterbots 83known for its sophisticated pattern-matching <strong>and</strong> patternprocessing capabilities. A similar language, Icon, is widelyused for specialized string-processing tasks today. Manyprogrammers working with textual data in the UNIX environmenthave found that the awk <strong>and</strong> Perl languages areeasier to use than C for extracting <strong>and</strong> manipulating datafields. (See awk <strong>and</strong> Perl.)Further ReadingGillam, Richard. Unicode Demystified: A Practical Programmer’sGuide to the Encoding St<strong>and</strong>ard. Reading, Mass.: Addison-Wesley, 2002.Korpela, Jukka. Unicode Explained. Sebastapol, Calif.: O’Reilly,2006.A Tutorial on Character Code Issues. Available online. URL: http://www.cs.tut.fi/~jkorpela/chars.html. Accessed May 31, 2007.Unicode Consortium. Unicode St<strong>and</strong>ard, Version 5.0. 5th ed. Reading,Mass.: Addison-Wesley, 2006.chat, onlineIn general terms, to “chat” is to communicate in real timeby typing messages to other online users who can immediatelytype messages in reply. It is this conversational immediacythat distinguishes chat services from conferencingsystems or bulletin boards.Commercial ServicesMany PC users have become acquainted with chattingthrough participating in “chat rooms” operated by onlineservices such as America Online (AOL). A chat room isa “virtual space” in which people meet either to socializegenerally or to discuss particular topics. At their best,chat rooms can develop into true communities whose participantsdevelop long-term friendships <strong>and</strong> provide oneanother with information <strong>and</strong> emotional support (see virtualcommunity).However, the essentially anonymous character <strong>of</strong> chat(where participants <strong>of</strong>ten use “h<strong>and</strong>les” rather than realnames) that facilitates freedom <strong>of</strong> expression can also providea cover for mischief or even crime. Chat rooms haveacquired a rather lurid reputation in the eyes <strong>of</strong> the generalpublic. There has been considerable public concern aboutchildren becoming involved in inappropriate sexual conversation.This has been fueled by media stories (sometimesexaggerated) about children being recruited into face-t<strong>of</strong>acemeetings with pedophiles. AOL <strong>and</strong> other online serviceshave tried to reduce such activity by restricting onlinesex chat to adults, but there is no reliable mechanism fora service to verify its user’s age. A chat room can also besupervised by a host or moderator who tries to prevent“flaming” (insults) or other behavior that the online serviceconsiders to be inappropriate.Distributed ServicesFor people who find commercial online services to be tooexpensive or confining, there are alternatives available forjust the cost <strong>of</strong> an Internet connection. The popular InternetRelay Chat (IRC) was developed in Finl<strong>and</strong> by JarkkoOikarinen in the late 1980s. Using one <strong>of</strong> the freely availableclient programs, users connect to an IRC server, whichin turn is connected to one <strong>of</strong> dozens <strong>of</strong> IRC networks.Users can create their own chat rooms (called channels).There are thous<strong>and</strong>s <strong>of</strong> IRC channels with participants allover the world. To participate, a user simply joins a channel<strong>and</strong> sees all messages currently being posted by otherusers <strong>of</strong> the channel. In turn, the user’s messages are postedfor all to see. While IRC uses only text, there are nowenhanced chat systems (<strong>of</strong>ten written in Java to work with aWeb browser) that add graphics <strong>and</strong> other features.There are many other technologies that can be usedfor conversing via the Internet. Some chat services (suchas Cu-SeeMe) enable participants to transmit their images(see videoconferencing <strong>and</strong> Web cam). Voice can alsobe transmitted over an Internet connection (see voip). For avery pervasive form <strong>of</strong> “ad hoc” textual communication, seetexting <strong>and</strong> instant messaging.Further ReadingMcDonald, Wayne. Chat Rooms in Wonderl<strong>and</strong>. Frederick, Md.:PublishAmerica, 2005.Ploch, Nicolas. “A Short IRC Primer.” Available online. URL: http://www.irchelp.org/irchelp/ircprimer.html. Accessed June 1,2007.Wasuki, Dennis D. Self-Games <strong>and</strong> Body-Play: Personhood in OnlineChat <strong>and</strong> Cybersex. Bern: Peter Lang, 2003.Weverka, Peter. Mastering ICQ: the Official Guide. Dulles, Va.: ICQPress, 2001.chatterbotsThe famous Turing test (see Turing, Alan M.) proposesthat if a human is unable to reliably distinguish messagesfrom a computer from those <strong>of</strong> another person, thecomputer program involved can at least be provisionallydeclared to be “intelligent.” The advent <strong>of</strong> textual communicationvia the Internet (see texting <strong>and</strong> instant messaging)has afforded a variety <strong>of</strong> ways to attempt to meetthis challenge. Programs that mimic human conversationalstyles have come to be known as “chatterbots.”The prototypical chatterbot was ELIZA, developed byJoseph Weizenbaum in the mid-1960s (see Weizenbaum,Joseph). ELIZA mimicked a form <strong>of</strong> nondirective psychotherapyin which the therapist echoes or plays <strong>of</strong>f <strong>of</strong> the client’sstatements as a form <strong>of</strong> gentle encouragement <strong>and</strong> validation.Thus if one types, “My father didn’t really like me,” ELIZAmight reply, “Tell me more about your father.” Althoughprimitive, ELIZA once inadvertently fooled an executive intothinking he was exchanging messages with Weizenbaum.Other classic chatterbots include Parry, designed to mimic aparanoid, <strong>and</strong> the story-generating Racter.The first online chatterbot, Julia, was created by MichaelMauldin in 1994. (Mauldin also coined the term chatterbot.)More sophisticated chatterbots include Jabberwocky, whichincludes learning algorithms, <strong>and</strong> ELLA, which applieslinguistic principles to produce more realistic speech (seenatural language processing). On a negative note, somechatterbots have been designed to enter chat rooms <strong>and</strong>spew advertising (spambots) or even to elicit personal information(see identity theft <strong>and</strong> phishing <strong>and</strong> spo<strong>of</strong>ing).


84 chess <strong>and</strong> computersOne <strong>of</strong> the best known <strong>and</strong> most versatile modern chatterbotsis ALICE (Artificial Linguistic Internet <strong>Computer</strong> Entity),developed by Richard Wallace. ALICE does much more thansimply echo statements; it includes an elaborate parser <strong>and</strong>sentence generator <strong>and</strong> specialized scripts for initiating orresponding to conversational gambits. ALICE can even telllies <strong>and</strong> spread “gossip” that it learns from other users.In the following dialog ALICE seems to be able torespond appropriately:Human: Are you intelligent?ALICE: I am highly intelligent. I have many intellectual functions.Human: How do you know you are intelligent?ALICE: By introspection.However the illusion breaks down as the matter ispressed further <strong>and</strong> the bot uses a “deflection” strategy:Human: What were you thinking while you said that?ALICE: I was minding my own business.Human: How do you feel about being interrogated in this way?ALICE: The opposite <strong>of</strong> not being interrogated in this way.Still, with more than 25,000 conversation templatesstored in XML files that are modifiable by the user, ALICEhas repeatedly won the Loebner Contest, a modern version<strong>of</strong> the Turing test.Although many are created as programming exercisesor for amusement, chatterbots embody principles that areimportant in artificial intelligence research, including naturallanguage processing <strong>and</strong> machine learning (see artificialintelligence). Techniques first developed withchatterbots can contribute to the creation <strong>of</strong> programsdesigned to provide answers to users’ questions or otherforms <strong>of</strong> assistance (see s<strong>of</strong>tware agent).moves for the computer chess player, the possible replies<strong>of</strong> the opponent to each move, the possible next moves bythe computer, <strong>and</strong> so on for as many half moves or “plies”as possible. The moves would be evaluated by a “minimax”algorithm that would find the move that best improves thecomputer’s position despite the opponent’s best play.The fundamental problem with the brute force is the“combinatorial explosion”: Looking ahead just three moves(six plies) would involve evaluating more than 700,000,000positions. This was impractical given the limited computingpower available in the 1950s. Shannon realized this<strong>and</strong> decided that a successful chess program would have toincorporate principles <strong>of</strong> chess strategy that would enable itto quickly recognize <strong>and</strong> discard moves that did not showa likelihood <strong>of</strong> gaining material or improving the position(such as by increasing control <strong>of</strong> center squares). As a result<strong>of</strong> this “pruning” approach, only the more promising initialmoves would result in the program looking ahead—butthose moves could be analyzed much more deeply.The challenge <strong>of</strong> the pruning approach is the need toidentify the principles <strong>of</strong> good play <strong>and</strong> codify them in sucha way that the program can use them reliably. Progresswas slow at first—programs <strong>of</strong> the 1950s <strong>and</strong> 1960s couldscarcely challenge an experienced amateur human player,let alone a master. A typical program would play a mixture<strong>of</strong> reasonable moves, odd-looking but justifiable moves,<strong>and</strong> moves that showed the chess version <strong>of</strong> “nearsightedness.”By the 1970s, however, computing power was rapidlyincreasing, <strong>and</strong> a new generation <strong>of</strong> programs such as Chess4.0 from Northwestern University ab<strong>and</strong>oned most pruningtechniques in favor <strong>of</strong> brute-force searches that could nowextend further ahead. In practice, each programmer chose aparticular balance between brute force <strong>and</strong> pruning-selectionFurther ReadingA.L.I.C.E. Artificial Intelligence Foundation. Available online.URL: http://www.alicebot.org/. Accessed April 27, 2007.Chatterbot Central (The Simon Laven Page). Available online.URL: http://www.simonlaven.com/. Accessed April 27, 2007.Loebner Prize. Available online. URL: http://www.loebner.net/Prizef/loebner-prize.html. Accessed April 27, 2007.chess <strong>and</strong> computersWith simple rules but endless permutations, chess has fascinatedmillions <strong>of</strong> players for hundreds <strong>of</strong> years. Whenmechanical automatons became fashionable in the 18thcentury, onlookers were intrigued by “the Turk,” a chessplayingautomaton. While the Turk was eventually shownto be a hoax (a human player was hidden inside), the development<strong>of</strong> the electronic digital computer in the mid-20thcentury provided the opportunity to create a true automaticchess player.In 1950 Claude Shannon outlined the two basic strategiesthat would be used by future chess-playing programs.The “brute force” strategy would examine the possibleIn the 18th century the Turk, a mechanical chess player, astonishedonlookers. Although the original Turk was a fraud (a small humanplayer was hidden inside), the modern computer chess programFritz 9 pays its homage by simulating its predecessor. (Fritz 9,Chessbase GmbH, www.chessbase.com)


chip 85techniques. An ever-increasing search base could be combinedwith evaluation <strong>of</strong> particularly important positionalfeatures (such as the possibility <strong>of</strong> creating a “passed pawn”that could be promoted to a queen).By the end <strong>of</strong> the 1970s, International Master DavidLevy was still beating the best chess programs <strong>of</strong> the time(defeating Chess 4.7 in 1978). A decade later, however, Levywas defeated in 1989 by Deep Thought, a program thatran on a specially designed computer that could examinehundreds <strong>of</strong> millions <strong>of</strong> positions per move. That same yearWorld Champion Garry Kasparov decisively defeated themachine. In 1996, however, the successor program DeepBlue (sponsored by IBM) shocked the chess world by beatingKasparov in the first game <strong>of</strong> their match. Kasparovwent on to win the match, but the following year an updatedversion <strong>of</strong> Deep Blue defeated Kasparov 3 1/2–2 1/2. A computerhad arguably become the strongest chess player in theworld. As a practical matter, the match brought IBM invaluablepublicity as a world leader in supercomputing.Chess <strong>and</strong> AIThe earliest computer chess theorists such as Claude Shannon<strong>and</strong> Alan Turing saw the game as one potential wayto demonstrate true machine intelligence. Ironically, bythe time computers had truly mastered chess, the artificialintelligence (AI) community had concluded that masteringthe game was largely irrelevant to their goals. AI pioneersHerbert Simon <strong>and</strong> John McCarthy have referred to chessas “the Drosophila <strong>of</strong> AI.” By this they mean that, like theubiquitous fruit flies in genetics research, chess became aneasy way to measure computer prowess. But what was itmeasuring? The dominant brute-force approach was morea measure <strong>of</strong> computing power than the application <strong>of</strong> suchAI techniques as pattern recognition. (There is, however,still some interest in writing chess programs that “think”more like a human player.) In recent years there has beensome interest in programming computers to play the Asianboard game Go, where positional <strong>and</strong> structural elementsplay a greater role than in chess. However, even the latestgeneration <strong>of</strong> Go programs seem to be relying more on astatistical approach than a deep conceptual analysis.Further Reading<strong>Computer</strong> History Museum. “Mastering the Game: A History<strong>of</strong> <strong>Computer</strong> Chess.” Available online. URL: http://www.computerhistory.org/chess/. Accessed April 28, 2007.Hsu, Feng-Hsiung. Behind Deep Blue: Building the <strong>Computer</strong> ThatDefeated the World Chess Champion. Princeton, N.J.: PrincetonUniversity Press, 2004.Levy, David, <strong>and</strong> Monty Newborn. How <strong>Computer</strong>s Play Chess.New York: <strong>Computer</strong> <strong>Science</strong> Press, 1991.Shannon, Claude E. “Programming a <strong>Computer</strong> for PlayingChess.” Philosophical Magazine 41 (1950): 314. Available from<strong>Computer</strong> History Museum. Available online. URL: http://archive.computerhistory.org. Accessed April 27, 2007.chipAs early as the 1930s, researchers had begun to investigatethe electrical properties <strong>of</strong> materials such as silicon<strong>and</strong> germanium. Such materials, dubbed “semiconductors,”were neither a good conductor <strong>of</strong> electricity (such as copper)nor a good insulator (such as rubber). In 1939, oneresearcher, William Shockley, wrote in his notebook “It hastoday occurred to me that an amplifier using semiconductorsrather than vacuum [tubes] is in principle possible.” Inother words, if the conductivity <strong>of</strong> a semiconductor couldbe made to vary in a controlled way, it could serve as anelectronic “valve” in the same way that a vacuum tube canbe used to amplify a current or to serve as an electronicswitch.The needs <strong>of</strong> the ensuing wartime years made it evidentthat a solid-state electronic device would bring manyadvantages over the vacuum tube: compactness, lowerpower usage, higher reliability. Increasingly complex electronicequipment, ranging from military fire control systemsto the first digital computers, further underscored theinadequacy <strong>of</strong> the vacuum tube.In 1947, William Shockley, along with John Bardeen<strong>and</strong> Walter Brattain, invented the transistor, a solid-stateelectronic device that could replace the vacuum tube formost low-power applications, including the binary switchingthat is at the heart <strong>of</strong> the electronic digital computer.But as the computer industry strove to pack more processingpower into a manageable volume, the transistor itselfbegan to appear bulky.Starting in 1958, two researchers, Jack Kilby <strong>of</strong> TexasInstruments <strong>and</strong> Robert Noyce <strong>of</strong> Fairchild Semiconductor,independently arrived at the next stage <strong>of</strong> electronicminiaturization: the integrated circuit (IC). The basic idea<strong>of</strong> the IC is to make semiconductor resistors, capacitors,<strong>and</strong> diodes, combine them with transistors, <strong>and</strong> assemblethem into complete, compact solid-state circuits. Kilby didthis by embedding the components on a single piece <strong>of</strong> germaniumcalled a substrate. However, this method requiredthe painstaking <strong>and</strong> expensive h<strong>and</strong>-soldering <strong>of</strong> the tinygold wires connecting the components. Noyce soon cameup with a superior method: Using a lithographic process, hewas able to print the pattern <strong>of</strong> wires for the circuit onto aboard containing a silicon substrate. The components couldthen be easily connected to the circuit. Thus was born theubiquitous PCB (printed circuit board). This technologywould make the minicomputer (a machine that was roughlyrefrigerator-sized rather than room-sized) possible duringthe 1960s <strong>and</strong> 1970s. Besides the PCBs being quite reliablecompared to h<strong>and</strong>-soldered connections, a failed boardcould be easily “swapped out” for a replacement, simplifyingmaintenance.From IC to ChipThe next step to the truly integrated circuit was to form theindividual devices onto a single ceramic substrate (muchsmaller than the printed circuit board) <strong>and</strong> encapsulatethem in a protective polymer coating. The device then functionedas a single unit, with input <strong>and</strong> output leads to connectit to a larger circuit. However, the speed <strong>of</strong> this “hybridIC” is limited by the relatively large distance between components.The modern IC that we now call the “computerchip” is a monolithic IC. Here the devices, rather than being


86 chipsetattached to the silicon substrate, are formed by altering thesubstrate itself with tiny amounts <strong>of</strong> impurities (a processcalled “doping”). This creates regions with an excess <strong>of</strong>electrons (n-type, for negative) or a deficit (p-type for positive).The junction between a p <strong>and</strong> an n region functionsas a diode. More complex arrangements <strong>of</strong> p <strong>and</strong> n regionsform transistors. Layers <strong>of</strong> transistors <strong>and</strong> other devices canbe formed on top <strong>of</strong> one another, resulting in a highly compactintegrated circuit. Today this is generally done usingoptical lithography techniques, although as the separationbetween components approaches 100 nm (nanometers, orbillionths <strong>of</strong> a meter) it becomes limited by the wavelength<strong>of</strong> the light used.In computers, the IC chip is used for two primary functions:logic (the processor) <strong>and</strong> memory. The microprocessors<strong>of</strong> the 1970s were measured in thous<strong>and</strong>s <strong>of</strong> transistorequivalents, while chips such as the Pentium <strong>and</strong> Athlonbeing marketed by the late 1990s are measured in tens<strong>of</strong> millions <strong>of</strong> transistors (see microprocessor). Meanwhile,memory chips have increased in capacity from the4K <strong>and</strong> 16K common around 1980 to 256 MB <strong>and</strong> more.In what became known as “Moore’s law,” Gordon Moorehas observed that the number <strong>of</strong> transistors per chip hasdoubled roughly every 18 months.Future TechnologiesAlthough Moore’s law has proven to be surprisingly resilient,new technologies will be required to maintain thepace <strong>of</strong> progress.In January 2007, Intel <strong>and</strong> IBM separately announced aprocess for making transistors out <strong>of</strong> the exotic metal hafnium.It turns out that hafnium is much better than the traditionalsilicon at preventing power leakage (<strong>and</strong> resultinginefficiency) through layers that are only about five atomsthick. Hafnium transistors can also be packed more closelytogether <strong>and</strong>/or run at a higher speed.Another approach is to find new ways to connect thetransistors so they can be placed closer together, allowingsignals to travel more quickly <strong>and</strong> thus provide fasteroperation. Hewlett-Packard (HP) is developing a way toplace the connections on layers above the transistors themselves,thus reducing the space between components. Thescheme uses two layers <strong>of</strong> conducting material separated bya layer <strong>of</strong> insulating material that can be made to conductby having a current applied to it. Although promising, theapproach faces difficulties in making the wires (only about100 atoms thick) reliable enough for applications such ascomputer memory or microprocessors.Ultimately, direct fabrication at the atomic level (seenanotechnology) will allow for the maximum density<strong>and</strong> efficiency <strong>of</strong> computer chips.Further ReadingBaker, R. Jacob, Harry W. Li, <strong>and</strong> David E. Boyce. CMOS CircuitDesign, Layout <strong>and</strong> Simulation. New York: IEEE Press, 1998.Saint, Christopher <strong>and</strong> Judy Saint. IC Layout Basics. New York:McGraw-Hill, 2001.Semiconductor Industry Association. Available online. URL:http://www.sia-online.org/home.cfm. Accessed August 13,2007.Thompson, J. M. T., ed. Visions <strong>of</strong> the Future: Physics <strong>and</strong> Electronics.New York: Cambridge University Press, 2001.chipsetIn personal computers a chipset is a group <strong>of</strong> integratedcircuits that together perform a particular function. Systempurchasers generally think in terms <strong>of</strong> the processor itself(such as a Pentium III, Pentium IV, or competitive chipsfrom AMD or Cyrix). However they are really buying asystem chipset that includes the microprocessor itself (seemicroprocessor) <strong>and</strong> <strong>of</strong>ten a memory cache (which may bepart <strong>of</strong> the microprocessor or a separate chip—see cache)as well as the chips that control the memory bus (whichconnects the processor to the main memory on the motherboard—seebus.) The overall performance <strong>of</strong> the systemdepends not just on the processor’s architecture (includingdata width, instruction set, <strong>and</strong> use <strong>of</strong> instruction pipelines)but also on the type <strong>and</strong> size <strong>of</strong> the cache memory,the memory bus (RDRAM or “Rambus” <strong>and</strong> SDRAM) <strong>and</strong>the speed with which the processor can move data to <strong>and</strong>from memory.In addition to the system chipset, other chipsets on themotherboard are used to support functions such as graphics(the AGP, or Advanced Graphics Port, for example), driveconnection (EIDE controller), communication with externaldevices (see parallel port, serial port, <strong>and</strong> USB), <strong>and</strong>connections to expansion cards (the PCI bus).At the end <strong>of</strong> the 1990s, the PC marketplace had chipsetsbased on two competing architectures. Intel, whichoriginally developed an architecture called Socket 7, hasswitched to the more complex Slot-1 architecture, whichis most effective for multiprocessor operation but <strong>of</strong>fersthe advantage <strong>of</strong> including a separate bus for accessing thecache memory. Meanwhile, Intel’s main competitor, AMD,has enhanced the Socket 7 into “Super Socket 7” <strong>and</strong> is<strong>of</strong>fering faster bus speeds. On the horizon may be completelynew architecture. In choosing a system, consumersare locked into their choice because the microprocessor pinsockets used for each chipset architecture are different.Further ReadingIntel. “Desktop Chipsets.” Available online. URL: http://www.intel.com/products/desktop/chipsets/. Accessed June 6, 2007.“Motherboards.” Available online. URL: http://www.motherboards.org/index.html. Accessed June 6, 2007.Walrath, Josh. “Chipsets Today <strong>and</strong> Tomorrow.” ExtremeTech.Available online. URL: http://www.extremetech.com/article2/0,1697,1845493,00.asp. Accessed June 6, 2007.Church, Alonzo(1903–1995)AmericanMathematicianBorn in Washington, D.C., mathematician <strong>and</strong> logicianAlonzo Church made seminal contributions to the fundamentaltheory <strong>of</strong> computation. Church was mentored bynoted geometer Oswald Veblen <strong>and</strong> graduated from Prince-


88 classclassA class is a data type that combines both a data structure<strong>and</strong> methods for manipulating the data. For example, astring class might consist <strong>of</strong> an array to hold the charactersin the string <strong>and</strong> methods to compare strings, combinestrings, or extract portions <strong>of</strong> a string (see characters<strong>and</strong> strings).As with other data types, once a class is declared,objects (sometimes called instances) <strong>of</strong> the class can becreated <strong>and</strong> used. This way <strong>of</strong> structuring programs iscalled object-oriented programming because the classobject is the basic building block (see object-orientedprogramming).Object-oriented programming <strong>and</strong> classes provide severaladvantages over traditional block-structured languages.In a traditional BASIC or even Pascal program, there isno particular connection between the data structure <strong>and</strong>the procedures or functions that manipulate it. In a largeprogram one programmer might change the data structurewithout alerting other programmers whose code assumesthe original structure. On the other h<strong>and</strong>, someone mightwrite a procedure that directly manipulates the internaldata rather than using the methods already provided. Eithertransgression can lead to hard-to-find bugs.With a class, however, data <strong>and</strong> procedures are boundtogether, or encapsulated. This means that the data in aclass object can be manipulated only by using one <strong>of</strong> themethods provided by the class. If the person in charge<strong>of</strong> maintaining the class decides to provide an improvedimplementation <strong>of</strong> the data structure, as long as the dataparameters expected by the class methods do not change,code that uses the class objects will continue to functionproperly.A class encapsulates (or hides) its internal information from therest <strong>of</strong> the program. When the program calls MyCircle.GetPosition,the GetPosition member function <strong>of</strong> the MyCircle Circle class objectretrieves the private Position data <strong>and</strong> sends it back to the callingstatement, where it is assigned to the variable P. Private data cannotbe directly accessed or changed by an outside caller.Most languages that use classes also allow for inheritance,or the ability to create a new class that derives data<strong>and</strong> methods from a “parent” class <strong>and</strong> then modifies orextends them. For example, a class that provides supportfor 3D graphics could be derived from an existing class for2D graphics by adding data items such as a third (Z) coordinate<strong>and</strong> replacing a method such as “line” with a versionthat works with three coordinates instead <strong>of</strong> two.In designing classes, it is important to identify theessential features <strong>of</strong> the physical situation you are trying tomodel. The most general characteristics can be put in the“base class” <strong>and</strong> the more specialized characteristics wouldbe added in the inherited (derived) classes.Classes <strong>and</strong> C++Classes first appeared in the Simula 67 language, whichintroduced the terms class <strong>and</strong> object (see Simula). As thename suggests, the language was used mainly for simulation<strong>and</strong> modeling, but its object-oriented ideas wouldprove influential. The Smalltalk language developed atXerox PARC in the 1970s ran on the Alto computer, whichpioneered the graphic user interface that would becomepopular with the Macintosh in the 1980s. Smalltalk usedclasses to build a seamless <strong>and</strong> extensible operating system<strong>and</strong> environment (see Smalltalk).However it was Bjarne Stroustrup’s C++ language thatbrought classes into the programming mainstream (seec++). C++ essentially builds its classes by extending theC struct so that it contains both methods (class functions)<strong>and</strong> data. An access mechanism allows class variables to bedesignated as completely accessible (public), which is rare,accessible only by derived classes (protected), or accessibleonly within the class itself (private). The creation <strong>of</strong> a newobject <strong>of</strong> the class is specified by a constructor function,which typically allocates memory for the object <strong>and</strong> setsinitial default values. The corresponding destructor functionfrees up the memory when the object no longer exists.C++ allows for multiple inheritance, meaning that a classcan be derived from more than one parent or base class.The language also provides two powerful mechanisms forextending functionality. The first, called virtual functions,allows a base class <strong>and</strong> its derived classes to have functionsbased on the same interface. For example, a base graphicsclass might have virtual line, circle, setcolor, <strong>and</strong> otherfunctions that would be implemented in derived classes for3D objects, 3D solid objects, <strong>and</strong> so on. When the programcalls a method in a virtual class, the compiler automaticallysearches the class’s “family tree” until it finds the class thatcorresponds to the actual data type <strong>of</strong> the object.A template specifies how to create a class definitionbased on the type <strong>of</strong> data to be used by the class. In otherwords, where a regular procedure takes <strong>and</strong> manipulatesdata parameters <strong>and</strong> returns data, a template takes dataparameters <strong>and</strong> returns a definition <strong>of</strong> a class for workingwith that data (see template).Other languages <strong>of</strong> the 1980s <strong>and</strong> later have embracedclasses. Examples include descendants <strong>of</strong> the Algol family<strong>of</strong> languages (see Pascal, Ada, c++’s close cousin—Java),<strong>and</strong> Micros<strong>of</strong>t’s Visual Basic. (There is even a version <strong>of</strong>COBOL with classes.)


90 clock speedSinclair, Joseph T., <strong>and</strong> Mark S. Merkow. Thin Clients ClearlyExplained. San Francisco: Morgan Kaufmann, 2000.clock speedThe transfer <strong>of</strong> data within the microprocessor <strong>and</strong> betweenthe microprocessor <strong>and</strong> memory must be synchronized toensure that the data needed to execute each instruction isavailable when the flow <strong>of</strong> execution has reached an appropriatepoint. This synchronization is accomplished by movingdata in intervals that correspond to the pulses <strong>of</strong> thesystem clock (a quartz crystal). This is done by sendingcontrol signals that tell the components <strong>of</strong> the processor<strong>and</strong> memory when to send or wait for data. Thus, if themicroprocessor is the heart <strong>of</strong> the computer, the clock is theheart’s pacemaker. Because most devices cannot run at thesame pace as the processor, circuits in various parts <strong>of</strong> themotherboard create secondary control signals that run atvarious ratios <strong>of</strong> the actual system clock speed.The following table shows the speed <strong>of</strong> various systemcomponents in relation to the system clock rate. Althoughthe example uses a 600-MHz clock, the ratios will generallyhold for faster processors.Device speed RelationshipProcessor 600 System bus * 4.5System(Memory) Bus 133 (depends on multiplier)Level 2 Cache 300 Processor / 2AGP 66 System bus / 2PCI bus 33 System bus / 4Microprocessors are rated according to the frequency(that is, number <strong>of</strong> pulses per second) <strong>of</strong> their associatedclock. For example, a 1.2-GHz Pentium IV processor has1.2 billion (giga-) pulses per second. It follows that all otherthings being equal, the higher a processor’s clock frequency,the more instructions it can process per second. An alternativeway to rate processors is according to the number <strong>of</strong> ast<strong>and</strong>ard type <strong>of</strong> instruction that it can process per second,hence MIPS (millions <strong>of</strong> instructions per second).The relationship between clock speed <strong>and</strong> processorperformance is not as simple as the preceding might imply,however. Each processor is designed with circuits that canmove data at a certain rate. In some cases a processor canbe run at a higher clock rate than specified (this is calledoverclocking), but then reliability comes into question.Also, the actual processing power <strong>of</strong> a processor dependson many other factors. If a processor implements instructionsin its microcode that are more efficient for h<strong>and</strong>lingcertain operations (such as floating point math or graphicsrendering), applications that depend on these operationsmay run faster on one processor than on another, even ifthe two processors run at the same clock speed. The speed<strong>of</strong> the system bus (which connects the processor to theRAM memory) also affects the speed at which data can befetched, processed, <strong>and</strong> stored. A processor with a clockspeed <strong>of</strong> 733 MHz should perform better on a motherboardwith a bus speed <strong>of</strong> 133 MHz than on one with a bus speed<strong>of</strong> only 100 MHz.Speed is “sexy” in marketing terms, so the major chipmanufacturers always tout their fastest chips. However, thedifference in speed between, for example, a 2.2-GHz version<strong>of</strong> a processor <strong>and</strong> a 2.0-GHz version may be unnoticeableto the user <strong>of</strong> all but the most processor-intensive applications(such as image processing). Indeed, if the system withthe slower chip has a faster bus, faster memory (such asRDRAM), or a larger processor cache (see cache) it maywell outperform the one with a faster chip.Another reason for caution in interpreting clock speedis that many recent PCs have two or even four processors(see multiprocessing). Performance in such systemsis likely to depend at least as much on optimization <strong>of</strong> theoperating system <strong>and</strong> applications as on any multiple <strong>of</strong> rawclock speed. This trend to multicore CPUs is also seen as analternative to any substantial increase in processor speed,because higher speeds bring increasing concerns about heat<strong>and</strong> power usage.In PCs the term “clock” can also refer to the battery-powered“real-time” clock that provides a timing interval thatcan be accessed by the operating system <strong>and</strong> applications.Further ReadingClock speed resources. TechRepublic. Available online. URL:http://search.techrepublic.com.com/search/clock+speed.html?t=11& s=0&o=0. Accessed June 6, 2007.“Underst<strong>and</strong>ing System Memory <strong>and</strong> CPU Speeds.” Available online.URL: http://www.directron.com/fsbguide.html. Accessed June6, 2007.“What Is CPU Overclocking?” Available online. URL: http://www.webopedia.com/DidYouKnow/<strong>Computer</strong>_<strong>Science</strong>/2005/overclocking.asp. Accessed June 6, 2007.COBOLCommon Business-Oriented Language was developed underthe impetus <strong>of</strong> a 1959 Department <strong>of</strong> Defense initiative tocreate a common language for developing business applicationsthat centered on the processing <strong>of</strong> data from files. (Themilitary, after all, was a “business” whose inventory control<strong>and</strong> accounting needs dwarfed those <strong>of</strong> all but the largestcorporations.) At the time, the principal business-orientedlanguage for mainframe computers was FLOW-MATIC, alanguage developed by Grace Hopper’s team at Remington-R<strong>and</strong> UNIVAC <strong>and</strong> limited to that company’s computers(see Hopper, Grace Murray). The first COBOL compilersbecame available in 1960, <strong>and</strong> the American NationalSt<strong>and</strong>ards Institute (ANSI) issued a st<strong>and</strong>ard specificationfor the language in 1968. Exp<strong>and</strong>ed st<strong>and</strong>ards were issuedin 1974 <strong>and</strong> 1985 (COBOL-74 <strong>and</strong> COBOL-85) with a newst<strong>and</strong>ard issued in 2002.The committee that outlined the language that wouldbecome COBOL focused on making program statementsresemble declarative English sentences rather than themathematical expressions used by FORTRAN for scientificprogramming. COBOL’s designers hoped that accountants,managers, <strong>and</strong> other business pr<strong>of</strong>essionals could quicklymaster the language, reducing if not removing the need for


COBOL 91pr<strong>of</strong>essional programmers. (This theme <strong>of</strong> “programmingwithout programmers” would recur with regard to otherlanguages such as RPG, BASIC, <strong>and</strong> various database systems,always with limited success.)Program StructureA COBOL program as a whole resembles a business form inthat it is divided into specific sections called divisions, eachwith required <strong>and</strong> optional items.The Identification division simply identifies the programmer<strong>and</strong> gives some information about the program:IDENTIFICATION DIVISION.PROGRAM-ID WEEKLY REPORT.AUTHOR JAMES BRADLEY.DATE-WRITTEN DECEMBER 10, 2000.DATE-COMPILED DECEMBER 12, 2000.REMARKS THIS IS AN EXAMPLE PROGRAM.The Environment division contains specifications aboutthe environment (hardware) for which the program willbe compiled. In some cases (for example, microcomputerversions <strong>of</strong> COBOL) it may not be needed. In other cases, itmight simply have a Configuration section that specifies themachine to be used:ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER IBM-370.OBJECT-COMPUTER IBM-370.(The reason for the separate source <strong>and</strong> object computers isthat programs were sometimes compiled on one computerfor use on another, <strong>of</strong>ten smaller, one.)In some cases, the Environment Division must alsoinclude an Input-Output section that specifies devices <strong>and</strong>files that will be used by the program. For example:INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT STUDENT-FILE ASSIGN TO READERSELECT STUDENT-LISTING ASSIGN TO LOCAL-PRINTERThe Data division gives a description <strong>of</strong> the data records<strong>and</strong> other items that will be processed by the program.It is roughly comparable to the declarations <strong>of</strong> variablesin languages such as Pascal, C, or BASIC. Since COBOLfocuses on the processing <strong>of</strong> file records <strong>and</strong> the formatting<strong>of</strong> reports, it tends to have fewer data types than manyother languages, but it makes it easier to describe the kinds<strong>of</strong> data structures commonly used in business applications.For example, it is easy to describe records that have fields<strong>and</strong> subfields by using level numbers to indicate the relationship:DATA DIVISION.FILE SECTION.FD INFILELABEL RECORDS ARE OMITTED.01 STUDENT-DATA.02 STUDENT-ID PIC 999999.02 STUDENT-NAME.03 LAST-NAME PIC X(15).03 INITIAL PIC X.03 FIRST-NAME PIC X(10).02 GPA PIC 9.99The “PIC” or picture clause specifies the type <strong>of</strong> data(using 9’s <strong>and</strong> a decimal point for numbers <strong>and</strong> X for text)<strong>and</strong> the length. In addition to specifying the input records,the Data division <strong>of</strong>ten includes items that specify the format<strong>of</strong> the lines <strong>of</strong> output that are to be printed.The Procedure division provides the statements thatperform the actual data manipulation. Procedures can beorganized as subroutines (roughly equivalent to proceduresor functions on other languages). Some sample procedurestatements are:READ STUDENT-DATA INTO STUDENT-WORK-RECORDAT END MOVE ‘E’ TO PROC-FLAG-STGO TO EXIT-PRINTADD 1 TO TOTAL-STUDENT-RECORDSMathematical expressions can be computed using aCompute statement:COMPUTE GPA = TOTAL-GRADES / CLASSESBranching (if) statements are available, <strong>and</strong> looping isprovided by the Perform statement, for example:PERFORM 100-PRINT-LINEUNTIL LINES-FL IS EQUAL TO ‘E’(As with older versions <strong>of</strong> BASIC, subroutines are numbered.)Impact <strong>and</strong> ProspectsFrom the 1960s through the 1980s, COBOL became theworkhorse language for business applications for mainframe<strong>and</strong> mid-size computers, <strong>and</strong> it is still widely usedtoday. (The concerns about possible problems at the end<strong>of</strong> the century <strong>of</strong>ten involved older programs written inCOBOL, see y2k problem.) The main line <strong>of</strong> programminglanguage evolution bypassed COBOL <strong>and</strong> went throughAlgol (a contemporary <strong>of</strong> COBOL) <strong>and</strong> on into Pascal, C,<strong>and</strong> other block-structured languages (see also structuredprogramming).Some modern versions <strong>of</strong> COBOL have incorporatedlater developments in structured programming (such asmodularization) <strong>and</strong> even object-oriented design. COBOLhas also shown considerable versatility in accommodatingmodern development frameworks, including Micros<strong>of</strong>t.NETas well as processing now-ubiquitous XML data. Nevertheless,usage <strong>of</strong> COBOL continues to decline slowly as developersincreasingly turn to languages such as C++, scriptinglanguages, or database development systems.Further ReadingBivar de Oliveria, Rui. The Power <strong>of</strong> COBOL: For Systems Developers<strong>of</strong> the 21st Century. Charleston, S.C.: BookSurge, 2006.COBOL Portal. Available online. URL: http://www.cobolportal.com. Accessed June 8, 2007.


92 codecMurcah, Mike, Anne Prince, <strong>and</strong> Raul Menendez. Murach’s MainframeCOBOL. Fresno, Calif.: Murach <strong>and</strong> Associates, 2004.Sammet, J. E. “The Early History <strong>of</strong> COBOL,” in History <strong>of</strong> ProgrammingLanguages. Wexelblat, R. L., ed., 199–276. NewYork: Academic Press, 1985.codecShort for “coder/decoder,” a codec is essentially an algorithmfor encoding (<strong>and</strong> compressing) a stream <strong>of</strong> data fortransmission, <strong>and</strong> then decoding <strong>and</strong> decompressing it atthe receiving end. Usually the data involved representsaudio or video content (see streaming). Typically the datais being downloaded from a Web site to be played on apersonal computer or portable player (see multimedia <strong>and</strong>music <strong>and</strong> video players, digital).A codec is described as “lossy” if some <strong>of</strong> the originalinformation is lost in the compression process. It thenbecomes a question <strong>of</strong> whether the loss in quality is perceivedby the user as significant. A codec that preserves allthe information needed to re-create the original file is “lossless.”For most purposes, the much greater size <strong>of</strong> the losslessversion <strong>of</strong> a file is not worth the (<strong>of</strong>ten imperceptible)increase in quality or fidelity.A codec is usually used in connection with a “containerformat” that specifies how the encoded data is to be storedCodecAACAIFFALACAVIFLACCMP3MPEGOgg VorbisQuick TimeReal Audio <strong>and</strong><strong>and</strong> RealVideoRIFFVorbisWAVWMAWMVContainer Descriptionadvanced audio coding; developed as asuccessor to MP3 <strong>and</strong> especially usedby Apple (iTunes, iPod, iPhone, etc.)audio interchange file format; audiocontainer format for transferring contentbetween applicationsApple lossless audio codecaudio video interleave; video <strong>and</strong> moviescontainer formatfree lossless audio codec; music, opensource, losslessactually MPEG-3, probably the mostcommon music codecMoving Picture Experts Group; video,movies, audio (four layers MPEG-1through MPEG-4)music, open source (<strong>of</strong>ten used on Linuxsystems)Apple multimediadeveloped by RealNetworks for manyplatformsresource interchange file format; containerformatfree, open-source audio codec (<strong>of</strong>ten usedin Linux)Windows audio format (usuallyuncompressed)Windows media audioWindows media videoin a file. Often a container can hold more than one datastream <strong>and</strong> even more than one kind <strong>of</strong> media (such asvideo <strong>and</strong> audio). When one refers to a Windows WAV file,for example, one is actually referring to a container.Most <strong>of</strong> the popular codecs <strong>and</strong> file formats are proprietary,which creates something <strong>of</strong> a dilemma for users whoprefer open-source solutions. However, while most Linuxdistributions do not include support for formats such asMP3 out <strong>of</strong> the box, distributions such as Ubuntu are nowmaking it easier for users to choose nonsupported proprietarycodecs if desired.The preceding table lists some codecs likely to beencountered by program developers <strong>and</strong> consumers.Further ReadingAudio Files. Available online. URL: http://www.fileinfo.net/filetypes/audio. Accessed September 3, 2007.Harte, Lawrence. Introduction to MPEG. Fuquay Varina, N.C.:Althos Publishing, 2006.Rathbone, Andy. MP3 for Dummies. 2nd ed. New York: HungryMinds, 2001.Richardson, Iain E. G. Video Codec Design: Developing Image <strong>and</strong>Video Compression Systems. New York: Wiley, 2002.Roberts-Breslin, Jan. Making Media: Foundations <strong>of</strong> Sound <strong>and</strong>Image Production. Boston: Focal Press, 2003.Thurott, Paul. PC Magazine Windows XP Digital Media Solutions.Indianapolis: Wiley, 2005.Video Files. Available online. URL: http://www.fileinfo.net/filetypes/video. Accessed September 3. 2007.cognitive scienceCognitive science is the study <strong>of</strong> mental processes such asreasoning, memory, <strong>and</strong> the processing <strong>of</strong> perception. Itis necessarily an interdisciplinary approach that includesfields such as psychology, linguistics, <strong>and</strong> neurology. Theimportance <strong>of</strong> the computer to cognitive science is that it<strong>of</strong>fers a potential nonhuman model for a thinking entity.The attempts at artificial intelligence over the past 50 yearshave used the insights <strong>of</strong> cognitive science to help deviseartificial means <strong>of</strong> reasoning <strong>and</strong> perception. At the sametime, the models created by computer scientists (such asthe neural network <strong>and</strong> Marvin Minsky’s idea <strong>of</strong> “multipleintelligent agents”) have in turn been applied to the study<strong>of</strong> human cognition (see Minsky, Marvin Lee <strong>and</strong> neuralnetwork).Since the late 19th century, technological metaphorshave been used to describe the human mind. The neurons<strong>and</strong> synapses <strong>of</strong> the brain were compared to the multitude<strong>of</strong> switches in a telephone company central <strong>of</strong>fice. Theinvention <strong>of</strong> digital computers seemed to <strong>of</strong>fer an even morecompelling correspondence between neurons <strong>and</strong> their electrochemicalstates <strong>and</strong> the binary state <strong>of</strong> a vacuum tube ortransistor. It is only a small further step to assert that humanmental processes can be reduced in principle to computation,albeit a very complex tapestry <strong>of</strong> computation. Variousschools <strong>of</strong> popular psychology <strong>and</strong> personal improvementhave <strong>of</strong>fered simplistic images <strong>of</strong> the human mind sufferingfrom “bad programming” that can be debugged or manipulatedthrough various processes. The simulation <strong>of</strong> someforms <strong>of</strong> reasoning <strong>and</strong> language construction by AI pro-


color in computing 93grams certainly suggests that there are fruitful analogiesbetween human <strong>and</strong> machine cognition, but construction<strong>of</strong> a detailed model that would be applicable to both human<strong>and</strong> artificial intelligences seemed almost as distant in thescience fictional year <strong>of</strong> 2001 as it was when Alan Turing<strong>and</strong> other AI pioneers first considered such questions in theearly 1950s (see Turing, Alan Mathison).Symbolists <strong>and</strong> ConnectionistsUnlike st<strong>and</strong>ard computer memory cells, neurons can havehundreds <strong>of</strong> potential connections (<strong>and</strong> thus states). If ahuman being is a computer, it must be to a considerableextent an analog computer, with input in the form <strong>of</strong> levels <strong>of</strong>various chemicals <strong>and</strong> electrical impulses. Yet in the 1980s,Allen Newell <strong>and</strong> Herbert Simon suggested that the “output”<strong>of</strong> human mental experience can be effectively mapped asrelationships between symbols (words, images, <strong>and</strong> so forth)that correspond to physical states (this is called the PhysicalSymbol System Hypothesis). If so, then such a symbol systemwould be “computable” in the Turing-Church sense (seecomputability <strong>and</strong> complexity). Working from the computerend, AI researchers have created a variety <strong>of</strong> programsthat seem to “underst<strong>and</strong>” restricted universes <strong>of</strong> discoursesuch as a table with variously shaped blocks upon it or“story frames” based upon common human activities suchas eating in a restaurant. Thus, symbol manipulators can atleast appear to be intelligent.The “connectionists,” however, argue that it is not symbolicrepresentations that are significant, but the structurewithin the mind that generates them. By designing neuralnetworks (or distributed processor networks) the connectionistshave been able to create systems that produceapparently intelligent behavior (such as pattern recognition)without any reference to symbolic representation.Critiques have also come from philosophers. HerbertDreyfus has pointed out that computers lack the body,senses, <strong>and</strong> social milieu that shape human thought. Thatmachines can generate symbolic representations accordingto some sort <strong>of</strong> programmed rules doesn’t make the machinetruly intelligent, at least not in the way experienced byhuman beings. John Searle responded to the famous Turingtest (which states that if a human being can’t distinguish acomputer’s conversation from a human’s, the computer isarguably intelligent). Searle’s “Chinese Room” imagines aroom in which an English-speaking person who knows noChinese is equipped with a program that lets him manipulateChinese words in such a way that a Chinese observerwould think he knows Chinese. Similarly, Searle argues,the computer might act “intelligently,” but it doesn’t reallyunderst<strong>and</strong> what it is doing.Advances in cognitive science will both influence <strong>and</strong>depend on developments in brain research (especially theconnection between physical states <strong>and</strong> cognition) <strong>and</strong> inartificial intelligence.Further ReadingBechtel, William, <strong>and</strong> Adele Abrahamson. Connectionism <strong>and</strong> theMind: Parallel Processing, Dynamics, <strong>and</strong> Evolution in Networks.2nd ed. Cambridge, Mass.: Blackwell, 2000.“Cognitive <strong>Science</strong>.” Stanford <strong>Encyclopedia</strong> <strong>of</strong> Philosophy. Availableonline. URL: http://plato.stanford.edu/entries/cognitivescience/.Accessed June 10, 2007.Horgan, Terence, <strong>and</strong> John Tienson. Connectionism <strong>and</strong> the Philosophy<strong>of</strong> Psychology. Cambridge, Mass.: MIT Press, 1996.Sobel, Carolyn. Cognitive <strong>Science</strong>: An Interdisciplinary Approach.New York: McGraw-Hill, 2001.Thagard, Paul. Mind: Introduction to Cognitive <strong>Science</strong>. 2nd ed.Cambridge, Mass.: MIT Press, 2005.color in computingWith the exception <strong>of</strong> a few experimental systems, colorgraphics first became widely available only with the beginnings<strong>of</strong> desktop computers in the late 1970s. The firstmicrocomputers were able to display only a few colors(some, indeed, displayed only monochrome or grayscale).Today’s PC video hardware has the potential to displaymillions <strong>of</strong> colors, though <strong>of</strong> course the human eye cannotdirectly distinguish colors that are too close together. Thereare several important schemes that are used to define a“color space”—that is, a range <strong>of</strong> values that can be associatedwith physical colors.RGBOne <strong>of</strong> the simplest color systems displays colors as varyingintensities <strong>of</strong> red, green, <strong>and</strong> blue. This corresponds to theelectronics <strong>of</strong> a st<strong>and</strong>ard color computer monitor, whichuses three electron guns that bombard red, green, <strong>and</strong> bluephosphors on the screen. A typical RGB color scheme uses8 bits to store each <strong>of</strong> the red, green, <strong>and</strong> blue componentsfor each pixel, for a total <strong>of</strong> 24 bits (16,777,216 colors). The32-bit color system provides the same number <strong>of</strong> colors butincludes 8 bits for alpha, or the level <strong>of</strong> transparency. Thenumber <strong>of</strong> bits per pixel is also called the bit depth or colordepth.CMYKCMYK st<strong>and</strong>s for cyan, magenta, yellow, <strong>and</strong> black. Thisfour component color system is st<strong>and</strong>ard for most types <strong>of</strong>color printing, since black is an ink color in printing but issimply the absence <strong>of</strong> color in video. One <strong>of</strong> the more difficulttasks to be performed by desktop publishing s<strong>of</strong>twareis to properly match a given RGB screen color to the correspondingCMYK print color. Recent versions <strong>of</strong> Micros<strong>of</strong>tWindows <strong>and</strong> the Macintosh operating system include aCMS (color matching system) to support color matching.PalettesAlthough most color schemes now support thous<strong>and</strong>s ormillions <strong>of</strong> colors, it would be wasteful <strong>and</strong> inefficient touse three or four bytes to store the color <strong>of</strong> each pixel inmemory. After all, any given application is likely to needonly a few dozen colors. The solution is to set up a palette,which is a table <strong>of</strong> (usually 256) color values currently inuse by the program. (A palette is also sometimes called aCLUT, or color lookup table.) The color <strong>of</strong> each pixel canthen be stored as an index to the corresponding value in thepalette.


94 COMcommon object request broker architectureSee corba.A color lookup table (CLUT) or palette can be used to store the colorsactually being used by an image. Here up to 256 colors can beselected out <strong>of</strong> millions <strong>of</strong> possibilities.The user <strong>of</strong> a paint program can select a palette fromthe full range <strong>of</strong> colors available from the operating system.Many color graphics image formats such as GIF (graphicinterchange format) store a palette <strong>of</strong> the colors used bythe image. When converting an image that has more colorsthat the palette can hold, various algorithms can be used tochoose a palette that preserves as much <strong>of</strong> the color rangeas possible.Further Reading“Color” Webopedia. Available online. URL: http://www.webopedia.com/Graphics/Color/. Accessed June 10, 2007.Drew, John, <strong>and</strong> Sarah Meyer. Color Management: A ComprehensiveGuide for Graphic Designers. East Sussex, U.K.: RotoVision,2005.“Introduction to Color <strong>and</strong> Color Management Systems.” Apple<strong>Computer</strong> Developer Connection. Available online. URL:http://developer.apple.com/documentation/mac/ACI/ACI46.html. Accessed June 10, 2007.Koren, Norman. “Color Management <strong>and</strong> Color <strong>Science</strong>: Introduction.”Available online. URL: http://www.normankoren.com/color_management.html. Accessed June 10, 2007.COM (common object model) See Micros<strong>of</strong>t.net.common gateway interface See cgi.compatibility <strong>and</strong> portabilityThe computers <strong>of</strong> the 1940s were each h<strong>and</strong> built <strong>and</strong>unique. When the first commercial models were developed,such as the UNIVAC <strong>and</strong> the first IBM mainframes, thequestion <strong>of</strong> compatibility was born. Broadly speaking, compatibilityis the degree to which a program or hardwaredevice designed for one system can work with or run onanother.The designers <strong>of</strong> high-level languages usually intend thata source program written using the proper language syntaxwill compile <strong>and</strong> run on any system for which a compiler isavailable. However, there are many factors that can destroycompatibility. For example, if one machine stores the bytes<strong>of</strong> a numeric value from least significant to most significantwhile another does it in the opposite order, program codethat depends on directly referencing memory locations willgive the wrong results on one machine or another. Similarly,st<strong>and</strong>ard data sizes such as “integer” might be 16 bitson one system <strong>and</strong> 32 bits on another.Language designers can minimize such problems byseparating hardware-related issues from the language itself,as is the case with C <strong>and</strong> C++. A program is then linkedwith st<strong>and</strong>ard libraries implemented for each hardware oroperating system environment.Manufacturers <strong>of</strong>ten design newer models <strong>of</strong> their computersso they are “upwardly compatible” with existingmodels. This means that a program written for the smallermachine should run correctly on the new, larger one. Thisis <strong>of</strong> obvious benefit to users who do not want to haveto rewrite their s<strong>of</strong>tware every time they upgrade theirmachine. Often, however, such systems are not “downwardlycompatible”—a program written for the new, largermachine may rely on features or architectural characteristicsthat are not available on the older, smaller machines.Sometimes a “compatibility mode” can be specified for acompiler or operating system. This restricts the use <strong>of</strong> featuresto those available on the older system.Compatibility is also important with regard to s<strong>of</strong>tware.Generally speaking, a newer version <strong>of</strong> a program such as aword processor will be able to read files that were originallycreated by a previous version, although this may not be truefor more than a few versions back. However, files saved fromthe newest version may well be incompatible with older versions,because they contain formatting or other informationthat is not underst<strong>and</strong>able by the earlier version. Sometimesan intermediate format (for example, see rtf, or Rich TextFormat) can be used to transfer files between otherwiseincompatible systems.Compatibility between vendors can be an importantcompetitive issue. If a developer wants to enter a marketwhere one or two products are viewed as industry st<strong>and</strong>ards,the new product will have to be compatible with atleast most files created by the dominant products. A technicallysuperior product can thus be a market disaster if it isnot compatible with the industry st<strong>and</strong>ard. In areas (such


compiler 95as graphics file formats) where there are many alternativesin widespread use, most programs will support multipleformats.PortabilityPortability is the ability to adapt s<strong>of</strong>tware or hardware toa wide variety <strong>of</strong> platforms (that is, computer systems oroperating systems). Developers want their products to beportable so they can adapt to an <strong>of</strong>ten rapidly changingmarketplace. A typical strategy for portability is to choosea language that is in widespread use <strong>and</strong> a compiler thatis certified as meeting the ANSI or other st<strong>and</strong>ard for thelanguage. The program should be written in such a way thatit makes as few assumptions as possible about hardwaredependentmatters such as how data is stored in memory. Itis also sometimes possible to use st<strong>and</strong>ard frameworks thatprovide the same functions in several different operatingsystems such as Windows, Macintosh, <strong>and</strong> UNIX.However, there is a trade<strong>of</strong>f: The more “generic” a programis made in order to be portable, the less optimized itwill be for any given hardware or operating environment.The program will also not be able to take advantage <strong>of</strong> thespecial features <strong>of</strong> a given operating system, which may putit at a competitive disadvantage compared to the “nativeversion” <strong>of</strong> a program. (This is particularly true with Windows,given that operating system’s dominance in personalcomputing.)The Internet has in general been a force for portability.The Java language, in particular, is designed to be platformindependent.A Java program is compiled into an intermediatelanguage called byte code, which is interpreted orcompiled by a “virtual machine” program running on eachplatform. Thus, the same Java program should run in abrowser under Windows, Macintosh, or UNIX (see java).for addition, rather than some binary instruction code). Anassembler is essentially a compiler that needs to make onlyrelatively simple translations, because assembly language isstill at a relatively low level.Moving to higher-level languages with relatively English-likestatements makes programming easier <strong>and</strong> makesprograms easier to read <strong>and</strong> maintain. However, the task<strong>of</strong> translating high-level statements to machine-level codebecomes a more complex multistep process.The Compilation ProcessCompilers are traditionally thought <strong>of</strong> as having a “frontend” that analyzes the source code (high-level languagestatements) <strong>and</strong> a “back end” that generates the appropriatelow-level code. The front end processing begins with lexicalanalysis. The compiler scans the source program looking formatches to valid tokens as defined by the language. A tokenis any word or symbol that has meaning in the language,Further ReadingHakuta, Mitsuari, <strong>and</strong> Masato Ohminami. “A Study <strong>of</strong> S<strong>of</strong>twarePortability Evaluation.” Journal <strong>of</strong> Systems <strong>and</strong> S<strong>of</strong>tware 38(August 1997): 145–154.Robinson, John. “Delivering on St<strong>and</strong>ards: Balancing Portability<strong>and</strong> Performance.” Available online. URL: http://ipdps.cc.gatech.edu/1999/papers/it2.pdf. Accessed August 11, 2007.“S<strong>of</strong>tware Portability Home Page.” Available online. URL: http://www.cs.wvu.edu/~jdm/research/portability/home.html.Accessed June 11, 2007.compilerA compiler is a program that takes as input a programwritten in a source language <strong>and</strong> produces as output anequivalent program written in another (target) language.Usually the input program is in a high-level language suchas C++ <strong>and</strong> the output is in assembly language for the targetmachine (see assembler).Compilers are useful because programming directlyin low-level machine instructions (as had to be done withthe first computers) is tedious <strong>and</strong> prone to errors. Use <strong>of</strong>assembly language helps somewhat by allowing substitution<strong>of</strong> symbols (variable names) for memory locations <strong>and</strong>the use <strong>of</strong> mnemonic names for operations (such as “add”A parse tree showing how an assignment statement in Pascal canbe broken down into its component parts. Here ID st<strong>and</strong>s for a variablename, or identifier. An expression can be broken all the waydown to a single number.


96 compilersuch as a keyword (reserved word) such as if or while.Next, the tokens are parsed or grouped according to therules <strong>of</strong> the language. The result <strong>of</strong> parsing is a “parse tree”that resolves statements into their component parts. Forexample, an assignment statement may be parsed into anidentifier, an assignment operator (such as =), <strong>and</strong> a value tobe assigned. The value in turn may be an arithmetic expressionthat consists <strong>of</strong> operators <strong>and</strong> oper<strong>and</strong>s.Parsing can be done either “bottom up” (finding theindividual components <strong>of</strong> the statement <strong>and</strong> then linkingthem together) or “top down” (identifying the type <strong>of</strong> statement<strong>and</strong> then breaking it down into its component parts).A set <strong>of</strong> grammatical rules specifies how each construct(such as an arithmetic expression) can be broken into (orbuilt up from) its component parts.The next step is semantic analysis. During this phase theparsed statements are analyzed further to make sure theydon’t violate language rules. For example, most languagesrequire that variables must be declared before they are referencedby the program. Many languages also have rules forwhich data types may be converted to other types when thetwo types are used in the same operation.The result <strong>of</strong> front-end processing is an intermediate representationsomewhere between the source statements <strong>and</strong>machine-level statements. The intermediate representationis then passed to the back end.Code Generation <strong>and</strong> OptimizationThe process <strong>of</strong> code generation usually involves multiplepasses that gradually substitute machine-specific code <strong>and</strong>data for the information in the parse tree. An importantconsideration in modern compilers is optimization, whichis the process <strong>of</strong> substituting equivalent (but more efficient)constructs for the original output <strong>of</strong> the front end. Forexample, an optimizer can replace an arithmetic expressionwith its value so that it need not be repeatedly calculatedwhile the program is running. It can also “hoist out” aninvariant expression from a loop so that it is calculated onlyonce before the loop begins. On a larger scale, optimizationcan also improve the communication between differentparts (procedures) <strong>of</strong> the program.The compiler must attempt to “prove” that the change itis making in the program will never cause the program tooperate incorrectly. It can do this, for example, by tracingthe possible paths <strong>of</strong> execution through the program (suchas through branching <strong>and</strong> loops) <strong>and</strong> verifying that eachpossible path yields the correct result. A compiler that istoo “aggressive” in making assumptions can produce subtleprogram errors. (Many compilers allow the user to controlthe level <strong>of</strong> optimization, <strong>and</strong> whether to optimize for speedor for compactness <strong>of</strong> program size.) During development,a compiler is <strong>of</strong>ten set to include special debugging code inthe output. This code preserves potentially important informationthat can help the debugging facility better identifyprogram bugs. After the program is working correctly, itwill be recompiled without the debugging code.The final code generation is usually accomplished byusing templates that match each intermediate constructionwith a construction in the target (usually assembly)Compilation is a multistep process. Lexical analysis breaks statementsdown into tokens, which are then parsed <strong>and</strong> subjected tosemantic analysis. The resulting intermediate representation can beoptimized before the final object code is generated.language, plugging items in as specified by the template.Often a final step, called peephole optimization, examinesthe assembly code <strong>and</strong> identifies redundancies or, if possible,replaces a memory reference so that a faster machineregister is used instead.In most applications the assembly code produced bythe compiler is linked to code from other source files. Forexample, in a C++ applications class definitions <strong>and</strong> codethat use objects from the classes may be compiled separately.Also most languages (such as C <strong>and</strong> C++) have operatingsystem-specific libraries that contain commonly usedsupport functions.


computability <strong>and</strong> complexity 97As an alternative to bringing the external code into thefinal application file, code can be “dynamically linked” tolibraries that will be accessed only while the program isbeing run. This eliminates the waste that would occur ifseveral running applications are all using the same st<strong>and</strong>ardlibrary code (see library, program).In mainframes compilers were usually invoked as part <strong>of</strong>a batch file using some form <strong>of</strong> JCL (job control language).With operating systems such as UNIX <strong>and</strong> MS-DOS a programcalled make is typically used with a file that specifiesthe compiler, linker, <strong>and</strong> other options to be used to compilethe program. Modern visually oriented developmentenvironments (such as those provided by products such asVisual C++) allow options to be set via menus or simply byselecting from a variety <strong>of</strong> typical configurations.Compiler design has become a highly complex field.A modern compiler is developed using a variety <strong>of</strong> tools(including packaged parsers <strong>and</strong> lexical analyzers), <strong>and</strong>involves a large team <strong>of</strong> programmers. Nevertheless, theprinciples <strong>of</strong> compiler design are emphasized in the generalcomputer science curriculum because when a studentunderst<strong>and</strong>s even a simplified compiler in detail, he or shehas become acquainted both with important ideas (suchas language grammar, parsing, <strong>and</strong> optimization) <strong>and</strong> withmany levels <strong>of</strong> underst<strong>and</strong>ing computer architecture.Further ReadingAho, Alfred V., Ravi Sethi, <strong>and</strong> Jeffrey D. Ullman. Compiler Design:Principles, Techniques, <strong>and</strong> Tools. 2nd ed. Reading, Mass.:Addison-Wesley, 2006.“Compiler Connection: A Resource for Compiler Developers <strong>and</strong>Those Who Use Their Products <strong>and</strong> Services.” Availableonline. URL: http://www.compilerconnection.com/. AccessedAugust 12, 2007.Grune, Dick, et al. Modern Compiler Design. New York: Wiley, 2000.component object model (Micros<strong>of</strong>t) SeeMicros<strong>of</strong>t .net.computability <strong>and</strong> complexityInterestingly, one <strong>of</strong> the important discoveries <strong>of</strong> 20th-centurymathematics is that certain kinds <strong>of</strong> problems werenot computable. The Turing machine <strong>and</strong> Alonzo Church’slambda calculus provided equivalent models that could beused to determine what was computable (see Turing, AlanMathison, <strong>and</strong> Church, Alonzo). Thus far, the equivalencebetween the Turing machine <strong>and</strong> actual computershas held. That is, any decision problem (a problem with a“yes” or “no” answer) that can in theory be solved with aTuring machine can in theory be solved by any actual computer.Conversely, if a problem can’t be solved by a Turingmachine, it cannot be solved by a computer, no matter howpowerful.The Halting ProblemThe Halting problem is a classic example <strong>of</strong> an undecidableproblem (or proposition). The problem is this: Given anycomputer program, can you determine whether the programwill halt (end) given any input? There are specificprograms that can be shown to halt on particular inputs.For example, this program:If Input = 99 then end.will obviously halt on an input <strong>of</strong> 99. But to decide whethera determination can be made for any program for any input,it is only necessary to construct a logical paradox. Assumethat there is a program P that halts if <strong>and</strong> only if it receivesinput D. (Further assume that the program can print somethingto let you know that it has halted.)Since the input can be anything, you can let it be a copy<strong>of</strong> the program itself. The question then becomes: Will theprogram halt if it is given a copy <strong>of</strong> itself? Create a procedure(or subroutine) called HaltTest, <strong>and</strong> define it as:If P halts then print “Halted”else print “Didn’t Halt.”Now create another program called Main. It calls Halt-Test <strong>and</strong> is programmed to do the opposite <strong>of</strong> what HaltTestindicates.If HaltTest (Main) prints “Yes” then loopforever else halt;But what happens when Main is run? It calls HaltTest,giving itself (Main) as input. If HaltTest halts, then Mainloops forever. But if HaltTest doesn’t halt, then Main halts.But this means that Main halts if it doesn’t halt, <strong>and</strong> doesn’thalt if it halts. This paradox shows that whether Main haltsis undecidable.The undecidability <strong>of</strong> the Halting problem has someinteresting implications. For example, it means that thereis no way a computer can reliably determine that a programdoes not contain an infinite loop. Also, because a mathematicalfunction f(x) is equivalent to a computer programwith input x, similar pro<strong>of</strong>s by contradiction can be writtento show that it can’t be decided whether a program will halton all inputs (which is equivalent to f(x) being defined forall x.) Nor can it be decided whether two different programs(or mathematical functions) are equivalent for all x.It is important to realize that a program (or function)being undecidable in all cases doesn’t necessarily mean thatit can’t be decided for some cases (or inputs). Indeed, theanswer <strong>of</strong> the Halting Problem for any given input can bedetermined by feeding that particular input to the program,which will either halt or run forever.ComplexityIf a problem turns out to be computable, we then enterthe realm <strong>of</strong> complexity—the analysis <strong>of</strong> how much computationwill be required (see algorithm). Sometimes adesigner can devise a significantly faster algorithm for agiven problem (such as finding prime factors or sorting).However, other problems appear to have complexity basedon an exponential expression, meaning that they becomemore complex much more rapidly as the input increases.An example is the Traveling Salesman Problem, which is to


98 computer-aided design <strong>and</strong> manufacturingfind the most efficient route for a person traveling to a number<strong>of</strong> cities to visit each <strong>of</strong> the cities.Mathematicians therefore categorize the complexity <strong>of</strong>problems as P (solvable in a polynomial period <strong>of</strong> time),EXP (requiring an exponential time), or an intermediateclass NP, which means “nondeterministic polynomial.” AnNP problem is one that can be solved in polynomial time ifone is able to guess (<strong>and</strong> then verify) the answer. The TravelingSalesman Problem is believed to be in the NP class.While abstruse, the study <strong>of</strong> computability <strong>and</strong> complexityhas important implications for practical applications.For example, determining the complexity <strong>of</strong> a cryptographicalgorithm can help determine whether the resultingencryption is strong enough to withst<strong>and</strong> the efforts <strong>of</strong> afeasible attacker.Further ReadingBoolos, George S., John P. Burgess, <strong>and</strong> Richard C. Jeffrey. Computability<strong>and</strong> Logic. 4th ed. New York: Cambridge UniversityPress, 2002.Jones, Neil D. Computability <strong>and</strong> Complexity: From a ProgrammingPerspective. Cambridge, Mass.: MIT Press, 1997.Sipser, Michael. Introduction to the Theory <strong>of</strong> Computation. 2nd ed.Boston: Thomson Course <strong>Technology</strong>, 2006.computer-aided design <strong>and</strong> manufacturing(CAD/CAM)The use <strong>of</strong> computers in the design <strong>and</strong> manufacturing <strong>of</strong>products revolutionized industry in the last quarter <strong>of</strong> the20th century. Although computer-aided design (CAD) <strong>and</strong>computer-aided manufacturing (CAM) are different areas<strong>of</strong> activity, they are now so closely integrated that they are<strong>of</strong>ten discussed together as CAD/CAM.<strong>Computer</strong>-Aided DesignIn 1950, science fiction writer Robert Heinlein had hisfuture inventor create “Drafting Dan,” an automated draftingsystem that would enable designers to turn their ideasinto manufacturing plans in a fraction <strong>of</strong> the time requiredfor the h<strong>and</strong> preparation <strong>of</strong> schematics <strong>and</strong> parts lists. Bythe 1960s, engineers had developed the first computerassisteddesign programs, running on terminals attached tomainframe computers.The activity <strong>of</strong> a CAD workstation centers on the creation<strong>of</strong> geometrical models (first 2D, then 3D). With theaid <strong>of</strong> models, a virtual representation <strong>of</strong> the product beingdesigned can be built up. With its knowledge <strong>of</strong> geometrical<strong>and</strong> physical relationships, routines in the CAD system canperform not only measurement <strong>of</strong> dimensions <strong>and</strong> mass butalso structural analysis. (In some cases CAD can be interfacedwith systems that provide full-blown simulation <strong>of</strong>the effects <strong>of</strong> stresses, heat, <strong>and</strong> other factors.)The growth <strong>of</strong> desktop computing power in the 1980s<strong>and</strong> 1990s moved CAD from the mainframe to the high-endworkstation (such as those built by Sun Microsystems) <strong>and</strong>even to high-end personal computers. The growing processingpower also meant that the geometric models couldbecome more sophisticated, including solid models withrealistically rendered surfaces rather than just wireframes.The model <strong>of</strong> surfaces can include such factors as reflectivity,friction, or even aerodynamic characteristics. In designinga product (or a subsystem <strong>of</strong> a product), engineers cannow use simulation s<strong>of</strong>tware to determine how well a group<strong>of</strong> parts in a complex assembly (such as a car’s steeringmechanism) will perform. The ability to get detailed data inreal time means that the CAD operator can work in a feedbackloop in which the design is incrementally refined untilthe required parameters are met.This growing modeling capability has been combinedwith the use <strong>of</strong> detailed databases containing the st<strong>and</strong>ardparts used in a particular industry or application.Libraries <strong>of</strong> templates allow the designer to “plug in” st<strong>and</strong>ardassemblies <strong>of</strong> parts <strong>and</strong> then modify them. The databasescan also be used with algorithms that can assist thedesigner in optimizing the design for some desired characteristic,such as strength, light weight, or lower cost.Recent systems even have the capability to set “strategic”design goals for a whole family <strong>of</strong> products <strong>and</strong> to identifyparticular optimizations that would help each part or subsystemachieve those goals.<strong>Computer</strong>-aided ManufacturingThe automated fabricating <strong>of</strong> products on the factory floororiginally developed independently <strong>of</strong> computer-aideddesign. Numerically controlled machine tools <strong>and</strong> lathes canbe programmed using specialized languages such as APT(Automatically Programmed Tool) or more recently, througha system that uses a graphical interface. Advances in patternrecognition <strong>and</strong> other artificial intelligence techniques havebeen used to improve the ability <strong>of</strong> the automatic tool toidentify particular features (such as holes into which boltsare to be inserted) <strong>and</strong> to properly orient surfaces. At somepoint the programmability <strong>and</strong> flexibility <strong>of</strong> the system withregard to its ability to manipulate the environment gives itthe characteristics <strong>of</strong> a robot (see robotics).Integration <strong>of</strong> CAD <strong>and</strong> CAMAs CAD systems became more capable, it soon became evidentthat there could be substantial benefits to be gainedfrom integrating the design <strong>and</strong> manufacturing process.The CAD s<strong>of</strong>tware can also output detailed parts <strong>and</strong>assembly specifications that can be fed into the CAM process.In turn, manufacturing considerations can be appliedto the selection <strong>of</strong> parts during the design process.The integration <strong>of</strong> design, simulation, <strong>and</strong> manufacturingcontinues. The goal is to give the engineer aseamless way to “tweak” a design <strong>and</strong> have a number <strong>of</strong>simulation modules automatically depict the effects <strong>of</strong> thedesign change. In essence, the designer or engineer wouldbe working in a virtual world that accurately reflects thephysical constraints that the product will face in the realworld.The automation <strong>of</strong> the design <strong>and</strong> manufacturing processhas been mainly responsible for the increasing productivity<strong>of</strong> modern factories. Factories using traditional methods inproducing complex products such as automobiles or con-


computer-aided instruction 99sumer electronics have generally had to refit for CAD/CAMin order to remain competitive. Low-skill but relatively highpayingfactory jobs characteristic <strong>of</strong> the earlier industrial erahave given way to smaller numbers <strong>of</strong> more technical jobs.This has meant a greater emphasis on education <strong>and</strong> specializedtraining for the industrial workforce.Further ReadingAmirouche, Farid M. Principles <strong>of</strong> <strong>Computer</strong> Aided Design <strong>and</strong> Manufacturing.2nd ed. Upper Saddle River, N.J.: Prentice Hall, 2003.CADLAB (MIT). Available online. URL: http://cadlab.mit.edu/.Accessed June 12, 2007.“<strong>Computer</strong>-Aided Design” [outline <strong>and</strong> knowledge base]. Compinfo.ws.Available online. URL: http://www.compinfo-center.com/cad/cad.htm. Accessed June 12, 2007.Duggal, Vijay. CADD Primer: A General Guide to <strong>Computer</strong> AidedDesign <strong>and</strong> Drafting. New York: Mailmax Publications, 2000.computer-aided instruction (CAI)Also called computer based training (CBT), computer-aidedinstruction (CAI) is the use <strong>of</strong> computer programs to provideinstruction or training. (See education <strong>and</strong> computersfor a more comprehensive discussion <strong>of</strong> the use <strong>of</strong>computers for teaching <strong>and</strong> learning.)The American reaction to Soviet space achievementsled to many attempts to modernize the educational system.While the high cost <strong>and</strong> limited capabilities <strong>of</strong>1950s computing technology allowed only for theoreticalresearch by IBM <strong>and</strong> some universities, by the 1960smore powerful solid-state computers were starting tomake what were then called “teaching machines” practicable.The first large-scale initiative was the PLATO teachingsystem designed by the <strong>Computer</strong>-based EducationalResearch Laboratory at the University <strong>of</strong> Illinois, Urbana.PLATO used a large timesharing system to provide educationals<strong>of</strong>tware to about a thous<strong>and</strong> users at terminalsthroughout the university. PLATO pioneered the use <strong>of</strong>graphics <strong>and</strong> what would later be called multimedia, <strong>and</strong>was eventually marketed by Control Data Corporation, aleading manufacturer <strong>of</strong> high-end mainframe computers.Stanford University also began a large-scale initiative todeliver computerized instruction.The early CAI systems required expensive hardware,however, <strong>and</strong> generally could be sustained only by researchfunding or where they met the growing training needs <strong>of</strong>the military, the aerospace industry, or other specializedusers. However, the advent <strong>of</strong> the personal computer in thelate 1970s provided both a new technology for deliveringeducational s<strong>of</strong>tware <strong>and</strong> a potential market. With its colorgraphics <strong>and</strong> astute marketing the Apple II had became astaple <strong>of</strong> classrooms by the mid-1980s, when its successor,the Macintosh, brought more advanced graphics (seeMacintosh) <strong>and</strong> a program called Hypercard that made iteasy for educators to create simple interactive presentations(see hypertext <strong>and</strong> hypermedia). The Intel-based IBM PC<strong>and</strong> its “clones” also gained a foothold in the classroom, <strong>and</strong>Micros<strong>of</strong>t Windows brought a graphical interface similar tothat on the Macintosh.ApplicationsThe simplest (<strong>and</strong> probably least interesting) form <strong>of</strong> CAI is<strong>of</strong>ten called “drill <strong>and</strong> practice” programs. Such programs(usually found in the elementary grades) repetitively presentmath problems, reading vocabulary, or other exercises<strong>and</strong> test the user’s underst<strong>and</strong>ing. (Teaching keyboard skillsto young students is another common application.) In anattempt to hold the student’s interest, many such programsprovide a gamelike atmosphere <strong>and</strong> <strong>of</strong>fer periodic rewardsor reinforcement for success.More sophisticated programs allow the student morecreative scope, such as by letting the student program <strong>and</strong>test virtual “robots” as a means <strong>of</strong> mastering a programminglanguage. Many computer games, while not designedexplicitly for instruction, provide simulations that exercisethinking <strong>and</strong> planning skills (see computer games). (Forexample, the strategy game Civilization incorporates conceptssuch as resource management, labor allocation, <strong>and</strong>a balanced economy.) Even more sophisticated programsuse advanced programming (see artificial intelligence)to interact with students in ways similar to those used byhuman teachers. For example, a program called CognitiveTutor, now used in many schools, can recognize different“styles” <strong>of</strong> learning <strong>and</strong> approaches to solving, for example,an algebra problem. The program can also identify a student’sspecific weaknesses <strong>and</strong> tailor practice <strong>and</strong> supplementalinstruction accordingly. These programs can teach<strong>and</strong> reinforce reasoning skills rather than just impartingspecific knowledge.Industry remains a large market for computer-based training.A variety <strong>of</strong> CBT packages are available for introducing<strong>and</strong> teaching programming languages such as C++ <strong>and</strong> Javaas well as for preparing students to earn industry certificatessuch as the A+ certificate for computer technicians.TrendsTwo continuing trends in CAI are the growing use <strong>of</strong>graphics <strong>and</strong> multimedia, including video or movies, <strong>and</strong>the increasing delivery <strong>of</strong> training via the Internet. Sometraining s<strong>of</strong>tware can be accessed directly over the Internetthrough a Web browser, without requiring special s<strong>of</strong>twareon the user’s PC. Increasingly, even products delivered onCD <strong>and</strong> run from the user’s PC include links to supplementalmaterial on the Web.Further ReadingHorton, William. E-Learning by Design. San Francisco: Pfeiffer,2006.Ko, Suasan Schor <strong>and</strong> Steve Rossen. Teaching On-line: A PracticalGuide. 2nd ed. Boston: Houghton Mifflin, 2003.Rosenberg, Marc J. E-Learning: Strategies for Delivering Knowledgein the Digital Age. New York: McGraw-Hill, 2001.Viadero, Debra. “New Breed <strong>of</strong> Digital Tutors Yielding LearningGains.” Education Week, April 2, 2007. Available online. URL:http://www.edweek.org/ew/articles/2007/04/02/31intelligent.h26.html. Accessed June 13, 2007.Watkins, Ryan, <strong>and</strong> Michael Corry. E-Learning Companion: AStudent’s Guide to Online Success. Boston: Houghton Mifflin,2004.Web-Based Training Information Center. Available online. URL:http://wbtic.com. Accessed June 12, 2007.


100 computer crime <strong>and</strong> securitycomputer crime <strong>and</strong> securityThe growing economic value <strong>of</strong> information, products, <strong>and</strong>services accessible through computer systems has attractedincreased attention from opportunistic criminals. In particular,the many potential vulnerabilities <strong>of</strong> online systems<strong>and</strong> the Internet have made computer crime attractive <strong>and</strong>pose significant challenges to pr<strong>of</strong>essionals whose task it isto secure such systems.The motivations <strong>of</strong> persons who use computer systemsin unauthorized ways vary. Some hackers primarily seekdetailed knowledge <strong>of</strong> systems, while others (<strong>of</strong>ten teenagers)seek “bragging rights.” Other intruders have the moretraditional criminal motive <strong>of</strong> gaining access to informationsuch as credit card numbers <strong>and</strong> personal identities thatcan be used to make unauthorized purchases (see identitytheft). <strong>Computer</strong> access can also be used to intimidate (seecyberstalking <strong>and</strong> harassment), as well as for extortion,espionage, sabotage, or terrorism (see cyberterrorism).Attacking <strong>and</strong> defending information infrastructure is nowa vital part <strong>of</strong> military <strong>and</strong> homel<strong>and</strong> security planning (seeinformation warfare).According to the federal Internet Crime Complaint Center,in 2006 the most commonly reported computer-relatedcrime was auction-related fraud (44.9 percent), followed bynondelivery <strong>of</strong> goods (19 percent)—these no doubt reflectthe high volume <strong>of</strong> auction <strong>and</strong> e-commerce transactions.Various forms <strong>of</strong> financial fraud (including identity theft)make up most <strong>of</strong> the rest.The new emphasis on the terrorist threat following September11, 2001, has included some additional attention tocyberterrorism, or the attack on computers controlling keyinfrastructure (including banks, water <strong>and</strong> power systems,air traffic control, <strong>and</strong> so on). So far ideologically inspiredattacks on computer systems have mainly amounted tosimple electronic v<strong>and</strong>alism <strong>of</strong> Web sites. Internal systemsbelonging to federal agencies <strong>and</strong> the military tend to berelatively protected <strong>and</strong> isolated from direct contact withthe Internet. However, the possibility <strong>of</strong> a crippling attackor electronic hijacking cannot be ruled out. Commercialsystems may be more vulnerable to denial-<strong>of</strong>-service attacks(see below) that cause economic losses by preventing consumersfrom accessing services.Forms <strong>of</strong> AttackSurveillance-based attacks involve scanning Internet trafficfor purposes <strong>of</strong> espionage or obtaining valuable information.Not only businesses but also the growing number <strong>of</strong>Internet users with “always-on” Internet connections (seebroadb<strong>and</strong>) are vulnerable to “packet-sniffing” s<strong>of</strong>twarethat exploits vulnerabilities in the networking s<strong>of</strong>tware oroperating system. The main line <strong>of</strong> defense against suchattacks is the s<strong>of</strong>tware or hardware firewall, which both“hides” the addresses <strong>of</strong> the main computer or network <strong>and</strong>identifies <strong>and</strong> blocks packets associated with the commonforms <strong>of</strong> attack (see firewall).In the realm <strong>of</strong> harassment or sabotage, a “denial <strong>of</strong> service”(DOS) attack can flood the target system with packetsthat request acknowledgment (an essential feature <strong>of</strong> networkoperation). This can tie up the system so that a Webserver, for example, can no longer respond to user requests,making the page inaccessible. More sophisticated DOSattacks can be launched by first using viruses to insert programsin a number <strong>of</strong> computers (a so-called botnet), <strong>and</strong>then instructing the programs to simultaneously launchattacks from a variety <strong>of</strong> locations.<strong>Computer</strong> viruses can also be used to r<strong>and</strong>omly v<strong>and</strong>alizecomputers, impeding operation or destroying data (seecomputer virus). But a virus can also be surreptitiouslyinserted as a “Trojan horse” into a computer’s operating systemwhere it can intercept passwords <strong>and</strong> other information,sending them to the person who planted the virus. Viruseswere originally spread through infected floppy disks (<strong>of</strong>ten“bootleg” copies <strong>of</strong> s<strong>of</strong>tware). Today, however, the Internetis the main route <strong>of</strong> access, with viruses embedded in e-mailattachments. This is possible because many e-mail <strong>and</strong> otherprograms have the ability to execute programs (scripts) thatthey receive. The main defense against viruses is regularuse <strong>of</strong> antivirus s<strong>of</strong>tware, turning <strong>of</strong>f scripting capabilitiesunless absolutely necessary, <strong>and</strong> making a policy <strong>of</strong> notopening unknown or suspicious-looking e-mail attachmentsas well as messages that pretend to be from reputable banksor other agencies (see phishing <strong>and</strong> spo<strong>of</strong>ing).<strong>Computer</strong> SecurityBecause there are a variety <strong>of</strong> vulnerabilities <strong>of</strong> computersystems <strong>and</strong> <strong>of</strong> corresponding types <strong>of</strong> attacks, computersecurity is a multifaceted discipline. The vulnerability <strong>of</strong>computer systems is not solely technical in nature. Sometimesthe weakest link in a system is the human link.Hackers are <strong>of</strong>ten adept at a technique they call “socialengineering.” This involves tricking computer operatorsinto giving out sensitive information (such as passwords)by masquerading as a colleague or someone else who mighthave a legitimate need for the information.Since computer crimes <strong>and</strong> attacks can take so manyforms, the best defense is layered or in depth. It includesappropriate s<strong>of</strong>tware (firewalls <strong>and</strong> antivirus programs,<strong>and</strong> network monitoring programs for larger installations).It emphasizes proper training <strong>of</strong> personnel, ranging fromsecurity investigators to clerical users. Finally, if informationis compromised, the use <strong>of</strong> strong encryption can makeit much less likely to be usable (see encryption).While the flexibility <strong>and</strong> speed <strong>of</strong> the Internet can aidattackers, it can also facilitate defense. Emergency responsenetworks <strong>and</strong> major vendors <strong>of</strong> antivirus s<strong>of</strong>tware canquickly disseminate protective code or “patches” that closevulnerabilities in operating systems or applications.The growing concern about vulnerability to computerintrusion <strong>and</strong> information theft has also been reflected inattempts to make operating systems inherently more secure.The introduction <strong>of</strong> new security features in Micros<strong>of</strong>t WindowsVista has received mixed reviews. Some features, suchas User Account Control, make it harder for viruses orother automated attacks to access critical system resources,but also annoy users by constant requests for permission tocarry out common tasks. This reflects a fundamental truth:Security features that make everyday computing moretedious tend to be turned <strong>of</strong>f or bypassed by users.


computer engineering 101Once a computer-based crime is detected, a systematicapproach to evidence gathering <strong>and</strong> investigation isrequired (see computer forensics). This is because evidencein computer crimes tends to be technical, intangible,<strong>and</strong> transient, <strong>and</strong> thus difficult to explain properly tojudges <strong>and</strong> juries.Individual consumers can reduce their vulnerability byensuring that they do not give out personal informationwithout verifying both the requester <strong>and</strong> the need for thedata. Use <strong>of</strong> secure Web sites for credit card transactionshas become st<strong>and</strong>ard. Generally speaking, vulnerabilityto computer crime is inversely proportional to the degree<strong>of</strong> privacy individuals have with regard to their personalinformation (see privacy in the digital age). Public concernabout privacy <strong>and</strong> security has led to recent laws <strong>and</strong>initiatives aimed at disclosure <strong>of</strong> organizations’ privacypolicy <strong>and</strong> limiting the redistribution <strong>of</strong> information oncecollected.Further ReadingBalkin, J. M. Cybercrime: Digital Cops in a Networked Environment.New York: New York University Press, 2007.CERT Coordination Center, Carnegie-Mellon University. Availableonline. URL: http://www.cert.org. Accessed August 12, 2007.Easttom, Chuck. <strong>Computer</strong> Security Fundamentals. Upper SaddleRiver, N.J.: Prentice Hall, 2005.McQuade, Sam C. Underst<strong>and</strong>ing <strong>and</strong> Managing Cybercrime. Boston:Allyn & Bacon, 2005.Mitnick, Kevin, <strong>and</strong> William L. Simon. The Art <strong>of</strong> Intrusion. NewYork: Wiley, 2005.computer engineering<strong>Computer</strong> engineering involves the design <strong>and</strong> implementation<strong>of</strong> all aspects <strong>of</strong> computer systems. It is the practicalcomplement to computer science, which focuses onthe study <strong>of</strong> the theory <strong>of</strong> the organization <strong>and</strong> processing<strong>of</strong> information (see computer science). Because hardwarerequires s<strong>of</strong>tware (particularly operating systems) in orderto be useful, computer engineering overlaps into s<strong>of</strong>twaredesign, although the latter is usually considered to be aseparate field (see s<strong>of</strong>tware engineering).To get an idea <strong>of</strong> the scope <strong>of</strong> computer engineering, considerthe range <strong>of</strong> components commonly found in today’sdesktop computers:ProcessorThe design <strong>of</strong> the microprocessor includes the number <strong>and</strong>width <strong>of</strong> registers, method <strong>of</strong> instruction processing (pipelining),the chipset (functions to be integral to the packagewith the microprocessor), the amount <strong>of</strong> cache, the connectionto memory bus, the use <strong>of</strong> multiple processors, theorder in which data will be moved <strong>and</strong> stored in memory(low or high-order byte first?), <strong>and</strong> the clock speed. (Seemicroprocessor, chipset, cache, bus, multiprocessing,memory, <strong>and</strong> clock speed.)MemoryThe design <strong>of</strong> memory includes the type (static or dynamic)<strong>and</strong> configuration <strong>of</strong> RAM, the maximum addressable memory,<strong>and</strong> the use <strong>of</strong> parity for error detection (see memory,addressing, <strong>and</strong> error correction). Besides r<strong>and</strong>omaccessmemory, other types <strong>of</strong> memory include ROM (readonlymemory) <strong>and</strong> CMOS (rewritable persistent memory).MotherboardThe motherboard is the platform <strong>and</strong> data transfer infrastructurefor the computer system. It includes the main databus <strong>and</strong> secondary buses (such as for high-speed connectionbetween the processor <strong>and</strong> video subsystem—see bus).The designer must also decide which components will beintegral to the motherboard, <strong>and</strong> which provided as addonsthrough ports <strong>of</strong> various kinds.Peripheral DevicesPeripheral devices include fixed <strong>and</strong> removable disk drives;CD <strong>and</strong> DVD-ROM drives, tape drives, scanners, printers,<strong>and</strong> modems.Device ControlEach peripheral device must have an interface circuit thatreceives comm<strong>and</strong>s from the CPU <strong>and</strong> returns data (seegraphics card).Input/Output <strong>and</strong> PortsA variety <strong>of</strong> st<strong>and</strong>ards exist for connecting external devicesto the motherboard (see parallel port, serial port, <strong>and</strong>usb). Designers <strong>of</strong> devices in turn must decide which connectionsto support.There are also a variety <strong>of</strong> input devices to be h<strong>and</strong>led,including the keyboard, mouse, joystick, track pad, graphicstablet, <strong>and</strong> so on.Of course this discussion isn’t limited to the desktop PC;similar or analogous components are also used in larger computers(see mainframe, minicomputer, <strong>and</strong> workstation).NetworkingNetworking adds another layer <strong>of</strong> complexity in controllingthe transfer <strong>of</strong> data between different computer systems,using various typologies <strong>and</strong> transport mechanisms (suchas Ethernet); interfaces to connect computers to the network;routers, hubs, <strong>and</strong> switches (see network).Other ConsiderationsIn designing all the subsystems <strong>of</strong> the modern computer <strong>and</strong>network, computer engineers must consider a variety <strong>of</strong> factors<strong>and</strong> trade<strong>of</strong>fs. Hardware devices must be designed witha form factor (size <strong>and</strong> shape) that will fit efficiently into acrowded computer case. For devices that require their ownsource <strong>of</strong> power, the capacity <strong>of</strong> the available power supply<strong>and</strong> the likely presence <strong>of</strong> other power-consuming devicesmust be taken into account. Processors <strong>and</strong> other circuitsgenerate heat, which must be dissipated. (In an increasinglyenergy-conscious world the reduction <strong>of</strong> energy consumption,such as through st<strong>and</strong>by or “hibernation” modes, isalso an important consideration—see green pc.) Heat <strong>and</strong>other forms <strong>of</strong> stress affect reliability. And in terms <strong>of</strong> how


102 computer forensicsa device processes input data or comm<strong>and</strong>s, the applicablest<strong>and</strong>ards must be met. Finally, cost is always an issue.Moving beyond hardware to operating system (OS)design, computer engineers must deal with many additionalquestions, including the file system, how the OS will communicatewith devices (or device drivers), <strong>and</strong> how applicationswill obtain data from the OS (such as the contents <strong>of</strong>input buffers). Today’s operating systems include hundreds<strong>of</strong> system functions. Since the 1980s, the provision <strong>of</strong> allthe objects needed for a st<strong>and</strong>ard user interface (such aswindows, menus, <strong>and</strong> dialog boxes) has been consideredto be part <strong>of</strong> the OS design. Finally, the building <strong>of</strong> securityfeatures into both hardware <strong>and</strong> operating systems hasbecome an integral part <strong>of</strong> computer engineering (see, forexample, biometrics <strong>and</strong> encryption).TrendsIn the early days <strong>of</strong> mainframe computing (<strong>and</strong> again atthe beginning <strong>of</strong> microcomputing) many distinctive systemarchitectures entered the market in rapid succession. Forexample, the Apple II (1977), IBM PC (1981), <strong>and</strong> AppleMacintosh (1984) (see ibm pc <strong>and</strong> Macintosh). Becausearchitectures are now so complex (<strong>and</strong> so much has beeninvested in legacy hardware <strong>and</strong> s<strong>of</strong>tware), wholly newarchitectures seldom emerge today. Because <strong>of</strong> the complexity<strong>and</strong> cost involved in creating system architectures,development tends to be incremental, such as adding PCIcard slots to the IBM PC architecture while retaining olderISA slots, or replacing IDE controllers with EIDE.The growing emphasis on networks in general <strong>and</strong> theInternet in particular has probably diverted some effort <strong>and</strong>resources from the design <strong>of</strong> st<strong>and</strong>-alone PCs to network<strong>and</strong> telecommunications engineering. At the same time,new categories <strong>of</strong> personal computing devices have emergedover the years, including the suitcase-size “transportable”PC, the laptop, the book-sized notebook PC, the h<strong>and</strong>heldPDA (personal digital assistant), as well as network-orientedPCs <strong>and</strong> “appliances.” (See portable computers <strong>and</strong>smartphone.)As computing capabilities are built into more traditionaldevices (ranging from cars to home entertainment centers),computer engineering has increasingly overlapped otherfields <strong>of</strong> engineering <strong>and</strong> design. This <strong>of</strong>ten means thinking<strong>of</strong> devices in nontraditional ways: a car that is able to plantravel, for example, or a microwave that can keep track <strong>of</strong>nutritional information as it prepares food (see embeddedsystem). The computer engineer must consider not only therequired functionality but the way the user will access thefunctions (see user interface).Further ReadingIEEE <strong>Computer</strong> Society. Available online. URL: http://www.computer.orgPatterson, D. A. <strong>and</strong> J. L. Hennessy. <strong>Computer</strong> Organization <strong>and</strong>Design. 3rd ed. San Francisco: Morgan Kaufmann, 2004.“PC Guide.” Available online. URL: www.pcguide.com. AccessedJune 18, 2007.Stokes, John. Inside the Machine: An Illustrated Introduction toMicroprocessors <strong>and</strong> <strong>Computer</strong> Architecture. San Francisco: NoStarch Press, 2007.computer forensics<strong>Computer</strong> forensics is the process <strong>of</strong> uncovering, documenting,analyzing, <strong>and</strong> preserving criminal evidence thathas been stored on (or created using) a computer system.(For the use <strong>of</strong> computers by police, see law enforcement<strong>and</strong> computers.)In general, computer forensics involves both adherenceto legal evidentiary st<strong>and</strong>ards <strong>and</strong> the use <strong>of</strong> sophisticatedtechnical tools. The legal st<strong>and</strong>ards requirepractices similar to those used in obtaining other types<strong>of</strong> criminal evidence (observing expectations <strong>of</strong> privacy,knowing when a warrant is needed to search <strong>and</strong> seizeevidence, <strong>and</strong> so on).Once there is a go-ahead for a search, the first step is todocument the layout <strong>and</strong> nature <strong>of</strong> the equipment (generallyby photographing it) <strong>and</strong> to identify both devices thatmight be problematic or notes or other materials that mightreveal passwords for encrypted data.If the system is running it may be viewed or scanned todetermine what applications are running <strong>and</strong> what networkconnections may be active. However, this has to be done asunobtrusively as possible, since some machines can detectphysical intrusions.Step by step, the forensic technician must documenteach s<strong>of</strong>tware program or other tool used, <strong>and</strong> why it isjustified (such as the possibility that simply shutting downthe system might lead to loss <strong>of</strong> data in RAM). There are avariety <strong>of</strong> such tools, particularly for UNIX/Linux environments,some <strong>of</strong> which have been ported to Windows. (Insome cases a Linux “live” CD might be booted <strong>and</strong> used toexplore a Windows file system.)The next step is to collect the evidence from storagemedia in such a way as to ensure that it is accurately <strong>and</strong>completely preserved. A running machine must generallyfirst be shut down in such a way as to prevent triggeringany “trip wire” or intrusion-detection or self-destructmechanism that may have been installed.As a practical matter, once the system has been properlyshut down or immobilized, it is usually taken to the forensiclaboratory for extraction, copying, <strong>and</strong> documenting <strong>of</strong>the evidence (such as files on a hard drive or other storagedevice).Once the data has been collected, each file or documentmust be analyzed to determine if it is relevant to the criminalinvestigation <strong>and</strong> what key information it contains. Forexample, e-mail headers may be analyzed to determine thesource <strong>and</strong> routing <strong>of</strong> the message.Some Typical Cases<strong>Computer</strong>-based evidence may be relevant for almost anytype <strong>of</strong> crime, but certain kinds <strong>of</strong> crimes are more likely toinvolve computer forensics. These include:• financial crimes, such as embezzlement• corporate crimes such as insider trading, where e-mails may reveal who knew what <strong>and</strong> when• data or identity theft, including online scams orphishing


computer games 103• stalking or harassment, particularly involving chatrooms or social networks• child pornography, particularly distribution <strong>of</strong> imagesIn recent years many law enforcement agencies havebecome aware <strong>of</strong> the importance <strong>of</strong> proper investigation <strong>and</strong>treatment <strong>of</strong> evidence in our digital society, <strong>and</strong> dem<strong>and</strong>for trained computer forensic specialists is expected toincrease.Further ReadingBritz, Marjie T. <strong>Computer</strong> Forensics <strong>and</strong> Cyber Crime: An Introduction.Upper Saddle River, N.J.: Prentice Hall, 2003.Carrier, Brian. File System Forensic Analysis. Upper Saddle River,N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2005.“Searching <strong>and</strong> Seizing <strong>Computer</strong>s <strong>and</strong> Obtaining ElectronicEvidence in Criminal Investigations.” U.S. Dept. <strong>of</strong> Justice,July 2002. Available online. URL: http://www.usdoj.gov/criminal/cybercrime/s&smanual2002.htm. Accessed September3, 2007.Steel, Chad. Windows Forensics: The Field Guide for ConductingCorporate <strong>Computer</strong> Investigations. Indianapolis: Wiley, 2006.Vacca, John R. <strong>Computer</strong> Forensics: <strong>Computer</strong> Crime Scene Investigation.2nd ed. Hingham, Mass.: Charles River Media, 2005.computer gamesToday, playing games is one <strong>of</strong> the most popular computingactivities. In the early days <strong>of</strong> computing, games <strong>of</strong>fered away to test AI techniques (see artificial intelligence).Games have also encouraged the development <strong>of</strong> moresophisticated graphics (see computer graphics) <strong>and</strong> ways<strong>of</strong> interacting with the machine (see user interface).Games <strong>and</strong> AIAlthough modern computer games may draw upon severalgenres, several recognizably distinct types <strong>of</strong> games havebeen developed over the past half century or so. The firstwere computer versions <strong>of</strong> existing board games. “Deterministic”games (where there is no element <strong>of</strong> chance) suchas tick-tack-toe <strong>and</strong>, more important, checkers <strong>and</strong> chess<strong>of</strong>fered a challenge to the first computer scientists who wereseeking to learn how to make machines perform tasks thatare usually attributed to human intelligence. For example,Alan Turing <strong>and</strong> Claude Shannon both developed chessplayingprograms, although Turing’s came at a time whencomputers were still too primitive to h<strong>and</strong>le the volume <strong>of</strong>calculations required, <strong>and</strong> was thus carried out by h<strong>and</strong>. Bythe time a computer program (Deep Blue) had defeated theworld champion in 1997, the AI field had long since left thegame behind (see chess <strong>and</strong> computers).Simulation GamesMilitary planners had devised war games since the 19thcentury, but the complexity <strong>of</strong> modern warfare (includinglogistics as well as tactics) cried out for the help <strong>of</strong> the computer.By 1955 the U.S. military was running large-scaleglobal cold war simulations pitting NATO against the USSR<strong>and</strong> the Eastern bloc. Unlike deterministic games such aschess, war games generally use complex rules to captureA scene from the computer strategy game Civilization. Some gamesspecialize in realistic physical simulation, while others (such as thisone) embody sophisticated economic <strong>and</strong> strategic considerations.the many interacting factors such as the morale, experience,<strong>and</strong> firepower <strong>of</strong> a military unit or the performance<strong>of</strong> an air defense system against different types <strong>of</strong> targets.The results will be more or less realistic depending on howmany factors are properly accounted for—<strong>of</strong>ten only latercombat experience will tell.The use <strong>of</strong> game theory (the mathematics <strong>of</strong> competitivesituations) <strong>and</strong> economics also proved to be fruitful areasfor the use <strong>of</strong> computer simulations. In 1959 Carnegie Tech(later Carnegie-Melon University) introduced a simulationcalled “The Management Game.” Until the 1980s, however,lack <strong>of</strong> inexpensive computing power kept sophisticatedsimulations limited to large institutions such as the military,government, universities, <strong>and</strong> major corporations.Today simulation games are popular in both the educational<strong>and</strong> consumer markets. They include flight simulators,a variety <strong>of</strong> sports including baseball, football, soccer,<strong>and</strong> golf, <strong>and</strong> games in which the player strives to build a19th-century railroad empire or run a modern city. Indeedsome games, such as the popular kingdom-building simulatorCivilization or the complex Sim City, while marketed primarilyas entertainment, can easily fit into a social studiescurriculum.Arcade <strong>and</strong> Graphic GamesStarting in the 1960s, CRT (television-like) displays gavethe new minicomputers the means to display simple graphics.In 1962, an intrepid b<strong>and</strong> <strong>of</strong> game hackers at MIT createdSpacewar, the first interactive graphic game <strong>and</strong> theforerunner <strong>of</strong> the arcade boom <strong>of</strong> the 1970s. When thefirst home computers from Apple, Commodore, Atari, <strong>and</strong>IBM hit the market in the late 1970s <strong>and</strong> early 1980s, theyincluded rudimentary (but <strong>of</strong>ten colorful) graphics capabilities.Many amateur programmers used the computers’built-in BASIC language to create games such as lunarl<strong>and</strong>er simulators <strong>and</strong> Star Trek–style space battles. Around


104 computer graphicsthe same time, the home game cartridge machine was introducedby Atari <strong>and</strong> other companies, while the arcade gamePac-Man became a phenomenal success in 1980 (see gameconsoles).Role-playing, Real-time, <strong>and</strong> Social WorldsAround the time <strong>of</strong> the first home computers, a noncomputergame called Dungeons <strong>and</strong> Dragons became extremelypopular. “D&D” <strong>and</strong> other role-playing games allowed playersto create <strong>and</strong> portray characters, with elaborate rulesbeing used to resolve events such as battles. Role-playinggames soon began to appear on PCs—early examplesinclude the Wizardry <strong>and</strong> Ultima series. Meanwhile, textbasedadventure games were becoming popular on earlycomputer networks, particularly at universities. Theseevolved into MUDs (Multi-User Dungeons) where players’characters could interact with each other. Eventually many<strong>of</strong> these programs went beyond their adventuring roots tocreate a variety <strong>of</strong> social worlds in a sort <strong>of</strong> text-based virtualreality.By the 1990s, the typical PC had a special circuit (seegraphics card) capable <strong>of</strong> displaying millions <strong>of</strong> colors,together with video memory (now 256 MB or more) thatcould hold the complex images needed for high-resolutionanimation. <strong>Computer</strong> game graphics have become increasinglycomplex (see computer graphics), including realistictextures, shading <strong>and</strong> light, smooth animation, <strong>and</strong>special effects rivaling Hollywood. (Compare, for example,early wireframe graphics in games such as the Wizardry <strong>of</strong>1980 with games such as Diablo II <strong>and</strong> Warcraft with animatedcharacters moving in a richly textured world.)The way players interact with the game world has alsosignificantly changed. The first computer games tended tobe divided into turn-based strategy <strong>and</strong> role-playing games<strong>and</strong> real-time arcade-style “shoot ’em ups.” Today, however,most games, regardless <strong>of</strong> genre, run as RTS (real-time simulations)in which players must interact continuously withthe game situation.By the late 1990s gaming was no longer a solitary pursuit.The Internet made it possible to <strong>of</strong>fer game worlds inwhich thous<strong>and</strong>s <strong>of</strong> players could participate simultaneously(see online games). Games such as Everquest <strong>and</strong>Asheron’s Call have thous<strong>and</strong>s <strong>of</strong> devoted players who spendmany hours developing their characters’ skills, while openendedworlds such as Second Life seem to no longer begames at all, but a virtual, parallel universe with a fullrange <strong>of</strong> social interaction. However, the increased realism<strong>of</strong> modern games has also heightened the controversyabout in-game violence <strong>and</strong> other antisocial behavior, asin the Gr<strong>and</strong> Theft Auto series. (Although there is a ratingsystem for games similar to that for movies, its effectivenessin keeping adult-themed games out <strong>of</strong> the h<strong>and</strong>s <strong>of</strong> youngchildren seems to be limited.)Game DevelopmentThe emphasis on state-<strong>of</strong>-the-art animation <strong>and</strong> graphics<strong>and</strong> multiplayer design has changed the way game developmentis done. The earliest home computer games were typicallythe product <strong>of</strong> a single designer’s vision, such as ChrisCrawford’s Balance <strong>of</strong> Power <strong>and</strong> Richard Garriott (“LordBritish”) in the Ultima series. Today, however, commerciallycompetitive games are the product <strong>of</strong> teams that includegraphics, animation, <strong>and</strong> sound specialists, actors <strong>and</strong> voicetalent, <strong>and</strong> other specialists in addition to the game designers.While earlier games might be compared to books withsingle authors, modern game developers <strong>of</strong>ten comparetheir industry to the movie industry with its dominant studios.And, as with the movie industry, critics have arguedthat the high cost <strong>of</strong> development <strong>and</strong> <strong>of</strong> access to the markethas led to much imitation <strong>of</strong> successful titles <strong>and</strong> lessinnovation.On the other h<strong>and</strong>, a variety <strong>of</strong> modern programmingenvironments (such as Visual Basic or even MacromediaFlash) make it easy for young programmers to get a taste<strong>of</strong> game programming, <strong>and</strong> for amateur programmers tocreate games that can be distributed via the Internet (seeshareware <strong>and</strong> freeware). Although computer scienceprograms have been slow to recognize the attraction <strong>and</strong>value <strong>of</strong> game programming, a variety <strong>of</strong> academic programsare now emerging. These range from computer arts,graphics, <strong>and</strong> animation programs to a full-fledged fouryeardegree program in game design at the University <strong>of</strong>California, Santa Cruz. This program includes not onlycourses in game design <strong>and</strong> programming, but also courseson the game business <strong>and</strong> even ethics.Further ReadingAronson, Sean. “School Fills Need for Game Designers.” Medianews,June 18, 2007. Available online. URL: http://www.insidebayarea.com/sanmateocountytimes/localnews/ci_6168502. Accessed June 20, 2007.Chaplain, Heather, <strong>and</strong> Aaron Ruby. Smartbomb: The Quest forArt, Entertainment, <strong>and</strong> Big Bucks in the Videogame Revolution.Chapel Hill, N.C.: Algonquin Books, 2005.Crawford, Chris. Chris Crawford on Game Design. Indianapolis:New Riders, 2003.———. Chris Crawford on Interactive Storytelling. Berkeley, Calif.:New Riders, 2005.Game Developer. [magazine] Available online. URL: http://www.gdmag.com/homepage.htm. Accessed June 23, 2007.Howl<strong>and</strong>, Ge<strong>of</strong>f. “How Do I Make Games? A Path to Game Development.”Available online. URL: http://www.gamedev.net/reference/design/features/makegames/. Accessed June 23, 2007.Moore, Michael E., <strong>and</strong> Jennifer Sward. Introduction to the GameIndustry. Upper Saddle River, N.J.: Prentice Hall, 2006.computer graphicsMost early mainframe business computers produced outputonly in the form <strong>of</strong> punched cards, paper tape, or textprintouts. However, system designers realized that somekinds <strong>of</strong> data were particularly amenable to a graphical representation.In the early 1950s, the first systems using thecathode ray tube (CRT) for graphics output found specializedapplication. For example, the MIT Whirlwind <strong>and</strong> theAir Force’s SAGE air defense system used a CRT to displayinformation such as the location <strong>and</strong> heading <strong>of</strong> radar targets.By 1960, the new relatively inexpensive minicomputerssuch as the DEC PDP series were being connected toCRTs by experimenters, who among other things createdSpacewar, the first interactive video game.


computer graphics 105By the late 1970s, the microcomputers from Apple, RadioShack, Commodore, <strong>and</strong> others either included CRT monitorsor had adapters that allowed them to be hooked upto regular television sets. These machines generally camewith a version <strong>of</strong> the BASIC language that included comm<strong>and</strong>sfor plotting lines <strong>and</strong> points <strong>and</strong> filling enclosedfigures with color. While crude by modern st<strong>and</strong>ards, thesegraphics capabilities meant that spreadsheet programscould provide charts while games <strong>and</strong> simulations couldshow moving, interacting objects. Desktop computers thatshowed pictures on television-like screens seemed less forbiddingthan giant machines spitting out reams <strong>of</strong> printedpaper (see graphics card).Research at the Xerox PARC laboratory in the 1970sdemonstrated the advantages <strong>of</strong> a graphical user interfacebased on visual objects, including menus, windows, dialogboxes, <strong>and</strong> icons (see user interface). The Apple Macintosh,introduced in 1984, was the first commercially viablecomputer in which everything displayed on the screen(including text) consisted <strong>of</strong> bitmapped graphics. Micros<strong>of</strong>t’ssimilar Windows operating environment becamedominant on IBM architecture PCs during the 1990s.Today Apple, Micros<strong>of</strong>t, <strong>and</strong> UNIX-based operating systemsinclude extensive graphics functions. Game <strong>and</strong> multimediadevelopers can call upon such facilities as AppleQuickDraw <strong>and</strong> Micros<strong>of</strong>t DirectX to create high resolution,realistic graphics (see also game console).Basic Graphics PrinciplesThe most basic capabilities needed for computer graphics arethe ability to control the display <strong>of</strong> pixels (picture elements)on the screen <strong>and</strong> a way to specify the location <strong>of</strong> the spotsto be displayed. A CRT screen is essentially a grid <strong>of</strong> pixelsthat correspond to phosphors (or groups <strong>of</strong> colored phosphors)that can be lit up by the electron beam(s). The firstIBM PCs, for example, <strong>of</strong>ten displayed graphics on a 320(horizontal) by 200 (vertical) grid, with 4 available colors.A memory buffer is set up whose bytes correspond to thevideo display. (A simple monochrome display needs onlyone bit per pixel, but color displays must use additionalspace to store the color for each pixel.) A screen image isset up by writing the data bytes to the buffer, which thenis sent to the video system. The video system uses the datato control the display device so the corresponding pixelsare shown (in the case <strong>of</strong> a CRT, this means lighting up the“on” pixels with the electron gun[s]).In most cases screen locations are defined in coordinateswhere point 0,0 is the upper left corner <strong>of</strong> the screen.The coordinates <strong>of</strong> the lower right corner depend on thescreen resolution, At 320 by 200, the lower right cornerwould be 319,199.For example, many versions <strong>of</strong> BASIC use statementssuch as the following:PSET 50,50 ’ draws a dot at X=50, Y=50LINE (100,50)-(150,100), B ’ draw squarewith UL’ corner at 100,50 <strong>and</strong> LR’ corner at 150,100Some example figures plotted by BASIC graphics statements usingscreen coordinates.CIRCLE (100,150), 50, 4 ’ draw a circle <strong>of</strong>radius 50’ with center at 200,200 <strong>and</strong>’ color 4 (red)Languages such as C, C++ <strong>and</strong> Java don’t have built-ingraphics comm<strong>and</strong>s, but functions can be provided in programlibraries (see library, program). They would be usedmuch like the BASIC comm<strong>and</strong>s given above.More commonly, however, programmers use languageindependentgraphics platforms (see api). With Windows,this usually means DirectX, which includes Direct2D for3D graphics, as well as a variety <strong>of</strong> multimedia librariesfor sound, user interfacing, <strong>and</strong> networking. A competitorthat is particularly popular in the Mac <strong>and</strong> UNIX/Linuxworlds is OpenGL (Open Graphics Library). Both DirectX<strong>and</strong> OpenGL run on a wide variety <strong>of</strong> supported hardware.Graphics Models <strong>and</strong> EnginesModern applications (such as drawing programs <strong>and</strong> games)go well beyond simple two-dimensional objects. Indeed,multimedia developers typically use graphics enginesdesigned to work with C++ or Java. A graphics engineprovides a way to define <strong>and</strong> model 2D <strong>and</strong> 3D polygons.(Curves can be constructed by specifying “control points”for bicubic curves.)Complex objects can be built up by specifying hierarchies(for example, a human figure might consist <strong>of</strong> a head,neck, upper torso, arms, h<strong>and</strong>s, lower torso, legs, feet, <strong>and</strong>


106 computer industryso on). By creating a hierarchy <strong>of</strong> arm, h<strong>and</strong>, fingers a transformation(scaling or rotation) <strong>of</strong> one object can be propagatedto its dependent objects (see animation). In manycases graphics are created from real-world objects that havebeen digitally photographed or scanned, <strong>and</strong> then manipulated(see image processing).In most scenes the relationships between graphicalobjects are also important. Modern graphics modeling programsuse a virtual “camera” to indicate the position <strong>and</strong>angle from which the graphics are to be viewed. In renderingthe scene, the Painter’s Algorithm can be used to sortobjects <strong>and</strong> draw closer surfaces on top <strong>of</strong> farther ones, asa painter might paint over the background. Alternatively,the Z-buffer algorithm stores depth information for eachpixel to determine which ones are drawn. This techniquerequires less calculation (because surfaces don’t need tobe sorted), but more memory, since the depth <strong>of</strong> each pixelmust be stored.Within a scene, the effects <strong>of</strong> light (<strong>and</strong> its absence,shadows) must be realistically rendered. A simple techniquecan be used to calculate an overall light level for anobject based on its angle in relation to the light source,plus a factor to account for ambient <strong>and</strong> diffuse light in theenvironment. The Gouraud shading technique can be usedto smooth out the artifacts caused by the simple flat shadingmethod. Another technique, Phong shading, can morerealistically reproduce highlights (the sharp image <strong>of</strong> a lightsource being reflected within a surface). But the most realisticlighting effects are provided through ray tracing, whichinvolves tracing how representative vectors (representingrays <strong>of</strong> light) reflect from or refract through various surfaces.However, ray tracing is also the most computationallyintensive lighting technique.Several techniques can be used to give objects morerealistic surfaces. Texture mapping can be used to “paint”a realistic texture (perhaps scanned from a real-worldobject) onto a surface. For example, pieces in a chess gamecould be given a realistic wood grain or marble texture.This can be further refined through bump mapping, whichcalculates variations in the texture at each point based onlight reflections.Applications <strong>and</strong> Trade<strong>of</strong>fsThe most graphics-intensive applications today are games,multimedia programs, <strong>and</strong> scientific visualization or modelingapplications. Because <strong>of</strong> the impact graphics have onusers’ perception <strong>of</strong> games <strong>and</strong> multimedia programs, developersspend a high proportion <strong>of</strong> their resources on graphics.Critics <strong>of</strong>ten complain that this is at the expense <strong>of</strong>core program functions. The s<strong>of</strong>tware in turn places a highdem<strong>and</strong> on user hardware: The contemporary “multimedia-ready”PC has a video card that includes special “videoaccelerator” hardware to speed up the display <strong>of</strong> graphicsdata <strong>and</strong> a video memory buffer <strong>of</strong> 256 MB or more.Complex 3D graphics with lighting, shading, <strong>and</strong> texturesmay have to be displayed at a relatively low resolution(such as 640 × 480) because <strong>of</strong> the limitations <strong>of</strong> the mainprocessor (which performs necessary calculations) <strong>and</strong> thevideo card. However as processor speed <strong>and</strong> memory capacitycontinue to increase, many computer graphics now rivalvideo <strong>and</strong> even film in realistic detail.Further ReadingACMSIGGRAPH. [graphics special interest group] Availableonline. URL: http://www.siggraph.org/. Accessed June 24,2007.<strong>Computer</strong> Graphics World. [magazine] Available online. URL:http://www.cgw.com/ME2/Default.asp. Accessed June 24,2007.Govil-Pai, Shalini. Principles <strong>of</strong> <strong>Computer</strong> Graphics: Theory <strong>and</strong>Practice Using OpenGL <strong>and</strong> Maya. New York: Springer, 2005.Jones, Wendy. Beginning DirectX 10 Game Programming. Boston:Thomson Course <strong>Technology</strong> PTR, 2007.computer industryThe U.S. computer industry began with the marketing <strong>of</strong> theUnivac, designed by J. Presper Eckert <strong>and</strong> John Mauchly inthe early 1950s. The first computers were made one at a time<strong>and</strong> only as ordered, <strong>and</strong> the market for the huge, expensivemachines was thought to be limited to government agencies<strong>and</strong> the largest corporations. However, astute marketing bySperry-Univac, Burroughs, <strong>and</strong> particularly, InternationalBusiness Machines (see ibm) convinced a growing number<strong>of</strong> companies that modern data processing facilities wouldbe essential for managing their growing <strong>and</strong> increasinglycomplex business (see mainframe).The mainframe market was controlled by a h<strong>and</strong>ful <strong>of</strong>vendors who typically provided the complete computer system(including peripherals such as printers) <strong>and</strong> a long-termservice contract. (Eventually, third-party vendors began tomake compatible peripherals.) Companies that could notafford their own computers began to contract with servicebureaus for their data processing needs, such as payrollprocessing.By the 1960s, transistorized circuitry was replacingthe vacuum tube, <strong>and</strong> somewhat smaller machines becamepracticable (see minicomputer). While these computerswere the size <strong>of</strong> a desk, not a desktop, models such as DigitalEquipment Corporation’s PDP series <strong>and</strong> competitionfrom companies such as Data General provided computingpower for engineers <strong>and</strong> scientists to use in factories <strong>and</strong>laboratories. During the 1970s, the dedicated word processingmachine marketed by the Wang Corporation beganthe digital transformation <strong>of</strong> the <strong>of</strong>fice. By the end <strong>of</strong> thatdecade, the first general-purpose desktop microcomputerswere marketed. The Apple II made a modest inroad intobusiness, fueled by VisiCalc, the first spreadsheet program.This new market attracted the attention <strong>of</strong> IBM, viewedby many microcomputer enthusiasts as a dinosaurlike relic<strong>of</strong> the mainframe age. Uncharacteristically, IBM managementgave the developers <strong>of</strong> their personal computer (PC)project free rein, <strong>and</strong> the result was the IBM PC introducedin 1981. The machine had two major advantages. One wasthe IBM name itself, which was comforting to executivescontemplating a bewildering new technology. The otherwas that IBM (again, uncharacteristically) had followedApple’s lead in designing their PC with an “open architecture,”meaning that third-party manufacturers could mar-


computer industry 107ket a variety <strong>of</strong> expansion cards to increase the machine’scapabilities. By 1990, about 10 million PCs worth about $80billion were being sold annually (see ibm pc).Although IBM tried to prevent other manufacturers from“cloning” the IBM chipset itself, it was unable to preventcompanies such as Compaq from creating “IBM compatible”PCs that <strong>of</strong>ten surpassed the capabilities <strong>of</strong> the IBM models.(IBM introduced its microchannel architecture in thelate 1980s in an unsuccessful attempt to regain proprietaryadvantage.) By the 1990s the IBM-compatible PCs (sometimescalled “Wintel,” for the Micros<strong>of</strong>t Windows operatingsystem <strong>and</strong> Intel-compatible processor) had becomean industry st<strong>and</strong>ard <strong>and</strong> a commodity manufactured <strong>and</strong>marketed by everything from the big name br<strong>and</strong>s suchas Dell <strong>and</strong> Gateway down to the corner computer store’sbackroom operation.The announcement <strong>of</strong> Apple’s Macintosh computer in1984 made a vivid impression on the public (see Macintosh).With its fully graphical user interface, mouse, drawingprogram, <strong>and</strong> fonts, it seemed light-years ahead <strong>of</strong> thetext-based IBM PCs. However, the Mac’s slow speed, relativelyhigh price, <strong>and</strong> closed architecture limited its penetrationinto the business market. The Mac did attract anenthusiastic minority <strong>of</strong> consumer users <strong>and</strong> achieved alasting niche presence in education <strong>and</strong> among graphics<strong>and</strong> video pr<strong>of</strong>essionals. Gradually, as Micros<strong>of</strong>t’s graphicalWindows operating system improved in the early 1990s,the Mac’s advantages over the IBM-compatible machinesdiminished.During the 1990s, desktop computers came with aseries <strong>of</strong> increasingly powerful series <strong>of</strong> Pentium processors,matched by <strong>of</strong>ferings from AMD <strong>and</strong> Cyrix. Multimedia(including high-end graphics <strong>and</strong> sound capabilities)became a st<strong>and</strong>ard feature, particularly on consumer PCs.Increasingly, the business PC was being connected to alocal area network, <strong>and</strong> both business <strong>and</strong> consumer PCsincluded modems or broadb<strong>and</strong> access to online services<strong>and</strong> the Internet. The need to manage network files <strong>and</strong> services(such as Web servers) led to the development <strong>of</strong> serverPCs featuring high-capacity mass storage. At the same time,high-end PCs also challenged the graphics workstationsmade by companies such as Sun. The traditional minicomputer<strong>and</strong> high performance workstation category beganto melt away. By 2002, an estimated 600 million personalcomputers were in use worldwide, with about half <strong>of</strong> themin homes.The personal computer also grew smaller. The suitcasesized“luggable” computers <strong>of</strong> the 1980s gave way to a range<strong>of</strong> laptop, notebook-sized, <strong>and</strong> palm-sized computers. Todaywireless networking technology allows users <strong>of</strong> diminutivemachines to access the full resources <strong>of</strong> the World WideWeb <strong>and</strong> local networks.The idea <strong>of</strong> “appliance computing” has also been arecurrent theme among industry pundits. Proponents arguethat there are still many people who feel intimidated by ast<strong>and</strong>ard computer interface but have become comfortablewith other consumer electronic products such as televisions,CD players, or microwaves. If computer functionscould be built into such devices, people might use themcomfortably. For example, WebTV is a box that allows theuser to surf the Web from the same armchair where he orshe watches TV, using controls little more complicated thanthose found on a regular TV remote. Kitchen appliancesmight be transformed, with the microwave providing recipes<strong>and</strong> the refrigerator keeping an inventory <strong>and</strong> automaticallyordering from the grocery store. However, as with thefully automated “wired home,” featured in Sunday newspapersupplements, the appliance computer has remaineddifficult to market to consumers (see smart buildings <strong>and</strong>homes).The S<strong>of</strong>tware IndustryHardware is useless without s<strong>of</strong>tware. Since the operatingsystem (OS) is the s<strong>of</strong>tware that enables all other s<strong>of</strong>twareto access the computer, the OS market is a key part <strong>of</strong> thecomputer industry. Through a historical accident, a youngprogrammer-entrepreneur named Bill (William) Gates<strong>and</strong> his Micros<strong>of</strong>t Corporation received the contract todevelop the operating system for the first IBM PC. Micros<strong>of</strong>tbought <strong>and</strong> adapted an existing operating system tocreate MS-DOS (also called PC-DOS). Until the end <strong>of</strong> the1980s, DOS was the dominant operating system for IBMcompatiblePCs (see ms-dos). In the early 1990s, Micros<strong>of</strong>tintroduced Windows 3.0, the first successful version <strong>of</strong> itsgraphical operating environment (see Micros<strong>of</strong>t Windows).The dominance <strong>of</strong> Windows became so completethat a federal antitrust case against Micros<strong>of</strong>t resulted inthe company having to provide competitors greater accessto the operating system.The source <strong>of</strong> emerging challenges to Windows comesnot from another desktop vendor but from the Internet,where Java <strong>of</strong>fers the potential <strong>of</strong> delivering applicationsthrough the user’s Web browser, regardless <strong>of</strong> whether thatuser is running Windows, the Macintosh OS, or Linux, avariant <strong>of</strong> UNIX that has been embraced by many enthusiasts.However, Java applications <strong>and</strong> Linux still representonly a tiny fraction <strong>of</strong> the market share held by Windows(see Java <strong>and</strong> Linux).The 1990s saw considerable consolidation in the <strong>of</strong>fices<strong>of</strong>tware arena. Micros<strong>of</strong>t’s Office s<strong>of</strong>tware suite overwhelmedonce formidable competitors such as WordPerfect<strong>and</strong> Corel. Packages such as Micros<strong>of</strong>t Office create theirown mini-industries where developers create templates <strong>and</strong>add-ins. However, the widespread use <strong>of</strong> high-speed Internetaccess (see broadb<strong>and</strong>) has made it practicable to <strong>of</strong>fermany <strong>of</strong>fice s<strong>of</strong>tware functions online, providing workerswith convenient access from any location. The most significant<strong>of</strong>fering here has been Google Apps, which includescalendar <strong>and</strong> communications features as well as GoogleDocs & Spreadsheets. In turn, Micros<strong>of</strong>t has been promptedto <strong>of</strong>fer added-value online features to Micros<strong>of</strong>t Office.Outside the <strong>of</strong>fice there is considerably more competitionin the s<strong>of</strong>tware industry. Today’s consumers can choosefrom a wide variety <strong>of</strong> s<strong>of</strong>tware that fills utility or other nicheneeds, including shareware (“try before you buy”) <strong>of</strong>ferings.In educational s<strong>of</strong>tware <strong>and</strong> games some once-major innovatorshave been bought out or consolidated, but there is noone dominant company. Thous<strong>and</strong>s <strong>of</strong> specialized s<strong>of</strong>tware


108 computer industrypackages serve scientific, manufacturing, <strong>and</strong> businessneeds. While the general public is unaware <strong>of</strong> such programs,they make up much <strong>of</strong> the strength <strong>of</strong> the s<strong>of</strong>twareindustry.Other Products <strong>and</strong> ServicesBy the 2000s there were many new niches in the computerindustry l<strong>and</strong>scape. Powerful dedicated game machinessuch as the Micros<strong>of</strong>t Xbox 360 <strong>and</strong> the Sony PlayStation3 make for a vigorous s<strong>of</strong>tware industry that potentiallygoes beyond games (see game consoles). Portable mediaplayers such as Apple’s iPod are ubiquitous (see music <strong>and</strong>video players, digital). The personal digital assistant (seepda) <strong>and</strong> the cell phone have largely merged <strong>and</strong> morphed(see smartphone), capable <strong>of</strong> running a variety <strong>of</strong> s<strong>of</strong>twareincluding e-mail, Web browsing, games, <strong>and</strong> music.Meanwhile, digital cameras have virtually replaced film forall but the most high-end <strong>and</strong> specialized applications (seephotography, digital). The convergence <strong>and</strong> proliferation<strong>of</strong> all <strong>of</strong> these devices is continuing at a rapid pace, <strong>and</strong>competition is fierce.The services sector <strong>of</strong> the computer industry lacks thevisibility <strong>of</strong> new hardware products, but provides most<strong>of</strong> the industry’s employment <strong>and</strong> much <strong>of</strong> its economicimpact. In addition to the hundreds <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> programmerswho provide business-related, consumer, <strong>and</strong>specialized s<strong>of</strong>tware, there are the legions <strong>of</strong> help deskemployees, computer <strong>and</strong> network technicians, creators <strong>of</strong>s<strong>of</strong>tware development tools, writers <strong>of</strong> technical books <strong>and</strong>training products, industry investment analysts, reporters,<strong>and</strong> many others whose livelihood depends on the computerindustry.International ComputingThe computing industry came <strong>of</strong> age mainly in the UnitedStates. By the 1960s IBM had extended its dominant positionto Britain <strong>and</strong> Europe despite the efforts <strong>of</strong> indigenouscompanies <strong>and</strong> government initiatives. Japan was considerablymore successful in developing a competitive electronics<strong>and</strong> computer industry under the long-term guidance <strong>of</strong>MITI (Ministry <strong>of</strong> International Trade <strong>and</strong> Industry). TheJapanese became dominant in industrial robotics <strong>and</strong> strongin consumer electronics, including game machines (Sony),digital cameras (Sony <strong>and</strong> Fujitsu), <strong>and</strong> laptop computers(Toshiba). They have been less successful in desktop computers,Internet-related technology, <strong>and</strong> commercial s<strong>of</strong>tware.China has become an increasingly important playerin the components <strong>and</strong> peripherals industry. The growingimportance <strong>of</strong> Asia in the international computer industryis also underscored by the large number <strong>of</strong> programmers,engineers, <strong>and</strong> support personnel being trained in India(see globalism <strong>and</strong> the computer industry).Major Internet industry players such as Google <strong>and</strong>Yahoo! as well as hardware giant Dell have become heavilyinvolved in the Chinese market, which boasted about 100million users in 2006, second only to the United States.A number <strong>of</strong> initiatives are helping spread computingeven in the limited economies <strong>of</strong> many countries in Africa,Asia, <strong>and</strong> Latin America (see developing nations <strong>and</strong>computing). While illicit copying has hindered the marketing<strong>of</strong> commercial s<strong>of</strong>tware in many countries, the alternativemodel <strong>of</strong> open-source s<strong>of</strong>tware <strong>and</strong> very inexpensivelaptops (the One Laptop Per Child initiative) may <strong>of</strong>fer aviable path to the true globalization <strong>of</strong> computing.Emerging TrendsAs the 2000 decade has progressed, a number <strong>of</strong> trendscontinue to reshape the computer industry. These include:• The recovery from the “bust” years <strong>of</strong> 2001–3 was followedby more modest but significant growth, withrapid growth in particular sectors such as mobiledevices, Web applications (see Web 2.0), <strong>and</strong> security.• Desktop PC sales were strong through 2005 (about200 million that year) but now appear to be stagnating(in the United States at least) in favor <strong>of</strong> laptops,smaller portable computers, <strong>and</strong> smart phones.• Although a new generation <strong>of</strong> multicore processors<strong>and</strong> the resource-hungry Micros<strong>of</strong>t WindowsVista operating system may eventually speed up thereplacement <strong>of</strong> older PCs, businesses have been tendingto keep slightly obsolescent machines <strong>and</strong> operatingsystems longer.• Free or lower-cost alternative s<strong>of</strong>tware <strong>and</strong> operatingsystems (see open source <strong>and</strong> Linux) are attractingconsiderable publicity, but it is unclear how muchpenetration they will achieve in the mainstream home<strong>and</strong> small-business computing sectors.• Besides cost consciousness <strong>and</strong> other priorities (suchas networking <strong>and</strong> security), the trend toward Webbasedapplications may be shifting sales away fromhardware <strong>and</strong> traditional operating systems <strong>and</strong> s<strong>of</strong>twaresuites. (See application service provider.)• Outsourcing <strong>of</strong> many IT functions is continuing,including network administration, managed backup<strong>and</strong> storage, <strong>and</strong> even security. Meanwhile, there hasbeen concern about lack <strong>of</strong> sufficient U.S. graduatesin computer science <strong>and</strong> engineering.While the computer hardware, s<strong>of</strong>tware, <strong>and</strong> serviceindustries are likely to continue growing vigorously, theboundaries between sectors <strong>and</strong> applications are blurring,making it harder to consider the industry as a wholeas opposed to specific sectors <strong>and</strong> applications (seee-commerce).Further ReadingCh<strong>and</strong>ler, Alfred D., Jr. Inventing the Electronic Century: The EpicStory <strong>of</strong> the Consumer Electronics <strong>and</strong> <strong>Computer</strong> Industries.New ed. Cambridge, Mass.: Harvard University Press, 2005.<strong>Computer</strong> Industry Almanac. Available online. URL: http://www.c-i-a.com/. Accessed June 24, 2007.<strong>Computer</strong>world. Available online. URL: http://www.computerworld.com/. Accessed June 24, 2007.Infoworld. Available online. URL: http://www.infoworld.com/.Accessed June 24, 2007.International Data Corporation. Available online. URL: http://www.idc.com/. Accessed June 24, 2007.


computer science 109PC World. Available online. URL: http://www.pcworld.com.Accessed June 24, 2007.Plunkett’s Info Tech, <strong>Computer</strong>s & S<strong>of</strong>tware Industry. Availableonline. URL: http://www.plunkettresearch.com/Industries/InfoTech<strong>Computer</strong>sS<strong>of</strong>tware/tabid/152/Default.aspx. Accessed June 24, 2007.Yost, Jeffrey R. The <strong>Computer</strong> Industry. Westport, Conn.: GreenwoodPress, 2005.ZDNet. Available online. URL: http://www.zdnet.com/. AccessedJune 24, 2007.computer literacyAs computers became integral to business, industry, trades,<strong>and</strong> pr<strong>of</strong>essions, educators <strong>and</strong> parents became increasinglyconcerned that young people acquire a basic underst<strong>and</strong>ing<strong>of</strong> computers <strong>and</strong> master the related skills. Theterm computer literacy suggested that computer skills werenow as important as the traditional skills <strong>of</strong> reading, writing,<strong>and</strong> arithmetic. However, there has been disagreementabout the emphasis for a computer literacy curriculum.Some educators, such as Seymour Papert, computer scientist<strong>and</strong> inventor <strong>of</strong> the Logo language, believe that studentscan <strong>and</strong> should underst<strong>and</strong> the concepts underlyingcomputing, <strong>and</strong> be able to write <strong>and</strong> appreciate a variety <strong>of</strong>computer programs (see logo). By gaining an underst<strong>and</strong>ing<strong>of</strong> what computers can (<strong>and</strong> cannot) do, students willbe able to think critically about how to appropriately usethe machines, rather than simply mastering route skills.Indeed, by gaining a good grasp <strong>of</strong> general principles, thestudent should be able to easily master specific skills.An opposing view emphasizes the practical skills thatmost people (who will not become programmers) will needin everyday life <strong>and</strong> work. This sort <strong>of</strong> curriculum focuseson learning how to identify the parts <strong>of</strong> a computer <strong>and</strong>their functions, how to run popular applications suchas word processors, spreadsheets, <strong>and</strong> databases, how toconnect to the Internet <strong>and</strong> use its services, <strong>and</strong> so on.<strong>Computer</strong> literacy can also be broadened to include underst<strong>and</strong>ingthe impact that computers are having on dailylife <strong>and</strong> social issues that arise from computer use (such assecurity, privacy, <strong>and</strong> inequality).Today computer literacy is an important part <strong>of</strong> everyelementary <strong>and</strong> high school curriculum. Most students inmiddle-class or higher income brackets now have access tocomputers at home, <strong>and</strong> many thus gain considerable computerliteracy outside <strong>of</strong> school. In addition, adult education<strong>and</strong> vocational schools <strong>of</strong>ten emphasize computer skills asa route to employment or career advancement. People alsohave the opportunity to learn on their own through books<strong>and</strong> videos.The approach to computer literacy will vary with thebackground <strong>and</strong> resources <strong>of</strong> a given community. For example,programs for young people in developed countries cantake advantage <strong>of</strong> the fact that many young people alreadyhave considerable experience with using computers, includingrelated devices such as game consoles <strong>and</strong> music/videoplayers. On the other h<strong>and</strong>, a program targeted at a poor orminority community must cope with the likelihood thatmany members <strong>of</strong> the community have had little opportunityto interact with computers (see digital divide). Programsfor poor <strong>and</strong> developing countries may have to focusfirst on providing the basic infrastructure, as in the OneLaptop Per Child Program.Further ReadingGookin, Dan. PCs for Dummies. 10th ed. New York: Wiley, 2005.Jan’s Illustrated <strong>Computer</strong> Literacy 101. Available online. URL:http://www.jegsworks.com/Lessons/index.html. Accessed June24, 2007.Parsons, June, <strong>and</strong> Dan Oja. Practical <strong>Computer</strong> Literacy <strong>and</strong> Skills.Boston: Thomson Course <strong>Technology</strong>, 2004.White, Ron. How <strong>Computer</strong>s Work. 8th ed. Indianapolis: Que,2005.computer scienceMost generally, computer science is the study <strong>of</strong> methodsfor organizing <strong>and</strong> processing data in computers. The fundamentalquestions <strong>of</strong> concern to computer scientists rangefrom foundations <strong>of</strong> theory to strategies for practical implementation.Fundamental Theory• What problems are susceptible to solving through anautomated procedure? (See computability <strong>and</strong> complexity.)• Given that a problem is solvable, can it be solvedwithout too much expenditure <strong>of</strong> time or computingresources?• Can a step-by-step procedure be devised for solvinga given problem? (See algorithm.) How do differentprocedures (such as for sorting data) compare in efficiency<strong>and</strong> reliability? (See sorting <strong>and</strong> searching.)• What methods <strong>of</strong> organizing data are most useful?(See data structures.) What are the advantages <strong>and</strong>drawbacks <strong>of</strong> particular forms <strong>of</strong> organization? (Seearray, list processing, <strong>and</strong> queue.)• Which structures are best for representing the dataneeded for a given application? What is the best wayto relate data to the procedures needed to manipulateit? (See encapsulation, class, <strong>and</strong> procedures <strong>and</strong>functions.)The Tools <strong>of</strong> Computing• How can programs be structured so they are easier toread <strong>and</strong> maintain? (See structured programming<strong>and</strong> object-oriented programming.)• Can programmers keep up with growth <strong>of</strong> operatingsystems <strong>and</strong> application programs that have millions<strong>of</strong> lines <strong>of</strong> code? (See s<strong>of</strong>tware engineering <strong>and</strong>quality assurance, s<strong>of</strong>tware.)• How can multiple simultaneous tasks (or even multipleprocessors) be coordinated to bring greatercomputing power to bear on problems? (See multitasking<strong>and</strong> multiprocessing.)


110 computer virus• What is the best way to design an operating system,including the arrangement <strong>of</strong> different layers <strong>of</strong> theoperating system such as the hardware-specific drivers,kernel (essential functions), <strong>and</strong> interfaces (shellsor visual environments)? (See operating system,kernel, device driver, <strong>and</strong> shell.)• What should be emphasized in designing a programminglanguage? How does one specify the grammar<strong>of</strong> statements the declaration <strong>and</strong> h<strong>and</strong>ling <strong>of</strong> datatypes, <strong>and</strong> the mechanism for h<strong>and</strong>ling functions orprocedures? (See Backus-Naur form, data types,<strong>and</strong> procedures <strong>and</strong> functions.)• What considerations should be emphasized in designinga compiler for a given language? (See compiler.)• How should a network be organized, <strong>and</strong> what protocolsshould be used for transferring data? (Seenetwork, Internet, data communications, telecommunications,<strong>and</strong> tcp/ip.)Specific Application AreasThe general principles <strong>and</strong> tools must then be applied to avariety <strong>of</strong> application areas including:• text processing (see word processor, text editor,<strong>and</strong> font)• graphics (see computer graphics <strong>and</strong> image processing)• database management, including file structures <strong>and</strong>file access (such as indexing <strong>and</strong> hashing), <strong>and</strong> databasearchitecture (relational databases) (see databasemanagement system, sql, <strong>and</strong> xml).• business data processing issues, including the design<strong>of</strong> MIS (management information systems) <strong>and</strong> decisionsupport systems• web applications, including commercial applications(see e-commerce), multimedia, database access, integration<strong>of</strong> Web services (see bioinformatics serviceorientedarchitecture, mashups, <strong>and</strong> web 2.0 <strong>and</strong>beyond), <strong>and</strong> appropriate programming techniques(see Ajax <strong>and</strong> scripting languages.)• scientific programming issues, including data acquisition,maintaining accuracy in calculations, <strong>and</strong>creating visualizations driven by the data (see dataacquisition, numeric data <strong>and</strong> scientific computingapplications.)• user interface design (designing the interactionbetween human beings <strong>and</strong> the operating system orapplication) (see user interface)• the broad area <strong>of</strong> artificial intelligence, which affectsways <strong>of</strong> representing information <strong>and</strong> modeling reasoningprocesses (see artificial intelligence, neuralnetwork, expert systems, <strong>and</strong> knowledgerepresentation.)• robotics <strong>and</strong> control systems (an older term, “cybernetics,”has also been used for this field) (see robotics<strong>and</strong> cybernetics.)Clearly the concerns <strong>of</strong> computer science overlap a number<strong>of</strong> related fields. The design <strong>of</strong> computer hardware is<strong>of</strong>ten considered to be computer engineering, but designers<strong>of</strong> hardware must be familiar with the algorithms that willbe used to operate it (see also computer engineering).Both artificial intelligence <strong>and</strong> user interface design areaffected by cognitive science (or psychology), the study <strong>of</strong>human thought processes. Biology both inspires <strong>and</strong> is illuminatedby artificial life simulations, genetic algorithms,<strong>and</strong> neural networks. The most abstract questions <strong>of</strong> informationprocessing touch on the field <strong>of</strong> information science(or information theory).History <strong>of</strong> the FieldThe early computer pioneers such as Alan Turing, J. PresperEckert, <strong>and</strong> John Mauchly brought backgrounds inmathematics or engineering (see Turing, Alan; Eckert,J. Presper; <strong>and</strong> Mauchly, John). By the 1960s, however,a discipline <strong>and</strong> curriculum for computer science began toemerge. By the late 1990s more than 175 departments inAmerican <strong>and</strong> Canadian universities <strong>of</strong>fered a doctorate incomputer science, with about a thous<strong>and</strong> new Ph.D.s beinggranted each year. However, in the following decade thenumber <strong>of</strong> students majoring in computer science declinedby about 50 percent. (See education in the computerfield for more details.)The traditional computer science field emphasizes thetheory <strong>of</strong> data representation, algorithms, <strong>and</strong> system architecture.In recent years a more practically oriented curriculumhas emerged as an alternative. Under the titles <strong>of</strong>“Information <strong>Technology</strong>” or “Information Systems,” thiscurriculum emphasizes application areas such as managementinformation systems, database management, systemadministration, <strong>and</strong> Web development.Further ReadingAssociation for Computing Machinery (ACM). Available online.URL: http://www.acm.org. Accessed June 24, 2007.Biermann, Alan W. Great Ideas <strong>of</strong> <strong>Computer</strong> <strong>Science</strong> with JAVA.Cambridge, Mass.: MIT Press, 2001.<strong>Computer</strong> <strong>Science</strong> [resources]. University <strong>of</strong> Albany Libraries.Available online. URL: http://library.albany.edu/subject/csci.htm. Accessed June 24, 2007.Dale, Nell, <strong>and</strong> John Lewis. <strong>Computer</strong> <strong>Science</strong> Illuminated. 3rd ed.Sudbury, Mass.: Jones & Bartlett, 2006.Hillis, Daniel W. The Pattern on the Stone: The Simple Ideas ThatMake <strong>Computer</strong>s Work. New York: Basic Books, 1998.IEEE <strong>Computer</strong> Society. Available online. URL: http://www.computer.org/portal/site/ieeecs/index.jsp.Accessed June 24,2007.computer virusA computer virus is a program that is designed to copyitself into other programs. When the other programs arerun, they carry out the virus’s instructions, either instead <strong>of</strong>or in addition to their own. Since one <strong>of</strong> the primary tasks


computer virus 111programmed into a virus is to reproduce itself, a virus programcan spread rapidly. Viruses are generally programmedto seek out program files that are likely to be executed inthe near future, such as those used by the operating systemduring the startup process. The result is a copy that canin turn generate an additional copy, <strong>and</strong> so on. (A virusdisguised as an innocuous program is sometimes calleda Trojan, short for “Trojan horse.” A distinction is sometimesmade between viruses <strong>and</strong> worms. A worm generallyuses flaws in a networking system to send copies to othermachines, without needing to insert code into a program.)Appearing in the 1980s, the first computer viruses weregenerally spread by infecting programs on floppy disks,which were <strong>of</strong>ten passed between users. Today, viruses generallyhave instructions that enable them to gain access tonetwork facilities (such as e-mail) to facilitate their spreadingto other systems on a local network or on the Internet.The spread <strong>of</strong> viruses is complicated by the fact that operatingsystems (particularly Micros<strong>of</strong>t Windows) <strong>and</strong> applications(such as Micros<strong>of</strong>t Office) have the ability to runscripts or “macros” that are attached to documents. Thisfacility can be useful for tasks such as sophisticated documentformatting or form-h<strong>and</strong>ling, but it also means thatviruses can attach themselves to scripts or macros <strong>and</strong> runwhenever a document containing them is opened. Sincemodern e-mail programs have the ability to include documentsas attachments to messages, this means that theunsuspecting recipient <strong>of</strong> a message can trigger a virus simplyby opening a message attachment.In today’s Web-centric world, viruses are <strong>of</strong>ten spreadusing links in e-mail that either entices or frightens thereader into clicking on a link to a Web site, which canbe made to closely resemble that <strong>of</strong> a legitimate institutionsuch as a bank or e-commerce site (see phishing <strong>and</strong>spo<strong>of</strong>ing). Once connected to the site, the user’s computercan be infected with a virus or with some other form <strong>of</strong>“malware” (see spyware <strong>and</strong> adware). This route <strong>of</strong> infectionis particularly dangerous because normal antivirusprograms scan e-mail but not data being downloaded froma Web site, <strong>and</strong> firewalls are generally set to allow normalWeb requests.Once installed, a virus can be used for a variety <strong>of</strong> purposesaccording to the “payload” <strong>of</strong> instructions that areset to execute. Sensitive information such as credit carddetails can be stolen (see identity theft). Sometimes theinfected computer can appear to be unaffected, but has hada stealthy “bot” (robot) program inserted. Thous<strong>and</strong>s <strong>of</strong>bots can be linked into a “botnet” <strong>and</strong> later comm<strong>and</strong>ed totrigger large-scale “distributed denial <strong>of</strong> service” (DDOS)attacks to flood targeted Web sites with requests, crashingor disabling the site.Viruses can be further disguised by programming themto remain dormant until a certain date, time, or other conditionis reached. (Such a virus is sometimes called a logicbomb.) For example, a disgruntled programmer who isabout to be dismissed might insert a virus that will wipeout payroll data at the beginning <strong>of</strong> the next month. Afamous example <strong>of</strong> the time-triggered virus was the Michelangelovirus, so named because it was triggered to run onthe artist’s birthday, March 6, 1992. (See computer crime<strong>and</strong> security.)Viruses can be overtly destructive (such as by reformattinga computer’s hard drive, wiping out its data). Otherviruses can simply tie up system resources. The most infamousexample <strong>of</strong> this was the “Internet Worm” introducedonto the network on November 2, 1988, by Robert Morris,Jr. This program was intended to reproduce slowly, plantingits “segments” on networked computers by exploiting aflaw in the UNIX sendmail program. Unfortunately, Morrismade an error that caused the worm to spread much morerapidly. Before the coordinated efforts <strong>of</strong> system administratorsat affected sites came up with countermeasures, theworm had cost somewhere in the hundreds <strong>of</strong> thous<strong>and</strong>s <strong>of</strong>dollars in lost computer <strong>and</strong> programmer time.CountermeasuresThe only certain defense <strong>of</strong> a computer system from viruseswould be through abstaining from contact between it <strong>and</strong>any other computers, either directly through a network orindirectly through exchange <strong>of</strong> programs on floppy disksor other removable media. In today’s highly networkedworld, this is usually impractical. A more practical defenseis to install antivirus s<strong>of</strong>tware. Antivirus programs workby comparing the contents <strong>of</strong> files (either those already onthe disk or entering via the Internet) with “signatures” orpatterns <strong>of</strong> data found in known viruses. More sophisticatedantivirus programs include the ability to recognizeprogram code that is similar to that found in known virusesor that attempts suspicious operations (such as attempts toreformat a disk or bypass the operating system <strong>and</strong> writedirectly to disk). If an antivirus program recognizes a virus,it warns the user <strong>and</strong> can be told to actually remove thevirus. Because dozens <strong>of</strong> new viruses are identified eachweek, virus programs must be updated frequently with newvirus signature files in order to remain effective. Many antivirusprograms can update themselves by periodically linkingto a Web site containing the update files.Modern operating systems (such as Micros<strong>of</strong>t WindowsVista) have attempted to make it harder for unauthorizedprograms to access critical system files, such as by limitingdefault access permissions or prompting the user toapprove various activities. Such operating systems alsoinclude an updating feature that can automatically download<strong>and</strong> install security “patches”—a vital task, as can beseen from the volume <strong>and</strong> variety <strong>of</strong> such updates that seemto appear every month. Indeed the use <strong>of</strong> “blended” threats(including more than one potential infection mechanism)<strong>and</strong> the development <strong>of</strong> new “exploits” for hundreds <strong>of</strong> differentdata file formats make system protection an ongoingchallenge.Reducing user temptation <strong>and</strong> enhancing user awarenessis also important. Since unsolicited e-mail (see spam)is <strong>of</strong>ten a source <strong>of</strong> potentially malicious links <strong>and</strong> attachments,running a spam-blocking program can help protectthe computer. There are also programs that can detect<strong>and</strong> block “phishing” messages <strong>and</strong> their related Web sites.Since none <strong>of</strong> these programs can completely keep up withthe rapid appearance <strong>of</strong> new threats, caution <strong>and</strong> common


112 computer visionsense on the part <strong>of</strong> the user remain an important last line<strong>of</strong> defense.Further ReadingAntivirus S<strong>of</strong>tware Buying Guide. PC World. Available online. URL:http://www.pcworld.idg.com.au/index.php/id;316975074.Accessed June 24, 2007.CERT Coordination Center. Available online. URL: http://www.cert.org. Accessed June 24, 2007.Gregory, Peter H. <strong>Computer</strong> Viruses for Dummies. Indianapolis:Wiley, 2004.Henderson, Harry. <strong>Computer</strong> Viruses. Detroit: Lucent Books/Thomson-Gale,2006.McAfee Corporation. Available online. URL: http://www.mcafee.com. Accessed June 24, 2007.Symantec Corporation. Available online. URL: http://www.symantec.com. Accessed June 24, 2007.computer visionIn the biological world, vision is the process <strong>of</strong> receivinglight signals from the environment through the eyes <strong>and</strong>optic nerves, from which the brain can extract patternsthat contain useful information (such as recognizing foodor a potential predator). <strong>Computer</strong> vision (also known asmachine vision) is the analogous process by which lightis received by a sensor system (such as a digital camera).The light is then analyzed for meaningful patterns. Thus, arobot might be able to recognize the identity <strong>and</strong> positions<strong>of</strong> various parts on an assembly line.Because computer vision involves pattern recognition, itis part <strong>of</strong> the discipline <strong>of</strong> artificial intelligence (see artificialintelligence <strong>and</strong> pattern recognition). The challengeis not in getting information about a visual scene fromthe camera <strong>and</strong> turning it into digital information (a grid <strong>of</strong>pixels). Rather, it is the ability to recognize meaningful patternsin fragmented images, something human infants learnto do almost from birth when they encounter human faces.One way to approach the problem is to constrain thekinds <strong>of</strong> images the computer (or robot) has to deal with.If you can guarantee that a robot’s field <strong>of</strong> vision will containonly a few fixed objects (a hopper, perhaps, or a conveyerbelt) plus one or more distinctively shaped parts, itis relatively easy to program the dimensions <strong>of</strong> the possibleobjects into the vision system so that the robot can identifyobjects by comparing them with stored templates. However,if the robot encounters an object it isn’t prepared for, suchas a stray bit <strong>of</strong> packing material, it will be unable to identify(or properly deal) with the object.Vision is also complicated by the problem <strong>of</strong> parsingthree-dimensional objects in the visual field. Seen headon,the side <strong>of</strong> a cube appears to be a two-dimensionalsquare. Seen at an angle, it appears to be a three-dimensionalassemblage with some faces visible <strong>and</strong> some not.To interpret these <strong>and</strong> more complicated objects, the robotmight be programmed with rules that help it infer that anobject is really a cube, that all cubes have six equal sides,<strong>and</strong> so on. Another strategy is to give the robot more thanone “eye” so that images can be compared, much as humansdo unconsciously with binocular vision. Finally, the robotcan be given the ability to move its head <strong>and</strong> eyes in orderto find a viewpoint that yields more information about anambiguous object.Human infants, <strong>of</strong> course, are not born with a fullydeveloped underst<strong>and</strong>ing <strong>of</strong> the types <strong>of</strong> objects in theirworld. They are always learning new ways to distinguish,for example, a stuffed teddy bear from a live dog. Robotvision systems, too, can be programmed to learn (or at least,refine their ability to recognize objects). A statistical techniquecan be used to “sample” objects in the environment<strong>and</strong> find which characteristics most reliably “predict” thetrue nature <strong>of</strong> an object. Characteristics can be resampledfrom different viewpoints to see which ones remain invariant(unchanged). For example, a cube will always have fouredges on each face. Another approach is to use a neural network,where the visual information is processed by a grid <strong>of</strong>nodes that are reinforced to the extent they are successfulin identifying features (such as edges).Applications<strong>Computer</strong> vision is a problem <strong>of</strong> great theoretical interestbecause it engages so many questions about perception,the ability to build models <strong>of</strong> the world, <strong>and</strong> the ability tolearn. The field also has considerable practical potential.Currently, most robots are fixed to stations on factory floorswhere they work with a limited number <strong>of</strong> objects (parts)in a highly constrained, stable environment. However “servicerobots” have been gradually developed to work in amuch less constrained environment (such as carrying suppliesdown hospital corridors or even serving as mobileassistants to astronauts in the weightless environment <strong>of</strong>the International Space Station). These robots would benefitgreatly by having robust vision systems so that they can, forexample, recognize individual human faces or detect potentiallydangerous situations.Of course computer vision systems find many applicationsbesides robotics. These include automatic quality controlor inventory management systems, advanced medicalimaging <strong>and</strong> computer-assisted surgery, as well as security,surveillance, <strong>and</strong> criminal investigation/forensics.Further ReadingDavies, E. R. Machine Vision: Theory, Algorithms, Practicalities. 3rded. San Francisco: Morgan Kaufmann, 2004.Henderson, Harry. Modern Robotics: Building Versatile Machines.New York: Chelsea House Publishers, 2006.Hornberg, Alex<strong>and</strong>er, ed. H<strong>and</strong>book <strong>of</strong> Machine Vision. Weinheim,Germany: Wiley-VCH, 2006.Machine Vision Online. Automated Imaging Association. Availableonline. URL: http://www.machinevisiononline.org/.Accessed June 24, 2007.Shapiro, Linda G., <strong>and</strong> George Stockman. <strong>Computer</strong> Vision. UpperSaddle River, N.J.: Prentice Hall, 2001.concurrent programmingTraditional computer programs do only one thing at a time.Execution begins at a specified point <strong>and</strong> proceeds accordingto decision statements or loops that control the processing.This means that a program generally cannot begin onestep until a previous step ends.


concurrent programming 113Concurrent programming is the organization <strong>of</strong> programsso that two or more tasks can be executed at thesame time. Each task is called a thread. Each thread is itselfa traditional sequentially ordered program. One advantage<strong>of</strong> concurrent programming is that the processor can beused more efficiently. For example, instead <strong>of</strong> waiting forthe user to enter some data, then performing calculations,then waiting for more data, a concurrent program can havea data-gathering thread <strong>and</strong> a data-processing thread. Thedata-processing thread can work on previously gathereddata while the data-gathering thread waits for the user toenter more data. The same principle is used in multitaskingoperating systems such as UNIX or Micros<strong>of</strong>t Windows.If the system has only a single processor, the programsare allocated “slices” <strong>of</strong> processor time according to somescheme <strong>of</strong> priorities. The result is that while the processorcan be executing only one task (program) at a time, forpractical purposes it appears that all the programs are runningsimultaneously (see multitasking).Multiprocessing involves the use <strong>of</strong> more than one processoror processor “core.” In such a system each task (or eveneach thread within a task) might be assigned its own processor.Multiprocessing is particularly useful for programs thatinvolve intensive calculations, such as image processing orpattern recognition systems (see multiprocessing).Programming IssuesRegular programs written for operating systems such asMicros<strong>of</strong>t Windows generally require no special codeto deal with the multitasking environment, because theoperating system itself will h<strong>and</strong>le the scheduling. (Thisis true with preemptive multitasking, which has generallysupplanted an earlier scheme where programs were responsiblefor yielding control so the operating system could giveanother program a turn.)Managing threads within a program, however, requiresthe use <strong>of</strong> programming languages that have special statements.Depending on the language, a thread might bestarted by a fork statement, or it might be coded in a waysimilar to a traditional subroutine or procedure. (The differenceis that the main program continues to run while theprocedure runs, rather than waiting for the procedure toreturn with the results <strong>of</strong> its processing.)The coordination <strong>of</strong> threads is a key issue in concurrentprogramming. Most problems arise when two or morethreads must use the same resource, such as a processorregister (at the machine language level) or the contents<strong>of</strong> the same variable. Let’s say two threads, A <strong>and</strong> B, havestatements such as: Counter = Counter + 1. Thread A getsthe value <strong>of</strong> Counter (let’s say it’s 10) <strong>and</strong> adds one to it.Meanwhile, thread B has also fetched the value 10 fromCounter. Thread A now stores 11 back in counter. ThreadB, now adds 1 <strong>and</strong> stores 11 back in Counter. The result isthat Counter, which should be 12 after both threads haveprocessed it, contains only 11. A situation where the resultdepends on which thread gets to execute first is called arace condition.One way to prevent race conditions is to specify thatcode that deals with shared resources have the ability to“lock” the resource until it is finished. If thread A can lockthe value <strong>of</strong> Counter, thread B cannot begin to work with ituntil thread A is finished <strong>and</strong> releases it. In hardware terms,this can be done on a single-processor system by disablinginterrupts, which prevents any other thread from gainingaccess to the processor. In multiprocessor systems, an interlockmechanism allows one thread to lock a memory locationso that it can’t be accessed by any other thread. Thiscoordination can be achieved in s<strong>of</strong>tware through the use<strong>of</strong> a semaphore, a variable that can be used by two threadsto signal when it is safe for the other to resume processing.In this scheme, <strong>of</strong> course, it is important that a threadnot “forget” to release the semaphore, or execution <strong>of</strong> theblocked thread will halt indefinitely.A more sophisticated method involves the use <strong>of</strong> messagepassing, where processes or threads can send a variety<strong>of</strong> messages to one another. A message can be used to passdata (when the two threads don’t have access to a sharedmemory location). It can also be used to relinquish accessto a resource that can only be used by one process at a time.Message-passing can be used to coordinate programs orthreads running on a distributed system where differentthreads may not only be using different processors, but runningon separate machines (a cluster computing facility).Programming language support for concurrent programmingoriginally came through devising new dialects<strong>of</strong> existing languages (such as Concurrent Pascal), buildingfacilities into new languages (such as Modula-2), or creatingprogram libraries for languages such as C <strong>and</strong> C++.However, in recent years concurrent programming languages<strong>and</strong> techniques have been unable to keep up withthe growth in multiprocessor computers <strong>and</strong> distributedcomputing (such as “clusters” <strong>of</strong> coordinated machines).With most new desktop PCs having two or more processingcores, there is a pressing need to develop new programsthat can carry out tasks (such as image processing) usingmultiple streams <strong>of</strong> execution. Meanwhile, in very highperformancemachines (see supercomputer), the DefenseAdvanced Research Projects Agency (DARPA) has been tryingto work with manufacturers to develop languages towork better with computers that may have hundreds <strong>of</strong>processors as well as distributed systems or clusters. Suchlanguages include Sun’s Fortress, intended as a modernreplacement for Fortran for scientific applications.The new generation <strong>of</strong> concurrent languages tries toautomate much <strong>of</strong> the allocation <strong>of</strong> processing, allowingprogrammers to focus on their algorithms rather thanimplementation issues. For example, program structuressuch as loops can be automatically “parallelized,” such asby assigning them to separate cores.Further ReadingAnthes, Gary. “Languages for Supercomputing Get ‘Suped’ Up.”<strong>Computer</strong>world.com, March 12, 2007. Available online. URL:http://www.computerworld.com/action/article.do?comm<strong>and</strong>=viewArticleBasic&articleId=283477&intsrc=hm_list.Accessed June 24, 2007.Ben-Ari, M. Principles <strong>of</strong> Concurrent & Distributed Programming.2nd ed. Reading, Mass.: Addison-Wesley, 2006.


114 conferencing systemsFeldman, Michael. “Our Manycore Future.” HPCWire. Availableonline. URL: http://www.hpcwire.com/hpc/1295541.html.Accessed June 24, 2007.Lea, Douglas. Concurrent Programming in Java: Design Principles<strong>and</strong> Patterns. 3rd ed. Reading, Mass.: Addison-Wesley Pr<strong>of</strong>essional,2006.Merritt, Rick. “Where Are the Programmers? Enrollment WanesJust as <strong>Computer</strong> Scientists Grapple with Problem <strong>of</strong> Parallelism.”IEEE Times, March 12, 2007. Available online. URL:http://www.eetimes.com/showArticle.jhtml?articleID=197801653. Accessed June 24, 2007.Steele, Guy, <strong>and</strong> Jan-Willem Maessen. “Fortress ProgrammingLanguage Tutorial Slides.” Sun Microsystems. Availableonline. URL: http://research.sun.com/projects/plrg/PLDITutorialSlides9Jun2006.pdf.Accessed June 11, 2007.conferencing systemsConferencing systems are online communications facilitiesthat allow users to log in <strong>and</strong> participate in discussions ona variety <strong>of</strong> topics. Although this is a rather amorphous category<strong>of</strong> s<strong>of</strong>tware, some distinguishing characteristics canbe identified. Conferencing is distinguished from chat orinstant messaging systems because the messages are asynchronous(that is, one person at a time leaves a message,<strong>and</strong> there is no real-time interaction between participants).Unlike Netnews newsgroups, conferencing systems such asSan Francisco Bay Area–based The Well tend to have userswho are committed to long-term discussions in conferences(topical discussion areas) that tend to persist for weeks,months, or even years. Conferencing systems are <strong>of</strong>tengrouped under the umbrella term <strong>of</strong> <strong>Computer</strong>-MediatedCommunications (CMC).HistoryIn the 1960s, researcher Murray Tur<strong>of</strong>f at the Institute forDefense Analysis decided to adopt for computer use a discussionmethod called Delphi, developed at RAND corporation.This method was a collective process by which newideas were discussed <strong>and</strong> voted on by a panel <strong>of</strong> experts.After he implemented Delphi as a system <strong>of</strong> messages passedvia computer, he began to generalize his work into a moregeneral method <strong>of</strong> facilitating online discussions. His ElectronicInformation Exchange System (EIES, pronounced“eyes”) was designed to facilitate discussion within researchcommunities <strong>of</strong> 10–50 members.The emergence <strong>of</strong> topical online discussions can be seenin the development <strong>of</strong> the Usenet (or Netnews) newsgroupsin the early 1980s, the development <strong>of</strong> communicationsor memo systems within large <strong>of</strong>fices (particularly withinthe government), <strong>and</strong> the emergence <strong>of</strong> bulletin boards <strong>and</strong>online services for personal computer users. Most earlynews <strong>and</strong> bulletin board s<strong>of</strong>tware had only rudimentaryfacilities for linking topics <strong>and</strong> responses. A more sophisticatedapproach to conferencing emerged within the PLATOeducational computing network in the 1970s, in the form <strong>of</strong>Plato Notes. This system began as a simple way for users toleave messages or help requests in a text file, <strong>and</strong> evolvedinto a structure <strong>of</strong> “base notes” <strong>and</strong> linked response notes, atopic-<strong>and</strong>-response structure that became the general modelfor conferencing systems.In the mid-1980s, the Well (Whole Earth ’Lectronic’Link) began to provide online conferencing to anyone whosubscribed. It used a text-based system called Picospan.With its improbable eclectic mix well salted with GratefulDead fans <strong>and</strong> computer “nerds,” the Well became asort <strong>of</strong> petri dish for cultivating community (see virtualcommunity). Long-term friendships (<strong>and</strong> feuds) <strong>and</strong> occasionalromances have been nurtured by such conferencingsystems.Typical StructureA typical text-based conferencing system is divided intoconferences, which are generally devoted to relatively broadsubjects, such as UNIX, pop music, or politics. Each conferenceis further divided into topics, which usually reflectparticular aspects <strong>of</strong> the general subject (such as a particularUNIX version, a pop music group, or a political issue).Most conferencing systems have a person or persons whoact as a moderator (sometimes called a “host”) who triesto encourage new users, keep discussions more or less ontopic, <strong>and</strong> discourage personal attacks or vehement statements(“flames”).A user signs onto the system <strong>and</strong> “joins” one or moreconferences. Each time the user visits a conference that heor she has joined, any topics (or responses in existing topics)that were posted since the last visit are presented. Theuser can read the postings <strong>and</strong>, if desired, enter a reply thatbecomes part <strong>of</strong> the thread <strong>of</strong> messages. (Users are also generallyallowed to start new topics <strong>of</strong> their own.)Web-based ConferencingText-based systems such as Picospan are driven by the userentering comm<strong>and</strong> letters or words. While this paradigmis familiar to people who have experience with operatingsystems such as UNIX or MS-DOS, it can be more difficultfor users who are used to the point-<strong>and</strong>-click approach<strong>of</strong> Windows programs <strong>and</strong> the World Wide Web. Manynew conferencing systems use Web pages to present conferencetopics <strong>and</strong> messages, with buttons replacing text comm<strong>and</strong>s.(The Well continues to <strong>of</strong>fer both the text-basedPicospan <strong>and</strong> the Web-based Engaged.)Although the Well <strong>and</strong> other conferencing systems suchas The River continue in operation, conferencing systemshave been largely supplanted by newer forms <strong>of</strong> onlineexpression (see blogs <strong>and</strong> blogging, social networking,<strong>and</strong> wikis <strong>and</strong> Wikipedia). (Note that “conferencingsystem” can also refer to video-based s<strong>of</strong>tware such asMicros<strong>of</strong>t Live Meeting for facilitating meetings betweengeographically dispersed participants.)Further ReadingHafner, Katie. The Well: A Story <strong>of</strong> Love, Death & Real Life in theSeminal Online Community. New York: Carroll & Graf, 2001.Rheingold, Howard. The Virtual Community: Homesteading on theElectronic Frontier. Rev. ed. Cambridge, Mass.: MIT Press,2000.Thurlow, Crispin, Laura Lengel, <strong>and</strong> Alice Tomic. <strong>Computer</strong> MediatedCommunication. Thous<strong>and</strong> Oaks, Calif.: SAGE Publications,2004.


content management 115Web Conferencing Review. Available online. URL: http://think<strong>of</strong>it.com/webconf/index.htm. Accessed June 25, 2007.The Well. Available online. URL: http://www.well.com. AccessedJune 25, 2007.constants <strong>and</strong> literalsConstants <strong>and</strong> literals are ways <strong>of</strong> describing data that doesnot change while a program runs. For example, a statementin C such asconst float pi = 3.14159;expresses a value that will be used in calculations, butnot changed. Constants can be <strong>of</strong> any data type, includingcharacter strings as well as numbers. String constants areusually enclosed in single or double quotes:char * Greeting = “Hello, World”;Actual strings <strong>and</strong> numerals found in programs are sometimescalled literals, meaning that they are to be acceptedexactly as given (literally) rather than st<strong>and</strong>ing for someother value. Thus 3.14159 <strong>and</strong> Hello, World as givenabove can be considered to be numeric <strong>and</strong> string literalsrespectively.Because many languages consider a value <strong>of</strong> 1 as representinga “true” result for a branch or loop test, <strong>and</strong> 0 asrepresenting “false,” programs in languages such as C <strong>of</strong>teninclude declarations such as:const True = 1;const False = 0;This lets you later have a loop construction such aswhile (True) {’ body <strong>of</strong> program} ;which is a more readable way to code an endless loop than:while (1) {’ body <strong>of</strong> program} ;However languages such as Pascal <strong>and</strong> C++ have a specialboolean data type (bool in C++) that allows for constants orvariables that will have one <strong>of</strong> two values, true or false.Some languages provide a way to set up an orderedgroup <strong>of</strong> constant values (see enumerations <strong>and</strong> sets).Constants vs. VariablesThe difference between a constant <strong>and</strong> a variable is that avariable represents a quantity that can change (<strong>and</strong> is <strong>of</strong>tenexpected to). For example, in the statementint Counter = 0;Counter is set to a starting value <strong>of</strong> zero, but will presumablybe increased as whatever is to be counted is counted.Most compilers will issue an error message if they detectan attempt to change the value <strong>of</strong> a constant. Thus thesequence <strong>of</strong> statements:const float Tax_Rate = 8.25;Tax_Rate = Tax_Rate + Surtax;would be illegal, since Tax_Rate was declared as a constantrather than as a variable.Many compilers, as part <strong>of</strong> code optimization, c<strong>and</strong>iscover values or expressions that will remain constantthroughout the life <strong>of</strong> the program, even if they includevariables. Such constants can be “propagated” or substitutedfor variables. This can speed up execution becauseunlike a variable, a constant does not need to be retrievedfrom memory (see compiler).Further ReadingSebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Reading, Mass.: Addison-Wesley, 2007.content managementContent management is the process <strong>of</strong> creating, maintaining,<strong>and</strong> archiving data such as text <strong>and</strong> images to be usedfor a project such as a book, magazine, or Web site. Normallysuch projects involve a number <strong>of</strong> different people:content creators (such as writers or photographers), editors,reviewers, designers, <strong>and</strong> so on. A large project will<strong>of</strong>ten have many documents in various stages—early drafts,material approved for publication, existing publications inneed <strong>of</strong> revision, older material ready to be archived, <strong>and</strong>so on.The purpose <strong>of</strong> content management is to make sureevery piece <strong>of</strong> a project has its status tracked, includingwho has worked on it <strong>and</strong> what has been done (or needs tobe done). Because more than one person may want to workon a given piece at the same time, some form <strong>of</strong> “versioncontrol” (as with program code) must be used to either“lock” the material while one person is using it, or to mergetheir separate work into a new version <strong>of</strong> the document.Naturally there must also be a way for members <strong>of</strong> the teamto communicate with each other in connection with specificparts <strong>of</strong> the project, <strong>and</strong> all members must be kept informed<strong>of</strong> key developments.Work FlowA key measurement <strong>of</strong> the effectiveness <strong>of</strong> a content managementsystem (CMS) is how well it facilitates work flow,or the movement <strong>of</strong> documents through the production process.Work flow begins with the importing <strong>of</strong> material suchas text documents or multimedia resources into the system.At this time the key users <strong>and</strong> their roles (such as editor orreviewer) are identified, <strong>and</strong> the system can then route thematerial to the next person automatically after each task iscompleted. Often messages are generated <strong>and</strong> sent to managersto keep them informed <strong>of</strong> progress or to alert them toproblems.Today Web sites are the most common large information-relatedprojects, <strong>and</strong> managing them can be quitechallenging. Usually multimedia material is included wellbeyond that found in printed projects, such as audio, video,animations, <strong>and</strong> information feeds (see rss). Web sites,


116 cookiesunlike most traditional publications, are under constantrevision <strong>and</strong> review.Once created, material will <strong>of</strong>ten be reused or repurposedfor different projects. Thus an important part <strong>of</strong> most contentmanagement systems is the repository, which makes thematerial easily searchable <strong>and</strong> retrievable for later use. Materialthat is less likely to be used but still must be retained(such as for legal reasons) may be stored in a separate archive(see backup <strong>and</strong> archive systems). Note: The term digitalasset management is also sometimes used for such systems.S<strong>of</strong>twareContent management Systems are usually built upon aframework or programming interface (see applicationprogram interface), <strong>of</strong>ten using languages such as Java,Perl, Python, or PHP. There are many products to choosefrom, including free <strong>and</strong> open-source alternatives.An interesting alternative for some projects is to usea wiki as a content management system (see wikis <strong>and</strong>Wikipedia). Especially for textual content, wikis <strong>of</strong>fer theadvantage <strong>of</strong> already having revision tracking built in, <strong>and</strong>full-scale wikis such as MediaWiki have many additionalfeatures or plug-ins to aid in content management.Further ReadingBoiko, Bob. Content Management Bible. 2nd ed. Indianapolis:Wiley, 2005.CMS Matrix. Available online. URL: http://www.cmsmatrix.org/.Accessed September 4, 2007.CMS Review. Available online. URL: http://www.cmsreview.com/.Accessed September 4, 2007.Hackos, JoAnn T. Content Management for Dynamic Web Delivery.New York: Wiley, 2001.cookiesCookies are simply tiny text files that a Web server sendsto the browser <strong>and</strong> retrieves each time the user accesses theWeb site. The purpose is to maintain a sort <strong>of</strong> pr<strong>of</strong>ile <strong>of</strong> theuser containing such things as preferences as to how theuser wants to view or use the site, shopping cart selectionsfrom previous sessions, <strong>and</strong> so on. In short, cookies enable aWeb site to provide a more customized or personalized form<strong>of</strong> service <strong>and</strong> minimize the amount <strong>of</strong> repetitive data entryon the part <strong>of</strong> the user. (This type <strong>of</strong> cookie is called persistent,since it survives across sessions. There can also be temporarycookies that apply only to the current session.)However, cookies also have benefits for the Web siteowner. They can be used to track which pages or items theuser has looked at in the past. This information can then beused (see data mining) to create generic user pr<strong>of</strong>iles thatcan help with marketing or targeting advertising. In thecase <strong>of</strong> some companies (notably Amazon.com) much moreelaborate pr<strong>of</strong>iles associated with the cookie’s identity canbe used to create personalized recommendations, in effectcontinually directing targeted advertising at the user.Security <strong>and</strong> Privacy ConcernsThere are many popular misconceptions about cookies.Cookies contain only data, not executable code. This meansthey cannot function as worms or viruses or otherwiseinteract with the user’s system. However, while cookies donot in themselves represent a security threat, they do haveprivacy implications. Although most pr<strong>of</strong>iles created usingcookies are anonymous (containing no personal identifyingdata), an unscrupulous site could attach such data (such asaddresses or credit card numbers entered by the user) to apr<strong>of</strong>ile <strong>and</strong> sell it for purposes ranging from spamming toidentity theft.Another risk comes from “third party” cookies such asare <strong>of</strong>ten included in advertisements (see online advertising).Potentially, these could be used to create a much morecomprehensive pr<strong>of</strong>ile <strong>of</strong> a user based on his or her actionson multiple Web sites.Users do have some control over how cookies are stored.Most browsers allow the user to reject all cookies, accept orreject cookies from certain sites, or store cookies only temporarily.However, sites may in turn refuse services to userswho do not accept cookies, <strong>and</strong> at any rate the user wouldsee only a generic rather than a personalized view.There has been a certain amount <strong>of</strong> government regulation<strong>of</strong> Web cookies. The U.S. government has strict rulesfor the use <strong>of</strong> cookies on federal Web sites. The EuropeanUnion also has recommended (but not fully implemented)regulations that require that users be told how the storeddata will be used <strong>and</strong> be given the opportunity to opt out.Further ReadingKuner, Christopher. European Data Privacy Laws <strong>and</strong> Online Business.New York: Oxford University Press, 2003.Kymin, Jennifer. “What are HTTP Cookies?” Available online. URL:http://webdesign.about.com/cs/cookies/a/aa082498a.htm.Accessed September 4, 2007.Levine, John R., Ray Everett-Church, <strong>and</strong> Gregg Stebben. InternetPrivacy for Dummies. New York: Wiley, 2002.cooperative processingHistorically there have been two basic ways to bring greatercomputer power to bear on a task. One is to build morepowerful single computers (see supercomputer). The otheris to link one or more computers or processors together <strong>and</strong>tightly coordinate them to process the data (see grid computing).Both <strong>of</strong> these approaches require great expertise<strong>and</strong> considerable expense.However, there is another quite interesting ad hocapproach to cooperative processing that first appeared withthe SETI@Home project launched in 1999. The basic idea isto take advantage <strong>of</strong> the fact that millions <strong>of</strong> computer usersare already connected via the Internet. The typical PC hasmany processing cycles to spare—idle time when the user isdoing nothing <strong>and</strong> the operating system is doing very little.A program like SETI@Home is designed to be downloadedto volunteer users. The program can run only whenno other applications are being used (one way to ensurethis is to make the program a screen saver), or it can runcontinuously but only use cycles not being requested byanother program.The data to be analyzed (signals from space in this case)is broken up into chunks or “work units” that are parceled


copy protection 117out to the volunteers. When a given unit has been analyzedby the program on the user’s machine, the results are sentback to the central server <strong>and</strong> a new work unit is sent.Although no evidence <strong>of</strong> extraterrestrial intelligencehad been found as <strong>of</strong> mid-2008, SETI@Home’s more than 5million participants have contributed more than 2 millionyears <strong>of</strong> CPU time, <strong>and</strong> can process at the collective rate <strong>of</strong>256 TeraFLOPS (trillion floating point operations per second),comparable with the fastest single supercomputers.There are currently a number <strong>of</strong> other cooperative distributedcomputing projects underway. Many <strong>of</strong> them arepart <strong>of</strong> the Berkeley Open Infrastructure for Network Computing(BOINC), which includes SETI@Home, Proteins@home (protein folding), <strong>and</strong> the World Community Grid(humanitarian projects).Ad hoc cooperative processing is not suitable for alltypes <strong>of</strong> projects. There must be a way to break the datainto batches that can be separately processed. The projectis also dependent on the number <strong>of</strong> volunteers <strong>and</strong> theirdegree <strong>of</strong> commitment.Cooperative processing can be seen as part <strong>of</strong> a spectrum<strong>of</strong> emerging ways in which the line between producers<strong>and</strong> consumers <strong>of</strong> data is being blurred. Other examplesinclude media-sharing services such as Gnutella (see filesharing<strong>and</strong> p2p networks). Cooperative programs canalso be used to gather information about s<strong>of</strong>tware use <strong>and</strong>bugs from thous<strong>and</strong>s <strong>of</strong> users to allow for faster debugging<strong>and</strong> optimization.People can do more than passively share their computer’sprocessors—they can add their own brains tothe effort. Some <strong>of</strong> the most effective spam filters (seespam) use the “collective intelligence” <strong>of</strong> users by havingthem identify <strong>and</strong> mark spam messages, which can thenbe used by the s<strong>of</strong>tware as a template for automaticallyrejecting similar messages. Another interesting applicationby the Carnegie Mellon Human Computation programuses a computer game where a pair <strong>of</strong> r<strong>and</strong>omlyselected volunteers assigns keywords to an image. Forthe players, the object <strong>of</strong> the game is to come up withmatching keywords, thereby scoring points. However, thereal work that is being accomplished is that thous<strong>and</strong>s <strong>of</strong>previously uncategorized images are receiving appropriatekeywords to enable them to be retrieved. In effect,the system is taking advantage <strong>of</strong> an image-recognitiondevice that is far more capable than any computer algorithm—thehuman brain! (One might call this synergistichuman–computer processing.)Further ReadingBerkeley Open Infrastructure for Network Computing. Availableonline. URL: http://boinc.berkeley.edu/. Accessed September4, 2007.DeHon, Andre, et al. “Global Cooperative Computing.” Availableonline. URL: http://www.ai.mit.edu/projects/iiip/colab/gcc-abstract.html. Accessed September 4, 2007.Gomes, Lee. “<strong>Computer</strong> Scientists Pull a Tom Sawyer.” WallStreet Journal (June 27, 2007): p. B1. Available online. URL:http://online.wsj.com/article/SB118288538741648871.html.Accessed September 4, 2007.SETI@Home. Available online. URL: http://setiathome.berkeley.edu/. Accessed September 4, 2007.Shankl<strong>and</strong>, Stephen. “Cooperative Computing Finds Top PrimeNumber.” ZDNet. Available online. URL: http://news.zdnet.com/2100-9584_22-5112827.html. Accessed September 4,2007.Taylor, Ian J. From P2P to Web Services <strong>and</strong> Grids: Peers in a Client/Server World. New York: Springer, 2004.copy protectionCompanies that produce s<strong>of</strong>tware have had to cope withs<strong>of</strong>tware that is expensive to develop, while the disks onwhich it is distributed are inexpensive to reproduce. Themaking <strong>and</strong> swapping <strong>of</strong> “pirated” copies <strong>of</strong> s<strong>of</strong>tware isjust about as old as the personal computer itself. S<strong>of</strong>twarepiracy has taken a number <strong>of</strong> forms, ranging from teenagedhackers making extra copies <strong>of</strong> games to factories (<strong>of</strong>ten inAsia) that stamp out thous<strong>and</strong>s <strong>of</strong> bogus copies <strong>of</strong> Windowsoperating systems <strong>and</strong> programs that would cost hundreds<strong>of</strong> dollars apiece if legitimate (see s<strong>of</strong>tware piracy <strong>and</strong>counterfeiting).To prevent such copying, s<strong>of</strong>tware producers in the1980s <strong>of</strong>ten recorded the programs on floppy disks in a specialformat that made them hard to copy successfully. Oneway to do this is to record key information on disk tracksthat are not normally read by the operating system <strong>and</strong> thusnot reproduced by an ordinary copy comm<strong>and</strong>. When sucha program runs, it can use a special device control routineto read the “hidden” track. If it does not find the identifyinginformation there, it knows the disk is not a legitimate copy.Another way to do copy protection is by having theprogram look for a small hardware device called a “dongle”connected to the computer, usually to the parallel printerport. Since the dongle is distributed only with the legitimateprogram, it can serve as an effective form <strong>of</strong> copyprotection. (Encryption can also be used to render copiesunusable without the key.)Decline <strong>of</strong> Copy ProtectionCopy protection has a number <strong>of</strong> drawbacks. Because diskbasedcopy protection writes on nonst<strong>and</strong>ard tracks, evenlegitimate programs may not work with certain models <strong>of</strong>disk or CD drive. And because the legitimate user is unableto make a backup copy <strong>of</strong> the disk, if it is damaged, the userwill be unable to use the program. Dongles, on the otherh<strong>and</strong>, can interfere with the operation <strong>of</strong> other devices connectedto the port, <strong>and</strong> a user might be required to use multipledongles for multiple programs.During the 1990s, copy protection was generally phasedout, except for some games. A variety <strong>of</strong> other strategies areused against s<strong>of</strong>tware piracy. The S<strong>of</strong>tware Publishers Association(SPA) maintains a program in which disgruntledusers can report unauthorized copying <strong>of</strong> s<strong>of</strong>tware at theirworkplace. Companies that allow unauthorized copying <strong>of</strong>s<strong>of</strong>tware can be sued for violating the terms <strong>of</strong> their s<strong>of</strong>twarelicense. International trade negotiations can includeprovisions for cracking down on the massive “cloning” <strong>of</strong>major s<strong>of</strong>tware packages abroad.With modern s<strong>of</strong>tware, “s<strong>of</strong>t” copy protection generallystill exists in the form <strong>of</strong> requiring the typing in <strong>of</strong> aserial number from the CD, <strong>of</strong>ten combined with online


118 CORBA“activation” or “validation,” as with Micros<strong>of</strong>t Windows<strong>and</strong> Office products. The online validation process canforestall the use <strong>of</strong> valid but duplicated serial numbers(see digital rights management <strong>and</strong> s<strong>of</strong>tware piracy<strong>and</strong> counterfeiting).Hackers <strong>and</strong> cyber-libertarians have <strong>of</strong>ten argued thatthe problem <strong>of</strong> s<strong>of</strong>tware piracy has been overrated, <strong>and</strong>that allowing the copying <strong>of</strong> s<strong>of</strong>tware would enable morepeople who would not otherwise buy programs to try themout. Once someone likes the program, they might buy itnot only for legitimacy <strong>of</strong> ownership, but in order to getaccess to the technical support <strong>and</strong> regular upgrades thatare <strong>of</strong>ten required for complex business s<strong>of</strong>tware packages.For less expensive s<strong>of</strong>tware, an alternative channel (seeshareware) allows for a “try before you buy” distribution<strong>of</strong> s<strong>of</strong>tware.Further ReadingAldrich, John. “Implementing Simple Copy Protection: TechnicalOverview.” Available online. URL: http://www.codeproject.com/win32/simplecopyprotection.asp?df=100&foru mid=4250&exp=0&select=878288. Accessed September 6, 2007.Gilmore, John. “What’s Wrong with Copy Protection.” February16, 2001. Available online. URL: http://www.toad.com/gnu/whatswrong.html. Accessed September 6, 2007.Wikipedia. “Copy Protection.” Available online. URL: http://en.wikipedia.org/wiki/Copy_protection. Accessed September6, 2007.CORBA (Common Object Request BrokerArchitecture)CORBA (Common Object Request Broker Architecture) is ast<strong>and</strong>ardized way to specify how different applications (onthe same or different machines) can call upon the services<strong>of</strong> database objects (see database <strong>and</strong> object-orientedprogramming). The CORBA st<strong>and</strong>ard is defined by theObject Management Group (OMG), a consortium <strong>of</strong> morethan 700 companies or organizations, including the majorplayers in distributed database technology.Structure <strong>and</strong> UsageCreating a CORBA application involves three basic steps.First, specifications are provided using an interface definitionlanguage (IDL) that specifies in generic terms whatservices an object will provide. An IDL compiler then createsa “skeleton” interface that the developer can fill in withactual code for a class for that object in a programming language(such as Java).To use CORBA, a client application accesses an ObjectRequest Broker (ORB), which is s<strong>of</strong>tware that locates thereferenced object on the network (thus the program doesnot need to know or keep track <strong>of</strong> specific locations). TheORB sends the request to the object, which processes it <strong>and</strong>returns the results, which are then sent back to the clientapplication.The intent <strong>of</strong> CORBA is to make objects implementedby different vendors fully interoperable (able to call oneanother using the same syntax). While CORBA 1.0 did notcompletely meet this goal, CORBA 2.0 explicitly providedfor a protocol called IIOP (Internet Inter-ORB Protocol)that, if adhered to, does make brokers (ORBs) <strong>and</strong> objectsinteroperable across vendors <strong>and</strong> programming languages.CORBA 3 adds a new CORBA Component Model (CCM)<strong>and</strong> specifications that, among other things, provide forbetter negotiation with firewalls, a problem that had madeCORBA hard to use in Web development.Corba ServicesIn addition to the interfaces defined for particular objects,CORBA provides a number <strong>of</strong> services that apply to allobjects. These services include creating, moving/copying,or removing objects; allowing more readable names forobjects; concurrency <strong>and</strong> transaction control; setting propertiesfor objects; <strong>and</strong> sending queries to objects.A competing framework for distributed object computingis COM/DCOM (Common Object Model/DistributedCommon Object Model, now supplanted by .NET (seeMicros<strong>of</strong>t.net). A simpler (though possibly less secure)way to connect programs running on different machines isto use the Simple Object Access Protocol (see soap).Further ReadingBolton, Fintan. Pure CORBA. Indianapolis: Sams, 2001.“Introduction to CORBA” [Java implementation]. Availableonline. URL: http://java.sun.com/developer/onlineTraining/corba/corba.html. Accessed September 4, 2007.McHale, Ciaran. “CORBA Explained Simply, 2007.” Availableonline. URL: http://www.ciaranmchale.com/corba-explainedsimply/.Accessed September 4, 2007.counterterrorism <strong>and</strong> computersCounterterrorism is the effort to detect, identify, <strong>and</strong> neutralizeterrorist groups <strong>and</strong> prevent attacks. Not surprisingly,information technology plays a part in every phase<strong>of</strong> this effort—<strong>and</strong> sometimes even becomes part <strong>of</strong> thebattlefield.Intelligence <strong>and</strong> SurveillanceThe Web <strong>and</strong> other Internet services are an important part<strong>of</strong> the battle against terrorism, not least because terroriststhemselves are beginning to use online tools effectively(see cyberterrorism). The Internet inherently allows forconsiderable anonymity (see anonymity <strong>and</strong> the Internet).However, any online activity leaves traces, howevervirtual, <strong>and</strong> surveillance, intelligence, <strong>and</strong> forensic techniquesare being adapted to this new medium (see computerforensics).By putting so much material online, terrorists are exposingthemselves to the increasingly sophisticated data mining<strong>and</strong> “semantic Web” tools that are being developed.These tools can, for example, identify material likely to be<strong>of</strong> interest (<strong>and</strong> summarize it) <strong>and</strong> even analyze the relationshipbetween individuals or groups based on their writingor verbal communications. Of course such results muststill be reviewed <strong>and</strong> acted upon by trained human analysts.Further, surveillance tools that are deployed too widely orindiscriminately are liable to raise privacy concerns.


CPU 119In recent years the U.S. Department <strong>of</strong> Homel<strong>and</strong> Securityhas apparently been developing more sophisticateddata-mining <strong>and</strong> pattern-recognition programs (see biometrics<strong>and</strong> data mining). One is called ADVISE, or Analysis,Dissemination, Visualization, Insight, <strong>and</strong> SemanticEnhancement. This at least suggests an attempt not to simplyfind matches between e-mail, online postings, or othertextual data, but to construct pr<strong>of</strong>iles <strong>of</strong> a person’s activity<strong>and</strong>/or intentions, which could presumably then be comparedwith terrorist or criminal pr<strong>of</strong>iles.Surveillance or wiretapping <strong>of</strong> specific individuals alsoraises legal issues, particularly with recent revelations <strong>of</strong>so-called warrantless wiretaps. Officials have claimed thatthere are relatively few such cases (perhaps fewer than 100per year), but the Bush administration’s claim that it didnot need to follow Foreign Intelligence Surveillance Act(FISA) procedures raised considerable controversy, <strong>and</strong> acourt decision forced the administration to seek affirmation<strong>of</strong> its powers by Congress.Intelligence <strong>of</strong>ficials argue that existing FISA proceduresare too cumbersome to deal with the Internet. Oldstylewiretapping involved specific telephone instruments<strong>and</strong> lines, but on the Internet the routing <strong>of</strong> information isconstantly changing, <strong>and</strong> a person may use several differentdevices <strong>and</strong> types <strong>of</strong> communication. Thus it is argued thatthe warrant must be broad enough to apply to the person,not a particular means <strong>of</strong> communication. It is also arguedthat the global nature <strong>of</strong> the network also means that distinctionsabout whether persons are inside or outside <strong>of</strong> theUnited States may no longer be as relevant.Privacy <strong>and</strong> civil liberties advocates tend to agree thatsome updating <strong>of</strong> warrant procedures to deal with moderntechnology is necessary, but they point to secretiveness<strong>and</strong> lack <strong>of</strong> effective legal oversight resulting in a lack<strong>of</strong> accountability for government surveillance programs.This concern has also been fueled by a succession <strong>of</strong> revelationsthat surveillance programs are more extensivethan previously thought. (This includes the involvement<strong>of</strong> telecommunications <strong>and</strong> Internet service providers<strong>and</strong> the use <strong>of</strong> FBI “national security letters”—essentiallysecret subpoenas.)Coordinating EffortsBesides the gathering <strong>and</strong> analysis <strong>of</strong> intelligence, computerapplications are used in the intelligence <strong>and</strong> counterterrorismcommunity for many <strong>of</strong> the same functions foundin any large enterprise. These applications include e-mail,personal information management, collaborative creationor review <strong>of</strong> documents, scheduling <strong>and</strong> project management,<strong>and</strong> so on.Intelligence agencies are even adopting some popularemerging Web technologies. First came Intellipedia, a classifiedversion <strong>of</strong> Wikipedia serving as a knowledge basefor intelligence pr<strong>of</strong>essionals (see wikis <strong>and</strong> Wikipedia).In late 2007 the director <strong>of</strong> national intelligence (DNI)launched A-Space, which includes Intellipedia, while addingother extensive databases, online <strong>of</strong>fice facilities (similarto Google Apps), <strong>and</strong> even blogs <strong>and</strong> a MySpace-likecomponent (see social networking).Further ReadingDerosa, Mary. Data Mining <strong>and</strong> Data Analysis for Counterterrorism.Washington, D.C.: Center for Strategic & International Studies,2004.Hoover, J. Nicholas. “U.S. Spy Agencies Go Web 2.0 in Effortto Better Share Information.” InformationWeek, August 23,2007. Available online. URL: http://www.informationweek.com/story/showArticle.jhtml?articleID=201801990. AccessedSeptember 10, 2007.Lichtblau, Eric. “F.B.I. Data Mining Reached beyond Initial Targets.”New York Times, September 9, 2007. Available online.URL: http://www.nytimes.com/2007/09/09/washington/09fbi.html. Accessed September 10, 2007.Miller, Greg. “Spy Chief Reveals Details <strong>of</strong> Operations.” Los AngelesTimes. Available online. URL: http://www.latimes.com/news/nationworld/nation/la-na-intel23aug23,0,6229712.story?coll=la-home-center. Accessed September 10, 2007.Mohammed, Arshad, <strong>and</strong> Sara Kehaulani Goo. “GovernmentIncreasingly Turning to Data Mining.” Washington Post,June 15, 2006, p. D03. Available online. URL: http://www.whisperingwires.info/. Accessed September 10, 2007.National Research Council. Information <strong>Technology</strong> for Counterterrorism:Immediate Actions <strong>and</strong> Future Possibilities. Washington,D.C.: National Academies Press, 2003.Taipale, K. A. “Whispering Wires <strong>and</strong> Warrantless Wiretaps: DataMining <strong>and</strong> Foreign Intelligence Surveillance.” Bulletin onLaw & Security, spring 2006. Available online. URL: http://www.whisperingwires.info/. Accessed September 10, 2007.CPUThe CPU, or central processing unit, is the heart <strong>of</strong> a computer,the place where data is brought in from input devices,processed, <strong>and</strong> sent to output devices. (This article describesthe CPU from the point <strong>of</strong> view <strong>of</strong> desktop micromputers,where it is a single large silicon chip <strong>and</strong> supporting chips;see mainframe for a discussion <strong>of</strong> that earlier architecture,microprocessor for desktop <strong>and</strong> portable CPUs, <strong>and</strong> chip<strong>and</strong> chipset for physical design <strong>of</strong> components.)The CPU consists <strong>of</strong> two major parts. The arithmeticlogicunit performs arithmetic or logical operations on pairs<strong>of</strong> numbers brought in from memory <strong>and</strong> stored in speciallocations called registers (see arithmetic logic unit). Forexample, the CPU can add a value from main memory toa value stored in a register <strong>and</strong> store the result back intomemory. In addition to addition, subtraction, multiplication,<strong>and</strong> division, the CPU can logically compare the individualbits in two values, performing such operations asAND, where the result is 1 only if both bits are ones, or OR,where the result is 1 if either bit is one. The power <strong>of</strong> a CPUis measured either in the number <strong>of</strong> clock cycles that driveit each second (see clock speed) or the number <strong>of</strong> st<strong>and</strong>ardinstructions it can execute in a second. For modern PCs,clock speeds range into the billions <strong>of</strong> cycles per second(gigahertz) <strong>and</strong> millions <strong>of</strong> instructions per second (mostinstructions take more than one cycle to be completed).The other key part <strong>of</strong> the CPU is the control unit, whichdetermines when (<strong>and</strong> which) instructions will be executed.Operations to be performed are specified by instruction valuesthat are the lowest level representation <strong>of</strong> program code,sometimes called machine code. An index register is usedto keep track <strong>of</strong> the current instruction. As instructions areprocessed, control signals can indicate special conditions,


120 CraigslistMano, M. Morris, <strong>and</strong> Charles Kime. Logic <strong>and</strong> <strong>Computer</strong> DesignFundamentals. 4th ed. Upper Saddle River, N.J.: Prentice Hall,2007.Stokes, Jon. Inside the Machine: An Illustrated Introduction to Microprocessors<strong>and</strong> <strong>Computer</strong> Architecture. San Francisco: NoStarch Press, 2006.The CPU uses the Instruction Pointer (IP) to keep track <strong>of</strong> theaddress <strong>of</strong> the next instruction in memory, which is stored in theInstruction Register (IR). The Address Register (AR) <strong>and</strong> DataRegister (DR) perform a similar function with program data. Datacan also be moved between main memory <strong>and</strong> the CPU’s registers,which are special fast-retrieval memory locations. Instructions aredecoded by the control unit <strong>and</strong> passed to the arithmetic Logic Unit(ALU) for execution.such as a result being negative. Based on the instructions<strong>and</strong> signals, the CPU can skip over some instructions, jumpingto another location in the program.The main memory or RAM (r<strong>and</strong>om access memory)contains both the program instructions <strong>and</strong> the data beingused by the program, which in turn can be read from adisk or other medium or written back to storage. The effectivespeed <strong>of</strong> the system is derived not only from the clockspeed but from the speed at which data travels over the systembus, a set <strong>of</strong> wires that each carry one data bit, as wellas the operating speed <strong>of</strong> the memory chips themselves (seeclock speed <strong>and</strong> bus).The access <strong>of</strong> programs to the CPU is controlled in turnby the operating system. Modern operating systems sharethe CPU with several running programs, doling out executiontime according to a scheduling algorithm that takesinto account the possible special priority <strong>of</strong> some programs(see multitasking).Further ReadingBrain, Marshall. “How Microprocessors Work.” Available online.URL: http://computer.howstuffworks.com/microprocessor.htm.Accessed June 30, 2007.CraigslistSome <strong>of</strong> the most successful Web services involve just oneor two basic changes in a traditional business or socialmodel. Online auctions, for example, came from the realizationthat the auctioneer <strong>and</strong> auction house could beeliminated <strong>and</strong> a platform provided by which people couldbuy from or sell to one another directly. (The platform, <strong>of</strong>course, does have to include such things as listing policies,payment methods, <strong>and</strong> feedback systems.)Craigslist has done for the newspaper “personal” ad <strong>and</strong>laundromat bulletin board what eBay has done for auctions.It was founded in 1995 by Craig Newmark, a San FranciscoBay Area s<strong>of</strong>tware developer who saw a need for an onlineforum for news about local events. The “list” part <strong>of</strong> Craigslistreflects its origin as an e-mail list.News about the list spread rapidly in Newmark’s milieu<strong>of</strong> well-connected pr<strong>of</strong>essionals, <strong>and</strong> the volume <strong>of</strong> postingsgrew correspondingly large. Furthermore, many peoplebegan to post things other than event listings—includingjob openings, for which Newmark soon set up a separatecategory on the list. As the number <strong>and</strong> kinds <strong>of</strong> postingsgrew, the mailing list format became unwieldy, so Newmark<strong>and</strong> some volunteers put together a Web interface thatusers could use to browse the various categories. By 2000Craigslist.org had become a full-time job for Newmark <strong>and</strong>nine employeesCraiglist’s Web site is organized by community, includingU.S. states <strong>and</strong> cities <strong>and</strong> a variety <strong>of</strong> other countries<strong>and</strong> international cities. Each local site is further dividedinto sections such as community activities (including peopleseeking or providing childcare or sharing rides), personalads (seeking relationships), housing (mostly rentals), jobs,services, items for sale, <strong>and</strong> a variety <strong>of</strong> discussion forums.As <strong>of</strong> 2007 Craigslist had 24 employees. The site is nearlycompletely free <strong>of</strong> charge, with revenue coming only frompaid job listings <strong>and</strong> apartment broker listings in selectedcities. The site’s popularity has been impressive, with morethan 5 billion page views, 10 million visitors, <strong>and</strong> over 10million classified ads per month.Newmark <strong>and</strong> CEO Jim Buckimaster have suggestedthat they have little interest in either turning Craigslistinto a public company or “going commercial” <strong>and</strong> tappingwhat many observers consider to be much greater revenuepotential.Problems <strong>and</strong> IssuesCraiglist’s success has raised some issues. In 2004 eBaybought a 25 percent stake in the company, leading somesupporters to worry about pressure to raise more revenueby carrying banner ads or charging for posting on the site.However, as <strong>of</strong> 2008 the site remains free to users.


Cray, Seymour 121As with eBay, Craigslist has to strike a balance betweenprotecting users from criminal activity <strong>and</strong> exercising directoversight with the attendant expenses <strong>and</strong> legal problems.For keeping out illegal ads (such as discriminatory housingor job <strong>of</strong>fers or solicitations for prostitution), Craigslisthas relied mainly on users to be “good citizens” <strong>and</strong> to“flag” <strong>of</strong>fending ads for removal by the service. Nevertheless,police have reported use <strong>of</strong> Craigslist by prostitutionrings <strong>and</strong> other organized criminals <strong>and</strong> identity thievesseeking personal information. A 2006 suit (subsequentlydismissed) accused Craigslist <strong>of</strong> “allowing” discriminatoryhousing ads in Chicago. (Under federal law, Web sites aregenerally not liable for content posted by users, unless thesite has edited content.)Because Craigslist has been so successful, newspapershave complained that it has dried up much <strong>of</strong> their revenuefrom classified advertising, costing them an estimated $50–$65 million in 2004 in the Bay Area alone. This is particularlya concern <strong>of</strong> small local <strong>and</strong> independent newspapersfor which ads may be their only source <strong>of</strong> revenue.Craigslist has won a 2001 Webby award for Best CommunitySite, <strong>and</strong> was voted Best Local Web site in a 2003Manhattan Reader’s Poll.Further ReadingCarney, Brian M. “Zen <strong>and</strong> the Art <strong>of</strong> Classified Advertising.” WallStreet Journal.com OpinionJournal, June 17, 2006. Availableonline. URL: http://www.opinionjournal.com/editorial/feature.html?id=110008531.Accessed September 9, 2007.Craigslist. Available online. URL: http://www.craigslist.org.Accessed September 9, 2007.“Craigslist Hits Bay Area Classifieds Hard.” NewsInc 16 (December27, 2004): n.p. Available online. URL: http://www.newsinc.net/morgue/2004/NI041227.html. Accessed September 9, 2007.Sentementes, Gus G. “Web Site Vice Stings.” Baltimoresun.com,September 8, 2007. Available online. URL: http://www.baltimoresun.com/news/local/annearundel/bal-md.ar.prostitution08sep08,0,179750 1.story. Accessed September 9,2007.Cray, Seymour(1925–1996)American<strong>Computer</strong> Engineer, InventorSeymour Cray was a computer designer who pioneered thedevelopment <strong>of</strong> high-performance computers that cameto be called supercomputers. Cray was born in ChippewaFalls, Wisconsin. After serving in World War II as an armyelectrical technician, Cray went to the University <strong>of</strong> Minnesota<strong>and</strong> earned a B.S. in electrical engineering <strong>and</strong> thenan M.S. in applied mathematics. (This combination is acommon background for many <strong>of</strong> the designers who wouldhave to combine mathematics <strong>and</strong> engineering principles tocreate the first computers.)In 1951, he joined Engineering Research Associates(ERA), one <strong>of</strong> a h<strong>and</strong>ful <strong>of</strong> companies that sought to commercializethe digital computing technology that had beendeveloped during <strong>and</strong> just after the war. Cray soon becameSeymour Cray is considered by many people to be the father<strong>of</strong> the supercomputer. His innovative Cray computers looked—<strong>and</strong> performed—like something out <strong>of</strong> science fiction. (CrayResearch)known for his ability to grasp every aspect <strong>of</strong> computingfrom logic circuits to the infant discipline <strong>of</strong> s<strong>of</strong>tware development.When ERA <strong>and</strong> its competitor, the Eckert-Mauchly<strong>Computer</strong> Company were bought by Remington R<strong>and</strong>, Craybecame the chief designer for the Univac, the first commerciallysuccessful computer. In 1957, however, Cray <strong>and</strong>two colleagues struck out on their own to form ControlData Corporation (CDC). Their CDC 1604 was one <strong>of</strong> thefirst computers to move from vacuum tubes to transistors.The CDC 6600 was considered by many to be technicallysuperior to the IBM 360. However, by then IBM had becomepreeminent in the business computing market, while theCDC machines found favor with scientists.By the late 1960s, Cray had persuaded CDC to providehim with production facilities within walking distance <strong>of</strong>his home in Chippewa Falls. There he designed the CDC7600. This computer was hailed as the world’s first supercomputer(see supercomputer). However CDC disagreed withCray about the commercial feasibility <strong>of</strong> even more powerfulcomputers. In 1972, Cray formed his own company, CrayResearch, Inc. By then Cray’s reputation as a computer architectwas so great that investors flocked to buy stock in hiscompany. His series <strong>of</strong> Cray supercomputers looked like sleekmonoliths from a science fiction movie. The machines werethe first supercomputers to use parallel processing, where


122 CRMtasks can be assigned to different processors to speed upthroughput. While costing millions <strong>of</strong> dollars apiece, theCray supercomputers made it possible to perform simulationsin atomic physics, aerodynamics, <strong>and</strong> other fieldsthat were far beyond the capabilities <strong>of</strong> earlier computers.However, the Cray <strong>Computer</strong> Corporation ran into financialproblems <strong>and</strong> was bought by Silicon Graphics (SGI) in 1996.Cray received many honors including the IEEE <strong>Computer</strong>Society Pioneer Award (1980) <strong>and</strong> the ACM/IEEEEckert-Mauchly Award (1989). Cray died on October 5,1996, in Colorado Springs, Colorado.Further ReadingBell, Gordon. “A Seymour Cray Perspective.” Available online. URL:http://_research.micros<strong>of</strong>t.com/users/gbell/craytalk/. AccessedJuly 1, 2007.Breckenridge, Charles W. “A Tribute to Seymour Cray.” Availableonline. URL: http://www.cgl.ucsf.edu/home/tef/cray/tribute.html. Accessed July 1, 2007.Murray, C. J. The Supermen: the Story <strong>of</strong> Seymour Cray <strong>and</strong> theTechnical Wizards behind the Supercomputer. New York: JohnWiley, 1997.Smithsonian Institute. National Museum <strong>of</strong> American History.“Seymour Cray Interview.” Available online. URL: http://americanhistory.si.edu/collections/comphist/cray.htm.CRM See customer relationship management.CSS See cascading style sheets.Cunningham, Howard (Ward)(1949– )AmericanS<strong>of</strong>tware DeveloperToday the first place many Web users look for informationabout a topic is Wikipedia, the vast <strong>and</strong> ever growingonline collaborative encyclopedia. The type <strong>of</strong> s<strong>of</strong>tware thatmakes Wikipedia (<strong>and</strong> thous<strong>and</strong>s <strong>of</strong> other wikis) possiblewas invented by Howard G. Cunningham, better known asWard Cunningham.Born on May 26, 1949, Cunningham learned to programin high school. He then attended Purdue University, wherehe received a bachelor’s degree in electrical engineering <strong>and</strong>computer science <strong>and</strong> then a master’s in computer science.After graduation Cunningham worked as a researcher inmicrocomputer systems for Tektronix, where he encounteredan intriguing style <strong>of</strong> programming (see Smalltalk).In a later position at Wyatt S<strong>of</strong>tware, Cunningham becameinvolved with larger-scale s<strong>of</strong>tware projects <strong>and</strong> began tothink about better ways to manage them.In the early 1980s Cunningham encountered a book thatlooked at architecture in terms <strong>of</strong> the combining <strong>of</strong> intuitivepatterns. Cunningham began to apply similar principles tothe design <strong>of</strong> s<strong>of</strong>tware (see also design patterns). One resultwas the holding <strong>of</strong> the first conference on pattern languagesat the University <strong>of</strong> Illinois at Urbana-Champaign in 1994.Around that time, Cunningham was seeking a way forprogrammers to collaborate in working with design patterns.He had already encountered the power <strong>of</strong> linking(see hypertext) in HyperCard, developed by Apple for theMacintosh in the late 1980s. Because it was so easy to use,HyperCard encouraged many nonpr<strong>of</strong>essional programmers(including teachers) to develop <strong>and</strong> share applications.Developing the WikiUsing HyperCard, Cunningham built an application thatallowed users to add free-form data to a database <strong>and</strong> linkit to other entries by clicking a button. Users who tried itwere fascinated by its potential. Cunningham then wantedto exp<strong>and</strong> it so users could access it over networks. However,he was unable to develop a networked version <strong>of</strong> hisHyperCard application.One colleague suggested using the World Wide Web (seeBerners-Lee, Tim <strong>and</strong> World Wide Web). Cunninghamimplemented his free-form linking system as Web pages,<strong>and</strong> the result was something he at first thought <strong>of</strong> callingQuickWeb. He then remembered hearing the phrase wikiwiki or “quickly, quickly”) in Hawaii, <strong>and</strong> he decided to callhis system wikiwikiWeb. Today, it is just known as a wiki(see wikis <strong>and</strong> Wikipedia). This first wiki, called the Portl<strong>and</strong>Pattern Repository, came online in 1995 <strong>and</strong> continuesto operate today.Collaborative S<strong>of</strong>tware DevelopmentCunningham worked for a few years on open-source projectsat Micros<strong>of</strong>t. The giant s<strong>of</strong>tware maker is not generallywell regarded among open-source developers, though Cunninghamhas acknowledged its technical prowess. At anyrate, Cunningham decided to move on. He served as directorfor community development at the Eclipse Foundation,which oversees development <strong>of</strong> Eclipse, a versatile <strong>and</strong> verypopular open-source programming environment. In 2007Cunningham left Eclipse to become chief technology <strong>of</strong>ficer(CTO) <strong>of</strong> AboutUs, a company founded to further developwikis <strong>and</strong> collaborative communities.Cunningham continues to be an enthusiastic proponent<strong>of</strong> open source. He argues that the most important advantage<strong>of</strong> open source is not lower cost, but the way it putsaccess to powerful tools into the h<strong>and</strong>s <strong>of</strong> thous<strong>and</strong>s <strong>of</strong>users <strong>and</strong> encourages them to develop new features <strong>and</strong>capabilities.Cunningham’s contributions to programming methodsare also extensive, including the use <strong>of</strong> design patterns for“quick <strong>and</strong> agile” development <strong>and</strong> what became known as“extreme programming.”Further ReadingCunningham, Ward. Home Page. Available online. URL: http://www.c2.com/cgi/wiki?WardCunningham. Accessed September9, 2007.Leuf, Bo, <strong>and</strong> Ward Cunningham. The Wiki Way: Quick Collaborationon the Web. Upper Saddle River, N.J.: Addison-WesleyPr<strong>of</strong>essional, 2001.Siddalingaiah, Madhu. “Ward Cunningham Interview: Eclipse,Collaboration <strong>and</strong> S<strong>of</strong>tware Trends.” Includes links to Cunningham’sEclipseCon 2006 presentation. SQL Summit.


cyberlaw 123Available online [audio]. URL: http://www.sqlsummit.com/People/WCunningham.htm. Accessed September 9, 2007.Taft, Darryl K. “Father <strong>of</strong> Wiki Speaks Out on Community<strong>and</strong> Collaborative Development.” eWeek, March 20, 2006.Available online. URL: http://www.eweek.com/article2/0,1759,1939982,00.asp. Accessed September 9, 2007.Wiki Wiki Web. Available online. URL: http://c2.com/cgi-bin/wiki?WikiWikiWeb. Accessed September 9, 2007.customer relationship management (CRM)In recent years there has been increasing emphasis, particularlyin online business, on communicating with <strong>and</strong>“cultivating” customers as well as in systematically usinginformation about transactions <strong>and</strong> customer behavior (seealso e-commerce). Collectively, these activities (<strong>and</strong> thes<strong>of</strong>tware used to implement them) are <strong>of</strong>ten known as customerrelationship management (CRM).The basic data stream in CRM is a complete contacthistory for each customer, including not only purchases,but also product or customer support inquiries. The resultingdatabase is used to ensure that with each new contact(such as through a call center), the person responding hasaccess to all the information about previous contacts withthe customer. Thus, for example, in the course <strong>of</strong> answeringa query or solving a problem, the representative can reviewa list <strong>of</strong> which products the customer has purchased <strong>and</strong>suggest additional products that might help deal with theproblem.Besides dealing with customer-initiated contacts, CRMdata can be very useful in designing marketing campaigns,advertising, promotions, <strong>and</strong> so on (see online advertising).The database can be analyzed to determine, forexample, the likelihood that a customer who buys a digitalcamera might also buy a particular printer or memory card(see data mining). Once this is known, a customer who isin the process <strong>of</strong> buying a camera might be <strong>of</strong>fered a specialprice on a memory card during checkout. (For an example<strong>of</strong> extensive integration, mining, <strong>and</strong> use <strong>of</strong> CRM data, seeamazon.com.) For longer-term planning, “strategic CRM”can help a company decide on what types <strong>of</strong> products <strong>and</strong>markets to focus.In addition to a database with extensive analysis <strong>and</strong>reporting facilities, a CRM system requires s<strong>of</strong>tware thatsales or support persons can use to access information inreal time <strong>and</strong> update it with the results <strong>of</strong> the current call.Organizations can buy turnkey products or design theirown CRM systems by selecting <strong>and</strong> integrating s<strong>of</strong>twarecomponents. However implemented, effective CRM requiresthat everyone in contact with a customer keep the ongoingcultivation <strong>of</strong> that relationship in mind, <strong>and</strong> search for waysto deliver more value than the competition.Successful CRM also requires a balance between thedesire to get as much information as possible <strong>and</strong> allayingcustomers’ concerns. If the CRM s<strong>of</strong>tware (or how it isused) slows down the resolution <strong>of</strong> support calls, ends upgenerating unwanted solicitations (particularly from thirdparties), or conveys a sense <strong>of</strong> disregard for privacy, it coulddamage customer relations <strong>and</strong> lead to loss <strong>of</strong> business <strong>and</strong>reputation.Further ReadingButtle, Francis. Customer Relationship Management: Concepts <strong>and</strong>Tools. Burlington, Mass.: Elsevier Butterworth-Heinemann,2004.CRM Today. Available online. URL: http://www.crm2day.com/.Accessed September 9, 2007.Customer Relationship Management Association. Available online.URL: http://www.crmassociation.org/. Accessed September 9,2007.Kincaid, Judith W. Customer Relationship Management: Getting ItRight. Upper Saddle River, N.J.: Prentice-Hall/HP Pr<strong>of</strong>essionalBooks, 2002.Kumar, V., <strong>and</strong> Werner J. Reinartz. Customer Relationship Management:A Databased Approach. New York: Wiley, 2005.Prahalad, C. K., et al. Harvard Business Review on Customer RelationshipManagement. Cambridge, Mass.: Harvard BusinessSchool, 2001.cyberlawLegal scholars <strong>and</strong> law schools have begun to use the termcyberlaw to refer to a variety <strong>of</strong> legal issues that are <strong>of</strong>teninvolved in online interactions (see cyberspace). Whiletraditional legal fields such as contract law, property law,privacy, <strong>and</strong> jurisdiction do apply online, cyberlaw recognizesthat certain common features <strong>of</strong> the digital worldpose unique challenges.The first question in any legal dispute is which court, ifany, has jurisdiction. In the physical world there are welldemarcatedspheres (in the United States) for federal, state,<strong>and</strong> municipal law. However, participants in an onlinetransaction or other act may <strong>of</strong>ten be in different physicaljurisdictions. Indeed, the World Wide Web’s structuredoes not inherently follow physical boundaries, with linkagebeing largely semantic rather than geographical. SomeInternet advocates such as John Perry Barlow have gone s<strong>of</strong>ar as to argue that the Web must develop its own laws <strong>and</strong>customs that reflect its technical <strong>and</strong> social nature—eventuallyforming its own social contract.A more pragmatic approach is taken by Lawrence Lessig,who argues that a legal regime must evolve that takesinto account the needs <strong>and</strong> concerns <strong>of</strong> both traditionalphysical jurisdictions <strong>and</strong> the new realm <strong>of</strong> cyberspace (seeLessig, Lawrence).Diverse IssuesIn practice, when crimes or disputes occur online, politicalpressure or legal duty will impel federal <strong>and</strong> state <strong>of</strong>ficialsto become involved. For example, users <strong>of</strong> file-sharing servicesare being sued for alleged violations <strong>of</strong> copyright law(see file-sharing <strong>and</strong> P2P networks <strong>and</strong> intellectualproperty <strong>and</strong> computing). The question <strong>of</strong> whether theprovider <strong>of</strong> an online service should be held responsiblefor violations by users must also be decided; in the UnitedStates, federal law has exempted providers from most legalliabilities. Matters can become even more complicatedwhen people involved in a case are living in different countries.(Many countries have lax or no regulation <strong>of</strong> onlineactivity, <strong>and</strong> activity prohibited in countries such as theUnited States can flourish there—see, for example, onlinegambling.)


124 cyberneticsMany issues regarding freedom <strong>of</strong> speech <strong>and</strong> expressionarise in the online world. Should a blogger be accordedthe rights <strong>of</strong> a traditional journalist? Should an Americancompany such as Google or Yahoo! be held responsible forturning dissidents over to Chinese authorities?The growth <strong>of</strong> immersive <strong>and</strong> persistent online gameworlds such as Second Life raises other difficult questions forcyberlaw (see identity in the online world <strong>and</strong> onlinegames). Can promises (whether business contracts or evenmarriage proposals) made through online personas (“avatars”)be binding? Who owns property (such as a house)created or purchased in the virtual world? What if someonesteals or v<strong>and</strong>alizes the virtual property? Should a virtualworld be treated as a kind <strong>of</strong> parallel jurisdiction <strong>and</strong>perhaps allowed to have its own legal system <strong>and</strong> courts,perhaps even a form <strong>of</strong> limited sovereignty? While thesequestions may seem far-fetched, they take on more urgencyas millions <strong>of</strong> people begin to spend a significant part <strong>of</strong>their waking time in a virtual world <strong>and</strong> generate economicactivity that can be denominated in real money. The resolution<strong>of</strong> these <strong>and</strong> other cyberlaw issues will both depend on<strong>and</strong> influence how the Internet itself is organized <strong>and</strong> governed(see Internet organization <strong>and</strong> governance).For some organizations currently involved in trying to promotecyber rights <strong>and</strong> shape policy, see cyberspace advocacygroups.Further ReadingBarlow, John Perry. “A Declaration <strong>of</strong> the Independence <strong>of</strong> Cyberspace.”Available online. URL: http://homes.eff.org/~barlow/Declaration-Final.html. Accessed September 9, 2007.Electronic Frontier Foundation. “Internet Law Treatise.” Availableonline. URL: http://ilt.eff.org/index.php/Table_<strong>of</strong>_Contents.Accessed April 23, 2008.Gahtan, Alan. Cyberlaw <strong>Encyclopedia</strong>. Available online. URL:http://www.gahtan.com/cyberlaw/. Accessed September 9,2007.Ku, Raymond S., <strong>and</strong> Jacqueline D. Lipton. Cyberspace Law: Cases<strong>and</strong> Materials. 2nd ed. New York: Aspen Publishers, 2006.Lessig, Lawrence. Code: Version 2.0. New York: Basic Books, 2006.Zittrain, Jonathan L. Jurisdiction (Internet Law Series). New York:Foundation Press, 2005.cyberneticsCybernetics may not be familiar to many readers today,except as part <strong>of</strong> words like “cyberspace.” The term wascoined by mathematician Norbert Wiener (see Wiener,Norbert) in his book about control <strong>and</strong> communicationin animals <strong>and</strong> machines. The root comes from the Greekkybernetes, meaning steersman or governor.Cybernetics looks at systems as a whole. A key conceptis feedback, which allows a system to adjust itself inresponse to changes in the environment. A familiar exampleis a thermostat, which includes a switch that exp<strong>and</strong>s asthe air heats, turning <strong>of</strong>f the heater when the temperaturereaches its indicated setting. Similarly, as the air cools theswitch contracts <strong>and</strong> restarts the heater.In addition to feedback, cybernetics looks at how informationis communicated between the environment <strong>and</strong> amachine or organism, or between component parts. Cyberneticsis also interested in structures that may be builtup through feedback <strong>and</strong> communication—ultimately, inhumans: the structures <strong>of</strong> self, identity, <strong>and</strong> consciousness.Cybernetics is fundamental to the operation <strong>of</strong> robots(see robotics). Around the time <strong>of</strong> Wiener’s book, GreyWalter built one <strong>of</strong> the earliest robots, a “cybernetic turtle”that could autonomously explore an environment, respondingto changes in light.In computers, any program that changes its behavior inresponse to new data might be called cybernetic. Cyberneticsis relevant to a variety <strong>of</strong> fields in computer science thatinvolve machine learning or reasoning (see artificial intelligence,genetic programming, <strong>and</strong> neural network).During the 1950s <strong>and</strong> 1960s cybernetics conceptsbecame quite influential <strong>and</strong> were applied to such diversefields as neurology, cognitive science, psychology, philosophy,anthropology, sociology, <strong>and</strong> economics. However,the term cybernetics itself gradually fell out <strong>of</strong> favor,even though the concepts remain at the heart <strong>of</strong> systemsthinking. For some writers such as Gregory Bateson <strong>and</strong>anthropologist Margaret Mead, the focus shifted to a “newcybernetics” or “second-order cybernetics” that studies theinteraction <strong>of</strong> observers with phenomena <strong>and</strong> attempts toconstruct a model <strong>of</strong> the mind itself.Further ReadingAmerican Society for Cybernetics. Available online. URL: http://www.asc-cybernetics.org/. Accessed September 10, 2007.Gasperi, Michael. “Grey Walter’s Machina Speculatrix.” Availableonline. URL: http://www.extremenxt.com/walter.htm.Accessed September 10, 2007.Principia Cybernetica Web. Available online. URL: http://pespmc1.vub.ac.be/. Accessed September 10, 2007.Wiener, Norbert. Cybernetics: or Control <strong>and</strong> Communication inthe Animal <strong>and</strong> the Machine. 2nd ed. Cambridge, Mass.: MITPress, 1961.cyberspace advocacy groupsBy the mid-1990s a number <strong>of</strong> issues were arising as theInternet <strong>and</strong> Web became an increasingly important factorin commerce <strong>and</strong> society (see censorship <strong>and</strong> theInternet, intellectual property <strong>and</strong> computing, <strong>and</strong>privacy in the digital age). Often in response to proposedor enacted federal legislation, a number <strong>of</strong> advocateshave organized groups to keep track <strong>of</strong> developments thatthey believe threaten the free exchange <strong>of</strong> information <strong>and</strong>expression, as well as opposing government surveillance<strong>and</strong> corporate practices believed to intrude on privacy.Although there are dozens <strong>of</strong> groups advocating for therights <strong>of</strong> Internet users, three groups have been particularlyprominent <strong>and</strong> effective.Electronic Frontier FoundationThe Electronic Frontier Foundation (EFF) was founded in1990 by Mitch Kapor, John Gilmore, <strong>and</strong> John Perry Barlow.Its immediate motivation was the federal search <strong>and</strong>seizure <strong>of</strong> computers belonging to Steve Jackson Gamesas part <strong>of</strong> an investigation into illegal distribution <strong>of</strong> proprietarydocuments. Although the game company was not


cyberspace <strong>and</strong> cyber culture 125involved in any crime, the seizure <strong>of</strong> its equipment <strong>and</strong>information threatened to put it out <strong>of</strong> business. Ultimately,Jackson prevailed in federal court, establishing that unconventionalmeans <strong>of</strong> expression such as games were entitledto First Amendment protection. In another high-pr<strong>of</strong>ilecase, computer scientist Daniel Bernstein sued <strong>and</strong> wonthe right to publish encryption s<strong>of</strong>tware <strong>and</strong> related papers,again extending First Amendment protections in the digitalworld.The EFF has also been involved in the dispute betweenusers <strong>of</strong> file-sharing services <strong>and</strong> the Recording IndustryInstitute <strong>of</strong> America (RIAA) over subpoenas <strong>of</strong> service providersseeking alleged illegal downloaders.Most recently, the EFF has exp<strong>and</strong>ed its efforts furtherwith regard to issues <strong>of</strong> government surveillance <strong>and</strong> theprosecution <strong>of</strong> computer crimes, such as collection <strong>and</strong> use<strong>of</strong> evidence.Center for Democracy <strong>and</strong> <strong>Technology</strong>Founded in 1994, the Center for Democracy <strong>and</strong> <strong>Technology</strong>(CDT) somewhat overlaps the EFF in interests, buthas a greater emphasis on the connections between onlineactivities <strong>and</strong> the political process. The organization’s firstmajor battle involved the <strong>Computer</strong> Decency Act. Whileintended by its proponents to ban obscenity <strong>and</strong> particularlychild pornography from the Internet, cyberspacerightsadvocates saw the law as vague, poorly written, <strong>and</strong>likely to deny access to material that is constitutionallyprotected for adults—an argument that the Supreme Courtultimately accepted in ACLU v. Reno (1997).More recently, the CDT has supported the free-speechrights <strong>of</strong> bloggers (see blogs <strong>and</strong> blogging), arguingthat they should be accorded journalistic rights (see alsojournalism <strong>and</strong> computers). Besides issue advocacy, theorganization’s overall focus is on developing public policythat recognizes the unique features <strong>of</strong> cyberspace <strong>and</strong> promotesfreedom <strong>of</strong> expression, protection <strong>of</strong> privacy, <strong>and</strong>widespread access to the Net (see also Internet accesspolicy).Electronic Privacy Information CenterAlso founded in 1994, the Electronic Privacy InformationCenter (EPIC) is a Washington, D.C.–based public interestresearch center devoted to privacy <strong>and</strong> civil libertiesissues. The group’s electronic newsletter EPIC Alert providesa useful summary <strong>of</strong> ongoing developments, cases,<strong>and</strong> issues. The organization also publishes regularlyupdated compendiums on developments in open government/freedom<strong>of</strong> information, privacy <strong>and</strong> human rights,<strong>and</strong> privacy law.(For online activists involved in general political issues<strong>and</strong> campaigns, see political activism <strong>and</strong> the Internet.)Further ReadingCenter for Democracy <strong>and</strong> <strong>Technology</strong>. Available online. URL:http://www.cdt.org/. Accessed September 10, 2007.Center for Democracy <strong>and</strong> <strong>Technology</strong>. “CDT: A Decade <strong>of</strong> InternetAdvocacy.” Available online. URL: http://www.cdt.org/mission/2006aao.pdf. Accessed September 10, 2007.Electronic Frontier Foundation. Available online. URL: http://www.eff.org/. Accessed September 10, 2007.Electronic Privacy Information Center. Available online. URL:http://www.epic.org/. Accessed September 10, 2007.Godwin, Mike. Cyber Rights: Defending Free Speech in the DigitalAge. Revised ed. Cambridge, Mass.: MIT Press, 2003.Privacy.org. Available online. URL: http://www.privacy.org/.Accessed September 10, 2007.cyberspace <strong>and</strong> cyber cultureThe term cyberspace first came to prominence whenit appeared in Neuromancer, a 1984 novel by science fictionwriter William Gibson. The word is a combination<strong>of</strong> “cyber” (meaning related to computers) <strong>and</strong> “space.”As another SF writer, Bruce Sterling, wrote in The HackerCrackdown (1993), cyberspace is “the place between thephones. The indefinite place out there, where the two <strong>of</strong> you,human beings, actually meet <strong>and</strong> communicate.”While the elite telegraphers <strong>of</strong> the 19th century <strong>and</strong>later telephone users first experienced the sense <strong>of</strong> disembodiedelectronic communication, it took the development<strong>of</strong> widespread computer terminals, personal computers,<strong>and</strong> connecting networks to create a sense <strong>of</strong> an ongoingplace in which people meet <strong>and</strong> interact. The first “villages”in cyberspace came into being during the 1970s asresearch networks (ARPA), <strong>and</strong> the Usenet newsgroups<strong>of</strong> UNIX users began to carry messages <strong>and</strong> news postings.During the 1980s, many more settlements began tolight up the map <strong>of</strong> cyberspace, ranging from cities (largeonline services such as The Source, BIX, <strong>and</strong> CompuServe)to thous<strong>and</strong>s <strong>of</strong> villages (tiny bulletin board systems runningon personal computers). (See online services <strong>and</strong>bulletin board systems.)Wherever human beings build communities, they shapeculture. The cyber culture that grew up in cyberspace hasfeatured many diverse str<strong>and</strong>s. Hackers (not originally apejorative term) had their distinctive hangouts <strong>and</strong> lingo.Bulletin board cultures varied from the hacker hardcore touser groups that tried to assist beginners. On the nascentInternet multiplayer game worlds called MUDs (Multi-UserDungeons) <strong>and</strong> Muses used words to create richly detailedfantasy cyberspaces. Together with chat rooms <strong>and</strong> conferencingsystems, they fostered virtual communities that,like physical communities, express a full range <strong>of</strong> humanbehavior (see blogs <strong>and</strong> blogging, conferencing systems,chat, social networking, texting <strong>and</strong> instantmessaging, <strong>and</strong> virtual community).While cyber culture shares the characteristics <strong>of</strong> otherhuman cultures, it also has unique characteristics that aredictated by the nature <strong>of</strong> the online, virtual medium. Sincethe online user reveals only what he or she chooses toreveal, identities can be fluid: playful or deceptive. Whilepeople are not physically vulnerable in cyberspace, theyare certainly emotionally vulnerable. (Virtual eroticism, or“cyber sex” has even led to virtual rapes.) The issue <strong>of</strong> protectingprivacy becomes important because sensitive personalinformation is constantly being exposed in order tocarry on commerce (see identity in the online world<strong>and</strong> privacy in the digital age.)


126 cyberstalking <strong>and</strong> harassmentThe Future <strong>of</strong> CyberspaceBy the end <strong>of</strong> the 1990s, the face <strong>of</strong> cyberspace was nolonger that <strong>of</strong> text screens but that <strong>of</strong> the World Wide Webwith its graphical pages. Multiplayer games now <strong>of</strong>ten featuregraphics <strong>and</strong> even real-time voice communication ispossible. With ubiquitous digital cameras, the boundarybetween cyberspace <strong>and</strong> physical space has become fluid,with people able to enter into each other’s physical environmentsin realistic ways. Meanwhile, the development<strong>of</strong> virtual reality techniques has made computer-generatedworlds much more vivid <strong>and</strong> realistic (see virtual reality).As more people are linked continually to the networkby broadb<strong>and</strong> <strong>and</strong> wireless connections, cyberspace mayeventually disappear as a separate reality, having mergedwith physical space.Further ReadingBell, David. An Introduction to Cybercultures. New York: Routledge,2001.Bell, David, <strong>and</strong> Barbara M. Kennedy, eds. The CyberculturesReader. New York: Routledge, 2007.Jenkins, Henry. Convergence Culture: Where Old <strong>and</strong> New MediaCollide. New York: New York University Press, 2006.Resource Center for Cyberculture Studies. Available online. URL:http://rccs.usfca.edu/default.asp. Accessed July 1, 2007.Silver, David, <strong>and</strong> Adrienne Massari, eds. Critical CybercultureStudies. New York: New York University Press, 2006.Wired magazine. Available online. URL: http://www.wired.com.Accessed July 1, 2007.cyberstalking <strong>and</strong> harassmentCyberstalking <strong>and</strong> harassment or “cyber bullying” involvethe use <strong>of</strong> online communications <strong>and</strong> facilities (such asinstant messaging, chat rooms, e-mail, or Web sites) tostalk, harass, or otherwise abuse a person or group. Theseactivities may be carried on entirely online or in connectionwith physical stalking or harassment.Stalking <strong>and</strong> threatening a person has been a crime inthe physical world for some time, <strong>and</strong> similar principlesapply to online stalking. Generally, to be guilty <strong>of</strong> stalking, aperson must repeatedly harass or threaten the victim, <strong>of</strong>tenfollowing him or her <strong>and</strong> intruding or violating privacy.Cyberstalkers take advantage <strong>of</strong> the fact that there isa great deal <strong>of</strong> information about many people online.(Indeed, the popularity <strong>of</strong> sites such as MySpace meansthat many users can unwittingly provide that informationin well-organized, easy-to-access form—see social networking.)The stalker can also use search engines to finde-mail or even physical addresses <strong>and</strong> phone numbers, orcan join chat rooms used by the prospective victim,Motives for stalking can range from sexual obsession toanger at some real or imagined slight, to more idiosyncraticreasons. As with physical stalking in an earlier generation,law enforcement agencies were <strong>of</strong>ten slow to acknowledgethe potential seriousness <strong>of</strong> the crime or to develop effectiveways to deal with it.This began to change with the tragic <strong>and</strong> highly publicizedcase <strong>of</strong> Amy Boyer, who had been found onlinethrough a data broker, stalked, harassed, <strong>and</strong> ultimatelymurdered. In 1999 California became the first state to passa law against cyberstalking, <strong>and</strong> in 2000 cyberstalking wasmade part <strong>of</strong> the federal Violence against Women Act.CyberbullyingLike traditional bullying in schools or other settings, cyberbullyinginvolves harassment, sometimes organized, <strong>of</strong>people considered to be weak or different in some way.However, the ability to hide or disguise one’s identity online(see anonymity <strong>and</strong> the Internet) facilitates cyberbullyingby making it harder for victims to identify <strong>and</strong> confrontor report their tormentors. Media for cyberbullying includetext <strong>and</strong> instant messaging, photos or videos, blogs, <strong>and</strong>increasingly, pages on social networking sites. Contents caninclude threats, racial or other slurs, <strong>and</strong> unwelcome sexualsolicitations.In March 2007 a number <strong>of</strong> organizations joined withthe U.S. Department <strong>of</strong> Justice in a public service advertisingcampaign to educate young people about cyberbullying<strong>and</strong> what they can do to prevent it. Some schools are adoptinganti-cyberbullying policies <strong>and</strong> programs.Besides potentially serious psychological trauma to victims,cyberbullying can sometimes lead victims to lash out,<strong>and</strong> in extreme cases, cyberbullying may play a role in campusshootings.Further ReadingBocij, Paul. Cyberstalking: Harassment in the Internet Age <strong>and</strong> Howto Protect Your Family. Westport, Conn.: Praeger, 2004.Bolton, Jose, <strong>and</strong> Stan Graeve, eds. No Room for Bullies: From theClassroom to Cyberspace: Teaching Respect, Stopping Abuse,<strong>and</strong> Rewarding Kindness. Boys Town, Nebr.: Boys Town Press,2005.“Cyberbullying: Identifying the Causes <strong>and</strong> Consequences <strong>of</strong>Online Harassment” [news <strong>and</strong> resources]. Available online.URL: http://www.cyberbullying.us/. Accessed September 10,2007.Cyberbullying.org. Available online. URL: http://www.cyberbullying.org/. Accessed September 10, 2007.Henderson, Harry. Internet Predators (Library in a Book). NewYork: Facts On File, 2005.Widhalm, Shelley. “New Teen Bullies.” Washington Times, September10, 2007. Available online. URL: http://washingtontimes.com/article/20070910/METRO/109100038/1004. Accessed September10, 2007.Willard, Nancy E. Cyberbullying <strong>and</strong> Cyberthreats: Responding tothe Challenge <strong>of</strong> Online Social Aggression, Threats, <strong>and</strong> Distress.Champaign, Ill.: Research Press, 2007.cyberterrorismCyberterrorism can include several types <strong>of</strong> activities:the promotion <strong>of</strong> terrorist or militant groups on the Web(including propag<strong>and</strong>a <strong>and</strong> recruitment), the coordinationor facilitation <strong>of</strong> terrorist activities, <strong>and</strong> actual attacks onWeb sites or other information infrastructure.Terrorists on the WebThere is little doubt that terrorist groups are increasinglycomputer savvy <strong>and</strong> willing to use the technology to furthertheir purposes. Many groups have Web sites that are


cyberterrorism 127used for propag<strong>and</strong>a <strong>and</strong> recruiting. (In 2007 a British courtsentenced three men, calling them “cyber-jihadis” <strong>and</strong> sayingthey had used a Web site to urge Muslims to attack non-Muslims.) In fact extremist groups <strong>of</strong> many kinds (includingneo-Nazis <strong>and</strong> other racial extremists) have long used Websites to attract young followers through propag<strong>and</strong>a, music,<strong>and</strong> even games.Other material posted by terrorist groups onlineincludes bomb-making plans, lists <strong>of</strong> potential targets (possiblyincluding maps or blueprints), <strong>and</strong> “tips” for penetratingdefenses or evading detection. (A project called DarkWeb at the University <strong>of</strong> Arizona searches for, compiles,<strong>and</strong> analyzes massive amounts <strong>of</strong> Web content generated byterrorist groups.)Attacks on Web SitesAttempts to jam or disrupt Web sites (such as denial <strong>of</strong>service attacks or DOS) have been made for a variety <strong>of</strong> reasons.At one end <strong>of</strong> the spectrum are individuals or smallgroups engaged in criminal activity (such as attemptedextortion) or expressing political protest (“hacktivists”). Atthe other end are alleged online <strong>of</strong>fensives by national governments(see Information warfare).Although there have been no major disruptions as <strong>of</strong>mid-2008, terrorists (or sympathizers) have already conductedcyberattacks. One site has even <strong>of</strong>fered a downloadable“electronic jihad” program that users can use to selectfrom a list <strong>of</strong> targets to launch an automated DOS. Whilesuch sites are usually taken down after a few months, it isrelatively easy to start another, especially because informationprovided for site registration is <strong>of</strong>ten not verified.Fighting CyberterrorismStrategies <strong>and</strong> tactics to combat cyberterrorism involve bothgeneral antiterrorist intelligence <strong>and</strong> other techniques aswell as those particularly adapted to the cyberspace arena(see counterterrorism <strong>and</strong> computers, computercrime <strong>and</strong> security, <strong>and</strong> computer forensics).The cyberterrorist threat also plays an important rolein the effort to better protect vital infrastructure. Althoughattacks on banking <strong>and</strong> other financial computer systemshave the potential to cause severe economic damage, muchattention has focused on computer-based attacks that havethe potential to directly injure or even kill people. Back in2000, an individual hacker in Australia took over a pumpingstation <strong>and</strong> dumped more than 264,000 gallons <strong>of</strong> raw sewageinto public l<strong>and</strong>s <strong>and</strong> waterways. Although no humanswere directly harmed, it is easy to see that such contaminationin the drinking water supply could be deadly.Regardless <strong>of</strong> the type <strong>of</strong> computer system, followingbest security practices can go a long way to “hardening”potential targets. Such practices include the use <strong>of</strong> robustfirewalls <strong>and</strong> antivirus programs, regular security updatesfor the operating system <strong>and</strong> s<strong>of</strong>tware, network monitoring<strong>and</strong> intrusion detection, sharing information about securitythreats, <strong>and</strong> training personnel to be aware <strong>of</strong> typicalattacker techniques, including deception (social engineering).There needs to be a comprehensive protection plan foreach facility that takes both physical <strong>and</strong> electronic securityinto accountAssessmentIn recent years cyberterrorism has been a much publicizedtopic. Some critics believe that the threat <strong>of</strong> cyberterrorismhas been overestimated—not because many computer systemsare not vulnerable, but because the most vulnerablephysical systems are generally not on the Internet <strong>and</strong> noteasily accessible. It has also been argued that terrorists generallyuse simpler, more direct weapons (e.g., bombs) <strong>and</strong>aim to produce physically spectacular or terrifying results.Most cyberattacks would not seem to meet those criteria.On the other h<strong>and</strong>, a cyberattack might be launched inconjunction with physical attacks, either as a distractionor to make it harder for authorities to respond to the mainattack.Properly assessing risks <strong>and</strong> allocating resources willalways be difficult, <strong>and</strong> will always be influenced by political<strong>and</strong> economic as well as technological factors.Further ReadingBlane, John V., ed. Cybercrime <strong>and</strong> Cyberterrorism: Current Issues.New York: Novinka Books, 2003.Brown, Lawrence V., ed. Cyberterrorism <strong>and</strong> <strong>Computer</strong> Attacks.New York: Novinka Books, 2006.Chen, Hsinchun. “How Terrorists Use the Internet” [interviewtranscript]. The <strong>Science</strong> Show, March 31, 2007. Availableonline. URL: http://www.abc.net.au/rn/scienceshow/stories/2007/1885902.htm#transcript. Accessed September 7, 2007.Colarik, Andrew M. Cyber Terrorism: Political <strong>and</strong> Economic Implications.Hershey, Penn.: Idea Group, 2006.“Cyber-Terrorism: Propag<strong>and</strong>a or Probability?” About.com. Availableonline. URL: http://antivirus.about.com/library/weekly/aa090502a.htm. Accessed September 7, 2007.Greenmeier, Larry. “Cyberterrorism: By Whatever Name, It’s onthe Increase.” InformationWeek, July 7, 2007. Available online.URL: http://www.informationweek.com/story/showArticle.jhtml?articleID=200900812. Accessed July 12, 2007.O’Day, Alan, ed. Cyberterrorism. Burlington, Vt.: Ashgate, 2004.Wagner, Breanne. “Electronic Jihad: Experts Downplay ImminentThreat <strong>of</strong> Cyberterrorism. National Defense 92 (July 1, 2007):p. 34 ff.


DdataToday the term data is associated in many peoples’ mindsmainly with computers. However, data (as in “given facts”or measurements) has been used as a term by scientists <strong>and</strong>scholars for centuries. Just as with a counting bead, a notchin a stick, or a h<strong>and</strong>written tally, data as stored in a computer(or on digital media) is a representation <strong>of</strong> facts aboutthe world. These facts might be temperature readings, customeraddresses, dots in an image, the characteristics <strong>of</strong>a sound at a given instant, or any number <strong>of</strong> other things.But because computer data is not a fact but a representation<strong>of</strong> facts, its accuracy <strong>and</strong> usefulness depends not only onthe accuracy <strong>of</strong> the original data, but on its context in thecomputer.At bottom, computer data consists <strong>of</strong> binary states (representednumerically as ones or zeroes) stored using somephysical characteristic such as an electrical or magneticcharge or a spot capable <strong>of</strong> absorbing or reflecting light.A string <strong>of</strong> ones <strong>and</strong> zeroes in a computer has no inherentmeaning. Is the bit pattern 01000001 a number equivalentto 65 in the decimal system? Yes. Is it the capital letter “A”?It may be, if interpreted as an ASCII character code. Is itpart <strong>of</strong> some larger number? Again, it may be, if the memorylocation containing this pattern is interpreted as part <strong>of</strong>a set <strong>of</strong> two, four, or more memory locations.In order to be interpreted, data must be assigned a categorysuch as integer, floating point (decimal), or character(see data types). The programming language compiler usesthe data type to determine how many memory locationsmake up that data item, <strong>and</strong> which bits in memory correspondto which bits in the actual number. Data items can betreated as a batch (see array) for convenience, or differentkinds <strong>of</strong> data such as names, addresses, <strong>and</strong> Social Securitynumbers can be grouped together into records or structuresthat correspond to an entity <strong>of</strong> interest (such as a customer).In creating a structure within the program to represent thedata, the programmer must be cognizant <strong>of</strong> its purpose <strong>and</strong>intended use.The programming language <strong>and</strong> code statements definethe context <strong>of</strong> data within the rules <strong>of</strong> the language. However,the meaning <strong>of</strong> data must ultimately be constructedby the human beings who use it. For example, whether atest score is good, bad, or indifferent is not a characteristic<strong>of</strong> the data itself, but is determined by the purposes <strong>of</strong>the test designer. This is why a distinction is <strong>of</strong>ten madebetween data, as raw numbers or characters, <strong>and</strong> informationas data that has been placed in a meaningful contextso that it can be useful <strong>and</strong> perhaps even enlightening tothe user.Further ReadingBierman, Alan W. Great Ideas in <strong>Computer</strong> <strong>Science</strong>: a Gentle Introduction.2nd ed. Cambridge, Mass.: MIT Press, 1997.Hillis, Daniel W. The Pattern on the Stone: the Simple Ideas thatMake <strong>Computer</strong>s Work. New York: Basic Books, 1998.data abstractionAbstract data types are used to describe a “generic” type <strong>of</strong>data, specifying how the data is stored <strong>and</strong> what operationscan be performed on it (see object-oriented programming,list processing, stack, <strong>and</strong> queue).128


data acquisition 129For example, an abstract stack data type includes astructure for storing data (such as a list or array) <strong>and</strong> aset <strong>of</strong> operations, such as “pushing” an integer onto thestack <strong>and</strong> “popping” (removing) an integer from the stack.(For the process <strong>of</strong> combining data <strong>and</strong> operations into asingle entity, see encapsulation.) Abstract data types canbe implemented directly in object-oriented programminglanguages (see class, c++, Java, <strong>and</strong> Smalltalk).One advantage <strong>of</strong> using abstract data types is that itseparates a structure <strong>and</strong> functionality from its implementation.In designing the abstract stack type, for example,one can focus on what a stack does <strong>and</strong> its essential functions.One avoids becoming immediately bogged downwith details, such as what sorts <strong>of</strong> data items can be placedon the stack, or exactly what mechanism will be used tokeep track <strong>of</strong> the number <strong>of</strong> items currently stored. Thisapproach also avoids “featuritis,” the tendency to see howmany possible functions or features one can add to thestack object. For example, while it might be useful to give astack the ability to print out a list <strong>of</strong> its items, it is probablybetter to wait until one needs such a capability than to burdenthe basic stack idea with extra baggage that may makeit more cumbersome or less efficient.An abstract data type or its embodiment, a class, is notused directly by the program. Rather, it is used to create anentity (object) that is a particular instance <strong>of</strong> the abstractdata type (for example, an actual stack that will be usedto manipulate data). The data stored inside the object isnot accessed directly, but through functions that the objectreceives from the abstract data type (such as the push <strong>and</strong>pop operations for a stack). (For more information abouthow such objects are used, see class.)Because the abstract data type is not directly used bythe program, the implementation <strong>of</strong> how the data is storedor manipulated can be changed without affecting programsthat use objects <strong>of</strong> that type. This information hiding isone <strong>of</strong> the chief benefits <strong>of</strong> object-oriented programming.Another advantage is inheritance, the ability to derive morespecialized versions <strong>of</strong> the abstract data type or class. Thus,one can create a derived stack class that includes the printingfunction mentioned earlier.the ASCII character code for the key pressed. Moving themouse sends a stream <strong>of</strong> signals that are proportional to therotation <strong>of</strong> the ball which in turn is calibrated into a series<strong>of</strong> coordinates <strong>and</strong> ultimately to a position on the screenwhere the cursor is to be moved. Digital cameras <strong>and</strong> scannersconvert the varying light levels <strong>of</strong> what they “see” intoa digital image.Besides the devices that are familiar to most computerusers, there are many specialized data acquisition devices(DAQs). Indeed, most instruments used in science <strong>and</strong>engineering to measure physical characteristics are nowdesigned to convert their readings into digital form. (Sometimesthe instrument includes a processor that provides arepresentation <strong>of</strong> the data, such as a waveform or graph. Inother cases, the data is sent to a computer for processing<strong>and</strong> display.)Components <strong>of</strong> a Data Acquisition SystemThe data acquisition system begins with a transducer,which is a device that converts a physical phenomenon(such as heat) into a proportional electrical signal. Transducersinclude devices such as thermistors, thermocouples,<strong>and</strong> pressure or strain gauges. The output <strong>of</strong> the transduceris then fed into a signal conditioning circuit. The purpose<strong>of</strong> signal conditioning is to make sure the signal fits intothe range needed by the data processing device. Thus theFurther ReadingCarrano, Frank M. Data Abstraction <strong>and</strong> Problem Solving with C++:Walls <strong>and</strong> Mirrors. 4th ed. Reading, Mass.: Addison-Wesley,2004.“Introduction to Data Abstraction.” MIT Press. Available online.URL: http://mitpress.mit.edu/sicp/full-text/sicp/book/node27.html. Accessed July 3, 2007.K<strong>of</strong>fman, Elliot B., <strong>and</strong> Paul A. T. Wolfgang. Objects, Abstraction,Data Structures <strong>and</strong> Design Using Java Version 5.0. New York:Wiley, 2004.data acquisitionThere are a variety <strong>of</strong> ways in which data (facts or measurementsabout the world) can be turned into a digitalrepresentation suitable for manipulation by a computer. Forexample, pressing a key on the keyboard sends a signal thatis stored in a memory buffer using a value that representsData acquisition is the process <strong>of</strong> gathering real-time data fromscientific instruments <strong>and</strong> making it available in digital form. Sensorsignals are “conditioned” by filtering extraneous values, <strong>and</strong>are then sampled <strong>and</strong> digitized. S<strong>of</strong>tware can now provide elaborategraphic displays as well as alert scientists to unusual readings.


130 database administrationsignal may be amplified or its voltage may be adjusted orscaled to the required level. Another function <strong>of</strong> signal conditioningis to isolate the incoming signal from the computerto which the acquisition device is connected. Thisis necessary both to protect the delicate computer circuitsfrom possible “spikes” in the incoming signal <strong>and</strong> to prevent“noise” (extraneous electromagnetic signals created bythe computer itself) from distorting the signal, <strong>and</strong> thusthe ultimate measurements. Various sorts <strong>of</strong> filters can beadded for this purpose.The conditioned signal is fed as an analog input into thedata acquisition device, which is <strong>of</strong>ten a board inserted intoa personal computer. The purpose <strong>of</strong> the board is to samplethe signal <strong>and</strong> turn it into a stream <strong>of</strong> digital data. Thedigital data is stored in a buffer (either on the board or in thecomputer’s main memory). S<strong>of</strong>tware then takes over, analyzingthe data <strong>and</strong> creating appropriate displays (such as digitalreadings, graphs, or warning signals) as configured bythe user. If the data is being displayed in real time, the speed<strong>of</strong> the s<strong>of</strong>tware, the operating system, <strong>and</strong> the computer’sclock speed may become significant (see clock speed).Performance ConsiderationsThe sampling rate, or the number <strong>of</strong> times the signal is measuredper second, is <strong>of</strong> fundamental importance. A highersampling rate usually means a more accurate representation<strong>of</strong> the physical data (thus audio sampled at higher ratessounds more “natural”). The faster the sampling rate, thelarger the amount <strong>of</strong> data to be processed <strong>and</strong> the greaterthe amount <strong>of</strong> computer resources needed. Thus, picking asampling rate usually involves a trade<strong>of</strong>f between accuracy<strong>and</strong> speed (for a real-time application, data must be processedfast enough so that whoever is using it can respondto it as it comes in).Three internal factors determine the performance <strong>of</strong>a DAQ. The resolution is the number <strong>of</strong> bits available toquantify each measurement. Clearly the ability to measurethous<strong>and</strong>s <strong>of</strong> voltage levels is useless if the resolution <strong>of</strong> asystem is only 8 bits (256 possible values.) The range is thedistance between the minimum <strong>and</strong> maximum voltage levelsthe DAQ can recognize. If a signal must be “squeezed”into too narrow a range, a corresponding amount <strong>of</strong> resolutionwill be lost. Finally, there is the gain or the ratiobetween changes in the measured quantity <strong>and</strong> changes inthe signal strength.ApplicationsData acquisition systems are essential to gathering <strong>and</strong> processingthe detailed data required by scientific <strong>and</strong> engineeringapplications. The automated control <strong>of</strong> chemicalor biochemical processes requires the ability <strong>of</strong> the controls<strong>of</strong>tware to assess real-time physical data in order to maketimely adjustments to such factors as temperature, pressure,<strong>and</strong> the presence <strong>of</strong> catalysts, inhibitors, or other components<strong>of</strong> the process. The highly automated systems used inmodern aviation <strong>and</strong> increasingly, even in ground vehicles,depend on real-time data acquisition. It is not surprising,then, that data acquisition is one <strong>of</strong> the fastest-growingfields in computing.Further ReadingBeyon, Jeffrey Y. LabVIEW Programming, Data Acquisition <strong>and</strong>Analysis. Upper Saddle River, N.J.: Prentice Hall, 2000.“Data Acquisition (DAQ) Fundamentals.” Available online. URL:http://zone.ni.com/devzone/cda/tut/p/id/3216. Accessed June8, 2007.James, Kevin. PC Interfacing <strong>and</strong> Data Acquisition: Techniques forMeasurement, Instrumentation <strong>and</strong> Control. Boston: Newnes,2000.database administrationDatabase administration is the management <strong>of</strong> databasesystems (see database management system). Databaseadministration can be divided into four broad areas: datasecurity, data integrity, data accessibility, <strong>and</strong> systemdevelopment.Data SecurityWith regard to databases, ensuring data security includesthe assignment <strong>and</strong> control <strong>of</strong> users’ level <strong>of</strong> access to sensitivedata <strong>and</strong> the use <strong>of</strong> monitoring tools to detect compromise,diversion, or unauthorized changes to database files(see data security). When data is proprietary, licensingagreements with both database vendors <strong>and</strong> content providersmay also need to be enforced.Data IntegrityData integrity is related to data security, since the completeness<strong>and</strong> accuracy <strong>of</strong> data that has been compromisedcan no longer be guaranteed. However, data integrity alsorequires the development <strong>and</strong> testing <strong>of</strong> procedures for theentry <strong>and</strong> verification <strong>of</strong> data (input) as well as verifyingthe accuracy <strong>of</strong> reports (output). Database administratorsmay do some programming, but generally work with theprogramming staff in maintaining data integrity. Since mostdata in computers ultimately comes from human beings,the training <strong>of</strong> operators is also important.Within the database structure itself, the links betweendata fields must be maintained (referential integrity) <strong>and</strong>a locking system must be employed to ensure that a newupdate is not processed while a pending one is incomplete(see transaction processing).Internal procedures <strong>and</strong> external regulations mayrequire that a database be periodically audited for accuracy.While this may be the province <strong>of</strong> a specially trained informationprocessing auditor, it is <strong>of</strong>ten added to the duties<strong>of</strong> the database administrator. (See also auditing in dataprocessing.)Data AccessibilityAccessibility has two aspects. First, the system must be reliable.Data must be available whenever needed by the organization,<strong>and</strong> in many applications such as e-commerce,this means 24 hours a day, 7 days a week (24/7). Reliabilityrequires making the system as robust as possible, such asby “mirroring” the database on multiple servers (which inturn requires making sure updates are stored concurrently).Failure must also be planned for, which means the imple-


database management system 131mentation <strong>of</strong> onsite <strong>and</strong> <strong>of</strong>fsite backups <strong>and</strong> procedures forrestoring data (see backup <strong>and</strong> archive systems).System DevelopmentAn enterprise database is not a static entity. The dem<strong>and</strong> fornew views or applications <strong>of</strong> data requires the development<strong>and</strong> testing <strong>of</strong> new queries <strong>and</strong> reports. While this is normallydone by the database programmers, the administratormay need to consider its impact on the operation <strong>of</strong> thesystem. The administrator also helps plan for the needs <strong>of</strong> agrowing, changing, organization by designing or evaluatingproposals for exp<strong>and</strong>ing the system, possibly moving it tonew hardware or a new operating system or migrating thedatabase applications to a new database management system(DBMS).Because <strong>of</strong> the importance <strong>of</strong> database management tocorporations, government, <strong>and</strong> other organizations, databaseadministration became a “hot” employment area inthe 1990s. Most database administrators specialize in aparticular database platform, such as Oracle or Micros<strong>of</strong>tAccess. The growing need to make databases accessible viathe Internet has added a new range <strong>of</strong> challenges to thedatabase administrator, including the management <strong>of</strong> servers,remote authentication <strong>of</strong> users, <strong>and</strong> the mastery <strong>of</strong> Java,Common Gateway Interface (CGI), <strong>and</strong> scripting languagesin order to tie the database to the server <strong>and</strong> user (see Java,cgi, Perl, <strong>and</strong> xml).Further ReadingAbout.com. Database Administration [links]. Available online. URL:http://databases.about.com/od/administration/Database_Administration.htm. Accessed July 8, 2007.Alapati, Sam R. Expert Oracle Database 10g Administration. Berkeley,Calif.: Apress, 2005.Mannino, Michael A. Database Design, Application Development,<strong>and</strong> Administration. 3rd ed. New York: McGraw-Hill, 2005.Mullins, Craig S. Database Administration: The Complete Guide toPractices <strong>and</strong> Procedures. Reading, Mass: Addison-Wesley Pr<strong>of</strong>essional,2002.MySQL AB. MySQL Administrator’s Guide <strong>and</strong> Language Reference.Indianapolis: MySQL Press, 2005.Wood, Dan, Chris Leiter, <strong>and</strong> Paul Turley. Beginning SQL Server2005 Administration. Indianapolis: Wrox, 2006.database management system (DBMS)A database management system consists <strong>of</strong> a database (acollection <strong>of</strong> information, usually organized into recordswith component fields) <strong>and</strong> facilities for adding, updating,retrieving, manipulating, <strong>and</strong> reporting on data.Database StructureIn the early days <strong>of</strong> computing, a database generally consisted<strong>of</strong> a single file that was divided into data blocks thatin turn consisted <strong>of</strong> records <strong>and</strong> fields within records. TheCOBOL language was (<strong>and</strong> is) particularly suited to reading,processing, <strong>and</strong> writing data in such files. This flatfile database model is still used for many simple applicationsincluding “home data managers.” However, for morecomplex applications where there are many files containinginterrelated data, the flat file model proves inadequate.Because both the Customer Record <strong>and</strong> the Transaction Recordinclude the Customer Number field, it is easy to pull informationfrom both databases into a single report, such as a summary <strong>of</strong> purchasesfor each customer.In 1970, computer scientist E. F. Codd proposed a relationalmodel for data organization. In the relational model,data is not viewed as files containing records, but as a set<strong>of</strong> tables, where the columns represent fields <strong>and</strong> the rowsindividual entities (such as customers or transactions).A field (column) that two tables have in common (calledthe key) can be used to link the two. For example, considera table <strong>of</strong> customer information (name, customer number,address, current balance, <strong>and</strong> so on) <strong>and</strong> a table <strong>of</strong> transactioninformation (product number, quantity, customernumber <strong>of</strong> purchaser, <strong>and</strong> so on).To find all the items purchased by a particular customer,the relational database uses the common field (the customeraccount number) to join the two tables. A query can thenselect all records in the transaction file whose customernumber field matches the current customer in the customerfile. (Notice that the validity <strong>of</strong> a key field depends on itsbeing unique: If each customer doesn’t have one [<strong>and</strong> onlyone] customer number, any report <strong>of</strong> purchases will not bedependable.)A procedure called normalization is <strong>of</strong>ten used to createa set <strong>of</strong> tables from a set <strong>of</strong> data files <strong>and</strong> records, such thatno fields contain duplicate information. This is necessary inorder to ensure that a piece <strong>of</strong> information can be updated<strong>and</strong> the update “propagated” to the entire database withoutmissing any instances.Relational databases usually also enforce referential integrity.This means preventing changes to the database fromcausing inconsistencies. For example, if table A <strong>and</strong> table Bare linked <strong>and</strong> a record is deleted from table A, any links tothat record from records in table B must be removed. Similarly,if a change is made in a linked field in a table, recordsin a linked table must be updated to reflect the change.During the 1980s, the dBase relational database programbecame the most popular DBMS on personal computers.Micros<strong>of</strong>t Access is now popular on Windows systems,


132 database management systemMicros<strong>of</strong>t Access is a popular relational database program for personal computers. It can be used for both simple (“flat file”) databases <strong>and</strong>for complex databases with many interrelated files.<strong>and</strong> Oracle is prominent in the UNIX world. Beginningin the 1980s, SQL (Structured Query Language) became awidely used st<strong>and</strong>ard for querying <strong>and</strong> manipulating datatables, <strong>and</strong> most DBMS implement SQL (see sql).TrendsThe embracing <strong>of</strong> object-oriented programming principlesstarting in the 1980s has led to development <strong>of</strong> object-orienteddatabase structures (see object-oriented programming).In this approach tables, queries, views, <strong>and</strong> othercomponents <strong>of</strong> the DBMS are treated as objects that presenttheir functionality through interfaces (much in the way aclass in an object-oriented program does). This approachcan improve data integrity, flexibility (such as through theability to define new operations), <strong>and</strong> the development <strong>of</strong>new capabilities derived from predecessor objects. Objectmodels are also helpful in dealing with a networked worldin which data tables are <strong>of</strong>ten stored on separate computers.As important as changes in the architecture <strong>of</strong> databaseshave been, the impact <strong>of</strong> a changing environment has probablybeen even more significant. In particular, Web sites <strong>of</strong>all kinds are increasingly being driven by databases (such asfor inventory <strong>and</strong> order processing for e-commerce). In turn,many databases <strong>of</strong> all sizes <strong>and</strong> types are now accessible <strong>and</strong>searchable via the Web. This has meant a new emphasis onrapid development <strong>of</strong> database programs, particularly usingscripting languages, as well as fast <strong>and</strong> efficient Web-baseddatabase processing (see also Ajax). While the traditionalhigh-end corporate database systems such as Oracle <strong>and</strong>SQL Server are still vital for the enterprise, open-sourcealternatives (particularly MySQL) are in widespread use formany applications including wikis <strong>and</strong> content-managementsystems. The use <strong>of</strong> flexibly structured data (see xml <strong>and</strong>semantic Web) to link <strong>and</strong> transform databases has alsoexp<strong>and</strong>ed database concepts in the Web-centric world.Further ReadingAllen, Christopher, Catherine Creary, <strong>and</strong> Simon Chatwin. Introductionto Relational Databases. Berkeley, Calif.: McGraw-HillOsborne, 2003.


data communications 133Hellerstein, Joseph S., <strong>and</strong> Michael Stonebreaker, eds. Readingsin Database Systems. 4th ed. Cambridge, Mass.: MIT Press,2005.H<strong>of</strong>fer, Jeffrey A., Mary Prescott, <strong>and</strong> Fred McFadden. ModernDatabase Management. 8th ed. Upper Saddle River, N.J.: PrenticeHall, 2006.Powell, Gavin. Beginning XML Databases. Indianapolis: Wrox,2006.“Web Programming: Databases.” Available online. URL: http://www.webreference.com/programming/databases.html.Accessed July 8, 2007.Williams, Hugh E., <strong>and</strong> David Lane. Web Database Applicationswith PHP <strong>and</strong> MySQL. 2nd ed. Sebastapol, Calif.: O’ReillyMedia, 2004.data communicationsBroadly speaking, data communications is the transfer <strong>of</strong>data between computers <strong>and</strong> their users. At its most abstractlevel, data communications requires two or more computers,a device to turn data into electronic signals (<strong>and</strong> backagain), <strong>and</strong> a transmission medium. Telephone lines, fiberoptic cable, network (Ethernet) cable, video cable, radio(wireless), or other kinds <strong>of</strong> links can be used. Finally, theremust be s<strong>of</strong>tware that can manage the flow <strong>of</strong> data.Until recently, the modem was the main device usedto connect personal computers to information services orModern data communications can be thought <strong>of</strong> as a series <strong>of</strong> layers,from the actual physical connection (such as a cable) at the“bottom” to the operations <strong>of</strong> s<strong>of</strong>tware such as Web browsers or e-mail programs at the highest level.networks (see modem). In general, data being sent over acommunications link must be sent one bit at a time (this iscalled serial transmission, <strong>and</strong> is why an external modem isconnected to a computer’s serial port). However most phonecables <strong>and</strong> other links are multiplexed, meaning that theycarry many channels (with many streams <strong>of</strong> data bits) atthe same time.To properly recognize data in a bit stream coming over alink, the transmission system must use some method <strong>of</strong> flowcontrol <strong>and</strong> have some way to detect errors (see error correction).Typically, the data is sent as groups or “frames”<strong>of</strong> bits. The frame includes a checksum that is verified bythe receiver. If the expected <strong>and</strong> actual sums don’t match,the recipient sends a “negative acknowledgment” messageto the sender, which will retransmit the data. In the originalsystem, the sender waited until the recipient acknowledgedeach frame before sending the next, but modern protocolsallow the sender to keep sending while the frames beingreceived are waiting to be checked.The actual transmission <strong>of</strong> data over a line can be consideredto be the lowest level <strong>of</strong> the data communicationsscheme. Above that is packaging <strong>of</strong> data as used <strong>and</strong> interpretedby s<strong>of</strong>tware. Unless two computers are directly connected,the data is sent over a network, either a local areanetwork (LAN) or a wide-area network such as the globalInternet. A network consists <strong>of</strong> interconnected nodes thatinclude switches or routers that direct data to its destination(see network). Networks such as the Internet usepacket-switching: Data is sent as individual packets thatcontain a “chunk” <strong>of</strong> data, an address, <strong>and</strong> an indication<strong>of</strong> where the data fits within the message as a whole. Thepackets are routed at the routers using s<strong>of</strong>tware that triesto find the fastest link to the destination. When the packetsarrive at the destination, they are reassembled into theoriginal message.ApplicationsData communications are the basis both for networks <strong>and</strong>for the proper functioning <strong>of</strong> servers that provide servicessuch as World Wide Web pages, electronic mail,online databases, <strong>and</strong> multimedia content (such as audio<strong>and</strong> streaming video). While Web page design <strong>and</strong> e-commerceare the “bright lights” that give cyberspace its character,data communications are like the plumbing withoutwhich computers cannot work together. The growingdem<strong>and</strong> for data communications, particularly broadb<strong>and</strong>services such as DSL <strong>and</strong> cable modems, translates into asteady dem<strong>and</strong> for engineers <strong>and</strong> technicians specializingin the maintenance <strong>and</strong> growth <strong>of</strong> this infrastructure (seebroadb<strong>and</strong>).Besides keeping up with the exploding dem<strong>and</strong> formore <strong>and</strong> faster data communications, the biggest challengefor data communications in the early 21st centuryis the integration <strong>of</strong> so many disparate methods <strong>of</strong> communications.A user may be using an ordinary phoneline (19th-century technology) to connect to the Internet,while the phone company switches might be a mixture<strong>of</strong> 1970s or later technology. The same user mightgo to the workplace <strong>and</strong> use fast Ethernet cables over a


134 data compressionlocal network, or connect to the Internet through DSL,an enhanced phone line. Traveling home, the user mightuse a personal digital assistant (PDA) with a wireless linkto make a restaurant reservation (see wireless computing).The user wants all these services to be seamless <strong>and</strong>essentially interchangeable, but today data communicationsis more like roads in the early days <strong>of</strong> the automobile—afew fast paved roads here <strong>and</strong> there, but manybumpy dirt paths.Further ReadingForouszan Behrouz. Data Communications <strong>and</strong> Networking. NewYork: McGraw Hill, 2006.Stallings, William. Data <strong>and</strong> <strong>Computer</strong> Communications. 8th ed.Upper Saddle River, N.J.: Prentice Hall, 2006.Strangio, Christopher E. “Data Communications Basics.” Availableonline. URL: http://www.camiresearch.com/Data_Com_Basics/data_com_tutorial.html. Accessed July 8, 2007.White, Curt. Data Communications <strong>and</strong> <strong>Computer</strong> Networks: A BusinessUser’s Approach. 4th ed. Boston: Course <strong>Technology</strong>,2006.data compressionThe process <strong>of</strong> removing redundant information from dataso that it takes up less space is called data compression.Besides saving disk space, compressing data such as e-mailattachments can make data communications faster.Compression methods generally begin with the realizationthat not all characters are found in equal numbers intext. For example, in English, letters such as e <strong>and</strong> s arefound much more frequently than letters such as j or x.By assigning the shortest bit codes to the most commoncharacters <strong>and</strong> the longer codes to the least common characters,the number <strong>of</strong> bits needed to encode the text can beminimized.Huffman coding, first developed in 1952, is an algorithmthat uses a tree in which the pairs <strong>of</strong> the least probable (thatis, least common) characters are linked, the next least probablelinked, <strong>and</strong> so on until the tree is complete.Another coding method, arithmetic coding, matchescharacters’ probabilities to bits in such a way that the samebit can represent parts <strong>of</strong> more than one encoded character.This is even more efficient than Huffman coding, but thenecessary calculations make the method somewhat slowerto use.Another approach to compression is to look for words(or more generally, character strings) that match thosefound in a dictionary file. The matching strings are replacedby numbers. Since a number is much shorter than a wholeword or phrase, this compression method can greatlyreduce the size <strong>of</strong> most text files. (It would not be suitablefor files that contain numerical rather than text data, sincesuch data, when interpreted as characters, would look like ar<strong>and</strong>om jumble.)The Lempel-Ziv (LZ) compression method does notuse an external dictionary. Instead, it scans the file itselffor text strings. Whenever it finds a string that occurredearlier in the text, it replaces the later occurrences withan <strong>of</strong>fset, or count <strong>of</strong> the number <strong>of</strong> bytes separating theA basic approach to data compression is to look for recurring patterns<strong>and</strong> store them in a “dictionary.” Each occurrence <strong>of</strong> thepattern can then be replaced by a brief reference to the dictionaryentry. The resulting file may then be considerably smaller than theoriginal.occurrences. This means that not only common words butcommon prefixes <strong>and</strong> suffixes can be replaced by numbers.A variant <strong>of</strong> this scheme does not use <strong>of</strong>fsets to thefile itself, but compiles repeated strings into a dictionary<strong>and</strong> replaces them in the text with an index to their positionin the dictionary.Graphics files can <strong>of</strong>ten be greatly compressed by replacinglarge areas that represent the same color (such as a bluesky) with a number indicating the count <strong>of</strong> pixels with thatvalue. However, some graphics file formats such as GIF arealready compressed, so further compression will not shrinkthem much.More exotic compression schemes for graphics can usefractals or other iterative mathematical functions to encodepatterns in the data. Most such schemes are “lossy” in thatsome <strong>of</strong> the information (<strong>and</strong> thus image texture) is lost,but the loss may be acceptable for a given application. Lossycompression schemes are not used for binary (numeric dataor program code) files because errors introduced in a programfile are likely to affect the program’s performance (ifnot “break” it completely). Though they may have less seriousconsequences, errors in text are also generally consideredunacceptable.TrendsThere are a variety <strong>of</strong> compression programs used onunix systems, but variants <strong>of</strong> the Zip program are nowthe overwhelming favorite on Windows-based systems. Zipcombines compression <strong>and</strong> archiving. Archiving, or thebundling together <strong>of</strong> many files into a single file, contributesa further reduction in file size. This is because files inmost file systems must use a whole number <strong>of</strong> disk sectors,even if that means wasting most <strong>of</strong> a sector. Combining filesinto one file means that at most a bit less than one sectorwill be wasted.


data mining 135Further ReadingArimura, Mitsuharu. “Mitsuharu Arimura’s Bookmarks on SourceCoding/Data Compression.” Available online. URL: http://www.hn.is.uec.ac.jp/~arimura/compression_links.html.Accessed July 8, 2007.“Data Compression Reference Center.” Available online. URL:http://www.rasip.fer.hr/_research/compress/index.html.Accessed July 8, 2007.Saloman, David. Data Compression: The Complete Reference. 4th ed.New York: Springer-Verlag, 2006.Sayood, Khalid. Introduction to Data Compression. 3rd ed. SanFrancisco: Morgan Kaufmann, 2005.data conversionThe developer <strong>of</strong> each application program that writes datafiles must define a format for the data. The format mustbe able to preserve all the features that are supported bythe program. For example, a word processing program willinclude special codes for font selection, typestyles (such asbold or italic), margin settings, <strong>and</strong> so on.In most markets there are more than one vendor, sothere is the potential for users to encounter the need toconvert files such as word processing documents from onevendor’s format to another. For example, a Micros<strong>of</strong>t Worduser needing to send a document to a user who has Word-Perfect, or the user may encounter another user who alsohas Micros<strong>of</strong>t Word, but a later version.There are some ways in which vendors can relieve some<strong>of</strong> their users’ file conversion issues (<strong>and</strong> thus potentialcustomer dissatisfaction). Vendors <strong>of</strong>ten include facilities toread files created by their major rivals’ products, <strong>and</strong> to savefiles back into those formats. This enables users to exchangefiles. Sometimes the converted document will look exactlylike the original, but in some cases there is no equivalencebetween a feature (<strong>and</strong> thus a code) in one application <strong>and</strong> afeature in the other application. In that case the formattingor other feature may not carry over into the converted version,or may be only partially successful.Vendors generally make a new version <strong>of</strong> an applicationdownwardly compatible with previous versions (seealso compatability <strong>and</strong> portability). This means that thenew version can read files created with the earlier versions.(After all, users would not be happy if none <strong>of</strong> their existingdocuments were accessible to their new s<strong>of</strong>tware!) Similarly,there is usually a way to save a file from the later version inthe format <strong>of</strong> an earlier version, though features added in thelater version will not be available in the earlier format.Another strategy for exchanging otherwise incompatiblefiles is to find some third format that both applications canread. Thus Rich Text Format (RTF), a format that includesmost generic document features, is supported by most modernword processors. A user can thus export a file as RTF<strong>and</strong> the user <strong>of</strong> a different program will be able to read it(see rtf). Similarly, many database <strong>and</strong> other programs canexport files as a series <strong>of</strong> data values separated by commas(comma-delimited files), <strong>and</strong> the files can be then read by adifferent program <strong>and</strong> converted to its “native” format.A variety <strong>of</strong> format conversion utilities are available aseither commercial s<strong>of</strong>tware or shareware. There are also businessesthat specialize in data conversion. While their servicescan be expensive, using them may be the best way to convertlarge numbers <strong>of</strong> files, rather than having to individuallyload <strong>and</strong> save them. Data conversion services can also h<strong>and</strong>lemany “ancient” data files from the 1970s or even early 1980swhose formats are no longer supported by current s<strong>of</strong>tware.Further ReadingHeuser, Werner. “Data Conversion <strong>and</strong> Migration Tools.” Availableonline. URL: http://dataconv.org/. Accessed July 8, 2007.“Media Conversion: Online File Conversions.” Available online.URL: http://www.iconv.com/. Accessed July 8, 2007.data dictionaryA modern enterprise database system can contain hundreds<strong>of</strong> separate data items, each with important characteristicssuch as field types <strong>and</strong> lengths, rules for validating the data,<strong>and</strong> links to various databases that use that item (see databasemanagement system). There can also be many differentviews or ways <strong>of</strong> organizing subsets <strong>of</strong> the data, <strong>and</strong> storedprocedures (program code modules) used to perform variousdata processing functions. A developer who is creatingor modifying applications that deal with such a vast databasewill <strong>of</strong>ten need to check on the relationships between dataelements, views, procedures, <strong>and</strong> other aspects <strong>of</strong> the system.One fortunate characteristic <strong>of</strong> computer science is thatmany tools can be applied to themselves, <strong>of</strong>ten because thecontents <strong>of</strong> a program is itself a collection <strong>of</strong> data. Thus, it ispossible to create a database that keeps track <strong>of</strong> the elements<strong>of</strong> another database. Such a database is sometimes called adata dictionary. A data dictionary system can be developedin the same way as any other database, but many databasedevelopment systems now contain built-in facilities for generatingdata dictionary entries as new data items are defined,<strong>and</strong> updating definitions as items are linked together <strong>and</strong> newviews or stored procedures are defined. (A similar approachcan be seen in some s<strong>of</strong>tware development systems that createa database <strong>of</strong> objects defined within programs, in order topreserve information that can be useful during debugging.)Data dictionaries are particularly important for creatingdata warehouses (see data warehouse), which are largecollections <strong>of</strong> data items that are stored together with theprocedures for manipulating <strong>and</strong> analyzing them.Further ReadingKreines, David. Oracle Data Dictionary Pocket Reference. Sebastapol,Calif.: O’Reilly Media, 2003.Pelzer, Trudy. “MySQL 5.0 New Features: Data Dictionary.”Available online. URL: http://dev.mysql.com/tech-resources/articles/mysql-datadictionary.html. Accessed July 8, 2007.data glove See haptics.data miningThe process <strong>of</strong> analyzing existing databases in order to finduseful information is called data mining. Generally, a database,whether scientific or commercial, is designed for a


136 data securityparticular purpose, such as recording scientific observationsor keeping track <strong>of</strong> customers’ account histories. However,data <strong>of</strong>ten has potential applications beyond thoseconceived by its collector.Conceptually, data mining involves a process <strong>of</strong> refiningdata to extract meaningful patterns—usually with somenew purpose in mind. First, a promising set or subset <strong>of</strong> thedata is selected or sampled. Particular fields (variables) <strong>of</strong>interest are identified. Patterns are found using techniquessuch as regression analysis to find variables that are highlycorrelated to (or predicted by) other variables, or throughclustering (finding the data records that are the most similaralong the selected dimensions). Once the “refined” datais extracted, a representation or visualization (such as areport or graph) is used to express newly discovered informationin a usable form.Similar (if simpler) techniques are being used to targetor personalize marketing, particularly to online customers.For example, online bookstores such as Amazon.com canfind what other books have been most commonly boughtby people buying a particular title. (In other words, identifya sort <strong>of</strong> reader pr<strong>of</strong>ile.) If a new customer searches forthat title, the list <strong>of</strong> correlated titles can be displayed, withan increased likelihood <strong>of</strong> triggering additional purchases.Businesses can also create customer pr<strong>of</strong>iles based on theirlonger-term purchasing patterns, <strong>and</strong> then either use themfor targeted mailings or sell them to other businesses (seee-commerce). In scientific applications, observations canbe “mined” for clues to phenomena not directly related tothe original observation. For example, changes in remotesensor data might be used to track the effects <strong>of</strong> climateor weather changes. Data-mining techniques can even beapplied to the human genome (see bioinformatics).TrendsData mining <strong>of</strong> consumer-related information has emergedas an important application as the volume <strong>of</strong> e-commercecontinues to grow, the amount <strong>of</strong> data generated by largesystems (such as online bookstores <strong>and</strong> auction sites)increases, <strong>and</strong> the value <strong>of</strong> such information to marketersbecomes established. However, the use <strong>of</strong> consumer datafor purposes unrelated to the original purchase, <strong>of</strong>ten bycompanies that have no pre-existing business relationshipto the consumer, can raise privacy issues. (Data is <strong>of</strong>tenrendered anonymous by removing personal identificationinformation before it is mined, but regulations or otherways to assure privacy remain incomplete <strong>and</strong> uncertain.)The most controversial applications <strong>of</strong> data mining arein the area <strong>of</strong> intelligence <strong>and</strong> homel<strong>and</strong> security. Becausesuch applications are <strong>of</strong>ten shrouded in secrecy, the public<strong>and</strong> even lawmakers have difficulty in assessing their value<strong>and</strong> devising privacy safeguards. According to the GovernmentAccountability Office, as <strong>of</strong> 2007 some 199 differentdata-mining programs were in use by at least 52 federalagencies. One <strong>of</strong> the most controversial is ADVISE (AnalysisDissemination, Visualization, Insight <strong>and</strong> SemanticEnhancement), developed by the Department <strong>of</strong> Homel<strong>and</strong>Security since 2003. The program purportedly can match<strong>and</strong> create pr<strong>of</strong>iles using government records <strong>and</strong> users’Web sites <strong>and</strong> blogs. Privacy advocates <strong>and</strong> civil libertarianshave raised concerns, <strong>and</strong> legislation has been introducedthat would require that all federal agencies report their dataminingactivities to Congress (see also counterterrorism<strong>and</strong> computers <strong>and</strong> privacy in the digital age.)Further ReadingClayton, Mark. “U.S. Plans Massive Data Sweep.” Christian <strong>Science</strong>Monitor, February 9, 2006, n.p. Available online. URL: http://www.csmonitor.com/2006/0209/p01s02-uspo.html. AccessedJuly 8, 2007.Dunham, Margaret H. Data Mining: Introductory <strong>and</strong> Advanced Topics.Upper Saddle River, N.J.: Prentice Hall, 2002.Markov, Zdravko, <strong>and</strong> Daniel T. Larose. Data Mining the Web:Uncovering Patterns in Web Content, Structure, <strong>and</strong> Usage.Hoboken, N.J.: Wiley, 2007.Tan, Pang-Ning, Michael Steinbach, <strong>and</strong> Vipin Kumar. Introductionto Data Mining. Upper Saddle River, N.J.: Pearson Education,2006.data securityIn most institutional computing environments, access toprogram <strong>and</strong> data files is restricted to authorized persons.There are several mechanisms for restricting file access in amultiuser or networked system.User StatusBecause <strong>of</strong> their differing responsibilities, users are <strong>of</strong>tengiven differing restrictions on access. For example, theremight be status levels ranging from root to administrator to“ordinary.” A user with root status on a UNIX system is ableto access any file or resource. Any program run by such auser inherits that status, <strong>and</strong> thus can access any resource.Generally, only the user(s) with ultimate responsibility forthe technical functioning <strong>of</strong> the system should be givensuch access, because comm<strong>and</strong>s used by root users have thepotential to wipe out all data on the system. A person withadministrator status may be able to access the files <strong>of</strong> otherusers <strong>and</strong> to access certain system files (in order to changeconfigurations), but will not be able to access certain coresystem files. Ordinary users typically have access only tothe files they create themselves <strong>and</strong> to files designated as“public” by other users.File PermissionsFiles themselves can have permission status. In UNIX,there are separate statuses for the user, any group to whichthe user belongs, <strong>and</strong> “others.” There are also three differentactivities that can be allowed or disallowed: reading, writing,<strong>and</strong> executing. For example, if a file’s permissions areUser Group Otherrwx rw- r—the user can read or write the file or (if it is a directory orprogram), execute it. Members <strong>of</strong> the same group can reador write, but not execute, while others can only read the filewithout being able to change it in any way. Operating systemssuch as Windows NT use a somewhat different struc-


data structures 137ture <strong>and</strong> terminology, but also provide for varying userstatus <strong>and</strong> access to objects.Record-level SecuritySecurity on the basis <strong>of</strong> whole directories or even files maybe too “coarse” for many applications. In a particular databasefile, different users may be given access to differentdata fields. For example, a clerk may have read-only accessto an employee’s basic identification information, but notto the results <strong>of</strong> performance evaluations. An administratormay have both read <strong>and</strong> write access to the latter. Usingsome combination <strong>of</strong> database management <strong>and</strong> operatingsystem level capabilities, the system will maintain lists <strong>of</strong>user accounts together with the objects (such as recordtypes or fields) they can access, <strong>and</strong> the types <strong>of</strong> access(read only or read/write) that are permitted. Rather thanassigning access capabilities separately for each user, theymay be defined for a group <strong>of</strong> similar users, <strong>and</strong> then individualusers can be assigned to the group.Other Security MeasuresSecurity is also important at the program level. Because abadly written (or malicious) program might destroy importantdata or system files, most modern operating systemsrestrict programs in a number <strong>of</strong> ways. Generally, each programis allowed to access only such memory as it allocatesitself, <strong>and</strong> is not able to change data in memory belongingto other running programs. Access to hardware devices canalso be restricted: an operating system component may havethe ability to access the innermost core <strong>of</strong> the operating system(where drivers interact directly with devices), whilean ordinary applications program may be able to accessdevices only through facilities provided by the operatingsystem.There are a number <strong>of</strong> techniques that unauthorizedintruders can use to try to compromise operating systems(see computer crime <strong>and</strong> security). Access capabilitiesthat are tied to user status are vulnerable if the user can getthe login ID <strong>and</strong> password for the account. If the accounthas a high (administrator or root) status, then the intrudermay be able to give viruses, Trojan horses, or other maliciousprograms the status they need in order to be able topenetrate the defenses <strong>of</strong> the operating system (see alsocomputer virus).Files that have intrinsically sensitive or valuable dataare <strong>of</strong>ten further protected by encoding them (see encryption).Encryption means that even intruders who gain readaccess to the file will need either to crack the encryption(very difficult without considerable time <strong>and</strong> computerresources) or somehow obtain the key. Encryption does notprevent the deletion or copying <strong>of</strong> a file, however, just theunderst<strong>and</strong>ing <strong>of</strong> its contents.The dispersal <strong>of</strong> valuable or sensitive data (such as customers’social security numbers) across exp<strong>and</strong>ing networksincreases the risk <strong>of</strong> “data breaches” where the privacy,financial security, <strong>and</strong> even identity <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> peopleare compromised (see also identity theft). In recentyears, for example, there have been numerous cases wherelaptop computers containing thous<strong>and</strong>s <strong>of</strong> sensitive recordshave been stolen from universities, financial institutions,or government agencies—in such cases there is <strong>of</strong>ten noway to know whether the thief will actually access the data.(Often affected individuals are notified that they may beat risk, <strong>and</strong> such prophylactic measures as credit monitoringare provided.) In response to public anxiety there hasbeen pressure for federal or state legislation that wouldmake companies responsible for breaches <strong>of</strong> their data <strong>and</strong>specify compensation or other recourse for affected customers.(Opponents <strong>of</strong> such laws cite government reports thatfind that most data breaches do not lead to identity theft,<strong>and</strong> that the regulations would increase the cost <strong>of</strong> millions<strong>of</strong> daily transactions.)There is a continuing trade<strong>of</strong>f between security <strong>and</strong> ease<strong>of</strong> use. From the security st<strong>and</strong>point, it might be assumedthat the more barriers or checkpoints that can be set upfor verifying authorization, the safer the system will be.However, as security systems become more complex, itbecomes more difficult to ensure that authorized users arenot unduly inconvenienced. If users are sufficiently frustrated,they will be tempted to try to bypass security, suchas by sharing IDs <strong>and</strong> passwords or making files they create“public.”Further ReadingGarretson, Cara. “The Do’s <strong>and</strong> Don’ts <strong>of</strong> Data Breaches: HowSecurity Pr<strong>of</strong>essionals Can Lessen the Impact.” NetworkWorld, June 18, 2007, p. 1.Grant, Gross. “Gov’t Report: Data Breaches Don’t Often Result inID Theft.” PC World, July 6, 2007, n.p. Available online. URL:http://www.pcworld.com/article/id,134203-c,privacysecurity/article.html. Accessed July 8, 2007.Killmeyer, Jan. Information Security Architecture: An IntegratedApproach to Security in the Organization. 2nd ed. Boca Raton,Fla.: Auerbach Publications, 2006.Rasch, Max. “Strict Liability for Data Breaches?” Availableonline. URL: http://www.securityfocus.com/columnists/387.Accessed July 8, 2007.Tipton, Harold F., <strong>and</strong> Micki Krause. Information Security ManagementH<strong>and</strong>book. 6th ed. Boca Raton, Fla.: Auerbach Publications,2007.data structuresA data structure is a way <strong>of</strong> organizing data for use in acomputer program. There are three basic components to adata structure: a set <strong>of</strong> suitable basic data types, a way toorganize or relate these data items to one another, <strong>and</strong> a set<strong>of</strong> operations, or ways to manipulate the data.For example, the array is a data structure that canconsist <strong>of</strong> just about any <strong>of</strong> the basic data types, althoughall data must be <strong>of</strong> the same type. The way the data is organizedis by storing it in sequentially addressable locations.The operations include storing a data item (element) in thearray <strong>and</strong> retrieving a data item from the array.Types <strong>of</strong> Data StructuresThe data structures commonly used in computer scienceinclude arrays (as discussed above) <strong>and</strong> various types <strong>of</strong>lists. The primary difference between an array <strong>and</strong> a list isthat an array has no internal links between its elements,


138 data typeswhile a list has one or more pointers that link the elements.There are several types <strong>of</strong> specialized list. A tree is a listthat has a root (an element with no predecessor), <strong>and</strong> eachother element has a unique predecessor. The guarantee <strong>of</strong>a unique path to each tree node can make the operations<strong>of</strong> inserting or deleting an item faster. A stack is a listthat is accessible only at the top (or front). Any new itemis inserted (“pushed”) on top <strong>of</strong> the last item, <strong>and</strong> removing(“popping”) an item always removes the item that waslast inserted. This order <strong>of</strong> access is called LIFO (last in,first out). A list can also be organized in a first in, first out(FIFO) order. This type <strong>of</strong> list is called a queue, <strong>and</strong> isuseful in a situation where tasks must “wait their turn” forattention.Implementation IssuesThe implementation <strong>of</strong> any data structure depends on thesyntax <strong>of</strong> the programming language to be used, the datatypes <strong>and</strong> features available in the language, <strong>and</strong> the algorithmschosen for the data operations that manipulate thestructure. In traditional procedural languages such as C, thedata storage part <strong>of</strong> a data structure is <strong>of</strong>ten specified in onepart <strong>of</strong> the program, <strong>and</strong> the functions that operate on thatstructure are defined separately. (There is no mechanismin the language to link them.) In object-oriented languagessuch as C++, however, both the data storage declarations<strong>and</strong> the function declarations are part <strong>of</strong> the same entity, aclass. This means that the designer <strong>of</strong> the data structurehas complete control over its implementation <strong>and</strong> use.Together with algorithms, data structures make up theheart <strong>of</strong> computer science. While there can be numerousvariations on the fundamental data structures, underst<strong>and</strong>ingthe basic forms <strong>and</strong> being able to decide which oneto use to implement a given algorithm is the best way toassure effective program design.Further ReadingDrozdek, Adam. Data Structures <strong>and</strong> Algorithms in C++. 3rd ed.Boston: Course <strong>Technology</strong>, 2004.Ford, William H., <strong>and</strong> William R. Topp. Data Structures with Java.Upper Saddle River, N.J.: Prentice Hall, 2004.Lafore, Robert. Data Structures & Algorithms in Java. 2nd ed. Indianapolis:Sams, 2003.Storer, J. A. An Introduction to Data Structures <strong>and</strong> Algorithms. NewYork: Springer, 2002.data typesAs far as the circuitry <strong>of</strong> a computer is concerned, there’sonly one kind <strong>of</strong> data—a series <strong>of</strong> bits (binary digits) fillinga series <strong>of</strong> memory locations. How those bits are to beinterpreted by the people using the computer is entirelyarbitrary. The purpose <strong>of</strong> data types is to define useful conceptssuch as integer, floating-point number, or character interms <strong>of</strong> how they are stored in computer memory.Thus, most computer languages have a data type calledinteger, which represents a whole number that can be storedin 16 bits (two bytes) <strong>of</strong> memory. When a programmerwrites a declaration such as:int Counter;in the C language, the compiler will create machine instructionsthat set aside two bytes <strong>of</strong> memory to hold the contents<strong>of</strong> the variable Counter. If a later statement says:Counter = Counter + 1;(or its equivalent, Counter++) the program’s instructionsare set up to fetch two bytes <strong>of</strong> memory to the processor’saccumulator, add 1, <strong>and</strong> store the result back into the twomemory bytes.Similarly, the data type long represents four bytes (32bits) worth <strong>of</strong> binary digits, while the data type float storesa floating-point number that can have a whole part <strong>and</strong> adecimal fraction part (see numeric data). The char (character)type typically uses only a single byte (8 bits), whichis enough to hold the basic ASCII character codes up to 255(see characters <strong>and</strong> strings).The Bool (Boolean) data type represents a simple true orfalse (usually 1 or 0) value (see Boolean operators).Structured Data TypesThe preceding data types all hold single values. However,most modern languages allow for the construction <strong>of</strong> datatypes that can hold more than one piece <strong>of</strong> data. The arrayis the most basic structured data type; it represents a series<strong>of</strong> memory locations that hold data <strong>of</strong> one <strong>of</strong> the basictypes. Thus, in Pascal an array <strong>of</strong> integer holds integers,each taking up two bytes <strong>of</strong> memory.Many languages have composite data types that canhold data <strong>of</strong> several different basic types. For example, thestruct in C or the record in Pascal can hold data such as aperson’s first <strong>and</strong> last name, three lines <strong>of</strong> address (all arrays<strong>of</strong> characters, or strings), an employee number (perhaps aninteger or double), a Boolean field representing the presenceor absence <strong>of</strong> some status, <strong>and</strong> so on. This kind <strong>of</strong> data typeis also called a user-defined data type because programmerscan define <strong>and</strong> use these types in almost the same ways asthey use the language’s built-in basic types.What is the difference between data types <strong>and</strong> datastructures? There is no hard-<strong>and</strong>-fast distinction. Generally,data structures such as lists, stacks, queues, <strong>and</strong>trees are more complex than simple data types, becausethey include data relationships <strong>and</strong> special functions(such as pushing or popping data on a stack). However,a list is the fundamental data type in list-processing languagessuch as Lisp, <strong>and</strong> string operators are built intolanguages such as Snobol. (See list processing, stack,queue, <strong>and</strong> tree.)Further, in many modern languages fundamental <strong>and</strong>structured data types are combined seamlessly into classesthat combine data structures with the relevant operations(see class <strong>and</strong> object-oriented programming).Further ReadingPrata, Stephen. C Primer Plus. 5th ed. Indianapolis: Sams, 2003.———. C++ Primer Plus. 5th ed. Indianapolis: Sams, 2005.“Type System.” Wikipedia. Available online. URL: http://en.wikipedia.org/wiki/Type_system. Accessed July 8, 2007.Watt, David A., <strong>and</strong> Deryck F. Brown. Java Collections: An Introductionto Abstract Data Types, Data Structures, <strong>and</strong> Algorithms.New York: Wiley, 2001.


decision support system 139data warehouseModern business organizations create <strong>and</strong> store a tremendousamount <strong>of</strong> data in the form <strong>of</strong> transactions that becomedatabase records. Increasingly, however, businesses arerelying on their ability to use data that was collected for onepurpose (such as sales, customer service, <strong>and</strong> inventory)for purposes <strong>of</strong> marketing research, planning, or decisionsupport. For example, transaction data might be revisitedwith a view to identifying the common characteristics <strong>of</strong>the firm’s best customers or determining the best way tomarket a particular type <strong>of</strong> product. In order to conductsuch research or analysis, the data collected in the course <strong>of</strong>business must be stored in such a way that it is both accurate<strong>and</strong> flexible in terms <strong>of</strong> the number <strong>of</strong> different ways inwhich it can be queried. The idea <strong>of</strong> the data warehouse isto provide such a repository for data.When data is used for particular purposes such as salesor inventory control, it is usually structured in recordswhere certain fields (such as stock number or quantity)are routinely processed. It is not so easy to ask a differentquestion such as “which customers who bought thisproduct from us also bought this other product within sixmonths <strong>of</strong> their first purchase?” One way to make it easierto query data in new ways is to store the data not in recordsbut in arrays where, for example, one dimension mightbe product numbers <strong>and</strong> another categories <strong>of</strong> customers.This approach, called Online Analytical Processing (OLAP)makes it possible to extract a large variety <strong>of</strong> relationshipswithout being limited by the original record structure.ImplementationThe key in designing a data warehouse is to provide a waythat researchers using analytical tools (such as statisticsprograms) can access the raw data in the underlying database.S<strong>of</strong>tware using query languages such as SQL canserve as such a link. Thus, the researcher can define a queryThe general process <strong>of</strong> warehousing data. The data warehouse addsvalue to the data by further structuring it so relationships can beexplored by analysts.using the many dimensions <strong>of</strong> the data array, <strong>and</strong> the OLAPs<strong>of</strong>tware (also called middleware) translates this query intothe appropriate combination <strong>of</strong> queries against the underlyingrelational database.The data warehouse is closely related to the concept<strong>of</strong> data mining. In fact, data mining can be viewed as theexploitation <strong>of</strong> the collection <strong>of</strong> views, queries, <strong>and</strong> otherelements that can be generated using the data warehouse asthe infrastructure (see data mining).Further ReadingData Warehousing Information Center. Available online. URL:http://www.dwinfocenter.org/. Accessed July 8, 2007.DM Review/dataWarehouse.com Available online. URL: http://www.datawarehouse.com/. Accessed July 8, 2007.Inmon, W. H. Building the Data Warehouse. 4th ed. Indianapolis:Wiley, 2005.Kimball, Ralph, <strong>and</strong> Margy Ross. The Data Warehouse Toolkit: TheComplete Guide to Dimensional Modeling. 2nd ed. Indianapolis:Wiley, 2002.DBMS See database management system.decision support systemA decision support system (DSS) is a computer applicationthat focuses on providing access to or analysis <strong>of</strong> thekey information needed to make decisions, particularly inbusiness. (It can be thought <strong>of</strong> as a more narrowly focusedapproach to computer assistance to management—see managementinformation system.)The development <strong>of</strong> DSS has several roots reaching backto the 1950s. This includes operational analysis <strong>and</strong> the theory<strong>of</strong> organizations <strong>and</strong> the development <strong>of</strong> the first interactive(rather than batch-processing) computer systems.Indeed, the SAGE automated air defense system developedstarting in the 1950s could be described as a military DSS.The system presented real-time information (radar plots)<strong>and</strong> enabled the operator to select <strong>and</strong> focus on particularelements using a light pen. By the 1960s more-systematicresearch on DSS was underway <strong>and</strong> included the provocativeidea <strong>of</strong> “human-computer symbiosis” for problem solving(see Licklider, J. C. R.).The “back end” <strong>of</strong> a DSS is one or more large databases(see data warehouse) that might be compiled from transactionrecords, statistics, online news services, or other sources.The “middle” <strong>of</strong> the DSS process includes the ability to analyzethe data (online analytical processing, or OLAP; see alsodata mining). Other elements that might be included in aDSS are rules-based systems (see expert system) <strong>and</strong> interactivemodels (see simulation). These elements can help theuser explore alternatives <strong>and</strong> “what if” scenarios.The structure <strong>of</strong> a DSS is sometimes described as modeldriven (generally using a small amount <strong>of</strong> selected data),data driven (based on a large collection <strong>of</strong> historical data),knowledge driven (perhaps using an expert system), orcommunications driven (focusing on use <strong>of</strong> collaboratives<strong>of</strong>tware—see groupware, as well as more recent developments)(see wikis <strong>and</strong> Wikipedia).


140 Dell, Inc.User Interface—The “Front End”All the data <strong>and</strong> tools in the world are <strong>of</strong> little use if theuser cannot work with it effectively (see user interface).Information or the results <strong>of</strong> queries or modeling must bedisplayed in a way that is easy to grasp <strong>and</strong> use. (A spreadsheetwith nothing highlighted or marked would be a poorchoice.) Graphical “widgets” such as dials, buttons, sliders,<strong>and</strong> so on can help the user see the results <strong>and</strong> decide whatto look at next (see digital dashboard).Another key principle is that decision making in themodern world is as much a social as an individual process.Therefore a DSS should facilitate communication <strong>and</strong> collaboration(or interface with s<strong>of</strong>tware that does so).A variety <strong>of</strong> specialized DSSs have been developed forvarious fields. Examples include PROMIS (for medical decisionmaking) <strong>and</strong> Carnegie Mellon’s ZOG/KMS, which hasbeen used in military <strong>and</strong> business settings.Further ReadingGreenes, Robert A., ed. Clinical Decision Support: The Road Ahead.Orl<strong>and</strong>o, Fla.: Academic Press, 2006.Gupta, Jatinder N. D., Guisseppi A. Forgionne, <strong>and</strong> Manuel Mora T.,eds. Intelligent Decision-Making Support Systems. New York:Springer, 2006.Power, D. J. “A Brief History <strong>of</strong> Decision Support Systems.” Version4.0. Available online. URL: http://dssresources.com/history/dsshistory.html. Accessed September 10, 2007.Turban, Efraim, et al. Decision Support <strong>and</strong> Business Intelligence Systems.8th ed. Upper Saddle River, N.J.: Prentice-Hall, 2006.Dell, Inc.Dell <strong>Computer</strong> (NASDAQ: DELL) is one <strong>of</strong> the world’s leadingmanufacturers <strong>and</strong> sellers <strong>of</strong> desktop <strong>and</strong> laptop computers(see personal computer). By 2008 Dell had morethan 88,000 employees worldwide.The company was founded by Michael Dell, a student atthe University <strong>of</strong> Texas at Austin whose first company wasPC’s Limited, founded in 1984. Even at this early stage Dellsuccessfully employed several practices that would cometo typify the Dell strategy: Sell directly to customers (notthrough stores), build each machine to suit the customer’spreferences, <strong>and</strong> be aggressive in competing on price.In 1988 the growing company changed its name toDell <strong>Computer</strong> Corporation. In the early 1990s Dell triedan alternative business model, selling through warehouseclubs <strong>and</strong> computer superstores. When that met with littlesuccess, Dell returned to the original formula. In 1999 Dellovertook Compaq to become the biggest computer retailerin America.Generally, the Dell product line has aimed at two basicsegments: business-oriented (OptiPlex desktops <strong>and</strong> Latitudelaptops) <strong>and</strong> home/consumer (XPS desktops <strong>and</strong>Inspiron laptops, <strong>and</strong> in 2007, Inspiron desktops).Challenges <strong>and</strong> DiversificationAround 2002, Dell, perhaps facing the growing commoditypricing <strong>of</strong> basic PCs, began to exp<strong>and</strong> into computerperipherals (such as printers) <strong>and</strong> even home entertainmentproducts (TVs <strong>and</strong> audio players). In 2003 the companychanged its name to Dell, Inc. (dropping “<strong>Computer</strong>”). Dellalso experienced an increase in international sales in 2005,while achieving a first place ranking in Fortune magazineas “most admired company.” However, the company alsomade some missteps, losing $300 million because <strong>of</strong> faultycapacitors on some motherboards. Earnings continued t<strong>of</strong>all short <strong>of</strong> analysts’ expectations, <strong>and</strong> in January 2007Michael Dell returned as CEO after the resignation <strong>of</strong> KevinB. Rollins, who had held the post since 2004.Meanwhile, Dell has made further attempts at diversifyingthe product line. In 2006 the company began, for thefirst time, to introduce AMD (instead <strong>of</strong> Intel) processorsin certain products, <strong>and</strong> in 2007 Dell responded to customersuggestions by announcing that some models couldbe ordered with Linux rather than Micros<strong>of</strong>t Windowsinstalled. Also in 2007, Dell acquired Alienware, maker <strong>of</strong>high-performance gaming machines.Dell has struggled to boost its sagging revenue as itlost ground to competitors, notably HP. Known primarilyas a mail-order <strong>and</strong> online company, Dell has announcedthat it will also sell PCs through “big box” retailers suchas Wal-Mart.Dell continues to receive praise <strong>and</strong> criticism from variousquarters. On the positive side, the company has beenpraised for its computer-recycling program by the NationalRecycling Coalition. Dell products also tend to score at ornear the top in performance reviews by publications suchas PC Magazine.On the other h<strong>and</strong>, there have been complaints aboutDell’s technical support operation. Technicians apparentlyfollow “scripts” very closely, making customers take systemsapart <strong>and</strong> follow troubleshooting directions regardless<strong>of</strong> what the customer might already know or have done.The increasing “<strong>of</strong>fshoring” <strong>of</strong> support has also led to complaintsabout language <strong>and</strong> communication problems.Further ReadingDell, Inc. Available online. URL: http://www.dell.com. AccessedSeptember 10, 2007.Dell, Michael, <strong>and</strong> Catherine Fredman. Direct from Dell: Strategiesthat Revolutionized an Industry. New York: HarperBusiness,2006.Holzner, Steven. How Dell Does It: Using Speed <strong>and</strong> Innovation toAchieve Extraordinary Results. New York: McGraw-Hill, 2006.demonThe unusual computing term demon (sometimes spelleddaemon) refers to a process (program) that runs in thebackground, checking for <strong>and</strong> responding to certain events.The utility <strong>of</strong> this concept is that it allows for automation <strong>of</strong>information processing without requiring that an operatorinitiate or manage the process.For example, a print spooler demon looks for jobs thatare queued for printing, <strong>and</strong> deals with the negotiations necessaryto maintain the flow <strong>of</strong> data to that device. Anotherdemon (called chron in UNIX systems) reads a file describingprocesses that are designated to run at particular datesor times. For example, it may launch a backup utility everymorning at 1:00 a.m. E-mail also depends on the periodicoperation <strong>of</strong> “mailer demons.”


Dertouzos, Michael L. 141While the term demon originated in the UNIX culture,similar facilities exist in many operating systems. Even inthe relatively primitive MS-DOS for IBM personal computers<strong>of</strong> the 1980s, the ability to load <strong>and</strong> retain small utilityprograms that could share the main memory with the currentlyrunning application allowed for a sort <strong>of</strong> demon thatcould spool output or await a special keypress. Micros<strong>of</strong>tWindows systems have many demon-like operating systemcomponents that can be glimpsed by pressing the Ctrl-Alt-Delete key combination.The sense <strong>of</strong> autonomy implied in the term demon is insome ways similar to that found in bots or s<strong>of</strong>tware agentsthat can automatically retrieve information on the Internet,or in the Web crawler, which relentlessly pursues, records,<strong>and</strong> indexes Web links for search engines. (See s<strong>of</strong>twareagent <strong>and</strong> search engine.)Further ReadingBrock, Dean, <strong>and</strong> Bob Benites. Mastering Tools, Taming Daemons:UNIX for the Wizard Apprentice. Greenwich, Conn.: ManningPublications, 1995.Stevens, W. Richard. Advanced Programming in the UNIX Environment.Upper Saddle River, N.J.: Addison-Wesley, 2005.“UNIX Daemons in Perl.” Available online. URL: http://www.webreference.com/perl/tutorial/9/. Accessed July 8, 2007.Dertouzos, Michael L.(1936–2001)Greek-American<strong>Computer</strong> Scientist, FuturistBorn in Athens, Greece, on November 5, 1936, MichaelDertouzos spent adventurous boyhood years accompanyinghis father (an admiral) in the Greek navy’s destroyers<strong>and</strong> submarines. He became interested in Morse Code,shipboard machinery, <strong>and</strong> mathematics. At the age <strong>of</strong> 16he read an article about Claude Shannon’s work in informationtheory <strong>and</strong> a project at the Massachusetts Institute<strong>of</strong> <strong>Technology</strong> that sought to build a mechanical robot“mouse.” He quickly decided that he wanted to come toAmerica to study at MIT.After the hardships <strong>of</strong> the World War II years intervened,Dertouzos received a Fulbright scholarship thatplaced him in the University <strong>of</strong> Arkansas, where he earnedhis bachelor’s <strong>and</strong> master’s degrees while working on acoustic-mechanicaldevices for the Baldwin Piano Company. Hewas then able to fulfill his boyhood dream by receiving hisPh.D. from MIT, then promptly joined the faculty. He wasdirector <strong>of</strong> MIT’s Laboratory for <strong>Computer</strong> <strong>Science</strong> (LCS)starting in 1974. The lab has been a hotbed <strong>of</strong> new ideasin computing, including computer time-sharing, Ethernetnetworking, <strong>and</strong> public-key cryptography. Dertouzos alsoembraced the growing Internet <strong>and</strong> serves as coordinator <strong>of</strong>the World Wide Web consortium, a group that seeks to createst<strong>and</strong>ards <strong>and</strong> plans for the growth <strong>of</strong> the network.Combining theoretical interest with an entrepreneur’seye on market trends, Dertouzos started a small companycalled Computek in 1968. It made some <strong>of</strong> the first “smartterminals” that included their own processors.In the 1980s, Dertouzos began to explore the relationshipbetween developments <strong>and</strong> infrastructure ininformation processing <strong>and</strong> the emerging “informationmarketplace.” However, the spectacular growth <strong>of</strong> theinformation industry has taken place against a backdrop <strong>of</strong>the decline <strong>of</strong> American manufacturing. Dertouzos’s 1989book, Made In America, suggested ways to revitalize Americanindustry.During the 1990s, Dertouzos brought MIT into closerrelationship with the visionary designers who were creating<strong>and</strong> exp<strong>and</strong>ing the World Wide Web. When Tim Berners-Lee <strong>and</strong> other Web pioneers were struggling to create theWorld Wide Web consortium to guide the future <strong>of</strong> the newtechnology, Dertouzos provided extensive guidance to helpthem set their agenda <strong>and</strong> structure. (See World WideWeb <strong>and</strong> Berners-Lee, Tim.)Dertouzos was dissatisfied with operating systems suchas Micros<strong>of</strong>t Windows <strong>and</strong> with popular applications programs.He believed that their designers made it unnecessarilydifficult for users to perform tasks, <strong>and</strong> spent moretime on adding fancy features than on improving the basicusability <strong>of</strong> their products. In 1999, Dertouzos <strong>and</strong> the MITLCS announced a new project called Oxygen. Working incollaboration with the MIT Artificial Intelligence Laboratory,Oxygen was intended to make computers “as natural apart <strong>of</strong> our environment as the air we breathe.”As a futurist, Dertouzos tried to paint vivid pictures <strong>of</strong>possible future uses <strong>of</strong> computers in order to engage thegeneral public in thinking about the potential <strong>of</strong> emergingtechnologies. His 1995 book, What Will Be, paints a vividportrait <strong>of</strong> a near-future pervasively digital environment.His imaginative future is based on actual MIT research,such as the design <strong>of</strong> a “body net,” a kind <strong>of</strong> wearablecomputer <strong>and</strong> sensor system that would allow people tonot only keep in touch with information but also to communicatedetailed information with other people similarlyequipped. This digital world will also include “smartrooms” <strong>and</strong> a variety <strong>of</strong> robot assistants, particularly in thearea <strong>of</strong> health care. However, this <strong>and</strong> his 2001 publication,The Unfinished Revolution, are not unalloyed celebrations<strong>of</strong> technological wizardry. Dertouzos has pointed outthat there is a disconnect between technological visionarieswho lack underst<strong>and</strong>ing <strong>of</strong> the daily realities <strong>of</strong> mostpeoples’ lives, <strong>and</strong> humanists who do not underst<strong>and</strong> theintricate interconnectedness (<strong>and</strong> thus social impact) <strong>of</strong>new technologies.Dertouzos was given an IEEE Fellowship <strong>and</strong> awardedmembership in the National Academy <strong>of</strong> Engineering, Hedied on August 27, 2001, after a long bout with heart disease.He was buried in Athens near the finish line for theOlympic marathon.Further ReadingDertouzos, Michael. L. The Unfinished Revolution: How to Make<strong>Technology</strong> Work for Us—Instead <strong>of</strong> the Other Way Around.New York: HarperCollins, 2002.———. What Will Be: How the New World <strong>of</strong> Information WillChange Our Lives. New York: HarperCollins, 1997.“Farewell to a Visionary <strong>of</strong> the <strong>Computer</strong> Age.” Business Week,September 17, 2001, p. 101.


142 design patternsdesign patternsDesign patterns are an attempt to abstract <strong>and</strong> generalizewhat is learned in solving one problem so that it canbe applied to future similar problems. The idea was firstapplied to architecture by Christopher Alex<strong>and</strong>er in hisbook A Pattern Language. Alex<strong>and</strong>er described a pattern asa description <strong>of</strong> situations in which a particular problemoccurs, with a solution that takes into account the factorsthat are “invariant” (not changed by context). Guidance forapplying the solution is also provided.For example, a bus stop, a waiting room, <strong>and</strong> a line ata theme park are all places where people wait. A “place towait” pattern would specify the problem to be solved (howto make waiting as pleasant as possible) <strong>and</strong> suggest solutions.Patterns can have different levels <strong>of</strong> abstraction orscales on which they apply (for example, an intimate theater<strong>and</strong> a stadium are both places <strong>of</strong> entertainment, butone is much larger than the other).Patterns in turn are linked into a network called a patternlanguage. Thus when working with one pattern, thedesigner is guided to consider related patterns. For example,a pattern for a room might relate to patterns for seatingor grouping the occupants.Patterns in S<strong>of</strong>twareThe concept <strong>of</strong> patterns <strong>and</strong> pattern languages carries overwell into s<strong>of</strong>tware design. As with architectural patterns,a s<strong>of</strong>tware pattern describes a problem <strong>and</strong> solution, alongwith relevant structures (see class <strong>and</strong> object-orientedprogramming). Note that patterns are not executable code;they are at a higher level (one might say abstract enough tobe generalizable, specific enough to be applicable).S<strong>of</strong>tware patterns can specify how objects are created<strong>and</strong> ways in which they function <strong>and</strong> interface with otherobjects. Patterns are generally documented using a commonformat; one example is provided in the book Design Patterns.This scheme has the following sections:• name <strong>and</strong> classification• intent or purpose• alternative names• problem—the kind <strong>of</strong> problem the pattern addresses,<strong>and</strong> conditions under which it can be used• applicability—typical situations <strong>of</strong> use• structure description—such as class or interactiondiagrams• participants—classes <strong>and</strong> objects involved in the pattern<strong>and</strong> the role each plays• collaboration—how the objects interact with oneanother• consequences—the expected results <strong>of</strong> using the pattern,<strong>and</strong> possible side effects or shortcomings• implementation—explains a way to implement thepattern to solve the problem• sample code—usually in a commonly used programminglanguage• known uses—actual working applications <strong>of</strong> thepattern• related patterns—other patterns that are similar orrelated, with a description <strong>of</strong> how they differAn example given in Design Patterns is the “publishsubscribe”pattern. This pattern describes how a number<strong>of</strong> objects (observers) can be dependent on a “subject.” Allobservers are “subscribed” to the subject, so they are notifiedwhenever any data in the subject changes. This patterncould be used, for example, to set up a system where differentreports, spreadsheets, etc., need to be updated whenevernotified by a controlling object that has received new data.Some critics consider the use <strong>of</strong> patterns to be tooabstract <strong>and</strong> inefficient. Since a pattern has to be re-implementedfor each use, it has been argued that well-documented,reusable classes or objects would be more useful.Proponents, however, argue that “design reuse” is morepowerful than mere “object reuse.” A pattern provides awhole “language” for talking about a problem <strong>and</strong> its provensolutions, <strong>and</strong> can help both the original designer <strong>and</strong> othersunderst<strong>and</strong> <strong>and</strong> extend the design.Further ReadingAlex<strong>and</strong>er, Christopher. A Pattern Language: Towns, Buildings,Construction. New York: Oxford University Press, 1977.“Design Patterns.” IBM Research. Available online. URL: http://www.research.ibm.com/designpatterns/. Accessed September10, 2007.Freeman, Eric, <strong>and</strong> Elisabeth Freeman. Head First Design Patterns.Sebastapol, Calif.: O’Reilly, 2004.Gamma, Erich, et al. Design Patterns: Elements <strong>of</strong> Reusable Object-Oriented S<strong>of</strong>tware. Upper Saddle River, N.J.: Addison-WesleyPr<strong>of</strong>essional, 1995.Kurotsuchi, Brian T. “Welcome to the Wonderful World <strong>of</strong> DesignPatterns.” Available online. URL: http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/patterns/. Accessed September10, 2007.desktop publishing (DTP)Traditionally documents such as advertisements, brochures,<strong>and</strong> reports were prepared by combining typed or printedtext with pasted-in illustrations (such as photographs <strong>and</strong>diagrams). This painstaking layout process was necessaryin order to produce “camera-ready copy” from which aprinting company could produce the final product.Starting in the late 1980s, desktop computers becamepowerful enough to run s<strong>of</strong>tware that could be used to createpage layouts. In addition, display hardware gained ahigh enough resolution to allow for pages to be shown onthe screen in much the same form as they would appear onthe printed page. (This is known by the acronym WYSI-WYG, or “what you see is what you get.”) The final ingredientfor the creation <strong>of</strong> desktop publishing was the advent <strong>of</strong>affordable laser or inkjet printers that could print near printquality text <strong>and</strong> high-resolution graphics (see printers).This combination <strong>of</strong> technologies made it feasible fortrained <strong>of</strong>fice personnel to create, design, <strong>and</strong> produce many


developing nations <strong>and</strong> computing 143documents in-house rather than having to send copy to aprinting company. Adobe’s PageMaker program soon becamea st<strong>and</strong>ard for the desktop publishing industry, appearing firston the Apple Macintosh <strong>and</strong> later on systems running Micros<strong>of</strong>tWindows. (The Macintosh’s support for fonts <strong>and</strong> WYSI-WYG displays gave it a head start over the Windows PC in theDTP industry, <strong>and</strong> to this day many pr<strong>of</strong>essionals prefer it.)There is no hard-<strong>and</strong>-fast line between desktop publishing<strong>and</strong> the creation <strong>of</strong> text itself. Modern word processings<strong>of</strong>tware such as Micros<strong>of</strong>t Word includes a variety <strong>of</strong> featuresfor selection <strong>and</strong> sizing <strong>of</strong> fonts, <strong>and</strong> the ability to definestyles for creating headings, types <strong>of</strong> paragraphs, <strong>and</strong> so on(see word processing). Word <strong>and</strong> other programs also allowfor the insertion <strong>and</strong> placement <strong>of</strong> graphics <strong>and</strong> tables, thedivision <strong>of</strong> text into columns, <strong>and</strong> other layout features. Ingeneral, however, word processing emphasizes the creation<strong>of</strong> text (<strong>of</strong>ten for long documents), while desktop publishings<strong>of</strong>tware emphasizes layout considerations <strong>and</strong> the fine-tuning<strong>of</strong> a document’s appearance. Thus, while a word processormight allow the selection <strong>of</strong> a font in a given point size, adesktop publishing program allows for the exact specification<strong>of</strong> leading (space between lines) <strong>and</strong> kerning (the adjustment<strong>of</strong> space between characters). Most desktop publishing programscan import text that was originally created in a wordprocessor. This is helpful because using desktop publishings<strong>of</strong>tware to create the original text can be tedious.Desktop publishing is generally used for short documentssuch as ads, brochures, <strong>and</strong> reports. Material to bepublished as a book or magazine article is normally submittedby the author as a word processing document. The publisher’sproduction staff then creates a print-ready version.Books <strong>and</strong> other long documents are generally producedusing in-house computer typesetting facilities.Today desktop publishing is part <strong>of</strong> a range <strong>of</strong> technologiesused for the production <strong>of</strong> documents <strong>and</strong> presentations.Document designers also use drawing programs (suchas Corel Draw) <strong>and</strong> photo manipulation programs (such asAdobe Photoshop) in preparing illustrations. Further, thegrowing use <strong>of</strong> the Web means that many documents mustbe displayable on Web pages as well as in print. Adobe’s PortableDocument Format (PDF) is one popular way <strong>of</strong> creatingfiles that exactly portray printed text (see PDF).Further ReadingBlattner, D., <strong>and</strong> N. Davis, eds. The QuarkXPress Book: For Macintosh<strong>and</strong> Windows. Berkeley, Calif.: Peachpit Press, 1998.“Desktop Publishing News.” Available online. URL: http://desktoppublishing.com/_news1.html. Accessed November2007.Parker, Roger C. Web Design <strong>and</strong> Desktop Publishing for Dummies.2nd ed. New York: Hungry Minds, 1997.“Resources for Desktop Publishers.” Available online. URL: http://www.nlightning._com/dtpsbiblio.html. Accessed November2007.Shushan, R. <strong>and</strong> D. Wright, with L. Lewis. Desktop Publishing byDesign: Everyone’s Guide to PageMaker6. 4th ed. Redmond,Wash.: Micros<strong>of</strong>t Press, 1996.developing nations <strong>and</strong> computingMost writing about computer technology tends to focus ondevelopments in technically advanced nations, such as theUnited States, European Union, <strong>and</strong> Japan. There is alsogrowing coverage <strong>of</strong> the rapidly developing informationeconomy in the world’s two most populous nations, India<strong>and</strong> China. But what about the poorest or least developednations, particularly those in Africa?InfrastructureA common problem in developing countries is a lack <strong>of</strong>basic infrastructure to support electronic devices—phonelines, television cables, even a reliable power grid. (Abouttwo billion people on this planet still have no access to electricity!)One way around this obstacle is to skip over the wiredstage <strong>of</strong> development in favor <strong>of</strong> wireless connections, perhapsusing battery or even solar power. The necessity forlarge government investments in infrastructure can then beavoided in favor <strong>of</strong> mobile, distributed, flexible access thatcan be gradually spread <strong>and</strong> scaled up. Already, in some <strong>of</strong>the poorest nations mobile phone use has been growing atan annual rate <strong>of</strong> 50 percent or more.Once access to communications <strong>and</strong> data is provided,users can immediately start getting an economic return orotherwise improving their lives. Farmers, for example, canget weather reports <strong>and</strong> keep in touch with market prices.Of course online communications might also give farmersa tool for organizing themselves politically or economically(such as into co-ops). People start to get in touch withdevelopments around the world that might affect them, <strong>and</strong>discover possible ways to a better life. However, authoritariangovernments <strong>of</strong>ten resist such trends because theyfear the development <strong>of</strong> well-connected democratic reformmovements.Closing the GapMuch <strong>of</strong> the barrier to developing countries joining the networkedworld is human rather than technological. Beforepeople can learn to use computers, they need to be able toread. They also need some idea <strong>of</strong> what science <strong>and</strong> technologyare about <strong>and</strong> why they are important for their economicwell-being.Beyond people learning to use computers to communicate,or in agriculture or commerce, a developing countryneeds to have enough people with the advanced skillsneeded for a self-sustaining information economy. Theseinclude technicians, support staff, teachers, engineers, programmers,<strong>and</strong> computer scientists.One reason for the rapid growth <strong>of</strong> computing in India<strong>and</strong> especially China is that these countries, while still havingmillions <strong>of</strong> people living on subsistence, also have effectiveeducational systems including advanced training. Theirgrowing pool <strong>of</strong> skilled but relatively inexpensive workersin turn attracts foreign investment capital. In additionto China <strong>and</strong> India, other nations with strong electronicsmanufacturing industries include Singapore, Korea, Malaysia,Mexico, <strong>and</strong> Brazil.The United Nations has developed the <strong>Technology</strong>Achievement Index (TAI) to measure the ability <strong>of</strong> a countryto innovate, to effectively use new <strong>and</strong> existing technology,<strong>and</strong> to build a base <strong>of</strong> technically skilled workers.


144 device driverOne Laptop per ChildWhile the conventional view <strong>of</strong> technological developmentstresses the importance <strong>of</strong> infrastructure <strong>and</strong> skills, somevisionary educational activists are suggesting a way to“jump-start” the information economy in poor <strong>and</strong> developingcountries. They note that despite the potential <strong>of</strong>wireless technology, adequate computing power for joiningthe world network has simply been too expensive for allbut the elite in developing countries. (A $400 no-frills PCcosts more than the annual per capita income <strong>of</strong> Haiti, forexample.)In response, MIT computer scientists (see Mit MediaLab <strong>and</strong> Negroponte, Nicholas) have started an initiativecalled One Laptop Per Child. Their machine (introduced asa prototype in 2005) includes the following features:• very low power consumption (2–3 watts)• lower <strong>and</strong> higher power modes (the latter, for example,can provide backlighting for the screen when anexternal power source is available)• ability to use a variety <strong>of</strong> batteries or an externalpower source, including a h<strong>and</strong>-powered generator• built-in wireless networking• tough construction, including a water-resistant membranekeyboard• flash memory instead <strong>of</strong> a hard drive or CD-ROM• built-in color camera, microphone, <strong>and</strong> stereo speakers• open-source Linux operating system <strong>and</strong> other s<strong>of</strong>tware,including programming languages especiallyuseful for learnersThe computer is intended ultimately to cost no more than$100 per unit, <strong>and</strong> is to be distributed through participatinggovernments. Countries that have made at least tentativecommitments to the project as <strong>of</strong> 2007 include Argentina,Cambodia, Costa Rica, Dominican Republic, Egypt, Greece,Libya, Nigeria, Pakistan, Peru, Rw<strong>and</strong>a, Tunisia, Uruguay,<strong>and</strong>, in the United States, the states <strong>of</strong> Massachusetts <strong>and</strong>Maine.The underlying philosophy <strong>of</strong> the project is based on“constructivist learning,” the idea that children can learnpowerful ideas through using suitable interactive systems(see logo <strong>and</strong> Papert, Seymour). In a way it is intendedto be a sort <strong>of</strong> lever to create a generation with the skills t<strong>of</strong>unction in the 21st-century information economy, withoutre-creating the cumbersome industrial-style educationalsystems <strong>of</strong> the previous 200 years.Although, generally, some well received critics are concernedabout the environmental impact <strong>of</strong> producing (<strong>and</strong>eventually disposing <strong>of</strong>) millions more computers, whileothers (including some <strong>of</strong>ficials in developing countries)believe the money for providing computers to childrenshould be used instead for more urgent needs such as cleanwater, public health, <strong>and</strong> basic school supplies.Whether using top-down or bottom-up approaches, theweb <strong>of</strong> connection, communication, <strong>and</strong> information continuesits rapid though uneven spread around the world.However, as new technologies continue to emerge in thedeveloped world, the position <strong>of</strong> technological “have-nots”may worsen if effective education <strong>and</strong> access programs arenot developed.Further ReadingDesai, Meghnad, et al. “Measuring the Technological Achievement<strong>of</strong> Nations <strong>and</strong> the Capacity to Participate in the NetworkAge.” Journal <strong>of</strong> Human Development 3 (2002): 95–122.Available online. URL: http://unpan1.un.org/intradoc/groups/public/documents/apcity/unpan014340.pdf. Accessed September11, 2007.One Laptop per Child. Available online. URL: http://laptop.org/vision/index.shtml. Accessed September 11, 2007.Wilson, Ernest J., III. The Information Revolution <strong>and</strong> DevelopingCountries. Cambridge, Mass.: MIT Press, 2004.Wireless Internet Institute. The Wireless Internet Opportunity forDeveloping Countries. Boston, Mass.: World Times, 2003.device driverA fundamental problem in computer design is the control<strong>of</strong> devices such as disk drives <strong>and</strong> printers. Each deviceis designed to respond to a particular set <strong>of</strong> control comm<strong>and</strong>ssent as patterns <strong>of</strong> binary values through the portto which the device is connected. For example, a printerwill respond to a “new page” comm<strong>and</strong> by skipping linesto the end <strong>of</strong> the current page <strong>and</strong> moving the print headto the start <strong>of</strong> the next page, taking margin settings intoaccount. The problem is this: When an applications programsuch as a word processor needs to print a document,how should the necessary comm<strong>and</strong>s be provided to theprinter? If every application program has to include theappropriate set <strong>of</strong> comm<strong>and</strong>s for each device that might bein use, programs will be bloated <strong>and</strong> much developmenteffort will be required for supporting devices rather thanextending the functionality <strong>of</strong> the product itself. Instead,the manufacturers <strong>of</strong> printers <strong>and</strong> other devices such asscanners <strong>and</strong> graphics tablets typically provide a programcalled a driver. (A version <strong>of</strong> the driver is created for eachmajor operating system in use.) The driver serves as theintermediary between the application, the operating system<strong>and</strong> the low-level device control system. It is sometimesuseful to have drivers in the form <strong>of</strong> continually runningprograms that monitor the status <strong>of</strong> a device <strong>and</strong> wait forcomm<strong>and</strong>s (see demon).Modern operating systems such as Micros<strong>of</strong>t Windowstypically take responsibility for services such as printingdocuments. When a printer is installed, its driver programis also installed in Windows. When the application programrequests to print a document, Windows’s print systemaccesses the driver. The driver turns the operating system’s“generic” comm<strong>and</strong>s into the specific hardware controlcomm<strong>and</strong>s needed for the device.While the use <strong>of</strong> drivers simplifies things for both programdevelopers <strong>and</strong> users, there remains the need for usersto occasionally update drivers because <strong>of</strong> an upgrade eitherin the operating system or in the support for device capabilities.Both Windows <strong>and</strong> the Macintosh operating system


Diffie, Bailey Whitfield 145DHTML See html, dhtml, <strong>and</strong> xhtml.Diffie, Bailey Whitfield(1944– )AmericanMathematician, <strong>Computer</strong> ScientistThe device driver is the link between the operating system <strong>and</strong>the hardware that controls a specific device. Program requests arepassed by the operating system to the device driver, which issues thedetailed instructions needed by the device controller.implement a feature called plug <strong>and</strong> play. This allows for anewly installed device to be automatically detected by thesystem <strong>and</strong> the appropriate driver loaded into the operatingsystem (see plug <strong>and</strong> play). Other device managementcomponents enable the OS to keep track <strong>of</strong> the driver versionassociated with each device. Some <strong>of</strong> the newest operatingsystems include auto-update features that can search onthe Web for the latest driver versions <strong>and</strong> download them.The need to provide drivers for popular devices createssomething <strong>of</strong> a barrier to the development <strong>of</strong> new operatingsystems. In a catch-22, device manufacturers are unlikely tosupport a new OS that lacks significant market share, whilethe lack <strong>of</strong> device support in turn will discourage usersfrom adopting the new OS. (Users <strong>of</strong> the Linux operatingsystem faced this problem. However, that system’s opensource <strong>and</strong> cooperative development system made it easierfor enthusiasts to write <strong>and</strong> distribute drivers without waitingfor manufacturers to do so.)Further ReadingMr. Driver: Device Drivers. Available online. URL: http://www.mrdriver.com. Accessed July 8, 2007.Oney, Walter. Programming the Micros<strong>of</strong>t Windows Driver Manual.2nd ed. Redmond, Wash.: Micros<strong>of</strong>t Press, 2005.Rubini, Aless<strong>and</strong>ro, <strong>and</strong> Jonathan Corbet. Linux Device Drivers.3rd ed. Sebastapol, Calif.: O’Reilly, 2005.Windows Driver Kit (WDK) Overview. Available online. URL:http://www.micros<strong>of</strong>t.com/whdc/devtools/wdk/default.mspx.Accessed July 8, 2007.Bailey Whitfield Diffie created the system <strong>of</strong> public keycryptography that many computer users depend on todayto protect their sensitive information (see encryption).Diffie was born on June 5, 1944, in the borough <strong>of</strong>Queens, New York City. As a youngster he read about secretcodes <strong>and</strong> became fascinated. Although he was an indifferenthigh school student who barely qualified for graduation,Diffie scored so high on st<strong>and</strong>ardized tests that he wonadmission to the University <strong>of</strong> California, Berkeley, in 1962,where he studied mathematics for two years. However, in1964 he transferred to the Massachusetts Institute <strong>of</strong> <strong>Technology</strong>(MIT) <strong>and</strong> obtained his B.S. in mathematics in 1965.After graduation Diffie took a job at Mitre Corporation,a defense contractor, where he plunged into computer programming,helping create Mathlab, a program that allowedmathematicians to not merely calculate with a computer,but also to manipulate mathematical symbols to solve equations.(The program would eventually evolve into Macsyma,a s<strong>of</strong>tware package used widely in the mathematical community—seemathematics s<strong>of</strong>tware.)By the early 1970s Diffie had moved to the West Coast,working at the Stanford Artificial Intelligence Laboratory(SAIL), where he met Lawrence Roberts, head <strong>of</strong> informationprocessing research for ARPA, the Defense Department’sresearch agency. Roberts’s main project was thecreation <strong>of</strong> the ARPAnet, the computer network that wouldlater evolve into the Internet.Roberts was interested in providing security for the newnetwork, <strong>and</strong> (along with AI researcher John McCarthy)he helped revive Diffie’s dormant interest in cryptography.By 1974 Diffie had learned that IBM was developinga more secure cipher system, the DES (Data EncryptionSt<strong>and</strong>ard), under government supervision. However, Diffiesoon became frustrated with the way the National SecurityAgency (NSA) doled out or withheld information on cryptography,making independent research in the field verydifficult. Seeking to learn the state <strong>of</strong> the art, Diffie traveledwidely, seeking out people who might have fresh thoughtson the subject.Diffie found one such person in Martin Hellman, a Stanfordpr<strong>of</strong>essor who had also been struggling on his own todevelop a better system <strong>of</strong> encryption. They decided to pooltheir ideas <strong>and</strong> efforts, <strong>and</strong> Diffie <strong>and</strong> Hellman came upwith a new approach, which would become known as publickey cryptography. It combined two important ideas thathad already been discovered to an extent by other researchers.The first idea was the “trap-door function”—a mathematicaloperation that can be easily performed “forward”but that was very hard to work “backward.” Diffie realized,however, that a trap-door function could be devised that


146 digital cashcould be worked backward easily if the person had theappropriate key.The second idea was that <strong>of</strong> key exchange. In classicalcryptography, there is a single key used for both encryption<strong>and</strong> decryption. In such a case it is absolutely vital to keepthe key secret from any third party, so arrangements haveto be made in advance to transmit <strong>and</strong> protect the key.Diffie, however, was able to work out the theory for asystem that generates pairs <strong>of</strong> mathematically interrelatedkeys: a private key <strong>and</strong> a public key. Each participantpublishes his or her public key, but keeps the correspondingprivate key secret. If one wants to send an encryptedmessage to someone, one uses that person’s public key(obtained from the electronic equivalent <strong>of</strong> a phone directory).The resulting message can only be decrypted by theintended recipient, who uses the corresponding secret,private key.The public key system can also be used as a form <strong>of</strong>“digital signature” for verifying the authenticity <strong>of</strong> a message.Here a person creates a message encrypted with his orher private key. Since such a message can only be decryptedusing the corresponding public key, any other person canuse that key (together with a trusted third-party key service)to verify that the message really came from its purportedauthor.Diffie <strong>and</strong> Hellman’s 1976 paper in the IEEE Transactionson Information Theory began boldly with the statementthat “we st<strong>and</strong> today on the brink <strong>of</strong> a revolution in cryptography.”This paper soon came to the attention <strong>of</strong> threeresearchers who would create a practical implementationcalled RSA (for Rivest, Shamir, <strong>and</strong> Adelman).Through the 1980s Diffie, resisting urgent invitationsfrom the NSA, served as manager <strong>of</strong> secure systems researchfor the phone company Northern Telecom, designing systemsfor managing security keys for packet-switched datacommunications systems (such as the Internet).In 1991 Diffie was appointed Distinguished Engineerfor Sun Microsystems, a position that has left him free todeal with cryptography-related public policy issues. Thebest known <strong>of</strong> these issues has been the Clipper Chip, aproposal that all new computers be fitted with a hardwareencryption device that would include a “back door” thatwould allow the government to decrypt data. Along withmany civil libertarians <strong>and</strong> privacy activists, Diffie did notbelieve users should have to trust largely unaccountablegovernment agencies for the preservation <strong>of</strong> their privacy.Their opposition was strong enough to scuttle the ClipperChip proposal by the end <strong>of</strong> the 1990s. Another proposal,using public key cryptography but having a third-party“key escrow” agency hold the keys for possible criminalinvestigation, also fared poorly. In 1998 Diffie <strong>and</strong> SusanL<strong>and</strong>au wrote Privacy on the Line, a book about the politics<strong>of</strong> surveillance <strong>and</strong> encryption. The book was revised <strong>and</strong>exp<strong>and</strong>ed in 2007.Diffie has received a number <strong>of</strong> awards for both technicalexcellence <strong>and</strong> contributions to civil liberties. These includethe IEEE Information Theory Society Best Paper Award(1979), the IEEE Donald Fink Award (1981), the ElectronicFrontier Foundation Pioneer Award (1994), <strong>and</strong> even theNational <strong>Computer</strong> Systems Security Award (1996), given bythe NIST <strong>and</strong> NSA.Further ReadingDiffie, Whitfield. “Interview with Whitfield Diffie on the Development<strong>of</strong> Public Key Cryptography.” Conducted by FrancoFurger; edited by Arnd Weber, 1992. Available online. URL:http://www.itas.fzk.de/mahp/weber/diffie.htm. Accessed September12, 2007.Diffie, Whitfield, <strong>and</strong> Susan L<strong>and</strong>au. Privacy on the Line: the Politics<strong>of</strong> Wiretapping <strong>and</strong> Encryption. Updated <strong>and</strong> exp<strong>and</strong>ed ed.Cambridge, Mass.: MIT Press, 2007.Kahn, David. The Codebreakers: The Story <strong>of</strong> Secret Writing. Reviseded. New York: Scribner, 1996.Levy, Steven. Crypto: How the Code Rebels Beat the Government:Saving Privacy in the Digital Age. New York: Viking Penguin,2001.digital cashAlso called digital money or e-cash, digital cash representsthe attempt to create a method <strong>of</strong> payment for online transactionsthat is as easy to use as the familiar bills <strong>and</strong> coinsin daily commerce (see e-commerce). At present, creditcards are the principal means <strong>of</strong> making online payments.While using credit cards takes advantage <strong>of</strong> a well-establishedinfrastructure, it has some disadvantages. From asecurity st<strong>and</strong>point, each payment potentially exposes thepayer to the possibility that the credit card number <strong>and</strong>possibly other identifying information will be diverted <strong>and</strong>used for fraudulent transactions <strong>and</strong> identity theft. Whilethe use <strong>of</strong> secure (encrypted) online sites has reduced thisrisk, it cannot be eliminated entirely (see computer crime<strong>and</strong> security). Credit cards are also impracticable for verysmall payments from cents to a few dollars (such as foraccess to magazine articles) because the fees charged by thecredit card companies would be too high in relation to thevalue <strong>of</strong> the transaction.One way to reduce security concerns is to make transactionsthat are anonymous (like cash) but guaranteed.Products such as DigiCash <strong>and</strong> CyberCash allow users topurchase increments <strong>of</strong> a cash equivalent using their creditcards or bank transfers, creating a “digital wallet.” The usercan then go to any Web site that accepts the digital cash <strong>and</strong>make a payment, which is deducted from the wallet. Themerchant can verify the authenticity <strong>of</strong> the cash throughits issuer. Since no credit card information is exchangedbetween consumer <strong>and</strong> merchant, there is no possibility<strong>of</strong> compromising it. The lack <strong>of</strong> wide acceptance <strong>and</strong> st<strong>and</strong>ardshas thus far limited the usefulness <strong>of</strong> digital cash.The need to pay for small transactions can be h<strong>and</strong>ledthrough micropayments systems. For example, users<strong>of</strong> a variety <strong>of</strong> online publications can establish accountsthrough a company called Qpass. When the user wants toread an article from the New York Times, for example, thefee for the article (typically $2–3) is charged against theuser’s Qpass account. The user receives one monthly creditcard billing from Qpass, which settles accounts with thepublications. Qpass, eCharge, <strong>and</strong> similar companies havehad modest success. A similar (<strong>and</strong> quite successful) serviceis <strong>of</strong>fered by companies such as PayPal <strong>and</strong> Billpoint,


digital convergence 147which allow winning auction bidders to send money fromtheir credit card or bank account to the seller, who wouldnot otherwise be equipped to accept credit cards. Truemicropayments would extend down to just a few cents.“True” digital cash, allowing for anonymous payments<strong>and</strong> micropayments, has been slow to catch on. However,the successful digital cash system is likely to have the followingcharacteristics:• Protects the anonymity <strong>of</strong> the purchaser (no creditcard information transmitted to the seller)• Verifiable by the seller, perhaps by using one-timeencryption keys• The purchaser can create digital cash freely fromcredit cards or bank accounts• micropayments can be aggregated at a very low transactioncostAs use <strong>of</strong> digital cash becomes more widespread, it is likelythat tax <strong>and</strong> law enforcement agencies will press for theinclusion <strong>of</strong> some way to penetrate the anonymity <strong>of</strong> transactionsfor audit or investigation purposes. They will beopposed by civil libertarians <strong>and</strong> privacy advocates. Onelikely compromise may be requiring that transaction informationor encryption keys be deposited in some sort <strong>of</strong>escrow agency, subject to being divulged upon court order.Further ReadingKou, Weidong. Payment Technologies for E-Commerce. New York:Springer, 2003.Lamb, Gregory M. “ ‘Nickel <strong>and</strong> Diming’ across the Internet.”Christian <strong>Science</strong> Monitor, February 23, 2004, n.p. Availableonline. URL: http://www.csmonitor.com/2004/0223/p13s01-wmgn.html. Accessed July 8, 2007.Orr, Bill. “Cashless Society, Ahoy! Suddenly Micropayments AreHot Again.” ABA Banking Journal 98 (March 2006): ff.Rosenborg, Victoria. PayPal for Dummies. Hoboken, N.J.: Wiley,2005.Warwick, David R. “Violent Crime <strong>and</strong> Cash: The Connection;Privacy Concerns About Digital Cash May Be Overblown.”The Futurist, May 1, 2007, p. 42.digital convergenceSince the late 20th century, many forms <strong>of</strong> communication<strong>and</strong> information storage have been transformed from analogto digital representations (see analog <strong>and</strong> digital).For example, the phonograph record (an electromechanicalanalog format) gave way during the 1980s to a whollydigital format (see cd-rom). Video, too, is now increasinglybeing stored in digital form (DVD or laser disks) rather thanin the analog form <strong>of</strong> videotape. Voice telephony, whichoriginally involved the conversion <strong>of</strong> sound to analogouselectrical signals, is increasingly being digitized (as withmany cell phones) <strong>and</strong> transmitted in packet form over thecommunications network.The concept <strong>of</strong> digital convergence is an attempt toexplore the implications <strong>of</strong> so many formerly disparate analogmedia now being available in digital form. All forms <strong>of</strong>digital media have key features in common. First, they areDigital convergence results from the fact that many formerly analogmedia (such as sound, film, <strong>and</strong> video) are now being acquired<strong>and</strong> processed digitally. Once in digital form, the content can beprocessed <strong>and</strong> played by a variety <strong>of</strong> s<strong>of</strong>tware <strong>and</strong> used on manydifferent platforms ranging from desktop computers to electronicbooks (e-books) <strong>and</strong> portable MP3 music players. Content can alsobe linked <strong>and</strong> organized using hypertext or hypermedia techniques,as on the Web.essentially pure information (computer data). This meansthat regardless <strong>of</strong> whether the data originally representedstill images from a camera, video, or film, the sound <strong>of</strong> ahuman voice, music, or some other form <strong>of</strong> expression,that data can be stored, manipulated, <strong>and</strong> retrieved underthe control <strong>of</strong> computer algorithms. This makes it easierto create seamless multimedia presentations (see multimedia<strong>and</strong> hypertext <strong>and</strong> hypermedia). Services or productspreviously considered to be separate can be combined innew ways. For example, many radio stations now providetheir programming in the form <strong>of</strong> “streaming audio” thatcan be played by such utilities as RealPlayer or Micros<strong>of</strong>tWindows Media Player (see streaming). Similarly, televisionnews services such as CNN can <strong>of</strong>fer selected excerpts<strong>of</strong> their coverage in the form <strong>of</strong> streaming video files. Asmore users gain access to broadb<strong>and</strong> Internet connections(such as cable or DSL), it is gradually becoming feasible todeliver TV programs <strong>and</strong> even full-length feature films indigital format. By the middle <strong>of</strong> the decade, media deliverybegan to proliferate on new platforms that representa further convergence <strong>of</strong> function. Many “smart phones”can play audio <strong>and</strong> video (see smartphone). In July 2007Apple’s iPhone entered the market, combining phone, mediaplayer, <strong>and</strong> Web browsing functions, <strong>and</strong> similar deviceswill no doubt follow (see also pda).Emerging IssuesThe merging <strong>of</strong> traditional media into a growing stream<strong>of</strong> digital content has created a number <strong>of</strong> difficult legal<strong>and</strong> social issues. Digital images or sounds from varioussources can easily be combined, filtered, edited, or otherwisealtered for a variety <strong>of</strong> purposes. As a result, the value<strong>of</strong> photographs as evidence may be gradually compromised.


148 digital dashboardThe ownership <strong>and</strong> control <strong>of</strong> the intellectual property representedby music, video, <strong>and</strong> film has also been complicatedby the combination <strong>of</strong> digitization <strong>and</strong> the pervasiveInternet. For example, during 2000–2001 the legal battlesinvolving Napster, a program that allows users to sharemusic files pitted the rights <strong>of</strong> music producers <strong>and</strong> artiststo control the distribution <strong>of</strong> their product against the technologicalcapability <strong>of</strong> users to freely copy <strong>and</strong> distributethe material. While a variety <strong>of</strong> copy protection systems(both s<strong>of</strong>tware <strong>and</strong> hardware-based) have been developedin an attempt to prevent unauthorized copying, historicallysuch measures have had only limited effectiveness(see copy protection, digital rights management, <strong>and</strong>intellectual property <strong>and</strong> computing).Digital convergence also raises deeper philosophicalissues. Musicians, artists, <strong>and</strong> scholars have frequently suggestedthat the process <strong>of</strong> digitization fails to capture subtleties<strong>of</strong> performance that might have been accessible in theoriginal media. At the same time, the richness <strong>and</strong> immersivequalities <strong>of</strong> the new multimedia may be drawing peoplefurther away from the direct experience <strong>of</strong> the “real” analogworld around them. Ultimately, the embodiment <strong>of</strong> digitalconvergence in the form <strong>of</strong> virtual reality likely to emergein the early 21st century will pose questions as pr<strong>of</strong>ound asthose provoked by the invention <strong>of</strong> printing <strong>and</strong> the development<strong>of</strong> mass broadcast media (see virtual reality).Further ReadingCovell, Andy. Digital Convergence: How the Merging <strong>of</strong> <strong>Computer</strong>s,Communications <strong>and</strong> Multimedia Is Transforming Our Lives.Newport, R.I.: Aegis Publishing, 2000.———. Digital Convergence Phase 2: A Field Guide for Creator-Collaborators.Champaign, Ill.: Stipes Publishing, 2004Jenkins, Henry. Convergence Culture: Where Old <strong>and</strong> New MediaCollide. New York: New York University Press, 2006.Park, Sangin. Strategies <strong>and</strong> Policies in Digital Convergence. Hershey,Penn.: Information <strong>Science</strong> Reference, 2007.digital dashboardThe dashboard <strong>of</strong> a car is designed to present vital real-timeinformation to the driver, such as speed, fuel supply, <strong>and</strong>engine status. Ideally this information should be easy tograsp at a glance, allowing for prompt action when necessary.Conversely, unnecessary <strong>and</strong> potentially distractinginformation should be avoided, or at least relegated to anunobtrusive secondary display.A digital dashboard is a computer display that uses similarconcepts. Its goal is to provide an executive or managerwith the key information that allows him or her to monitorthe health <strong>of</strong> the enterprise <strong>and</strong> to take action when necessary.(A digital dashboard can also be part <strong>of</strong> a larger set <strong>of</strong>management tools—see decision support system.)The screen display for a digital dashboard can use avariety <strong>of</strong> objects (see graphical user interface). Thesecan include traditional charts (line, bar, or pie), color-codedmaps, depictions <strong>of</strong> gauges, <strong>and</strong> a variety <strong>of</strong> other interfaceelements sometimes known as “widgets.”However information is depicted, the dashboard isdesigned to summarize the current status <strong>of</strong> business orother functions, identify trends, <strong>and</strong> warn the user whenattention is required. For example, a dashboard mightsummarize production <strong>and</strong> shipping for each <strong>of</strong> a company’sfactories. Bars on a chart might be green when levelsare within normal parameters, but turn red if, for example,production has fallen more than 20 percent belowtarget goals. Dashboard displays can also be useful forgraphically showing the degree to which project objectivesare being met.Digital dashboards can be custom built or obtainedin forms specialized for various types <strong>of</strong> business. Typicallythe dashboard is hosted on the corporate Web server<strong>and</strong> is accessible through Web browsers—perhaps with anabbreviated version that can be viewed on PDAs <strong>and</strong> smartphones.CritiqueToday dashboards are in widespread use in many top corporations,from Micros<strong>of</strong>t to Home Depot. An <strong>of</strong>t-citedadvantage <strong>of</strong> dashboard technology is that it keeps managersfocused <strong>and</strong> provides for quick response in situationswhere time may be crucial. No longer is it necessary for themanager to track down key individuals <strong>and</strong> try to makesense <strong>of</strong> their reports over the phone.Some critics, however, worry that dashboards may makemanagement too “data driven.” Those regular calls, afterall, can form an important part <strong>of</strong> the relationship betweenan executive or manager <strong>and</strong> subordinates, as well as gettinga sense <strong>of</strong> morale <strong>and</strong> possible personnel problems thatmay be affecting productivity. Overreliance on dashboards<strong>and</strong> “bottom line” numbers may also hurt the morale <strong>of</strong>salespeople <strong>and</strong> others who come to feel that they are beingmicromanaged. Further, the dashboard may omit importantconsiderations that in turn are likely to receive less attention<strong>and</strong> support.Further ReadingAnte, Spencer E., <strong>and</strong> Jena McGregor. “Giving the Boss the BigPicture: A ‘Dashboard’ Pulls Up Everything the CEO Needsto Run the Show.” BusinessWeek, February 13, 2006. Availableonline. URL: http://www.businessweek.com/magazine/content/06_07/b3971083.htm. Accessed September 12, 2007.Dashboard Examples. Available online. URL: http://www.enterprise-dashboard.com/. Accessed September 12, 2007.Dashboard Insight. Available online. URL: http://www.dashboardinsight.com/. Accessed September 12, 2007.Eckerson, Wayne W. Performance Dashboards: Measuring, Monitoring,<strong>and</strong> Managing Your Business. New York: Wiley, 2006.Few, Stephen. Information Dashboard Design: The Effective VisualCommunication <strong>of</strong> Data. Sebastapol, Calif.: O’Reilly, 2006.digital divideThe term digital divide was coined in the late 1990s amidgrowing concern that groups such as minorities, the elderly,<strong>and</strong> rural residents were not becoming computer literate<strong>and</strong> connecting to the Internet at the same rate as theyoung, educated, <strong>and</strong> relatively affluent.Nearly a decade later this perception <strong>of</strong> a chasm hasdiminished somewhat. According to the Pew Internet &American Life project, as <strong>of</strong> 2006 about two-thirds (70 per-


digital rights management 149cent) <strong>of</strong> American adults were using the Internet, <strong>and</strong> thenumber has continued to increase, though more slowly(there is evidence <strong>of</strong> a “hard core” unconnected population).Groups that lagged in Internet usage included Americans65 years or older (35 percent), African Americans (58percent), <strong>and</strong> persons without at least a high school education(36 percent).The digital divide is more severe if one looks at theworld as a whole (see developing nations <strong>and</strong> computing).Rapidly industrializing nations such as China <strong>and</strong>India are seeing considerable increases in the number <strong>of</strong>people with some form <strong>of</strong> computer <strong>and</strong> Internet access,though the numbers are still small in relation to the totalpopulation. In severely underdeveloped countries (such asmany in Africa), connectivity may be improved by the “OneLaptop per Child” project, which has designed a prototypecomputer designed to cost less than $100.Broadb<strong>and</strong> UseNot all Internet access is equal. High-speed connections(see broadb<strong>and</strong>, cable modem, <strong>and</strong> dsl) encourage frequentInternet use throughout the day, <strong>and</strong> make it feasibleto access <strong>and</strong> share rich media (images, videos, podcasts,<strong>and</strong> so on). According to the Pew Internet & American Lifeproject, 47 percent <strong>of</strong> all adult Americans had a broadb<strong>and</strong>Internet connection at home as <strong>of</strong> 2007. The rate <strong>of</strong> broadb<strong>and</strong>adoption continues to lag for rural residents (31 percent)<strong>and</strong> African Americans (40 percent).However, the broadb<strong>and</strong> adoption rate for AfricanAmericans has been increasing rapidly (it was only 14 percentin early 2005). There are a number <strong>of</strong> factors that correlatewith the likelihood that a person or community willhave access to the Web. People in lower-income bracketsare less likely to own PCs. Phone service may be less reliable(particularly in rural areas), <strong>and</strong> Internet access mayrequire expensive toll charges. While schools <strong>and</strong> publiclibraries can <strong>of</strong>fer an alternative venue for Internet access,inner-city schools have tended to lag behind in connectingto the Internet <strong>and</strong> in the ratio <strong>of</strong> networked computers tostudents. (The Net Day activities in the mid-1990s first publicized<strong>and</strong> sought to ameliorate this problem.)Internet access also correlates to education. While personslacking a college education are likely to be poorer thancollege graduates, they are also less likely to be workingin jobs that include regular computer access. A deficiencyin basic reading <strong>and</strong> keyboard skills can also serve as abarrier to participation in the online world (see also computerliteracy). People over age 50 are also less likely tobe online. They are more likely to have spent their career innoncomputerized jobs <strong>and</strong> may feel that they cannot masterthe new technology.Targeted attempts to close the digital divide throughproviding more Internet access through schools <strong>and</strong> librariesare likely to continue to be successful. The marketplaceitself is perhaps making the biggest contribution, since theprice <strong>of</strong> an Internet-capable PC with a basic dial-up connectionis now around $400 plus about $10/month.Improvement in the teaching <strong>of</strong> general literacy as wellas technical skills in the K-12 schools is necessary if thenext generation is to be able to participate fully <strong>and</strong> equallyin the online world.Further ReadingCompaine, Benjamin M., ed. The Digital Divide: Facing a Crisis orCreating a Myth? Cambridge, Mass.: MIT Press, 2001.Digital Divide Network. Available online. URL: http://www.digitaldivide.net/. Accessed July 9, 2007.Norris, Pippa. Digital Divide: Civic Engagement, Information Poverty,<strong>and</strong> the Internet Worldwide. Cambridge, Mass.: CambridgeUniversity Press, 2001.Nulens, Gert. The Digital Divide in Developing Countries: Towardsan Information Society in Africa. Brussels: VUB Brussels UniversityPress, 2001.Pew Internet & American Life Project. “Digital Divisions.” Availableonline. URL: http://www.pewinternet.org/pdfs/PIP_Digital_Divisions_Oct_5_2005.pdf. Accessed July 9, 2007.———. “Home Broadb<strong>and</strong> Adoption 2007.” Available online. URL:http://www.pewinternet.org/pdfs/PIP_Broadb<strong>and</strong>%202007.pdf. Accessed July 9, 2007.digital rights management (DRM)By default, once information is digitized it is simply a pattern<strong>of</strong> bits that can be easily copied within the same or adifferent medium, using a variety <strong>of</strong> s<strong>of</strong>tware or the built-infacilities <strong>of</strong> the operating system. Of course the development<strong>of</strong> tape-recording technology in the mid-20th centuryalready made it possible to copy audio recordings, <strong>and</strong> thelater development <strong>of</strong> videotape <strong>and</strong> the VCR did the same forvideo. However, while analog copying techniques lose someaccuracy (or fidelity) with each generation <strong>of</strong> copying, digitalfiles can be copied exactly each time. It is equally easy toe-mail, upload, or otherwise distribute audio or video files.Legally, the creator <strong>of</strong> an original work can assert copyright—literally,the “right to copy” or to control when <strong>and</strong>how the work is distributed. Digital rights management(DRM) refers to a variety <strong>of</strong> technologies that can be usedto enforce this right by making it at least difficult for thepurchaser <strong>of</strong> one copy <strong>of</strong> a work to copy <strong>and</strong> distribute it inturn. (Similar technologies have also been used to preventcopying <strong>of</strong> s<strong>of</strong>tware, which is, after all, just another pattern<strong>of</strong> bits—see copy protection <strong>and</strong> s<strong>of</strong>tware piracy <strong>and</strong>counterfeiting.)DRM for Film <strong>and</strong> VideoIn the mid-1990s, movies on DVD were protected using theContent Scrambling System (CSS). This proprietary formatwas licensed only for certain hardware <strong>and</strong> operating systems,but in 1999 an activist programmer released DeCSS, aprogram that could decode protected discs <strong>and</strong> allow themto be played on operating systems such as Linux, which hadnot been licensed. A similar story unfolded in 2007 whenhackers broke the Advanced Access Content System (AACS)that was used to protect the new high-definition HD DVD<strong>and</strong> Blu-Ray discs.Protecting MusicDRM has also been used on many audio CDs. Many consumerscomplained that their CD players (particularly when usedwith Windows PCs) were not compatible with the protected


150 Dijkstra, Edsger W.discs. A bigger controversy arose in 2005 when Sony beganto use DRM technology that (without notification) installeda rootkit (a kind <strong>of</strong> “back door” to the operating system) thatpotentially left systems open to attack. Facing public outcry<strong>and</strong> several lawsuits, Sony withdrew the DRM, which, ironically,was rather ineffective at preventing copying. By 2007music CD producers had concluded that DRM had morecosts than benefits, <strong>and</strong> such protection is no longer foundon audio CDs.Music distributed online is <strong>of</strong>ten protected by DRM.However, some services such as Apple iTunes now <strong>of</strong>fer theoption <strong>of</strong> buying DRM-free music at a higher price. (Apple’sSteve Jobs has called upon the online music industry tocompletely eliminate DRM.)Legal <strong>and</strong> Other IssuesGenerally, the argument for DRM has been straightforward:If people can get something for free, they will not buy it.Content creators <strong>and</strong> publishers would go out <strong>of</strong> business.Organizations such as the Recording Institute Association<strong>of</strong> America (RIAA) have aggressively sued college students<strong>and</strong> others accused <strong>of</strong> sharing copyrighted music or videoonline <strong>and</strong> successfully forced the best known file-sharingservice, Napster, to become a licensed music service (seefile-sharing <strong>and</strong> p2p networks).The principal legal means for enforcing DRM is the DigitalMillennium Copyright Act (DMCA), passed in 1998. Thelaw prohibits the production or dissemination <strong>of</strong> technology(s<strong>of</strong>tware or hardware) that allows users to circumvent DRM.However, it has been difficult in practice to prevent the rapiddissemination <strong>of</strong> “cracks” for DRM over the Internet.There are also a number <strong>of</strong> legal arguments againstDRM. One is that it prevents certain actions allowed to consumersunder copyright law, such as making a backup copy<strong>of</strong> media that one has purchased (see intellectual property<strong>and</strong> computing). Also, because many DRM schemeswork only with Windows or Macintosh machines, users <strong>of</strong>other operating systems (notably Linux) must “crack” DRMin order to be able to use the protected media. (Under thelaw, such action to promote “interoperability” is allowed,though not if the purpose is to facilitate illegal copying. Butlike most matters <strong>of</strong> intent, this can be hard to determine.)There have also been First Amendment issues. Althoughthe DMCA includes a “scholarly research” exception, somecryptography researchers have said that they have beeninhibited from publishing analysis <strong>of</strong> DRM for fear <strong>of</strong> legalprosecution.A number <strong>of</strong> activists <strong>and</strong> groups have opposed DRM,including open-source advocate Richard Stallman <strong>and</strong> theElectronic Frontier Foundation (see cyberspace advocacygroups). One <strong>of</strong> their efforts has been promotion <strong>of</strong> theFree S<strong>of</strong>tware Foundation’s General Public License (GPL3),which prohibits the use <strong>of</strong> DRM in products distributedunder that open-source license.Further ReadingDefective by Design: A Campaign <strong>of</strong> the Free S<strong>of</strong>tware Foundation.Available online. URL: http://defectivebydesign.org/.Accessed September 12, 2007.Electronic Frontier Foundation. Available online. URL: http://www.eff.org. Accessed September 12, 2007.May, Christopher. Digital Rights Management: The Problem <strong>of</strong>Exp<strong>and</strong>ing Ownership Rights. Oxford, U.K.: Ch<strong>and</strong>os, 2007.Motion Picture Association <strong>of</strong> America. Available online. URL:http://www.mpaa.org/. Accessed September 12, 2007.Recording Industry Association <strong>of</strong> America. Available online.URL: http://www.riaa.org/. Accessed September 12, 2007.Van Tassel, Joan. Digital Rights Management: Protecting <strong>and</strong> MonetizingContent. Burlington, Mass.: Focal Press, 2006.Zeng, Wenjun, Heather Yu, <strong>and</strong> Ching-Yung Lin. Multimedia SecurityTechnologies for Digital Rights Management. Burlington,Mass.: Academic Press, 2006.Dijkstra, Edsger W.(1930–2002)Dutch<strong>Computer</strong> ScientistEdsger W. Dijkstra was born in Rotterdam, Netherl<strong>and</strong>s,in 1930 into a scientific family (his mother was a mathematician<strong>and</strong> his father was a chemist). He received anintensive <strong>and</strong> diverse intellectual training, studying Greek,Latin, several modern languages, biology, mathematics, <strong>and</strong>chemistry. While majoring in physics at the University <strong>of</strong>Leiden in 1951, he attended a summer school at Cambridgethat kindled what soon became a major interest in programming.He continued this pursuit at the MathematicalCenter in Amsterdam in 1952 while finishing studies for hisEdsger Dijkstra’s ideas about structured programming helpeddevelop the field <strong>of</strong> s<strong>of</strong>tware engineering, enabling programmersto organize <strong>and</strong> manage increasingly complex s<strong>of</strong>twareprojects. (Department <strong>of</strong> <strong>Computer</strong> <strong>Science</strong>s, UT Austin)


disabled persons <strong>and</strong> computing 151physics degree. At the time there were no degrees in computerscience; indeed, programming did not yet exist as anacademic discipline. Like most other computers <strong>of</strong> the time,the Mathematical Center’s ARMAC was custom-built. Withno high-level languages yet in use, programming requiredintimate familiarity with the machine’s architecture <strong>and</strong>low-level instructions. Dijkstra soon found that he thrivedin such an environment.By 1956, Dijkstra had discovered an algorithm for findingthe shortest path between two points. He applied thealgorithm to the practical problem <strong>of</strong> designing electricalcircuits that used as little wire as possible, <strong>and</strong> generalizedit into a procedure for traversing treelike data structures.During the 1960s, Dijkstra began to explore the problem<strong>of</strong> communication <strong>and</strong> resource-sharing within computers.He developed the idea <strong>of</strong> a semaphore. Like therailroad signaling device that allows only one train at atime to pass through a single section <strong>of</strong> track, the programmingsemaphore provides mutual exclusion, ensuring thattwo processes don’t try to access the same memory or otherresource at the same time.Another problem Dijkstra tackled involved the sequencing<strong>of</strong> several processes that are accessing the sameresources. He found ways to avoid a deadlock situationwhere one process had part <strong>of</strong> what it needed but was stuckbecause the process holding the other needed resource wasin turn waiting for the first process to finish. His algorithmsfor allowing multiple processes (or processors) to take turnsgaining access to memory or other resources would becomefundamental for the design <strong>of</strong> new computing architectures.During the 1970s, Dijkstra immigrated to the UnitedStates, where he became a research fellow at Burroughs, one<strong>of</strong> the major manufacturers <strong>of</strong> mainframe computers. Duringthis time he helped launch the “structured programming”movement. His paper “GO TO Considered Harmful”criticized the use <strong>of</strong> that unconditional “jump” instructionbecause it made programs hard to read <strong>and</strong> verify. Thenewer structured languages such as Pascal <strong>and</strong> C affirmedDijkstra’s belief in avoiding or discouraging such haphazardprogram flow (see structured programming).Dijkstra spent the last decades <strong>of</strong> his career as a pr<strong>of</strong>essor<strong>of</strong> mathematics at the University <strong>of</strong> Texas at Austin,where he held the Schlumberger Centennial Chair in<strong>Computer</strong> <strong>Science</strong>. Dijkstra had some unusual quirks fora computer scientist. His papers were h<strong>and</strong>written with afountain pen, <strong>and</strong> he did not even own a personal computeruntil late in life.In 1972 Dijkstra won the Association for ComputingMachinery’s Turing Award. After his death on August 6, 2002,in Nuenen, The Netherl<strong>and</strong>s, the ACM renamed its award forpapers in distributed computing as the Dijkstra Prize.Perhaps Dijkstra’s greatest testament, however, is foundin the millions <strong>of</strong> lines <strong>of</strong> computer code that are betterorganized <strong>and</strong> easier to maintain because <strong>of</strong> the widespreadadoption <strong>of</strong> structured programming.Further ReadingDijkstra, Edsger Wybe. A Discipline <strong>of</strong> Programming. Upper SaddleRiver, N.J.: Prentice Hall, 1976.———. Selected Writings on Computing: A Personal Perspective. NewYork: Springer, 1982.———, <strong>and</strong> W. H. J. Feijen. A Method <strong>of</strong> Programming. Reading,Mass.: Addison-Wesley, 1988.Shasha, Dennis, <strong>and</strong> Cathy Lazere. Out <strong>of</strong> Their Minds: The Lives<strong>and</strong> Discoveries <strong>of</strong> 15 Great <strong>Computer</strong> Scientists. New York:Springer-Verlag, 1995.disabled persons <strong>and</strong> computingThe impact <strong>of</strong> the personal computer upon persons havingdisabilities involving sight, hearing, or movement hasbeen significant but mixed. <strong>Computer</strong>s can help disabledpeople communicate <strong>and</strong> interact with their environment,better enabling them to work <strong>and</strong> live in the mainstream <strong>of</strong>society. At the same time, changes in computer technologycan, if not ameliorated, exclude some disabled persons fromfuller participation in a society where computer access <strong>and</strong>skills are increasingly taken for granted.<strong>Computer</strong>s as Enablers<strong>Computer</strong>s can be very helpful to disabled persons. Withthe use <strong>of</strong> text-to-speech s<strong>of</strong>tware, blind people can haveonline documents read to them. (With the aid <strong>of</strong> a scanner,printed materials can also be input <strong>and</strong> read aloud.)Persons with low vision can benefit from s<strong>of</strong>tware thatcan present text in large fonts or magnify the contents <strong>of</strong>the screen. Text can also be printed (embossed) in Braille.Deaf or hearing-impaired persons can now use e-mail orinstant messaging s<strong>of</strong>tware for much <strong>of</strong> their communicationneeds, largely replacing the older <strong>and</strong> more cumbersometeletype (TTY <strong>and</strong> TTD) systems. As people who haveseen presentations by physicist Stephen Hawking know,even quadriplegics who have only the use <strong>of</strong> head or fingermovements can input text <strong>and</strong> have it spoken by a voicesynthesizer. Further, advances in coupling eye movements(<strong>and</strong> even brain wave patterns) to computer systems <strong>and</strong>robotic extensions <strong>of</strong>fer hope that even pr<strong>of</strong>oundly disabledpersons will be able to be more self-sufficient.ChallengesUnfortunately, changes in computer technology can alsocause problems for disabled persons. The most pervasiveproblem arose when text-based operating systems such asMS-DOS were replaced by systems such as Micros<strong>of</strong>t Windows<strong>and</strong> the Macintosh that are based on graphic icons<strong>and</strong> the manipulation <strong>of</strong> objects on the screen. While textcomm<strong>and</strong>s <strong>and</strong> output on the older system could be easilyturned into speech for the visually impaired, everything,even text, is actually graphics on a Windows system. Whileit is possible to have s<strong>of</strong>tware “hook into” the operating systemto read text within Windows out loud, it is much moredifficult to provide an alternative way for a blind person t<strong>of</strong>ind, click on, drag, or otherwise manipulate screen objects.Thus far, while Micros<strong>of</strong>t <strong>and</strong> other operating system developershave built some “accessibility” features such as screenmagnification into recent versions <strong>of</strong> their products, thereis no systematic, integrated facility that would allow a blindperson to have the same facility as a sighted person.


152 disaster planning <strong>and</strong> recoveryThe growth <strong>of</strong> the World Wide Web also poses problemsfor the visually impaired, since many Web pages relyon graphical buttons for navigation. S<strong>of</strong>tware plug-ins canprovide audio cues to help with screen navigation. WhileWeb browsers usually have some flexibility in setting thesize <strong>of</strong> displayed fonts, some newer features (such as cascadingstyle sheets) can remove control over font sizefrom the user.Because most computer systems today use graphicaluser interfaces, the failure to provide effective access may bedepriving blind <strong>and</strong> visually impaired persons <strong>of</strong> employmentopportunities. Meanwhile, the computer industry, educationalinstitutions, <strong>and</strong> workplaces face potential challenges underthe Americans with Disabilities Act (ADA), which requiresthat public <strong>and</strong> workplace facilities be made accessible tothe disabled. Some funding through the <strong>Technology</strong>-RelatedAssistance Act has been provided to states for promoting theuse <strong>of</strong> adaptive technology to improve accessibility.Further ReadingAdaptive <strong>Computer</strong> Products. Available online. URL: http://www.makoa.org/computers.htm. Accessed July 9, 2007.Better Living through <strong>Technology</strong>. Available online. URL: http://www.bltt.org/. Accessed July 9, 2007.Gnome [Linux]. Accessibility Project. Available online. URL:http://developer.gnome.org/projects/gap/. Accessed July 9,2007.Micros<strong>of</strong>t Accessibility. Available online. URL: http://www.micros<strong>of</strong>t.com/enable/default.aspx. Accessed July 9, 2007.Slatin, John M., <strong>and</strong> Sharron Rush. Maximum Accessibility: MakingYour Web Site More Usable for Everyone. Boston: Addison-Wesley Pr<strong>of</strong>essional, 2003.Thatcher, Jim, et al. Web Accessibility: Web St<strong>and</strong>ards <strong>and</strong> RegulatoryCompliance. New York: Springer, 2006.V<strong>and</strong>erheiden, Gregg C. Making S<strong>of</strong>tware More Accessible for Peoplewith Disabilities. Collingdale, Penn.: Diane Pub. Co., 2004.disaster planning <strong>and</strong> recoveryMost businesses, government <strong>of</strong>fices, or other organizationsare heavily dependent on having continuous access to theirdata <strong>and</strong> the hardware, network, <strong>and</strong> s<strong>of</strong>tware necessary towork with it. Activities such as procurement (see supplychain management), inventory, order fulfillment, <strong>and</strong> customerlists are vital to day-to-day operations. Any disasterthat might disrupt these activities, whether natural (such asan earthquake or severe weather) or human-made (see computervirus <strong>and</strong> cyberterrorism), must be planned for.Such planning is <strong>of</strong>ten called “business continuity planning.”The most basic way to protect against data loss is tomaintain regular backups (see backup <strong>and</strong> archive systems).On-site backups can protect against hardware failure,<strong>and</strong> can consist <strong>of</strong> separate storage devices (see networkedstorage) or the use <strong>of</strong> redundant storage within the mainsystem itself (see raid). However, for protection against fireor other larger-scale disaster, it is also necessary to haveregular <strong>of</strong>f-site backups, whether using a dedicated facilityor an online backup service.To protect against power failure or interruption, one ormore uninterruptible power supplies (UPS) can be used,<strong>and</strong> possibly a backup generator to deal with longer-termoutages. All equipment should also have surge protection toavoid damage from power fluctuations.Of course anything that can minimize the chance <strong>of</strong>disaster happening or the extent <strong>of</strong> its effects should also bepart <strong>of</strong> disaster planning. This can include structural reinforcement,physical security, firewalls <strong>and</strong> antivirus s<strong>of</strong>tware,<strong>and</strong> fire alarms <strong>and</strong> suppression systems.Disaster PlanningDespite the best precautions, disasters will continue to happen.Organizations whose continued existence depends ontheir data <strong>and</strong> systems need to plan systematically how theyare going to respond to foreseeable risks, <strong>and</strong> how they aregoing to recover <strong>and</strong> resume operations. Planning for disastersinvolves the following general steps:• specify the potential costs <strong>and</strong> other impacts <strong>of</strong> loss <strong>of</strong>data or access• use that data to prioritize business functions or units• assess how well facilities are currently being protected• determine what additional hardware or services (suchas additional file servers, attached storage, or remotebackup) should be installed• develop a comprehensive recovery plan that specifiesprocedures for dealing with various types <strong>of</strong> disastersor extent <strong>of</strong> damage, <strong>and</strong> including immediateresponse, recovery or restoration <strong>of</strong> data, <strong>and</strong> resumption<strong>of</strong> normal services• develop plans for communicating with customers,authorities, <strong>and</strong> the general public in the event <strong>of</strong> adisaster• specify the responsibilities <strong>of</strong> key personnel <strong>and</strong> providetraining in all procedures• arrange ahead <strong>of</strong> time for sources <strong>of</strong> supplies, additionalsupport staff, <strong>and</strong> so on• establish regular tests or drills to verify the effectiveness<strong>of</strong> the plan <strong>and</strong> to maintain the necessary skillsRecent natural disasters as well as the 9/11 terroristattacks have spurred many organizations to begin orenhance their disaster planning <strong>and</strong> recovery procedures.Further ReadingBenton, Dick. “Disaster Recovery: A Pragmatist’s Viewpoint.”Disaster Recovery Journal, Winter 2007, pp. 79–81. Availableonline. URL: http://www.drj.com/articles/win07/2001-16.pdf.Accessed September 13, 2007.Disaster Recovery Guide. Available online. URL: http://www.disasterrecovery-guide.com/.Accessed September 13, 2007.Disaster Recovery World: The Business Continuity Planning &Disaster Recovery Planning Directory. Available online. URL:http://www.disasterrecoveryworld.com/. Accessed September13, 2007.Snedaker, Susan. Business Continuity <strong>and</strong> Disaster Recovery Planningfor IT Pr<strong>of</strong>essionals. Rockl<strong>and</strong>, Md.: Syngress, 2007.Wallace, Michael. The Disaster Recovery H<strong>and</strong>book: A Step-by-StepPlan to Ensure Business Continuity <strong>and</strong> Protect Vital Operations,Facilities, <strong>and</strong> Assets. New York: AMACOM, 2004.


distance education 153disk array See raid.distance educationDistance education (also called distance learning or virtuallearning) is the use <strong>of</strong> electronic information <strong>and</strong> communicationtechnology to link teachers <strong>and</strong> students withouttheir being together in a physical classroom.Distance education in the form <strong>of</strong> correspondenceschools or classes actually began as early as the mid-19thcentury with teaching <strong>of</strong> the Pitman Shorth<strong>and</strong> writingmethod. Later, correspondence classes became part <strong>of</strong>Chautauqua, a movement to educate the rural <strong>and</strong> urbanworking classes, taking advantage <strong>of</strong> the growing reach <strong>of</strong>mail service through Rural Free Delivery. In correspondenceschools, each lesson is typically mailed to the student,who completes the required work <strong>and</strong> returns it forgrading. A certificate is awarded upon completion <strong>of</strong> courserequirements. A few universities (such as the University <strong>of</strong>Wisconsin) also began to <strong>of</strong>fer correspondence programs.By the middle <strong>of</strong> the 20th century, radio <strong>and</strong> then televisionwas being used to bring lectures to students. Thisincreased the immediacy <strong>and</strong> spontaneity <strong>of</strong> teaching. Theinvention <strong>of</strong> videotape in the 1970s allowed leading teachersto create customized courses geared for different audiences.However, the ability <strong>of</strong> students to interact with teachersremained limited.In the 1960s computers also began to be used for education.One <strong>of</strong> the earliest <strong>and</strong> most innovative programswas PLATO (Programmed Logic for Automatic TeachingOperations), which began at the University <strong>of</strong> Illinois butwas later exp<strong>and</strong>ed to hundreds <strong>of</strong> networked terminals.PLATO in many ways pioneered the combining <strong>of</strong> text,graphics, <strong>and</strong> sound—what would later be called multimedia.PLATO also provided for early forms <strong>of</strong> both e-mail <strong>and</strong>computer bulletin boards.Meanwhile, with the development <strong>of</strong> ARPANET <strong>and</strong>eventually the Internet, a new platform became availablefor delivering instruction. By the mid-1990s, courses werebeing delivered via the Internet (see World Wide Web).Modern Distance EducationAs broadb<strong>and</strong> Internet access becomes the norm, more Internet-basedlearning environments are taking advantage <strong>of</strong>video conferencing technology, allowing teachers <strong>and</strong> studentsto interact face to face. This helps answer a commonobjection by critics that distance education cannot replicatethe personal <strong>and</strong> social dimensions <strong>of</strong> face-to-face education.Distance education technologies such as this Polycom video conferencing s<strong>of</strong>tware enable teachers <strong>and</strong> students to see, talk, <strong>and</strong> interact witheach other. Here, Manhattan School <strong>of</strong> Music student Wu Jie <strong>of</strong> the Zukerman Performance Program demonstrates her violin technique toMaestro Zukerman. (Photo by Andrew Lepley for Business Wire via Getty Images)


154 distributed computingAnother way this objection is sometimes addressed by universitiesis by having a period <strong>of</strong> physical residency (perhapsa few weeks) as part <strong>of</strong> the semester.New platforms for distance education continue toemerge. Class content including lectures has been formattedfor delivery to mobile devices such as iPods (see pda<strong>and</strong> smartphone). Another intriguing idea is to establishthe classroom within an existing virtual world, such asthe popular game Second Life (see online games.) Herestudents <strong>and</strong> teachers can meet “face to face” through theirvirtual embodiments (avatars). It seems only a matter <strong>of</strong>time before entire universities will exist in such burgeoningalternative worlds.Further ReadingBates, A. W. (Tony). <strong>Technology</strong>, E-Learning <strong>and</strong> Distance Education.2nd ed. New York: Routledge, 2005.Distance Education at a Glance. University <strong>of</strong> Idaho. Availableonline. URL: http://www.uidaho.edu/eo/distglan. AccessedSeptember 13, 2007.Distance Learning. About.com. Available online. URL: http://distancelearn.about.com/. Accessed September 13, 2007.Moore, Michael Grahame, ed. H<strong>and</strong>book <strong>of</strong> Distance Education. 2nded. Lawrence Mahwah, N.J.: Erlbaum, 2007.Peterson’s Online Degrees <strong>and</strong> Distance Learning Programs. Availableonline. URL: http://www.petersons.com/distancelearning/.Accessed September 13, 2007.Simonson, Michael, et al. Teaching <strong>and</strong> Learning at a Distance:Foundations <strong>of</strong> Distance Education. 3rd ed. Upper Saddle River,N.J.: Prentice Hall, 2005.distributed computingThis concept involves the creation <strong>of</strong> a s<strong>of</strong>tware systemthat runs programs <strong>and</strong> stores data across a number <strong>of</strong> differentcomputers, an idea pervasive today. A simple formis the central computer (such as in a bank or credit cardcompany) with which thous<strong>and</strong>s <strong>of</strong> terminals communicateto submit transactions. While this system is in some sensedistributed, it is not really decentralized. Most <strong>of</strong> the workis done by the central computer, which is not dependent onthe terminals for its own functioning. However, responsibilitiescan be more evenly apportioned between computers(see client-server computing).Today the World Wide Web is in a sense the world’slargest distributed computing system. Millions <strong>of</strong> documentsstored on hundreds <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> servers can beaccessed by millions <strong>of</strong> users’ Web browsers running ona variety <strong>of</strong> personal computers. While there are rules forspecifying addresses <strong>and</strong> creating <strong>and</strong> routing data packets(see Internet <strong>and</strong> tcp/ip), no one agency or computercomplex controls access to information or communication(such as e-mail).Elements <strong>of</strong> a Distributed Computing SystemThe term distributed computer system today generally refersto a more specific <strong>and</strong> coherent system such as a databasewhere data objects (such as records or views) can reside onany computer within the system. Distributed computer systemsgenerally have the following characteristics:• The system consists <strong>of</strong> a number <strong>of</strong> computers (sometimescalled nodes). The computers need not necessarilyuse the same type <strong>of</strong> hardware, though theygenerally use the same (or similar) operating systems.• Data consists <strong>of</strong> logical objects (such as databaserecords) that can be stored on disks connected toany computer in the system. The ability to movedata around allows the system to reduce bottlenecksin data flow or optimize speed by storing the mostfrequently used data in places from which it can beretrieved the most quickly.• A system <strong>of</strong> unique names specifies the location <strong>of</strong>each object. A familiar example is the DNS (DomainNaming System) that directs requests to Web pages.• Typically, there are many processes running concurrently(at the same time). Like data objects, processescan be allocated to particular processors to balancethe load. Processes can be further broken down intothreads (see concurrent programming). Thus, thesystem can adjust to changing conditions (for example,processing larger numbers <strong>of</strong> incoming transactionsduring the day versus performing batches <strong>of</strong>“housekeeping” tasks at night).• A remote procedure call facility enables processes onone computer to communicate with processes runningon a different computer.• In inter-process communication protocols specify theprocessing <strong>of</strong> “messages” that processes use to reportstatus or ask for resources. Message-passing can beasynchronous (not time-dependent, <strong>and</strong> analogousto mailing letters) or synchronous (with interactiveresponses, as in a conversation).• The capabilities <strong>of</strong> each object (<strong>and</strong> thus the messagesit can respond to or send) are defined in terms <strong>of</strong> aninterface <strong>and</strong> an implementation. The interface is likethe declaration in a conventional program: It definesthe types <strong>of</strong> data that can be received <strong>and</strong> the types<strong>of</strong> data that will be returned to the calling process.The implementation is the code that specifies how theactual processing will be done. The hiding <strong>of</strong> implementationdetails within the object is characteristic <strong>of</strong>object-oriented programming (see class).• A distributed computing environment includes facilitiesfor managing objects dynamically. This includeslower-level functions such as copying, deleting, ormoving objects <strong>and</strong> systemwide capabilities to distributeobjects in such as way as to distribute theload on the system’s processors more evenly, to makebackup copies <strong>of</strong> objects (replication), <strong>and</strong> to reclaim<strong>and</strong> reorganize resources (such as memory or diskspace) that are no longer allocated to objects.Three widely used systems for distributed computingare Micros<strong>of</strong>t’s DCOM (Distributed Component ObjectModel), OMG’s Common Object Request Broker Architecture(see Micros<strong>of</strong>t .net <strong>and</strong> corba), <strong>and</strong> Sun’s Java/


DNS 155Remote Method Invocation (Java/RMI). While these implementationsare quite different in details, they provide most<strong>of</strong> the elements <strong>and</strong> facilities summarized above.ApplicationsDistributed computing is particularly suited to applicationsthat require extensive computing resources <strong>and</strong> thatmay need to be scaled (smoothly enlarged) to accommodateincreasing needs (see grid computing). Examplesmight include large databases, intensive scientific computing,<strong>and</strong> cryptography. A particularly interesting exampleis SETI@home, which invites computer users to install aspecial screen saver that runs a distributed process duringthe computer’s idle time. The process analyzes radiotelescope data for correlations that might indicate receipt <strong>of</strong>signals from an extraterrestrial intelligence (see cooperativeprocessing).Besides being able to marshal very large amounts <strong>of</strong>computing power, distributed systems <strong>of</strong>fer improved faulttolerance. Because the system is decentralized, if a particularcomputer fails, its processes can be replaced byones running on other machines. Replication (copying) <strong>of</strong>data across a widely dispersed network can also provideimproved data recovery in the event <strong>of</strong> a disaster.Further ReadingFarley, Jim, <strong>and</strong> Mike Loukides. Java Distributed Computing. Sebastopol,Calif.: O’Reilly, 1998.Garg, Vijay K. Concurrent <strong>and</strong> Distributed Computing in Java. NewYork: Wiley, 2004.———. Elements <strong>of</strong> Distributed Computing. New York: Wiley,2002.G<strong>of</strong>f, Max K. Network Distributed Computing: Fitscapes <strong>and</strong> Fallacies.Upper Saddle River, N.J.: Prentice Hall, 2003.MacDonald, Matthew. Micros<strong>of</strong>t .NET Distributed Applications:Integrating XML Web Services <strong>and</strong> .NET Remoting. Redmond,Wash.: Micros<strong>of</strong>t Press, 2003.Obasanjo, Dare, <strong>and</strong> Sanjay Bhatia. “An Introduction to DistributedObject Technologies.” Available online. URL:http://www.25hoursaday.com/_IntroductionToDistributedComputing.html. Accessed February 1, 2008.Shan, Yen-Ping, Ralph H. Earle, <strong>and</strong> Marie A. Lenzi. EnterpriseComputing with Objects: from Client-Server Environments to theInternet. Reading, Mass.: Addison-Wesley, 1997.SETI@Home. Available online. URL: http://setiathome.ssl.berkeley.edu/. Accessed August 14, 2007.DNS (domain name system)The operation <strong>of</strong> the Internet requires that each participatingcomputer have a unique address to which data packetscan be routed (see Internet <strong>and</strong> tcp/ip). The DomainName System (DNS) provides alphabetical equivalents tothe numeric IP addresses, giving the now familiar-lookingWeb addresses (URLs), e-mail addresses, <strong>and</strong> so on.The system uses a set <strong>of</strong> “top-level” domains to categorizethese names. One set <strong>of</strong> domains is based on thenature <strong>of</strong> the sites involved, including: .com (commercial,corporate), .edu (educational institutions), .gov (government),.mil (military), .org (nonpr<strong>of</strong>it organizations), .int(international organizations), .net (network service providers,<strong>and</strong> so on).The other set <strong>of</strong> top-level domains is based on the geographicallocation <strong>of</strong> the site. For example, .au (Australia),.fr (France), <strong>and</strong> .ca (Canada). (While the United States hasthe .us domain, it is generally omitted in practice, becausethe Internet was developed in the United States).ADAEAFAGAIALAMANAOAQARASATAUAWAZBABBBDBEBFBGBHBIBJBMBNBOBRBSBTBVBWBYBZCACCCFCGCHCICKCLCMCNCOCRINTERNET COUNTRY CODES(partial list)AndorraUnited Arab EmiratesAfghanistanAntigua <strong>and</strong> BarbudaAnguillaAlbaniaArmeniaNetherl<strong>and</strong>s AntillesAngolaAntarcticaArgentinaAmerican SamoaAustriaAustraliaArubaAzerbaijanBosnia <strong>and</strong> HerzegovinaBarbadosBangladeshBelgiumBurkina FasoBulgariaBahrainBurundiBeninBermudaBrunei DarussalamBoliviaBrazilBahamasBhutanBouvet Isl<strong>and</strong>BotswanaBelarusBelizeCanadaCocos (Keeling) Isl<strong>and</strong>sCentral African RepublicCongoSwitzerl<strong>and</strong>Côte d’Ivoire (Ivory Coast)Cook Isl<strong>and</strong>sChileCameroonChinaColombiaCosta Rica


156 DNSCSCUCVCXCYCZDEDJDKDMDODZECEEEGEHERESETFIFJFKFMFOFRFXGAGBGDGEGFGHGIGLGMGNGPGQGRGSGTGUGWGYHKHMHNHRHTHUIDIEILINIOIQCzechoslovakia (former)CubaCape VerdeChristmas Isl<strong>and</strong>CyprusCzech RepublicGermanyDjiboutiDenmarkDominicaDominican RepublicAlgeriaEcuadorEstoniaEgyptWestern SaharaEritreaSpainEthiopiaFinl<strong>and</strong>FijiFalkl<strong>and</strong> Isl<strong>and</strong>s (Malvinas)MicronesiaFaroe Isl<strong>and</strong>sFranceFrance, MetropolitanGabonGreat Britain (UK)GrenadaGeorgiaFrench GuianaGhanaGibraltarGreenl<strong>and</strong>GambiaGuineaGuadeloupeEquatorial GuineaGreeceS. Georgia <strong>and</strong> S. S<strong>and</strong>wich Isls.GuatemalaGuamGuinea-BissauGuyanaHong KongHeard <strong>and</strong> McDonald Isl<strong>and</strong>sHondurasCroatia (Hrvatska)HaitiHungaryIndonesiaIrel<strong>and</strong>IsraelIndiaBritish Indian Ocean TerritoryIraqIRISITJMJOJPKEKGKHKIKMKNKPKRKWKYKZLALBLCLILKLRLSLTLULVLYMAMCMDMGMHMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZNANCNENFNGNINLIranIcel<strong>and</strong>ItalyJamaicaJordanJapanKenyaKyrgyzstanCambodiaKiribatiComorosSaint Kitts <strong>and</strong> NevisKorea (North)Korea (South)KuwaitCayman Isl<strong>and</strong>sKazakhstanLaosLebanonSaint LuciaLiechtensteinSri LankaLiberiaLesothoLithuaniaLuxembourgLatviaLibyaMoroccoMonacoMoldovaMadagascarMarshall Isl<strong>and</strong>sMacedoniaMaliMyanmarMongoliaMacauNorthern Mariana Isl<strong>and</strong>sMartiniqueMauritaniaMontserratMaltaMauritiusMaldivesMalawiMexicoMalaysiaMozambiqueNamibiaNew CaledoniaNigerNorfolk Isl<strong>and</strong>NigeriaNicaraguaNetherl<strong>and</strong>s


DNS 157NONPNRNTNUNZOMPAPEPFPGPHPKPLPMPNPRPTPWPYQARERORURWSASBSCSDSESGSHSISJSKSLSMSNSOSRSTSUSVSYSZTCTDTFTGTHTJTKTMTNTOTPNorwayNepalNauruNeutral ZoneNiueNew Zeal<strong>and</strong> (Aotearoa)OmanPanamaPeruFrench PolynesiaPapua New GuineaPhilippinesPakistanPol<strong>and</strong>St. Pierre <strong>and</strong> MiquelonPitcairnPuerto RicoPortugalPalauParaguayQatarReunionRomaniaRussian FederationRw<strong>and</strong>aSaudi ArabiaSolomon Isl<strong>and</strong>sSeychellesSudanSwedenSingaporeSt. HelenaSloveniaSvalbard <strong>and</strong> Jan Mayen Isl<strong>and</strong>sSlovak RepublicSierra LeoneSan MarinoSenegalSomaliaSurinameSao Tome <strong>and</strong> PrincipeUSSR (former)El SalvadorSyriaSwazil<strong>and</strong>Turks <strong>and</strong> Caicos Isl<strong>and</strong>sChadFrench Southern TerritoriesTogoThail<strong>and</strong>TajikistanTokelauTurkmenistanTunisiaTongaEast TimorTRTTTVTWTZUAUGUKUMUSUYUZVAVCVEVGVIVNVUWFWSYEYTYUZAZMZRZWTurkeyTrinidad <strong>and</strong> TobagoTuvaluTaiwanTanzaniaUkraineUg<strong>and</strong>aUnited KingdomUS Minor Outlying Isl<strong>and</strong>sUnited StatesUruguayUzbekistanVatican City State (Holy See)Saint Vincent <strong>and</strong> the GrenadinesVenezuelaVirgin Isl<strong>and</strong>s (British)Virgin Isl<strong>and</strong>s (U.S.)Viet NamVanuatuWallis <strong>and</strong> Futuna Isl<strong>and</strong>sSamoaYemenMayotteYugoslaviaSouth AfricaZambiaZaireZimbabweDomains <strong>and</strong> AddressesA complete Internet address generally consists <strong>of</strong> a wordrepresenting the name <strong>of</strong> the organization or company, possiblyfollowed by the name <strong>of</strong> a department or division.This is followed by the top-level domain. Here are someexamples:well.com The Well conferencing system, a business in theU.S.acm.org The Association for Computing Machinery, a nonpr<strong>of</strong>itpr<strong>of</strong>essional organizationstate.gov United States Department <strong>of</strong> Stateberkeley.edu University <strong>of</strong> California, Berkeleywww2.physics.ox.ac.uk Department <strong>of</strong> Physics, Oxford University,Oxfordshire, United Kingdom.To access a service at a given site, the host address is prefixedto indicate the server or service. Most commonly, thisis www for World Wide Web. Thus www.well.com indicatesthe Web server at the well.com host, while ftp.well.comwould indicate the ftp (file transfer protocol) server. (Insome cases, if there is no prefix, www will be assumed.)A complete Web address or URL (Uniform ResourceLocator) also includes a prefix for the protocol to be used(see World Wide Web). Most commonly this is http:// (forhypertext transfer protocol), though most Web browsers


158 documentation <strong>of</strong> program codewill treat this as the default <strong>and</strong> not require that it be typed.ftp:// can be used to access ftp servers via the Web. Finally,a URL must include the path to the directory that actuallycontains the HTML document or other resource, as wellas its filename. Thus a complete address for a hypotheticaluser’s home page might be:http://www.BigUniversity.edu/users/tomr/index.htmlInternal AddressingWhen a Web user types such an address, the Web browserconnects to a nearby name server. This program translatesthe name into an IP (Internet Protocol) address. Theaddress consists <strong>of</strong> four 8-bit numbers called tuples, separatedby periods. For example, the domain name www.well.com currently translates to 208.178.101.2. The first numberrepresents one <strong>of</strong> five classes <strong>of</strong> networks, with thefirst three classes (A-C) organized according to the number<strong>and</strong> size <strong>of</strong> networks <strong>and</strong> D <strong>and</strong> E being reserved for oneto-many“broadcast” transmissions <strong>and</strong> experimentationrespectively.To obtain a domain name, a person or organizationcontacts one <strong>of</strong> several registration services accredited byICANN (the nonpr<strong>of</strong>it Internet Corporation for assignedNames <strong>and</strong> Numbers). Each name must be unique. Considerablelegal disputation has occurred when someonenot connected with a company has registered a domaincontaining that company’s name. The tremendous growth<strong>of</strong> e-commerce has made distinctive or easy-to-rememberdomain names a scarce <strong>and</strong> valuable commodity. Foreseeingthis, some speculators bought up attractive domains inthe hope (sometimes realized) <strong>of</strong> selling them to corporationsat a huge pr<strong>of</strong>it. Anti–“domain squatting” laws werepassed in reaction. In other cases, disgruntled employees orconsumers have registered domains for Web sites critical <strong>of</strong>major corporations such as airlines <strong>and</strong> telephone companies.In the courts, this pits the right <strong>of</strong> free speech againstthe right <strong>of</strong> a company to control the use <strong>of</strong> its name.Exp<strong>and</strong>ing the SystemThe expansion <strong>of</strong> the Internet has strained the capacity <strong>of</strong>the existing DNS. The shortage <strong>of</strong> “name space” is beingaddressed by the release <strong>of</strong> IP Version 6, which replaces the32-bit addresses with 128-bit ones. In addition, in November2000 ICANN announced the creation <strong>of</strong> seven new topleveldomains: .aero (air transport), .biz (business), .coop(cooperatives), .info (general-purpose), .museum (museums),.name (personal sites), <strong>and</strong> .pro (pr<strong>of</strong>essionals suchas lawyers, accountants, <strong>and</strong> physicians). However, the situationis muddled by the existence <strong>of</strong> competing proposals<strong>and</strong> the use <strong>of</strong> un<strong>of</strong>ficial DNS systems that provide theirown domains (but require special s<strong>of</strong>tware for access, sincethey are not recognized by regular DNS servers).Perhaps a more fundamental issue is the adopting <strong>of</strong>a system designed by English speakers to a world thatincreasingly seeks international access <strong>and</strong> st<strong>and</strong>ards (seeinternationalization). The problem is how to meet localneeds without creating new barriers through incompatibleaddressing schemes. The proposal being implemented as <strong>of</strong>the mid-2000s is called Internationalizing Domain Namesin Applications (IDNA). This st<strong>and</strong>ard includes an algorithmby which address labels written using the many charactersets <strong>and</strong> diacritical marks in the world’s languages(as rendered in Unicode) can be translated to the st<strong>and</strong>ardASCII characters used by the existing DNS (see characters<strong>and</strong> strings).Further ReadingAlbitz, Paul, <strong>and</strong> Cricket Liu. DNS <strong>and</strong> BIND, 4th ed. Sebastopol,Calif.: O’Reilly, 2001.ICANN (Internet Corporation for Assigned Names <strong>and</strong> Numbers).Available online. URL: http://www.icann.org/. AccessedAugust 14, 2007.“Internationalization <strong>of</strong> Domain Names: A History <strong>of</strong> <strong>Technology</strong>.”Internet Society. www.isoc.org/pubpolpillar/docs/i18n-dnschronology.pdf.Accessed July 10, 2007.InterNIC. Available online. URL: http://www.internic.net/. AccessedAugust 14, 2007.InterNIC Registry WhoIs [domain look-up]. Available online.URL: http://www.internic.net/whois.html. Accessed August14, 2007.documentation <strong>of</strong> program code<strong>Computer</strong> system documentation can be divided into twomain categories based upon the intended audience. Manuals<strong>and</strong> training materials for users focus on explaininghow to use the program’s features to meet the user’s needs(see documentation, user). This entry, however, focuseson the creation <strong>of</strong> documentation for programmers <strong>and</strong> othersinvolved in s<strong>of</strong>tware development <strong>and</strong> maintenance (seealso technical writing).S<strong>of</strong>tware documentation can consist <strong>of</strong> commentsdescribing the operation <strong>of</strong> a line or section <strong>of</strong> code. Earlyprogramming with its reliance on punched cards had onlyminimal facilities for incorporating comments. (Some <strong>of</strong> theproponents <strong>of</strong> COBOL thought that the language’s Englishlikesyntax would make additional documentation unnecessary.Like the similar claim that trained programmerswould no longer be needed, the reality proved otherwise.)After the switch from punchcard input to the use <strong>of</strong>keyboards, adding comments became easier. For example, acomment in C looks like this:printf(“Hello, world\n”);/* Display the traditional message */while C++ uses comments in this form:cout


documentation, user 159In addition to the commented source code, externaldocumentation is usually provided. Design documents canrange from simple flowcharts or outlines to detailed specifications<strong>of</strong> the program’s purpose, structure, <strong>and</strong> operations.Rather than being considered an afterthought, documentationhas been increasingly integrated into the practice <strong>of</strong>s<strong>of</strong>tware engineering <strong>and</strong> the s<strong>of</strong>tware development process.This practice became more prevalent during the 1960s <strong>and</strong>1970s when it became clear that programs were not onlybecoming larger <strong>and</strong> more complex, but also that significantprograms such as business accounting <strong>and</strong> inventory applicationswere likely to have to be maintained or revised forperhaps decades to come. (The lack <strong>of</strong> adequate documentation<strong>of</strong> date-related code in programs <strong>of</strong> this vintage becamean acute problem in the late 1990s. See y2k problem.)Documentation ToolsAs programmers began to look toward developing theircraft into a more comprehensive discipline, advocates <strong>of</strong>structured programming placed an increased emphasis notonly on proper commenting <strong>of</strong> code but on the development<strong>of</strong> tools that could automatically create certain kinds<strong>of</strong> documentation from the source code. For example, thereare utilities for C, C++, <strong>and</strong> Java (javadoc) that will extractinformation about class declarations or interfaces <strong>and</strong> formatthem into tables. Most s<strong>of</strong>tware development environmentsnow include features that cross-reference “symbols”(named variables <strong>and</strong> other objects). The combination <strong>of</strong>comments <strong>and</strong> automatically generated documentation canhelp with maintaining the program as well as being helpfulfor creating developer <strong>and</strong> user manuals.While programmers retain considerable responsibilityfor coding st<strong>and</strong>ards <strong>and</strong> documentation, larger programmingstaffs typically have specialists who devote their fulltime to maintaining documentation. This includes the logging<strong>of</strong> all program change requests <strong>and</strong> the resulting newdistributions or “patches,” the record <strong>of</strong> testing <strong>and</strong> retesting<strong>of</strong> program functions, the maintenance <strong>of</strong> a “versionhistory,” <strong>and</strong> coordinating with technical writers in theproduction <strong>of</strong> revised manuals.Further ReadingBarker, Thomas T. Writing S<strong>of</strong>tware Documentation: A Task-OrientedApproach. 2nd ed. New York: Longman, 2002.Goodliffe, Pete. Code Craft: The Practice <strong>of</strong> Writing Excellent Code.San Francisco: No Starch Press, 2007.Knuth, Donald E. Literate Programming. Stanford, Calif.: Centerfor the Study <strong>of</strong> Language <strong>and</strong> Information, 1992.Rüping, Andreas. Agile Documentation: A Pattern Guide to ProducingLightweight Documents for S<strong>of</strong>tware Projects. Hoboken,N.J.: Wiley, 2003.Society for Technical Communication. Available online. URL:http://www.stc.org/. Accessed July 9, 2007.documentation, userAs computing moved into the mainstream <strong>of</strong> <strong>of</strong>fices <strong>and</strong>schools beginning in the 1980s <strong>and</strong> accelerating throughthe 1990s, the need to train millions <strong>of</strong> new computer usersspawned the technical publishing industry. In addition tothe manual that accompanied the s<strong>of</strong>tware, third-partypublishers produced full-length books for beginners <strong>and</strong>advanced users as well as “dictionaries” <strong>and</strong> reference manuals(see also technical writing). A popular program suchas WordPerfect or (today) Adobe Photoshop can easily fillseveral shelves in the computer section <strong>of</strong> a large bookstore.A number <strong>of</strong> publishers targeted particular audiences<strong>and</strong> adopted distinctive styles. Perhaps the best known isthe IDG “Dummies” series, which eventually diversified its<strong>of</strong>ferings from computer-related titles to everything fromhome remodeling to investing. Berkeley, California, publisherPeachpit Press created particularly accessible introductionsfor Windows <strong>and</strong> Macintosh users. At the otherend <strong>of</strong> the spectrum, publishers Sams, Osborne, WaiteGroup, <strong>and</strong> Coriolis targeted the developer <strong>and</strong> “poweruser” community <strong>and</strong> the eclectic, erudite volumes fromO’Reilly grace the bookshelves <strong>of</strong> many UNIX users.Online DocumentationDuring the 1980s, the lack <strong>of</strong> a multitasking, window-basedoperating system limited the ability <strong>of</strong> programs to <strong>of</strong>ferbuilt-in (or “online”) documentation. Traditionally, userscould press the F1 key to see a screen listing key comm<strong>and</strong>s<strong>and</strong> other rudimentary help. However, both the Macintosh<strong>and</strong> Windows-based systems <strong>of</strong> the 1990s includedthe ability to incorporate a st<strong>and</strong>ardized, hypertext-basedhelp system in any program. Users could now search forhelp on various topics <strong>and</strong> scroll through it while keepingtheir main document in view. Another facility, the “wizard,”<strong>of</strong>fered the ability to guide users step by step througha procedure.The growth <strong>of</strong> the use <strong>of</strong> the Web has provided a new avenuefor online help. Today many programs link users to theirWeb site for additional help. Even help files stored on theuser’s own hard drive are increasingly formatted in HTMLfor display through a Web browser. Additional sources <strong>of</strong>help for some programs include training videos <strong>and</strong> animatedpresentations using programs such as PowerPoint.By the late 1990s, printed user manuals were becoming aless common component in s<strong>of</strong>tware packages. (Instead, themanual was <strong>of</strong>ten provided as a file in the Adobe Acrobatformat, which reproduces the exact appearance <strong>of</strong> printedmaterial on the screen.) The computer trade book industryhas also declined somewhat, but the bookstore still <strong>of</strong>fersplenty <strong>of</strong> alternatives for users who are more comfortablewith printed documentation.Further ReadingCasabona, Helen. “From Good to Great—The Finer Points <strong>of</strong> WritingUser Documentation.” www.stc.org/confproceed/1995/PDFs/PG437440.PDF. Accessed July 9, 2007.“How to Publish a Great User Manual.” Available online. URL:http://www.asktog.com/columns/017ManualWriting.html.Accessed July 9, 2007.Kukulska-Hulme, Agnes. Language <strong>and</strong> Communication: EssentialConcepts for User Interface <strong>and</strong> Documentation Design. NewYork: Oxford University Press, 1999.Online Technical Writing [textbook]. Available online. URL: http://www.io.com/~hcexres/textbook/acctoc.html. Accessed July 9,2007.


160 document modelSociety for Technical Communication. Available online. URL:http://www.stc.org/. Accessed July 9, 2007.document modelMost early developers <strong>and</strong> users <strong>of</strong> desktop computing systemsthought in terms <strong>of</strong> application programs rather thanfocusing on the documents or other products being createdwith them. From the application point <strong>of</strong> view, filesare opened or created, content (text or graphics) is created,<strong>and</strong> the file is then saved. There is no connection betweenthe files except in the mind <strong>of</strong> the user. The dominant wordprocessors <strong>of</strong> the 1980s (such as WordStar <strong>and</strong> WordPerfect)were designed as replacements for the typewriter <strong>and</strong>emphasized the efficient creation <strong>of</strong> text (see word processing).Users who wanted to work with other types <strong>of</strong>information had to run completely separate applications,such as dBase for databases or Lotus 1-2-3 for spreadsheets.Working with graphics images (to the extent it was possiblewith early PCs) required still other programs.This “application-centric” way <strong>of</strong> thinking suited programdevelopers at a time when most computer systems(such as those running MS-DOS) could run only one programat a time. But increasing processor power, memory,<strong>and</strong> graphics display capabilities during the late 1980s madeit possible to create an operating system such as Micros<strong>of</strong>tWindows that could display text fonts <strong>and</strong> formatting,graphics <strong>and</strong> other content in the same window, <strong>and</strong> runseveral different program windows at the same time (seemultitasking). In turn, this made it possible to present amodel that was more in keeping with the way people hadworked in the precomputer era.In the new “document model,” instead <strong>of</strong> thinking interms <strong>of</strong> individual application programs working withfiles, users could think in terms <strong>of</strong> creating documents.A document (such as a brochure or report) could containformatted text, graphics, <strong>and</strong> data brought in from databaseor spreadsheet programs. This meant that in the course <strong>of</strong>working with a document users would actually be invokingthe services <strong>of</strong> several programs: a word processor, graphicseditor, database, spreadsheet, <strong>and</strong> perhaps others. To theuser, however, the focus would be on a screen “desktop” onwhich would be arranged documents (or projects), not onthe process <strong>of</strong> running individual programs <strong>and</strong> loadingfiles.Implementing the Document ModelThere are two basic approaches to maintaining documents.One is to create large programs that provide all <strong>of</strong> the featuresneeded, including word processing, graphics, <strong>and</strong> datamanagement (see application suite). While such tightintegration can (ideally at least) create a seamless workingenvironment with a consistent user interface, it lacksflexibility. If a user needs capabilities not included in thesuite (such as, perhaps the ability to create an HTML version<strong>of</strong> the document for the Web), one <strong>of</strong> two cumbersomeprocedures would have to be followed. Either the operatingsystem’s “cut <strong>and</strong> paste” facilities might be used to copydata from another application into the document (possiblywith formatting or other information lost in the process),or possibly the document could be saved in a file formatthat could be read by the program that was to provide theadditional functionality (again with the possibility <strong>of</strong> losingsomething in the translation).Linking <strong>and</strong> EmbeddingA more sophisticated approach is to create a protocol thatapplications could use to call upon one another’s services.The Windows COM (Component Object Model) uses a technologyformerly called OLE (Object Linking <strong>and</strong> Embedding).Using this facility, someone working on a documentin Micros<strong>of</strong>t Word could “embed” another object such asan Excel spreadsheet or an Access database into the currentdocument (which becomes the container). When theuser double-clicks on the embedded object, the appropriateapplication is launched automatically, <strong>and</strong> the user sees thescreen menus <strong>and</strong> controls from that application instead <strong>of</strong>those in Word. (One can also think <strong>of</strong> Word in this examplebeing the client <strong>and</strong> Excel or Access as the server—see client-servercomputing). All work done with the embeddedobject is automatically updated by the server application<strong>and</strong> everything is stored in the same document file. Alternatively,an application may be linked rather than embedded.In that case, the container document simply containsa pointer to the file in the other application. Wheneverthat file is changed, all documents that are linked to it areupdated. Object embedding thus preserves a document-centricapproach but works with any applications that supportthat facility, regardless <strong>of</strong> vendor. The Macintosh operatingsystem <strong>of</strong>fers a similar facility. Apple <strong>and</strong> IBM attemptedunsuccessfully to create a competing st<strong>and</strong>ard called Open-Doc. This should not be confused with the more recentOpen Document st<strong>and</strong>ard from the popular open-sourceapplication Open Office. Meanwhile Micros<strong>of</strong>t’s COM, graduallyintroduced during the later 1990s, has been largelysuperseded by .NET (see Micros<strong>of</strong>t .NET). This reflectsa shift in emphasis from a document model (within a sin-The Document Object Model (DOM) treats a Web page as an objectthat can be manipulated using a variety <strong>of</strong> scripting languages.


Dreyfus, Hubert 161gle computer) to a more comprehensive “network objectmodel.”Document <strong>and</strong> object models are also increasinglyimportant for working on the Web. This can be seen inthe increasing use <strong>of</strong> XML documents <strong>and</strong> the DocumentObject Model (see xml <strong>and</strong> dom). This involves the use <strong>of</strong> aconsistent programming interface (see api) by which manyapplications can create or process XML documents for datacommunication or display.Further ReadingBornestein, Niel M. .NET <strong>and</strong> XML. Sebastapol, Calif.: O’ReillyMedia, 2003.“Document Object Model (DOM).” World Wide Web Consortium.Available online. URL: http://www.w3.org/DOM/. AccessedAugust 12, 2007.Lowry, Juval. Programming .NET Components. 2nd ed. Sebastapol,Calif.: O’Reilly Media, 2005.“Open Document Format for Office Applications: OASIS St<strong>and</strong>ard.”Available online. URL: http://docs.oasis-open.org/<strong>of</strong>fice/v1.0. Accessed July 10, 2007.DOM (Document Object Model)The Document Object Model (DOM) is a way to representa Web document (see html <strong>and</strong> xml) as an object thatcan be manipulated using code in a scripting language (seeJavaScript). The DOM was created by the World Wide WebConsortium (W3C) as a way to st<strong>and</strong>ardize methods <strong>of</strong>manipulating Web pages at a time when different browsersused different access models. The full specification isdivided into four levels (0 through 3). By 2005, most DOMspecifications were supported by the major Web browsers.Using DOM, a programmer can navigate through thehierarchical structure <strong>of</strong> a document, following links or“descending” into forms <strong>and</strong> user-interface objects. WithDOM one can also add HTML or XML elements, as well asload, save, or format documents.Code can also be written to respond to a number <strong>of</strong>“events,” including user keyboard or mouse activity <strong>and</strong>interactions with specific user-interface elements <strong>and</strong>HTML forms. For example, the “mouseover” event will betriggered when the user moves the mouse cursor over adefined region. The code can then perform an action suchas popping up a box with explanatory text. The “submit”event will be triggered when the user has finished fillingin a form <strong>and</strong> clicked the button to send it to the Website. When an event occurs, the event object is used topass detailed information about it to the program, such aswhich key or button was pressed, the location <strong>of</strong> the mousepointer, <strong>and</strong> so on.Although learning the DOM methods <strong>and</strong> how to usethem takes some time, <strong>and</strong> familiarity with JavaScript ishelpful, the syntax for accessing DOM methods should befamiliar to anyone who has used an object-oriented programminglanguage. Here are some simple sample statements.Get the document with the specified ID:document.getElementById(ID)Get the element with the specified tag:document.getElementByTagName(tagname)Get the specified attribute (property) <strong>of</strong>the specified element:myElement.getAttribute(attributeName)Create an element with the specified tag <strong>and</strong>reference it through a variable:var myElementNode = document.createElement(tagname)EvaluationAlthough dynamic HTML (DHTML) also has an objectmodel that can be used to access <strong>and</strong> manipulate individualelements, DOM is more comprehensive because it providesaccess to the document as a whole <strong>and</strong> the ability to navigatethrough its structure.By providing a uniform way to manipulate documents,DOM makes it easier to write tools to process them in aseries <strong>of</strong> steps. For example, database programs <strong>and</strong> XMLparsers can produce DOM document “trees” as output, <strong>and</strong>an XSLT (XML style sheet processor) can then be used t<strong>of</strong>ormat the final output.For working with XML, another popular alternative isthe Simple API for XML (SAX). The SAX model is quite differentfrom DOM in that the former “sees” a document asa stream <strong>of</strong> events (such as element nodes) <strong>and</strong> the parseris programmed to call methods as events are encountered.DOM, on the other h<strong>and</strong>, is not a stream but a tree that canbe entered arbitrarily <strong>and</strong> traversed in any direction. Onthe other h<strong>and</strong>, SAX streams do not require that the entiredocument be held in memory, <strong>and</strong> processing can sometimesbe faster.Further ReadingDocument Object Model FAQ. World Wide Web Consortium.Available online. URL: http://www.w3.org/DOM/faq.html.Accessed September 16, 2007.Heilmann, Christian. Beginning JavaScript with DOM Scripting <strong>and</strong>Ajax: From Novice to Pr<strong>of</strong>essional. Berkeley, Calif.: APress, 2006.Keith, Jeremy. DOM Scripting: Web Design with JavaScript <strong>and</strong> theDocument Object Model. Berkeley, Calif.: APress, 2005.Robie, Jonathan. “What Is the Document Object Model?” WorldWide Web Consortium. Available online. URL: http://www.w3.org/TR/WD-DOM/introduction.html. Accessed September14, 2007.Sambells, Jeffrey, <strong>and</strong> Aaron Gustafson. Advanced DOM Scripting:Dynamic Web Design Techniques. Berkeley, Calif.: APress,2007.DOS See ms-dos.Dreyfus, Hubert(1929– )AmericanPhilosopher, Cognitive PsychologistAs the possibilities for computers going beyond “numbercrunching” to sophisticated information processing becameclear starting in the 1950s, the quest to achieve artificial intelligence(AI) was eagerly embraced by a number <strong>of</strong> innovative


162 DRMresearchers. For example, Allen Newell, Herbert Simon, <strong>and</strong>Cliff Shaw at the RAND Corporation, attempted to writeprograms that could “underst<strong>and</strong>” <strong>and</strong> intelligently manipulatesymbols rather than just literal numbers or characters.Similarly, MIT’s Marvin Minsky (see Minsky, Marvin) wasattempting to build a robot that could not only perceive itsenvironment, but in some sense underst<strong>and</strong> <strong>and</strong> manipulateit. (See artificial intelligence <strong>and</strong> robotics.)Into this milieu came Hubert Dreyfus, who had earnedhis Ph.D. in philosophy at Harvard. Dreyfus had specializedin the philosophy <strong>of</strong> perception (how meaning can bederived from a person’s environment) <strong>and</strong> phenomenology(the underst<strong>and</strong>ing <strong>of</strong> processes). When Dreyfus began toteach a survey course on these areas <strong>of</strong> philosophy, some<strong>of</strong> his students asked him what he thought <strong>of</strong> the artificialintelligence researchers who were taking an experimental<strong>and</strong> engineering approach to the same topics the philosophershad discussed abstractly.Philosophy had attempted to explain the process <strong>of</strong> perception<strong>and</strong> underst<strong>and</strong>ing (see also cognitive science).One tradition, the rationalism represented by such thinkersas Descartes, Kant, <strong>and</strong> Husserl took the approach <strong>of</strong>formalism <strong>and</strong> attempted to elucidate rules governing theprocess. They argued that in effect the human mind was amachine (albeit a wonderfully complex <strong>and</strong> versatile one).The opposing tradition, represented by the phenomenologistsWittgenstein, Heidegger, <strong>and</strong> Merleau-Ponty, took aholistic approach in which physical states, emotions, <strong>and</strong>experience were inextricably intertwined in creating theworld that people perceive <strong>and</strong> relate to.If computers, which at that time had only the mostrudimentary “senses” <strong>and</strong> no emotions could perceive <strong>and</strong>underst<strong>and</strong> in the way humans did, then the rules-basedapproach <strong>of</strong> the rationalist philosophers would be vindicated.But when Dreyfus had examined the AI efforts, hewrote a paper titled “Alchemy <strong>and</strong> Artificial Intelligence.”His comparison <strong>of</strong> AI to alchemy was provocative in that itsuggested that like the alchemists, the modern AI researchershad met with only limited success in manipulatingtheir materials (such as by teaching computers to performsuch intellectual tasks as playing checkers <strong>and</strong> even provingmathematical theorems). However, Dreyfus concludedthat the kind <strong>of</strong> flexible, intuitive, <strong>and</strong> ultimately robustintelligence that characterizes the human mind couldn’t bematched by any programmed system. Each time AI researchersdemonstrated the performance <strong>of</strong> some complex task,Dreyfus examined the performance <strong>and</strong> concluded that itlacked the essential characteristics <strong>of</strong> human intelligence.Dreyfus exp<strong>and</strong>ed his paper into the book What <strong>Computer</strong>sCan’t Do. Meanwhile, critics complained that Dreyfus wasmoving the goal posts after each play, on the assumptionthat “if a computer did it, it must not be true intelligence.”Two decades later, Dreyfus reaffirmed his conclusions inWhat <strong>Computer</strong>s Still Can’t Do, while acknowledging that theAI field had become considerably more sophisticated in creatingsystems <strong>of</strong> emergent behavior (such as neural networks).Currently a pr<strong>of</strong>essor in the Graduate School <strong>of</strong> Philosophyat the University <strong>of</strong> California, Berkeley, Dreyfuscontinues his work in pure philosophy (including a commentaryon phenomenologist philosopher Martin Heidegger’sBeing <strong>and</strong> Time) while still keeping an eye on thecomputer world in his latest publication, On the Internet.Further ReadingDreyfus, Hubert. What <strong>Computer</strong>s Can’t Do: A Critique <strong>of</strong> ArtificialReason. New York: Harper <strong>and</strong> Row, 1972.———. What <strong>Computer</strong>s Still Can’t Do. Cambridge, Mass.: MITPress, 1992.Dreyfus, Hubert, <strong>and</strong> Stuart Dreyfus. Mind over Machine: the Power<strong>of</strong> Human Intuitive Expertise in the Era <strong>of</strong> the <strong>Computer</strong>. Rev.ed. New York: Free Press, 1988.Henderson, Harry. Artificial Intelligence: Mirrors for the Mind. NewYork: Chelsea House, 2007.DRM See digital rights management.DSL (digital subscriber line)DSL (digital subscriber line) is one <strong>of</strong> the two most prevalentforms <strong>of</strong> high-speed wired access to the Internet (seebroadb<strong>and</strong> <strong>and</strong> cable modem). DSL can operate overregular phone lines (sometimes called POTS or “plainold telephone service”). DSL takes advantage <strong>of</strong> the factthat existing phone lines can carry frequencies far beyondthe narrow b<strong>and</strong> used for voice telephony. When installingDSL, the phone company must evaluate the quality <strong>of</strong>existing lines to determine how many frequency b<strong>and</strong>s areusable, <strong>and</strong> thus how much data can be transmitted. Further,because the higher the frequency the shorter the distancethe signal can travel, the available b<strong>and</strong>width dropsas one gets farther from the central <strong>of</strong>fice or a local DSLaccess Multiplexer (DSLAM).Typical DSL services can range in speed from 128 kbpsto 3 Mbps. Many providers <strong>of</strong>fer higher speeds at additionalcost. Speeds quoted are generally maximums; actual speedmay be less due to poor line quality or greater distancefrom the central <strong>of</strong>fice.The most common form <strong>of</strong> DSL is ADSL (asymmetricDSL), which has much higher download speeds than uploadspeeds. This is generally not a problem, since most usersconsume much more content than they generate. The lowerfrequencies are generally reserved for regular voice <strong>and</strong> faxservice. A single DSL modem can serve multiple users in alocal network by being connected to a router.As more people move from l<strong>and</strong>-line phone service tocellular, there has been greater dem<strong>and</strong> for <strong>of</strong>fering socallednaked DSL—DSL without traditional phone service.DSL can also be provided over optical fiber (see fiberoptics).Note that an older <strong>and</strong> lower-b<strong>and</strong>width version <strong>of</strong> thetechnology called ISDN (Integrated Services Digital Network)is still in use, but has largely been superseded byDSL/ADSL.Alternatives to DSLCable is still more popular than DSL, though the latter hasclosed the gap somewhat. The fact that the two services canboth provide fast Internet access (mostly) through existing


DVR 163DSL uses special modems to convert between computer data <strong>and</strong> signals that can travel over ordinary phone lines. This technology is widelyused to provide broadb<strong>and</strong> Internet access.infrastructure has created considerable competition. Thusa cable provider can now <strong>of</strong>fer telephone service via theInternet (see voip) at the same time a phone provider usingDSL can <strong>of</strong>fer movies <strong>and</strong> television programming streamedover the network. The fact that in many locations DSL <strong>and</strong>cable providers are in competition can result in lower ratesor more attractive “bundles” <strong>of</strong> services for consumers.On average, cable modem speeds are somewhat fasterthan DSL; however, cable speeds can degrade as more usersare added to a circuit. Although both services have had theirshare <strong>of</strong> glitches, they now both tend to be quite reliable.Further ReadingGolden, Philip, Herve Dedieu, <strong>and</strong> Krista S. Jacobsen, eds. Implementation<strong>and</strong> Applications <strong>of</strong> DSL <strong>Technology</strong>. Boca Raton,Fla.: CRC Press, 2007.Mitchell, Bradley. “DSL vs. Cable: Modem Comparison.” Availableonline. URL:http://compnetworking.about.com/od/dslvscablemodem/a/dslcablecompare.htm. Accessed September16, 2007.Reynolds, Janice. A Practical Guide to DSL: High-Speed Connectionsfor Local Loop <strong>and</strong> Network. New York: CMP Books, 2001.Smith, Roderick W. Broadb<strong>and</strong> Internet Connections: A User’s Guideto DSL <strong>and</strong> Cable. Upper Saddle River, N.J.: Addison-WesleyPr<strong>of</strong>essional, 2007.DTP See desktop publishing.DVR (digital video recording)A digital video recorder (DVR) records digital televisionbroadcasts <strong>and</strong> stores them on a disk (see hard disk <strong>and</strong>cd-rom <strong>and</strong> dvd-rom). DVRs first appeared as commercialproducts in 1999 in Replay TV <strong>and</strong> TiVo, the latter becomingthe most successful player in the field.A DVR works with digital signals <strong>and</strong> discs rather thantape used by the video cassette recorders (VCRs) that hadbecome popular starting in the 1980s. The digital recorderhas several advantages over tape:• much larger capacity, limited only by hard drive size• instant (r<strong>and</strong>om) access to any recorded programmingwithout having to go forward or backward through atape• the ability to “time shift” within a live broadcast,including pausing <strong>and</strong> instant replay• the ability to skip over commercials• digital special effectsDVR <strong>and</strong> Integrated EntertainmentBesides what it can do with the program itself, the otherbig advantage <strong>of</strong> DVR technology stems from the fact thatit produces digital data in a st<strong>and</strong>ard format (usually an


164 DVRMPEG file) that is fully compatible with PCs <strong>and</strong> other computingdevices. Indeed, by installing one or more TV tunersor “cable cards” (for access to digital cable signals) to a PC,one need only add suitable s<strong>of</strong>tware to turn a Windows,Macintosh, or Linux PC into a versatile DVR. Alternatively,many cable <strong>and</strong> satellite TV services are <strong>of</strong>fering set-topboxes with built-in DVRs.Services such as TiVo also provide access to an onlineprogram schedule (for a monthly charge). This works withfeatures that allow the user to scan for <strong>and</strong> review programlistings <strong>and</strong> to arrange, for example, to record all new episodes<strong>of</strong> a weekly series as they arrive. DVRs with dual tunersallow for recording two live programs simultaneously,or recording one while watching another.DVR technology is also now being used for closed-circuittelevision (CCTV) surveillance systems, due to superiorstorage <strong>and</strong> playback capabilities. Similar technology isalso found in digital video cameras (camcorders).DVRs are part <strong>of</strong> a l<strong>and</strong>scape where entertainment thatused to be confined to television broadcast, cable, or satellitesystems can now be received digitally over the Internet.Since DVRs produce digital output, recorded programscan be easily shared over the Internet, such as by postingon the popular YouTube site, possibly leading to loss<strong>of</strong> revenue for the original providers (see intellectualproperty <strong>and</strong> computing). In response, HBO <strong>and</strong> otherproviders have argued for requiring that DVRs recognizecontent that is flagged as “copy never” <strong>and</strong> refuse to copysuch programs.Another problem for providers is the growing number<strong>of</strong> DVR users who have the ability to easily skip over commercials.Attempts are being made to make commercialsshorter <strong>and</strong> more entertaining, or to rely more on productplacement within the programming itself.Further ReadingDVR Buying Guide. Available online. URL: http://products.howstuffworks.com/dvr-buying-guide.htm. Accessed September16, 2007.ReplayTV. Available online. URL: http://www.replaytv.com/.Accessed September 16, 2007.TiVo. Available online. URL: http://www.tivo.com/. Accessed September16, 2007.


EeBayeBay Inc. (NASDAQ symbol: EBAY) is the world’s largestonline auction <strong>and</strong> shopping site. The first appearance <strong>of</strong>the auction service was in 1995 as AuctionWeb, part <strong>of</strong> thepersonal Web site <strong>of</strong> Pierre Omidyar (see auctions, online<strong>and</strong> Omidyar, Pierre). Omidyar was surprised at how rapidlythe auction service (which was initially free) grew. Afterhe imposed a modest listing fee, Omidyar found himselfreceiving thous<strong>and</strong>s <strong>of</strong> dollars in small checks, <strong>and</strong> decidedthat online auctions could become a full-time business.In September 1997, with Jeff Skoll now on board aspresident, AuctionWeb <strong>of</strong>ficially became eBay. When thecompany went public in 1998 (at the height <strong>of</strong> the first“Internet boom”), Omidyar <strong>and</strong> Skoll became instant millionaires.Meanwhile, eBay took on Margaret (Meg) Whitmanas its new CEO, <strong>and</strong> under her leadership the companyhas exp<strong>and</strong>ed rapidly through its first decade.eBay also seeks new markets <strong>and</strong> revenue through strategicacquisitions. These include payment services such asthe very popular PayPal, other e-commerce sites such asHalf.com, shopping.com, <strong>and</strong> rent.com, <strong>and</strong> even Skype,the Internet phone service. eBay’s net revenue for 2007 was$7.67 billion.Online AuctionsAuctions remain at the core <strong>of</strong> eBay’s business, with millions<strong>of</strong> items in dozens <strong>of</strong> categories being listed <strong>and</strong> soldeach day. Offerings can range from factory equipment (inthe Business & Industrial category) to books, toys, sportsmemorabilia—even cars <strong>and</strong>, in a limited fashion, realestate. There are now hundreds <strong>of</strong> small- to medium-sizebusinesses who derive their revenue from eBay, whetherselling their own merch<strong>and</strong>ise, acting as agents for others,or selling s<strong>of</strong>tware or templates for managing auctions.eBay does not charge any buyer’s fees, but makes itsmoney by charging the seller for each listing <strong>and</strong> then apercentage <strong>of</strong> the selling price. As <strong>of</strong> 2007 eBay has regionaloperations in more than 20 countries, including China <strong>and</strong>India. (Yahoo, a distant second to eBay in online auctions,discontinued its U.S. auction site in mid-2007.)Beyond AuctionsIn recent years eBay has increasingly tried to build a more“traditional” online shopping experience in parallel with itsauctions. The Buy It Now feature allows a seller to list anitem at a fixed price, either instead <strong>of</strong> auctioning the itemor as an option that can be exercised if there have been noauction bids. Sellers can organize their <strong>of</strong>ferings into regular“stores” to make it easier for customers to browse theirmerch<strong>and</strong>ise. (Many traditional stores, such as antiques orcollectibles dealers, now <strong>of</strong>fer some <strong>of</strong> their items via theireBay store.) eBay Express, introduced in 2006, adds convenienceby allowing users to buy selected items from multiplesellers using a st<strong>and</strong>ard online shopping cart.Like Amazon.com, eBay has focused considerable attentionon developing more ways for users to comment ontheir purchases <strong>and</strong> otherwise contribute content (seeuser-created content). The most important mechanismis feedback, which lets buyers summarize their opinions<strong>of</strong> a transaction after its completion. The feedback system165


166 e-books <strong>and</strong> digital librarieshas been recently exp<strong>and</strong>ed <strong>and</strong> structured to allow usersto give specific ratings on aspects <strong>of</strong> the transaction, suchas accuracy <strong>of</strong> description <strong>and</strong> shipping cost <strong>and</strong> speed.Although not perfect (feedback can be “pumped up” bysetting up phony transactions between two accounts), thesystem does allow buyers to exercise a certain amount<strong>of</strong> caution before bidding on an expensive item from anunknown seller. eBay also <strong>of</strong>fers various forms <strong>of</strong> “consumerprotection” if items are not received or are substantiallynot as described.Not surprisingly in a marketplace <strong>of</strong> this size, thereis opportunity for various forms <strong>of</strong> fraud, including sale<strong>of</strong> counterfeit, defective, or lower-grade merch<strong>and</strong>ise <strong>and</strong>,on the part <strong>of</strong> buyers, credit card fraud. eBay has beencriticized for not policing fraud adequately. Generally, theservice has maintained the position that it is only a facilitator<strong>of</strong> transactions. If it had to guarantee the authenticity <strong>of</strong>merch<strong>and</strong>ise, it would have to operate like a conventionalauction house, with the attendant fees. However, eBay hassolicited the help <strong>of</strong> experts in fields such as coins <strong>and</strong>stamps to help them identity counterfeit or misdescribeditems.eBay provides a number <strong>of</strong> forums for user comments,including discussion boards <strong>and</strong> chat rooms. Users canalso write reviews <strong>and</strong> guides to help, for example, novicecollectors who might find themselves overwhelmed bythe coin or stamp listings. In mid-2006 eBay exp<strong>and</strong>ed its“community content” to include an eBay Community Wiki(see wikis <strong>and</strong> Wikipedia) <strong>and</strong> eBay blogs (see blogs <strong>and</strong>blogging).eBay is always trying to make it easier to match users’specific needs with the thous<strong>and</strong>s <strong>of</strong> potentially relevant<strong>of</strong>ferings. Providing recommendation information (includinguser-generated recommendations) is another way tomake shopping easier <strong>and</strong> more satisfying, as has beenshown by Amazon.com. Another possible way to get a biggershare <strong>of</strong> users’ day-to-day purchases is to make eBayavailable on mobile devices as well as linking it to sitessuch as Facebook, where young people in particular spendmuch <strong>of</strong> their time (see social networking.)Long-time eBay CEO Meg Whitman stepped down inMarch 2008, while calling for innovation to reinvigoratea company that many observers now consider to be staid<strong>and</strong> “old school” in the age <strong>of</strong> Web 2.0. Whitman’s successor,John Donahoe, has announced a new fee structure <strong>and</strong>new ways <strong>of</strong> searching for <strong>and</strong> displaying listings—developmentsthat have provoked some controversy in the sellercommunity.Further ReadingBergstein, Brian. “Middle-aged eBay in for Changes.” AssociatedPress/San Francisco Chronicle, June 18, 2007. p. C3.Cohen, Adam. The Perfect Store: Inside eBay. Boston: Little, Brown,2002.Collier, Marsha. eBay for Dummies. 5th ed. Hoboken, N.J.: Wiley,2006.———. Starting an eBay Business for Dummies. Hoboken, N.J.:Wiley, 2007.eBay. Available online. URL: http://www.ebay.com. Accessed September16, 2007.e-books <strong>and</strong> digital librariesAn e-book is a book whose text is stored in digital form<strong>and</strong> can be read on a PC or a h<strong>and</strong>held reading device.Since most books today are created on word processors <strong>and</strong>typesetting systems, it is easy for a publisher to create anelectronic version. Older books that exist only in printedform can be scanned <strong>and</strong> converted to text (see opticalcharacter recognition).An e-book has a number <strong>of</strong> advantages over its printedcounterpart. The text can be searched <strong>and</strong> can include linksto sections or even to documents on the World Wide Web.Reading s<strong>of</strong>tware or devices can easily enlarge text for thevisually h<strong>and</strong>icapped, or read it in a synthesized voice.Since only bits need to be moved around, e-books save treesas well as the cost <strong>of</strong> manufacturing, transporting, warehousing,<strong>and</strong> displaying conventional books.There are some disadvantages. Many people are notcomfortable reading large amounts <strong>of</strong> text at a computer.Portable reading devices that may be more convenient arerelatively expensive <strong>and</strong> not st<strong>and</strong>ardized. There is no universalformat for e-books, so some s<strong>of</strong>tware or readers maynot be able to read all e-books.As <strong>of</strong> 2008 the e-book l<strong>and</strong>scape may be in the process<strong>of</strong> being reshaped. Amazon’s Kindle book reader is the latestattempt to marry e-books to h<strong>and</strong>held devices. Weighingless than a paperback book, the Kindle can downloadbooks <strong>and</strong> other content directly over a cellular broadb<strong>and</strong>connection <strong>and</strong> display text using an “electronic ink” technologythat simulates print. Amazon is <strong>of</strong>fering a largeselection <strong>of</strong> e-books including electronic versions <strong>of</strong> currentbest sellers at prices several dollars below that <strong>of</strong> the hardbackversion.Authors <strong>and</strong> publishers, like other content creators, mayhave to deal with the illicit copying <strong>and</strong> distribution <strong>of</strong> textin digital form, as happened with the last Harry Potter bookeven before its publication in 2007. Some e-books contain aform <strong>of</strong> copy protection (see digital rights management).This, as with video <strong>and</strong> music, can lead to compatibilityproblems.A number <strong>of</strong> e-publishers as well as conventional publishersnow <strong>of</strong>fer books online, most commonly as pdf(portable document format) files. A hybrid service, “publishon dem<strong>and</strong>,” keeps the book on file <strong>and</strong> prints <strong>and</strong> shipsbound copies as they are ordered, eliminating the problem<strong>of</strong> remainders. In the future, so-called digital paper (a thinmembrane that can display text), may be used to create amore booklike reading experience.Digital LibrariesA digital library is to e-books what a conventional libraryis to printed books. Sometimes called an electronic libraryor virtual library, digital libraries can be created in avariety <strong>of</strong> ways. Printed books can now be scanned <strong>and</strong>digitized rapidly. Google has said that it can scan 3,000volumes a day using a proprietary system. (This is notnecessary, <strong>of</strong> course, for books that were originally createdin digital form.)Advantages <strong>of</strong> digital libraries include the following:


Eckert, J. Presper 167• There is never a shortage <strong>of</strong> copies or the need for areader to wait for access.• many digital libraries allow full searching <strong>of</strong> the text<strong>of</strong> all volumes. Libraries can also use a common dataformat (such as “Open Archives.”) to make their materialsearchable throughout the Internet.• many older, hard-to-find books can be made more“discoverable” <strong>and</strong> accessible.Project Gutenberg is one <strong>of</strong> the oldest <strong>and</strong> best-knowndigital library projects, dating back to 1971. Most <strong>of</strong> thecollection consists <strong>of</strong> scanned or transcribed texts <strong>of</strong> publicdomain (no longer subject to copyright) books. As <strong>of</strong> late2007, Project Gutenberg had more than 17,000 differenttitles in its collection.Of course more recent books are covered by copyright.In order to include copyrighted books in a digital library,some sort <strong>of</strong> compensation to the copyright holder generallyneeds to be made, <strong>and</strong> it is unclear how that might beimplemented in a way that preserves free access.There are also what might be called “digital pseudolibraries”such as Google Book Search. Google has beenscanning part or all <strong>of</strong> the collections <strong>of</strong> universities such asStanford, Harvard, <strong>and</strong> Oxford as well as the New York PublicLibrary. Google provides full access to public domainbooks (or those for which permission has been obtainedfrom the publisher). For copyrighted books there is a limitedability to search by keyword <strong>and</strong> view a limited number<strong>of</strong> pages. Amazon.com’s “Search inside the Book” worksrather similarly, but only with books for which the publisherhas granted permission.Google’s initiative has aroused some controversy because,according to traditional practice, someone wanting access toa copyrighted work beyond “fair use” is supposed to obtainpermission. Google has reversed this presumption, allowingpublishers who do not want their material to be available toopt out. The Authors Guild <strong>of</strong> America <strong>and</strong> the Association <strong>of</strong>American Publishers have separately sued Google for copyrightinfringement. Google argues that the limited amount<strong>of</strong> text provided for copyrighted books falls within the fairuse provisions <strong>of</strong> copyright law. The authors <strong>and</strong> publishers,however, point to the fact that Google is copying thewhole text <strong>of</strong> the book in order to allow for searching.If the legal issues can be settled in such a way as toallow robust digital libraries, the benefits for researcherswill be considerable. Google already <strong>of</strong>fers a “my library”feature that users can use to search for books they alreadyknow <strong>and</strong> organize <strong>and</strong> search them digitally.Further ReadingGoogle Book Search. Available online. URL: http://books.google.com/. Accessed September 16, 2007.Hirschhorn, Michael. “The Hapless Seed: Publishers <strong>and</strong> AuthorsShould Stop Cowering. Google Is Less Likely to Destroy theBook Business Than to Slingshot It into the 21st Century.”Atlantic Monthly, June 2007, p. 134 ff.Kelly, Kevin. “Scan This Book!” New York Times Magazine, May 14,2006. pp. 42–49, 64, 71.Kresh, Diane, ed. The Whole Digital Library H<strong>and</strong>book. Chicago:American Library Association, 2007.Lesk, Michael. Underst<strong>and</strong>ing Digital Libraries. 2nd ed. San Francisco:Morgan Kaufmann, 2004.Project Gutenberg. Available online. URL: http://www.gutenberg.org/wiki/Main_Page. Accessed September 16, 2007.Thompson, Bob. “Google Wants to Digitize Every Book. PublishersSay Read the Fine Print First.” Washington Post, August12, 2006, p. D1.Eckert, J. Presper(1919–1995)American<strong>Computer</strong> EngineerJ. Presper Eckert played a key role in the design <strong>of</strong> what is<strong>of</strong>ten considered to be the first general-purpose electronicdigital computer, then went on to pioneer the commercialcomputer industry. An only child, Eckert grew up ina prosperous Philadelphia family that traveled widely <strong>and</strong>had many connections with Hollywood celebrities such asDouglas Fairbanks <strong>and</strong> Charlie Chaplin. He was a star studentin his private high school <strong>and</strong> also did well at the University<strong>of</strong> Pennsylvania, where he graduated in 1941 with adegree in electrical engineering <strong>and</strong> a strong mathematicsbackground.Continuing at the university as a graduate student <strong>and</strong>researcher, Eckert met an older researcher, John Mauchly.They found they shared a deep interest in the possibilities<strong>of</strong> electronic computing, a technology that was beingspurred by the needs <strong>of</strong> war research. After earning hismaster’s degree in electrical engineering, in 1942 Eckertjoined Mauchly in submitting a proposal to the BallisticResearch Laboratory <strong>of</strong> the Army Ordnance Department fora computer that could be used to calculate urgently neededfiring tables for guns, bombs, <strong>and</strong> missiles. The Armygranted the contract, <strong>and</strong> they organized a team that grewto 50 people. Begun in April 1943, their ENIAC (ElectronicNumerical Integrator <strong>and</strong> <strong>Computer</strong>) was finished in 1946.While it was too late to aid the war effort, the room-sizemachine filled with 18,000 vacuum tubes demonstrated thepracticability <strong>of</strong> electronic computing. Its computation rate<strong>of</strong> 5,000 additions per second far exceeded other calculators<strong>of</strong> the time.With some input from mathematician John von Neumann,Eckert <strong>and</strong> Mauchly began to develop a newmachine, EDVAC, for the University <strong>of</strong> Pennsylvania (seevon Neumann, John). While this effort was still underway, they formed their own business, the Eckert-Mauchly<strong>Computer</strong> Corporation <strong>and</strong> began to develop the BINAC(BINary Automatic <strong>Computer</strong>), which was intended to bea (relatively) compact <strong>and</strong> lower-cost version <strong>of</strong> ENIAC.This machine demonstrated a key principle <strong>of</strong> modern computers—thestorage <strong>of</strong> program instructions along withdata. The ability to store, manipulate, <strong>and</strong> edit instructionsvastly increased the flexibility <strong>and</strong> ease <strong>of</strong> use <strong>of</strong> computingmachines (see history <strong>of</strong> computing).By the late 1940s, Eckert <strong>and</strong> Mauchly began to developUnivac I, the first commercial implementation <strong>of</strong> the newcomputing technology. When financial difficulties threatenedto sink their company in 1950, it was acquired by


168 e-commerceRemington R<strong>and</strong>. Working as a division within that company,the Eckert-Mauchly team completed Univac I in timefor the computer to make a remarkably accurate forecast <strong>of</strong>the 1952 presidential election results.Eckert continued with the Sperry-R<strong>and</strong> Corporation(later called Univac <strong>and</strong> then Unisys Corporation) <strong>and</strong>became a vice president <strong>and</strong> senior technical adviser. Heretired in 1989. He received an honorary doctorate fromthe University <strong>of</strong> Pennsylvania in 1964. In 1969, he wasawarded the National Medal <strong>of</strong> <strong>Science</strong>, the nation’s highestaward for achievement in science <strong>and</strong> engineering.Further ReadingEckstein, P. “Presper Eckert.” IEEE Annals <strong>of</strong> the History <strong>of</strong> Computing18, vol. 1, Spring 1996, 25–44.McCartney, Scott. Eniac: the Triumphs <strong>and</strong> Tragedies <strong>of</strong> the World’sFirst <strong>Computer</strong>. New York: Berkley Books, 1999.Smithsonian Institution. National Museum <strong>of</strong> American History.“Presper Eckert Interview.” Available online. URL: http://americanhistory.si.edu/collections/comphist/eckert.htm.Accessed August 14, 2007.e-commerceSince the introduction <strong>of</strong> credit cards <strong>and</strong> the beginning<strong>of</strong> banking automation in the 1960s, computers <strong>and</strong> communicationsnetworks have played an increasing role in theinfrastructure <strong>of</strong> commerce (see banking <strong>and</strong> computers).Some businesses also established proprietary networks (forexample, to allow pharmacies to order drugs directly fromsuppliers).Electronic sales directly to consumers were pioneeredby “teletex,” such as the French Minitel, as well as such servicesas CompuServe <strong>and</strong> America Online. However, theseservices were proprietary, meaning that businesses couldonly market to subscribers. The widespread adoption <strong>of</strong> theInternet in the mid-1990s (see World Wide Web) createdan open <strong>and</strong> potentially much larger marketplace.The first e-commerce boom came in the late 1990s,when enthusiasm about the seeming potential for unlimitedpr<strong>of</strong>its drove numerous online startups, <strong>of</strong>ten withpoorly conceived business plans that assumed that rapidexpansion <strong>and</strong> low prices would result in gaining control<strong>of</strong> a particular sector <strong>and</strong> achieving a dominant (<strong>and</strong>pr<strong>of</strong>itable) position. Among the numerous casualties <strong>of</strong>the “dot-bust” <strong>of</strong> 2000–2001 was WebVan, a companythat sold <strong>and</strong> delivered groceries directly to consumer’shomes.While the bursting <strong>of</strong> the “dot-com bubble” was painfulto investors, entrepreneurs, <strong>and</strong> workers, recoverywas soon underway. The recovery was aided by the steadygrowth <strong>of</strong> Internet users (particularly those with broadb<strong>and</strong>connections), innovative s<strong>of</strong>tware for interacting withconsumers <strong>and</strong> analyzing transaction information, <strong>and</strong> thecoming <strong>of</strong> age <strong>of</strong> a generation that had virtually grown uponline.Today e-commerce is a steadily growing sector, <strong>and</strong> it isincreasingly international, fed by nearly 1.5 billion Internetusers worldwide. (China, with more than 250 million Webusers, has become the world’s largest online market.)Meanwhile in the United States in 2007 total consumerretail sales on the Internet reached $136 billion, up nearly20 percent over the previous year. According to a reportfrom Forrester Research, online retail revenues (excludingtravel-related services) will pass $250 billion by 2011. Surveysshow that about 80 percent <strong>of</strong> American Internet usershave bought something online, while many users who buyproducts <strong>of</strong>f-line originally searched for information aboutthem online.The most popular e-commerce sectors today include theselling <strong>of</strong> books, music <strong>and</strong> movies, travel-related services,electronics, clothing, luxury goods, <strong>and</strong> medications. (In2006, online buyers actually spent more money on clothingthan on computers <strong>and</strong> related products.) A number<strong>of</strong> other online activities can be considered part <strong>of</strong> e-commerce,although they are usually not included in retailingstatistics (see auctions, online; online gambling;online games; <strong>and</strong> social networking).InfrastructureSuccessful e-commerce depends on a complex array <strong>of</strong> services,facilities, <strong>and</strong> s<strong>of</strong>tware. For marketing <strong>and</strong> consumercommunications, see online advertising <strong>and</strong> customerrelationship management. Behind the scenes, transactiondata is constantly being collected <strong>and</strong> analyzed todetermine the success <strong>of</strong> the marketing program <strong>and</strong> to“personalize” the customer experience <strong>and</strong> allow for targetedmarketing (see cookies <strong>and</strong> data mining).The actual transaction processing requires shoppingcart s<strong>of</strong>tware <strong>and</strong> a connection to the credit card processinginfrastructure (see digital cash). Specialized forms <strong>of</strong> sellingrequire additional s<strong>of</strong>tware <strong>and</strong> support systems (see,for example, auctions, online). An ongoing e-businessmust also deal with functions shared by “brick <strong>and</strong> mortar”(traditional) stores: inventory control, ordering from suppliers(see supply chain management), taxes, payroll, <strong>and</strong>so on. The broader e-commerce sector also includes businessesthat do not target consumers but, rather, the needs<strong>of</strong> business itself—so-called business to business or B2B.Security <strong>and</strong> PrivacyOne continuing obstacle to the growth <strong>of</strong> e-commerce hasbeen consumers’ concerns about the theft or misuse <strong>of</strong> personalinformation gathered as part <strong>of</strong> the shopping process.This can involve either fake Web sites (see phishing <strong>and</strong>spo<strong>of</strong>ing) or legitimate businesses that sell informationabout customers without their knowledge or consent (seeprivacy in the digital age). According to a report fromGartner Research, more than $900 million in e-commercesales during 2006 was lost because <strong>of</strong> consumers’ securityconcerns, <strong>and</strong> about a billion dollars more in sales was lostbecause customers decided not to buy online at all.TrendsE-commerce is maturing even as it continues to evolve.Some trends in the second half <strong>of</strong> the 2000 decade reflectchanges in what is presented to the consumer, how it isdelivered, <strong>and</strong> how users can participate in ways other thansimply viewing content <strong>and</strong> selecting products:


education <strong>and</strong> computers 169Jupiter Research. Available online. URL: http://www.jupiterresearch.com. Accessed July 10, 2007.Laudon, Kenneth, <strong>and</strong> Carol Traver. E-Commerce: Business, <strong>Technology</strong>,Society. 3rd ed. Upper Saddle River, N.J.: PrenticeHall, 2006.education <strong>and</strong> computers<strong>Computer</strong>s are widely used in educational institutions fromelementary school to college. While computers have had asyet little impact on the structure or organization <strong>of</strong> schools,educational s<strong>of</strong>tware <strong>and</strong> the use <strong>of</strong> the Internet has had agrowing impact on how education is delivered.E-commerce involves far more than just advertising <strong>and</strong> sellinggoods <strong>and</strong> services. In a typical e-commerce system a “shoppingcart” records consumers’ selections. The items ordered must beprocessed against inventory <strong>and</strong> prepared for shipping. Meanwhile,information about the user’s selections <strong>and</strong> viewing is fedinto a database from which patterns <strong>of</strong> consumer behavior can beextracted. Some techniques <strong>of</strong> information gathering raise privacyconcerns, however.• delivery <strong>of</strong> richer <strong>and</strong> more interactive multimediaexperience, catering to the widespread availability <strong>of</strong>broadb<strong>and</strong> connections• integration <strong>of</strong> marketing using programming interfaces(see mashups) with popular online servicessuch as Google Maps, online game worlds, <strong>and</strong> socialnetworking sites (see online games <strong>and</strong> social networking)• increasing participation <strong>of</strong> consumers in developingthe quality <strong>of</strong> the shopping experience, such asthrough user product reviews <strong>and</strong> blogs (see usercreatedcontent)• increased emphasis on serving rapidly growing foreignmarkets, such as India <strong>and</strong> China• the spread <strong>of</strong> e-commerce to new mobile platforms(see pda <strong>and</strong> smartphone)Further ReadingCombe, Colin. Introduction to e-Business: Management <strong>and</strong> Strategy.Burlington, Mass.: Elsevier, 2006.eCommerce Info Center. Available online. URL: http://www.ecominfocenter.com/. Accessed July 15, 2007.eCommerce Times. Available online. URL: http://www.ecommercetimes.com.Accessed July 16, 2007.Forrester Research. Available online. URL: http://www.forrester.com. Accessed July 10, 2007.Grant, Graeme. “Trends in 2007 Online Retailing.” Availableonline. URL: http://www.destinationcrm.com/articles/default.asp?ArticleID=6938. Accessed July 10, 2007.HistoryDuring the 1950s <strong>and</strong> early 1960s, computer resources weregenerally too scarce, expensive, <strong>and</strong> cumbersome to be usedfor teaching, although universities aspired to have computersto aid their graduate <strong>and</strong> faculty researchers. However,during the 1960s computer engineers <strong>and</strong> educators at the<strong>Computer</strong>-based Education Research Laboratory at the University<strong>of</strong> Illinois, Urbana, formed a unique collaboration<strong>and</strong> designed a computer system called PLATO. The PLATOsystem used mainframe computers to deliver instructionalcontent to up to 1,000 simultaneous users at terminalsthroughout the University <strong>of</strong> Illinois <strong>and</strong> other educationalinstitutions in the state. PLATO pioneered the interactiveapproach to instruction <strong>and</strong> the use <strong>of</strong> graphics in additionto text. The PLATO system was later marketed by ControlData Corporation (CDC) for use elsewhere. During thistime Stanford University also set up a system for deliveringcomputer-assisted instruction (CAI) to users connectedto terminals throughout the nation. (See computer-aidedinstruction.)By the early 1980s, microcomputers had become relativelyaffordable <strong>and</strong> capable <strong>of</strong> running significant educationals<strong>of</strong>tware including graphics. Apple <strong>Computer</strong>’sApple II became an early leader in the school market, <strong>and</strong>the introduction <strong>of</strong> the Macintosh in 1984 with the Hypercardscripting language inspired many teachers <strong>and</strong> otherenthusiasts to create their own educational s<strong>of</strong>tware. Bythe early 1990s, IBM compatible PCs with Windows werecatching up. Commercially available computer games(such as Civilization or Railroad Tycoon) also <strong>of</strong>fered waysto enrich social studies <strong>and</strong> other classes (see computergames).The advent <strong>of</strong> the World Wide Web <strong>and</strong> graphical Webbrowsing in the mid-1990s spurred schools to connect tothe Internet. The Web <strong>of</strong>fered the opportunity for educatorsto create resources that could be accessed by colleagues<strong>and</strong> students anywhere in the world. The use <strong>of</strong>Web portals such as Yahoo!, library catalogs, <strong>and</strong> onlineencyclopedias gave teachers <strong>and</strong> students potential accessto a far greater variety <strong>of</strong> information than could possiblybe found in textbooks. The Web also <strong>of</strong>fered theopportunity for students at different schools to participatein collaborative projects, such as community surveys orenvironmental studies.


170 education <strong>and</strong> computersApplicationsEducational applications <strong>of</strong> computing can be divided intoseveral categories, as summarized in the following table.While small compared to the business market, theeducational s<strong>of</strong>tware industry is a significant market, targetingboth schools <strong>and</strong> parents seeking to improve theirchildren’s academic performance. However, the educationaluse <strong>of</strong> computers extends far beyond specialized s<strong>of</strong>tware.Schools are in effect a major industry in themselves, requiringmuch <strong>of</strong> the same support s<strong>of</strong>tware as large businesses.TrendsThe growth <strong>of</strong> the World Wide Web has led to some shift<strong>of</strong> emphasis away from st<strong>and</strong>-alone, CD-ROM based applicationsrunning on local PCs or networks. Educators areexcited about the possibilities for online collaboration.Public concern about children achieving an adequate level<strong>of</strong> technical skill (see computer literacy) has fueled anincreasing commitment <strong>of</strong> funds for computer hardware,s<strong>of</strong>tware, <strong>and</strong> networking for schools.Some visionaries speak <strong>of</strong> a 21st-century “virtual school”that has no classroom in the conventional sense, but usesthe Internet <strong>and</strong> conferencing s<strong>of</strong>tware to bring teachers<strong>and</strong> students together. While there has been only limitedexperimentation in creating virtual secondary schools,thous<strong>and</strong>s <strong>of</strong> university courses are now <strong>of</strong>fered online, <strong>and</strong>many degree programs are now available. Some institutionssuch as the University <strong>of</strong> Phoenix have made such “distancelearning” a core part <strong>of</strong> their growth strategy.Several factors have caused other observers to have misgivingsabout the rush to get schools onto the “informationsuperhighway.” Many schools lack adequate physical facilities<strong>and</strong> teacher training. Under those circumstances otherpriorities might deserve precedence over the installation <strong>of</strong>technology that may not be effectively utilized. At the sametime, the lagging in access to technology by minorities <strong>and</strong>the poor may suggest that schools must play a significantrole in providing such access <strong>and</strong> enabling the coming generationto catch up (see digital divide).The debate over how best to use technology in theschools also reflects fundamental theories about teaching<strong>and</strong> learning. Critics <strong>of</strong> information technology such asClifford Stoll (see Stoll, Clifford) have reacted againstthe mechanical, rote nature <strong>of</strong> much educational s<strong>of</strong>tware.They also decry the hype <strong>of</strong> some advocates who have suggestedtechnology as a panacea for the problems <strong>of</strong> lowperformance, poor motivation, <strong>and</strong> lack <strong>of</strong> accountability inmany schools.Some advocates <strong>of</strong> computer use agree with the criticism<strong>of</strong> uncreative <strong>and</strong> poorly planned “e-learning” programs,but argue that the answer is to use technology that helpsgood teachers unlock creativity. For example, Seymour Papert<strong>and</strong> his LOGO language are based on “constructivist”principles where students learn through doing (see Papert,Seymour <strong>and</strong> logo). From this point <strong>of</strong> view, “computerliteracy” should not be a focus in itself, but one outcome<strong>of</strong> a program that creates literate <strong>and</strong> capable learners (seecomputer literacy.)Application Area Users examples<strong>Computer</strong>-aided Generally high school <strong>and</strong> up Course modules for science, social studies, etc. Studentsinstruction (CAI) evaluated <strong>and</strong> materials presented on the basis <strong>of</strong> student performance(see computer-aided instruction).Drill-<strong>and</strong>-practice Elementary school students Sets <strong>of</strong> math problems, geography quizzes, etc. Sounds or graphicsused for reward for correct answers.Online collaborative Elementary <strong>and</strong> high school Students from different schools use e-mail or chat to coordinate alearning students project, such as creating a Web site about local environmentalissues.Online classes Mainly college <strong>and</strong> adults Students participate remotely through videoconferencing, chat,e-mail, etc. (see distance education).Educational Junior high <strong>and</strong> older students Gamelike programs that simulate real-world problems, such assimulationsmanaging a city to investing in the stock market. Often commerciallyavailable games can be used.Reference <strong>and</strong> Elementary <strong>and</strong> older students Online encyclopedias <strong>and</strong> knowledge bases (see also wikis <strong>and</strong>resourcesWikipedia); specialized references on CD-ROM or DVD; onlinereference <strong>and</strong> bibliographical databases; library catalogs; <strong>and</strong>Web site <strong>of</strong> universities, museums, <strong>and</strong> government agencies.General s<strong>of</strong>tware Students <strong>and</strong> teachers Use <strong>of</strong> general-purpose s<strong>of</strong>tware such as word processors,applicationspublishing, or presentation programs for creating class projects<strong>and</strong> reports. Also use <strong>of</strong> e-mail, chat, <strong>and</strong> blogs for collaboration<strong>and</strong> after-hours communication between students <strong>and</strong> teachers.Administrative Teachers <strong>and</strong> administrators Use <strong>of</strong> specialized or general-purpose s<strong>of</strong>tware to maintainapplicationsattendance, grades, <strong>and</strong> other class <strong>and</strong> school administrationfunctions.


education in the computer field 171Further ReadingCuban, Larry. Oversold & Underused: <strong>Computer</strong>s in the Classroom.Cambridge, Mass.: Harvard University Press, 2001.Global Schoolhouse. Available online. URL: http://www.globalschoolnet.org. Accessed July 19, 2007.November, Alan. Empowering Students with <strong>Technology</strong>. Arlington,Ill.: SkyLight Pr<strong>of</strong>essional Development, 2001.Paley, Amit R. “S<strong>of</strong>tware’s Benefits on Tests in Doubt: Study SaysTools Don’t Raise Scores.” Washington Post, April 5, 2007, p. 1.Pflaum, William D. The <strong>Technology</strong> Fix: The Promise <strong>and</strong> Reality<strong>of</strong> <strong>Computer</strong>s in Our Schools. Alex<strong>and</strong>er, Va.: Association forSupervision <strong>and</strong> Curriculum Development, 2004.Richardson, Will. Blogs, Wikis, Podcasts, <strong>and</strong> Other Powerful WebTools for Classrooms. Thous<strong>and</strong> Oaks, Calif.: Corwin Press,2006.Stoll, Clifford. High Tech Heretic: Why <strong>Computer</strong>s Don’t Belong inthe Classroom <strong>and</strong> Other Reflections by a <strong>Computer</strong> Contrarian.New York: Doubleday, 1999.“<strong>Technology</strong> Integration.” Education World. Available online.URL: http://www.educationworld.com/a_tech/. Accessed July19, 2007.Warlick, David. Classroom Blogging: A Teacher’s Guide to the Blogosphere.Morrisville, N.C.: Lulu.com, 2005.education in the computer fieldEducation <strong>and</strong> training in computer-related fields runs thegamut from courses in basic computer concepts in adulteducation or junior college programs to postgraduate programsin computer science <strong>and</strong> engineering. Curricula canbe roughly divided into the following areas• computer literacy <strong>and</strong> applications• computer science• information systems<strong>Computer</strong> Literacy <strong>and</strong> ApplicationsThere is a general consensus that basic knowledge <strong>of</strong> computerterminology <strong>and</strong> mastery <strong>of</strong> widely used types <strong>of</strong> s<strong>of</strong>twarewill be essential for a growing number <strong>of</strong> occupations(see computer literacy). The elementary <strong>and</strong> junior highschool curriculum now generally includes computer classesor “labs” where students learn the basics <strong>of</strong> word processing,spreadsheets, databases, graphics s<strong>of</strong>tware, <strong>and</strong> use<strong>of</strong> the World Wide Web. There may also be introductorycourses in programming, usually featuring easy-to-use programminglanguages such as Logo or BASIC.Some high schools <strong>of</strong>fer a track geared toward preparationfor college studies in computer science. This track mayinclude courses in more advanced languages such as C++ orJava. Because <strong>of</strong> public interest <strong>and</strong> marketability, courses ingraphics (such as use <strong>of</strong> Adobe Photoshop), multimedia, <strong>and</strong>Web design are also increasingly popular. Adult education<strong>and</strong> community college programs feature a similar range <strong>of</strong>courses. Many <strong>of</strong> today’s adult workers went to school at atime when personal computers were not readily available <strong>and</strong>computer literacy was not generally emphasized. The careerprospects <strong>of</strong> many older workers are thus increasingly limitedif they don’t receive training in basic computer skills.Technical or vocational schools <strong>of</strong>fer tightly focused programsthat are geared toward providing a set <strong>of</strong> marketableskills, <strong>of</strong>ten in conjunction with gaining industry certifications(see certification <strong>of</strong> computer pr<strong>of</strong>essionals).<strong>Computer</strong> <strong>Science</strong>In the early 1950s, knowledge <strong>of</strong> computing tended to havean ad hoc nature. On the practical level, computing staffstended to train newcomers in the specific hardware <strong>and</strong>machine-level programming languages in use at a particularsite. On the theoretical level, programmers in scientificfields were likely to come from a background in electronics,electrical engineering, or similar disciplines.As it became clear that computers were going to play anincreasingly important role, courses specific to computingwere added to curricula in mathematics <strong>and</strong> engineering.By the late 1950s, however, leading people in the computingfield had become convinced that a formal curriculum incomputer science was necessary for further advance in anincreasingly sophisticated computing arena (see computerscience). By the early 1960s, efforts at the University <strong>of</strong>Michigan, University <strong>of</strong> Houston, Stanford, <strong>and</strong> other institutionshad resulted in the creation <strong>of</strong> separate graduatedepartments <strong>of</strong> computer science. By the mid-1960s, theNational Academy <strong>of</strong> <strong>Science</strong>s <strong>and</strong> the President’s <strong>Science</strong>Advisory Committee had both called for a major expansion<strong>of</strong> efforts in computer science education to be aided byfederal funding. During the 1970s <strong>and</strong> 1980s, mathematical<strong>and</strong> engineering societies (in particular the Associationfor Computing Machinery (ACM) <strong>and</strong> Institute for Electrical<strong>and</strong> Electronic Engineering (IEEE) worked to establisheddetailed computer science curricula that extendedto undergraduate study. By 2000, there were 155 accreditedprograms in computer science in the United States.Information SystemsThe traditional computer science curriculum emphasizestheoretical matters such as algorithm <strong>and</strong> program design<strong>and</strong> computer architecture. Hiring managers in corporateinformation systems departments have observed thatcomputer science graduates <strong>of</strong>ten have little experience insuch practical considerations as systems analysis, or thedesigning <strong>of</strong> computer systems to meet business requirements.There has also been an increasing need for systemsadministrators, database administrators, <strong>and</strong> networkingpr<strong>of</strong>essionals who are well versed in the management <strong>and</strong>maintenance <strong>of</strong> particular systems.In response to dem<strong>and</strong> from industry, many universitieshave instituted degree programs in information systems(sometimes called MIS or Management InformationSystems) as an alternative to computer science. While theseprograms include some study <strong>of</strong> theory, they focus on practicalconsiderations <strong>and</strong> <strong>of</strong>ten include internships or otherpractical work experience. Some programs <strong>of</strong>fer more ambitiousstudents a dual track leading to an MBA.ChallengesThere has always been a gap between the emphases in computer<strong>and</strong> information science programs <strong>and</strong> the needs <strong>of</strong>a rapidly changing marketplace. However, additional chal-


172 e-governmentlenges face education in the computer field today. The number<strong>of</strong> undergraduate computer science degrees awarded inPh.D.-granting universities in the United States has steadilydeclined since 2000. In part this may be a delayed reactionto the decline in employment <strong>of</strong> programmers early in thedecade (due to the bursting <strong>of</strong> the “dot-com bubble”) that hassince leveled <strong>of</strong>f but has not significantly grown (see employmentin the computer field). This, together with the outsourcing<strong>of</strong> many jobs (see globalism <strong>and</strong> the computerindustry) may have in turn discouraged young people fromentering the field.At the same time, many observers insist that prospectsare good for educators <strong>and</strong> students who can target emerginghigh-dem<strong>and</strong> skills. These include areas such as computersecurity, data mining, bioinformatics, Web contentmanagement, <strong>and</strong> even aspects <strong>of</strong> business management.Educators will be challenged to strike a balance between acomprehensive treatment <strong>of</strong> concepts that have many potentialapplications <strong>and</strong> the need to provide specific skills thatare in dem<strong>and</strong> in the market.Further ReadingACM-IEEE Joint Task Force on Computing Curricula. “<strong>Computer</strong><strong>Science</strong>. 2001.” Available online. URL: http://acm.org/education/curric_vols/cc2001.pdf. Accessed July 22, 2007.———. “Information Systems.” 2001 Available online. URL:http://www.acm.org/education/is2002.pdf. Accessed July 22,2007.Anthes, Gary. “<strong>Computer</strong> <strong>Science</strong> Looks for a Remake.” <strong>Computer</strong>world.May 1, 2006. Available online. URL: http://www.computerworld.com/careers/story/0,10801,110959,00.html.Accessed July 22, 2007.<strong>Computer</strong> <strong>Science</strong> Directory. Available online. URL: http://csdir.org/. Accessed July 22, 2007.Denning, Peter J. “Great Principles in Computing Curricula.”ACM SIGCSE Bulletin, vol. 36, March 2004. Available online.URL: http://portal.acm.org/citation.cfm?id=1028174.971303.Accessed July 22, 2007.Greening, Tony, ed. <strong>Computer</strong> <strong>Science</strong> Education in the 21st Century.New York: Springer-Verlag, 2000.Open Directory Project. “<strong>Computer</strong> <strong>Science</strong>.” Available online. URL:http://dmoz.org/<strong>Computer</strong>s/<strong>Computer</strong>_<strong>Science</strong>/. Accessed July22, 2007.e-governmentJust as the way business is organized <strong>and</strong> conducted hasbeen pr<strong>of</strong>oundly changed by information <strong>and</strong> communicationstechnology, the operation <strong>of</strong> government at all levelshas been similarly affected. The term e-government (or electronicgovernment) is a way <strong>of</strong> looking at these changes asa whole <strong>and</strong> <strong>of</strong> considering how government uses (or mightuse) various computer applications.The use <strong>of</strong> information technology in government caninvolve changes in the organization <strong>and</strong> internal communications<strong>of</strong> government departments, changes in how servicesare delivered to the public, <strong>and</strong> providing new waysfor the public to interact with the agency.Internally, government agencies have many <strong>of</strong> the sameinformation management <strong>and</strong> sharing needs as privateenterprises (see data mining, database administration,e-mail, groupware, personal information manager,<strong>and</strong> project management s<strong>of</strong>tware). However, governmentagencies are likely to have to adapt their informationsystems to account for complex, specialized regulations(both those the agency administers <strong>and</strong> others it is subjectto). The st<strong>and</strong>ards <strong>of</strong> openness <strong>and</strong> accountability are generallydifferent from <strong>and</strong> stricter than those that apply toprivate organizations.A major focus <strong>of</strong> e-government is in exp<strong>and</strong>ing agencies’presence on the Web <strong>and</strong> making government sites moreuseful. This can include providing summaries <strong>of</strong> regulationsor other complicated information, <strong>of</strong>fering online assistance,allowing filing <strong>of</strong> tax or other forms electronically,<strong>and</strong> helping with applications such as for Social Security orMedicare. Where applicants must physically visit the <strong>of</strong>fice,a computerized system can make it easy to make appointmentsto reduce time waiting in line (a welcome option now<strong>of</strong>fered by many state departments <strong>of</strong> motor vehicles).ImplementationObtaining employees with the necessary skills for maintainingsophisticated information systems <strong>and</strong> modern dynamicWeb sites is not easy. The government hiring process tendsto be cumbersome <strong>and</strong> slow to respond to changing needs.Government must <strong>of</strong>ten compete with a private sector thatis willing to pay high prices for top talent.In many cases, adopting comprehensive e-governmentwould require a rethinking <strong>of</strong> an agency’s purpose <strong>and</strong> priorities.There is also a tension between the Web culture,which focuses on linking information across conventionalboundaries, <strong>and</strong> the tendency <strong>of</strong> bureaucracies to compartmentalize<strong>and</strong> centrally control information. Nevertheless,even without fundamentally restructuring how agenciesoperate, there has been considerable success with bringinginformation to the public through a central portal (USA.gov, formerly FirstGov).Once a service is <strong>of</strong>fered, it has to be promoted. Whilesome services (such as “e-filing” <strong>of</strong> tax returns) can be readilypromoted for their convenience, other services are moreobscure or may be <strong>of</strong> interest only to a narrow constituency.Social <strong>and</strong> Political ImpactA survey by the Hart-Teeter poll found that respondentsconsidered the most important potential benefit <strong>of</strong> e-governmentto be greater government accountability; thesecond was greater access to information; <strong>and</strong>, perhaps surprisingly,convenience came third.One criticism <strong>of</strong> e-government initiatives is that they<strong>of</strong>ten lack central coordination <strong>and</strong> may be implementedwithout keeping in mind the need <strong>of</strong> an agency to provideuniform, consistent, <strong>and</strong> impartial treatment to all citizens.For example, if an agency focuses its resources on developingits Web site, people who lack online access may cometo feel that they are receiving “second class” service (seedigital divide). This is particularly unfortunate becausethe unconnected people are likely to be in poor <strong>and</strong> isolatedcommunities that are most likely to be in need <strong>of</strong> governmentservices.


Eiffel 173As with private enterprise, there can also be importantonline privacy issues. Information that has been collecteddigitally is easy to transfer to other agencies or even (as inthe case <strong>of</strong> DMV information in some states) sold to privatecompanies. Having a clearly spelled-out privacy policy iscrucial.Besides keeping private what people expect to be private,government agencies must also provide informationthat helps ensure public accountability. Information collectedby government agencies is <strong>of</strong>ten subject to the Freedom<strong>of</strong> Information Act (FOIA). This may require that databe provided in a format that is readily accessible.Further ReadingBriefing Book Outline: E-Government. Advisory Committee to theCongressional Internet Caucus. Available online. URL: http://www.netcaucus.org/books/egov2001/. Accessed September18, 2007.Center for <strong>Technology</strong> in Government. Available online. URL:http://www.ctg.albany.edu. Accessed September 18, 2007.Cordella, Antonio. “E-Government: Towards the E-bureaucraticForm?” Journal <strong>of</strong> Information <strong>Technology</strong> 22 (2007): pp. 265–274.Government <strong>Computer</strong>ization (Open Directory). Availableonline. URL: http://www.dmoz.org/Society/Issues/<strong>Science</strong>_<strong>and</strong>_<strong>Technology</strong>/<strong>Computer</strong>s/Government_<strong>Computer</strong>ization/.Accessed September 18, 2007.LaVigne, Mark. “E-Government: Creating Tools <strong>of</strong> the Trade.”Available online. URL: http://www.netcaucus.org/books/egov2001/pdf/e-govt.pdf. Accessed September 18, 2007.Rosencrance, Linda. “User Satisfaction with Federal GovernmentWeb Sites down Slightly.” <strong>Computer</strong>world, September18, 2007. Available online. URL: http://www.computerworld.com/action/article.do?comm<strong>and</strong>=viewArticleBasic&articleId=9037079. Accessed September 18, 2007.USA.gov: “Government Made Easy” [Official U.S. GovernmentPortal]. Available online. URL: http://www.usa.gov/. AccessedSeptember 18, 2007.EiffelEiffel is an interesting programming language developedby Bertr<strong>and</strong> Meyer <strong>and</strong> his company Eiffel S<strong>of</strong>tware in the1980s. The language was named for Gustav Eiffel, the architectwho designed the famous tower in Paris. The language<strong>and</strong> accompanying methodology attracted considerableinterest at s<strong>of</strong>tware engineering conferences.Eiffel fully supports (<strong>and</strong> in some ways pioneered) programmingconcepts found in more widely used languagestoday (see class <strong>and</strong> object-oriented programming). Syntactically,Eiffel emphasizes simple, reusable declarations thatmake the program easier to underst<strong>and</strong>, <strong>and</strong> tries to avoidobscure or lower-level code such as compiler optimizations.Program StructureAn Eiffel program is called a “system,” emphasizing itsstructure as a set <strong>of</strong> classes that represent the types <strong>of</strong> realworlddata that need to be processed. A simple class mightlook like this:classCOUNTERfeature—access counter valuetotal: INTEGERfeature—manipulate counter valueincrement is—increase counter by onedototal :- total + 1enddecrement is—decrease counter by onedototal := total - 1endreset is—reset counter to zerodototal := 0endend(In this listing language, keywords are in bold <strong>and</strong> userdefinedobjects are in italics. This formatting will be doneautomatically as the user enters the text.) Once the class isdefined, making an instance <strong>of</strong> it is very simple:my_counter COUNTERcreate my_counterThe Eiffel compiler itself compiles to an intermediate“bytecode” that, in the final stage, is compiled into C, takingadvantage <strong>of</strong> the ready availability <strong>of</strong> optimized C compilers.A unique feature <strong>of</strong> Eiffel is the ability to set up “contracts”that specify in detail how classes will interact withone another. (This goes well beyond the usual declarations<strong>of</strong> parameters <strong>and</strong> enforcement <strong>of</strong> data types.) For example,with the COUNTER class an “invariant” can be declaredsuch that total >= 0. This means that this condition mustalways remain true no matter what. A method can alsorequire that the caller meet certain conditions. After processing<strong>and</strong> before returning to the caller, the method canensure that a particular condition is true. The point <strong>of</strong> thesespecifications is that they make explicit what a given unit <strong>of</strong>code expects <strong>and</strong> what it promises to do in return. This canalso improve program documentation.Implementation <strong>and</strong> UsesEiffel’s proponents note that it is more than a language: Itis designed to provide consistent ways to revise <strong>and</strong> reuseprogram components throughout the s<strong>of</strong>tware developmentcycle. The current implementation <strong>of</strong> Eiffel is available forvirtually all platforms <strong>and</strong> has interfaces to C, C++, <strong>and</strong>other languages. This allows Eiffel to be used to create adesign framework for reusing existing s<strong>of</strong>tware componentsin other languages. Eiffel’s consistent object-oriented designalso makes it useful for documenting or modeling s<strong>of</strong>twareprojects (see modeling languages).Eiffel was developed around the same time as C++. Eiffelis arguably cleaner <strong>and</strong> superior in design to the latter language.However, two factors led to the dominance <strong>of</strong> C++:the ready availability <strong>of</strong> inexpensive or free compilers <strong>and</strong>the existence <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> programmers who alreadyknew C. Eiffel ended up being a niche language used for


174 Electronic Artsteaching s<strong>of</strong>tware design <strong>and</strong> for a limited number <strong>of</strong> commercialapplications using the EiffelStudio programmingenvironment.Eiffel has been recognized for its contributions to thedevelopment <strong>of</strong> object-oriented s<strong>of</strong>tware design, mostrecently by the Association for Computing Machinery’s2006 S<strong>of</strong>tware System Award for Impact on S<strong>of</strong>twareQuality.Further Reading“Eiffel in a Nutshell.” Available online. URL: http://archive.eiffel.com/eiffel/nutshell.html. Accessed September 19, 2007.Eiffel Zone. Available online. URL: http://eiffelzone.com/. AccessedSeptember 19, 2007.“Introduction to Eiffel” [Flash presentation]. Available online.URL: http://www.eiffel.com/developers/presentations/eiffel_introduction/player.html?slide=. Accessed September 19,2007.Meyer, Bertr<strong>and</strong>. Eiffel: The Language. Englewood Cliffs, N.J.:Prentice Hall, 1991.———. Object-Oriented S<strong>of</strong>tware Construction. 2nd ed. Upper SaddleRiver, N.J.: Prentice Hall, 2000.Wiener, Richard. An Object-Oriented Introduction to <strong>Computer</strong><strong>Science</strong> Using Eiffel. Upper Saddle River, N.J.: Prentice Hall,1996.Electronic ArtsElectronic Arts (NASDAQ symbol: ERTS) is a pioneering<strong>and</strong> still prominent maker <strong>of</strong> games for personal computers(see computer games). Its fortunes largely mirror those <strong>of</strong>the game industry itself.In 1982 Trip Hawkins <strong>and</strong> several colleagues left Apple<strong>Computer</strong> <strong>and</strong> founded a company called Amazin’ S<strong>of</strong>tware.The company was founded with the goal <strong>of</strong> making“s<strong>of</strong>tware that makes a personal computer worth owning.”Hawkins also had an ambitious goal <strong>of</strong> turning it into a billion-dollarcompany, but this goal would not be achieveduntil the mid-1990s. Meanwhile, after considerable internaldebate, the company changed its name to Electronic Arts inlate 1982. This name reflects Hawkins’s belief that computergames were an emerging art form <strong>and</strong> that their developersshould be respected as artists. This would be reflected ingame box covers that looked like record jackets <strong>and</strong> prominentlyfeatured the names <strong>of</strong> the developers.In 1983 EA published three games for the Atari 800computer that typified playability <strong>and</strong> diversity. Archoncombined chesslike strategy with arcade-style battles; PinballConstruction Set let users create <strong>and</strong> play their ownlayouts; <strong>and</strong> the unique M.U.L.E. was a deceptively simplegame <strong>of</strong> strategic resources—<strong>and</strong> one <strong>of</strong> the first multiplayervideo games. EA titles published in the later 1980sinclude an exploration game Seven Cities <strong>of</strong> Gold, the graphicallyinnovative space conquest game Starflight, <strong>and</strong> therole-playing series The Bard’s Tale.In its early years the company published games developedby independent programmers, but in the late 1980sit began to develop some games in house. EA sought outinnovative games <strong>and</strong> promoted them directly to retailers.While it was difficult at first to market <strong>of</strong>ten-obscure gamesto stores, as the games became successful <strong>and</strong> regular retailchannels were established, EA’s revenue began to outpacethat <strong>of</strong> competitors. (Hawkins left in 1991 to found thegame company 3DO.)Challenges <strong>and</strong> CriticismBy the 2000s EA, now under Larry Probst, had sufferedloss <strong>of</strong> its once-dominant position in what had becomean increasingly diverse industry. EA was criticized bysome investment analysts for declining to follow thetrend toward ultraviolent, M-rated games such as Gr<strong>and</strong>Theft Auto, though the company later s<strong>of</strong>tened that st<strong>and</strong>.In recent years the company’s big sellers have been itsgraphically intense <strong>and</strong> realistic sports simulations, notablyJohn Madden Football. (Besides the NFL, EA has contractswith NASCAR, FIFA [soccer], <strong>and</strong> the PGA <strong>and</strong>Tiger Woods.)In 2007 EA announced that it would come out withMacintosh versions <strong>of</strong> many <strong>of</strong> its top titles. However, criticshave noted that the company seems to be publishingfewer original titles in favor <strong>of</strong> yearly updates (particularlyin their sports franchises).Along with much <strong>of</strong> the game industry, EA has increasinglyfocused on console games (see game console). EAcurrently develops games for the leading consoles; in fact,about 43 percent <strong>of</strong> EA’s 2005 revenue came from salesfor the Sony PlayStation2 alone. (Total revenue in 2008was $4.02 billion.) EA has also been exp<strong>and</strong>ing into onlinegames, starting in 2002 with an online version <strong>of</strong> The Sims,a “daily life simulator.” (See online games.)Some critics have objected to EA’s practice <strong>of</strong> buyingsmaller companies in order to get control over their populargames, <strong>and</strong> then releasing versions that had not beenproperly tested. Perhaps the most-cited example is EA’sacquiring <strong>of</strong> Origin Systems <strong>and</strong> its famous Ultima series <strong>of</strong>role-playing games. Once acquired, EA produced two newtitles in the series that many gamers consider to not be upto the Ultima st<strong>and</strong>ard.The company has also been criticized for requiring verylong work hours from developers; it eventually settled suitsfrom game artists <strong>and</strong> programmers dem<strong>and</strong>ing compensationfor unpaid overtime.EA has shown continuing interest in promoting the pr<strong>of</strong>ession<strong>of</strong> game development. In 2004 the company madea significant donation toward the development <strong>of</strong> a gamedesign <strong>and</strong> production program at the University <strong>of</strong> SouthernCalifornia.Meanwhile, founder Hawkins has founded a companycalled Digital Chocolate, focusing on games for mobiledevices.Further ReadingEA.com Web site. Available online. URL: http://www.ea.com.Accessed September 19, 2007.EA Sports Home Page. Available online. URL: http://www.easports.com/. Accessed September 19, 2007.“Mobile Games: Way beyond Phone Tag” [Interview with TripHawkins]. Business Week Online, April 3, 2006. Availableonline. URL: http://www.businessweek.com/technology/content/apr2006/tc20060403_840834.htm. Accessed September19, 2007.


electronic voting systems 175Waugh, Eric-Jon Rossel. “A Short History <strong>of</strong> Electronic Arts.” BusinessWeek Online, August 25, 2006. Available online. URL:http://www.businessweek.com/innovate/content/aug2006/id20060828_268977.htm. Accessed September 19, 2007.electronic voting systemsThere are a variety <strong>of</strong> ways to electronically register, store,<strong>and</strong> process votes. In recent years older manual systems(paper ballots or mechanical voting machines) have beenreplaced in many areas with systems ranging from purelydigital (touch screens) to hybrid systems where markedpaper ballots are scanned <strong>and</strong> tabulated by machine. However,voting systems have been subject to considerable controversy,particularly following the Florida debacle in the2000 U.S. presidential election.The criteria by which voting systems are evaluatedinclude:• how easy it is for the voter to underst<strong>and</strong> <strong>and</strong> use thesystem• accessibility for disabled persons• whether the voter’s intentions are accurately recorded• the ability to make a permanent record <strong>of</strong> the vote• prevention <strong>of</strong> tampering (physical or electronic)• provisions for independent auditing <strong>of</strong> the votes incase <strong>of</strong> disputeThe degree to which a given system meets these criteriacan vary considerably because <strong>of</strong> both design <strong>and</strong> implementationissues.Early SystemsThe earliest form <strong>of</strong> voting system consisted <strong>of</strong> paper ballotsmarked <strong>and</strong> tabulated entirely by h<strong>and</strong>. The first generation<strong>of</strong> “automatic” voting systems involved mechanical votingmachines (where votes were registered by pulling levers).Next came two types <strong>of</strong> hybrid systems where votes werecast mechanically but tabulated automatically. These systemsused punch cards (see punched cards <strong>and</strong> papertape) or “marksense” or similar systems where the voterfilled in little squares <strong>and</strong> the ballots were then scanned<strong>and</strong> tabulated automatically.The ultraclose <strong>and</strong> highly disputed 2000 U.S. presidentialelection “stress-tested” voting systems that most peoplehad previously believed were reasonably accurate. The principalproblems were the interpretation <strong>of</strong> punch cards thatwere not properly punched through (so-called dimpled orhanging chads) <strong>and</strong> the fact that some ballot layouts provedto be confusing or ambiguous. Two types <strong>of</strong> voting systemshave been proposed as replacements for the problematicearlier technology.TouchscreenThis type <strong>of</strong> system uses a screen display that can bedirectly manipulated by the voter (see touchscreen). Inthe most common type, called DRE (direct-recording electronic),a computer program interprets <strong>and</strong> tabulates thevote as it is cast, storing an image in a removable memoryunit <strong>and</strong> (usually) printing out a copy for backup. After votingis complete, the memory module can be sent to the centralcounting <strong>of</strong>fice. (Alternatively, votes can be transmittedover a computer network in batches throughout the day.)In a few cases, voting has also been implemented throughsecure Internet sites.There are several types <strong>of</strong> electronic voting systems, such as this boxthat automatically tallies specially marked ballots. Common concernsinclude the potential for tampering <strong>and</strong> the need to provide for independentverification <strong>of</strong> results. (Lisa McDonald/istockphoto)Optical ScanConcern about potential tampering with computers has ledmany jurisdictions to begin to replace touchscreen systemswith optical-scan systems, where the voter marks a sturdypaper ballot. (About half <strong>of</strong> U.S. counties now use optical-scansystems.) The advantage <strong>of</strong> optical systems is thatthe voter physically marks the ballot <strong>and</strong> can see how heor she has voted, <strong>and</strong> after tabulation the physical ballotsare available for review in case <strong>of</strong> problems. However, optical-scanballots must be properly marked using the correcttype <strong>of</strong> pencil, or they may not be read correctly. Unlike thetouchscreen, it is not possible to give the voter immediatefeedback so that any errors can be corrected. Optical-ballotsystems may cost more because <strong>of</strong> paper <strong>and</strong> printing costsfor the ballots, which may have to be prepared in several


176 e-maillanguages. However this cost may be <strong>of</strong>fset by not having todevelop or validate the more complicated s<strong>of</strong>tware neededfor all-electronic systems.Whatever system is used, federal law requires that visuallyor otherwise disabled persons be given the opportunity,wherever possible, to cast their own vote in privacy.With optical-scan ballots, this is accommodated with a specialdevice that plays an audio file listing the c<strong>and</strong>idatesfor each race, with the voter pressing a button to markthe choice. However, disability rights advocates have complainedthat existing systems still require that another personphysically insert the marked ballot into the scanner.Touchscreen systems, however, with the aid <strong>of</strong> audio cues,can be used by visually disabled persons without the needfor another person to be present. They are thus preferred bysome advocates for the disabled.Reforms <strong>and</strong> IssuesIn response to the problems with the 2000 election, Congresspassed the Help America Vote Act in 2002. Since then,the federal government has spent more than $3 billion tohelp states replace older voting systems—in many caseswith touchscreen systems.The biggest concern raised about electronic voting systemsis that they, like other computer systems, may be susceptibleto hacking or manipulation by dishonest <strong>of</strong>ficials.In 2007 teams <strong>of</strong> researchers at the University <strong>of</strong> California–Daviswere invited by the state to try to hack into itsvoting systems. For the test, the researchers were providedwith full access to the source code <strong>and</strong> documentation forthe systems, as well as physical access. The hacking teamswere able to break into <strong>and</strong> compromise every type <strong>of</strong> votingsystem tested. In their report, the researchers outlinedwhat they claimed to be surprisingly weak electronic <strong>and</strong>physical security, including flaws that could allow hackersto introduce computer viruses <strong>and</strong> take over control <strong>of</strong> thesystems.Manufacturers <strong>and</strong> other defenders <strong>of</strong> the technologyhave argued that the testing was unrealistic <strong>and</strong> that realworldhackers would not have had nearly as much informationabout or access to the systems. (This may underestimatethe resourcefulness <strong>of</strong> hackers, as shown with other systems,such as the phone system <strong>and</strong> computer networks.)Another issue is who will be responsible for independentlyreviewing the programming (source) code for eachsystem to verify that it does not contain flaws. Manufacturersgenerally resist such review, considering the source codeto be proprietary. (A possible alternative might be an opensourcevoting system. Advocates <strong>of</strong> open-source s<strong>of</strong>twareargue that it is safer precisely because it is open to scrutiny<strong>and</strong> testing—see open-source movement.)One common response to these security concerns is torequire that all systems generate paper records that can beverified <strong>and</strong> audited. Some defenders <strong>of</strong> existing technologysay that adding a parallel paper system is unnecessarilyexpensive <strong>and</strong> introduces other problems such as printerfailures. They argue that all-electronic systems can be madesafer <strong>and</strong> more secure, such as through the use <strong>of</strong> encryption.(A proposed compromise would be for the machine toprint out a simple receipt with a code that the voter coulduse to verify online that the vote was tabulated.)As <strong>of</strong> 2007, 28 states had passed laws requiring that votingsystems produce some sort <strong>of</strong> paper receipt or recordthat shows the voter what has been voted <strong>and</strong> that can beused later for an independent audit or recount,Although control <strong>of</strong> elections is primarily a state or localresponsibility, the federal government does have jurisdictionover elections for federal <strong>of</strong>fice. As a practical matter,any changes in voting technology or procedures m<strong>and</strong>atedby Congress for federal elections will end up being used inlocal elections as well.In 2007, congressional leaders decided not to require amajor overhaul <strong>of</strong> the nation’s election systems until at least2012. However, the inclusion <strong>of</strong> some sort <strong>of</strong> paper record isbeing m<strong>and</strong>ated for the 2008 election. For users <strong>of</strong> touchscreensystems, the simplest way to accommodate this is toadd small paper-spool printers, but some states have complainedthat their systems would require more-expensiveaccommodations.Meanwhile, a lively debate continues in many states <strong>and</strong>other jurisdictions about how to meet the need for accessiblebut secure voting systems without breaking the budget.Further ReadingDrew, Christopher. “Accessibility Isn’t Only Hurdle in VotingSystem Overhaul.” New York Times, July 21, 2007. Availableonline. URL: http://www.nytimes.com/2007/07/21/washington/21vote.html. Accessed September 20, 2007.Open Voting Consortium. Available online. URL: http://www.openvotingconsortium.org/. Accessed September 20, 2007.Rubin, Aviel. Brave New Ballot: The Battle to Safeguard Democracyin the Age <strong>of</strong> Electronic Voting. New York: Morgan Road Books,2006.Saltman, Roy G. The History <strong>and</strong> Politics <strong>of</strong> Voting <strong>Technology</strong>: InQuest <strong>of</strong> Integrity <strong>and</strong> Public Confidence. New York: PalgraveMacmillan, 2006.United States Election Assistance Commission. “2005 VoluntaryVoting System Guidelines.” Available online. URL: http://www.eac.gov/voting%20systems/voting-system-certification/2005-vvsg. Accessed September 20, 2007.“Verified Voting: M<strong>and</strong>atory Manual Audits <strong>of</strong> Voter-VerifiedPaper Records.” Available online. URL: http://www.verifiedvoting.org/. Accessed September 20, 2007.Wildemuth, John. “State Vote Machines Lose Test to Hackers.”San Francisco Chronicle, July 28, 2007, p. A-1. Availableonline. URL: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/07/28/MNGP6R8TJO1.DTL. Accessed September 20,2007.e-mailElectronic mail is perhaps the most ubiquitous computerapplication in use today. E-mail can be defined as the sending<strong>of</strong> a message to one or more individuals via a computerconnection.Development <strong>and</strong> ArchitectureThe simplest form <strong>of</strong> e-mail began in the 1960s as a way thatusers on a time-sharing computer system could post <strong>and</strong>read messages. The messages consisted <strong>of</strong> text in a file thatwas accessible to all users. A user could simply log into the


embedded system 177Instead, companies such as Micros<strong>of</strong>t <strong>and</strong> Google competeto <strong>of</strong>fer full-featured e-mail programs that include grouporientedfeatures such as task lists <strong>and</strong> scheduling (see alsopersonal information manager).Transmission <strong>of</strong> an e-mail message depends on widely used protocolssuch as SMTP, which controls message format <strong>and</strong> processing,<strong>and</strong> POP3, which h<strong>and</strong>les interaction between mail servers <strong>and</strong>client programs. As long as the formats are properly followed, userscan employ a wide variety <strong>of</strong> mail programs (agents), <strong>and</strong> serviceproviders can use a variety <strong>of</strong> mail server programs.system, open the file, <strong>and</strong> look for messages. In 1971, however,the ARPANET (ancestor <strong>of</strong> the Internet—see internet)was used by researchers at Bolt Beranek <strong>and</strong> Newman(BBN) to send messages from a user at one computer to auser at another. The availability <strong>of</strong> e-mail helped fuel thegrowth <strong>of</strong> the ARPANET through the 1970s <strong>and</strong> beyond.As e-mail use increased <strong>and</strong> new features were developed,the question <strong>of</strong> a st<strong>and</strong>ardized protocol for messagesbecame more important. By the mid-1980s, the world <strong>of</strong>e-mail was rather fragmented, much like the situation inthe early history <strong>of</strong> the telephone, where users <strong>of</strong>ten had tochoose between two or more incompatible systems. Apranet(or Internet) users used SMTP (Simple Mail Transport Protocol)while a competing st<strong>and</strong>ard (OSI MHS, or MessageH<strong>and</strong>ling System) also had its supporters. Meanwhile, thedevelopment <strong>of</strong> consumer-oriented online services such asCompuServe <strong>and</strong> America Online threatened a further balkanization<strong>of</strong> e-mail access, though systems called gatewayswere developed to transport messages from one system toanother.By the mid-1990s, however, the nearly universal adoption<strong>of</strong> the Internet <strong>and</strong> its TCP/IP protocol had establishedSMTP <strong>and</strong> the ubiquitous Sendmail mail transport programas a uniform infrastructure for e-mail. The extension <strong>of</strong> theInternet protocol to the creation <strong>of</strong> intranets has largelyeliminated the use <strong>of</strong> proprietary corporate e-mail systems.E-mail TrendsThe integration <strong>of</strong> e-mail with HTML for Web-style formatting<strong>and</strong> MIME (for attaching graphics <strong>and</strong> multimediafiles) has greatly increased the richness <strong>and</strong> utility <strong>of</strong>the e-mail experience. E-mail is now routinely used withinorganizations to distribute documents <strong>and</strong> other resources.However, the addition <strong>of</strong> capabilities has also opened securityvulnerabilities. For example, Micros<strong>of</strong>t Windows <strong>and</strong>the popular Micros<strong>of</strong>t Outlook e-mail client together providethe ability to run programs (scripts) directly fromattachments (files associated with e-mail messages). Thismeans that it is easy to create a virus program that will runwhen an enticing-looking attachment is opened. The viruscan then find the user’s mailbox <strong>and</strong> mail copies <strong>of</strong> itself tothe people found there. E-mail has thus replaced the floppydisk as the preferred medium for such mischief. (See computervirus.)Beyond security issues, e-mail is having considerablesocial <strong>and</strong> economic impact. E-mail has largely replacedpostal mail (<strong>and</strong> even long-distance phone calls) as a wayfor friends <strong>and</strong> relatives to keep in touch. As more companiesbegin to use e-mail for providing routine bills <strong>and</strong>statements, government-run postal systems are seeing theirfirst-class mail revenue drop considerably. Despite the risk<strong>of</strong> viruses or deception <strong>and</strong> the annoyance <strong>of</strong> electronicjunk mail (see spam), e-mail has become as much a part <strong>of</strong>our way <strong>of</strong> life as the automobile <strong>and</strong> the telephone.Further ReadingCostales, Bryan, <strong>and</strong> Eric Allman. Sendmail. 3rd ed. Sebastapol,Calif.: O’Reilly, 2002.Sendmail Consortium. Available online. URL: http://www.sendmail.org/. Accessed July 22, 2007.Shipley, David, <strong>and</strong> Will Schwalbe. Send: The Essential Guide toEmail for Office <strong>and</strong> Home. New York: Knopf, 2007.Song, Mike, Vicki Halsey, <strong>and</strong> Tim Burress. The Hamster Revolution:How to Manage Your Email Before It Manages You. SanFrancisco: Bennett-Koehler, 2007.embedded systemWhen people think <strong>of</strong> a computer, they generally think <strong>of</strong>a general-purpose computing system housed in a separatebox, for use on the desk or as a laptop or h<strong>and</strong>-held device.However, the personal computer <strong>and</strong> its cousins are only thesurface <strong>of</strong> a hidden web <strong>of</strong> computing capability that reachesdeep into numerous devices used in our daily lives. Moderncars, for example, <strong>of</strong>ten contain several specialized computersystems that monitor fuel injection or enhance the car’s gripon the road under changing conditions. Many kitchen appliancessuch as microwaves, dishwashers, <strong>and</strong> even toasterscontain their own computer chips. Communications systemsranging from cell phones to TV satellite dishes includeembedded computers. Most important, embedded systemsare now essential to the operation <strong>of</strong> critical infrastructure


178 employment in the computer fieldBecause available memory is limited, embedded programcode tends to be compact. Since embedded systems are<strong>of</strong>ten responsible for critical infrastructure, their operatingprograms must be carefully debugged. Designers tryto make programs “robust” so they can respond sensiblyto unexpected conditions or at least “fail gracefully” ina way least likely to cause damage. Other strategies toimprove the reliability <strong>of</strong> embedded systems include theuse <strong>of</strong> overdesigned, fault-tolerant components (as in themilitary “milspec”) <strong>and</strong> the use <strong>of</strong> separate, redundantsystems so that a failing system can be “locked out” <strong>and</strong>processing can continue elsewhere.An embedded system is a computer processor that is part <strong>of</strong> a“real-world” device that must interact with its environment. Sensorinputs (such as torque or pressure sensors) provide real-time dataabout conditions faced by the device (such as a vehicle). This datais processed by the onboard processor under the control <strong>of</strong> a permanent(ROM) program, <strong>and</strong> comm<strong>and</strong>s are issued to the effectorcontrols, which might, for example, apply braking pressure.such as medical monitoring systems <strong>and</strong> power transmissionnetworks. (The potential vulnerability <strong>of</strong> embedded systemsto the Y2K date-related problems was a major concern inthe months leading up to 2000, especially because manyembedded systems might have to be replaced rather thanjust reprogrammed. In the event, it turned out that therewere relatively few date-dependent systems <strong>and</strong> only minordisruptions were experienced. See y2k problem.)Characteristics <strong>of</strong> Embedded SystemsWhat most distinguishes an embedded system from a desktopcomputer is not that it is hidden inside some other device,but that it runs a single, permanent program whose job it isto monitor <strong>and</strong> respond to the environment in some way.For example, an oven controller would accept a user input(the desired temperature), monitor a sensor or thermostat,<strong>and</strong> control the heat to ensure that the correct temperatureis being maintained. Embedded systems are thus similar torobots in that they sense <strong>and</strong> manipulate their environment.Architecturally, an embedded system typically consists <strong>of</strong>a microprocessor, some nonvolatile memory (memory that canmaintain its contents indefinitely), sensors (to receive readingsfrom the environment), signal processors (to convertinputs into usable information), <strong>and</strong> “effectuators” (switchesor other controls that the embedded system can use to changeits environment). In practice, an embedded system may nothave its own sensors or effectors, but instead interface withother systems (such as avionics or steering).Programmers <strong>of</strong> embedded systems <strong>of</strong>ten use specialcompilers or languages that are particularly suitedfor creating embedded s<strong>of</strong>tware (see ada <strong>and</strong> forth).Further ReadingCatsoulis, John. Designing Embedded Hardware. 2nd ed. Sebastapol,Calif.: O’Reilly, 2005.Embedded.com: “Thinking inside the Box.” Available online. URL:http://www.embedded.com/. Accessed July 22, 2007.Embedded Systems. Dr. Dobb’s Portal. Available online. URL:http://www.ddj.com/dept/embedded/. Accessed July 22, 2007.Norergaard, Tammy. Embedded Systems Architecture: A ComprehensiveGuide for Engineers <strong>and</strong> Programmers. Burlington, Mass.:Newnes/Elsevier, 2005.Simon, David E. An Embedded S<strong>of</strong>tware Primer. Upper Saddle River,N.J.: Addison-Wesley/Pearson Education, 1999.employment in the computer fieldThe number <strong>of</strong> computer-related positions has grown rapidlyover the past few decades. According to the U.S. Bureau<strong>of</strong> Labor Statistics, by the mid-1990s the fastest-growingpr<strong>of</strong>essions in the United States included systems analysts,computer scientists, <strong>and</strong> computer engineers. By the mid-2000s, computer-related occupations were still near the top<strong>of</strong> the list, which by then also included network <strong>and</strong> communicationsanalysts (second only to “home health aids”).<strong>Computer</strong>-related employment can be broken down intothe following general categories:• hardware design <strong>and</strong> manufacturing, including computersystems, peripherals, communications <strong>and</strong> networkhardware, <strong>and</strong> other devices• the s<strong>of</strong>tware industry, ranging from business applicationsto consumer s<strong>of</strong>tware, games, <strong>and</strong> entertainment• the administrative sector (systems administration,network administration, database administration,computer security, <strong>and</strong> so on)• the Web sector, including ISPs, Web hosts <strong>and</strong> pagedevelopers, <strong>and</strong> e-commerce applications• the support sector, including training <strong>and</strong> education,computer book publishing, technical support, <strong>and</strong>systems repair <strong>and</strong> maintenanceIn addition to these “pure” computer-related jobs, thereare many other positions that involve working with PCs.These include word processing/desktop publishing, statistics,scientific research, accounting <strong>and</strong> billing, shipping,retail sales <strong>and</strong> inventory, <strong>and</strong> manufacturing. (See alsoprogramming as a pr<strong>of</strong>ession.)


emulation 179Job Market ConsiderationsIn the late 1990s, a number <strong>of</strong> sources forecast a growinggap between the number <strong>of</strong> positions opening in computerrelatedfields <strong>and</strong> the number <strong>of</strong> new people entering thejob market (estimates <strong>of</strong> the gap’s size ranged into the hundreds<strong>of</strong> thous<strong>and</strong>s nationally). Particularly in the Internetsector, dem<strong>and</strong> for programmers <strong>and</strong> system administratorsmeant that new college graduates with basic skills couldearn unprecedented salaries, while experienced pr<strong>of</strong>essionalscould <strong>of</strong>ten become highly paid consultants. Despite thegrowing emphasis on computing in secondary <strong>and</strong> highereducation, computer science <strong>and</strong> engineering c<strong>and</strong>idateswere in particularly short supply. As a result, many companiesreceived permission to hire larger numbers <strong>of</strong> immigrantsfrom countries such as India.The “dot crash” <strong>of</strong> 2001–2002 saw a sharp if temporarydecline in dem<strong>and</strong> for computer pr<strong>of</strong>essionals, particularlyin the Web <strong>and</strong> e-commerce sectors, but it impacted hardwaresales as well. The industry then saw a resurgence, butwith an emphasis on somewhat different skill sets. Skills instrong dem<strong>and</strong> toward the end <strong>of</strong> the 2000 decade include:• detection, prevention, <strong>and</strong> investigation <strong>of</strong> computerattacks (see computer crime <strong>and</strong> security <strong>and</strong> computerforensics)• improvements in operating system <strong>and</strong> s<strong>of</strong>twaresecurity• use <strong>of</strong> open-source s<strong>of</strong>tware <strong>and</strong> operating systems(see open-source movement <strong>and</strong> Linux)• surveillance <strong>and</strong> physical security (see biometrics)• transaction analysis for both security <strong>and</strong> marketingapplications (see data mining)• e-commerce applications <strong>and</strong> management (see customerrelationship management)• rapid development <strong>of</strong> efficient, highly interactive Webservices (see Ajax, Web 2.0 <strong>and</strong> beyond, <strong>and</strong> scriptinglanguages)• hardware <strong>and</strong> s<strong>of</strong>tware for mobile <strong>and</strong> wireless devices(particularly delivery <strong>and</strong> integration <strong>of</strong> media)• content management for Web sites <strong>and</strong> media services• scientific computing, particularly genetic <strong>and</strong> biologicalapplications (see bioinformatics)On the other h<strong>and</strong>, with the successful passing <strong>of</strong> theY2K crisis, the outlook for mainframe programmers (particularlyusing COBOL) is increasingly dim. Prospects arealso poor for certain operating, network, <strong>and</strong> database systemswith declining market share (such as OS/2, Novellnetworking, <strong>and</strong> some older database systems). It is truethat as baby boomer programmers retire, there will besome dem<strong>and</strong> for maintenance or conversion <strong>of</strong> obsolescentsystems. Finally, as global trends toward outsourcing <strong>and</strong>relocating <strong>of</strong> lower-level support <strong>and</strong> even programmingcontinue, it may become harder for domestic workers tobegin to climb the IT ladder.Socially, the key challenges that must be met to ensurea healthy computer-related job market are the improvement<strong>of</strong> education at all levels (see education <strong>and</strong> computers)<strong>and</strong> the increasing <strong>of</strong> ethnic <strong>and</strong> gender diversity in thefield (which is related to the fostering <strong>of</strong> more equal educationalopportunity), <strong>and</strong> adapting to changes in the globaleconomy (see globalism <strong>and</strong> the computer industry).Further ReadingBr<strong>and</strong>el, Mary. “12 IT Skills that Employers Can’t Say No To.”<strong>Computer</strong>world, July 11, 2007. Available online. URL: http://www.computerworld.com/action/article.do?comm<strong>and</strong>=viewArticleBasic&articleId=9026623. Accessed July 22, 2007.Farr, Michael. Top 100 <strong>Computer</strong> <strong>and</strong> Technical Careers. 3rd ed. St.Paul, Minn.: JIST Works, 2006.Henderson, Harry. Career Opportunities in <strong>Computer</strong>s <strong>and</strong> Cyberspace.2nd ed. New York: Facts On File, 2004.Information <strong>Technology</strong> Jobs in America. New York: Info TechEmployment Publications, 2007.U.S. Department <strong>of</strong> Labor. Occupational Outlook H<strong>and</strong>book,2006–07 edition. Available online. URL: http://www.bls.gov/oco/. Accessed July 22, 2007.Vocational Information Center. <strong>Computer</strong> <strong>Science</strong> Career Guide.Available online. URL: http://www.khake.com/page17.html.Accessed July 22, 2007.emulationOne consequence <strong>of</strong> the universal computer concept (seevon Neumann, John) is that in principle any computercan be programmed to imitate the operation <strong>of</strong> any other.An emulator is a program that runs on one computer butaccurately processes instructions written for another (seealso microprocessor <strong>and</strong> assembler). For example, fans<strong>of</strong> older computer games can now download emulationprograms that allow modern PCs to run games originallyintended for an Apple II microcomputer or an Atari gamemachine. Emulators allowing Macintosh <strong>and</strong> Linux users torun Windows programs have also achieved some success.In order to work properly, the emulator must set up asort <strong>of</strong> virtual model <strong>of</strong> the target microprocessor, includingappropriate registers to hold data <strong>and</strong> instructions <strong>and</strong> asuitably organized segment <strong>of</strong> memory. While carrying outinstructions in s<strong>of</strong>tware rather than in hardware imposesa considerable speed penalty, if the processor <strong>of</strong> the emulatingPC is much faster than the one being emulated, theemulator can actually run faster than the original machine.An entire hardware <strong>and</strong> s<strong>of</strong>tware environment can alsobe emulated; this is called a virtual machine. For example,programs such as VMware can be used to run Windows,Linux, <strong>and</strong> BSD UNIX, each in a separate “compartment”that appears to be a complete machine, with all the necessaryhardware drivers <strong>and</strong> emulated facilities.The term virtual machine can also refer to language suchas Java, where programs are first compiled into a platformindependentintermediate “byte code,” which is then runby a Java virtual machine that produces the instructionsneeded for a given platform.In the past, emulation was sometimes used to allow programmersto develop s<strong>of</strong>tware for large, expensive mainframeswhile using smaller machines. Emulators can also


180 encapsulationconsist <strong>of</strong> a combination <strong>of</strong> specially-designed chips <strong>and</strong>s<strong>of</strong>tware, as in the case <strong>of</strong> the “IBM 360 on a chip” thatbecame available for the IBM PCs.The term emulation is also sometimes used to refer to aprogram that accurately simulates the operation <strong>of</strong> a hardwaredevice. For example, when printers that includedhardware for processing the PostScript typographical languagewere expensive, programs were developed that couldprocess the PostScript instructions in the PC itself <strong>and</strong> thensend the output as graphics to a less expensive printer.Further ReadingComparison <strong>of</strong> Virtual Machines. Wikipedia. Available online.URL: http://en.wikipedia.org/wiki/Comparison_<strong>of</strong>_virtual_machines. Accessed July 23, 2007.Smith, Jim, <strong>and</strong> Ravi Nair. Virtual Machines: Versatile Platformsfor Systems <strong>and</strong> Processes. San Francisco: Morgan Kaufmann,2005.VMware. Available online. URL: http://www.vmware.com. AccessedJuly 23, 2007.encapsulationIn the earliest programming languages, any part <strong>of</strong> a programcould access any other part simply by executing aninstruction such as “jump” or “goto.” Later, the concept <strong>of</strong>the subroutine helped impose some order by creating relativelyself-contained routines that could be “called” fromthe main program. At the time the subroutine is called, it isprovided with necessary data in the form <strong>of</strong> global variablesor (preferably) parameters, which are variable referencesor values passed explicitly when the subroutine is called.When the subroutine finishes processing, it may return valuesby changing global variables or changing the values <strong>of</strong>variables that were passed as parameters (see procedures<strong>and</strong> functions).While an improvement over the totally unstructuredprogram, the subroutine mechanism has several drawbacks.If it is maintained as part <strong>of</strong> the main program code, oneprogrammer may change the subroutine while another programmeris still expecting it to behave as previously defined.If not properly restricted, variables within the subroutinemight be accessed directly from outside, leading to unpredictableresults. To minimize these risks, languages such asC <strong>and</strong> Pascal allow variables to be defined so that they are“local”—that is, accessible only from code within the functionor procedure. This is a basic form <strong>of</strong> encapsulation.The class mechanism in C++ <strong>and</strong> other object-orientedlanguages provides a more complete form <strong>of</strong> encapsulation(see object-oriented programming, class, <strong>and</strong> C++). Aclass generally includes both private data <strong>and</strong> procedures ormethods (accessible only from within the class) <strong>and</strong> publicmethods that make up the interface. Code in the main programuses the class interface to create <strong>and</strong> manipulate newobjects <strong>of</strong> that class.Encapsulation thus both protects code from uncontrolledmodification or access <strong>and</strong> hides information (details) thatprogrammers who simply want to use functionality don’tneed to know about. Thus, high-quality classes can bedesigned by experts <strong>and</strong> marketed to other developers whocan take advantage <strong>of</strong> their functionality without having to“reinvent the wheel.”Further ReadingBerard, Edward V. “Abstraction, Encapsulation, <strong>and</strong> InformationHiding.” Available online. URL: http://www.itmweb.com/essay550.htm. Accessed July 23, 2007.Booch, G. Object-Oriented Analysis <strong>and</strong> Design with Applications.3rd ed. Upper Saddle River, N.J.: Addison-Wesley, 2007.Müller, Peter. “Introduction to Object-Oriented ProgrammingUsing C++.” Available online. URL: http://www.gnacademy.org/uu-gna/text/cc/Tutorial/tutorial.html. Accessed August14, 2007.Poo, Danny, <strong>and</strong> Derek Kiong. Object-Oriented Programming <strong>and</strong>Java. 2nd ed. New York: Springer-Verlag, 2007.encryptionThe use <strong>of</strong> encryption to disguise the meanings <strong>of</strong> messagesgoes back thous<strong>and</strong>s <strong>of</strong> years (the Romans, for example,used substitution ciphers, where each letter in a messagewas replaced with a different letter). Mechanical ciphermachines first came into general use in the 1930s. DuringWorld War II the German Enigma cipher machineused multiple rotors <strong>and</strong> a configurable plugboard to createa continuously varying cipher that was thought to beunbreakable. However, Allied codebreakers built electromechanical<strong>and</strong> electronic devices that succeeded in exploitingflaws in the German machine (while incidentally advancingcomputing technology). During the cold war Western <strong>and</strong>Soviet cryptographers vied to create increasingly complexcryptosystems while deploying more powerful computersto decrypt their opponent’s messages.In the business world, the growing amount <strong>of</strong> valuable<strong>and</strong> sensitive data being stored <strong>and</strong> transmitted on computersby the 1960s led to a need for high-quality commercialencryption systems. In 1976, the U.S. National Bureau <strong>of</strong>St<strong>and</strong>ards approved the Data Encryption St<strong>and</strong>ard (DES),which originally used a 56-bit key to turn each 64-bitchunk <strong>of</strong> message into a 64-bit encrypted ciphertext. DESrelies upon the use <strong>of</strong> a complicated mathematical functionto create complex permutations within blocks <strong>and</strong> characters<strong>of</strong> text. DES has been implemented on special-purposechips that can encrypt millions <strong>of</strong> bytes <strong>of</strong> message persecond.Public-Key CryptographyTraditional cryptosystems such as DES use the same key toencrypt <strong>and</strong> decrypt the message. This means that the keymust be somehow transmitted to the recipient before thelatter can decode the message. As a result, security may becompromised. However, the same year DES was <strong>of</strong>ficiallyadopted, Whitfield Diffie <strong>and</strong> Martin Hellman proposed avery different approach, which became known as publickeycryptography. In this scheme each user has two keys, aprivate key <strong>and</strong> a public key. The user publishes his or herpublic key, which enables any interested person to send theuser an encrypted message that can be decrypted only byusing the user’s private key, which is kept secret. The systemis more secure because the private key is never trans-


encryption 181Public key encryption allows users to communicate securely withouthaving to exchange their private keys. In part 1, person Apublishes a public key, which can be used by anyone else (such asperson B) to encrypt a message that only person A can read. In part2, person A encrypts a message with his or her private key. Sincethis message can only be encrypted using person A’s public key, personB can use the published public key to verify that the message isindeed from person A.mitted. Further, a user can distribute a message encryptedwith his or her private key that can be decrypted only withthe corresponding public key. This provides a sort <strong>of</strong> signaturefor authenticating that a message was in fact created byits putative author.In 1978, Ron Rivest, Adi Shamir, <strong>and</strong> Leonard Adelmanannounced the first practical implementation <strong>of</strong> public-keycryptography. This algorithm, called RSA, became the prevailingst<strong>and</strong>ard in the 1980s. While keys may need to belengthened as computer power increases, RSA is likely toremain secure for the foreseeable future.Legal ChallengesUntil the 1990s, the computer power required for routineuse <strong>of</strong> encryption was generally beyond the reach <strong>of</strong> mostsmall business <strong>and</strong> consumer users, <strong>and</strong> there was littleinterest in a version <strong>of</strong> the RSA algorithm for microcomputers.Meanwhile, the U.S. federal government tried to maintaintight controls over encryption technology, includingprohibitions on the export <strong>of</strong> encryption s<strong>of</strong>tware to manyforeign countries.However, the growing use <strong>of</strong> electronic mail <strong>and</strong> thehosting <strong>of</strong> commerce on the Internet greatly increased concernabout security <strong>and</strong> the need to implement an easy-touseform <strong>of</strong> encryption. In 1990, Philip Zimmermann wrotean RSA-based email encryption program that he calledPretty Good Privacy (PGP). However, RSA, Inc. refused togrant him the necessary license for its distribution. Further,FBI <strong>of</strong>ficials <strong>and</strong> sympathetic members <strong>of</strong> Congress seemedpoised to outlaw the use <strong>of</strong> any form <strong>of</strong> encryption that didnot include a provision for government agencies to decodemessages.Believing that people’s liberty <strong>and</strong> privacy were at stake,Zimmermann gave copies <strong>of</strong> PGP to some friends. The programsoon found its way onto computer bulletin boards,<strong>and</strong> then spread worldwide via Internet newsgroups <strong>and</strong>ftp sites. Zimmermann then developed PGP 2.0, which<strong>of</strong>fered stronger encryption <strong>and</strong> a modular design thatmade it easy to create versions in other languages. TheU.S. Customs Department investigated the distribution <strong>of</strong>PGP but dropped the investigation in 1996 without bringingcharges. (At about the same time a federal judge ruledthat mathematician Daniel Bernstein had the right to publishthe source code for an encryption algorithm withoutgovernment censorship.)Government agencies eventually realized that theycould not halt the spread <strong>of</strong> PGP <strong>and</strong> similar programs. Inthe early 1990s, the National Security Agency (NSA), thenation’s most secret cryptographic agency, proposed thatst<strong>and</strong>ard encryption be provided to all PC users in the form<strong>of</strong> hardware that became known as the Clipper Chip. However,the hardware was to include a “back door” that wouldallow government agencies <strong>and</strong> law enforcement (presumablyupon fulfilling legal requirements) to decrypt any message.Civil libertarians believed that there was far too muchpotential for abuse in giving the government such power,<strong>and</strong> a vigorous campaign by privacy groups resulted in them<strong>and</strong>atory Clipper Chip proposal being dropped by themid-1990s in favor <strong>of</strong> a system called “key escrow.” Thissystem would require that a copy <strong>of</strong> each encryption keybe deposited with one or more trusted third-party agencies.The agencies would be required to divulge the key if presentedwith a court order. However, this proposal has beenmet with much the same objections that had been madeagainst the Clipper Chip.In the early 21st century, the balance is likely to continueto favor the code-makers over the code-breakers.While it is rumored that the NSA can use arrays <strong>of</strong> supercomputersto crack any encrypted message given enoughtime, <strong>and</strong> a massive eavesdropping system called Echelonfor analyzing message traffic has been partially revealed, asa practical matter most <strong>of</strong> the world now has access to highqualitycryptography. Only radically new technology (seequantum computing) is likely to reverse this trend.Further ReadingCobb. Chey/ Cryptography for Dummies. Hoboken, N.J.: John Wiley& Sons, 2004.Henderson, Harry. Privacy in the Information Age (Library in aBook) 2nd ed. New York: Facts On File, 2006.“The International PGP Home Page.” Available online. URL: http://www.pgpi.org/. Accessed February 2, 2008.Levy, Stephen. Crypto. New York: Viking, 2001.Singh, Simon. The Code Book: the <strong>Science</strong> <strong>of</strong> Secrecy from Ancient Egyptto Quantum Cryptography. New York: Anchor Books, 2000.


182 Engelbart, DouglasEngelbart, Douglas(1925– )American<strong>Computer</strong> EngineerDouglas Engelbart invented key elements <strong>of</strong> today’s graphicaluser interface, including the use <strong>of</strong> windows, hypertextlinks, <strong>and</strong> the ubiquitous mouse. Engelbart grew up ona small farm near Portl<strong>and</strong>, Oregon, <strong>and</strong> acquired a keeninterest in electronics. His electrical engineering studiesat Oregon State University were interrupted by wartimeservice in the Philippines as a radar technician. During thattime he read a seminal article by Vannevar Bush entitled“As We May Think.” Bush presented a wide-ranging vision<strong>of</strong> an automated, interlinked text system not unlike thedevelopment that would become hypertext <strong>and</strong> the WorldWide Web (see Bush, Vannevar).After returning to college for his Ph.D. (awarded in1955), Engelbart worked for NACA (the predecessor <strong>of</strong>NASA) at the Ames Laboratory. Continuing to be inspiredby Bush’s vision, Engelbart conceived <strong>of</strong> a computer displaythat would allow the user to visually navigate throughinformation displays. Engelbart received his doctorate inelectrical engineering in 1955 at the University <strong>of</strong> California,Berkeley, taught there a few years, <strong>and</strong> then went tothe Stanford Research Institute (SRI), a hotbed <strong>of</strong> futuristicideas. In 1962, Engelbart wrote a seminal paper <strong>of</strong>his own, titled “Augmenting Human Intellect: A ConceptualFramework.” In this paper Engelbart emphasized thecomputer not as a mere aid to calculation, but as a toolthat would enable people to better visualize <strong>and</strong> organizecomplex information to meet the increasing challenges <strong>of</strong>the modern world. The hallmark <strong>of</strong> Engelbart’s approachto computing would continue to be his focus on the centralrole played by the user.In 1963, Engelbart left SRI <strong>and</strong> formed his own researchlab, the Augmentation Research Center. During the 1960s<strong>and</strong> 1970s, he worked on implementing linked text systems(see hypertext <strong>and</strong> hypermedia). In order to help usersinteract with the computer display, he came up with theidea <strong>of</strong> a device that could be moved to control a pointeron the screen. Soon called the “mouse,” the device wouldbecome ubiquitous in the 1980s.Engelbart also took a key interest in the development<strong>of</strong> the ARPANET (ancestor <strong>of</strong> the Internet) <strong>and</strong> adapted hisNLS hypertext system to help coordinate network development.(However, the dominant form <strong>of</strong> hypertext on theInternet would be Tim Berners-Lee’s World Wide Web—(seeBerners-Lee, Tim.) In 1989, Engelbart founded the BootstrapInstitute, an organization dedicated to improving thecollaboration within organizations, <strong>and</strong> thus their performance.During the 1990s, this nurturing <strong>of</strong> new businesses<strong>and</strong> other organizations would become his primary focus.Engelbart received the MIT-Lemuelson Award <strong>and</strong> thea.m. Turing Award in 1997 <strong>and</strong> the National Medal <strong>of</strong> <strong>Technology</strong>in 2000. Public recognition <strong>of</strong> Engelbart’s work <strong>and</strong>ideas about human-computer interaction was also reflectedin a Stanford University symposium called “Engelbart’sUnfinished Revolution.”Further ReadingBardini, Thierry. Bootstrapping: Douglas Engelbart, Coevolution,<strong>and</strong> the Origins <strong>of</strong> Personal Computing. Stanford, Calif.: StanfordUniversity Press, 2000.Bootstrap Institute. Available online. URL: http://www.bootstrap.org. Accessed July 23, 2007.“Engelbart’s Unfinished Revolution.” Stanford University Symposium.Available online. URL: http://www.itmweb.com/essay550.htm. Accessed July 23, 2007.“Internet Pioneers: Doug Engelbart.” Available online. URL: http://www.ibiblio.org/pioneers/Engelbart.html. Accessed April 18,2008.Engelberger, Joseph(1925– )AmericanEntrepreneur, RoboticistJoseph Engelberger <strong>and</strong> George Devol created the first industrialrobot, revolutionizing the assembly line. Engelbergerwent on to develop other robots that can work in hospitals<strong>and</strong> other settings while tirelessly promoting industrialrobotics.Engelberger was born on July 26, 1925, in New YorkCity. During World War II he was selected for a special programwhere promising students were paid to study physicsat Columbia University. Just after the war he worked asan engineer on early nuclear tests in the Pacific. He alsoworked on aerospace <strong>and</strong> nuclear power projects. After completinghis military duties, Engelberger attended ColumbiaUniversity’s School <strong>of</strong> Engineering <strong>and</strong> earned B.S. (1946)<strong>and</strong> M.S. degrees in physics <strong>and</strong> electrical engineering. Thissolid background in science <strong>and</strong> engineering would shapeEngelberger’s practical approach to robot design.A number <strong>of</strong> technologies <strong>of</strong> the 1940s <strong>and</strong> 1950s contributedto the later development <strong>of</strong> robotics. The war hadgreatly increased the development <strong>of</strong> automatic controls<strong>and</strong> servomechanisms that allow for precise positioning <strong>and</strong>manipulation <strong>of</strong> machine parts. The rise <strong>of</strong> nuclear power<strong>and</strong> the need to safely h<strong>and</strong>le radioactive materials alsospurred the development <strong>of</strong> automatic controls. Engelbergerbegan to develop business ventures in the automation field,starting a company called Consolidated Controls.In the mid-1950s Engelberger met George Devol, an inventorwho had patented a programmable transfer machine. Thiswas a device that could automatically move components fromone specified position to another, such as in a die-castingmachine that formed parts for automobiles. Engelbergerrealized that Devol’s machine could, with some additionalextensions <strong>and</strong> capabilities, become a robot that could beprogrammed to work on an assembly line.In 1956 Engelberger <strong>and</strong> Devol founded Unimate, Inc.—the world’s first industrial robot company. Their robot,also called Unimate, is essentially a large “shoulder” <strong>and</strong>arm. The shoulder can move along a track to position thearm near the materials to be manipulated. The arm can beequipped with a variety <strong>of</strong> specialized grasping “h<strong>and</strong>s” tosuit the task. The robot is programmed to perform a set <strong>of</strong>repetitive motions. It is also equipped with various devices


enterprise computing 183for aligning the workpiece (the object to be manipulated)<strong>and</strong> to make small adjustments for variations.In spring 1961 the first Unimate robot began operationson the assembly line at the General Motors Plant inTurnstedt, a suburb <strong>of</strong> Trenton, New Jersey. Most <strong>of</strong> thefactory’s 3,000 human workers welcomed the newcomerbecause Unimate would be doing a job involving the casting<strong>of</strong> car doors <strong>and</strong> other parts from molten metal—hot,dangerous work. That first Unimate worked for nearly 10years, tirelessly keeping up with three shifts <strong>of</strong> humanworkers each day.In 1980 Engelberger published Robotics in Practice. Thisbook, together with Robotics in Service (1988), became ast<strong>and</strong>ard textbook that defined the growing robotics industry.The two titles also marked a shifting <strong>of</strong> Engelberger’sfocus from industrial robots to service robots—robots thatwould do their jobs not in factories, but in workplaces suchas warehouses or hospitals.In the 1980s Engelberger founded HelpMate Robotics,Inc. The company’s most successful product has been theHelpMate robot. The robot is designed to dispatch records,laboratory samples, <strong>and</strong> supplies throughout a busy hospital.HelpMate does not follow a fixed track. Rather, it isprogrammed to visit a succession <strong>of</strong> areas or stations <strong>and</strong>makes its own way, using cameras to detect <strong>and</strong> go aroundobstacles. HelpMate can even summon an elevator to go toa different floor!Along with other robotics entrepreneurs, Engelbergeris also looking toward a time when robots will be able toperform a number <strong>of</strong> useful tasks in the home. In particular,Engelberger sees great potential for robots in helpingto care for the growing population <strong>of</strong> elderly people whoneed assistance in the tasks <strong>of</strong> daily life. He points out thatno government or insurance company can afford to hire afull-time human assistant to enable older people to continueto live at home. However, a suitable robot could fetchthings, remind a person when it is time to take medication,<strong>and</strong> even perform medical monitoring <strong>and</strong> summon help ifnecessary.Joseph Engelberger’s achievements in industrial <strong>and</strong> servicerobotics have won him numerous plaudits <strong>and</strong> awardsfrom the industry. He has also received honorary doctoratesfrom five institutions, including Carnegie Mellon Universityin Pittsburgh—one <strong>of</strong> the great centers <strong>of</strong> robotics researchin the United States.Since 1977, the Robotics Industries Association has presentedthe annual Joseph F. Engelberger Award to honor themost significant innovators in the science <strong>and</strong> technology<strong>of</strong> robotics. Engelberger was elected to the National Academy<strong>of</strong> Engineering in 1984. He also received the ProgressAward <strong>of</strong> the Society <strong>of</strong> Manufacturing Engineers <strong>and</strong>the Leonardo da Vinci Award <strong>of</strong> the Society <strong>of</strong> MechanicalEngineers, as well as the 1982 American Machinist Award.In 1992 Engelberger was included in the London SundayTimes series on “The 1000 Makers <strong>of</strong> the 20th Century.”Japan has awarded him the Japan Prize for his key role inthe establishment <strong>of</strong> that nation’s thriving robotics industry.In 2000 Engelberger delivered the keynote address tothe World Automation Congress, which was also dedicatedto him. In 2004 he received the IEEE Robotics <strong>and</strong> AutomationAward.Further ReadingBrain, Marshall. “Robotic Nation.” Available online. URL: http://marshallbrain.com/robotic-nation.htm. Accessed May 3,2007.Engelberger, Joseph F. Robotics in Practice: Management <strong>and</strong> Applications<strong>of</strong> Industrial Robots. New York: AMACOM, 1980.———. Robotics in Service. Cambridge, Mass.: MIT Press, 1989.———. “Whatever Became <strong>of</strong> Robotics Research.” Robotics Online.http://www.roboticsonline.com/public/articles/articlesdetails.cfm?id=769. Accessed May 3, 2007.Henderson, Harry. Modern Robotics: Building Versatile Machines.New York: Chelsea House, 2006.N<strong>of</strong>, Shimon Y. H<strong>and</strong>book <strong>of</strong> Industrial Robotics. 2nd ed. New York:Wiley, 1999.Robotics Online. Available online. URL: http://www.roboticsonline.com/. Accessed May 3, 2007.enterprise computingThis concept refers to the organization <strong>of</strong> data processing<strong>and</strong> communications across an entire corporation or otherorganization. Historically, computing technology <strong>and</strong> infrastructure<strong>of</strong>ten developed at different rates in the variousdepartments <strong>of</strong> a corporation. For example, by the 1970s,departments such as payroll <strong>and</strong> accounting were makingheavy use <strong>of</strong> electronic data processing (EDP) using mainframecomputers. The introduction <strong>of</strong> the desktop computerin the 1980s <strong>of</strong>ten resulted in operations such as marketing,corporate communications, <strong>and</strong> planning being conductedusing a disparate assortment <strong>of</strong> s<strong>of</strong>tware, databases, <strong>and</strong>document repositories. Even the growing use <strong>of</strong> networking<strong>of</strong>ten meant that an enterprise had several different networkswith at best rudimentary intercommunication.The movement toward enterprise computing, while <strong>of</strong>tenfunctioning as a buzzword for the selling <strong>of</strong> new networking<strong>and</strong> knowledge management technology, conveys a realneed both to manage <strong>and</strong> leverage the growing informationresources used by a large-scale enterprise. The infrastructurefor enterprise computing is the network, which todayis increasingly built using Internet protocol (see tcp/ip),although legacy networks must <strong>of</strong>ten still be supported.Enterprise-oriented s<strong>of</strong>tware uses the client-server model,with an important decision being which operating systemsto support (see client-server computing).The need for flexibility in making data available acrossthe organization is leading to a gradual shift from the olderrelational database (RDBMs) to object-oriented databases(OODBMs). One advantage <strong>of</strong> object-oriented databases isthat it is more scalable (able to be exp<strong>and</strong>ed without runninginto bottlenecks) <strong>and</strong> data can be distributed dynamicallyto take advantage <strong>of</strong> available computing resources.(An alternative is the central depository. See data warehouse.)The dynamic use <strong>of</strong> storage resources is also important(see disk array).The pay<strong>of</strong>fs for a well-integrated enterprise informationsystem go beyond efficiency in resource utilization <strong>and</strong>information delivery. If, for example, the marketing departmenthas full access to data about sales, the data can be


184 entrepreneurs in computinganalyzed to identify key features <strong>of</strong> consumer behavior (seedata mining).Further ReadingBernard, Scott A. An Introduction to Enterprise Architecture Planning.2nd ed. Bloomington, Ind.: AuthorHouse, 2005.Bl<strong>and</strong>ing, Steve, ed. Enterprise Operations Management H<strong>and</strong>book.2nd ed. Boca Raton, Fla.: CRC Press, 1999.Carbone, Jane. IT Architecture Toolkit. Upper Saddle River, N.J.:Prentice Hall PTR, 2004.Zachman Institute for Framework Advancement. Available online.URL: http://www.zifa.com/. Accessed July 29, 2007.entrepreneurs in computingMuch publicity has been given to figures such as Micros<strong>of</strong>tfounder <strong>and</strong> multibillionaire Bill Gates, who turned avest-pocket company selling BASIC language tapes into thedominant seller <strong>of</strong> operating systems <strong>and</strong> <strong>of</strong>fice s<strong>of</strong>tware forPCs. Historically, however, the role <strong>of</strong> key entrepreneurs inthe establishment <strong>of</strong> information technology sectors repeatsthe achievements <strong>of</strong> such 19th- <strong>and</strong> early 20th-centurytechnology pioneers as Thomas Edison <strong>and</strong> Henry Ford.There appear to be certain times when scientific insight <strong>and</strong>technological capability can be translated into businessesthat have the potential to transform society while makingthe pioneers wealthy.Like their counterparts in earlier industrial revolutions,the entrepreneurs who created the modern computerindustry tend to share certain common features. In positiveterms one can highlight imagination <strong>and</strong> vision suchas that which enabled J. Presber Eckert <strong>and</strong> John Mauchlyto conceive that the general-purpose electronic computercould find an essential place in the business <strong>and</strong> scientificworld (see Eckert, J. Presper <strong>and</strong> Mauchly, John). Inthe s<strong>of</strong>tware world, observers point to Bill Gates’s intensefocus <strong>and</strong> ability to create <strong>and</strong> market not just an operatingsystem but also an approach to computing that wouldtransform the <strong>of</strong>fice (see Gates, William, III). The Internetrevolution, too, was sparked by both an “intellectual entrepreneur”such as Tim Berners-Lee, inventor <strong>of</strong> the WorldWide Web (see Berners-Lee, Tim) <strong>and</strong> by Netscape foundersMark Andreessen <strong>and</strong> Jim Clark, who turned the Webbrowser into an essential tool for interacting with informationboth within <strong>and</strong> outside <strong>of</strong> organizations.While technological innovation is important, the abilityto create a “social invention”—such as a new vehicle or planfor doing business, can be equally telling. At the beginning<strong>of</strong> the 21st century, the World Wide Web, effectively lessthan a decade old, is seeing the struggle <strong>of</strong> entrepreneurssuch as Amazon.com’s Jeff Bezos, eBay’s Pierre Omidyar,<strong>and</strong> Yahoo!’s Jerry Yang to exp<strong>and</strong> significant toeholds inthe marketing <strong>of</strong> products <strong>and</strong> information into sustainablebusinesses.Historically, as industries mature, the pure entrepreneurtends to give way to the merely effective CEO. Inthe computer field, however, it is very hard to sort out thewaves <strong>of</strong> innovation that seem to follow close upon oneanother. Some sectors, such as the selling <strong>of</strong> computer systems(a sector dominated by entrepreneurs such as MichaelDell [Dell <strong>Computer</strong>s] <strong>and</strong> Compaq’s Rod Canion) seem tohave little remaining scope for innovation. In other sectors,such as operating systems (an area generally dominatedby Micros<strong>of</strong>t), an innovator such as Linus Torvalds (developer<strong>of</strong> Linux) can suddenly emerge as a viable challenger.And as for the Internet <strong>and</strong> e-commerce, it is too early totell whether the pace <strong>of</strong> innovation has slowed <strong>and</strong> theshakeout now under way will lead to a relatively stablel<strong>and</strong>scape. (Note: a number <strong>of</strong> other biographies <strong>of</strong> computerentrepreneurs are featured in this book. For example,see Andreessen, Marc; Bezos, Jeffrey P.; Engelberger,Joseph; Moore, Gordon E.; <strong>and</strong> Omidyar, Pierre.)Further ReadingCringely, R. X. Accidental Empires. New York: Harper, 1997.Henderson, Harry. A to Z <strong>of</strong> <strong>Computer</strong> Scientists. New York: FactsOn File, 2003.———. Communications <strong>and</strong> Broadcasting. (Milestones in <strong>Science</strong><strong>and</strong> Invention). New York: Chelsea House, 2006.Jager, Rama Dev <strong>and</strong> Rafael Ortiz. In the Company <strong>of</strong> Giants. NewYork: McGraw-Hill, 1997.Malone, Michael S. Betting It All: The <strong>Technology</strong> Entrepreneurs.New York: Wiley, 2001.———. The Valley <strong>of</strong> Heart’s Delight: A Silicon Valley Notebook,1963–2001. New York: Wiley, 2001.Reid, R. H. Architects <strong>of</strong> the Web. New York: John Wiley, 1997.Spector, Robert. amazon.com: Get Big Fast. New York: Harper-Business,2000.enumerations <strong>and</strong> setsIt is sometimes useful to have a data structure that holdsspecific, related data values. For example, if a program is toperform a particular action for data pertaining to each day<strong>of</strong> the week, the following Pascal code might be used:type Day is (Monday, Tuesday, Wednesday,Thursday, Friday, Saturday, Sunday)Such a data type (which is also available in Ada, C, <strong>and</strong>C++) is called an enumeration because it enumerates, or“spells out” each <strong>and</strong> every value that the type can hold.Once the enumeration is defined, a looping structurecan be used to process all <strong>of</strong> its values, as in:var Today: Day;for Today: = Monday to Sunday do (some statements)Pascal, C, <strong>and</strong> C++ do not allow the same item to beused in more than one enumeration in the same name space(area <strong>of</strong> reference). Ada, however, allows for “overloading”with multiple uses <strong>of</strong> the same name. In that case, however,the name must be qualified by specifying the enumerationto which it belongs, as in:If Day = Days (‘Monday’) . . .As far as the compiler is concerned, an enumerationvalue is actually a sequential integer. That is, Monday = 0,Tuesday = 1, <strong>and</strong> so on. Indeed, built-in data types such asBoolean are equivalent to enumerations (false = 0, true =1) <strong>and</strong> in a sense the integer type itself is an enumeration


ergonomics <strong>of</strong> computing 185consisting <strong>of</strong> 0, 1, 2, 3, . . . <strong>and</strong> their negative counterparts.Pascal also includes built-in functions to retrieve the precedingvalue in the enumeration (pred), the following element(succ), or the numeric position <strong>of</strong> the current element(ord).The main advantage <strong>of</strong> using explicit enumerations isthat a constant such as “Monday” is more underst<strong>and</strong>ableto the program’s reader than the value 0. Enumerations arefrequently used in C <strong>and</strong> C++ to specify a limited group<strong>of</strong> items such as flags indicating the state <strong>of</strong> device or fileoperation.Unlike most other languages Pascal <strong>and</strong> Ada also allowfor the definition <strong>of</strong> a subrange, which is a sequential portion<strong>of</strong> a previously defined enumeration. For example, oncethe Day type has been defined, an Ada program can definesubranges such as:subtype Weekdays is Days range Monday . .Friday;subtype Weekend is Days range Saturday . .Sunday;SetsThe set type (found only in Pascal <strong>and</strong> Ada) is similar to anenumeration except the order <strong>of</strong> the items is not significant.It is useful for checking to see whether the item being consideredbelongs to a defined group. For example, instead <strong>of</strong>a program checking whether a character is a vowel as follows:if (char = ‘a’) or (char = ‘e’) or (char = ‘i’)or (char = ‘o’) or (char = ‘u’) . . .the program can define:type Vowels = (a, e, i, o, u);if char in Vowels . . .Further ReadingSebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson, 2007.ergonomics <strong>of</strong> computingErgonomics is the study <strong>of</strong> the “fit” between people <strong>and</strong>their working environment. Because computers are sucha significant part <strong>of</strong> the working life <strong>of</strong> so many people,finding ways for people to maximize efficiency <strong>and</strong> reducehealth risks associated with computer use is increasinglyimportant.Since the user will be looking at the computer monitorfor hours on end, it is important that the display be largeenough to be comfortably readable <strong>and</strong> that there be enoughcontrast. Glare on the monitor surface should be avoided.It is recommended that the monitor be placed so that thetop line <strong>of</strong> text is slightly below eye level. A distance <strong>of</strong>about 18 inches to two feet (roughly arm’s length) is recommended.There has been concern about the health effects <strong>of</strong>electromagnetic radiation generated by monitors. Most newmonitors are designed to have lower emissions.While the “st<strong>and</strong>ard” keyboard has changed little in20 years <strong>of</strong> desktop computing, there have been attemptsat innovation. One, the Dvorak keyboard, uses an alternativearrangement <strong>of</strong> letters to the st<strong>and</strong>ard “QWERTY.”Although it is a more logical arrangement from the point <strong>of</strong>view <strong>of</strong> character frequency, studies have generally failedto show sufficient advantage that would compensate forthe effort <strong>of</strong> retraining millions <strong>of</strong> typists. There have alsobeen specially shaped “ergonomic” keyboards that attemptto bring the keys into a more natural relationship with theh<strong>and</strong> (see keyboard).The use <strong>of</strong> a padded wrist rest remains controversial.While some experts believe it may reduce strain on the arm<strong>and</strong> neck, others believe it can contribute to Carpal TunnelSyndrome. This injury, one <strong>of</strong> the most serious repetitivestress injuries (RSIs), is caused by compression <strong>of</strong> a nervewithin the wrist <strong>and</strong> h<strong>and</strong>.Because <strong>of</strong> reliance on the mouse in many applications,experts suggest selecting a mouse that comfortably fits theh<strong>and</strong>, with the buttons falling “naturally” under the fingers.When moving the mouse, the forearm, wrist, <strong>and</strong> fingersshould be kept straight (that is, in line with the mouse).Some people may prefer the use <strong>of</strong> an alternative pointingdevice (such as trackball or “stub” within the keyboarditself, <strong>of</strong>ten found in laptop computers).A variety <strong>of</strong> so-called ergonomic chairs <strong>of</strong> varying qualityare available. Such a chair can be a good investment inworker safety <strong>and</strong> productivity, but for best results the chairmust be selected <strong>and</strong> adjusted after a careful analysis <strong>of</strong>the individual’s body proportions, the configuration <strong>of</strong> theworkstation, <strong>and</strong> the type <strong>of</strong> applications being used. Ingeneral, a good ergonomic chair should have an adjustableseat <strong>and</strong> backrest <strong>and</strong> feel stable rather than rickety.The operating system <strong>and</strong> s<strong>of</strong>tware in use are alsoimportant. Providing clear, legible text, icons or othercontrols <strong>and</strong> a consistent interface will contribute to theuser’s overall sense <strong>of</strong> comfort, as well as reducing eyestrain.It is also important to try to eliminate unnecessaryrepetitive motion. For example, it is helpful to provideshortcut key combinations that can be used instead <strong>of</strong> aseries <strong>of</strong> mouse movements. Beyond specific devices, thedevelopment <strong>of</strong> an integrated design that reduces stress<strong>and</strong> improves usability is part <strong>of</strong> what is sometimes calledhuman factors research.In March 2001, President Bush cancelled new OSHAst<strong>and</strong>ards that would have further emphasized reporting<strong>and</strong> mitigating repetitive stress <strong>and</strong> musculo-skeletal disorders(MSDs). However, the legal <strong>and</strong> regulatory climateis likely to continue to place pressure on employers to takeergonomic considerations into account.Further ReadingCoe, Marlana. Human Factors for Technical Communicators. NewYork: Wiley, 1996.Dul, Jan, <strong>and</strong> Bernard Weerdmeester. Ergonomics for Beginners:A Quick Reference Guide. 2nd ed. Gr<strong>and</strong> Rapids, Mich.: CRCPress, 2001.“Ergonomic Design for <strong>Computer</strong> Workstations.” Available online.URL: http://www.ergoindem<strong>and</strong>.com/computer-workstationergonomics.htm.Accessed July 30, 2007.


186 error correctionSalvendy, Gavriel. H<strong>and</strong>book <strong>of</strong> Human Factors <strong>and</strong> Ergonomics. 3rded. New York: Wiley, 2006.U.S. Department <strong>of</strong> Labor. Occupational Safety & Health Administration.“<strong>Computer</strong> Workstations.” Available online. URL:http://www.osha.gov/SLTC/etools/computerworkstations/index.html. Accessed July 30, 2007.Vredenberg, Karel, Scott Isensee, <strong>and</strong> Carol Righi. User-CenteredDesign: an Integrated Approach. Upper Saddle River, N.J.:Prentice Hall, 2001.For even parity, if the number <strong>of</strong> ones in the byte is odd, the paritybit is set to one to make the total number <strong>of</strong> ones even. Odd paritywould work the same way, except the parity bit would be set whennecessary to ensure an odd number <strong>of</strong> ones.error correctionTransmitting data involves the sending <strong>of</strong> bits (ones <strong>and</strong>zeros) as signaled by some alternation in physical characteristics(such as voltage or frequency). There are a number<strong>of</strong> ways in which errors can be introduced into the datastream. For example, electrical “noise” in the line might beinterpreted as spurious bits, or a bit might be “flipped” fromone to zero or vice versa. Generally speaking, the faster therates at which bits are being sent, the more sensitive thetransmission is to effects that can cause errors.While a few wrong characters might be tolerated insome text messages or graphics files, binary files representingexecutable programs must generally be received perfectly,since r<strong>and</strong>om changes can make programs fail orproduce incorrect results. Data communications engineershave devised a number <strong>of</strong> methods for checking the accuracy<strong>of</strong> data transmissions.The simplest scheme is called parity. A single bit isadded to each eight-bit byte <strong>of</strong> data. In even parity, theextra (parity) bit is set to one when the number <strong>of</strong> ones inthe byte is odd. In odd parity, a one is added if the data bytehas an even number <strong>of</strong> ones. This means that the receiver <strong>of</strong>the data can expect it to be even or odd respectively. Whenthe byte arrives at its destination, the receiving programchecks the parity bit <strong>and</strong> then counts the number <strong>of</strong> onesin the rest <strong>of</strong> the byte. If, for example, the parity is evenbut the data as received has an odd number <strong>of</strong> ones, thenat least one <strong>of</strong> the bits must have been changed in error.Parity is a fast, easy way to check for errors, but it has someunreliability. For example, if there were two errors in transmissionsuch that a one became a zero <strong>and</strong> a different zerobecame a one, the parity would be unchanged <strong>and</strong> the errorwould not be detected.The checksum method <strong>of</strong>fers greater reliability. Thebinary value <strong>of</strong> each block <strong>of</strong> data is added <strong>and</strong> the sumis sent along with the block. At the destination, the bits inthe block are again added to see if they still match the sum.A variation, the cyclical redundancy check or CRC, breaksthe data into blocks <strong>and</strong> divides them by a fixed number.The remainder for the division for each block is appendedto the block <strong>and</strong> the calculation is repeated <strong>and</strong> checked atthe destination. Today most modem control s<strong>of</strong>tware implementsparity or CRC checking.A more sophisticated method called the Hamming Code<strong>of</strong>fers not only high reliability but also the ability to automaticallycorrect errors. In this scheme the data <strong>and</strong> checkbits are encrypted together to create a code word. If theword received is not a valid code word, the receiver can usea series <strong>of</strong> parity checks to find the original error. Increasingthe ratio <strong>of</strong> redundant check bits to message bits improvesthe reliability <strong>of</strong> the code, but at the expense <strong>of</strong> having todo more processing to encrypt that data <strong>and</strong> requiring moretime to transmit it.Further Reading“Error-Correcting Code.” Wolfram MathWorld. Available online.URL: http://mathworld.wolfram.com/Error-CorrectingCode.html. Accessed July 31, 2007.Fung, Francis Yein Chei. “A Survey <strong>of</strong> the Theory <strong>of</strong> Error-CorrectingCodes.” Available online. URL: http://cadigweb.ew.usna.edu/~wdj/teach/ecc/codes.html. Accessed July 31, 2007.Wicker, S. B. Error Control Systems for Digital Communication <strong>and</strong>Storage. Upper Saddle River, N.J.: Prentice Hall, 1995.error h<strong>and</strong>lingAn important characteristic <strong>of</strong> quality s<strong>of</strong>tware is its abilityto h<strong>and</strong>le errors that arise in processing (also calledrun-time errors or “exceptions”). Before it is released forgeneral use, a program should be thoroughly tested witha variety <strong>of</strong> input (see quality assurance, s<strong>of</strong>tware).When errors are found, the soundness <strong>of</strong> the algorithm <strong>and</strong>its implementation must be checked, as well as the programlogic (see algorithm). Interaction between the program<strong>and</strong> other programs (including the operating system) aswell as with hardware must also be considered. (See bugs<strong>and</strong> debugging.)However, even well-tested s<strong>of</strong>tware is likely to encountererrors. Therefore a program intended for widespread usemust include instructions for dealing with errors, anticipatedor otherwise. The process <strong>of</strong> error h<strong>and</strong>ling can bedivided into four stages: validation, detection, communication,<strong>and</strong> amelioration.Data validation is the first line <strong>of</strong> defense. At the “frontend” <strong>of</strong> the program, data being entered by a user (or readfrom a disk file or communications link) is checked to seewhether it falls within the prescribed parameters. (In thecase <strong>of</strong> a program such as a data management system, theuser interface plays an important role. Data input fieldscan be designed so that they accept only valid characters.


expert systems 187On-line help <strong>and</strong> error messages can explain to users why aparticular input is invalid.)However, data validation can ensure only that data fallswithin the generally acceptable parameters. Some particularcombination or context <strong>of</strong> data might still be erroneous,<strong>and</strong> calculations performed within the program can alsoproduce errors. Some examples include a divisor becomingzero (not allowable mathematically) or a number overflowingor underflowing (becoming too large or too small forregister or memory space allotted for it).Error communication is generally h<strong>and</strong>led by a set <strong>of</strong>error codes (special numeric values) returned to the mainprogram by the function used to perform the calculation.In addition, errors that arise in file processing (such as “filenot found”) also return error codes. For example, supposethere is a division function in C++double Quotient(double dividend, doubledivisor) throw(ZERODIV){if (0.0 == divisor)throw ZERODIV();return dividend / divisor;}In C++ “throw” means to post an error that can be“caught” by the appropriate error-h<strong>and</strong>ling routine. Thus,the corresponding “catch” code might have:catch( ZERODIV ){cout


188 expert systemsAnatomy <strong>of</strong> an Expert SystemAn expert system has two main components, a knowledge base<strong>and</strong> an inference engine. The knowledge base consists <strong>of</strong> a set<strong>of</strong> assertions (facts) or <strong>of</strong> rules expressed as if . . . then statementsthat specify conditions that, if true, allow a particularinference to be drawn (see prolog). The inference engineaccepts new assertions or queries <strong>and</strong> tests them against thestored rules. Because satisfying one rule can create a conditionthat is to be tested by a subsequent rule, chains <strong>of</strong> reasoningcan be built up. If the reasoning is from initial factsto an ultimate conclusion, it is called forward chaining. If aconclusion is given <strong>and</strong> the goal is to prove that conclusion,there can be backward chaining from the conclusion to theassertions (similar to axioms in mathematical pro<strong>of</strong>s).While some rules are ironclad (for example, if a closedstraight figure has three sides, it’s a triangle) in many realworldapplications it is necessary to take a probabilisticapproach. For example, experience might suggest that if acustomer buys reference books there is a 40 percent chancethe customer will also buy a related CD-ROM product.Thus, rules can be given weights or confidence factors <strong>and</strong> asthe rules are chained, a cumulative probability for the conclusioncan be generated <strong>and</strong> some threshold probabilityfor asserting a conclusion can be specified. (See also fuzzylogic <strong>and</strong> uncertainty).While rules-based inference systems are relatively easyto traverse automatically, they may lack the flexibility tocodify the knowledge needed for complex activities (such asautomatic analysis <strong>of</strong> news stories). An alternative approachinvolves the construction <strong>of</strong> a knowledge base consisting<strong>of</strong> frames. A frame (also called a schema) is an encodeddescription <strong>of</strong> the characteristics <strong>and</strong> relationships <strong>of</strong> entities.For example, an expert system designed to analyzecourt cases might have frames that describe the roles <strong>and</strong>interests <strong>of</strong> the defendant, defense counsel, prosecutor, <strong>and</strong>so on, <strong>and</strong> other frames describing the trial <strong>and</strong> sentencingprocess. Using this knowledge, the system might be able topredict what sort <strong>of</strong> plea agreement a particular defendantmight reach with the state. While potentially more robustthan a rules-based system, a frames-based system faces thetwin challenges <strong>of</strong> building <strong>and</strong> maintaining a complex <strong>and</strong>open-ended knowledge base <strong>and</strong> <strong>of</strong> developing methods <strong>of</strong>reasoning more akin to generalized artificial intelligence(see artificial intelligence).Building an expert system requires that the knowledge <strong>of</strong> expertsbe “captured” in the form <strong>of</strong> a series <strong>of</strong> assertions <strong>and</strong> rules calleda knowledge base. Once the knowledge base is established, usersseeking advice can use an inference engine to examine the knowledgebase for valid conclusions that can be expressed as recommendations,<strong>of</strong>ten with varying degrees <strong>of</strong> confidence.TrendsExpert systems (particularly <strong>of</strong> the rules-based variety) nowhave an established place in business, industry, <strong>and</strong> science.The field <strong>of</strong> genomics <strong>and</strong> genetic engineering, widelyseen as the “technology <strong>of</strong> the 21st century” may be a particularlyfruitful applications area for analytical expert systems.Another promising area is the use <strong>of</strong> expert systemsfor e-commerce marketing analysis (see data mining). Anemerging emphasis in expert system development is theuse <strong>of</strong> object-oriented concepts (see object-oriented programming)<strong>and</strong> distributed database <strong>and</strong> knowledge sharingtechnology to build <strong>and</strong> maintain large knowledge basesmore efficiently.Further Reading“Expert Systems.” American Association for Artificial Intelligence.Available online. URL: http://www.aaai.org/AITopics/html/expert.html. Accessed July 31, 2007.Giarrartano, Joseph C., <strong>and</strong> Gary D. Riley. Expert Systems: Principles<strong>and</strong> Programming. 4th ed. Boston: Thomson Course<strong>Technology</strong>, 2004.“Introduction to Expert Systems.” Available online. URL: http://www.expertise2go.com/webesie/tutorials/ESIntro/. AccessedJuly 31, 2007.Jackson, Peter. Introduction to Expert Systems. 3rd ed. Reading,Mass.: Addison-Wesley, 1998.


Ffault toleranceFault tolerance is a design concept that recognizes that allcomputer-based systems will fail eventually. The question iswhether a system as a whole can be designed to “fail gracefully.”This means that even if one or more componentsfail, the system will continue to operate according to itsdesign specifications, even if its speed or throughput mustdecrease.Methods <strong>and</strong> ImplementationsThere are a number <strong>of</strong> ways to make a system more faulttolerant. Individual components such as hard drives can becomposed <strong>of</strong> multiple units so that the remaining units cantake over if one fails (see also raid). If each key componenthas at least one backup, then there should be time to replacethe primary before the backup also fails.Another way to achieve fault tolerance is to provide multiplepaths to successful completion <strong>of</strong> the task. In fact, thisis how packet-switched networks like the Internet work(see tcp/ip). If one communications link is down or toocongested, packets are given an alternative routing.Fault diagnosis s<strong>of</strong>tware can also play an important roleboth in determining how to respond to a problem (beyondany automatic response) <strong>and</strong> for providing data that will beuseful later to system administrators or technicians. Somefault diagnosis systems can use elaborate rules (see expertsystems) to pinpoint the cause <strong>of</strong> a fault <strong>and</strong> recommend asolution.The amount <strong>of</strong> fault tolerance to be provided for a systemdepends on a number <strong>of</strong> factors:• How important is it that the system not fail?• How critical is a given component to the operation <strong>of</strong>the system?• How likely is it that a given component will fail?(Mean time between failures, or MBTF)• How expensive is it to make the component or systemfault tolerant?A related concept is fail-safe. While fault toleranceemphasizes continued operation despite one or more failures,fail-safe emphasizes the ability to shut down safelyin case <strong>of</strong> an unrecoverable failure. With computer-basedsystems, fail-safe design can use redundant systems (asin avionics) to perform calculations, with a failing system“outvoted” if necessary by the good ones. In most casesthere should also be a provision to alert the pilot or operatorin time to take over operations from the automaticsystem.Another common example <strong>of</strong> fail-safe is modern operatingsystems that create a “journal” <strong>of</strong> pending operations t<strong>of</strong>iles that can be used to restore the integrity <strong>of</strong> the systemafter a power failure or other abrupt shutdown (see filesystem.)Further ReadingIsermann, Rolf. Fault-Diagnosis Systems: An Introduction from FaultDetection to Fault Tolerance. New York: Springer, 2006.Koren, Israel, <strong>and</strong> C. Mani Krishna. Fault-Tolerant Systems. SanFrancisco: Morgan Kauffman, 2007.National Institute <strong>of</strong> St<strong>and</strong>ards <strong>and</strong> <strong>Technology</strong>. “A ConceptualFramework for System Fault Tolerance.” Available online. URL:189


190 Feigenbaum, Edwardhttp://hissa.nist.gov/chissa/SEI_Framework/framework_1.html. Accessed September 20, 2007.Pullum, Laura L. S<strong>of</strong>tware Fault Tolerance: Techniques <strong>and</strong> Implementation.Norwood, Mass.: Artech House, 2001.Feigenbaum, Edward(1936– )American<strong>Computer</strong> ScientistEdward Feigenbaum is a pioneer artificial intelligenceresearcher, best known for his development <strong>of</strong> expert systems(see artificial intelligence). Feigenbaum was bornin Weehawken, New Jersey. His father, a Polish immigrant,died before Feigenbaum’s first birthday. His stepfather, anaccountant <strong>and</strong> bakery manager, was fascinated by science<strong>and</strong> regularly brought young Edward to the Hayden Planetarium’sshows <strong>and</strong> to every department <strong>of</strong> the vast Museum<strong>of</strong> Natural History. The electromechanical calculator hisfather used to keep accounts at the bakery particularly fascinatedEdward. His interest in science gradually turned toa perhaps more practical interest in electrical engineering.While at the Carnegie Institute <strong>of</strong> <strong>Technology</strong> (nowCarnegie Mellon University), Feigenbaum was encouragedto venture beyond the more mundane curriculum tothe emerging field <strong>of</strong> computation. He became interestedin John Von Neumann’s work in game theory <strong>and</strong> decisionmaking <strong>and</strong> also met Herbert Simon, who was conductingpioneering research into how organizations madedecisions (see von Neumann, John). This in turn broughtFeigenbaum into the early ferment <strong>of</strong> artificial intelligenceresearch in the mid-1950s. Simon <strong>and</strong> Alan Newell had justdeveloped Logic Theorist, a program that simulated theprocess by which mathematicians proved theorems throughthe application <strong>of</strong> heuristics, or strategies for breaking problemsdown into simpler components from which a chain <strong>of</strong>assertions could be assembled leading to a pro<strong>of</strong>.Feigenbaum quickly learned to program IBM mainframes<strong>and</strong> then began writing AI programs. For his doctoralthesis, he explored the relation <strong>of</strong> artificial problemsolving to the operation <strong>of</strong> the human mind. He wrote acomputer program that could simulate the human process<strong>of</strong> perceiving, memorizing, <strong>and</strong> organizing data forretrieval. Feigenbaum’s program, the Elementary Perceiver<strong>and</strong> Memorizer (EPAM), was a seminal contribution to AI.Its “discrimination net,” which attempted to distinguishbetween different stimuli by retaining key bits <strong>of</strong> information,would eventually evolve into the neural network (seeneural network). Together with Julian Feldman, Feigenbaumedited the 1962 book <strong>Computer</strong>s <strong>and</strong> Thought, whichsummarized both the remarkable progress <strong>and</strong> perplexingdifficulties encountered during the field’s first decade.During the 1960s, Feigenbaum worked to develop systemsthat could perform induction (that is, derive generalprinciples based on the accumulation <strong>of</strong> data about specificcases). Working on a project to develop a mass spectrometerfor a Mars probe, Feigenbaum <strong>and</strong> his fellow researchersbecame frustrated at the computer’s lack <strong>of</strong> knowledgeabout basic rules <strong>of</strong> chemistry. Feigenbaum then decidedthat such rules (or knowledge) might be encoded in sucha way that the program could apply it to the data beinggathered from chemical samples. The result in 1965 wasDendral, the first <strong>of</strong> what would become a host <strong>of</strong> successful<strong>and</strong> productive expert systems (see expert system). Afurther advance came in 1970 with Meta-Dendral, a programthat could not only apply existing rules to determinethe structure <strong>of</strong> a compound, it could also compare knownstructures with the existing database <strong>of</strong> rules <strong>and</strong> infer newrules, thus improving its own performance.During the 1980s, Feigenbaum coedited the four-volumeH<strong>and</strong>book <strong>of</strong> Artificial Intelligence. He also introduced expertsystems to a lay audience in two books, The Fifth Generation(co-authored with Pamela McCorduck) <strong>and</strong> The Rise <strong>of</strong> theExpert Company.Feigenbaum combined scientific creativity with entrepreneurshipin founding a company called IntelliGenetics<strong>and</strong> serving as a director <strong>of</strong> Teknowledge <strong>and</strong> IntelliCorp.These companies pioneered the commercialization <strong>of</strong>expert systems. In doing so, Feigenbaum <strong>and</strong> his colleaguespublicized the discipline <strong>of</strong> “knowledge engineering”—thecapturing <strong>and</strong> encoding <strong>of</strong> pr<strong>of</strong>essional knowledge in medicine,chemistry, engineering, <strong>and</strong> other fields so that it canbe used by an expert system. In what he calls the “knowledgeprinciple” he asserts that the quality <strong>of</strong> knowledge ina system is more important than the algorithms used forreasoning. Thus, Feigenbaum has tried to develop knowledgebases that might be maintained <strong>and</strong> shared as easily asconventional databases.Remaining active in the 1990s, Feigenbaum was secondpresident <strong>of</strong> the American Association for Artificial Intelligence<strong>and</strong> (from 1994 to 1997) chief scientist <strong>of</strong> the U.S.Air Force. In 1995, Feigenbaum received the Association forComputing Machinery’s prestigious A. M. Turing Award.Founder <strong>of</strong> the Knowledge Systems Laboratory at StanfordUniversity, Feigenbaum remains a pr<strong>of</strong>essor emeritus <strong>of</strong>computer science at that institution.Further ReadingFeigenbaum, Edward, Julian Feldman, <strong>and</strong> Paul Armer, eds. <strong>Computer</strong>s<strong>and</strong> Thought. Cambridge, Mass.: MIT Press, 1995.Feigenbaum, Edward, Pamela McCorduck, <strong>and</strong> H. Penny Nii. TheRise <strong>of</strong> the Expert Company: How Visionary Companies areUsing Artificial Intelligence to Achieve Higher Productivity <strong>and</strong>Pr<strong>of</strong>its. New York: Vintage Books, 1989.Henderson, Harry. Artificial Intelligence: Mirrors for the Mind. NewYork: Chelsea House, 2007.Shasha, Dennis, <strong>and</strong> Cathy Lazere. Out <strong>of</strong> Their Minds: The Lives<strong>and</strong> Discoveries <strong>of</strong> 15 Great <strong>Computer</strong> Scientists. New York:Copernicus/Springer-Verlag, 1995.fiber opticsA fiber optic (or optical fiber) cable transmits photons(light) instead <strong>of</strong> electrons. Depending on the diameter <strong>of</strong>the cable, the light is guided either by total internal reflectionor as a waveguide (manipulating refraction). Theseprinciples were known as early as the mid-19th century <strong>and</strong>began to be used in the 20th century for such applications


file 191as dental <strong>and</strong> medical illumination <strong>and</strong> in experiments intransmitting images for television.DevelopmentOptical fiber in its modern form was developed in the1950s. The glass fiber through which the light passes issurrounded by a transparent cladding designed to providethe needed refractive index to keep the light confined. Thecladding in turn is surrounded by a resin buffer layer <strong>and</strong><strong>of</strong>ten an outer jacket <strong>and</strong> plastic cover. Fiber used for communicationis flexible, allowing it to bend if necessary.Early optical fiber could not be used for practical communicationbecause <strong>of</strong> progressive attenuation (weakening)<strong>of</strong> the light as it traveled. However, by the 1970s the attenuationwas being reduced to acceptable levels by removingimpurities from the fibers. Today the light signals can travelhundreds <strong>of</strong> miles without the need for repeaters or amplifiers.In the 1990s a new type <strong>of</strong> optical fiber (photonic crystal)using diffraction became available. This kind <strong>of</strong> fiberis particularly useful in applications that require higherpower signals.Communications <strong>and</strong> Network ApplicationsOptical fiber has several advantages over ordinary electriccable for communications <strong>and</strong> networking. The signals cantravel much farther without the need for a repeater to boostthe signal. Also, the ability to modulate wavelengths allowsoptical fiber to carry many separate channels, greatly increasingthe total data throughput. Optical fiber does not emit RF(radio frequency) energy, a source <strong>of</strong> “cross talk” (interference)in electrical cable. Fiber is also more secure than electricalcable because it is hard for an eavesdropper to tap.Today fiber is used for most long-distance phone lines<strong>and</strong> Internet connections. Many cable television systemsare upgrading from video cable to fiber because <strong>of</strong> itsgreater reliability <strong>and</strong> ability to carry more b<strong>and</strong>width <strong>and</strong>enhanced data services.The last area where electrical (copper) cable predominatesis in the “last mile” between main lines <strong>and</strong> housesor buildings, <strong>and</strong> within local networks. However, newbuildings <strong>and</strong> higher-end homes <strong>of</strong>ten include built-in fiber.Increasingly, phone companies are upgrading service bybridging the last mile through fiber-to-the-home (FTTH)networks. While requiring a considerable investment, FITHallows phone companies to replace relatively slow DSL withfaster (higher b<strong>and</strong>width) service better suited to delivervideo, data, <strong>and</strong> phone service simultaneously (see b<strong>and</strong>width,cable modem, <strong>and</strong> dsl). As <strong>of</strong> 2008, 3.3 millionAmerican homes had fiber connections, mainly throughVerizon’s FIOS service. It is expected that FTTH will bebuilt into many new housing developments.In 2007 Corning announced the development <strong>of</strong> “nanostructured”optical fibers that can be bent more sharply(such as around corners) without loss <strong>of</strong> signal. Corning isworking with Verizon to develop easier <strong>and</strong> cheaper waysto provide FTTH.(Related optical principles can also be applied to computerdesign. See optical computing.)Further ReadingThe Fiber Optic Association. “User’s Guide to Fiber Optic SystemDesign <strong>and</strong> Installation.” Available online. URL: http://www.thefoa.org/user/. Accessed September 20, 2007.“Fiber Optics: The Basics <strong>of</strong> Fiber Optic Cable: A Tutorial.” Availableonline. URL: http://www.arcelect.com/fibercable.htm.Accessed September 20, 2007.Fiber to the Home Council. Available online. URL: http://www.ftthcouncil.org/. Accessed September 20, 2007.Hecht, Jeff. Underst<strong>and</strong>ing Fiber Optics. 5th ed. Upper Saddle River,N.J.: Prentice Hall, 2005.Palais, Joseph C. Fiber Optic Communications. 5th ed. Upper SaddleRiver, N.J.: Prentice Hall, 2004.fileAt bottom, information in a computer is stored as a series <strong>of</strong>bits, which can be grouped into larger units such as bytesor “words” that represent particular numbers or characters.In order to be stored <strong>and</strong> retrieved, a collection <strong>of</strong> suchbinary data must be given a name <strong>and</strong> certain attributesthat describe how the information can be accessed. Thisnamed entity is the file.Files <strong>and</strong> the Operating SystemFiles can be discussed at three levels, the physical layout,the operating system, <strong>and</strong> the application program. At thephysical level, a file is stored on a particular medium. (Seefloppy disk, hard disk, cd-rom, <strong>and</strong> tape drives.) Ondisk devices a file takes up a certain number <strong>of</strong> sectors,which are portions <strong>of</strong> concentric tracks. (On tape, files areusually stored as contiguous segments or “blocks” <strong>of</strong> data.)The file system is the facility <strong>of</strong> the operating system thatorganizes files (see operating system). For example, on DOS<strong>and</strong> older Windows PCs, there is a file allocation table (FAT)that consists <strong>of</strong> a linked list <strong>of</strong> clusters (each cluster consists<strong>of</strong> a fixed number <strong>of</strong> sectors, varying with the overall size <strong>of</strong>the disk). When the operating system is asked to access a file,it can go through the table <strong>and</strong> find the clusters belonging tothat file, read the data <strong>and</strong> send it to the requesting application.Modern file systems further organize files into groupscalled folders or directories, which can be nested several layersdeep. Such a hierarchical file system makes it easier forusers to organize the dozens <strong>of</strong> applications <strong>and</strong> thous<strong>and</strong>s <strong>of</strong>files found on today’s PCs. For example, a folder called Bookmight have a subfolder for each chapter, which in turn containsfolders for text <strong>and</strong> illustrations relating to that chapter.Besides storing <strong>and</strong> retrieving files, the modern file systemsets characteristics or attributes for each file. Typicalattributes include write (the file can be changed), read (thefile can be accessed but not changed), <strong>and</strong> archive (whichdetermines whether the file needs to be included in the nextbackup). In multi-user operating systems such as UNIXthere are also attributes that indicate ownership (that is,who has certain rights with regard to the file). Thus a filemay be executable (run as a program) by anyone, but writeable(changeable) only by someone who has “superuser”status (see also data security).The current generation <strong>of</strong> file systems for PCs includesadditional features that promote efficiency <strong>and</strong> particularly


192 file serverdata integrity. Versions <strong>of</strong> Windows starting with NT, 2000,<strong>and</strong> XP come st<strong>and</strong>ardly with NTFS, the “New <strong>Technology</strong>File System,” which includes journaling, or the keeping <strong>of</strong>a record <strong>of</strong> all transactions affecting the system (such asdeleting or adding a file). In the event <strong>of</strong> a mishap such asa power failure, the transactions can be “replayed” fromthe journal, ensuring that the file system reflects the actualcurrent status <strong>of</strong> all files. NTFS also uses “metadata” thatdescribes each file or directory. Database principles canthus be applied to organizing <strong>and</strong> retrieving files at a higherlevel.Linux (based on UNIX) uses a single file system hierarchythat incorporates all devices in the system. (The networkfile system, NFS, effectively extends the hierarchy toall machines on the local network.) The popular Linux ext3file system also includes journaling.Files <strong>and</strong> ApplicationsThe ultimate organization <strong>of</strong> data in a file depends on theapplication. A typical approach is to define a data recordwith various fields. The program might have a loop thatrepeatedly requests a record from the file, processes it insome way, <strong>and</strong> repeats until the operating system tells itthat it has reached the end <strong>of</strong> the file. This would be asequential access; a program can also be set up for r<strong>and</strong>omaccess, which means that an arbitrary record can berequested <strong>and</strong> that request will be translated into the correctphysical location in the file. The two approaches canbe combined in ISAM (Indexed Sequential Access Method),where the records are stored sequentially but fields areindexed so a particular record can be retrieved.Since files such as graphics (images), sound, <strong>and</strong> formattedword processing documents can only be read <strong>and</strong> usedby particular applications, files are <strong>of</strong>ten given names withextensions that describe their format. When a Windowsuser sees, for example, a Micros<strong>of</strong>t Word document, thefilename will have a .DOC extension (as in chapter.doc) <strong>and</strong>will be shown with an icon registered by the application forsuch files. Further, a file association will be registered sothat when a user opens such a file the Word program willrun <strong>and</strong> load it.From a user interface point <strong>of</strong> view, the use <strong>of</strong> the file asthe main unit <strong>of</strong> data has been criticized as not correspondingto the actual flow <strong>of</strong> most kinds <strong>of</strong> work. While fromthe computer’s point <strong>of</strong> view, the user is opening, modifying,<strong>and</strong> saving a succession <strong>of</strong> separate files, the user <strong>of</strong>tenthinks in terms <strong>of</strong> working with documents (which mayhave components stored in a number <strong>of</strong> separate files.) Thus,many <strong>of</strong>fice s<strong>of</strong>tware applications <strong>of</strong>fer a document-orientedor project-oriented view <strong>of</strong> data that hides or minimizes thedetails <strong>of</strong> individual files (see document model).Further ReadingCallaghan, Brent. XFS Illustrated. Reading, Mass.: Addison-WesleyPr<strong>of</strong>essional, 1999.Matl<strong>of</strong>f, Norman. “File Systems in UNIX.” Available online. URL:http://heather.cs.ucdavis.edu/~matl<strong>of</strong>f/UnixAndC/Unix/FileSyst.html. Accessed August 1, 2007.Nagar, Rajeev. Windows NT File System Internals. Reprint. Amherst,N.H.: OSR Press, 2006.Pate, Steven. UNIX File Systems: Evolution, Design, <strong>and</strong> Implementation.New York: Wiley, 2003.file serverThe growth in desktop computing since the 1980s hasresulted in much data being moved from mainframe computersto desktop PCs, which are now usually linked bynetworks. While a network enables users to exchange files,there remains the problem <strong>of</strong> storing large files or collections<strong>of</strong> files (such as databases) that are too large for a typicalPC hard drive or that need to be accessed <strong>and</strong> updatedby many users.The common solution is to obtain a computer withlarge, fast disk drives (see also raid). This computer, thefile server, is equipped with s<strong>of</strong>tware (<strong>of</strong>ten included withthe networking package) that serves (provides) files asrequested by users or applications on the other PCs onthe network. (See also client-server computing.) Thespecifics <strong>of</strong> configuring the server for optimum efficiency,providing adequate security, <strong>and</strong> arranging for backup orarchiving varies with the particular network operating systemin use (the most popular environments are WindowsNT, Vista, <strong>and</strong> the various versions <strong>of</strong> UNIX <strong>and</strong> Linux).The file server has many advantages over storing thefiles needed by each user on his or her own PC. By storingthe files on a central server, ordinary users’ PCs do not needto have larger, more expensive disk drives. Central storagealso makes it easier to ensure that backups are run regularly(see backup <strong>and</strong> archive systems).There are some potential problems with this approach.With central storage, a failure <strong>of</strong> the file server could bringwork throughout the network to a halt. (The use <strong>of</strong> RAIDwith its redundant “mirror” disks is designed to preventthe failure <strong>of</strong> a single drive from making data inaccessible).As the network <strong>and</strong>/or size <strong>of</strong> the data store gets larger,multiple servers are usually used. The performance <strong>of</strong> a fileserver is also greatly affected by the efficiency <strong>of</strong> the cachingmechanism used (see cache).As the amount <strong>of</strong> data that must be stored increases,organizations will consider storage area network (SAN) <strong>and</strong>network attached storage (NAS, see networked storage)technologies. SAN makes it easier for numerous users toshare a resource such as an automated tape library or diskRAID, while NAS is an efficient way to allow files to be centrallystored but readily shared.All but the simplest servers require special s<strong>of</strong>tware orextensions to the operating system. For example, Micros<strong>of</strong>tWindows Server is essentially a version <strong>of</strong> Windows withbuilt-in facilities for managing a file or application server,including the ability to organize “clusters” <strong>of</strong> servers <strong>and</strong>balance the load <strong>of</strong> requests. Linux <strong>of</strong>ten comes in serverversions as well, though this is basically simply a distributionpreconfigured with the programs needed to manageservers (such as Samba).Meanwhile, the reason for having a file server is changing.Cost <strong>of</strong> storage is much less <strong>of</strong> an issue for smaller<strong>of</strong>fices with the recent availability <strong>of</strong> high-capacity drives(500 GB or more) starting at approximately $100. However,


file transfer protocols 193a central server still may <strong>of</strong>fer better security <strong>and</strong> can serveas a central repository from which documents or sourcecode can be “checked out” <strong>and</strong> updated in an orderly way(version control).Further Reading“Designing <strong>and</strong> Deploying File Servers.” Micros<strong>of</strong>t TechNet.Available online. URL: http://technet2.micros<strong>of</strong>t.com/windowsserver/en/library/42befce4-7c15-4306-8edc-a80b8c57c67d1033.mspx. Accessed August 1, 2007.Eckstein, Robert, David Collier-Brown, <strong>and</strong> Peter Kelly. UsingSamba. 2nd ed. Sebastapol, Calif.: O’Reilly Media, 2003.Matthews, Martin S. Windows Server 2003: A Beginner’s Guide. 2nded. Berkeley, Calif.: McGraw-Hill Osborne, 2003.“Samba: Opening Windows to a Wider World.” Available online.URL: http://us3.samba.org. Accessed August 1, 2007.Tulloch, Mitch. Introducing Windows Server 2008. Redmond,Wash.: Micros<strong>of</strong>t Press, 2007.file-sharing <strong>and</strong> P2P networksFile-sharing services allow participants to provide access t<strong>of</strong>iles on their personal computers, such as music or video.In turn, the user can browse the service to find <strong>and</strong> downloadmaterial <strong>of</strong> interest. The structure is generally that <strong>of</strong> apeer-to-peer (P2P) network with no central server.The first major file-sharing service was Napster. Thiswas a P2P network but had a central server that providedthe searchable list <strong>of</strong> files <strong>and</strong> locations—but not the filesthemselves, which were downloaded from users’ PCs.Napster was forced to close in 2001 by legal action fromcopyright holders (see intellectual property <strong>and</strong> computing).A new but unrelated for-pay service opened laterunder the same name.Because <strong>of</strong> the legal vulnerability <strong>of</strong> centralized-list P2Pservices, a new model was developed, typified by Gnutella.This is a fully P2P model with both indexing <strong>and</strong> datadecentralized in nodes throughout the network. As <strong>of</strong> mid-2006, Gnutella <strong>and</strong> similar services such as Kazaa had anestimated 10 million users.BitTorrentMany services today use the popular BitTorrent file-sharingprotocol. A BitTorrent client (either the program <strong>of</strong> thatname or another compatible one) can transmit or receiveany type <strong>of</strong> data. To share a file, the client creates a “torrent”—asmall file that contains metadata describing thefile <strong>and</strong> an assignment to a “tracker.” The tracker is anothercomputer (node) that coordinates the distribution <strong>of</strong> thefile. Although this sounds complicated <strong>and</strong> a request takeslonger to set up than an ordinary HTTP connection, theadvantage is that once set up, downloading is efficientlymanaged even for files for which there is high dem<strong>and</strong>.The downloading client connects to multiple clients thatprovide pieces <strong>of</strong> the desired file. Because <strong>of</strong> its efficiency,BitTorrent allows for distribution <strong>of</strong> substantial amounts <strong>of</strong>data at low cost, particularly since the system “scales up”automatically without having to provide extra resources.BitTorrent is currently being used for a variety <strong>of</strong> legallydistributed material, including video, sound, <strong>and</strong> textualcontent (see blogs <strong>and</strong> blogging, podcasting, <strong>and</strong> rss).Legal IssuesBecause <strong>of</strong> their frequent use to share copyrighted music,video, or other material, a variety <strong>of</strong> organizations <strong>of</strong> copyrightowners have sued file-sharing services <strong>and</strong>/or theirusers. The biggest problem for the courts is to determinewhether there is “substantial non-infringing use”—that is,the service is being used to exchange legal data.Some file-sharing services have been accused <strong>of</strong> distributingmalware (viruses or spyware) or <strong>of</strong> being usedto distribute material that is illegal per se (such as childpornography).In response to litigation threats, file-sharing serviceshave tended to become more decentralized, <strong>and</strong> some havefeatures that increase anonymity <strong>of</strong> users (see anonymity<strong>and</strong> the Internet) or use encryption.Further ReadingBitTorrent. Available online. URL: http://www.bittorrent.com/.Accessed September 20, 2007.Gardner, Susannah, <strong>and</strong> Kris Krug. BitTorrent for Dummies. Hoboken,N.J.: Wiley, 2006.Gnutella. Available online. URL: http://www.gnutella.com/.Accessed September 20, 2007.Roush, Wade. “P2P: From Internet Scourge to Savior.” <strong>Technology</strong>Review. December 15, 2006. Available online. URL: http://www.technologyreview.com/Biztech/17904. Accessed September21, 2007.Schmidt, Aernout, Wilfred Dolfsma, <strong>and</strong> Wim Keuvelaar. Fightingthe War on File Sharing. Cambridge: Cambridge UniversityPress, 2007.Silverthorne, Sean. “Music Downloads: Pirates—or Customers?”[Q&A with Felix Oberholzer-Gee]. Harvard Business SchoolWorking Knowledge. Available online. URL: http://hbswk.hbs.edu/item/4206.html. Accessed September 20, 2007.Wang, Wallace. Steal This File Sharing Book: What They Won’t TellYou About File Sharing. San Francisco: No Starch Press, 2004.file transfer protocolsWith today’s networked PCs <strong>and</strong> the use <strong>of</strong> e-mail attachmentsit is easy to send a copy <strong>of</strong> a file or files from onecomputer to another, because networks already include allthe facilities for doing so. Earlier, many PCs were not networkedbut could be connected via a dial-up modem. Toestablished the connection, a terminal program running onone PC had to negotiate with its counterpart on the othermachine, agreeing on whether data would be sent in 7- or8-bit chunks, <strong>and</strong> the number <strong>of</strong> parity bits that would beincluded for error-checking (see error correction). Thesending program would inform the receiving program asto the name <strong>and</strong> basic type <strong>of</strong> the file. For binary files(files intended to be interpreted as literal binary codes, aswith executable programs, images, <strong>and</strong> so on) the contentswould be sent unchanged. For text files, there might be theissue <strong>of</strong> which character set (7- bit or 8-bit ASCII) was beingused, <strong>and</strong> whether the ends <strong>of</strong> lines were to be marked witha CR (carriage return) character, an LF (linefeed), or both(see characters <strong>and</strong> strings).


194 film industry <strong>and</strong> computingImplementationsOnce the programs agree on the basic parameters for a filetransfer, the transfer has to be managed to ensure that itcompletes correctly. Typically, files are divided into blocks<strong>of</strong> data (such as 1K, or 1024 bytes each). During the 1970s,Ward Christensen developed Xmodem, the first widely usedfile transfer program for PCs running CP/M (<strong>and</strong> later, MS-DOS <strong>and</strong> other operating systems). Xmodem was quite reliablebecause it incorporated a checksum (<strong>and</strong> later, a moreadvanced CRC) to check the integrity <strong>of</strong> each data block.If an error is detected, the receiving program requests aretransmission.The Ymodem program adds the capability <strong>of</strong> specifying<strong>and</strong> sending a batch <strong>of</strong> files. Zmodem, the latest in this line<strong>of</strong> evolution, automatically adjusts for the amount <strong>of</strong> errorscaused by line conditions by changing the size <strong>of</strong> the datablocks used <strong>and</strong> also includes the ability to resume after aninterrupted file transfer. Another widely used file transferprotocol is Kermit, which has been implemented for virtuallyevery platform <strong>and</strong> operating system. Besides file transfer,Kermit s<strong>of</strong>tware <strong>of</strong>fers terminal emulation <strong>and</strong> scriptingcapabilities. However, despite their robustness <strong>and</strong> capability,Zmodem <strong>and</strong> Kermit have been largely supplanted bythe ubiquitous Web download link.In the UNIX world, the ftp (file transfer protocol) programhas been a reliable workhorse for almost 30 years.With ftp, the user at the PC or terminal connects to an ftpserver on the machine that has the desired files. A variety <strong>of</strong>comm<strong>and</strong>s are available for specifying the directory, listingthe files in the directory, specifying binary or text mode,<strong>and</strong> so on. While the traditional implementation uses typedtext comm<strong>and</strong>s, there are now many ftp clients available forPCs that use a graphical interface with menus <strong>and</strong> buttons<strong>and</strong> allow files to be selected <strong>and</strong> dragged between the local<strong>and</strong> remote machines.Even though many files can now be downloaded throughHTML links on Web pages, ftp is still the most efficient wayto transfer batches <strong>of</strong> files, such as for uploading content toa Web server.Further Reading“FTP New User Guide.” Available online. URL: http://www.ftpplanet.com/ftpresources/basics.htm.Accessed August 4,2007.Loshin, Peter. Big Book <strong>of</strong> Internet File Transfer RFCs. San Diego,Calif.: Morgan Kaufmann, 2000.Pike, Mary Ann, <strong>and</strong> Noel Estabrook. Using FTP. Indianapolis:Que, 1995.“What Is Kermit?” Columbia University. Available online. URL:http://www.columbia.edu/kermit/kermit.html. AccessedAugust 4, 2007.film industry <strong>and</strong> computingAnyone who compares a science fiction film <strong>of</strong> the 1960s or1970s with a recent <strong>of</strong>fering will be struck by the realism withwhich today’s movie robots, monsters, or aliens move againstvistas <strong>of</strong> giant starships <strong>and</strong> planetary surfaces. The computerhas both enhanced the management <strong>of</strong> cinematic productionprocesses <strong>and</strong> made possible new <strong>and</strong> startling effects.The role <strong>of</strong> the computer in film begins well beforethe first camera rolls. Writers can use computers to writescripts, while specialized programs can be used to layout storyboards. Using 3D programs somewhat like CAD(drafting) programs, set designers can experiment withthe positioning <strong>of</strong> objects before deciding on a final design<strong>and</strong> obtaining or creating the physical props. For mattes(backgrounds against which the characters will be shot ina scene), a computer-generated scene can now be inserteddirectly into the film without the need for an expensive,h<strong>and</strong>-painted backdrop.Similarly, animation <strong>and</strong> special effects can now be renderedin computer animation form <strong>and</strong> integrated into thestoryboard so that the issues <strong>of</strong> timing <strong>and</strong> combining <strong>of</strong>effects can be dealt with in the design stage. The actualeffects can then be created (such as by using extremelyrealistic computer-controlled puppets <strong>and</strong> models togetherwith computer generated imagery, or CGI) with the assurancethat they will properly fit into the overall sequence.The ability to combine physical modeling, precise control,<strong>and</strong> added textures <strong>and</strong> effects can now create a remarkablyseamless visual result in which the confrontation between abeleaguered scientist <strong>and</strong> a vicious velociraptor seems quitebelievable.Just as the physical <strong>and</strong> virtual worlds are frequentlyblended in modern moviemaking, the traditional categories<strong>of</strong> visual media have also merged. Disney’s fully animatedfilms such as The Lion King benefit from the same computergeneratedlighting <strong>and</strong> textures as the filming <strong>of</strong> live actors.Using 3D graphics engines, computer game scenes are nowrendered with almost cinematic quality (see computergames). Even characters from old movies can be digitallycombined (composited) with new footage. (Of course, theartistic value <strong>of</strong> such efforts may be controversial.)<strong>Computer</strong> technology, now relatively inexpensive, canalso give the generally lower budget world <strong>of</strong> televisionaccess to higher-quality effects. As computers continue tobecome more powerful yet cheaper, amateur or independentfilmmakers are gaining abilities previously reserved tobig Hollywood studios.The delivery <strong>of</strong> film <strong>and</strong> video has also been greatlyaffected by digitization. Classic movies can be digitizedto rescue them from deteriorating film stock, while videoscan be delivered digitally over cable TV systems or over theInternet. The ability to easily copy digital content does raiseissues <strong>of</strong> piracy or theft <strong>of</strong> intellectual property (see intellectualproperty <strong>and</strong> computing).More recently, digital camcorders (<strong>and</strong> video modes indigital cameras <strong>and</strong> even cell phones) are making access tobasic “film” technology a part <strong>of</strong> everyday life. A few minutesbrowsing a video-sharing site (see YouTube) revealsa wide variety <strong>of</strong> documentary <strong>and</strong> creative productionsranging from the equivalent <strong>of</strong> the old “home movie” topr<strong>of</strong>essional quality.Further ReadingHarris, Tom. “How Digital Cinema Works.” Available online. URL:http://entertainment.howstuffworks.com/digital-cinema.htm.Accessed August 4, 2007.


finite-state machine 195Masson, Terrence, ed. CG 101: A <strong>Computer</strong> Graphics Industry Reference.2nd ed. Williamstown, Mass.: Digital Fauxtography,2007.McKernan, Brian. Digital Cinema: The Revolution in Cinematography,Post-Production, <strong>and</strong> Distribution. New York: McGraw-Hill, 2005.“Milestones in Film History: Greatest Visual <strong>and</strong> Special Effects.”Available online. URL: http://www.filmsite.org/visualeffects.html. Accessed August 4, 2007.Sawicki, Mark. Filming the Fantastic: A Guide to Visual Effects Cinematography.Burlington, Mass.: Focal Press, 2007.Slone, Michael. Special Effects: How to Create a Hollywood Film ona Home Studio Budget. Studio City, Calif.: Michael Wiese Productions,2007.Swartz, Charles S, ed. Underst<strong>and</strong>ing Digital Cinema: A Pr<strong>of</strong>essionalH<strong>and</strong>book. Burlington, Mass.: Focal Press, 2005.Willis, Holly. New Digital Cinema: Reinventing the Moving Image.London: Wallflower Press, 2005.financial s<strong>of</strong>twareLarge businesses use complex database systems, spreadsheets,<strong>and</strong> other applications for activities such as accounting,planning/forecasting, <strong>and</strong> market research (seebusiness applications <strong>of</strong> computers). Here we will considerthe variety <strong>of</strong> consumer <strong>and</strong> small business s<strong>of</strong>twareapplications that are available to help with the planning<strong>and</strong> management <strong>of</strong> financial activities, such as• home budgeting <strong>and</strong> money management• investment <strong>and</strong> retirement planning• college financing• tax planning <strong>and</strong> filing• home buying or selling• basic accounting, inventory, <strong>and</strong> other activities forsmall businessBasic home money management programs (such as the popularQuicken) h<strong>and</strong>le the budgeting <strong>and</strong> recording <strong>of</strong> daily<strong>and</strong> monthly expenses. The program can usually also interfacewith on-line banking services (see banking <strong>and</strong> computers)as well as exporting data to tax filing s<strong>of</strong>tware.For small or home-based businesses, programs such asQuickBooks can provide basic management <strong>of</strong> inventory,sales, taxes, expenses, <strong>and</strong> other functions. There are alsoniche programs for applications such as managing on-lineauctions or Web-based sales.For financial planning, there are a variety <strong>of</strong> programs(ranging from small free or shareware utilities available onlineto full commercial packages) that <strong>of</strong>fer special calculators,graphs, <strong>and</strong> other aids for planning for the future. Forexample, the future value <strong>of</strong> a savings account at variouspoints can be calculated given the interest rate, or the fullcost <strong>of</strong> a loan or mortgage similarly calculated. Full-featuredprograms usually include helpful explanations <strong>of</strong> thevarious types <strong>of</strong> financial instruments. Some programs conductan “interview” where the program asks the user abouthis or her objectives, priorities, or tolerance for risk, <strong>and</strong>then recommends a course <strong>of</strong> action. Such programs can behelpful even though they lack the experience <strong>and</strong> breadth<strong>of</strong> knowledge available to a human financial planner.Tax preparation s<strong>of</strong>tware is perhaps the fastest-growingconsumer financial application. Programs normally mustbe purchased each year to incorporate the latest changesin tax law. An important incentive has been created by theInternal Revenue Service encouraging electronic filing <strong>of</strong>tax returns by promising speedier refunds to “e-filers.”TrendsPublishers <strong>of</strong> respected guidebooks (such as for collegeadmissions <strong>and</strong> financial aid) are creating electronic versionsthat can be easier to use <strong>and</strong> more up to date thanthe printed counterpart. Meanwhile, many Web sites are<strong>of</strong>fering utilities such as financial calculators, implementedin Java <strong>and</strong> run on-line without any s<strong>of</strong>tware having tobe downloaded by the user. The services can be <strong>of</strong>feredto attract users for paid services or simply to acquire e-mail addresses for solicitation. Users should be cautiousabout revealing sensitive identification or financial data tounknown on-line sites.The growth in small <strong>and</strong> home-based businesses islikely to continue in an economy that continues to <strong>of</strong>fernew opportunities while reducing job security. While startinga small business is always an uncertain enterprise, easyto-useaccounting s<strong>of</strong>tware <strong>of</strong>fers the budding entrepreneura better chance <strong>of</strong> being able to stay on top <strong>of</strong> expenses duringthe crucial first months <strong>of</strong> business.The growing complexity <strong>of</strong> financial choices availableto average consumers <strong>and</strong> the need for more people totake responsibility for their retirement planning is likelyto increase the range <strong>and</strong> capability <strong>of</strong> financial planningapplications in the future.Further ReadingFinancial S<strong>of</strong>tware Reviews—Personal Finance S<strong>of</strong>tware. Availableonline. URL: http://financials<strong>of</strong>t.about.com/od/reviewsfinances<strong>of</strong>tware/S<strong>of</strong>tware_Reviews_Personal_Finance_S<strong>of</strong>tware.htm. Accessed August 4, 2007.Heady, Robert K., Christy Heady, <strong>and</strong> Hugo Ottolenghi. The CompleteIdiot’s Guide to Managing Your Money. 4th ed. Indianapolis:Alpha Books, 2005.Ivens, Kathy. Quickbooks 2007: The Official Guide. Berkeley, Calif.:Osborne/McGraw-Hill, 2007.Nelson, Stephen L. Quicken 2007 for Dummies. Hoboken, N.J.:Wiley, 2007.finite-state machineThere are many calculations or other processes that can bedescribed using a specific series <strong>of</strong> states or conditions. Forexample, the state <strong>of</strong> a combination lock depends not onlyon what numeral is being dialed or punched at the moment,but on the numbers that have been previously entered. Aneven simpler example is a counter (such as a car odometer),whose next output is equal to one increment plus its currentsetting. In other words, a state-based device has aninherent “memory” <strong>of</strong> previous steps.In computing, a program can be set up so that eachpossible input, when combined with the current state, will


196 firewallcontrolled by a state table. The interaction <strong>of</strong> such automatacan produce astonishingly complex patterns (see cellularautomata).ApplicationsMany programs <strong>and</strong> operating systems are structured as anendless loop where an input (or comm<strong>and</strong>) is processed,the results returned, the next input is processed, <strong>and</strong> soon, until an exit comm<strong>and</strong> is received. A mode or state canbe used to determine the system’s activity. For example, aprogram might be in different modes such as waiting forinput, processing input, displaying results, <strong>and</strong> so on. Theprogram logic will refer to the current state to determinewhat to do next <strong>and</strong> at some point the logic will transitionthe system to the next state in the sequence. The validity <strong>of</strong>some kinds <strong>of</strong> programs, protocols, or circuits can thereforebe proven by showing that there is an equivalent finite-statemachine—<strong>and</strong> thus that all possible combinations <strong>of</strong> inputshave been accounted for.Finite-state machines have many other interesting applications.Simple organisms can be modeled as a set <strong>of</strong> statesthat interact with the environment (see artificial life).The lower-level functions <strong>of</strong> robots can also be representedas a set <strong>of</strong> interacting finite-state machines. Even videogame characters <strong>of</strong>ten use FSMs to give them a repertoire <strong>of</strong>plausible behavior.Further ReadingFinite State Machine Editor [s<strong>of</strong>tware]. Available online. URL:http://fsme.sourceforge.net/. Accessed August 4, 2007.Meyer, Nathaniel. “Finite State Machine Tutorial.” Availableonline. URL: http://www.generation5.org/content/2003/FSM_Tutorial.asp. Accessed August 4, 2007.Wagner, Ferdin<strong>and</strong>, et al. Modeling S<strong>of</strong>tware with Finite StateMachines: A Practical Approach. Boca Raton, Fla.: CRC Press,2006.This diagram shows a finite-state representation <strong>of</strong> a ZIP code. Thearrows link each state (within a circle) to its possible successor. Inthis simple example each digit must be followed by another digituntil the fifth digit, which can either be followed by a blank (indicatinga five-digit ZIP code) or four more digits for a 9-digit ZIP.result in a specified output. That output becomes the newstate <strong>of</strong> the machine. (Alternatively, the machine can beset so that only the current state determines the output,without regard to the previous state.) This is supportedby the underlying structure <strong>of</strong> the logic switching withincomputer circuits as well as the “statefulness” <strong>of</strong> all calculations.(Given n, n+1 is defined, <strong>and</strong> so on.) Alan Turingshowed that combining the state mechanism with aninfinite memory (conceptualized as an endless roll <strong>of</strong> tape)amounted to a universal computer—that is, a mechanismthat could perform any valid calculation, given enough time(see Turing, Alan).The idea <strong>of</strong> the sequential (or state) machine is closelyrelated to automata, which are entities whose behavior isfirewallThe vulnerability <strong>of</strong> computer systems to malicious orcriminal attack has been greatly increased by the growingnumber <strong>of</strong> connections between computers (<strong>and</strong> local networks)<strong>and</strong> the worldwide Internet (see computer crime<strong>and</strong> security, Internet, <strong>and</strong> tcp/ip). The widespread use<strong>of</strong> permanent broadb<strong>and</strong> connections by consumers (suchas DSL <strong>and</strong> cable modem links) has increased the risk tohome users. Intruders can use “port scanning” programsto determine what connections a given system or networkhas open, <strong>and</strong> can use other programs to snoop <strong>and</strong> steal ordestroy sensitive data.A firewall is a program (or combination <strong>of</strong> s<strong>of</strong>tware <strong>and</strong>hardware) that sits between a computer (or local network)<strong>and</strong> the Internet. Typical firewall functions include:• Examining incoming data packets <strong>and</strong> blocking thosethat include comm<strong>and</strong>s to examine or use unauthorizedports or IP addresses• Blocking data packets that are associated with commonhacking techniques such as “trojans” or “backdoor”exploitations


flag 197• Hiding all the internal network addresses on a localnetwork, presenting only a single address to theoutside world (this is also called NAT, or NetworkAddress Translation)• monitoring particular applications such as ftp (filetransfer protocol) <strong>and</strong> telnet (remote login), restrictingthem to certain addresses. Often a special addresscalled a proxy is established rather than allowingdirect connections between the outside <strong>and</strong> the localnetwork.Firewalls are usually configured by providing a rule thatspecifies what is to be done based on the origin address orother characteristics <strong>of</strong> an incoming packet. Because connectionsmade by local programs to the outside can alsocompromise the system, rules are also created for suchapplications. The firewall package may come with a set <strong>of</strong>default rules for common applications <strong>and</strong> situations. Whensomething not covered by the rules happens, the user willbe prompted <strong>and</strong> guided to establish a new rule.Modern firewalls are “stateful,” meaning that they keeptrack not only <strong>of</strong> the source <strong>and</strong> destination <strong>of</strong> individualpackets but their context (including originating application).Micros<strong>of</strong>t Windows Vista has improved the operatingsystem’s built-in firewall, at the expense <strong>of</strong> added complexity.Zone Labs’s ZoneAlarm is another popular PC firewall.Linux provides a default firewall called iptables, which canbe configured by a variety <strong>of</strong> applications. For added protection,users <strong>of</strong> broadb<strong>and</strong> Internet connections should notconnect their PC directly to the Internet. Rather, an inexpensivewired or wireless router that includes a built-infirewall can be connected on one side to the cable or DSLmodem <strong>and</strong> on the other side to one or more computers inthe local network.Internet security packages for home users <strong>of</strong>ten combinea firewall with other services such as virus protection,parental control, <strong>and</strong> blocking <strong>of</strong> objectionable content oradvertising.Further ReadingHome PC Firewall Guide. Available online. URL: http://www.firewallguide.com/. Accessed August 4, 2007.Komar, Brian, Ronald Beekelaar, <strong>and</strong> Joern Wettern. Firewalls forDummies. 2nd ed. New York: Wiley, 2003.Noonan, Wes, <strong>and</strong> Ido Dubrawsky. Firewall Fundamentals. Indianapolis:Cisco Press, 2006.ZoneAlarm. Available online. URL: http://www.zonealarm.com.Accessed August 4, 2007.Zwicky, Elizabeth D., Simon Cooper, <strong>and</strong> D. Brent Chapman.Building Internet Firewalls. 2nd ed. Sebastapol, Calif.: O’ReillyMedia, 2000.FireWireFireWire is a high-speed serial interface used by personalcomputers <strong>and</strong> digital audio <strong>and</strong> video equipment. (Thename FireWire is an Apple br<strong>and</strong> name, but it is used generically.Technically it is the IEEE 1394 Serial Bus.)FireWire was developed in the 1990s by the IEEE P1394Working Group with substantial funding from Apple <strong>and</strong>help from engineers from major corporations includingIBM, Digital Equipment Corporation (DEC), Sony, <strong>and</strong>Texas Instruments. In 1993 it was hailed as the “most significantnew technology” by Byte magazine.FireWire was intended to replace Apple’s parallel SCSI(Small <strong>Computer</strong> System Interface). (Sony’s implementation,called I.Link, omits the two power pins in favor <strong>of</strong> aseparate power connector.) However, because Apple askedfor $1.00 per port in patent royalties, Intel instead developeda faster version <strong>of</strong> the universal serial bus (see usb)<strong>and</strong> that, rather than FireWire, is the st<strong>and</strong>ard port on mostWindows machines.Common uses for FireWire include connecting digitalvideo (such as camcorder) devices, audio devices, <strong>and</strong> somedata storage devices. FireWire is favored over USB 2.0 formany pr<strong>of</strong>essional applications because <strong>of</strong> its higher speed<strong>and</strong> power distribution capabilities. However, it is moreexpensive than USB 2.0, which provides sufficient speedfor many consumer peripherals such as digital cameras <strong>and</strong>printers.Further ReadingAnderson, Don, <strong>and</strong> MindShare, Inc. FireWire System Architecture.2nd ed. Boston: Addison-Wesley Pearson Education, 1998.FireWire (Apple Developer Connection). Available online. URL:http://developer.apple.com/hardwaredrivers/firewire/index.html. Accessed September 20, 2007.flagA flag is a variable that is used to specify a particular conditionor status (see variable). Usually a flag is either true orfalse. For example, a flag Valid_Form could be set to truebefore the input form is processed. If the validation checkfor any data field fails, the flag would be set to false. Afterthe input procedure has ended, the main program wouldcheck the Valid_Form flag. If it’s true, the data on the formis processed (for example, continuing on to the paymentprocess). If the flag is false, the input form might be redisplayedwith errors or omissions highlighted.Flags can be combined to check multiple conditions. Forexample, suppose the input form routine also looked up thecustomer’s account <strong>and</strong> checked to make sure the customerwas approved for purchasing. The test for this might read:If Valid_Form <strong>and</strong> Valid_Customer then// continue processing else// display error messagesIn such cases, the flags are combined using the appropriate<strong>and</strong> or or operators (see Boolean operators).While flags are <strong>of</strong>ten used inside a routine to keep track<strong>of</strong> processing, modern programming practice discouragesthe use <strong>of</strong> “global” flags at the top level <strong>of</strong> the program. Aswith other global variables, such flags are vulnerable tobeing unpredictably changed or to having two parts <strong>of</strong> theprogram check the same flag without being able to rely onits state. (Thus a routine relies on a global flag being truebut calls another routine that sets the flag to false withoutthe original routine checking it again.) If several routines


198 flash <strong>and</strong> smart mobs(or even programs) are being run at the same time, the situationgets even more complicated <strong>and</strong> a semaphore that canbe controlled by one process at a time is more appropriate(see concurrent programming). However, a main programthat sets a flag to indicate the program mode <strong>and</strong> doesnot allow the flag to be changed by routines within the programis relatively safe.Flags can also have more than two valid conditions,such as for specifying a number <strong>of</strong> possible states for a fileor device. This usage is found mostly in operating systems.Further Reading“C++ I/O Flags.” Available online: URL: http://www-control.eng.cam.ac.uk/~pcr20/www.cppreference.com/cppio_flags.html.Accessed August 4, 2007.“Class Flags” [Java]. Available online. URL: http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/mail/Flags.html. AccessedAugust 4, 2007.Myers, Gene. “Becoming Bit Wise.” C-Scene Issue 09. Availableonline. URL: http://www.gmonline.demon.co.uk/cscene/cs9/cs9-02.html. Accessed April 28, 2008.Vincent, Alan. “Flag Variables, Validation <strong>and</strong> Function Control.”Available online. URL: http://wsabstract.com/javatutors/valid1.shtml. Accessed February 4, 2008.flash <strong>and</strong> smart mobsA flash mob is a spontaneously organized public gatheringfacilitated by ubiquitous mobile communications (see especiallytexting <strong>and</strong> instant messaging). The earliest flashmobs were a mixture <strong>of</strong> whimsy <strong>and</strong> social experiment. Thefirst reported example, coordinated by Bill Wasik, senioreditor <strong>of</strong> Harper’s Magazine, occurred in June 2003 whena hundred people suddenly showed up on the ninth floor<strong>of</strong> Macy’s in New York City, claiming to be shopping for a“love rug.”Smart MobsSmart mobs are similar in organization to flash mobs buttend to be more purposeful <strong>and</strong> enduring forms <strong>of</strong> socialorganization. The phenomenon was first described by HowardRheingold in his book Smart Mobs: The Next SocialRevolution (see Rheingold, Howard). Rheingold describesseveral examples <strong>of</strong> smart mobs, including teenage “thumbtribes” in Tokyo <strong>and</strong> Helsinki, Finl<strong>and</strong> (named for their use<strong>of</strong> tiny thumb-operated keyboards on cell phones). Theirtypical activities included organizing impromptu raves orconverging on rock stars or other celebrities.Smart mobs took on a more political bent in 1999 withspontaneously organized, fast-moving antiglobalizationprotests in Seattle. Police had considerable difficulty containingthe protests, their communications <strong>and</strong> coordinationcapabilities not being equal to the task.Another political smart mob occurred in 2001 whenprotesters in the Philippines used text messaging to organizedemonstrations against the government <strong>of</strong> PresidentJoseph Estrada. The protests grew rapidly, <strong>and</strong> Estrada wassoon forced from <strong>of</strong>fice (see political activism <strong>and</strong> theInternet). Smart mob techniques were also used startingin 2003 to coordinate protests against the Iraq War. Aswireless communication continues to become ubiquitous,aspects <strong>of</strong> smart mob organization can be expected to turnup in future mass movements.Even as the term has faded from public use, flash mobshave continued to flourish, appealing to a desire to have funwhile striking out against an overly regimented consumersociety. The term urban playground movement has also beenused for the promotion <strong>of</strong> such gatherings.Further ReadingBerton Justin. “Flash Mob 2.0: Urban Playground MovementInvites Participation.” San Francisco Chronicle, November 10,2007. Available online. URL: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/11/10/MNMVT8UM9.DTL. AccessedApril 23, 2008.“Howard Rheingold: Smart Mobs.” Edge, July 16, 2002. Availableonline. URL: http://www.edge.org/3rd_culture/rheingold/rheingold_print.html. Accessed September 21, 2007.Packer, George. “Smart-Mobbing the War.” New York Times, March9, 2003. Available online. URL: http://query.nytimes.com/gst/fullpage.html?res=9D02E5D61F3CF93AA35750C0A9659C8B63. Accessed September 21, 2007.Rheingold, Howard. Smart Mobs: The Next Social Revolution. Cambridge,Mass.: Basic Books, 2002.———. Smart Mobs Web site. Available online. URL: http.://www.smartmobs.com/. Accessed September 21, 2007.Schwartz, John. “New Economy: In the Tech Meccas, Masses<strong>of</strong> People, or ‘Smart Mobs,’ are Keeping in Touch throughWireless Devices.” New York Times, July 22, 2002. Availableonline. URL: http://query.nytimes.com/gst/fullpage.html?sec=technology&res=98 02E5D61638F931A15754C0A9649C8B63. Accessed March 28, 2008.flash driveA flash or “thumb” drive is a small data storage device thatuses semiconductor flash memory rather than a disk drive.It is connected to a digital device using the universal serialbus (see usb). Because most computers, digital cameras,<strong>and</strong> other digital devices have USB ports, a flash drive is aconvenient way to provide up to 16 GB (as <strong>of</strong> 2007) <strong>of</strong> lowpower, rewritable memory. Flash drives first appeared inlate 2000.Flash drives can use a separate USB cable (useful whenseveral devices need to be connected to closely spaced USBports) or simply have a connector that plugs directly intothe port. Many people who regularly work with severalcomputers carry their backup data or even a complete operatingsystem (such as Linux) on a flash drive, perhaps connectedto their keyring.In Windows Vista some recent flash drives can be usedto provide an additional system memory cache through afeature called ReadyBoost.Flash drives can also be built into portable devices,including video <strong>and</strong> audio players. A competing technology(particularly found in digital cameras <strong>and</strong> PDAs) is theSecure Digital (SD) memory card developed by Matsushita,SanDisk, <strong>and</strong> Toshiba, which <strong>of</strong>fers comparable capacitybut is proprietary <strong>and</strong> requires a special interface.For high-security applications, flash drives can includebuilt-in encryption or fingerprint readers (see biometrics).However, as with other readily portable media, unsecured


floppy disk 199flash drives containing sensitive data pose a real risk tomany organizations.Under development by SanDisk <strong>and</strong> Intel are larger flashdrives (32 or 80 GB) suitable for replacing hard drives in laptops.The benefits are lower weight <strong>and</strong> power consumption.Further ReadingAxelson, Jan. USB Mass Storage: Designing <strong>and</strong> Programming Devices<strong>and</strong> Embedded Hosts. Madison, Wis.: Lakeview Research, 2006.Oreskovic, Alexei. “Intel Prepares Flash Attack.” The Street.com, September 9, 2007. Available online. URL: http://www.thestreet.com/s/intel-prepares-flash-attack/newsanalysis/techsemis/10380471.html. Accessed September 20, 2007.Tyson, Jeff. “How Flash Memory Works.” Available online. URL:http://developer.apple.com/hardwaredrivers/firewire/index.html. Accessed September 20, 2007.flat-panel displayThe traditional computer display uses a cathode ray tube(CRT) like that in a television set (see monitor). The flatpaneldisplay is an alternative used in most laptop computers<strong>and</strong> some higher-end desktop systems. The mostcommon type uses a liquid crystal display (LCD). The displayconsists <strong>of</strong> a grid <strong>of</strong> cells with one cell for each <strong>of</strong> thethree colors (red, green, <strong>and</strong> blue) for each pixel.The LCD cells are s<strong>and</strong>wiched between two polarizingfilter layers that consist <strong>of</strong> many fine parallel grooves. Thetwo filters are set so that the grooves on the second arerotated 90 degrees with respect to the first. By default, thelight is polarized by the first filter, twisted by the liquidcrystals so it is parallel to the grooves <strong>of</strong> the second filter,<strong>and</strong> thus passes through to be seen by the viewer. (For colordisplays, the light is first passed through one <strong>of</strong> three colorfilters to make it red, green, or blue as set for that pixel.)However, if current is applied to a crystal cell, the crystalsrealign so that the light passes through them withouttwisting. This means that the second polarizing filter nowblocks the light <strong>and</strong> the cell appears opaque (or dark) to theviewer.Color LCD displays can use two different mechanisms forsending the current through the crystals. In passive matrixdisplays, the current is timed so that it briefly charges thecorrect crystal cells. The charges fade quickly, making theimage look dim, <strong>and</strong> the display cannot be refreshed quicklybecause <strong>of</strong> the persistence <strong>of</strong> ghost images. This means thatsuch displays do not work well with games or other programswith rapidly changing displays.In an active matrix display, each display cell is controlledby its own thin film transistor (TFT). These displaysare sharper, brighter, <strong>and</strong> can be refreshed more frequently,allowing better displays for animations <strong>and</strong> games. However,fabrication costs for TFT displays are higher, <strong>and</strong> thedisplays are also vulnerable to having a few transistorsfail, leading to permanent dark spots on the display. Activematrix displays also use more power, reducing battery lifeon laptop PCs. A general disadvantage <strong>of</strong> flat panel displaysis that their pixel dimensions are fixed, so setting the displayto a resolution smaller than its full dimensions usuallyresults in an unsatisfactory image.When the current is <strong>of</strong>f, the liquid crystals remain twisted so thelight passes through both polarizing panels <strong>and</strong> illuminates the display.However, when current is applied, the crystals straighten out,causing the light to be blocked by the second polarizing panel.As newer technologies bring down the cost <strong>of</strong> flat-panelLCD displays they are increasingly being seen on desktopPCs, where they have the advantage <strong>of</strong> taking up muchless space than conventional monitors while drawing lesspower.Further Reading“The PC <strong>Technology</strong> Guide. Flat panel displays.” Available online.URL: http://www.pctechguide.com/43FlatPanels.htm. AccessedAugust 14, 2007.White, Ron. How <strong>Computer</strong>s Work. 8th ed. Indianapolis: Que,2005.floppy diskUntil the mid-1990s, the floppy disk or diskette was theprimary method for distributing s<strong>of</strong>tware <strong>and</strong> providingremovable data storage for personal computers. Diskettesfirst appeared in the late 1960s on IBM minicomputers, <strong>and</strong>became more widespread on a variety <strong>of</strong> minicomputers<strong>and</strong> early microcomputers during the 1970s.The now obsolete 8-inch <strong>and</strong> 5-¼ inch disks were madefrom Mylar with a metal oxide coating, the assembly beinghoused in a flexible cardboard jacket (hence the term “floppydisk”). The more compact 3.5-inch diskettes first widelyintroduced with the Apple Macintosh in 1984 became thest<strong>and</strong>ard type for all PCs by the 1990s. These diskettes areno longer truly “floppy” <strong>and</strong> come in a rigid plastic case.A typical floppy disk drive has a controller with twomagnetic heads so that both sides <strong>of</strong> the diskette can be


200 flowchartused to hold data. The surface is divided into concentrictracks that are in turn divided into sectors. (For more ondisk organization, see hard drive.) The heads are preciselypositioned to the required track/sector location using steppermotors under control <strong>of</strong> the disk driver. The data capacity<strong>of</strong> a disk depends on how densely tracks can be writtenon it. Today’s 3.5-inch diskettes typically hold 1.44 MB <strong>of</strong>data.In recent years, drive technology has advanced so thatmany more tracks can be precisely written in the sameamount <strong>of</strong> surface. The result is found in products such asthe popular Zip disks, which can hold 100 MB or even 250MB, making them comparable in capacity <strong>and</strong> speed witholder, smaller hard drives.Since the late 1990s, the traditional floppy disk has becomeless relevant for most users. With more computers connectedto networks, the use <strong>of</strong> network copying comm<strong>and</strong>s or e-mailattachments has made it less necessary to exchange files viafloppy, a practice dubbed “sneaker-net.” When data needs tobe backed up or archived, the high-capacity USB drive, tape,or writable CD is a more practical alternative to low-capacityfloppies. (See backup <strong>and</strong> archive systems.) With its iMacline, Apple actually discontinued including a floppy drive asst<strong>and</strong>ard equipment. In PC-compatible laptops, a floppy driveis <strong>of</strong>ten available as a plug-in module that can be alternatedwith other devices. Desktop systems still sometimes comewith a single 3.5-inch drive.Further ReadingWhite, Ron. How <strong>Computer</strong>s Work. 8th ed. Indianapolis: Que,2005.flowchartA flowchart is a diagram showing the “flow” or progress <strong>of</strong>operations in a computer program. Flowcharting was one<strong>of</strong> the earliest aids to program design <strong>and</strong> documentation,<strong>and</strong> a plastic template with st<strong>and</strong>ard flowcharting symbolswas a common programming accessory. Today CASE (computer-aideds<strong>of</strong>tware engineering) systems <strong>of</strong>ten includeutilities that can automatically generate flowcharts basedon the control structures <strong>and</strong> procedure calls found in theprogram code (see case).The st<strong>and</strong>ard flowchart symbols include blocks <strong>of</strong> variousshapes that represent input/output, data processing,sorting <strong>and</strong> collating, <strong>and</strong> so on. Lines with arrows indicatethe flow <strong>of</strong> data from one stage or process to the next. Adiamond-shaped symbol indicates a decision to be madeby the program. If the decision is an “if” (see branchingstatements) separate lines branch <strong>of</strong>f to the alternatives.If the decision involves repeated testing (see loop), the linereturns back to the decision point while another line indicatesthe continuation <strong>of</strong> processing after the loop exits.Devices such as printers <strong>and</strong> disk drives have their ownsymbols with lines indicating the flow <strong>of</strong> data to or fromthe device.Complex s<strong>of</strong>tware systems can employ several levels <strong>of</strong>flowcharts. For example, a particular routine within a programmight have its own flowchart. The routine as a wholeA flowchart uses a set <strong>of</strong> simple symbols to describe the stepsinvolved in a data processing operation. The parallelograms indicatean input/output operation (such as reading or writing a file).The “decision diamonds” have yes <strong>and</strong> no branches depending onthe result <strong>of</strong> a test or comparison.would then appear as a symbol in a higher-level flowchartrepresenting the program as a whole. Finally, a system chartmight show each program that is run as part <strong>of</strong> an overalldata processing system.While still useful, flowcharting is <strong>of</strong>ten supplemented byother techniques for program representation (see pseudocode).Also, modern program design tends to shift theemphasis from charting the flow <strong>of</strong> processing to elucidatingthe properties <strong>and</strong> relationships <strong>of</strong> objects (see objectorientedprogramming).Further ReadingBoillot, M. H., G. M. Gleason, <strong>and</strong> L. W. Horn. Essentials <strong>of</strong> Flowcharting.New York: WCB/McGraw-Hill, 1995.fontIn computing, a font refers to a typeface that has a distinctiveappearance <strong>and</strong> style. In most word processing, desktoppublishing, <strong>and</strong> other programs the user can select thepoint size at which the font is to be displayed <strong>and</strong> printed(in traditional typography each point size would be consideredto be a separate font). Operating systems such as Win-


Forth 201dows <strong>and</strong> Macintosh usually come with an assortment <strong>of</strong>fonts, <strong>and</strong> applications can register additional fonts to makethem available to the system.Fonts are <strong>of</strong>ten presented as a “family” that includesthe same type design with different attributes such as boldface<strong>and</strong> italic. The spacing <strong>of</strong> letters could be uniform(monospace) as in the Courier font <strong>of</strong>ten used for printingcomputer program code or proportional (as with most textfonts). For proportional fonts the design can include kerning,or the precise fitting together <strong>of</strong> adjacent letters for amore attractive appearance. Fonts are also described as serifif they have small crossbars on the ends <strong>of</strong> letters such as atthe end <strong>of</strong> the crossbar on a T in the Times Roman font.Other fonts such as Arial lack the tiny bars <strong>and</strong> are calledsans serif (without serif).There are two basic ways to store font data in thecomputer system. Bitmapped fonts store the actual pattern<strong>of</strong> tiny dots that make up the letters in the font. Thishas the advantage <strong>of</strong> allowing each letter in each pointsize to be precisely designed. The primary disadvantageis the amount <strong>of</strong> memory <strong>and</strong> system resources requiredto store a font in many point sizes. In practice, this considerationresults in only a relatively few fonts <strong>and</strong> sizesbeing available.The alternative, an outline or vector font uses a “pagedescription language” such as Adobe PostScript or TrueTypeto provide graphics comm<strong>and</strong>s that specify the drawing<strong>of</strong> each letter in a font. When the user specifies a font,the text is rendered by processing the graphics comm<strong>and</strong>sin an interpreter. Since the actual bitmap doesn’t need to bestored <strong>and</strong> all point sizes <strong>of</strong> a font can be generated fromone description, outline fonts save memory <strong>and</strong> disk space(although they require additional processor resources forrendering). While sophisticated scaling techniques are usedto maintain a pleasing appearance as the font size changes,outline fonts will not look as polished as bitmapped fontsthat are h<strong>and</strong>-designed at each point size. (For use <strong>of</strong> fontssee typography, computerized.)Strictly speaking, a particular type design is called a typeface, <strong>and</strong>a font is a rendering <strong>of</strong> a typeface with specified characteristicssuch as height in points <strong>and</strong> possibly width or pitch in charactersper inch. Thus there are usually many fonts for each typeface.Further ReadingAaron, B. TrueType Display Fonts. San Francisco: Sybex, 1993.Adobe Systems. Adobe Type Library Reference Book. 2nd ed. MountainView, Calif.: Adobe Press, 2003.Headley, Gwyn. The <strong>Encyclopedia</strong> <strong>of</strong> Fonts. London: Cassell Illustrated,2005.Lupton, Ellen. Thinking with Type: A Critical Guide for Designers,Writers, Editors & Students. New York: Princeton ArchitecturalPress, 2007.Micros<strong>of</strong>t Typography. Available online. URL: http://www.micros<strong>of</strong>t.com/typography/default.mspx. Accessed August 4, 2007.TrueType Typography. Available online. URL: http://www.truetype-typography.com/. Accessed August 4, 2007.ForthThe unusual Forth programming language was designedby Charles H. Moore in 1970. An astronomer, Moore wasinterested in developing a compact language for controllingmotors to drive radio telescopes <strong>and</strong> other equipment.Language StructureForth has a very simple structure. The Forth system consists<strong>of</strong> a collection <strong>of</strong> words. Each word is a sequence <strong>of</strong>operations (which can include other existing words). Forexample, the DUP word makes a copy <strong>of</strong> a data value. Datais held by a stack. For example, the arithmetic expressionwritten as 2 + 3 in most languages would be written inForth as + 2 3. When the + operator (which in Forth is apre-defined word) executes, it adds the next two numbersit encounters (2 <strong>and</strong> 3) together, <strong>and</strong> puts the sum on thestack (where in turn it might be fetched for further processingby the next word in the program (see stack). This representationis also called postfix notation <strong>and</strong> is familiar tomany users <strong>of</strong> scientific calculators.The words in the dictionary are “threaded” or linked sothat each word contains the starting address <strong>of</strong> the next one.The Forth interpreter runs a simple loop where it fetchesthe next token (one or more characters delimited by spaces)<strong>and</strong> scans the dictionary to see if it matches a defined word(including variables). If a word is found, the code in theword is executed. If no word is found, the interpreter interpretsthe token as a numeric constant, loads it on the stack,<strong>and</strong> proceeds to the next word.A key feature <strong>of</strong> Forth is its extensibility. Once you havedefined a word, the new word can be used in exactly the sameway as the predefined words. The various forms <strong>of</strong> definingwords allow for great control over what happens when a newword is created <strong>and</strong> when the word is later executed. (Inmany ways Forth anticipated the principles <strong>of</strong> object-orientedprogramming, with words as objects with implicit constructors<strong>and</strong> methods. A well-organized Forth program builds upfrom “primitive” operations to the higher-level words, withthe program itself being the highest-level word.)Forth has always attracted an enthusiastic following <strong>of</strong>programmers who appreciate a close communion with theflow <strong>of</strong> data in the machine <strong>and</strong> the ability to preciselytailor programs. The language is completely interactive,since any word can be typed at the keyboard to executeit <strong>and</strong> display the results. Forth was also attractive in the


202 FORTRANearly days <strong>of</strong> microcomputing because the lack <strong>of</strong> need fora sophisticated interpreter or compiler meant that Forthsystems could run comfortably on systems that had perhaps16K or 64K <strong>of</strong> available RAM.Forth never caught on with the mainstream <strong>of</strong> programmers,however. Its very uniqueness <strong>and</strong> the unusual mindsetit required probably limited the number <strong>of</strong> people willing tolearn it. While Forth programs can be clearly organized,badly written Forth programs can be virtually impossibleto read. However, Forth is sometimes found “under thehood” in surprising places (for example, the PostScript pagedescription language is similar to Forth) <strong>and</strong> the languagestill has a considerable following in designing hardwarecontrol devices (see embedded systems).Further ReadingBrodie, L. Starting FORTH. 2nd ed. Upper Saddle River, N.J.: PrenticeHall, 1987.———. Thinking FORTH. 2nd ed. Upper Saddle River, N.J.: PrenticeHall, 1994.Forth Interest Group. Available online. URL: http://www.forth.org. Accessed August 14, 2007.Rather, Elizabeth D. Forth Application Techniques. Hawthorne,Calif.: FORTH, Inc., 2006.FORTRANAs computing became established throughout the 1950s,the need for a language that could express operations in amore “human-readable” language began to be acutely felt.In a high-level language, programmers define variables <strong>and</strong>write statements <strong>and</strong> expressions to manipulate them. Theprogrammer is no longer concerned with specifying thedetailed storage <strong>and</strong> retrieval <strong>of</strong> binary data in the computer,<strong>and</strong> is freed to think about program structure <strong>and</strong> theproper implementation <strong>of</strong> algorithms.Fortran (FORmula TRANslator) was the first widelyused high-level programming language. It was developedby a project begun in 1954 by a team under the leadership<strong>of</strong> IBM researcher John Backus. The goal <strong>of</strong> the project wasto create a language that would allow mathematicians, scientists,<strong>and</strong> engineers to express calculations in somethingclose to the traditional notation. At the same time, a compilerwould have to be carefully designed so that it wouldproduce executable machine code that would be nearly asefficient as the code that would have been created throughthe more tedious process <strong>of</strong> using assembly languages. (Seecompiler <strong>and</strong> assembler.)The first version <strong>of</strong> the language, Fortran I, becameavailable as a compiler for IBM mainframes in 1957. Animproved (<strong>and</strong> further debugged version) soon followed.Fortran IV (1963) exp<strong>and</strong>ed the number <strong>of</strong> supporteddata types, added “common” data storage, <strong>and</strong> includedthe DATA statement, which made it easier to load literalnumeric values into variables. This mature version <strong>of</strong> Fortranwas widely embraced by scientists <strong>and</strong> engineers, whocreated immense libraries <strong>of</strong> code for dealing with calculationscommonly needed for their work.By the 1970s, the structured programming movementwas well under way. This school <strong>of</strong> programming emphasizeddividing programs into self-contained procedures intowhich data would be passed, processed, <strong>and</strong> returned. Theuse <strong>of</strong> unconditional branches (GOTO statements) as wascommon in Fortran was now discouraged. A new version <strong>of</strong>the language, Fortran 77 (or F77), incorporated many <strong>of</strong> thenew structural features. The next version, Fortran 90 (F90),added support for recursion, an important technique forcoding certain kinds <strong>of</strong> problems (see recursion). Mathematicslibraries were also modernized. FORTRAN 2003contains a number <strong>of</strong> new features, including support formodern programming structures (see object-orientedprogramming) <strong>and</strong> the ability to interface smoothly withprograms written in the C language. A relatively minor furtherrevision has the tentative name FORTRAN 2008.Sample ProgramThe following simple example illustrates some features <strong>of</strong> atraditional FORTRAN program:INTEGER INTARRAY(10)INTEGER ITEMS, COUNTER, SUM, AVGSUM = 0READ *, ITEMSDO 10 COUNTER = 1, ITEMSREAD *, INTARRAY(COUNTER)SUM = SUM + INTARRAY(COUNTER)10 CONTINUEAVG = SUM / ITEMSPRINT ‘SUM OF ITEMS IS: ’, SUMPRINT ‘AVERAGE IS: ’, AVGSTOPENDThe program creates an array holding up to ten integers(see array). The first number it reads is the number <strong>of</strong> itemsto be added up. It stores this in the variable ITEMS. A DOloop statement then repeats the following two statementsonce for each number from 1 to the total number <strong>of</strong> items.Each time the two statements are executed, COUNTER isincreased by 1. The statements read the next number fromthe array <strong>and</strong> add it to the running total in SUM. Finally, theaverage is calculated <strong>and</strong> the sum <strong>and</strong> average are printed.Like its contemporary, COBOL, Fortran is viewed bymany modern programmers as a rather clumsy <strong>and</strong> anachronisticlanguage (because <strong>of</strong> its use <strong>of</strong> line number references,for example). However, there is a tremendous legacy<strong>of</strong> tested, reliable Fortran code <strong>and</strong> powerful math libraries.(For example, a Fortran program can call library routinesto quickly get the sum or cross-product <strong>of</strong> any array ormatrix.) These features ensure that Fortran has continuingappeal <strong>and</strong> utility to users who are more concerned withgetting fast <strong>and</strong> accurate results than with the niceties <strong>of</strong>programming style.Further ReadingChapman, Stephen J. Fortran 95/2003 for Scientists & Engineers.3rd ed. New York: McGraw-Hill, 2007.Chivers, Ian, <strong>and</strong> Jane Sleightholme. Introduction to Programmingwith Fortran: With Coverage <strong>of</strong> Fortran 90, 95, 2003 <strong>and</strong> 77.New York: Springer, 2005.


functional languages 203Page, Clive. “Clive Page’s List <strong>of</strong> Fortran Resources.” Availableonline. URL: http://www.star.le.ac.uk/~cgp/fortran.html.Accessed August 4, 2007.Reid, John. “The Future <strong>of</strong> Fortran.” Available online. URL: http://www.ieeexplore.ieee.org/iel5/5992/27213/01208645.pdf.Accessed August 4, 2007.fractals in computingFractals <strong>and</strong> the related idea <strong>of</strong> chaos have pr<strong>of</strong>oundlychanged the way scientists think about <strong>and</strong> model theworld. Around 1960, Benoit M<strong>and</strong>elbrot noticed that supposedlyr<strong>and</strong>om economic fluctuations were not distributedevenly but tended to form “clumps.” As he investigated othersources <strong>of</strong> data, he found that many other things exhibitedthis odd behavior. He also discovered that the patterns <strong>of</strong>distribution were “self-similar”—that is, if you magnified aportion <strong>of</strong> the pattern it looked like a miniature copy <strong>of</strong> thewhole. M<strong>and</strong>elbrot coined the term fractal (meaning fractured,or broken up) to describe such patterns. Eventually,a number <strong>of</strong> simple mathematical functions were found toexhibit such behavior in generating values.Fractals <strong>of</strong>fered a way to model many phenomena innature that could not be h<strong>and</strong>led by more conventionalgeometry. For example, a coastline that might be measuredas 1,600 miles on a map might be many thous<strong>and</strong>s <strong>of</strong> mileswhen measured on local maps, as the tiny inlets at everybay <strong>and</strong> beach are measured. Fractal functions could replicatethis sort <strong>of</strong> endless generation <strong>of</strong> detail in nature.Fractals showed that seemingly r<strong>and</strong>om or chaotic datacould form a web <strong>of</strong> patterns. At the same time, M<strong>and</strong>elbrot<strong>and</strong> others had discovered that the pattern radicallydepended on the precise starting conditions: A very slightdifference at the start could generate completely differentpatterns. This “sensitive dependence on initial conditions”helped explain why many phenomena such as weather (asopposed to overall climate) resisted predictability.Computing ApplicationsMany computer users are familiar with the colorful fractalpatterns generated by some screen savers. There are hundreds<strong>of</strong> “families” <strong>of</strong> fractals (beginning with the famousM<strong>and</strong>elbrot set) that can be color-coded <strong>and</strong> displayed inendless detail. But there are a number <strong>of</strong> more significantapplications. Because <strong>of</strong> their ability to generate realistictextures at every level <strong>of</strong> detail, many computer games <strong>and</strong>simulations use fractals to generate terrain interactively.Fractals can also be used to compress large digital imagesinto a much smaller equivalent by creating a mathematicaltransformation that preserves (<strong>and</strong> can be used to recreate)the essential characteristics <strong>of</strong> the image. Militaryexperts can use fractal analysis either to distinguish artificialobjects from surrounding terrain or camouflage, or togenerate more realistic camouflage. Fractals <strong>and</strong> chaos theoryare likely to produce many surprising discoveries in thefuture, in areas ranging from signal analysis <strong>and</strong> encryptionto economic forecasting.Further ReadingFractal Resources & Links. Available online. URL: http://home.att.net/~Novak.S/resources.htm. Accessed August 4, 2007.Gleick, J. Chaos: The Making <strong>of</strong> a New <strong>Science</strong>. New York: Viking,1987.M<strong>and</strong>elbrot, Benoit. The Fractal Geometry <strong>of</strong> Nature. New York:W.H. Freeman, 1982.Peitgen, Heinz-Otto, Hartmunt Jüurgens, <strong>and</strong> Dietmar Saupe.Chaos <strong>and</strong> Fractals. 2nd ed. New York: Springer, 2004.A M<strong>and</strong>elbrot fractal generated using Adobe PhotoShop <strong>and</strong> theKPT (Kai’s Power Tools) Fraxplorer filter. (Lisa Yount)functional languagesMost commonly used computer languages such as C++<strong>and</strong> FORTRAN are imperative languages. This means thata statement is like a “sentence” in which the value <strong>of</strong> anexpression or the result <strong>of</strong> a function is used in some way,such as assigning it to another variable or printing it. Forexample:A = cube(3)passes the parameter 3 to the cube function, which returnsthe value 27, which is then assigned to the variable A.In a functional language, the values <strong>of</strong> functions are notassigned to variables (or stored in intermediate locations asfunctions are evaluated). Instead, the functions are manipulateddirectly, together with data items (atoms) arrangedin lists. The earliest (<strong>and</strong> still best-known) functional languageis LISP (see lisp). Programming is accomplished by


204 fuzzy logicdefining <strong>and</strong> arranging functions until the desired processingis accomplished. (The decision making accomplishedby branching statements in imperative languages is accomplishedby incorporating conditionals in function definitions.)Many functional languages (including LISP) for convenienceincorporate some features <strong>of</strong> imperative languages.The ML language, for example, includes data type declarations.A similar language, Haskell, however, eschews allsuch imperative features.ApplicationsFunctional languages have generally been used for specializedpurposes, although they can in principle perform anytask that an imperative language can. APL, which is basicallya functional language, has devotees who appreciate itscompact <strong>and</strong> powerful syntax for performing calculations(see apl). LISP <strong>and</strong> its variants have long been favored formany artificial intelligence applications, particularly naturallanguage processing, where its representation <strong>of</strong> data aslists <strong>and</strong> the facility <strong>of</strong> its list-processing functions seems anatural fit.Proponents <strong>of</strong> functional languages argue that they freethe programmer from having to be concerned with explicitlysetting up <strong>and</strong> using variables. In a functional language,problems can <strong>of</strong>ten be stated in a more purely mathematicalway. Further, because functional programs are not organizedas sequentially executed tasks, it may be easier toimplement parallel processing systems using functionallanguages.However, critics point out that imperative languages aremuch closer to how computers actually work (employingactual storage locations <strong>and</strong> sequential operation) <strong>and</strong> thusproduce code likely to be much faster <strong>and</strong> more efficientthan that produced by functional languages.Further ReadingBird, R. Introduction to Functional Programming Using Haskell. 2nded. London: Prentice Hall, 1998.Hudak, Paul. The Haskell School <strong>of</strong> Expression: Learning FunctionalProgramming through Multimedia. New York: Cambridge UniversityPress, 2000.Michaelson, Greg, Phil Trinder, <strong>and</strong> Hans-Wolfgang. Loidl, eds.Trends in Functional Programming. 2 vols. Portl<strong>and</strong>, Oreg.:Intellect, 2000.Thompson, S. Haskell. Mir<strong>and</strong>a: The Craft <strong>of</strong> Functional Programming.2nd ed. Reading, Mass.: Addison-Wesley, 1996.fuzzy logicAt bottom, a data bit in a computer is “all or nothing”(1 or 0). Most decisions in computer code are also all ornothing: Either a condition is satisfied, <strong>and</strong> execution takesone specified path, or the condition is not satisfied <strong>and</strong> itgoes elsewhere. In real life, <strong>of</strong> course, many situations fallbetween the cracks. For example, a business might want totreat a credit applicant who almost qualifies for “A” statusdifferent from one who barely made “B.” While a programcould be refined to include many gradations between B <strong>and</strong>A, another approach is to express the degree <strong>of</strong> “closeness”(or certainty) using fuzzy logic.In 1965, mathematician L. A. Zadeh introduced the concept<strong>of</strong> the fuzzy set. In a fuzzy set, a given item is notsimply either a member or not a member <strong>of</strong> a specified set.Rather, there is a degree <strong>of</strong> membership or “suitability”somewhere between 0 (definitely not a member) <strong>and</strong> 1 (definitelya member). A program using fuzzy logic must includea variety <strong>of</strong> rules for determining how much certainty toassign in a given case. One way to create rules is to askexperts in a given field (such as credit analysis) to articulatethe degree <strong>of</strong> certainty or confidence they would feel in agiven set <strong>of</strong> circumstances. For physical systems, data canalso be correlated (such as the relationship <strong>of</strong> temperatureto the likelihood <strong>of</strong> failure <strong>of</strong> a component) <strong>and</strong> used to createa rule to be followed by, for example, a chemical processcontrol system.Fuzzy logic is particularly applicable to the creation <strong>of</strong>programs (see expert system) that are better able to copewith uncertainty <strong>and</strong> the need to weigh competing factorsin coming to a decision. It can also be used in engineeringto allow designers to specify which factors they wantto tightly constrain (such as for safety reasons) <strong>and</strong> whichcan be allowed more leeway. The system can then come upwith optimized design specifications. Fuzzy logic has alsobeen applied to areas such as pattern recognition <strong>and</strong> imageanalysis where a number <strong>of</strong> uncertain observations must<strong>of</strong>ten be accumulated <strong>and</strong> a conclusion drawn about theoverall object.Further ReadingBojadziev, George, <strong>and</strong> Maria Bojadziev. Fuzzy Logic for Business,Finance, <strong>and</strong> Management. 2nd ed. Hackensack, N.J.: WorldScientific Publishing Co., 2007.“Fuzzy Logic Tutorial.” Encoder (Seattle Robotics Society). March1998. Available online. URL: http://www.seattlerobotics.org/encoder/mar98/fuz/flindex.html. Accessed August 4,2007.Mendel, Jerry M. Uncertain Rule-Based Fuzzy Logic Systems: Introduction<strong>and</strong> New Directions. Upper Saddle River, N.J.: PrenticeHall PTR, 2000.Nguyen, Hung T., <strong>and</strong> Elbert A. Walker. A First Course in FuzzyLogic. 3rd ed. Bocal Raton, Fla.: Chapman & Hall/CRC,2006.Sanchez, E. Fuzzy Logic <strong>and</strong> the Semantic Web. Amsterdam: Elsevier,2006.


Ggame consolesGame consoles are computer devices dedicated to (or primarilyused for) playing video games. The earliest suchdevices appeared in the 1970s from Magnavox <strong>and</strong> thenAtari, <strong>and</strong> could only play simple games like Pong (a crudesimulation <strong>of</strong> ping-pong). Slightly later systems began t<strong>of</strong>eature cartridges that allowed them to play a greater variety<strong>of</strong> games.After a shakeout in the late 1970s, Atari revived thevideo game industry with its hit game Space Invaders.However, this was followed by another industry crash asthe market became glutted by <strong>of</strong>ten imitative <strong>and</strong> inferiorgames. The next leader was Nintendo, with its own hit,Super Mario Brothers. By the end <strong>of</strong> the 1980s another Japanesefirm, Sega, had entered the American market.During the 1990s consoles grew in power <strong>and</strong> graphicsophistication. CDs (<strong>and</strong> later DVDs) replaced cartridges<strong>and</strong> allowed for larger, more complex games. By the end <strong>of</strong>the decade the main competitors were the Sony Playstation2 <strong>and</strong> the Nintendo 64 (indicating a 64-bit processor) <strong>and</strong>GameCube. Meanwhile Micros<strong>of</strong>t entered the game consolemarket with its Xbox, which featured a more PC-like architectureincluding a built-in hard drive (soon also adoptedby Sony).New TechnologiesA technology with applications far beyond games is the“cell chip” technology introduced by Sony in its Play-Station 3, introduced in late 2006. The Sony cell chiphas seven cores <strong>and</strong> can reach nearly supercomputer-scalespeeds (<strong>and</strong> in fact is being used to create impromptusupercomputers).Sony also opted to include a high-definition “Blu-ray”DVD player in the PS3, strengthening its application as amedia device as well as a gaming device, with Micros<strong>of</strong>t<strong>and</strong> its Xbox 360 initially opting for the ultimately unsuccessfulHD DVD.Nintendo’s Wii, the third major competitor as <strong>of</strong> 2007,innovates in a different area: the user interface. The Wiicomes with a controller that can track both where it ispointing <strong>and</strong> how it is being used, allowing for rather realisticsports <strong>and</strong> combat simulations.Further ReadingAmirch, Dan. PlayStation 2 for Dummies. New York: HungryMinds, 2001.Farkas, Bart G. The Nintendo Wii Pocket Guide. Berkeley, Calif.:Peachpit Press, 2007.Forster, Winnie. The <strong>Encyclopedia</strong> <strong>of</strong> Game Machines. Utting, Germany:Game Plan, 2005.Johnson, Brian. Xbox 360 for Dummies. Hoboken, N.J.: Wiley,2006.Kent, Steven L. The Ultimate History <strong>of</strong> Video Games. New York:Three Rivers Press, 2001.Kim, Ryan. “New Era <strong>of</strong> Game Devices Arrives: Sony <strong>and</strong> NintendoMeet the Challenge <strong>of</strong> Micros<strong>of</strong>t’s Xbox.” San FranciscoChronicle, November 13, 2006, p. F-1. Available online. URL:http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2006/11/13/BUGS1MAGAN1.DTL. Accessed September 21, 2007.Nintendo. Available online. URL: http://www.nintendo.com.Accessed September 21, 2007.Playstation (Sony). Available online. URL: http://www.us.playstation.com/. Accessed September 21, 2007.205


206 Gates, William, IIIGame consoles such as this Micros<strong>of</strong>t Xbox are now more powerfulthan many desktop computers. (Micros<strong>of</strong>t Corporation)Takahashi, Dean. The Xbox 360 Uncloaked: The Real Story BehindMicros<strong>of</strong>t’s Next-Generation Video Game Console. Spiderworks,2006.Xbox (Micros<strong>of</strong>t). Available online. URL: http://www.micros<strong>of</strong>t.com/xbox/. Accessed September 21, 2007.Gates, William, III (Bill)(1955– )AmericanEntrepreneur, ProgrammerBill Gates built Micros<strong>of</strong>t, the dominant company in thecomputer s<strong>of</strong>tware field <strong>and</strong> in doing so, became the world’swealthiest individual, with a net worth measured in thetens <strong>of</strong> billions. Born on October 28, 1955, to a successfulpr<strong>of</strong>essional couple in Seattle, Gates’s teenage years coincidedwith the first microprocessors becoming available toelectronics hobbyists.Gates showed both technical <strong>and</strong> business talent as earlyas age 15, when he developed a computerized traffic-controlsystem. He sold his invention for $20,000, then droppedout <strong>of</strong> high school to work as a programmer for TRW forthe very respectable salary <strong>of</strong> $30,000. By age 20, Gateshad returned to his schooling <strong>and</strong> become a freshman atHarvard, but then he saw a cover article in Popular Electronics.The story introduced the Altair, the first commerciallyavailable microcomputer kit.Gates believed that microcomputing would soon becomea significant industry. To be useful, however, the newmachines would need s<strong>of</strong>tware, <strong>and</strong> Gates <strong>and</strong> his friendPaul Allen began by creating an interpreter for the BASIClanguage that could run in only 4 KB <strong>of</strong> memory, makingit possible for people to write useful applications withouthaving to use assembly language. This first product wasquite successful, although to Gates’s annoyance it was illicitlycopied <strong>and</strong> distributed for free.In 1975, Gates <strong>and</strong> Allen formed the Micros<strong>of</strong>t Corporation.Most <strong>of</strong> the existing microcomputer companies,including Apple, Commodore, <strong>and</strong> T<strong>and</strong>y (Radio Shack)signed agreements to include Micros<strong>of</strong>t s<strong>of</strong>tware with theirmachines. However, the big breakthrough came in 1980,when IBM decided to market its own microcomputer. Whennegotiations for a version <strong>of</strong> CP/M (then the dominant operatingsystem) broke down, Gates agreed to supply IBM witha new operating system. Buying one from a small Seattlecompany, Micros<strong>of</strong>t polished it a bit <strong>and</strong> sold it as MS-DOS1.0. Sales <strong>of</strong> MS-DOS exploded as many other companiesrushed to create “clones” <strong>of</strong> IBM’s hardware, each <strong>of</strong> whichneeded a copy <strong>of</strong> the Micros<strong>of</strong>t product.In the early 1980s, Micros<strong>of</strong>t was only one <strong>of</strong> manythriving competitors in the <strong>of</strong>fice s<strong>of</strong>tware market. Wordprocessing was dominated by such names as WordStar<strong>and</strong> WordPerfect, Lotus 1-2-3 ruled the spreadsheet roost,<strong>and</strong> dBase II dominated databases (see word processing,spreadsheet, <strong>and</strong> database management system). ButGates <strong>and</strong> Micros<strong>of</strong>t used the steady revenues from MS-DOS to undertake the creation <strong>of</strong> Windows, a much largeroperating system that <strong>of</strong>fered a graphical user interface (seeuser interface). While the first versions <strong>of</strong> Windows wereclumsy <strong>and</strong> sold poorly, by 1990 Windows (with versions3.1 <strong>and</strong> later, 95 <strong>and</strong> 98) had become the new dominant OS<strong>and</strong> Micros<strong>of</strong>t’s annual revenues exceeded $1 billion (seeMicros<strong>of</strong>t Windows). Gates relentlessly leveraged boththe company’s technical knowledge <strong>of</strong> its own OS <strong>and</strong> itsnear monopoly in the OS sector to gain a dominant marketshare for the Micros<strong>of</strong>t word processing, spreadsheet, <strong>and</strong>database programs.By the end <strong>of</strong> the decade, however, Gates <strong>and</strong> Micros<strong>of</strong>tfaced formidable challenges. The growth <strong>of</strong> the Internet <strong>and</strong>the use <strong>of</strong> the Java language with Web browsers <strong>of</strong>fered anew way to develop <strong>and</strong> deliver s<strong>of</strong>tware, potentially gettingaround Micros<strong>of</strong>t’s operating system dominance (see Java).That dominance, itself, was being challenged by Linux, aversion <strong>of</strong> LINUX created by Finnish programmer LinusTorvalds (see linux). Gates responded that Micros<strong>of</strong>t, too,would embrace the networked world <strong>and</strong> make all its s<strong>of</strong>twarefully integrated with the Internet <strong>and</strong> distributable innew ways.However, antitrust lawyers for the U.S. Department <strong>of</strong>Justice <strong>and</strong> a number <strong>of</strong> states began legal action in the late1990s, accusing Micros<strong>of</strong>t <strong>of</strong> abusing its monopoly status


genetic algorithms 207by virtually forcing vendors to include its s<strong>of</strong>tware withtheir systems. In 2000, a federal judge agreed with the government.In November 2002, an appeals court accepted aproposed settlement that would not break up Micros<strong>of</strong>t butwould instead restrain a number <strong>of</strong> its unfair business practices.Gates’s personality <strong>of</strong>ten seemed to be in the center <strong>of</strong>the ongoing controversy about Micros<strong>of</strong>t’s behavior. Positively,he has been characterized as having incredibleenergy, drive, <strong>and</strong> focus in revolutionizing the development<strong>and</strong> marketing <strong>of</strong> s<strong>of</strong>tware.On the other h<strong>and</strong>, Gates has been unapologetic abouthis dominance <strong>of</strong> the market. During the 1990s he <strong>of</strong>tenappeared defensive <strong>and</strong> abrasive in giving legal depositionsor making public statements. As an executive, he has at timesshown little tolerance for what he considers to be incompetenceor shortsightedness on the part <strong>of</strong> subordinates.There is another face to Bill Gates: He is one <strong>of</strong> theleading philanthropists <strong>of</strong> our time. In 2000 he <strong>and</strong> hiswife founded the Bill <strong>and</strong> Melinda Gates Foundation. Thefoundation’s endowment was about $33 billion by 2006,<strong>and</strong> Warren Buffet pledged to nearly double that throughstock donations. The foundation gives over $800 million ayear to global health programs (including vaccination programs),supports a variety <strong>of</strong> global development efforts,<strong>and</strong> donates money <strong>and</strong> s<strong>of</strong>tware to libraries <strong>and</strong> educationalinstitutions. In June 2006 Gates announced that hewould be withdrawing from involvement in the day-to-dayaffairs <strong>of</strong> Micros<strong>of</strong>t, in order to devote more time to philanthropy.Since 2004, Gates has been featured on Time magazine’sannual list <strong>of</strong> 100 most influential people. In 2005, themagazine made Gates, along with his wife <strong>and</strong> U2’s leadsinger Bono, “Persons <strong>of</strong> the Year.” Gates has also receivedfour honorary doctorates.Further ReadingBank, David. Breaking Windows: How Bill Gates Fumbled the Future<strong>of</strong> Micros<strong>of</strong>t. New York: Free Press, 2001.Bill & Melinda Gates Foundation. Available online. URL: http://www.gatesfoundation.org/default.htm. Accessed August 5,2007.Lesinski, Jeanne M. Bill Gates (Biography A&E). Rev. ed. Minneapolis:Lerner Publications, 2007.Lowe, Jane C. Bill Gates Speaks: Insights from the World’s GreatestEntrepreneur. New York: Wiley, 1998.Mark<strong>of</strong>f, John. “Exit, Pursued by 1,000 Bears (Micros<strong>of</strong>t Corp.’sBill Gates)” New York Times, July 30, 2007, p, C1.Wallace, James, <strong>and</strong> Jim Erickson. Hard Drive: Bill Gates <strong>and</strong> theMaking <strong>of</strong> the Micros<strong>of</strong>t Empire. New York: HarperBusiness,1993.Bill Gates is the multibillionaire c<strong>of</strong>ounder <strong>of</strong> Micros<strong>of</strong>t Corporation,the leader in operating systems <strong>and</strong> s<strong>of</strong>tware for personalcomputers. The company has faced antitrust actions since thelate 1990s. (Micros<strong>of</strong>t Corporation)genetic algorithmsThe normal method for getting a computer to perform atask is to specify the task clearly, choose the appropriateapproach (see algorithm), <strong>and</strong> then implement <strong>and</strong> testthe code. However, this approach requires that the programmerfirst know the appropriate approach, <strong>and</strong> evenwhen there are many potentially suitable algorithms, it isn’talways clear which will prove optimal.Starting in the 1960s, however, researchers began toexplore the idea that an evolutionary approach might beadaptable to programming. Biologists today know thatnature did not begin with a set <strong>of</strong> highly optimized algorithms.Rather, it addressed the problems <strong>of</strong> survivalthrough a proliferation <strong>of</strong> alternatives (through mutation<strong>and</strong> recombination) that are then subjected to natural selection,with the fittest (most successful) organisms survivingto reproduce. Researchers began to develop computer programsthat emulated this process.A genetic program consists <strong>of</strong> a number <strong>of</strong> copies <strong>of</strong> aroutine that contain encoded “genes” that represent elements<strong>of</strong> algorithms. The routines are given a task (suchas sorting data or recognizing patterns) <strong>and</strong> the most successfulroutines are allowed to “reproduce” by exchanginggenetic material. (Often, further “mutation” or variation isintroduced at this stage, to increase the range <strong>of</strong> availablesolutions.) The new “generation” is then allowed to tacklethe problem, <strong>and</strong> the process is repeated. As a result, theroutines become increasingly efficient at solving the givenproblem, just as organisms in nature become more perfectlyadapted to a given environment.


208 Geographical Information SystemsApplicationsVariations <strong>of</strong> genetic algorithms or “evolutionary programming”have been used for many applications. In engineeringdevelopment, a virtual environment can be set up in whicha simulated device such as a robot arm can be allowed toevolve until it is able to perform to acceptable specifications.(NASA has also used genetic programs competing on80 computers to design a space antenna.) Different versions<strong>of</strong> an expert system program can be allowed to compete atperforming tasks such as predicting the behavior <strong>of</strong> financialmarkets. Finally, a genetic program is a natural way tosimulate actual biological evolution <strong>and</strong> behavior in fieldssuch as epidemiology (see also artificial life).Further Reading“Bibliography on Genetic Programming.” Available online. URL: http://liinwww.ira.uka.de/bibliography/Ai/genetic.programming.html. Accessed August 5, 2007.Brown, Chappell. “Darwin’s Ideas Evolve Design.” EE Times, February6, 2006. Available online. URL: http://www.eetimes.com/showArticle.jhtml?articleID=178601156. Accessed August 5,2007.Eiben, A. E., <strong>and</strong> J. E. Smith. Introduction to Evolutionary Computing.New York: Springer, 2003.Genetic-programming.org [Resources]. Available online. URL: http://www.genetic-programming.org/. Accessed August 5, 2007.“The GP Tutorial.” Available online. URL: http://www.geneticprogramming.com/Tutorial/. Accessed August 5, 2007.Keats, Jonathon. “John Koza Has Built an Invention Machine.”Popular <strong>Science</strong>, April 2006. Available online. URL: http://www.popsci.com/popsci/science/0e13af26862ba010vgnvcm1000004eecbccdrcrd.html. Accessed August 5, 2007.Langdon, William B., <strong>and</strong> Riccardo Poli. Foundations <strong>of</strong> GeneticProgramming. New York: Springer, 2002.Riolo, Rick, <strong>and</strong> Bill Worzel, eds. Genetic Programming Theory<strong>and</strong> Practice. Norwell, Mass.: Kluwer Academic Publishers,2003.Geographical Information SystemsCartography, or the art <strong>of</strong> mapmaking, has been transformedin many ways by the use <strong>of</strong> computers. Traditionally,mapmaking was a tedious process <strong>of</strong> recording, compiling,<strong>and</strong> projecting or plotting information about the location,contours, elevation, or other characteristics <strong>of</strong> natural geographicfeatures or the demographic or political structure<strong>of</strong> human communities.Instead <strong>of</strong> being transcribed from the readings <strong>of</strong> surveyinginstruments, geographic information can be acquired<strong>and</strong> digitized by sensors such as cameras aboard orbitingsatellites. The availability <strong>of</strong> such extensive, detailedinformation would overwhelm any manual system <strong>of</strong> transcribingor plotting. Instead, the Geographical InformationSystem (GIS, first developed in Canada in the 1960s)integrates sensor input with scanning <strong>and</strong> plotting devices,together with a database management system to compilethe geographic information.The format in which the information is stored is dependenton the scope <strong>and</strong> purpose <strong>of</strong> the information system. Adetailed topographical view, for example, would have physicalcoordinates <strong>of</strong> latitude, longitude, <strong>and</strong> elevation. On theother h<strong>and</strong>, a demographic map <strong>of</strong> an urban area mightA raster grid showing annual rainfall totals in inches for mythicalSquare County. Raster data is easy to work with, but the “coarseness”<strong>of</strong> the grid means that it does not capture much local variationor detail.have regions delineated by ZIP code or voting precinct, orby individual address.Geographic data can be stored as either a raster or avector representation. A raster system divides the area intoa grid <strong>and</strong> assigns values to each cell in the grid. For example,each cell might be coded according to its highest point<strong>of</strong> elevation, the amount <strong>of</strong> vegetation (ground cover) it has,its population density, or any other factor <strong>of</strong> interest. Thesimple grid system makes raster data easy to manipulate,but the data tends to be “coarse” since there is no informationabout variations within a cell.Unlike the arbitrary cells <strong>of</strong> the raster grid, a vector representationis based upon the physical coordinates <strong>of</strong> actualpoints or boundaries around regions. Vector representationis used when the actual shapes <strong>of</strong> an entity are important,as with property lines. Vector data is harder to manipulatethan raster data because geometric calculations must bemade in order to yield information such as the distancebetween two points.The power <strong>of</strong> geographic information systems comes fromthe ability to integrate data from a variety <strong>of</strong> sources, whetheraerial photography, census records, or even scanned papermaps. Once in digital form, the data can be represented in avariety <strong>of</strong> ways for various purposes. A sophisticated gis canbe queried to determine, for example, how much <strong>of</strong> a proposeddevelopment would have a downhill gradient <strong>and</strong> bebelow sea level such that flooding might be a problem. Theseresults can in turn be used by simulation programs to determine,for example, whether release <strong>of</strong> a chemical into thegroundwater from a proposed plant site might affect a particulartown two miles away. Geographic information systemsare thus vital for the management <strong>of</strong> a variety <strong>of</strong> complexsystems that are distributed over a geographical area, suchas water <strong>and</strong> sewage systems, power transmission grids, <strong>and</strong>traffic control systems. Other applications include emergencyplanning (<strong>and</strong> evacuation routes) <strong>and</strong> the long-term study <strong>of</strong>the effects <strong>of</strong> global warming trends.


globalization <strong>and</strong> the computer industry 209from information to navigationThe earliest use <strong>of</strong> maps was for facilitating navigation.The development <strong>of</strong> the Global Positioning System (GPS)made it possible for a device to triangulate readings fromthree <strong>of</strong> 24 satellites to pinpoint the user’s position onEarth’s surface within a few meters (or even closer in militaryapplications). The mobile navigation systems thathave now become a consumer product essentially use thecurrent physical coordinates to look up information in theonboard geographical information system. Depending onthe information stored <strong>and</strong> the user’s needs, the resultingdisplay can range from a simple depiction <strong>of</strong> the user’slocation on a highway or city street map to the generating<strong>of</strong> detailed driving directions from the present locationto a desired location. As these systems are fitted withincreasingly versatile natural language systems (<strong>and</strong> perhapsvoice-recognition capabilities), the user will be ableto ask questions such as “Where’s the nearest gas station?”or even “Where’s the nearest French restaurant rated atleast three stars?”Further ReadingBurrough, P.A., <strong>and</strong> R. McDonnell. Principles <strong>of</strong> Geographical InformationSystems. 2nd ed. New York: Oxford University Press,1998.Demers, M. N. Fundamentals <strong>of</strong> Geographic Information Systems.New York: Wiley, 1997.Longley, P. A., (<strong>and</strong> others) eds. Geographical Information Systems:Principles, Techniques, Management <strong>and</strong> Applications. NewYork: Wiley, 1998.Ramadan, K. “The Use <strong>of</strong> GPS for GIS Applications.” http://www.geogr.muni.cz/lgc/gis98/proceed/RAMADAN.htmlU.S. Geological Survey. “Geographic Information Systems.” http://www.usgs.gov/research/gis/title.html.globalization <strong>and</strong> the computer industryGlobalization can be described as a group <strong>of</strong> trends thatare breaking down the boundaries between national <strong>and</strong>regional economies, making countries more dependent onone another, <strong>and</strong> resulting in the freer flow <strong>of</strong> labor <strong>and</strong>resources. These trends have been praised by free tradeadvocates <strong>and</strong> decried by proponents <strong>of</strong> labor rights <strong>and</strong>environmentalism. However one feels about them, it isclear that global trends are reshaping the computer <strong>and</strong>information industry in many ways, <strong>and</strong> pose significantchallenges.Global trends that affect computer technology, s<strong>of</strong>tware,<strong>and</strong> services include:• <strong>of</strong>fshoring, or the continuing movement <strong>of</strong> manufacturing<strong>of</strong> high-value components (<strong>and</strong> whole systems)from the industrialized West to regions such as Asia• outsourcing—moving functions (such as technicalsupport) from a company’s home country to areaswhere suitable labor forces are cheaper (see employmentin the computer field)• removal <strong>of</strong> traditional intermediaries such as brokers<strong>and</strong> agents, with some <strong>of</strong> their functions being takenover by s<strong>of</strong>tware (see s<strong>of</strong>tware agent)• decentralized networks (<strong>of</strong> which the Internet itselfis the most prominent example) <strong>and</strong> the tendency <strong>of</strong>information to flow freely <strong>and</strong> quickly despite barrierssuch as censorship• virtualization—creation <strong>of</strong> work groups or wholecompanies that are distributed across both space<strong>and</strong> time (24 hours), coordinated by the Internet <strong>and</strong>mobile communications (see virtualization)• increasing use <strong>of</strong> open-source <strong>and</strong> collaborative models<strong>of</strong> s<strong>of</strong>tware <strong>and</strong> information development (seeopen source)• blurring <strong>of</strong> the distinction between consumers <strong>and</strong>producers <strong>of</strong> information (see social networking<strong>and</strong> user-created content)These global trends can be divided roughly into three categories:movement <strong>of</strong> labor <strong>and</strong> resources, restructuring <strong>of</strong>markets, <strong>and</strong> changes in the nature <strong>and</strong> flow <strong>of</strong> production.Movements <strong>and</strong> ShiftsOffshoring is the movement <strong>of</strong> manufacturing operationsfrom the traditional developed industrial nations (suchas the United States <strong>and</strong> Europe) to developing nations(see also developing nations <strong>and</strong> computing). Theprincipal motivation for this (as well as outsourcing, themovement <strong>of</strong> corporate functions <strong>and</strong> services) is lowerlabor <strong>and</strong> related costs. India, with its large population<strong>of</strong> well-trained, English-speaking workers, was the firstbeneficiary <strong>of</strong> these trends in the 1990s. Many major U.S.computer companies such as IBM, Intel, Micros<strong>of</strong>t, <strong>and</strong>HP have made major investments in s<strong>of</strong>tware developmentoperations in India. However, it should be notedthat <strong>of</strong>fshoring/outsourcing is a truly global trend, withother industrialized nations taking advantage <strong>of</strong> similarsituations, particularly where there are language compatibilities.Thus Japanese companies have invested heavilyin China, while Germans <strong>and</strong> other Europeans have preferredto look toward Eastern Europe.Besides lower costs, outsourcing can speed developmentby taking advantage <strong>of</strong> differences in time zones, allowingfor coordinated 24-hour production cycles.Free-Trade ControversiesProponents <strong>of</strong> these trends generally include them underthe umbrella <strong>of</strong> “free trade.” Their arguments include:• greater productivity through more efficient tapping <strong>of</strong>talent <strong>and</strong> resources• improvement in the st<strong>and</strong>ard <strong>of</strong> living in developingnations• lower prices for goods <strong>and</strong> services in developednations• spurring innovation through competition <strong>and</strong> themovement <strong>of</strong> displaced workers to higher-value jobsOpponents point to a number <strong>of</strong> serious problems <strong>and</strong>issues, including:


210 Google• downward wage pressure <strong>and</strong>/or unemployment asworkers in developed nations are displaced by <strong>of</strong>fshoreworkers• difficulty in retraining displaced workers• lack <strong>of</strong> adequate protective regulations <strong>and</strong> laborrights for workers in developing nations• potential deterioration in the quality <strong>of</strong> services (suchas technical support) after outsourcing• risks <strong>of</strong> dependence on <strong>of</strong>fshore supply sources intimes <strong>of</strong> crisisRestructuring <strong>of</strong> Markets<strong>Computer</strong>-related businesses must also deal with the effects<strong>of</strong> globalization on the market for hardware, s<strong>of</strong>tware, <strong>and</strong>services. Lower-cost <strong>of</strong>fshore manufacturing has helpedcontribute to making many computer systems <strong>and</strong> peripheralsinto commodity items. This certainly benefits consumers(consider the ubiquitous $100 or less computer printer).However, it becomes more difficult to extract a premiumfor a br<strong>and</strong> as opposed to a generic name. Some companieshave responded by relentless efforts to maximize efficiencyin manufacturing (for example, see Dell, Inc.), while a fewothers have maintained a reputation for style or innovation(see Apple, Inc.). Consumers have increasingly objected,however, to the difficulty in dealing with <strong>of</strong>fshore technicalsupport.While the power <strong>of</strong> the Internet has opened many newways <strong>of</strong> reaching potential customers around the world,dealing with a global marketplace brings considerableadded complications, such as the need to deal with differentregulatory systems (such as the European Union). In someareas (notably Asia) there is also the problem <strong>of</strong> unauthorizedcopying <strong>of</strong> s<strong>of</strong>tware <strong>and</strong> media products (see s<strong>of</strong>twarepiracy <strong>and</strong> counterfeiting).New Ways <strong>of</strong> WorkingA global, connected economy is not only changing wherework is done, but also how it is done. If a s<strong>of</strong>tware developer,for example, has operations in the United States,Europe, India, <strong>and</strong> China, at any time <strong>of</strong> day there willbe work going on somewhere. With the complexity <strong>and</strong>speed <strong>of</strong> operations, managers in the United States mayhave to keep quite long <strong>and</strong> irregular hours in order tohave real-time communication with counterparts abroad.This interaction is made possible by a variety <strong>of</strong> technologies,including Internet-based phone <strong>and</strong> video conferencing<strong>and</strong>, <strong>of</strong> course, e-mail. However, this is not withoutadded stress. Overall operations can be structured to takeadvantage <strong>of</strong> the time zone differences. Code or documentswritten in Bangalore might be reviewed <strong>and</strong> revised in SiliconValley the same day.Global trends are likely to continue <strong>and</strong> even accelerateas the computer <strong>and</strong> information industry continues todevelop around the world. While technology can help dealwith some <strong>of</strong> the challenges, there are many larger economic<strong>and</strong> political issues involved, <strong>and</strong> whether they canbe satisfactorily resolved may ultimately have the greatestimpact on the industry.Further ReadingBlinder, Alan E. “Offshoring: The Next Industrial Revolution?”Foreign Affairs 85 (March/April 2006): 113–128.Carmel, Erran, <strong>and</strong> Paul Tjia. Offshoring Information <strong>Technology</strong>:Sourcing <strong>and</strong> Outsourcing to a Global Workforce. New York:Cambridge University Press, 2005.Currie, Wendy. The Global Information Society. New York: Wiley,2000.Friedman, Thomas L. The World Is Flat: A Brief History <strong>of</strong> theTwenty-First Century. 2nd rev. ed. New York: Picador, 2007.Quinn, Michelle. “Working Around the Clock.” Los Angeles Times,June 19, 2007. Available online. URL: http://www.latimes.com/news/la-fi-timezone19jun19,1,7843626.story?ctrack=1&cset=true. Accessed September 21, 2007.Samii, Massood, <strong>and</strong> Gerald D. Karush, eds. International Business& Information <strong>Technology</strong>. New York: Routledge, 2004.Sood, Robin. IT, S<strong>of</strong>tware, <strong>and</strong> Services: Outsourcing <strong>and</strong> Offshoring:The Strategic Plan with a Practical Viewpoint. Austin, Tex.:AiAiYo Books, 2005.Steger, Manfred B. Globalization: A Very Short Introduction. NewYork: Oxford University Press, 2003.GoogleGoogle Inc. (NASDAQ symbol: GOOG) has built a businesscolossus by focusing on helping users find what theyare looking for on the Internet while selling advertisingtargeted at those same users. By 2006, “to google” could befound in dictionaries as a verb meaning to look up anyoneor anything online.Google was founded by two Stanford students (see Brin,Sergey <strong>and</strong> Page, Larry) who, for their doctoral thesis,had described a Web search algorithm that could give a betteridea <strong>of</strong> the likely relevance <strong>of</strong> a given site based on thenumber <strong>of</strong> sites that linked to it. The two students implementeda search engine based on their ideas <strong>and</strong> hosted iton the Stanford Web site, where its popularity soon irritatedthe university’s system administrators. In 1998 theirbusiness was incorporated as Google, Inc., <strong>and</strong> moved tothe archetypal Silicon Valley entrepreneur’s location—afriend’s garage. However, as the company attracted investmentcapital <strong>and</strong> grew rapidly, it moved to Palo Alto <strong>and</strong>then its present home in Mountain View.Google’s initial public stock <strong>of</strong>fering was in 2004, <strong>and</strong>the market’s enthusiastic response made many senioremployees instant millionaires. Google’s steady growth insubsequent years has kept its stock in dem<strong>and</strong>, reaching arecord peak <strong>of</strong> $560 in September 2007. (In 2006 Googlewas added to the S&P 500 Index.)Search <strong>and</strong> Its Larger ContextPeople tend to think <strong>of</strong> Google as a search engine. Actually,it is better to think <strong>of</strong> it as an ever-exp<strong>and</strong>ing network<strong>of</strong> Web-based services that include general <strong>and</strong>specialized searches but also tools for content creation<strong>and</strong> collaboration.It is true that search <strong>and</strong> the accompanying advertisingare the core <strong>of</strong> Google’s revenue <strong>and</strong> thus the engine that


Google 211drives its proliferation. In 2000 Google adopted keywordbasedadvertising. (This was not a new idea, but Googlewas the first to really make it work.) Basically, advertisersbid for the right to have their ad accompany the results <strong>of</strong> asearch that contains a given word, on a per “click through”basis—that is, how <strong>of</strong>ten the user clicks on the ad to go tothe advertiser’s site. Advertisers are prioritized accordingto how much they bid, their previous click-through rate,<strong>and</strong> their ad’s relevance to the search. If someone searches,for example, “widget” <strong>and</strong> Acme Widget Co. is in line forplacement, the Acme ad is shown. If the user then clicks onit, Acme makes a payment to Google (<strong>and</strong> hopes to somebusiness).The power <strong>of</strong> keyword-based <strong>and</strong> other “contextual”advertising is that, by definition, any accompanying ad istargeted to someone who is quite probably already lookingfor what one is selling. And what makes this such arevenue-maker for Google is that, since the company servesover half <strong>of</strong> all Web searches, anyone wanting an ad toreach the biggest share <strong>of</strong> its potential audience will have toturn to Google.Google’s ability to <strong>of</strong>fer more precisely targeted advertisinghas been enhanced in several ways:• AdSense, which can be installed on a Web site whereit displays ads keyed to the site’s content. Revenue isshared by Google <strong>and</strong> the site owner.• Advertisers can specify an AdWord <strong>and</strong> Google willplace it on participating sites in its “content network”that it believes are relevant. The advertiser pays perthous<strong>and</strong> viewings <strong>of</strong> the ads (“impressions”).• Specialized shopping-oriented searches such asGoogle Product Search, which returns lists <strong>of</strong> sellers<strong>and</strong> a price comparison.• Searches can also be local (particularly useful formobile devices) <strong>and</strong> results can be keyed to maps.Other ApplicationsGoogle has greatly exp<strong>and</strong>ed beyond its core business <strong>of</strong>search <strong>and</strong> accompanying advertising. In general, the companyhas been emphasizing acquiring or developing toolsthat help users create content <strong>and</strong> collaborate. These <strong>of</strong>feringinclude:• Blogger, an easy-to-use blogging tool (see blogs <strong>and</strong>blogging)• JotSpot, developer <strong>of</strong> wiki collaboration tools (seewikis <strong>and</strong> Wikipedia)• YouTube, the largest video-sharing service, acquiredby Google in 2006 (see YouTube)• Gmail, a free e-mail service• Google Apps, which provides a Web-based <strong>of</strong>fice environmentincluding a calendar <strong>and</strong> Google Docs &Spreadsheets. (The st<strong>and</strong>ard edition is free <strong>and</strong> representsa competitive challenge for Micros<strong>of</strong>t Office, particularlyfor small businesses <strong>and</strong> simpler applications.)In addition to <strong>of</strong>fice <strong>and</strong> collaboration tools, Google hasseveral other prominent applications that do not easily fit inone category:• google News provides a constantly updated newspaperlikeformat that groups stories under headlines.• google Book Search <strong>of</strong>fers access to thous<strong>and</strong>s <strong>of</strong>public-domain books <strong>and</strong> summaries or limited previews<strong>of</strong> copyrighted works (see e-books <strong>and</strong> digitallibraries)• Google Maps <strong>and</strong> Google Earth are vast troves <strong>of</strong> mapinformation, satellite imagery, <strong>and</strong> even street-levelviews <strong>of</strong> some cities.A key to the growth <strong>of</strong> Google’s new Web services is thatmany <strong>of</strong> them come with programming interfaces that canbe used to integrate them into Web sites <strong>and</strong> applications.It is relatively easy, for example, to combine maps <strong>and</strong> dataabout stores or other locations (see mashups).CriticismAs <strong>of</strong> mid-2008 Google had more than 19,500 full-timeemployees. The company’s workplace culture at its MountainView “Googleplex” is famous for its gourmet food,elaborate recreation center, <strong>and</strong> other perks. (In 2007 Fortunemagazine rated Google first in the nation as a place towork.)Google has a market capitalization <strong>of</strong> about $180 billion,ahead <strong>of</strong> such giants as Hewlett-Packard <strong>and</strong> IBM. In 2008Google took in $16.6 billion, with $4.2 billion in pr<strong>of</strong>it.Google’s impact on the online world has been immense.As <strong>of</strong> mid-2007 Google was processing 54 percent <strong>of</strong> allInternet search requests, followed distantly by Yahoo! at 20percent <strong>and</strong> Micros<strong>of</strong>t at 13 percent.Google sets a high st<strong>and</strong>ard for itself. Its mission statementis “to organize the world’s information <strong>and</strong> make ituniversally accessible <strong>and</strong> useful.” A corporate motto is“don’t be evil” in the pursuit <strong>of</strong> success. A number <strong>of</strong> criticshave suggested, however, that Google has fallen short <strong>of</strong> itsst<strong>and</strong>ards in a number <strong>of</strong> respects:• google Book Search had led to accusations <strong>of</strong> copyrightviolations by publishers <strong>and</strong> authors. Google hasalso been accused <strong>of</strong> benefiting from rampant copying<strong>of</strong> copyrighted content on its YouTube subsidiary.• Google has been criticized for aiding China in censoringsearch results (see censorship <strong>and</strong> the Internet).• The detailed imagery available from Google Earth hasbeen criticized by some nations on security grounds,<strong>and</strong> street-level views have raised privacy questions.• Some Google practices, including the extensive use <strong>of</strong>cookies <strong>and</strong> analysis <strong>of</strong> users’ e-mail <strong>and</strong> other content,have also aroused privacy concerns (see cookies<strong>and</strong> data mining).• Google has also been criticized for keeping its Page-Rank system secret, making it hard to determine if itis treating users fairly.


212 government funding <strong>of</strong> computer researchIn 2007 Google acquired DoubleClick for $3.1 billion.Although the combination <strong>of</strong> the leading search company<strong>and</strong> a major online advertising service provoked concernsabout a possible monopoly, the acquisition was approved byU.S. <strong>and</strong> European regulators.While Google continues to be a subject <strong>of</strong> both admiration<strong>and</strong> debate, it is clear that it has placed powerful tools<strong>and</strong> enormous new resources in the h<strong>and</strong>s <strong>of</strong> Web usersaround the world.Further ReadingBattelle, John. The Search: How Google <strong>and</strong> Its Rivals Rewrote theRules <strong>of</strong> Business <strong>and</strong> Transformed Our Culture. New York:Portfolio, 2005.Davis, Harold. Google Advertising Tools: Cashing In with AdSense,AdWords, <strong>and</strong> the Google APIs. Sebastapol, Calif.: O’Reilly,2006.Kopyt<strong>of</strong>f, Verne. “Who’s Afraid <strong>of</strong> Google? Firms in Silicon Valley<strong>and</strong> beyond Fear Search Giant’s Plans for Growth.” SanFrancisco Chronicle. May 11, 2007, p. A-1. Available online.URL: http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/05/11/MNGRIPPB2N1.DTL. Accessed September 22, 2007.Marshall, Perry, <strong>and</strong> Bryan Todd. Ultimate Guide to GoogleAdWords: How to Access 100 Million People in 10 Minutes.Irvine, Calif.: Entrepreneur Media, 2007.Vise, David A., <strong>and</strong> Mark Malseed. The Google Story: Inside theHottest Business, Media <strong>and</strong> <strong>Technology</strong> Success <strong>of</strong> Our Time.Canada: R<strong>and</strong>om House/Delta, 2006.government funding <strong>of</strong> computer researchWhile the popular version <strong>of</strong> the story <strong>of</strong> the informationage tends to focus on lone inventors in garages or would-beentrepreneurs working out <strong>of</strong> college dorm rooms, many <strong>of</strong>the fundamental technologies underlying computers <strong>and</strong> networkshave been the results <strong>of</strong> government-funded projects.ENIAC, the first operational full-scale electronic digitalcomputer, was an Army Ballistic Research Laboratoryproject developed during <strong>and</strong> just after World WarII. Early computers were also sponsored <strong>and</strong> used by thearmy <strong>and</strong> navy in areas such as guided missile development,<strong>and</strong> in national laboratories such as Los Alamos,where nuclear weapons were being developed. (Later theAtomic Energy Agency <strong>and</strong> its successor in the Department<strong>of</strong> Energy would play a similar role in obtaining computers,in particular developing an appetite for the more powerfulmachines—see supercomputer.)The Office <strong>of</strong> Naval Research (ONR) played an importantrole in developing the underlying theory <strong>and</strong> design forcomputer architecture (see von Neumann, John), as wellas sponsoring many <strong>of</strong> the early conferences on computerscience, helping the discipline emerge.As the cold war got underway, an increasing amount<strong>of</strong> funding went to military-related technology. Since computerswere becoming essential for designing or operatingcomplex technologies in aerospace, weapons systems, <strong>and</strong>other areas, it is not surprising that computer scientistshave received a significant share <strong>of</strong> government researchdollars.A pattern <strong>of</strong> cooperation emerged between governmentagencies <strong>and</strong> companies such as Univac <strong>and</strong> particularlyIBM, who were creating the computer industry. AT&T BellLaboratories (see Bell Labs) received support for communications<strong>and</strong> semiconductor technology. Leading-edgeresearch funded for military purposes tended to turn upfive or ten years later in new generations <strong>of</strong> commercialproducts.Begun in the late 1950s, one <strong>of</strong> the biggest defense computingprojects was the ambitious (but only marginally successful)SAGE automated air defense system. It began withWhirlwind, the first computer designed for multitasking<strong>and</strong> continuous, real-time operation <strong>and</strong> data storage usingmagnetic core memory. Equally innovative were the userconsoles, which pioneered such features as CRT-based output<strong>and</strong> a touch interface using a light pen.Defense Advanced ResearchProjects Agency (DARPA)Established in 1958 <strong>and</strong> sometimes known as the AdvancedResearch Projects Agency (ARPA), this agency through itsInformation Processing <strong>Technology</strong> Office has funded orcontributed to some <strong>of</strong> the most important developments <strong>of</strong>the information age, including:• time-sharing computer <strong>and</strong> operating systems (MITProject Mac)• packet-switched networks; the Internet (implementedas ARPANET)• NLS, an early hypertext system (see hypertext)• artificial intelligence topics including speech recognitionARPA was unusual as a government agency in its agilemanagement. Managers were given considerable latitude tobring together the most innovative computer scientists <strong>and</strong>turn them loose with a minimum <strong>of</strong> bureaucratic oversight.Funding Academic Research <strong>and</strong><strong>Computer</strong> <strong>Science</strong>Although military-related research has been the largestportion <strong>of</strong> government funding for computer science, othergovernment agencies have also played important roles.Vannevar Bush worked tirelessly to create a new nationalresearch infrastructure, <strong>and</strong> this eventually bore fruit inthe National <strong>Science</strong> Foundation (NSF). Starting in the1960s the NSF began with a focus on providing computersupport for the sciences, but soon concluded that universityresearchers were being crippled by lack <strong>of</strong> both computers<strong>and</strong> people who could design s<strong>of</strong>tware. The agencybegan to directly support the funding <strong>of</strong> university computerpurchases <strong>and</strong> the development <strong>of</strong> computer scienceprograms. By 1970 the NSF was also supporting the development<strong>of</strong> computer networks as a way for institutions toshare resources. NSF funding for computer science <strong>and</strong>related activities continued to grow. In the mid-1980s NSFset up the National Center for Supercomputing Applications(NCSA), which in turn set up regional centers from whichresearchers could tap into supercomputer power through ahigh-speed network.


graphics card 213Industrial CompetitivenessBy the 1980s strong competitive threats to the U.S. computerindustry (notably from Japan) <strong>and</strong> some governmentfunding began to go to helping the American industry coordinateits research. An example is SEMATECH, the semiconductormanufacturing research consortium. (DARPAalso played an important role in the development <strong>of</strong> VLSI[very large-scale integration] circuits.)Another effort <strong>of</strong> this era was the Strategic ComputingInitiative, which was also in part a response to Japanesedevelopments—their Fifth Generation <strong>Computer</strong> Program.SCI aimed to develop hardware <strong>and</strong> s<strong>of</strong>tware for advancedartificial intelligence projects, starting with a militaryfocus, such as autonomous vehicles, voice-controlled “glasscockpit” aircraft interfaces, <strong>and</strong> expert systems for battlemanagement.Although there is always fluctuation <strong>and</strong> changing politicalpriorities, there is no reason to believe that governmentfunding will not continue to play a very important role incomputer-related research <strong>and</strong> development. There will alsocontinue to be debates over the uses to which governmentsput computing technology, particularly in the military,intelligence, <strong>and</strong> national security areas.Further ReadingDefense Advanced Research Projects Agency (DARPA). Availableonline. URL: http://www.arpa.mil/. Accessed September 22,2007.National Center for Supercomputing Applications (NCSA). Availableonline. URL: http://www.ncsa.uiuc.edu/. Accessed September22, 2007.National Research Council. Funding a Revolution: Government Supportfor Computing Research. Washington, D.C.: National AcademiesPress, 1999. Available online. URL: http://www.nap.edu/readingroom/books/far/contents.html. Accessed September22, 2007.National <strong>Science</strong> Foundation. “Exploring the Frontiers <strong>of</strong> Computing.”Available online. URL: http://www.nsf.gov/dir/index.jsp?org=CISE. Accessed September 22, 2007.Redmond, Kent C., <strong>and</strong> Thomas M. Smith. From Whirlwind toMITRE: The R&D Story <strong>of</strong> the SAGE Air Defense <strong>Computer</strong>.Cambridge, Mass.: MIT Press, 2000.Rol<strong>and</strong>, Alex, <strong>and</strong> Philip Shiman. Strategic Computing: DARPA <strong>and</strong>the Quest for Machine Intelligence, 1983–1993. Cambridge,Mass.: MIT Press, 2002.graphics cardPrior to the late 1970s, most computer applications (otherthan some scientific <strong>and</strong> experimental ones) did not usegraphics. However, the early microcomputer systems suchas the Apple II, Radio Shack TRS-80, <strong>and</strong> Commodore PETcould all display graphics, either on a monitor or (with theaid <strong>of</strong> a video modulator) on an ordinary TV set. Whileprimitive (low resolution; monochrome or just a h<strong>and</strong>ful <strong>of</strong>colors) this graphics capability allowed for a thriving marketin games <strong>and</strong> educational s<strong>of</strong>tware.The earliest video displays for mainstream PCs providedbasic text display capabilities (such as the MDA, ormonochrome display adapter, with 25 lines <strong>of</strong> text up to80 characters per line) plus the ability to create graphicsby setting the color <strong>of</strong> individual pixels. The typical lowendgraphics card <strong>of</strong> the early 1980s was the CGA (ColorGraphics Adapter), which <strong>of</strong>fered various modes such as320 by 200 pixels with four colors. <strong>Computer</strong>s marketedfor pr<strong>of</strong>essional use <strong>of</strong>fered the EGA (Enhanced GraphicsAdapter), which could show 640 by 350 pixels at 16colors.The ultimate video display st<strong>and</strong>ard during the time<strong>of</strong> IBM dominance was the VGA (Video Graphics Array),which <strong>of</strong>fered a somewhat improved high resolution <strong>of</strong> 640by 480 pixels at 16 colors, with an alternative <strong>of</strong> a lower320 by 280 pixels but with 256 colors. Because <strong>of</strong> its use <strong>of</strong>a color palette containing index values, the 256 colors canactually be drawn from a range <strong>of</strong> 262,144 possible choices.VGA also marked a break from earlier st<strong>and</strong>ards becausein order to accommodate such a range <strong>of</strong> colors it had toconvert digital information to analog signals to drive themonitor, rather than using the digital circuitry found inearlier monitors.Modern video cards can be loosely described as implementingSVGA (Super VGA), but there are no longer discretest<strong>and</strong>ards. Typical display resolutions for desktop PCstoday are 1024 by 768 or 1280 by 1024 pixels. (Laptops traditionallyhave had a lower-resolution 800 by 600 display,but many are now comparable to desktop displays.) Therange <strong>of</strong> colors is vast, with up to 16,777,216 possible colorsstored as 32 bits per pixel.Storing 32 bits (4 bytes) for each <strong>of</strong> the pixels on a 1024by 768 screen requires more than 3 megabytes. However,this is just for static images. Games, simulations, <strong>and</strong> otherapplications use moving 3D graphics. Since a computerscreen actually has only two dimensions, mathematicalalgorithms must be used to transform the representationThe basic parts <strong>of</strong> a graphics card. The card is connected to theCPU by the bus (<strong>of</strong>ten a special bus called the AGP, or AcceleratedGraphics Port). Graphics data can be generated by the CPU <strong>and</strong>transferred directly to the graphics card’s memory, but most cardstoday perform a lot <strong>of</strong> the graphics processing using the card’s ownon-board processor for sophisticated 3D, textures, shading, <strong>and</strong>other effects.


214 graphics formats<strong>of</strong> objects so they look as if they have three dimensions,appearing in proper perspective, with regard to what objectsare behind other objects, <strong>and</strong> with realistic lighting <strong>and</strong>shading (see computer graphics).Traditionally, all <strong>of</strong> the work <strong>of</strong> producing the actualscreen data was undertaken by the PC’s main processor,executing instructions from the application program <strong>and</strong>display driver. By putting a separate processor on the videocard (called a video accelerator), together with its own supply<strong>of</strong> memory (now up to 256 MB), the main system wasfreed from this burden. A new high-b<strong>and</strong>width connectionbetween the PC motherboard <strong>and</strong> the graphics card becameavailable with the development <strong>of</strong> the AGP (AcceleratedGraphics Port). (See bus.) Memory used on video cards isalso optimized for video operations, such as by using types<strong>of</strong> memory such as Video RAM (VRAM) that do not need tobe refreshed as frequently.Increasingly, the algorithms for creating realistic images(such as lighting, shading, <strong>and</strong> texture mapping) are nowsupported by the s<strong>of</strong>tware built into the video card. Ofcourse, the applications program needs a way to tell thegraphics routines what to draw <strong>and</strong> how to draw it. Insystems running Micros<strong>of</strong>t Windows, a program functionlibrary called Direct3D (part <strong>of</strong> a suite called DirectX) hasbecome the st<strong>and</strong>ard interface between applications <strong>and</strong>graphics hardware. Video card manufacturers in turn haveoptimized their cards to carry out the kinds <strong>of</strong> operationsimplemented in DirectX. (A nonproprietary st<strong>and</strong>ard calledOpenGL has also achieved some acceptance, particularly onnon-Windows systems.)In evaluating video cards, the trade<strong>of</strong>f is between theextent to which advanced graphic features are supported<strong>and</strong> the number <strong>of</strong> frames per second that can be calculated<strong>and</strong> sent to the display. If the processing becomes too complicated,the frame rate will slow down <strong>and</strong> the display willappear to be jerky instead <strong>of</strong> smooth.Further Reading“Graphics <strong>and</strong> Displays.” Tom’s Hardware. Available online. URL:http://www.tomshardware.com/graphics/index.html. AccessedAugust 5, 2007.Jones, Wendy. Beginning DirectX 10 Game Programming. Boston:Course <strong>Technology</strong>, 2007.Luna, Frank. Introduction to 3D Game Programming with DirectX9.0c: A Shader Approach. Plano, Tex.: Wordware Publishing,2006.Sanchez, Julio, <strong>and</strong> Maria P. Canton. The PC Graphics H<strong>and</strong>book.Boca Raton, Fla.: CRC Press, 2003.Shreiner, Dave, et al. OpenGL Programming Guide. 5th ed. UpperSaddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2005.“Video Cards.” PC Guide. Available online. URL: http://www.pcguide.com/ref/video/index.htm. Accessed August 5, 2007.graphics formatsBroadly speaking, a graphics file consists <strong>of</strong> data that specifiesthe color <strong>of</strong> each pixel (dot) in an image. Since there aremany ways this information can be organized, there are avariety <strong>of</strong> graphics file formats. The most important <strong>and</strong>widely used ones are summarized below.BMP (Windows Bitmap)In a bitmap format there is a group <strong>of</strong> bits (i.e. a binaryvalue) that specifies the color <strong>of</strong> each pixel. Windows providesst<strong>and</strong>ard bitmap (BMP) formats for 1-bit (2 colorsor monochrome), 4-bit (16 colors), 8-bit (256 colors), or24-bit (16 million colors). The Windows bitmap format isalso called a DIB (device-independent bitmap) because thestored colors are independent <strong>of</strong> the output device to beused (such as a monitor or printer). The relevant devicedriver is responsible for translating the color to one actuallyused by the device. Because it is “native” to Windows, BMPis widely used, especially for program graphics resources.Bitmap formats have the advantage <strong>of</strong> storing the exactcolor <strong>of</strong> every pixel without losing any information. However,this means that the files can be very large (fromhundreds <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> bytes to several megabytes forWindows screen graphics). BMP <strong>and</strong> other bitmap formatsdo support a simple method <strong>of</strong> compression called runlengthencoding (RLE), where a series <strong>of</strong> identical pixels isreplaced by a single pixel <strong>and</strong> a count. Bitmap files can befurther compressed through the use <strong>of</strong> utilities such as thepopular Zip program (see data compression).EPSEPS (Encapsulated PostScript) is a vector-based rather thanbitmap (raster) format. This means that an EPS file consistsnot <strong>of</strong> the actual pixel values <strong>of</strong> an image, but the instructionsfor drawing the image (including coordinates, colors,<strong>and</strong> so on). The instructions are specified as a text file inthe versatile PostScript page description language. This formatis usually used for printing, <strong>and</strong> requires a printer thatsupports PostScript (there are also PostScript renderers thatrun entirely in s<strong>of</strong>tware, but they tend to be slow <strong>and</strong> somewhatunreliable).GIFGIF, or Graphics Interchange Format, is a bitmapped formatpromulgated by CompuServe. Instead <strong>of</strong> reserving enoughspace to store a large number <strong>of</strong> colors in each pixel, thisformat uses a color table that can hold up to 256 colors.Each pixel contains a reference (index into) the color table.This means that GIF works best with images that have relativelyfew colors <strong>and</strong> for applications (such as Web pages)where compactness is important. GIF also uses compressionto achieve compactness, but unlike the case with JPEGit is a lossless compression called LZW. There is also a GIFformat that stores simple animations.JPEGJPEG, which st<strong>and</strong>s for Joint Photographic Experts Group,is widely used for digital cameras because <strong>of</strong> its ability tohighly compress the data in a color graphics image, allowinga reasonable number <strong>of</strong> high-resolution pictures to bestored in the camera’s onboard memory. The compressionis “lossy,” meaning that information is lost during compression(see data compression). At relatively low compressionratios (such as 10:1, or 10 percent <strong>of</strong> the original image size)changes in the image due to data loss are unlikely to be


green PC 215perceived by the human eye. At higher ratios (approaching100:1) the image becomes seriously degraded. JPEG’s abilityto store thous<strong>and</strong>s <strong>of</strong> colors (unlike GIF’s limit <strong>of</strong> 256)makes the format particularly suitable for the subtleties <strong>of</strong>photography.PCXPCX is a compressed bitmap format originally used by thepopular PC Paintbrush program. In recent years it has beenlargely supplanted by BMP <strong>and</strong> TIFF.TIFFTIFF, or Tagged Image File Format, is also a compressedbitmap format. There are several variations by differentvendors, which can lead to compatibility problems. Implementationscan use various compression methods, generallyleading to ratios <strong>of</strong> 1.5 to 1 to about 2 to 1.Further ReadingBrown, C. Wayne, <strong>and</strong> Barry J. Shepherd. Graphics File FormatsReference <strong>and</strong> Guide. Greenwich, Conn.: Manning Publications,1995.Miano, John. Compressed Image File Formats. Upper Saddle River,N.J.: Addison-Wesley Pr<strong>of</strong>essional, 1999.“Web Style Guide: Graphics.” Available online. URL: http://webstyleguide.com/graphics/. Accessed August 5, 2007.Murray, James D., <strong>and</strong> William vanRyper. <strong>Encyclopedia</strong> <strong>of</strong> GraphicsFile Formats. 2nd ed. (on CD-ROM). Sebastopol, Calif.:O’Reilly, 1996.“Wotsit’s Format: The Programmer’s Resource.” Available online.URL: http://www.wotsit.org/. Accessed August 14, 2007.graphics tabletWhile conventional pointing devices (see mouse) are quitesatisfactory for making selections <strong>and</strong> even manipulatingobjects, many artists prefer the control available onlythrough a pen or pencil, which allows the angle <strong>and</strong> pressure<strong>of</strong> the stylus tip to be varied, creating precise lines <strong>and</strong>shading. A graphics tablet (also called a digitizing tablet) isa device that uses a specially wired pen or pencil with a flatsurface (tablet). Besides tracking the location <strong>of</strong> the pen <strong>and</strong>translating it into X/Y screen coordinates, the tablet alsohas pressure sensors (depending on sensitivity, the tabletMany graphics tablets use a stylus or pen. The system can track thepen’s position <strong>and</strong>, <strong>of</strong>ten, the amount <strong>of</strong> pressure being exerted, <strong>and</strong>draw the line accordingly.can recognize 256, 512, or 1024 levels <strong>of</strong> pressure). In combinationwith buttons on the pen, the pressure level can beused to control the line thickness, transparency, or color.In addition, the driver s<strong>of</strong>tware for some graphics tabletsincludes additional functions such as the ability to programthe pen to control features <strong>of</strong> such applications as AdobePhotoshop.The tablet is connected to the PC (usually through a USBport). The pen may be connected to the tablet by a tether, orit may be wireless. If the pen has an onboard battery, it canprovide additional features at the expense <strong>of</strong> weight <strong>and</strong> theneed to replace batteries occasionally.A variant implementation uses a small “puck” instead<strong>of</strong> a pen. The puck, which can be moved smoothly over thetablet surface, <strong>of</strong>ten has a window with crosshairs in thecenter. This makes it particularly useful for tracing detaileddrawings such as in engineering applications.Many artists find that wielding a pen with a graphicstablet <strong>of</strong>fers not only finer control, but also more natural<strong>and</strong> less fatiguing method <strong>of</strong> input than with the mouse.Further ReadingChastain, Sue. “Before You Buy a Graphics Tablet.” Availableonline. URL: http://graphicss<strong>of</strong>t.about.com/od/aboutgraphics/a/graphicstablets.htm. Accessed August 5, 2007.Kolle, Iril C. Graphics Tablet Solutions. Cincinnati, Ohio: Muska &Lipman, 2001.Threinen-Pendarvis, Cher. The Photoshop <strong>and</strong> Painter Artist TabletBook: Creative Techniques in Digital Painting. Berkeley, Calif.:Peachpit Press, 2004.green PCThis is a general term for features that reduce the growingenvironmental impact <strong>of</strong> the manufacture or use <strong>of</strong> computers.This impact has several aspects: energy consumption,resource consumption, e-waste, <strong>and</strong> pollution <strong>and</strong> greenhouseemissions.Energy ConsumptionThe greatest part <strong>of</strong> a typical computer system’s power consumptionis from the monitor, followed by the hard drive<strong>and</strong> CPU. It follows that considerable energy can be saved ifthese components are powered down when not in use. Onthe other h<strong>and</strong>, most users do not want to go through thewhole computer startup process several times a day. Onesolution is to design a computer system so that it turns <strong>of</strong>fmany components when not in use but is still able to restorefull function in a few seconds.When applied to a personal computer, the federallyadopted Energy Star designation indicates a computer systemthat includes an energy saving mode that can powerdown the monitor, hard drive, or CPU after a specifiedperiod elapses without user activity, such that the inactivesystem consumes no more than 30 watts. In the ultimateenergy-saving feature a suspend mode saves the currentstate <strong>of</strong> the computer’s memory (<strong>and</strong> thus <strong>of</strong> program operation)to a disk file. When the user presses a key (or movesthe mouse), the computer “wakes up” <strong>and</strong> reloads its memorycontents from the disk, resuming operation where it left


216 grid computing<strong>of</strong>f. By 2000, virtually all new PCs were Energy Star compliant,though many users fail to actually enable the powersavingfeatures.In July 2007 stricter Energy Star specifications for desktopPCs were adopted. Power supplies must now be at least80 percent efficient. Meanwhile, the International EnergyAgency has been promoting an initiative to reduce powerconsumption <strong>of</strong> idle PCs (<strong>and</strong> other appliances) to 1 wattor less.Resource Consumption<strong>Computer</strong>s consume a variety <strong>of</strong> resources, starting with theirmanufacturing <strong>and</strong> packaging. Resource consumption can bereduced by building more compact units <strong>and</strong> by designingcomponents so they can be more readily stripped <strong>and</strong> recycledor reused. Adopting reusable storage media (such as rewritableCDs), recycling printer toner cartridges, <strong>and</strong> changing<strong>of</strong>fice procedures to minimize the generation <strong>of</strong> paper documentsare also ways to reduce resource consumption.E-WasteIn recent years the disposal <strong>of</strong> obsolete computers <strong>and</strong> otherelectronic equipment (“e-waste”) has been both a growingconcern <strong>and</strong> a business opportunity. There are manytoxic substances in electronics components, including lead,mercury, <strong>and</strong> cadmium. Processing e-waste to recover rawmaterials is expensive, so greater emphasis has been placedon disassembling machines <strong>and</strong> reusing or refurbishingtheir individual components. Meanwhile, many communitieshave banned disposing <strong>of</strong> e-waste in regular trash, <strong>and</strong>some have <strong>of</strong>fered opportunities to drop <strong>of</strong>f e-waste at no orminimal charge. States such as California have also instituteda recycling fee that is collected upon sale <strong>of</strong> devicessuch as CRT monitors <strong>and</strong> televisions.Pollution <strong>and</strong> Greenhouse EmissionsFabrication <strong>of</strong> computer chips in more than 200 large plantsaround the world involves a variety <strong>of</strong> toxic chemicals <strong>and</strong>waste products. The Silicon Valley alone is home to 29 toxicsites under the EPA’s Superfund Program. The shift <strong>of</strong> much<strong>of</strong> semiconductor <strong>and</strong> computer component manufacturingto countries such as China that have less strict pollutioncontrols has also exacerbated what has become a globalproblem.Whether through regulation or enlightened self-interest,companies that want to reduce future emissions can useseveral strategies. Manufacturing equipment <strong>and</strong> processescan be modified so they create fewer toxic substances or atleast keep them from getting into the environment. Nontoxic(or less toxic) materials can be substituted wherepossible—for example, use <strong>of</strong> ozone-depleting chlor<strong>of</strong>luorocarbons(CFCs) as cleaning agents has been largely eliminated.Finally, waste can be properly sorted <strong>and</strong> disposed<strong>of</strong>, <strong>and</strong> recycled wherever feasible.Like other major manufacturing sectors, the computerindustry is also faced with the need to reduce the amount<strong>of</strong> the greenhouse gases (particularly CO 2 ) contributing toglobal warming. This mainly means further reducing theenergy consumption <strong>of</strong> new PCs. In June 2007 a number<strong>of</strong> major players, including Google, Intel, Dell, Hewlett-Packard, Micros<strong>of</strong>t, <strong>and</strong> Sun, established the Climate SaversComputing Initiative. Going beyond Energy Star, the programis expected to reduce power consumption equivalentto 54 million tons <strong>of</strong> greenhouse gases annually—about thesame as that produced by 11 million cars or 20 large coalfiredpower plants.Further ReadingBr<strong>and</strong>on, John. “Build a Green PC.” ExtremeTech, March 2,2007. Available online. URL: http://www.extremetech.com/article2/0,1697,2097765,00.asp. Accessed August 5, 2007.Cascio, Jamais. Green PC: How to Dispose <strong>of</strong> Unwanted Tech Equipmentwithout Hassles, <strong>and</strong> Where to Find Great New EnvironmentallyFriendly Gear. PC World, May 22, 2006. Availableonline. URL: http://www.pcworld.com/article/id,125708/article.html. Accessed August 5, 2007.“Cleaner <strong>Computer</strong>s? Industry to Cut Carbon.” (AP/MSNBC). June12, 2007. Available online. URL: http://www.msnbc.msn.com/id/19203144/. Accessed August 5, 2007.Esty, Daniel, <strong>and</strong> Andrew S. Winston. Green to Gold: How SmartCompanies Use Environmental Strategy to Innovate, CreateValue, <strong>and</strong> Build Competitive Advantage. New Haven, Conn.:Yale University Press, 2006.Kuehr, Ruediger, <strong>and</strong> Eric Williams, eds. <strong>Computer</strong>s <strong>and</strong> the Environment:Underst<strong>and</strong>ing <strong>and</strong> Managing Their Impacts. Norvell,Mass.: Kluwer Academic Publishers, 2003.Weil, Nancy. “The Realities <strong>of</strong> Green Computing.” PC World,August 3, 2007. Available online. URL: http://www.pcworld.com/article/id,135509/article.html. Accessed August 5, 2007.grid computingGrid or cluster computing involves the creation <strong>of</strong> a singlecomputer architecture that consists <strong>of</strong> many separatecomputers that function much like a single machine. Thecomputers are usually connected using fast networks (seelocal area network). The purpose <strong>of</strong> the arrangementcan be to provide redundant processing in case <strong>of</strong> systemfailures, to dynamically balance a fluctuating work load,or to split large computations into many parts that can beperformed simultaneously. This latter approach to “highperformancecomputing” creates the virtual equivalent <strong>of</strong> avery large <strong>and</strong> powerful machine (see supercomputer).ArchitectureGrid <strong>and</strong> cluster architectures <strong>of</strong>ten overlap, but the termgrid tends to be applied to a more loosely coordinatedstructure where the computers are dispersed over a widerarea (not a local network). In a grid, the work is usuallydivided into many separate packets that can be processedindependently without the computers having to share data.Each task can be completed <strong>and</strong> submitted without waitingfor the completion <strong>of</strong> any other task. Clusters, or the otherh<strong>and</strong>, more closely couple computers to act more like asingle large machine.The first commercially successful product based on thisarchitecture was the VAXcluster released in the 1980s forDEC VAX minicomputers. These systems implemented parallelprocessing while sharing file systems <strong>and</strong> peripherals.


groupware 217In 1989 an open-source cluster solution called ParallelVirtual Machine (PVM) was developed. These clusterscould mix <strong>and</strong> match any computers that could connectover a TCP/IP network (i.e., the Internet).Current Implementations <strong>and</strong> ApplicationsClusters made from hundreds <strong>of</strong> desktop-class computerprocessors can achieve supercomputer levels <strong>of</strong> performanceat comparatively low prices. An example is the System Xsupercomputer cluster at Virginia Tech, which generates12.25 TFlops (trillion floating point operations per second)from 1100 Apple XServe G5 dual-processor desktops runningMac OS X.Additional savings <strong>and</strong> flexibility can be found inBeowulf clusters, which use st<strong>and</strong>ard commodity PCs runningopen-source operating systems (such as Linux) <strong>and</strong>s<strong>of</strong>tware such as the Globus Toolkit.Another type <strong>of</strong> implementation is the “ad hoc” computergrid. These are projects where users sign up to receive<strong>and</strong> process work packets using their PC’s otherwise idletime. Examples include SETI@Home (search for extraterrestrialintelligence) <strong>and</strong> Folding@Home (protein-foldingcalculations). For more on this type <strong>of</strong> arrangement, seecooperative processing.Although there has been some recent interest in enterprisegrids, most grid computing applications are in science.The world’s most powerful computer grid, TeraGrid,is funded by the National <strong>Science</strong> Foundation <strong>and</strong> tiestogether major supercomputing <strong>and</strong> advanced computinginstallations at universities <strong>and</strong> government laboratories.Current applications for TeraGrid include weather <strong>and</strong> climateforecasting, earthquake simulation, epidemiology, <strong>and</strong>medical visualization.Further ReadingGlobus Toolkit Homepage. Available online. URL: http://www.globus.org/toolkit/. Accessed September 23, 2007.Haynos, Matt. “Perspectives on Grid: Grid Computing—Next-Generation Distributed Computing.” IBM, January 27, 2004.Available online. URL: http://www.ibm.com/developerworks/grid/library/gr-heritage/. Accessed September 23, 2007.Kacsuk, Peter, Thomas Fahringer, <strong>and</strong> Zsolt Nemeth. Distributed<strong>and</strong> Parallel Systems: From Cluster to Grid Computing. NewYork: Springer <strong>Science</strong>/Business Media, 2007.Kopper, Karl. Linux Enterprise Cluster: Build a Highly AvailableCluster with Commodity Hardware <strong>and</strong> Free S<strong>of</strong>tware. SanFrancisco: No Starch Press, 2005.Plaszczak, Pawel, <strong>and</strong> Richard Wellner, Jr. Grid Computing: The SavvyManager’s Guide. San Francisco: Morgan Kaufman, 2006.Robbins, Stuart. Lessons in Grid Computing: The System Is a Mirror.New York: Wiley, 2006.TeraGrid. Available online. URL: http://www.teragrid.org/. AccessedSeptember 23, 2007.groupwareWhen PCs were first introduced into the business world,they tended to be used in isolation. Individual workerswould prepare documents such as spreadsheets <strong>and</strong> databasereports <strong>and</strong> then print them out <strong>and</strong> distribute themas memos, much in the way <strong>of</strong> traditional paper documents.However, as computers began to be tied together into localarea networks (see local area network) in the 1980s,focus began to shift toward the use <strong>of</strong> s<strong>of</strong>tware to facilitatecommunication, coordination, <strong>and</strong> collaboration amongworkers. This loosely defined genre <strong>of</strong> s<strong>of</strong>tware was dubbedgroupware.Popular groupware s<strong>of</strong>tware suites such as Lotus Notes<strong>and</strong> Micros<strong>of</strong>t Exchange generally <strong>of</strong>fer at least some <strong>of</strong> thefollowing features:• e-mail coordination, including the creation <strong>of</strong> group ortask-oriented mail lists• shared calendar, giving each participant informationabout all upcoming events• meeting management, including scheduling (ensuringcompatibility with everyone’s existing schedule)<strong>and</strong> facilities booking• scheduling tasks with listing <strong>of</strong> persons responsiblefor each task, progress (milestones met), <strong>and</strong> checking<strong>of</strong>f completed tasks• real-time “chat” or instant message capabilities• documentation systems that allow a number <strong>of</strong> peopleto make comments on the same document <strong>and</strong> see<strong>and</strong> respond to each other’s comments• “whiteboard” systems that allow multiple users todraw a diagram or chart in real time, with everyoneable to see <strong>and</strong> possibly modify itGroupware is increasingly integrated with the Internet,with documents <strong>and</strong> shared resources (calendars, schedules,<strong>and</strong> so on) implemented in HTML as Web pages orWeb-linked databases. (See also personal informationmanager.)An attractive alternative to locally installed groupwareis a suite <strong>of</strong> collaboration <strong>and</strong> productivity applicationsdelivered directly via the Web <strong>and</strong> accessible using onlya Web browser. Google introduced such a package calledGoogle Apps in 2007. It has a free basic version but isexpected to <strong>of</strong>fer fee-based enhanced services for largerorganizations.Groupware is likely to be an increasingly importantaspect <strong>of</strong> institutional information processing in a global,mobile economy. With workgroups <strong>of</strong>ten geographicallydistributed (as well as including telecommuters), traditionalface-to-face meetings become increasingly impractical aswell as <strong>of</strong>ten being considered wasteful <strong>and</strong> inefficient. Newforms <strong>of</strong> collaboration are supplementing the traditional e-mail <strong>and</strong> conferencing (see blogs <strong>and</strong> blogging <strong>and</strong> wikis<strong>and</strong> Wikipedia). Wikis are particularly interesting in thatthey can not only track current resources, but also providea knowledge base with lasting value.Further ReadingAndriessen, J. H. Erik. Working with Groupware: Underst<strong>and</strong>ing<strong>and</strong> Evaluating Collaboration <strong>Technology</strong>. New York: Springer,2003.Boles, David. Google Apps Administrator Guide: A Private-Label WebWorkspace. Boston: Course <strong>Technology</strong>, 2007.


218 Grove, Andrew S.Cavalancia, Nick. Micros<strong>of</strong>t Exchange Server 2007: A Beginner’sGuide. 2nd ed. Berkeley, Calif.: McGraw-Hill Osborne Media,2007.Google Apps. Available online. URL: https://www.google.com/a/.Accessed August 5, 2007.Gookin, Dan. Google Apps for Dummies. Hoboken, N.J.: Wiley,2008.Morimoto, R<strong>and</strong>, et al. Micros<strong>of</strong>t Exchange Server 2007 Unleashed.Indianapolis: Sams, 2007.Munkvold, Bjorn Erik, et al. Implementing Collaboration Technologiesin Industry. New York: Springer, 2003.Udell, Jon. Practical Internet Groupware. Sebastapol, Calif.:O’Reilly, 1999.Grove, Andrew S.(1936– )Hungarian-AmericanEntrepreneurAndrew Grove is a pioneer in the semiconductor industry<strong>and</strong> builder <strong>of</strong> Intel, the corporation whose processors nowpower the majority <strong>of</strong> personal computers. Grove was bornAndrás Gróf on September 2, 1936, in Budapest to a Jewishfamily. Grove’s family was disrupted by the German occupation<strong>of</strong> Hungary later in World War II. Andrew’s father wasconscripted into a work brigade <strong>and</strong> then into a Hungarianformation <strong>of</strong> the German army. Andrew <strong>and</strong> his mother,Maria, had to hide from the Nazi roundup in which manyHungarian Jews were sent to death in concentration camps.Although the family survived <strong>and</strong> was reunited after thewar, Hungary had come under Soviet control. Andrew, now20, believed his freedom <strong>and</strong> opportunity would be verylimited, so he <strong>and</strong> a friend made a dangerous border crossinginto Austria. Grove came to the United States, wherehe lived with his uncle in New York <strong>and</strong> studied chemicalengineering. He then earned his Ph.D. at the University <strong>of</strong>California at Berkeley <strong>and</strong> became a researcher at FairchildSemiconductor in 1963 <strong>and</strong> then assistant director <strong>of</strong> developmentin 1967. He soon became familiar with the earlywork toward what would become the integrated circuit, keyto the microcomputer revolution that began in the 1970s<strong>and</strong> wrote a st<strong>and</strong>ard textbook (Physics <strong>and</strong> <strong>Technology</strong> <strong>of</strong>Semiconductor Devices).In 1968, however, he joined colleagues Robert Noyce <strong>and</strong>Gordon Moore in leaving Fairchild <strong>and</strong> starting a new company,Intel. Grove switched from research to management,becoming Intel’s director <strong>of</strong> operations. He established amanagement style that featured what he called “constructiveconfrontation”—a vigorous, objective discussion whereopposing views could be aired without fear <strong>of</strong> reprisal. Critics,however, sometimes characterized the confrontationsas more harsh than constructive.Grove became a formidable competitor. In the late 1970s,it was unclear whether Intel (maker <strong>of</strong> the 8008, 8080, <strong>and</strong>subsequent processors) or Motorola (with its 68000 processor)would dominate the market for microprocessors to runthe new desktop computers. Grove emphasized the training<strong>and</strong> deployment <strong>of</strong> a large sales force, <strong>and</strong> by the time theIBM PC debuted in 1982, it <strong>and</strong> its imitators would all bepowered by Intel chips.During the 1980s, Grove would be challenged to beadaptable when Japanese companies eroded Intel’s share <strong>of</strong>the DRAM (memory) chip market, <strong>of</strong>ten “dumping” productbelow their cost. Grove decided to get Intel out <strong>of</strong> thememory market, even though it meant downsizing the companyuntil the growing microprocessor market made up forthe lost revenues. In 1987, Grove had weathered the storm<strong>and</strong> become Intel’s CEO. He summarized his experience <strong>of</strong>the rapidly changing market with the slogan “only the paranoidsurvive.”During the 1990s, Intel introduced the popular Pentiumline, having to overcome mathematical flaws in the first version<strong>of</strong> the chip <strong>and</strong> growing competition from AdvancedMicro Devices (AMD) <strong>and</strong> other companies that made chipscompatible with Intel’s. Grove also had to fight prostatecancer, apparently successfully, <strong>and</strong> relinquished his CEOtitle in 1998, remaining chairman <strong>of</strong> the board.Through several books <strong>and</strong> numerous articles, Grove hashad considerable influence on the management <strong>of</strong> modernelectronics manufacturing. He has received many industryawards, including the IEEE Engineering Leadership Recognitionaward (1987), <strong>and</strong> the AEA Medal <strong>of</strong> Achievementaward (1993). In 1997, he was CEO <strong>of</strong> the Year (CEO magazine)<strong>and</strong> Time magazine’s Man <strong>of</strong> the Year.Further Reading“Andy Grove.” Intel. Available online. URL: http://www.intel.com/pressroom/kits/bios/grove.htm. Accessed August 5, 2007.Grove, Andrew S. High Output Management. 2nd ed. New York:Vintage Books, 1995.———. One-on-One with Andy Grove. New York: Putnam, 1987.———. Only the Paranoid Survive. New York: Currency Doubleday,1996.Tedlow, Richard S. Andrew Grove: The Life <strong>and</strong> Times <strong>of</strong> an American.New York: Penguin/Portfolio, 2006.


Hhackers <strong>and</strong> hackingStarting in the late 1950s, in computer facilities at MIT,Stanford, <strong>and</strong> other research universities people began toencounter persons who had both unusual programmingskill <strong>and</strong> an obsession with the inner workings <strong>of</strong> themachine. While ordinary users viewed the computer simplyas a tool for solving particular problems, this peculiarbreed <strong>of</strong> programmers reveled in extending the capabilities<strong>of</strong> the system <strong>and</strong> creating tools such as program editorsthat would make it easier to create even more powerfulprograms. The movement from mainframes that could runonly one program at a time to machines that could simultaneouslyserve many users created a kind <strong>of</strong> environmentalniche in which these self-described hackers could flourish.Indeed, while administrators sometimes complained thathackers took up too much <strong>of</strong> the available computer time,they <strong>of</strong>ten depended on them to fix the bugs that infestedthe first versions <strong>of</strong> time-sharing operating systems. Hackersalso tended to work in the wee hours <strong>of</strong> the night whilenormal users slept.Early hackers had a number <strong>of</strong> distinctive characteristics<strong>and</strong> tended to share a common philosophy, even if itwas not always well articulated:• <strong>Computer</strong>s should be freely accessible, without arbitrarylimits on their use (the “h<strong>and</strong>s-on imperative”).• “Information wants to be free” so that it can reach itsfull potential. Conversely, government or corporateauthorities that want to restrict information accessshould be resisted or circumvented.• The only thing that matters is the quality <strong>of</strong> the“hack”—the cleverness <strong>and</strong> utility <strong>of</strong> the code <strong>and</strong>what it lets computers do that they could not dobefore.• As a corollary to the above, the reputation <strong>of</strong> a hackerdepends on his (it was nearly always a male) work—not on age, experience, academic attainment, or anythingelse.• Ultimately, programming was a search for truth <strong>and</strong>beauty <strong>and</strong> even a redemptive quality—coupled withthe belief that technology can change the world.Hackers were relatively tolerated by universities <strong>and</strong>sometimes prized for their skills by computer companiesneeding to develop sophisticated s<strong>of</strong>tware. However, as thecomputer industry grew, it became more concerned withstaking out, protecting, <strong>and</strong> exploiting intellectual property.To the hacker, however, intellectual property was abarrier to the unfettered exploration <strong>and</strong> exploitation <strong>of</strong> thecomputer. Hackers tended to freely copy <strong>and</strong> distribute notonly their own work but also commercial systems s<strong>of</strong>tware<strong>and</strong> utilities.During the late 1970s <strong>and</strong> 1980s, the microcomputer createda mass consumer s<strong>of</strong>tware market, <strong>and</strong> a new generation<strong>of</strong> hackers struggled to get the most out <strong>of</strong> machines that hada tiny amount <strong>of</strong> memory <strong>and</strong> only rudimentary graphics<strong>and</strong> sound capabilities. Some became successful game programmers.At the same time a new term entered the lexicon,s<strong>of</strong>tware piracy (see s<strong>of</strong>tware privacy <strong>and</strong> counterfeiting).Pirate hackers cracked the copy protection on games219


220 h<strong>and</strong>writing recognition<strong>and</strong> other commercial s<strong>of</strong>tware so the disks could be copiedfreely <strong>and</strong> exchanged at computer fairs, club meetings,<strong>and</strong> on illicit bulletin boards (where they were known as“warez”). (See copy protection <strong>and</strong> intellectual property<strong>and</strong> computing.)The growing use <strong>of</strong> on-line services <strong>and</strong> networks in the1980s <strong>and</strong> 1990s brought new opportunities to exploit computerskills to v<strong>and</strong>alize systems or steal valuable informationsuch as credit card numbers. The popular media usedthe term hacker indiscriminately to refer to clever programmers,s<strong>of</strong>tware pirates, <strong>and</strong> people who stole information orspread viruses across the Internet. The wide availability <strong>of</strong>scripts for password cracking, Web site attacks, <strong>and</strong> viruscreation means that destructive crackers <strong>of</strong>ten have littlereal knowledge <strong>of</strong> computer systems <strong>and</strong> do not share theattitudes <strong>and</strong> philosophy <strong>of</strong> the true hackers who sought toexploit systems rather than destroy them.During the 1980s, a new genre <strong>of</strong> science fiction calledcyberpunk became popular. It portrayed a fractured, dystopianfuture where elite hackers could “jack into” computers,experiencing cyberspace directly in their mind, asin William Gibson’s Neuromancer <strong>and</strong> Count Zero. In suchtales the hacker became the high-tech analog <strong>of</strong> the cowboyor samurai, a virtual gunslinger who fought for high stakeson the newest frontier (see science fiction <strong>and</strong> computing).Meanwhile, lurid stories about such notorious realworldhackers (see Mitnick, Kevin) brought the dark side<strong>of</strong> hacking into popular consciousness.By the turn <strong>of</strong> the new century, the popular face <strong>of</strong> hackingwas again changing. Some <strong>of</strong> the most effective techniquesfor intruding into systems <strong>and</strong> for stealing sensitiveinformation (see computer crime <strong>and</strong> identity theft)have always been psychological rather than technical. Whatstarted as one-on-one “social engineering” (such as posingas a computer technician to get a user’s password) hasbeen “industrialized” in the form <strong>of</strong> e-mails that frighten orentice recipients into supplying credit card or bank information(see spam <strong>and</strong> phishing <strong>and</strong> spo<strong>of</strong>ing.) Criminalhackers have also linked up with more-traditional criminalorganizations, creating rings that can efficiently turn stoleninformation into cash.In response to public fears about hackers’ capabilities,federal <strong>and</strong> local law enforcement agencies have steppedup their efforts to find <strong>and</strong> prosecute people who crackor v<strong>and</strong>alize systems or Web sites. Antiterrorism expertsnow worry that well-financed, orchestrated hacker attackscould be used by rogue nations or terrorist groups to paralyzethe American economy <strong>and</strong> perhaps even disrupt vitalinfrastructure such as power distribution <strong>and</strong> air trafficcontrol (see counterterrorism <strong>and</strong> information warfare).In this atmosphere the older, more positive image <strong>of</strong>the hacker seems to be fading—although the free-wheelingcreativity <strong>of</strong> hacking at its best continues to be manifestedin cooperative s<strong>of</strong>tware development (see open source).Further Reading2600 magazine. Available online. URL: http://www.2600.com.Accessed February 2, 2008.Erickson, Jon. Hacking: The Art <strong>of</strong> Exploitation. 2nd ed. San Francisco:No Starch Press, 2007.Gibson, William. Neuromancer. West Bloomfield, Mich.: PhantasiaPress, 1986.Hafner, Katie, John Mark<strong>of</strong>f. Cyberpunk: Outlaws <strong>and</strong> Hackers onthe <strong>Computer</strong> Frontier. New York: Simon & Schuster, 1991.Harris, Shon, et al. Gray Hat Hacking: The Ethical Hacker’s H<strong>and</strong>book.Berkeley, Calif.: McGraw-Hill/Osborne Media, 2004.Levy, Stephen. Hackers: Heroes <strong>of</strong> the <strong>Computer</strong> Revolution. NewYork: Doubleday, 1984.Littman, J. The Fugitive Game: On-line with Kevin Mitnick. Boston:Little, Brown, 1996.Mitnick, Kevin, <strong>and</strong> William L. Simon. The Art <strong>of</strong> Deception: Controllingthe Human Element <strong>of</strong> Security. Indianapolis: Wiley,2002.———. The Art <strong>of</strong> Intrusion: The Real Stories behind the Exploits <strong>of</strong>Hackers, Intruders & Deceivers. Indianapolis: Wiley, 2005.Raymond, Eric. The New Hacker’s Dictionary. 3rd ed. Cambridge,Mass.: MIT Press, 1996.h<strong>and</strong>writing recognitionWhile the keyboard is the traditional means for enteringtext into a computer system, both designers <strong>and</strong> users havelong acknowledged the potential benefits <strong>of</strong> a system wherepeople could enter text using ordinary script or printedh<strong>and</strong>writing <strong>and</strong> have it converted to st<strong>and</strong>ard computercharacter codes (see characters <strong>and</strong> strings). With sucha system people would not need to master a typewriter-stylekeyboard. Further, users could write comm<strong>and</strong>s or takenotes on h<strong>and</strong>held or “palm” computers the size <strong>of</strong> a smallnote pad that are too small to have a keyboard (see portablecomputers). Indeed, such facilities are available to alimited extent today.A h<strong>and</strong>writing recognition system begins by buildinga representation <strong>of</strong> the user’s writing. With a pen or stylussystem, this representation is not simply a graphical imagebut includes the recorded “strokes” or discrete movementsthat make up the letters. The s<strong>of</strong>tware must then create arepresentation <strong>of</strong> features <strong>of</strong> the h<strong>and</strong>writing that can beused to match it to the appropriate character templates.H<strong>and</strong>writing recognition is actually an application <strong>of</strong> thelarger problem <strong>of</strong> identifying the significance <strong>of</strong> features ina pattern.One approach (<strong>of</strong>ten used on systems that work frompreviously written documents rather than stylus strokes)is to identify patterns <strong>of</strong> pixels that have a high statisticalcorrelation to the presence <strong>of</strong> a particular letter in the rectangular“frame” under consideration. Another approach isto try to identify groups <strong>of</strong> strokes or segments that can beassociated with particular letters. In evaluating such tentativerecognitions, programs can also incorporate a network<strong>of</strong> “recognizers” that receive feedback on the basis <strong>of</strong> theiraccuracy (see neural network). Finally, where the identity<strong>of</strong> a letter remains ambiguous, lexical analysis can be usedto determine the most probable letter in a given context,using a dictionary or a table <strong>of</strong> letter group frequencies.Implementation <strong>and</strong> ApplicationsA number <strong>of</strong> h<strong>and</strong>held computers beginning with Apple’sNewton in the mid-1990s <strong>and</strong> the now popular Palm devices<strong>and</strong> BlackBerry have some ability to recognize h<strong>and</strong>writing.However, current systems can be frustrating to use


haptic interfaces 221Currently, h<strong>and</strong>writing recognition is used mainly inniche applications, such as collecting signatures for deliveryservices or filling out “electronic forms” in applicationswhere the user must be mobile <strong>and</strong> relatively h<strong>and</strong>s-free(such as law enforcement).Further ReadingCrooks, Clayton E. II. Developing Tablet PC Applications. Hingam,Mass.: Charles River Media, 2003.“H<strong>and</strong>writing Recognition.” TechRepublic Resources. Availableonline. URL: http://search.techrepublic.com.com/search/h<strong>and</strong>writing+recognition.html. Accessed August 6, 2007.Liu, Zhi-Qiang, Jin-Hai Cai, <strong>and</strong> Richard Buse. H<strong>and</strong>writing Recognition:S<strong>of</strong>t Computing <strong>and</strong> Probabilistic Approaches. New York:Springer, 2003.Matthews, Craig Forrest. Absolute Beginner’s Guide to Tablet PCs.Indianapolis: Que, 2003.Taylor, Paul. “Cast Off Your Keyboard.” Financial Times/FT.comAugust 2, 2007. Available online. URL: http://www.ft.com/cms/s/04546598-410d-11dc-8f37-0000779fd2ac.html.Accessed August 6, 2007.Van West, Jeff. “Using Tablet PC: H<strong>and</strong>writing Recognition 101.”Available online. URL: http://www.micros<strong>of</strong>t.com/windowsxp/using/tabletpc/getstarted/vanwest_03may28hanrec.mspx.Accessed August 6, 2007.Zimmerman, W. Frederick. Complete Guide to OneNote. Berkeley,Calif.: Apress, 2003.One approach to h<strong>and</strong>writing recognition involves the extraction <strong>of</strong>a stroke pattern <strong>and</strong> its comparison to a database <strong>of</strong> templates representingvarious letters <strong>and</strong> symbols. Ultimately the correspondingASCII character is determined <strong>and</strong> stored.because accuracy <strong>of</strong>ten requires that users write very carefully<strong>and</strong> consistently or (as in the case <strong>of</strong> the Palm) evenreplace their usual letter strokes with simplified alternativesthat the computer can more easily recognize. If the user isallowed to use normal strokes, the system must be gradually“trained” by the user giving writing samples <strong>and</strong> confirmingthe system’s guess about the letters. As the s<strong>of</strong>twarebecomes more adaptable <strong>and</strong> processing power increases(allowing more sophisticated algorithms or larger neuralnetworks to be practical) users will be able to write morenaturally <strong>and</strong> systems will gain more consumer acceptance.(One step in this direction is the Tablet PC, a notepad-sizedcomputer with a digitizer tablet <strong>and</strong> a stylus <strong>and</strong> h<strong>and</strong>writingrecognitions s<strong>of</strong>tware, included in Windows XP <strong>and</strong>exp<strong>and</strong>ed in Windows Vista. Programs such as Micros<strong>of</strong>tOneNote use h<strong>and</strong>writing recognition to allow users toincorporate h<strong>and</strong>written text into notes that can be organized<strong>and</strong> quickly retrieved.)haptic interfacesMost interfaces between users <strong>and</strong> computer systems involvethe equivalent <strong>of</strong> switches—keyboard keys or mouse buttons.These interfaces cannot respond to degrees <strong>of</strong> pressure(for an exception, see graphics tablet). Further, thereis no feedback returned to the user through the interfacedevice—the key or mouse does not “push back.”Haptic (from the Greek word for “touch”) interfaces aredifferent in that they do register the pressure <strong>and</strong> motion <strong>of</strong>touch, <strong>and</strong> they <strong>of</strong>ten provide touch feedback as well.Force-feedback systems use movement <strong>of</strong> the controlas a way to provide feedback to the operator. A commonexample is the control stick in an aircraft that begins tovibrate as the aircraft approaches a stall (where it wouldlose control). This provides immediate feedback to the pilotusing the device by which he or she is already controllingthe plane.More sophisticated forms <strong>of</strong> force feedback are used inremote-controlled devices for manipulation or exploration.The first application was developed in the 1950s for h<strong>and</strong>lingradioactive materials. Today a combination <strong>of</strong> position<strong>and</strong> movement sensing <strong>and</strong> force feedback can be usedwith special gloves to enable users to grasp <strong>and</strong> heft 3Dvirtual objects while getting a sense <strong>of</strong> their weight, shape,<strong>and</strong> even texture.In games, haptic joysticks <strong>and</strong> other controls such assteering wheels can provide sensations such as resistance toa car’s turn or the sensation <strong>of</strong> a bat hitting a ball. The NintendoWii game console comes with a controller that tracksthe direction <strong>and</strong> speed <strong>of</strong> its movement along with a set <strong>of</strong>simple but engrossing sports games to show its capabilities.Some emerging or near-future uses <strong>of</strong> haptic technologyinclude:


222 hard disk• remote surgery, where the surgeon can feel the resistance<strong>of</strong> tissues <strong>and</strong> the location <strong>of</strong> anatomical features• use <strong>of</strong> haptic technology to provide robots with morehumanlike gripping capabilities• 3D sculpture in a virtual 3D world modeling the characteristics<strong>of</strong> different materials <strong>and</strong> toolsLike virtual reality itself, haptics is currently foundin niche applications such as entertainment, control, <strong>and</strong>training systems. Besides the expense <strong>of</strong> the technologyitself, there is the need for specialized programming. However,the time may come when haptic support, like mouse<strong>and</strong> pen support, is included in operating systems <strong>and</strong>widely available programming libraries.Further ReadingBurdea, Grigore C. Force <strong>and</strong> Touch Feedback for Virtual Reality.New York: Wiley, 2006.Haptic Interface Research Laboratory (Purdue University).Available online. URL: http://www.ecn.purdue.edu/HIRL/.Accessed September 23, 2007.McLaughlin, Margaret L., Joao P. Hespanha, <strong>and</strong> Gaurav S.Sukhatme. Touch in Virtual Environments: Haptics <strong>and</strong> theDesign <strong>of</strong> Interactive Systems. Upper Saddle River, N.J.: PrenticeHall, 2002.Zyga, Lisa. “Artists ‘Draw on Air’ to Create 3D Illustrations.” Availableonline. URL: http://www.physorg.com/news109425896.html. Accessed September 23, 2007.hard diskEven after decades <strong>of</strong> evolution in computing, the harddisk drive remains the primary means <strong>of</strong> fast data storage<strong>and</strong> retrieval in computer systems <strong>of</strong> all sizes. The diskitself consists <strong>of</strong> a rigid aluminum alloy platter coated witha magnetic oxide material. The platter can be rotated atspeeds <strong>of</strong> more than 10,000 rpm. A typical drive consists <strong>of</strong>a stack <strong>of</strong> such platters mounted on a rotating spindle, witha read/write head mounted above each platter.Early hard drive heads were controlled by a steppermotor, which positioned the head in response to a series <strong>of</strong>electrical pulses. (This system is still used for floppy drives.)Today’s hard drives, however, are controlled by a voice-coilactuator, similar in structure to an audio speaker. The coilsurrounds a magnet. When a current enters the coil, it generatesa magnetic field that interacts with that <strong>of</strong> the permanentmagnet, moving the coil <strong>and</strong> thus the disk head. Unlikethe stepper motor, the voice coil is continuously variable <strong>and</strong>its greater precision allows data tracks to be packed moretightly on the platter surface, increasing disk capacity.The storage capacity <strong>of</strong> a drive is determined by thenumber <strong>of</strong> platters <strong>and</strong> the spacing (<strong>and</strong> thus number) <strong>of</strong>tracks that can be laid down on each platter. Capacitieshave steadily increased while prices have plummeted: In1980, for example, a hard drive for an Apple II microcomputercost more than $1,000 <strong>and</strong> held only 5 MB <strong>of</strong> data. As<strong>of</strong> 2007 internal hard drives with a capacity <strong>of</strong> 500 GB ormore cost around a $150.00.Data is organized on the disk by dividing the tracksinto segments called sectors. When the disk is preparedParts <strong>of</strong> a typical hard disk drive. Many hard drives have multipleheads <strong>and</strong> platters to allow for storage <strong>of</strong> larger amounts <strong>of</strong> data.to receive data (a process called formatting), each sectoris tested by writing <strong>and</strong> reading sample data. If an erroroccurs, the operating system marks the sector as unusable(virtually any hard disk will have at least a few such badsectors).The set <strong>of</strong> vertical corresponding tracks on the stack <strong>of</strong>platters that make up the drive is called a cylinder. Sincethe drive heads are connected vertically, if a head is currentlyreading or writing for example sector 89 on oneplatter, it is positioned over that same sector on all theothers. Therefore, the operating system normally storesfiles by filling the full cylinder before going to a new sectornumber.Another way to improve data flow is to use sector interleaving.Because many disk drives can read data faster thanthe operating system can read it from the disk’s memorybuffer, data is <strong>of</strong>ten stored by skipping over adjacent sectors.Thus, instead <strong>of</strong> storing a file on sectors 1, 2, <strong>and</strong> 3,it might be stored on sectors 1, 3, <strong>and</strong> 5 (this is called a 2:1interleave). Moving the head from sector 1 to sector 3 givesthe system enough time to process the data. (Otherwise,by the time the system was ready to read sector 2, the diskwould have rotated past it <strong>and</strong> the system would have towait through a complete rotation <strong>of</strong> the disk.) Newer CPUsare <strong>of</strong>ten fast enough to keep up with contiguous sectors,avoiding the need for interleaving.Data throughput tends to decrease as a hard drive isused. This is due to fragmentation. The operating systemruns out <strong>of</strong> sufficient contiguous space to store new files<strong>and</strong> has to write new files to many sectors widely scatteredon the disk. This means the head has to be moved more<strong>of</strong>ten, slowing data access. Using an operating system (or


hashing 223third party) defragmentation utility, users can periodicallyreorganize their hard drive so that files are again stored incontiguous sectors.Files can also be reorganized to optimize space ratherthan access time. If an operating system has a minimumcluster size c4K, a single file with only 32 bytes <strong>of</strong> datawill still consume 4,096 bytes. However, if all the files arewritten together as one huge file (with an index that specifieswhere each file begins) that waste <strong>of</strong> space would beavoided. This is the principle <strong>of</strong> disk compression. Diskcompression does slow access somewhat (due to the needto look up <strong>and</strong> position to the actual data location for afile) <strong>and</strong> the system becomes more fragile (since garblingthe giant file would prevent access to the data in perhapsthous<strong>and</strong>s <strong>of</strong> originally separate files). The low cost <strong>of</strong>high capacity drives today has made compression lessnecessary.Interfacing Hard DrivesWhen the operating system wants to read or write datato the disk, it must send comm<strong>and</strong>s to the driver, a programthat translates high-level comm<strong>and</strong>s to the instructionsneeded to operate the disk controller, which in turnoperates the motors controlling the disk heads. The twomost commonly used interfaces for PC internal hard drivestoday are both based on the ATA (Advanced <strong>Technology</strong>Attachment) st<strong>and</strong>ard. The older st<strong>and</strong>ard is PATA (parallelATA), also called IDE (Integrated Drive Electronics)or EIDE (Enhanced IDE). Increasingly common today isSATA, or serial ATA. Another alternative, more commonlyused on servers, is SCSI (Small <strong>Computer</strong> System Interface).SCSI is more expensive but has several advantages: It hasthe ability to organize incoming comm<strong>and</strong>s for greater efficiency<strong>and</strong> also features greater flexibility (an EIDE controllercan connect only two hard drives, while SCSI can “daisychain” a large number <strong>of</strong> disk drives or other peripherals).In practice, the two interfaces perform about equally well.USB (Universal Serial Bus) is frequently used to interfacewith external hard drive units (see usb).The capacity continues to increase, with data able tobe written more densely or perhaps in multiple layers onthe same disk surface. Denser storage also <strong>of</strong>fers the abilityto make drives more compact. Already hard drives with adiameter <strong>of</strong> about an inch have been built by IBM <strong>and</strong> othersfor use in digital cameras.The proliferation <strong>of</strong> multimedia (including video) <strong>and</strong>the growth <strong>of</strong> databases has fed a voracious appetite forhard drive space. Disks with a capacity <strong>of</strong> 1 TB (terabyte,or trillion bytes) were starting to come onto the market by2007. For larger installations, disk arrays (see raid) <strong>of</strong>ferhigh capacity <strong>and</strong> data-protecting redundancy.Perpendicular hard drive recording technology recentlydeveloped by Hitachi aligns the magnetic “grains” that holdbits <strong>of</strong> data vertically instead <strong>of</strong> horizontally, allowing fora considerably higher data density (<strong>and</strong> thus capacity, for agiven size disk). Hitachi suggests that eventually 1 TB canbe stored on a 3.5" disk.Drive speeds (<strong>and</strong> thus data throughput) have also beenincreasing, with more users choosing 7200 rpm rather thanthe formerly st<strong>and</strong>ard 5400 rpm drives. (There are drives asfast as 15,000 rpm, but for most applications the benefits <strong>of</strong>higher speed drop <strong>of</strong>f rapidly.)Another factor in data access time <strong>and</strong> throughput is theuse <strong>of</strong> a dedicated memory device (see cache) to “pre-fetch”data likely to be needed. Windows Vista allows memoryfrom some USB memory sticks (see flash drive) to workas a disk cache. “Hybrid” hard drives directly integratingRAM <strong>and</strong> drive storage are also available.Further ReadingJacob, Bruce, Spencer Ng, <strong>and</strong> David Wang. Memory Systems:Cache, DRAM, Disk. San Francisco: Morgan Kaufmann, 2007.“Perpendicular Hard Drive Recording <strong>Technology</strong>.” Available online.URL: http://www.webopedia.com/DidYouKnow/<strong>Computer</strong>_<strong>Science</strong>/2006/perpendicular_hard_drive_technology.asp.Accessed August 6, 2007.“Storage.” Tom’s Hardware Guide. Available online. URL: http://www.tomshardware.com/storage/index.html. Accessed August 6,2007.“What’s Inside a Hard Drive?” Available online. URL: http://www.webopedia.com/DidYouKnow/Hardware_S<strong>of</strong>tware/2002/InsideHardDrive.aspdYouKnow/Hardware_S<strong>of</strong>tware/2002/InsideHardDrive.asp. Accessed August 6, 2007.hashingA hash is a numeric value generated by applying a mathematicalformula to the numeric values <strong>of</strong> the charactersin a string <strong>of</strong> text (see characters <strong>and</strong> strings). The formulais chosen so that the values it produces are always thesame length (regardless <strong>of</strong> the length <strong>of</strong> the original text)<strong>and</strong> are very likely to be unique. (Two different stringsshould not produce the same hash value. Such an event iscalled a collision.)ApplicationsThe two major application areas for hashing are informationretrieval <strong>and</strong> cryptographic certification. In databases,an index table can be built that contains the hash values forthe key fields <strong>and</strong> the corresponding record number for eachfield, with the entries in hash value order. To search thedatabase, an input key is hashed <strong>and</strong> the value is comparedwith the index table (which can be done using a very fastbinary search). If the hash value is found, the correspondingrecord number is used to look up the record. This tends tobe much faster than searching an index file directly.Alternatively, a “coarser” but faster hashing function canbe used that will give the same hash value to small groups(called bins) <strong>of</strong> similar records. In this case the hash fromthe search key is matched to a bin <strong>and</strong> then the recordswithin the bin are searched for an exact match.In cryptography an encrypted message can be hashed,producing a unique fixed-length value. (The fixed lengthprevents attackers from using mathematical relationshipsthat might be discoverable from the field lengths.) Thehashed message can then be encrypted again to create anelectronic signature (see certificate, digital). For longmessages this is more efficient than having to apply the signaturefunction to each block <strong>of</strong> the encrypted message, yet


224 health, personalTo search a hashed database, the hashing formula is first applied tothe search key, yielding a hash value. That value can then be usedin a binary search to quickly zero in on the matching record, if any.the unique relationship between the original message <strong>and</strong>the hash maintains a high degree <strong>of</strong> security.Finally, hashing can be used for error detection. If amessage <strong>and</strong> its hash are sent together, the recipient canhash the received text. If the hash value generated matchesthe one received, it is highly likely the message was receivedintact (see also error correction).Further ReadingPartow, Arash. “General Purpose Hash Function Algorithms.”Available online. URL: http://www.partow.net/programming/hashfunctions/. Accessed August 6, 2007.Pieprzyk, Josef, <strong>and</strong> Babak Sadeghiyan. Design <strong>of</strong> Hashing Algorithms.New York: Springer-Verlag, 1993.health, personal See personal health informationmanagement.heapIn operating systems <strong>and</strong> certain programming languages(such as LISP), a heap is a pool <strong>of</strong> memory resources availablefor allocation by programs. The memory segments(sometimes called cells) can be the same size or <strong>of</strong> variablesize. If the same size, they are linked together by pointers(see list processing). Memory is then allocated for a variableby traversing the list <strong>and</strong> setting the required number<strong>of</strong> cells to be “owned” by that variable. (While some languagessuch as Pascal <strong>and</strong> C use explicit memory allocationor deallocation functions, other languages such as LISP usea separate runtime module that is not the responsibility <strong>of</strong>the programmer.)Deallocation (the freeing up <strong>of</strong> memory no longerneeded by a variable so it can be used elsewhere) is morecomplicated. In many languages several different pointerscan be used to refer to the same memory location. It istherefore necessary not only to disconnect a given pointerfrom the cell, but to track the total number <strong>of</strong> pointers connectedto the cell so that the cell itself is deallocated onlywhen the last pointer to it has been disconnected. Oneway to accomplish this is by setting up an internal variablecalled a reference counter <strong>and</strong> incrementing or decrementingit as pointers are connected or disconnected. The disadvantages<strong>of</strong> this approach include the memory overhead neededto store the counters <strong>and</strong> the execution overhead <strong>of</strong> havingto continually check <strong>and</strong> update the counters.An alternative approach is garbage collection. Here theruntime system simply connects or disconnects pointersas required by the program’s declarations, without makingan attempt to reclaim the disconnected (“dead”) cells. If<strong>and</strong> when the supply <strong>of</strong> free cells is exhausted, the runtimesystem takes over <strong>and</strong> begins a three-stage process. First,it provisionally sets the status indicator bit for each cell toshow that it is “garbage.” Each pointer in the program isthen traced (that is, its links are followed) into the heap,<strong>and</strong> if a valid cell is found that cell’s indicator is reset to“not garbage.” Finally, the garbage cells that remain arelinked back to the pool <strong>of</strong> free cells available for future allocation.The chief drawback <strong>of</strong> garbage collection is that themore cells actually being used by the program, the longerthe garbage-collecting process will take (since all <strong>of</strong> thesecells have to be traced <strong>and</strong> verified). Yet it is precisely whenmost cells are in use that garbage collection is most likely tobe required.The need for garbage collection has diminished in manyprogramming environments because modern computersnot only have large amounts <strong>of</strong> memory, most operatingsystems also implement virtual memory, which allows adisk or other storage device to be treated as an extension <strong>of</strong>main memory.Note: the term heap is also used to describe a particulartype <strong>of</strong> binary tree. (See tree.)Further ReadingLafore, Robert. Data Structures & Algorithms in Java. 2nd ed. Indianapolis:Sams, 2002.Preiss, Bruno R. “Heaps <strong>and</strong> Priority Queues.” Available online.URL: http://www.brpreiss.com/books/opus4/html/page352.html. Accessed August 6, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Addison-Wesley, 2007.help systemsIn the early days <strong>of</strong> computing, the programmers <strong>of</strong> a systemtended to also be its users <strong>and</strong> were thus intimatelyfamiliar with the program’s operation <strong>and</strong> comm<strong>and</strong> set.


hexadecimal system 225If not a programmer, the user <strong>of</strong> a mainframe program wasprobably at least a well-trained operator who could workwith the aid <strong>of</strong> a brief summary or notes provided by theprogrammer. However, with the beginnings <strong>of</strong> <strong>of</strong>fice automationin the 1970s <strong>and</strong> the growing use <strong>of</strong> desktop computersin <strong>of</strong>fice, home, <strong>and</strong> school in the 1980s, increasinglycomplex programs were being put in the h<strong>and</strong>s <strong>of</strong> userswho <strong>of</strong>ten had only minimal computer training (see computerliteracy).While programs <strong>of</strong>ten came with one or more tutorialor reference manuals, designers realized that <strong>of</strong>fering helpthrough the program itself would have some clear advantages.First, the user would not have to switch attention fromthe computer screen to look things up in a manual. Second,the help system could be programmed to not only provideinformation, but also to help the user find the informationneeded in a given situation. For example, related topicscould be linked together <strong>and</strong> a searchable index provided.ImplementationPrograms running under the text-based MS-DOS <strong>of</strong> the1980s tended to have only rudimentary help screens (<strong>of</strong>teninvoked by pressing the F1 key). Generally, these were limitedto brief summaries <strong>of</strong> comm<strong>and</strong>s <strong>and</strong> associated keycombinations. However, with the growing use <strong>of</strong> Micros<strong>of</strong>tWindows (<strong>and</strong> the similar Macintosh interface), a morecomplete <strong>and</strong> versatile help system was possible. Since thesesystems allowed multiple windows to be displayed on thescreen, the user could consult help information while stillseeing the program’s main screen. This allowed for trying arecommended procedure <strong>and</strong> observing the results.Windows <strong>and</strong> Macintosh help systems also featuredhighlighted links in the text that could be used to jump torelated topics (see hypertext <strong>and</strong> hypermedia). A topicword can also be typed into an index box, bringing up anymatching topics. If all else fails, the entire help file could beindexed so that any word could be used to find matchingtopics.More recent Windows programs also include wizards. Awizard is a step-by-step procedure for accomplishing a particulartask. For example, if a Micros<strong>of</strong>t Word user want tolearn how to format text into multiple columns, the help systemcan <strong>of</strong>fer a wizard that takes the user through the procedure<strong>of</strong> specifying the number <strong>of</strong> columns, column size, <strong>and</strong>so on. The steps can even be applied directly to the documentwith the wizard “driving” the program accordingly.Recently, many programs have implemented their helpin the form <strong>of</strong> Web pages, stored either on the user’s computeror at the vendor’s Web site (see html). HTML has theadvantage that it is now a nearly universal format that canbe used on a variety <strong>of</strong> platforms <strong>and</strong> (if hosted on a Website) the help can be continually improved <strong>and</strong> updated.(Micros<strong>of</strong>t’s latest version <strong>of</strong> HTML Help has supplanted itsoriginal WinHelp, which is no longer supported by Vista.)A variety <strong>of</strong> shareware <strong>and</strong> commercial help authoringsystems such as RoboHelp are available to help developerscreate help in Windows or HTML format. UNIX systems,which have always included an on-line manual, now typically<strong>of</strong>fer HTML-based help as well.With printed documentation being increasinglyeschewed for cost-cutting reasons, users <strong>of</strong> many programstoday must depend on the help system as well as on on-linedocuments (such as PDF files) <strong>and</strong> Web-based support.Further ReadingHackos, JoAnn T., <strong>and</strong> Dawn M. Steven. St<strong>and</strong>ards for Online Communication:Publishing Information for the Internet/World WideWeb/Help Systems/Corporate Intranets. New York: Wiley, 1997.Heng, Christopher. “Free Help Authoring, Manual <strong>and</strong> DocumentationWriting Tools.” Available online. URL: http://www.thefreecountry.com/programming/helpauthoring.shtml.Accessed August 6, 2007.“Micros<strong>of</strong>t HTML Help 1.4 SDK.” Available online. URL: http://msdn2.micros<strong>of</strong>t.com/en-us/library/ms670169.aspx. AccessedAugust 6, 2007.Weber, Jean Hollis. Is the Help Helpful? How to Create Online HelpThat Meets Your Users’ Needs. Whitefish Bay, Wisc.: HentzenwerkePublishing, 2004.hexadecimal systemThe base 16 or hexadecimal system is a natural way to representthe binary data stored in a computer. It is more compactthan binary because four binary digits can be replacedby a single “hex” digit.The following table gives the corresponding decimal,binary, <strong>and</strong> hex values from 0 to 15:Decimal Binary Hex0 0 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 910 1010 A11 1011 B12 1100 C13 1101 D14 1110 E15 1111 FNote that decimal <strong>and</strong> hex digits are the same from 0 to9, but hex uses the letters A–F to represent the digits correspondingto decimal 10–15. The system extends to highernumbers using increasing powers <strong>of</strong> 16, just as decimaluses powers <strong>of</strong> 10: For example, hex FF represents binary11111111 or decimal 255. Many <strong>of</strong> the apparently arbitrarynumbers encountered in programming can be better understoodif one realizes that they correspond to convenientgroupings <strong>of</strong> bits: FF is eight bits, sufficient to hold a singlecharacter (see characters <strong>and</strong> strings). In low-level programmingmemory addresses are also usually given in hex(see assembler).


226 history <strong>of</strong> computingFurther ReadingMatz, Kevin. “Introduction to Binary <strong>and</strong> Hexadecimal.” Availableonline. URL: http://www.comprenica.com/atrevida/atrtut01.html. Accessed August 7, 2007.history <strong>of</strong> computingWith the digital computer now more than 60 years old, therehas been growing interest in its history <strong>and</strong> development.Although it would take a library <strong>of</strong> books to do the subjectjustice, providing a summary <strong>of</strong> the main themes <strong>and</strong> trends<strong>of</strong> each decade <strong>of</strong> computing will give readers <strong>of</strong> this booksome helpful context for underst<strong>and</strong>ing the other entries.Early HistoryIn a sense, the idea <strong>of</strong> mechanical computation emerged inprehistory when early humans discovered that they coulduse physical objects such as piles <strong>of</strong> stones, notches, ormarks as a counting aid. The ability to perform computationbeyond simple counting extends back to the ancientworld: For example, the abacus developed in ancient Chinacould still beat the best mechanical calculators as late asthe 1940s (see calculator). The mechanical calculatorbegan in the West in the 17th century, most notably withthe machines created by philosopher-scientist Blaise Pascal.Other devices such as “Napier’s bones” (ancestor <strong>of</strong> theslide rule) depended on proportional logarithmic relationships(see analog computer).While the distinction between a calculator <strong>and</strong> true computeris subtle, Charles Babbage’s work in the 1830s delineatedthe key concepts. His “analytical engine,” conceived butnever built, would have incorporated punched cards for datainput (an idea taken over from the weaving industry), a centralcalculating mechanism (the “mill”), a memory (“store”),<strong>and</strong> an output device (printer). The ability to input both programinstructions <strong>and</strong> data would enable such a device tosolve a wide variety <strong>of</strong> problems (see Babbage, Charles).Babbage’s thought represented the logical extension <strong>of</strong>the worldview <strong>of</strong> the industrial revolution to the problem<strong>of</strong> calculation. The computer was a “loom” that wove mathematicalpatterns. While Babbage’s advanced ideas becamelargely dormant after his death, the importance <strong>of</strong> statistics<strong>and</strong> information management would continue to grow withthe development <strong>of</strong> the modern industrial state in Europe<strong>and</strong> the United States throughout the 19th century. Thepunch card as data store <strong>and</strong> the creation <strong>of</strong> automatic tabulationsystems would reemerge near the end <strong>of</strong> the century(see Hollerith, Herman).During the early 20th century, mechanical calculators <strong>and</strong>card tabulation <strong>and</strong> sorting machines made up the data processingsystems for business, while researchers built specialpurposeanalog computers for exploring problems in physics,electronics, <strong>and</strong> engineering. By the late 1930s, the idea <strong>of</strong> aprogrammable digital computer emerged in the work <strong>of</strong> theoreticians(see Turing, Alan <strong>and</strong> von Neumann, John).1940sThe highly industrialized warfare <strong>of</strong> World War II requiredthe rapid production <strong>of</strong> a large volume <strong>of</strong> accurate calculationsfor such applications as aircraft design, gunnery control,<strong>and</strong> cryptography. Fortunately, the field was now ripefor the development <strong>of</strong> programmable digital computers.Many reliable components were available to the computerdesigner including switches <strong>and</strong> relays from the telephoneindustry <strong>and</strong> card readers <strong>and</strong> punches (manufactured byHollerith’s descendant, IBM), <strong>and</strong> vacuum tubes used inradio <strong>and</strong> other electronics.Early computing machines included the Mark I (seeAiken, Howard), a huge calculator driven by electricalrelays <strong>and</strong> controlled by punched paper tape. Anothermachine, the prewar Atanas<strong>of</strong>f-Berry <strong>Computer</strong> (seeAtanas<strong>of</strong>f, John) was never completed, but demonstratedthe use <strong>of</strong> electronic (vacuum tube) components, whichwere much faster than electromechanical relays. Meanwhile,a German inventor built a programmable binary computerthat combined a mechanical number storage mechanismwith telephone relays (see Zuse, Conrad). Zuse also proposedbuilding an electronic (vacuum tube) computer, butthe German government decided not to support the project.During the war, British <strong>and</strong> American code breakersbuilt a specialized electronic computer called Colossus,which read encoded transmissions from tape <strong>and</strong> brokethe code <strong>of</strong> the supposedly impregnable German Enigmamachines.The most viable general-purpose computers were developedby J. Presper Eckert <strong>and</strong> John Mauchly starting in1943 (see Eckert, J. Presper <strong>and</strong> Mauchly, John). Thefirst, ENIAC, was completed in 1946 <strong>and</strong> had been intendedto perform ballistic calculations. While its programmingfacilities were primitive (programs had to be set up via aplugboard), ENIAC could perform 5,000 arithmetic operationsper second, about a thous<strong>and</strong> times faster than theJohn Mauchly <strong>and</strong> Presper Eckert, Jr., shown with a portion <strong>of</strong> theirENIAC computer. The ENIAC is <strong>of</strong>ten considered to be the firstgeneral-purpose electronic digital computer. (Hulton Archive /Getty Images)


history <strong>of</strong> computing 227electromechanical Mark I. ENIAC had about 19,000 vacuumtubes <strong>and</strong> consumed as much power as perhaps a thous<strong>and</strong>modern desktop PCs.1950sThe 1950s saw the establishment <strong>of</strong> a small but viable commercialcomputer industry in the United States <strong>and</strong> parts <strong>of</strong>Europe. Eckert <strong>and</strong> Mauchly formed a company to design<strong>and</strong> market the UNIVAC, based partly on work on the experimentalEDVAC. This new generation <strong>of</strong> computers wouldincorporate the key concept <strong>of</strong> the stored program: Ratherthan the program being set up by wiring or simply readsequentially from tape or cards, the program instructionswould be stored in memory just like any other data. Besidesallowing a computer to fetch instructions at electronic ratherthan mechanical speeds, storing programs in memory meantthat one part <strong>of</strong> a program could refer to another part duringoperation, allowing for such mechanisms as branching,looping, the running <strong>of</strong> subroutines, <strong>and</strong> even the ability <strong>of</strong>a program to modify its own instructions.The UNIVAC became a hit with the public when it wasused to correctly predict the outcome <strong>of</strong> the 1952 presidentialelection. Government <strong>of</strong>fices <strong>and</strong> large corporationsbegan to look toward the computer as a way to solve theirincreasingly complex data processing needs. Forty UNI-VACs were eventually built <strong>and</strong> sold to such customers asthe U.S. Census Bureau, the U.S. Army <strong>and</strong> Air Force, <strong>and</strong>insurance companies. Sperry (having bought the Mauchly-Eckert company), Bendix, <strong>and</strong> other companies had somesuccess in selling computers (<strong>of</strong>ten for specialized applications),but it was IBM that eventually captured the broadbusiness market for mainframe computers.The IBM 701 (marketed to the government <strong>and</strong> defenseindustry) <strong>and</strong> 702 (for the business market) incorporated severalemerging technologies including a fast electronic (tube)memory that could store 4,096 36-bit data words, a rotatingmagnetic drum that could store data that is not immediatelyneeded, <strong>and</strong> magnetic tape for backup. The IBM 650, marketedstarting in 1954, became the (relatively) inexpensiveworkhorse computer for businesses (see mainframe). TheIBM 704, introduced in 1955, incorporated magnetic corememory <strong>and</strong> also featured floating-point calculations.1960sThe 1960s saw the advent <strong>of</strong> a “solid state” computer designfeaturing transistors in place <strong>of</strong> vacuum tubes <strong>and</strong> the use<strong>of</strong> ferrite magnetic core memory (introduced commerciallyin 1955). These innovations made computers both morecompact (although they were still large by modern st<strong>and</strong>ards),more reliable, <strong>and</strong> less expensive to operate (dueto lower power consumption.) The IBM 1401 was a typicalexample <strong>of</strong> this new technology: It was compact, relativelysimple to operate, <strong>and</strong> came with a fast printer that made iteasier to generate data.There was a natural tendency to increase the capacity<strong>of</strong> computers by adding more transistors, but the h<strong>and</strong>wiring<strong>of</strong> thous<strong>and</strong>s <strong>of</strong> individual transistors was difficult<strong>and</strong> expensive. As the decade progressed, however, the concept<strong>of</strong> the integrated circuit began to be implemented incomputing. The first step in that direction was to attach anumber <strong>of</strong> transistors <strong>and</strong> other components to a ceramicsubstrate, creating modules that could be h<strong>and</strong>led <strong>and</strong>wired more easily during the assembly process.IBM applied this technology to create what wouldbecome one <strong>of</strong> the most versatile <strong>and</strong> successful lines inthe history <strong>of</strong> computing, the IBM System/360 computer.This was actually a series <strong>of</strong> 14 models that <strong>of</strong>fered successivelygreater memory capacity <strong>and</strong> processing speedwhile maintaining compatibility so that programs developedon a smaller, cheaper model would also run on themore expensive machines. Compatibility was ensured bydevising a single 360 instruction set that was implementedat the machine level by microcode stored in ROM (read-onlymemory) <strong>and</strong> optimized for each model. By 1970 IBM hadsold more than 18,000 360 systems worldwide.By the mid-1960s, however, a new market segment hadcome into being: the minicomputer. Pioneered by DigitalEquipment Corporation (DEC) with its PDP line, the minicomputerwas made possible by rugged, compact solid-state(<strong>and</strong> increasingly integrated) circuits. Architecturally, themini usually had a shorter data word length than the mainframe,<strong>and</strong> used indirect addressing (see addressing) forflexibility in accessing memory. Minis were practical for usesin <strong>of</strong>fices <strong>and</strong> research labs that could not afford (or house)a mainframe (see minicomputer). They were also a boonto the emerging use <strong>of</strong> computers in automating manufacturing,data collection, <strong>and</strong> other activities, because a minicould fit into a rack with other equipment (see also embeddedsystems). In addition to DEC, Control Data Corporation(CDC) produced both minis <strong>and</strong> large high-performancemachines (the Cyber series), the first truly commerciallyviable supercomputers (see supercomputer).In programming, the main innovation <strong>of</strong> the 1960s wasthe promulgation <strong>of</strong> the first widely-used, high-level programminglanguages, COBOL (for business) <strong>and</strong> FORTRAN(for scientific <strong>and</strong> engineering calculations), the result <strong>of</strong>research in the late 1950s. While some progress had beenmade earlier in the decade in using symbolic names forquantities <strong>and</strong> memory locations (see assembler), the newhigher-level languages made it easier for pr<strong>of</strong>essionals outsidethe computer field to learn to program <strong>and</strong> made theprograms themselves more readable, <strong>and</strong> thus easier tomaintain. The invention <strong>of</strong> the compiler (a program thatcould read other programs <strong>and</strong> translate them into lowlevelmachine instructions) was yet another fruit <strong>of</strong> thestored program concept.1970sThe 1970s saw minis becoming more powerful <strong>and</strong> versatile.The DEC VAX (“Virtual Address Extension”) series allowedlarger amounts <strong>of</strong> memory to be addressed <strong>and</strong> increasedflexibility. Meanwhile, at the high end, Seymour Cray leftCDC to form Cray Research, a company that would producethe world’s fastest supercomputer, the compact, freoncooledCray-1. In the mainframe mainstream, IBM’s 370series maintained that company’s dominant market share inbusiness computing.


228 history <strong>of</strong> computingThe most striking innovation <strong>of</strong> the decade, however,was the microcomputer. The microcomputer (now <strong>of</strong>tencalled the “computer chip”) combined three basic ideas: anintegrated circuit so compact that it could be laid on a singlesilicon chip, the design <strong>of</strong> that circuit to perform the essentialaddressing <strong>and</strong> arithmetic functions required for a computer,<strong>and</strong> the use <strong>of</strong> microcode to embody the fundamentalinstructions. Intel’s 4004 introduced in late 1971 was originallydesigned to sell to a calculator company. When thatdeal fell through, Intel started distributing the microprocessorsin developer’s kits to encourage innovators to designcomputers around them. Soon Intel’s upgraded 8008 <strong>and</strong>8080 microprocessors were available, along with <strong>of</strong>feringsby Rockwell, Texas Instruments, <strong>and</strong> other companies.Word <strong>of</strong> the microprocessor spread through the electronichobbyist community, being given a boost by theJanuary 1975 issue <strong>of</strong> Popular Electronics that featured theAltair computer kit, available from an Albuquerque companycalled MITS for about $400. Designed around the Intel8080, the Altair featured an expansion bus (an idea borrowedfrom minis).The Altair was hard to build <strong>and</strong> had very limited memory,but it was soon joined by companies that designed<strong>and</strong> marketed ready-to-use microcomputer systems, whichsoon became known as personal computers (PCs). By 1980,entries in the field included Apple (Apple II), Commodore(Pet), <strong>and</strong> Radio Shack (TRS-80). These computers sharedcertain common features: a microprocessor, memory in theform <strong>of</strong> plug-in chips, read-only memory chips containinga rudimentary operating system <strong>and</strong> a version <strong>of</strong> the BASIClanguage, <strong>and</strong> an expansion bus to which users could connectperipherals such as disk drives or printers.The spread <strong>of</strong> microcomputing was considerably aidedby the emergence <strong>of</strong> a technical culture where hobbyistsIntegrated circuit (IC) chips for memory <strong>and</strong> control were makingfor increasingly powerful, compact, <strong>and</strong> reliable computer components.The microprocessor supplied the remaining ingredient neededfor a true desktop personal computer.<strong>and</strong> early adopters wrote <strong>and</strong> shared s<strong>of</strong>tware, snatchedup a variety <strong>of</strong> specialized magazines, talked computers inuser groups, <strong>and</strong> evangelized for the cause <strong>of</strong> widespreadpersonal computing.Meanwhile, programming <strong>and</strong> the art <strong>of</strong> s<strong>of</strong>twaredevelopment did not st<strong>and</strong> still. Innovations <strong>of</strong> the 1970sincluded the philosophy <strong>of</strong> structured programming (featuringwell-defined control structures <strong>and</strong> methods forpassing data to <strong>and</strong> from subroutines <strong>and</strong> procedures). Newlanguages such as Pascal <strong>and</strong> C, building on the earlierAlgol, supported structured programming design to varyingdegrees (see structured programming). Programmers oncollege campuses also had access to UNIX, a powerful operatingsystem containing a relatively simple kernel, a shellfor interaction with users, <strong>and</strong> a growing variety <strong>of</strong> utilityprograms that could be connected together to solve dataprocessing problems (see unix). It was in this environmentthat the government-funded ARPANET developed protocolsfor communicating between computers <strong>and</strong> allowingremote operation <strong>of</strong> programs. Along with this came e-mail,the sharing <strong>of</strong> information in newsgroups (Usenet), <strong>and</strong> agrowing web <strong>of</strong> links between networks that would eventuallybecome the Internet (see internet).1980sIn the 1980s, the personal computer came <strong>of</strong> age. IBM brokefrom its methodical corporate culture <strong>and</strong> allowed a designteam to come up with a PC that featured an open, exp<strong>and</strong>ablearchitecture. Other companies such as Compaq legallycreated compatible systems (called “clones”), <strong>and</strong> “PC-compatible”machines became the industry st<strong>and</strong>ard. Under theleadership <strong>of</strong> Bill Gates, Micros<strong>of</strong>t gained control <strong>of</strong> theoperating system market <strong>and</strong> also became the dominantcompetitor in applications s<strong>of</strong>tware (particularly <strong>of</strong>fice s<strong>of</strong>twaresuites).Although unable to gain market share comparable to thePC <strong>and</strong> its clones, Apple’s innovative Macintosh, introducedin 1984, adapted research from the Xerox PARC laboratoryin user interface design. At a time when PC compatibleswere still using Micros<strong>of</strong>t’s text-based MS-DOS, the Macsported a graphical user interface featuring icons, menus,<strong>and</strong> buttons, controlled by a mouse (see user interface).Micros<strong>of</strong>t responded by developing the broadly similarWindows operating environment, which started out slowlybut had become competitive with Apple’s by the end <strong>of</strong> thedecade.The 1980s also saw great growth in networking. Universitycomputers running UNIX were increasingly linkedthrough what was becoming the Internet, while <strong>of</strong>fice computersincreasingly used local area networks (LANs) suchas those based on Novell’s Netware system. Meanwhile, PCswere also being equipped with modems, enabling users todial up a growing number <strong>of</strong> on-line services ranging fromgiants such as CompuServe to a diversity <strong>of</strong> individuallyrun bulletin board systems (see bulletin board systems).In the programming field a new paradigm, object-orientedprogramming (OOP) was <strong>of</strong>fered by languages suchas smalltalk <strong>and</strong> C++, a variant <strong>of</strong> the popular C language.The new style <strong>of</strong> programming focused on programs as


Hollerith, Herman 229embodying relationships between objects that are responsiblefor both private data <strong>and</strong> a public interface representedby methods, or capabilities <strong>of</strong>fered to users <strong>of</strong> the object.Both structured <strong>and</strong> object-oriented methods attempted tokeep up with the growing complexity <strong>of</strong> large s<strong>of</strong>tware systemsthat might incorporate millions <strong>of</strong> lines <strong>of</strong> code. Thefederal government adopted the Ada language with its abilityto precisely manage program structure <strong>and</strong> data operations.(See object-oriented programming <strong>and</strong> ada.)1990sBy the 1990s, the PC was a mature technology dominatedby Micros<strong>of</strong>t’s Windows operating system. UNIX, too, hadmatured <strong>and</strong> become the system <strong>of</strong> choice for university computing<strong>and</strong> the worldwide Internet. Although the potential <strong>of</strong>the Internet for education <strong>and</strong> commerce was beginning tobe explored, at the beginning <strong>of</strong> the decade the network wasfar from friendly for the average consumer user.This changed when Tim Berners-Lee, a researcher atGeneva’s CERN physics lab, adapted hypertext (a way tolink documents together) with the Internet protocol toimplement the World Wide Web. By 1994, Web browsings<strong>of</strong>tware that could display graphics <strong>and</strong> play sounds wasavailable for Windows-based <strong>and</strong> other computers (seeWorld Wide Web <strong>and</strong> Web browser). The remainder <strong>of</strong>the decade became a frenzied rush to identify <strong>and</strong> exploitbusiness plans based on e-commerce, the buying <strong>and</strong> selling<strong>of</strong> goods <strong>and</strong> services on-line (see e-commerce). Meanwhile,educators dem<strong>and</strong>ed Internet access for schools.In the <strong>of</strong>fice, the Intranet (a LAN based on the InternetTCP/IP protocol) began to supplant earlier networkingschemes. Belatedly recognizing the threat <strong>and</strong> potentialposed by the Internet, Bill Gates plunged Micros<strong>of</strong>t intothe Web server market, included the free Internet Explorerbrowser with Windows, <strong>and</strong> vowed that all Micros<strong>of</strong>t programswould work seamlessly with the Internet.Moore’s Law, the dictum that computer power roughlydoubles every 18 months, continued to hold true as PCswent from clock rates <strong>of</strong> a few tens <strong>of</strong> MHz to more than 1GHz. RAM <strong>and</strong> hard disk capacity kept pace, while low-costcolor printers, scanners, digital cameras, <strong>and</strong> video systemsmade it easier than ever to bring rich media content intothe PC <strong>and</strong> the on-line world.Beyond 2000The new decade began with great hopes, particularly for theWeb <strong>and</strong> multimedia “dot-coms,” but their stocks, inflatedby unsustainable expectations, took a significant dip in2000–2001. By the middle <strong>of</strong> the decade the computingindustry had largely recovered <strong>and</strong> in many ways was strongerthan ever. On the Web, new s<strong>of</strong>tware approaches (seeAjax, application service provider, <strong>and</strong> service-orientedarchitecture) are changing the way services <strong>and</strong>even applications are delivered. The integration <strong>of</strong> searchengines, mapping, local content, <strong>and</strong> user participation (seeblogging, user-created content, <strong>and</strong> social networking)is changing the relationship between companies <strong>and</strong>their customers.In hardware, Moore’s law is now expressed not throughfaster single processors, but using processors with two, four,or more processing “cores,” challenging s<strong>of</strong>tware designers(see multiprocessing). Mobile computing is one <strong>of</strong> thestrongest areas <strong>of</strong> growth (see pda <strong>and</strong> smartphone), withdevices combining voice phone, text messaging, e-mail, <strong>and</strong>Web browsing.)The industry continues to face formidable challengesranging from mitigating environmental impact (see greenpc) to the shifting <strong>of</strong> manufacturing <strong>and</strong> even s<strong>of</strong>twaredevelopment to rapidly growing countries such as India<strong>and</strong> China (see globalism <strong>and</strong> the computer industry.)Thus far, each decade has brought new technologies <strong>and</strong>methods to the fore, <strong>and</strong> few observers doubt that this willbe true in the future.Note: for a more detailed chronology <strong>of</strong> significantevents in computing, see Appendix 1: “Chronology <strong>of</strong> Computing.”For more on emerging technologies, see trends<strong>and</strong> emerging technologies.Further ReadingAllan, Roy A. A History <strong>of</strong> the Personal <strong>Computer</strong>: The People <strong>and</strong>the <strong>Technology</strong>. London, Ont.: Allan Publishing, 2001.Campbell-Kelly, Martin. From Airline Reservations to Sonic theHedgehog: A History <strong>of</strong> the S<strong>of</strong>tware Industry. Cambridge,Mass.: MIT Press, 2004.Ceruzzi, Paul E. A History <strong>of</strong> Modern Computing. 2nd ed. Cambridge,Mass.: MIT Press, 2003.Ch<strong>and</strong>ler, Alfred D., Jr. Inventing the Electronic Century: The EpicStory <strong>of</strong> the Consumer Electronics <strong>and</strong> <strong>Computer</strong> Industries,with a New Preface. Cambridge, Mass.: Harvard UniversityPress, 2005.<strong>Computer</strong> History Museum. Available online. URL: http://www.computerhistory.org/. Accessed June 10, 2007.Ifrah, Georges. The Universal History <strong>of</strong> Computing: From the Abacusto the Quantum <strong>Computer</strong>. New York: Wiley, 2002.NetHistory. Available online. URL: http://www.nethistory.info/index.html. Accessed August 7, 2007.Hollerith, Herman(1860–1929)AmericanInventorHerman Hollerith invented the automatic tabulating machine,a device that could read the data on punched cards <strong>and</strong> displayrunning totals. His invention would become the basisfor the data tabulating <strong>and</strong> processing industry. Hollerithwas born in Buffalo, New York, <strong>and</strong> graduated from theColumbia School <strong>of</strong> Mines. After graduation, he went towork for the U.S. Census as a statistician. Among other taskshe compiled vital statistics for Dr. John Shaw Billings, whosuggested to Hollerith that using punched cards <strong>and</strong> somesort <strong>of</strong> tabulator would help the Census Department keep upwith the growing volume <strong>of</strong> demographic statistics.Hollerith studied the problem <strong>and</strong> decided that he couldbuild a suitable machine. He went to MIT, where he taughtmechanical engineering while working on the machine,which was partly inspired by an earlier device that hadused a piano-type roll rather than punched cards as input.


230 home <strong>of</strong>ficeFacing vigorous competition <strong>and</strong> in declining health,Hollerith sold his patent rights to the company that eventuallyevolved into IBM, the company that would cometo dominate the market for tabulators, calculators, <strong>and</strong>other <strong>of</strong>fice machines. The punched card, <strong>of</strong>ten called theHollerith card, would become a natural choice for computerdesigners <strong>and</strong> would remain the principal means <strong>of</strong>data <strong>and</strong> program input for mainframe computers untilthe 1970s.Further ReadingAustrian, G. D. Herman Hollerith: Forgotten Giant <strong>of</strong> InformationProcessing. New York: Columbia University Press, 1982.Kistermann, F. W. “The Invention <strong>and</strong> Development <strong>of</strong> the HollerithPunched Card.” Annals <strong>of</strong> the History <strong>of</strong> Computing, 13,245–259.Russo, Mark. “Herman Hollerith: The World’s First StatisticalEngineer.” Available online. URL: http://www.history.rochester.edu/steam/hollerith. Accessed August 7, 2007.The Hollerith tabulator <strong>and</strong> sorter box, invented by Herman Hollerith<strong>and</strong> used in the 1890 U.S. census. It “read” cards by passingthem through electrical contacts. (Hulton Archive / GettyImages)The peripatetic Hollerith soon got a job with the U.S. PatentOffice, partly to learn the procedures he would need to followto patent his tabulator. He applied for several patents,including one for the punched-card tabulator. He tested thedevice with vital statistics in Baltimore, New York, <strong>and</strong> thestate <strong>of</strong> New Jersey.Hollerith’s mature system included a punch device thata clerk could use to record variable data in many categorieson the same card (a stack <strong>of</strong> cards could also be prepunchedwith constant data, such as the number <strong>of</strong> the census district).The cards were then fed into a device something likea small printing press. The top part <strong>of</strong> the press had anarray <strong>of</strong> spring-loaded pins that connected to tiny pots <strong>of</strong>mercury (an electrical conductor) in the bottom. The pinswere electrified. Where a pin encountered a punched holein the card, it penetrated through to the mercury, allowingcurrent to flow. The current created a magnetic field thatmoved the corresponding counter dial forward one position.The dials could be read after a batch <strong>of</strong> cards was finished,giving totals for each category, such as an ethnicityor occupation. The dials could also be connected to countmultiple conditions (for example, the total number <strong>of</strong> foreign-borncitizens who worked in the clothing trade).Aided by Hollerith’s machines, a census unit was ableto process 7,000 records a day for the 1890 census, aboutten times the rate in the 1880 count. Starting around 1900,Hollerith brought out improved models <strong>of</strong> his machinesthat included such features as an automatic (rather thanh<strong>and</strong>-fed) card input mechanism, automatic sorters, <strong>and</strong>tabulators that boasted a much higher speed <strong>and</strong> capacity.Hollerith machines soon found their way into governmentagencies involved with vital statistics, agricultural statistics,<strong>and</strong> other data-intensive matters, as well as insurancecompanies <strong>and</strong> other businesses.home <strong>of</strong>ficeThe widespread use <strong>of</strong> the personal computer <strong>and</strong> associatedperipherals such as printers has made it more practicalfor many people to do at least part <strong>of</strong> their work fromtheir homes. In addition to traditional freelance occupationssuch as writing <strong>and</strong> editing, many other businessesincluding consulting, design, <strong>and</strong> sales can now be conductedfrom a home <strong>of</strong>fice. <strong>Computer</strong> hardware <strong>and</strong> s<strong>of</strong>twaremakers began to target a distinctive market niche thatis sometimes referred to as SOHO (Small Office / HomeOffice), thus including both actual home <strong>of</strong>fices <strong>and</strong> smallcommercial <strong>of</strong>fices.As a market, the SOHO has somewhat different requirementsthan the large <strong>of</strong>fices traditionally served by majorcomputer vendors:• Relatively modest PCs as compared to heavy-duty fileservers or workstations• Peripherals shared by two or more PCs (although theplummeting price <strong>of</strong> printers made it common to provideeach PC with its own printer)• The need for a small “footprint”—that is, minimizingthe space taken up by the equipment. Multifunctionperipherals (typically incorporating printer, scanner,copier, <strong>and</strong> perhaps a fax machine) are a popular solutionto this requirement.• A simple local network (see local area network)with shared Internet access• Low-end or midrange s<strong>of</strong>tware (such as Micros<strong>of</strong>tWorks or Office Small Business edition as opposed tothe full-blown Office suite)• Application for collaboration <strong>and</strong> productivity deliveredvia the Web (such as Google Apps) may also bean attractive alternative.• Available installation <strong>and</strong> support (since many homeusers lack technical hardware or system administrationskills)


Hopper, Grace Murray 231Although the home or small <strong>of</strong>fice remains a significantmarket segment, specific targeting to the segment hasbecome more difficult. With falling PC prices <strong>and</strong> increasingcapabilities, there is little difference today between amid-level “consumer” computer system <strong>and</strong> the kinds <strong>of</strong>systems previously marketed for home <strong>of</strong>fice use.Further ReadingAttard, Janet. The Home Office <strong>and</strong> Small Business Answer Book.2nd ed. New York: Owl Books, 2000.Ivens, Kathy. Home Networking for Dummies. 4th ed. Hoboken,N.J.: Wiley, 2007.Orl<strong>of</strong>f, Erica, <strong>and</strong> Kathy Levinson. The 60-Second Commute: AGuide to Your 24/7 Home Office Life. Upper Saddle River, N.J.:Prentice Hall, 2003.Slack, S. E. CNET Do-It-Yourself Digital Home Office Projects. Berkeley,Calif.: McGraw-Hill Osborne Media, 2007.Small Business Computing. Available online. URL: http://www.smallbusinesscomputing.com/. Accessed August 7, 2007.SOHO Computing. Available online. URL: http://www.sohocomputing.info/. Accessed August 7, 2007.Hopper, Grace Murray(1906–1992)American<strong>Computer</strong> ScientistGrace Brewster Murray Hopper was an innovator in thedevelopment <strong>of</strong> high-level computer languages in the 1950s<strong>and</strong> 1960s. She is best known for her role in the development<strong>of</strong> COBOL, which became the premier language forbusiness data processing.Hopper was born in New York City. She graduated withhonors with a B.A. in mathematics <strong>and</strong> physics from VassarCollege in 1928, <strong>and</strong> went on to receive her M.A. <strong>and</strong> Ph.D.in mathematics at Yale University. She taught at Vassar from1931 to 1943, when she joined the U.S. Naval Reserve atthe height <strong>of</strong> World War II. As a lieutenant (J.G.), she wasassigned to the Bureau <strong>of</strong> Ordnance, where she worked inthe Computation Project at Harvard under pioneer computerdesigner Howard Aiken (see Aiken, Howard). Shebecame one <strong>of</strong> the first “coders” (that is, programmers) forthe Mark I. After the war, Hopper worked for a few yearsin Harvard’s newly established Computation Laboratory. In1949, however, she became senior mathematician at theEckert-Mauchly Corporation, the world’s first commercialcomputer company, where she helped with program designfor the famous UNIVAC. She stayed with what became theUNIVAC division under Remington R<strong>and</strong> (later SperryR<strong>and</strong>) until 1971.While working with UNIVAC, Hopper’s main focus wason the development <strong>of</strong> programming languages that couldallow people to use symbolic names <strong>and</strong> descriptive statementsinstead <strong>of</strong> binary codes or the more cryptic forms <strong>of</strong>assembly language (see assembler). In 1952, she developedA-0, the first compiler (that is, a program that could translatelanguage statements to the corresponding low-levelmachine instructions). She then developed A-2 (a compilerthat could h<strong>and</strong>le mathematical expressions), <strong>and</strong> then in1957 she developed Flow-Matic. This was the first compilerGrace Murray Hopper created the first computer program compiler<strong>and</strong> was instrumental in the design <strong>and</strong> adoption <strong>of</strong> COBOL.When she retired, she was the first woman admiral in U.S. Navyhistory. (Unisys Corporation)that worked with English-like statements <strong>and</strong> was designedfor a business data processing environment.In 1959, Hopper joined with five other computer scientiststo plan a conference that would eventually result in thedevelopment <strong>of</strong> specifications for a “Common Business Language.”Her earlier work with Flow-Matic <strong>and</strong> her designinput played a key role in the development <strong>of</strong> what wouldbecome the COBOL language.Hopper retained her Navy commission <strong>and</strong> even afterher retirement in 1966 she was recalled to active duty towork on the Navy’s data processing needs. She finallyretired in 1986 with the rank <strong>of</strong> rear admiral. Hopper spokewidely about data processing issues, especially the need forst<strong>and</strong>ards in computer language <strong>and</strong> architecture, the lack<strong>of</strong> which she said cost the government billions <strong>of</strong> dollars inwasted resources. Admiral Hopper died on January 1, 1992,in Arlington, Virginia.Hopper received numerous awards <strong>and</strong> honorary degrees,including the National Medal <strong>of</strong> <strong>Technology</strong>. (The navynamed a suitably high-tech Aegis destroyer after her in1996.) The Association for Computing Machines (ACM)created the Grace Murray Hopper Award to honor distinguishedyoung computer pr<strong>of</strong>essionals. Hopper has becomea role model for many girls <strong>and</strong> young women consideringcareers in computing.


232 HTML, DHTML, <strong>and</strong> XHTMLFurther Reading“Grace Brewster Murray Hopper” [biography]. St. Andrews University[Scotl<strong>and</strong>] School <strong>of</strong> Mathematics <strong>and</strong> Statistics.Available online. URL: http://www-history.mcs.st-<strong>and</strong>rews.ac.uk/Biographies/Hopper.html. Accessed August 7, 2007.Grace Hopper Celebration <strong>of</strong> Women in Computing. Availableonline. URL: http://gracehopper.org. Accessed August 7, 2007.Marx, Christy. Grace Hopper: The First Woman to Program the First<strong>Computer</strong> in the United States. New York: Rosen PublishingGroup, 2003.Williams, Kathleen Broome. Grace Hopper: Admiral <strong>of</strong> the CyberSea. Annapolis, Md.: Naval Institute Press, 2004.HTML, DHTML, <strong>and</strong> XHTMLIn developing the World Wide Web, Tim Berners-Lee (seeBerners-Lee, Tim) had to provide several basic facilities.One was a protocol, HTTP, for requesting documents overthe network (see world wide web). Another was a system<strong>of</strong> links between documents (see hypertext <strong>and</strong> hypermedia).The third was a way to embed instructions in thepages so that the Web browser could properly display thetext <strong>and</strong> graphics. Berners-Lee created HTML (HypertextMarkup Language) for this purpose. It is based on the moreelaborate SGML (St<strong>and</strong>ard Generalized Markup Language).The basic “statement” in HTML is the tag. Tags aredelimited by angle brackets (). Tags that affect a documentor section <strong>of</strong> a document come in pairs, with the secondmember <strong>of</strong> the pair preceded by a slash. For example,the tagsindicate the beginning <strong>and</strong> end <strong>of</strong> an HTML document,while <strong>and</strong> delimit text that should berendered in boldface.Besides specifying such things as headings, font, fontsize, <strong>and</strong> typestyles, HTML includes tags for Web-relatedfunctions. One <strong>of</strong> the most useful is the A, or “anchor”tag. As with some other HTML tags, the A tag is used withattributes that further specify what it so be done. The A tagis usually used with the or Hypertext Referenceattribute, which specifies a document that is to be linked tothe current document so that the user can click on a highlightto go there. For example:Glossary <strong>of</strong> <strong>Computer</strong> Termsspecifies a link to a particular page at a particular site.The link will appear in the browser as the highlighted textGlossary <strong>of</strong> <strong>Computer</strong> Terms. If clicked, the browser willload the HTML page titled Glossary.Implementation <strong>and</strong> ExtensionsInserting HTML tags by h<strong>and</strong> is a tedious <strong>and</strong> error-proneprocess (for example, it’s easy to omit a bracket or a slashor add “illegal” spaces within tags). Fortunately, there arenow many HTML editor programs that let users insert theappropriate elements much in the way word processorsmake it easy to specify fonts <strong>and</strong> formatting. (Indeed, programssuch as Micros<strong>of</strong>t Word allow users to convert <strong>and</strong>save documents in HTML format.)HTML has been extended in a number <strong>of</strong> ways. First,new features have been added to later versions <strong>of</strong> the lan-An HTML hyperlink embedded in a Web page. The anchor link gives the address (URL) <strong>of</strong> the linked page, as well as specifying the text thatwill appear in the link, which will be rendered by the Web browser in a special color or font.


hypertext <strong>and</strong> hypermedia 233guage, including better support for frames, columns, tables,<strong>and</strong> other formats. Browser developers have also adopteda system that allows document authors to define generalstyles to ensure consistent document appearance (see cascadingstyle sheets). Style sheets can inherit styles fromother style sheets, allowing an organization to create generalstyle sheets that can then be refined to create specializedstyles for particular types <strong>of</strong> documents. The latestversion <strong>of</strong> HTML (as <strong>of</strong> 2007) is 4.01, with 5.0 still in draft.Dynamic HTML (DHTML) is a set <strong>of</strong> techniques thatallow otherwise fixed (“static”) HTML pages to be changedas users are viewing them. A scripting language (see, forexample, JavaScript) is used to change the specifications(usually via the style sheet). The programming interfaceto the Web page is the document object model (see dom).DHTML can be used, for example, to create drop-downmenus or “rollover” buttons that change as the mouse navigatesover them. Even simple games have been written inDHTML to run in Web browsers. DHTML should be distinguishedfrom other dynamic techniques such as server-sidescripting (see Perl <strong>and</strong> php), which changes the page beforeit is presented to the user, <strong>and</strong> asynchronous techniquesthat can change a part <strong>of</strong> a page without reloading it (seeAjax).XHTML is essentially a rewriting <strong>of</strong> HTML according tothe syntax <strong>of</strong> the Extensible HyperText Markup Language(see xml). Because <strong>of</strong> the stricter syntax rules for XML,XHTML cannot use many <strong>of</strong> the earlier free-form structures<strong>of</strong> HTML. However, because XML has become so prevalenta means for connecting Web pages to data sources, there aremany xmL tools that XHTML authors can use for parsing<strong>and</strong> syntax checking. As <strong>of</strong> 2007, XHTML 1.1 is the prevailingst<strong>and</strong>ard, but a draft 2.0 version represents a more thoroughbreak from the elements <strong>of</strong> the original HTML.Further ReadingFreeman, Eric, <strong>and</strong> Elisabeth Freeman. Head First HTML with CSS<strong>and</strong> XHTML. Sebastapol, Calif.: O’Reilly Media, 2005.Goodman, Danny. Dynamic HTML: The Definitive Reference. 3rded. Sebastapol, Calif.: O’Reilly Media, 2006.Lloyd, Ian. Build Your Own Website the Right Way Using HTML &CSS. Lancaster, Calif.: SitePoint, 2006.Musicano, Chuck, <strong>and</strong> Bill Kennedy. HTML & XHTML: The DefinitiveGuide. 6th ed. Sebastapol, Calif.: O’Reilly Media, 2006.Olsson, Tommy. “Bulletpro<strong>of</strong> HTML: 37 Steps to Perfect Markup.”Sitepoint. Available online. URL: http://www.sitepoint.com/article/html-37-steps-perfect-markup. Accessed August 7, 2007.Tittel, Ed, <strong>and</strong> Mary Burmeister. HTML 4 For Dummies. 5th ed.Hoboken, N.J.: Wiley, 2005.hypertext <strong>and</strong> hypermediaMost computer users today are familiar with the concept<strong>of</strong> hypertext, even if they don’t <strong>of</strong>ten use the term itself.Each time a Web user clicks on a link on a Web page, heor she is using hypertext. Most on-line help systems alsouse hypertext to take the reader from one topic to another,related topic. The term hypermedia acknowledges modernsystems’ use <strong>of</strong> many kinds <strong>of</strong> resources other than plaintext, including still images, videos, <strong>and</strong> sound recordings.In a traditional document, the reader is generallyassumed to proceed sequentially from the beginning to theend. (Although there may well be footnotes or cross-referenceswithin the document, these are generally experiencedas temporary divergences from the primary, sequential narrative.)Generally speaking, each reader might be expectedto acquire roughly the same set <strong>of</strong> facts from the document.In a hypertext document, however, the links betweentopics create multiple potential paths for readers. To theextent the author has provided links between all relatedtopics, the reader is free to pursue his or her particularinterests rather than being bound by a sequential structureimposed by the author. For example, in a document thatdiscusses various organisms in an ecology <strong>and</strong> the effects <strong>of</strong>climate <strong>and</strong> vegetation, one reader might choose to exploreone organism in depth, following links from it to otherresources devoted to that organism (including outside Webpages, images, videos, <strong>and</strong> so on). Another reader might beinterested specifically in the effects <strong>of</strong> rainfall on the ecologyas a whole <strong>and</strong> follow a completely different set <strong>of</strong> linksto sites having climatological data.History <strong>and</strong> DevelopmentIn 1945, a time when the very first digital computers werecoming on-line, Vannevar Bush, a pioneer designer <strong>of</strong> analogcomputers, proposed a mechanism he called the Memex(see Bush, Vannevar). This system would link portions <strong>of</strong>documents to allow retrieval <strong>of</strong> related information. Theproposal was impracticable in terms <strong>of</strong> the very limitedcapacity <strong>of</strong> computers <strong>of</strong> the time. By the 1960s, when computershad become more powerful (<strong>and</strong> the minicomputerwas beginning to be a feasible purchase for libraries <strong>and</strong>schools), another visionary, Theodore Nelson, coined theterms hypertext <strong>and</strong> hypermedia. He suggested that networking(a technology then in its infancy) could allow forwhat would eventually amount to a worldwide database <strong>of</strong>interconnected information. Nelson developed his specificationsfor a system he called Xanadu, but he was unable tocreate a working version <strong>of</strong> the system until the late 1990s.However, in 1968 Douglas Engelbart (also known as theinventor <strong>of</strong> the computer mouse) demonstrated a more limitedbut workable hypertext system called NLS/Augment.During the 1970s <strong>and</strong> 1980s, a variety <strong>of</strong> hypertext systemswere created for various platforms, including Guide<strong>and</strong> Toolbook for MS-DOS <strong>and</strong> Windows PCs. Perhapsthe most influential system was Hypercard, developed forApple’s Macintosh. While Hypercard did not have a completeset <strong>of</strong> facilities for creating hypertext, the flexible,programmable, linkable “cards” could be used to implementhypertext documents. Many encyclopedias <strong>and</strong> otherreference products on CD-ROM began to implement someform <strong>of</strong> hypertext links.The true explosion <strong>of</strong> hypertext came with the development<strong>and</strong> growth <strong>of</strong> the World Wide Web throughout the1990s. Hypertext on the Web is implemented through theuse <strong>of</strong> HTTP (HyperText Transport Protocol) over the Internet’sTCP/IP protocol <strong>and</strong> by coding documents in HTML(Hypertext Markup Language). (See html, Internet, tcp/ip, <strong>and</strong> World Wide Web.)


234 hypertext <strong>and</strong> hypermediaImplementationA hypertext document consists <strong>of</strong> nodes. A node can be apart <strong>of</strong> a document that conveys a logical “chunk” <strong>of</strong> information,such as the text that would be under a particularheading in a traditional document. In some systems nodescan be grouped together as a composite—for example, thesecond-level headings under a first-level heading might beconsidered nodes making up a single composite.The text contains links. A link specifies an anchor orspecific location to which it points. The user normallydoesn’t see the anchor, but rather the marker, which issome form <strong>of</strong> highlighting (such as a different color) thatindicates that an area is a link that can be clicked on.(In systems such as the Web, link markers need not betextual. Small pictures are <strong>of</strong>ten used as visual link markers.)Web browsers <strong>and</strong> other hypertext programs <strong>of</strong>tensupplement the use <strong>of</strong> links with various navigation aids.These can include buttons for traversing back or forwardthrough a list <strong>of</strong> recently visited links, a history list fromwhich previous links can be selected, <strong>and</strong> bookmarks thatallow the user to save <strong>and</strong> descriptively label importantlinks for easier future access.Hypertext is becoming the dominant paradigm for presentingtechnical or other reference information. With lessstructuredtext, hypertext links are usually considered to besupplemental to the traditional structure. The term hypermediarefers to the linking <strong>of</strong> nontextual material—images,videos, sound files, even Java applets <strong>and</strong> other programs.(Since both hypertext <strong>and</strong> hypermedia are now so ubiquitous,the terms themselves seem to be used less frequentlyexcept in an academic context.)Hypertext perhaps achieves its fullest power when itis used for collaborative expression <strong>and</strong> research. Withoutbeing able to easily link to what is being discussed, blogswould just be static diaries (see blogs <strong>and</strong> blogging).Wikis, too, depend on linking not only to reference existing,related entries, but to “grow” the tree <strong>of</strong> knowledgewith “stubs” being put in to encourage other contributors t<strong>of</strong>lesh out related topics (see wikis <strong>and</strong> Wikipedia). Despitesuggestions to the contrary, hypertext seems to be problematicwith regard to fiction, unless a work is constructed asan explicit hypertext. If hypertext literature becomes popular,it will require that both authors <strong>and</strong> readers radicallychange their role <strong>and</strong> expectations with regard to the text.Further ReadingBromme, Rainer, <strong>and</strong> Elmar Stahl. Writing Hypertext <strong>and</strong> Learning.Kidlington, Oxford, U.K.: Elsevier <strong>Science</strong>, 2002.Bush, Vannevar. “As We May Think.” Atlantic Monthly 176, 101–108. Available online. URL: http://www.theatlantic.com/doc/194507/bush.L<strong>and</strong>ow, George P. Hypertext 3.0: Critical Theory <strong>and</strong> New Mediain an Era <strong>of</strong> Globalization. 3rd ed. Baltimore: Johns HopkinsUniversity Press, 2006.McCann, Jerome. Radiant Textuality: Literature after the WorldWide Web. New York: Palgrave Macmillan, 2001.Nelson, Theodore. <strong>Computer</strong> Lib/Dream Machines. Rev. ed. Chicago:Hugo’s Books, 1987.Snyder, I. Hypertext: the Electronic Labyrinth. New York: New YorkUniversity Press, 1997.


IIBMInternational Business Machines is familiarly known asIBM (which is its NYSE symbol) or the nickname “BigBlue.” Arguably it is the world’s oldest information technologycompany, with its roots in card tabulation <strong>and</strong>other business machines in the late 19th century (seeHollerith, Hermann <strong>and</strong> punched cards <strong>and</strong> papertape). Under president Thomas J. Watson Sr., IBM developedwhat would become known as the “IBM card” <strong>and</strong>machinery to manage the huge amounts <strong>of</strong> data requiredby the U.S. Social Security system starting in the mid-1930s. However, IBM would later be criticized for providingthe same technology to Nazi Germany, where it wouldbe used to help round up Jews for the Holocaust. On theother h<strong>and</strong>, IBM calculating machines were a very necessarypart <strong>of</strong> the Allied war effort, including the development<strong>of</strong> the atomic bomb.In the 1950s, cold war–related defense work gave IBMaccess to new technologies, including the multiuser, realtimearchitecture needed for the SAGE air defense computer(see government funding <strong>of</strong> computer research.)Despite UNIVAC’s head start, IBM dominated the commercialcomputer industry from the mid-1950s at least untilthe 1970s (see mainframe). The keystone product was theIBM/360 <strong>and</strong> later IBM/370 mainframe systems. IBM didnot sell just hardware: It provided complete solutions inthe form <strong>of</strong> hardware, operating systems, other s<strong>of</strong>tware,<strong>and</strong> peripherals. Because <strong>of</strong> its dominance, it was hard forsmall innovators to gain traction, <strong>and</strong> many people in theuniversity hacker culture felt about IBM as many <strong>of</strong> theirdescendants feel about Micros<strong>of</strong>t today. (IBM’s dress codewith its dark suits reassured business managers but addedto the company’s conformist image.)RetrenchmentIBM went on to set the st<strong>and</strong>ard for the most common type<strong>of</strong> personal computer in the 1980s (see ibm pc). However,the decade would also bring a gradual decline <strong>of</strong> IBM’sdominant role. On the desktop, IBM quickly outpaced Apple(despite the latter’s innovation—see Macintosh). However,it became legally possible <strong>and</strong> pr<strong>of</strong>itable to build “clone”PCs that could run the same s<strong>of</strong>tware as the IBM PC, <strong>and</strong><strong>of</strong>ten faster <strong>and</strong> at lower cost. In the 1990s the growinguse <strong>of</strong> networks <strong>of</strong> increasingly powerful desktop machineswould erode the mainframe market. Finally, in 2004 IBMsold its PC business (including the well-regarded Thinkpadseries <strong>of</strong> laptops) to Lenovo, a Chinese company.Today IBM remains a major seller <strong>of</strong> computer serversparticularly targeted to Internet businesses. The companyhas also achieved success through designing chipsfor videogame units (see game consoles). However,the company’s overall focus is mainly on business consulting,s<strong>of</strong>tware (including database <strong>and</strong> collaborativeproducts), management services, <strong>and</strong> the exploitation <strong>of</strong>its vast trove <strong>of</strong> patents. IBM has also enthusiasticallyembraced open s<strong>of</strong>tware <strong>and</strong> contributed a considerableamount <strong>of</strong> code to the programming community, such asthe Eclipse program development system (see Linux <strong>and</strong>open source).IBM remains the largest computer-related company(after HP). In 2007 the company earned $7 billion on revenue<strong>of</strong> $98.8 billion.235


236 IBM PCFurther ReadingBashe, Charles J., et al. IBM’s Early <strong>Computer</strong>s. Cambridge, Mass.:MIT Press, 1985.Birth <strong>of</strong> the IBM PC (IBM Archives). Available online. URL: http://www-03.ibm.com/ibm/history/exhibits/pc25/pc25_birth.html. Accessed September 23, 2007.Black, Edwin. IBM <strong>and</strong> the Holocaust: The Strategic Alliance betweenNazi Germany <strong>and</strong> America’s Most Powerful Corporation. NewYork: Three Rivers Press, 2001.Garr, Doug. IBM Redux: Lou Gerstner & the Business Turnaround <strong>of</strong>the Decade. New York: HarperBusiness, 1999.IBM Corporation. Available online. URL: http://www.ibm.com.Accessed September 23, 2007.Pugh, Emerson W. Memories that Shaped an Industry: DecisionsLeading to IBM System/360. Cambridge, Mass.: MIT Press,2000.Pugh, Emerson W., Lyle R. Johnson, <strong>and</strong> John H. Palmer. IBM’s 360<strong>and</strong> Early 370 Systems. Cambridge, Mass.: MIT Press, 1991.Soltis, Frank G. Fortress Rochester: The Inside Story <strong>of</strong> the IBMSeries. Lovel<strong>and</strong>, Colo.: 29th Street Press, 2001.IBM PCBy 1981, a small but vigorous personal computer (PC)industry was <strong>of</strong>fering complete desktop computer systems.Apple’s Apple II <strong>of</strong>fered color graphics <strong>and</strong> exp<strong>and</strong>abilitythrough an “open architecture”—slots into which cardsdesigned by third-party vendors could be plugged. Whilethe Apple II had its own DOS (disk operating system) asdid Radio Shack’s TRS-80, most microcomputers sold in thebusiness market used CP/M, an operating system developedby Gary Kildall <strong>and</strong> his company Digital Research.Meanwhile, IBM, the world’s largest computer company(see ibm), had quietly created a special team headedby Phillip (“Don”) Estridge <strong>and</strong> tasked with designing apersonal computer. Unlike the case with the company’smainframe development, the team was given considerablefreedom in choosing architecture <strong>and</strong> components—butthey were told they would have to have a machine ready forthe market in one year.Because <strong>of</strong> the short time frame, the team chose thirdpartycomponents already well established in the market,including the monitor, floppy disk drive, <strong>and</strong> a printer.Unlike Apple <strong>and</strong> most other companies, IBM created twoseparate video display systems, one monochrome (MDA)for sharp text for business applications <strong>and</strong> the threecolorCGA system for the game <strong>and</strong> education markets (seegraphics card).The IBM team also adopted st<strong>and</strong>ards from the emergingmicrocomputer industry instead <strong>of</strong> trying to use existingmainframe st<strong>and</strong>ards. For example, they used the ASCIIcode to represent characters, not the EBCDIC code usedon IBM mainframes. They also chose the Intel 8086 <strong>and</strong>8088 microprocessors, which had an instruction set similarto that <strong>of</strong> the Intel 8080 used in many CP/M systems(see microprocessor). This would make it easy for s<strong>of</strong>twaredevelopers to create IBM PC versions <strong>of</strong> their s<strong>of</strong>twarequickly so that the new machine would have a repertoire <strong>of</strong>business s<strong>of</strong>tware.One might have expected that IBM would also adopt aversion <strong>of</strong> CP/M as the PC’s operating system, taking advantage<strong>of</strong> the closest thing to an existing industry st<strong>and</strong>ard.However, CP/M was relatively expensive, <strong>and</strong> negotiationswith Digital Research stumbled, leaving an opening for amuch smaller company, Micros<strong>of</strong>t, to sell a DOS based ons<strong>of</strong>tware it had licensed from Seattle <strong>Computer</strong> Products.While IBM did <strong>of</strong>fer CP/M <strong>and</strong> another operating systembased on the UC San Diego Pascal development system,Micros<strong>of</strong>t DOS, which became known as PC-DOS (<strong>and</strong> laterMS-DOS), was cheapest <strong>and</strong> effectively became the default<strong>of</strong>fering (see ms-dos).When IBM <strong>of</strong>ficially announced its PC in April 1981,Apple took out full-page ads “welcoming” the new competitorto what it considered to already be a mature industry.But by the end <strong>of</strong> 1983, a million IBM PCs had beensold, dwarfing Apple <strong>and</strong> other br<strong>and</strong>s. From then on, whileApple would go on to announce its distinctive Macintosh in1984, the IBM machine would set the industry st<strong>and</strong>ard. Tomost people, “PC” would mean “IBM PC.”Open St<strong>and</strong>ards <strong>and</strong> ExpansionAs more businesses bought IBM PCs, the company steadilyexp<strong>and</strong>ed the machine’s capabilities to meet the dem<strong>and</strong>s<strong>of</strong> the business environment. The next model, the PC-XT,introduced in 1982, included a hard disk drive <strong>and</strong> moresystem memory. As s<strong>of</strong>tware became more dem<strong>and</strong>ing, theneed for a faster <strong>and</strong> more capable processor also becameapparent. In 1984, IBM responded with the PC-AT, whichused the Intel 80286 processor, combining the faster processorwith a wider (16-bit) <strong>and</strong> faster data bus (see bus).However, IBM would not have the market to itself. Aconsequence <strong>of</strong> the use <strong>of</strong> an open, exp<strong>and</strong>able architecture<strong>and</strong> “<strong>of</strong>f the shelf” processor <strong>and</strong> other components is thatother companies could market PCs that were compatiblewith IBM’s (that is, they could run the same operating system<strong>and</strong> applications s<strong>of</strong>tware). Although competitors couldnot legally make a simple copy <strong>of</strong> the read-only memory(ROM) BIOS, the code that enabled the components to communicate,they could reverse-engineer a functional equivalent.The first major competitor in what became known asthe “PC Clone” market was Compaq, which also <strong>of</strong>fered animproved video display <strong>and</strong> a transportable model. Zenith,T<strong>and</strong>y (Radio Shack), <strong>and</strong> HP also <strong>of</strong>fered “name-br<strong>and</strong>” PCclones.In 1987, IBM tried to establish a proprietary st<strong>and</strong>ard byintroducing the PS/2 line, which featured a 3.5-inch floppydrive (st<strong>and</strong>ard PC compatibles used 5.25-inch drives), anew high-resolution graphics st<strong>and</strong>ard (VGA), a new systembus (MCA or Microchannel Architecture), <strong>and</strong> a newoperating system (OS/2). Despite some technical advantages,the PS/2 achieved only modest success. Since thecard slots were incompatible with the previous st<strong>and</strong>ard,existing expansion products could not be used. Micros<strong>of</strong>tsoon came out with a new operating environment, Windows,which while inferior in multitasking capabilities toOS/2 was easier to use (see user interface <strong>and</strong> Micros<strong>of</strong>tWindows).By the 1990s, it was clear that IBM no longer controlledthe st<strong>and</strong>ards for PCs. (Indeed, IBM soon ab<strong>and</strong>oned thePS/2 MCA architecture <strong>and</strong> returned to the earlier stan-


identity in the online world 237dard, which competitors had never left.) Instead, the industryincrementally built upon what had become known asthe ISA (Industry St<strong>and</strong>ard Architecture), supplementingit with a new kind <strong>of</strong> expansion card connector called PCI.Currently, IBM is in the second tier in PC sales behindindustry leaders Dell <strong>and</strong> Compaq, having a market sharecomparable to Hewlett-Packard <strong>and</strong> Gateway. IBM also didrelatively well in the laptop computer sector with its Thinkpadseries, before selling it to Lenovo.Today’s industry st<strong>and</strong>ards are effectively determinedby two companies: the chip-maker Intel <strong>and</strong> the s<strong>of</strong>twaregiant Micros<strong>of</strong>t. Indeed, “st<strong>and</strong>ard” PCs are now <strong>of</strong>tencalled “Wintel” machines. The direct-order giant Dell <strong>and</strong>its competitors HP <strong>and</strong> Lenovo dominate the “commodityPC” market. However, by creating a st<strong>and</strong>ard that was flexibleenough for two decades <strong>of</strong> PC development, IBM madea lasting contribution to computing comparable to its innovationsin the mainframe arena.Further ReadingDell, Deborah A,. <strong>and</strong> J. Jerry Purdy. Thinkpad: a Different Shade <strong>of</strong>Blue. Indianapolis, Ind.: Sams, 1999.Dell, Michael. Direct from Dell: Strategies that Revolutionized anIndustry. New York: HarperBusiness, 2000.Gilster, Ron. PC Hardware: a Beginner’s Guide. New York: McGraw-Hill, 2001.Hoskins, Jim, <strong>and</strong> Bill Wilson. Exploring IBM Personal <strong>Computer</strong>s.10th ed. Gulf Breeze, Fla.: Maximum Press, 1999.Ling, Zhigun, <strong>and</strong> Martha Avery. The Lenovo Affair: The Growth <strong>of</strong>China’s <strong>Computer</strong> Giant <strong>and</strong> Its Takeover <strong>of</strong> IBM-PC. New York:Wiley, 2006.identity in the online worldThere are two aspects <strong>of</strong> identity in cyberspace, both <strong>of</strong>which are intriguing but problematic: Outer identity is thename or other descriptors that are identified by other peopleas belonging to a particular person, <strong>and</strong> inner identity isa person’s sense <strong>of</strong> who or what he or she “really is.”Users <strong>of</strong> online systems such as chat rooms or gameshave the ability to use a variety <strong>of</strong> names (pseudonyms)or to be effectively anonymous (see anonymity <strong>and</strong> theInternet). In games, the identity used by a player is representedby a virtual representation called an avatar. Otherplayers (through their own avatars) will encounter the avatar<strong>and</strong> identify it by physical appearance, behavior, <strong>and</strong>what it tells about itself (the “back story”).While opportunities to do this emerged in the 1970s withpaper-<strong>and</strong>-dice role-playing games such as the very popularDungeons <strong>and</strong> Dragons, there are significant differencesbetween online identity <strong>and</strong> these earlier games. Peopleplayed “D&D” in person, so it was relatively easy to maintaina distinction between a character a person was “running” <strong>and</strong>the person himself or herself. Also, these role-playing sessionswere fixed in time <strong>and</strong> place: After slaying the dragon,the players went home. Indeed even the term “role-playing”made the comfortable assumption that the activity was a pretend,make-believe identity assumed by the player.Virtual game worlds began in the 1980s with text-basedMUDS (multi-user dungeons) <strong>and</strong> similar online environments.Today game worlds are graphically immersive <strong>and</strong>persistent. Although there are games focused on the traditionalbattles <strong>and</strong> quests, others such as Second Life are bestdescribed not as games at all but literal second or alternativelives that persons can participate in for hours a day. Inthese worlds an avatar can own property <strong>and</strong> make commitments,even a virtual form <strong>of</strong> marriage. In many cases ingamegoods <strong>and</strong> money can actually be exchanged for “realworld” money. And crucially, unlike the D&D encounter,in these virtual worlds the “real person” behind an avatarneed never be revealed.Constructing IdentitiesThe online world invites people to construct <strong>and</strong> try outidentities. Because <strong>of</strong> the vital role they play in people’ssense <strong>of</strong> self <strong>and</strong> their social interactions, sexual or genderidentity is a particularly important issue. The onlineworld has some clear advantages for persons who are experimentingwith different identities (such as transgender). Aman, for example, can create a female avatar that reallylooks female. Further, people can act out sexual encounterswithout the possible physical consequences <strong>of</strong> violence ordisease. On the other h<strong>and</strong>, people can still be hurt psychologically,<strong>and</strong> online relationships can take on added risks<strong>and</strong> challenges by eventually becoming physical ones.There are also venues where there can be “hybrid” identities.In a site such as MySpace, a person can construct thekind <strong>of</strong> “face” he or she wants to present to the world <strong>and</strong>interact with the pages <strong>of</strong> other people. Here the onlineidentity is <strong>of</strong>ten tied with a physical one (potentially creatingvulnerability) but need not be (creating the potential fordeception).Young people in particular will have to deal with theopportunities <strong>and</strong> challenges <strong>of</strong> multiple virtual identities.On the one h<strong>and</strong>, young people are very adaptable, especiallyto new technologies. On the other h<strong>and</strong>, youth <strong>and</strong>particularly adolescence has always been a time <strong>of</strong> innerconflicts <strong>and</strong> a search for lasting identity (see young people<strong>and</strong> computing).The deeper philosophical <strong>and</strong> psychological implications<strong>of</strong> cyberspace are intriguing. According to some modernpsychological theories (such as Marvin Minsky’s “society <strong>of</strong>mind”), the mind does not consist <strong>of</strong> a single ego perhaps inconflict with unconscious forces, but rather, many separate“agents” that interact as they seek various goals. From thatpoint <strong>of</strong> view the online world exp<strong>and</strong>s that model intosocial space <strong>and</strong> may lead to a world in which each physicalperson may have many virtual persons associated with it.Online identities are becoming a fertile area <strong>of</strong> researchin psychology <strong>and</strong> sociology. Pioneering work has beendone by psychologist Sherry Turkle, who has explored differingmale <strong>and</strong> female styles <strong>of</strong> relationship to technology,how technology affects children, <strong>and</strong> other issues.The social <strong>and</strong> legal implications <strong>of</strong> online identity areequally challenging. Can an avatar be sued? Can one avatarcommit a criminal act (perhaps even rape) against another?Might an avatar have privacy rights <strong>and</strong> the right <strong>of</strong> publicity?The legal system has hardly begun to consider suchquestions, <strong>and</strong> they are becoming more urgent as everything


238 identity theftfrom meetings to concerts takes place in virtual worlds. It ispossible that eventually online worlds will be allowed tocreate their own internal legal systems, perhaps subject to“metarules” about how they are to be enforced within thecontext <strong>of</strong> physical jurisdictions (see cyberlaw).Further ReadingCooper, Robbie. Alter Ego: Avatars <strong>and</strong> Their Creators. London:Chris Boot, 2007.Schroeder, Ralph, <strong>and</strong> Ann-S<strong>of</strong>ie Axelsson, eds. Avatars at Work<strong>and</strong> Play: Collaboration <strong>and</strong> Interaction in Shared Virtual Environments.New York: Springer, 2007.“Sexual Identity Online.” MYCyclopedia <strong>of</strong> New Media. Availableonline. URL: http://wiki.media-culture.org.au/index.php/Sexual_Identity_Online. Accessed September 23, 2007.Thomas, Angela. Youth Online: Identity <strong>and</strong> Literacy in the DigitalAge. New York: Peter Lang, 2007.Turkle, Sherry. Life on the Screen: Identity in the Age <strong>of</strong> the Internet.New York: Simon & Schuster, 1995.———. The Second Self: <strong>Computer</strong>s <strong>and</strong> the Human Spirit. TwentiethAnniversary ed. Cambridge, Mass.: MIT Press, 2005.identity theftIdentity theft is essentially the impersonation <strong>of</strong> someonein order to gain use <strong>of</strong> their resources or, occasionally, toescape the consequences <strong>of</strong> previous criminal behavior.The most common motive for identity theft is to gain accessto a person’s financial resources, such as credit cards orchecking accounts, or to obtain credit or services. (Sometimesa distinction is made between identity theft, wherethe victim’s identity is assumed <strong>and</strong> effectively becomesthe perpetrator’s identity, <strong>and</strong> identity fraud, where informationis only used long enough to complete particulartransactions.)Identity thieves must first obtain the necessary informationto pose as their victim. This can be done by physicallyobtaining such items as checks, receipts, credit <strong>of</strong>fers, <strong>and</strong>so on from the trash or mail. Information such as name,address, account numbers, <strong>and</strong> the ultimate prize, theSocial Security number, can then be used, for example, toapply for credit in the victim’s name, or buy goods <strong>and</strong> havethem shipped to the perpetrator’s address.People can minimize the risk <strong>of</strong> physical identity theftby securing their mail <strong>and</strong> shredding sensitive documents.However, the fastest-growing venue for identity theft isonline. The online world presents additional opportunitiesto the criminals, the necessity <strong>of</strong> new precautions, <strong>and</strong> difficultchallenges for law enforcement.Digital information useful for identity theft can beobtained in a variety <strong>of</strong> ways. It can be physically stolen inthe form <strong>of</strong> laptops or portable storage devices or obtainedelectronically by breaking into <strong>and</strong> compromising computersystems (see computer crime <strong>and</strong> security). Programscan exploit operating-system or s<strong>of</strong>tware flaws to travelfrom one networked PC to another <strong>and</strong> e-mail informationback to the perpetrator (see computer virus). Finally,users can be coerced, enticed, or otherwise tricked intoproviding the information (such as passwords) themselves,via authentic-looking institutional Web sites (see phishing<strong>and</strong> spo<strong>of</strong>ing).Incidence <strong>and</strong> PreventionAccording to various surveys, the incidence <strong>of</strong> identity theftincreased substantially between 2001 <strong>and</strong> 2003. There areconflicting views <strong>of</strong> recent trends. Data for 2006 from JavelinStrategy <strong>and</strong> Research suggests a decrease (10.1 millionU.S. adult victims in 2003 <strong>and</strong> 8.9 million in 2006).However, data from the Federal Trade Commission records246,035 actual complaints <strong>of</strong> identity theft in 2006, makingit by far the number one item on its list <strong>of</strong> consumerfraud complaints. (Of these, 25 percent reflected credit cardfraud, <strong>and</strong> phone/utilities fraud <strong>and</strong> bank fraud each represented16 percent.)To give some further perspective, according to the InternetCrime Complaint Center (a joint program <strong>of</strong> the FBI<strong>and</strong> the National White Collar Crime Center), identity theftamounted to only 1.6 percent <strong>of</strong> reported cyber crimes.(Credit card or check fraud without confirmed identitytheft added up to 9.7 percent.) Nevertheless, however measured,it is clear that identity theft remains a very seriousproblem.Until recent years, response to identity theft complaintsby law enforcement tended to be ineffectual <strong>and</strong> frustratingto victims. This was probably due to a combination <strong>of</strong>circumstances, including many police <strong>of</strong>ficers being unfamiliarwith the nature <strong>of</strong> the crime or technology involved,unsure about how to proceed, <strong>and</strong> not even certain theyhad jurisdiction. This situation has improved considerably,however, with national organizations, greater interagencycooperation (including between federal, state, <strong>and</strong> localagencies), <strong>and</strong> strong <strong>and</strong> explicit laws against identity theft<strong>and</strong> fraud. (The Identity Theft <strong>and</strong> Assumption DeterrenceAct <strong>of</strong> 2003 now makes possession <strong>of</strong> “any means <strong>of</strong> identification”to “knowingly transfer, possess, or use withoutlawful authority” a federal crime.)The main goal for consumers, however, should be prevention.Steps that can greatly reduce the chance <strong>of</strong> becominga victim <strong>of</strong> online identity theft include:• Keep security s<strong>of</strong>tware (antivirus, antispam, antispyware)up to date.• Do not click on links in e-mail that purports to befrom a financial institution, government agency,online merchant or auction service. Use the browser’saddress box to go directly to the relevant site.• Do not post addresses, account numbers, or SocialSecurity numbers online, including chat rooms orsocial networking sites. Teach children likewise, <strong>and</strong>consider installing s<strong>of</strong>tware that can block the posting<strong>of</strong> such information.• Make sure that the financial institutions <strong>and</strong> merchantsthat one uses have acceptable privacy policies<strong>and</strong> policies for dealing with “data breaches” <strong>and</strong>other loss <strong>of</strong> sensitive information.• If you suspect you have been victimized, go to a sitesuch as the Identity Theft Resource Center or thePrivacy Rights Clearinghouse to learn how to stopfurther losses <strong>and</strong> reestablish credit <strong>and</strong> accounts.


information design 239Further ReadingCullen, Terry. The Wall Street Journal Complete Identity Theft Guidebook:How to Protect Yourself from the Most Pervasive Crime inAmerica. New York: Three Rivers Press, 2007.“How Many Identity Theft Victims Are There? What Is the Impacton Victims?” Privacy Rights Clearinghouse. Available online.URL: http://www.privacyrights.org/ar/idtheftsurveys.htm.Accessed September 23, 2007.Identity Theft Resource Center. Available online. URL: http://www.idtheftcenter.org/. Accessed September 23, 2007.“Identity Theft Tops FTC Complaints for 2006.” Consumeraffairs.com, February 8, 2007. Available online. URL: http://www.consumeraffairs.com/news04/2007/02/ftc_top_10.html.Accessed September 23, 2007.Internet Crime Complaint Center. Available online. URL: http://www.ic3.gov/. Accessed September 23, 2007.Privacy Rights Clearinghouse. Available online. URL: http://www.privacyrights.org/. Accessed September 23, 2007.image processingImage processing is a general term for the manipulation<strong>of</strong> a digitized image to produce an enhanced or more convenientversion. Some <strong>of</strong> the earliest applications were inthe military (aerial <strong>and</strong>, later, satellite reconnaissance) <strong>and</strong>in the space program. The military <strong>and</strong> space programshad a great need for extracting as much useful informationas possible from images that were <strong>of</strong>ten gathered underextreme or marginal conditions. They also needed to makecameras <strong>and</strong> other hardware components simultaneouslymore compact <strong>and</strong> more efficient, <strong>and</strong> generally had thefunds to pay for such specialized developments.Once developed, higher-quality image processing systemsfound their way into other applications such as domesticsurveillance <strong>and</strong> medical imaging. The development <strong>of</strong>cameras that could directly turn light into digitized images(see photography, digital) made image processing seamlessby avoiding the necessity <strong>of</strong> scanning images from traditionalfilm.Image processing applications can be divided intothree general categories: enhancement, interpretation, <strong>and</strong>maintenance.EnchancementEnhancement includes bringing out objects <strong>of</strong> interest (suchas enemy vehicles or a particular rock formation on Mars)from the surrounding background by enhancing contrastor applying appropriate filters to block out the background.More sophisticated filters can also be used to compensatefor defects in the original image, such as “red-eye,” blur,<strong>and</strong> loss <strong>of</strong> focus. Today’s image processing programs, suchas the popular Adobe Photoshop, make relatively sophisticatedimage manipulation techniques available to interestedamateurs as well as pr<strong>of</strong>essionals. More sophisticated imageenhancement techniques include the creation <strong>of</strong> 3D imagesbased upon the differences calculated from a number <strong>of</strong>photos shot from slightly different angles.A considerable amount <strong>of</strong> image enhancement takesplace even before the photo is taken. Today’s versatile cameras(see photography, digital) include a variety <strong>of</strong> modesthat are preset for different scenarios such as indoor portraitor low light. After the picture is taken, photo managementprograms (<strong>of</strong>ten bundled with the camera or even includedin the operating system) not only help organize photos, butalso provide simple ways to crop or enhance them.InterpretationInterpretation refers to manipulation designed to helphuman observers obtain more <strong>and</strong> better informationfrom the image. For example, “false color” can be used toheighten otherwise imperceptible color differences in theoriginal image, or to translate nonvisual information (suchas heat or radio emission levels) into visual terms.Artificial intelligence algorithms can also be employedto automatically analyze images for features <strong>of</strong> interest (seepattern recognition <strong>and</strong> computer vision). In fieldssuch as military reconnaissance this might allow a highvolume <strong>of</strong> imagery to be prescreened, with images meetingcertain criteria “flagged” for the attention <strong>of</strong> humaninterpreters.MaintenanceMaintenance includes archiving <strong>of</strong> images, <strong>of</strong>ten with theaid <strong>of</strong> compression to reduce the amount <strong>of</strong> storage spacerequired (see data compression). It can also include therestoration <strong>of</strong> images that may have been degraded (as fromchemical decomposition <strong>of</strong> stored film.) This can be doneeither by creating a reversible mathematical model <strong>of</strong> thedegradation process (thus, for example, restoring colorsthat have changed through oxidation or other processes)or by creating a model <strong>of</strong> how the image was formed in thefirst place <strong>and</strong> comparing its output to the existing image.Further ReadingGIMP, the GNU Image Manipulation Program. Available online.URL: http://www.gimp.org/. Accessed August 8, 2007.Gonzalez, Rafael, <strong>and</strong> Richard E. Woods. Digital Image Processing.3rd ed. Upper Saddle River, N.J.: Prentice Hall, 2007.Hanbury, Allan. “A Short Introduction to Digital Image Processing.”Available online. URL: http://www.prip.tuwien.ac.at/~hanbury/intro_ip/. Accessed August 8, 2007.MathWorks Image Processing. Available online. URL: http://www.mathworks.com/applications/imageprocessing/. AccessedAugust 8, 2007.Seul, Michael, Lawrence O’Gorman, <strong>and</strong> Michael J. Sammon.Image Analysis: Description, Examples, <strong>and</strong> Code. New York:Cambridge University Press, 2000.Ward, Al. PhotoShop for Right-Brainers: Photo Manipulation. Alameda,Calif.: SYBEX, 2004.information designInformation design is concerned with arranging <strong>and</strong> presentinginformation in ways that enable viewers to use itefficiently <strong>and</strong> with the greatest benefit. This discipline canbe said to have begun in the 19th century with the development<strong>of</strong> diagrams <strong>and</strong> maps that present the relationshipbetween two or more variables. These included John Snow’smap <strong>of</strong> London showing the locations <strong>of</strong> cholera outbreaksin the 1850s, <strong>and</strong> a striking 1861 diagram by Joseph Minardthat related the geographical progress <strong>of</strong> Napoléon’s 1812


240 information retrievalinvasion <strong>of</strong> Russia with the diminishing size <strong>of</strong> the Frenchforces. These early examples coincided with a time whenindustrial society was becoming increasingly complex <strong>and</strong>populous, <strong>and</strong> both government <strong>and</strong> business needed newways to visualize statistics. Other products to which informationdesign contributes became important in the followingcentury: traffic <strong>and</strong> transit signs, product warninglabels, <strong>and</strong> product manuals, to name a few.Some <strong>of</strong> the basic considerations for information designinclude:• effectiveness at presenting relevant information• selection <strong>and</strong> arrangement <strong>of</strong> information• balance <strong>of</strong> attractiveness <strong>and</strong> clarity• proper use <strong>of</strong> the medium (size, materials, etc.)Of course the designer has additional constraints, such asthe purpose <strong>of</strong> the design (advertising, product documentation,report, etc.), policies <strong>of</strong> the client, any applicable regulations(such as for warning labels), <strong>and</strong> so on.From Physical to DigitalMoving from the world <strong>of</strong> print to the Web brings newresources <strong>and</strong> challenges to the information designer. Webdesign has many advantages over print—powerful layouttools <strong>and</strong> perhaps templates, the availability <strong>of</strong> animationor other effects, the ability to adapt to different audiences,<strong>and</strong>, above all, interactivity. However, each <strong>of</strong> these featuresbrings additional choices—not only font <strong>and</strong> text size,but background, use <strong>of</strong> images, whether to include animation(such as Flash), <strong>and</strong> how to design clear <strong>and</strong> easy-touseforms <strong>and</strong> other interactive features. Further, designsmay have to adapt to a variety <strong>of</strong> platforms (large desktopscreens, laptops, PDAs, <strong>and</strong> mobile devices) <strong>and</strong> providefor users who have visual impairments or other disabilities(for more, see Web page design). For information displaysdesigned to provide “at a glance” summaries <strong>and</strong> alertsabout problems, see digital dashboard.Although these concerns may seem far afield from theclassic principles <strong>of</strong> graphic design, they actually representtechnological extensions <strong>of</strong> them. It is easy to get lost in theparticulars <strong>of</strong> designing, for example, Web pages showingstatistical charts, without having thought about whetherthe charts themselves show information clearly <strong>and</strong> accuratelyin the scales <strong>and</strong> proportions used.Further ReadingDigital Web Magazine. Available online. URL: http://www.digitalweb.com/.Accessed September 23, 2007.Few, Stephen. Information Dashboard Design: The Effective VisualCommunication <strong>of</strong> Data. Sebastapol, Calif.: O’Reilly Media,2006.Information Design Journal. John Herndon, Va.: Benjamins PublishingCompany, 1979. Free sample available online. URL:http://www.benjamins.com/cgi-bin/t_bookview.cgi?bookid=IDJDD%2012%3A1. Accessed September 23, 2007.Lipton, Ronnie. The Practical Guide to Information Design. NewYork: Wiley, 2007.Lõwgren, Jonas, <strong>and</strong> Erik Stolterman. Thoughtful InteractionDesign: A Design Perspective on Information <strong>Technology</strong>. 2nded. Cambridge, Mass.: MIT Press, 2007.Tufte, Edward R. Envisioning Information. Cheshire, Conn.: GraphicsPress, 1990.———. The Visual Display <strong>of</strong> Quantitative Information. 2nd ed.Cheshire, Conn.: Graphics Press, 2001.information retrievalWhile much attention is paid by system designers to therepresentation, storage <strong>and</strong> manipulation <strong>of</strong> information inthe computer, the ultimate value <strong>of</strong> information processings<strong>of</strong>tware is determined by how well it provides for the effectiveretrieval <strong>of</strong> that information. The quality <strong>of</strong> retrieval isdependent on several factors: hardware, data organization,search algorithms, <strong>and</strong> user interface.At the hardware level, retrieval can be affected by theinherent seek time <strong>of</strong> the device upon which the data isstored (such as a hard disk), the speed <strong>of</strong> the central processor,<strong>and</strong> the use <strong>of</strong> temporary memory to store data that islikely to be requested (see cache). Generally, the larger thedatabase <strong>and</strong> the amount <strong>of</strong> data that must be retrieved tosatisfy a request, the greater is the relative importance <strong>of</strong>hardware <strong>and</strong> related system considerations.Data organization includes the size <strong>of</strong> data records <strong>and</strong>the use <strong>of</strong> indexes on one or more fields. An index is a separatefile that contains field values (usually sorted alphabetically)<strong>and</strong> the numbers <strong>of</strong> the corresponding records. Withindexing, a fast binary search can be used to match theuser’s request to a particular field value <strong>and</strong> then the appropriaterecord can be read (see hashing).There is a trade<strong>of</strong>f between storage space <strong>and</strong> ease <strong>of</strong>retrieval. If all data records are the same length, r<strong>and</strong>omaccess can be used; that is, the location <strong>of</strong> any record can becalculated essentially by multiplying the record’s sequencenumber by the fixed record length. However, having a fixedrecord size means that records with shorter data fields mustbe “padded,” wasting disk space. Given the low cost <strong>of</strong> diskstorage today, space is generally less <strong>of</strong> a consideration.The search algorithms used by the program can alsohave a major impact on retrieval speed (see sorting <strong>and</strong>searching). As noted, if a binary search can be done againsta sorted list <strong>of</strong> fields or records, the desired record can befound in only a few comparisons. At the opposite extreme,if a program has to move sequentially through a wholedatabase to find a matching record, the average number <strong>of</strong>comparisons needed will be half the number <strong>of</strong> records inthe file. (Compare looking up something in a book’s indexto reading through the book until you find it.)Real-world searching is considerably more complex,since search requests can <strong>of</strong>ten specify conditions suchas “find e-commerce but not amazon.com” (see Booleanoperators). Searches can also use wildcards to find a wordstem that might have several different possible endings,proximity requirements (find a given word within so manywords <strong>of</strong> another), <strong>and</strong> other criteria. Providing a robust set<strong>of</strong> search options enables skilled searchers to more preciselyfocus their searches, bringing the number <strong>of</strong> results downto a more manageable level. The drawback is that complexsearch languages result in more processing (<strong>of</strong>ten severalintermediate result sets must be built <strong>and</strong> internally com-


information theory 241the question into the structured queries most likely to elicitdocuments containing the answer. Ask Jeeves (retired as <strong>of</strong>2006) <strong>and</strong> similar search services have thus far been onlymodestly successful with this approach.On a large scale, systematic information retrieval <strong>and</strong>analysis (see data mining) has become increasingly sophisticated,with applications ranging from e-commerce <strong>and</strong>scientific data analysis to counterterrorism. Artificial intelligencetechniques (see pattern recognition) play animportant role in cutting-edge systems.Finally, encoding more information about content <strong>and</strong>structure within the document itself can provide moreaccurate <strong>and</strong> useful retrieval. The use <strong>of</strong> XML <strong>and</strong> worktoward a “semantic Web” <strong>of</strong>fers hope in that direction (seeBerners-Lee, Tim; semantic web; <strong>and</strong> xml).A number <strong>of</strong> criteria can be used by Web search engines to determinethe likely relevance <strong>of</strong> search results. Perhaps the most importanttool, however, is feedback from the user.pared to one another). There is also more likelihood thatsearchers will either make syntax errors in their requests orcreate requests that do not have the intended effect.While database systems can control the organization<strong>of</strong> data, the pathways for retrieval <strong>and</strong> the comm<strong>and</strong> setor interface, the World Wide Web is a different matter.It amounts to the world’s largest database—or perhapsa “metabase” that includes not only text pages but fileresources <strong>and</strong> links to many traditional database systems.While the flexibility <strong>of</strong> linkage is one <strong>of</strong> the Web’s strengths,it makes the construction <strong>of</strong> search engines difficult. Withmillions <strong>of</strong> new pages being created each week, the “webcrawler”s<strong>of</strong>tware that automatically traverses links <strong>and</strong>records <strong>and</strong> indexes site information is hard pressed tocapture more than a diminishing fraction <strong>of</strong> the availablecontent. Even so, the number <strong>of</strong> “hits” is <strong>of</strong>ten unwieldy(see search engine).A number <strong>of</strong> strategies can be used to provide morefocused search results. The title or full text <strong>of</strong> a given pagecan be checked for synonyms or other ideas <strong>of</strong>ten associatedwith the keyword or phrase used in the search. Themore such matches are found, the higher the degree <strong>of</strong>relevance assigned to the document. Results can then bepresented in declining order <strong>of</strong> relevance score. The usercan also be asked to indicate a result document that he orshe believes to be particularly relevant. The contents <strong>of</strong> thisdocument can then be compared to the other result documentsto find the most similar ones, which are presented aslikely to be <strong>of</strong> interest to the researcher.Information retrieval from either st<strong>and</strong>-alone databasesor the Web can also be improved by making it unnecessaryfor users to employ structured query languages (see sql)or even carefully selected keywords. Users can simply typein their request in the form <strong>of</strong> a question, using ordinarylanguage: For example, “What country in Europe has thelargest population?” The search engine can then translateFurther ReadingBell, Suzanne S. Librarian’s Guide to Online Searching. Westport,Conn.: Libraries Unlimited, 2006.Chakrabarti, Soumen. Mining the Web: Discovering Knowledge fromHypertext Data. San Francisco: Morgan Kaufmann, 2002.Grossman, David A., <strong>and</strong> Ophir Frieder. Information Retrieval:Algorithms <strong>and</strong> Heuristics. 2nd ed. Norwell, Mass.: Springer,2004.“Information Retrieval Research.” Search Tools Consulting. Availableonline. URL: http://www.searchtools.com/info/inforetrieval.html.Accessed August 8, 2007.Meadow, Charles T., et al. Text Information Retrieval Systems. 3rded. Burlington, Mass.: Academic Press, 2007.information theoryInformation theory is the study <strong>of</strong> the fundamental characteristics<strong>of</strong> information <strong>and</strong> its transmission <strong>and</strong> reception.As a discipline, information theory took its impetus fromthe ideas <strong>of</strong> Claude Shannon (see Shannon, Claude).In his seminal paper “A Mathematical Theory <strong>of</strong> Communication”published in the Bell System Technical Journalin 1948, Shannon analyzed the redundancy inherent in anyform <strong>of</strong> communication other than a series <strong>of</strong> purely r<strong>and</strong>omnumbers. Because <strong>of</strong> this redundancy, the amount <strong>of</strong>information (expressed in binary bits) needed to convey amessage will be less than the number in the original message.It is because <strong>of</strong> redundancy that data compressionalgorithms can be applied to text, graphics, <strong>and</strong> other types<strong>of</strong> files to be stored on disk or transmitted over a network(see data compression).Shannon also analyzed the unpredictability or uncertainty<strong>of</strong> information as it is received—that is, the number <strong>of</strong>possibilities for the next bit or character. This is related to thenumber <strong>of</strong> possible symbols, but since all symbols are usuallynot equally likely, it is actually a sum <strong>of</strong> probabilities. Shannonused the physics term entropy to refer to this measure. Itis important because it makes it possible to analyze the probability<strong>of</strong> error (caused by such things as “line noise”) in acommunications circuit. Shannon’s basic formula is:C = Blog 2 (1 + P / N)where the channel capacity C is in bits per second, B is theb<strong>and</strong>width, P the signal power, <strong>and</strong> N the Gaussian noisepower.


242 information warfareShannon found that if as long as the actual data transmissionrate is less than the channel capacity C, an errorcorrectingcode can be devised to ensure that any desiredaccuracy rate is achieved (see error correction). A relatedformula can also be used to find the lowest transmissionpower needed given a specified amount <strong>of</strong> noise.The influence <strong>of</strong> Shannon <strong>and</strong> his disciples on computinghas been pervasive. Information theory provides thefundamental underst<strong>and</strong>ing needed for applications in datacompression, signal analysis, data communication, <strong>and</strong>cryptography—as well as problems in other fields such asthe analysis <strong>of</strong> genetic mutation or variation.Further ReadingCover, Thomas, <strong>and</strong> Joy A. Thomas. Elements <strong>of</strong> Information Theory.2nd ed. Hoboken, N.J.: Wiley, 2006.Gray, R. M. Entropy <strong>and</strong> Information Theory. New York: Springer,1990. Available online. URL: http://ee.stanford.edu/~gray/it.pdf. Accessed August 8, 2007.Hankerson, Darrel, Greg A. Harris, Jr., <strong>and</strong> Peter D. Johnson. Introductionto Information Theory <strong>and</strong> Data Compression. 2nd ed.Boca Raton, Fla.: CRC Press/Chapman & Hall, 2003.IEEE Information Theory Society. Available online. URL: http://www.itsoc.org/. Accessed August 8, 2007.Shannon, Claude. “A Mathematical Theory <strong>of</strong> Communication.”Bell System Technical Journal 27 (July, October 1948): 379–423, 523–656. Available online. URL: http://plan9.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf. AccessedAugust 8, 2007.information warfareInformation warfare has many aspects <strong>and</strong> can be foughton many levels. On the battlefield, it can involve collectingtactical or strategic intelligence <strong>and</strong> protecting one’s ownchannels <strong>of</strong> communication. Conversely, it can involve disruptingthe enemy’s means <strong>of</strong> communication, blocking theenemy’s intelligence gathering, spreading disinformation,<strong>and</strong> trying to disrupt their decision process. Beyond thebattlefield, media (including the Internet) can be used forpropag<strong>and</strong>a purposes.All <strong>of</strong> these objectives today involve the use <strong>of</strong> digitalinformation <strong>and</strong> communications systems. Examples include:• analysis <strong>of</strong> enemy communications using both automatictools <strong>and</strong> human analysts• cryptography <strong>and</strong> signal analysis• protection <strong>of</strong> computer <strong>and</strong> network infrastructure• attacks <strong>and</strong> disruptions on enemy information infrastructure,both military <strong>and</strong> civilian (such as denial<strong>of</strong>-serviceattacks on Web sites)• use <strong>of</strong> Web sites to spread disinformation or propag<strong>and</strong>aHistory <strong>and</strong> DevelopmentInformation warfare is as old as warfare itself, with suchthings as ruses designed to trick or confuse enemy sentriesor lighting many fires to convince the enemy that one’sarmy was much larger than in reality. Wiretapping <strong>and</strong>spo<strong>of</strong> messages began with the telegraph in the mid-19thcentury, <strong>and</strong> eavesdropping <strong>and</strong> other tricks with radiowere used in World War I. These arts had greatly increasedin scale <strong>and</strong> sophistication by World War II—an entire fakearmy corps was “created” to deceive the Germans prior tothe D-day invasion.Information warfare involving computers has been usedin recent conflicts. The active phase <strong>of</strong> the U.S. attack in thefirst Gulf War in 1991 began with systematic destruction<strong>and</strong> disruption <strong>of</strong> Iraqi information <strong>and</strong> comm<strong>and</strong>-<strong>and</strong>-controlassets through targeted attacks. As a result, the stilllargely intact Iraqi military was left blind as to the comingflank attack by U.S. forces.In 2007 a series <strong>of</strong> coordinated attacks by unknownparties paralyzed much <strong>of</strong> Estonia’s Web-based government<strong>and</strong> business structures following a dispute with Russia.To many observers this represents a model for “strategic”information warfare that might be used in future conflicts.(Note that the techniques used in information warfare bythe national military <strong>and</strong> the kinds <strong>of</strong> cyber attacks thatmight be favored by terrorists overlap. For the latter, seecyberterrorism.)Further ReadingArmistead, E. Leigh. Information Warfare: Separating Hype fromReality. Washington, D.C.: Potomac Books, 2007.Greenmeier, Larry. “Estonian ‘Cyber Riot’ Was Planned, but MastermindStill a Mystery.” InformationWeek, August 3, 2007.Available online. URL: http://www.informationweek.com/showArticle.jhtml?articleID=201202784. Accessed September23, 2007.Johnson, L. Scott. “Toward a Functional Model <strong>of</strong> InformationWarfare.” Available online. URL: http://bss.sfsu.edu/fischer/IR%20360/Readings/Information%20War.htm. Accessed September23, 2007.Libicki, Martin C. Conquest in Cyberspace: National Security <strong>and</strong>Information Warfare. New York: Cambridge University Press,2007.Rattray, Gregory J. Strategic Warfare in Cyberspace. Cambridge,Mass.: MIT Press, 2001.Waltz, Edward. Information Warfare: Principles <strong>and</strong> Operations.Boston: Artech House, 1998.Input/Output (I/O)While the heart <strong>of</strong> a computer is its central processing unitor CPU (the part that actually “computes”), a computermust also have a “circulatory system” through which datamoves between the CPU, the main memory, input devices(such as a keyboard or mouse), output devices (such as aprinter), <strong>and</strong> mass storage devices (such as a hard or floppydisk drive). Input/Output or I/O processing is the generalterm for the management <strong>of</strong> this data flow (see also bus,parallel port, serial port, <strong>and</strong> usb).I/O processing can be categorized according to how arequest for data is initiated, what component controls theprocess, <strong>and</strong> how the data flows between devices. In mostearly computers the CPU was responsible for all I/O activities(see cpu). Under program control, the CPU initiated adata transfer, checked the status <strong>of</strong> the device (or area <strong>of</strong>memory) that would be sending or receiving the data, <strong>and</strong>


Input/Output 243monitored the flow <strong>of</strong> data until it was complete. While thisarrangement simplified computer architecture <strong>and</strong> reducedthe cost <strong>of</strong> memory units or peripheral devices (at a timeSteps in processing an interrupt request (IRQ) in a PC. (1) Thedevice requesting attention signals the Interrupt Controller, whichin turn sends a special signal to the CPU. (2) The CPU savesits state (including internal data <strong>and</strong> the address <strong>of</strong> the currentinstruction) to a stack. (3) The CPU gets the interrupt number <strong>and</strong>other information from the Interrupt Controller, then looks up aset <strong>of</strong> instructions for processing that particular interrupt. (4) TheCPU executes the interrupt processing code, which generally linksto BIOS code for h<strong>and</strong>ling a device such as the keyboard. (5) TheCPU reloads its state information from the stack <strong>and</strong> resumes theinterrupted processing.when computer hardware was h<strong>and</strong>-built <strong>and</strong> relativelycostly), it also meant that the CPU could perform no otherprocessing until I/O was complete.In most modern computers, responsibility for I/O haslargely been removed from the CPU, freeing it to concentrateon computation. There are several ways to implementsuch architecture. One method that has been used onmicrocomputers since their earliest day is interrupt-drivenI/O. This means that the CPU has separate circuits onwhich a device requesting I/O service can “post” a request.The CPU periodically checks the circuits for an interruptrequest (IRQ). If one is found, it can send a query to eachdevice on a list until the correct one is found (the latteris called polling). Alternatively, the overhead involved inpolling can be eliminated by having the IRQ include eithera device identification number or a memory address thatcontains an interrupt service routine (this is called vectoredinterrupts). While interrupts alone do not free the CPU <strong>of</strong>the need to manage the I/O, they do remove the overhead <strong>of</strong>having to frequently check all devices for I/O.The actual I/O process can also be moved out <strong>of</strong> theCPU through the use <strong>of</strong> direct memory access (DMA). Herea separate control device takes over control <strong>of</strong> the systemfrom the CPU when I/O is requested. It then transfers datadirectly between a device (such as a hard disk drive) <strong>and</strong>a buffer in main memory. Although the CPU is idle duringthis process, the transfer is accomplished much morequickly because the full capacity <strong>of</strong> the bus can be used tomove data rather than having to be shared with the flow <strong>of</strong>program instructions in the CPU.A more sophisticated I/O control device is called a channel.A channel controller can operate completely independently<strong>of</strong> the CPU without requiring that the CPU becomeidle during a transfer. Channels can also act as a sort <strong>of</strong> specializedCPU or coprocessor, running program instructionsto monitor the data transfer. There are also channels capable<strong>of</strong> monitoring <strong>and</strong> controlling several devices simultaneously(this is called multiplexing). The use <strong>of</strong> channels inmainframes such as the IBM 360 <strong>and</strong> its descendants is onereason why mainframes still perform a workhorse role inhigh-volume data processing.In microcomputers the trend has also been toward<strong>of</strong>floading I/O from the CPU <strong>and</strong> the main bus to separatecontrollers or channels. For example, the AGP (acceleratedgraphics port) found on most modern PCs acts as achannel between main memory <strong>and</strong> the graphics controllers(see graphics card). This means that as a programgenerates graphics data it can be automatically transferredfrom memory to the graphics controllers without any loadon the CPU, <strong>and</strong> over a bus that is faster than the mainsystem bus.Further ReadingBuchanan, William. Applied PC Interfacing, Graphics <strong>and</strong> Interrupts.Reading, Mass.: Addison-Wesley, 1999.Karbo, Michael B. “About the PC I/O System.” Available online.URL: http://www.karbosguide.com/hardware/module5a1a.htm. Accessed August 8, 2007.White, Ron, <strong>and</strong> Timothy Downs. How <strong>Computer</strong>s Work. 8th ed.Indianapolis: Que, 2005.


244 installation <strong>of</strong> s<strong>of</strong>twareinstallation <strong>of</strong> s<strong>of</strong>twareWhile not <strong>of</strong>ten covered in computer science or s<strong>of</strong>twareengineering courses, the process <strong>of</strong> getting a program towork on a given computer is <strong>of</strong>ten nontrivial. In the earlydays <strong>of</strong> PCs, installation generally involved simply copyingthe main program file <strong>and</strong> any needed settings files to a diskdirectory <strong>and</strong> possibly setting up the appropriate driver forthe user’s printer. (A cryptic user interface sometimes madethe latter procedure a frequent occasion for technical supportcalls.) Users generally did not have to make manychoices about what components to install or where to putthem. On the other h<strong>and</strong>, installation programs sometimesmade changes to a user’s system without notification or theability to “back out.”The ascension <strong>of</strong> Micros<strong>of</strong>t Windows to dominance asa PC operating system improved the installation process inseveral ways. Since the operating system <strong>and</strong> device driverswritten by hardware vendors took over responsibility forinstalling <strong>and</strong> configuring printers <strong>and</strong> other devices, usersgenerally didn’t have to worry about configuring programsto work with specific hardware. Particularly with Windows95 <strong>and</strong> later versions, a st<strong>and</strong>ard “installation kit” allowss<strong>of</strong>tware developers to provide a familiar, step-by-stepinstallation procedure to guide users. Generally, installationconsists <strong>of</strong> an introductory screen, legal agreement, <strong>and</strong> theopportunity to choose a hard drive folder for the program.A moving “progress bar” then shows the files being copiedfrom the installation CD to the hard drive. A “readme” filegiving important considerations for using the program isusually provided. Increasingly, s<strong>of</strong>tware registration is doneby launching the user’s Web browser <strong>and</strong> directing it to thevendor’s Web site where a form is presented.The installation <strong>of</strong> drivers accompanying new hardwaresuch as a printer or scanner has been simplified even morethrough the “Plug <strong>and</strong> Play” feature in modern versions <strong>of</strong>Windows. This allows the system to automatically detectthe presence <strong>of</strong> a new device <strong>and</strong> either install the driverautomatically or prompt the user to insert a disk or CD (seeplug <strong>and</strong> play).Installation becomes a much more complicated matterwhen an enterprise has to install from tens to hundredsor thous<strong>and</strong>s <strong>of</strong> copies <strong>of</strong> a program on employees’ PCs.While small businesses may simply buy consumer-packageds<strong>of</strong>tware <strong>and</strong> install one copy on each PC, large businessesgenerally obtain a site license allowing a certainnumber <strong>of</strong> installations (or in some cases, unlimited on-siteinstallations). Organizations must monitor the number <strong>of</strong>installations <strong>of</strong> a particular program package to ensure thatlicensing agreements are not violated while trying to useavailable s<strong>of</strong>tware assets as efficiently as possible. (This issometimes called s<strong>of</strong>tware asset management or SAM.)An automated installation script can be used to installa copy <strong>of</strong> the same s<strong>of</strong>tware on each PC on the company’snetwork—or a utility can be used to copy an exact harddisk image, including fully configured operating system<strong>and</strong> applications, to each PC. Alternatively, it is possibleto buy networked versions <strong>of</strong> some programs. In this casethe application actually runs on a server <strong>and</strong> is accessedfrom (but not copied to) each user’s PC. This technique hasalso been adopted to provide consumers with an alternativeto st<strong>and</strong>-alone installation (see application serviceprovider).Installation is only the first part <strong>of</strong> the story, <strong>of</strong> course.Most significant programs will experience a steady flow<strong>of</strong> minor version updates as well as security patches. Forindividual users, setting the program to update automatically(if possible) or periodically checking for updates maybe sufficient. For organizations, the task <strong>of</strong> making sure allthe deployed copies <strong>of</strong> the s<strong>of</strong>tware are up to date can benontrivial, although tools such as Micros<strong>of</strong>t System Centercan help. (Many Linux distributions such as Ubuntu canautomatically retrieve all updates for installed packages.)Linux <strong>and</strong> UNIX systems have also evolved more sophisticatedinstallation systems in order to keep up with today’smore complex applications <strong>and</strong> distributions. One commonsolution used by Red Hat <strong>and</strong> other Linux vendors is a“package” system where the user selects programs <strong>and</strong> features<strong>and</strong> the system identifies the components (packages)that must be installed to enable them.Further ReadingBrowne, Christopher. “Linux System Configuration Tools.” Availableonline. URL: http://linuxfinances.info/info/linuxsysconfig.html. Accessed August 8, 2007.Chappell, David. Introducing Micros<strong>of</strong>t System Center. Availableonline. URL: http://download.micros<strong>of</strong>t.com/download/7/A/1/7A1C88D7-B91A-4114-AF8D-852B481D5E F7/Introducing%20System%20Center.doc. Accessed August 8, 2007.Habib, Irfan. “New Approaches to Linux Package Management.”Linux.com November 10, 2005. Available online. URL: http://www.linux.com/feature/49405. Accessed August 8, 2007.Honeycutt, Jerry. Micros<strong>of</strong>t Windows Desktop Deployment ResourceKit. Redmond, Wash.: Micros<strong>of</strong>t Press, 2003.Mehler, Kerrie, Cameron Fuller, <strong>and</strong> John Joyner. Micros<strong>of</strong>t SystemCenter Operations Manager 2007 Unleashed. Indianapolis:Sams, 2007.Wilson, Phil. The Definitive Guide to Windows Installer. Berkeley,Calif.: Apress, 2004.Intel CorporationIntel Corporation (NASDAQ symbol: INTC) is the world’slargest manufacturer <strong>of</strong> semiconductors or “computerchips.” The company was founded in 1968 as IntegratedElectronics Corporation by Robert Noyce <strong>and</strong> GordonMoore (see chip <strong>and</strong> Moore, Gordon).Until the early 1980s Intel made most <strong>of</strong> its revenuefrom manufacturing SRAM memory chips (see memory).When the Japanese had made significant inroads into thesemiconductor market, Intel turned to microprocessors,which it had introduced in 1971 <strong>and</strong> which formed thebasis for the development <strong>of</strong> the desktop or personal computer(see microprocessor <strong>and</strong> personal computer).During the 1980s, Intel 8086/8088 processors <strong>and</strong> theirsuccessors (286, 386, 486) <strong>and</strong> the associated chipsets werebeing used in the dominant “Wintel” (Micros<strong>of</strong>t Windowsplus Intel) PC architecture. By the middle <strong>of</strong> the 1990s,Intel dominated the microprocessor market with its Pentiumseries chips, overcoming a mathematical flaw in some<strong>of</strong> the latter.


intellectual property <strong>and</strong> computing 245CompetitionAround 2000, Intel’s dominance began to be challenged.The power <strong>of</strong> modern processors allowed for the development<strong>of</strong> lower-cost commodity PCs, <strong>and</strong> when Intel continuedits progression toward increased power, competitors,particularly AMD (see Advanced Micro Devices), wereable to gain greater market share with its less expensiveCPUs.In higher power chips (particularly dual- <strong>and</strong> multi-corechips with more than one processor), Intel seems to havethe edge in the middle <strong>of</strong> the first decade <strong>of</strong> the new century,although AMD is coming on strong. Meanwhile Intel<strong>and</strong> Apple in 2006 made a deal to replace the PowerPC chipin the Macintosh with Intel chips.Intel has struggled with corporate reorganization <strong>and</strong>lower sales <strong>of</strong> chipsets <strong>and</strong> motherboards (even while continuingwith strong sales <strong>of</strong> its dual-core <strong>and</strong> quad-coreprocessors). After a decline <strong>of</strong> 42 percent from 2005 to2006, Intel’s net income increased to about $7 billion in2007. However, its workforce has continued to declinefrom 102,500 in mid-2006 to 86,300 in 2007. However,Intel is expecting to produce more quad-core processors,new laptop components (including flash memory instead<strong>of</strong> hard drives), <strong>and</strong> other innovations in a very competitivemarket.Further ReadingColeman, Bob, <strong>and</strong> Logan Shrine. Losing Faith: How the Grove SurvivorsLed the Decline <strong>of</strong> Intel’s Corporate Culture. 2007.Colwell, Robert P. The Pentium Chronicles: The People, Passion, <strong>and</strong>Politics Behind Intel’s L<strong>and</strong>mark Chips. Hoboken, N.J.: Wiley,2006.Grove, Andrew S. Only the Paranoid Survive: How to Exploit theCrisis Points That Challenge Every Company. New York: Dell,1996.Intel Corporation. Available online. URL: http://www.intel.com.Accessed September 23, 2007.intellectual property <strong>and</strong> computingIntellectual property can be defined as the rights the creator<strong>of</strong> an original work (such as an invention or a book)has to control its reproduction or use. Developers <strong>of</strong> newcomputer hardware, s<strong>of</strong>tware, <strong>and</strong> media content must beable to realize a return on their time <strong>and</strong> effort. This returnis threatened by the ease with which programs <strong>and</strong> data ondisks can be illicitly copied <strong>and</strong> redistributed. Several legalmechanisms can be used to deter such behavior.Legal Protection MechanismsIntellectual property represented by the design <strong>of</strong> new hardwarecan be protected through the patent system. A patentgives the inventor the exclusive right to sell or license theinvention for 20 years after the date <strong>of</strong> filing. The basicrequirements for a device to be patentable are that it representsan actual physical device or process <strong>and</strong> that it besufficiently original <strong>and</strong> useful. A mere idea for a device,a mathematical formula, or a law <strong>of</strong> nature is not patentablein itself. In computing, a patent can be given for anactual physical device that meets the originality <strong>and</strong> usefulnessrequirements. S<strong>of</strong>tware that works with that device tocontrol a physical process can be part <strong>of</strong> the patent, but analgorithm is not patentable by itself.In practice, however, the situation is much murkier<strong>and</strong> more problematic. Patents are viewed as a key strategicresource (<strong>and</strong> financial asset) by companies such asIBM (which holds 40,000 patents <strong>and</strong> earns $1 billion ayear by licensing them), <strong>and</strong> in the decade between 1995<strong>and</strong> 2005 the annual number <strong>of</strong> patent applications filedrose 73 percent to 409,532. This has led to a considerablebacklog in the Patent Office, <strong>and</strong> critics suggest that manypatents are granted without being properly examined,such as for the existence <strong>of</strong> “prior art” (previous uses <strong>of</strong>similar technology).Large companies <strong>of</strong>ten complain that so-called patenttrollers obtain patents that may be relevant enough to causeinfringement or invalidate a later patent, <strong>and</strong> then threatenthe company with litigation if they are not paid. (Smallpatent holders in turn complain that large companies sometimesignore or underpay them because they assume thatthe patent holder cannot afford litigation.) Many companies,including eBay, Research in Motion (maker <strong>of</strong> theBlackberry PDA), <strong>and</strong> Micros<strong>of</strong>t have been embroiled inpatent suits.Major computer companies such as Google, IBM, <strong>and</strong>Apple are supporting the Patent Reform Act <strong>of</strong> 2007. Thelaw would tighten the st<strong>and</strong>ards for getting a patent <strong>and</strong>make it easier to challenge the patent later.As <strong>of</strong> mid-2008 the bill remained stalled in the Senate.Meanwhile, a federal court had overturned new patent regulationsthat sought to streamline the application processby reducing the amount <strong>of</strong> supporting materials submitted.Because <strong>of</strong> these restrictions, most s<strong>of</strong>tware is protectedby copyright rather than by patent. A computer program isconsidered to be a written work akin to a book. (After all,a computer program can be thought <strong>of</strong> as a special type <strong>of</strong>narrative description <strong>of</strong> a process. When compiled into executablecode <strong>and</strong> run on a suitable computer, a program hasthe ability to physically carry out the process it describes.)Like other written works, a program has to be sufficientlyoriginal. Once copyrighted, protection lasts for thelife <strong>of</strong> the author (programmer) plus 70 years. (Works madefor hire are covered for 95 years from first publication or120 years from creation.) Given the pace <strong>of</strong> change in computing,such terms are close to “forever.” While not strictlynecessary, registration <strong>of</strong> the work with the U.S. CopyrightOffice <strong>and</strong> the inclusion <strong>of</strong> a copyright statement serve aseffective legal notice <strong>and</strong> prevent infringers from claimingthat they did not know the work was copyrighted.Content (that is, text or multimedia materials) presentedin a computer medium can be copyrighted in the same wayas its traditional printed counterpart. However, in 1996 theU.S. Supreme Court declared that a program’s user interfaceas such could not be copyrighted (see Lotus DevelopmentCorp. v. Borl<strong>and</strong> International, U.S. 94-2003).<strong>Computer</strong> programs have also received protectionas trade secrets. Under the Uniform Trade Secrets Act, asadopted in many states, a program can be considered atrade secret if gaining economic value from it depends upon


246 internationalization <strong>and</strong> localizationit not being generally known to competitors, <strong>and</strong> that “reasonableeffort” is undertaken to maintain its secrecy. Thefamiliar confidentiality <strong>and</strong> non-disclosure agreementssigned by many employees <strong>of</strong> technical firms are used toenforce such secrecy.First Amendment IssuesIn a few cases the government itself has sought to limitaccess to s<strong>of</strong>tware, citing national security. In the 1996 case<strong>of</strong> Bernstein v. U.S., however, the courts ultimately ruledthat computer program code was a form <strong>of</strong> writing protectedby the First Amendment, so government agenciesseeking to prevent the spread <strong>of</strong> strong encryption s<strong>of</strong>twarecould not prevent its publication.However, First Amendment arguments have been lesseffective in challenging private s<strong>of</strong>tware protection mechanisms.In 2001 a U.S. District judge ruled that PrincetonUniversity computer scientist Edward Felten <strong>and</strong> his colleagueshad no legal basis to challenge provisions <strong>of</strong> theDigital Millennium Copyright Act (DMCA). The scientistshad claimed that a letter from the Recording Industry Association<strong>of</strong> America (RIAA) had cast a “chilling effect” ontheir research into DVD-protection s<strong>of</strong>tware by threateningthem with legal action if they published academic papersabout copy protection s<strong>of</strong>tware used by online music services.The RIAA had withdrawn its letter, <strong>and</strong> the courtsruled there was no longer anything to sue about. Critics <strong>of</strong>the decision claim that it still leaves the academics in a sort<strong>of</strong> legal limbo since there is no guarantee that they wouldnot be sued if they published something.In another widely watched case the U.S. Court <strong>of</strong>Appeals in New York affirmed a ruling that Eric Corley,editor <strong>of</strong> the hacker magazine 2600 could not publish thecode for DeCSS, a program that would allow users to readencrypted DVD disks, bypassing publisher’s restrictions.The Court said that the DMCA did not infringe upon FirstAmendment rights. This decision would appear to conflictwith Bernstein, although the latter has to do with governmentcensorship, not copyright. The Supreme Court islikely to hear one or more computer-related copyright casesin the years to come.Fair Use <strong>and</strong> Copy ProtectionAlthough the purchase <strong>of</strong> s<strong>of</strong>tware may look like a simpletransfer <strong>of</strong> ownership, most s<strong>of</strong>tware is accompanied by alicense that actually grants only the right to use the programunder certain conditions. For example, users are typicallynot allowed to make copies <strong>of</strong> the program <strong>and</strong> runthe program on more than one computer (unless the licenseis specifically for multiple uses). However, as part <strong>of</strong> “fairuse” users are allowed to make an archival or backup copyto guard against damage to the physical media.Until the 1990s, it was typical for many programs (particularlygames) to be physically protected against copying(see copy protection). Talented hackers or “s<strong>of</strong>twarepirates” are usually able to defeat such measures, <strong>and</strong>“bootleg” copies <strong>of</strong> programs outnumber legitimate copiesin some Asian markets, for example (see s<strong>of</strong>tware piracy<strong>and</strong> counterfeiting). Copy protection <strong>and</strong>/or encryptionis also typically used for some multimedia products such asDVD movies.Challenges <strong>of</strong> New MediaBy the mid-2000 decade, the biggest intellectual propertybattles were not about esoteric program codes but ratherrevolved around how to satisfy the ordinary home consumer’sappetite for music <strong>and</strong> video while preserving producers’revenues. Increasingly, music <strong>and</strong> even video is beingdownloaded rather than being bought in commercial packagingat the local store.In the Sony v. Universal case (1984) the Supreme Courtruled that manufacturers <strong>of</strong> devices such as VCRs werenot liable for their misuse if there were “substantial noninfringinguses”—such as someone making a copy <strong>of</strong> legallypossessed media for their own use. However, in 2005 theSupreme Court ruled that Grokster, a decentralized filesharingservice, could be held liable for the distribution <strong>of</strong>illegally copied media if it “actively induced” such copying.By 2006 media industry lobbyists (particularly theRecording Industry Institute <strong>of</strong> America, or RIAA) werepromoting a number <strong>of</strong> bills in Congress that would furtherrestrict consumers’ rights to use media. Such measuresmight include requiring that devices be able to detect“flagged” media <strong>and</strong> refuse to copy it (see digital rightsmanagement), as well as adding stricter provisions to theDigital Millennium Copyright Act (DMCA). These measuresare opposed by cyber-libertarian groups such as theElectronic Frontier Foundation <strong>and</strong> consumer groups suchas the Home Recording Rights Coalition.Further ReadingChabrow, Eric. “The U.S. Patent System in Crisis.” Information-Week, February 20, 2006. Available online. URL: http://www.informationweek.com/story/showArticle.jhtml?articleID=180204145. Accessed August 12, 2007.Electronic Frontier Foundation. “Unintended Consequences: SevenYears under the DMCA.” April 2006. Available online. URL:http://www.eff.org/IP/DMCA/unintended_consequences.php.Accessed August 8, 2007.Gilbert, Jill. The Entrepreneur’s Guide to Patents, Copyrights, Trademarks,Trade Secrets & Licensing. New York: Berkley Books,2004.Home Recording Rights Coalition. Available online. URL: http://www.hrrc.org/. Accessed August 8, 2007.“Intellectual Property Law News.” FindLaw. Available online.URL: http://news.findlaw.com/legalnews/scitech/ip/. AccessedAugust 8, 2007.Klemens, Ben. Math You Can’t Use: Patents, Copyright, <strong>and</strong> S<strong>of</strong>tware.Washington, D.C.: Brookings Institution, 2006.LaPlante, Alice. “Media Distribution Rights: Here Come the Judges(<strong>and</strong> Congress).” InformationWeek, June 29, 2006. Availableonline. URL: http://www.informationweek.com/story/show-Article.jhtml?articleID=189700173. Accessed August 8, 2007.Wilson, Lee. Fair Use, Free Use, <strong>and</strong> Use by Permission: How to H<strong>and</strong>leCopyrights in All Media. New York: Allworth Press, 2005.internationalization <strong>and</strong> localizationInternationalization <strong>and</strong> localization are ways to adaptcomputer s<strong>of</strong>tware (<strong>of</strong>ten created in the United States orEurope) to other languages <strong>and</strong> cultures. The abbreviations


Internet 247I18n <strong>and</strong> L10n are sometimes used for internationalization<strong>and</strong> localization, respectively (the numbers in each wordrefer to the number <strong>of</strong> letters in the alphabet between theletters). The two processes are complementary.Internationalization involves designing programs sothey will be as easy as possible to adapt to a variety <strong>of</strong> culturalsettings. For example, the Unicode character set ispreferred because it can accommodate most <strong>of</strong> the world’salphabets <strong>and</strong> many other characters. Program code canalso be modularized such that date, time, <strong>and</strong> other formatsfor different countries can be loaded in <strong>and</strong> used as desired.Localization involves changing a number <strong>of</strong> aspects<strong>of</strong> a s<strong>of</strong>tware product (including user interface elements<strong>and</strong> online help) to reflect the language <strong>and</strong> culture <strong>of</strong> theintended market. Some <strong>of</strong> this is fairly straightforward: formatsfor numbers, currency, date, <strong>and</strong> time; text collation<strong>and</strong> sorting order; <strong>and</strong> use <strong>of</strong> the keyboard (including specialkeys). To the extent the program has been appropriatelygeneralized (internationalized), it becomes easier to localizeit for each setting.Other aspects <strong>of</strong> localization can be subtler. Icons, forexample, may have to be changed because their supposedly“universal” meaning would not translate well into the localculture. Documentation may have to change wording toavoid conveying ideas that may be confusing or even <strong>of</strong>fensive.Even more substantial localization may be required ifthe target environment (such as the education system) issubstantially different from that in the country where thes<strong>of</strong>tware was written. Generally this cannot be done automatically:the program must be reviewed by someone whois knowledgeable about the target language or culture.Further ReadingEsselink, Bert. A Practical Guide to Localization. Philadelphia: JohnBenjamins Publisher, 2000.Internationalization (I18n) Activity. World Wide Web Consortium.Available online. URL: http://www.w3.org/International/.Accessed September 23, 2007.Smith-Ferrier, Guy. .NET Internationalization: The Developer’sGuide to Building Global Windows <strong>and</strong> Web Applications. UpperSaddle River, N.J.: Addison-Wesley, 2007.InternetThe Internet is the worldwide network <strong>of</strong> all computers (ornetworks <strong>of</strong> computers) that communicate using a particularprotocol for routing data from one computer to another(see tcp/ip). As long as the programs they run follow therules <strong>of</strong> the protocol, the computers can be connected bya variety <strong>of</strong> physical means including ordinary <strong>and</strong> specialphone lines, cable, fiber optics, <strong>and</strong> even wireless or satellitetransmission.History <strong>and</strong> DevelopmentThe Internet’s origins can be traced to a project sponsoredby the U.S. Defense Department. Its purpose was to finda way to connect key military computers (such as thosecontrolling air defense radar <strong>and</strong> interceptor systems). Sucha system would require a great deal <strong>of</strong> redundancy, routingcommunications around installations that had beendestroyed by enemy nuclear weapons. The solution wasto break data up into individually addressed packets thatcould be dispatched by routing s<strong>of</strong>tware that could findwhatever route to the destination was viable or most efficient.At the destination, packets would be reassembledinto messages or data files.By the early 1970s, a number <strong>of</strong> research institutionsincluding the pioneer networking firm Bolt Beranek <strong>and</strong>Newman (BBN), Stanford Research Institute (SRI), CarnegieMellon University, <strong>and</strong> the University <strong>of</strong> California at Berkeleywere connected to the government-funded <strong>and</strong> administeredARPANET (named for the Defense Department’sAdvanced Research Projects Agency). Gradually, as use <strong>of</strong>the ARPANET’s protocol spread, gateways were created toconnect it to other networks such as the National <strong>Science</strong>Foundation’s NSFnet. The growth <strong>of</strong> the network was alsospurred by the creation <strong>of</strong> useful applications includinge-mail <strong>and</strong> Usenet, a sort <strong>of</strong> bulletin-board service (see theApplications section below).Meanwhile, a completely different world <strong>of</strong> online networkingarose during the 1980s in the form <strong>of</strong> local bulletinboards, <strong>of</strong>ten connected using a store-<strong>and</strong>-forward systemcalled FidoNet, <strong>and</strong> proprietary online services such asCompuServe <strong>and</strong> America On-line. At first there were fewconnections between these networks <strong>and</strong> the ARPANET,which had evolved into a general-purpose network for theacademic community under the rubric <strong>of</strong> NSFnet. (It waspossible to send e-mail between some networks using specialgateways, but a number <strong>of</strong> different kinds <strong>of</strong> addresssyntax had to be used.)In the 1990s, the NSFnet was essentially privatized,passing from government administration to a corporationthat assigned domain names (see domain name system).However, the impetus that brought the Internet into thedaily consciousness <strong>of</strong> more <strong>and</strong> more people was the development<strong>of</strong> the World Wide Web by Tim Berners-Lee at theEuropean particle research laboratory CERN (see Berners-Lee, Tim <strong>and</strong> world wide web). With a st<strong>and</strong>ard way todisplay <strong>and</strong> link text (<strong>and</strong> the addition <strong>of</strong> graphics <strong>and</strong> multimediaby the mid-1990s), the Web is the Internet as far asmost users are concerned (see Web browser). What hadbeen a network for academics <strong>and</strong> adventurous pr<strong>of</strong>essionalsbecame a mainstream medium by the end <strong>of</strong> the decade(see also e-commerce).ApplicationsA number <strong>of</strong> applications are (or have been) important contributorsto the utility <strong>and</strong> popularity <strong>of</strong> the Internet.• E-mail was one <strong>of</strong> the earliest applications on theancestral ARPANET <strong>and</strong> remains the single most popularInternet application. St<strong>and</strong>ard e-mail using SMTP(Simple Mail Transport Protocol) has been implementedfor virtually every platform <strong>and</strong> operating system.In most cases once a user has entered a person’se-mail address into the “address book,” e-mail can besent with a few clicks <strong>of</strong> the mouse. While failure <strong>of</strong>the outgoing or destination mail server can still block


248 Internettransmission <strong>of</strong> a message, e-mail today has a highdegree <strong>of</strong> reliability (see e-mail).• Netnews (also called Usenet, for UNIX User Network)is in effect the world’s largest computer bulletinboard. It began in 1979, when Duke University<strong>and</strong> the University <strong>of</strong> North Carolina set up a simplemechanism for “posting” text files that could be readby other users. Today there are tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong>topical “newsgroups” <strong>and</strong> millions <strong>of</strong> messages (calledarticles). Although still impressive in its quantity <strong>of</strong>content, many Web users now rely more on discussionforums based on Web pages (see netnews <strong>and</strong>newsgroups).• Ftp (File Transport Protocol) enables the transfer <strong>of</strong>one or more files between any two machines connectedto the Internet. This method <strong>of</strong> file transferhas been largely supplanted by the use <strong>of</strong> downloadlinks on Web pages, except for high-volume applications(where an ftp server is <strong>of</strong>ten operated “behindthe scenes” <strong>of</strong> a Web link). FTP is also used by Webdevelopers to upload files to a Web site (see filetransfer protocols).• Telnet is another fundamental service that broughtthe Internet much <strong>of</strong> its early utility. Telnet allows auser at one computer to log into another machine <strong>and</strong>run a program there. This provided an early means forusers at PCs or workstations to, for example, accessthe Library <strong>of</strong> Congress catalog online. However, ifprogram <strong>and</strong> file permissions are not set properly onthe “host” system, telnet can cause security vulnerabilities.The telnet user is also vulnerable to havingIDs <strong>and</strong> passwords stolen, since these are transmittedas clear (unencrypted) text. As a result, some onlinesites that once supported telnet access now limitaccess to Web-based forms. (Another alternative is touse a program called “secure shell” or ssh, or to use atelnet client that supports encryption.)• gopher was developed at the University <strong>of</strong> Minnesota<strong>and</strong> named for its mascot. Gopher is a system <strong>of</strong> serversthat organize documents or other files througha hierarchy <strong>of</strong> menus that can be browsed by theremote user. Gopher became very popular in the late1980s, only to be almost completely supplanted bythe more versatile World Wide Web.• WAIS (Wide Area Information Service) is a gatewaythat allows databases to be searched over the Internet.WAIS provided a relatively easy way to bringlarge data resources online. It, too, has largely beenreplaced by Web-based database services.• The World Wide Web as mentioned above, is nowthe main means for displaying <strong>and</strong> transferring information<strong>of</strong> all kinds over the Internet. Its flexibility,relative ease <strong>of</strong> use, <strong>and</strong> ubiquity (with Web browsersavailable for virtually all platforms) has caused it tosubsume most earlier services. The utility <strong>of</strong> the Webhas been further enhanced by the development <strong>of</strong>many search engines that vary in thoroughness <strong>and</strong>sophistication (see World Wide Web <strong>and</strong> searchengine).• Streaming Media protocols allow for a flow <strong>of</strong> video<strong>and</strong>/or audio content to users. Player applications forWindows <strong>and</strong> other operating systems, <strong>and</strong> growinguse <strong>of</strong> high-speed consumer Internet connections (seebroadb<strong>and</strong>) have made it possible to present “live”TV <strong>and</strong> radio shows over the Internet.• E-commerce, having boomed in the late 1990s <strong>and</strong>crashed in the early 2000s, continued to grow <strong>and</strong>proliferate later in the decade, finding new markets<strong>and</strong> applications <strong>and</strong> spreading into the developingworld (see e-commerce).• Blogs <strong>and</strong> other forms <strong>of</strong> online writing have becomeprevalent among people ranging from elementaryschool students to corporate CEOs (see blogs <strong>and</strong>blogging).• Social networking sites such as MySpace <strong>and</strong> Facebookare also very popular, particularly among youngpeople (see social networking).• Wikis have become an important way to share <strong>and</strong>build on knowledge bases (see wikis <strong>and</strong> Wikipedia).• The integration <strong>of</strong> the Internet with traditional channels<strong>of</strong> communications is proceeding rapidly (seepodcasting, Internet radio, <strong>and</strong> VoIP).Even as it begins to level <strong>of</strong>f in the United States, worldwideInternet usage continues to grow rapidly. Asia now hasmore than twice as many users as North America, althoughthe latter still has more than five times the penetration(percentage <strong>of</strong> population).In the United States more than half <strong>of</strong> Internet usershave high-speed Internet connections (see broadb<strong>and</strong>), <strong>and</strong>the trend in other developed countries is similar. Broadb<strong>and</strong>is both required by <strong>and</strong> contributes to the appetite <strong>of</strong>Web users for music, streaming video, <strong>and</strong> other rich mediacontent (see streaming <strong>and</strong> music <strong>and</strong> video distribution,online).Now in its fourth decade, the Internet is not withoutdaunting challenges. A major one is security—see computercrime <strong>and</strong> security, computer virus, cyberterrorism,<strong>and</strong> information warfare. Users also wantprotection from privacy abusers <strong>and</strong> online predators (seeprivacy in the digital age, identity theft, phishing<strong>and</strong> spo<strong>of</strong>ing, <strong>and</strong> cyberstalking <strong>and</strong> harassment).For other issues <strong>and</strong> challenges involving the Internet,see censorship <strong>and</strong> the Internet, Internet architecture<strong>and</strong> governance, Internet access policy, <strong>and</strong>digital divide.In the longer term what we call the Internet today islikely to become so ubiquitous that people will no longerthink <strong>of</strong> it as a separate system or entity. Household appliances,cars, cell phones, televisions, <strong>and</strong> virtually everyother device used in daily life will communicate with otherdevices <strong>and</strong> with control systems using Internet protocols.


Internet applications programming 249In effect, people may eventually live “inside” a World WideWeb.Further ReadingHafner, Katie, <strong>and</strong> Matthew Lyon. Where Wizards Stay Up Late: TheOrigins <strong>of</strong> the Internet. New York: Simon & Schuster, 1996.Internet Society. Available online. URL: http://www.isoc.org.Accessed August 8, 2007.Internet World Stats. Available online. URL: http://www.internetworldstats.com/stats.htm. Accessed August 8, 2007.Okin, J. R. The Internet Revolution: The Not-for-Dummies Guide tothe History, <strong>Technology</strong>, <strong>and</strong> Use <strong>of</strong> the Internet. Winter Harbor,Me.: Ironbound Press, 2005.Segaller, Stephen. Nerds 2.0.1: A Brief History <strong>of</strong> the Internet. NewYork: TV Books, 1998.Zakon, Robert H. “Hobbes’ Internet Timeline v8.2.” Availableonline. URL: http://www.zakon.org/robert/internet/timeline/.Accessed August 8, 2007.Internet applications programmingThe growth <strong>of</strong> the Internet <strong>and</strong> its centrality in business,education, <strong>and</strong> other fields has led many programmersto specialize in Internet-related applications. These caninclude the following:• low-level infrastructure (networking [wired <strong>and</strong> wireless],routing, encryption support, <strong>and</strong> so on)• Web servers <strong>and</strong> related s<strong>of</strong>tware• e-commerce infrastructure (see e-commerce)• interfacing with databases• data analysis <strong>and</strong> extraction (see data mining)• support for searching (see search engine)• autonomous s<strong>of</strong>tware to navigate the net (see s<strong>of</strong>twareagent)• Internet-based communications (see texting <strong>and</strong>instant messaging <strong>and</strong> VoIP)• systems to deliver text <strong>and</strong> media (see streaming,podcasting, rss)• support for collaborative use <strong>of</strong> the Internet (seeblogs <strong>and</strong> blogging, social networking, <strong>and</strong>wikis <strong>and</strong> Wikipedia)• security s<strong>of</strong>tware (firewalls, intrusion analysis, etc.)Internet applications programmers use a variety <strong>of</strong> languages<strong>and</strong> other programming tools (<strong>of</strong>ten in combination)to implement these applications. Some <strong>of</strong> the mostcommon are:• C++ is generally used for fundamental applications,particularly those that must work at the system level<strong>and</strong> for which speed <strong>and</strong> efficiency are prerequisites.Examples would include Web servers <strong>and</strong> browsers<strong>and</strong> some browser plug-ins (see C++).• Java has largely supplanted C++ as a general-purposelanguage for programming small applications(“applets”) that are hosted by Web sites <strong>and</strong> run onthe user’s browser. With a syntax that differs in only afew respects from C++, Java can also be used to writest<strong>and</strong>alone applications (see Java).• HTML is not really a full-fledged programming language,but it defines the layout <strong>and</strong> formatting <strong>of</strong> Webpages, as well as providing for hyperlinks <strong>and</strong> theembedding <strong>of</strong> applications. In many cases, HTML nolonger has to be coded directly but can be generatedfrom word processor-like page design programs (seedntml, html, <strong>and</strong> xhtml).• Extensible markup language (see xml) has becomethe preferred format for structuring a variety <strong>of</strong> databoth for automatic processing (see semantic Web)<strong>and</strong> for feeding dynamic Web pages (see Ajax).• Scripting languages are an important tool for Internet<strong>and</strong> Web development. CGI (Common GatewayInterface) is a facility that allows scripts to controlthe interaction between HTML forms on a Web page<strong>and</strong> other programs such as databases (see cgi).CGI scripts are written in scripting languages (seeJavaScript, Perl, php, Python, <strong>and</strong> scripting languages).Use <strong>of</strong> CGI is being gradually supplantedby applets written in Java as well as other scriptinglanguages such as JavaScript <strong>and</strong> VBScript.• Active Server Pages (ASP) is a facility that uses WindowsActiveX components to process scripts createdin Visual Basic, which in turn create HTML pages “onthe fly” <strong>and</strong> send them to the user’s Web browser.• micros<strong>of</strong>t’s recent .NET initiative represents anattempt to integrate Internet connectivity <strong>and</strong> distributedoperation into the programming framework forall major languages.• Similar technologies are available for other platformssuch as Linux (see Ajax <strong>and</strong> document objectmodel)TrendsExperienced programmers will continue to be needed forcreating <strong>and</strong> extending the infrastructure for the Internet<strong>and</strong> Web <strong>and</strong> for providing increasingly powerful <strong>and</strong> easyto-usetools for developing Web sites. However, the widevariety <strong>of</strong> tools now available means that people with lessexperience will be able to design <strong>and</strong> implement attractive<strong>and</strong> effective Web pages, plugging in functionality suchas online shopping, conferencing, <strong>and</strong> site-specific searchengines. If web development follows the same course astraditional programming, predictions that specialized programmerswill no longer be needed will prove premature.At the same time, generalist web developers will be able todo more.Further ReadingAndersson, Eve, Philip Greenspun, <strong>and</strong> Andrew Grumet. S<strong>of</strong>twareEngineering for Internet Applications. Cambridge, Mass.: MITPress, 2006.Connolly, R<strong>and</strong>y. Core Internet Application Development with ASP.NET 2.0. Upper Saddle River, N.J.: Prentice Hall, 2007.


250 Internet censorshipDunaev, Sergei. Advanced Internet Programming: Technologies &Applications. Hingham, Mass.: Charles River Media, 2001.HTML/Web Programming Resources. Available online. URL: http://www.s<strong>and</strong>hills.cc.nc.us/html.html. Accessed August 8, 2007.Moore, Dana, Raymond Budd, <strong>and</strong> Edward Benson. Pr<strong>of</strong>essionalRich Internet Applications: AJAX <strong>and</strong> Beyond. Indianapolis:Wrox, 2007.Web Programming Resources. Available online. URL: http://www.webreference.com/programming/. Accessed August 8, 2007.Internet censorship See censorship <strong>and</strong> theInternet.Internet cafés <strong>and</strong> “hot spots”Internet cafés (also called cyber cafés) are public placeswhere computers are connected to the Internet <strong>and</strong> availablefor use for a fee by the hour or minute. Many Internetcafés also sell c<strong>of</strong>fee <strong>and</strong> food. Combining the social ambience<strong>of</strong> a traditional c<strong>of</strong>fee shop <strong>and</strong> the attraction <strong>of</strong> theInternet, many Internet cafés acquire a regular clientelefrom students to adults.These venues appeared first in the mid-1990s <strong>and</strong> spreadrapidly as their popularity grew. While the most commonactivities at most Internet cafés are to check e-mail, sendtext messages, or browse the Web, some locations specializein gaming (see online games), providing more powerfulmachines running games over a local network. Suchgaming centers have been particularly popular in Asia.Internet cafés have grown most rapidly in countries thatare becoming more urban <strong>and</strong> industrial but where manypeople cannot yet afford their own computers. The moststriking example is China, which had 113,000 Internet cafésin as <strong>of</strong> 2007. In keeping with its strict policies, however,the Chinese government closely monitors activity at Internetcafés (see censorship <strong>and</strong> the Internet).Hot SpotsThe number <strong>of</strong> dedicated Internet cafés in the UnitedStates <strong>and</strong> many other highly developed countries has beendeclining in recent years. This is largely due to the growingnumber <strong>of</strong> people who connect to the Internet through theirown laptops <strong>and</strong> other mobile devices (see pda <strong>and</strong> smartphone).Thus many locations, including c<strong>of</strong>fee chains suchas Starbucks, do not provide machines, but simply <strong>of</strong>ferwireless Internet access (see Wireless <strong>and</strong> mobile computing).Areas where one can make such a wireless connectionare called “hot spots.” Today virtually all majorhotels <strong>and</strong> airports provide hot spots; there is normally afee for access as with Internet cafés. (The fee is collected byrouting all access through a portal.) However, a number <strong>of</strong>venues <strong>of</strong>fer free Wifi access.Users <strong>of</strong> Internet cafés or hot spots should be awarethat they are sharing an ad hoc network with strangers <strong>and</strong>may be exposed to malicious s<strong>of</strong>tware. Passwords or othersensitive data may be “sniffed” using special s<strong>of</strong>tware. Itis therefore generally a good idea not to conduct financialtransactions or otherwise send sensitive information whenconnected to such venues, unless one has provided forencryption or can access a virtual private network. Additionally,users connecting their own machines to a hot spotshould have up-to-date firewall <strong>and</strong> antivirus s<strong>of</strong>tware.Further ReadingBradley, Tony, <strong>and</strong> Becky Waring. “Complete Guide to Wi-Fi Security.”Available online. URL: http://www.jiwire.com/wi-fisecurity-traveler-hotspot-1.htm.Accessed September 9, 2007.Café Touch. Available online. URL: http://www.cafetouch.com/.Accessed September 9, 2007.Cyber cafés [directory]. Available online. URL: http://www.cybercafes.com/. Accessed September 9, 2007.Internet Café Guide. Available online. URL: http://www.internet-cafe-guide.com/. Accessed September 9, 2007.Wi-Fi Hotspot Finder. Available online. URL: http://www.jiwire.com/search-hotspot-locations.htm. Accessed September 9,2007.Internet cafes are particularly common in countries such as China,where Internet access is still relatively rare in homes. In many casessuch facilities have given way to simple “hot spots,” where userscan wirelessly connect their own laptops or PDAs. (Qin Ying/Panorama/The Image Works)Internet organization <strong>and</strong> governanceThe Internet is remarkable as a modern institution in that,while the technology was developed with considerable governmentfunding, the Net as we know it today is remarkablyfree <strong>of</strong> externally imposed authority or regulation. This isin sharp contrast with earlier communications technologiessuch as the telegraph <strong>and</strong> telephone, which were generallytightly regulated or even run by a government departmentsuch as the Post Office. In part this was due to the complexity<strong>of</strong> the technology <strong>and</strong> the fact that many political leadershad little familiarity with it <strong>and</strong> its implications. (Also, thespeed <strong>of</strong> growth has been overwhelming in recent years,considering that the World Wide Web in its modern formwas scarcely a decade <strong>and</strong> a half old as <strong>of</strong> 2008.)Institutions <strong>of</strong> Self-GovernanceWhile the Internet is not rigidly controlled, the need forinteroperability <strong>and</strong> orderly advances in technology hasled to the emergence <strong>of</strong> several organizations that provide


Internet service provider 251st<strong>and</strong>ards <strong>and</strong> guidance. The most important <strong>of</strong> these isthe World Wide Web Consortium (W3C). Other technicalorganizations include the Internet Engineering Task Force(IETF) <strong>and</strong> the Internet Corporation for Assigned Names<strong>and</strong> Numbers (ICANN), the latter <strong>of</strong> which administers thedomain system (seen domain name system). The domainregistries in turn are run by many different institutions <strong>and</strong>agencies.Growing Role <strong>of</strong> Governments?Many <strong>of</strong> the key innovators <strong>of</strong> the Internet have looselyshared a somewhat anarchic or libertarian viewpoint, <strong>and</strong>reinforced it with the claim that the decentralized architecture<strong>of</strong> the Internet itself resists imposition <strong>of</strong> rules fromoutside. (Thus the saying, “the Internet sees censorship as afailure <strong>and</strong> routes around it.”)However, recently some writers such as Lawrence Lessig<strong>of</strong> Stanford Law School have called for a reappraisal.Lessig argues that the Internet is far from ungovernable<strong>and</strong> that indeed such an important institution must be regulated.The question is how to regulate it wisely, shapingits architecture to support freedom, democracy, <strong>and</strong> otherdesirable values.In 2003 <strong>and</strong> 2005, the United Nations brought togethermany government representatives who raised many issuesabout what they saw as inadequacies <strong>of</strong> the privately runInternet (for example, in the assigning <strong>of</strong> domain names)<strong>and</strong> a perceived bias toward American interests. TheUnited Nations has established an Information <strong>and</strong> CommunicationTechnologies (ICT) Task Force to carry onthese meetings, which will be called the Internet GovernanceForum (IGF). Other international institutions suchas the International Telecommunications Union (ITU)have sometimes come into conflict with the Internet’s selfgoverningbodies.Within the United States there continues to be strongresistance to imposing new regulations on the Internet, inpart because <strong>of</strong> fear <strong>of</strong> constricting one <strong>of</strong> the most important<strong>and</strong> fastest growing sectors <strong>of</strong> the economy.The conflict between the Internet’s self-governingculture <strong>and</strong> the needs <strong>and</strong> desires <strong>of</strong> political institutionswill no doubt continue. Sometimes the conflict canbe very sharp, as with China’s blocking <strong>of</strong> Internet contentthat it finds objectionable (see censorship <strong>and</strong> theInternet). Other issues are perhaps deeper, such as thequestion <strong>of</strong> how to enforce criminal laws or economicregulations that were designed for a world made <strong>of</strong> brick<strong>and</strong> steel.Further ReadingGoldsmith, Jack, <strong>and</strong> Tim Wu. Who Controls the Internet? Illusions<strong>of</strong> a Borderless World. New York: Oxford University Press,2006.Internet Governance Project. Available online. URL: http://www.internetgovernance.org/. Accessed September 23, 2007.Lessig, Lawrence. Code Version 2.0. New York: Basic Books, 2006.MacLean, Don, ed. Internet Governance: A Gr<strong>and</strong> Collaboration.New York: United Nations ICT Task Force, 2004.World Wide Web Consortium. Available online. URL: http://www.w3.org/. Accessed September 23, 2007.Internet radioInternet radio is the provision <strong>of</strong> radio broadcast contentover the Internet (see streaming). Basically, the digitizedsound files <strong>of</strong> the broadcasts can be accessed <strong>and</strong> playedusing widely available s<strong>of</strong>tware such as Windows MediaPlayer or RealPlayer. Internet radio began in the mid-1990s,<strong>and</strong> today an increasing number <strong>of</strong> broadcast stations are<strong>of</strong>fering their programming in this form, allowing them toreach audiences far beyond the reach <strong>of</strong> their signal. Somestations stream live (during the actual broadcast), whileothers make programs available for download. (For automaticdownloading <strong>of</strong> broadcasts, see podcasting). Thereare also “radio stations” that provide their content only viathe Internet. Internet radio should not be confused withsatellite or cable radio, which carry conventional radio signalsin real time.For the user, Internet radio exp<strong>and</strong>s the selection <strong>of</strong>stations available from a few dozen over the air to hundredsor thous<strong>and</strong>s. Potentially this allows for the support<strong>of</strong> specialized stations that have been struggling for audiencesin traditional markets—examples might be stationsbroadcasting jazz or alternative music, political advocacy,or programming in less widely spoken languages.Of course there still remains the question <strong>of</strong> how commercialInternet radio can support itself. Many on-air stationssimply include their advertising in the Internet stream(although this can be sometimes ineffective if the ad referssolely to a local business). Some stations sell subscriptionsor charge a fee for each program.Regular radio stations must pay royalties to performerswhose music is played on the air. Until recently, such feeshave been minimal (or even ignored) for Internet radio. Amajor issue arose in 2007 when the U.S. Copyright RoyaltyBoard approved a steep increase in the royalties for musicon Internet radio. Many smaller Internet radio stations haveprotested that the increased fees would put them out <strong>of</strong>business as well as hurting many independent performerswho depend on this medium to get their work heard.However, a number <strong>of</strong> stations have been able to negotiatereductions or caps on these fees on an ad hoc basis.Further ReadingHeberlein, L. A. The Rough Guide to Internet Radio. London: RoughGuides, 2002.Hoeg, Wolfgang, <strong>and</strong> Thomas Lauterbach, eds. Digital AudioBroadcasting: Principles <strong>and</strong> Applications <strong>of</strong> Digital Radio. 2nded. New York: Wiley, 2003.Internet Radio Guide. Available online. URL: http://www.windowsmedia.com/Mediaguide/Radio. Accessed September23, 2007.Lee, Eric. How Internet Radio Can Change the World: An Activist’sH<strong>and</strong>book. Lincoln, Nebr.: iUniverse, 2004.Web Radio [directory]. Available online. URL: http://www.radio-directory.com/. Accessed September 23, 2007.Internet service provider (ISP)An Internet service provider is any organization that providesaccess to the Internet. While nonpr<strong>of</strong>it organizationssuch as universities <strong>and</strong> government agencies can be


252 interpreterconsidered to be ISPs, the term is generally applied to acommercial, fee-based service.Typically, a user is given an account that is accessed bylogging in through the operating system’s Internet connectionfacility by supplying a user ID <strong>and</strong> password. Once connected,the user can run Web browsers, e-mail clients, <strong>and</strong>other programs that are designed to work with an Internetconnection. Most ISPs now charge flat monthly fees rangingfrom $20 or so for dial-up access to around $40–$60for high-speed cable or DSL connections (see broadb<strong>and</strong>).Some services such as America Online <strong>and</strong> CompuServeinclude ISP service as part <strong>of</strong> a package that also includessuch features as s<strong>of</strong>tware libraries, discussion forums, <strong>and</strong>instant messaging. Online services tend to be more expensivethan “no frills” ISP services.Most personal ISP accounts include a small allotment <strong>of</strong>server space that users can use to host their personal Webpages. There are generally extra charges for larger allotments<strong>of</strong> space, for sites that generate high traffic, <strong>and</strong> forcommercial sites. Business-oriented ISPs typically providea more generous starting allotment along with more extensivetechnical support <strong>and</strong> more reliable <strong>and</strong> higher-capacityservers that are managed 24 hours a day.The rapid growth in Internet use in the mid-1990sencouraged many would-be entrepreneurs to start ISPs. However,with so many providers entering the field <strong>and</strong> with theprice for basic Internet connections falling, it soon becameapparent that the survival prospects for “generic” ISPs wouldbe poor. People entering the business today strive to provideadded-value services such as superior Web page hostingfacilities, hosting blogs or wikis, or to focus on specializedservices for particularly industries (such as real estate).Today’s ISPs also face a variety <strong>of</strong> legal challenges,including customer privacy vs. the war on terrorism (seeprivacy in the digital age), responsibility for copyrightinfringement (see intellectual property <strong>and</strong> computing),<strong>and</strong> possible liability for online defamation, harassment,or worse (see cyberstalking <strong>and</strong> harassment.)Many earlier versions <strong>of</strong> the BASIC programming languagewere implemented as interpreters. Since an interpreteronly has to hold one program statement at a time inmemory, it could run on early microcomputers that had onlya few tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> bytes <strong>of</strong> system memory. However,interpreters run programs considerably more slowlythan a compiled program would run. One reason is that aninterpreter “throws away” each source code statement afterit interprets it. This means that if a statement runs repeatedly(see loop), it must be re-interpreted each time it runs.A compiler, on the other h<strong>and</strong>, would create only one set<strong>of</strong> machine code instructions for the loop <strong>and</strong> then moveon. Also, because a compiler keeps the entire program inmemory, it can analyze the relationship between multiplestatements <strong>and</strong> recognize ways to rearrange or substitutethem for greater efficiency.Interpretation can also be used to bridge differencesin hardware platforms. For example, in the UCSD Pascalsystem developed in the 1970s, an interpreter first translatesthe Pascal source code into a st<strong>and</strong>ardized “P-code”(pseudocode) for a generic processor called a P-machine. ToFurther ReadingBerkowitz, Howard C. Building Service Provider Networks. NewYork: Wiley, 2002.“Everything You Wanted to Know About Internet Service Providers.”Available online. URL: http://www.ispconsumerguide.com/. Accessed February 6, 2008.“ISP Liability.” BitLaw. Available online. URL: http://www.bitlaw.com/internet/isp.html. Accessed August 8, 2007.Nguyen, John V. Designing ISP Architectures. Upper Saddle River,N.J.: Prentice Hall, 2002.interpreterAn interpreter is a program that analyzes (parses) programmingcomm<strong>and</strong>s or statements in a high-level language (seeprogramming languages), creates equivalent executableinstructions in machine code (see assembler) <strong>and</strong> executesthem. An interpreter differs from a compiler in that the latterconverts the entire program to an executable file ratherthan processing <strong>and</strong> executing it a statement at a time (seecompiler).An interpreter scans a program code or comm<strong>and</strong> statement todetermine what each token (word or symbol) represents. Keywordssuch as PRINT are looked up in a dispatch table that containsinstructions for dealing with that function. Variables arelooked up in a symbol table that gives their current value. Values<strong>and</strong> operators make up expressions that are interpreted to yieldtheir final value. In this case the final value <strong>of</strong> 15 is given as datato the PRINT routine, which is executed to put the number 15 onthe screen.


iRobot Corporation 253run the program on a particular actual machine, a secondinterpreter translates the P-code into specific executablemachine instructions for that machine. Today Java uses asimilar idea. A Java programming system translates sourcecode into an intermediate “bytecode,” which is interpretedby a Java Virtual Machine, usually running with a Webbrowser.In practice, with today’s high-speed computers <strong>and</strong>graphical operating environments, interpretative <strong>and</strong> compilationfunctions are <strong>of</strong>ten seamlessly integrated into aprogramming environment where code is checked for syntaxas it is entered, incrementally compiled (such that onlychanged code is recompiled), <strong>and</strong> the programmer receivesthe same kind <strong>of</strong> rapid feedback that was the hallmark <strong>of</strong>the early BASIC interpreters (see programming environment).Purely interpretive systems survive mainly in theform <strong>of</strong> text comm<strong>and</strong> processors for operating systems(see shell).Further ReadingCraig, Ian. The Interpretation <strong>of</strong> Object-Oriented Programming Languages.2nd ed. New York: Springer, 2002.Mack, Ronald. Writing Compilers <strong>and</strong> Interpreters: An AppliedApproach Using C++. 2nd ed. New York: Wiley, 2006.Watt, David, <strong>and</strong> Deryck Brown. Programming Language Processorsin Java: Compilers <strong>and</strong> Interpreters. Upper Saddle River, N.J.:Prentice Hall, 2000.iRobot CorporationiRobot is an innovative company based in Burlington, Massachusetts,that makes robots for home use (the Roombarobotic vacuum cleaner <strong>and</strong> its floor-washing cousinScooba) to military robots such as various PackBot modelsdesigned for reconnaissance, bomb disposal, <strong>and</strong> other dangeroustasks.iRobot was founded by robotics pioneer Rodney Brooks<strong>of</strong> MIT’s Artificial Intelligence Lab (see Brooks, Rodney)<strong>and</strong> two former MIT students, Helen Greiner <strong>and</strong> ColinAngle. The company was founded in 1991 <strong>and</strong> incorporatedin 2000. Its first product was My Real Baby, a realistic (<strong>and</strong>complicated) animated doll that proved to be too expensivefor the toy market. Roomba, on the other h<strong>and</strong>, wasreleased in 2002 <strong>and</strong> has met with considerable success—2million units had been sold by May 2006. Besides Scooba,Roomba has been joined by Dirt Dog (a workshop cleaner<strong>and</strong> picker-upper) <strong>and</strong> Verro, a pool cleaner. iRobot has alsoproduced an educational/hobby robot called iRobot Create.iRobot has done considerable work for the military,based on work in the 1990s with robots that crawled orrolled on tanklike tracks <strong>and</strong> were equipped with graspingdevices <strong>and</strong> other attachments. The PackBot series comesin models adaptable to a variety <strong>of</strong> military tasks, <strong>and</strong> hasbeen used in Iraq <strong>and</strong> Afghanistan.In 2007 iRobot released a redesigned, more durableversion <strong>of</strong> Roomba. Meanwhile c<strong>of</strong>ounder Colin Angle hassaid that the company is looking at many exciting futureapplications, including industrial cleaning, mining, <strong>and</strong> oilexploration. In the home, Roomba may be joined by outdoorrobots that can mow the lawn <strong>and</strong> trim the hedges.iRobot is a midsized company whose revenue has grownfrom $54.3 million in 2003 to $227 million in 2007, with agross pr<strong>of</strong>it <strong>of</strong> $82.6 million <strong>and</strong> 423 employees.Further ReadingHenderson, Harry. Modern Robotics: Building Versatile Machines.New York: Chelsea House, 2006.iRobot. Available online. URL: http://www.irobot.com. AccessedSeptember 23, 2007.Lombardi, C<strong>and</strong>ace. “iRobot’s Angle on the Future: More Pr<strong>of</strong>it.”CNET News, August 23, 2007. Available online. URL:http://www.news.com/iRobots-Angle-on-the-future-Morepr<strong>of</strong>it/2008-11394_3-6204031.html.Accessed September 24,2007.Pereira, Joseph. “Natural Intelligence: Helen Greiner ThinksRobots Are Ready to Become Part <strong>of</strong> the Household.” WallStreet Journal Classroom Edition, October 2002. Availableonline. URL: http://www.wsjclassroomedition.com/archive/02oct/COVR_ROBOT.htm. Accessed September 24, 2007.Roush, Wade. “Will Home Robots Ever Clean Up?” <strong>Technology</strong>Review, March 3, 2006. Available online. URL: http://www.technologyreview.com/article/16542/. Accessed September24, 2007.


JJavaJava is a computer language similar in structure to C++.Although Java is a general-purpose programming language,it is most <strong>of</strong>ten used for creating applications to run on theInternet, such as Web servers. A special type <strong>of</strong> Java programcalled an applet can be linked into Web pages <strong>and</strong> runon the user’s Web browser (see applet).As an object-oriented language, Java uses classes thatprovide commonly needed functions including the creation<strong>of</strong> user interface objects such as windows <strong>and</strong> buttons (seeclass <strong>and</strong> object-oriented programming). A variety <strong>of</strong>sets <strong>of</strong> classes (“class frameworks”) are available, such asthe AWT (Abstract Windowing Toolkit).are built. The AWT (Abstract Windowing Toolkit) is a set <strong>of</strong>classes that provide a graphical user interface.The program then declares a new class called Hello-World <strong>and</strong> specifies that it is built on (extends) the appletclass.Program StructureA Java program begins by importing or defining classes <strong>and</strong>using them to create the objects needed for the program’sfunctions. Code statements then create the desired output orinteraction from the objects, such as drawing a picture or puttingtext in a window. Here is a simple Java applet program:import java.applet.Applet;import java.awt.Graphics;public class HelloWorld extends Applet {public void paint(Graphics g) {g.drawString(“Hello world!”, 50, 25);}}The first two lines import (bring in) st<strong>and</strong>ard classes.The applet class is the foundation on which applet programsAfter an embedded Java program (called an applet) is compiled, itsexecutable file (Javacode) is stored on the Web server, together withthe HTML file for the Web page to which the program is linked.254


Java 255Next is a declaration for a method (procedure for doingsomething) called paint. This method uses a graphics objectg that includes various capabilities for drawing things onthe screen. Finally, the program uses the graphic object’spredefined drawstring method to draw a string <strong>of</strong> text.To develop this program, the programmer compiles itwith the Java compiler. He or she then creates an HTMLpage that includes a tag that specifies that this code is to berun when the link is activated (see html).Development <strong>of</strong> JavaJava was created by James Gosling (1955– ). It began as anin-house project at Sun Microsystems to design a languagethat could be used to program “smart” consumer devicessuch as an interactive television. When this project wasab<strong>and</strong>oned, Gosling, Bill Joy, <strong>and</strong> other developers realizedthat the language could be adapted to the rapidly growingInternet. Developers <strong>of</strong> Web pages needed an easier way tocreate programs that could run when the page was accessedby a user. By implementing user controls on Web pages, thedesigners could give Web users the ability to interact onlinein much the same way they interact with objects on thescreen on a Macintosh or Windows PC.AdvantagesJava has largely fulfilled this promise for Web developers.C++ programmers have an easy learning curve to Java,since the two languages have very similar syntax <strong>and</strong> asimilar use <strong>of</strong> classes <strong>and</strong> other object-oriented features. Onthe other h<strong>and</strong>, programmers who don’t know C++ benefitfrom Java being more streamlined than C++. For example,Java avoids the necessity to use pointers (see pointers <strong>and</strong>indirection) <strong>and</strong> uses classes as the consistent buildingblock <strong>of</strong> program structure. S<strong>of</strong>tware powerhouses such asMicros<strong>of</strong>t (until recently) <strong>and</strong> IBM have joined Sun in promotingJava.Another much-touted feature <strong>of</strong> Java is its platformindependence. The language itself is separate from the variousoperating system platforms. For each platform, a JavaVirtual Machine (JVM) is created, which interprets or compilesthe code generated by the Java compiler so it can runon that platform.For security, Java applets run within a “s<strong>and</strong>box” orrestricted environment so the user is protected from maliciousJava programs. (For example, programs are notallowed to access the user’s disk or to connect the user’smachine to another Web site.) Web browsers can also be setto disable the running <strong>of</strong> Java applets.A Mature <strong>Technology</strong>Sun Java comes in two basic “flavors”: the Java 2 St<strong>and</strong>ardEdition (J2SE) for Micros<strong>of</strong>t Windows, Sun (Solaris), <strong>and</strong>Linux, <strong>and</strong> the Enterprise Editions (J2EE), which includesfeatures needed in large, complex environments. Micros<strong>of</strong>tdeveloped its own dialect <strong>of</strong> Java for Windows, buteffectively ab<strong>and</strong>oned it as a result <strong>of</strong> legal action by Sun.(Companies are allowed to develop Java implementationsfor various platforms, so long as they pass Sun’s strict validationprocess.)To run the Java applet, the user loads the linked page in the Webbrowser. The applet may then run automatically, or it may be connectedto a particular link or a control such as a button. Onceactivated, the applet is downloaded by the Web browser, which thenruns its Javacode using a module called a Java Virtual Machine(JVM). There is a separate JVM for each type <strong>of</strong> computer system.Java has paid particular attention to building reusables<strong>of</strong>tware components. “JavaBeans” package a number <strong>of</strong>related objects (classes) into a unit that can be accessedthrough a st<strong>and</strong>ard set <strong>of</strong> methods <strong>and</strong> automatically queriedfor information about their contents.Today powerful <strong>and</strong> well-documented Java programminginterfaces are available for working with Web services.While client-side Java applets run in the Web browser, JavaServer Pages (JSPs) embed code in an HTML page. The codeis compiled into a server-side application or “servlet.” XMLprocessing <strong>and</strong> database access is provided through the JavaAPI for XML (JAX).Java has largely fulfilled its promise <strong>of</strong> bringing mainstreamobject-oriented programming to a wide variety <strong>of</strong>platforms. The language is now <strong>of</strong>ten taught as a first languageinstead <strong>of</strong> C or C++. However, the idea <strong>of</strong> a singledominant language seems to be no longer applicable in therapidly evolving world <strong>of</strong> s<strong>of</strong>tware development.


256 JavaScriptIn 2006 Sun Microsystems announced that it wouldmake Java’s source code freely available (see open source).In part this may be an attempt to maintain Java’s positionamong programmers, some <strong>of</strong> whom have shifted theirattention from Java to Micros<strong>of</strong>t’s own <strong>of</strong>fshoot <strong>of</strong> C++ (seec#). However, Java’s greatest challenge seems to be in theWeb programming area, where it faces increasing competitionfrom more agile languages (see, for example, Ruby) aswell as a variety <strong>of</strong> scripting languages that may be easier tolearn <strong>and</strong> quicker to use for many applications.Further ReadingArnold, Ken, James Golsing, <strong>and</strong> David Holmes. The Java ProgrammingLanguage. 4th ed. Upper Saddle River, N.J.: PrenticeHall, 2005.Burd, Barry. Beginning Programming with Java for Dummies. 2nd ed.Hoboken, NJ: Wiley, 2005.Gosling, James. “Is Java Getting Better with Age?” [interview].Cnet News. Available online. URL: http://news.com.com/2008-7345_3-6022062.html. Accessed April 10, 2007.Krill, Paul. “Java Facing Pressure from Dynamic Languages.” Info-World, March 25, 2006. Available online. URL: http://www.infoworld.com/article/06/03/25/76803_HNjavapressure_1.html. Accessed April 10, 2007.McGovern, James, et al. Java Web Services Architecture. San Francisco:Morgan Kaufmann, 2003.Schildt, Herbert. Swing: A Beginner’s Guide. New York: McGraw-Hill, 2007.JavaScriptJavaScript is one <strong>of</strong> several popular languages that canenable Web pages to interact with users more quickly <strong>and</strong>efficiently (see vbscript, php, <strong>and</strong> scripting languages).The language first appeared in the mid-1990s’ Netscape 2browser under the name LiveScript. Technically, JavaScriptis the Sun Microsystems trademark for its implementation<strong>of</strong> a st<strong>and</strong>ard called ECMAScript. Despite the name, Java-Script is not directly related to the Java programming language.In its early years JavaScript was perhaps a victim <strong>of</strong> itsown success. Having a relatively easy-to-use scripting languageprovided an easier way to add features such as 3Dbuttons <strong>and</strong> pop-up windows to formerly humdrum Webforms. However, as with an earlier generation’s fondnessfor multiple fonts, early JavaScript programmers were <strong>of</strong>tenprone to add unnecessary <strong>and</strong> confusing clutter to Webpages. Besides sometimes annoying users, early JavaScriptalso suffered from significant differences in how it wasimplemented by the major browsers. As a result, Netscapeusers were sometimes stymied by JavaScript written forMicros<strong>of</strong>t Internet Explorer, <strong>and</strong> vice versa. Finally, browserflaws have sometimes allowed JavaScript to be used to compromisesecurity such as by installing malware-infested“browser helpers.” As a result, many security experts beganto recommend that users disable JavaScript execution intheir browsers.Using JavaScriptJavaScript syntax <strong>and</strong> language constructs are similar tothose <strong>of</strong> C, with the addition <strong>of</strong> basic object-oriented features(see object-oriented programming). The languageitself has no capabilities for manipulating the environment(such as input/output). Instead, JavaScript calls upon an“engine” written for each host environment (normally aWeb browser). The engine implements features designed tocontrol how a Web page interacts with the user, such as thedisplay <strong>of</strong> windows <strong>and</strong> controls such as menus, buttons, ortoolbars. JavaScript can also be used to validate a Web formin the browser before it is submitted to the server. In general,“browser side” JavaScript processing reduces the loadon Web servers while allowing pages to respond quickly,such as by changing graphics as the user’s mouse pointerpasses over parts <strong>of</strong> the page.The principal interface between JavaScript <strong>and</strong> HTMLpages is the Document Object Model (see html <strong>and</strong> documentobject model). A World Wide Web Consortium (W3C)st<strong>and</strong>ard defines the DOM functions, <strong>and</strong> most browsers nowconsistently support Levels 1 <strong>and</strong> 2 <strong>of</strong> these st<strong>and</strong>ards. However,there are many Web users who cannot run st<strong>and</strong>ardJavaScript, such as users with visual disabilities (see disabledpersons <strong>and</strong> computing), users <strong>of</strong> some mobile browsers(such as for PDAs or smart phones), or users who have simplydisabled JavaScript for security reasons. Therefore, whenJavaScript is used for essential page functions (such as formprocessing), the developer should provide an alternative wayfor the user to perform the relevant task. (In the case <strong>of</strong> disabledusers, this may be a legal requirement.)Traditionally, JavaScript code has been embeddeddirectly in the containing HTML page, using tags like thefollowing:JavaScript Examplevar Name = prompt (“Enter yourname”,“”);alert(Name);When a JavaScript-enabled browser encounters thiscode, a text box will prompt the user for a name, which isstored in the variable Name <strong>and</strong> then displayed in an alertbox.In modern Web design to XHTML st<strong>and</strong>ards, however,just as formatting information is kept in a separate document(see cascading style sheets) JavaScript code is alsomaintained in a separate file <strong>and</strong> simply linked to withinthe HTML page:JavaScript can do much more than just display informationor process forms. JavaScript can access a variety


Jobs, Steven Paul 257<strong>of</strong> Web services (such as databases <strong>and</strong> search engines)<strong>and</strong> create custom pages in response to user actions (seealso Ajax). JavaScript can also be embedded in applicationsother than Web browsers: for example, the Adobe Acrobat<strong>and</strong> Reader <strong>and</strong> even operating-system scripting (such asMicros<strong>of</strong>t’s JScript <strong>and</strong> JScript.NET). Although attention inrecent years seems to have shifted more to languages suchas PHP, JavaScript remains a widely used <strong>and</strong> powerful Webdesign tool.Further ReadingFlanagan, David. JavaScript: The Definitive Guide. 5th ed. Sebastapol,Calif.: O’Reilly, 2006.Heilmann, Christian. Beginning JavaScript with DOM Scripting <strong>and</strong>Ajax. Berkeley, Calif.: APress, 2005.JavaScript at Webdeveloper.com. Available online. URL: http://www.webdeveloper.com/javascript/. Accessed September 24,2007.JavaScript.com: The Definitive JavaScript Resource. Availableonline. URL: http://www.javascript.com/. Accessed September24, 2007.Wilton, Paul, <strong>and</strong> Jeremy McPeak. Beginning JavaScript. 3rd ed.Indianapolis: Wiley, 2007.job control languageIn the early days <strong>of</strong> computing, data processing generallyhad to be done in batches. By modern st<strong>and</strong>ards the memorycapacity <strong>of</strong> the computer was very limited (see mainframe).Typically, programs had to be loaded one at a time frompunch cards or tape. The data to be processed by each programalso had to be made available by being mounted on atape drive or inserted as a stack <strong>of</strong> cards into the card reader(see punched cards <strong>and</strong> paper tape). After the programran, its output would consist <strong>of</strong> more data cards or tape,which might in turn be used as input for the next program.For example, a series <strong>of</strong> programs might be used toread employee time cards <strong>and</strong> calculate the payments dueafter various items <strong>of</strong> withholding. That data might in turnbe input into a program to print the payroll checks <strong>and</strong>another program to print a summary report.In order for all this to work, the computer’s operatingsystem must be told which files (on which devices) are tobe used by the program, the memory partition in whichthe program is to be run, the device to which output willbe written or saved, <strong>and</strong> so on. This is done by giving thecomputer instructions in job control language (JCL). (Inthe punch card days, the JCL cards were put at the top <strong>of</strong>the deck before the cards with the instructions for the programitself.)For a simple example, we will use some elements <strong>of</strong> IBMMVS JCL. In this version <strong>of</strong> job control language the generalform for all statements is//name operation oper<strong>and</strong>s commentwhere name is a label that can be used to reference thestatement from elsewhere, operation indicates one <strong>of</strong> a set<strong>of</strong> defined JCL language comm<strong>and</strong>s, oper<strong>and</strong> is a series <strong>of</strong>values to be passed to the system, <strong>and</strong> comment is optionalexplanatory text.The three basic types <strong>of</strong> statement found in most jobcontrol languages are JOB, EXEC, <strong>and</strong> DD. The JOB statementidentifies the job <strong>and</strong> the user running it <strong>and</strong> sets upsome parameters to specify the h<strong>and</strong>ling <strong>of</strong> the job.//JOB,CLASSPROJ1,GROUP=J999996,USER=P999995,//PASSWORD=?This statement passes information to the system thatidentifies the job name, group as assigned by the facility,<strong>and</strong> user ID. The PASSWORD parameter is given a questionmark to indicate that it will be prompted for at the terminal.Other parameters can be used to specify such matters as theamount <strong>of</strong> computer time to be allocated to the job <strong>and</strong> theway in which any error messages will be displayed.The EXEC statement identifies the program to be run.Some systems can also have a library <strong>of</strong> stored JCL proceduresthat can also be specified in the EXEC statement.This means that frequently run jobs can be run withouthaving to specify all the details each time. An exampleEXEC statement is://Datasort EXEC BINSORT,BUFFER=256KHere the statement is labeled Datasort so it can be referencedfrom another part <strong>of</strong> the program. The procedure tobe executed is named BINSORT, <strong>and</strong> it is passed a parametercalled BUFFER with a value <strong>of</strong> 256K (presumably this is theamount <strong>of</strong> memory to be used to hold data to be sorted).One or more DD (Data Definition) statements are usedto specify sets (sources) <strong>of</strong> data to be used by the program.This includes a specification <strong>of</strong> the type (such as disk ortape) <strong>and</strong> format <strong>of</strong> the data. It also includes instructionsspecifying what is to happen to the data set. For example,the data set might be old (existing) or newly created by theprogram. It may also be temporary (possibly to be passedon to the next program) or permanent (“cataloged”).Since interactive, multitasking operating systems suchas Windows <strong>and</strong> UNIX are now the norm in most computing,JCL is used less frequently today. However, it is stillneeded in large computer installations running operatingsystems such as IBM MVS (see mainframe) <strong>and</strong> for somebatch processing <strong>of</strong> scientific or statistical programs (suchas in FORTRAN or SAS).Further ReadingBrown, Gary Deward. System 390 Job Control Language. 4th ed.New York: John Wiley, 1998.Malaga, Ernie, <strong>and</strong> Ted Holt. Complete CL: The Definitive ControlLanguage Programming Guide. 3rd ed. Carlsbad, Calif.: MidrangeComputing, 1999.Jobs, Steven Paul(1955– )AmericanEntrepreneurSteve Jobs was c<strong>of</strong>ounder <strong>of</strong> Apple <strong>Computer</strong> <strong>and</strong> shapedthe development <strong>and</strong> marketing <strong>of</strong> its distinctive Macintoshpersonal computer (see Apple Corporation). Jobs showed


258 Jobs, Steven Paulan enthusiastic interest in electronics starting in his highschool years <strong>and</strong> gained experience through summer workat Hewlett-Packard, one <strong>of</strong> the dominant companies <strong>of</strong> theearly Silicon Valley. In 1974, he began to work for pioneervideo game designer Nolan Bushnell at Atari. He alsobecame a key member <strong>of</strong> the Homebrew <strong>Computer</strong> Club, agroup <strong>of</strong> hobbyists who designed their own microcomputersystems using early microprocessors.Meanwhile, Jobs’s friend Steve Wozniak had developedplans for a complete microcomputer system that could bebuilt using a single-board design <strong>and</strong> relatively simple circuits(see Wozniak, Steven). In it Jobs saw the potentialfor a st<strong>and</strong>ardized, commercially viable microcomputersystem. They formed a company called Apple <strong>Computer</strong>(named apparently for the vanished orchards <strong>of</strong> Silicon Valley)<strong>and</strong> built a prototype they called the Apple I. Althoughthey could only afford to build a few dozen <strong>of</strong> the machines,they made a favorable impression on the computer enthusiastcommunity. By 1977, they were marketing a more complete<strong>and</strong> refined version, the Apple II.Unlike kits that could be assembled only by experiencedhobbyists, the Apple II was ready to use “out <strong>of</strong> thebox.” It included a cassette tape recorder for storing programs.When connected to a monitor or an ordinary TV,the machine could create color graphics that were dazzlingcompared to the monochrome text displays <strong>of</strong> most computers.Users could buy additional memory (the first modelcame with only 4K <strong>of</strong> RAM) as well as cards that coulddrive devices such as printers or add other capabilities.The ability to run a program called VisiCalc (see spreadsheet)propelled the Apple II into the business world, <strong>and</strong>about 2 million <strong>of</strong> the machines were eventually sold. In1982, when Time magazine featured the personal computeras its “man <strong>of</strong> the year,” Jobs’s picture appeared on thecover. As he relentlessly pushed Apple forward, supporterspointed to Jobs’s charismatic leadership, while detractorssaid that he could be ruthless when anyone disagreed withhis vision <strong>of</strong> the company’s future.However, 1982 also brought industry giant IBM into themarket. Its 16-bit computer was more powerful than theApple II, <strong>and</strong> IBM’s existing access to corporate purchasingdepartments resulted in the IBM PC <strong>and</strong> its “clones” quicklydominating the business market (see ibm pc).Jobs responded to this competition by designing a PCwith a radically different user interface, based largely onwork during the 1970s <strong>and</strong> the Xerox PARC laboratory.The first version, called the Lisa, featured a mouse-drivengraphical user interface that was much easier to use thanthe typed-in comm<strong>and</strong>s required by the Micros<strong>of</strong>t/IBMDOS. While the Lisa’s price tag <strong>of</strong> $10,000 kept it out <strong>of</strong> themainstream market, its successor, the Macintosh, attractedmillions <strong>of</strong> users, particularly in schools, although the IBMPC <strong>and</strong> its progeny continued to dominate the businessmarket (see Macintosh). Meanwhile, Jobs had recruitedJohn Sculley, former CEO <strong>of</strong> PepsiCo, to serve as Apple’sCEO.After a growing divergence with Sculley over managementstyle <strong>and</strong> Apple’s future priorities, Jobs left thecompany in 1985. Using the money from selling his Applestock, Jobs bought a controlling interests in Pixar, a graphicsstudio that had been spun <strong>of</strong>f from LucasFilm. He als<strong>of</strong>ounded a company called NextStep. The company focusedon high-end graphics workstations that used a sophisticatedobject-oriented operating system. However, while itss<strong>of</strong>tware (particularly its development tools) was innovative,the company was unable to sell enough <strong>of</strong> its hardware<strong>and</strong> closed that part <strong>of</strong> the business in 1993.In 1997, Jobs returned as CEO <strong>of</strong> Apple. By then thecompany was struggling to maintain market share for itsMacintosh line in a world that was firmly in the “Wintel”(Windows on Intel-based processors) camp. He had somesuccess in revitalizing Apple’s consumer product line withthe iMac, a colorful, slim version <strong>of</strong> the Macintosh. He als<strong>of</strong>ocused on development <strong>of</strong> the new Mac OS X, a blending <strong>of</strong>the power <strong>of</strong> UNIX with the ease-<strong>of</strong>-use <strong>of</strong> the traditionalMacintosh interface.Beyond the MacAt the beginning <strong>of</strong> the new century, Jobs <strong>and</strong> Apple madebold moves beyond the company’s traditional strengths.The Power PC chip in the Mac was phased out in favor <strong>of</strong>Intel chips, the same hardware that runs Micros<strong>of</strong>t Windowsmachines. (Indeed, the Mac was also given a utilitythat allowed it to run Windows.) This potentially openedthe Mac to a much wider range <strong>of</strong> s<strong>of</strong>tware.The biggest move, however, was into media, first withpowerful video-authoring s<strong>of</strong>tware for home users as wellas pr<strong>of</strong>essionals, then with the tiny iPod that redefined theportable media player (see music <strong>and</strong> video players, digital).At the same time, Apple entered the digital musicbusiness in a big way with the iTunes store (see music <strong>and</strong>video distribution, online). In 2007 Apple charged intothe mobile communications market (see smartphone) withthe innovative if expensive iPhone. So far the market hasresponded positively to Jobs’s initiatives, with Apple stockincreasing in value more than 10 times between 2003 <strong>and</strong>2006.While Jobs is brash <strong>and</strong> unconventional (reflecting hiscountercultural roots), critics have accused him <strong>of</strong> egotism<strong>and</strong> <strong>of</strong> having an overly aggressive (<strong>and</strong> abrasive) managerialstyle. Jobs has also been the subject <strong>of</strong> lingeringinvestigations into his receiving discounted Apple stockoptions, failing to report the resulting taxable income, <strong>and</strong>correspondingly overstating Apple’s earnings. In December2006 Apple’s internal investigation cleared Jobs <strong>of</strong>responsibility for these issues, <strong>and</strong> the options were neverexercised. Whatever the future brings, Steve Jobs has anassured place in the history <strong>of</strong> entrepreneurship <strong>and</strong> innovationin computing.Further Reading“Bill Gates <strong>and</strong> Steve Jobs” [on-stage interview]. All Things Digital,May 30, 2007. Available online. URL: http://d5.allthingsd.com/20070530/d5-gates-jobs-interview/. Accessed August 11,2007.Jobs, Steve. “Steve Jobs: Oral History” [interview]. April 20, 1995.Available online. URL: http://www.cwheroes.org/archives/histories/jobs.pdf. Accessed August 11, 2007.


journalism <strong>and</strong> computers 259Mark<strong>of</strong>f, John. What the Dormouse Said: How the Sixties CountercultureShaped the Personal <strong>Computer</strong> Industry. New York:Penguin, 2005.Young, Jeffrey S., <strong>and</strong> William L. Simon. iCon: Steve Jobs, the GreatestSecond Act in the History <strong>of</strong> Business. Hoboken, N.J.: Wiley,2005.journalism <strong>and</strong> computersThe pervasive use <strong>of</strong> computers <strong>and</strong> the Internet haschanged the practice <strong>of</strong> journalism in many ways. Thisentry will focus on the general impact <strong>of</strong> technology on thecreation <strong>and</strong> dissemination <strong>of</strong> news content. For discussion<strong>of</strong> s<strong>of</strong>tware used in the production <strong>of</strong> publications, seedesktop publishing, <strong>and</strong> word processing. For the rolethat journalism plays in the computer industry, see journalism<strong>and</strong> the computer industry.Research <strong>and</strong> NewsgatheringThe gathering <strong>of</strong> on-scene information at newsworthyevents began to change in the 1980s, when notebook-sizedportable computers became available. Instead <strong>of</strong> having to“file” stories with the newspaper by telegraph or phone, thereporter could write the piece <strong>and</strong> send it to the newspaper’scomputer using a phone connection (see modem) orlater, Internet-based e-mail.The ability <strong>of</strong> reporters (particularly investigative reporters)to do in-depth research has been greatly enhancedby the Internet. Traditionally, reporters looking for backgroundmaterial for an assignment could consult printedreference works, their publications’ archives <strong>of</strong> printed articles(the “morgue”), <strong>and</strong> various public records, usually inpaper form. This process was necessarily slow, <strong>and</strong> it wasdifficult to widen research to include a greater variety <strong>of</strong>sources while still remaining timely.Today most publications produce <strong>and</strong> store their materialelectronically <strong>and</strong> make it available online. Reportersthus have virtually instant access to articles written by theircolleagues around the world. Instead <strong>of</strong> having to rely on afew press releases, position papers, or wire stories, reporterscan search the Internet to delve more deeply into theunderlying source material, such as original documents orstatistics. An increasing number <strong>of</strong> public records are alsoavailable online.Changing St<strong>and</strong>ards <strong>and</strong> New ChallengesAfter being submitted electronically, reporters’ stories canbe edited, revised as necessary, <strong>and</strong> submitted to the computer-controlledtypesetting systems that have now becomest<strong>and</strong>ard in most publications. Besides saving productioncosts, computer-based newspaper production also makes iteasier to make last-minute changes as well as to create specialeditions that include regional news.However, at the same time the greater use <strong>of</strong> informationtechnology has made print journalists more productive, ithas also contributed to trends that continue to challengethe viability <strong>of</strong> print journalism itself. The nature <strong>of</strong> theInternet poses new challenges to reporter-researchers. Theaccuracy <strong>of</strong> traditionally published books or articles isbacked implicitly by the reputation <strong>of</strong> the publisher as wellas that <strong>of</strong> the author. By <strong>of</strong>fering a wide variety <strong>of</strong> materialsproduced outside the mainstream publishing process,<strong>of</strong>ten by unknown authors, the Internet can provide a muchgreater diversity <strong>of</strong> viewpoints (see also wikis <strong>and</strong> Wikipedig).The downside is that the reporter-researcher haslittle assurance <strong>of</strong> the veracity or accuracy <strong>of</strong> facts givenon unknown Web sites. This creates a greater burden <strong>of</strong>fact checking in responsible journalism or, alternatively, arelaxation <strong>of</strong> the traditional st<strong>and</strong>ards. (The most famousexample <strong>of</strong> the latter is Matt Drudge, a self-made Internetbasedjournalist who sometimes dramatically “scooped” hismore plodding colleagues but did not adhere to the oldjournalistic st<strong>and</strong>ard <strong>of</strong> finding two independent sourcesfor each key fact.)The use <strong>of</strong> the Internet as both a research tool <strong>and</strong> amedium <strong>of</strong> publication is also bound up with the everacceleratingpace <strong>of</strong> the “news cycle,” or the time it takesfor a story to be disseminated <strong>and</strong> responded to. Broadcastjournalism with the advent <strong>of</strong> 24-hour news networks suchas CNN has steadily increased the pace <strong>of</strong> the broadcastnews cycle. Many newspapers <strong>and</strong> magazines have foundhaving Web sites to be a competitive necessity. The Internetpotentially combines the immediacy <strong>of</strong> broadcast journalismwith the ability to use text to convey information indepth. The organization <strong>of</strong> Web pages (see hypertext <strong>and</strong>hypermedia) avoids the physical limitations <strong>of</strong> the printedmedium.In addition to Web sites that mirror <strong>and</strong> exp<strong>and</strong> thecontents <strong>of</strong> printed newspapers, a number <strong>of</strong> distinctiveInternet-only sites emerged in the mid to late 1990s. Examplesinclude salon.com, an “online newsmagazine” thatalso includes regular featured columnists <strong>and</strong> discussionforums. However, the downturn in the Internet-based economyin 2002 made the original idea <strong>of</strong> having free accesssupported by advertising less viable. Such sites are now tryingto convert to a subscription-based model similar to that<strong>of</strong> print-based publications, but it is unclear whether theywill be able to attract enough paying subscribers.New Alternatives <strong>and</strong> New QuestionsThe Internet is rapidly changing not only how journalism isproduced, but how it is delivered—<strong>and</strong> indeed, the role <strong>and</strong>future <strong>of</strong> the pr<strong>of</strong>ession itself. Broadcast journalism, alreadygreatly changed by the advent <strong>of</strong> cable TV networks in the1990s, has now found itself needing to deliver programsthrough new channels (see podcasting, Internet radio,<strong>and</strong> music <strong>and</strong> video distribution, online). With “broadcasts”available any time at user request, the news cycle hasessentially vanished into a 24/7 reality where wave uponwave <strong>of</strong> stories is constantly flowing <strong>and</strong> changing.The more pr<strong>of</strong>ound change, though, is in who gets topractice <strong>and</strong> define journalism. Everyone it seems has somethingto say online (see blogs <strong>and</strong> blogging). Bloggerswho cover current events (especially politics) at their bestrepresent the latest incarnation <strong>of</strong> “citizen journalism” (seepolitical activism <strong>and</strong> the Internet). However, issues <strong>of</strong>objectivity (<strong>and</strong> the line between activist <strong>and</strong> journalist) havebeen raised, as has the question <strong>of</strong> what legal protections


260 journalism <strong>and</strong> the computer industryfor journalists should apply to bloggers <strong>and</strong> online newsreporters.In addition to blogs, photo <strong>and</strong> video sharing sites(see, for example, YouTube) now widely distribute material,<strong>of</strong>ten quite controversial, that might once have beenignored by mainstream media. For their part, many mainstreamjournalists now also maintain blogs through whichreaders can respond to stories <strong>of</strong> the day.At the same time, in an era when a stream <strong>of</strong> bothimages <strong>and</strong> the printed word is on tap 24 hours a day, printjournalism faces a shrinking market <strong>and</strong> the need to justifyitself to consumers. The industry has responded since the1970s by an increasing number <strong>of</strong> mergers <strong>of</strong> metropolit<strong>and</strong>aily newspapers as well as the merging <strong>of</strong> newspapers intobroader-based media companies. Many people have grownup with the daily routine <strong>of</strong> a newspaper at the breakfasttable, <strong>and</strong> there is still a cachet for prestigious publicationssuch as the New York Times <strong>and</strong> the Wall Street Journal.Futurists have predicted that newspapers might eventuallybe delivered to “electronic book” devices, perhaps througha wireless connection (see e-books <strong>and</strong> digital libraries).This might combine the immediacy <strong>of</strong> the Internet with thephysical convenience <strong>and</strong> portability <strong>of</strong> a newspaper.Further ReadingCornfield, Michael. “Buzz, Blogs, <strong>and</strong> Beyond: The Internet <strong>and</strong>the National Discourse in the Fall <strong>of</strong> 2004.” Pew Center forInternet & American Life. Available online. URL: http://www.pewinternet.org/ppt/BUZZ_BLOGS__BEYOND_Final05-16-05.pdf. Accessed August 11, 2007.Daily KOS. Available online. URL: http://www.dailykos.com.Accessed August 11, 2007.Gillmor, Dan. We the Media: Grassroots Journalism by the People, forthe People. Sebastapol, Calif.: O’Reilly, 2004.Meyer, Philip. The Vanishing Newspaper: Saving Journalism in theInformation Age. Columbia, Mo.: University <strong>of</strong> Missouri Press,2004.Pew Center for Civic Journalism. Available online. URL: http://www.pewcenter.org. Accessed August 11, 2007.Quinn, Stephen, <strong>and</strong> Vincent Filak, eds. Convergent Journalism: AnIntroduction—Writing <strong>and</strong> Producing across Media. Burlington,Mass.: Focal Press, 2005.Salon.com. Available online. URL: http://www.salon.com. AccessedAugust 1, 2007.Slate.com. Available online. URL: http://www.slate.com. AccessedAugust 1, 2007.Wulfemeyer, K. Tim. Online Newswriting. Ames, Iowa: BlackwellPublishing, 2006.journalism <strong>and</strong> the computer industryDevelopments in the computer industry <strong>and</strong> user communityhave been chronicled by a great variety <strong>of</strong> printed <strong>and</strong>on-line publications. As computer science began to emergeas a discipline in the late 1950s <strong>and</strong> 1960s, academicallyoriented groups such as the Association for ComputingMachinery (ACM) <strong>and</strong> Institute for Electrical <strong>and</strong> ElectronicsEngineers (IEEE) began to issue both general <strong>and</strong> special-interestjournals. Meanwhile, the computer industrydeveloped both computer science-oriented publications(such as the IBM Systems Journal) <strong>and</strong> independent industryperiodicals such as Datamation.The development <strong>of</strong> microcomputer systems in themid- to late-1970s was accompanied by a proliferation <strong>of</strong>varied <strong>and</strong> <strong>of</strong>ten feisty publications. Byte magazine, whichcoined the term PC in 1976, became a respected trade publicationthat introduced new technologies while showcasingwhat programmers could do with the early systems. Theweekly newspaper InfoWorld provided more immediate <strong>and</strong>detailed coverage <strong>of</strong> industry developments, <strong>and</strong> was joinedby similar publications such as Information Week <strong>and</strong> <strong>Computer</strong>world.Meanwhile, technically savvy programmers <strong>and</strong>do-it-yourself engineers turned to such publications as theexotically named Dr. Dobbs’ Journal <strong>of</strong> <strong>Computer</strong> Calisthenics<strong>and</strong> Orthodontia (eventually shortened to Dr. Dobbs’ Journal).Many groups <strong>of</strong> people who owned particular systems(see user groups) also published their own newsletterswith technical tips.The success <strong>of</strong> the IBM PC family <strong>of</strong> computers establisheda broad-based consumer computing market. Itwas accompanied by the success <strong>of</strong> PC Magazine, whichaddresses a wide spectrum <strong>of</strong> both general consumers<strong>and</strong> “power users.” As the revenue for the PC industrygrew in the 1990s, the trade publications grew fatter withadvertising. The popularity <strong>of</strong> the Internet <strong>and</strong> particularlythe World Wide Web in the latter part <strong>of</strong> the decadeprovided niches for a spate <strong>of</strong> new publications includingInternet World <strong>and</strong> Yahoo! Internet Life. At the same time,many traditional publications began to <strong>of</strong>fer exp<strong>and</strong>edcontent via Web sites. For example, Ziff Davis, publisher<strong>of</strong> PC Magazine <strong>and</strong> other computer magazines createdZDNet, which <strong>of</strong>fered a large amount <strong>of</strong> content from themagazines plus exp<strong>and</strong>ed news <strong>and</strong> extensive shareware<strong>and</strong> utility libraries.Like earlier technological developments, the PC <strong>and</strong>the Internet have also spawned cultural expressions. Theculture growing around the Internet <strong>and</strong> a generation <strong>of</strong>young programmers, artists, <strong>and</strong> writers saw expression inanother genre <strong>of</strong> publications, ranging from small, eclecticprinted or Web “zines” to the slick Wired magazine.From Print to OnlineMany <strong>of</strong> the pressures on mainstream journalism also applyto computer industry journalism. As computer hardwarebecame a commodity with lower pr<strong>of</strong>it margins, <strong>and</strong> withthe shift to e-commerce <strong>and</strong> online activity, many printmagazines have folded or at least shrunk. In 1998 the venerableByte became an online-only publication, a path finallyfollowed by InfoWorld in 2007.Online sites such as ZDNET <strong>and</strong> CNET now carryin-depth news <strong>and</strong> product reviews. Slashdot (“New forNerds”) is particularly popular among programmers. Aswith mainstream journalism, blogs also play an importantpart in pr<strong>of</strong>essional <strong>and</strong> industry journalism in the computingfield.Further ReadingCNET. Available online. ULR: http://www.cnet.com. AccessedAugust 11, 2007.“<strong>Computer</strong> Industry: Trade Magazines.” Yahoo.com. Availableonline. URL: http://dir.yahoo.com/Business_<strong>and</strong>_Economy/


Joy, Bill 261Business_to_Business/<strong>Computer</strong>s/Industry_Information/Trade_Magazines/. Accessed August 11, 2007.“Tag: <strong>Computer</strong> Industry” [blogs]. Available online. URL: http://it.wordpress.com/tag/computer-industry. Accessed August11, 2007.“Top 100 <strong>Computer</strong> <strong>and</strong> S<strong>of</strong>tware Magazines.” Available online.URL: http://netvalley.com/top100mag.html. Accessed August11, 2007.ZDNET. Available online. URL: http://www.zdnet.com. AccessedAugust 11, 2007.Joy, Bill(1955– )AmericanS<strong>of</strong>tware Engineer, EntrepreneurBill Joy developed many <strong>of</strong> the key utilities used by users<strong>and</strong> programmers on UNIX systems (see unix). He thenbecame one <strong>of</strong> the industry’s leading entrepreneurs <strong>and</strong>later, a critic <strong>of</strong> some aspects <strong>of</strong> computer technology.As a graduate student in computer science <strong>and</strong> electricalengineering at the University <strong>of</strong> California at Berkeley inthe 1970s, Joy worked with UNIX designer Ken Thompson(1943– ) to add features such as virtual memory (paging)<strong>and</strong> TCP/IP networking support to the operating system(the latter work was sponsored by DARPA, the DefenseAdvanced Research Projects Agency). These developmenteventually led to the distribution <strong>of</strong> a distinctive version <strong>of</strong>UNIX called Berkeley S<strong>of</strong>tware Distribution (BSD), whichrivaled the original version developed at AT&T’s Bell Laboratories.The BSD system also popularized features such asthe C shell (a comm<strong>and</strong> processor) <strong>and</strong> the text editors “ex”<strong>and</strong> “vi.” (See shell.)As opposed to the tightly controlled AT&T version,BSD UNIX development relied upon what would becomeknown as the open-source model <strong>of</strong> s<strong>of</strong>tware development(see open-source movement). This encouraged programmersat many installations to create new utilities for theoperating system, which would then be reviewed <strong>and</strong> integratedby Joy <strong>and</strong> his colleagues. BSD UNIX gained industryacceptance <strong>and</strong> was adopted by the Digital EquipmentCorporation (DEC), makers <strong>of</strong> the popular VAX series <strong>of</strong>minicomputers.In 1982, Joy left UC Berkeley <strong>and</strong> co-founded Sun Microsystems,a company that became a leader in the manufacture<strong>of</strong> high-performance UNIX-based workstations forscientists, engineers, <strong>and</strong> other dem<strong>and</strong>ing users. Evenwhile becoming a corporate leader, he continued to refineUNIX operating system facilities, developing the NetworkFile System (NFS), which was then licensed for use not onlyon UNIX systems but on VMS, PC-DOS, <strong>and</strong> Macintoshsystems. Joy’s versatility also extended to hardware design,where he helped create the Sun SPARC reduced instructionset (RISC) microprocessor that gave Sun workstations much<strong>of</strong> their power.In the early 1990s, Joy turned to the growing world <strong>of</strong>Internet applications <strong>and</strong> embraced Java, a programminglanguage created by James Gosling (see Java). He developedspecifications, processor instruction sets, <strong>and</strong> marketingplans. Java became a very successful platform forbuilding applications to run on Web servers <strong>and</strong> browsers<strong>and</strong> to support the needs <strong>of</strong> e-commerce. As Sun’s chiefscientist since 1998, Joy has led the development <strong>of</strong> Jini,a facility that would allow not just PCs but many other“Java-enabled” devices such as appliances <strong>and</strong> cell phonesto communicate with one another.Recently, however, Joy has expressed serious misgivingsabout the future impact <strong>of</strong> artificial intelligence <strong>and</strong> relateddevelopments on the future <strong>of</strong> humanity. Joy remains proud<strong>of</strong> the achievements <strong>of</strong> a field to which he has contributedmuch. However, while rejecting the violent approach<strong>of</strong> extremists such as Unabomber Theodore Kaczynski,Joy points to the potentially devastating unforeseen consequences<strong>of</strong> the rapidly developing capabilities <strong>of</strong> computers.Unlike his colleague Ray Kurzweil’s optimistic viewsabout the coexistence <strong>of</strong> humans <strong>and</strong> sentient machines,Joy points to the history <strong>of</strong> biological evolution <strong>and</strong> suggeststhat superior artificial life forms will displace humansBill Joy made key contributions to the Berkeley S<strong>of</strong>tware Distribution(BSD) version <strong>of</strong> UNIX, including developing its NetworkFile System (NFS). As a c<strong>of</strong>ounder <strong>of</strong> Sun Microsystems, Joy thenhelped develop innovative workstations <strong>and</strong> promoted Java asa major language for developing Web applications. (Bill Joy,Kleiner Perkins Caulfield & Byers)


262 Joy, Billwho will be unable to compete with them. He believes thatgiven the ability to reproduce themselves, intelligent robotsor even “nanobots” (see nanotechnology) might soon beuncontrollable.Joy also expresses misgivings about biotechnology <strong>and</strong>genetic engineering, seen by many as the dominant scientific<strong>and</strong> technical advance <strong>of</strong> the early 21st century. Hehas proposed that governments develop institutions <strong>and</strong>mechanisms to control the development <strong>of</strong> such dangeroustechnologies, drawing on the model <strong>of</strong> the agencies thathave more or less successfully controlled the development<strong>of</strong> nuclear energy <strong>and</strong> the proliferation <strong>of</strong> nuclear weaponsfor the past 50 years. (For contrasting views see Kurzweil,Ray <strong>and</strong> singularity, technological.)In 2003 Joy left Sun <strong>and</strong> became a venture capitalist,specializing in technologies <strong>and</strong> projects to combat whathe sees as serious global dangers, such as p<strong>and</strong>emic disease<strong>and</strong> the possibility <strong>of</strong> bioterrorism.Joy received the ACM Grace Murray Hopper Award forhis contributions to BSD UNIX before the age <strong>of</strong> 30. In1993, he was given the Lifetime Achievement Award <strong>of</strong> theUSENIX Association, “For pr<strong>of</strong>ound intellectual achievement<strong>and</strong> unparalleled services to the UNIX community.”Further ReadingBrown, John Seely <strong>and</strong> Paul Duguid. “A Response to Bill Joy <strong>and</strong>the Doom-<strong>and</strong>-Gloom Techn<strong>of</strong>uturists.” Available online. URL:http://www.aaas.org/spp/rd/ch4.pdf. Accessed August 12, 2007.Joy, Bill. “Why the Future Doesn’t Need Us.” Wired, 8.04, April2000. Available online. URL: http://www.wired.com/wired/archive/8.04/joy.html. Accessed August 12, 2007.Joy, Bill, et al. The Java Language Specification. 3rd ed. Upper SaddleRiver, N.J.: Prentice Hall, 2005. Available online. URL: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf.Accessed August 12, 2007.O’Reilly, Tim. “A Conversation with Bill Joy.” O’Reilly Network, February12, 2001. Available online. URL: http://www.openp2p.com/pub/a/p2p/2001/02/13/joy.html. Accessed August 12, 2007.


KKay, Alan(1940– )American<strong>Computer</strong> ScientistAlan Kay developed a variety <strong>of</strong> innovative concepts thatchanged the way people use computers. Because he devisedways to have computers accommodate users’ perceptions<strong>and</strong> needs, Kay is thought by many to be the person mostresponsible for putting the “personal” in personal computers.Kay also made important contributions to objectorientedprogramming, changing the way programmersorganized data <strong>and</strong> procedures in their work.Kay’s father developed prostheses (artificial limbs) <strong>and</strong>his mother was an artist <strong>and</strong> musician. These varied perspectivescontributed to Kay’s interest in interaction with<strong>and</strong> perception <strong>of</strong> the environment. In the late 1960s, whilecompleting work for his Ph.D. at the University <strong>of</strong> Utah,Kay developed his first innovations in both areas. He helpedIvan Sutherl<strong>and</strong> with the development <strong>of</strong> a program calledSketchpad that enabled users to define <strong>and</strong> control onscreenobjects, while also working on the development <strong>of</strong> Simula, alanguage that helped introduce new programming concepts(see Simula <strong>and</strong> object-oriented programming). Indeed,Kay coined the term object-oriented in the late 1960s. Heviewed programs as consisting <strong>of</strong> objects that containedappropriate data that could be manipulated in response to“messages” sent from other objects. Rather than being rigid,top-down procedural structures, such programs were morelike teams <strong>of</strong> cooperating workers. Kay also worked onparallel programming, where programs carried out severaltasks simultaneously (see concurrent programming). Helikened this structure to musical polyphony, where severalmelodies are sounded simultaneously.Kay participated in the Defense Advanced ResearchProjects Agency (DARPA)—funded research that was leadingto the development <strong>of</strong> the Internet. One <strong>of</strong> these DARPAprojects was FLEX, an attempt to build a computer thatcould be used by nonprogrammers through interacting withonscreen controls. While the bulky technology <strong>of</strong> the late1960s made such machines impracticable, FLEX incorporatedsome ideas that would be used in later PCs, includingmultiple onscreen windows.During the 1970s, Kay worked at the innovative XeroxPalo Alto Research Center (PARC). Kay designed a laptopcomputer called the Dynabook, which featured high-resolutiongraphics <strong>and</strong> a graphical user interface. While theDynabook was only a prototype, similar ideas would beused in the Alto, a desktop personal computer that couldbe controlled with a new pointing device, the mouse (seeEngelbart, Douglas). A combination <strong>of</strong> high price <strong>and</strong>Xerox’s less than aggressive marketing kept the machinefrom being successful commercially, but Steven Jobs (seeJobs, Steven) would later use its interface concepts todesign what would become the Macintosh.On the programming side Kay developed Smalltalk, alanguage that was built from the ground up to be trulyobject-oriented (see Smalltalk). Kay’s work showed thatthere was a natural fit between object-oriented programming<strong>and</strong> an object-oriented user interface. For example, abutton in a screen window could be represented by a buttonobject in the program, <strong>and</strong> clicking on the screen button263


264 kernelcould send a message to the button program object, whichwould be programmed to respond in specific ways.After leaving Xerox PARC in 1983, Kay briefly servedas chief scientist at Atari <strong>and</strong> then moved to Apple, wherehe worked on Macintosh <strong>and</strong> other advanced projects. In1996, Kay became a Disney Fellow <strong>and</strong> Vice President <strong>of</strong>Research <strong>and</strong> Development at Walt Disney Imagineering.In 2001 Kay founded Viewpoints Research Institute, a nonpr<strong>of</strong>itorganization devoted to developing advanced learningenvironments for children. One such project is Squeak,a streamlined but powerful version <strong>of</strong> Smalltalk that Kaystarted developing in 1995. Another, eToys, is a multiplatform,media-rich, environment that can be used for educationor “just” play. Behind it all is Kay’s continuing effortto do no less than reinvent programming <strong>and</strong> peoples’ relationshipto computer environments.Kay’s numerous honors include the ACM Turing Award(2003) for contributions to object-oriented programming<strong>and</strong> the Kyoto Prize (2004).Further ReadingAlter, Allan E. “Alan Kay: The PC Must Be Revamped—Now.” CIOInsight. Available online. URL: http://www.cioinsight.com/article2/0,1540,2089567,00.asp. Accessed August 1, 2007.Gasch, Scott. “Alan Kay.” Available online. URL: http://ei.cs.vt.edu/~history/GASCH.KAY.HTML. Accessed August 12, 2007.Kay, Alan. “The Early History <strong>of</strong> Smalltalk.” In Thomas J. Bergin,Jr., <strong>and</strong> Richard G. Gibson, Jr., eds. History <strong>of</strong> ProgrammingLanguages II. New York: ACM; Reading, Mass.: Addison-Wesley,1996.Shasha, Dennis, <strong>and</strong> Cathy Lazere, eds. Out <strong>of</strong> their Minds: TheLives <strong>and</strong> Discoveries <strong>of</strong> 15 Great <strong>Computer</strong> Scientists. NewYork: Copernicus, 1995.Viewpoints Research Institute. Available online. URL: http://www.vpri.org/. Accessed August 12, 2007.kernelThe idea behind an operating system kernel is that thereis a relatively small core set <strong>of</strong> “primitive” functions thatare necessary for the operation <strong>of</strong> system services (see alsooperating system). These functions can be provided in asingle component that can be adapted <strong>and</strong> updated as desirable.The fundamental services include:• Process control—scheduling how the processes (programsor threads <strong>of</strong> execution within programs) sharethe CPU, switching execution between processes, creatingnew processes, <strong>and</strong> terminating existing ones(see multitasking).• Interprocess communication—sending “messages”between processes enabling them to share data orcoordinate their data processing.• memory management—allocating <strong>and</strong> freeing upmemory as requested by processes as well as implementingvirtual memory, where physical storage istreated as an extension <strong>of</strong> main (RAM) memory. (Seememory management.)The kernel is an intermediary between users <strong>and</strong> programs <strong>and</strong> thehardware system. It provides the functions necessary for allocating<strong>and</strong> controlling processes <strong>and</strong> system resources.• File system services—creating, opening, reading from,writing to, closing, <strong>and</strong> deleting files. This includes maintaininga structure (such as a list <strong>of</strong> nodes) that specifiesthe relationship between directories <strong>and</strong> files. (See file.)In addition to these most basic services, some operatingsystems may have larger kernels that include securityfunctions (such as maintaining different classes <strong>of</strong> userswith different privileges), low-level support for peripheraldevices, <strong>and</strong> networking (such as TCP/IP).The decision about what functions to include in the kernel<strong>and</strong> which to provide through device drivers or systemextensions is an important part <strong>of</strong> the design <strong>of</strong> operatingsystems. Many early systems responded to the very limitedsupply <strong>of</strong> RAM by designing a “microkernel” that could fitentirely in a small amount <strong>of</strong> memory reserved permanentlyfor it. Today, with memory a relatively cheap resource, kernelstend to be larger <strong>and</strong> include functions that are pageddynamically into <strong>and</strong> out <strong>of</strong> memory.In the UNIX world (<strong>and</strong> particularly with Linux) thekernel is constantly being improved through informal collaborativeefforts. Many Linux enthusiasts regularly installnew versions <strong>of</strong> the kernel in order to stay on the “leadingedge,” while more conservative users can opt for waitinguntil the next stable version <strong>of</strong> the kernel is released.Further ReadingBovet, Daniel, <strong>and</strong> Marco Cesati. Underst<strong>and</strong>ing the Linux Kernel.3rd ed. Sebastapol, Calif.: O’Reilly, 2005.Love, Robert. Linux Kernel Development. 2nd ed. Indianapolis:Novell Press, 2005.Torvalds, Linus. “LinuxWorld: The Story <strong>of</strong> the Linux Kernel.”linuxtoday. Available online. URL: http://www.linuxtoday.com/developer/1999032500910PS. Accessed August 12, 2007.


Kleinrock, Leonard 265keyboardAlthough most <strong>of</strong> today’s personal computers feature apoint-<strong>and</strong>-click graphical interface (see user interface<strong>and</strong> mouse) the keyboard remains the main means forentering text <strong>and</strong> other data into computer applications.The modern computer keyboard traces its ancestry to thetypewriter, <strong>and</strong> the layout <strong>of</strong> its alphabetic <strong>and</strong> punctuationkeys remains that devised by typewriter pioneer ChristopherLatham Sholes in the late 1860s.The principal difference in operation is that while atypewriter needs only to transfer the impression <strong>of</strong> a keythrough a ribbon onto a piece <strong>of</strong> paper, the computer keyboardmust generate an electrical signal that uniquely identifieseach key. This technology dates back to the 1920swith the adoption <strong>of</strong> the teletypewriter (<strong>of</strong>ten known bythe br<strong>and</strong> name Teletype), which allowed operators to typetext at a keyboard <strong>and</strong> send it over telephone lines to beprinted. The transmissions used the Baudot character code,which used five binary (<strong>of</strong>f or on) positions to encode letters<strong>and</strong> characters. This gave way to the ASCII code in the1960s (see characters <strong>and</strong> strings) at about the timethat remote time-sharing services allowed users to interactwith computers through a Teletype connection.The modern personal computer keyboard was st<strong>and</strong>ardizedin the mid-1980s when IBM released the PC AT. Thisexp<strong>and</strong>ed keyboard now has 101 or 102 keys. It supplementsthe st<strong>and</strong>ard typewriter keys with cursor-control (arrow)keys, scroll control keys (such as Page Up <strong>and</strong> Page Down),a dozen function keys that can be assigned to comm<strong>and</strong>sby s<strong>of</strong>tware, <strong>and</strong> a separate calculator-style keyboard fornumeric data entry. During the 1990s, Micros<strong>of</strong>t introduceda few extra keys for Windows-specific functions.The advent <strong>of</strong> laptop (or notebook) computers requiredsome compromises. The keys are generally smaller, althoughon the better units they are still far enough apart to allowfor comfortable touch-typing. Laptops <strong>of</strong>ten combine thefunction keys <strong>and</strong> cursor control keys with the regular keys,using a special “Fn” key to shift between them.In recent years, there has been some interest in adoptingan alternative key layout devised by August Dvorak inthe 1950s. The theory behind this layout was that arrangingthe keyboard so the most commonly used keys weredirectly under the fingers would be more efficient than theSholes layout, which legend claims was devised primarilyto slow down typists to a speed that early typewriters couldh<strong>and</strong>le without jamming. However, researchers have generallybeen unable to find a significant improvement in eitherperformance or ergonomics between use <strong>of</strong> the st<strong>and</strong>ard<strong>and</strong> Dvorak layouts, <strong>and</strong> the latter has not caught on commercially.Concern with repetitive strain injury (RSI) has led toexperiments in designing a keyboard more suited to thehuman wrist <strong>and</strong> h<strong>and</strong> (see ergonomics <strong>of</strong> computing).Some designs such as the Micros<strong>of</strong>t Natural Keyboarddivide the layout into left <strong>and</strong> right banks <strong>of</strong> keys <strong>and</strong> anglethem toward one another to reduce strain on the wrists. Anextreme form <strong>of</strong> the design actually breaks the keyboardinto two pieces. Such extreme designs have not found wideacceptance.The Micros<strong>of</strong>t Natural Multimedia Keyboard features access t<strong>of</strong>unctions needed by today’s computer users along with an ergonomiclayout designed to help reduce typing stress. (Micros<strong>of</strong>tCorporation)It is possible that the further development <strong>of</strong> voice recognitions<strong>of</strong>tware might allow spoken dictation to supplantthe keyboard for data entry. Currently, however, such technologyis limited in speed <strong>and</strong> accuracy (see speech recognition<strong>and</strong> synthesis).With the increasingly popular mobile devices (see pda<strong>and</strong> smartphone), keyboards are sometimes dispensed withentirely. For light data entry (such as for e-mail <strong>and</strong> textmessaging), a small version <strong>of</strong> the st<strong>and</strong>ard keyboard canbe used. (In such cases users can type with their thumbs.)With touch-sensitive screens on mobile devices, a “virtualkeyboard” can be displayed on the screen; however, thelack <strong>of</strong> tactile feedback means this data-entry method takessome getting used to. One can also obtain a keyboard thatcan wirelessly connect to such a device to allow for moreextensive data entry (see Bluetooth.)Further Reading“<strong>Computer</strong> Keyboard Design.” Cornell University ErgonomicsWeb. Available online. URL: http://ergo.human.cornell.edu/ahtutorials/ckd.htm. Accessed August 12, 2007.Lundmark, Torbjorn. Qwirky Qwerty: The Story <strong>of</strong> the Keyboard @Your Fingertips. Sydney, Australia: New South Wales UniversityPress, 2002.Kleinrock, Leonard(1934– )AmericanEngineer, <strong>Computer</strong> ScientistEvery day billions <strong>of</strong> e-mails, text messages, <strong>and</strong> media filesare sent over the worldwide Internet. The infrastructurethat allows the efficient transmission <strong>of</strong> this vast data trafficis largely based on the system <strong>of</strong> packet-switching <strong>and</strong> routinginvented by Leonard Kleinrock.Kleinrock was born in 1934 <strong>and</strong> grew up in New YorkCity. When he was only six years old Kleinrock built a crystalradio, the first <strong>of</strong> many electronics projects, built fromcannibalized old radios <strong>and</strong> other equipment. Kleinrock


266 knowledge representationattended the Bronx High School <strong>of</strong> <strong>Science</strong>, home <strong>of</strong> many<strong>of</strong> the nation’s top future engineers. However, when it cametime for college, the family had no money to pay for hishigher education, so he attended night courses at the CityCollege <strong>of</strong> New York while working as an electronics technician<strong>and</strong> later as an engineer. Kleinrock graduated first inhis class in 1957 <strong>and</strong> earned a fully paid fellowship to theMassachusetts Institute <strong>of</strong> <strong>Technology</strong>.At MIT Kleinrock became interested in finding ways forcomputers <strong>and</strong> their users to communicate with each other.The idea <strong>of</strong> computer networking was in its infancy, but hesubmitted a proposal in 1959 for Ph.D. research in networkdesign.In 1961 Kleinrock published his first paper, “InformationFlow in Large Communication Nets.” Existing telephonesystems did what was called “circuit switching”: Toestablish a conversation, the caller’s line is connected to thereceiver’s, forming a circuit that existed for the duration<strong>of</strong> the call. This also meant that the circuit would not beavailable to anyone else, <strong>and</strong> that if something was wrongwith the connection there was no way to route around theproblem.Kleinrock’s basic idea was to set up data connectionsthat would be shared among many users as needed. Instead<strong>of</strong> the whole call (or data transmission) being assigned to aparticular circuit, it would be broken up into packets thatcould be sent along whatever circuit was the most direct.If there was a problem, the packet could be resent on analternative route. This form <strong>of</strong> “packet switching” providedgreat flexibility as well as more efficient use <strong>of</strong> the availablecircuits. Kleinrock further elaborated his ideas in hisdissertation, for which he was awarded his Ph.D. in 1963.The following year MIT published his book CommunicationsNets, the first full treatment <strong>of</strong> the subject.Kleinrock joined the faculty at the University <strong>of</strong> California,Los Angeles. In 1968 the Defense Department’sAdvanced Research Projects Agency (ARPA) asked him todesign a packet-switched network that would be known asARPANET. The computers on the network would be connectedusing special devices called Interface Message Processors(IMPs). The overall project was under the guidance<strong>and</strong> supervision <strong>of</strong> one <strong>of</strong> Kleinrock’s MIT <strong>of</strong>fice mates,Lawrence Roberts.On October 29, 1969, Kleinrock <strong>and</strong> his assistants sentthe first data packets between UCLA <strong>and</strong> Stanford overphone lines. Their message, the word “login,” was hardly asdramatic as Alex<strong>and</strong>er Graham Bell’s “Watson, come here,I need you!” Nevertheless, a form <strong>of</strong> communication hadbeen created that in a few decades would change the worldas much as the telephone had done a century earlier.The idea <strong>of</strong> computer networking did not catch on immediately,however. Besides requiring a new way <strong>of</strong> thinkingabout the use <strong>of</strong> computers, many computer administratorswere concerned that their computers might be swampedwith users from other institutions, or that they might ultimatelylose control over the use <strong>of</strong> their machines. Kleinrockworked tirelessly to convince institutions to join thenascent network. By the end <strong>of</strong> 1969 there were just fourARPANET “nodes”: UCLA, the Stanford Research Institute,UC Santa Barbara, <strong>and</strong> the University <strong>of</strong> Utah. By the followingsummer, there were ten.During the 1970s Kleinrock trained many <strong>of</strong> theresearchers who would advance the technology <strong>of</strong> networking.While Kleinrock’s first network was not the Internet weknow today, it was an essential step in its development. Insuccessfully establishing communication using the packetswitchedARPANET, Kleinrock showed that such a networkwas practicable.By the early 1990s Kleinrock was looking toward a futurewhere most network connections were wireless <strong>and</strong> accessiblethrough a variety <strong>of</strong> computerlike devices such as h<strong>and</strong>held“palmtop” computers, cell phones, <strong>and</strong> others not yetimagined. In such a network the intelligence or capability isdistributed throughout, with devices communicating seamlesslyso the user no longer need be concerned about whatparticular gadget he or she is using. By the middle <strong>of</strong> the followingdecade, much <strong>of</strong> this vision had become reality.Although his name is not well known to the generalpublic, Kleinrock has won considerable recognition withinthe technical community. This includes Sweden’s L. M.Ericsson Prize (1982), the Marconi Award (1986), <strong>and</strong> theNational Academy <strong>of</strong> Engineering Charles Stark DraperPrize (2001).Further ReadingHafner, Katie, <strong>and</strong> Matthew Lyon. Where Wizards Stay Up Late: TheOrigins <strong>of</strong> the Internet. New York: Simon <strong>and</strong> Schuster, 1996.Kleinrock, Leonard. “Information Flow in Large CommunicationNets.” Available online. URL: http://www.lk.cs.ucla.edu/LK/Bib/REPORT/PhD/proposal.html. Accessed May 3, 2007.“Leonard Kleinrock’s Home Page.” Available online. URL: http://www.lk.cs.ucla.edu/. Accessed May 3, 2007.knowledge representationThe earliest concern <strong>of</strong> computer science was the representation<strong>of</strong> “raw” data such as numbers in programs (see datatypes). Such data can be used in calculations, <strong>and</strong> actionstaken based on tests <strong>of</strong> data values, using branching (IF) orlooping structures.However, facts are more than data. A fact is an assertion,for example about a relationship, as in “Joe is a son <strong>of</strong>Mike,” <strong>of</strong>ten expressed in a form such as son (Joe, Mike).Implications can also be defined as proceeding from facts,such asson (Joe, Mike) implies father (Mike, Joe) orson (Joe, Mike) <strong>and</strong> son (Mike, Phil) impliesgr<strong>and</strong>son (Joe, Phil)While it can be expressed in a variety <strong>of</strong> different forms<strong>of</strong> notation, this predicate calculus forms the basis formany automated reasoning systems that can operate on a“knowledge base” <strong>of</strong> assertions, prove the validity <strong>of</strong> a givenassertion, <strong>and</strong> even generate new conclusions based uponexisting knowledge (see also expert systems).An alternative form <strong>of</strong> knowledge representation usedin artificial intelligence programs is based on the idea <strong>of</strong>frames. A frame is a structure that lists various character-


Knuth, Donald 267istics or relationships that apply to a given individual orclass. For example, the individual “cat” might have a framethat includes characteristics such as “warm-blooded” <strong>and</strong>“bears live young.” In turn, these characteristics are alsoassigned to the class “mammal” such that any individualhaving those characteristics belongs to that class. A programcan then follow the linkages <strong>and</strong> conclude that a cat isa mammal. Linkages can also be diagrammed as a “semanticnetwork” in a structure called a directed graph, with thelines between nodes labeled to show relationships.Knowledge representation systems have different considerationsdepending on their intended purpose. A KR systemin an academic research setting might be intended todemonstrate completeness: that is, it can generate all possibleconclusions from the facts given. However, expert systemsdesigned for practical use usually do not attempt to generateall possible conclusions (which might be computationallyimpracticable) but to generate useful conclusions thatare likely to serve the needs <strong>of</strong> the knowledge consumer.It is also important to note that epistemology (the theory<strong>of</strong> knowledge) plays an important role in underst<strong>and</strong>ing<strong>and</strong> evaluating KR systems. As an example, the assertion“Mary believes she is 600 years old” might be a fact (Maryis observed to hold such a belief), but the contents <strong>of</strong> thebelief are presumably not factual. The context <strong>of</strong> this beliefmight also be different if Mary is an adult as opposed tobeing a five-year-old child. Similarly, ontological (state <strong>of</strong>being) considerations can also complicate the evaluation <strong>of</strong>assertions. For example, should a fire be treated as an objectin itself, a process, or an attribute <strong>of</strong> a burning object?Knowledge representation thus intertwines philosophy <strong>and</strong>computer science.The booming interest in extracting new patterns fromdata (see data mining) <strong>and</strong> the effort to encode moreknowledge into Web documents (see ontologies <strong>and</strong> datamodels, semantic Web, <strong>and</strong> xml) all involve applications<strong>of</strong> knowledge representation.Perhaps the most ambitious knowledge representationproject (<strong>and</strong> the longest-lasting one) has been Cyc (short for<strong>Encyclopedia</strong>). Headed by AI researcher Douglas Lenat, theobject <strong>of</strong> Cyc is to create a massive network representingthe relationships <strong>and</strong> characteristics <strong>of</strong> millions <strong>of</strong> objects<strong>and</strong> concepts found in peoples’ daily lives <strong>and</strong> work. Ideallya wide variety <strong>of</strong> programs (both specialized <strong>and</strong> generalpurpose) will be able to use this knowledge base (seeexpert system). Projects such as Cyc <strong>and</strong> the Web OntologyLanguage (Owl) also <strong>of</strong>fer the possibility <strong>of</strong> a muchmore intelligent Web search (see search engine) as well assystems that can automatically summarize news stories <strong>and</strong>other material.Further ReadingBrachman, Ronald, <strong>and</strong> Hector Levesque. Knowledge Representation<strong>and</strong> Reasoning. San Francisco: Morgan Kaufmann, 2004.Cycorp. Available online. URL: http://www.cyc.com/. AccessedAugust 12, 2007.Davis, R<strong>and</strong>all, Howard Shrobe, <strong>and</strong> Peter Szolovits. “What Is aKnowledge Representation?” AI Magazine 14 (1993): 17–33.Available online. URL: http://groups.csail.mit.edu/medg/ftp/psz/k-rep.html. Accessed August 12, 2007.Lacy, Lee W. Owl: Representing Information Using the Web OntologyLanguage. Victoria, B.C., Canada: Trafford, 2005.Makahfi, Pejman. “Introduction to Knowledge Modeling.” Availableonline. URL: http://www.makhfi.com/KCM_intro.htm.Accessed August 12, 2007.Knuth, Donald(1938– )American<strong>Computer</strong> ScientistDonald Knuth has contributed to many aspects <strong>of</strong> computerscience, but his most lasting contribution is his monumentalwork, The Art <strong>of</strong> <strong>Computer</strong> Programming, which is still inprogress.Born in Milwaukee on January 10, 1938, Knuth’s initialbackground was in mathematics. He received his master’sdegree at the Case Institute <strong>of</strong> <strong>Technology</strong> in 1960<strong>and</strong> his Ph. D. from the California Institute <strong>of</strong> <strong>Technology</strong>(Caltech) in 1963. As a member <strong>of</strong> the Caltech mathematicsfaculty Knuth became involved with programming <strong>and</strong>s<strong>of</strong>tware engineering, serving both as a consultant to theBurroughs Corporation <strong>and</strong> as editor <strong>of</strong> the Associationfor Computing Machinery (ACM) publication ProgrammingLanguages. In 1968, Knuth confirmed his change <strong>of</strong> careerdirection by becoming pr<strong>of</strong>essor <strong>of</strong> computer science atStanford University.In 1971, Knuth published the first volume <strong>of</strong> The Art<strong>of</strong> <strong>Computer</strong> Programming <strong>and</strong> received the ACM GraceMurray Hopper Award. His broad contributions to thefield as well as specific work in the analysis <strong>of</strong> algorithms<strong>and</strong> computer languages garnered him the ACM TuringAward, the most prestigious honor in the field. Knuthalso did important work in areas such as LR (left-to-right,rightmost) parsing, a context-free parsing approach usedin many program language interpreters <strong>and</strong> compilers(see parsing).However, Knuth then turned away from writing for anextended period. His primary interest became the development<strong>of</strong> a sophisticated s<strong>of</strong>tware system for computer-generatedtypography. He developed both the TeX documentpreparation system <strong>and</strong> METAFONT, a system for typefacedesign that was completed during the 1980s. TeX found asolid niche in the preparation <strong>of</strong> scientific papers, particularlyin the fields <strong>of</strong> mathematics, physics, <strong>and</strong> computerscience where it can accommodate specialized symbols <strong>and</strong>notation.Knuth did return to The Art <strong>of</strong> <strong>Computer</strong> Programming<strong>and</strong> by the late 1990s he had completed two more <strong>of</strong> aprojected seven volumes. With his broad interests <strong>and</strong> contributions<strong>and</strong> “big picture” approach to the evaluation <strong>of</strong>programming languages, algorithms, <strong>and</strong> s<strong>of</strong>tware engineeringmethodologies, Knuth can fairly be described asone <strong>of</strong> the “Renaissance persons” <strong>of</strong> the computer sciencefield. His numerous awards include the ACM Turing Award(1974), IEEE <strong>Computer</strong> Pioneer Award (1982), AmericanMathematical Society’s Steele Prize (1986), <strong>and</strong> the IEEE’sJohn von Neumann Medal (1995).


268 Kurzweil, RayFurther ReadingFrenkel, Karen A. “Donald E. Knuth: Scholar with a Passion forthe Particular.” Pr<strong>of</strong>iles in Computing, Communications <strong>of</strong> theACM, vol. 30, no. 10, October 1987.———. The Art <strong>of</strong> <strong>Computer</strong> Programming. 3rd ed. vols. 1–3. Reading,Mass.: Addison-Wesley, 1998.Knuth, Donald E. Literate Programming. Stanford, Calif.: Centerfor the Study <strong>of</strong> Language <strong>and</strong> Information, 1992.———. Things a <strong>Computer</strong> Scientist Rarely Talks About. Stanford,Calif.: CSLI Publications, 2001.Slater, Robert. Portraits in Silicon. Cambridge, Mass.: MIT Press,1987.Kurzweil, Ray(1948– )AmericanInventor, FuturistRay Kurzweil began his career as an inspired inventor whobrought words to the blind <strong>and</strong> new kinds <strong>of</strong> sounds tomusicians. Drawing upon his experience with the rapidProlific inventor <strong>and</strong> futurist Ray Kurzweil believes thattechnology will soon take an exponential leap called “thesingularity.” (Melanie Stetson Freeman / The Christian <strong>Science</strong>Monitor / Getty Images)progress <strong>of</strong> technology, Kurzweil then wrote a series <strong>of</strong>books that predicted a coming breakthrough into a worldshared by advanced intelligent machines <strong>and</strong> enhancedhuman beings.Kurzweil was born on February 12, 1948, in Queens,New York, to an extremely talented family. Kurzweil’sfather, Fredric, was a concert pianist <strong>and</strong> conductor. Kurzweil’smother, Hanna, was an artist, <strong>and</strong> one <strong>of</strong> his uncleswas an inventor. By the time he was 12, Kurzweil wasbuilding <strong>and</strong> programming his own computer. He wrote astatistical program that was so good that IBM distributedit as well as a music-composing program. The latter earnedhim first prize in the 1964 International <strong>Science</strong> Fair <strong>and</strong>a meeting with President Lyndon B. Johnson in the WhiteHouse. Kurzweil even appeared on the television show I’veGot a Secret.In 1967 Kurzweil enrolled in the Massachusetts Institute<strong>of</strong> <strong>Technology</strong>, majoring in computer science <strong>and</strong> literature.By the time he received his B.S. in 1970, Kurzweil had metsome <strong>of</strong> the most influential thinkers in artificial intelligenceresearch, including Marvin Minsky, whom he lookedto as a mentor (see Minsky, Marvin). Kurzweil had becomefascinated with the use <strong>of</strong> AI to aid <strong>and</strong> exp<strong>and</strong> humanpotential. In particular, he focused on pattern recognition,or the ability to classify or recognize patterns such as theletters <strong>of</strong> the alphabet on a page <strong>of</strong> text.Early character-recognition technology had been limitedbecause it could only match very precise shapes, making itimpractical for reading most printed material. Kurzweil,however, used his knowledge <strong>of</strong> expert systems <strong>and</strong> otherAI principles to develop a program that could use generalrules <strong>and</strong> relationships to “learn” to recognize just aboutany kind <strong>of</strong> text (see ocr). This program, called Omnifont,would be combined with the flatbed scanner (which Kurzweilinvented in 1975) to create a system that could scantext <strong>and</strong> convert the images into the corresponding charactercodes, suitable for use with programs such as wordprocessors.A chance conversation with a blind fellow passenger ona plane convinced Kurzweil that he could build a machinethat could scan text <strong>and</strong> read it out loud. Kurzweil wouldcombine his scanning technology with a speech synthesizer(see speech recognition <strong>and</strong> synthesis). Kurzweil had tocreate an expert system with hundreds <strong>of</strong> rules for properlyvoicing the words in the text.In 1976 Kurzweil was able to announce the KurzweilReading Machine (KRM). Soon after the machine’s debut,Kurzweil struck up a friendship with the legendary blindpop musician Stevie Wonder. They shared an interest inmusical instruments <strong>and</strong> music synthesis. Existing analogsynthesizers were very versatile, but their output sounded“thin” <strong>and</strong> artificial compared to the rich overtones in thesound <strong>of</strong> a piano or guitar. Kurzweil was able to create amuch more realistic synthesizer sound using digital ratherthan analog technology.The first Kurzweil synthesizer, the K250, was released in1983. His machine was the result <strong>of</strong> considerable researchin digitally capturing <strong>and</strong> representing the qualities <strong>of</strong> notesfrom particular instruments, including the “attack,” or ini-


Kurzweil, Ray 269tial building <strong>of</strong> sound, the “decay,” or decline in the sound,the sustain, <strong>and</strong> the release (when the note is ended.) Theresulting sound was so accurate that pr<strong>of</strong>essional orchestraconductors <strong>and</strong> musicians could not distinguish the synthesizedsound from that <strong>of</strong> the real instruments.Throughout the 1980s <strong>and</strong> 1990s Kurzweil applied hisboundless inventiveness to a number <strong>of</strong> other challenges,including speech recognition. The reverse <strong>of</strong> voice synthesis,speech recognition involves the identification <strong>of</strong> phonemes(<strong>and</strong> thus words) in speech that has been convertedinto computer sound files. Kurzweil sees a number <strong>of</strong> powerfultechnologies being built from voice recognition <strong>and</strong>synthesis, including telephones that automatically translatespeech <strong>and</strong> devices that can translate spoken words into textin real time for deaf people. He also believes that the abilityto control computers by voice comm<strong>and</strong>, which is currentlyrather rudimentary, should also be greatly improved.Technological Apocalypse?During the 1990s, though, much <strong>of</strong> Kurzweil’s interestturned from inventing the future to considering its likelycourse. His 1990 book The Age <strong>of</strong> Intelligent Machines<strong>of</strong>fered a popular account <strong>of</strong> how AI research would changemany human activities. In 1999 Kurzweil published TheAge <strong>of</strong> Spiritual Machines. It made the provocative claimthat, by the middle <strong>of</strong> the 21st century, machine intelligencewould surpass that <strong>of</strong> humans. Kurzweil revisitedthe topic in his latest book, The Singularity Is Near (2005).The title seems to consciously echo the apocalyptic language<strong>of</strong> a prophet predicting the last judgment or thecoming <strong>of</strong> a messiah. The word “singularity” is intendedto describe the effects <strong>of</strong> relentless, ever-increasing technologicalprogress that eventually reaches a sort <strong>of</strong> “criticalmass” <strong>and</strong> changes the world beyond all recognition(see singularity, technological).As he depicts life in 2009, 2019, 2029, <strong>and</strong> finally 2099,Kurzweil portrays a world in which sophisticated AI personalitiesbecome virtually indistinguishable from humans<strong>and</strong> can serve people as assistants, advisers, <strong>and</strong> even lovers.Meanwhile, neural implants will remove the obstacles<strong>of</strong> h<strong>and</strong>icaps such as blindness, deafness, or lack <strong>of</strong> mobility(see neural interface). Other implants will greatlyenhance human memory, allow for the instant download<strong>of</strong> knowledge, <strong>and</strong> function as “natural” extensions to thebrain. (For critics <strong>of</strong> such “strong AI” claims see Dreyfus,Hubert <strong>and</strong> Weizenabum, Joseph.)Kurzweil continues to engage in provocative projects.Under the slogan “live long enough to live forever,” he isresearching <strong>and</strong> marketing various supplements intendedto promote longevity, <strong>and</strong> he reportedly monitors his owndiet <strong>and</strong> bodily functions carefully.Whatever the future brings, Ray Kurzweil has becomeone <strong>of</strong> America’s most honored inventors. Among otherawards, he has been elected to the <strong>Computer</strong> Industry Hall<strong>of</strong> Fame (1982) <strong>and</strong> the National Inventors Hall <strong>of</strong> Fame(2002). He has received the ACM Grace Murray HopperAward (1978), Inventor <strong>of</strong> the Year Award (1988), the LouisBraille Award (1991), the National Medal <strong>of</strong> <strong>Technology</strong>(1999), <strong>and</strong> the MIT Lemelson Prize (2001).Further ReadingHenderson, Harry. Artificial Intelligence: Mirrors for the Mind. NewYork: Chelsea House, 2007.Joy, Bill. “Why the Future Doesn’t Need Us.” Wired Magazine 8(April 2000). Available online. URL: http://www.wirednews.com/wired/archive/8.04/joy.html. Accessed May 5, 2007.Kurzweil, Raymond. The Age <strong>of</strong> Spiritual Machines: When <strong>Computer</strong>sExceed Human Intelligence. New York: Putnam, 1999.———. The Singularity Is Near. New York: Viking, 2005.KurzweilAI.net. Available online. URL: http://www.kurzweilai.net/. Accessed May 5, 2007.Kurzweil Technologies. Available online. URL: http://www.kurzweiltech.com/ktiflash.html. Accessed May 5, 2007.Richards, Jay, ed. Are We Spiritual Machines?: Ray Kurzweil vs. theCritics <strong>of</strong> Strong AI. Seattle, Wash.: Discovery Institute, 2001.


LLAN See local area network.language translation s<strong>of</strong>twareAnyone who has learned a new language has also gainedan appreciation for how difficult it is to translate from onelanguage to another while preserving the intent, meaning,<strong>and</strong> context <strong>of</strong> the original. Not surprisingly, developings<strong>of</strong>tware to perform this task, <strong>of</strong>ten called “machinetranslation” (MT), has also proven to be difficult. (For amore general discussion <strong>of</strong> how languages can be representedor studied using a computer, see linguistics <strong>and</strong>computing.)Rules-Based ApproachesThere are several approaches that can be taken to automaticlanguage translation. A rules-based system parses the originaltext to construct an intermediate representation. Theprogram then “transfers” the represented structure to anequivalent structure in the target language, drawing uponextensive lexicons (dictionaries) containing such thingsas phrase structures, word structures (morphology), <strong>and</strong>semantics (meanings). Developing this extensive knowledgebase <strong>and</strong> the rules for manipulating it is the mostchallenging part <strong>of</strong> developing rules-based language translationsystems. (For more on the general process <strong>of</strong> computer“underst<strong>and</strong>ing” <strong>of</strong> language, see natural languageprocessing.)Generally a translation produced by a rules-based systemwill be intelligible to a speaker <strong>of</strong> the target language,who will be able to underst<strong>and</strong> the broad meaning <strong>of</strong> theoriginal text. However, it is likely to sound “awkward” <strong>and</strong>miss certain nuances.A simplified approach is based on a dictionary <strong>of</strong> wordsor phrases <strong>and</strong> their meanings. Each source word or phraseis simply looked up <strong>and</strong> converted to its equivalent in thetarget language. Because it does not deal with grammaticalstructure or context, this method is not very satisfactoryexcept perhaps for translating simple lists or catalogues.Statistical ApproachesThe other main approach to automatic translation relieson statistical analysis <strong>of</strong> a large body <strong>of</strong> text (corpus) thatis already translated into two languages. For example, theBayes theorem (see Bayesian analysis) can be used to estimatethe probability that string A in French (for example,“c’est un chien”) will occur in the English version as stringA’ “it’s a dog.”). Depending on the application, the sameapproach can be applied word for word, phrase for phrase,or sentence for sentence. Statistical approaches have hadgood success (particularly if the corpus is both representative<strong>and</strong> sufficiently extensive). However, since it is basedon probability, there is always a chance that a segment <strong>of</strong>text will be given the most likely translation rather than themeaning intended by the writer.Evaluation <strong>and</strong> ApplicationsThere are a number <strong>of</strong> features in real human languages<strong>and</strong> usage that are challenging for translation s<strong>of</strong>tware todeal with. Words can be ambiguous due to multiple mean-270


Lanier, Jaron 271ings, <strong>and</strong> phrases can be syntactically ambiguous. (Afamous example is, “Time flies like an arrow; fruit flies likea banana.”) Rules-based translation s<strong>of</strong>tware can attemptto include rules for determining which word or sentencemeaning is intended, while statistically based programs cantry to determine the probability that a given word or phrasein a given context has a certain meaning. Idioms or wordsthat are not in the program’s dictionary can also cause problems.(For example, Babel Fish translates “He already hadtwo strikes against him” literally, losing the nuance basedon the baseball reference.)There are a variety <strong>of</strong> translation s<strong>of</strong>tware packages inuse today. The oldest is SYSTRAN, which was developedduring the cold war <strong>of</strong> the 1960s to translate Russian scientific<strong>and</strong> technical documents, <strong>and</strong> later has been used bythe European Union to work with documents in the union’svarious languages. Today SYSTRAN is the engine behindsuch popular Web sites from AltaVista (Babel Fish) <strong>and</strong>Google Language Tools. These services can translate text orwhole Web pages (with varying degrees <strong>of</strong> success).Simple h<strong>and</strong>held translation devices with phrases commonlyneeded by travelers are also available. More sophisticateddevices (see speech recognition <strong>and</strong> synthesis)that can facilitate two-way conversations are also beingdeveloped for applications such as military interrogation<strong>and</strong> civil affairs.Further ReadingBabel Fish (AltaVista). Available online. URL: http://babelfish.altavista.com/. Accessed September 25, 2007.Hutchins, W. John. “Compendium <strong>of</strong> Translation S<strong>of</strong>tware.” June2007. Available online. URL: http://www.hutchinsweb.me.uk/Compendium.htm. Accessed September 25, 2007.Hutchins, W. John <strong>and</strong> Harold L. Somers. Introduction to MachineTranslation. Burlington, Mass.: Academic Press, 1992.Trujillo, Arturo. Translation Engines: Techniques for Machine Translation.New York: Springer, 1999.Lanier, Jaron(1960– )American<strong>Computer</strong> Scientist, InventorJaron Lanier pioneered the technology <strong>of</strong> virtual reality thatis gradually having an impact on areas as diverse as entertainment,education, <strong>and</strong> even medicine.Lanier was born on May 3, 1960, in New York City,although the family would soon move to Las Cruces, NewMexico. Lanier’s father was a cubist painter <strong>and</strong> sciencewriter <strong>and</strong> his mother a concert pianist (she died when theboy was nine years old). Living in a remote area, the precociousLanier learned to play a large variety <strong>of</strong> exotic musicalinstruments <strong>and</strong> created his own science projects.Lanier dropped out <strong>of</strong> high school, but fortunately sympathetic<strong>of</strong>ficials at New Mexico State University let himtake classes there when he was only 14 years old. Laniereven received a grant from the National <strong>Science</strong> Foundationto let him pursue his research projects. Although fascinatedby computers (<strong>and</strong> their possibilities as an aid to music<strong>and</strong> other expressive arts), Lanier had a sporadic academiccareer, taking him to Bard College, where he dropped out <strong>of</strong>their computer music program.However, by the mid-1980s Lanier had gotten back intocomputing by creating sound effects <strong>and</strong> music for Atarivideo games <strong>and</strong> writing a commercially successful game<strong>of</strong> his own called Moondust. He developed a reputation as arising star in the new world <strong>of</strong> game design.Lanier then began to experiment with ways to immersethe player more fully in the game experience. Using moneyfrom game royalties, he joined with a number <strong>of</strong> experimenters<strong>and</strong> built a workshop in his house. One <strong>of</strong> thesecolleagues was Tom Zimmermann, who had designed a“data glove” that could send comm<strong>and</strong>s to a computer basedon h<strong>and</strong> <strong>and</strong> finger positions.As the 1980s progressed, investors became increasinglyinterested in the new technology, <strong>and</strong> Lanier was able toexp<strong>and</strong> his operation considerably, working on projects forNASA, Apple <strong>Computer</strong>s, Pacific Bell, Matsushita, <strong>and</strong> othercompanies.Lanier then coined the term “virtual reality” todescribe the experience created by this emerging technology.A user wearing a special helmet has a computergeneratedscene projected such that the user appears to be“within” the world created by the s<strong>of</strong>tware. The world isan interactive one: Using gloves <strong>and</strong> body sensors, whenthe user walks in a particular direction the world shiftsjust as it would when walking in the “real” world. Thegloves appear as the user’s “h<strong>and</strong>s” in the virtual world,<strong>and</strong> objects in that world can be grasped <strong>and</strong> manipulatedmuch like real objects. In effect, the user has been transportedto a different world created by the VR s<strong>of</strong>tware(see virtual reality).Virtual reality technology had existed in some form longbefore Lanier; it perhaps traces its roots back to the firstmechanical flight simulators built during World War II.However, existing systems such as those used by NASA <strong>and</strong>the Air Force were extremely expensive, requiring powerfulmainframe computers. They also lacked flexibility—eachsystem was built for one particular purpose, <strong>and</strong> the technologywas not readily transferable to new applications.Lanier’s essential achievement was to use the new, inexpensivecomputer technology <strong>of</strong> the 1980s to build versatiles<strong>of</strong>tware <strong>and</strong> hardware that could be used to create an infinitevariety <strong>of</strong> virtual worlds.Unfortunately the hippylike Lanier (self-described asa “Rastafarian hobbit” because <strong>of</strong> his dreadlocks) did notmesh well with the big business world into which his initialsuccess had catapulted him. Lanier had to juggle numeroussimultaneous projects as well as becoming embroiled indisputes over his patents for VR technology. In 1992 Lanierlost control <strong>of</strong> his patents to a group <strong>of</strong> French investorswhose loans to VPL Research had not been paid, <strong>and</strong> hewas forced out <strong>of</strong> the company he had founded.During the 1990s Lanier founded several new companiesto develop various types <strong>of</strong> VR applications. Theseinclude the Sausalito, California, s<strong>of</strong>tware companyDomain Simulations <strong>and</strong> the San Carlos, California, companyNew Leaf Systems, which specialized in medical


272 laptop computerapplications for VR technology. Another company, NewYork-based Original Ventures, focuses on VR-based entertainmentsystems.From 1997 to 2001, Lanier was chief scientist <strong>of</strong>Advanced Network <strong>and</strong> Services, a developer <strong>of</strong> the Internet2(advanced high-speed networking) project, as well asserving as lead scientist <strong>of</strong> the National Tele-ImmersionInitiative, a coalition <strong>of</strong> universities developing applicationsfor Internet2. From 2001 to 2004 Lanier was also a visitingscientist at Silicon Graphics, Inc., doing fundamentalresearch on tele-immersion <strong>and</strong> telepresence. Since 2004Lanier has been a fellow at the International <strong>Computer</strong> <strong>Science</strong>Institute at UC Berkeley <strong>and</strong> since 2006, an interdisciplinaryscholar-in-residence at Berkeley.Futurist <strong>and</strong> <strong>Technology</strong> PunditLanier’s humanistic <strong>and</strong> artistic background is reflectedin the stance he has taken in recent years toward the technologyhe helped create. He has a column called “Jaron’sWorld” in Discover magazine <strong>and</strong> regularly contributesto other publications such as Edge. In his writings Lanierhas criticized the tendency to see the Internet as somesort <strong>of</strong> collective intelligence, warning that the individualmight be in danger <strong>of</strong> being overwhelmed (see flashmob). Lanier has also coined the term “cybernetic totalism”to refer to the tendency to put the constructs <strong>of</strong> thecomputer world ahead <strong>of</strong> the full dimensionality <strong>of</strong> humanexperience.Besides writing <strong>and</strong> lecturing on virtual reality, Lanier isactive as both a musician <strong>and</strong> an artist. In 1994 he releasedhis CD Instruments <strong>of</strong> Change. Lanier’s paintings <strong>and</strong> drawingshave also been exhibited in a number <strong>of</strong> galleries.Further ReadingCave, Damien. “Artificial Stupidity: Virtual Reality PioneerJaron Lanier Says <strong>Computer</strong>s Are Too Dumb to Take Overthe World.” Salon.com, Oct. 4, 2000. Available online. URL:http://archive.salon.com/tech/feature/2000/10/04/lanier/index.html. Accessed February 6, 2008.“Homepage <strong>of</strong> Jaron Lanier.” Available online. URL: http://www.jaronlanier.com/. Accessed September 25, 2007.Lanier, Jaron. “The Hazards <strong>of</strong> the New Online Collectivism.”Edge. Available online. URL: http://www.edge.org/3rd_culture/lanier06/lanier06_index.html. Accessed September25, 2007.———. “One Half <strong>of</strong> a Manifesto.” Available online. URL: www.edge.org/3rd_culture/lanier/lanier_index.html. Accessed September25, 2007.Steffen, Alan. “What Keeps Jaron Lanier Awake at Night: ArtificialIntelligence, Cybernetic Totalism, <strong>and</strong> the Lack <strong>of</strong> CommonSense.” Whole Earth (Spring 2003): 24–29. Available online.URL: http://www.wholeearthmag.com/ArticleBin/111-5.pdf.Accessed September 25, 2007.laptop computerA laptop is a portable computer that contains all components(keyboard, display, motherboard, drives, etc.) in asingle (usually hinged) case. In general, a laptop can performthe same tasks as a desktop computer, though not necessarilyas quickly. (Laptops that have the full power <strong>and</strong>A traditional laptop computer with a clamshell case. Laptops arenow differentiated into lighter, more compact “notebooks” <strong>and</strong>somewhat larger <strong>and</strong> heavier “desktop replacement” units. Meanwhile,smaller h<strong>and</strong> held devices can replace laptops for somefunctions.capacity <strong>of</strong> a desktop are sometimes called “desktop replacements,”while smaller, lighter, but less powerful machinesare called “notebooks.” For even smaller or lighter computers,see pda <strong>and</strong> tablet pc.)Typical ComponentsA typical laptop computer in 2007 has the following components:• a processor such as Intel Core 2 duo or a version (suchas Pentium M) optimized for wireless <strong>and</strong> lower-powerconsumption• one or two gigabytes (GB) <strong>of</strong> system memory• hard drive (80 to 160 GB capacity)• combo CD/DVD optical drive with read-<strong>and</strong>-writecapabilities• LCD flat panel display (widescreen format) from 14inches to 17 inches• graphics card or integrated graphics• wireless networking• keyboard with touch pad <strong>and</strong>/or pointing stick (tosimulate the mouse)• six- or nine-cell lithium ion or lithium polymer batteryModern laptops are well supplied with USB <strong>and</strong> network(Ethernet) ports. Many include readers for memory cards(such as SD cards). Additional capabilities can be providedby means <strong>of</strong> PC cards or Express cards. Most laptops runthe same operating systems (such as Windows Vista or MacOS X) as their desktop counterparts.While portable <strong>and</strong> convenient, laptops do have somedisadvantages compared to desktops: They cost more for agiven level <strong>of</strong> performance; they are more difficult to repair;<strong>and</strong> they are more attractive to thieves.


legal s<strong>of</strong>tware 273Development <strong>and</strong> TrendsThe idea <strong>of</strong> small, portable personal computers goes backto the Dynabook concept developed at Xerox PARC in the1970s (see also Kay, Alan). The first “portable” computerswere <strong>of</strong>ten more aptly described as “luggable,” having morethe form factor <strong>of</strong> a suitcase than that <strong>of</strong> today’s laptops.Nevertheless, the first commercially successful portablecomputers, the Osborne 1 (1981) <strong>and</strong> the Compaq Portable(1983), began to show the feasibility <strong>of</strong> portable computing.(At the other end <strong>of</strong> the size spectrum, the successfulRadio Shack TRS-80 Model 100 established the utility <strong>of</strong>the notebook-sized computer.) In the 1980s true laptopsfrom companies such as Zenith <strong>and</strong> Toshiba with the familiarclamshell design emerged, running PC-compatible MS-DOS <strong>and</strong>, later, Windows applications. (Apple entered themarket with the Macintosh Portable in 1989, followed bythe PowerBook series, introduced in 1991.)Most improvements in laptops in the 1990s <strong>and</strong> beyondhave been incremental (more storage, sharper displays,more efficient batteries, <strong>and</strong> so on). Wireless (see Bluetooth<strong>and</strong> wireless <strong>and</strong> mobile computing) connectivityis now st<strong>and</strong>ard. Laptop development has bifurcatedsomewhat, with higher-end machines rivaling desktops formedia, gaming, <strong>and</strong> other applications, while notebooks<strong>of</strong>ten become lighter, sometimes forgoing optical <strong>and</strong> evenhard drives in favor <strong>of</strong> network connectivity <strong>and</strong> flash memorystorage. Specially “ruggedized” laptops are used by themilitary on battlefields <strong>and</strong> in other harsh environments.Meanwhile, PDAs <strong>and</strong> smart phones capable <strong>of</strong> e-mail, Webbrowsing, <strong>and</strong> light data entry <strong>of</strong>fer an alternative to laptopsfor people who are on the road frequently.Further ReadingGookin, Dan. Laptops for Dummies. 2nd ed. Hoboken, N.J.: Wiley,2006.Laptop Magazine. Available online. URL: http://www.laptopmag.com/index.htm. Accessed September 26, 2007.Laptops [resources <strong>and</strong> reviews]. Available online. URL: http://reviews.cnet.com/laptops.html. Accessed September 26, 2007.Miller, Michael. Your First Notebook PC. Indianapolis: Que, 2008.S<strong>and</strong>ler, Corey. Upgrading & Fixing Laptops for Dummies. Indianapolis:Wiley, 2006.Wilson, James E. Vintage Laptop <strong>Computer</strong>s: First Decade, 1980–89.Denver, Colo.: Outskirts Press, 2006.law enforcement <strong>and</strong> computersBesides his superb reasoning skills, perhaps Sherlock Holmes’smost important asset was his extensive collection <strong>of</strong>notes that provided a cross-referenced index to London’scriminal underworld. Today computer applications havegiven law enforcers investigative, forensic, communication,tactical, <strong>and</strong> management tools that Holmes <strong>and</strong> his rivalsin the old Scotl<strong>and</strong> Yard could not have imagined.For the <strong>of</strong>ficer on the street, the ability to obtain autolicense, stolen vehicle, or outst<strong>and</strong>ing warrant information innear real-time provides a much better picture <strong>of</strong> the potentialrisk in making stops or arrests. Other “tactical” technologyincludes new devices for homing in on gunshots <strong>and</strong> thegrowing use <strong>of</strong> remote-controlled robots for bomb disposal<strong>and</strong> hostage negotiations (see robotics). A more controversialarea is the use <strong>of</strong> CCTV (closed-circuit TV) surveillancecameras in public places, advocated as a crime deterrent butraising concerns about privacy <strong>and</strong> intrusive social control.If a criminal case is opened, a variety <strong>of</strong> s<strong>of</strong>tware applicationscome into play. These include case managementprograms for keeping track <strong>of</strong> evidence <strong>and</strong> witness interviews.Evidence must be properly logged at all times tomaintain a legally defensible chain <strong>of</strong> custody against accusations<strong>of</strong> tampering.The investigation <strong>of</strong> a crime involves many computerizedforensic aids. Besides automated matching <strong>of</strong>fingerprints <strong>and</strong>, increasingly other physical data (see biometrics),records can also be searched to detect patternssuch as crimes with related modus oper<strong>and</strong>i (MOs). Theability to access information from other jurisdictions <strong>and</strong>to interface federal, state, <strong>and</strong> local agencies is also veryimportant, particularly for cases involving organized crime,interstate fugitives, <strong>and</strong> terrorism.Since data stored on computers is an increasingly prevalentform <strong>of</strong> evidence, law enforcement specialists must alsoemploy tools to recover data that may have been partiallyerased or encrypted by suspects (see computer forensics).<strong>Computer</strong>s can be more active instruments <strong>of</strong> crime (seecomputer crime <strong>and</strong> security). Such traditional tools aswiretapping must be adapted to new forms <strong>of</strong> communicationsuch as e-mail while addressing concerns about civilliberties <strong>and</strong> privacy (see privacy in the digital age).High-level planning for law enforcement budgets <strong>and</strong>priorities requires access to detailed crime statistics. At thenational level, the Justice Department’s Bureau <strong>of</strong> JusticeStatistics is a definitive information source. Law enforcers,like other pr<strong>of</strong>essionals, increasingly use Web sites,chat areas, <strong>and</strong> e-mail lists to discuss computer-related lawenforcement issues with colleagues.Law enforcement agencies also use the same “bread <strong>and</strong>butter” s<strong>of</strong>tware needed by any substantial organization,including word processing, spreadsheet, payroll, <strong>and</strong> otheraccounting programs.Further ReadingBoba, Rachel. Crime Analysis <strong>and</strong> Crime Mapping. Thous<strong>and</strong> Oaks,Calif.: Sage Publications, 2005.Chu, James. Law Enforcement Information <strong>Technology</strong>: A Managerial,Operational, <strong>and</strong> Practitioner Guide. Gr<strong>and</strong> Rapids, Mich.:CRC Press, 2001.Foster, Raymond E. Police <strong>Technology</strong>. Upper Saddle River, N.J.:Prentice Hall, 2004.Goold, Benjamin J. CCTV <strong>and</strong> Policing: Public Area Surveillance <strong>and</strong>Police Practices in Britain. New York: Oxford University Press,2004.Gottschalk, Petter. Knowledge Management Systems in Law Enforcement:Technologies <strong>and</strong> Techniques. Hershey, Pa.: Idea GroupPublishing, 2006.Pattvina, April, ed. Information <strong>Technology</strong> <strong>and</strong> the Criminal JusticeSystem. Thous<strong>and</strong> Oaks, Calif.: Sage Publications, 2004.legal s<strong>of</strong>twareModern law <strong>of</strong>fices rely heavily on s<strong>of</strong>tware to managecases <strong>and</strong> records, to perform legal research, <strong>and</strong> to prepare


274 Lessig, Lawrencepleadings <strong>and</strong> other documents. Many <strong>of</strong> these functionscan be included in a legal s<strong>of</strong>tware suite such as AmicusAttorney. Some typical law <strong>of</strong>fice management modulesinclude the following:• client file, which provides links to all events, tasks,time <strong>and</strong> billing, <strong>and</strong> so on involving each client• general contact file with contact information for otherpeople the <strong>of</strong>fice deals with regularly (such as courtclerks)• calendar for managing appointments, meetings, <strong>and</strong>deadlines• time tracking <strong>and</strong> billing• document management (<strong>of</strong>ten interfaces with suitessuch as Micros<strong>of</strong>t Office)Research ToolsLegal research is easier (but in some ways more complex)than in the days <strong>of</strong> going through dusty files in the localcourthouse or poring through a law library. The most usedonline database for legal research is LexisNexis, which containstwo parts: Lexis (focusing on legal documents) <strong>and</strong>Nexis (for business research). Some <strong>of</strong> the most importantLexis content is:• text <strong>of</strong> all U.S. statutes <strong>and</strong> laws• U.S. published case opinions• public records including property records, liens, <strong>and</strong>licenses• laws <strong>and</strong> opinions for many non-U.S. jurisdictions• articles from law journalsA free service called LexisOne provides a subset <strong>of</strong>U.S. legal decisions. Lexis also has a File & Serve servicethat allows for documents to be filed with courts or servedupon participating firms. Nexis complements Lexis formany investigations because it <strong>of</strong>fers news articles, particularlythose relating to business activities. Other commerciallegal information services include Westlaw <strong>and</strong>Loislaw. A free compilation <strong>of</strong> legal information that canprovide an alternative for researching laws <strong>and</strong> cases isprovided by the Legal Information Institute at CornellUniversity.Finding citations or news is only part <strong>of</strong> the task <strong>of</strong>the legal researcher. The organization <strong>and</strong> management<strong>of</strong> all the data needed for any legal specialty is challenging.Printed reference books are cumbersome <strong>and</strong> canbe quickly outdated. Recently a number <strong>of</strong> legal writershave been using wikis (see wikis <strong>and</strong> Wikipedia) as atool for collaboration in creating online legal references.For example, the Internet Law Treatise sponsored by theElectronic Frontier Foundation covers a variety <strong>of</strong> legalissues relating to the use <strong>of</strong> the Internet. The Legal InformationInstitute at Cornell Law School is collaboratingwith experts to create a complete legal dictionary <strong>and</strong>encyclopedia in wiki form.Further ReadingBernstein, Paul. “Winning S<strong>of</strong>tware for Winning Cases.” Trial, 37(November 1, 2001): 82 ff.Delaney, Stephanie. Electronic Legal Research: An IntegratedApproach. Albany, N.Y.: Delmar (Thomson), 2002.Internet Law Treatise (Electronic Frontier Foundation.) Availableonline. URL: http://ilt.eff.org/index.php/Table_<strong>of</strong>_Contents.Accessed September 26, 2007.Law Office Computing Magazine. Available online. URL: http://www.law<strong>of</strong>ficecomputing.com. Accessed September 26, 2007.LexisNexis. Available online. URL: http://www.lexisnexis.com.Accessed September 26, 2007.Payne Consulting. Micros<strong>of</strong>t Word 2002 for Law Firms. Roseville,Calif.: Prima Publishing, 2001.Wex (Legal Information Institute at Cornell Law School). Availableonline. URL: http://www.law.cornell.edu/wex/index.php/Main_Page. Accessed September 26, 2007.Lessig, Lawrence(1961– )AmericanLaw Pr<strong>of</strong>essor <strong>and</strong> WriterLaw pr<strong>of</strong>essor Lawrence Lessig is a pioneer in developinglegal theories that deal with some <strong>of</strong> the most difficultissues emerging in the online world (see, for example,intellectual property <strong>and</strong> computing).Lessig was born on June 3, 1961, in Rapid City, SouthDakota, but grew up in Williamsport, Pennsylvania. As astudent at Yale Law School in the 1970s, Lessig, though previouslypresident <strong>of</strong> Pennsylvania’s Teenage Republicans,became interested in liberal values following the Watergatesc<strong>and</strong>al <strong>and</strong> his exposure to authoritarian communistregimes during a summer trip to Eastern Europe.After graduating from Yale, Lessig clerked for U.S.Supreme Court Justice Antonin Scalia, an articulate conservativewith whom he could debate a variety <strong>of</strong> issues.When he began to teach law himself at the University <strong>of</strong>Chicago in 1991, he also began to incorporate issues arisingin cyberspace in his lectures. In one article Lessig criticizedthe Communications Decency Act for forcing sitesto block access to adult pornography in order to protectchildren. Eventually the Supreme Court agreed <strong>and</strong> overturnedthe law.In the late 1990s Lessig served as a special master to theSupreme Court in the Micros<strong>of</strong>t antitrust case. This timeLessig sided with the government, agreeing that Micros<strong>of</strong>thad used its near monopoly in operating systems to bundleits own Web browser to the detriment <strong>of</strong> rival Netscape.The Creative CommonsIn recent years Lessig has undertaken to promote a morecomprehensive set <strong>of</strong> legal principles aimed at protectingprivacy, expression, <strong>and</strong> other fundamental rights in cyberspace.Many <strong>of</strong> the early <strong>and</strong> more radical Internet advocatessaw the new medium as a libertarian or anarchist“free zone” that needed to be protected from any governmentinterference. Lessig, however, has argued in his booksCode <strong>and</strong> Other Laws <strong>of</strong> Cyberspace (2000) <strong>and</strong> Code Version2.0 (2006) that the online world needs a combination


libraries <strong>and</strong> computing 275<strong>of</strong> technical architecture, private initiative, <strong>and</strong> reasonableregulation.In his book Free Culture (2004) Lessig celebrates the creativity<strong>and</strong> freedom <strong>of</strong> expression <strong>of</strong> the Internet but warnsthat the Net may soon be “locked down” by the power <strong>of</strong>the corporate media. Lessig is therefore a strong supporter<strong>of</strong> “net neutrality,” the proposed policy that would prohibitInternet service providers from charging different rates fordifferent content providers or types <strong>of</strong> content (see netneutrality). Without this policy, advocates believe thatlarge corporations will gradually squeeze smaller, independentvoices <strong>of</strong>f the Web by making it harder for them toaccess users. In effect, what had been a shared “commons”would become property bounded by fences, much as commonpastures were once turned into private farms.According to Lessig, another obstacle to a vigorousonline creative culture is the present copyright system.Under this system there is a presumption that permissionis required for most usage <strong>of</strong> a work. This makes it difficultfor creators to confidently use all the tools for working withexisting content to create new expressions (see mashups).To protect free expression, Lessig founded an organizationcalled Creative Commons in 2001, which has developeda new kind <strong>of</strong> license. Under this license the creatorcan specify what users can do with the work—copy it, createderivative works, <strong>and</strong> so on. Thus far Creative Commonslicenses have mainly been applied to online works such asimages shared on photo-sharing sites. Because applying fora Creative Commons license includes providing descriptors(metadata) about the work, people looking for material tobe used in their own work can easily determine what theyare allowed to do with a given work.In 1997 Lessig left his pr<strong>of</strong>essorship at the University<strong>of</strong> Chicago Law School to become a pr<strong>of</strong>essor at HarvardLaw School (1997–2000), <strong>and</strong> then Stanford (2000– ).Lessig has been a guest lecturer at many universities <strong>and</strong>other institutions around the world. He also serves as aboard member for many important cyberspace institutions,including the Electronic Frontier Foundation <strong>and</strong> CreativeCommons.In early 2008 Lessig announced that he would take ona challenge perhaps even more daunting than preservingInternet freedom—the battle against what he sees as pervasivecorruption in the political system. He has proposed thecreation <strong>of</strong> a grassroots movement that would encourageall incumbents <strong>and</strong> c<strong>and</strong>idates to pledge to stop acceptingcontributions from lobbyists, to stop putting special interest“pork” in legislation, <strong>and</strong> to conduct publicly financedcampaigns.Lessig has received a number <strong>of</strong> academic awards as wellat the Editor’s Choice award from Linux Journal (2002), wasnamed one <strong>of</strong> Fifty Top Innovators by Scientific American(2002), <strong>and</strong> received the Free S<strong>of</strong>tware Foundation Award(2003).Further ReadingCreative Commons. Available online. URL: http://creativecommons.org/. Accessed September 26, 2007.Lessig, Lawrence. Code: Version 2.0 New York: Basic Books, 2006.———. Free Culture: The Nature <strong>and</strong> Future <strong>of</strong> Creativity. New York:Penguin Books, 2004.Lessig blog. Available online. URL: http://www.lessig.org/.Accessed September 26, 2007.O’Brien, Chris. “Stanford Law Pr<strong>of</strong> Wants Society to Clean UpIts Act.” San Jose Mercury News, September 9, 2007. Availableonline. URL: http://www.mercurynews.com/business/ci_6843973. Accessed September 26, 2007.libraries <strong>and</strong> computingThe library is the institution traditionally charged with thecollection <strong>and</strong> distribution <strong>of</strong> humanity’s collective heritage<strong>of</strong> written information. It is thus not surprising that thedevelopment <strong>of</strong> modern information technology has meantthat libraries have had to undergo pervasive changes intheir practices <strong>and</strong> responsibilities.One <strong>of</strong> the earliest applications for automation in librarieswas cataloging. By the 1960s, the ever-increasing volume<strong>of</strong> books <strong>and</strong> serials (periodicals) published each year wasplacing a growing burden on the manual cataloging system.Under this system, catalogers at large libraries (<strong>and</strong> particularlythe Library <strong>of</strong> Congress) prepared a catalog record foreach new publication. These records were distributed by theLibrary <strong>of</strong> Congress in the form <strong>of</strong> catalog card pro<strong>of</strong> slips.These, as well as compiled card images from other libraries,could be used by each library to prepare catalog records forits own holdings.As mid-size computers became more affordable, it becamepracticable for at least large library systems to put their catalogrecords on-line. In 1968, the MARC (Machine ReadableCataloging) st<strong>and</strong>ard was first promulgated. A MARC recorduses specific, numbered fields to describe the elements <strong>of</strong>a book, such as its catalog card number, main entry, title,imprint, collation (pagination), <strong>and</strong> subject headings.At first, MARC records were distributed mainly on magnetictape in place <strong>of</strong> card slips. However, by the late 1970slarge on-line cataloging systems such as OCLC (On-lineCollege Library Center) <strong>and</strong> RLIN (Research Library InformationNetwork) were enabling libraries to search for <strong>and</strong>download cataloging information in real time, <strong>and</strong> in turnupload their own original catalog records to the shareddatabase. This greatly reduced redundant cataloging effort.If a library receives a new book, a library assistant cansearch for a preexisting catalog record. The record can thenbe easily modified for local use, such as by adding a callnumber <strong>and</strong> holdings information. The problem <strong>of</strong> authorities(st<strong>and</strong>ardized entries for names) is also made moremanageable by being able to check entries on-line.By the 1980s, the next logical step was under way: Thecard catalog began to be replaced by a wholly electroniccatalog, enabling library patrons to search the catalog ata terminal. Besides saving money, the on-line catalog also<strong>of</strong>fers researchers many more ways to search for materials:for example, they can use keywords <strong>and</strong> not rely only ontitles <strong>and</strong> subject headings.Along with cataloging, libraries began to automate theircirculation <strong>and</strong> acquisitions systems as well. As these systemsbecome integrated, libraries can both monitor thedem<strong>and</strong> (finding materials that are in heavy use <strong>and</strong> need


276 library, programadditional copies) <strong>and</strong> speed up the supply, by integratingthe acquisitions system with ordering systems maintainedby book distributors.However, while most librarians consider the computer tobe a boon to their pr<strong>of</strong>ession, there are criticisms <strong>and</strong> furtherchallenges. Nicholson Baker, for example, has decriedthe ab<strong>and</strong>onment <strong>of</strong> information in card catalogs that wasnot carried over into electronic form. Baker has also criticizedthe replacement <strong>of</strong> bound archives <strong>of</strong> periodicals withmicr<strong>of</strong>ilm, which is <strong>of</strong>ten <strong>of</strong> poor quality <strong>and</strong> prone to deterioration.The storage <strong>of</strong> publications on computer mediahas also met with concerns that the physical durability<strong>of</strong> the media has not been sufficiently investigated, <strong>and</strong>that in a rapidly changing technological world data formatscan become obsolete, no longer supported, <strong>and</strong> potentiallyunreadable (see also backup <strong>and</strong> archive systems).The growth <strong>of</strong> the World Wide Web has also presentedlibraries with both opportunities <strong>and</strong> challenges. Catalogers<strong>and</strong> reference librarians are struggling to find new waysto categorize <strong>and</strong> retrieve the always-changing <strong>and</strong> ephemeralcontent <strong>of</strong> Web pages. Meanwhile, librarians have facednot only funding <strong>and</strong> training issues in providing exp<strong>and</strong>edpublic Web access in libraries, but have also had to dealwith dem<strong>and</strong>s that Web content be filtered to protect childrenfrom objectionable content. (The American LibraryAssociation opposes such filtering as a form <strong>of</strong> censorship.)Besides being a source <strong>of</strong> Internet connectivity for students<strong>and</strong> people who cannot afford their own computer,today’s libraries provide a wide variety <strong>of</strong> media products,including audio CDs, audio <strong>and</strong> video tapes, <strong>and</strong> DVDs.Increasingly, though, modern librarians are moving awayfrom the idea <strong>of</strong> a library as a repository <strong>of</strong> resources <strong>and</strong>are placing greater emphasis on providing guidance <strong>and</strong>starting points for users who are seeking to navigate the<strong>of</strong>ten-overwhelming Web. Although they face many challenges,libraries seem to be succeeding in the task <strong>of</strong> reinventingthemselves.Further ReadingAmerican Library Association. Office for Information <strong>Technology</strong>Policy. Available online. URL: http://www.ala.org/oitp.Accessed August 13, 2007.Baker, Nicholson. Double Fold: Libraries <strong>and</strong> the Assault on Paper.New York: Vintage Books, 2002.Burke, John J. Neal-Schuman Library <strong>Technology</strong> Companion: ABasic Guide for Library Staff. 2nd ed. New York: Neal SchumanPublications, 2006.Hanson, Kathlene, <strong>and</strong> H. Frank Cervone. Using Interactive Technologiesin Libraries (LITA Guide). New York: Neal SchumanPublishers, 2007.Library <strong>and</strong> Information <strong>Technology</strong> Association. Available online.URL: http://www.lita.org/ala/lita/litahome.cfm. AccessedAugust 13, 2007.library, programProgramming is a labor-intensive activity, especially whenthe time required to test, debug, <strong>and</strong> verify the operation<strong>of</strong> the program code is included. It is not surprising, then,that even the earliest programmers sought ways to reusethe code for commonly needed operations such as dataTo use a program library, the programmer includes the appropriateheader file in the source code. After the source code is compiled, thelinker links it to the compiled object code file corresponding to theheader file, creating a single executable file.input, sorting, calculation, <strong>and</strong> formatting rather thanwriting it from scratch. If a well-organized collection orlibrary <strong>of</strong> program routines is available, developers <strong>of</strong>new applications can concentrate on the aspects particularto the current problem <strong>and</strong> use the library code forroutine operations.In the mainframe world, the use <strong>of</strong> program librarieswas also m<strong>and</strong>ated by the limited amount <strong>of</strong> main memoryavailable. A data processing task was <strong>of</strong>ten accomplished byretrieving a series <strong>of</strong> card decks or tapes from the library<strong>and</strong> mounting them in turn. Intermediate results could bepassed between programs under the control <strong>of</strong> a specialscript (see job control language).Some programming languages, notably C <strong>and</strong> its descendantsC++ <strong>and</strong> Java, are designed to provide a small core <strong>of</strong>essential features (such as control structures, data types,<strong>and</strong> operators). Other functions, such as math routines, dataI/O (input/output), <strong>and</strong> formatting are provided in libraryfiles that are invoked by programs that need particular features.There are several advantages to this approach. The


Licklider, Joseph Carl Robnett 277Licklider, Joseph Carl Robnett(1915–1990)American<strong>Computer</strong> Scientist, PsychologistDynamic linking is an alternative approach to library use. The programis compiled with a reference to the library, but it is not linkedto the library code until the program is actually running. Since severaldifferent running programs can link to the same dynamic linklibrary (DLL), memory is saved.core language is kept simple because it doesn’t have to dealwith issues such as the actual storage <strong>of</strong> data in memorythat are dependent on the particular architecture <strong>of</strong> eachtype <strong>of</strong> machine. To “port” the language to a new machine,specialists in its architecture can implement the st<strong>and</strong>ardlibrary functions. In addition to the st<strong>and</strong>ard librariesincluded with the compiler, programmers are also free tocreate additional libraries to support particular applicationssuch as graphics.With a traditional library the library routines invokedin the source code are included in the final executable file.With most modern operating systems, however, many programsare active in memory at the same time (see multitasking).Storing the same commonly used routines(such as st<strong>and</strong>ard I/O) with each program wastes memory.Therefore, operating systems such as Micros<strong>of</strong>t Windowsuse dynamic linking. This means that instead <strong>of</strong> compilingthe library code into the program to create the executablefile, the program links to the library at execution time.If another program is using the library, the new programlinks to the same copy in memory rather than having tostore another copy. (Dynamically linked libraries [DLLs]include special code to keep track <strong>of</strong> the invocation <strong>of</strong> thelibrary functions by each separate program.)Further ReadingJosuttis, Nicolai M. The C++ St<strong>and</strong>ard Library: A Tutorial <strong>and</strong> Reference.Upper Saddle River, N.J.: Addison-Wesley, 1999.Loosemore, S<strong>and</strong>ra, et al. GNU C Library Application Fundamentals.Boston: GNU Press, 2004.———. et al. GNU C Library System & Network Applications. Boston:GNU Press, 2004.Lundh, Fredrik. Python St<strong>and</strong>ard Library. Sebastapol, Calif.:O’Reilly, 2001.Most <strong>of</strong> the early computer pioneers came from backgroundsin mathematics or engineering. This naturally ledthem to focus on the computer as a tool for computation <strong>and</strong>information processing. Joseph Licklider, however, broughtan extensive background in psychology to the problem <strong>of</strong>designing interactive computer systems that could providebetter communication <strong>and</strong> access to information for users.Licklider was born on March 11, 1915, in St. Louis, Missouri.During the 1930s, he attended Washington Universityin St. Louis, earning B.A. degrees in psychology, mathematics,<strong>and</strong> physics. He then concentrated on psychology forhis graduate studies, earning an M.A. at Washington University<strong>and</strong> then receiving his Ph.D. from the University <strong>of</strong>Rochester in 1942.While at Rochester, Licklider participated in a studygroup led by Norbert Wiener, pioneer in the new field <strong>of</strong>cybernetics, in the late 1940s. This brought him into contactwith emerging computer technology <strong>and</strong> its excitingprospects for the future. In turn, Licklider’s psychologybackground allowed him a perspective quite different fromthe mathematical <strong>and</strong> engineering background shared bymost early computer pioneers.Cybernetics emphasized the computer as a system thatcould interact in complex ways with the environment. Licklideradded an interest in human-computer interaction <strong>and</strong>communication. He began to see the computer as a sort <strong>of</strong>“amplifier” for the human mind. He believed that humans<strong>and</strong> computers could work together to solve problems thatneither could successfully tackle alone. The human couldsupply imagination <strong>and</strong> intuition, while the computer providedcomputational “muscle.” Ultimately, according to thetitle <strong>of</strong> his influential paper, it might be possible to achievea true “Man-<strong>Computer</strong> Symbiosis.”During the 1950s, Licklider taught psychology at theMassachusetts Institute <strong>of</strong> <strong>Technology</strong>, hoping eventually toestablish a full-fledged psychology department that wouldelevate the concern for what engineers call “human factors.”From 1957 to 1962 he also served in the private sector as avice president for engineering psychology at Bolt Beranek<strong>and</strong> Newman, the company that would become famous forpioneering networking technology.In 1962, the federal Advanced Research Projects Agency(ARPA) appointed Licklider to head a new <strong>of</strong>fice focusingon leading-edge development in computer science. Licklidersoon brought together research groups that includedin their leadership three <strong>of</strong> the leading pioneers in artificialintelligence: John McCarthy, Marvin Minsky, <strong>and</strong> AllenNewell (see artificial intelligence; McCarthy, John;<strong>and</strong> Minsky, Marvin). By promoting university access togovernment funding, Licklider also fueled the growth <strong>of</strong>computer science graduate programs at major universitiessuch as Carnegie Mellon University, University <strong>of</strong> Californiaat Berkeley, Stanford University, <strong>and</strong> the MassachusettsInstitute <strong>of</strong> <strong>Technology</strong>.


278 linguistics <strong>and</strong> computingIn his research activities, Licklider focused his effortsnot so much on AI as on the development <strong>of</strong> interactivecomputer systems that could promote his vision <strong>of</strong> humancomputersymbiosis. This included time-sharing systems,where many users could share a large computer system,<strong>and</strong> networks that would allow users on different computersto communicate with one another. He believed that thecooperative efforts <strong>of</strong> researchers <strong>and</strong> programmers coulddevelop complex programs more quickly than teams limitedto a single agency or corporation (see also open-sourcemovement).Licklider’s efforts to focus ARPA’s resources on networking<strong>and</strong> human-computer interaction would providethe resources <strong>and</strong> training that would, in the late 1960s,begin the development <strong>of</strong> what would become the Internet.Licklider spent the last two decades <strong>of</strong> his career teachingat MIT. Before his death in 1990, he presciently predictedthat by 2000 people around the world would be linked in aglobal computer network.Further Reading“Internet Pioneers: J. C. R. Licklider.” Available online. URL: http://www.ibiblio.org/pioneers/licklider.html. Accessed August 13,2007.Licklider, J. C. R. “Man-<strong>Computer</strong> Symbiosis.” IRE Transactions onHuman Factors in Electronics, vol. HFE-1, March 4–11, 1960.Available online. URL: http://www.memex.org/licklider.pdf.Accessed August 13, 2007.Licklider, J. C. R., <strong>and</strong> Robert W. Taylor. “The <strong>Computer</strong> as aCommunication Device.” <strong>Science</strong> <strong>and</strong> <strong>Technology</strong>, April, 1968.Available online. URL: http://gatekeeper.dec.com/pub/DEC/SRC/publications/taylor/licklider-taylor.pdf. Accessed August13, 2007.Waldrop, M. Mitchell. The Dream Machine: J. C. Licklider <strong>and</strong> theRevolution That Made Computing Personal. New York: Viking,2001.linguistics <strong>and</strong> computingThe study <strong>of</strong> human language <strong>and</strong> advances in computerscience have been closely intertwined. The field <strong>of</strong> computationallinguistics uses computer systems to investigate thestructure <strong>of</strong> natural language. In turn, the area <strong>of</strong> naturallanguage processing involves the creation <strong>of</strong> s<strong>of</strong>tware thatcan apply linguistic principles to process written or spokenhuman language (see natural language processing,language translation s<strong>of</strong>tware, <strong>and</strong> speech recognition<strong>and</strong> synthesis).As simple low-level instruction codes began to evolveinto complex high-level programming language, languagedesigners had to struggle to give precise, complete, <strong>and</strong>unambiguous definitions for the language’s structure. Thisis essential for language users to be confident that theirprograms will yield the desired results. It is also importantthat developers trying to implement a language on differenthardware platforms <strong>and</strong> operating systems have rigorouslanguage specifications so the compiler on the new systemwill produce programs equivalent to those on the systemwhere the language was first developed.When computer scientists turned to linguistics for helpin defining programming languages, they found the work<strong>of</strong> Noam Chomsky, perhaps the 20th century’s preeminentlinguist, to be particularly helpful. Chomsky developed aconcept <strong>of</strong> formal language in which grammar could bespecified as a series <strong>of</strong> rules built up a level at a time.For example, at the lowest level, there is an alphabet fromwhich recognized words are generated. Next there are rulesfor generating phrases (such as a noun phrase consisting <strong>of</strong>a noun with optional adjectives <strong>and</strong> a verb phrase consisting<strong>of</strong> a verb with optional adverbs). In turn, phrases can becombined to form sentences.Because grammatical structures are created by applyingrules to strings <strong>of</strong> symbols (words), the result is called agenerative grammar. Chomsky sought to apply this concept<strong>of</strong> a “transformational generative grammar” as a universalstructure applicable to all human languages. Meanwhile,computer scientists could use formal grammar rules todefine the valid statements in programming languages (seealso Backus-Naur form). This in turn allows a compilerparser to break down high-level language statements <strong>and</strong>convert them into low-level instruction codes that can actuallybe executed by the CPU (see assembler <strong>and</strong> parsing).As new languages <strong>and</strong> more powerful hardware gavecomputers increased power to deal with complex systems,computer scientists (<strong>and</strong> artificial intelligence researchers inparticular) applied themselves to the problem <strong>of</strong> computerprocessing <strong>of</strong> human languages. Success in this field mightlead not only to computer systems that humans could communicatewith far more naturally, but also to automatic machinetranslation that could, for example, allow an English speaker<strong>and</strong> a Chinese speaker to communicate via e-mail.However, developers <strong>of</strong> natural language systems faceformidable challenges. Most fundamentally, while computersprocess symbols using a restrictive, deterministic procedurethat Chomsky classifies as finite state (see finite statemachine), human languages must be understood usingthe more complex transformational grammar. The languageprocessing system must therefore have rules that cancope with the <strong>of</strong>ten ambiguous structure <strong>of</strong> actual humanspeech. (For example, does the word fly in a given sentencemean an insect, a baseball batted high in the air, or perhapsa zippered opening in one’s trousers?)One way to limit the problem is to deal with a restrictedrealm <strong>of</strong> discourse. For example, a natural language “frontend” to a database might assume that all input nouns referto entities that exist in the database, such as employees,positions, salaries, <strong>and</strong> so on. It then becomes a matter <strong>of</strong>translating a query such as “How many employees in thehuman resources department make more than $50,000 ayear” into something like:find quantity (employee.department = “humanresources”) <strong>and</strong> (employee.salary > 50,000)Underst<strong>and</strong>ing unrestricted text such as that foundin newspaper stories is much more complex, since fewerassumptions can be made about the subject <strong>of</strong> the discourse.Here the AI concept <strong>of</strong> frames can prove useful. A frame isa sort <strong>of</strong> script that describes the elements <strong>of</strong> life’s commonevents or transactions. For example, suppose a newsstory begins “Joe X was arrested yesterday for the murder


Linux 279<strong>of</strong> Sarah Y. He was arraigned today <strong>and</strong> bail was denied.” Asystem reading the story might see “arrested” <strong>and</strong> see that itlinks to an internal frame called “crime.” The crime framemight have slots for “accused person,” “charge,” “victim,”<strong>and</strong> “custodial status.” The system could then interpret thestory as indicating that Joe is the accused person, murder isthe charge, Sarah is the victim. For the custodial status thesystem might look to another frame called “arraignment”that includes the rule that if bail is allowed <strong>and</strong> paid, theperson’s status is “released until trial” while if the bail iseither not allowed or not paid, the status is “in custody.”Computational linguistics <strong>and</strong> natural language processingare likely to be <strong>of</strong> increasing interest in years tocome. With the World Wide Web bringing the world’s languagesinto more pervasive contact, the ability to translateor automatically summarize Web pages <strong>and</strong> e-mail willbe very marketable. It is also likely that advanced, secretresearch in the field is also being carried out by organizationssuch as the National Security Agency (NSA), whichmonitor worldwide communications.Further ReadingHausser, Rol<strong>and</strong>. Foundations <strong>of</strong> Computational Linguistics: Human-<strong>Computer</strong> Communication in Natural Language. 2nd ed. NewYork: Springer, 2001.Lawler, John. Using <strong>Computer</strong>s in Linguistics: A Practical Guide.New York: Routledge, 1998.“Linguistics, Natural Language, <strong>and</strong> Computational LinguisticsMeta-Index.” Stanford University Natural Language Processing.Available online. URL: http://www-nlp.stanford.edu/links/linguistics.html. Accessed August 13, 2007.Mitkov, Ruslan. The Oxford H<strong>and</strong>book <strong>of</strong> Computational Linguistics.New York: Oxford University Press, 2005.LinuxLinux is an increasingly popular alternative to proprietaryoperating systems. Its development sprang from two sources.First was the creation <strong>of</strong> open-source versions <strong>of</strong> UNIX utilities(see unix) by maverick programmer Richard Stallmanas part <strong>of</strong> the GNU (“Gnu’s not UNIX”) project during the1980s. Although these tools were useful, the kernel, or basicset <strong>of</strong> operating system functions, was still missing (see kernel).Starting in 1991, another creative programmer, LinusTorvalds, began to release open-source versions <strong>of</strong> the UNIXkernel (see Torvalds, Linus). The combination <strong>of</strong> the kernel<strong>and</strong> utilities became known as Linux (a combination<strong>of</strong> Linus <strong>and</strong> UNIX), though Stallman <strong>and</strong> his supportersbelieve that GNU/Linux is a more accurate name.Development <strong>and</strong> DistributionsAs an open-source product, Linux is continually beingdeveloped by a community <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> loosely organizedprogrammers. (The further development <strong>of</strong> the kernelitself is more closely supervised by Torvalds <strong>and</strong> a system<strong>of</strong> review that he set up.) New versions <strong>of</strong> the Linux kernelare released frequently, including support (drivers) for newdevices <strong>and</strong> refinements in other features.A distribution or “distro” is a package consisting <strong>of</strong> aLinux kernel, st<strong>and</strong>ard utilities, <strong>and</strong> a variety <strong>of</strong> other s<strong>of</strong>twaresuch as <strong>of</strong>fice <strong>and</strong> graphics programs, Web-relatedThe basic components <strong>of</strong> a Linux system. A distribution, or “distro,”combines the latest version <strong>of</strong> the common kernel with a windowmanager, selected s<strong>of</strong>tware, <strong>and</strong>, perhaps, custom features.programs, <strong>and</strong> so on. Some distributions such as Novell <strong>and</strong>Red Hat are geared toward business use <strong>and</strong> provide feebasedsupport <strong>and</strong> consulting (Red Hat spun <strong>of</strong>f Fedora as afree user-supported distribution). One <strong>of</strong> the most populardistributions as <strong>of</strong> the mid-2000s is Ubuntu. Named foran African word meaning “humanity toward others” <strong>and</strong>funded by millionaire Mark Shuttleworth, Ubuntu combinesa business-oriented component (through CanonicalLtd.) <strong>and</strong> a large <strong>and</strong> enthusiastic community <strong>of</strong> desktopusers from all walks <strong>of</strong> life.Using LinuxLinux is very versatile <strong>and</strong> probably runs on more kinds<strong>of</strong> devices than any other operating system. These includesupercomputer clusters, Web <strong>and</strong> file servers, desktops(including PCs designed for Windows <strong>and</strong> Macs), laptops,PDAs, <strong>and</strong> even a few smart phones. The Linux programmerhas many programming languages <strong>and</strong> environmentsto choose from, including C++, Java, Perl, PHP, <strong>and</strong> Ruby.Thous<strong>and</strong>s <strong>of</strong> open-source programs have been written foror ported to Linux, including OpenOffice.org (a suite comparableto Micros<strong>of</strong>t Office), databases (such as MySQL),<strong>and</strong> Apache, the most popular Web server.Although Linux rapidly gained a significant share in serverapplications, early versions <strong>of</strong> Linux for ordinary desktop


280 LISPA Linux system running Open Office, a full-featured (<strong>and</strong> free) <strong>of</strong>fice s<strong>of</strong>tware suite (Sun Microsystems)users were criticized as being hard to install <strong>and</strong> to configurefor various types <strong>of</strong> hardware. However, current versions<strong>of</strong> Linux have an installation experience that is comparableto that <strong>of</strong> Windows, <strong>and</strong> such details as disk partitioning<strong>and</strong> setting up networks can <strong>of</strong>ten be h<strong>and</strong>led automatically.(There can still be problems with some devices such as wirelesscards for laptops, but even there things have improvedconsiderably.) A Linux distribution such as Ubuntu is now aviable alternative to Windows unless one has to use certainprograms (such as PhotoShop or many games) that do nothave Linux versions. However, such options as dual-booting,emulation, or virtual machines <strong>of</strong>fer the ability to use bothLinux <strong>and</strong> Windows on the same machine.Further ReadingHill, Benjamin Mako, et al. The Official Ubuntu Book. 3rd ed. UpperSaddle River, N.J.: Prentice Hall, 2008.Linux.com. Available online. URL: http://www.linux.com/.Accessed September 26, 2007.Linux Journal. Available online. URL: http://www.linuxjournal.com/. Accessed September 26, 2007.Matthew, Neil, <strong>and</strong> Richard Stones. Beginning Linux Programming.4th ed. Indianapolis: Wrox, 2007.Red Hat. Available online. URL: http://www.redhat.com/. AccessedSeptember 26, 2007.Sery, Pal G. Ubuntu Linux for Dummies. Hoboken, N.J.: Wiley,2007.Siever, Ellen, et al. Linux in a Nutshell. 5th ed. Sebastapol, Calif.:O’Reilly, 2005.Sobell, Mark G. A Practical Guide to Red Hat Linux: Fedora Core <strong>and</strong>Red Hat Enterprise Linux. 3rd ed. Upper Saddle River, N.J.:Prentice Hall, 2006.Ubuntu. Available online. URL: http://www.ubuntulinux.org/.Accessed September 26, 2007.LISPAs interest in AI (see artificial intelligence) developedin the early 1950s, researchers soon became frustrated bythe low-level computer languages <strong>of</strong> the day, which emphasizedcomputation <strong>and</strong> other manipulation <strong>of</strong> numbersrather than the processing <strong>of</strong> symbolic data.


LISP 281At the 1956 Dartmouth Summer Research Project onArtificial Intelligence, a gathering that brought together thekey early pioneers in the field, John McCarthy presented hisconcepts for a different kind <strong>of</strong> computer language. Sucha language, he believed, should be able to deal with mathematicalfunctions in their own terms—by manipulatingsymbols, not just calculating numbers.Together with Marvin Minsky, McCarthy began toimplement a language called LISP (for “list processor”). (SeeMcCarthy, John <strong>and</strong> Minsky, Marvin.) As the name suggests,the language uses lists to store data (see list processing)<strong>and</strong> features many functions for manipulatinglist elements. List can consist <strong>of</strong> single elements (called“atoms”) as in(A B C D)but lists can also include other lists, as in(A (B C) D)Each list item is stored as a “node” containing both a pointerto its data value <strong>and</strong> a pointer to the next item in the linkedlist. The LISP system typically includes housekeeping functionssuch as “garbage collection,” where the memory fromdiscarded list items is returned to the free memory pool forlater allocation.LISP programs look forbidding at first sight because theytend to have many nested parentheses. However, expressions<strong>and</strong> functions are actually constructed in a much simplerway than in most other languages. Without the needfor complicated parsing, the LISP interpreter (called “eval”because it evaluates its input) looks at the stream <strong>of</strong> data<strong>and</strong> first asks whether the next item is a constant (such as anumber, quoted symbol, string, quoted list, or keyword). Ifso, its value is returned. Otherwise, the interpreter checksto see if the item is a defined variable <strong>and</strong>, if so, returns itsvalue. Finally, the interpreter checks to see if there is a list.If so, the list is considered to be a function call followed byits arguments. The function is called, given the data, <strong>and</strong>the result is returned.The following table shows some items in a list program<strong>and</strong> how the interpreter will evaluate them:Examples <strong>of</strong> Lisp ItemsType <strong>of</strong> Item Example Evaluationinteger 24 24float 5.5 5.5ratio 3/4 0.75keyword defun defines functionquoted integer ’24 24quoted list ’(3 1 4 1 5) (3 1 4 1 5)boolean nil falsefunction call +2 4 6variable a its valuequoted variable ’a aLanguages such as Algol, Pascal or C emphasize statements<strong>and</strong> procedures. LISP, on the other h<strong>and</strong>, was thefirst functional language (see functional languages).The heart <strong>of</strong> a LISP program is functions that are evaluatedtogether with their arguments. LISP includes many builtin,or primitive functions. Besides the usual mathematicaloperations, there are primitives for basic list-processingfunctions. For example, the list function creates a list fromits arguments: (list 1 2 3) returns the list (1 2 3), while thecons function inserts an atom into the beginning <strong>of</strong> a list,<strong>and</strong> the append function tacks it onto the end. Programmersdefine their own functions using the defun keyword.LISP has two other features that make it a powerful<strong>and</strong> flexible language for manipulating symbols <strong>and</strong> data.LISP allows for recursive functions (see recursion). Forexample, the following function raises a variable x to thepower y:(defun power (x y)(if (= y 0) 1(* x (power x (1– y)))))Here the if expression checks to see whether y is 0. Ifnot, the second expression invokes the function (power)itself, which performs the same test. The result is that thefunction keeps calling itself, storing temporary values, untily gets down to 0. It then “winds itself back up,” multiplyingx by itself y times.But perhaps the most interesting feature <strong>of</strong> LISP is thatit makes no distinction between programs (functions) <strong>and</strong>data. Since a function call <strong>and</strong> its arguments themselvesconstitute a list, a function can be fed as data to other functions.This makes it easy to write programs that modifytheir own operation.Language DevelopmentLISP quickly caught on with artificial intelligence researchers,<strong>and</strong> the version called LISP 1.5 was considered robustenough for writing large-scale applications. While “mainstream”computer scientists <strong>of</strong>ten used Algol <strong>and</strong> its descendantsas a universal language for expressing algorithms,LISP became the lingua franca for AI people.However, a number <strong>of</strong> dialects such as Mac-LISP divergedas versions were written to support new hardware or werepromoted by companies such as LMI <strong>and</strong> Symbolics. Whileresearchers liked the interactive nature <strong>of</strong> interpreted LISP(where functions could be defined <strong>and</strong> immediately tried outat the keyboard), practical applications required compilationinto machine language to achieve adequate speed.A widely used LISP variant is Scheme, developed byMIT researchers in the mid-1970s. Scheme simplifies LISPsyntax (while still preserving the spirit), <strong>and</strong> at the sametime generalizes further by allowing functions to have allthe capabilities <strong>of</strong> data entities. That is, functions can bepassed as parameters to other functions, returned as values,<strong>and</strong> assigned to variables <strong>and</strong> lists.By the 1980s, personal computers became powerfulenough to run LISP, <strong>and</strong> the proliferation <strong>of</strong> LISP variantsrunning on different platforms led to a st<strong>and</strong>ardization movementthat resulted in Common LISP in 1984. Common LISPcombines the features <strong>of</strong> many existing dialects, includes


282 list processinga rich variety <strong>of</strong> data types, <strong>and</strong> also makes greater allowancefor the imperative, sequential programming approach <strong>of</strong>languages such as C. It thus accommodates varying styles <strong>of</strong>programming. It is widely available today in both commercial<strong>and</strong> shareware versions.Seymour Papert created a LISP-like language calledLogo, which has been used to teach sophisticated computerscience ideas to young students (see logo).Further ReadingDybvig, R. Kent. The SCHEME Programming Language. 3rd ed.Cambridge, Mass.: MIT Press, 2003.“Lisp Information <strong>and</strong> Resources.” Available online. URL: http://www.lispmachine.net/. Accessed August 13, 2007.Queinnec, Christian. Lisp in Small Pieces. New York: CambridgeUniversity Press, 1996.Seibel, Peter. Practical Common Lisp. Berkeley, Calif.: Apress, 2005.list processingA list is a series <strong>of</strong> data items that can be accessed sequentiallyby following links from one item to the next. Listscan be very useful for ordering or sorting data items <strong>and</strong> forstoring them on a stack or queue.There are two general approaches to constructing lists.In a data list used with procedural programming languagessuch as C, each list item consists <strong>of</strong> a structure consisting<strong>of</strong> a data member <strong>and</strong> a pointer. The pointer, called “next,”contains the address <strong>of</strong> the next item. A program can easily“step through” a list by starting with the first item, processingits data, then using the pointer to move to the nextitem, continuing until some condition is met or the end <strong>of</strong>the list is reached.A singly linked list. Each node (item) includes a value <strong>and</strong> apointer to the next node. Inserting a new node is simply a matter <strong>of</strong>adjusting the pointer <strong>of</strong> an existing node to point to the new node,with the new node’s pointer in turn pointing to the next item (or theend <strong>of</strong> the list). A node is removed by disconnecting its pointer.A doubly linked list. Each node has two pointers, one to the nextitem <strong>and</strong> one to the prior (preceding) item. While doubly linkedlists use more memory, they can be processed more quickly becausethey can be traversed in either direction.In LISP-type languages, however, a more general structureis used, since essentially all data is part <strong>of</strong> a list. Hereeach item is a node that can contains a pointer to any validobject <strong>and</strong> a pointer to the next node. One advantage <strong>of</strong> thisscheme is that since fixed-length data fields are not used,the list can be “hooked up” to objects <strong>of</strong> varying sizes <strong>and</strong>types. This can also use memory more efficiently, though atthe cost <strong>of</strong> additional processing being needed to periodicallyreclaim memory (“garbage collection”).Besides traversing (stepping through) a list by followingits “next” pointer, the basic list-processing operationsare insertion <strong>and</strong> deletion. It is easy to insert a new elementinto a list: You first move to the item after which the newitem is to be inserted. Next, you connect that item’s “next”pointer (link) to the new item. You then connect the newitem’s next link to the item that originally followed theinsertion point. Deleting an item is even simpler: You “snipout” the item by connecting the item that originally linkedto it to the item that was originally after it.Sometimes lists are set up so that each item has twopointers: one to the next item <strong>and</strong> one to the previous one.Such doubly linked lists can be traversed in either direction,making retrieval faster in some situations, though at the cost<strong>of</strong> storing the extra pointers. Lists are also used to implementsome specialized data structures (see stack <strong>and</strong> queue).ApplicationsLists are generally used to provide convenient access to relativelysmall amounts <strong>of</strong> data where flexibility is required.Unlike an array, a list need use only as much memory as itneeds to accommodate the current number <strong>of</strong> items (includingtheir associated pointers). A LISP-style node list can beeven more flexible in that items with varying sizes <strong>and</strong>types <strong>of</strong> data can be included in the same list. Lists are thusa more flexible way to implement such things as look-uptables. (See also array.)Further ReadingCovington, Michael A. “Some Recursive List Processing Algorithmsin Lisp.” Available online. URL: http://www.ai.uga.


local area network 283edu/mc/LispNotes/RecursiveListProcessingAlgorithmsIn-Lisp.pdf. Accessed August 13, 2007.“Linked List Basics [In C/C++]” Available online. URL: http://cslibrary.stanford.edu/103/LinkedListBasics.pdf. AccessedAugust 13, 2007.Seibel, Peter. “They Called It LISP for a Reason: List Processing.”Available online. URL: http://www.gigamonkeys.com/book/they-called-it-lisp-for-a-reason-list-processing.html. AccessedAugust 13, 2007.local area network (LAN)Starting in the 1980s, many organizations sought to connecttheir employees’ desktop computers so they could sharecentral databases, share or back up files, communicate viae-mail, <strong>and</strong> collaborate on projects. A system that linkscomputers within a single <strong>of</strong>fice or home, or a larger areasuch as a building or campus, is called a local area network(LAN). (Larger networks linking branches <strong>of</strong> an organizationthroughout the country or world are called wide areanetworks, or WANs. See network.)A Token Ring network connects the machines in a “chain” aroundwhich messages called tokens travel. Any PC can “grab” a passingtoken <strong>and</strong> attach data <strong>and</strong> the address <strong>of</strong> another PC to it. Each PCin turn watches for tokens that are addressed to it.The Star network configuration uses a central hub to which eachPC is attached. To extend the network (such as into other <strong>of</strong>fices),the hubs can be connected to one another so they function asswitches. When a token arrives that is addressed to one <strong>of</strong> its PCs,the hub will route it to the appropriate machine.Hardware ArchitectureThere are two basic ways to connect computers in a LAN.The first, called Ethernet, was developed by a project at theXerox Palo Alto Research Center (PARC) led by Robert Metcalfe.Ethernet uses a single cable line called a bus to whichall participating computers are connected. Each data packetis received by all computers, but processed only by the oneit is addressed to. Before sending a packet, a computer firstchecks to make sure the line is free. Sometimes, due to thetime delay before a packet is received by all computers,another computer may think the line is free <strong>and</strong> start transmitting.The resulting collision is resolved by having bothcomputers stop <strong>and</strong> wait varying times before resending.Because connecting all computers to a single bus line isimpractical in larger installations, Ethernet networks arefrequently extended to multiple <strong>of</strong>fices by connecting a busin each <strong>of</strong>fice to a switch, creating a subnetwork or segment(this is sometimes called a star topology). The switches arethen connected to a main bus. Packets are first routed tothe switch for the segment containing the destination computer.The switch then dispatches the packet to the destinationcomputer. Another advantage <strong>of</strong> this switched Ethernetsystem is that more-expensive, high-b<strong>and</strong>width cable canbe used to connect the switches to move the packets morequickly over greater distances, while less-expensive cablingcan be used to connect each computer to its local switch.An alternative way to arrange a LAN is called tokenring. Instead <strong>of</strong> the computers being connect to a bus thatends in a terminator, they are connected in a circle wherethe last computer is connected to the first. Interference isprevented by using a special packet called the token. Likethe use <strong>of</strong> a “talking stick” in a tribal council, only thecomputer holding the token can transmit at a given time.After transmitting, the computer puts the token back intocirculation so it can be grabbed by the next computer thatwants to send data.LAN S<strong>of</strong>twareNaturally there must be s<strong>of</strong>tware to manage the transmission<strong>and</strong> reception <strong>of</strong> data packets. The structure <strong>of</strong> a packet(sometimes called a frame) has been st<strong>and</strong>ardized with apreamble, source <strong>and</strong> destination addresses, the data itself,


284 Logoa checksum, <strong>and</strong> two special layers that interface with thediffering ways that Ethernet <strong>and</strong> token ring networks physicallyh<strong>and</strong>le the packets.The low-level processing <strong>of</strong> data packets must also beinterfaced with the overall operating system so that, forexample, a user on a desktop PC can “see” folders <strong>and</strong> fileson the file server <strong>and</strong> whole files can be transferred betweenserver <strong>and</strong> desktop PC. From the 1980s to the mid-1990sthe most common LAN operating system for DOS <strong>and</strong> laterWindows-based PCs was Novell Netware, while Macintoshusers used AppleTalk. Later versions <strong>of</strong> Windows (notablyWindows NT) then incorporated their own networkingsupport, <strong>and</strong> Netware use declined somewhat.The tremendous popularity <strong>of</strong> the Internet (particularlythe Web) starting in the mid-1990s propelled the Internetprotocol (see tcp/ip) into the forefront <strong>of</strong> networking.Today’s business <strong>and</strong> home computers use essentially thesame tools to connect to the global Internet <strong>and</strong> to oneanother. (The term Intranet, once used to distinguish localTCP/IP networks from the Internet, is now pretty muchobsolete.)Meanwhile, the technologies used to implement thisuniversal networking have proliferated. While the Internetis most commonly delivered to homes <strong>and</strong> businessesvia wires (see cable modem <strong>and</strong> dsl), wireless networkinghas replaced cable for many local networks, including mosthome networks (see Wireless <strong>and</strong> mobile computing),with the hub <strong>of</strong> the network being an inexpensive router<strong>and</strong> wireless access point.Further ReadingBriere, Danny, Pat Hurley, <strong>and</strong> Edward Ferris. Wireless Home Networkingfor Dummies. Hoboken, N.J.: Wiley Publishing, 2006.Komar, Brian. Sams Teach Yourself TCP/IP Networking in 21 Days.2nd ed. Indianapolis: Sams, 2002.Lowe, Doug. Networking for Dummies. Hoboken, N.J.: Wiley Publishing,2007.Spurgeon, Charles. Ethernet: The Definite Guide. Sebastapol, Calif.:O’Reilly Media, 2000.Tittel, Ed, Earl Follis, <strong>and</strong> James E. Gaskin. Networking with Net-Ware for Dummies. 4th ed. Foster City, Calif.: IDG Books,1998.LogoLogo is a derivative <strong>of</strong> LISP (see lisp) that preserves much <strong>of</strong>that language’s list processing <strong>and</strong> symbolic manipulationpower while <strong>of</strong>fering simpler syntax, easier interactivity,<strong>and</strong> graphics capabilities likely to appeal to young people.Logo has <strong>of</strong>ten been used as a first computer language forstudents in elementary <strong>and</strong> junior high school grades. AsHarold Abelson noted in his Apple Logo primer in 1982,“Logo is the name for a philosophy <strong>of</strong> education <strong>and</strong> a continuallyevolving family <strong>of</strong> programming languages that aidin its realization.”Logo was developed starting in 1967 by educator SeymourPapert <strong>and</strong> his colleagues at Bolt, Beranek <strong>and</strong> Newman,Inc. Papert, a mathematician <strong>and</strong> AI pioneer, hadbecame interested in devising an education-oriented computerlanguage after working with developmental psychologistJean Piaget. Papert focused particularly on Piaget’semphasis on “constructivism”—the idea that people learnmainly by fitting new concepts into an existing frameworkbuilt from the experience <strong>of</strong> daily life. Papert came tobelieve that abstract computer languages such as FORTRANor even BASIC were hard for children to assimilate becausetheir algebraic formulas <strong>and</strong> syntax had little in commonwith daily activities such as walking, playing, drawing, ormaking things.For example, most computer languages implementgraphics using statements that specify screen points usingCartesian coordinates (X, Y). A square, for example, mightbe drawn by statements such as:PLOT 100, 100LINETO 150, 100LINETO 150, 150LINETO 100, 150LINETO 100, 100While familiarity with the coordinate system eventuallyallows one to visualize this operation, it is far from intuitive.Papert, however, includes a “turtle” in his Logo language.The turtle was originally an actual robot that couldbe programmed to move around; in most systems today it isrepresented by a cursor on the screen. As the turtle moves,it uses a “pen” to leave a “trail” that draws the graphic.With turtle comm<strong>and</strong>s, a square can be drawn by:FD 50 (that is, forward 50)RT 90 (turn right 90 degrees)FD 50RT 90FD 50RT 90FD 50RT 90Here, the student programmer can easily visualize walking<strong>and</strong> turning until he or she arrives back at the startingpoint. In keeping with Piaget’s theories, the learning is congruentwith the physical world <strong>and</strong> daily activities.Logo includes control structures similar to those inother languages, so the above program can be rewritten assimply:REPEAT 4 [FD 50 RT 90]Logo is much more than a set <strong>of</strong> simple drawing comm<strong>and</strong>s,however. Students can also be encouraged to use thelist-processing comm<strong>and</strong>s to create everything from computer-generatedpoetry to adventure games. Unlike LISP’sobscurely named comm<strong>and</strong>s such as car <strong>and</strong> cdr, Logo’s listcomm<strong>and</strong>s are readily underst<strong>and</strong>able. For example, firstreturns the first item in a list, while butfirst returns all <strong>of</strong>the list except the first item.Logo procedures are introduced by the to keyword,implying that the programmer is “teaching the computer”how to do something. For example, a procedure to draw asquare with a variable size <strong>and</strong> starting position might looklike this:


loop 285to square :X :Y :Sizesetxy :X :Yrepeat 4 [fd :Size rt 90]endLogo has been steadily enhanced over the years, <strong>and</strong>includes not only a full set <strong>of</strong> math functions, but also manyversions include special sound, graphics, <strong>and</strong> multimedia functionsfor Windows or Macintosh systems. By the mid-1980s,Logo had been combined with the popular LEGO buildingtoy to create LEGO Logo. This popular kit enables students tobuild <strong>and</strong> control a variety <strong>of</strong> robots <strong>and</strong> other gadgets.By the 1990s, Logo had to some extent become a casualtyto the pressure on educators to provide “real world”programming skills using languages such as C++ or Java.However, Logo using educators have continued to flourishin parts <strong>of</strong> Europe, Japan, <strong>and</strong> Latin America. Logo has alsobeen energized by the development <strong>of</strong> two recent versions.MicroWorlds Logo took advantage <strong>of</strong> the Macintosh interfaceto provide a full-featured multimedia environment,<strong>and</strong> it was later adapted for Windows systems. Anotherversion, StarLogo, emphasizes parallel processing concepts,<strong>and</strong> is able to control thous<strong>and</strong>s <strong>of</strong> separate turtles that canbe programmed to simulate behaviors such as bird flocks ortraffic flows. As Brian Harvey’s books show, Logo’s accessible,interactive nature continues to make it a good choicefor teaching computer science to adults as well.Further ReadingHarvey, Brian. <strong>Computer</strong> <strong>Science</strong> Logo Style. Vols. 1–3, 2nd ed.Cambridge, Mass.: MIT Press, 1997.LCSI Microworlds. Available online. URL: http://www.microworlds.com/. Accessed August 13, 2007.Logo Foundation (MIT). Available online. URL: http://el.media.mit.edu/Logo-foundation/. Accessed August 13, 2007.Papert, Seymour. Mindstorms: Children, <strong>Computer</strong>s, <strong>and</strong> PowerfulIdeas. New York: Basic Books, 1993.“StarLogo on the Web.” MIT Dept. <strong>of</strong> Education. Available online.URL: http://education.mit.edu/starlogo/. Accessed August 13,2007.“Welcome to MSWLogo.” Available online. URL: http://www.s<strong>of</strong>tronix.com/logo.html. Accessed August 13, 2007.This loop first checks to see whether the end <strong>of</strong> the inputfile (opened earlier) has been reached. If not, it reads <strong>and</strong>processes a record (using procedures defined elsewhere).The “Wend” marks the end <strong>of</strong> the statements controlled bythe loop. When the end <strong>of</strong> the file is reached, the test fails(returns false) <strong>and</strong> control skips to the statement followingWend. See the accompanying flowchart for a visual depiction<strong>of</strong> the operation <strong>of</strong> this loop.A variant form <strong>of</strong> while loop performs the test afterexecuting the enclosed instructions. For example:DoPrint “Enter a number: “Input NumberPrint “You entered: “;NumberWhile (Number 0)Print “I’m Done!”This loop will display each number the user enters, thentest it for zero. After a zero is encountered, control will skipto the final print statement.Note that because this second form <strong>of</strong> while loop doesnot perform the test until it has performed the specifiedactions at least once, it would not be appropriate for thefirst example. In that case, the loop would attempt to get arecord before discovering it had reached the end <strong>of</strong> the file,<strong>and</strong> an error would result.The for loop is useful when an action is to be repeatedfor each <strong>of</strong> a limited series <strong>of</strong> cases. For example, this loopwould print out the ASCII characters corresponding to thecodes from 32 through 65:For CharVal = 32 to 65 Step 1Print Char$(CharVal)loopIf computers were merely fast sequential calculators, theywould still be <strong>of</strong> some use. However, much <strong>of</strong> the power <strong>of</strong>the computer comes from its ability to carry out repetitivetasks without supervision. The loop is the programminglanguage structure that controls such activities. Virtuallyevery language has some form <strong>of</strong> loop construct, with variationsin syntax ranging from the relatively English-likeCOBOL <strong>and</strong> Pascal to the more cryptic C. We will useBASIC for our examples, since its syntax is easy to read.The st<strong>and</strong>ard while loop performs the specified actionsas long as the specified condition is true. For example:While NOT EOF (Input_File)Read_RecordProcess_RecordWendPrint “Done!”Flowchart for a loop that reads <strong>and</strong> processes records until itreaches the end <strong>of</strong> the file. Programmers must make sure that theend condition <strong>of</strong> a loop is properly defined, or the loop may runendlessly, “hanging” the program.


286 LuaNext CharValHere Char$ is a function that output the character correspondingto the supplied ASCII character code. The stepclause specifies the interval over which the variable withinthe loop is to be incremented. Here it’s not strictly necessary,since it defaults to 1.Loops <strong>of</strong> all sorts can be “nested” so that an inner loopexecutes completely for each step <strong>of</strong> the outer loop. Forexample:For Vertical = 0 to 767For Horizontal = 0 to 1023Print_Pixel (Vertical, Horizontal)Next HorizontalNext VerticalHere the program will move across each line <strong>of</strong> thescreen, printing the contents <strong>of</strong> each pixel. Each time theinner loop finishes, the outer loop increments, moving thescanning down to the next line. Indention is used to makethe relation between the outer <strong>and</strong> inner loops clear.In programming loops it’s important to frame the testconditions correctly so that they terminate appropriately.An “endless loop” can cause a program to “hang” indefinitely.However, some programs do code an endless outerloop to indicate the program is to run indefinitely unlessclosed by the operating system. For example, the loopWhile (1)’ Instructions go hereWendwill execute indefinitely, since the value one is equivalentto “true.”Since many programs spend most <strong>of</strong> their time repeatedlyexecuting loops, programmers seeking to improvethe performance <strong>of</strong> their code pay especial attention to thecode within the body <strong>of</strong> a loop. Any code such as a variableassignment, conversion, or calculation that needs to bedone only once should be moved outside the loop.Further Reading“Control Flow.” Wikipedia. Available online. URL: http://en.wikipedia.org/wiki/Control_flow. Accessed August 13,2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Addison-Wesley, 2007.LuaLua is a scripting language created by three programmers atthe Pontifical University <strong>of</strong> Rio de Janeiro, Brazil. (The wordLua is Portuguese for “Moon”). The language has begun toattract some attention, particularly among game <strong>and</strong> Webprogrammers.Lua has simple syntax <strong>and</strong> can support both traditional(imperative) programming <strong>and</strong> functional programming(see functional languages). Many <strong>of</strong> the features such asinheritance <strong>and</strong> name spaces that are built into most objectorientedlanguages are not part <strong>of</strong> Lua, but can be createdthrough the language’s extension methods (see object-orientedprogramming).A simple function in Lua looks like this:function factorial(n)if n = 0 thenreturn 1endreturn n * factorial(n - 1)endNote the lack <strong>of</strong> required semicolons.Besides a simple assortment <strong>of</strong> built-in types, Lua usestables to create complex, user-defined types. Tables includepairs <strong>of</strong> values <strong>and</strong> keys. The key can either be a number(creating the equivalent <strong>of</strong> an array in other languages), ora string. For example, the following table consists <strong>of</strong> threevalues indexed by strings:coin = { quarter = 25, dime = 10, nickel = 5,penny = 1 }printer (coin[“dime”]) -- prints 10By including functions <strong>and</strong> the data they use into atable, classes similar to those used in object-oriented languagescan also be created.Implementation <strong>and</strong> UseLua programs are compiled to an intermediate form (bytecode)that runs on a Lua virtual machine for each platform.Lua is intended to work closely with C programs, transferringdata via a stack.Because <strong>of</strong> its compact runtime packages, Lua is <strong>of</strong>tenincluded in applications to provide an interface for editingor extending the application. This is particularly true <strong>of</strong>games such as World <strong>of</strong> Warcraft.Further ReadingIerusalimschy, Roberto. Programming in Lua. 2nd ed. Rio deJaneiro, Brazil: Lua.org, 2006.Jung, Kurt, <strong>and</strong> Aaron Brown. Beginning Lua Programming. Indianapolis:Wiley, 2007.Lua.org. Available online. URL: http://www.lua.org. Accessed September26, 2007.


MMacintoshSince its inception in 1984, Apple’s Macintosh line <strong>of</strong> personalcomputers has <strong>of</strong>fered a distinctive, innovative alternativeto the more mainstream IBM-compatible PCs. When theMacintosh came out, it was billed as the computer “for therest <strong>of</strong> us.” Unlike the text-based, comm<strong>and</strong>-driven DOSbasedIBM PC <strong>and</strong> its “clones,” the “Mac” <strong>of</strong>fered an interfacethat consisted <strong>of</strong> menus, folders, <strong>and</strong> icons that couldbe manipulated by clicking <strong>and</strong> dragging (see user interface<strong>and</strong> mouse). The system came out <strong>of</strong> the box with apaint/draw program <strong>and</strong> a word processor that could showdocuments using the actual font sizes <strong>and</strong> styles that wouldappear in printed text. This “WYSIWYG” (What You See IsWhat You Get) feature quickly made the Mac the machine<strong>of</strong> choice for desktop publishers <strong>and</strong> graphic artists. TheMac also met with some success in the educational market,where the way had been paved by the earlier Apple II.However, there were factors would limit the Macto a minority market share. The first models ran slowly.Although its Motorola 68000 processor was comparable tothe Intel 80286 used by the IBM XT <strong>and</strong> AT series, the needto draw extensive graphics placed a heavier burden on theMac’s CPU.Marketing decisions also proved to be problematic. TheIBM PC had an “open architecture.” Clone makers were ableto legally produce machines that were functionally equivalent,<strong>and</strong> Micros<strong>of</strong>t was able to license to clone manufacturersessentially the same DOS operating system that IBMused. This created a robust market as manufacturers competedwith added features or lower prices.Apple, on the other h<strong>and</strong>, jealously guarded the Apple’shardware <strong>and</strong> the ROM (read only memory) that held thekey operating system code. Apple made only a brief <strong>and</strong>half-hearted attempt to license the Mac OS to third partiesin 1995, <strong>and</strong> by then it was probably too late. Apple CEOSteve Jobs (see Jobs, Steve) kept prices relatively high, bettingthat the Mac’s unique operating system <strong>and</strong> interfacewould entice people to buy the more expensive machine.But something <strong>of</strong> a vicious circle set in. Since the Macused a unique operating system, developing new applications(or porting existing ones) to the Mac was expensive.And since the Mac market represented only a small fraction<strong>of</strong> the PC-compatible market, developers were reluctant tocreate such s<strong>of</strong>tware. Some flagship products such as AldusPageMaker <strong>and</strong> Adobe Photoshop did cater to the Mac’sgraphic strengths. In general, however, the PC-compatibleowner had a far wider range <strong>of</strong> s<strong>of</strong>tware to choose from,<strong>and</strong> businesses were traditionally more comfortable withIBM equipment, even if IBM didn’t make it.Micros<strong>of</strong>t helped develop some successful Mac s<strong>of</strong>tware,including versions <strong>of</strong> its Word <strong>and</strong> Office programs. ButMicros<strong>of</strong>t CEO Bill Gates responded to the Mac’s interfaceadvantages over MS-DOS by developing a new operatingenvironment, Windows. Apple sued, claiming that Micros<strong>of</strong>thad gone beyond the license it had negotiated withApple for use <strong>of</strong> elements <strong>of</strong> the Mac interface. By the early1990s, however, Apple had lost the lawsuit. While the earlyversions <strong>of</strong> Windows were clumsy <strong>and</strong> met with little success,version 3.0 <strong>and</strong>, later, Windows 95 succeeded in providinga user experience that was increasingly close to thatachieved by the Mac.287


288 macroMacDailyNews. Available online. URL: http://www.macdailynews.com/. Accessed August 14, 2007.Mac Observer. Available online. URL: http://www.macobserver.com/. Accessed August 14, 2007.Macworld: The Mac Experts. Available online. URL: http://www.macworld.com/. Accessed August 14, 2007.Pogue, David, <strong>and</strong> Adam Goldstein. Switching to the Mac: The MissingManual, Tiger Edition. Sebastapol, Calif.: O’Reilly Media,2005.A Power Mac G5 with a 30-inch Apple Cinema HD display. (Apple<strong>Computer</strong>)Apple kept trying to innovate <strong>and</strong> carve out a largermarket share, designing both Power Macs that used thePowerPC RISC (reduced instruction set) microprocessor<strong>and</strong> PowerBook laptops. Toward the end <strong>of</strong> the 1990s, Appletried to address the low end <strong>of</strong> the market with the iMac, acolorful, sleek machine packed with features such as homevideo editing, <strong>and</strong> achieved modest success in attractingnew customers.New Insides, New Directions?In 2000 Apple began to revamp what was becoming a somewhataging architecture. First came the replacement <strong>of</strong> theoperating system with a UNIX variant (see unix) whileretaining the user interface (see os x). In 2006 Apple beganto transition the Mac’s processor from the Motorola/IBMPower PC to the Intel chips that power Windows-compatiblePCs. The use <strong>of</strong> a widely available chip (<strong>and</strong> provisionfor Windows via the “Boot Camp” utility) may make theMac cheaper <strong>and</strong> more attractive to mainstream PC users.Meanwhile the Macintosh OS X operating system continuedto evolve from the “Tiger” edition to “Leopard,” released inFall 2007.While the Mac continues to be a niche market, saleshave been strong, increasing steadily each year. However,in recent years the Mac has been overshadowed somewhatas an Apple icon, supplanted by the iPod <strong>and</strong> in 2007 by theiPhone.Further ReadingLevy, Steven. Insanely Great: The Life <strong>and</strong> Times <strong>of</strong> Macintosh, the<strong>Computer</strong> that Changed Everything. New York: Penguin, 2000.Litt, Samual A., et al. Mac OS X Bible, Tiger Edition. Indianapolis:Wiley, 2005.macroFor both programmers <strong>and</strong> ordinary users, the ability to“package” a group <strong>of</strong> instructions so that it can be invokedwith a single comm<strong>and</strong> can save a lot <strong>of</strong> effort. The termmacro is used for such instruction packages in a variety <strong>of</strong>contexts.In the early days, programmers had to work with lowlevelmachine instructions (see assembler). Developerssoon realized that a program could be used to write otherprograms. This program, called a macro assembler, lets theprogrammer write a group <strong>of</strong> instructions such as:COMPARE macroLOAD %1 ‘ load first data itemSTOREX ‘ store in register XLOAD %2 ‘ load second data itemSTOREY ‘ store in register YCMPXY ‘ compare X <strong>and</strong> Y registersendmNow, if the programmer wants to compare the contents<strong>of</strong> two memory locations (say COUNTER <strong>and</strong> LIMIT), he orshe can write simply:COMPARE COUNT LIMITThe assembler replaces COMPARE with the sequence <strong>of</strong>instructions above, substituting COUNT <strong>and</strong> LIMIT for %1<strong>and</strong> %2.Macros are also used in some higher-level languages,notably C. A module called the macro processor performsthe required substitutions into the source code before thecode is parsed <strong>and</strong> compiled. For example, a C programmermight include this macro in a program file:#define IS_LOWERCASE(x) (( (x)>=‘a’) && ((x) =‘a’) && ((Letter)


Maes, Pattie 289ing coding. However, a given procedure appears in the codeonly once, although it may be called upon from many differentparts <strong>of</strong> the program. A macro, on the other h<strong>and</strong>, is not“called.” Each time it is mentioned, the macro is replaced bythe corresponding instructions. Thus macros increase thesize <strong>of</strong> the source code.Many programmers today prefer using functions withthe appropriate code rather than macros. Using functionssaves space, since each function’s code need only appearonce. Although there is some processing overhead at runtimein calling the function, the function approach alsoensures that the data sent to the function will be checked tomake sure it is <strong>of</strong> the proper type. The macro, on the otherh<strong>and</strong>, usually leaves it up to the programmer to make surethe data type being used is appropriate.Application MacrosThe term macro is also used with applications s<strong>of</strong>tware.Here it can mean a series <strong>of</strong> comm<strong>and</strong>s (such as cursor positioningor text formatting) that are recorded <strong>and</strong> assignedto a certain key combination. For example, a word processoruser might define a macro called Letter <strong>and</strong> record thekeystrokes <strong>and</strong>/or mouse movements needed to open a newdocument, insert a letterhead from a file, update the date,insert a salutation, <strong>and</strong> position the cursor to continue writingthe letter. The recorded keystrokes might be assigned tothe key combination Control + L.More elaborate macros can be written to automate complextasks in spreadsheets <strong>and</strong> word processors. Micros<strong>of</strong>tprovides an entire language, Visual Basic for Applications(VBA), for writing macros for its Office products.Further ReadingGonzalez, Juan Pablo, et al. Office VBA Macros You Can Use Today:Over 100 Amazing Ways to Automate Word, Excel, PowerPoint,Outlook <strong>and</strong> Access. Uniontown, Ohio: Holy Macro! Books,2005.Jelen, Bill. VBA <strong>and</strong> Macros for Micros<strong>of</strong>t Office Excel 2007. Indianapolis:Que, 2007.Kochan, Stephen. Programming in C. 3rd ed. Indianapolis: Sams,2004.“Preprocessor Directives.” Available online. URL: http://www.cplusplus.com/doc/tutorial/preprocessor.html. AccessedAugust 14, 2007.Maes, Pattie(1961– )Belgian/American<strong>Computer</strong> ScientistPattie Maes is a pioneer in the creation <strong>of</strong> s<strong>of</strong>tware agents,intelligent programs that work with people to help themfind what they need online, whether it is relevant newsstories, a vacation itinerary, or a good place for a romanticdinner for two in San Francisco.Born June 1, 1961, in Brussels, Belgium, Maes was interestedin science (particularly biology) from an early age.She received bachelor’s (1983) <strong>and</strong> doctoral (1987) degreesin computer science <strong>and</strong> artificial intelligence from the University<strong>of</strong> Brussels.In 1989 Maes moved from Belgium to the MassachusettsInstitute <strong>of</strong> <strong>Technology</strong>, where she joined the ArtificialIntelligence Lab. There she worked with an innovativeresearcher who had created swarms <strong>of</strong> simple but intriguinginsectlike robots (see Brooks, Rodney). Two years laterMaes became an associate pr<strong>of</strong>essor at the MIT Media Lab,famed for innovations in how people interact with computertechnology (see MIT Media Lab). There she foundedthe S<strong>of</strong>tware Agents Group to promote the development <strong>of</strong> anew kind <strong>of</strong> computer program.These programs (see s<strong>of</strong>tware agent) have considerableautonomy <strong>and</strong> intelligence. Like a human travel or realestate agent, an agent program must have detailed knowledge<strong>of</strong> the appropriate area <strong>of</strong> expertise; the ability to askthe client questions about preferences, priorities, <strong>and</strong> constraints;<strong>and</strong> the ability to find the best deals <strong>and</strong> negotiatewith service providers.Maes’s goal has been to create s<strong>of</strong>tware agents who think<strong>and</strong> act much like their human counterparts. To carry outa task using an agent, the user does not have to specifyexactly how it is to be done. Rather, the user describes thetask, <strong>and</strong> the s<strong>of</strong>tware engages in a dialog with the user toobtain the necessary guidance.A s<strong>of</strong>tware travel agent would know—or ask about—such things as how much the user wants to spend <strong>and</strong>whether he or she prefers sites involving nature, history, oradventure. It would also ask about <strong>and</strong> take into considerationconstraints <strong>of</strong> budget, travel time, comfort, <strong>and</strong> so on.The s<strong>of</strong>tware agent would then use its database <strong>and</strong> proceduresto put together an itinerary based on the user’s needs<strong>and</strong> desires. It would not only know where to find the bestfares <strong>and</strong> rates, it would also know how to negotiate withhotels <strong>and</strong> other services. Indeed, it might negotiate withtheir s<strong>of</strong>tware agents.In 1995 Maes c<strong>of</strong>ounded Firefly Networks, a companythat attempted to create commercial applications for s<strong>of</strong>twareagent technology. Although the company was boughtby Micros<strong>of</strong>t in 1998, one <strong>of</strong> its ideas—“collaborative filtering”—canbe experienced by visitors to sites such as Amazon.com.Users in effect are given an agent whose job it is toprovide recommendations for books <strong>and</strong> other media. Therecommendations are based upon observing not only whatitems the user has already purchased, but also what elsehas been bought by people who bought those same items.More advanced agents can also tap into feedback resourcessuch as user book reviews on Amazon or auction feedbackon eBay (see social networking).A listing <strong>of</strong> Maes’s current research projects at MIT conveysmany aspects <strong>of</strong> <strong>and</strong> possible applications for s<strong>of</strong>twareagents. These include the combining <strong>of</strong> agents with interactivevirtual reality, using agent technology to create charactersfor interactive storytelling, the use <strong>of</strong> agents to matchpeople with the news <strong>and</strong> other information they are mostlikely to be interested in, an agent that could be sent into anonline market to buy or sell goods, <strong>and</strong> even a “Yenta” agentthat would introduce people who are most likely to make agood match.


290 mainframeMaes has participated in many high-pr<strong>of</strong>ile conferencessuch as AAAI (American Association for Artificial Intelligence)<strong>and</strong> ACM Siggraph, <strong>and</strong> her work has been featuredin numerous magazine articles. She was one <strong>of</strong> 16 modern“visionaries” chosen to speak at the 50th anniversary <strong>of</strong> theACM. She has also been repeatedly named by Upside magazineas one <strong>of</strong> the 100 most influential people for development<strong>of</strong> the Internet <strong>and</strong> e-commerce. Time Digital featuredher in a cover story <strong>and</strong> selected her as a member <strong>of</strong> its“cyber elite.” Newsweek put her on its list <strong>of</strong> 100 Americansto be watched for in the year 2000. That same year the MassachusettsInteractive Media Council gave her its LifetimeAchievement Award.Further ReadingD’inverno, Mark, <strong>and</strong> Michael Luck, eds. Underst<strong>and</strong>ing Agent Systems.2nd. ed. New York: Springer Verlag, 2003.Maes, Pattie. “Intelligence Augmentation: A Talk with PattieMaes.” Available online. URL: http://www.edge.org/3rd_culture/maes./ Accessed May 5, 2007.S<strong>of</strong>tware Agents group at MIT Media Lab. http://agents.mit.edu.Accessed May 5, 2007.mainframeIn the era <strong>of</strong> vacuum tube technology, all computers werelarge, room-filling machines. By the 1960s, the use <strong>of</strong> transistors(<strong>and</strong> later, integrated circuits), enabled the production<strong>of</strong> smaller (roughly, refrigerator-sized) systems (seeminicomputer). By the late 1970s, desktop computers werebeing designed around newly available computer chips (seemicroprocessor). Although they, too, now use integratedcircuits <strong>and</strong> microprocessors, the largest scale machines arestill called mainframes.The first commercial computer, the UNIVAC I (see Eckert,J. Presper <strong>and</strong> Mauchly, John) entered service in1951. These machines consisted <strong>of</strong> a number <strong>of</strong> large cabinets.The cabinet that held the main processor <strong>and</strong> mainmemory was originally referred to as the “mainframe”before the name was given to the whole class <strong>of</strong> machines.Although the UNIVAC (eventually taken over by SperryCorp.) was quite successful, by the 1960s the quintessentialmainframes were those built by IBM, which controlledabout two-thirds <strong>of</strong> the market. The IBM 360 (<strong>and</strong> in the1970s, the 370) <strong>of</strong>fered a range <strong>of</strong> upwardly compatible systems<strong>and</strong> peripherals, providing an integrated solution forlarge businesses.Traditionally, mainframes were affordable mainly bylarge businesses <strong>and</strong> government agencies. Their mainapplication was large-scale data processing, such as thecensus, Social Security, large company payrolls, <strong>and</strong> otherapplications that required the processing <strong>of</strong> large amounts<strong>of</strong> data, which were stored on punched cards or transferredto magnetic tape. Programmers typically punched theirCOBOL or other comm<strong>and</strong>s onto decks <strong>of</strong> punched cardsthat were submitted together with processing instructions(see job control language) to operators who mountedthe required data tapes or cards <strong>and</strong> then submitted theprogram cards to the computer.By the late 1960s, however, time-sharing systems allowedlarge computers to be partitioned into separate areas so thatthey can be used by several persons at the same time. Thepunched cards began to be replaced by Teletypes or videoterminals at which programs or other comm<strong>and</strong>s could beentered <strong>and</strong> their results displayed or printed. At aboutthe same time, smaller computers were being developed byDigital Equipment Corporation (DEC) with its PDP series(see minicomputer).With increasingly powerful minicomputers <strong>and</strong> later,desktop computers, the distinction between mainframe,minicomputer, <strong>and</strong> microcomputer became much less pronounced.To the extent it remains, the distinction today ismore about the b<strong>and</strong>width or amount <strong>of</strong> data that can beprocessed in a given time than about raw processor performance.Powerful desktop computers combined into networkshave taken over many <strong>of</strong> the tasks formerly assignedto the largest mainframe computers. With a network, evena large database can be stored on dedicated computers (seefile server) <strong>and</strong> integrated with s<strong>of</strong>tware running on theindividual desktops.Nevertheless, mainframes such as the IBM System/390are still used for applications that involve processing largenumbers <strong>of</strong> transactions in near real-time. Indeed, many<strong>of</strong> the largest e-commerce organizations have a mainframeat the heart <strong>of</strong> their site. The reason is that while the rawprocessing power <strong>of</strong> high-end desktop systems today rivalsthat <strong>of</strong> many mainframes, the latter also have high-capacitychannels for moving large amounts <strong>of</strong> data into <strong>and</strong> out <strong>of</strong>the processor.Early desktop PCs relied upon their single processor toh<strong>and</strong>le most <strong>of</strong> the burden <strong>of</strong> input/output (I/O). AlthoughPCs now have I/O channels with separate processors (seebus), mainframes still have a much higher data throughput.The mainframe can also be easier to maintain than anetwork, since s<strong>of</strong>tware upgrades <strong>and</strong> data backups canbe h<strong>and</strong>led from a central location. On the other h<strong>and</strong>, aThe IBM System/360 was the most successful mainframe in computerhistory. It was actually a “family” <strong>of</strong> upwardly compatiblemachines. (IBM Corporate Archives)


management information system 291system depending on a single mainframe also has a singlepoint <strong>of</strong> vulnerability, while a network with multiple mirroredfile servers can work around the failure <strong>of</strong> an individualserver.Further ReadingButler, Janet G. Mainframe to Client-Server Migration: StrategicPlanning Issues <strong>and</strong> Techniques. Charleston, S.C.: <strong>Computer</strong><strong>Technology</strong> Research Corporation, 1996.Ebbers, Mike, Wayne O’Brien, <strong>and</strong> Bill Ogden. Introduction to theNew Mainframe: z/OS Basics. Raleigh, N.C.: IBM Publications,2007. Available online. URL: ftp://www.redbooks.ibm.com/redbooks/SG246366/zosbasics_textbook.pdf. AccessedAugust 14, 2007.“Mainframe Programming: Some Useful Resources for Practitioners<strong>of</strong> the Craft.” Available online. URL: http://www.oberoi-net.com/mainfrme.html. Accessed August 14, 2007.Prasad, N. S. IBM Mainframes: Architecture <strong>and</strong> Design. 2nd ed.New York: McGraw-Hill, 1994.Pugh, Emerson W., Lyle R. Johnson, <strong>and</strong> John H. Palmer. IBM’s 360<strong>and</strong> Early 370 Systems. Cambridge, Mass.: MIT Press, 1991.management information systemThe first large-scale use <strong>of</strong> computers in business in the late1950s <strong>and</strong> 1960s focused on fundamental data processing.Companies saw computers primarily as a way to automatesuch functions as payroll, inventory, orders, <strong>and</strong> accountspayable, hoping to keep up with the growing volume <strong>of</strong> datain the exp<strong>and</strong>ing economy while saving labor costs associatedwith manual methods. The separate data files <strong>and</strong> programsused for basic business functions were generally notwell integrated <strong>and</strong> could not be easily used to obtain crucialinformation about the performance <strong>of</strong> the business.By the 1970s, the growing capabilities <strong>of</strong> computersencouraged executives to look for ways that their informationsystems could be used to competitive advantage.Clearly, one possibility was that reporting <strong>and</strong> analysiss<strong>of</strong>tware could be used to help them make faster <strong>and</strong> betterdecisions, such as about what products or markets toemphasize. To achieve this, however, the “data processingdepartment” had to be transformed into a “managementinformation system” (MIS) that could allow analysis<strong>of</strong> business operations at a variety <strong>of</strong> levels.The MIS PyramidIf one thinks <strong>of</strong> the information infrastructure <strong>of</strong> an enterpriseas being shaped like a pyramid, the bottom <strong>of</strong> thepyramid consists <strong>of</strong> the transactions themselves, whereproducts <strong>and</strong> services are delivered, <strong>and</strong> the supportingpoint <strong>of</strong> sale, inventory, <strong>and</strong> distribution systems that keeptrack <strong>of</strong> the flow <strong>of</strong> product.The next layer up begins the process <strong>of</strong> integration <strong>and</strong>operational control. For example, previously separate sales<strong>and</strong> inventory system (perhaps updated through a dailybatch process) now become part <strong>of</strong> an integrated systemwhere a sale is immediately reflected in reduced inventory,<strong>and</strong> the inventory system is in turn interfaced with theorder system so more <strong>of</strong> a product is ordered when it goesout <strong>of</strong> stock.The activities involved in managing an enterprise’s informationinfrastructure can be drawn as a pyramid. The raw material <strong>of</strong>transactions at the bottom are stored in databases. Moving up thepyramid, these data sources are integrated <strong>and</strong> refined to providebetter information about business operations as well as material foroperational analysis <strong>and</strong> strategic planning.The next layer can be called the operational analysislayer. Here such functions as sales, inventory, <strong>and</strong> orderingaren’t simply connected; they are part <strong>of</strong> the same system<strong>of</strong> databases. This means that both simple <strong>and</strong> complexqueries <strong>and</strong> analysis can be run against a database containingevery type <strong>of</strong> transaction that the business engages in.In addition to routine reports such as sales by region orproduct line, market researchers or strategic planners canreceive the data they need to answer questions such as:• What products are staying on the shelf the longest?• What is the ratio between pr<strong>of</strong>itability <strong>and</strong> shelf spacefor particular items?• What is the relationship between price reductions,sales, <strong>and</strong> pr<strong>of</strong>its for a certain category <strong>of</strong> items?The goal <strong>of</strong> this layer is to help managers identify thevariables that affect the performance <strong>of</strong> their store or otherbusiness division <strong>and</strong> to determine how to optimize thatperformance (see also digital dashboard).The very top level can be called the strategic planninglayer. Here top-level executives are interested in the overalldirection <strong>of</strong> the business: determining which divisions <strong>of</strong> acompany should receive the greatest long-term investment,<strong>and</strong> which perhaps should be phased out. For example:• Which kind <strong>of</strong> sales are growing the fastest: in-store,mail-order catalog, or Internet on-line store?• How is our market share trending compared to variousclasses <strong>of</strong> competitors?


292 map information <strong>and</strong> navigation systems• How are sales trending with regard to various types(demographics) <strong>of</strong> customers?S<strong>of</strong>tware SupportThere are many considerations to choosing appropriates<strong>of</strong>tware to support the users who are trying to answerquestions at the various levels <strong>of</strong> management. At minimum,to create a true management information system, theinformation from daily transactions must be made accessibleto a variety <strong>of</strong> query or analysis programs.In the past three decades many established businesseshave had to go through a painful process <strong>of</strong> converting avariety <strong>of</strong> separate databases <strong>and</strong> “legacy s<strong>of</strong>tware” (<strong>of</strong>tenwritten in COBOL in the 1960s or 1970s) into a modernrelational database such as Oracle or Micros<strong>of</strong>t Access.Sometimes a company has decided that the cost <strong>of</strong> rewritings<strong>of</strong>tware <strong>and</strong> converting data is simply too high, <strong>and</strong>instead, opts for a patchwork <strong>of</strong> utility programs to convertdata from one program to another.The growth <strong>of</strong> networking in the 1980s <strong>and</strong> Web-basedintranets in the 1990s required that the old model <strong>of</strong> a large,centralized data repository accessed directly by only a fewusers be replaced by a less centralized model, sometimesgoing as far as using a distributed database system wheredata “objects” can reside throughout the network yet beaccessed quickly by any user (see database managementsystem). An alternative is the data repository that includesqueries <strong>and</strong> other tools (see data warehouse).Future <strong>of</strong> MISWith the prominence <strong>of</strong> the Internet <strong>and</strong> e-commerce today,MIS has had to cope with an even more complex <strong>and</strong> fastmovingworld. On the one h<strong>and</strong>, widespread e-commerceenables the capturing <strong>of</strong> more detailed data about transactions<strong>and</strong> consumer behavior in general. New tools for analyzinglarge repositories <strong>of</strong> data (see data mining) make itpossible to continually derive new insights from the recentpast. It is thus clear that information is not just a tool butalso a corporate asset in itself. On the other h<strong>and</strong>, fiercecompetition <strong>and</strong> <strong>of</strong>ten shrinking pr<strong>of</strong>it margins in e-commercehave placed increasing pressure on MIS departmentsto find the greatest competitive advantage in the shortestpossible time.The importance <strong>of</strong> MIS has also been reflected in itsplace in the corporate hierarchy. The top-level executivepost <strong>of</strong> Chief Information Officer (CIO) has perhaps notyet achieved parity with the Chief Financial Officer (CFO),but healthy budgets for MIS even in constrained economictimes testify to its continuing importance.Further ReadingKroenke, David. Using MIS. Upper Saddle River, N.J.: PrenticeHall, 2005.Laudon, Kenneth C., <strong>and</strong> Jane P. Laudon. Management InformationSystems: Managing the Digital Firm. 10th ed. Upper SaddleRiver, N.J.: Prentice Hall, 2006.“MIS Resources.” Available online. URL: http://www3.uakron.edu/management/index.html. Accessed August 14, 2007.Turban, Efraim, et al. Information <strong>Technology</strong> for Management. 6thed. New York: Wiley, 2007map information <strong>and</strong> navigation systemsA variety <strong>of</strong> online services use the integration <strong>of</strong> maps<strong>and</strong> databases to provide detailed information ranging fromweather forecasts to traffic conditions to local shopping <strong>and</strong>restaurants. Increasingly, these services can be customizedto the user’s needs. Further, when combined with globalpositioning system (GPS) devices, the map display can befocused on the user’s current location, providing navigation<strong>and</strong>/or “points <strong>of</strong> interest” information. (For mappingsystems primarily designed for scientific or other analyticaluse, see geographical information systems.)MapquestMapQuest has its roots in the Cartographic Services Division<strong>of</strong> R. R. Donnelley, a leading maker <strong>of</strong> printed maps.The company first went online in 1996, was renamed Map-Quest in 1999, <strong>and</strong> was acquired by America Online (AOL)in 2000.The basic services <strong>of</strong>fered by MapQuest are street maps<strong>of</strong> a user-specified location, <strong>and</strong> driving routes betweenan origin <strong>and</strong> a destination. In recent years the servicehas been elaborated to allow users to customize routes, toobtain location-related “Yellow Pages” service from AOL,<strong>and</strong> to receive maps <strong>and</strong> driving directions on PDAs <strong>and</strong>mobile phones.Google Maps <strong>and</strong> Google EarthArriving on the Web in 2005 was Google Maps, a moresophisticated <strong>and</strong> versatile mapping service. There are fourtypes <strong>of</strong> map view: street map, actual satellite or aerial photo,street map overlaid on photo, <strong>and</strong> street-level photo views(in selected cities.) Besides specifying a particular locationfor the map, users can enter queries such as “pizza in Berkeley”to highlight locations where the pies are available.A related application is Google Earth, which was basedon a product acquired by Google in 2004. Google Earth isavailable for PCs running Windows, Mac OS, <strong>and</strong> Linux,<strong>and</strong> shows detailed imagery <strong>of</strong> most terrain at 15-metersresolution or smaller, with considerably more detailed imagery<strong>of</strong> some cities. Views have also been enhanced to providea better 3D visualization <strong>of</strong> features such as the Gr<strong>and</strong>Canyon or Mount Everest, as well as a significant number <strong>of</strong>major buildings. In 2007 Google added sky views as well assurface views <strong>of</strong> the Moon <strong>and</strong> Mars.Like other Google services, Google Maps <strong>and</strong> GoogleEarth <strong>of</strong>fer extensive interfaces that can be used to linkmaps <strong>and</strong> imagery with data from other programs. Forexample, Wikipedia articles that include coordinate tagswill now be automatically linked to the correspondingcontent from Google Earth. (For more on the creation <strong>of</strong>new applications through combining existing services, seemashups.)Because mapping services (particularly Google) havefeatured relatively high-resolution aerial <strong>and</strong> even streetlevelphotographic views, some government agencies aroundthe world have complained that the service is providingtoo much detail <strong>of</strong> military or other sensitive installations.(This is also a potential terrorism concern.) Also, privacy


marketing <strong>of</strong> s<strong>of</strong>tware 293advocates are concerned that actual images <strong>of</strong> identifiablepersons show up in the street-level imagery.Google has responded to security concerns by blurringthe imagery <strong>of</strong> some U.S. locations, presumably at governmentrequest. They have also argued that pictures <strong>of</strong> peoplewho are in public places months or years earlier are not areal privacy concern.Mobile Navigation SystemsMobile navigation systems can provide maps, driving directions,<strong>and</strong> sometimes additional information such as trafficconditions <strong>and</strong> advisories. The system can be either builtinto the dashboard (as with many higher-end vehicles) oravailable as a mounted unit such as those from Garmin,Tom Tom, <strong>and</strong> Magellan (see cars <strong>and</strong> computing).Mobile navigation systems link the user’s current location(obtained through the GPS system) to the unit’s storeddatabase <strong>of</strong> maps <strong>and</strong> other information, such as localpoints <strong>of</strong> interest. (Some units have backup dead-reckoningsystems based on the car’s motion, for use when GPSsignals are lost or distorted because <strong>of</strong> buildings or otherobstacles.)An alternative to in-car systems is the smartphone orPDA equipped with GPS <strong>and</strong> navigation s<strong>of</strong>tware. Thesehave the advantage <strong>of</strong> also being useful for pedestrians orhikers.Users should look for navigation systems that have featuressuch as:• large, clear, readable display• overhead display <strong>and</strong> display from driver’s point <strong>of</strong>view• uncluttered user interface to avoid distracting thedriver• voice announcements <strong>of</strong> driving directions <strong>and</strong> otherinformation• comprehensive maps <strong>and</strong> database including the abilityto load supplemental coverage for other areasAn important <strong>and</strong> sometimes overlooked issue withmobile navigation systems is the need to design the display<strong>and</strong> user interface so as to minimize distraction. A combination<strong>of</strong> large displays without unnecessary complexity<strong>and</strong> the use <strong>of</strong> spoken driving directions can help. A morecontroversial approach is to disable many functions <strong>of</strong> thesystem (such as entering new destinations) while the car isin motion.Further ReadingCar GPS (Navigation) Reviews. CNET. Available online. URL:http://reviews.cnet.com/4566-3430_7-0.html. Accessed September30, 2007.Crowder, David A. Google Earth for Dummies. Hoboken, N.J.:Wiley, 2007.Google Maps. Available online. URL: http://maps.google.com.Accessed September 29, 2007.H<strong>of</strong>mann-Wellenh<strong>of</strong>, Bernhard, Klaus Legat, <strong>and</strong> Manfred Wieser.Navigation: Principles <strong>of</strong> Positioning <strong>and</strong> Guidance. New York:Springer, 2003.“Introduction to In-Car Navigation.” Crutchfield Advisor. Availableonline. URL: http://www.crutchfieldadvisor.com/ISEOrgbtcspd/learningcenter/car/navigation.html.Accessed September30, 2007.Mapquest. Available online. URL: http://www.mapquest.com/.Accessed September 29, 2007.Purvis, Michael, Jeffrey Sambells, <strong>and</strong> Cameron Turner. BeginningGoogle Maps Applications with PHP <strong>and</strong> Ajax: From Novice toPr<strong>of</strong>essional. Berkeley, Calif.: APress, 2006.marketing <strong>of</strong> s<strong>of</strong>twareThe way s<strong>of</strong>tware has been produced <strong>and</strong> marketed haschanged considerably in the past five decades. In the nascentcomputer industry <strong>of</strong> the 1950s, commercial s<strong>of</strong>tware wasdeveloped <strong>and</strong> marketed by the manufacturers <strong>of</strong> computersystems—firms such as Univac (later Sperry-Univac), Burroughs,<strong>and</strong> <strong>of</strong> course, IBM (see mainframe). However, aseparate (third-party) s<strong>of</strong>tware industry emerged as earlyas 1955 with the founding <strong>of</strong> <strong>Computer</strong> Usage Corporation(CUC) by two former IBM employees. Nevertheless, the primarycompetition was between hardware manufacturers,with s<strong>of</strong>tware seen as part <strong>of</strong> the overall package.By the early 1960s, larger s<strong>of</strong>tware companies emergedsuch as <strong>Computer</strong> <strong>Science</strong> Corporation (CSC) <strong>and</strong> ElectronicData Systems (EDS), which became an empire underthe energetic, albeit <strong>of</strong>ten controversial leadership <strong>of</strong> H.Ross Perot, as well as the European giant SAP. These companiesspecialized in providing customized s<strong>of</strong>tware solutionsfor users who could not meet their needs with thes<strong>of</strong>tware library <strong>of</strong>fered by the maker <strong>of</strong> their computer system(see also business applications <strong>of</strong> computers).By the 1970s, however, vendor-supplied <strong>and</strong> contractedcustom s<strong>of</strong>tware alternatives were being increasinglyaccompanied by “<strong>of</strong>f the shelf” s<strong>of</strong>tware packages. By 1976,100 s<strong>of</strong>tware products from 64 s<strong>of</strong>tware companies hadreached the $1 million mark in sales.The 1980s saw the emergence <strong>of</strong> a completely new sector:desktop computer (PC) users. Traditionally, s<strong>of</strong>twarehad been marketed to programmers or managers, but nowindividual users or <strong>of</strong>fice managers could buy <strong>and</strong> installword processing programs, spreadsheets, database, <strong>and</strong>other programs. At the same time, a market for s<strong>of</strong>tware foruse in the home <strong>and</strong> schools, particularly education, personalcreativity, <strong>and</strong> game programs required new methods<strong>of</strong> marketing. For the first time ads for s<strong>of</strong>tware began toappear on TV <strong>and</strong> in general-interest magazines.While large businesses still required custom-made s<strong>of</strong>tware,most small to medium businesses looked for powerful<strong>and</strong> integrated <strong>of</strong>fice s<strong>of</strong>tware solutions (see applicationsuite, <strong>of</strong>fice automation, <strong>and</strong> Gates, William). By themid-1990s, Micros<strong>of</strong>t’s Office suite had dominated thismarket, although that dominance began to be threatened tosome extent by s<strong>of</strong>tware written in Java or hosted on Linuxsystems (see also open source movement).The growth in the Internet (see e-commerce) has also<strong>of</strong>fered new venues for the marketing <strong>and</strong> distribution<strong>of</strong> s<strong>of</strong>tware. Sites such as ZDNet <strong>and</strong> CNet have to someextent displaced computer magazines as sources for productreviews. These sites also <strong>of</strong>fer extensive libraries <strong>of</strong> “try


294 mashupsbefore you buy” s<strong>of</strong>tware (see shareware), some <strong>of</strong> whichis trial versions <strong>of</strong> full-blown commercial products. Thelocal “mom <strong>and</strong> pop” PC s<strong>of</strong>tware store has largely vanished,with s<strong>of</strong>tware now marketed mainly by chain storessuch as Electronics Boutique or CompUSA, <strong>and</strong> increasingly,through Web-based stores, <strong>of</strong>ten established by thechains, as well as the giant on-line bookstore Amazon.com.Another trend impacting the traditional package model<strong>of</strong> s<strong>of</strong>tware delivery is the hosting <strong>and</strong> serving <strong>of</strong> applicationsonline (see application service provider) using asubscription model. Google has <strong>of</strong>fered a free suite <strong>of</strong> <strong>of</strong>fice<strong>and</strong> communications applications online, including componentsthat can be used <strong>of</strong>f-line. This <strong>and</strong> other emerging<strong>of</strong>ferings may portend further splitting <strong>of</strong> the s<strong>of</strong>twaremarket into high-end or specialized applications on the oneh<strong>and</strong>, <strong>and</strong> added-value or premium versions <strong>of</strong> free s<strong>of</strong>twareon the other.Further ReadingCampbell-Kelly, Martin. From Airline Reservations to Sonic theHedgehog: A History <strong>of</strong> the S<strong>of</strong>tware Industry. Cambridge,Mass.: MIT Press, 2004.<strong>Computer</strong> History Museum. S<strong>of</strong>tware Industry SIG. “Preservingthe History <strong>of</strong> the S<strong>of</strong>tware Industry.” Available online. URL:http://www.s<strong>of</strong>twarehistory.org/. Accessed August 14, 2007.Cusumano, Michael. The Business <strong>of</strong> S<strong>of</strong>tware: What Every Manager,Programmer, <strong>and</strong> Entrepreneur Must Know to Thrive <strong>and</strong>Survive in Good Times <strong>and</strong> Bad. New York: Free Press, 2004.Hasted, Edward. S<strong>of</strong>tware that Sells: A Practical Guide to Developing<strong>and</strong> Marketing Your S<strong>of</strong>tware Project. Indianapolis: Wiley,2005.Plunkett, Jack W. Plunkett’s InfoTech Industry Almanac. Houston,Tex.: Plunkett Research, 2007.mashupsToday the creative world has blurred the boundaries thatonce separated works <strong>of</strong> art. Songs are sampled <strong>and</strong> remixedfrom earlier songs. Star Wars fans create new chapters inthe saga by remixing existing footage <strong>and</strong> adding their ownnew footage <strong>and</strong> effects. The fluidity <strong>and</strong> ease <strong>of</strong> manipulation<strong>of</strong> all digital data, regardless <strong>of</strong> its original source, hasmade it easier than ever before to reuse, repurpose, or reinventcontent. It is not surprising, then, that s<strong>of</strong>tware itselfcan be mixed <strong>and</strong> matched to create new applications calledmashups.Mashups are new applications created by puttingtogether data or features from existing applications, such asmaps <strong>and</strong> databases. Many Web applications are designedto make their services available to other programs (see service-orientedarchitecture <strong>and</strong> Web 2.0). This can bedone at the programming level by providing an applicationprogramming interface (see api), or even through simplerfacilities that can be used easily by nonprogrammers.A number <strong>of</strong> major Web sites <strong>and</strong> applications provideresources for mashups, including Google (particularlyGoogle Maps), Amazon, eBay, Flickr, YouTube (image <strong>and</strong>video sharing), the “social bookmarking” site del.iciou.us,<strong>and</strong> many others. Some <strong>of</strong> these services (<strong>and</strong> third parties)have provided mashup editors to simplify the process <strong>of</strong>creating mashups.As a simple example, suppose one wants to create a mapdisplay showing rentals in San Francisco by neighborhood,color coded by rent range. Google Maps can generate mapsfor any area <strong>and</strong> plot points on them, given coordinates in ast<strong>and</strong>ard tag. Craigslist has rental ads including addresses.To create a mashup, a “screenscraper” can be used to extractaddresses <strong>and</strong> rents from the ads, <strong>and</strong> the colored pointscan then be plotted on a map <strong>of</strong> the city via Google.While the most common types <strong>of</strong> mashups are createdby <strong>and</strong> for ordinary users, mashup techniques can alsobe used in business applications. For example, data fromseveral sources (such as Web feeds [see rss]) or variousdatabases can be brought together <strong>and</strong> provided with aneasy-to-use interface (see digital dashboard).Mashups can also be considered to be an aspect <strong>of</strong> theemerging new information economy. Developers may befinding it in their interest to provide APIs <strong>and</strong> services suitablefor mashups because, in turn, the mashups increasethe use <strong>of</strong> the original program. By providing these services,developers are also contributing to a “digital commons”that benefits all.Further ReadingFeiler, Jesse. How to Do Everything with Web 2.0 Mashups.Emeryville, Calif.: McGraw Hill-Osborne, 2007.Google Mashup Editor. Available online. URL: http://code.google.com/gme/. Accessed October 1, 2007.“How to Create a Mashup.” Mashup Awards. Available online.URL: http://mashupawards.com/create/. Accessed October 1,2007.Lewis, Andre, et al. Beginning Google Maps Applications with Rails<strong>and</strong> Ajax: From Novice to Pr<strong>of</strong>essional. Berkeley, Calif.: Apress,2007.Micros<strong>of</strong>t Popfly. Available online. URL: http://www.popfly.com/.Accessed October 1, 2007.QEDWiki (IBM). Available online. URL: http://services.alphaworks.ibm.com/qedwiki/.Accessed October 1, 2007.Yahoo! Pipes. Available online. URL: http://pipes.yahoo.com/pipes/. Accessed October 1, 2007.Yee, Raymond. Pro Web 2.0 Mashups: Remixing Data <strong>and</strong> Web Services.Berkeley, Calif.: Apress, 2008.mathematics <strong>of</strong> computingThe roots <strong>of</strong> modern computer science lie in an interest inrapid computation. Simple mechanical calculators (see calculator)may date back to ancient times; however, it is thework <strong>of</strong> mathematicians Blaise Pascal (1623–1662) <strong>and</strong> GottfriedLeibniz (1646–1716) that gave rise to the first practicalmechanical calculators. By the mid-19th century, CharlesBabbage (1791–1871) had conceptualized <strong>and</strong> designedmechanical computers that included the essential features(programs, processor, memory, input/output) <strong>of</strong> the moderndigital computer (see Babbage, Charles). His motivationwas the need for rapid, accurate calculation <strong>of</strong> statisticaltables made necessary by the manufacturing economy <strong>of</strong> theIndustrial Revolution. By the end <strong>of</strong> the century, the volume<strong>of</strong> such data had increased to the point where mechanicalcalculators <strong>and</strong> tabulators (see Hollerith, Herman) hadbecome the only practical way to keep up.


mathematics s<strong>of</strong>tware 295Mathematically, a computer can be seen as a way to rapidly<strong>and</strong> automatically execute procedures that have beenproven to lead to reliable solutions to a problem (see algorithm).Once computers came on the scene, mathematicalprinciples for verifying or proving algorithms wouldacquire new practical importance.By the early 20th century, however, mathematicianswere beginning to examine the problem <strong>of</strong> determiningwhat propositions were provable, <strong>and</strong> in 1931 Kurt Godelpublished a pro<strong>of</strong> that any mathematical system necessarilyallowed for the formation <strong>of</strong> propositions that could notbe proven using the axioms <strong>of</strong> that system. An analogousquestion was determining what problems were computable.Working independently, two researchers (see Church,Alonzo <strong>and</strong> Turing, Alan) formulated models that couldbe used to test for computability. Turing’s model, in particular,provided a theoretical construct (the Turing Machine)that could, using combinations <strong>of</strong> a few simple operations,calculate anything that was computable.By the 1940s, electromechanical (relays) or electronic(tube) switching elements made it possible to build practicalhigh-speed computers. <strong>Computer</strong> circuit designerscould draw upon the advances in symbolic logic in the 19thcentury (see Boolean operators). Boolean logic, with itstrue/false values, would prove ideal for operating computersconstructed from on/<strong>of</strong>f switched elements.The mathematical tools <strong>of</strong> the previous 150 yearscould now be used to design systems that could not onlycalculate but also manipulate symbols <strong>and</strong> achieve resultsin higher mathematics (see the next entry, mathematicss<strong>of</strong>tware).Mathematics <strong>and</strong> Modern <strong>Computer</strong>sA variety <strong>of</strong> mathematical disciplines bear upon the design<strong>and</strong> use <strong>of</strong> modern computers. Simple or complex algebrausing variables in formulas is at the heart <strong>of</strong> many programsranging from financial s<strong>of</strong>tware to flight simulators.Indeed, one <strong>of</strong> the most enduring scientific <strong>and</strong> engineeringlanguages takes its name from the process <strong>of</strong> translatingformulas into computer instructions (see fortran).Geometry, particularly the analytical geometry basedupon the coordinate system devised by Rene Descartes(1596–1650) is fundamental to computer graphics displays,where the screen is divided into X (vertical) <strong>and</strong> Y(horizontal) axes. Modern graphics systems have added 3Ddepiction <strong>and</strong> sophisticated algorithms to allow the rapiddisplay <strong>of</strong> complex objects. Beyond graphics, the Cartesianinsight that converted geometry into algebra makes avariety <strong>of</strong> geometrical problems accessible to computation,including the finding <strong>of</strong> optimum paths for circuit design.Design <strong>of</strong> computer <strong>and</strong> network architectures also involvesthe related field <strong>of</strong> topology. The fascinating field <strong>of</strong> fractalgeometry has found use in computer graphics <strong>and</strong> data storagetechniques (see fractals in computing).Aspects <strong>of</strong> number theory, <strong>of</strong>ten considered the mostabstract branch <strong>of</strong> mathematics, have found surprising relevancein computer applications. These include r<strong>and</strong>omization(r<strong>and</strong>om number generation) <strong>and</strong> the factoring <strong>of</strong> largenumbers, which is crucial for cryptography.Mathematics also bears on computer networking withregard to communications theory (see b<strong>and</strong>width <strong>and</strong>Shannon, Claude) <strong>and</strong> techniques for error correction.The <strong>Computer</strong>’s Contribution toMathematicsMathematics as a discipline is thus essential to its youngersibling, computer science. In turn, however, computer science<strong>and</strong> technology have enriched the pursuit <strong>of</strong> mathematicaltruth in surprising ways. As early as 1956, aprogram called Logic Theorist, written by Herbert Simon(1916–2001) <strong>and</strong> Allen Newell (1927–1992) demonstratedhow a program (that is, a collection <strong>of</strong> algorithms) couldprove mathematical propositions given axioms <strong>and</strong> rules.While these early programs worked on a somewhat hitor-missbasis, later theorem-solving programs producedsolutions different from the st<strong>and</strong>ard ones known to mathematicians,<strong>and</strong> sometimes more elegant. Thus the computer,which began as an aid to calculation, became an aidto symbol manipulation <strong>and</strong> to some extent an independentcreative source.Further Reading“<strong>Computer</strong>s & Math News.” <strong>Science</strong>Daily. Available online.URL: http://www.sciencedaily.com/news/computers_math/.Accessed August 14, 2007.Henderson, Harry. Modern Mathematics: Powerful Patterns inNature <strong>and</strong> Society. New York: Chelsea House, 2007.Maxfield, Clive, <strong>and</strong> Alan Brown. The Definitive Guide to How<strong>Computer</strong>s Do Math. New York: Wiley-Interscience, 2005.McCullough, Robert. Mathematics for <strong>Computer</strong> <strong>Technology</strong>. 3rded. Engelwood, Colo.: Morton Publishing, 2006.Took, D. James, <strong>and</strong> Norma Henderson. Using Information <strong>Technology</strong>in Mathematics Education. New York: Haworth Press,2001.Vince, John. Mathematics for <strong>Computer</strong> Graphics. 2nd ed. NewYork: Springer, 2005.mathematics s<strong>of</strong>twareAs explained in the preceding article, computer sciencelooked to mathematics to create <strong>and</strong> verify its algorithms.In turn, computer s<strong>of</strong>tware has greatly aided many levels<strong>of</strong> mathematical work, ranging from simple calculations tomanipulation <strong>of</strong> symbols <strong>and</strong> abstract forms.At the simplest level, computers overlap the functions<strong>of</strong> simple electronic calculators. Indeed, operating systemssuch as Micros<strong>of</strong>t Windows <strong>and</strong> UNIX systems includecalculator utilities that can be used to solve problemsrequiring a basic four function or more elaborate scientificcalculator.The true power <strong>of</strong> the computer became more evident toordinary users when spreadsheet s<strong>of</strong>tware was introducedcommercially in 1979 with VisiCalc (see spreadsheet).Spreadsheets make it easy to maintain <strong>and</strong> update summaries<strong>and</strong> other reports generated by formulas. Later versions<strong>of</strong> spreadsheet programs such as Lotus 1-2-3 <strong>and</strong> Micros<strong>of</strong>tExcel have the ability to create a wide variety <strong>of</strong> plots <strong>and</strong>charts to show relationships between variables in visualterms.


296 Mauchly, John WilliamMoving from simple formulas to the manipulation <strong>of</strong> symbolicquantities (as in algebra), the Association for ComputingMachinery (ACM) classification system describes severalbroad areas <strong>of</strong> computer-aided mathematics. These includenumerical analysis (techniques for solving, linear, non-linear,<strong>and</strong> differential equations), discrete mathematics (combinatorial<strong>and</strong> graph theory), <strong>and</strong> probability <strong>and</strong> statistics.There are two general approaches to mathematicals<strong>of</strong>tware. One is the creation <strong>of</strong> libraries <strong>of</strong> routines orprocedures that address particular kinds <strong>of</strong> problems. Aprogrammer who is creating s<strong>of</strong>tware that must deal withparticular mathematical problems can link these routinesto the program, call the procedures with appropriate variablesor data, <strong>and</strong> return the results to the main programfor further processing (see procedures <strong>and</strong> functions).The language FORTRAN is still widely used for developingmathematics libraries, <strong>and</strong> there is a legacy <strong>of</strong> tens <strong>of</strong> thous<strong>and</strong>s<strong>of</strong> routines available. Modern systems have the abilityto link these procedures to programs written in more recentlanguages such as C.The advantage <strong>of</strong> using program libraries is that theydon’t require learning new programming techniques. Eachroutine can be treated as a “black box.” However, it is <strong>of</strong>tendesirable to work with traditional mathematical notation(what one might see on a blackboard in a calculus class,rather than typed into computer code). A st<strong>and</strong>-alone s<strong>of</strong>twarepackage such as Mathcad, Matlab, or Mathematicacan automatically simplify or solve algebraic expressions orperform hundreds <strong>of</strong> traditional mathematical procedures.For statistical analysis, programs such as SPSS can apply all<strong>of</strong> the st<strong>and</strong>ard statistical tests to data <strong>and</strong> provide a largevariety <strong>of</strong> graphics.Further ReadingField, Andy. Discovering Statistics Using SPSS. 2nd ed. Thous<strong>and</strong>Oaks, Calif.: SAGE Publications, 2005.Griffith, Arthur. SPSS for Dummies. Hoboken, N.J.: Wiley, 2007.Netlib Repository <strong>of</strong> Mathematical S<strong>of</strong>tware, Papers, <strong>and</strong> Databases.Available online. URL: http://www.netlib.org/. AccessedAugust 14, 2007.Press, William H., et al. Numerical Recipes. 3rd ed. New York:Cambridge University Press, 2007.Ruskeepaa, Heikki. Mathematica Navigator: Mathematics, Statistics,<strong>and</strong> Graphics. Burlington, Mass.: Elsevier AcademicPress, 2004.Wellin, Paul, Richard Gaylord, <strong>and</strong> Samuel Kamin. An Introductionto Programming with Mathematica. New York: CambridgeUniversity Press, 2005.Wolfram, Stephen. The Mathematica Book. 5th ed. Champaign, Ill.:Wolfram Media, 2003.Wolfram Mathematica Home Page. Available online. URL: http://www.wolfram.com/. Accessed August 14, 2007.Mauchly, John William(1907–1980)AmericanInventor, <strong>Computer</strong> ScientistJohn Mauchly was codesigner <strong>of</strong> the earliest full-scale digitalcomputer, ENIAC, <strong>and</strong> its first commercial successor,Univac (see also Eckert, J. Presper). His <strong>and</strong> Eckert’s workwent a long way toward establishing the viability <strong>of</strong> thecomputer industry in the early 1950s.Mauchly was born on August 30, 1907, in Cincinnati,Ohio. He attended the McKinley Technical High School inWashington, D.C., <strong>and</strong> then began his college studies atJohns Hopkins University, eventually changing his majorfrom engineering to physics. The spectral analysis problemshe tackled for his Ph.D. (awarded in 1932) <strong>and</strong> inpostgraduate work required a large amount <strong>of</strong> painstakingcalculation. So, too, did his later interest in weather prediction,which led him to design a mechanical computerfor harmonic analysis <strong>of</strong> weather data (see analog computer).He also learned about binary switching circuits(“flip-flops”) <strong>and</strong> experimented with building electroniccounters, which used vacuum tubes <strong>and</strong> were much fasterthan counters using electromagnetic relays.Mauchly taught physics at Ursinus College in Philadelphiafrom 1933 to 1941. On the eve <strong>of</strong> World War II, however,he went to the University <strong>of</strong> Pennsylvania’s MooreSchool <strong>of</strong> Engineering <strong>and</strong> took a course in military applications<strong>of</strong> electronics. He then joined the staff <strong>and</strong> beganworking on contracts to prepare artillery firing tables forthe military. Realizing how intensive the calculationswould be, in 1942 he wrote a memo proposing that anelectronic calculator be built to tackle the problem. Theproposal was rejected at first, but by 1943 table calculationby mechanical methods was falling even further behind.Herman Goldstine, who had been assigned by the AberdeenProving Ground to break the bottleneck, approved the calculatorproject.With Mauchly providing theoretical design work <strong>and</strong>J. Presper Eckert heading the engineering effort, the ElectronicNumerical Integrator <strong>and</strong> <strong>Computer</strong>, better known asENIAC, was completed too late to influence the outcome <strong>of</strong>the war. However, when the machine was demonstrated inFebruary, 1946, it showed that a programmable electroniccomputer was not only about a thous<strong>and</strong> times faster thanan electromechanical calculator, it could be used as a general-purposeproblem-solver that could do much more thanexisting calculators.Mauchly <strong>and</strong> Eckert left the Moore School after a disputeabout who owned the patent for the computer work.They jointly founded what became known as the Eckert-Mauchly <strong>Computer</strong> Corporation, betting on Mauchly’s confidencethat there was sufficient dem<strong>and</strong> for computers notonly for scientific or military use, but for business applicationsas well. By 1950, however, they were struggling to sell<strong>and</strong> build their improved computer, Univac, while fulfillingexisting government contracts for a scaled-down versioncalled BINAC. In 1950, they sold their company to RemingtonR<strong>and</strong>, while continuing to work on Univac. In 1952,Univac stunned the world by correctly predicting the presidentialelection results on election night long before most <strong>of</strong>the votes had come in.Early on, Mauchly saw the need for a better way to writecomputer programs. Univac <strong>and</strong> other early computers hadbeen programmed through a mixture <strong>of</strong> rewiring, setting <strong>of</strong>switches, <strong>and</strong> entering numbers into registers. This made


McCarthy, John 297programming difficult, tedious, <strong>and</strong> error-prone. Mauchlywanted a way that variables could be represented symbolically:for example, Total rather than a register number suchas 101. Under Mauchly’s supervision William Schmitt wrotewhat became known as Brief Code. It allowed two-lettercombinations to st<strong>and</strong> for both variables <strong>and</strong> operationssuch as multiplication or exponentiation. A special programread these instructions <strong>and</strong> converted them to thenecessary register <strong>and</strong> machine operation comm<strong>and</strong>s (seeinterpreter). While primitive compared to later languages(see assembler <strong>and</strong> programming languages), Brief Coderepresented an important leap forward in making computersmore usable.Mauchly stayed with Remington R<strong>and</strong> <strong>and</strong> its successorSperry R<strong>and</strong> until 1959, but then left over a dispute aboutthe marketing <strong>of</strong> the Univac. He continued his career as aconsultant <strong>and</strong> lecturer. Mauchly <strong>and</strong> Eckert also becameembroiled in a patent dispute arising from their originalwork with ENIAC. Accused <strong>of</strong> infringing Sperry R<strong>and</strong>’sENIAC patents, Honeywell claimed that the ENIAC patentwas invalid, with another computer pioneer, John Atanas<strong>of</strong>f,claiming that Mauchly <strong>and</strong> Eckert had obtained crucialideas after visiting his laboratory in 1940 (see Atanas<strong>of</strong>f,John Vincent).In 1973, Judge Earl Richard Larson ruled in favor <strong>of</strong>Atanas<strong>of</strong>f <strong>and</strong> Honeywell. However, many historians <strong>of</strong>the field give Mauchly <strong>and</strong> Eckert the lion’s share <strong>of</strong> thecredit because it was they who had built full-scale, practicalmachines.Mauchly played a key role in founding the Associationfor Computing Machinery (ACM), one <strong>of</strong> the field’s premierpr<strong>of</strong>essional organizations. He served as its first vice president<strong>and</strong> second president. He received many tokens <strong>of</strong> recognitionfrom his peers, including the Howard Potts Medal<strong>of</strong> the Franklin Institute. In turn, the ACM established anEckert-Mauchly award for excellence in computer design.John Mauchly died on January 8, 1980.Further Reading“John W. Mauchly <strong>and</strong> the Development <strong>of</strong> the ENIAC <strong>Computer</strong>:An Exhibition in the Department <strong>of</strong> Special Collections, VanPelt Library, University <strong>of</strong> Pennsylvania.” Available online.URL: http://www.library.upenn.edu/exhibits/rbm/mauchly/jwmintro.html. Accessed August 14, 2007.McCartney, Scott. ENIAC: The Triumphs <strong>and</strong> Tragedies <strong>of</strong> the World’sFirst <strong>Computer</strong>. New York: Berkeley Books, 1999.Stern, N. “John William Mauchly: 1907–1980,” Annals <strong>of</strong> the History<strong>of</strong> Computing (April 1980): 100–103.McCarthy, John(1927– )American<strong>Computer</strong> Scientist, AI PioneerStarting in the 1950s, John McCarthy played a key role inthe development <strong>of</strong> artificial intelligence as a discipline, aswell as developing LISP, the most popular language in AIresearch.John McCarthy was born on September 4, 1927, in Boston,Massachusetts. He completed his B.S. in mathematicsat the California Institute <strong>of</strong> <strong>Technology</strong>, then earned hisPh.D. at Princeton University in 1951. During the 1950s, heheld teaching posts at Stanford University, Dartmouth College,<strong>and</strong> the Massachusetts Institute <strong>of</strong> <strong>Technology</strong>.Although he seemed destined for a prominent careerin pure mathematics, he encountered computers whileworking during the summer <strong>of</strong> 1955 at an IBM laboratory.He was intrigued with the potential <strong>of</strong> the machines forhigher-level reasoning <strong>and</strong> intelligent behavior (see artificialintelligence). The following year he put togethera conference that brought together people who wouldbecome key AI researchers, including Marvin Minsky (seeMinsky, Marvin). He proposed that “the study is to proceedon the basis <strong>of</strong> the conjecture that every aspect <strong>of</strong>learning or any other feature <strong>of</strong> intelligence can in principlebe so precisely described that a machine can be madeto simulate it. An attempt will be made to find how tomake machines use language, form abstractions <strong>and</strong> concepts,solve kinds <strong>of</strong> problems now reserved for humans,<strong>and</strong> improve themselves.”Mathematics had well-developed symbolic systemsfor expressing its ideas. McCarthy decided that ifAI researchers were to meet their ambitious goals, theywould need a programming language that was equallycapable <strong>of</strong> expressing <strong>and</strong> manipulating symbols. Startingin 1958, he developed LISP, a language based on liststhat could flexibly represent data <strong>of</strong> many kinds <strong>and</strong> evenallowed programs to be fed as data to other programs(see lisp). LISP would be used in the coming decades tocode most AI research projects, <strong>and</strong> McCarthy continuedto play an important role in refining the language, whilemoving to Stanford in 1962, where he would spend therest <strong>of</strong> his career.McCarthy also contributed to the development <strong>of</strong>Algol, a language that would in turn greatly influencemodern procedural languages such as C. He also helpeddevelop new ways for people to use computers. Consultingwith Bolt, Beranek <strong>and</strong> Newman (the companythat would later build the beginnings <strong>of</strong> the Internet),he helped design time-sharing, a system that allowedmany users to share the same computer, bringing downthe cost <strong>of</strong> computing <strong>and</strong> making it accessible to morepeople. He also sought to make computers more interactive,designing a system called THOR, which used videodisplay terminals. Indeed, he pointed the way to the personalcomputer in a 1972 paper on “The Home InformationTerminal.”In 1971, McCarthy received the prestigious A. M. Turingaward from the Association for Computing Machinery. Inthe 1970s <strong>and</strong> 1980s, he taught at Stanford <strong>and</strong> remained aprominent spokesperson for AI, arguing against critics suchas philosopher Hubert Dreyfus (see Dreyfus, Hubert),who claimed that machines could never achieve true intelligence.In 2000 McCarthy retired from Stanford, where heremains a Pr<strong>of</strong>essor Emeritus. In 2003 McCarthy receivedthe Benjamin Franklin Medal in <strong>Computer</strong> <strong>and</strong> Cognitive<strong>Science</strong>.


298 measurement units used in computingFurther Reading“John McCarthy’s Home Page.” Available online. URL: http://wwwformal.stanford.edu/jmc/.Accessed August 14, 2007.McCarthy, John. “The Home Information Terminal.” Man <strong>and</strong><strong>Computer</strong>: Proceedings <strong>of</strong> the International Conference, Bordeaux,France, 1970. Basel: S. Karger, 1972, 48–57.———. “Philosophical <strong>and</strong> Scientific Presuppositions <strong>of</strong> LogicalAI,” in McCarthy, H. J. <strong>and</strong> Vladimir Lifschitz, eds., FormalizingCommon Sense: Papers by John McCarthy. Norwood, N.J.:Ablex, 1990.McCorduck, Pamela. Machines Who Think. 2nd ed. Natick, Mass.:A. K. Peters, 2004.measurement units used in computingNewcomers to the computing world <strong>of</strong>ten have difficultymastering the variety <strong>of</strong> ways in which computer capacity<strong>and</strong> performance are measured. A good first step is to lookat the most common metric prefixes that indicate the magnitude<strong>of</strong> various units (see table).Common Metric Prefixes Used inComputingPrefixkilomegagigateramillimicronanopicoMagnitude10 3 (1 thous<strong>and</strong>)10 6 (1 million)10 9 (1 billion)10 12 (1 trillion)10 -3 (1 thous<strong>and</strong>th)10 -6 (1 millionth)10 -9 (1 billionth)10 -12 (1 trillionth)Strictly speaking, most computer measurements are basedon the binary system, using powers <strong>of</strong> two. Thus kiloactually means 2 10 , which is actually 1,024, <strong>and</strong> mega isactually 2 20 , or 1,048,576. However, this distinction isgenerally not important for gaining a sense <strong>of</strong> the magnitudesinvolved. In 1998, the International ElectrotechnicalCommission promulgated a new set <strong>of</strong> prefixes forthese base two computer-related magnitudes, such thatfor example, mebi- is supposed to be used instead <strong>of</strong>mega-. There is little evidence thus far that this scheme isbeing widely adopted.We will now consider some <strong>of</strong> the main areas in whichcomputer capacity or performance is measured.Storage CapacityThe smallest unit <strong>of</strong> information, <strong>and</strong> thus <strong>of</strong> data storage,is a bit (binary digit). A bit can be either 1 or 0 <strong>and</strong> isphysically represented in different ways according to thememory or storage device being used. On most computersthe most-used storage unit is the byte, which contains eightbits. Since this represents eight binary digits, or 2 8 , a bytecan hold values from 0 to 255 (decimal). The following tablegives some typical units <strong>of</strong> storage.Unitbitbyte (8 bits)kilobytemegabytegigabyteterabyteData Storage UnitsTypical UseProcessor data h<strong>and</strong>ling capacity. Mostprocessors today can h<strong>and</strong>le 32 or 64 bits ata time.Holds an ASCII character value or a smallnumber, 0–255.Used to measure RAM (r<strong>and</strong>om accessmemory) <strong>and</strong> floppy disk capacity forearly PCs.RAM capacity in older PCs; hard drivecapacity in older PCs.Memory <strong>and</strong> drive capacity in modern PCs.Large modern hard drives; drive arrays (seeraid).GraphicsPrinted output is generally measured in dots per inch (dpi).Screen images <strong>and</strong> images used in digital photography aremeasured in pixels or megapixels. However, the amount <strong>of</strong>data needed to specify (<strong>and</strong> thus store) a pixel in an imagedepends on the number <strong>of</strong> colors <strong>and</strong> other information tobe stored. (See graphics formats.)Processor SpeedProcessor speed is measured in millions <strong>of</strong> cycles per second(megahertz or MHz). The earliest microprocessors hadspeeds measured in 1–2 MHz or so. PCs <strong>of</strong> the 1980s rangedfrom about 8 to 50 MHz. In the 1990s, speeds ramped up tothe hundreds <strong>of</strong> MHz, <strong>and</strong> in today’s systems PC speeds are<strong>of</strong>ten measured in gigahertz (GHz).Calculation SpeedThe speed at which a computer can perform calculationsdepends on more than raw processor speed. For example,a processor that can store or fetch 32-bit numbers can performmany calculations faster than one with only a 16-bitcapacity even if the two processors have the same clockspeed in cycles per second.Calculation speed is <strong>of</strong>ten measured in “flops” or floating-pointoperations per second (see numeric data), or formodern processors, megaflops. While this measurement is<strong>of</strong>ten touted in product literature, savvy users look to morereliable benchmarks that re-create actual conditions <strong>of</strong> use,including calculation-intensive, data transfer intensive, orgraphics-intensive operations.Data Communications <strong>and</strong> NetworkingThe speed at which data can be transferred over a modemor network connection is measured in bits per second(BPS). A related term, baud, was used (somewhat inaccurately)with the earlier modems (see b<strong>and</strong>width <strong>and</strong>modem).


medical applications <strong>of</strong> computers 299DeviceTypical Data Transfer Speeds inBits Per Second (BPS)approximate SpeedEthernet(10 base) 10 MbpsFast Ethernet100 MbpsGigabit Ethernet1 GbpsV.90 dial-up modem 56 KbpsISDN phone line64 KbpsDSL (ADSL)1–24 MbpsCable modem (DOCSIS)10–160 MbpsBluetooth 2.0 (see bluetooth) 3 Mbps802.11b wireless (see wireless 11 Mbpscomputing)802.11g wireless (see wireless 54 Mbpscomputing)802.11n wireless 540 MbpsFurther ReadingHow Many? A Dictionary <strong>of</strong> Units <strong>of</strong> Measurement. Available online.URL: http://www.unc.edu/~rowlett/units/. Accessed August 14,2007.Online [unit] Conversion. Available online. URL: http://www.onlineconversion.com/. Accessed August 14, 2007.SG Bits/Bytes Conversion Calculator. Available online. URL:http://www.speedguide.net/conversion.php. Accessed August14, 2007.media center, homeIn recent years many families have acquired a plethora <strong>of</strong>media <strong>and</strong> devices to play it—CD <strong>and</strong> DVD players, radios,<strong>and</strong> <strong>of</strong> course TVs. Meanwhile, the family has likely alsoacquired one or more PCs, which are also capable <strong>of</strong> playingdigital audio <strong>and</strong> video from various sources. The mediacenter is a way <strong>of</strong> integrating all <strong>of</strong> these media into onecentrally located device, the PC, <strong>and</strong> ideally being able toserve it on dem<strong>and</strong> anywhere in the home.Modern PCs already have optical drives (see cd-rom<strong>and</strong> dvd-rom). TV signals can be received using a TV tunercard or, for digital cable signals, a “cable card.” (High-definitionTV or HDTV is becoming increasingly popular.)There are also tuners for AM/FM radio. Of course audio<strong>and</strong> video files can also be received directly over the Internet(see Internet radio; music <strong>and</strong> video distribution,online; <strong>and</strong> streaming).Media Storage <strong>and</strong> DistributionOnce media is received, it can be stored on one or more harddrives (see also DVR). The media can also be distributed toremote speaker units via the wired (or more <strong>of</strong>ten wireless)network. Remote controls are usually provided to allow thesystem to be controlled from anywhere in the building.Of course s<strong>of</strong>tware is needed to integrate these devices<strong>and</strong> functions. Micros<strong>of</strong>t provides the Windows Media Centerfor Vista <strong>and</strong> the Windows XP Media Center Edition.(There is also third-party s<strong>of</strong>tware for Windows.) Linuxsystems can run programs such as MythTV (free) or thecommercial SageTV. For the Macintosh, a project calledCenterStage was under development as <strong>of</strong> 2008.Prebuilt media centers with the PC <strong>and</strong> all the necessaryinputs <strong>and</strong> outputs are also available. They are <strong>of</strong>ten sold aspart <strong>of</strong> home theater systems.Further ReadingBallew, Joli. How to Do Everything with Windows Vista Media Center.Emeryville, Calif.: McGraw-Hill/Osborne, 2007.Knoppmyth (Knoppix <strong>and</strong> MythTV Linux media center). Availableonline. URL: http://www.knoppmythwiki.org/?id=KnoppmythWiki. Accessed October 1, 2007.Layton, Julia. “How Media-Center PCs Work.” Available online.URL: http://computer.howstuffworks.com/media-center-pc.htm. Accessed October 1, 2007.Smith, Stewart, <strong>and</strong> Michael Still. Practical MythTV: Building a PVR<strong>and</strong> Media Center PC. Berkeley, Calif.: Apress, 2007.Windows Media Center (Vista). Available online. URL: http://www.micros<strong>of</strong>t.com/windows/products/windowsvista/features/details/mediacenter.mspx. Accessed October 1, 2007.medical applications <strong>of</strong> computersSince health care delivery is a business (indeed, one <strong>of</strong> thelargest sectors <strong>of</strong> the economy), any hospital, health plan, orindependent medical practice involves much the same s<strong>of</strong>twareas any other large business. This includes accountsreceivable <strong>and</strong> payable, payroll, <strong>and</strong> supplies inventory.Both general <strong>and</strong> customized industry s<strong>of</strong>tware can be usedfor these functions; however, this article focuses on applicationsspecific to medicine.Medical Information SystemsThe management <strong>of</strong> information specifically related to medicalcare is sometimes called medical informatics. The type<strong>of</strong> information gathered depends on many factors includingthe type <strong>of</strong> institution, ranging from a small doctor’s <strong>of</strong>ficeto a large clinic to a full hospital <strong>and</strong> the nature <strong>and</strong> scope<strong>of</strong> the treatment provided. However, one can make somegeneralizations.For outpatients, the required information includesan extensive medical record for each patient, includingrecords <strong>of</strong> medical tests <strong>and</strong> their results, prescriptions <strong>and</strong>their status, <strong>and</strong> so on. For hospital patients, there are alsoadmissions records, an extensive list <strong>of</strong> itemized charges,<strong>and</strong> records that must be maintained for public health orother governmental purposes. Hospitals increasingly usecustomized, integrated hospital information systems (HIS)that integrate billing, medical records, <strong>and</strong> pharmacy.Additional record keeping needs arise from the mechanismsused to pay for health care. Each health paymentsystem, whether government-run (such as Medicare or theVeterans’ Administration) or a private health maintenanceorganization (HMO), has extensive rules <strong>and</strong> proceduresabout how each surgery, treatment, test, or medication canbe submitted for payment. The s<strong>of</strong>tware must be able touse recognized classifications systems such as the DSM-IV(Diagnostic <strong>and</strong> Statistical Manual <strong>of</strong> Mental Disorders).


300 medical applications <strong>of</strong> computersClinical Information ManagementThe modern hospital generates extensive real-time dataabout the condition <strong>of</strong> patients, particularly those in criticalor intensive care or undergoing surgery. Many hospitalshave bedside or operating room terminals where physiciansor nurses can review summaries <strong>of</strong> data such as vital statistics(blood pressure, heart function, <strong>and</strong> so on). Data canalso be entered or reviewed using h<strong>and</strong>held computers (seeportable computers). The ultimate goal <strong>of</strong> such systemsis to provide as much useful information as possible withoutoverwhelming medical personnel with data entry <strong>and</strong>related tasks that might detract from patient care.In 2001, a new group, the Patient Safety Institute, wasformed in an attempt to create a nationwide st<strong>and</strong>ardizedformat for electronic patient records. This would make itpossible for emergency personnel to download a patient’srecord into a h<strong>and</strong>held computer <strong>and</strong> access potentially lifesavinginformation such as medications <strong>and</strong> allergies.There has also been some progress in medical decisionsupport systems. Going beyond data summarization, suchsystems can analyze changes or trends in medical data<strong>and</strong> highlight those <strong>of</strong> clinical significance. Such systemscan also aid in the compilation <strong>of</strong> medical charts or possiblycompile portions <strong>of</strong> the chart automatically for laterreview.Diagnostic <strong>and</strong> Treatment SystemsThe diagnosis <strong>and</strong> treatment <strong>of</strong> many conditions has beenpr<strong>of</strong>oundly enhanced by the use <strong>of</strong> computer-assisted medicalinstruments. At the beginning <strong>of</strong> the last century theuse <strong>of</strong> X-rays revolutionized the imaging <strong>of</strong> the anatomy<strong>of</strong> living things. X-rays, however, were limited in detail<strong>and</strong> depth <strong>of</strong> imaging. Techniques <strong>of</strong> tomography, involvingsynchronized movement <strong>of</strong> the X-ray tube <strong>and</strong> film, werethen developed to create a sharp focus deeper within thetarget structure. The development <strong>of</strong> computerized tomography(CT or CAT) scanning in the 1970s used a different<strong>and</strong> more effective approach: A beam <strong>of</strong> X rays is sweptthrough the target area while computerized radiation detectorsprecisely calculate the absorption <strong>of</strong> radiation, <strong>and</strong> thusthe density <strong>of</strong> the tissue or other structure at each point.This results in a highly detailed image that can be viewedas a series <strong>of</strong> layers or combined into a three-dimensionalholographic display.Another widely used imaging technique is positronemission tomography (PET) scanning, which tracks theradiation emission from a short-lived radioisotope injectedinto the patient. It is particularly helpful for studying theflow <strong>of</strong> blood or gas <strong>and</strong> other physiological or metabolicchanges. Magnetic resonance imaging (MRI) uses theabsorption <strong>and</strong> re-emission <strong>of</strong> radio waves in a strong magneticfield to identify the characteristic signature <strong>of</strong> thehydrogen nucleus (i.e. a proton) in water within the body,<strong>and</strong> thus delineate the surrounding structures.Besides controlling the scanning process (especially inCAT scanning), the computer is essential for the creation<strong>and</strong> manipulation <strong>of</strong> the resulting images. A typical imageprocessing (IP) system is actually an array <strong>of</strong> many individualprocessors that perform calculations <strong>and</strong> comparisonson parts <strong>of</strong> the image to enhance contrast <strong>and</strong> extract informationthat can lead to a more precise depiction <strong>of</strong> the area<strong>of</strong> interest. The resulting images (consisting <strong>of</strong> an array <strong>of</strong>pixels <strong>and</strong> associated information) can be further enhancedin a variety <strong>of</strong> ways using video processing s<strong>of</strong>tware. Others<strong>of</strong>tware using pattern recognition techniques can be programmedto look for tumors or other anomalous structures(see image processing).TrendsMedical informatics is likely to be a strong growth areain coming decades. As the population ages, dem<strong>and</strong> formedical care will increase. At the same time, there will begrowing pressure to control costs. Although technology isexpensive, there is a general belief that information canbe leveraged to provide more cost-effective treatment <strong>and</strong>management <strong>of</strong> health care delivery.Medical systems are likely to become more integrated.There have been proposals to create permanent, extensiveelectronic medical records that patients might even “wear” inthe form <strong>of</strong> a small implanted chip. However, concern aboutthe consequences <strong>of</strong> violation <strong>of</strong> privacy <strong>and</strong> misuse <strong>of</strong> medicalinformation (such as by employers or insurers) raises significantchallenges (see also privacy in the digital age).There are many exciting possibilities for computerassistedmedical treatment. It may eventually be possible toprovide all the detail <strong>of</strong> a CAT scan or MRI while a medicalprocedure is being performed. At any rate, surgeons willbe able to see ever more clearly what they are doing, <strong>and</strong>robot-controlled surgical instruments (such as lasers) arealready operating with a precision that cannot be matchedby human h<strong>and</strong>s. Such instrumentation also allows for thepossibility that skilled surgeons might be able to operatethrough telepresence, bringing lifesaving surgery to remoteareas (see telepresence).Information technology (<strong>and</strong> the World Wide Web inparticular) is also giving patients more data <strong>and</strong> choicesThis NASA project is developing a “smart” probe that could provideinstant analysis <strong>of</strong> breast tumors to guide surgeons in their work.Such instruments could make surgery more accurate <strong>and</strong> effective,as well as reducing unnecessary operations. (NASA photo)


memory 301about prospective drugs <strong>and</strong> treatments. (See personalhealth information management.)Further ReadingChen, Hsinchun, et al., eds. Medical Informatics: Knowledge Management<strong>and</strong> Data Mining in Biomedicine. New York: Springer,2005.LinuxMedNews [open-source medical s<strong>of</strong>tware]. Available online.URL: http://www.linuxmednews.com/. Accessed August 14,2007.Medical S<strong>of</strong>tware (Yahoo! Directory). Available online. URL:http://dir.yahoo.com/Business_<strong>and</strong>_Economy/Business_to_Business/Health_Care/S<strong>of</strong>tware/Me dical/. Accessed August14, 2007.Shortliffe, Edward H., <strong>and</strong> James J. Cimino, eds. Biomedical Informatics:<strong>Computer</strong> Applications in Health Care <strong>and</strong> Biomedicine.New York: Springer, 2006.Sullivan, Frank, <strong>and</strong> Jeremy Wyatt. ABC <strong>of</strong> Health Informatics. Malden,Mass.: Blackwell, 2006.Wooton, Richard. Introduction to Telemedicine. 2nd ed. London:Royal Society <strong>of</strong> Medicine Press, 2006.memoryGenerally speaking, memory is a facility for temporarilystoring program instructions or data during the course<strong>of</strong> processing. In modern computers the main memory isr<strong>and</strong>om access memory (RAM) consisting <strong>of</strong> silicon chips.Today’s personal computers typically have from between64MB (megabytes) <strong>and</strong> 512MB <strong>of</strong> main memory.Development <strong>of</strong> the <strong>Technology</strong>In early calculators “memory” was stored as the positions<strong>of</strong> various dials. Charles Babbage conceived <strong>of</strong> a “store” <strong>of</strong>such dials that could hold constants or other values neededduring processing by his Analytical Engine (see Babbage,Charles).A number <strong>of</strong> forms <strong>of</strong> memory were used in early electronicdigital computers. For example, a circuit with aninherent delay could be used to store a series <strong>of</strong> pulses thatcould be “refreshed” every fraction <strong>of</strong> a second to maintainthe data values. The Univac I, for example, used a mercurydelay line memory. Researchers also experimented withcathode ray tubes (CRTs) to store data patterns.The most practical early form <strong>of</strong> memory was the ferritecore, which consisted <strong>of</strong> an array <strong>of</strong> tiny donut-shaped magnets,crisscrossed by electrical lines so that any elementcan be addressed by row <strong>and</strong> column number. By convertingdata into appropriate voltage levels, the magnetic state<strong>of</strong> the individual elements can be switched on <strong>and</strong> <strong>of</strong>f torepresent 1 or 0. In turn, a current can be passed throughany element to read its current state—although the elementmust then be remagnetized. Ferrite cores were relativelyfast but expensive, <strong>and</strong> “core” became programmers’ shorth<strong>and</strong>for the amount <strong>of</strong> precious memory available.By the 1960s, the use <strong>of</strong> transistors <strong>and</strong> integrated circuitsmade electronic solid-state memory systems possible. Sincethen, the MOSFET (Metal Oxide Semiconductor Field EffectTransistor) using CMOS (Complementary Metal Oxide) fabricationhas been the dominant way to implement DRAM(dynamic r<strong>and</strong>om access memory). Here “dynamic” meansthat the memory must be “refreshed” by applying currentafter data is read in each cycle, <strong>and</strong> “r<strong>and</strong>om access” meansthat any desired memory location can be accessed directlyrather than requiring locations to be read sequentially.Static RAM is used in some computer components wheremaximum memory speed is desirable. Static memory is fasterbecause it does not need to be refreshed after each readingcycle. However, it is also considerably more expensive.Memory performance is also dependent on how quicklylocations in the memory can be addressed. The earliestforms <strong>of</strong> DRAM required that the row <strong>and</strong> column <strong>of</strong> thedesired memory location be sent in separate cycles. EDO(Extended Data Out) <strong>and</strong> more recent technologies allowthe row to be requested one time, <strong>and</strong> then just the columngiven for adjacent or nearby locations. Timing <strong>and</strong> pipeliningtechniques can also be used to start a new request whilethe previous one is still being processed.For SDRAM (synchronous DRAM), memory speed islimited by the inherent response time <strong>of</strong> the memory chip,but also by the number <strong>of</strong> clock cycles per second initiatedby the data bus (see bus). Double data rate (DDR) SDRAMis able to use both the “rising” <strong>and</strong> “falling” part <strong>of</strong> theclock cycle to transfer data, doubling throughput. It is beingsuperseded by DDR2, which achieves another doublingbecause it can run the data-transfer bus at twice the systemclock speed. However, this does increase latency (the timeneeded to begin an access). On the horizon is DDR3, whichcan run the bus at four times clock speed—yet anotherdoubling. Possible future memory technologies include“spintronics,” or the use <strong>of</strong> the quantum state or “spin” <strong>of</strong>electrons to hold data. The speed, compactness, <strong>and</strong> reliability<strong>of</strong> this technology could exceed current devices by afactor <strong>of</strong> hundreds to thous<strong>and</strong>s.As memory gets faster, it continues to get cheaper (atleast for all but the latest technology). At the same time,memory dem<strong>and</strong>s continue to increase. Today’s PCs generallycome with 1 GB (billion bytes) <strong>of</strong> RAM, <strong>and</strong> 2 GB ormore is <strong>of</strong>ten recommended, particularly for memory-hungryoperating systems such as Micros<strong>of</strong>t Windows Vista <strong>and</strong>applications such as Adobe PhotoShop <strong>and</strong> video editing.Another popular kind <strong>of</strong> memory is “flash” (nonvolatile)memory that does not require power to maintain itscontents. This kind <strong>of</strong> memory is used in a wide variety <strong>of</strong>devices, including digital cameras, PDAs, <strong>and</strong> media players(see also flash drive).In actual systems, a small amount <strong>of</strong> faster memory (seecache) is used to hold the data that is most likely to beimmediately needed. A proper balance between primary<strong>and</strong> secondary cache <strong>and</strong> main memory in the system chipsetmakes it less necessary to use the fastest, most expensiveform <strong>of</strong> main memory.Many computers also have ROM (Read-Only Memory) orPROM (Programmable Read-Only Memory). This memoryholds permanent system settings <strong>and</strong> data (see bios) that areneeded during the startup process (see boot sequence).Further ReadingJacob, Bruce, Spencer Ng, <strong>and</strong> David Wang. Memory Systems:Cache, DRAM, Disk. San Francisco: Morgan Kaufmann, 2007.


302 memory managementTom’s Hardware: Motherboards <strong>and</strong> RAM. Available online. URL:http://www.tomshardware.com/motherboard/index.html.Accessed August 15, 2007.“Ultimate Memory Guide.” Available online. URL: http://www.kingston.com/tools/umg/default.asp. Accessed August 15,2007.memory managementWhatever memory chips or other devices are installed in acomputer, the operating system <strong>and</strong> application programsmust have a way to allocate, use, <strong>and</strong> eventually releaseportions <strong>of</strong> memory. The goal <strong>of</strong> memory management is touse available memory most efficiently. This can be difficultin modern operating environments where dozens <strong>of</strong> programsmay be competing for memory resources.Early computers were generally able to run only oneprogram at a time. These machines didn’t have a true operatingsystem, just a small loader program that loaded theapplication program, which essentially took over control<strong>of</strong> the machine <strong>and</strong> accessed <strong>and</strong> manipulated the memory.Later systems <strong>of</strong>fered the ability to break main memory intoseveral fixed partitions. While this allowed more than oneprogram to run at the same time, it wasn’t very flexible.Virtual MemoryFrom the very start, computer designers knew that mainmemory (RAM) is fast but relatively expensive, while secondaryforms <strong>of</strong> storage (such as hard disks) are slowerbut relatively cheap. Virtual memory is a way to treat suchauxiliary devices (usually hard drives) as though theywere part <strong>of</strong> main memory. The operating system allocatessome storage space (<strong>of</strong>ten called a swapfile) on the disk.When programs allocate more memory than is availablein RAM, some <strong>of</strong> the space on the disk is used instead.Because RAM <strong>and</strong> disk are treated as part <strong>of</strong> the sameaddress space (see addressing), the application requestingmemory doesn’t “know” that it is not getting “real”memory. Accessing the disk is much slower than accessingmain memory, so programs using this secondary memorywill run more slowly.Virtual memory has been a practical solution since the1960s, <strong>and</strong> it has been used extensively on PCs runningoperating systems such as Micros<strong>of</strong>t Windows. However,with prices <strong>of</strong> RAM falling drastically in the new century,there is likely to be enough main memory on the latest systemsavailable to run most popular applications.Memory AllocationMost programs request memory as needed rather than afixed amount being allocated as part <strong>of</strong> program compilation.(After all, it would be inefficient for a program to tryto guess how much memory it would need, <strong>and</strong> possiblytie up memory that could be used more efficiently by otherprograms.) The operating system is therefore faced with thetask <strong>of</strong> matching the available memory with the amountsbeing requested as programs run.One simple algorithm for memory allocation is calledfirst fit. When a program requests memory, the operatingsystem looks down its list <strong>of</strong> available memory blocks <strong>and</strong>allocates memory from the first one that’s large enough t<strong>of</strong>ulfill the request. (If there is memory left over in the blockafter allocation, it becomes a new block that is added to thelist <strong>of</strong> free memory blocks.)As a result <strong>of</strong> repeated allocations using this method, thememory space tends to become fragmented into many leftoversmall blocks <strong>of</strong> memory. As with fragmentation <strong>of</strong> fileson a disk, memory fragmentation slows down access, sincethe hardware (see memory) must issue repeated instructionsto “jump” to different parts <strong>of</strong> the memory space.Using alternative memory allocation algorithms canreduce fragmentation. For example, the operating systemcan look through the entire list (see heap) <strong>and</strong> find thesmallest block that is still large enough to fulfill the allocationrequest. This best fit algorithm can be efficient. Whileit still creates fragments from the small leftover pieces, thefragments usually don’t amount to a significant portion <strong>of</strong>the overall memory.The operating system can also enforce st<strong>and</strong>ard blocksizes, keeping a “stockpile” <strong>of</strong> free blocks <strong>of</strong> each permittedsize. When a request comes in, it is rounded to the nearestamount that can be made from a combination <strong>of</strong> thest<strong>and</strong>ard sizes (much like making change). This approach,sometimes called the buddy system, means that programsmay receive somewhat more or less memory than they want,but this is usually not a problem.Recycling MemoryIn a multitasking operating system, programs should releasememory when it is no longer needed. In some programmingenvironments memory is released automatically when adata object is no longer valid (see variable), while in othercases memory may need to be explicitly freed by calling theappropriate function.Recycling is the process <strong>of</strong> recovering these freed-upmemory blocks so they are available for reallocation. Toreduce fragmentation, some operating systems analyze thefree memory list <strong>and</strong> combine adjacent blocks into a single,larger block (this is called coalescence). Operating systemsthat use fixed memory block sizes can do this more quicklybecause they can use constants to calculate where blocksbegin <strong>and</strong> end.Many more sophisticated algorithms can be used toimprove the speed or efficiency <strong>of</strong> memory management. Forexample, the operating system may be able to receive information(explicit or implicit) that helps it determine whetherthe requested memory needs to be accessed extremelyquickly. In turn, the memory management system may bedesigned to take advantage <strong>of</strong> particular processor architecture.Combining these sources <strong>of</strong> knowledge, the memorymanager might decide that a particular requested memoryblock be allocated from special high speed memory (seecache).While RAM is now cheap <strong>and</strong> available in relativelylarge quantities even on desktop PCs, the never-endingrace between hardware resources <strong>and</strong> the dem<strong>and</strong>s <strong>of</strong> everlarger database <strong>and</strong> other applications guarantees thatmemory management will remain a concern <strong>of</strong> operat-


microprocessor 303ing system designers. In particular, distributed databasesystems where data objects can reside on many differentmachines in the network require sophisticated algorithmsthat take not only memory speed but also network load<strong>and</strong> speed into consideration.Further ReadingBlunden, Bill. Memory Management: Algorithms <strong>and</strong> Implementationsin C/C++. Plano, Tex.: Wordware Publishing, 2002.Jones, Richard, <strong>and</strong> Rafael D. Lins. Garbage Collection: Algorithmsfor Automatic Dynamic Memory Management. New York:Wiley, 1996.“The Memory Management Reference Beginner’s Guide: Overview.”Available online. URL: http://www.memorymanagement.org/articles/begin.html. Accessed August 15, 2007.message passingIn the early days <strong>of</strong> computing, a single program usuallyexecuted sequentially, with interruptions for calls to variousprocedures or functions that would perform data processingtasks <strong>and</strong> then return control to the main program(see procedures <strong>and</strong> functions). However, by the 1970sUNIX <strong>and</strong> other operating systems had introduced thecapability <strong>of</strong> running several programs at the same time(see multitasking). Additionally, it became common tocreate a large program that would manage data <strong>and</strong> smallerprograms that could link users to that service (see clientservercomputing). Further, programs themselves beganto be organized in a new way (see object-oriented programming).A program now consisted <strong>of</strong> a number <strong>of</strong> entities(objects) representing data <strong>and</strong> methods (things thatcan be done with the data).Thus, both at the operating system <strong>and</strong> application levelit became necessary to have various objects communicatewith one another. For example, a client program requestsa service from the server. The server performs the requiredservice <strong>and</strong> reports its completion. The mechanism bywhich information can be sent from one program to another(or between objects in a program) is called message passing.In one message-passing scheme, two objects (such as client<strong>and</strong> server) agree on a st<strong>and</strong>ard memory location calleda port. Each program checks the port regularly to see if amessage (containing instructions, data, or an address wheredata can be found) is pending. In turn, outgoing messagescan be left at the port.The client-server idea can be found within operatingsystems as well. For example, there can be a componentdevoted to providing file-related services, such as openingor reading a file (see file). An application that wants toopen a file leaves an appropriate message to the operatingsystem. The operating system has a message dispatcher thatexamines incoming messages <strong>and</strong> routes them to the correctcomponent (the file system manager in this case).Within an object-oriented program, an object is sent amessage by invoking one <strong>of</strong> its methods (Smalltalk <strong>and</strong> otherlanguages) or member functions (C++ or Java). For example,suppose there’s an object call Speaker that represents thesystem’s internal speaker. As part <strong>of</strong> a user alert procedure,there might be a call toSpeaker.Beep (500)which might be defined to mean “sound a beep for 500 milliseconds.”There are a number <strong>of</strong> issues involved in setting upmessage-passing systems. For example, it is convenient formany programs or objects to use the same port or otherfacility for leaving <strong>and</strong> retrieving messages, but that meansthe operating system must spend additional time routingor dispatching the messages. On the other h<strong>and</strong>, if twoobjects create a bound port, no others can use it, so each canassume that any message left there is from the other object.During the 1992–1994 period, a st<strong>and</strong>ard called MPI(Message Passing Interface) was established by a group<strong>of</strong> more than 40 industry organizations. It has since beensuperseded by MPI-2.Further ReadingGropp, William, Ewing Lusk, <strong>and</strong> Rajeev Thakur. Using MPI: PortableParallel Programming With the Message-Passing Interface.2nd ed. Cambridge, Mass.: MIT Press, 1999.“The Message Passing Interface (MPI) St<strong>and</strong>ard.” Available online.URL: http://www-unix.mcs.anl.gov/mpi/. Accessed February6, 2000.Petzold, Charles. Programming Windows: the Definitive Guide to theWin32 API. 5th ed. Redmond, Wash.: Micros<strong>of</strong>t Press, 1998.Quinn, Michael J. Parallel Programming in C with MPI <strong>and</strong> OpenMP.New York: McGraw-Hill Education, 2003.microprocessorA microprocessor is an integrated circuit chip that containsall <strong>of</strong> the essential components for the central processingunit (CPU) <strong>of</strong> a microcomputer system such as a personalcomputer.Schematic <strong>of</strong> a simple microprocessor. The control unit is responsiblefor fetching <strong>and</strong> decoding instructions, as well as fetching orwriting data to memory. The Arithmetic Logic Unit (ALU) does theactual computing (including arithmetic <strong>and</strong> logical comparisons).The registers hold data being currently used by the ALU, while thecache contains instructions that have been pre-fetched because theyare likely to be needed soon.


304 microprocessorMicroprocessor development began in the 1960s whena new company called Intel was given a contract to developchips for programmable calculators for a Japanese firm.Marcian E. “Ted” H<strong>of</strong>f headed the project. He decided thatrather than hard-wiring most <strong>of</strong> the calculator logic into thechips, he would create a general-purpose chip that couldread instructions <strong>and</strong> data, perform basic arithmetic <strong>and</strong>logical functions, <strong>and</strong> transfer data between memory <strong>and</strong>internal locations called registers.The resulting microprocessor, when combined with someRAM (r<strong>and</strong>om access memory), some preprogrammed ROM(Read Only Memory), <strong>and</strong> an input/output (I/O) chip constituteda tiny but complete CPU, soon dubbed “a computeron a chip.” This first microprocessor, the Intel 4004, hadonly a few thous<strong>and</strong> transistors, could h<strong>and</strong>le data only 4bits at a time, <strong>and</strong> ran at 740 KHz (about one three-thous<strong>and</strong>ththe speed <strong>of</strong> the latest Pentium IV chips).Intel gradually refined the chip, giving it the logic circuitsto enable it to perform additional instructions, moreinternal stack <strong>and</strong> register space, <strong>and</strong> 8 KB <strong>of</strong> space to storeprograms. The 8008 could h<strong>and</strong>le 8 bits <strong>of</strong> data at a time,while the 8080 became the first microprocessor that wascapable <strong>of</strong> serving as the CPU for a practical microcomputersystem. Its descendants, the 8088 <strong>and</strong> 8086 (16-bit) poweredindustry-st<strong>and</strong>ard IBM-compatible PCs. Meanwhile,other companies such as Motorola (68000), Zilog (Z-80),<strong>and</strong> MOS <strong>Technology</strong> (6502) powered competing PCs fromApple, Atari, Commodore, <strong>and</strong> others.With the dominance <strong>of</strong> the IBM PC <strong>and</strong> its clones (seeibm pc), the Intel 80 × 86 series in turn dominated themicroprocessor market. (The x refers to successive digits, asin 80286, 80386, <strong>and</strong> 80486.) At the next level this nomenclaturewas replaced by the Pentium series, which is up tothe Pentium 4 as <strong>of</strong> 2002.The MITS Altair (1975) was the first microcomputer availablecommercially. It was generally purchased in kit form. While theAltair did not have much processing capacity, it aroused great interest<strong>and</strong> inspired other computer builders such as Apple’s Steve Wozniak<strong>and</strong> Steve Jobs. (Christopher Fitzgerald / The ImageWorks)According to a famous dictum called Moore’s Law, thedensity (number <strong>of</strong> transistors per cubic area) <strong>and</strong> speed (interms <strong>of</strong> clock rate) <strong>of</strong> microprocessors has roughly doubledevery 18 months to two years. Intel expects to be makingmicroprocessors with 1 billion transistors by 2007.Microprocessor <strong>and</strong> MicrocomputerA microcomputer is a system consisting <strong>of</strong> a microprocessor<strong>and</strong> a number <strong>of</strong> auxiliary chips. The microprocessorchip serves as the central processing unit (CPU). It containsa clock that regulates the flow <strong>of</strong> data <strong>and</strong> instructions(each instruction takes a certain number <strong>of</strong> clock cycles toexecute). There is also an index register that keeps track <strong>of</strong>the instruction being executed. A small number <strong>of</strong> locationscalled registers within the CPU allow for storing or retrievingthe data being used by instructions much more quicklythan retrieval from main memory (RAM).Typically, the instruction register advances to the nextinstruction. The instruction is fetched, decoded, <strong>and</strong> sent tothe CPU’s ALU (arithmetic logic unit) for processing. Dataneeded to be processed by the instruction are either fetchedfrom a register or, through an address register, fetched fromRAM. (Some processors store one oper<strong>and</strong> for an arithmeticoperation in a special register called the accumulator.)Floating-point operations (those involving numbersthat can include decimal points) require special registersthat can keep track <strong>of</strong> the decimal position. Until the mid-1990s, many systems used a separate microprocessor calleda coprocessor to h<strong>and</strong>le floating point operations. However,later chips such as the Pentium series integrate floatingpoint operations into the main chip.In order to function as the heart <strong>of</strong> a microcomputer,the CPU must communicate with a variety <strong>of</strong> other devicesby interacting with special controller chips. For example,there is a bus interface chip (see bus) that decodes memoryaddresses <strong>and</strong> routes requests to the appropriate devices onthe motherboard. When data is requested from memory, amemory controller must physically fetch the data from RAM(see memory). There is also a cache controller that interfaceswith one or two levels <strong>of</strong> high-speed cache memory (seecache). The algorithms implemented in the cache controlleraim to have the next instructions <strong>and</strong> the most-likely neededdata already in the cache when the CPU requests them.Other devices such as disk drives, modems, printers,<strong>and</strong> video cards are all connected to the CPU through input/output (I/O) interfaces that connect to the system bus. Most<strong>of</strong> the devices connected to the bus have their own microprocessors.S<strong>of</strong>tware (see device driver) translates highlevelprogramming instructions (such as to open a file) tothe appropriate device comm<strong>and</strong>s.The CPU <strong>and</strong> many other devices also contain ROM (readonly memory) chips that have permanent basic instructionsstored on them (see bios). This enables the CPU <strong>and</strong> otherdevices to perform the necessary actions to enter into communicationwhen the system starts up (see boot sequence).New Features EmergeImprovements in microprocessors during the 1980sincluded wider data paths <strong>and</strong> the ability to address a larger


Micros<strong>of</strong>t Corporation 305amount <strong>of</strong> memory. For example, the Intel 80386 was thefirst 32-bit processor for PCs <strong>and</strong> could address 4 GB <strong>of</strong>memory. (Earlier processors such as the 80286 had to dividememory into segments or use paging to swap memory in<strong>and</strong> out <strong>of</strong> a smaller space to make it look like a larger one.)Over the years microprocessors tended to add more built-incache memory, enabling them to have more instructions ordata ready for immediate use.Another way to get more performance out <strong>of</strong> a microprocessoris to increase the speed with which instructionscan be executed. One technique, called pipelining, breaksthe processor into a series <strong>of</strong> segments, each <strong>of</strong> which canexecute a particular operation. Instead <strong>of</strong> waiting until aninstruction has been completely executed <strong>and</strong> then turningto the next one, a pipelined microprocessor moves theinstruction from segment to segment as its operations areexecuted, with following instructions moving into thevacated segments. As a result, two or more instructions canbe undergoing execution at the same time.In addition to pipelining, the Pentium series <strong>and</strong> otherrecent chips can have instructions executing simultaneouslyusing different arithmetic logic units (ALUs) or floating-pointunits (FPUs).Another way to improve instruction processing is to usea simpler set <strong>of</strong> instructions. First introduced during the1980s for minicomputers <strong>and</strong> high-end workstations (suchas the Sun SPARC series), reduced instruction set computer(RISC) chips have smaller, more uniform instructions thatcan be more easily pipelined, as well as many registers forholding the results <strong>of</strong> the intermediate processing. Duringthe 1990s, RISC concepts were also adopted in PC processordesigns such as the 80486 <strong>and</strong> Pentium (see reducedinstruction set computer).The latest major development has been the multicoremicroprocessor, which has two, four, or more separate processingunits. The Intel Core Duo <strong>and</strong> Core 2 Duo chips<strong>and</strong> similar processors from AMD are now included in mostnew PCs.The equivalent <strong>of</strong> a supercomputer on a chip is on theway. Cisco’s 192-core Metro chip powers its most capablenetwork routers, while Nvidia’s GeForce 8800 graphics processorsports 128 cores. In addition to these specializedprocessors, in early 2007 Intel demonstrated a prototype80-core processor that could form the basis <strong>of</strong> a new generation<strong>of</strong> general-purpose processors.Another significant multicore processor architecture isthe Cell chip, developed by Sony, IBM, <strong>and</strong> Toshiba. Thischip includes a multithreaded (able to run multiple streams<strong>of</strong> code) controller processor plus numerous architecturalfeatures that maximize efficiency <strong>and</strong> throughput. The firstappearance <strong>of</strong> this 2 “teraflop” (trillion calculations per second)chip was not on a scientific computer, but rather theSony Play Station 3—see game console.Multicore processors create new challenges for programmerswho have to create code that will apportion programtasks efficiently among the cores (see multiprocessing).In the new century, it is unclear when physical limitationswill eventually slow down the tremendous rate <strong>of</strong>increase in microprocessor power. As the chips get denser<strong>and</strong> smaller, more heat is generated with less surfacethrough which it can be removed. At still greater densities,quantum effects may also begin to be a problem. On theother h<strong>and</strong>, new technologies might take the elements <strong>of</strong>the processor down to a still smaller level (see molecularcomputing <strong>and</strong> nanotechnology).While the st<strong>and</strong>-alone desktop, laptop, or h<strong>and</strong>heldcomputer is the most visible manifestation <strong>of</strong> the microprocessingrevolution, there are hundreds <strong>of</strong> “invisible”microprocessors in use for every visible computer. Todaymicroprocessors help monitor <strong>and</strong> control everything fromhome appliances to cars to medical devices (see embeddedsystems).Further ReadingKim, Ryan. “New Era <strong>of</strong> Game Devices Arrives: Sony <strong>and</strong> NintendoMeet the Challenge <strong>of</strong> Micros<strong>of</strong>t Xbox.” San FranciscoChronicle, November 13, 2006, p. F1, F6.Mark<strong>of</strong>f, John. “Intel Prototype May Herald a New Age <strong>of</strong> Processing.”New York Times, February 12, 2007.Sperling, Ed. “Special Report: Inside the New Multicore Processors.”Electronic News, April 13, 2007. Available online.URL: http://www.edn.com/article/CA6434384.html. AccessedAugust 15, 2007.Stokes, John. Inside the Machine: An Illustrated Introduction toMicroprocessors <strong>and</strong> <strong>Computer</strong> Architecture. San Francisco: NoStarch Press, 2006.Tom’s Hardware. “CPU.” Available online. URL: http://www.tomshardware.com/cpu/.Accessed August 15, 2007.Micros<strong>of</strong>t CorporationMicros<strong>of</strong>t Corporation (NASDAQ symbol: MSFT) is theworld’s largest computer s<strong>of</strong>tware company, with almost80,000 employees worldwide <strong>and</strong> annual revenue exceeding$51 billion.Micros<strong>of</strong>t was founded in the mid-1970s by Bill Gates(see Gates, William) in order to sell his version <strong>of</strong> theBASIC programming language for early microcomputerssuch as the Altair 8800. The BASIC s<strong>of</strong>tware was moderatelysuccessful, but it would be an operating system called MS-DOS (or PC-DOS) that would catapult Micros<strong>of</strong>t to industryleadership, thanks to an agreement with IBM, which introducedwhat would become the industry st<strong>and</strong>ard personalcomputer in 1982 (see ibm pc).In the mid-1980s Micros<strong>of</strong>t partnered with IBM todevelop OS/2, which was intended to be a more powerfulmultitasking operating system to replace DOS. However,Micros<strong>of</strong>t’s real interest was in the development <strong>of</strong>Windows (see Micros<strong>of</strong>t Windows), which first becamesuccessful with version 3.0 in 1990. Meanwhile, Micros<strong>of</strong>tleveraged its experience with Windows to release Micros<strong>of</strong>tOffice, which soon displaced WordPerfect, the previousmarket leader.Shifting Strategies <strong>and</strong> Legal IssuesMany observers have noted that Micros<strong>of</strong>t was slow in appreciatingthe importance <strong>of</strong> networking <strong>and</strong> particularly theWorld Wide Web in the mid-1990s. Novell was the marketleader in networking at the time, <strong>and</strong> Netscape’s graphical


306 Micros<strong>of</strong>t .NETbrowser had brought millions <strong>of</strong> users to the Web. Bill Gateshimself announced that the company would embark on a“net-centered” strategy, <strong>and</strong> this was reflected in the development<strong>of</strong> Windows NT, s<strong>of</strong>tware for enterprise network <strong>and</strong>Web servers, <strong>and</strong> the Internet Explorer browser, which dominatedthe desktop by the end <strong>of</strong> the decade.The continuing dominance <strong>of</strong> Micros<strong>of</strong>t operating systems<strong>and</strong> <strong>of</strong>fice applications on the desktop provided thecash flow that gave the company the resources to catchup <strong>and</strong> then dominate almost any market it chose. However,this same dominance raised legal issues that wouldbe litigated through the late 1990s <strong>and</strong> beyond. Micros<strong>of</strong>twas accused <strong>of</strong> using its knowledge <strong>of</strong> unpublishedWindows internal code to give products such as Micros<strong>of</strong>tOffice an advantage over competitors. A more prominentaccusation was that Micros<strong>of</strong>t’s “bundling” <strong>of</strong> productssuch as Internet Explorer with Windows amounted to anunfair advantage over competitors such as Netscape, sinceExplorer would appear to be “free” to consumers. A series<strong>of</strong> civil actions under the name United States v. Micros<strong>of</strong>tresulted in a 2001 settlement with the U.S. Department<strong>of</strong> Justice that required Micros<strong>of</strong>t to share all informationabout its Windows API (see applications programminginterface) with competitors for at least five years. Thisresult was controversial, with defenders <strong>of</strong> Micros<strong>of</strong>t arguingthat the company had done no more than competeeffectively by using the results <strong>of</strong> its own previous work,while opponents argued that Micros<strong>of</strong>t’s coercive monopolypower had scarcely been dented by the settlement. In2008 the s<strong>of</strong>tware giant continued to struggle with legalpressures. A European Union court has upheld previousrulings that the company had engaged in monopolistic <strong>and</strong>anticompetitive practices.Legal controversies aside, by the mid-2000s Micros<strong>of</strong>twas facing some serious challenges, particularly from thepopularity <strong>of</strong> free <strong>and</strong> open-source s<strong>of</strong>tware (see opensourcemovement). This is particularly true <strong>of</strong> the Webserver market, where the combination <strong>of</strong> the Apache Webserver <strong>and</strong> Linux has gained a major market share. Meanwhile,on the desktop, Windows Vista (released in January2007) did not sell as well as predicted during its firstsix months. The Apple Macintosh is maintaining its smallbut significant market share, <strong>and</strong> even Linux distributionssuch as Ubuntu are beginning to appear as an option onnew PCs. Micros<strong>of</strong>t’s flagship Office suite is facing competitionfrom products such as Open Office <strong>and</strong> particularlythe Web-based Google Apps. (In 2007 Micros<strong>of</strong>t beganto roll out Office Live Workspace, <strong>of</strong>fering extensions<strong>of</strong> Office applications rather than a complete suite.) Inother areas, the Micros<strong>of</strong>t Network (MSN) online servicehas struggled, while the company has done better withits Xbox gaming console as well as the best-selling gameHalo.Despite some stumbling <strong>and</strong> many controversies, Micros<strong>of</strong>t’svast resources <strong>and</strong> many ongoing research projects(with a $6 billion annual budget) make it likely the companywill continue to adapt <strong>and</strong> sometimes innovate, remaining astrong competitor for many years to come. For example, thecompany is now putting more resources into Web searchtechnology, an area that has been dominated by Google, aswell as eyeing applications as diverse as home media servers<strong>and</strong> social networking. Micros<strong>of</strong>t has also sought to exp<strong>and</strong>its Internet presence by acquiring Yahoo!, the extensive butaging Web portal. (However, the first acquisition attemptwas rebuffed, <strong>and</strong> future plans remain uncertain as <strong>of</strong> mid-2008).Further ReadingBank, David. Breaking Windows: How Bill Gates Fumbled the Future<strong>of</strong> Micros<strong>of</strong>t. New York: Free Press, 2001.Blakely, Rhys. “Micros<strong>of</strong>t’s Chief Executive Has Seen the Future—<strong>and</strong> the Future is Advertising: Steve Ballmer’s Plans for the<strong>Computer</strong> S<strong>of</strong>tware Giant Include Taking on Yahoo! <strong>and</strong>Google in Their Own Internet Territory.” Times Online (U.K.).Available online. URL: http://business.timesonline.co.uk/tol/business/industry_sectors/technology/article2570485.ece.Accessed October 2, 2007.Micros<strong>of</strong>t Corporation. Available online. URL: http://www.micros<strong>of</strong>t.com. Accessed October 2, 2007.Micros<strong>of</strong>t Timeline. Available online. URL: http://www.thocp.net/companies/micros<strong>of</strong>t/micros<strong>of</strong>t_company.htm. AccessedOctober 2, 2007.Micros<strong>of</strong>t Watch (eWeek). Available online. URL: http://www.micros<strong>of</strong>t-watch.com/. Accessed October 2, 2007.Page, William H., <strong>and</strong> John E. Lopatka. The Micros<strong>of</strong>t Case: Antitrust,High <strong>Technology</strong>, <strong>and</strong> Consumer Welfare. Chicago: University<strong>of</strong> Chicago Press, 2007.Slater, Robert. Micros<strong>of</strong>t Rebooted: How Bill Gates <strong>and</strong> Steve BallmerReinvented Their Company. New York: Portfolio, 2004.Wallace, James, <strong>and</strong> Jim Erickson. Hard Drive: Bill Gates <strong>and</strong> theMaking <strong>of</strong> the Micros<strong>of</strong>t Empire. New York: Wiley, 1992.Micros<strong>of</strong>t .NETMicros<strong>of</strong>t .NET is a programming platform (see class <strong>and</strong>object-oriented programming) that is intended to providea clear <strong>and</strong> consistent way for applications written ina variety <strong>of</strong> languages such as C++, C#, <strong>and</strong> Visual Basicto access Windows functions <strong>and</strong> to interact with otherprograms <strong>and</strong> services on the same machine or over theInternet..NET consists <strong>of</strong> the following main parts:• Base Class Library <strong>of</strong> data types <strong>and</strong> common functions(such as file manipulation <strong>and</strong> graphics) that isavailable to all .NET languages• Common Language Runtime, which provides thecode that applications need to run within the operatingsystem, manage memory, <strong>and</strong> so forth (“Commonlanguage” means it can be used for any .NET programminglanguage.)• ASP .NET, a class framework for building dynamicWeb applications <strong>and</strong> services (the latest version <strong>of</strong>ASP—see active server pages)• ADO .NET, a class framework that allows programsto access databases <strong>and</strong> data servicesThe latest version (as <strong>of</strong> 2008) is .NET Framework 3.5<strong>and</strong> is built into Windows Vista <strong>and</strong> Windows Server 2008.New components include:


Micros<strong>of</strong>t Windows 307• Windows Presentation Foundation, providing a userinterface based on 3D graphics, with objects describedusing Micros<strong>of</strong>t’s XAML markup language (see xml)• Windows Communication Foundation, providingways for .NET programs to communicate locally orover the network• Windows Workflow Foundation, for structuring <strong>and</strong>automating tasks <strong>and</strong> transactions• Windows CardSpace, for managing digital identitiesin transactionsPlatformsIn the relationship between language <strong>and</strong> runtime libraries,Micros<strong>of</strong>t .NET, particularly when used with the C# language(see c#), is similar to the use <strong>of</strong> Java <strong>and</strong> its librariesas in the Java Enterprise Edition (EE). For Windows, .NEThas the advantage <strong>of</strong> being built specifically for that operatingsystem; however, Java has the advantage <strong>of</strong> running onall major platforms, including not only Windows, but alsoMac OS X <strong>and</strong> Linux, as well as being an open-source platform.(However, the open-source Mono project has developeda partial implementation <strong>of</strong> .NET for non-Windows aswell as Windows platforms.)Further ReadingBoehm, Anne. Murach’s ADO .NET 2.0 Database Programming withVB 2005. Fresno, Calif.: Murrach, 2007.Chappell, David. Underst<strong>and</strong>ing .NET. 2nd ed. Upper Saddle River,N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2006.MacDonald, Matthew. Beginning ASP.NET 3.5 in VB 2008: FromNovice to Pr<strong>of</strong>essional. Berkeley, Calif.: APress, 2007..NET Framework Developer Center. Available online. URL: http://msdn2.micros<strong>of</strong>t.com/en-us/netframework/default.aspx.Accessed October 2, 2007.Troelsen, Andrew. Pro C# with .NET 3.0, Special Edition. Berkeley,Calif.: Apress, 2007.Walther, Stephen. ASP .NET Unleashed. Indianapolis: Sams, 2006.Micros<strong>of</strong>t WindowsOften simply called Windows, Micros<strong>of</strong>t Windows refers toa family <strong>of</strong> operating systems now used on the majority <strong>of</strong>personal computers. Windows PCs run Intel or Intel-compatiblemicroprocessors <strong>and</strong> use IBM-compatible hardwarearchitecture.History <strong>and</strong> DevelopmentBy 1984, the IBM PC <strong>and</strong> its first “clones” from other manufacturersdominated the market for personal computers,quickly overtaking the previously successful Apple II <strong>and</strong>various machines running the CP/M operating system.Through a combination <strong>of</strong> initiative <strong>and</strong> luck, Micros<strong>of</strong>tCEO Bill Gates had licensed what became its MS-DOS operatingsystem to IBM, while retaining the rights to license italso to the clone manufacturers (see also Gates, William).However, 1984 also brought Apple back into contentionwith the Macintosh. Using a graphical user interface(GUI) largely based on research done at Xerox’s Palo AltoResearch Center (PARC) in the 1970s, the Macintosh wasstrikingly more attractive <strong>and</strong> user-friendly than the alltext,comm<strong>and</strong>-line driven MS-DOS. As third parties beganto <strong>of</strong>fer GUI alternative to DOS, Micros<strong>of</strong>t rushed to completeits own GUI, called Windows. Although it was actuallyannounced well before the coming <strong>of</strong> the Macintosh,Windows 1.0 was not released until 1985. Its poor fonts,graphics, <strong>and</strong> window operation made it compare unfavorablyto the Macintosh. Through the rest <strong>of</strong> the 1980s,Micros<strong>of</strong>t struggled to improve Windows. The acceptance<strong>of</strong> Windows was aided by several large s<strong>of</strong>tware manufacturerssuch as Aldus (PageMaker) writing s<strong>of</strong>tware for thenew operating system as well as Micros<strong>of</strong>t’s designing orporting its own s<strong>of</strong>tware such as the Excel spreadsheet.Windows 3.0, released in 1990, was considerablyimproved <strong>and</strong> began to attract significant numbers <strong>of</strong> usersaway from MS-DOS—based programs. Micros<strong>of</strong>t was alsogreatly aided by its ability to leverage its operating systemdominance to make it economically imperative for PC manufacturersto “bundle” Windows with new PCs.About the same time, Micros<strong>of</strong>t had been working withIBM on a system called OS/2. Unlike Windows, which wasactually a program running “on top <strong>of</strong>” MS-DOS, OS/2was a true operating system that had sophisticated capabilitiessuch as multitasking, multithreading, <strong>and</strong> memoryprotection. Micros<strong>of</strong>t eventually broke <strong>of</strong>f its relationshipwith IBM, ab<strong>and</strong>oned OS/2, but incorporated some <strong>of</strong> thesame features into a new version <strong>of</strong> Windows called NT(New <strong>Technology</strong>), first released in 1993. NT, which progressedthrough several versions, was targeted at the highendserver market, while the consumer version <strong>of</strong> Windowscontinued to evolve incrementally as Windows 95 <strong>and</strong> Windows98 (released in those respective years). These versionsincluded improved support for networking (including TCP/IP, the Internet st<strong>and</strong>ard) <strong>and</strong> a feature called “plug <strong>and</strong>play” that allowed automatic installation <strong>of</strong> drivers for newhardware.Toward the end <strong>of</strong> the century, Micros<strong>of</strong>t began tomerge the consumer <strong>and</strong> server versions <strong>of</strong> Windows. Windows2000 incorporated some NT features <strong>and</strong> providedsomewhat greater security <strong>and</strong> stability for consumers.With Windows XP, released in 2001, the separate consumer<strong>and</strong> NT versions <strong>of</strong> Windows disappeared entirely, to bereplaced by home <strong>and</strong> “pr<strong>of</strong>essional” versions <strong>of</strong> XP.Introduced in early 2007, Micros<strong>of</strong>t Windows Vistaincludes a number <strong>of</strong> new features, including a 3D userinterface (“Aero”), easier <strong>and</strong> more robust networking, builtinmultimedia capabilities (such as photo management <strong>and</strong>DVD authoring), improved file navigation, <strong>and</strong> desktopsearch. Perhaps the most important, if problematic, featureis enhanced security, including User Account Control,which halts suspect programs <strong>and</strong> requests permission forthem to continue. Although this makes it harder for malwareto get a foothold, many users find the constant “nags”to be annoying. (As <strong>of</strong> 2008 adoption <strong>of</strong> Vista has beenslower than expected, with many users opting to remainwith Windows XP.)The next version <strong>of</strong> Windows, with the working nameWindows 7, should be released around 2010. Its focus


308 Micros<strong>of</strong>t WindowsIntroduced in 2007, Micros<strong>of</strong>t Windows Vista features bettersecurity, a 3D look, new search facilities, <strong>and</strong> multimediafeatures. (Micros<strong>of</strong>t Corporation)appears to be a combination <strong>of</strong> “back to basics” (a responseto the sluggish performance <strong>of</strong> Vista) <strong>and</strong> more seamlessuser access to data <strong>and</strong> media from a variety <strong>of</strong> sources.User’s PerspectiveFrom the user’s point <strong>of</strong> view, Windows is a way to control<strong>and</strong> view what is going on with the computer. The userinterface consists <strong>of</strong> a st<strong>and</strong>ard set <strong>of</strong> objects (windows,menus, buttons, sliders, <strong>and</strong> so on) that behave in generallyconsistent ways. This consistency, while not absolute,reduces the learning curve for mastering a new application.Programs can be run by double-clicking on their icon onthe underlying screen (called the desktop), or by means <strong>of</strong>a set <strong>of</strong> menus.Windows users generally manage their files througha component called Windows Explorer or My <strong>Computer</strong>.Explorer presents a treelike view <strong>of</strong> folders on the disk.Each folder can contain either files or more folders, whichin turn can contain files, perhaps nested several layers deep.Folders <strong>and</strong> files can be moved from place to place simplyby clicking on them with the mouse, moving the mousepointer to the destination window or folder, <strong>and</strong> releasingthe button (this operation is called dragging). Anotheruseful feature is called a context menu. Accessed by clickingwith the right-h<strong>and</strong> mouse button, the menu bringsup a list <strong>of</strong> operations that can be done with the currentlyselected object. For example, a file can be renamed, deleted,or sent to a particular destination.Windows includes a number <strong>of</strong> features designed tomake it easier for users to control their PC. Most settingscan be specified through windows called dialog boxes,which include buttons, check boxes, or other controls. Mostprograms also use Windows’s Help facility to present helppages using a st<strong>and</strong>ard format where related topics can beclicked. Most programs are installed or uninstalled usinga st<strong>and</strong>ard “wizard” (step-by-step procedure), <strong>and</strong> wizardsare also used by many programs to help beginners carry outmore complex tasks (see help systems).MultitaskingFrom the programmer’s point <strong>of</strong> view, Windows is a multitasked,event-driven environment (see multitasking).Programmers must take multitasking into account in recognizingthat certain activities (such as I/O) <strong>and</strong> resources(such as memory) may vary with the overall load on thesystem. Responsible programs allocate no more memorythan they need, <strong>and</strong> release memory as soon as it is nolonger needed. If the pool <strong>of</strong> free memory becomes too low,Windows starts swapping the least recently used segments<strong>of</strong> memory to the hard drive. This scheme, called virtualmemory, allows a PC to run more <strong>and</strong> larger programs thanwould otherwise be possible, but since accessing the harddrive takes considerably longer than accessing RAM, thesystem as a whole starts slowing down.Windows also has a rather small amount <strong>of</strong> memoryreserved for its GDI (Graphics Device Interface), a systemused for displaying graphical interface objects such as icons.If this resource pool (which has been made somewhat moreflexible in later versions <strong>of</strong> Windows) runs out, the systemcan grind to a halt.Programming PerspectiveProgrammers moving to Windows from more traditionalsystems (such as MS-DOS) must also deal with a new paradigmcalled event-driven programming. Most traditionalprograms are driven by an explicit line <strong>of</strong> execution throughthe code—do this, make this decision, <strong>and</strong> depending on it,do that—<strong>and</strong> so on. Windows programs, however, typicallydisplay a variety <strong>of</strong> menus, buttons, check boxes, <strong>and</strong> otheruser controls. They then wait for the user to do something.The user thus has considerable freedom to move about inthe program, performing tasks in different orders.A Windows program, therefore, is driven by events. Anevent is generally some form <strong>of</strong> user interaction such asclicking on a menu or button, moving a slider, or typinginto a text box. The event is conveyed by a message (seemessage passing) that Windows dispatches to the affectedobject. For example, if the user presses down (clicks) the leftmouse button while the mouse pointer is over a window, aWM_BUTTONDOWN message is sent to that window.Each <strong>of</strong> these interface objects (collectively called controls)has a message-h<strong>and</strong>ling procedure that identifiesthe message. The object must then have appropriate programcode that responds to each possible type <strong>of</strong> event. Forexample, if the user clicks on the File menu <strong>and</strong> then clickson Open, the code will display a st<strong>and</strong>ard dialog box thatallows for selecting the file to be opened.Fortunately for the programmer, Windows providesdevelopers with a large collection <strong>of</strong> types <strong>of</strong> windows, dialogboxes, <strong>and</strong> controls that can be displayed using a functioncall. For example, this code (after some preliminarydeclarations), displays a type <strong>of</strong> window called a list box:HWND MyWindow;hMyWindow = CreateWindow(“LISTBOX”,“Available Services”,WS_CHILD|WS_VISIBLE,0,0,100,200hwndParent,NULL,hINst,NULL);


Micros<strong>of</strong>t Windows 309Here the various parameters passed to the CreateWindowfunction specify the type <strong>of</strong> window, window title,characteristics, <strong>and</strong> location. The function returns a “windowh<strong>and</strong>le,” which is a pointer that holds the window’saddress <strong>and</strong> allows it to be accessed later.Most Windows programming environments, includingC++ <strong>and</strong> particularly, Visual Basic, now let program designersavoid having to specify code such as the above to createwindows <strong>and</strong> other objects. Instead, the programmer canclick <strong>and</strong> drag various objects onto a design screen to establishthe interface that will be seen by the program’s user.The programmer can then use Properties settings to specifymany characteristics <strong>of</strong> the screen objects without havingto explicitly program them.Micros<strong>of</strong>t <strong>and</strong> third-party developers also provide readymadeprogramming code in dynamic link libraries (DLLs).These resources (see library, program) can be called byany application, which can then use any object or functiondefined in the library. Windows also provides a facilitycalled OLE (Object Linking <strong>and</strong> Embedding). This lets anapplication such as a word processor “host” another applicationsuch as a spreadsheet. Thus, the Micros<strong>of</strong>t Word, forexample, can embed a Micros<strong>of</strong>t Excel spreadsheet into adocument, <strong>and</strong> the spreadsheet can be worked with usingall the usual Excel comm<strong>and</strong>s. In other words, OLE letsapplications make their features, controls, <strong>and</strong> functionalityaccessible to other applications. Indeed, collections <strong>of</strong>controls are <strong>of</strong>ten packaged as OCX (OLE controls) <strong>and</strong>sold to developers.Despite all this available help, Windows presents a steeplearning curve for many programmers. There are hundreds<strong>of</strong> functions for h<strong>and</strong>ling interface objects, drawing graphics,managing files, controlling devices, <strong>and</strong> other tasks.With the growing use <strong>of</strong> object-oriented programming languages(see object-oriented programming <strong>and</strong> C++) inthe late 1980s <strong>and</strong> 1990s, Micros<strong>of</strong>t devised the Micros<strong>of</strong>tFoundation Classes (MFC). This framework defines all <strong>of</strong>the interface objects <strong>and</strong> other entities (such as data structures)as C++ classes.Using MFC, a programmer, instead <strong>of</strong> calling a functionto create a window, creates an object <strong>of</strong> a particularWindow class. To customize a window, the programmercan use inheritance to derive a new window class.The various functions for controlling windows are thendefined as member functions <strong>of</strong> the window class. Thisuse <strong>of</strong> object-oriented, class-based design organizes much<strong>of</strong> the great hodgepodge <strong>of</strong> Windows functions into alogical hierarchy <strong>of</strong> objects <strong>and</strong> makes it easier to master<strong>and</strong> to use.For example, using the traditional Windows API (seeapplications programming interface) one puts a textstring into a list box using this code:LRESULT LRes;LRes = SendMessage(hMyListBox,LB_ADDSTRING,0,“Network Services”);(LRes is a number that will hold a code that says whetherthe item was successfully added)Using MFC, this code can be rewritten as:CListBox * pListBox;int nRes;nRes = pListBox->AddString (“Network Services”);Here a pointer is declared to an object <strong>of</strong> the ListBoxclass, <strong>and</strong> a member function <strong>of</strong> that class, AddString, isthen called. While this code may not look simpler, it uses aconsistent object-oriented approach.The new common framework for Windows programmingis called .NET. Closely integrated with the latestversions <strong>of</strong> Windows (XP SP2 <strong>and</strong> Vista), the class frameworkhas been revamped <strong>and</strong> exp<strong>and</strong>ed. .NET provides acommon language runtime (CLR) for access from differentlanguages such as C++, C#, <strong>and</strong> Visual Basic .NET. (SeeMicros<strong>of</strong>t .NET.)TrendsBy just about any st<strong>and</strong>ard Micros<strong>of</strong>t Windows has achievedremarkable success, capturing <strong>and</strong> largely holding thelion’s share <strong>of</strong> the PC operating system market. However,Windows has been persistently criticized on grounds <strong>of</strong>reliability <strong>and</strong> security. Perhaps feeling the pressure fromusers <strong>and</strong> potential regulators, Micros<strong>of</strong>t has placed greateremphasis on security in recent years; Windows Vista integratessecurity much more tightly into the structure <strong>of</strong> thesystem. However, as long as Windows is the most widelyused operating system, it will continue to be the biggest targetfor creators <strong>of</strong> viruses <strong>and</strong> other malware.Micros<strong>of</strong>t has included powerful facilities that allowWindows applications to be controlled by other applicationsor remotely (see scripting languages). Unfortunately,these facilities have proven to be quite vulnerable to computerviruses that can use them to damage systems connectedto the Internet. There seems to be a never-ending racebetween developers <strong>of</strong> program “patches” designed to plugsecurity holes <strong>and</strong> inventive, albeit malicious virus writers.Windows continues to face a variety <strong>of</strong> challenges. Theability to deliver applications directly through Web browserson any platform may make it less compelling for a user withsimple computing needs to pay the premium for a WindowsbasedPC. (For example, Google now delivers basic wordprocessing, spreadsheet, email, <strong>and</strong> other applications—seeapplication service provider.) Linux, too, may be graduallygaining a greater share on the desktop. Versions suchas the popular <strong>and</strong> frequently updated Ubuntu now installabout as easily as Windows, provide a similar user interface,<strong>and</strong> include a variety <strong>of</strong> s<strong>of</strong>tware, including Open Office (seeLinux <strong>and</strong> open-source movement).While Windows still remains the dominant PC operatingsystem with tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> applications <strong>and</strong> atleast several hundred million users around the world, it islikely that the PC operating systems <strong>of</strong> 2020 will be as differentfrom today’s Windows as the latter is from the MS-DOS <strong>of</strong> the early 1980s.Further ReadingBellis, Mary. “The Unusual History <strong>of</strong> Micros<strong>of</strong>t Windows.” About.com. Available online. URL: http://inventors.about.com/od/mstartinventions/a/Windows.htm. Accessed August 15, 2007.


310 middlewareBott, Ed, Carl Siechert, <strong>and</strong> Craig Stinson. Micros<strong>of</strong>t Windows VistaInside Out. Redmond, Wash.: Micros<strong>of</strong>t Press, 2007.Minasi, Mark, <strong>and</strong> Byron Hynes. Administering Windows VistaSecurity: The Big Surprises. Indianapolis: Wiley/SYBEX, 2007.Simpson, Alan. Alan Simpson’s Windows XP Bible. 2nd ed. Indianapolis:Wiley, 2005.———. Alan Simpson’s Windows Vista Bible. Indianapolis: Wiley,2007.Smith, Ben, <strong>and</strong> Brian Komar. Micros<strong>of</strong>t Windows Security ResourceKit. 2nd ed. Redmond, Wash.: Micros<strong>of</strong>t Press, 2005.“Windows Products <strong>and</strong> Technologies History.” Micros<strong>of</strong>t. Availableonline. URL: http://www.micros<strong>of</strong>t.com/windows/WinHistoryIntro.mspx. Accessed August 15, 2007.middlewareOften two applications that were originally created for differentpurposes must later be linked together in order toaccomplish a new purpose. For example, a company sellingscientific instruments may have a large database <strong>of</strong> productspecifications, perhaps written in COBOL some years ago.The company has now started selling its products on theInternet, using its Web server <strong>and</strong> e-commerce applications(see e-commerce). Prospective customers <strong>of</strong> the Web siteneed to be able to access detailed information about theproducts. Unfortunately, the Web s<strong>of</strong>tware (perhaps writtenin Java) has no easy way to get information from the company’sold product database. Rather than trying to convert theold database to a more modern format (which might taketoo long or be prohibitively expensive), the company maychoose to create a middleware application that can mediatebetween the old <strong>and</strong> new applications.There are a variety <strong>of</strong> types <strong>of</strong> middleware applications.The simplest <strong>and</strong> most general type <strong>of</strong> facility is the RPC(Remote Procedure Call), which allows a program runningon a client computer to execute a program running on theserver. DCE (Distributed Computing Environment) is amore robust <strong>and</strong> secure implementation <strong>of</strong> the RPC conceptthat provides file-related other operating system services aswell as executing remote programs.More elaborate architectures are used to link complexapplications such as databases where a program running onone computer on the network must get data from a server.For example, an Object Request Broker (ORB) is used in aCORBA (Common Object Request Broker Architecture) systemto take a data request generated by a user <strong>and</strong> find serverson the network that are capable <strong>of</strong> fulfilling the request(see coRBA).Middleware is <strong>of</strong>ten inserted into a program to allowfor better monitoring or control <strong>of</strong> distributed processing.For example a TP (transaction processing) monitor is amiddleware program that keeps track <strong>of</strong> a transaction thatmay have to go through several stages (such as point <strong>of</strong> saleentry, credit card processing, <strong>and</strong> inventory update). TheTP monitor can report whether any stage <strong>of</strong> the transactionprocessing failed (see transaction processing).Middleware can also be put in charge <strong>of</strong> load balancing.This means distributing transactions so that they are evenlyapportioned among the servers on the network, in order toavoid creating delays or bottlenecks.While use <strong>of</strong> middleware may not be as “clean” a solutionas designing an integrated system from the bottom up, theeconomic realities <strong>of</strong> a fast-changing information environment(particularly with regard to deployment on the Web)<strong>of</strong>ten makes middleware an adequate second-best choice.Further ReadingBritton, Chris, <strong>and</strong> Peter Bye. IT Architectures <strong>and</strong> Middleware:Strategies for Building Large, Integrated Systems. 2nd ed. UpperSaddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2004.Myerson, Judith M. The Complete Book <strong>of</strong> Middleware. Boca Raton,Fla.: CRC Press, 2002.Puder, Arno, Kay Römer, <strong>and</strong> Frank Pilh<strong>of</strong>er. Distributed SystemsArchitecture: A Middleware Approach. San Francisco: MorganKaufman, 2006.“What Is Middleware?” ObjectWeb. Available online. URL: http://middleware.objectweb.org/. Accessed August 15, 2007.military applications <strong>of</strong> computersWar has always been one <strong>of</strong> the most complex <strong>of</strong> humanenterprises. Even leaving actual combat aside, the U.S. military<strong>and</strong> defense establishment constitute a huge employer,research <strong>and</strong> training agency, <strong>and</strong> transportation network.Managing all these activities require sophisticated database,inventory, tracking, <strong>and</strong> communications systems. Whenthous<strong>and</strong>s <strong>of</strong> private defense contractors <strong>of</strong> varying sizesare considered as part <strong>of</strong> the system, the complexity <strong>and</strong>scope <strong>of</strong> the enterprise become even larger.Specifically, military information technology applicationscan be divided into the following broad areas: logistics,training, operations, <strong>and</strong> battle management.LogisticsIt is <strong>of</strong>ten said that colonels worry about tactics while generalspreoccupy themselves largely with logistics. Logisticsis the management <strong>of</strong> the warehousing, distribution, <strong>and</strong>transportation systems that supply military establishments<strong>and</strong> forces in the field with the equipment <strong>and</strong> fuel theyneed to train <strong>and</strong> to fight. Logistics within the United Statesis analogous to similar problems for very large corporations.The same bar codes, point <strong>of</strong> use terminals, <strong>and</strong> othertracking, inventory, <strong>and</strong> distribution systems that Amazon.com uses to get books quickly to customers while avoidingexcessive inventory are, in principle, applicable to modernizingmilitary logistic systems.An added dimension emerges when logistical supportmust be supplied to forces operating in remote countries,possibly in the face <strong>of</strong> efforts by an enemy to disrupt supply.Such considerations as efficient loading procedures toaccommodate limited air transport capacity, prioritization<strong>of</strong> shipping to provide the most urgently needed items, <strong>and</strong>transportation security can all come into play. (The militaryhas pioneered the use <strong>of</strong> retinal scanners <strong>and</strong> other systemsfor controlling access to sensitive areas. See biometrics.)The need for mobility <strong>and</strong> compactness makes laptops<strong>and</strong> even palmtops the form factors <strong>of</strong> choice. Military or“milspec” versions <strong>of</strong> computer hardware are generally builtwith more rugged components <strong>and</strong> greater resistance toheat, moisture, or dust.


military applications <strong>of</strong> computers 311TrainingThe use <strong>of</strong> automated systems to provide training goes backat least as far as the World War II era Link trainer, whichused automatic controls <strong>and</strong> hydraulics to place traineepilots inside a moveable cockpit that could respond to theircontrol inputs. Today computer simulations with sophisticatedgraphics <strong>and</strong> control systems can provide highly realisticdepictions <strong>of</strong> flying a helicopter or jet fighter or drivinga battle tank. The military has even adapted commercialflight simulators for training purposes. Simulations canalso cover Special Forces operations <strong>and</strong> tactical decisionmaking. Indeed, many real-time simulations (RTS) sold aspopular commercial games <strong>and</strong> avidly played by young peoplealready contain enough realistic detail to be adoptedby the military as is. For example, the game Rainbow Six,based on operations in Tom Clancy novels, simulates tacticalcounterterrorism operations. In turn, the U.S. Army hasused a simulation game called Full Spectrum Warrior togive young gamers a taste <strong>of</strong> the military life.OperationsAircraft, ships, <strong>and</strong> l<strong>and</strong> vehicles used by the military havebeen fitted with a variety <strong>of</strong> computerized systems. The“glass cockpit” in aircraft is replacing the increasinglyunmanageable maze <strong>of</strong> dials <strong>and</strong> switches with informationdisplays that can keep the pilot focused on the most crucialinformation while making other information readily available.Traditional keyboards <strong>and</strong> joystick-type controllerscan be replaced by touch screens <strong>and</strong> even by systems thatcan underst<strong>and</strong> a variety <strong>of</strong> voice comm<strong>and</strong>s (see speechrecognition <strong>and</strong> synthesis). Similar control interfacescan be used in tanks or ships.Robotics <strong>of</strong>fers a variety <strong>of</strong> intriguing possibilities forextending the reach <strong>of</strong> military forces while minimizingcasualties. Remote-control robots can be used to clearminefields, disarm roadside bombs, or perform reconnaissance.(The Predator armed reconnaissance drone was firstused successfully in anti-terrorist operations in Afghanistanin 2002.) Armed robots could assault enemy strong pointswithout risking soldiers. The development <strong>of</strong> autonomousrobots that can plan their own missions, select targets, <strong>and</strong>make other decisions is a longer-term prospect that dependson the application <strong>of</strong> artificial intelligence in the extremelychallenging <strong>and</strong> chaotic battlefield environment.Battle ManagementBattle management is the ability to gather, synthesize, <strong>and</strong>present crucial information about the environment aroundthe military unit <strong>and</strong> enable military personnel to makerapid, accurate decisions about threats <strong>and</strong> the best way toneutralize them.The earliest example, the SAGE (Strategic Air GroundEnvironment) computer system, resulted from a massivedevelopment effort in the 1950s that strained the capacity<strong>of</strong> early vacuum tube-based computers to its limit. Thepurpose <strong>of</strong> SAGE was to provide an integrated tracking <strong>and</strong>display system that could give the Strategic Air Comm<strong>and</strong>(SAC) complete real-time information about any Sovietnuclear bomber strikes in progress against the continentalUnited States Descendents <strong>of</strong> this system were able to trackballistic missiles.The Aegis system first deployed aboard selected navyships in the 1970s is a good example <strong>of</strong> a tactical battlemanagement system on a somewhat smaller scale. Aegis isa computerized system that can integrate information fromsophisticated shipboard radar <strong>and</strong> sonar arrays as well asreceiving <strong>and</strong> merging data from other ships <strong>and</strong> reconnaissanceassets (such as helicopters). The captain <strong>of</strong> anAegis cruiser or destroyer therefore has a real-time pictureshowing the locations, headings, <strong>and</strong> speeds <strong>of</strong> friendly <strong>and</strong>enemy ships, aircraft, <strong>and</strong> missiles. The system can alsoautomatically distribute the available munitions to mosteffectively engage the most threatening targets.Ultimately, the military hopes to give each unit in thefield <strong>and</strong> even individual soldiers a battle management displaythat would pinpoint enemy vehicles <strong>and</strong> other activity.Unpiloted drone aircraft such as the Predator can loiter overthe battlefield <strong>and</strong> feed video <strong>and</strong> other data into the battlemanagement system.While the ability to transmit <strong>and</strong> process large amounts<strong>of</strong> information can lead to strategic or tactical advantage, italso dem<strong>and</strong>s increased attention to security. If an enemycan jam the information processing system, its advantagescould be lost at a crucial moment. Worse, if an enemy can“spo<strong>of</strong>” the system or introduce deceptive data, the military’sinformation system could become a weapon in theenemy’s h<strong>and</strong>s (see computer crime, encryption, informationwarfare <strong>and</strong> security).Beyond the BattlefieldToday’s military faces the challenge <strong>of</strong> diverse types <strong>of</strong> conflict(including counterinsurgency <strong>and</strong> peacekeeping), theneed to interact with cultures that may be unfamiliar tomost soldiers, <strong>and</strong> the need to deal with the psychologicalas well as physical casualties <strong>of</strong> war. A number <strong>of</strong> innovativeapplications <strong>of</strong> simulation <strong>and</strong> information technologyare being developed.In 2006 the U.S. military began to use a game called“Tactical Iraqi” in which soldiers must learn not only conversationalphrases, but the difference between appropriate<strong>and</strong> culturally insensitive gestures <strong>and</strong> actions.Another simulation, created at the University <strong>of</strong> SouthernCalifornia, uses VR technology (see virtual reality)to place soldiers suffering from posttraumatic stress disorder(PTSD) back into the combat environment under controlledconditions. The goal is to gradually desensitize theperson to the traumatic sights, sounds, <strong>and</strong> events.On the information <strong>and</strong> intelligence front, the need totranslate <strong>and</strong> interpret massive amounts <strong>of</strong> material in manylanguages in near real time has led the Defense AdvancedResearch Projects Agency (DARPA) to begin to develop asystem that would use separate “engines” for translation,interpretation, <strong>and</strong> summarization.Further ReadingEvans, Nicholas D. Military Gadgets: How Advanced <strong>Technology</strong>Is Transforming Today’s Battlefield. Upper Saddle River, N.J.:Prentice Hall, 2004.


312 minicomputer“How Military Robots Work.” HowStuffWorks. Available online.URL: http://science.howstuffworks.com/military-robot.htm.Accessed August 15, 2007.Jardin, Xeni. “VR Goggles Heal Scars <strong>of</strong> War.” Wired, August 22,2005. Available online. URL: http://www.wired.com/science/discoveries/news/2005/08/68575. Accessed August 15, 2007.Rol<strong>and</strong>, Alex, <strong>and</strong> Philip Shiman. Strategic Computing: DARPA <strong>and</strong>the Quest for Machine Intelligence, 1983–1993. Cambridge,Mass.: MIT Press, 2002.Strachan, Ian W. Jane’s Simulation <strong>and</strong> Training Systems, 2005–2006.Alex<strong>and</strong>ria, Va.: Jane’s Information Group, 2005.Vargas, Jose Antonio. “Virtual Reality Prepares Soldiers for RealWar.” Washington Post, February 14, 2006, p. A01.Vizard, Frank, <strong>and</strong> Phil Scott. 21st Century Soldier: The Weaponry,Gear, <strong>and</strong> <strong>Technology</strong> <strong>of</strong> the Military in the New Century. NewYork: Popular <strong>Science</strong>/Time Inc., 2002.Minicomputers such as this DEC PDP-8 brought computing powerto many academic <strong>and</strong> scientific institutions for the first time. Theyalso encouraged a culture <strong>of</strong> cooperative s<strong>of</strong>tware developmentthat led to such innovations as the UNIX operating system. (PaulPierce <strong>Computer</strong> Collection)minicomputerThe earliest general-purpose electronic digital computerswere necessarily large, room-size devices. In the 1960s,however, the replacement <strong>of</strong> tubes with transistors (<strong>and</strong>gradually, integrated circuits) gave designers the choice <strong>of</strong>either keeping computers large <strong>and</strong> packing more processing<strong>and</strong> memory capacity into them, or making smallercomputers that still had considerable power. The latteroption led to the minicomputer as contrasted with the largermainframe (see mainframe).Compared to mainframes, minicomputers <strong>of</strong>ten h<strong>and</strong>leddata in smaller “chunks” (such as 16 bits as compared to 32or 64) <strong>and</strong> had a smaller memory capacity. Minicomputersalso tended to have more limited input/output (I/O) capacity.However, while large businesses still needed mainframes toh<strong>and</strong>le their large databases <strong>and</strong> volume <strong>of</strong> transactions, theminicomputer <strong>of</strong>fered a relatively low cost (tens <strong>of</strong> thous<strong>and</strong>s<strong>of</strong> dollars rather than hundreds <strong>of</strong> thous<strong>and</strong>s), computingfacility for scientific laboratories, university computing centers,industrial control, <strong>and</strong> various specialized needs.The pioneering <strong>and</strong> most successful minicomputer companywas the Digital Equipment Corporation (DEC). In1960, DEC introduced its PDP-1, which was followed in1965 by the quite successful PDP-8, which sold for only$18,000. By the early 1970s, DEC had been joined by competitorssuch as Data General <strong>and</strong> the availability <strong>of</strong> integratedmemory circuits (RAM) <strong>and</strong> microprocessors packedmore speed <strong>and</strong> capacity into each succeeding model.The minicomputer had several important effects on thedevelopment <strong>of</strong> computer science <strong>and</strong> the “computer culture”as a whole (see hackers <strong>and</strong> hacking). Minicomputersgave university students direct, interactive access tocomputers through time-sharing, Teletype terminals, or CRTdisplay terminals. Because minicomputers usually lackedthe extensive (<strong>and</strong> expensive) s<strong>of</strong>tware packages that camewith mainframes, university users developed <strong>and</strong> eagerlyswapped s<strong>of</strong>tware such as program editors <strong>and</strong> debuggers.This cooperative effort achieved its most striking result inthe development <strong>of</strong> the UNIX operating system.The reader has probably noticed that this article refersto minicomputers in the past tense. The minicomputerdidn’t really disappear, but rather was transmogrified. Bythe late 1980s <strong>and</strong> certainly the 1990s, the personal desktopcomputer had taken advantage <strong>of</strong> more powerful microprocessors<strong>and</strong> ever more densely packed memory chips tocreate workstations that rivaled or exceeded the power <strong>of</strong>established minicomputers. Eventually, the minicomputeras a category virtually disappeared, its functions taken overby machines such as the powerful graphics workstationsdeveloped by companies such as Sun Microsystems <strong>and</strong> SiliconGraphics <strong>and</strong> today’s forests <strong>of</strong> Web <strong>and</strong> file servers.Further ReadingFottral, Jerry. Mastering the AS/400: A Practical H<strong>and</strong>s-On Guide.Lovel<strong>and</strong>, Colo.: 29th Street Press, 2000.Hoskins, Jim, <strong>and</strong> Roger Dimmick. Exploring IBM eServer Series.11th ed. Gulf Breeze, Fla.: Maximum Press, 2003.PDP-1 <strong>Computer</strong> Exhibit. <strong>Computer</strong> History Museum. Availableonline. URL: http://www.computerhistory.org/pdp-1/.Accessed August 15, 2007.Rifkin, Glenn, <strong>and</strong> George Harrar. The Ultimate Entrepreneur: TheStory <strong>of</strong> Ken Olsen <strong>and</strong> Digital Equipment Corporation. Chicago:Contemporary Books, 1988.


MIT Media Lab 313Schein, Edgar H. DEC Is Dead, Long Live DEC: The Lasting Legacy<strong>of</strong> Digital Equipment Corporation. San Francisco: Berrett-Koehler,2004.Minsky, Marvin Lee(1927– )American<strong>Computer</strong> ScientistStarting in the 1950s, Marvin Minsky played a key role inthe establishment <strong>of</strong> artificial intelligence (AI) as adiscipline. Combining cognitive psychology <strong>and</strong> computerscience, Minsky developed ways to make computers functionin “brain-like” ways (see neural network) <strong>and</strong> thendeveloped provocative insights about how the human brainmight be organized.Marvin Minsky was born in New York City on August 9,1927. His father was a medical doctor, <strong>and</strong> Marvin provedto be a brilliant science student at the Bronx High School <strong>of</strong><strong>Science</strong> <strong>and</strong> the Phillips Academy. Although he majored inmathematics at Harvard, he also showed a strong interestin biology <strong>and</strong> psychology. In 1954, he received his Ph.D. inmathematics at Princeton. In 1956, he was a key participantin the seminal Dartmouth conference that established thegoals <strong>of</strong> the new discipline <strong>of</strong> artificial intelligence.One <strong>of</strong> the most important <strong>of</strong> those goals was to explorethe relationship between thinking in the human brain <strong>and</strong>the operation <strong>of</strong> computers. Earlier in the century, researchinto the electrical activities <strong>of</strong> neurons (the brain’s information-processingcells) had led to speculation that thebrain functioned something like an intricate telephoneswitchboard, carrying information through millions <strong>of</strong> tinyconnections. During the 1940s, researchers had begun toexperiment with creating electronic circuits that mimickedthe activity <strong>of</strong> neurons.In 1957, Fran Rosenblatt built a device called a perceptron.It consisted <strong>of</strong> a network <strong>of</strong> electronic nodes thatcan transmit <strong>and</strong> respond to signals that function muchlike nerve stimuli in the brain (see neural network). Forexample, a perceptron could “recognize” shapes by selectivelyreinforcing the stimuli from light hitting an array<strong>of</strong> photocells. In 1969, Minsky <strong>and</strong> Seymour Papert coauthoreda very influential book on the significance <strong>and</strong>limitations <strong>of</strong> perceptron research. Their work not onlyspurred research into neural networks <strong>and</strong> their possiblepractical applications, but also proved a strong impetus forthe new field <strong>of</strong> cognitive psychology, bridging the study <strong>of</strong>human mental processes <strong>and</strong> the insights <strong>of</strong> computer science(see cognitive science).Meanwhile, Minsky had joined with John McCarthy (seeMcCarthy, John) to found the Artificial Intelligence Laboratoryat the Massachusetts Institute <strong>of</strong> <strong>Technology</strong> (MIT).In moving from basic perception to the higher order waysin which humans learn, Minsky developed the concept <strong>of</strong>frames. Frames are a way to categorize knowledge about theworld, such as how to plan a trip. Frames can be brokeninto subframes. For example, the trip-planning frame mighthave subframes about air transportation, hotel reservations,<strong>and</strong> packing. Minsky’s frames concept became a key to theconstruction <strong>of</strong> expert systems that today allow computers toadvise on such topics as drilling for oil or medical diagnosis(see expert systems <strong>and</strong> knowledge representation). Inthe 1970s, Minsky <strong>and</strong> his colleagues at MIT designed roboticsystems to test the ability to use frames to accomplish simplertasks, such as navigating around the furniture in a room.Minsky believed that the results <strong>of</strong> research into simulatingcognitive behavior had fruitful implications forhuman psychology. In 1986, Minsky published The Society<strong>of</strong> Mind. This book suggests that the human mind is not asingle entity (as classical psychology suggests) or a systemwith a small number <strong>of</strong> <strong>of</strong>ten-warring subentities (as psychoanalysisasserted). It is more useful, Minsky suggests,to think <strong>of</strong> the mind as consisting <strong>of</strong> a multitude <strong>of</strong> independentagents that deal with different parts <strong>of</strong> the task <strong>of</strong>living <strong>and</strong> interact with one another in complex ways. Whatwe call mind or consciousness, or a sense <strong>of</strong> self is, therefore,what emerges from this ongoing interaction.Minsky continues his exploration <strong>of</strong> human psychology<strong>and</strong> cognition with his latest book, The Emotion Machine.He has suggested that emotions are actually just alternativeways <strong>of</strong> thinking <strong>and</strong> accessing mental resources. In effect,the mind solves problems by looking among its “scripts”for those that seem applicable to the current situation, <strong>and</strong>then reflecting on them <strong>and</strong> revising as necessary.Minsky continues his research at MIT. He has receivednumerous awards, including the ACM Turing Award (1969)<strong>and</strong> the International Joint Conference on Artificial IntelligenceResearch Excellence Award (1991).Further ReadingHenderson, Harry. Artificial Intelligence: Mirrors for the Mind. NewYork: Chelsea House, 2007.Marvin Minsky’s Home Page. Available online. URL: http://web.media.mit.edu/~minsky/. Accessed April 10, 2007.Minsky, Marvin. The Emotion Machine: Commonsense Thinking,Artificial Intelligence, <strong>and</strong> the Future <strong>of</strong> the Human Mind. NewYork: Simon & Schuster, 2006.———. The Society <strong>of</strong> Mind. New York: Simon & Schuster, 1988.MIT Media LabWhile <strong>of</strong>ten associated with innovations in computer interfaces<strong>and</strong> use <strong>of</strong> new technology, the Media Lab at the MassachusettsInstitute <strong>of</strong> <strong>Technology</strong> (MIT) is actually a part<strong>of</strong> the School <strong>of</strong> Architecture <strong>and</strong> Planning. This originis perhaps reflected in the organization’s multidisciplinaryresearch, including not only computer science <strong>and</strong> technologybut cognitive science, learning, art, <strong>and</strong> design.The lab was founded in 1985 by Nicholas Negroponte<strong>and</strong> former MIT President Jerome Wiesner (see Negroponte,Nicholas). As <strong>of</strong> 2006 the lab’s directorship wasassumed by Frank Moss. The lab is funded mainly by corporatedonations, though some projects receive governmentfunding or are done in partnership with other schools orother parts <strong>of</strong> MIT. There is some ongoing tension betweenthe specific needs <strong>and</strong> desires <strong>of</strong> corporate sponsors <strong>and</strong> thelab’s research interests, <strong>and</strong> over the disposition <strong>of</strong> intellectualproperty created by projects.


314 Mitnick, Kevin D.———. “The Media Lab’s New Pilot.” <strong>Technology</strong> Review. Availableonline. URL: http://www.technologyreview.com/article/16851/. Accessed October 2, 2007.Maeda, John. Maeda @ Media. New York: Universe Publications,2001.The Media Lab: Inventing a Better Future. Available online. URL:http://www.media.mit.edu/. Accessed October 2, 2007.Negroponte, Nicholas. Being Digital. New York: Vintage Books,1996.Mitnick, Kevin D.(1963– )American<strong>Computer</strong> Cracker/Hacker, ConsultantThe MIT Media Lab has devised a variety <strong>of</strong> new ways for peopleto use computers. This is an innovative laptop sketchbook that createsanimations directly from drawings. (Sam Ogden / PhotoResearchers, Inc.)Emphases <strong>and</strong> ProjectsThe focus <strong>of</strong> most <strong>of</strong> the lab’s diverse projects is on findinginnovative <strong>and</strong> productive new ways for people to usecomputers <strong>and</strong> related technology. Recently there has beenan emphasis on more practical applications such as aiding“disabled, disadvantaged, [<strong>and</strong>] disenfranchised” peoplein becoming pioneers in using technology that everyonemay use someday. The “One Laptop per Child” project todevelop inexpensive computers for developing countries isalso a part <strong>of</strong> this effort.As <strong>of</strong> 2007 there were 27 separate research groups at thelab, including the following:• Object-Based Media—objects that can “underst<strong>and</strong>”<strong>and</strong> describe their environment• Personal Robots—robots that interact with peoplesocially (see Breazeal, Cynthia)• Computing Culture—relationships among art, technology,<strong>and</strong> culture• molecular Machines—logical <strong>and</strong> mechanical devicesusing molecular-scale parts• S<strong>of</strong>tware Agents—programs that can serve as assistantsfor human activities• Ambient Intelligence—interfaces that are “pervasive,intuitive, <strong>and</strong> intelligent” (see Maes, Pattie)• Society <strong>of</strong> Mind—applying models <strong>of</strong> human cognitiveprocessing to machines (see Minsky, Marvin)• Affective Computing—developing computers that canrecognize <strong>and</strong> respond intelligently to human emotionFurther ReadingBourzac, Katherine. “Media Lab Courts Corporate Funding.”<strong>Technology</strong> Review, February 21, 2006. Available online.URL: http://www.technologyreview.com/Biztech/16383/?a=f.Accessed October 2, 2007.Once notorious for breaking into computers <strong>and</strong> stealinginformation, Kevin Mitnick later became a consultant <strong>and</strong>author on computer security.Mitnick was born October 6, 1963, in Van Nuys, California.With little parental supervision <strong>and</strong> few otherfriends, Mitnick became involved with “phone phreaks,”people who had learned to manipulate the long-distancephone system. However, Mitnick soon turned his attentionto breaking into computer systems. Mitnick first got introuble in high school for breaking into the school district’scomputer system. He also allegedly broke into the NorthAmerican Air Defense Comm<strong>and</strong> computer, though fortunatelywithout starting a nuclear war as in the movie WarGames. Despite being caught stealing Bell System technicalmanuals <strong>and</strong> put on probation, Mitnick continued breakinginto computers. In 1989 he received a one-year prisonsentence for breaking into computers at MCI <strong>and</strong> DigitalEquipment Corporation. After getting out he violated hisprobation by stealing more Bell documents, <strong>and</strong> a warrantwas issued for his arrest.Mitnick then went underground, eluding authoritiesfor two years <strong>and</strong> using a variety <strong>of</strong> fake identities. However,when Mitnick broke into the computer <strong>of</strong> physicist<strong>and</strong> computer security expert Tsutomu Shimomura <strong>and</strong>stole a large number <strong>of</strong> documents <strong>and</strong> programs, <strong>and</strong>later taunted him on the phone, Shimomura resolved totrack down the intruder. Shimomura <strong>and</strong> several otherexperts set up a tracking program at The Well (a computerconferencing system where Mitnick had stashed the stolenmaterial). Mitnick attempted to disguise his location byrouting calls through a phone company switching <strong>of</strong>ficein Raleigh, North Carolina, but when Shimomura figuredout that Mitnick was calling from Raleigh, he <strong>and</strong> a Sprintphone technician drove around Raleigh scanning for thecalls from Mitnick’s cellular modem, tracking him to hisapartment building. They then called federal agents, whoarrested Mitnick.Mitnick became a cause célèbre in the hacker community.The controversy was heightened by two books writtenabout the case, one by Shimomura <strong>and</strong> New York Timesjournalist John Markh<strong>of</strong>f <strong>and</strong> the other by Jonathan Littman,who argued that the charges against Mitnick wereoverinflated <strong>and</strong> government prosecutors overzealous.


modem 315Author <strong>and</strong> Security ExpertAfter serving a total <strong>of</strong> five years in prison (four <strong>and</strong> a halfbefore he was actually tried), Mitnick was released in January2000 on condition that he not use any form <strong>of</strong> computernetwork. (Mitnick appealed this restriction <strong>and</strong> it was laterlifted.) Meanwhile, Mitnick then wrote two books describingboth technical <strong>and</strong> psychological or “social engineering”methods used by hackers, <strong>and</strong> giving advice on howcomputer owners can protect themselves. Mitnick currentlyowns his own computer security company.Further ReadingGoodell, Jeff. The Cyberthief <strong>and</strong> the Samurai: The True Story <strong>of</strong>Kevin Mitnick—<strong>and</strong> the Man Who Hunted Him Down. NewYork: Dell, 1996.Littman, Jonathan. The Fugitive Game: Online with Kevin Mitnick.Boston: Little, Brown, 1996.Mitnick, Kevin D. The Art <strong>of</strong> Deception: Controlling the Human Element<strong>of</strong> Security. Indianapolis: Wiley, 2002.———. The Art <strong>of</strong> Intrusion: The Real Stories behind the Exploits <strong>of</strong>Hackers, Intruders & Deceivers. Indianapolis: Wiley, 2005.Shimomura, Tsutomo, <strong>and</strong> John Mark<strong>of</strong>f. Takedown: The Pursuit<strong>and</strong> Capture <strong>of</strong> Kevin Mitnick, America’s Most Wanted <strong>Computer</strong>Outlaw—by the Man Who Did It. New York: Hyperion,1996.modeling languagesMost significant modern s<strong>of</strong>tware projects are not simplyprograms, however large, but complex systems <strong>of</strong> programsor modules. Such systems have to be designed <strong>and</strong> fullydescribed before they can be coded. Traditional methodsmay be adequate for simple programs (see flowchart <strong>and</strong>pseudocode), but they do not capture many aspects <strong>of</strong>design <strong>and</strong> behavior. When used for s<strong>of</strong>tware projects <strong>and</strong>information systems, modeling languages allow for components<strong>and</strong> their relationships to be described <strong>and</strong> diagrammedsystematically.UMLUnified Modeling Language, or UML, is the most widelyused modeling language for s<strong>of</strong>tware projects. UMLdescribes s<strong>of</strong>tware in three ways: the functions <strong>of</strong> the systemas seen by the user; the system’s objects, attributes, <strong>and</strong>relationships (see class <strong>and</strong> object-oriented programming);<strong>and</strong> how the system behaves, as seen by how objectsinteract <strong>and</strong> how their state changes. A variety <strong>of</strong> diagramscan be used to summarize this information:• activity—describes processes <strong>and</strong> data flow, as in businesstransactions• class—shows classes <strong>and</strong> data types <strong>and</strong> their relationships• communication—the messages (data) exchangedbetween classes• components—the major parts <strong>of</strong> the system• composite structure—the internal structure <strong>of</strong> a classor component• deployment—where the system is executed, includinghardware <strong>and</strong> s<strong>of</strong>tware servers• interaction overview—a way to show the overall flow<strong>of</strong> control• object—objects <strong>and</strong> relationships at a particular pointin time• package—organization <strong>of</strong> elements <strong>of</strong> the model intopackages, showing dependencies• sequence—how messages are organized chronologically• state machine—the possible states an object or interactioncan have, <strong>and</strong> how each type <strong>of</strong> input changesthe state (see finite-state machine)• timing—how the state <strong>of</strong> an object changes over timeas it responds to events• use case—actors <strong>and</strong> actions (such as a customermaking a purchase)Some critics believe that UML can be overused, leadingto large, complex descriptions <strong>and</strong> numerous diagramsthat can be almost as hard to work with as the code itself.Further, the UML itself has to be maintained, being revised<strong>and</strong> exp<strong>and</strong>ed as the design <strong>and</strong> code change. Integratingmodeling functions into programming environments <strong>and</strong>providing a seamless path from model to specification tocode is a possible alternative, though hard to realize inpractice.Further ReadingChonoles, Michael Jesse, <strong>and</strong> James A. Schardt. UML 2 for Dummies.New York: Wiley, 2003.“Introduction to the Diagrams <strong>of</strong> UML 2.0.” Agile Modeling. Availableonline. URL: http://www.agilemodeling.com/essays/umlDiagrams.htm. Accessed October 3, 2007.Miles, Russ, <strong>and</strong> Kim Hamilton. Learning UML 2.0. Sebastapol,Calif.: O’Reilly, 2006.UML Forum. Available online. URL: http://www.uml-forum.com/.Accessed October 3, 2007.UML Resource Page. (Object Management Group). Availableonline. URL: http://www.uml.org/. Accessed October 3, 2007.modemAs computers proliferated <strong>and</strong> users experienced an increasingneed to exchange data <strong>and</strong> communicate, it becamelogical to tap into the telephone system, a communicationstechnology that already linked millions <strong>of</strong> places aroundthe world.The problem is that the conventional telephone is ananalog rather than digital device. It converts sound (such asspeech) into continuously varying electrical signals. <strong>Computer</strong>s,on the other h<strong>and</strong>, use discrete pulses <strong>of</strong> on/<strong>of</strong>f(binary) data. However, it proved relatively easy to builda device that could “modulate” the data pulses, imposingthem on a sort <strong>of</strong> carrier wave <strong>and</strong> thus convertingthem into electrical signals that could travel along telephonelines. At the other end <strong>of</strong> the line a corresponding


316 molecular computingdevice could “demodulate” that telephone signal, convertingit back into data pulses. This “modulator-demodulator”device is known as a modem for short.A modem contains both the modulator <strong>and</strong> demodulatorcircuit, with a connection to a cable <strong>and</strong> a phone jack onone side <strong>and</strong> a connection to the computer on the other. Thecomputer connection can be provided by connecting to ast<strong>and</strong>ard port on the outside <strong>of</strong> the PC (see serial port) orby mounting the modem on a card that slides into the PC’sinternal bus (see bus) <strong>and</strong> connects to the outside phoneline through a jack. The modem must also have a componentthat generates the dialing pulses needed to establish aphone connection.The first modems for PCs appeared in the early 1980s<strong>and</strong> were very slow by modern st<strong>and</strong>ards, transmittingdata at 300 bps (bits per second). However, speed steadilyimproved, reaching 1,200, 2,400, 9,600 <strong>and</strong> so on up to56,000, which is about the maximum practical speed forthis technology over ordinary phone lines.Phone lines are far from hermetically sealed, <strong>and</strong> r<strong>and</strong>omfluctuations called “line noise” can sometimes be misinterpretedby the modem as part <strong>of</strong> the data signal, leadingto errors. However, modern modems include sophisticatederror-correcting protocols (see error correction)<strong>and</strong> can automatically negotiate with each other to reducedata transmission speed over noisy lines. Data compressiontechniques also make it possible to have an effectivelygreater transmission speed by packing more informationinto less data. In the 1990s, there were some problemscaused by competing st<strong>and</strong>ards, but today most modemsmeet the International Telecommunications Union (ITU)v.90 st<strong>and</strong>ard for 56 kbps transmission. The modem is nowa reliable, stable commodity included as st<strong>and</strong>ard equipmentin most new PCs.Modems have met with increasing competition as ameans to connect homes to the Internet. Data can be transmittedover video cable or special phone lines (such asDSL or ADSL) at 20–30 times faster than for a modem onan ordinary phone line (see broadb<strong>and</strong>). However, besidesbeing two to three more times expensive than typical dialupservices, broadb<strong>and</strong> technologies tend to be concentratedin urban areas. Nevertheless, the versatile modemis becoming a secondary means <strong>of</strong> data communication formost users.laws <strong>and</strong> processes to solve problems (see analog computer).One <strong>of</strong> the most intriguing approaches is basedupon chemistry <strong>and</strong> biology rather than electronics.Consider that all living things possess a detailed “databasesystem” <strong>of</strong> coded information, namely, the DNAsequences that define their genetic code. DNA consists <strong>of</strong>str<strong>and</strong>s composed <strong>of</strong> four bases: adenine (A), cytosine (C),guanine (G), <strong>and</strong> thymine (T). There are a variety <strong>of</strong> waysin which biologists can “sequence” a str<strong>and</strong> <strong>of</strong> DNA, that is,determine the order <strong>of</strong> bases in it. It is also relatively easy tomake many copies <strong>of</strong> a given chain by using the polymerasechain reaction (PCR) technique.This stockpile <strong>of</strong> coded DNA str<strong>and</strong>s can be used to solvecombinatorial problems. This type <strong>of</strong> problem becomesexponentially harder to solve through “brute force” computationas the number <strong>of</strong> elements increases. An exampleis the famous “Traveling Salesman Problem.” Here the goalis to determine a route that visits all <strong>of</strong> a list <strong>of</strong> cities whilevisiting each city only once.As Leonard Edelman pointed out in his 1994 article in<strong>Science</strong>, a DNA-based approach to the traveling salesmanproblem begins by assigning two sets <strong>of</strong> four bases to eachcity. Next, a similar DNA combination is assigned to eachavailable direct route between two cities, using half (fourbases) <strong>of</strong> the sequence assigned to the respective cities.That is, if one city is coded TCGTAGCT <strong>and</strong> another cityis coded GCATTAAG, then a route from the first city to thesecond would be coded TCGTTAAG.When binding one DNA str<strong>and</strong> to another, T alwaysbinds with A, <strong>and</strong> C always binds with G. Therefore a “complement”can be defined that will bind with a given DNAstring. For example, the complement <strong>of</strong> TCGTAGCT wouldbe AGCATCGA.Next, the str<strong>and</strong>s representing the complements for thecities are mixed with the ones representing routes. If a citycomplement runs into a route containing that city, theybind together. The other end (representing the other end <strong>of</strong>the route) might then encounter another route str<strong>and</strong>, thusextending the route to a third city <strong>and</strong> so on, until there arestr<strong>and</strong>s representing potentially complete routes to all theFurther ReadingBanks, Michael A. The Modem Reference: The Complete Guide toPC Communications. 4th ed. Medford, N.J.: CyberAge Books,2000.Brain, Marshall. “How Modems Work.” Available online. URL:http://www.howstuffworks.com/modem.htm. Accessed August15, 2007.Glossbrenner, Alfred, <strong>and</strong> Emily Glossbrenner. The CompleteModem H<strong>and</strong>book. New York: MIS Press, 1995.molecular computingWhile the electronic digital computer is by far the mostprevalent type <strong>of</strong> calculating device in use today, it is alsopossible to build computational devices that exploit naturalMolecular computing takes advantage <strong>of</strong> the properties <strong>of</strong> moleculessuch as DNA to create what is in effect a massive array <strong>of</strong>parallel processors. In this example, DNA str<strong>and</strong>s can be coded torepresent cities <strong>and</strong> possible routes between them so that they willchemically solve the Traveling Salesman Problem.


monitor 317cities. After the mixing <strong>and</strong> combining is completed, separation<strong>and</strong> sequencing techniques can be used to find theshortest str<strong>and</strong> that includes all the cities. This representsthe solution to the problem.The attractiveness <strong>of</strong> molecular computing lies in itsbeing “massively parallel” (see multiprocessing). Althoughmolecular operations are individually much slower thanelectronics, DNA str<strong>and</strong>s can be replicated <strong>and</strong> assembledin great numbers, potentially allowing them to go throughquintillions (10 18 ) <strong>of</strong> combinations at the same time. In1996, Dan Boneh designed an approach using DNA combinationsthat could be used to break the Data EncryptionSt<strong>and</strong>ard (DES) encryption scheme by testing huge numbers<strong>of</strong> keys simultaneously.In 2002 researchers at the Weizmann Institute <strong>of</strong> <strong>Science</strong>in Rehovot, Israel, announced that they had constructeda DNA computer that could perform 330 teraflops(trillions <strong>of</strong> operations per second). Two years later Weizmannresearchers described their new DNA computer,which could be used to diagnose <strong>and</strong> treat cancer on thecellular level.Although this application suggests the potential powerin molecular computing, the approach has significantdrawbacks. There are many ways that damage can occurto DNA str<strong>and</strong>s during combination <strong>and</strong> processing, leadingto errors. Even for the combinatorial problems that aremolecular computing’s strong suit, conventional electroniccomputers using large arrays <strong>of</strong> parallel processors are ableto <strong>of</strong>fer comparable power <strong>and</strong> a much easier interface.However, molecular computing illustrates the rich way inwhich information <strong>and</strong> information processing are embeddedin nature <strong>and</strong> the potential for harnessing it for practicalapplications.Further ReadingAmos, Martyn. Genesis Machines: The New <strong>Science</strong> <strong>of</strong> Biocomputing.New York: Overlook, 2008.———. Theoretical <strong>and</strong> Experimental DNA Computation. New York:Springer, 2005.———, ed. Cellular Computing. New York: Oxford UniversityPress, 2004.Calude, Christian, <strong>and</strong> Gheorghe Păun. Computing with Cells <strong>and</strong>Atoms: An Introduction to Quantum, DNA <strong>and</strong> Membrane Computing.New York: Routledge, 2001.Păun, Gheorghe, Grzegorz Rozenberg, <strong>and</strong> Arto Salomaa. DNAComputing: New Computing Paradigms. New York: Springer,1998.Ryu, Will. “DNA Computing: A Primer.” Ars Technica. Availableonline. URL: http://arstechnica.com/reviews/2q00/dna/dna-1.html. Accessed August 15, 2007.monitorAs designers strove to make computers more interactive<strong>and</strong> user-friendly, the advantages <strong>of</strong> the cathode ray tube(CRT) already used in television became clear. Not onlycould text be displayed without wasting time <strong>and</strong> resourceson printing but the individually addressable dots (pixels)could be used to create graphics. While such displays wereused occasionally in defense <strong>and</strong> research systems in the1950s, the first widespread use <strong>of</strong> CRT video monitors camewith the new generation <strong>of</strong> smaller computers developedin the 1960s (see minicomputer). Since such computerswere <strong>of</strong>ten used for scientific, engineering, industrial control,<strong>and</strong> other real-time applications, the combination <strong>of</strong>video display <strong>and</strong> keyboard (i.e., a Video Display Terminal,or VDT) was a much more practical way for users to overseethe activities <strong>of</strong> such systems. (This oversight function alsoled to the term monitor.)A monitor can be thought <strong>of</strong> as a television set thatreceives a converted digital signal rather than regular TVprogramming. To send an image to the screen, the PC firstassembles it in a memory area called a video buffer (modernvideo cards can store up to 64 MB <strong>of</strong> complex graphicsdata. See computer graphics). Ultimately, the graphics arestored as an array <strong>of</strong> memory locations that represent thecolors <strong>of</strong> the individual screen dots, or pixels. The videocard then sends this data through a digital to analog converter(DAC), which converts the data to a series <strong>of</strong> voltagelevels that are fed to the monitor.The monitor has electron “guns” that are aimedaccording to these voltages. (A monochrome monitor hasA st<strong>and</strong>ard computer monitor works much like an ordinary color TV set. The difference is that the signal is derived not from a broadcast program,but from the contents <strong>of</strong> video memory as processed <strong>and</strong> converted by the computer’s graphics card.


318 Moore, Gordon E.only one gun, while a color monitor, like a color TV, hasseparate guns for red, blue, <strong>and</strong> green. The electrons fromthe guns pass through a lattice called a shadow mask,which keeps the beams properly separated <strong>and</strong> aligned.Each pixel location on the inner surface <strong>of</strong> the CRT iscoated with phosphors, one that responds to each <strong>of</strong> thethree colors.The intensity <strong>of</strong> the beam hitting each color determinesthe brightness <strong>of</strong> the color, <strong>and</strong> the mixture <strong>of</strong> the red, blue,<strong>and</strong> green color levels determines the final color <strong>of</strong> thepixel. (Today’s graphics systems can generate more than16.7 million different colors, although the human eye cannotmake such fine distinctions.)The beam sweeps along a row <strong>of</strong> pixels <strong>and</strong> then turns<strong>of</strong>f momentarily as it is refocused <strong>and</strong> set to the nextrow. The process <strong>of</strong> scanning the whole screen in thisway is repeated 60 times a second, too fast to be noticedby the human eye. Less expensive monitors were sometimesdesigned to skip over alternate lines on each passso that each line is refreshed only 30 times a second. Thisinterlaced display can have noticeable flicker, <strong>and</strong> fallingprices have resulted in virtually all current monitorsbeing noninterlaced.Another factor influencing the quality <strong>of</strong> a CRT monitoris the size <strong>of</strong> the screen area devoted to each pixel. Thespacing in the shadow mask that defines the pixel areas iscalled the dot pitch. A smaller dot pitch allows for a sharperimage.During the 1980s, emerging video st<strong>and</strong>ards <strong>of</strong>feredincreasing screen resolution <strong>and</strong> number <strong>of</strong> colors, startingwith the first IBM PC color displays at 320 × 200 pixels, 4colors up to video graphics array (VGA) displays at 1024 ×768 pixels <strong>and</strong> at least 256 colors. The latter is consideredthe minimum st<strong>and</strong>ard today, with some displays going ashigh as 1600 × 1200 with millions <strong>of</strong> colors.Meanwhile, the CRT monitor became a commodity itemwith steadily falling prices. A 19-inch color monitor nowcosts only a few hundred dollars. Ergonomically, it is importantfor the combination <strong>of</strong> display size <strong>and</strong> resolution to beset to avoid eyestrain. There has been some concern aboutusers receiving potentially damaging nonionizing radiationfrom CRT displays, but studies have generally been unableto confirm such effects. Modern monitors are generallydesigned to minimize this radiation.CRT displays are too bulky <strong>and</strong> power-hungry for laptopor h<strong>and</strong>held devices, which generally use liquid crystaldisplays (LCDs). In recent years large LCD displays suitablefor desktop systems have also declined in price, <strong>and</strong> arerapidly becoming the display <strong>of</strong> choice even for regular PCs(see flat-panel display).Further ReadingCarmack, Carmen, <strong>and</strong> Jeff Tyson. “How <strong>Computer</strong> MonitorsWork.” Available online. URL: http://www.howstuffworks.com/monitor.htm. Accessed August 15, 2007.Goldwasser, Samuel M. “Notes on the Troubleshooting <strong>and</strong> Repair<strong>of</strong> <strong>Computer</strong> <strong>and</strong> Video Monitors.” Available online. URL:http://www.repairfaq.org/sam/monfaq.htm. Accessed August15, 2007.Moore, Gordon E.(1929– )AmericanEntrepreneurThe microprocessor chip is the heart <strong>of</strong> the modern computer,<strong>and</strong> Gordon Moore deserves much <strong>of</strong> the credit forputting it there. His insight into the computer chip’s potential<strong>and</strong> his business acumen <strong>and</strong> leadership would lead to theearly success <strong>and</strong> market dominance <strong>of</strong> Intel Corporation.Moore was born on January 3, 1929, in the small coastaltown <strong>of</strong> Pescadero, California, south <strong>of</strong> San Francisco. Hisfather was the local sheriff <strong>and</strong> his mother ran the generalstore. Young Moore was a good science student, <strong>and</strong> heattended the University <strong>of</strong> California, Berkeley, receivinga B.S. in chemistry in 1950. He then went to the CaliforniaInstitute <strong>of</strong> <strong>Technology</strong> (Caltech), earning a dual Ph.D. inchemistry <strong>and</strong> physics in 1954. Moore thus had a soundbackground in materials science that would help preparehim to evaluate the emerging research in transistors <strong>and</strong>semiconductor devices that would begin to transform electronicsin the later 1950s.After spending two years doing military research atJohns Hopkins University, Moore returned to the WestCoast to work for Shockley Semiconductor Labs in PaloAlto. However, Shockley, who would later share in a NobelPrize for the invention <strong>of</strong> the transistor, alienated many <strong>of</strong>his top staff, including Moore, <strong>and</strong> they decided to starttheir own company, Fairchild Semiconductor, in 1958.Moore became manager <strong>of</strong> Fairchild’s engineeringdepartment <strong>and</strong>, the following year, director <strong>of</strong> research.He worked closely with Robert Noyce, who was developinga revolutionary process for placing the equivalent <strong>of</strong> manytransistors <strong>and</strong> other components onto a small chip.Moore <strong>and</strong> Noyce saw the potential <strong>of</strong> this integratedcircuittechnology for making electronic devices includingclocks, calculators, <strong>and</strong> especially computers vastly smalleryet more powerful. In 1965 he formulated what becamewidely known in the industry as Moore’s law. This predictionsuggested that the number <strong>of</strong> transistors that could beput in a single chip would double about every year (laterit would be changed to 18 months or two years). Remarkably,Moore’s law would still hold true into the 21st century,although as transistors get ever closer together, the laws <strong>of</strong>physics begin to impose limits on current technology.Moore, Noyce, <strong>and</strong> Andrew Grove found that they couldnot get along well with the upper management in Fairchild’sparent company, <strong>and</strong> decided to start their own company,Intel Corporation, in 1968, using $245,000 plus $2.5million from venture capitalist Arthur Rock (see GroveAndrew <strong>and</strong> Intel Corporation). They made the development<strong>and</strong> application <strong>of</strong> microchip technology the centerpiece<strong>of</strong> their business plan. Their first products wereRAM (r<strong>and</strong>om access memory) chips (see chip).Seeking business, Intel received a proposal from Busicom,a Japanese firm, for 12 custom chips for a new calculator.Moore <strong>and</strong> Grove were not sure they were ready toundertake such a large project, but then Ted H<strong>of</strong>f, one <strong>of</strong>their first employees, suggested that they could build a chip


motherboard 319that had a general-purpose central processing unit (CPU)that could be programmed with whatever instructions wereneeded for each application. With the support <strong>of</strong> Moore <strong>and</strong>other Intel leaders, the project got the go-ahead. The resultwas the microprocessor, <strong>and</strong> it would revolutionize not onlycomputers, but just about every sort <strong>of</strong> electronic device(see microprocessor).Under the leadership <strong>of</strong> Moore, Grove, <strong>and</strong> Noyce, the1980s would see Intel established as the leader in microprocessors,starting when IBM chose Intel microprocessorsfor its hugely successful IBM PC. IBM’s competitors, suchas Compaq, Hewlett-Packard, <strong>and</strong> later Dell, would also useIntel microprocessors for most <strong>of</strong> their PCs.In his retirement, Moore enjoyed fishing at his summerhome in Hawaii while being active as a philanthropist.Moore gave a record-setting $600 million donation toCaltech in 2001, <strong>and</strong> in 2003 Moore <strong>and</strong> his wife, Betty, setup a $5 billion foundation focusing on environmental <strong>and</strong>social initiatives. Moore has also had a long-time interest inSETI, or the search for extraterrestrial intelligence.Moore has been awarded the prestigious National Medal<strong>of</strong> <strong>Technology</strong> (1990), the IEEE Founders Medal, the W.W. McDonnell Award, as well as the Presidential Medal <strong>of</strong>Freedom (2002). In 2003 Moore was elected a fellow <strong>of</strong> theAmerican Association for the Advancement <strong>of</strong> <strong>Science</strong>.Further ReadingBurgelman, Robert, <strong>and</strong> Andrew S. Grove. Strategy Is Destiny. NewYork: Simon & Schuster, 2001.“Calibrating Gordon Moore.” Caltech News 36 (2002). Availableonline. URL: http://pr.caltech.edu/periodicals/CaltechNews/articles/v36/moore.html. Accessed May 5, 2007.“Laying Down the Law.” <strong>Technology</strong> Review 104 (May 2001): 65.Available online. URL: http://www.technologyreview.com/Infotech/12403/. Accessed October 3, 2007.Mann, Charles. “The End <strong>of</strong> Moore’s Law?” <strong>Technology</strong> Review 103(May 2000): 42. Available online. URL: http://www.technologyreview.com/Infotech/12090/.Accessed October 3, 2007.motherboardLarge computers generally had separate large cabinets tohold the central processing unit (CPU) <strong>and</strong> memory (seemainframe). Personal computers, built in an era <strong>of</strong> integratedelectronics, use a single large circuit board to serveas the base into which chips <strong>and</strong> expansion boards areplugged. This base is called the motherboard.The motherboard has a special slot for the CPU (seemicroprocessor). Data lines (see bus) connect the CPU toRAM (see memory) <strong>and</strong> various device controllers. Besidescompactness, use <strong>of</strong> a motherboard minimizes the use <strong>of</strong>possibly fragile cable connections. It also provides expansioncapability. Assuming its pins are compatible with theslot <strong>and</strong> it is operationally compatible, a PC user can plug amore powerful processor into the slot on the motherboard,upgrading performance. Memory expansion is also providedusing a row <strong>of</strong> memory sockets. Memory, originallyinserted as rows <strong>of</strong> separate chips plugged into individualsockets, is now provided in single modules called DIMMsthat can be easily slid into place.Schematic <strong>of</strong> a PC motherboard. Note the sockets into which additionalRAM memory chips (DIMM) modules can be inserted, aswell as the slots for ISA <strong>and</strong> PCI st<strong>and</strong>ard expansion cards.The motherboard also generally includes about six general-purposeexpansion slots. These follow two differentst<strong>and</strong>ards, ISA (industry st<strong>and</strong>ard architecture) <strong>and</strong> PCI(peripheral component interconnect) with PCI now predominating(see bus). These slots allow users to mix <strong>and</strong>match such accessories as graphics (video) cards, disk controllers,<strong>and</strong> network cards. Additionally, the motherboardincludes a chip that stores permanent configuration settings<strong>and</strong> startup code (see bios), a battery, a system clock,<strong>and</strong> a power supply.The most important factors in choosing a motherboardare the type <strong>and</strong> speeds <strong>of</strong> processor it can accommodate,the bus speed, the BIOS, system chipset, memory <strong>and</strong> deviceexpansion capacity, <strong>and</strong> whether certain features (suchas video) are integrated into the motherboard or providedthrough plug-in cards. Generally, users must work withinthe parameters <strong>of</strong> their system’s motherboard, althoughknowledgeable people who like to tinker can buy a motherboard<strong>and</strong> build a system “from scratch” or keep their currentperipheral components <strong>and</strong> upgrade the motherboard.Further ReadingPalmer, Charlie. How to Build Your Own PC: Save a Buck <strong>and</strong> Learna Lot. West St. Paul, Minn.: HCM Publishing, 2005.Rosenthal, Morris. Build Your Own PC. 4th ed. Emeryville, Calif.:McGraw-Hill/Osborne, 2004.Soderstrom, Thomas. “Beginner’s Guide to Motherboard Selection.”Tom’s Hardware. Available online. URL: http://www.tomshardware.com/2006/07/26/beginners_guide_to_motherboard_selection/. Accessed August 15, 2007.Wilson, Tracy V. “How Motherboards Work.” Available online. URL:http://www.howstuffworks.com/motherboard.htm. AccessedAugust 15, 2007.


320 Motorola CorporationMotorola CorporationMotorola Corporation (NYSE symbol: MOT) is a venerableAmerican manufacturer <strong>of</strong> communications <strong>and</strong> otherelectronic equipment, including computers <strong>and</strong> cell phones.The company was founded in 1928 by Paul <strong>and</strong> JosephGalvin as Galvin Manufacturing Corporation. The nameMotorola arose in the early 1930s when the company beganmanufacturing car radios (“motor” as in car plus “ola” as inVictrola), <strong>and</strong> the company’s name was <strong>of</strong>ficially changed toMotorola Corporation in 1947. Many <strong>of</strong> the company’s subsequentproducts would relate to radio, such as police carradios, walkie-talkies, <strong>and</strong> cordless phones. Motorola introducedthe first “brick” cell phone in 1983. Today Motorolais best known for stylish cell phones with names such asRAZR <strong>and</strong> KRZR.Motorola also played an important role in building theglobal satellite communications network through the IridiumCompany in the late 1990s. However, the companyfiled for bankruptcy when it could not attract enough telecommunicationscompanies to use its services.MicroprocessorsThough the market came to be dominated by Intel (seeIntel Corporation), Motorola was an important manufacturer<strong>of</strong> microprocessors in the 1980s <strong>and</strong> 1990s. Motorola’s68000 series micrprocessors <strong>and</strong> later PowerPC series(developed jointly with IBM) were used in several computersystems <strong>of</strong> the early 1980s, including the CommodoreAmiga <strong>and</strong> the Atari ST, as well as workstation terminals(Sun) <strong>and</strong> UNIX systems. The greatest consumer impact,however, would be its use in the Apple Macintosh, startingin 1984.The later Power PC (PPC) series, launched in 1993, is aRISC processor (reduced instruction set, see risc). This line<strong>of</strong> processors would be used in the Power Mac <strong>and</strong> otherMacintosh systems until Apple adopted Intel chips in 2006.Motorola’s fortunes declined in the early to mid 2000s.In 2001 Motorola spun <strong>of</strong>f its defense-related business toGeneral Dynamics. It spun <strong>of</strong>f its computer chip manufacturingdivision in 2004 as Freescale Semiconductors, <strong>and</strong>in 2007 Motorola sold its embedded communications chipunit to Emerson Electric. Motorola has said it would focuson its core communications business.Despite strong dem<strong>and</strong> for its cell phones <strong>and</strong> othermobile devices, in 2006 Motorola earned 42.9 billion inrevenue, but its pr<strong>of</strong>its were down 48 percent from the previousyear. This was attributed to strong price competition.In 2007 the company said it would cut 3,500 <strong>of</strong> its 66,000employees.Further ReadingMotorola Web site. Available online. URL: http://www.motorola.com/. Accessed October 3, 2007.P<strong>and</strong>e, Meter S., Robert P. Neumann, <strong>and</strong> Rol<strong>and</strong> R. Cavanagh.The Six Sigma Way: How GE, Motorola, <strong>and</strong> Other Top CompaniesAre Honing Their Performance. New York: McGraw-Hill,2000.Petrakis, Harry Mark. The Founder’s Touch: The Life <strong>of</strong> Paul Galvin<strong>of</strong> Motorola. 3rd ed. Chicago: Motorola University Press,1991.Schoenborn, Guenter. Entering Emerging Markets: Motorola’s Blueprintfor Going Global. Rev. ed. New York: Springer, 2006.Wray, William C., Joseph D. Greenfield, <strong>and</strong> Ross T. Bannatyne.Using Microprocessors <strong>and</strong> Microcomputers: The Motorola Family.4th ed. Upper Saddle River, N.J.: Prentice Hall, 1998.mouseTraditionally, computers were controlled by typing in comm<strong>and</strong>sat the keyboard. However, as far back as the mid-1960s researchers had begun to experiment with providingusers with more natural ways to interact with the machine.In 1965, Douglas Engelbart at the Stanford Research Institute(SRI) devised a small box that moved over the desk onwheels <strong>and</strong> was connected to the computer by a cable. Asthe user moved the box around, it sent signals representingits motion. These signals in turn were used to draw apointer on the screen. Engelbart found that this system wasless taxing on users than alternative such as light pens orjoysticks (see Engelbart, Douglas).This device, dubbed a “mouse,” remained largely a laboratorynovelty. In the 1970s, however, Xerox designed amouse-driven graphical user interface for its Alto system,which saw only limited use. In 1984, however, Apple intro-This Micros<strong>of</strong>t wireless optical mouse eliminates moving parts <strong>and</strong>wires for smooth, accurate, reliable performance. (Micros<strong>of</strong>tCorporation)


MS-DOS 321duced the mouse to millions <strong>of</strong> users <strong>of</strong> its Macintosh. Bythe early 1990s, millions more users were switching theirIBM-compatible PCs from text comm<strong>and</strong>s (see ms-dos)to the mouse-driven Windows interface. (See Micros<strong>of</strong>tWindows.) Today a desktop PC without a mouse would beas unthinkable as one without a keyboard.Meanwhile, the mouse became smaller <strong>and</strong> sleeker.Instead <strong>of</strong> wheels, the contemporary mouse uses a rollingball that turns two adjacent rollers inside the mouse. Amouse pad with a special surface is generally used to provideuniform traction. A newer type <strong>of</strong> mouse uses opticalsensors instead <strong>of</strong> rollers to sense its changing position, <strong>and</strong>does not require a mouse pad. Some mice are also cordless,using infrared or wireless data connections.Since mice are generally impracticable for laptop use(see portable computers), designers have <strong>of</strong>fered a variety<strong>of</strong> alternatives. These include a trackball (a rolling ball builtinto the keyboard), a touch-sensitive finger pad, or a smallstub that can be moved like a joystick by the fingertip.Most mice now have at least two buttons. Generally, theleft button is used for selecting objects, opening menus, orlaunching programs. The right button is used to bring up amenu <strong>of</strong> actions that can be done with the selected object.Activating a button is called clicking. It is the operating systemthat assigns significance to clicking or double-clicking (clickingtwice in rapid succession) or dragging (holding a buttondown while moving the pointer). Some mice have a third button<strong>and</strong>/or a small wheel that can be used to scroll the display,but only certain s<strong>of</strong>tware recognizes these functions.Further ReadingBrain, Marshall, <strong>and</strong> Carmen Carmack. “How <strong>Computer</strong> MiceWork.” Available online. URL: http://computer.howstuffworks.com/mouse.htm. Accessed August 15, 2007.Pang, Alex Soojung-Kim. “The Making <strong>of</strong> the Mouse.” AmericanHeritage. Available online. URL: http://www.americanheritage.com/articles/magazine/it/2002/3/2002_3_48.shtml. AccessedAugust 15, 2007.MS-DOSThe MS-DOS operating system became st<strong>and</strong>ard for personalcomputers built by IBM <strong>and</strong> its imitators (see IBMPC) during the 1980s. Today it has been virtually displacedby various versions <strong>of</strong> Micros<strong>of</strong>t Windows (see Micros<strong>of</strong>tWindows). However, MS-DOS is important as an expression<strong>of</strong> both the limitations <strong>of</strong> the first generation <strong>of</strong> personalcomputers <strong>and</strong> the remarkable patience <strong>and</strong> ingenuity<strong>of</strong> its developers <strong>and</strong> users.DevelopmentBy the end <strong>of</strong> the 1970s, there were a number <strong>of</strong> rudimentaryoperating systems for personal computers that useda variety <strong>of</strong> microprocessors. Generally, their capabilitieswere limited to loading <strong>and</strong> running programs <strong>and</strong> providingbasic file organization <strong>and</strong> access.The most sophisticated early PC operating systemwas CP/M, developed by Gary Kildall’s Digital Researchfor machines based on the Intel 8008 microprocessor. CP/M <strong>of</strong>fered more advanced capabilities such as the abilityto use not only floppy but also hard disks, <strong>and</strong> includedimproved comm<strong>and</strong>s for listing file directories. CP/M even<strong>of</strong>fered rudimentary programming tools, such as an editor<strong>and</strong> assembler, as well as an exp<strong>and</strong>able architecture thatallowed programmers to write utilities that could be ineffect added to the operating system (see assembler).In one <strong>of</strong> computer history’s greatest missed opportunities,Kildall <strong>and</strong> IBM failed to come to an agreement in1980 for creating a version <strong>of</strong> CP/M for the IBM PC, whichwas being developed using the new 16-bit 8086 processor.IBM turned instead to Bill Gates <strong>and</strong> Micros<strong>of</strong>t, whohad achieved something <strong>of</strong> a reputation for their widelyused BASIC language package for personal computers (seeGates, William). Gates agreed to provide IBM with anoperating system, <strong>and</strong> did so by buying a program calledQDOS (“quick <strong>and</strong> dirty operating system”), which hadbeen developed by Tim Paterson <strong>of</strong> Seattle <strong>Computer</strong> Products.This program was released for the IBM PC as PC-DOSin 1981. However, Micros<strong>of</strong>t did not sell IBM an exclusivelicense, so when “clone” makers proved able to legally buildIBM-compatible machines, Micros<strong>of</strong>t could sell them ageneric version called MS-DOS. As the PC market boomed,this provided Micros<strong>of</strong>t with a large revenue stream, <strong>and</strong>the company never looked back.FeaturesMS-DOS <strong>of</strong>fered a rather “clean” design that separates theoperating system into three parts. There is a hardwareindependentI/O system (stored as the file MSDOS.SYS),which processes requests from programs for access to diskfiles or to other devices such as the screen. The routinesneeded to actually communicate with the devices are storedin a separate file, IO.SYS, which is written by each computermanufacturer. (As users from the early 1980s remember,“PC-compatible” machines <strong>of</strong>ten had proprietary variationsin areas such as video.) Finally, the comm<strong>and</strong> processor(COmmAND.COM) displays the once familiar C:\> prompt<strong>and</strong> waits for the user to type comm<strong>and</strong>s. For example,the DIR comm<strong>and</strong> followed by a path specification such asC:\TEMP lists the contents <strong>of</strong> that directory. Programs, too,can be run by typing their names at the prompt.The MS-DOS file system, which remained largelyunchanged until the most recent versions <strong>of</strong> Windows, usesa FAT (file allocation table) to indicate the disk allocationunits or “clusters” assigned to each file. Starting with MS-DOS 2.0 in 1983, a hierarchical scheme <strong>of</strong> directories <strong>and</strong>subdirectories was introduced, allowing for better organization<strong>of</strong> the larger amount <strong>of</strong> space on hard disks.One interesting feature <strong>of</strong> MS-DOS is the ability to loada program into memory <strong>and</strong> keep it available even whileother programs are in use. This “terminate <strong>and</strong> stay resident”(TSR) function was soon used by enterprising developersto provide utilities such as notepads, calendars orshortcuts (see macro) that users could activate throughspecial key combinations.Users, however, had to struggle to keep enough memoryfree for their applications, resident programs, <strong>and</strong> devicedrivers. A combination <strong>of</strong> CPU addressing limitations <strong>and</strong>the high price <strong>of</strong> memory meant that early IBM PCs had


322 multimediaa maximum <strong>of</strong> 640 kB <strong>of</strong> memory to hold the operatingsystem <strong>and</strong> application programs. A trick called “exp<strong>and</strong>edmemory” was developed to allow data to be swapped back<strong>and</strong> forth between the 640 kB <strong>of</strong> usable memory <strong>and</strong> the1–2 MB <strong>of</strong> additional memory that became available in thelater 1980s.By the early 1990s, MS-DOS (then up to version 6.0) was<strong>of</strong>fering an alternative comm<strong>and</strong> processor (called DOS-SHELL) that included some mouse operations, better supportfor larger amounts <strong>of</strong> memory, <strong>and</strong> the ability to switchbetween different application programs. However, by thattime Windows 3.0 was proving increasingly successful, <strong>and</strong>by 1995 most new PCs were being shipped with Windows.Many new users scarcely used MS-DOS at all. Finally, withthe advent <strong>of</strong> Windows NT, 2000, <strong>and</strong> XP, the MS-DOS programcode that still lurked within the process <strong>of</strong> runningWindows disappeared entirely.Further Reading“Information <strong>and</strong> Help with Micros<strong>of</strong>t DOS.” Available online.URL: http://www.computerhope.com/msdos.htm. AccessedAugust 15, 2007.Paterson, Tim. “An Inside Look at MS-DOS.” Byte, vol. 8, no.6, June 1983, 250–252. Available online. URL: http://www.patersontech.com/Dos/Byte/InsideDos.htm. Accessed February6, 2008.multimediaThe earliest computers produced only numeric output ortext (which itself actually consists <strong>of</strong> numbers—see characters<strong>and</strong> strings). During the 1960s, CRT graphics (seemonitor) came into limited use, mainly on computers usedfor scientific <strong>and</strong> engineering applications (see minicomputer).However, most business computer users continuedto receive only textual output. A notable exception in the1970s was PLATO, a system <strong>of</strong> networked educational computerterminals that combined text, graphics, <strong>and</strong> sound. Itis this combination that became known as multimedia.While much less powerful than mainframes or minicomputers,the hobbyist <strong>and</strong> early commercial PCs (seegraphics card) <strong>of</strong> the late 1970s generally did have thecapability <strong>of</strong> producing simple monochrome or color graphicson a monitor or TV screen. The Apple Macintosh, firstreleased in 1984, was a considerable leap forward: Its userinterface was inherently graphical, with even text beingrendered as graphic bitmaps (see Macintosh).The arrival <strong>of</strong> the PC greatly encouraged the development<strong>of</strong> entertainment s<strong>of</strong>tware (see computer games) aswell as educational programs. As PCs became more powerful<strong>and</strong> gained hard drives <strong>and</strong>, by the late 1980s, CD-ROMdrives (see CD-Rom), it became practical to put extensivemultimedia content on systems in the home <strong>and</strong> school.One popular application has been encyclopedias, where thetext from the printed version can be enhanced with graphicssuch as photographs, maps, <strong>and</strong> charts. Besides beingmore compelling <strong>and</strong> easier to use than the printed version,multimedia encyclopedias can be updated easily throughannual upgrades, as well as allowing for linking to Websites that can further amplify or update the content.<strong>Encyclopedia</strong>s <strong>and</strong> other educational programs alsobenefited from the use <strong>of</strong> links that the user can click withthe mouse, bringing up additional or related information orillustrations (see hypertext <strong>and</strong> hypermedia). Bill Atkinson’sHypercard, released for the Macintosh in 1987, provideda multimedia “construction set” that could be usedby nonprogrammers to create simple hyperlinked presentations,educational programs, <strong>and</strong> even games. Hypertext<strong>and</strong> linking are the “glue” that binds multimedia into anintegrated experience.Multimedia business presentations are now routinelycreated using s<strong>of</strong>tware such as Micros<strong>of</strong>t PowerPoint, thenprojected at meetings. While simple presentations can emulatethe traditional “slide show,” one-upmanship inevitablyleads to more elaborate animations.Multimedia <strong>and</strong> Daily LifeDVD-ROM drives, with about six times the storage capacity<strong>of</strong> CDs, now make it practical to include video or evenfeature-length movies as part <strong>of</strong> a PC multimedia package.Meanwhile, the video capabilities <strong>of</strong> PCs continue to grow,with many PCs as <strong>of</strong> 2008 having 256 MB or more <strong>of</strong> videomemory. Combined with processors running at up to 2.5GHz, this allows computer-generated graphics to rival thequality <strong>of</strong> live video.However, the most important trend is probably thedelivery <strong>of</strong> online multimedia content (see Internet,online services, <strong>and</strong> World Wide Web). The widespreadmarketing <strong>of</strong> the Mosaic <strong>and</strong> Netscape browsers (see Webbrowser) in the mid-1990s changed the Internet from anarcane, text-driven experience to a multimedia platform.The ability to deliver a continuous “feed” <strong>of</strong> video <strong>and</strong> audio(see music <strong>and</strong> video distribution, online <strong>and</strong> streaming)allows content such as TV news reports to be carriedwith full video <strong>and</strong> radio broadcasts carried “live” withgood fidelity. Newspapers <strong>and</strong> broadcast outlets are increasinglyinvesting in online versions <strong>of</strong> their content, viewinga Web presence as a business necessity. As more Internetusers gain access to high-speed cable <strong>and</strong> DSL services (seebroadb<strong>and</strong>), multimedia is becoming as pervasive a part <strong>of</strong>the computing experience as television is in daily life.Many facets <strong>of</strong> that daily life are likely to be affectedby multimedia technology in coming years. The ability todeliver real-time, high-quality multimedia content, as wellas the use <strong>of</strong> cameras (see videoconferencing <strong>and</strong> Webcam) has made “virtual” meetings not only possible butalso routine in some corporate settings. When applied tolectures, this technology can facilitate “distance learning”where teachers work with students without them occupyingthe same room (see distance education <strong>and</strong> education<strong>and</strong> computers). Video “chat” services <strong>and</strong> immersive,pervasive online games have become important social outletsfor many people, with the experience becoming evermore realistic (see online games <strong>and</strong> virtual reality).Already, the concept <strong>of</strong> multimedia is becoming lessdistinctive precisely because it is so pervasive. Today’s Webusers expect to see images, video, <strong>and</strong> sound, whether aspart <strong>of</strong> a news story or an educational presentation, <strong>and</strong>multimedia is appearing on all sorts <strong>of</strong> new platforms (see


multiprocessing 323music <strong>and</strong> video players, digital; smartphones; <strong>and</strong> digitalconvergence). Further, equipped with digital cameras<strong>and</strong> camcorders (even cell-phone cameras), togetherwith easy-to-use editing s<strong>of</strong>tware, more <strong>and</strong> more peopleare becoming not just consumers <strong>of</strong> multimedia, but creatorsas well (see user-created content <strong>and</strong> YouTube).Further ReadingCoorough, Calleen, <strong>and</strong> James E. Shuman. Multimedia for the Web:Creating Digital Excitement. Boston: Thomson Course <strong>Technology</strong>,2005.Lauer, David, <strong>and</strong> Stephen Pentak. Design Basics: Multimedia Edition.6th ed. Belmont, Calif.: Wadsworth Publishing, 2006.MIT Media Lab. Available online. URL: http://www.media.mit.edu.Accessed August 15, 2007.“Multimedia <strong>and</strong> Authoring Resources on the Internet.” NorthwesternUniversity Library. Available online. URL: http://www.library.northwestern.edu/dms/multimedia.html.Accessed August 15, 2007.Packer, R<strong>and</strong>all, <strong>and</strong> Ken Jordan. Multimedia: From Wagner to VirtualReality. Exp<strong>and</strong>ed ed. New York: Norton, 2002.Vaughan, Tay. Multimedia: Making It Work. 7th ed. New York:McGraw-Hill/Osborne Media, 2006.multiprocessingOne way to increase the power <strong>of</strong> a computer is to use morethan one processing unit. In early computers (see mainframe)a single processor h<strong>and</strong>led both program execution<strong>and</strong> input/output (I/O) operations. In the late 1950s,however, machines such as the IBM 709 introduced theconcept <strong>of</strong> channels, or separate processing units for I/Ooperations. In such systems the central processor sends aset <strong>of</strong> I/O comm<strong>and</strong>s (such as to read a file into memory) tothe channel, which has its own processor for carrying outthe operation.True multiprocessing, however, involves the use <strong>of</strong> morethan one central processing unit (CPU). One successfuldesign, Control Data Corporation’s CDC 6600 (1964), containedboth multiple arithmetic/logic units (the part <strong>of</strong> theCPU that does calculations) <strong>and</strong> multiple controllers for I/O<strong>and</strong> memory access control. IBM soon added multiprocessingcapability to its 360 line <strong>of</strong> mainframes.Multiprocessing can be either asymmetric or symmetric.Asymmetric multiprocessing essentially maintains a singlemain flow <strong>of</strong> execution with certain tasks being “h<strong>and</strong>edover” by the CPU to auxiliary processors. (For example,the Intel 80386 processor could be purchased with an additionalfloating-point processor, allowing such calculationsto be performed using more efficient hardware. When thePentium line was developed, floating-point was integratedinto the main CPU).Symmetric multiprocessing (SMP) has multiple, fullfledgedCPUs, each capable <strong>of</strong> the full range <strong>of</strong> operations.The processors share the same memory space, whichrequires that each processor that accesses a given memorylocation be able to retrieve the same value. This coherence<strong>of</strong> memory is threatened if one processor is in the midst<strong>of</strong> a memory access while another is trying to write datato that same memory location. This is usually h<strong>and</strong>led bya “locking” mechanism (see concurrent programming)that prevents two processors from simultaneously accessingthe same location.A subtler problem occurs with the use by processors <strong>of</strong>separate internal memory for storing data that is likely tobe needed (see cache). Suppose CPU “A” reads some datafrom memory <strong>and</strong> stores it in its cache. A moment later,CPU “B” writes to that memory location, changing the data.At this point the data in “A’s” cache no longer matches thatin the actual memory. One way to deal with this problemis called bus snooping. Each CPU includes a controller thatmonitors the data line (see bus) for memory locations beingused by other CPUs. When it sees an address that refers toan area <strong>of</strong> memory currently being stored in the cache, thecontroller updates the memory from the cache. This writeoperation sends a signal that lets other CPUs know that anycached data they have for that location is no longer valid.This means the other CPUs will go back to memory <strong>and</strong>reread the current data.Alternatively, all CPUs can be given a single sharedcache. While less complicated, this approach limits thenumber <strong>of</strong> CPUs to the maximum data-h<strong>and</strong>ling capacity<strong>of</strong> the bus.Larger-scale multiprocessing systems consist <strong>of</strong> latticelikearrays <strong>of</strong> hundreds or even thous<strong>and</strong>s <strong>of</strong> CPUs,which are referred to as nodes. Indeed, small clusters <strong>of</strong>CPUs using the architecture given above can be connectedtogether to form larger arrays. Each cluster can have itsown shared memory cache. Because accessing memory ata remote node takes considerably longer than accessingThis example shows what can happen if processes do not properlymanage a shared memory resource. At (1) processor A retrieves3 from the memory location. At (2) processor B copies 7 from itscache to that same memory location. Finally, at (3) processor Aadds the 3 it had retrieved to a 2 in its register, storing 5 back in alocation where processor B probably expects there to still be a 7.


324 multitasking“local” memory within the cluster, maintaining coherencethrough bus monitoring is impracticable. Instead, memoryis usually organized into data objects that are distributedoptimally to reduce the necessity for remote access, <strong>and</strong>the objects are shared by CPUs requesting them through adirectory system.MultiprogrammingIn order for a program to take advantage <strong>of</strong> the ability to runon multiple CPUs, the operating system must have facilitiesto support multiprocessing, <strong>and</strong> the program must be structuredso its various tasks are most efficiently distributedamong the CPUs. These separate tasks are generally calledthreads. A single program can have many threads, eachexecuting separately, perhaps on a different CPU, althoughthat is not required.The operating system can use a number <strong>of</strong> approachesto scheduling the execution <strong>of</strong> processes or threads. It cansimply assign the next idle (available) CPU to the thread.It can also give some threads higher priority for access toCPUs, or let a thread continue to “own” its CPU until it hasbeen idle for some specified time.The use <strong>of</strong> threads is particularly natural for applicationswhere a number <strong>of</strong> activities must be carried onsimultaneously. For example, a scientific or process controlapplication may have a separate thread reading the databeing returned from each instrument, another thread monitoringfor alarm conditions, <strong>and</strong> other threads generatinggraphical output.Threads also allow the user to continue interacting witha program while the program is busy carrying out earlierrequests. For example, the user <strong>of</strong> a Web browser can continueto use menus or navigation buttons while the browseris still loading graphics needed for the currently displayedWeb page. A search program can also launch separatethreads to send requests to multiple search engines or toload multiple pages.Support for multiprogramming <strong>and</strong> threads can now befound in versions <strong>of</strong> most popular programming languages,<strong>and</strong> some languages such as Java are explicitly designed toaccommodate it.Multiprogramming <strong>of</strong>ten uses groups or clusters <strong>of</strong> separatemachines linked by a network. Running s<strong>of</strong>tware onsuch systems involves the use <strong>of</strong> communications protocolssuch as the MPI (message-passing interface). This programminginterface has been widely deployed on many platformsfor use with languages such as C/C++ <strong>and</strong> Fortran.Another popular programming interface is OpenMP, whichfeatures the allocation <strong>of</strong> execution threads <strong>and</strong> the distribution<strong>of</strong> work among them.A Multiprocessed WorldThe dem<strong>and</strong> for s<strong>of</strong>tware that can efficiently use multipleprocessors is likely for some time to outstrip the supply <strong>of</strong>programmers who can “think in parallel.” One reason isthat today most new PCs have two processing “cores,” withfour-core systems available <strong>and</strong> more to come (see microprocessor).This means that many mainstream applicationswill eventually need to be rewritten for the newhardware environment. Another factor is that as the priceper processor continues to decline <strong>and</strong> high-end multiprocessingmachines are reaching 1 “petaflop” (1 quadrillionoperations per second), many supercomputer applicationswill also need to be rewritten.Meeting this dem<strong>and</strong> not only takes training, it alsotakes appropriate languages <strong>and</strong> other tools. In recentyears, therefore, the Defense Advanced Research ProjectsAgency (DARPA) has funded research in “High Productivity<strong>Computer</strong> Systems” by such companies as Cray, Sun,<strong>and</strong> IBM. New languages built “from the ground up” formultiprocessing include Sun’s Fortress, Cray’s Chapel, <strong>and</strong>IBM’s new project, code-named X10. Ultimately, systemsfor developing multiprocessing s<strong>of</strong>tware should take most<strong>of</strong> the architectural details <strong>of</strong>f the h<strong>and</strong>s <strong>of</strong> the programmer,allowing performance to smoothly “scale up” with theincreasing number <strong>of</strong> processors.Further ReadingAnthes, Gary. “Languages for Supercomputing Get ‘Suped’ Up.”<strong>Computer</strong>world, March 12, 2007. Available online. URL:http://www.computerworld.com/action/article.do?comm<strong>and</strong>=viewArticleBasic&articleId=283477. Accessed April 5, 2007.Culler, David E., <strong>and</strong> Jaswinder Pal Singh. Parallel <strong>Computer</strong> Architecture:A Hardware/S<strong>of</strong>tware Approach. San Francisco: MorganKaufmann, 1999.Dongara, Jack, et al., eds. Sourcebook <strong>of</strong> Parallel Computing. SanFrancisco: Morgan Kaufmann, 2003.Feldman, Michael. “Our Manycore Future.” HPC Wire. Availableonline. URL: http://www.hpcwire.com/hpc/1295541.html.Accessed April 5, 2007.Merritt, Rick. “Where Are the Programmers? Enrollment WanesJust as <strong>Computer</strong> Scientists Grapple with Problem <strong>of</strong> Parallelism.”EE Times, March 12, 2007. Available online. URL:http://www.eetimes.com/showArticle.jhtml?articleID=197801653. Accessed April 5, 2007.Quinn, Michael J. Parallel Programming in C with MPI <strong>and</strong> OpenMP.New York: McGraw-Hill, 2003.multitaskingUsers <strong>of</strong> modern operating systems such as Micros<strong>of</strong>t Windowsare familiar with multitasking, or running severalprograms at the same time. For example, a user might bewriting a document in a word processor, pause to check thee-mail program for incoming messages, type a page addressinto a Web browser, then return to writing. Meanwhile, theoperating system may be running a number <strong>of</strong> other programstucked unobtrusively into the background, such as avirus checker, task scheduler, or system resource monitor.Each running program “takes turns” using the PC’s centralprocessor. In early versions <strong>of</strong> Windows, multitaskingwas cooperative, with each program expected to periodicallyyield the processor to Windows so it could be assigned to thenext program in the queue. One weakness <strong>of</strong> this approachis that if a program crashes, the CPU might be “locked up”<strong>and</strong> the system would have to be rebooted. However, WindowsNT, 2000, <strong>and</strong> XP (as well as operating systems suchas UNIX) use preemptive multitasking. The operating systemassigns a “slice” <strong>of</strong> processing (CPU) time to a program<strong>and</strong> then switches it to the next program regardless <strong>of</strong> what


music, computer 325program’s priority would ordinarily entitle it to a greatershare <strong>of</strong> the CPU.Multitasking should be distinguished from two severalsimilar-sounding terms. Multitasking refers to entirely separateprograms taking turns executing on a single CPU.Multithreading, on the other h<strong>and</strong>, refers to separate pieces<strong>of</strong> code within a program executing simultaneously butsharing the program’s common memory space. Finally, multiprocessingor parallel processing refers to the use <strong>of</strong> morethan one CPU in a system, with each program or threadhaving its own CPU (see multiprocessing).Further ReadingSilberschatz, Abraham, Peter Baer Galvin, <strong>and</strong> Greg Gagne. OperatingSystem Concepts. 7th ed. New York: Wiley, 2004.Tanenbaum, Andrew S., <strong>and</strong> Albert S. Woodhull. Operating SystemsDesign <strong>and</strong> Implementation. 3rd ed. Upper Saddle River,N.J.: Prentice Hall, 2006.Windows users can bring up a window listing all processes or tasksrunning on the system, <strong>and</strong> shut down any task that has stoppedresponding to input.might be happening to the previous program. Thus, if a program“crashes,” the CPU will still be switched to the nextprogram, <strong>and</strong> the user can maintain control <strong>of</strong> the system<strong>and</strong> shut down the <strong>of</strong>fending program.Systems with preemptive multitasking <strong>of</strong>ten give programsor tasks different levels <strong>of</strong> priority that determinehow big a slice <strong>of</strong> CPU time they will get. For example, the“active” program (in Windows, the one whose window hasbeen selected for interaction by the user) will be given preferenceover a background program such as a print spooler.Also, the operating system can more intelligently assignCPU time according to what a given program is doing.Thus, if a program is waiting for user input, it may be givenonly an occasional slice <strong>of</strong> CPU time so it can check to seewhether input has been received. (The user, after all, ismillions <strong>of</strong> times slower than the CPU.) When some input(such as a menu selection) is ready for processing, the programcan be given higher priority.Priority can be expressed in two different ways. Oneway is to move a program up in the list <strong>of</strong> running tasks (seequeue). This ensures it gets a turn before any lower-prioritytask. The other way is to have turns <strong>of</strong> varying length, withthe higher-priority program getting a longer turn.Even operating systems with preemptive multitaskingcan provide facilities that programs can use to communicatetheir own sense <strong>of</strong> their priority. In UNIX systems,this is referred to as “niceness.” A “nice” program givesthe operating system permission to interrupt lengthy calculationsso other programs can have a turn, even if themusic, computer<strong>Computer</strong>s have had a variety <strong>of</strong> effects on the performance,rendering, <strong>and</strong> composition <strong>of</strong> music. At the same time,the sound capabilities <strong>of</strong> st<strong>and</strong>ard personal computers haveimproved greatly, <strong>and</strong> music <strong>and</strong> other sounds have becomean integral part <strong>of</strong> games <strong>and</strong> educational s<strong>of</strong>tware (seemultimedia).After the invention <strong>of</strong> the vacuum tube, a number <strong>of</strong> electronicinstruments were devised. The best known is the theremin,invented by Lev Termin, a Russian physicist, in 1919.The instrument consists <strong>of</strong> a vacuum tube connected to twoantennas. The player varies the pitch <strong>and</strong> volume <strong>of</strong> its eeriesound by moving his or her h<strong>and</strong>s near the antennas.Some composers became fascinated by electronic music,both for its sense <strong>of</strong> modernity <strong>and</strong> its promise <strong>of</strong> breakingthe bonds <strong>of</strong> traditional form <strong>and</strong> instrumentation. In 1953,German composer Karlheinz Stockhausen (1928–2007)founded an Electronic Music Studio in Cologne <strong>and</strong> createdelectronic works.Meanwhile, inventors experimented with electronic synthesizerssuch as the RCA MKI <strong>and</strong> MKII, which used vacuumtubes <strong>and</strong> could be programmed with punched papertape. The advent <strong>of</strong> solid-state circuitry in the 1960s madesynthesizers far more reliable <strong>and</strong> compact. The Moog synthesizerin particular became a staple <strong>of</strong> leading-edge rock<strong>and</strong> avant-garde music. It was now time for the computer tocatch up to the potential <strong>of</strong> electronic sound.In the 1970s, digital music synthesizers with keyboards<strong>and</strong> microprocessor-controlled sound generation becameavailable to adventurous (<strong>and</strong> fairly well-to-do) musicians.Ray Kurzweil’s digital music synthesis system, introducedin 1984, achieved a new level <strong>of</strong> sonic realism by usingprogramming stored in read-only memory (ROM) to emulatesubtle characteristics such as attack <strong>and</strong> timbre, realisticallyre-creating the sounds <strong>of</strong> many types <strong>of</strong> orchestralinstruments.<strong>Computer</strong> music synthesis enabled composers to experimentwith algorithmic composition. That is, they could useprograms to create new works by combining r<strong>and</strong>omizationwith the permutation <strong>of</strong> patterns (serialism). Compositions


326 music <strong>and</strong> video distribution, onlinehave also been based on applying mathematical structures(such as fractals) <strong>and</strong> the concepts being discovered bycomputer scientists, including adaptive structures such asneural nets <strong>and</strong> genetic algorithms.Like most avant-garde music, computer music compositionremained largely unknown to most people. However,the technology <strong>of</strong> music synthesis was to become democraticallyavailable to everyday musicians as well. As thepersonal computer began to bring increasingly powerfulmicroprocessors to consumers, it became practicable toin effect add a music synthesizer to the PC. The musicalinstrument digital interface, MIDI, provides a protocol forconnecting traditional musical instruments such as pianos<strong>and</strong> guitars to a personal computer. MIDI specifies the pitch,volume, attack (how a note increases to maximum volume),<strong>and</strong> decay (how it dies away). The musician then uses theinstrument as an input device, with the notes played beingrecorded as MIDI data. Different tracks can then be edited(such as to transpose to a different key), <strong>and</strong> combinedin various ways to create complete compositions. BecauseMIDI stores instructions, not actual digitized sound, it is aquite compact way to store music. MIDI brought the synthesizerwithin reach <strong>of</strong> just about any serious musician—<strong>and</strong>many amateurs.PC sound cards can play sound in two ways. Wave TableSynthesis uses a table <strong>of</strong> stored digital samples <strong>of</strong> notesplayed by various instruments, <strong>and</strong> algorithmically manipulatesthem to reproduce the MIDI-encoded music. FM Synthesisattempts to create waves that replicate the intendedsounds, based on a model <strong>of</strong> what happens in a given instrument.It is less faithful to the original sound, since it doesnot capture the detailed “texture” <strong>of</strong> a digital sample.Today’s PCs have sound cards that can h<strong>and</strong>le bothplayback <strong>of</strong> audio CDs <strong>and</strong> rendering <strong>of</strong> digitized <strong>and</strong> synthesizedsounds. The cards have the capacity to supportmany simultaneous voices (polyphony) as well as renderingspeech faithfully. While early PCs tended to have onlytiny internal speakers, most PCs today come with speakers(<strong>of</strong>ten including subwo<strong>of</strong>ers <strong>and</strong> even multiple speakers for“surround sound”) comparable to midrange home stereosystems.Of course great hardware would not be very useful withouts<strong>of</strong>tware that can help even beginning composers turntheir ideas into sound. One example is GarageB<strong>and</strong> for theMacintosh, which makes it easy to make compositions fromsampled <strong>and</strong> sequenced loops together with music playedusing sampled <strong>and</strong> synthesized instrument sounds <strong>and</strong> aMIDI keyboard. (Sony ACID Pro <strong>of</strong>fers similar features forMicros<strong>of</strong>t Windows users.)Further ReadingBurns, Kristine H. “History <strong>of</strong> Electronic <strong>and</strong> <strong>Computer</strong> MusicIncluding Automatic Instruments <strong>and</strong> Composition Machines.”Available online. URL: http://eamusic.dartmouth.edu/~wowem/electronmedia/music/eamhistory.html. Accessed August 15,2007.Freebyte Music Zone. Available online. URL: http://www.freebyte.com/music/. Accessed August 15, 2007.Manning, Peter. Electronic <strong>and</strong> <strong>Computer</strong> Music. New York: OxfordUniversity Press, 2004.Nelson, Mark. Getting Started in <strong>Computer</strong> Music. Boston: ThomsonCourse <strong>Technology</strong>, 2005.White, Paul. Basic MIDI. London: Sanctuary, 2004.Williams, Ryan. Windows XP Digital Music for Dummies. Hoboken,N.J.: Wiley, 2004.music <strong>and</strong> video distribution, onlineSince most audio <strong>and</strong> much video is now recorded in digitalformat, the Internet <strong>and</strong> media-player s<strong>of</strong>tware for a variety<strong>of</strong> platforms are an attractive way to sell or otherwise distributethe products <strong>of</strong> musicians <strong>and</strong> moviemakers.For a time, online file swapping (see file-sharing <strong>and</strong>p2p networks), particularly Napster, seemed to be massivelyeroding the market for online commercial musicsales. Legal action against file-sharing services <strong>and</strong> (startingin 2003) their users has curtailed this erosion somewhat,with a considerable number <strong>of</strong> former file-sharers switchingto buying paid downloads. As a result, several major onlinemusic stores have become successful. The most commonmodel sells songs for about a dollar each—sometimes morefor higher quality audio or files that do not have copy protection(see digital rights management).Apple’s iTunes Music store debuted in 2003 <strong>and</strong> soonbecame the market leader. The combination <strong>of</strong> the iTunesstore, the iTunes media player s<strong>of</strong>tware (available for bothMacintosh <strong>and</strong> PC), <strong>and</strong> the very popular iPod (see music<strong>and</strong> video players, digital) has been very successful. As<strong>of</strong> 2007 iTunes still had the largest selection <strong>of</strong> music available(about 6 million songs), <strong>and</strong> had sold more than 3billion songs. The service also sells videos (television episodes,music videos, short films, <strong>and</strong> feature-length movies)at varying prices.Rhapsody, a service that predates iTunes, <strong>of</strong>fers a subscriptionmodel: The user has unlimited streaming accessto the music as long as the monthly fee is paid as well as thepay-per-track option.Alternative ModelsThere are also alternatives to the big, label-controlledmusic services. A number <strong>of</strong> services now bring togetherindependent musicians <strong>and</strong> their audience. There are alsosome innovative pricing models. Arnie Street, for example,starts out with uploaded music being available free, butthen gradually raises the price (up to 98 cents) as morepeople download it. The service also <strong>of</strong>fers user participation(keyword tagging by users) <strong>and</strong> social-networking features.Another service, eListeningPost, lets musicians postmusic that people can download as a preview (playable alimited number <strong>of</strong> times) or buy using PayPal. The servicealso helps musicians build their fan base by collecting e-mail addresses.VideoVideo-sharing sites are very popular (see YouTube). TVnetworks are now providing selected episodes <strong>of</strong> popularshows online for free, hoping to entice more regularviewers. However, only 7 percent <strong>of</strong> users surveyed by thePew Internet & American Life Project in 2007 said they


music <strong>and</strong> video players, digital 327had paid for any online video content. This may graduallychange, particularly as more users move from basicbroadb<strong>and</strong> connections to enhanced, higher-speed ones(see broadb<strong>and</strong>). Already video sales through iTunes <strong>and</strong>Amazon’s new Unbox (<strong>and</strong> smaller services) are expectedby Forrester Research to generate $279 million in revenuefor 2007. However, some analysts believe that the businessmodel for selling video will soon shift to something morelike that <strong>of</strong> premium cable channels, with streaming videoavailable by subscription.Further ReadingArnie Street. Available online. URL: http://amiestreet.com/.Accessed October 3, 2007.Bove, Tony, <strong>and</strong> Cheryl Rhodes. iPod & iTunes for Dummies. 5thed. Hoboken, N.J.: Wiley, 2007.eListeningPost. Available online. URL: http://elisteningpost.com/.Accessed October 3, 2007.iTunes. Available online. URL: http://www.apple.com/itunes/store.Accessed October 3, 2007.Madden, Mary. “Artists, Musicians, <strong>and</strong> the Internet.” Pew Internet& American Life Project, December 5, 2004. Availableonline. URL: http://www.pewinternet.org/pdfs/PIP_Artists.Musicians_Report.pdf. Accessed October 3, 2007.———. “Online Video.” Pew Internet & American Life Project,July 25, 2007. Available online. URL: http://www.pewinternet.org/pdfs/PIP_Online_Video_2007.pdf.Accessed October3, 2007Madden, Mary, <strong>and</strong> Lee Rainie. “Music <strong>and</strong> Video DownloadingMoves beyond P2P.” Pew Internet & American Life Project,March 2005. Available online. URL: http://www.pewinternet.org/pdfs/PIP_Filesharing_March05.pdf. Accessed October 3,2007.Muchmore, Michael. “New Ways to Get Music.” ExtremeTech.,December 10, 2006. Available online. URL: http://www.extremetech.com/article2/0,1697,2070636,00.asp. AccessedOctober 3, 2007.Rhapsody. Available online. URL: http://www.rhapsody.com/home.html. Accessed October 3, 2007.• creates a music library that can be searched or reorganized• can create playlists <strong>and</strong> queues <strong>and</strong> can play backsongs in order, shuffled (r<strong>and</strong>omized), or according toother preferences• can obtain additional information about media(tracks, albums, <strong>and</strong> so on) onlinePortable PlayersFirst unveiled in 2001, the Apple iPod is the best-sellingexample <strong>of</strong> a portable media player (<strong>of</strong>ten called a “digitalaudio player”). Its compact, stylish design <strong>and</strong> simple userinterface quickly caught on, even though the first model wasonly compatible with the Macintosh <strong>and</strong> it used Apple’s AACformat rather than MP3. Later iPods added capacity, largerscreens, <strong>and</strong> features (such as being able to play video), whileApple also <strong>of</strong>fered the inexpensive iPod Shuffle. A competitoris the Micros<strong>of</strong>t Zune player <strong>and</strong> music store, which, however,as <strong>of</strong> mid-2007 had made little headway against marketleader Apple. A third well-reviewed choice is the CreativeLabs Zen series. A variety <strong>of</strong> other portable players are available.Higher capacity units use tiny hard drives (up to 160 GBcapacity or so), while smaller capacity models use flash memory(2–32 GB) instead. A variety <strong>of</strong> other h<strong>and</strong>held devicescan play music <strong>and</strong> video (see PDA <strong>and</strong> smartphone).With the ubiquitous use <strong>of</strong> iPods <strong>and</strong> other players,particularly by young people, some health <strong>and</strong> safety concernshave been raised. If played too loudly for long periods<strong>of</strong> time through headphones or earbuds, the devices maycause hearing damage. Drivers <strong>and</strong> pedestrians may also bemusic <strong>and</strong> video players, digitalOne characteristic <strong>of</strong> the rapidly evolving digital worldis the ability to play a variety <strong>of</strong> media (music, photos,video) on many devices, ranging from desktop PCs to smartphones <strong>and</strong>, <strong>of</strong> course, iPods <strong>and</strong> MP3 players (see digitalconvergence). The ability to organize <strong>and</strong> play mediarequires suitable s<strong>of</strong>tware <strong>and</strong> hardware.On desktop <strong>and</strong> laptop PCs, media-playing s<strong>of</strong>tware isavailable for all operating systems. Examples include WindowsMedia Player, Apple iTunes, <strong>and</strong> RealPlayer (whichalso has a Linux version). This s<strong>of</strong>tware typically includesthese features:• plays most types <strong>of</strong> media files (see graphics formats<strong>and</strong> sound file formats)• plays content on CD/DVD, files on the hard drive, orcontent being received directly from the Internet (seeCD-Rom <strong>and</strong> DVD-ROM; music <strong>and</strong> video distribution,online; <strong>and</strong> streaming)• controls are modeled on those found on DVD players,with customizable appearanceThe Apple iPod is the most popular portable digital media player,featuring a simple, effective interface <strong>and</strong> the ability to play music<strong>and</strong> show video. (Apple Corporation)


328 music <strong>and</strong> video players, digitalat greater risk if the music they are listening to cuts <strong>of</strong>f thesound <strong>of</strong> approaching vehicles.Further ReadingJohnson, Brian. Zune for Dummies. Hoboken, N.J.: Wiley, 2007.Kelby, Scott. The iPod Book: Doing Cool Stuff with the iPod <strong>and</strong> theiTunes Store. 3rd. ed. Berkeley, Calif.: Peachpit Press, 2006.MP3 Players (CNet Reviews). Available online. URL: http://reviews.cnet.com/Music/2001-6450_7-0.html. Accessed October 3,2007.“MP3 Players: The Basics <strong>and</strong> History.” Available online. URL:http://www.mp3playerlimelight.com/. Accessed October 3,2007.Rathbone, Andy. MP3 for Dummies. New York: Hungry Minds,2001.


NnanotechnologyOrdinary refining <strong>and</strong> manufacturing involve the use <strong>of</strong>grinding, cutting, heating, application <strong>of</strong> chemicals, <strong>and</strong> otherprocesses that affect large numbers <strong>of</strong> atoms or molecules atonce. These processes are necessarily imprecise: Some atomsor molecules will end up unprocessed or somehow out <strong>of</strong>alignment. The resulting material will thus fall short <strong>of</strong> itsmaximum theoretical strength or other characteristics.In a talk given in 1959, physicist Richard Feynman suggestedthat it might be possible to manipulate atoms individually,spacing them precisely. As Feynman also pointedout, the implications for computer technology are potentiallyvery impressive. A current commercial DIMM memorymodule about the size <strong>of</strong> a person’s little finger holdsabout 250 megabytes (MB) worth <strong>of</strong> data. Feynman calculatedthat if 100 precisely arranged atoms were used foreach bit <strong>of</strong> information, the contents <strong>of</strong> all the books thathave ever been written (about 10 15 bits) could be stored ina cube about 1/200 <strong>of</strong> an inch wide, just about the smallestobject the unaided human eye can see. Further, althoughthe density <strong>of</strong> computer logic circuits in microprocessors ismillions <strong>of</strong> times greater than it was with the computers <strong>of</strong>1959, computers built at the atomic scale would be billions<strong>of</strong> times smaller still. Indeed, they would be the smallest (ordensest) computers possible short <strong>of</strong> one that used quantumstates within the atoms themselves to store information(see quantum computing). “Nanocomputers” could alsoefficiently dissipate heat energy, overcoming a key problemwith today’s increasingly dense microprocessors.Feynman <strong>of</strong>fered some possible methods <strong>of</strong> manufacture,<strong>and</strong> discussed some <strong>of</strong> the obstacles that would have to beovercome to do engineering at a molecular or atomic scale.These include lubrication, the effects <strong>of</strong> heat, <strong>and</strong> electricalresistance. He invited adventurous high school students todevelop science projects to explore this new technology.The idea <strong>of</strong> atomic-level engineering lay largely dormantfor about two decades. Starting with a 1981 paper, however,K. Eric Drexler began to flesh out proposed structures <strong>and</strong>methods for a branch <strong>of</strong> engineering he termed nanotechnology.(The “nano” refers to a nanometer, or one billionth<strong>of</strong> a meter.) Research in nanotechnology today focuseson two broad areas: assembly <strong>and</strong> replication. Assemblyis the problem <strong>of</strong> building tools (called assemblers) thatcan deposit <strong>and</strong> position individual atoms. Since such toolswould almost certainly be prohibitively expensive to manufactureindividually, research has focused on the idea <strong>of</strong>making tools that can reproduce themselves. This area <strong>of</strong>research began with John von Neumann’s 1940s concept <strong>of</strong>self-replicating computers (see von Neumann, John). If anassembler can assemble other assemblers from the available“feedstock” <strong>of</strong> atoms, then obtaining the number <strong>of</strong> assemblersnecessary to manufacture the intended product wouldbe no problem. (As science fiction writers have pointed out,the ultimate problem would be making sure the self-reproducingassemblers do not get out <strong>of</strong> control <strong>and</strong> start turningeverything around them, potentially the whole Earth,into more <strong>of</strong> themselves.)Computing Applications<strong>Science</strong> fiction aside, there are several potential applications<strong>of</strong> nanotechnology in the manufacture <strong>of</strong> computercomponents. One is the possible use <strong>of</strong> carbon nanotubes in329


330 natural language processingplace <strong>of</strong> copper wires as conductors in computer chips. Aschips continue to shrink, the connectors have also had toget smaller, but this in turn increases electrical resistance<strong>and</strong> reduces efficiency. Nanotubes, however, are not onlysuperb electrical conductors, they are also far thinner thantheir copper counterparts. Intel Corporation has conductedpromising tests <strong>of</strong> nanotube conductors, but it will likely bea number <strong>of</strong> years before they can be manufactured on anindustrial scale.An obstacle to manufacturing carbon nanotubes is thateach newly made batch is a mixture <strong>of</strong> “metallic” (conducting)<strong>and</strong> semiconducting tubes <strong>of</strong> different diameters.Manufacturing, however, requires tubes that meet strictrequirements. Fortunately researchers at NorthwesternUniversity in 2006 developed a way to sort the tubes byadding substances that changed their density according toboth their diameter <strong>and</strong> their electrical conductivity.Another alternative is “nanowires.” One design consists<strong>of</strong> a germanium core surrounded by a thin layer <strong>of</strong> crystallinesilicon. Nanowires are easier to manufacture thannanotubes, but their performance <strong>and</strong> other characteristicsmay make them less useful for general-purpose computingdevices.The ultimate goal is to make the actual transistors incomputer chips out <strong>of</strong> nanotubes instead <strong>of</strong> silicon. Animportant step in this direction was achieved in 2006 byIBM researchers who created a complete electronic circuitusing a single carbon nanotube molecule.Further ReadingBooker, Richard D. <strong>and</strong> Earl Boysen. Nanotechnology for Dummies.Hoboken, N.J.: Wiley, 2005.Bullis, Kevin. “Nanotube Computing Breakthrough: A Method forSorting Nanotubes by Electronic Properties Could Help MakeWidespread Nanotube-Based Electronics a Reality.” <strong>Technology</strong>Review, October 30, 2006. Available online. URL: http://www.technologyreview.com/Nanotech/17672/. Accessed August 16,2007.———. “Nanowire Transistors Faster than Silicon.” <strong>Technology</strong>Review, June 20, 2006. Available online. URL: http://www.technologyreview.com/Nanotech/17008/. Accessed August16, 2007.Edwards, Steven A. The Nanotech Pioneers: Where Are They TakingUs? New York: Wiley, 2006.Kanellos, Michael. “Intel Eyes Nanotubes for Future Chip Designs.”CNET News, November 10, 2006. Available online. URL: http://news.com.com/2100-1008_3-6134437.html. Accessed August16, 2007.Korkin, Anatoli, et al., eds. Nanotechnology for Electronic Materials<strong>and</strong> Devices. New York: Springer, 2007.Nanotech Web. Available online. URL: http://nanotechweb.org/.Accessed August 16, 2007.natural language processingSince at least the days <strong>of</strong> Hal 9000 <strong>and</strong> early Star Trek, thecomputer <strong>of</strong> the future was supposed to be able to underst<strong>and</strong>what people wanted, when expressed in ordinary language<strong>and</strong> not programming code. <strong>Computer</strong> scientists havebeen working on this capability, called natural languageprocessing (NLP), for decades.NLP is a multidisciplinary field that draws from linguistics<strong>and</strong> computer science, particularly artificial intelligence(see also linguistics <strong>and</strong> computing <strong>and</strong> speech recognition<strong>and</strong> synthesis). In terms <strong>of</strong> linguistics, a programmust be able to deal with words that have multiple meanings(“wind up the clock” <strong>and</strong> “the wind is cold today”) aswell as grammatical ambiguities (in the phrase “little girl’sschool” is it the school that is little, the girls, or both?). Ofcourse each language has its own forms <strong>of</strong> ambiguity.Programs can use several strategies for dealing withthese problems, including using statistical models to predictthe likely meaning <strong>of</strong> a given phrase based on a “corpus” <strong>of</strong>existing text in that language (see language translations<strong>of</strong>tware).As formidable as the task <strong>of</strong> extracting the correct (literal)meaning from text can be, it is really only the first level<strong>of</strong> natural language processing. If a program is to successfullysummarize or draw conclusions about a news reportfrom North Korea, for example, it would also have to havea knowledge base <strong>of</strong> facts about that country <strong>and</strong>/or a set <strong>of</strong>“frames” (see Minsky, Marvin) about how to interpret varioussituations such as threat, bluff, or compromise.)ApplicationsThere are a variety <strong>of</strong> emerging applications for NLP, includingthe following:• voice-controlled computer interfaces (such as in aircraftcockpits)• programs that can assist with planning or other tasks(see s<strong>of</strong>tware agents)• more-realistic interactions with computer-controlledgame characters• robots that interact with humans in various settingssuch as hospitals• automatic analysis or summarization <strong>of</strong> news stories<strong>and</strong> other text• intelligence <strong>and</strong> surveillance applications (analysis <strong>of</strong>communication, etc.)• data mining, creating consumer pr<strong>of</strong>iles, <strong>and</strong> other e-commerce applications• search-engine improvements, such as in determiningrelevancyFurther ReadingJackson, Peter, <strong>and</strong> Isabelle Moulinier. Natural Language Processingfor Online Applications: Text Retrieval, Extraction <strong>and</strong> Categorization.2nd ed. Philadelphia: John Benjamins, 2007.Kao, Anne, <strong>and</strong> Steve R. Poteet, eds. Natural Language Processing<strong>and</strong> Text Mining. New York: Springer, 2007.Manning, Christopher D., <strong>and</strong> Hinrich Schütze. Foundations <strong>of</strong>Statistical Natural Language Processing. Cambridge, Mass.:MIT Press, 1999. Available online. URL: http://www-nlp.stanford.edu/fsnlp/. Accessed October 4, 2007.Natural Language Toolkit. Available online. URL: http://nltk.sourceforge.net/index.php/Main_Page. Accessed October 4,2007.


netiquette 331Resources for Text, Speech <strong>and</strong> Language Processing. Availableonline. URL: http://www.cs.technion.ac.il/~gabr/resources/resources.html. Accessed October 4, 2007.Negroponte, Nicholas(1944– )American<strong>Computer</strong> ScientistAs founder <strong>and</strong> longtime director <strong>of</strong> the MIT Media Lab,Nicholas Negroponte has overseen <strong>and</strong> contributed to some<strong>of</strong> the most creative developments in human-computerinteraction <strong>and</strong> interface design.Born in 1943, the son <strong>of</strong> a Greek shipping magnate,Negroponte grew up in New York City. He attended theMassachusetts Institute <strong>of</strong> <strong>Technology</strong> (MIT), earning hismaster’s degree in architecture in 1966 <strong>and</strong> joining thefaculty. The following year Negroponte founded the MITArchitecture Machine Group, which focused on developingnew ways for people to interact with computers. In 1985,Negroponte <strong>and</strong> Jerome Wiesner founded the MIT MediaLab, which has become world famous as a center <strong>of</strong> researchinto new media <strong>and</strong> innovative computer interfaces (seemit Media Lab).Negroponte made a different contribution to the newcomputer culture in 1992 when he became a key investor inWired Magazine, where he also contributed a column until1998. Many <strong>of</strong> the ideas in these columns were reworkedinto Negroponte’s 1995 book Being Digital. This book waswidely influential in its predictions <strong>of</strong> a coming world whereinformation <strong>and</strong> entertainment would become a pervasiveweb <strong>and</strong> people would interact actively with the new media(see digital convergence <strong>and</strong> ubiquitous computing).Negroponte’s slogan is “move bits, not atoms,” meaning thatthe new economy will be focused more on information <strong>and</strong>media than physical production. Some critics, however,have argued that Negroponte’s work was filled with a naiveutopianism that did not consider the potential difficulties<strong>and</strong> social consequences <strong>of</strong> the new technology.As Negroponte observed how venture capitalists werepursuing the digital revolution <strong>of</strong> the 1990s, he began toseek similar funding for the Media Lab. This was controversial,since the lab had a strong academic culture, with itsreluctance to become too involved with corporate agendas.In 2000 Negroponte stepped down as director <strong>of</strong> the MediaLab, gradually becoming less involved in the ongoing reorganization<strong>of</strong> the institution. In 2006 he also relinquishedhis post as chairman, though he has retained his post aspr<strong>of</strong>essor at MIT.One Laptop per ChildIn recent years Negroponte has focused his efforts ondesigning <strong>and</strong> distributing low-cost laptop PCs to millions<strong>of</strong> children in developing nations. (The project is called“One Laptop per Child.”) In 2005 at the World Summit onthe Information Society held in Tunis, Negroponte unveileda $100 laptop called the Children’s Machine. However, inthe next few years commitments from participating nationshave been slower than anticipated. Undaunted, Negropontein 2007 announced a new way to distribute the machines—make them such an attractive buy that consumers in developedcountries would be willing to pay a few hundreddollars for two <strong>of</strong> them—one for the consumer <strong>and</strong> one togo to a student in a developing country.Negroponte also continues to be active as an investoror board member in technology startups as well as being aboard member <strong>of</strong> Motorola <strong>and</strong> a member <strong>of</strong> the editorialboard <strong>of</strong> the Wall Street Journal.Further ReadingHamm, Steve. “Give a Laptop <strong>and</strong> Get One.” BusinessWeek, September24, 2007. Available online. URL: http://www.businessweek.com/technology/content/sep2007/tc20070923_960941.htm. Accessed October 4, 2007.Negroponte, Nicholas. Being Digital. New York: Vintage Books,1996.———. “Creating a Culture <strong>of</strong> Ideas.” <strong>Technology</strong> Review, February2003. Available online. URL: http://www.technologyreview.com/Biztech/13074/. Accessed October 4, 2007.Nicholas Negroponte (home page). Available online. URL: http://web.media.mit.edu/~nicholas/. Accessed October 4, 2007.Pogue, David. “Laptop with a Mission Widens Its Audience.” NewYork Times, October 4, 2007. Available online. URL: http://www.nytimes.com/2007/10/04/technology/circuits/04pogue.html. Accessed October 5, 2007.netiquetteAs each new means <strong>of</strong> communication <strong>and</strong> social interactionis introduced, social customs <strong>and</strong> etiquette evolve inresponse. For example, it took time before the practice <strong>of</strong>saying “hello” <strong>and</strong> identifying oneself became the universalway to initiate a phone conversation.By the 1980s, a system <strong>of</strong> topical news postings (seenetnews <strong>and</strong> newsgroups) carried on the Internet wasbecoming widely used in universities, the computer industry,<strong>and</strong> scientific institutions. Many new users did notunderst<strong>and</strong> the system, <strong>and</strong> posted messages that were<strong>of</strong>f topic. Others used their postings as to insult or attack(“flame”) other users, particularly in newsgroups discussingperennially controversial topics such as abortion. Whena significant number <strong>of</strong> postings in a newsgroup are devotedto flaming <strong>and</strong> counter-flaming, many users who had soughtcivilized, intelligent discussion leave in protest.In 1984, Chuq von Rospach wrote a document entitled“A Primer on How to Work with the Usenet Community.” It<strong>and</strong> later guides to net etiquette or “netiquette” <strong>of</strong>fered usefulguidelines to new users <strong>and</strong> to more experienced userswho wanted to facilitate civil discourse. These suggestionsinclude:• Learn about the purpose <strong>of</strong> a newsgroup before youpost to it. If a group is moderated, underst<strong>and</strong> themoderator’s guidelines so your postings won’t berejected.• Before posting, follow some discussions to see whatsort <strong>of</strong> language, tone, <strong>and</strong> attitude seems to be appropriatefor this group.


332 Net Neutrality• Do not post bulky graphics or other attachmentsunless the group is designed for them.• Avoid “ad hominem” (to the person) attacks whendiscussing disagreements.• Do not post in ALL CAPS, which is interpreted as“shouting.”• Check your postings for proper spelling <strong>and</strong> grammar.On the other h<strong>and</strong>, avoid “flaming” other usersfor their spelling or grammar errors.• When replying to an existing message, includeenough <strong>of</strong> the original message to provide context foryour reply, but no more.• If you know the answer to a question or problemraised by another user, send it to that user by e-mail.That way the newsgroup doesn’t get cluttered up withdozens <strong>of</strong> versions <strong>of</strong> the same information.In 1994, a firm <strong>of</strong> immigration attorneys enraged much<strong>of</strong> the online community by posting messages <strong>of</strong>fering theirservices in each <strong>of</strong> the thous<strong>and</strong>s <strong>of</strong> different newsgroups.“Spam” was born. Technically savvy users responded bycreating “cancelbots” or programs that attempt to detect<strong>and</strong> automatically delete postings containing spam. Today,spam is mainly conveyed by e-mail, with mail servers <strong>and</strong>client programs <strong>of</strong>fering various options for blocking it(see spam).Netiquette in the 21st CenturyIn the new century, newsgroups <strong>and</strong> traditional conferencingsystems have diminished in importance, but e-mailis more pervasive than ever, <strong>and</strong> a variety <strong>of</strong> new onlinemedia have emerged (see, for example, blogs <strong>and</strong> blogging).Many <strong>of</strong> the tried-<strong>and</strong>-true rules for newsgroup postingsapply as well to other media, but there are also newconsiderations.As many politicians <strong>and</strong> business executives havelearned to their dismay, e-mail must be assumed to beessentially as permanent as a h<strong>and</strong>written letter. Similarly,blogs, postings to sites such as MySpace (see social networking),<strong>and</strong> other online content can be copied, linkedto, archived, or otherwise persist for many years. Today’sintemperate remarks may emerge years later when a prospectiveemployer “googles” a job c<strong>and</strong>idate.Blogs are meant to link <strong>and</strong> be linked to, so issues <strong>of</strong>properly crediting material <strong>and</strong> respecting copyright canbe important. This can also apply to contributions to content-sharingsites <strong>and</strong> to articles for wikis (see wikis <strong>and</strong>Wikipedia); Wikipedia has evolved a rather comprehensiveset <strong>of</strong> st<strong>and</strong>ards whereby readers can “flag” content that isproblematic.Further ReadingHousley, Sharon. “Blog <strong>and</strong> RSS Feed Etiquette.” Available online.URL: http://www.small-business-s<strong>of</strong>tware.net/blog-etiquette.htm. Accessed August 16, 2007.Kallos, Judith. Because Netiquette Matters! Your ComprehensiveGuide to E-mail Etiquette <strong>and</strong> Proper <strong>Technology</strong> Use. Philadelphia:Xlibris 2004.McKay, Dawn Rosenberg. “Email Etiquette.” Available online.URL: http://careerplanning.about.com/od/communication/a/email_etiquette.htm. Accessed August 16, 2007.Netiquette Home Page. Available online. URL: http://www.albion.com/netiquette/. Accessed August 16, 2007.Strawbridge, Matthew. Netiquette: Internet Etiquette in the Age <strong>of</strong>the Blog. Cambridge, U.K.: S<strong>of</strong>tware Reference Ltd., 2006.Von Rospach, Chuq. “A Primer on How to Work with the UsenetCommunity.” Available online. URL: http://faqs.cs.uu.nl/nadir/usenet/primer/part1.html.Accessed August 16, 2007.Net NeutralityIn recent years there has been growing concern that Internetusers may eventually be treated differently by service providersdepending on the kind <strong>of</strong> data they download or thekind <strong>of</strong> application programs they use online. Advocates <strong>of</strong>network (or net) neutrality (see for example Cerf, Vincent)want legislation that would bar cable, DSL, or other providers(see broadb<strong>and</strong> <strong>and</strong> Internet service provider) frommaking such distinctions, such as by charging content providershigher fees for high volumes <strong>of</strong> data or even blockingcertain applications. Advocates <strong>of</strong> net neutrality believe that,since there are rather limited choices for broadb<strong>and</strong> Internetservice, discrimination on the basis <strong>of</strong> Web content couldlead to a loss <strong>of</strong> freedom for consumers <strong>and</strong> providers alike.Critics <strong>of</strong> the net neutrality proposal tend to discountsuch concerns. One analogy they use is traditional mail.Users can choose different types <strong>of</strong> shipping service, buthaving overnight service available does not mean that packagescannot be delivered using cheaper means. Likewise,they believe that the market can provide “tiers” <strong>of</strong> Internetservice without disenfranchising any providers or users.Increasing concern about the issue began in 2005 whenthe Federal Communications Commission announcedthat broadb<strong>and</strong> (cable <strong>and</strong> DSL) Internet would be treatedunder the less stringent Title I information service underthe Communications Act <strong>of</strong> 1934, rather than being treatedunder Title II as a “common carrier” like traditional phoneservice. At the same time, the agency issued policy guidelinesthat promoted free access, consumer choice, <strong>and</strong> competition.However these guidelines have no legal force.In June 2007 the Federal Trade Commission (FTC) moreor less sided with the critics <strong>of</strong> net neutrality by urgingregulators to be careful about imposing rules that wouldprevent providers from innovating in <strong>of</strong>fering premium services.Meanwhile two proposed net neutrality bills failed topass Congress in 2006. However, in July 2008 the FCC in a3-2 decision ordered Comcast, the largest U.S. cable serviceprovider, to stop degrading service to users who used filesharingprotocols.It should be noted that a number <strong>of</strong> rules restrictingcertain kinds <strong>of</strong> Internet access already exist. Major serviceproviders have agreements called “peering arrangements”that specify how certain kinds <strong>of</strong> transmissions will beh<strong>and</strong>led. Many service providers also block certain dataports to reduce the spread <strong>of</strong> spam by insecure systems ortry to restrict the use <strong>of</strong> peer-to-peer (P2P) systems (seefile-sharing <strong>and</strong> p2p networks).


netnews <strong>and</strong> newsgroups 333In the long run a balance will likely be struck betweenproviders’ need to control traffic to maintain efficiency <strong>and</strong>quality <strong>of</strong> service (QoS) <strong>and</strong> the rights <strong>of</strong> users to exchangeinformation <strong>and</strong> resources freely.Further Reading“Crackdown: Comcast Blocks Peer-to-Peer Web Traffic.” Portfolio.com,October 19, 2007. Available online. URL: http://www.portfolio.com/views/blogs/daily-brief/2007/10/19/crackdown-comcast-blocks-peer-to-peer-web-traffic.Accessed October 21, 2007Gilroy, Angela A. Net Neutrality: Background <strong>and</strong> Issues. CongressionalResearch Service, May 16, 2006. Available online.URL: http://fas.org/sgp/crs/misc/RS22444.pdf. AccessedOctober 25, 2007.Leonard, Thomas M., <strong>and</strong> R<strong>and</strong>olph J. May, eds. Net Neutrality orNet Neutering: Should Broadb<strong>and</strong> Internet Services Be Regulated?New York: Springer, 2006.“Network Neutrality in the United States.” Wikipedia. Availableonline. URL: http://en.wikipedia.org/wiki/Network_neutrality_in_the_US. Accessed October 21, 2007.Nuechterlein, Jonathan E., <strong>and</strong> Philip J. Weiser. Digital Crossroads:American Telecommunications Policy in the Internet Age. Cambridge,Mass.: MIT Press, 2007.netnews <strong>and</strong> newsgroupsOriginally called Usenet <strong>and</strong> originating in the UNIX usercommunity in the late 1970s, netnews is distributed todayover the Internet in the form <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> newsgroupsdevoted to just about every imaginable topic.DevelopmentBy the late 1970s, researchers at many major universitieswere using the UNIX operating system (see UNIX). In 1979,a suite <strong>of</strong> utilities called UUCP was distributed with thewidely used UNIX Version 7. These utilities could be usedto transfer files between UNIX computers that were linkedby some form <strong>of</strong> telephone or network connection.Two Duke University graduate students, Tom Truscott<strong>and</strong> Jim Ellis, decided to set up a way in which users on differentcomputers could share a collection <strong>of</strong> files containingtext messages on various topics. They wrote a simple set <strong>of</strong>shell scripts that could be used for distributing <strong>and</strong> viewingthese message files. The first version <strong>of</strong> the news networklinked computers at Duke <strong>and</strong> at the University <strong>of</strong> NorthCarolina. Soon these programs were revised <strong>and</strong> rewrittenin the C language <strong>and</strong> distributed to other UNIX users asthe “A” release <strong>of</strong> the News s<strong>of</strong>tware.During the 1980s, the news system was exp<strong>and</strong>ed <strong>and</strong>features such as moderated newsgroups were added. As theInternet <strong>and</strong> its TCP/IP protocol (see tcp/ip) became amore widespread st<strong>and</strong>ard for connecting computers, a version<strong>of</strong> News using the NNTP (Network News TransmissionProtocol) over the Internet was released in 1986. Netnewsis a mature system today, with news reading s<strong>of</strong>tware availablefor virtually every type <strong>of</strong> computer.Structure <strong>and</strong> FeaturesNetnews postings are simply text files that begin with a set<strong>of</strong> st<strong>and</strong>ard headers, similar to those used in e-mail. (Likee-mail, news postings can have binary graphics or programfiles attached, using a st<strong>and</strong>ard called MIME, for MultipurposeInternet Mail Extensions.)The files are stored on news servers—machines thathave the spare capacity to h<strong>and</strong>le the hundreds <strong>of</strong> gigabytes<strong>of</strong> messages now posted each week. The files are stored ina typical hierarchical UNIX fashion, grouped into approximately75,000 different newsgroups.As shown in the following table, the newsgroups are brokendown into 10 major categories. The names <strong>of</strong> individualgroups begin with the major category <strong>and</strong> then specify subdivisions.For example, the newsgroup comp.sys.ibm.pcdeals with IBM PC-compatible personal computers, whilecomp.os.linux deals with the Linux operating system.Categoryaltbizcomphumanitiesmisc.newsrecscisoctalkMAIN DIVISIONS OFNETNEWS NEWSGROUPSCoverageAn alternative system with its own completeselection <strong>of</strong> topics.Business-related discussion, products, etc.<strong>Computer</strong> hardware, s<strong>of</strong>tware <strong>and</strong> operatingsystems.Arts <strong>and</strong> literature, philosophy, etc.Various topics that don’t fit in anothercategory.Announcements <strong>and</strong> information relating tothe news system itself.Sports, games, <strong>and</strong> hobbies.The sciences.Social <strong>and</strong> cultural issues.Current controversies <strong>and</strong> debates.Distribution <strong>and</strong> ReadingThe servers are linked into a branching distribution system.Messages being posted by users are forwarded to the nearestmajor regional “node” site, which in turn distributesthem to other major nodes. In turn, when messages arriveat a major node from another region, they are distributedto all the smaller sites that share the newsfeed. Due to thevolume <strong>of</strong> groups <strong>and</strong> messages, many sites now choose toreceive only a subset <strong>of</strong> the total newsfeed. Sites also determinewhen messages will expire (<strong>and</strong> thus be removed fromthe site).There are dozens <strong>of</strong> different news reading programsthat can be used to view the available newsgroups <strong>and</strong>postings. On UNIX systems, programs such as elm <strong>and</strong> tinare popular, while other newsreaders cater to Windows,Macintosh, <strong>and</strong> other systems. Major Web browsers such asNetscape <strong>and</strong> Internet Explorer <strong>of</strong>fer simplified news readingfeatures. To use these news readers, the user accessesa newsfeed at an address provided by the Internet ServiceProvider (ISP). There are also services that let users simplynavigate through the news system by following the linkson a Web page. The former service called DejaNews, now


334 networkGoogle Groups, is the best-known <strong>and</strong> most complete suchsite.Further ReadingGoogle Groups. Available online. URL: http://groups.google.com.Accessed August 16, 2007.Hauben, Michael, <strong>and</strong> Ronda Hauben. Netizens: On the History <strong>and</strong>Impact <strong>of</strong> Usenet <strong>and</strong> the Internet. Los Alamitos, Calif.: IEEE<strong>Computer</strong> Society Press, 1997.Lueg, Christopher, <strong>and</strong> Danyel Fisher, eds. From Usenet to CoWebs:Interacting with Social Information Spaces. London: Springer,2003.Pfaffenberger, Bryan. The USENET Book: Finding, Using, <strong>and</strong> SurvivingNewsgroups on the Internet. Reading, Mass.: Addison-Wesley, 1995.Spencer, Henry, <strong>and</strong> David Lawrence. Managing Usenet. Sebastopol,Calif.: O’Reilly, 1998.networkIn the 1940s, the main objective in developing the first digitalcomputers was to speed up the process <strong>of</strong> calculation. Inthe 1950s, the machines began to be used for more generaldata-processing tasks by governments <strong>and</strong> business. By the1960s, computers were in use in most major academic, government,<strong>and</strong> business organizations. The desire for usersto share data <strong>and</strong> to communicate both within <strong>and</strong> outsidetheir organization led to efforts to link computers togetherinto networks.<strong>Computer</strong> manufacturers began to develop proprietarynetworking s<strong>of</strong>tware to link their computers, but they werelimited to a particular kind <strong>of</strong> computer, such as a DEC PDPminicomputer, or an IBM mainframe. However, the U.S.Defense Department, seeing the need for a robust, decentralizednetwork that could maintain links between theircomputers under wartime conditions, funded the development<strong>of</strong> a protocol that, given appropriate hardware tobridge the gap, could link these disparate networks (seeInternet, local area network).Network ArchitectureToday’s networks are usually defined by open (that is, nonproprietary)specifications. According to the OSI (open systemsinterconnection) model, a network can be consideredto be a series <strong>of</strong> seven layers laid one atop another (see datacommunication).The physical layer is at the bottom. It specifies the physicalconnections between the computers, which can be anythingfrom ordinary phone lines to cable, fiber optic, orwireless. This layer specifies the required electrical characteristics(such as voltage changes <strong>and</strong> durations that constitutethe physical signal that is recognized as either a 1 or 0in the “bit stream.”The next layer, called the data link layer, specifies howdata will be grouped into chunks <strong>of</strong> bits (frames or packets)<strong>and</strong> how transmission errors will be dealt with (see errorcorrection).The network layer groups the data frames as parts <strong>of</strong> aproperly formed data packet <strong>and</strong> routes that packet fromthe sending node to the specified destination node. A variety<strong>of</strong> routing algorithms can be used to determine the mostefficient route given current traffic or line conditions.The transport layer views the packets as part <strong>of</strong> a completetransmission <strong>of</strong> an object (such as a Web page) <strong>and</strong>ensures that all the packets belonging to that object aresorted into their original sequence at the destination. Thisis necessary because packets belonging to the same messagemay be sent via different routes in keeping with trafficor line conditions.The session layer provides application programs communicatingover the network with the ability to initiate,terminate, or restart an interrupted data transfer.The presentation layer ensures that data formats areconsistent so that all applications know what to expect.This layer can also provide special services (see encryption<strong>and</strong> data compression).Finally, the application layer gives applications highlevelcomm<strong>and</strong>s for performing tasks over the network,such as file transfer protocol (ftp).Most modern operating systems support this model.The Internet protocol (see TCP/ip) has become the linguafranca for most networking, so modern versions <strong>of</strong> Micros<strong>of</strong>tWindows <strong>and</strong> the Macintosh Operating System as wellas all versions <strong>of</strong> UNIX provide the services that applicationsneed to make <strong>and</strong> manage TCP/IP connections.Networks that link computers remotely (such as overphone lines) are sometimes called wide area networks, orWANs. Networks that link computers within an <strong>of</strong>fice,home, or campus, usually using cables, are called localarea networks (LANs). See local area network for moredetails about LAN architecture <strong>and</strong> s<strong>of</strong>tware.TrendsIt has become the norm for desktop <strong>and</strong> portable computersto have access to the Internet. A computer from whichone cannot send or receive e-mail or view Web pages almostgives the perception <strong>of</strong> being crippled, because so manyapplications now assume that they can access the network.For example, the latest antivirus programs regularly checktheir manufacturer’s Web site <strong>and</strong> download the latest virusdefinitions <strong>and</strong> s<strong>of</strong>tware patches. Recent versions <strong>of</strong> Windows,too, include a built-in update facility that can obtainsecurity patches <strong>and</strong> newer versions <strong>of</strong> device drivers.The flip side <strong>of</strong> the power <strong>of</strong> networking to keep everyPC (<strong>and</strong> its user) up to date is the vulnerability to bothintrusion attempts <strong>and</strong> viruses (see computer crime <strong>and</strong>security). Virtually all networks include a layer <strong>of</strong> s<strong>of</strong>twarewhose job it is to attempt to block intrusions <strong>and</strong> protectsensitive information (see firewall).Besides attending to security, network administrators<strong>and</strong> engineers must continually monitor the trafficon the network, looking for bottlenecks, such as an <strong>of</strong>tenrequesteddatabase being stored on a file server with a relativelyslow hard drive. Besides upgrading key hardware,another approach to relieve congestion is to adopt a distributeddatabase (see database management system)that stores “data objects” throughout the network <strong>and</strong> c<strong>and</strong>ynamically relocate them to improve access.


neural interfaces 335The growing appetite for data-rich applications such ashigh-fidelity audio <strong>and</strong> video (see streaming <strong>and</strong> multimedia)tends to put a strain on the capacity <strong>of</strong> most networks.In response, institutional users look to optical fiber <strong>and</strong>other high capacity connections (see b<strong>and</strong>width), whilehome users are rapidly switch in from dial-up service onregular phone lines (see modem) to DSL phone lines <strong>and</strong>cable.While existing network architectures have workedremarkably well, they were designed for only a small fraction<strong>of</strong> today’s traffic. There have been a number <strong>of</strong> initiatives<strong>and</strong> proposals for higher capacity networks <strong>and</strong>for integrating new features (such as security <strong>and</strong> e-mailsender verification). For a review <strong>of</strong> these developments, seeInternet architecture <strong>and</strong> governance.Further ReadingDerfler, Frank J., Jr., <strong>and</strong> Les Freed. How Networks Work. 7th ed.Indianapolis: Que, 2004.Donahue, Gary. Network Warrior. Sebastapol, Calif.: O’ReillyMedia, 2007.Komar, Brian. Sams Teach Yourself TCP/IP Networking in 21 Days.2nd ed. Indianapolis: Sams, 2002.Kozierok, Charles. “The TCP/IP Guide.” Available online. URL:http://www.tcpipguide.com/free/index.htm. Accessed August16, 2007.Tanenbaum, Andrew S. <strong>Computer</strong> Networks. 4th ed. Upper SaddleRiver, N.J.: Prentice Hall, 2002.networked storageWith huge databases, e-commerce <strong>and</strong> other Web servers,<strong>and</strong> even home media centers, more data needs to be servedover networks than ever before. There are two commonways to provide storage for databases <strong>and</strong> other resourceson a network.A network attached storage (NAS) unit can be thought <strong>of</strong>as a dedicated data storage unit that is available to all users<strong>of</strong> a network. Unlike a traditional dedicated file storage unit(see file server), a NAS unit typically has an operatingsystem <strong>and</strong> s<strong>of</strong>tware designed specifically (<strong>and</strong> only) forproviding data storage services. The actual storage is usuallyprovided by an array <strong>of</strong> hard drives (see raid). Fileson the NAS are accessed through protocols such as SMB(server message block), common on Windows networks,<strong>and</strong> NFS (network file system), used on many UNIX <strong>and</strong>some Linux networks. In recent years smaller, lower-costNAS devices have become available for smaller networks,including home networks, where they can store music,video, <strong>and</strong> other files (see also media center PC).Storage Area Network (SAN)Although it sounds similar, a storage area network (SAN)does not function as its own file server. Rather, it attachesstorage modules such as hard drives or tape libraries to anexisting server so that it appears to the server’s operatingsystem as though it were locally attached. Typically theprotocol used to attach the storage is SCSI (see SCSI), butthe physical connection is fiber or high-speed Ethernet. Theemphasis for SAN applications is the need for fast access todata, such as in large online databases, e-mail servers, <strong>and</strong>high-volume file servers. SANs <strong>of</strong>fer great flexibility, sincestorage can be exp<strong>and</strong>ed without changing the networkstructure, <strong>and</strong> a replacement server can quickly be attachedto the storage in case <strong>of</strong> hardware failure.Further ReadingBird, David. “Storage Basics: Storage Area Networks.” Availableonline. URL: http://www.enterprisestorageforum.com/sans/features/article.php/981191. Accessed October 5, 2007.NAS. Network World. Available online. URL: http://www.networkworld.com/topics/nas.html. Accessed October 5,2007.Network Attached Storage Reviews <strong>and</strong> Price Comparisons. PCMagazine. Available online. URL: http://www.pcmag.com/category2/0,1738,677853,00.asp. Accessed October 5, 2007.Poelker, Christopher, <strong>and</strong> Alex Nikitin. Storage Area Networks forDummies. New York: Wiley, 2003.Preston, W. Curtis. Using SANs <strong>and</strong> NAS. Sebastapol, Calif.:O’Reilly, 2002.Tate, Jon, Fabiano Lucchese, <strong>and</strong> Richard Moore. Introductionto Storage Area Networks. 4th ed. IBM Redbooks. Availableonline. URL: http://www.redbooks.ibm.com/redbooks/pdfs/sg245470.pdf. Accessed October 5, 2007.neural interfacesIn the kind <strong>of</strong> science fiction sometimes called “cyberpunk,”people are able to “jack in” or connect their brains directly tocomputer networks. Because <strong>of</strong> this direct input into the brain(or perhaps the optic <strong>and</strong> other sensory nerves), a personwho is jacked in experiences the virtual world as fully real,<strong>and</strong> can (depending on the world’s rules) manipulate it withhis or her mind. This kind <strong>of</strong> all-immersive virtual reality isstill science fiction, but today people are beginning to controlcomputers <strong>and</strong> artificial limbs directly with their minds.NeuroprostheticsNeuroprosthetics is the creation <strong>of</strong> artificial limbs or sensoryorgans that are directly connected to the nervous system.The first (<strong>and</strong> most widely used) example is the cochlearimplant, which can restore hearing by taking sound signalsfrom a microphone <strong>and</strong> converting them to electricalimpulses that directly stimulate auditory nerves within thecochlea, a part <strong>of</strong> the inner ear. Similarly, experimental retinalimplants that stimulate optic nerves are beginning to<strong>of</strong>fer crude but useful vision to certain blind patients.Research in connecting the brain to artificial arms orlegs is still in its early stages, but scientists using microelectrodearrays have been able to record signals from thebrain’s neurons <strong>and</strong> correlate them to different types <strong>of</strong>motor movements. In a series <strong>of</strong> experiments at Duke University,researchers first trained a monkey to operate a joystickto move a shape in a video game. They then recorded<strong>and</strong> analyzed the signals produced by the monkey’s brainwhile playing the game, <strong>and</strong> correlated them with themotor movements in the joystick. Next, they replicatedthese movements with a robotic arm as the monkey movedthe joystick. Finally, they were able to train the monkey tomove the robotic arm without using the joystick at all, simplyby “thinking” about the movements.


336 neural networkwebmd.com/stroke/news/20040415/Brain-Implants. AccessedOctober 5, 2007.Cooper, Huw, <strong>and</strong> Louise Craddock, eds. Cochlear Implants: APractical Guide. 2nd ed. Hoboken, N.J.: Wiley, 2006.Eisenberg, Anne. “What’s Next: Don’t Point, Just Think: The BrainWave as Joystick.” New York Times, March 28, 2002. Availableonline. URL: http://query.nytimes.com/gst/fullpage.html?res=9C01E7D8103BF93BA15750C0A96 49C8B63. AccessedOctober 5, 2007.Graham-Rowe, Duncan. “World’s First Brain Prosthesis Revealed.”New Scientist, March 12, 2003. Available online. URL: http://www.newscientist.com/article/dn3488.html. Accessed October5, 2007.He, Bin, ed. Neural Engineering. New York: Kluwer Academic,2005.“New Prosthetic Devices Will Convert Brain Signals into Action.”<strong>Science</strong> Daily, October 4, 2007. Available online. URL: http://www.sciencedaily.com/releases/2007/10/071003130747.htm.Accessed October 5, 2007.Experimental neural interfaces link nerve impulses to a computer,allowing users to control computers (<strong>and</strong> even remote robots) literallyby thinking.Human subject are now performing similar feats. Thenext step is to build robotic limbs that can be controlledby the person thinking in a certain way. Ideally, a personshould be able to think about clenching a h<strong>and</strong> or tappingan index finger <strong>and</strong> have the prosthetic h<strong>and</strong> replicate thosemovements. One obvious application for this technology isto enable quadriplegics who have little or no motion capabilityto control wheelchairs or other devices mentally.Future Brain ImplantsAs more is learned about the detailed functioning <strong>of</strong> neuronalnetworks inside the brain, “cognitive prosthetics” maybecome feasible. One example might be computer memorymodules that might act as a surrogate or extension <strong>of</strong>human memory, perhaps helping compensate for loss <strong>of</strong>memory due to age or disease. (Early experiments on interfacingto the hippocampus, a part <strong>of</strong> the brain important forforming memories, have been underway since 2003.)Other possibilities might include processors that couldgive a person the ability to think about a mathematicalproblem <strong>and</strong> “see” the answer, or to search databases or theWeb simply by visualizing or thinking about the informationdesired.Further Reading“Brain Implants Move at the Speed <strong>of</strong> Thought.” WebMD MedicalNews, April 15, 2004. Available online. URL: http://www.neural networkWhen digital computers first appeared in the late 1940s, thepopular press <strong>of</strong>ten referred to them as “electronic brains.”However, computers <strong>and</strong> living brains operate very differently.The human brain contains about 100 billion neurons,<strong>and</strong> each neuron can form connections to as manyas a thous<strong>and</strong> neighboring ones. Neurons respond to electronicsignals that jump across a gap (called a synapse)<strong>and</strong> into electrodelike dendrons. The incoming signals formcombinations that in turn determine whether the neuronbecomes “excited” <strong>and</strong> in turn emits a signal through itsaxon. Clumps <strong>of</strong> neurons, therefore, act as networks that ineffect sum up incoming signals <strong>and</strong> develop a response tothem. That is, they “learn.”In a conventionally operated computer, the “neurons”(memory locations) are not inherently connected, <strong>and</strong> thecentral processing unit (CPU) uses arbitrary, interchangeablememory locations for storing data. Algorithms writtenby a programmer <strong>and</strong> implemented in instructions executedby the CPU impose cognition, to the extent one can speak<strong>of</strong> it in computers. In the brain, however, cognition seemsto be something that emerges from the cooperating activities<strong>and</strong> connections <strong>of</strong> the neurons in response to sensestimuli, <strong>and</strong> possibly the creation <strong>of</strong> agentlike entities, asdescribed in Marvin Minsky’s book The Society <strong>of</strong> Mind.Alan Turing <strong>and</strong> John von Neumann (see Turing, Alan<strong>and</strong> von Neumann, John) had established the universality<strong>of</strong> the computer. That is, any calculation or logical operationthat can be performed at all can be performed by anappropriate computer program. This means that the “brain”model <strong>of</strong> a network <strong>of</strong> interconnected neurons can also beimplemented in a computer. During the 1940s, Warren S.McCulloch <strong>and</strong> Walter Pitts developed an electronic “neuron”in the form <strong>of</strong> a binary (on/<strong>of</strong>f) switch that could belinked into networks <strong>and</strong> used to perform logical functions.During 1950s, Marvin Minsky, working at the MIT ArtificialIntelligence Laboratory (see Minsky, Marvin) furtherdeveloped these concepts, <strong>and</strong> Frank Rosenblatt developeda classic form <strong>of</strong> neural network called a Perceptron. Thisconsists <strong>of</strong> a network <strong>of</strong> processing elements (that is, func-


nonprocedural languages 337tions), each <strong>of</strong> which are presented with weighted inputs(called vectors) from which it calculates an output value<strong>of</strong> either true (1) or false (0). The designer <strong>of</strong> the systemknows what the correct output should be. If a given element(or node) produces the correct output, no changes aremade. If it produces the wrong output, however, the weightsgiven for each input are changed by some increment, plusa further adjustment or “bias” factor. This adjustment isrepeated for all units as necessary until the output is correct.In other words, each neuron is constantly adaptingthe way it evaluates its inputs <strong>and</strong> thus its output, <strong>and</strong> thatoutput is in turn being fed into the evaluation process <strong>of</strong>the neighboring neurons. (In practice, a neural network canhave several layers <strong>of</strong> processing units, with one layer providinginputs to the next.)For example, suppose a neural network is being trainedto recognize objects based on the light being received froman array <strong>of</strong> sensors. The sensor readings are interpreted bya number <strong>of</strong> “neurons,” which should output 1 if part <strong>of</strong> thedesired object exists at the location scanned by its sensor.At first there will be many false readings—points at whichpart <strong>of</strong> the object is not recognized, or is falsely recognized.However, after many cycles <strong>of</strong> adjustment this “supervisedlearning” process results in a neural network that has ahigh probability <strong>of</strong> being able to identify all objects <strong>of</strong> agiven general form. What is significant here is that a generalizedability has been achieved, <strong>and</strong> it has emerged withoutany specific programming being required!In a computer neural network the “neurons” or nodes are “trained”to detect a pattern by being reinforced when they successfully registerit.Neural networks have been making their way into commercialapplications. They can be used to help robots recognizethe key components <strong>of</strong> their environment (see robotics<strong>and</strong> computer vision), for interpreting spoken language(see speech recognition <strong>and</strong> synthesis), <strong>and</strong> for problemsin classification <strong>and</strong> statistical analysis (see data mining).In general, the neural network approach is most useful forapplications where there is no clear algorithmic approachpossible—in other words, applications that deal with the<strong>of</strong>ten “fuzzy” realities <strong>of</strong> daily life (see fuzzy logic).Further ReadingBishop, Christopher M. Neural Networks for Pattern Recognition.New York: Oxford University Press, 1995.Haykin, Simon. Neural Networks: A Comprehensive Foundation. 2nded. Upper Saddle River, N.J.: Prentice Hall, 1998.McNellis, Paul D. Neural Networks in Finance: Gaining PredictiveEdge in the Market. Burlington, Mass.: Elsevier AcademicPress, 2005.“Neural Networks & Connectionist Systems.” Association for theAdvancement <strong>of</strong> Artificial Intelligence. Available online. URL:http://www.aaai.org/AITopics/html/neural.html. AccessedAugust 16, 2007.nonprocedural languagesMost computer languages are designed to facilitate theprogrammer declaring suitable variables <strong>and</strong> other datastructures, then encoding one or more procedures formanipulating the data to achieve the desired result (seedata types <strong>and</strong> procedures <strong>and</strong> functions). A furtherrefinement is to join data <strong>and</strong> data manipulation proceduresinto objects (see object-oriented programming).However, since the earliest days <strong>of</strong> computing, programmers<strong>and</strong> language designers have tried to create higherlevel,more abstract ways to specify what a program shoulddo. Such higher-level specifications are, after all, easier forpeople to underst<strong>and</strong>. And if the computer can do the job<strong>of</strong> translating a high-level specification such as “Find allthe customers who haven’t bought anything in 30 days <strong>and</strong>send them this e-mail message” into the appropriate proceduralsteps, people will be able to spend less time coding<strong>and</strong> debugging the program.It is actually best to think <strong>of</strong> a continuum that has atone end highly detailed procedures (see assembler) <strong>and</strong> atthe other end an English-like syntax like that given above.Already in an early language like FORTRAN the emphasisis moving away from the details <strong>of</strong> how you multiply numbers<strong>and</strong> store the result to simply specifying the operationmuch like the way a mathematician would write it on ablackboard. such as T = I + M. COBOL can render suchspecifications even more readable, albeit verbose: ADD I TOM GIVING T, for example. However, these languages arestill essentially procedural.Some languages are less procedural in that they hidemost <strong>of</strong> the details (or subprocedures) involved in carryingout the desired operation. For example, in modern databaselanguages such as SQL what would be a procedure (or a set<strong>of</strong> procedures) in some languages is treated as a query at ahigh level (see SQL). For example:


338 numeric dataselect customer where (today - customer.lastpurchasedate) > 30Programming packages such as Mathematica are alsononprocedural in that they allow for problems to be statedusing the same symbolic notation that mathematiciansemploy, <strong>and</strong> many st<strong>and</strong>ard procedures for solving or transformingequations are then carried out automatically.Other examples <strong>of</strong> relatively nonprocedural languagesinclude logic-programming languages (see Prolog <strong>and</strong>expert systems) <strong>and</strong> languages where the desired resultsare built up from defining functions rather than through aseries <strong>of</strong> procedural steps (see lisp <strong>and</strong> functional languages).Further ReadingAbraham, Paul W., et al. Functional, Concurrent <strong>and</strong> Logic ProgrammingLanguages. Vol. 4 <strong>of</strong> H<strong>and</strong>book <strong>of</strong> Programming Languages,edited by Peter H. Salus. Indianapolis: MacmillanTechnical Publishing, 1998.Gilmore, Stephen, ed. Trends in Functional Programming. Portl<strong>and</strong>,Ore.: Intellect, 2005.Truitt, Thomas D., Stuart B. Mindlin, <strong>and</strong> Tarralyn A. Truitt. AnIntroduction to Nonprocedural Languages: Using NPL. NewYork: McGraw-Hill, 1983.numeric dataText characters <strong>and</strong> strings can be stored rather simply incomputer memory, such as by devoting 8 bits (one byte) or16 bits to each character. The storage <strong>of</strong> numbers is morecomplex because there are both different formats <strong>and</strong> differentsizes <strong>of</strong> numbers recognized by most programminglanguages.Integers (whole numbers) have the simplest representation,but there are two important considerations: the totalnumber <strong>of</strong> bits available <strong>and</strong> whether one bit is used to holdthe sign.Since all numbers are stored as binary digits, an unsignedinteger has a range from 0 to 2 bits where “bits” is the totalnumber <strong>of</strong> bits available. Thus if there are 16 bits available,the maximum value for an integer is 65535. If negativenumbers are to be h<strong>and</strong>led, a signed integer must be used(in most languages such as C, C++, <strong>and</strong> Java, an integer issigned unless unsigned is specified). Since one bit is usedto hold the sign <strong>and</strong> each bit doubles the maximum size, itfollows that a signed integer can have only half the rangeabove or below zero. Thus, a 16-bit signed integer can rangefrom -32,768 to 32,767.One complication is that the available sizes <strong>of</strong> integersdepend on whether the computer system’s native data sizeis 16, 32, or 64 bits. In most cases the native size is 32 bits,so the declaration “int” in a C program on such a machineimplies a signed 32-bit integer that can range from - 2 31 or-2,147,483,647 to 2 31 -1, or 2,147,483,647. However, if one isusing large numbers in a program, it is important to checkthat the chosen type is large enough. The long specifier is<strong>of</strong>ten used to indicate an integer twice the normal size, or64 bits in this case.Floating Point NumbersNumbers with a fractional (decimal) part are usually storedin a format called floating point. The “floating” means thatthe location <strong>of</strong> the decimal point can be moved as necessaryto fit the number within the specified digit range. A floatingpoint number is actually stored in four separate parts. Firstcomes the sign, indicating whether the number is negativeor positive. Next comes the mantissa, which contains theactual digits <strong>of</strong> the number, both before <strong>and</strong> after the decimalpoint. The radix is the “base” for the number systemused. Finally, the exponent determines where the decimalpoint will be placed.For example, the base 10 number 247.35 could be representedas 24735 × 10 -2 . The -2 moves the decimal pointat the end two places to the left. However, floating-pointnumbers are normalized to a form in which there is just onedigit to the left <strong>of</strong> the decimal point. Thus, 247.35 wouldactually be written 2.4735 × 10 2 . This system is also knownas scientific notation.As noted earlier, actual data storage in modern computersis always in binary, but the same principle applies.According to IEEE St<strong>and</strong>ard 754, 32-bit floating-point numbersuse 1 bit for the sign, 8 bits for the exponent, <strong>and</strong> 23bits for the mantissa (also called the signific<strong>and</strong>, since itexpressed the digits that are significant—that is, guaranteednot to be “lost” through overflow or underflow in processing).The double precision float, declared as a “double”in C programs, uses 1, 11, <strong>and</strong> 52 bits respectively.Programmers who use relatively small numbers (such ascurrency amounts) generally don’t need to worry about loss<strong>of</strong> precision. However, if two numbers being multiplied arelarge enough, even though both numbers fit within the 32-bit size, their product may well generate more digits thancan be held within the 23 bits available for the mantissa.This means that some precision will be lost. This can beavoided to some extent by using the “double” size.Since floating-point calculations use more processorcycles (see microprocessor) than integer calculations,processor designers have paid particular attention toimproving floating-point performance. Indeed, processorsare <strong>of</strong>ten rated in terms <strong>of</strong> “megaflops” (millions <strong>of</strong> floatingpointoperations per second) or even “gigaflops” (billions <strong>of</strong>flops).Further Reading“IEEE St<strong>and</strong>ard for Floating Point Arithmetic.” Available online.URL: http://www.psc.edu/general/s<strong>of</strong>tware/packages/ieee/ieee.html. Accessed August 16, 2007.“Numeric Data Types <strong>and</strong> Expression Evaluation [in C].” Availableonline. URL: http://www.psc.edu/general/s<strong>of</strong>tware/packages/ieee/ieee.html. Accessed August 16, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Addison-Wesley, 2007.“Type Conversion <strong>and</strong> Conversion Operators in C#.” Availableonline. URL: http://www.psc.edu/general/s<strong>of</strong>tware/packages/ieee/ieee.html. Accessed August 16, 2007.“xmL Schema Numeric Data Types.” Available online. URL: http://www.psc.edu/general/s<strong>of</strong>tware/packages/ieee/ieee.html.Accessed August 16, 2007.


Oobject-oriented programming (OOP)During the last two decades the way in which programmersview the data structures <strong>and</strong> functions that make up programshas significantly changed. In simplified form the earliestapproach to programming was roughly the following:• Determine what results (or output) the user needs.• Choose or devise an algorithm (procedure) for gettingthat result.• Declare the variables needed to hold the input data.• Get the data from the file or user input.• Assign the data to the variables.• Execute the algorithm using those variables.• Output the result.While this type <strong>of</strong> approach <strong>of</strong>ten works well for small“quick <strong>and</strong> dirty” programs, it becomes problematic as thecomplexity <strong>of</strong> the program increases. In real-world applicationsdata structures (such as for a customer record orinventory file) are accessed <strong>and</strong> updated by many differentroutines, such as billing, inventory, auditing, summaryreport generation, <strong>and</strong> so on. It is easy for a programmerworking on one part <strong>of</strong> the program to make a change in adata field specification (such as changing its size or underlyingdata type) without other programmers finding out.Suddenly, other parts <strong>of</strong> the program that relied on theoriginal definitions start to “break,” giving errors, or worse,silently produce incorrect results.During the 1970s, computer scientists advocated a variety<strong>of</strong> reforms in programming practices (see structuredprogramming) in an attempt to make code both more readable<strong>and</strong> safer from unwanted side effects. For example, the“goto” or arbitrary jump from one part <strong>of</strong> the program toanother was discouraged in favor <strong>of</strong> strictly controlled iterativestructures (see loop). Also encouraged was the declaration<strong>of</strong> local variables that could not be changed fromoutside the procedure in which they were defined.Development <strong>of</strong> Object-Oriented LanguagesHowever, a more radical programming paradigm was alsoin the making. In existing languages, there is no inherentconnection between data <strong>and</strong> the procedures that operateupon that data. For example, the employee record may bedeclared somewhere near the beginning <strong>of</strong> the program,while procedures to update fields in the record, copy therecord, print the record, <strong>and</strong> so on may well be found manypages deeper into the program.A new approach, object-oriented programming is basedon the fact that in daily life we interact with thous<strong>and</strong>s<strong>of</strong> objects. An object, such as a ball, has properties (suchas size <strong>and</strong> color) <strong>and</strong> capabilities (such as bouncing). Ininteracting with an object, we use its capabilities. It is muchmore natural to think <strong>of</strong> an object as a whole than to haveits properties <strong>and</strong> capabilities jumbled together with those<strong>of</strong> other objects.Simula 67, developed in the late 1960s, was the firstobject-oriented language (see Simula). It was followed inthe 1970s by Smalltalk, a language developed at the Xerox339


340 object-oriented programmingPARC laboratory, home <strong>of</strong> innovative research in graphicaluser interfaces. Smalltalk, like Windows today, treats eachwindow, menu, <strong>and</strong> other control on the screen as an object(see Smalltalk). Finally, during the 1980s C++ came intoprominence, adding the essential features <strong>of</strong> object-orientedprogramming to the already very popular C language.Today most popular mainstream languages, including C++,Java, <strong>and</strong> Visual Basic, are object-oriented (see C++ <strong>and</strong>Java). Many specialized database languages are also objectoriented.Elements <strong>of</strong> Object-Oriented ProgrammingThe various object-oriented languages differ somewhat incapabilities, <strong>and</strong> <strong>of</strong> course in syntax. However, being objectorientedgenerally implies that the language has the followingfeatures.Classes <strong>and</strong> ObjectsAn object is defined using a template called a class. A classcontains both the data needed to characterize the object<strong>and</strong> the procedures (sometimes called methods or memberfunctions) needed to work with the object (see class).Thus, there could be a class for circles to be drawn on agraphics display. The class might include as its data the ×<strong>and</strong> y coordinates for the center <strong>of</strong> the circle, the size <strong>of</strong> theradius, whether the circle is filled, the color to be used forfilling, <strong>and</strong> so on. (See C++ for more examples.)When the program needs to use an object <strong>of</strong> the class,it declares it in the same way it would an ordinary built-indata type such as an integer. Languages such as C++ providefor a special function called a constructor that can beused to define the processing needed when a new object iscreated—for example, memory allocation <strong>and</strong> setting initialvalues for variables.To access data or functions within a class, the name<strong>of</strong> an object <strong>of</strong> that class is used, followed by a variable orfunction. Thus, if there’s a class called circle, a programmight specify the following:MyCircle Circle; // Declare an object <strong>of</strong> theCircle classMyCircle.X = 100; // X coordinate on screenMyCircle.Y = 50; // Y coordinate on screenMyCircle.Radius = 25; // Radius in pixelsMyCircle.Filled = True; // A Boolean constantequal to 1MyCircle.FillColor = Blue; // a previouslydefined color constantOnce these specifications have been made, the circlecan be drawn by calling upon its “draw” method or memberfunction:MyCircle.Draw;The designer <strong>of</strong> a class can choose to restrict access tocertain data items or functions, using a keyword such asprivate or protected. For example, instead <strong>of</strong> having thepart <strong>of</strong> the program that uses the class directly set the x<strong>and</strong> y coordinates, it could keep those variables private <strong>and</strong>In the object-oriented C++ programming language data within aclass can be restricted in several ways. Private data can be accessedonly from within the class itself, or from another class declared tobe a “friend” <strong>of</strong> the containing class. Protected data has these forms<strong>of</strong> access, plus it can also be accessed from any class derived fromthe containing class. Finally, Public data or functions (methods)can be accessed from anywhere in the program, <strong>and</strong> provides theinterface by which the class is used.instead provide a method called SetPos. The class mightthen take the coordinates specified by the user <strong>and</strong> adjustthem to fit the screen dimensions. The Draw method wouldthen use the adjusted internal coordinates rather than thosesupplied originally by the user.InheritanceMany objects are more elaborate or specialized variations <strong>of</strong>more basic objects. For example, in Micros<strong>of</strong>t Windows thevarious kinds <strong>of</strong> dialog boxes are specialized versions <strong>of</strong> thegeneral Window class. Therefore, the specialized versionis created by declaring it to be derived from a “base class.”Put another way, the specialized class inherits the basicdata <strong>and</strong> functions available in the base (parent) class. Theprogrammer can then add new data or functions or modifythe inherited ones to create the necessary behavior for thespecialized class.Languages such as C++ allow for a class to be derivedfrom more than one base class. This is called multipleinheritance. For example, a Message Window class mightinherit its overall structure from the Window class <strong>and</strong>its text-display capabilities from the Message class. However,it can sometimes be difficult to keep the relationshipsbetween multiple classes clear. The Java language takes thealternative approach <strong>of</strong> being limited to only single inheritance<strong>of</strong> classes, but allowing interfaces (specifications <strong>of</strong>how a class interacts with the program) to be multiplyinherited.Polymorphism <strong>and</strong> OverloadingDifferent kinds <strong>of</strong> objects <strong>of</strong>ten have analogous methods.For example, suppose there is a series <strong>of</strong> classes that representvarious polygons: square, triangle, hexagon, <strong>and</strong>


<strong>of</strong>fice automation 341so forth. Each class has a method called “perimeter” thatreturns the total distance around the edges <strong>of</strong> the object. Ifeach <strong>of</strong> these classes is derived from a base polygon class,each class inherits the base class’s perimeter method <strong>and</strong>adapts it for its own use. Thus, a square might calculateits perimeter simply by multiplying the length <strong>of</strong> a side byfour, while the rectangle would have to add up differentsizedpairs <strong>of</strong> sides, <strong>and</strong> so on.Similarly, the same operator in a language can have differentmeanings depending on what data types it is beingapplied to. The plus (+) operator, for example, is defined inmost languages so that various types <strong>of</strong> integers or floatingpointvalues can be added (see numeric data).Object-oriented languages such as C++ allow operatorsto be given additional definitions so they can h<strong>and</strong>leadditional data types, including classes defined by theuser. For example, what might adding the string “object”<strong>and</strong> the string “oriented” yield? The most sensible answeris a new string that contains both <strong>of</strong> the original strings:“object oriented.” If one defines a String class, then onecan also define the + operator as a member function <strong>of</strong> thatclass, such that when something like String1 + String2 isencountered, the expression will be evaluated as the combination(concatenation) <strong>of</strong> the two strings. The + operatoris said to have been overloaded for use with the Stringclass.EncapsulationThe ability to keep the detailed workings <strong>of</strong> a class privatepromotes program reliability (see encapsulation).S<strong>of</strong>tware developers can create well-organized libraries <strong>of</strong>classes that other programmers can use simply by referringto the interface specifications (see library, program).Encapsulation also makes programs more readable. Onceone underst<strong>and</strong>s the capabilities <strong>of</strong> the objects, it is relativelyeasy to underst<strong>and</strong> the overall operation <strong>of</strong> theprogram without getting bogged down in details. Objectorientedprogramming takes the encapsulation achievedthrough the earlier structured programming movement <strong>and</strong>makes it more integral to the language structure.TrendsObject-oriented programming was initially decried as a fadby some critics. The initial learning curve for traditionallytrained programmers <strong>and</strong> the overhead that made earlyimplementations <strong>of</strong> languages such as Smalltalk run slowlyinhibited acceptance <strong>of</strong> the new paradigm at first. However,the introduction <strong>of</strong> C++ by Bjarne Stroustrup provided afairly easy path for C programmers into the object-orientedworld. For example, the class was syntactically similar tothe familiar struct.The movement toward object-oriented programming <strong>and</strong>design was also spurred by the more or less coincidentalpopularity <strong>of</strong> graphical user interfaces such as Micros<strong>of</strong>tWindows. Since these systems are built upon event-drivenprogramming using a variety <strong>of</strong> coexisting objects, theobject-oriented class approach fit such operating systemsmuch more naturally. Thus, during the late 1980s <strong>and</strong> 1990s,many Windows programmers began to use the Micros<strong>of</strong>tFoundation Classes (MFC) as their way to structure theiraccess to the operating system. Similarly, popular languagesfor Web development (see for example Java <strong>and</strong> C#) arethoroughly object-oriented, <strong>and</strong> even most scripting languagesalso contain object-oriented features.An object-based approach also fits more naturally intoenvironments where programs <strong>and</strong> data may be running onmany interconnected computers (see network <strong>and</strong> multiprocessing).Treating the client <strong>and</strong> server programs asinteracting objects thus makes sense, as does treating databasesas collections <strong>of</strong> data objects (see database managementsystem). The object-oriented approach can also beapplied at a higher level <strong>of</strong> abstraction in designing systems(see design patterns <strong>and</strong> modeling languages).Further ReadingHamilton, J. P. Object-Oriented Programming with Visual Basic.NET. Sebastapol, Calif.: O’Reilly Media, 2002.Josuttis, Nicolai. Object-Oriented Programming in C++. New York:Wiley, 2002.“Lesson: Object-Oriented Programming Concepts.” The JavaTutorials. Available online. URL: http://www.psc.edu/general/s<strong>of</strong>tware/packages/ieee/ieee.html. Accessed August 16, 2007.Lutes, Kyle, Alka Harriger, <strong>and</strong> Jack Purdum. An Information SystemsApproach to Object-Oriented Programming Using Micros<strong>of</strong>tVisual C# .NET. Boston: Course <strong>Technology</strong>, 2005.Prata, Stephen. C++ Primer Plus. 5th ed. Indianapolis: Sams, 2004.Weisfeld, Matt. “The Evolution <strong>of</strong> Object-Oriented Languages.”Available online. URL: http://www.developer.com/design/article.php/3493761. Accessed August 16, 2007.<strong>of</strong>fice automationThe transition from manual to mechanical to electronicprocessing <strong>of</strong> information in the <strong>of</strong>fice spanned most <strong>of</strong>the 20th century. In the previous century, the typewriterallowed for the mechanical production <strong>of</strong> letters <strong>and</strong> otherdocuments by skilled workers, accommodating (<strong>and</strong> perhapsencouraging) a growing amount <strong>of</strong> paperwork. Atthe turn <strong>of</strong> the century the card tabulator (see Hollerith,Herman <strong>and</strong> punched cards <strong>and</strong> paper tape) began themechanization <strong>of</strong> information processing.During the first half <strong>of</strong> the 20th century, mechanical orelectro-mechanical calculators made by such companies asBurroughs came into more widespread use by bookkeepers<strong>and</strong> clerks (see calculator). Meanwhile, one company,International Business Machines (IBM) came to dominatethe area <strong>of</strong> card sorting <strong>and</strong> tabulating equipment.When digital computers first came into commercialuse in the 1950s, they were too large <strong>and</strong> expensive to beused in ordinary <strong>of</strong>fices. Bookkeepers <strong>and</strong> other workersdid not deal with computers directly, but were supportedby data processing departments or outside servicebureaus for what became known as electronic data processing,or EDP.By the 1970s, the advent <strong>of</strong> the microprocessor madedesk-size information processing systems possible (seemicroprocessor). The first widespread application was thededicated word processing system, <strong>of</strong> which the most successfulversion was developed by An Wang. These systems


342 Omidyar, Pierreprovided for typing <strong>and</strong> printing documents <strong>and</strong> storingthem in a file system (see word processing).During the 1980s, the general-purpose desktop computer(see personal computer) became powerful enoughto supplant the dedicated word-processing system. Besidesproviding word-processing functions through ever moreversatile versions <strong>of</strong> programs such as WordPerfect. Word-Star, <strong>and</strong> Micros<strong>of</strong>t Word, the PC could also run programsto support bookkeeping, accounting, mailing list, <strong>and</strong> otherfunctions (see database management system <strong>and</strong> spreadsheet).Gradually, many <strong>of</strong> these separate programs weremerged into <strong>of</strong>fice suites such as Micros<strong>of</strong>t Office (see applicationsuite). Using a suite meant that information couldbe easily transferred between word-processing documents,spreadsheets, <strong>and</strong> database files, facilitating the generation<strong>of</strong> many kinds <strong>of</strong> reports <strong>and</strong> presentations.Later in the 1980s, two new aspects <strong>of</strong> <strong>of</strong>fice automationbegan to emerge: communication <strong>and</strong> collaboration. Theuse <strong>of</strong> special hardware <strong>and</strong> s<strong>of</strong>tware to connect PCs withinan <strong>of</strong>fice or throughout the organization (see network <strong>and</strong>local area network) made new applications possible. E-mail began to replace printed memos or phone calls as thepreferred way for workers <strong>and</strong> management to communicate.Programs such as Lotus Notes <strong>and</strong> Micros<strong>of</strong>t Outlookadded features such as the ability <strong>of</strong> workers to share a commoncalendar <strong>of</strong> tasks, while scheduling s<strong>of</strong>tware <strong>of</strong>feredmore elaborate ways to keep track <strong>of</strong> large, detailed teamprojects (see project management s<strong>of</strong>tware).Today a variety <strong>of</strong> tools are available for facilitating collaboration.Most word-processing s<strong>of</strong>tware now <strong>of</strong>fers a featurecalled revision marking, which lets various editors <strong>and</strong>reviewers comment on or make revisions to a document.The author can then merge the revisions into a new draft.“Whiteboard” programs let several users on the networkwork simultaneously on the same virtual screen, drawingdiagrams or making outlines.TrendsEven as desk space was being cleared for the first <strong>of</strong>fice PCs,pundits began to claim that the “paperless <strong>of</strong>fice” was ath<strong>and</strong>. Actually, the first stages <strong>of</strong> automation contributedto an increase in the use <strong>of</strong> paper. On the one h<strong>and</strong>, wordprocessors <strong>and</strong> other programs made it easier to generatedocuments <strong>and</strong> keep them up to date. On the other h<strong>and</strong>,the documents were all printed on paper—in part becausethe ability to share them electronically was nonexistent orrudimentary, <strong>and</strong> in part because many workers, particularlysenior executives, still preferred to work with paper.The growth <strong>of</strong> networking made it possible for morepeople to distribute documents electronically, while higherresolutionvideo displays made it easier to view pages onthe screen. During the 1990s, the inexpensive documentscanner (see scanner) made it practicable to scan incomingpaper documents into text files (see optical characterrecognition). While the <strong>of</strong>fice is not yet paperless, thetide <strong>of</strong> paper may now be receding at last.The ubiquity <strong>of</strong> the Internet <strong>and</strong> the use <strong>of</strong> the HTMLformat for documents (see html <strong>and</strong> lan) characterize thelatest phase in the evolution <strong>of</strong> <strong>of</strong>fice automation. Many corporateprocedure manuals <strong>and</strong> other resources are now beingstored on company Web sites where they can be updated easily<strong>and</strong> consulted with the aid <strong>of</strong> search engines. Databasesto which workers need shared access are also being hostedthrough Web sites. HTML <strong>and</strong> XML are emerging as commonformats for exchanging documents between systems,along with Adobe’s Portable Document Format (PDF), which<strong>of</strong>fers a faithful reproduction <strong>of</strong> the printed page.Changes in how the Internet is being used for communication<strong>and</strong> collaboration are also having an impacton the <strong>of</strong>fice. In particular, blogs are being used as a wayfor key people to keep coworkers updated (see blogs <strong>and</strong>blogging), <strong>and</strong> wikis can be an effective way for building acommon knowledge base for both employees <strong>and</strong> customers(see wikis <strong>and</strong> Wikipedia).Many workers can now access the full resources <strong>of</strong> the<strong>of</strong>fice through laptop computers <strong>and</strong> Internet connections.Workers on the go can also use h<strong>and</strong>held or palm computerssuch as the PalmPilot (see pda) to access e-mail,calendar, <strong>and</strong> other information. The growing use <strong>of</strong> videoconferencingover the Internet using inexpensive cameras<strong>and</strong> broadb<strong>and</strong> connections is also promoting the “virtualmeeting” (see video conferencing).Further ReadingBrown, M. Katherine, Brenda Huettner, <strong>and</strong> Char James-Tanny.Managing Virtual Teams: Getting the Most from Wikis, Blogs,<strong>and</strong> Other Collaborative Tools. Plano, Tex.: Wordware Publishing,2007.Greenbaum, Joan. Windows on the Workplace: <strong>Technology</strong>, Jobs, <strong>and</strong>the Organization <strong>of</strong> Office Work. New York: Monthly ReviewPress, 2004.Mobile Office <strong>Technology</strong>. Available online. URL: http://mobile<strong>of</strong>fice.about.com/. Accessed August 16, 2007.Obringer, Lee Ann. “How Virtual Offices Work.” Available online.URL: http://communication.howstuffworks.com/virtual-<strong>of</strong>fice.htm. Accessed August 16, 2007.Sellen, Abigail J., <strong>and</strong> Richard H. R. Harper. The Myth <strong>of</strong> the PaperlessOffice. Cambridge, Mass.: MIT Press, 2002.Scoble, Robert, <strong>and</strong> Shel Israel. Naked Conversations: How BlogsAre Changing the Way Businesses Talk with Customers. Hoboken,N.J.: Wiley, 2006.Wibbels, Andy. Blogwild!: A Guide for Small Business Blogging. NewYork: Penguin Group, 2006.Omidyar, Pierre(1967– )French-Iranian/AmericanEntrepreneur, InventorOne <strong>of</strong> the most remarkable stories <strong>of</strong> the development <strong>of</strong> e-commerce has been the online auction pioneered by PierreOmidyar <strong>and</strong> the hugely successful eBay auction site hefounded (see online auctions.)Omidyar was born on June 27, 1967, in Paris. His familyis <strong>of</strong> Iranian descent. While working in his high schoollibrary Omidyar encountered his first computer <strong>and</strong> soonwrote a program to catalog books. Omidyar enrolled atTufts University to study computer science. However, afterthree years he became bored with classes <strong>and</strong> went to work


Omidyar, Pierre 343Pierre Omidyar founded eBay, the world leader in onlineauctions. (Acey Harper / Time Life Pictures / Getty Images)as a programmer. Omidyar helped develop a drawing programfor the new Apple Macintosh, but after a year returnedto finish his degree, which he received in 1988. He thenwent to work for Claris, a subsidiary <strong>of</strong> Apple. There hedeveloped MacDraw, a very popular application for theMacintosh.By 1991 Omidyar had become interested in an emergingapplication, “pen computing,” which uses a special pen<strong>and</strong> tablet to allow computer users to enter text in ordinaryh<strong>and</strong>writing, which would be recognized <strong>and</strong> convertedto text by special s<strong>of</strong>tware. Omidyar <strong>and</strong> three partnersformed a company called Ink Development to work on pencomputing technology. However, the market for such s<strong>of</strong>twarewas slow to develop. The partners changed their companyname to eShop <strong>and</strong> their focus to e-commerce, theselling <strong>of</strong> goods <strong>and</strong> services online. But e-commerce wouldnot become big until the mid-1990s when the graphicalbrowser made the Web attractive <strong>and</strong> easy to use. MeanwhileOmidyar also did some graphics programming for themovie effects company General Magic.Omidyar retained his interest in e-commerce, with aparticular focus on finding new markets in which buyers<strong>and</strong> sellers could meet. Online auctions <strong>of</strong>fered one suchmechanism, <strong>and</strong> Omidyar created a site called AuctionWeb.AuctionWeb was based on a simple idea: Let a user put upsomething for bid, <strong>and</strong> have the s<strong>of</strong>tware keep track <strong>of</strong> thebids from other users until the ending time is reached, withthe highest bid being the winner.At first Omidyar made AuctionWeb free for both buyers<strong>and</strong> sellers, but as the site exploded in popularity hebegan to charge sellers a small fee to cover his Internetservice costs. As the months passed, thous<strong>and</strong>s <strong>of</strong> dollars insmall checks began to pour in. Using $1 million he receivedfrom Micros<strong>of</strong>t for the sale <strong>of</strong> his former company eShop,Omidyar decided to exp<strong>and</strong> his auction site into a full-timebusiness.Thanks to the Web, it was now possible to run an auctionwithout cataloger, auctioneer, or hotel room. The job<strong>of</strong> describing the item could be given to the seller, <strong>and</strong> <strong>of</strong>course digital photos or scanned images could be used toshow the item to potential bidders. The buyer would paythe seller directly, <strong>and</strong> the seller would be responsible forshipping the item.Because overhead costs are essentially limited to maintainingthe Web site <strong>and</strong> developing the s<strong>of</strong>tware, the companycould charge sellers about 2 percent instead <strong>of</strong> the10–15 percent dem<strong>and</strong>ed by traditional auction houses.Buyers would pay no fees at all. And because the cost forselling is so low, sellers could sell items costing as little asa few dollars, while regular auction houses generally avoidlots worth less than $50–$100.With the aid <strong>of</strong> business partner <strong>and</strong> experienced Webprogrammer Jeff Skoll, Omidyar revamped <strong>and</strong> exp<strong>and</strong>edthe site, renaming it eBay (combining the “e” in electronicwith the San Francisco Bay near which they lived). Unlikethe typical Web business that promised investors pr<strong>of</strong>itsometime in the indefinite future, eBay made money fromthe first quarter <strong>and</strong> just kept making more.Through their relationship with a venture capital firm,Benchmark, Omidyar <strong>and</strong> Skoll gained not only $5 millionfor expansion but the services <strong>of</strong> Meg Whitman, an experiencedexecutive who had compiled an impressive trackrecord with firms such as FTD (the flower delivery service),the toy company Hasbro, Procter & Gamble, <strong>and</strong> Disney.eBay’s growth continued: by the end <strong>of</strong> 1997 about 150,000auctions were being held each day.In 1998 they decided to take the company public. By thetime the first trading day ended, Omidyar’s stock was worth$750 million, <strong>and</strong> Whitman <strong>and</strong> the other key players hadalso done very well.One possible weakness in the eBay model was that itrelied heavily on trust by the seller <strong>and</strong> especially the buyer.What if a buyer won an item only to receive something thatwas not as described or, worse, never received anything atall? But while this happened in a small number <strong>of</strong> cases,Omidyar through his attention to building communitiesfor commerce had devised an interesting mechanism called“feedback.” Both sellers <strong>and</strong> buyers were encouraged to postbrief evaluations <strong>of</strong> each transaction, categorized as positive,neutral, or negative. A significant number <strong>of</strong> negativefeedbacks served as a warning signal, so both sellers <strong>and</strong>buyers had an incentive to fulfill their part <strong>of</strong> the bargain.The system was not perfect, but the continued patronage <strong>of</strong>several million users suggested that it worked. (An escrowsystem was also made available for use with more expensiveitems.)As the new century dawned, Omidyar became less personallyinvolved with eBay. In 1998 he had stepped down asCEO, the post going to Whitman. In 2004 Omidyar <strong>and</strong> hiswife, Pam, turned their attention to the Omidyar Network, a


344 online advertisingnew structure that replaces the traditional foundation witha decentralized approach combining nonpr<strong>of</strong>it <strong>and</strong> for-pr<strong>of</strong>itinitiatives focusing on empowering individuals <strong>and</strong> communities.Omidyar has also been investing in micr<strong>of</strong>inancing(the making <strong>of</strong> small loans directly to poor entrepreneurs indeveloping countries).Further ReadingCohen, Adam. “C<strong>of</strong>fee with Pierre: Creating a Web CommunityMade Him Singularly Rich.” Time, December 27, 1999, p. 78ff.———. The Perfect Store: Inside eBay. New York: Little, Brown &Company, 2002.Ericksen, Gregory K. Net Entrepreneurs Only: 10 Entrepreneurs Tellthe Stories <strong>of</strong> Their Success. New York: Wiley, 2000.Pierre’s Web (blog). http://pierre.typepad.com/. Accessed May 6,2007.Sachs, Adam. “The Millionaire No One Knows.” Gentlemens’ Quarterly,May 2000, p. 235.online advertisingIn the late 1990s “banner ads” started to appear on Websites, <strong>and</strong> other forms <strong>of</strong> advertising soon followed. Companiesrushed into the online world, either with the belief thatit had unlimited potential for finding new customers, or out<strong>of</strong> fear that the competition would get there first. Unfortunatelyit was hard to measure the actual effectiveness <strong>of</strong>ads, <strong>and</strong> Web sites (such as for publications) that lookedto third-party advertising as a source <strong>of</strong> income found theoutlook bleak in the wake <strong>of</strong> the bursting <strong>of</strong> the “dot-combubble” <strong>of</strong> the early 2000 decade.Only a few years later, however, advertisers using newbusiness models <strong>and</strong> targeting techniques have made onlineadvertising not only a viable business, but a rapidly growingone. (According to the Interactive Advertsing Bureau,Internet advertising revenue in the United States in 2007was $21.2 billion, up 26 percent from 2005.)The effects <strong>of</strong> the online advertising revolution are ripplingoutward, impacting traditional advertising mediasuch as newspapers (in particular see craigslist), magazines,<strong>and</strong> even television.Platforms <strong>and</strong> Types <strong>of</strong> AdsThere are many different applications that can be accompaniedby different types <strong>of</strong> advertising. These include e-mails(free e-mail services usually include an ad in every message),newspapers <strong>and</strong> other publications (<strong>of</strong>ten with ads related tothe subject <strong>of</strong> an accompanying article), <strong>and</strong> even blogs (seeblogs <strong>and</strong> blogging). Indeed, the most popular blogs canactually make a reasonable income from advertising.Types <strong>of</strong> ads include the following:• Banner ads are contained in rectangles, <strong>of</strong>ten at the top<strong>of</strong> the Web page. (Sometimes they can mimic dialogboxes from the operating system.) They still accountfor about half <strong>of</strong> all online advertising, <strong>and</strong> can appearon sites <strong>of</strong> all types.• Pop-up or pop-under ads appear above or beneath thecurrent window, respectively.• Floating ads appear over the main page content, <strong>of</strong>tenmoving across the screen.• Interstitial ads are displayed before the requestedcontent (such as an article or video) is shown. Theyrun for a specified period <strong>of</strong> time, although they cansometimes be closed by the viewer.Many ads are animated; some even contain video clips.There are also ads formatted for mobile devices, includingtext messages sent to cell phones.Economics <strong>of</strong> Online AdvertisingA company or organization can <strong>of</strong> course advertise its ownproducts or services on its Web site. Alternatively, a sitecan arrange with an online advertiser to carry ads for otherpeoples’ goods or services, in exchange for a fee. The advertiserin turn gets paid by the company whose ads are beingrun. The payment can be calculated in a variety <strong>of</strong> ways:CPM (cost per thous<strong>and</strong> people who see the ad), the number<strong>of</strong> sales leads, or the number <strong>of</strong> people who actually buysomething.As the first luster <strong>of</strong> the Web began to wear <strong>of</strong>f, corporateadvertising departments increasingly wanted bettermeasurements <strong>of</strong> the exposure their ads were receiving, <strong>and</strong>wanted ads that were better targeted to people more likelyto “click through” to the advertiser’s site. Since it involvespeople who are already looking for specific things, Websearch is an effective <strong>and</strong> pr<strong>of</strong>itable activity to be linked tocontextually related ads. Google in particular has been verysuccessful in auctioning or selling the opportunity to haveone’s ad appear in the results <strong>of</strong> a search request containinga specific keyword (see Google).Another way that Google <strong>and</strong> other large search enginesor portals can make money from advertisers is through“affiliate marketing”; Google’s version is called Ad Sense.Participating Web sites are indexed, <strong>and</strong> the resulting keywordsare matched with ads awaiting placement. The sitecarrying the ad generally gets a per-click payment. However,the problem <strong>of</strong> “click fraud” has also arisen: Scammerscan set up an affiliate site <strong>and</strong> then use special s<strong>of</strong>tware togenerate the clicks, while making them come from a variety<strong>of</strong> sources. Despite these problems, in 2006 about 40 percent<strong>of</strong> revenue from online advertising was attributed tosearch-related ads.While search engine usage perhaps provides the mostdirect indication <strong>of</strong> consumer interests, considerable attentionhas also been focused on developing systems that cantrack where a given individual goes on a large e-commercesite (see cookies), <strong>and</strong> look for clues about likely futurepurchases (see data mining).Maintaining User InterestThe dark side <strong>of</strong> online advertising is found in programsthat are surreptitiously installed on users’ PCs <strong>and</strong> thendownload <strong>and</strong> display advertising from shady Web operations(see spyware <strong>and</strong> adware). While many users nowregularly run programs to block such malware, even legitimateonline advertising can irritate users, particularly


online frauds <strong>and</strong> scams 345when ads are too prominent, float over (<strong>and</strong> block) text, orlurk behind the browser window. Modern Web browsershave ad-blocking features that work with varying degrees<strong>of</strong> effectiveness. As with TV, online advertisers increasinglyhave to cope with impatient users who do not have to lookat ads unless they actually want to.Advertisers can employ several strategies to keep userswilling to look at ads. One is to make the ad unobtrusive<strong>and</strong> brief, <strong>and</strong> on the way to something the user reallywants to see. In 2007 YouTube began such advertising.Another is to provide free versions <strong>of</strong> s<strong>of</strong>tware or servicesthat, in exchange for being free, require the user to put upwith some screen real estate being devoted to ads. Finally,as with TV, advertising can be woven into the content itself,such as in online computer games.A sensitive area is the attempt to balance advertisers’desire to know as much as possible about consumers’ interests<strong>and</strong> buying habits with the same consumers’ concern aboutprotecting their privacy (see privacy in the digital age).Further Reading“Click Fraud: The Dark Side <strong>of</strong> Online Advertising.” BusinessWeek, October 2, 2006. Available online. URL: http://www.businessweek.com/magazine/content/06_40/b4003001.htm.Accessed October 5, 2007.Davis, Harold. Google Advertising Tools: Cashing In with AdSense,AdWords, <strong>and</strong> the Google APIs. Sebastapol, Calif.: O’Reilly,2006.Interactive Advertising Bureau. Available online. URL: http://www.iab.net/. Accessed October 5, 2007.Plummer, Joe, et al. The Online Advertising Playbook: Proven Strategies<strong>and</strong> Tested Tactics from the Advertising Research Foundation.Hoboken, N.J.: Wiley, 2007.Scott, David Meerman. The New Rules <strong>of</strong> Marketing & PR: How toUse News Releases, Blogs, Podcasting, Viral Marketing & OnlineMedia to Reach Buyers Directly. Hoboken, N.J.: Wiley, 2007.Search Engine Marketing Pr<strong>of</strong>essional Organization (SEMPO).Available online. URL: http://www.sempo.org. AccessedOctober 5, 2007.Sloan, Paul. “The Quest for the Perfect Online Ad: Web AdvertisersAre Moving beyond Search, Using Powerful <strong>Science</strong> toFigure Out What You Want.” Business 2.0 [Magazine]. Availableonline. URL: http://money.cnn.com/magazines/business2/business2_archive/2007/03/01/8401043/index.htm.Accessed October 5, 2007.online frauds <strong>and</strong> scamsIn the old days con men <strong>and</strong> scammers went to where therewere a lot <strong>of</strong> people with loose cash <strong>and</strong> where anonymitywas the order <strong>of</strong> the day—perhaps a carnival or fair. Todayin all too many cases the Internet fills this bill. With millions<strong>of</strong> inexperienced new users coming online in recentyears, the opportunities for frauds <strong>and</strong> scams are significant,as is the problem <strong>of</strong> fighting such crime. In 2007 theInternet Crime Complaint Center (a partnership betweenthe FBI <strong>and</strong> the National White Collar Crime Center) loggedits one-millionth complaint. Of the 461,096 cases referredto law enforcement agencies, the estimated dollar loss is$647.1 million, with a median loss <strong>of</strong> $270 per complaint.Many online frauds represent adaptations <strong>of</strong> traditionalcriminal practices to the online world. E-mail (see spam)carries <strong>of</strong>fers for dubious cures for mostly imagined sexualills, or for prescription drugs at too-good-to-be-true prices,or for “genuine replica Rolex watches.” Internet auctionsites also <strong>of</strong>fer a venue for selling fakes <strong>and</strong> counterfeits <strong>of</strong>various sorts. The primary protections for the consumer areknowledge about the goods in question <strong>and</strong> taking advantage<strong>of</strong> community resources such as feedback provided byother buyers (see also auctions, online <strong>and</strong> eBay).Entire fake businesses can appear online, complete withpr<strong>of</strong>essional-quality Web sites. If a prospective purchaserhas never heard <strong>of</strong> the company, checking with the BetterBusiness Bureau, or looking for a certification such asTrust-E, is a good idea. (Scammers can also impersonatelegitimate businesses in order to get personal informationfrom customers—see phishing <strong>and</strong> spo<strong>of</strong>ing.)Investments are another fertile area for online scammers.These include “pump <strong>and</strong> dump” schemes where chatroomor blog postings are used to “talk up” some obscurestock <strong>and</strong> then cash in when investors start buying it <strong>and</strong>raising the price. Pyramid schemes <strong>and</strong> multilevel-marketing(MLM) programs where money from new participantsis used to pay back earlier investors also appear from timeto time.A common theme <strong>of</strong> victimization seems to be that manyWeb users seem to suspend their usual skepticism <strong>and</strong> cautionwhen they go online. This is perhaps due to the relativeunfamiliarity <strong>of</strong> the online world <strong>and</strong> the lack <strong>of</strong> experiencein evaluating products, investments, or services.A variety <strong>of</strong> other frauds <strong>and</strong> scams appear online or viae-mail with some frequency:• the “419” or “Nigerian money letter” that promises arich cut for helping facilitate a money transfer for adistressed <strong>of</strong>ficial• fraudulent charitable solicitations, particularly aftersuch disasters as the Asian tsunami or HurricaneKatrina• adoption <strong>and</strong> marriage scams• educational fraud, such as worthless degrees <strong>of</strong>feredby unaccredited institutions• dubious employment schemes or “home businesses”involving preparing mailings or medical billing• services that <strong>of</strong>fer to “repair” bad credit ratings• tax-avoidance schemes, <strong>of</strong>ten based on nonexistentlegal claims or loopholesFighting Online FraudBecause perpetrators are hard to track down (see anonymity<strong>and</strong> the Internet), <strong>and</strong> because <strong>of</strong> the ability to endlesslycreate new Web sites <strong>and</strong> e-mails, it is hard to controlthis form <strong>of</strong> crime (see computer crime <strong>and</strong> security).However, considerable resources are now being brought tobear, with significant success. Depending on the type <strong>of</strong>fraud, federal agencies such as the Securities <strong>and</strong> ExchangeCommission (SEC), Federal Trade Commission (FTC), <strong>and</strong>the Food <strong>and</strong> Drug Administration (FDA) will investigate,


346 online gambling<strong>and</strong> agencies such as the FBI will pursue perpetrators. Everystate also has an <strong>of</strong>fice <strong>of</strong> consumer protection or consumeraffairs, <strong>and</strong> local district attorneys may become involvedwhen perpetrators are operating in their area or victimizingresidents.Private agencies also play an important role. Besides theBetter Business Bureau, most industries or pr<strong>of</strong>essions havesome form <strong>of</strong> certification <strong>of</strong> products or practices. Thereare also pr<strong>of</strong>essional services that will authenticate collectiblessuch as stamps, coins, <strong>and</strong> sports cards.Government <strong>and</strong> private agencies also <strong>of</strong>fer a variety <strong>of</strong>consumer education materials that explain common frauds<strong>and</strong> suggest ways to shop prudently for goods or services.Further ReadingFederal Bureau <strong>of</strong> Investigation. “Internet Fraud.” Available online.URL: http://www.fbi.gov/majcases/fraud/internetschemes.htm.Accessed October 6, 2007.Henderson, Harry. Internet Predators (Library in a Book) New York:Facts On File, 2005.Internet Crime Complaint Center. Available online. URL: http://www.ic3.gov/. Accessed October 6, 2007.Securities <strong>and</strong> Exchange Commission. “Internet Fraud: How toAvoid Internet Investment Scams.” Available online. URL:http://www.sec.gov./investor/pubs/cyberfraud.htm. AccessedFebruary 7, 2008.Silver Lake Editors. Phishing, Spo<strong>of</strong>ing, ID Theft, Nigerian AdvanceSchemes, Investment Frauds, False Sweethearts: How to Recognize<strong>and</strong> Avoid Internet Era Rip-<strong>of</strong>fs. Aberdeen, Wash.: SilverLake Publishing, 2006.online gamblingDespite its illegality in the United States, Internet-basedgambling has been very popular—by 2004 more than 20million Americans had tried some form <strong>of</strong> online gambling,<strong>and</strong> in 2005 they bet about $5.9 billion.Online casinos appeared in 1995, but at first they couldonly be played “for fun,” with no actual money changingh<strong>and</strong>s. That soon changed: In 1996, InterCasino appeared—it would be the first <strong>of</strong> hundreds <strong>of</strong> online casinos, sportsbookmakers, <strong>and</strong> other types <strong>of</strong> gambling. Generally theseoperations are based outside <strong>of</strong> the United States—Caribbeanisl<strong>and</strong>s such as Antigua <strong>and</strong> Curaçao are popular locations.Online casinos <strong>of</strong>fer traditional table games such asblackjack, roulette, <strong>and</strong> craps. Generally odds <strong>and</strong> pay<strong>of</strong>fsare comparable to those at traditional casinos. Assumingthe game is honest <strong>and</strong> properly programmed, the house’srevenue comes from a percentage <strong>of</strong> the amount bet—blackjackhaving the lowest house percentage <strong>and</strong> roulette thegreatest. Slot machines (which give an even higher percentageto the house) can also be simulated online.Although occasional cases <strong>of</strong> s<strong>of</strong>tware programmed tocheat have been documented, a more common problem isfailure to pay winnings promptly, or at all. Recourse is difficult,since the casino is <strong>of</strong>fshore <strong>and</strong> the activity is illegalfor U.S. players. Players can, however, consult lists <strong>of</strong> socalledrogue casinos to be avoided. Some players cheat aswell, typically by opening multiple accounts in order to getthe “signing bonus.”Online PokerOnline poker has become very popular, particularly gamessuch as Texas Hold’Em. Estimated revenues from onlinepoker in the United States were $2.4 billion in 2005.Unlike the case with casino games, online poker playersplay against each other, not the house. The house’s revenuecomes from a “rake,” or percentage, <strong>of</strong> the pot. Many sites<strong>of</strong>fer organized tournaments, <strong>and</strong> some online players havegone on to win traditional tournaments. (The aptly namedChris Moneymaker won an online tournament, qualifyinghim to enter the 2004 World Series <strong>of</strong> Poker, which he wenton to win.)Like online casinos, online poker is illegal in the UnitedStates. Proponents argue that while any given h<strong>and</strong> is r<strong>and</strong>om,poker in the long run is a game <strong>of</strong> skill, not chance. Agroup called the Poker Players Alliance has been lobbyingto exempt poker from Internet gambling laws.A third type <strong>of</strong> online gambling is sports betting, whichis legal in many countries but only in Nevada in the UnitedStates. The Web has also given sports bettors a forum fordiscussing (or arguing about) teams <strong>and</strong> their prospects.Legal <strong>and</strong> Other IssuesIn 1998 the federal government charged more than 20Americans with operating gambling services in violation<strong>of</strong> the Federal Wire Act, which prohibits wagering over thephone lines used for most Internet transmissions. Most <strong>of</strong>the charges were subsequently dropped or plea-bargained,with only one casino operator serving 17 months in federalprison. In 2002 a federal appeals court ruled that while theWire Act applied to sports betting, it did not apply to onlinebetting on games <strong>of</strong> chance. However, subsequent legalambiguity has led major Internet services such as Google<strong>and</strong> Yahoo! to remove online gambling advertisementsfrom their sites. Meanwhile, a suit by the Casino City gamblingportal on First Amendment grounds was dismissed,although other legal challenges were underway in 2007.In recent years antigambling activists have adoptedan indirect strategy <strong>of</strong> going after the infrastructure usedfor gambling transactions. In 2006 Congress passed theUnlawful Internet Gambling Enforcement Act, which prohibitsU.S. credit card companies <strong>and</strong> banks from transferringfunds to or from Internet gambling sites. (One <strong>of</strong> thearguments used by proponents was that terrorists might beusing online gambling sites to launder money.)Another issue raised by online gambling opponents isthat the high-speed, highly interactive (click-<strong>and</strong>-response)nature <strong>of</strong> online games <strong>of</strong> chance made it easier for peopleprone to gambling addiction to get <strong>and</strong> stay “hooked.” Particularconcern has been raised about teens who decide togamble using parents’ credit cards. However, studies suchas the British Gambling Prevalence Survey 2007 have suggestedthat the growing popularity <strong>of</strong> online gambling hasnot led to an increase in the rate <strong>of</strong> gambling addiction.On the other h<strong>and</strong>, congressional liberals such as Rep.Barney Frank (Dem.-Massachusetts) have sponsored legislationthat would legalize (<strong>and</strong> tax) Internet gambling, <strong>and</strong>provide for programs to deal with underage <strong>and</strong> compul-


online games 347sive gambling. Opponents have charged that the legalizationmeasure is being backed by major “brick <strong>and</strong> mortar”casinos who want a piece <strong>of</strong> the online action, as well as thecredit card companies, which would also get a piece <strong>of</strong> eachtransaction. (As <strong>of</strong> 2007 neither this nor other attemptsto legalize online gambling in the United States have beenpassed.)Further ReadingDunnington, Angus. Gambling Online. Hassocks, West Sussex,U.K.: D&B Publishing, 2004.Norton, Kate. “Online Gambling Hedges Its U.S. Bets.” BusinessWeek, August 21, 2006. Available online. URL: http://www.businessweek.com/globalbiz/content/aug2006/gb20060821_544446.htm. Accessed October 9, 2007.Somach, Tom. “Gambling Gold Rush? A Congressional PushLast Year Stopped Many Americans from Playing the GamesOnline, but the Law May Be Changed.” San Francisco Chronicle,July 2, 2007, p. C1–2.Vogel, J. Philip. Internet Gambling: How to Win Big Online PlayingBingo, Poker, Slots, Lotto, Sports Betting & Much More. NewYork: Black Dog & Leventhal Publishers, 2006.Woellert, Lorraine. “A Web Gambling Fight Could Harm FreeTrade.” Business Week, August 12, 2007, p. 43. Available online.URL: http://www.businessweek.com/magazine/content/07_33/b4046041.htm. Accessed October 9, 2007.online gamesOnline games today range from elaborate war games toopen-ended fantasy worlds to virtual universes that mirror“real-world” activities, including economics, politics, <strong>and</strong>even education.The first online games appeared in the late 1970s onPLATO, an educational network, as well as on the earlyInternet <strong>of</strong> the 1980s. These MUDs (multiuser dungeons)were generally based on pen-<strong>and</strong>-paper role-playing games<strong>of</strong> the time, notably Dungeons & Dragons. These games wereSecond Life is not a “game,” but a virtual world that now includesjust about every known human activity—its money is evenexchangeable for real-world cash. (Copyright 2006, LindenResearch Inc., All Rights Reserved)text based, with players typing their characters’ actions<strong>and</strong> dialog while the changing world as seen by the playerswas similarly described. By the early 1990s, however,MUDs had spun <strong>of</strong>f many variants. Many were still “hackn’ slash” dungeon games (which were also <strong>of</strong>fered on AmericaOnline <strong>and</strong> other commercial services). Many <strong>of</strong> theseMUD-like games such as AOL’s Neverwinter Nights <strong>of</strong>feredsimple graphics. Meanwhile other games began to <strong>of</strong>fermore sophisticated social interactions as well as the ability<strong>of</strong> players to make their own additions to the game world,including buildings.Massively Multiplayer OnlineRole-Playing Games (MMORPGs)Today’s online games feature a “persistent world” hosted onone or more servers that grows <strong>and</strong> develops from day to day<strong>and</strong> in which the “avatars” or representatives <strong>of</strong> thous<strong>and</strong>s<strong>of</strong> players interact with game-generated creatures or oneanother, using client s<strong>of</strong>tware. Players can spend hundreds<strong>of</strong> hours helping their characters develop skills, increasingtheir levels through experience points gained from successfulcombat or other activities. Players (<strong>and</strong> their characters)frequently form organizations such as guilds or clans,because the tougher challenges generally require the cooperation<strong>of</strong> different types <strong>of</strong> classes <strong>of</strong> characters (fighters,healers, <strong>and</strong> magic-users).Modern mmORPGs began in the late 1990s with suchtitles as Ultima Online <strong>and</strong> EverQuest. The most popularMMORPG in the mid-2000s was World <strong>of</strong> Warcraft.From Games to Alternative WorldsHumans are social primates, <strong>and</strong> they tend to bring theirfull repertoire <strong>of</strong> behavior to any new situation. Even gamessuch as World <strong>of</strong> Warcraft or Everquest are not entirely aboutcombat <strong>and</strong> character skills: they are also about alliance,trust, betrayal, <strong>and</strong> bonding.Back in the 1980s psychologists began to write aboutthe social interactions that were emerging in MUDs <strong>and</strong>how players perceived their virtual world (see Turkle,Sherry). However Second Life, launched by Linden Lab in2003, is not a game at all, but a complete virtual world inwhich participants, called “residents” (through their avatars)can do just about anything—play <strong>and</strong> be entertained,have relationships (including virtual sex), but also conductmore mundane businesses <strong>and</strong> meetings <strong>and</strong> even attenduniversity courses.The ability to do nearly anything also means the abilityto do things that may be <strong>of</strong>fensive <strong>and</strong> even illegal. Indeed,an emerging issue is how “real world” laws apply to thesevirtual worlds. In Second Life, residents buy <strong>and</strong> sell inworldreal estate <strong>and</strong> goods, using a currency called LindenDollars (L$). These L$ <strong>and</strong> U.S. dollars can be tradedat the rate (as <strong>of</strong> early 2007) <strong>of</strong> 270 L$ to one dollar U.S.This means that residents in the virtual world can actuallyrun pr<strong>of</strong>itable businesses (or make investments) that can becashed out for “real” money. Further, the avatars, property,<strong>and</strong> other in-world creations developed by users remaintheir intellectual property, not that <strong>of</strong> Linden Labs.


348 online investingThe close <strong>and</strong> growing ties between virtual worlds suchas Second Life <strong>and</strong> “real” world society raises many legal <strong>and</strong>even social issues:• Should income made in the virtual world be taxable?• If residents <strong>of</strong> a virtual world make contracts with oneanother, are they enforceable? If so, who has jurisdiction?(See cyberlaw.)• Is the virtual world itself subject to national laws,or might it eventually acquire a form <strong>of</strong> sovereignty?(Already a few nations have “virtual embassies”within Second Life.)Meanwhile, representatives <strong>of</strong> major companies rangingfrom Micros<strong>of</strong>t <strong>and</strong> Google to Second Life’s Linden Labs haveproposed making online identities <strong>and</strong> avatars “portable” sothat a person could use them in his or her online games <strong>and</strong>virtual communities (see virtual community).Further ReadingCastronova, Edward. Synthetic Worlds: The Business <strong>and</strong> Culture <strong>of</strong>Online Games. Chicago: University <strong>of</strong> Chicago Press, 2006.Jennings, Scott. Massively Multiplayer Games for Dummies. Hoboken,N.J.: Wiley, 2005.Rice, Robert A., Jr. MMO Evolution. Morrisville, N.C.: Lulu.com,2006.Terdiman, Daniel. “Tech Titans Seek Virtual World Interoperability.”CNet News. October 12, 2007. Available online.URL: http://www.news.com/Tech-titans-seek-virtual-worldinteroperability/2100-1043_3-6213148.html. Accessed October13, 2007.v3image. A Beginner’s Guide to Second Life. Las Vegas, Nev.: Arche-Books, 2007.online investingAs with shoppers, investors have increasingly been attractedto the interactivity <strong>and</strong> ease <strong>of</strong> online transactions. In additionto allowing stocks to be bought or sold with just a fewclicks, online brokers (also called discount brokers) chargemuch lower transaction fees than their traditional counterparts,typically less than $10 per trade.Some online brokers, such as E*Trade, Scottrade, <strong>and</strong>TD Ameritrade, were established as Internet brokers. However,traditional brokerages such as Charles Schwab <strong>and</strong>Waterhouse have also opened online discount brokerages.In addition to fast, inexpensive trading, many onlinebrokers also <strong>of</strong>fer a variety <strong>of</strong> resources <strong>and</strong> tools, includingstock quotes <strong>and</strong> charts, research reports, <strong>and</strong> screeningprograms to help investors pick the mutual funds orindividual investments that meet their objectives. For moresophisticated investors, some brokers <strong>of</strong>fer simulations fortesting investment strategies <strong>and</strong> programmed trading,which will execute buy or sell orders automatically dependingon specified conditions.Online brokers can specialize, seeking customers whowant to make frequent trades but do not need other support,or investors who are interested in obtaining IPOs (initialpublic <strong>of</strong>ferings) <strong>of</strong> up-<strong>and</strong>-coming companies. Somebrokers may emphasize mutual funds <strong>and</strong> cater to retirementaccounts, while others might <strong>of</strong>fer government or corporatebonds, foreign stocks, “penny stocks,” or more exoticinvestments.The interactivity <strong>and</strong> low transaction costs in onlineinvesting may encourage people to become involved inhighly speculative penny stocks, options, day trading, foreignexchange markets, <strong>and</strong> other areas that are not suitablefor most individual investors. While there is a great deal<strong>of</strong> useful information available online, it is a good idea tobegin by discussing investment goals <strong>and</strong> potential riskswith a trusted financial adviser.TrendsSince trading fees have gone down about as far as theycan go <strong>and</strong> still allow for pr<strong>of</strong>itability, online brokeragesare increasingly competing by <strong>of</strong>fering distinctive features<strong>and</strong> enhanced customer service. In the course <strong>of</strong> rapidexpansion, service has become somewhat uneven: A 2006J.D. Powers survey found that 41 percent <strong>of</strong> investors hadencountered at least one problem with accessing theiraccounts or executing a trade.Besides trying to improve reliability, online brokersare also branching out by <strong>of</strong>fering financial planning <strong>and</strong>other personal services for their larger investors, <strong>and</strong> someare opening retail outlets where people can actually see abroker.Further ReadingChoosing a Broker. Yahoo! Finance. Available online. URL: http://biz.yahoo.com/edu/ed_broker.html. Accessed October 17,2007.Davidson, Alex<strong>and</strong>er. The Complete Guide to Online Stock MarketInvesting. 2nd ed. Philadelphia: Kogan Page, 2007.Krantz, Matt. Investing Online for Dummies. 6th ed. Hoboken, N.J.:Wiley, 2008.Parmar, Neil. “Finding the Best Broker.” SmartMoney. July 10,2007. Available online. URL: http://www.smartmoney.com/brokers/index.cfm. Accessed October 17, 2007.online job searching <strong>and</strong> recruitingIn the old days, people found jobs by word <strong>of</strong> mouth or byreading newspaper classified ads. While word <strong>of</strong> mouth (orat least e-mail) can still be very useful for finding job leads,increasingly both employers <strong>and</strong> job seekers are turningfirst to a variety <strong>of</strong> online sites. (Indeed, as <strong>of</strong> mid-2007 onelarge site, Monster.com, claimed to have more than 73 millionresumes in its database <strong>and</strong> 42 million job seekers permonth.)There are a number <strong>of</strong> large sites that list thous<strong>and</strong>s<strong>of</strong> jobs at any given time. Examples include Monster.com,JobCentral, <strong>and</strong> CareerJournal (from The Wall Street Journal).Meanwhile, many <strong>of</strong> the “career classifieds” fromnewspapers have been replaced by postings on Craigslist,which has a number <strong>of</strong> regional sites <strong>and</strong> covers buy/sell,apartment rentals, <strong>and</strong> other types <strong>of</strong> ads as well (seecraigslist).In evaluating a job site it is important to get a feel forthe kinds <strong>of</strong> jobs <strong>of</strong>fered <strong>and</strong> the target audience, such aspr<strong>of</strong>essionals, recent graduates, white-collar or service-


online research 349sector jobs, <strong>and</strong> so on. Other important features to look forinclude:• powerful search or filtering capability, such as by type<strong>of</strong> job or employer, keywords in job description, orlocality• the ability to put one’s resume online <strong>and</strong> edit orupdate it as needed.• the ability to have several versions <strong>of</strong> one’s resumetailored to different types <strong>of</strong> jobs• automatic e-mail alerts about newly added jobs thatmeet the user’s criteria• privacy protections so that contact information fromresumes is not used for marketing or other nonemploymentpurposes• lack <strong>of</strong> fees to job seekers (normally employers are theservice’s source <strong>of</strong> revenue)Job seekers can use job search engines such as CareerBuilder that will search the major job-finding sites <strong>and</strong>/oremployers’ own sites according to the user’s criteria.In addition to dedicated job-hunting sites <strong>and</strong> recruitingagencies, a less formal but rapidly growing trend isthe meeting <strong>of</strong> employers <strong>and</strong> would-be employees throughsites such as Facebook (see social networking), wherepeople <strong>of</strong>ten freely describe their interests. Employers inturn are increasingly searching online for informationabout applicants, which can cause a problem if the resultsinclude “indiscreet” writings or perhaps photos, perhapsdating back to high school. (On the other h<strong>and</strong>, there arealso social networks such as LinkedIn that specialize inbusiness contacts.)Finally, online job seekers should beware <strong>of</strong> fake “job<strong>of</strong>fers” that ask for information such as social security numbers(see online frauds <strong>and</strong> scams).Further ReadingCareerBuilder. Available online. URL: http://www.careerbuilder.com. Accessed October 21, 2007.Craigslist. Available online. URL: http://www.craigslist.com.Accessed October 21, 2007.Dikel, Margaret Riley, <strong>and</strong> Frances E. Roehm. Guide to Internet JobSearching 2006–2007 Edition. New York: McGraw-Hill, 2006.Job-Hunt: The Guide to Finding Employment Online. Availableonline. URL: http://www.job-hunt.org/job-search.html.Accessed October 21, 2007.Kerber, Ross. “Online Job Hunters Grapple with Misuse <strong>of</strong> PersonalData.” Boston Globe, October 1, 2007. Available online. URL:http://www.boston.com/business/globe/articles/2007/10/01/online_job_hunters_grapple_with_misuse_<strong>of</strong>_personal_data/. Accessed October 21, 2007.Monster.com. Available online. URL: http://www.monster.com.Accessed October 21, 2007.Napoli, Lisa. “New Job-Seeking Tool? It’s the Network.” Marketplace(American Public Media). October 19, 2007. Availableonline. URL: http://marketplace.publicradio.org/display/web/2007/10/19/online_job_networking. Accessed October21, 2007.USAJOBS [federal job information]. Available online. URL: http://www.usajobs.gov/. Accessed October 21, 2007.online researchThe proliferation <strong>of</strong> online databases, information services(see online services) <strong>and</strong> Web sites has made more informationaccessible to more people than ever before. At thesame time, the complexity <strong>of</strong> the online world challengesresearchers to develop a new set <strong>of</strong> skills to cope with it.It is useful to divide online <strong>of</strong>ferings into three broadcategories: specialized databases, online information services,<strong>and</strong> the Web as a whole (see World Wide Web).Each <strong>of</strong> these areas requires a somewhat different approachby the online researcher.A common research task is to find <strong>and</strong> evaluate booksor articles on a given subject. Most local libraries have theircatalogs online, <strong>and</strong> the world’s largest library catalog, that<strong>of</strong> the Library <strong>of</strong> Congress (LC), is also available in severalforms on the Web.Newspaper <strong>and</strong> magazine articles can be found in anumber <strong>of</strong> general-purpose databases such as InfoTrac.These databases can be searched in public libraries: Remoteaccess is generally restricted to the library’s cardholders.These records can consist <strong>of</strong> a bibliographic descriptiononly (that is, author, title, periodical, issue date, <strong>and</strong> soon) or can include an abstract or in many cases the fulltext <strong>of</strong> the article. In addition, most major newspapers now<strong>of</strong>fer free access to recent articles on their Web site, witholder articles available for a nominal fee. Magazines, too,frequently <strong>of</strong>fer selected articles or their complete contentsonline.Using the search facility for an online catalog or periodicaldatabase is generally simple, particularly if an author ortitle is known. For subject searching, some familiarity withLC subject headings is helpful. However, the ability <strong>of</strong> mostsystems to search for matching words in titles or subjectsmeans that the researcher can be quickly led to the correctsubject in most cases.Another way to get tables <strong>of</strong> contents, jacket copy, <strong>and</strong>reviews <strong>of</strong> books is to browse the online catalogs <strong>of</strong> majorbooksellers, particularly Amazon.com <strong>and</strong> Barnes<strong>and</strong>Noble.com.Publishers’ Web sites are another good way to getinformation about books, particularly new or forthcomingtitles.Journalists need a broad familiarity with online researchtools <strong>and</strong> use computers <strong>and</strong> online services in many facets<strong>of</strong> their work (see journalism <strong>and</strong> computers). Researcherslooking for specialized articles in fields such as law ormedicine need more rigorous skills.Most legal research is done using databases such asLexisNexis. These databases are expensive but indispensableto practitioners. However, students <strong>and</strong> others whocan’t afford this access can still find U.S. Supreme Court,Court <strong>of</strong> Appeals, <strong>and</strong> many state court decisions online,thanks to the efforts <strong>of</strong> organizations such as the LegalInformation Institute at Cornell Law School. Because <strong>of</strong>the complexity <strong>of</strong> multiple jurisdictions <strong>and</strong> the need totrace chains <strong>of</strong> precedent (“shepardizing”), online legalresearch has become an increasingly important parapr<strong>of</strong>essionaltask.Medical research is similarly complex, due to thethous<strong>and</strong>s <strong>of</strong> precise terms for conditions, procedures,


350 online services<strong>and</strong> drugs. The sheer volume <strong>of</strong> articles (MEDLINE hasmore than 11 million citations dating back to the 1960s)can make it hard to find <strong>and</strong> evaluate the most relevantmaterial.By far the most extensive information resource todayis the World Wide Web with its millions <strong>of</strong> sites <strong>and</strong> pages<strong>of</strong> information. There are two basic approaches to findingmaterial on the Web. The first is to use a search engine bytyping in keywords or phrases (see search engine). Eventhough search engines such as Google index only a modestfraction <strong>of</strong> the available pages on the Web, a searchon a topic such as “database design” can yield from thous<strong>and</strong>sto millions <strong>of</strong> possible “hits.” Most search engines doattempt to rank results in decreasing order <strong>of</strong> matching orrelevance.An alternative approach is to browse the categorized list<strong>of</strong> topics presented by a site such as Yahoo! (www.yahoo.com) or About.com (www.about.com). The advantage <strong>of</strong>this approach is that the site’s researchers have selected thelinks for each topic that they believe to be the most valuable,<strong>and</strong> the number <strong>of</strong> possibilities is likely to be moremanageable (see portal).The tremendous increase in personal expression <strong>and</strong>collaboration on the Web is opening new channels <strong>of</strong> information(see blogs <strong>and</strong> blogging, user-created content,<strong>and</strong> wikis <strong>and</strong> Wikipedia). Wikipedia, for example,has some articles that are as reliable <strong>and</strong> fully documentedas those found in a traditional encyclopedia, while othersmight be best described as “works in progress.” Theresearcher must decide whether a given article or postingis definitive or perhaps just usefully suggestive <strong>of</strong> furtherresources.Online research remains more an art than a science. Theresearcher must choose the appropriate tools—bibliographicalresources, specialized databases, information services,search engines, <strong>and</strong> portals—<strong>and</strong> evaluate <strong>and</strong> integratethe results so they are useful for a given question or project.Students <strong>and</strong> researchers now have unprecedented access toinformation, but sophisticated critical thinking skills mustbe employed. In particular, it can be difficult to evaluate thebackground or credentials <strong>of</strong> the people behind Web sitesthat are not associated with recognized media outlets orother organizations.Further ReadingDornfest, Rael, Paul Bausch, <strong>and</strong> Tara Calishain. Google Hacks:Tips <strong>and</strong> Tools for Finding <strong>and</strong> Using the World’s Information.3rd ed. Sebastapol, Calif.: O’Reilly, 2006.Hock, R<strong>and</strong>olph. The Extreme Searcher’s Internet H<strong>and</strong>book: AGuide for the Serious Searcher. 2nd ed. Medford, N.J.: InformationToday, 2007.Internet Public Library. Available online. URL: http://www.ipl.org/. Accessed August 16, 2007.Research <strong>and</strong> Documentation Online. Available online. URL:http://www.dianahacker.com/resdoc/. Accessed August 16,2007.Schlein, Alan M. Find It Online. 4th ed. Tempe, Ariz.: Facts onDem<strong>and</strong> Press, 2004.Tomaiuolo, Nicholas, Steve C<strong>of</strong>fman, <strong>and</strong> Barbara Quint. The WebLibrary: Building a World Class Personal Library with Free WebResources. Medford, N.J.: Information Today, 2004.online servicesThe ability <strong>of</strong> PC owners to connect to remote computers(see modem) led to the proliferation <strong>of</strong> both free <strong>and</strong>commercial online information services during the 1980s.At one end <strong>of</strong> the spectrum were bulletin board systems(BBS), many run by hobbyists on PCs connected to a fewphone lines (see bulletin board systems). They <strong>of</strong>feredusers the ability to read <strong>and</strong> post messages on various topicsas well as to download or contribute s<strong>of</strong>tware (see alsoshareware).The growing number <strong>of</strong> connected PC owners soon<strong>of</strong>fered entrepreneurs a potential market for a commercialonline information service. One <strong>of</strong> the oldest, CompuServe,had actually been started in 1969 as a business time-sharingcomputer system. In 1979, it launched a service forhome computer users, <strong>of</strong>fering e-mail <strong>and</strong> technical supportforums. By the mid-1980s, the service had added anonline chat service called CB Simulator (see chat, online)as well as news content. The service’s greatest strength,however, remained its forums, which <strong>of</strong>fered technicalsupport for just about every sort <strong>of</strong> computer hardwareor s<strong>of</strong>tware, together with download libraries containingsystem patches, drivers, utilities, templates, macros, <strong>and</strong>other add-ons.By then, however, the online service market had becomequite competitive. While CompuServe focused on computer-savvyusers, America Online (AOL), founded in1985 by Steve Case, targeted the growing legion <strong>of</strong> newPC users who needed an easy-to-navigate interface. AOLgrew steadily, reaching a million customers in 1994 (seeAmerica Online). AOL chat groups became very popular,spawning a vigorous online culture while raising controversiesabout sexual content in some chat “rooms.” A thirdservice, Prodigy, also catered to the new user.Meanwhile, the World Wide Web <strong>and</strong> the advent <strong>of</strong>graphical Web browsers such as Netscape <strong>and</strong> Micros<strong>of</strong>tInternet Explorer in the mid-1990s led millions <strong>of</strong> usersto connect to the Internet (see Internet, Web browser,<strong>and</strong> World Wide Web). Internet service providers (ISPs)<strong>of</strong>fered direct, no-frills access to the Web. CompuServe <strong>and</strong>AOL soon <strong>of</strong>fered their users access to the Internet as well.However, accessing the Web through an online informationservice was usually more expensive, <strong>and</strong> <strong>of</strong>ten slower, thanusing an ISP <strong>and</strong> a Web browser directly. Additionally, freeWeb portal services such as Yahoo! began to <strong>of</strong>fer extensiveinformation resources <strong>of</strong> their own.The Internet thus threatened to shrink the market forthe commercial online services. AOL fought back in the late1990s by cutting its monthly rates to make them competitivewith ISPs, flooding the mails with free disks <strong>and</strong> trial<strong>of</strong>fers, bundling introductory packages with new computersystems, <strong>and</strong> promoting added-value information servicessuch as stock quotes. In 1998, the market consolidatedwhen AOL bought CompuServe, continuing to run the latteras a subsidiary targeted at more sophisticated users.The same year AOL bought Netscape to gain access to itsbrowser technology. Finally, AOL merged with Time-Warner,hoping to leverage the latter’s huge media resources,such as by <strong>of</strong>fering classic TV fare. However, the flagship


ontologies <strong>and</strong> data models 351online service continued to struggle in the 2000s, essentiallyab<strong>and</strong>oning the ISP part <strong>of</strong> its business. MeanwhileCompuServe, after peaking in the 1990s, gradually shrankto a shadow <strong>of</strong> its former self. Even mighty Micros<strong>of</strong>t hashad trouble growing its Micros<strong>of</strong>t Network (MSN), reinventingit in 1999 as a Web portal <strong>and</strong> then trying to integrateit more closely with its operating system <strong>and</strong> s<strong>of</strong>twareproducts as “Windows Live” as well as providing servicessuch as instant messaging, blogging, <strong>and</strong> picture sharing.The long-term prospects for AOL <strong>and</strong> other commercialonline services are uncertain. Many <strong>of</strong> the advantagesthese services had until the late 1990s have diminished.For example, the once mutually incompatible e-mail systems<strong>of</strong> online services have been replaced by st<strong>and</strong>ardInternet e-mail protocols, so there is little advantage tousing a particular service for e-mail. Users can obtaine-mail accounts from a variety <strong>of</strong> ISPs or through freeWeb-based services such as hotmail.com. Content such asnews, video, <strong>and</strong> music (see streaming) is available frommany Web sites, <strong>and</strong> most companies now <strong>of</strong>fer extensiveonline technical support for their products. At thesame time, attempts to support content-rich sites througheither advertising or a subscription model have largelyfoundered. For services such as AOL, the ultimate questionis whether the parts <strong>of</strong> the service still form a sufficientlycompelling whole.Further ReadingAmerica Online. Available online. URL: http://www.aol.com.Accessed August 16, 2007.Bourne, Charles P. A History <strong>of</strong> Online Information Services, 1963–1976. Cambridge, Mass.: MIT Press, 2003.Kaufeld, John. AOL for Dummies. Hoboken, N.J.: Wiley, 2004.Micros<strong>of</strong>t Network. Available online. URL: http://www.msn.com.Accessed August 14, 2007.Swisher, Kara. There Must Be a Pony in Here Somewhere: The AOLTime Warner Debacle. New York: Three Rivers Press, 2004.ontologies <strong>and</strong> data modelsA persistent problem in artificial intelligence (see artificialintelligence) is how to provide a s<strong>of</strong>tware systemwith a model that it can use to reason about a particularsubject or domain. A data model or ontology basically consists<strong>of</strong> classes to which the relevant objects might belong,relationships between classes, <strong>and</strong> attributes that objects inthat class can possess. (For implementation <strong>of</strong> these ideaswithin programming languages, see classes <strong>and</strong> objectorientedprogramming.)For example, a business ontology might include classessuch as:• Entity—a business or person• Supplier—an Entity that provides wholesale goods orservices• Customer—an Entity that buys the company’s goodsor services• Contractor—an Entity that performs work for thecompany on contractIn the above list it can be seen that the last three classesall include as their parent or “superclass” the class Entity.Another way to put this is to say that the Entity class “subsumes”the last three classes. These relationships can beeasily shown in tree diagrams, with the most general or“universal” class at the top <strong>and</strong> the more specialized classesextending downward <strong>and</strong> outward. The process <strong>of</strong> definingrelated classes <strong>and</strong> specifying criteria for the inclusion <strong>of</strong>an object in a class is called “partitioning.” (Readers familiarwith set theory will also note that the language <strong>of</strong> sets,subsets, <strong>and</strong> inclusion also works well with this scheme.)Classes can have other types <strong>of</strong> relationships. For example,a class can be defined as being “part <strong>of</strong>” a structurebuilt from several classes. For example, a Customer mightbe part <strong>of</strong> a Transaction class.Attributes are assigned to classes as appropriate. Notein the example above that when attributes such as contactinformation are defined for the Entity class, they will alsoapply to the descendant classes Supplier, Customer, <strong>and</strong>Contractor.ImplementationOntologies can be used to provide guidance to a variety <strong>of</strong>types <strong>of</strong> programs (for example, see expert system, naturallanguage processing, <strong>and</strong> s<strong>of</strong>tware agent). Thusif an automatic news summarizer program encounters astory that includes references to opposing lawyers <strong>and</strong> legalissues, it could apply an ontology that defines the likelyrelationship <strong>of</strong> the participants in the case.Creating useful ontologies is quite labor intensive interms <strong>of</strong> the human thinking <strong>and</strong> coding involved. However,there have been substantial efforts in recent years tocreate anthologies for many fields, particularly in biology<strong>and</strong> genetics. The Web Ontology Language (OWL) is apopular tool for creating ontologies that can be used tomake Web content more underst<strong>and</strong>able to programs (seesemantic web).Meanwhile, an ambitious <strong>and</strong> long-running projectcalled Cyc (for <strong>Encyclopedia</strong>) under the direction <strong>of</strong> DouglasLenat has been engaged in creating what amounts tovast ontologies for many <strong>of</strong> the domains included in everydayhuman life as well as specialized fields <strong>of</strong> knowledge. Alarge portion <strong>of</strong> this work has been made available as opensource.Further ReadingCYCorp. Available online. URL: http://www.cyc.com/. AccessedOctober 21, 2007.Gasevic, Dragan, Dragan Djuric, <strong>and</strong> Vladan Devedzic. ModelDriven Architecture <strong>and</strong> Ontology Development. New York:Springer, 2006.Macy, Lee W. OWL: Representing Information Using the Web OntologyLanguage. Victoria, B.C., Canada: Trafford Publishing,2005.Nigro, Hector Oscar, S<strong>and</strong>ra Gonzalez Cisaro, <strong>and</strong> Daniel Xodo,eds. Data Mining with Ontologies: Implementations, Findings,<strong>and</strong> Frameworks. Hershey, Penn.: Idea Group, 2007.Web Ontology Language (OWL), World Wide Web Consortium.Available online. URL: http://www.w3.org/2004/OWL/.Accessed October 21, 2007.


352 open-source movementopen-source movementFor a long time programmers have released programs asfreeware meaning that users did not have to buy or licensethe s<strong>of</strong>tware. There is also “try before you buy” s<strong>of</strong>tware(see shareware). However, while freeware sometimesincludes not only the executable program but the sourcecode (the actual program instructions), most shareware <strong>and</strong>virtually all other commercially distributed s<strong>of</strong>tware doesnot. As a result, users wishing to fix, modify, or extend thes<strong>of</strong>tware are generally at the mercy <strong>of</strong> the company thatowns <strong>and</strong> distributes it.In university <strong>and</strong> research computing environments,however, it has been common for programmers to freelyshare <strong>and</strong> extend utilities such as program editors. Indeed,much <strong>of</strong> the necessary s<strong>of</strong>tware for the earliest minicomputers<strong>of</strong> the 1960s was created by clever, energetic hackers (seehackers <strong>and</strong> hacking). Because the source code (usuallyon paper tape) was freely distributed, people could easilycreate <strong>and</strong> distribute new (<strong>and</strong> presumably, improved) versions.Having source code also made it possible to “port”s<strong>of</strong>tware to a newly released machine without having to waitfor the relatively ponderous efforts <strong>of</strong> the <strong>of</strong>ficial developers.In particular, although the licensing <strong>of</strong> the two majorversions <strong>of</strong> the UNIX operating system were controlled byAT&T’s Bell Laboratories <strong>and</strong> the University <strong>of</strong> California’sBerkeley S<strong>of</strong>tware Distribution (BSD) respectively, muchUNIX s<strong>of</strong>tware including programming languages (see Perl<strong>and</strong> Python) <strong>and</strong> the Web’s most popular server, Apache,have been distributed using an open source model.The best-known open-source effort is the GNU Projectcreated by Richard Stallman (1953– ). GNU, a recursiveacronym meaning “GNU’s Not UNIX,” is a collection <strong>of</strong>s<strong>of</strong>tware that provides much <strong>of</strong> the functionality <strong>of</strong> AT&T’sUNIX without being subject to the latter’s licensing fees <strong>and</strong>restrictions. When creating his own open source version <strong>of</strong>UNIX (see Linux), Linus Torvalds (see Torvalds, Linus)<strong>and</strong> his colleagues drew upon the considerable base <strong>of</strong> s<strong>of</strong>twarealready created by GNU.According to Stallman <strong>and</strong> many other advocates, “opensource” s<strong>of</strong>tware is not necessarily free. What is requiredis that users receive the full source code (or have it readilyavailable for free or at nominal charge). Users are free tomodify or exp<strong>and</strong> the source code to create <strong>and</strong> distributenew versions <strong>of</strong> the s<strong>of</strong>tware. Following a legal mechanismthat Stallman calls “copyleft,” the distributor <strong>of</strong> opensources<strong>of</strong>tware must allow subsequent recipients the samefreedom to revise <strong>and</strong> redistribute. However, not all s<strong>of</strong>twarethat is billed as open source follows all <strong>of</strong> Stallman’srequirements, including being copylefted. Formally, opensources<strong>of</strong>tware is generally licensed according to variousversions <strong>of</strong> the General Public License (GPL). The latestversion, GPL3, released in 2007, has been controversial.Among other things, it more aggressively attempts to preventopen-source s<strong>of</strong>tware from being restricted or otherwisehampered by being combined with patented s<strong>of</strong>twareor proprietary hardware.Open-source s<strong>of</strong>tware has the potential for providingdiversity <strong>and</strong> alternatives in a world where some categoriessuch as PC operating systems <strong>and</strong> <strong>of</strong>fice s<strong>of</strong>tware aredominated by one or a few large companies. Indeed, sometimescompanies have converted an existing product toopen source, as is the case with Sun Microsystems <strong>and</strong> StarOffice, a suite that runs under Linux. Netscape also resortedto open source as part <strong>of</strong> an unsuccessful attempt to fight<strong>of</strong>f Micros<strong>of</strong>t for dominance <strong>of</strong> the browser market in themid to late 1990s. By making a product open source, a companymay hope to tap into the volunteer effort <strong>of</strong> many talentedprogrammers to improve or exp<strong>and</strong> the program. Thecompany is still free to create proprietary s<strong>of</strong>tware uponthe “base” <strong>of</strong> a successful open source product. Moderatelysuccessful companies such as Linux distributor Red Hathave a business plan based upon providing superior packaging,technical support, <strong>and</strong> customized solutions aroundits Linux distribution.While some critics have questioned whether viable businessmodels can be built directly upon open-source s<strong>of</strong>tware,there is little doubt that open-source developmenthas made a substantial contribution to the infrastructure<strong>of</strong> the computer industry. Linux runs about a third <strong>of</strong> allWeb servers, <strong>and</strong> products such as the Apache Web server<strong>and</strong> MySQL database are also in widespread use, as is theEclipse integrated development environment.Many advocates see open source as part <strong>of</strong> a larger philosophy<strong>and</strong> even a social movement (see user-createdcontent). They believe that by creating value through collaboration<strong>and</strong> sharing, open source may challenge classicaleconomics based on scarcity <strong>and</strong> competition.Further ReadingBabcock, Charles. “Open Source S<strong>of</strong>tware: Who Gives <strong>and</strong> WhoTakes?” InformationWeek. May 15, 2006. Available online.URL: http://www.informationweek.com/story/showArticle.jhtml?articleID=187202790. Accessed August 16, 2007.DiBona, Chris, Danese Cooper, <strong>and</strong> Mark Stone, eds. Open Sources2.0: The Continuing Evolution. Sebastapol, Calif.: O’Reilly,2005.DiBona, Chris, Sam Ockman, <strong>and</strong> Mark Stone, eds. Open Sources:Voices from the Open Source Revolution. Sebastapol, Calif.:O’Reilly, 1999.Enterprise Open Source (EOS) Directory. Available online. URL:http://www.eosdirectory.com/. Accessed August 16, 2007.LaMonica, Martin. “‘Free’ is the New ‘Cheap’ for S<strong>of</strong>tware Tools.”CNET News. Available online. URL: http://news.com.com/2100-7344_3-6032986.html. Accessed August 16, 2007.Ohloh Open Source Directory. Available online. URL: http://www.ohloh.net/. Accessed August 16, 2007.Rosen, Lawrence. Open Source Licensing: S<strong>of</strong>tware Freedom <strong>and</strong>Intellectual Property Law. Upper Saddle River, N.J.: PrenticeHall, 2004.Stallman, Richard. “Richard Stallman Sets the Free S<strong>of</strong>twareRecord Straight” [interview with Jennifer LeClaire]. LinuxInsider. Available online. URL: http://www.linuxinsider.com/story/50122.html. Accessed August 14, 2007.Weber, Steven. The Success <strong>of</strong> Open Source. Cambridge, Mass.: HarvardUniversity Press, 2005.operating systemAn operating system is an overarching program that managesthe resources <strong>of</strong> the computer. It runs programs <strong>and</strong>provides them with access to memory (RAM), input/outputdevices, a file system, <strong>and</strong> other services. It provides applica-


operating system 353tion programmers with a way to invoke system services, <strong>and</strong>gives users a way to control programs <strong>and</strong> organize files.DevelopmentThe earliest computers were started with a rudimentary“loader” program that could be used to configure the systemto run the main application program. Gradually, a moresophisticated way to schedule <strong>and</strong> load programs, link programstogether, <strong>and</strong> assign system resources to them wasdeveloped (see job control language <strong>and</strong> mainframe).As systems were developed that could run more thanone program at a time (see multitasking), the duties <strong>of</strong> theoperating systems became more complex. Programs had tobe assigned individual portions <strong>of</strong> memory <strong>and</strong> preventedfrom accidentally overwriting another program’s memoryarea. A technique called virtual memory was developed toenable a disk drive to be treated as an extension <strong>of</strong> themain memory, with data “swapped” to <strong>and</strong> from the diskas necessary. This enabled the computer to run more <strong>and</strong>/or larger applications. The operating system, too, becamelarger, amounting to millions <strong>of</strong> bytes worth <strong>of</strong> code.During the 1960s, time sharing became popular particularlyon new smaller machines such as the DEC PDPseries (see minicomputer), allowing multiple users to runprograms <strong>and</strong> otherwise interact with the same computer.Operating systems such as Multics <strong>and</strong> its highly successful<strong>of</strong>fshoot UNIX developed ways to assign security levelsto files <strong>and</strong> access levels to users. The UNIX architecturefeatured a relatively small kernel that provides essentialprocess control, memory management, <strong>and</strong> file system services,while drivers performed the necessary low-level control<strong>of</strong> devices <strong>and</strong> a shell provided user control. (See unix,kernel, device driver, <strong>and</strong> shell.)Starting in the late 1970s, the development <strong>of</strong> personalcomputers recapitulated in many ways the earlier evolution<strong>of</strong> operating systems in the mainframe world. Earlymicrocomputers had a program loader in read-only memory(ROM) <strong>and</strong> <strong>of</strong>ten rudimentary facilities for entering, running,<strong>and</strong> debugging assembly language programs.During the 1980s, more complete operating systemsappeared in the form <strong>of</strong> Apple DOS, CP/M, <strong>and</strong> MS-DOS forIBM PCs. These operating systems provided such facilitiesas a file system for floppy or hard disk <strong>and</strong> a comm<strong>and</strong>-lineinterface for running programs or system utilities. Thesesystems could run only one program at a time (althoughexploiting a little-known feature <strong>of</strong> MS-DOS allowed additionalsmall programs to be tucked away in memory).As PC memory increased from 640 kB to multiple megabytes,operating systems became more powerful. Apple’sMacintosh operating system <strong>and</strong> Micros<strong>of</strong>t Windows couldmanage multiple tasks. Today personal computer operatingsystems are comparable in sophistication <strong>and</strong> capability tothose used on mainframes. Indeed, PCs can run UNIX variantssuch as the popular Linux.ComponentsWhile the architecture <strong>and</strong> features <strong>of</strong> operating systemsdiffer considerably, there are general functions common toalmost every system. The “core” functions include “booting”the system <strong>and</strong> initializing devices, process management(loading programs intro memory assigning them a share <strong>of</strong>processing time), <strong>and</strong> allowing processes to communicatewith the operating system or one another (see kernel).Multiprogramming systems <strong>of</strong>ten implement not only processes(running programs) but also threads, or sections <strong>of</strong>code within programs that can be controlled separately.A memory management scheme is used to organize <strong>and</strong>address memory, h<strong>and</strong>le requests to allocate memory, freeup memory no longer being used, <strong>and</strong> rearrange memory tomaximize the useful amount (see memory management).There is also a scheme for organizing data created orused by programs into files <strong>of</strong> various types (see file). Mostoperating systems today have a hierarchical file system thatallows for files to be organized into directories or foldersthat can be further subdivided if necessary. In operatingsystems such as UNIX, other devices such as the keyboard<strong>and</strong> screen (console) <strong>and</strong> printer are also treated like files,providing consistency in programming. The ability to redirectinput <strong>and</strong> output is usually provided. Thus, the output<strong>of</strong> a program could be directed to the printer, the console,or both.In connecting devices such as disk drives to applicationprograms, there are <strong>of</strong>ten three levels <strong>of</strong> control. At thetop level, the programmer uses a library function to opena file, write data to the file, <strong>and</strong> close the file. The libraryitself uses the operating system’s lower-level input/output(I/O) calls to transfer blocks <strong>of</strong> data. These in turn aretranslated by a driver for the particular device into the lowlevelinstructions needed by the processor that controls thedevice. Thus, the comm<strong>and</strong> to write data to a file is ultimatelytranslated into comm<strong>and</strong>s for positioning the diskhead <strong>and</strong> writing the data bytes to disk.A typical operating system processes user comm<strong>and</strong>s or actionsusing an interface (such as a shell). Both user comm<strong>and</strong>s <strong>and</strong>requests from application programs communicate with the operatingsystem through the application Programming Interface (API),which provides services such as file, memory, process, <strong>and</strong> networkmanagement.


354 operators <strong>and</strong> expressionsOperating systems, particularly those designed for multipleusers, must also manage <strong>and</strong> secure user accounts.The administrator (or sometimes, ultimately, the “superuser” or “root”) can assign users varying levels <strong>of</strong> access toprograms <strong>and</strong> files. The owners <strong>of</strong> files can in turn specifywhether <strong>and</strong> how the files can be read or changed by otherusers (see data security).In today’s highly networked world most operating systemsprovide basic support for networking protocols suchas TCP/IP. Applications can use this facility to establishnetwork connections <strong>and</strong> transfer data over the local orremote network (see network).The operating system’s functions are made available toprogrammers in the form <strong>of</strong> program libraries or an applicationprogramming interface (API). (See library, program<strong>and</strong> application programming interface.)The user can also interact directly with the operatingsystem. This is done through a program called a shell thataccepts <strong>and</strong> responds to user comm<strong>and</strong>s. Operating systemssuch as MS-DOS <strong>and</strong> early versions <strong>of</strong> UNIX acceptedonly typed-in text comm<strong>and</strong>s. Systems such as Micros<strong>of</strong>tWindows <strong>and</strong> UNIX (through facilities such as XWindows)allow the user to interact with the operating system throughicons, menus, <strong>and</strong> mouse movements. Application programmerscan also provide these interface facilities through theAPI. This means that programs from different developerscan have a similar “look <strong>and</strong> feel,” easing the learning curvefor users.Issues <strong>and</strong> TrendsAs the tasks dem<strong>and</strong>ed <strong>of</strong> an operating system have becomemore complex, designers have debated the best overall form<strong>of</strong> architecture to use. One popular approach, typified byUNIX, is to use a relatively small kernel for the core functions.A community <strong>of</strong> programmers can then write theutilities needed to manage the system, performing taskssuch as listing file directories, editing text, or sending e-mail. New releases <strong>of</strong> the operating system then incorporatethe most useful <strong>of</strong> these utilities. The user also has a variety<strong>of</strong> shells (<strong>and</strong> thus interfaces) available.The kernel approach makes it relatively easy to port theoperating system to a different computer platform <strong>and</strong> thendevelop versions <strong>of</strong> the utilities. (Kernels were also a necessitywhen system memory was limited <strong>and</strong> precious, butthis consideration is much less important today.)Designers <strong>of</strong> modern operating systems face a number<strong>of</strong> continuing challenges:• security, in a world where nearly all computers arenetworked, <strong>of</strong>ten continuously (see computer crime<strong>and</strong> security <strong>and</strong> firewall)• the trade<strong>of</strong>f between powerful, attractive functionssuch as scripting <strong>and</strong> the security vulnerabilities theytend to present• the need to provide support for new applications suchas streaming audio <strong>and</strong> video (see streaming)• ease <strong>of</strong> use in installing new devices (see devicedriver <strong>and</strong> plug <strong>and</strong> play)• The continuing development <strong>of</strong> new user-interfaceconcepts, including alternative interfaces for the disabled<strong>and</strong> for special applications (see user interface<strong>and</strong> disabled persons <strong>and</strong> computing)• the growing use <strong>of</strong> multiprocessing <strong>and</strong> multiprogramming,requiring coordination <strong>of</strong> processors sharingmemory <strong>and</strong> communicating with one another (seemultiprocessing <strong>and</strong> concurrent programming)• distributed systems where server programs, clientprograms, <strong>and</strong> data objects can be allocated amongmany networked computers, <strong>and</strong> allocations continuallyadjusted or balanced to reflect dem<strong>and</strong> on thesystem (see distributed computing)• the spread <strong>of</strong> portable, mobile, <strong>and</strong> h<strong>and</strong>held computers<strong>and</strong> computers embedded in devices such asengine control systems (see laptop computer, PDA,<strong>and</strong> embedded system). (Sometimes the choice isbetween devising a scaled-down version <strong>of</strong> an existingoperating system <strong>and</strong> designing a new OS that isoptimized for devices that may have limited memory<strong>and</strong> storage capacity.)Further ReadingBach, Maurice J. The Design <strong>of</strong> the UNIX Operating System. EnglewoodCliffs, N.J.: Prentice Hall, 1986.Ritchie, Dennis M. “The Evolution <strong>of</strong> the UNIX Time-Sharing System.”Lecture Notes in <strong>Computer</strong> <strong>Science</strong> #79: Language Design<strong>and</strong> Programming Methodology, New York: Springer-Verlag,1980. Available online. URL: http://cm.bell-labs.com/cm/cs/who/dmr/hist.html. Accessed August 14, 2007.Silberschatz, Abraham, Peter Baer Galvin, <strong>and</strong> Greg Gagne. OperatingSystem Concepts. 7th ed. New York: Wiley, 2004.operators <strong>and</strong> expressionsAll programming languages provide operators to specifyarithmetic functions. Some <strong>of</strong> them, such as addition +,subtraction -, multiplication ×, <strong>and</strong> division ÷, are familiarfrom elementary school arithmetic (although the asteriskrather than the traditional x is used for multiplication inprogram code, to avoid confusion with the letter x). Additionaloperators found in languages such as C, C++, <strong>and</strong>Java include % (modulus, or remainder after division), ++(adds one <strong>and</strong> stores the result back into the oper<strong>and</strong>), <strong>and</strong>-- (decrement; subtracts one <strong>and</strong> stores the result back intothe oper<strong>and</strong>).Oper<strong>and</strong>s are data items such as variables, constants, orliterals (actual numbers) that are operated on by the operator.An operator is called unary if it takes just one oper<strong>and</strong>(the increment operator ++ is an example). An operator thattakes two oper<strong>and</strong>s is considered to be binary, <strong>and</strong> this istrue <strong>of</strong> most arithmetic operations such as addition, multiplication,subtraction, <strong>and</strong> division.A combination <strong>of</strong> oper<strong>and</strong>s <strong>and</strong> operators constitutes anarithmetic expression that evaluates to a particular valuewhen the program runs. Thus in the C statement:Total = SubTotal + SubTotal Tax × Tax_Rate;


optical character recognition 355the value <strong>of</strong> the SubTotal Tax is multiplied by the value <strong>of</strong>the variable Tax_Rate, the result is added to the value <strong>of</strong>SubTotal, <strong>and</strong> the result <strong>of</strong> the entire expression is storedin the variable Total. Compilers generally parse arithmeticexpressions by converting them from an “infix” form (as inA + B) to a “postfix” form (as in + A B), resolving them intoa simple form that is ready for conversion to machine code.Operator PrecedenceThe preceding example raises an important question. Howdoes one know that the subtotal is to be multiplied by thetax rate <strong>and</strong> then the result added to the subtotal, as opposedto adding the subtotal <strong>and</strong> tax <strong>and</strong> multiplying the result bythe tax rate? The former procedure is intuitively correct tohuman observers, but since computers lack intuition, specificrules <strong>of</strong> precedence are defined for operators. Theserules, which are similar for all computer languages, tell thecompiler that when code is generated for arithmetic operations,multiplications <strong>and</strong> divisions are carried out first(moving from left to right), <strong>and</strong> then additions <strong>and</strong> subtractionsare resolved in the same way. The rules <strong>of</strong> precedencedo become more complex when the relational, logical, <strong>and</strong>assignment operators are included. Finally, expressions canbe enclosed in parentheses to overrule precedence <strong>and</strong> forcethem to be evaluated. Thus in the expression (A + B) * C theaddition will be carried out before the multiplication.Generally speaking, the levels <strong>of</strong> precedence for mostlanguages are as follows:1. scope resolution operators (specify local v. globalversions <strong>of</strong> a variable)2. invoking a method from a class, array subscript,function call, increment or decrement3. size <strong>of</strong> (gets number <strong>of</strong> bytes in an object), address<strong>and</strong> pointer dereference, other unary operators(such as “not” <strong>and</strong> complement); creation <strong>and</strong> deallocationfunctions; type castsA compiler or interpreter processes a program statement by applyingits operators in order <strong>of</strong> precedence. Here the multiplication isdone first, <strong>and</strong> then its result is used in the addition. The assignment(=) operator has the lowest precedence <strong>and</strong> is applied last,assigning the value <strong>of</strong> the entire expression to the variable Total.4. class member selection through a pointer5. multiplication, division, <strong>and</strong> modulus6. addition <strong>and</strong> subtraction7. left <strong>and</strong> right shift operators8. less than <strong>and</strong> greater than9. equal <strong>and</strong> not equal operators10. bitwise operators (AND, then exclusive OR, inclusiveOR)11. logical operators (AND, then OR)12. assignment statementsThe basic arithmetic operators are built into each programminglanguage, but many <strong>of</strong> the newer object-orientedlanguages such as C++ allow for programmer-defined operators<strong>and</strong> a process called overloading in which the sameoperator can be defined to work with several different kinds<strong>of</strong> data. Thus the + operator can be extended so that if it isgiven character strings instead <strong>of</strong> numbers, it will “add” thestrings by combining (concatenating) them.Further Reading“Operators in C <strong>and</strong> C++.” Wikipedia. Available online. URL:http://en.wikipedia.org/wiki/Operators_in_C_<strong>and</strong>_C++.Accessed August 16, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Upper Saddle River, N.J.: Addison-Wesley, 2007.Stroustrup, Bjarne C. The C++ Programming Language. 3rd ed.Reading, Mass.: Addison-Wesley, 1997. See chap. 6 “Expressions<strong>and</strong> Statements” <strong>and</strong> chap. 11 “Operator Overloading.”“Summary <strong>of</strong> Operators.” Java Tutorials. Available online. URL:http://java.sun.com/docs/books/tutorial/java/nuts<strong>and</strong>bolts/opsummary.html. Accessed August 16, 2007.“Summary <strong>of</strong> Operators in Java.” Available online. URL: http://sunsite.ccu.edu.tw/java/tutorial/java/nuts<strong>and</strong>bolts/opsummary.html.optical character recognition (OCR)Today it is easy to optically scan text or graphics printed onpages <strong>and</strong> convert it into a graphical representation for storagein the computer (see scanner). However, a shape suchas a letter c doesn’t mean anything in particular as a graphic.Optical character recognition (OCR) is the process <strong>of</strong> identifyingthe letter or other document element that correspondsto a given part <strong>of</strong> the scanned image <strong>and</strong> converting it tothe appropriate character (see characters <strong>and</strong> strings). Ifthe process is successful, the result is a text document thatcan be manipulated in a word processor, database, or otherprogram that h<strong>and</strong>les text. Raymond Kurzweil (1948– )marketed the first commercially practicable general-purposeoptical character recognition system in 1978.Once the document page has been scanned into an imageformat, there are various ways to identify the characters.One method is to use stored templates that indicate the pattern<strong>of</strong> pixels that should correspond to each character. Generally,a threshold <strong>of</strong> similarity is defined so that an exactmatch is not necessary to classify a character: The templatemost similar to the character is chosen. Some systems storea set <strong>of</strong> templates for each <strong>of</strong> the fonts most commonly foundin printed text. (Recognizing cursive writing is a much morecomplex process: See h<strong>and</strong>writing recognition.)


356 optical computingA more generalized method uses structural features(such as “all t’s have a single vertical line <strong>and</strong> a shortercrossbar line”) to classify characters. To analyze a character,the different types <strong>of</strong> individual features are identified <strong>and</strong>then compared to a set <strong>of</strong> rules to determine the charactercorresponding to that particular combination <strong>of</strong> features.Sometimes thresholds or “fuzzy logic” are used to decidethe probable identity <strong>of</strong> a character.OCR systems have improved considerably, the processalso being speeded up by today’s faster processors. Mostscanners are sold with OCR s<strong>of</strong>tware that is perhaps 95percent accurate, with higher end systems being more accuratestill. This is certainly good enough for many purposes,although material that is to be published or used in legaldocuments should still be pro<strong>of</strong>read by human beings.Further ReadingMore, Shunji, Hirobumi Nishida, <strong>and</strong> Hiromitsu Yamada, eds.Optical Character Recognition. New York: Wiley, 1999.Rice, S. V., G. Nagy <strong>and</strong> T. A. Nartker. Optical Character Recognition:An Illustrated Guide to the Frontier. Boston: Kluwer,1999.optical computingLight is the fastest thing in the universe, <strong>and</strong> the science<strong>and</strong> technology <strong>of</strong> optics have developed greatly since theinvention <strong>of</strong> the laser in the 1960s. It is not surprising,therefore, that computer designers have explored the possibility<strong>of</strong> using optics rather than electronics for computation<strong>and</strong> data storage.An early idea was to use a grid <strong>of</strong> laser beams to createlogical circuits, exploiting the ability <strong>of</strong> one laser to be usedto “quench” or switch <strong>of</strong>f another one. However, creating alarge number <strong>of</strong> tiny laser beams proved impracticable, asdid managing the heat created by the process. However, bythe 1980s, experimenters were interacting “microlasers” withsemiconductors, exploiting quantum effects. This broughtthe energy (<strong>and</strong> heat) problem under control while vastlyincreasing the potential density <strong>of</strong> the optical circuitry.The incredible rate at which conventional silicon-basedelectronic circuitry continued to increase in density <strong>and</strong>capacity has limited the incentive to invest in the largescaleresearch <strong>and</strong> development that would be needed todevelop a complete optical computer with processor <strong>and</strong> acorresponding optical memory technology.Instead, current research is exploring the possibility <strong>of</strong>combining the best features <strong>of</strong> the optical <strong>and</strong> electronicsystem. Silicon chips have a limited surface for connectingdata inputs, while light can carry many more channels <strong>of</strong>data through micro-optics. It may be possible to couple amicro-optic array to the surface <strong>of</strong> the silicon chip in sucha way that the chip could have the equivalent <strong>of</strong> thous<strong>and</strong>s<strong>of</strong> connecting pins to transmit data. In March 2007 IBMunveiled a prototype hybrid chip that combines optical <strong>and</strong>semiconductor technology to achieve eight times the datatransfer rate <strong>of</strong> conventional technologies.The value <strong>of</strong> optics is more conclusively demonstratedin data transmission <strong>and</strong> storage technology. Fiber opticcables are being used in many cases to carry large quantities<strong>of</strong> data with very high capacity (see fiber optics) <strong>and</strong>may gradually supplant conventional network cable in moreapplications. The use <strong>of</strong> lasers to store <strong>and</strong> read informationis seen in CD-ROM <strong>and</strong> DVD-ROM technology, whichhas replaced the floppy disk as the ubiquitous carrier <strong>of</strong>s<strong>of</strong>tware <strong>and</strong> h<strong>and</strong>y backup medium (see cd-Rom <strong>and</strong>DVD-ROM).Further ReadingGoswami, Debabrata. “Optical Computing.” Resonance, June2003. Available online. URL: http://www.ias.ac.in/resonance/June2003/pdf/June2003p56-71.pdf. Accessed August 16, 2007.Knight, Will. “Laser Chips Could Power Petaflop <strong>Computer</strong>s.”New Scientist.com. March 21, 2006. Available online. URL:http://www.newscientist.com/article.ns?id=dn8876. AccessedAugust 16, 2007.“Now, Just a Blinkin’ Picosecond!: NASA Scientists Are Workingto Solve the Need for <strong>Computer</strong> Speed Using Light Itself toAccelerate Calculations <strong>and</strong> Increase Data B<strong>and</strong>width.” <strong>Science</strong>& NASA. Available online. URL: http://science.nasa.gov/headlines/y2000/ast28apr_1m.htm. Accessed August 16,2007.Saleh, Bahaa E. A., <strong>and</strong> Malvin Carl Teich. Fundamentals <strong>of</strong> Photonics.2nd ed. New York: Wiley Interscience, 2007.Oracle CorporationFounded in 1977, Oracle Corporation (NASDAQ symbol:ORCL) is a leading developer <strong>of</strong> business database s<strong>of</strong>tware(see database management system) as well as systemsfor other enterprise operations (see customer relationshipmanagement <strong>and</strong> supply chain management). Thesefunctions are integrated through a structure called OracleInformation Architecture that can coordinate the operations<strong>of</strong> servers <strong>and</strong> storage systems (see grid computing).Besides selling s<strong>of</strong>tware, a major part <strong>of</strong> Oracle’s businessis providing consulting <strong>and</strong> support for fitting the s<strong>of</strong>twareto the needs <strong>of</strong> corporate customers, as well as training(through Oracle University) <strong>and</strong> distributed application services(Oracle on Dem<strong>and</strong>). In 2007 Oracle had $18 billionin sales, netting $4.74 billion in pr<strong>of</strong>it. The company hadover 73,000 employees.Since its founding, Oracle’s CEO has been the dynamicthough <strong>of</strong>ten controversial Larry Ellison, who recognizedthe importance <strong>of</strong> relational databases (with their ability toconnect information from many sources) as a way to meetthe growing information needs <strong>of</strong> modern business. In the1970s IBM was the dominant leader in relational databasesfor mainframe computers, but when personal computersrunning Windows became prevalent around 1990, IBM wasslow to enter the new market. Ellison <strong>and</strong> competitors suchas Sybase <strong>and</strong> Informix were able to carve out strong niches,with Oracle coming out on top by the end <strong>of</strong> the decade.(However, by the 2000s IBM’s DB2 for UNIX/Linux <strong>and</strong>Windows <strong>and</strong> Micros<strong>of</strong>t SQL Server [for Windows only]were strong competitors, with open-source products MySQL<strong>and</strong> PostgreSQL also gaining attention—see SQL.)In recent years Oracle has also exp<strong>and</strong>ed through acquisition,picking up other s<strong>of</strong>tware companies, including PeopleS<strong>of</strong>t;Retek, Inc.; <strong>and</strong> Siebel Systems, for a combined total<strong>of</strong> over $16 billion. In 2007 Oracle filed a lawsuit against its


OS X 357major competitor in business management applications (seesap), charging them with unfair practices.Further ReadingAllen, Christopher, Simon Chatwin, <strong>and</strong> Catherine A. Creary.Introduction to Relational Databases <strong>and</strong> SQL Programming.Burr Bridge, Ill.: McGraw-Hill <strong>Technology</strong> Education, 2004.Gerald, Bastin, Nigel King, <strong>and</strong> Dan Natcher. Oracle E-BusinessSuite Manufacturing & Supply Chain Management. Berkeley,Calif.: McGraw-Hill/Osborne, 2002.Oracle Corporation. Available online. URL: http://www.oracle.com/index.html. Accessed October 25, 2007.Rittman, Mark. “Oracle Information Architecture Explained.”Available online. URL: http://www.dba-oracle.com/oracle_news/2004_8_11_rittman.htm. Accessed October 25, 2007.Stackowiak, Robert, Joseph Rayman, <strong>and</strong> Rick Greenwald. OracleData Warehousing <strong>and</strong> Business Intelligence Solutions. Indianapolis:Wiley, 2007.Symonds, Matthew. S<strong>of</strong>twar: An Intimate Portrait <strong>of</strong> Larry Ellison<strong>and</strong> Oracle. New York: Simon & Schuster, 2003.OS XJaguar, panther, tiger, <strong>and</strong> leopard—these <strong>and</strong> other names<strong>of</strong> sleek big cats represent versions <strong>of</strong> Apple’s Macintoshoperating system, OS X (pronounced “OS 10”—see AppleCorporation <strong>and</strong> Macintosh). Unlike the previous MacOS, OS X, while broadly maintaining Apple’s user interfacestyle (see user interface), is based on a version <strong>of</strong> UNIXcalled OpenStep, developed by NeXT starting in the 1980s(see UNIX). OS X development began when Steve Jobsreturned as Apple CEO in 1997 (see Jobs, Steven Paul)<strong>and</strong> the company bought NeXT, acquiring the s<strong>of</strong>tware. Thefirst version, OS X 10.0, or Cheetah, was released in 2001,but the system was not widely used until 10.1 (Puma) wasreleased later the same year.At the core <strong>of</strong> OS X is a free <strong>and</strong> open-source version <strong>of</strong>UNIX called “Darwin,” with a kernel called XNU. On top <strong>of</strong>this Apple built a distinctive <strong>and</strong> subtly colorful user interfacecalled Aqua <strong>and</strong> a new version <strong>of</strong> the Macintosh Finderfile <strong>and</strong> program management system.Applications <strong>and</strong> DevelopmentToday OS X includes a variety <strong>of</strong> useful s<strong>of</strong>tware packages—some free <strong>and</strong> some optional. These include iLife (digitalmedia management), iWork (productivity), <strong>and</strong> Front Row(home media center). OS X10.5 also includes Time Machine,an automatic backup system that can restore files (includingdeleted files) as well as earlier system settings.For s<strong>of</strong>tware developers, OS X provides an integrateddevelopment environment called “Xcode,” which workswith modified open-source compilers for major programminglanguages, including C, C++, <strong>and</strong> Java. Further,because OS X is UNIX-based, many UNIX <strong>and</strong> Linux programscan be recompiled to run on it. Since mid-2005 Apple(<strong>and</strong> OS X) have been transitioning from the earlier IBM/Motorola processors to Intel processors. This transition waslargely complete by 2007, though OS X 10.5 (Leopard) stillprovides support for applications written for the PowerPC.OS X has been well received by critics, <strong>and</strong> together withits bundled s<strong>of</strong>tware has made the Macintosh a popularplatform for users who want a seamless computing experience,particularly with regard to graphics <strong>and</strong> media.Further ReadingLeVitus, Bob. Mac OS X Leopard for Dummies. Hoboken, N.J.:Wiley, 2007.Mingis, Ken, <strong>and</strong> Michael DeAgonia. “In Depth: Apple’s LeopardLeaps to New Heights.” <strong>Computer</strong>world, October 25, 2007.Available online. URL: http://www.computerworld.com/action/article.do?comm<strong>and</strong>=viewArticleBasic&articleId=9043838. Accessed October 26, 2007.Pogue, David. Mac OS X Leopard: The Missing Manual. Sebastapol,Calif.: Pogue Press/O’Reilly, 2007.Singh, Amit. “A History <strong>of</strong> Apple’s Operating Systems.” Availableonline. URL: http://www.kernelthread.com/mac/oshistory/.Accessed October 26, 2007.———. Mac OS X Internals: A Systems Approach. Upper SaddleRiver, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2006.


PPage, Larry(1973– )AmericanEntrepreneurTogether with business partner Sergey Brin, Larry (LawrenceEdward) Page revolutionized the role <strong>of</strong> Web searchin the modern Internet economy by developing the Googlesearch engine <strong>and</strong> building an industry-leading companyaround it.Page was born in East Lansing, Michigan, into a verycomputer-oriented family (both his parents were computerscientists <strong>and</strong> his brother became a computer engineer).It was perhaps not surprising that Page received a BSE inengineering at the University <strong>of</strong> Michigan in 1995, thenentered the doctoral program in computer science at StanfordUniversity. There he met Sergey Brin (see Brin, Sergey).The two students soon developed an interest in theburgeoning Web, particularly in finding a better way tosearch for information. The result was their collaborationon a page-ranking system that prioritized search resultsbased on the popularity <strong>of</strong> sites as shown by the number <strong>of</strong>links to them (see also search engine). The other half <strong>of</strong>Page <strong>and</strong> Brin’s achievement was in developing advertisingmodels that would turn users’ Web interests into revenue.Their key insight was that sellers would be eager to advertiseto people who had already shown by searching thatthey were interested in particular products or services.By the early 2000s Google dominated Web search, whichwould became a springboard to many other services, includinglocal searching, maps, <strong>and</strong> even free online <strong>of</strong>fice applications(see Google). In 2004 Page <strong>and</strong> Brin became richwhen Google <strong>of</strong>fered its stock to the public (by 2006 Page’snet worth was estimated at $16.6 billion, just behind Brin).Google has pr<strong>of</strong>oundly changed the way people use theWeb, so much that “to google” has become a verb for searchingonline. However, the company’s size <strong>and</strong> dominant positionin Web search advertising has raised concerns amongsome critics that Google might be gaining too much controlover the market (see online advertising). Meanwhile in2001 Page <strong>and</strong> Brin hired Eric Schmidt to become Google’sCEO, giving Page more time to pursue other interests. one<strong>of</strong> which is his investment in Tesla Motors, developer <strong>of</strong>an advanced electric vehicle that can go up to 250 mileson one battery charge. Another interest <strong>of</strong> Page <strong>and</strong> Brin isspurring the private development <strong>of</strong> space travel, such asthrough Google’s Lunar X Prize, announced in September2007. It would award $20 million to the first team to l<strong>and</strong><strong>and</strong> successfully operate a lunar surface rover.Page’s impact on the Internet economy has been widelyrecognized. In 2004 he was inducted into the NationalAcademy <strong>of</strong> Engineering for his work in developing theGoogle search engine. In 2005 Time included Page in itslist <strong>of</strong> the world’s 100 most influential people, <strong>and</strong> in 2007PC World placed him at number one on a list <strong>of</strong> the mostimportant people on the Web.Further ReadingBattelle, John. The Search: How Google <strong>and</strong> Its Rivals Rewrote theRules <strong>of</strong> Business <strong>and</strong> Transformed Our Culture. New York:Portfolio, 2006.358


Papert, Seymour 359Carr, David F. “Brin, Page Show No Signs <strong>of</strong> Slowing Down.”eWeek.com. March 15, 2007. Available online. URL: http://www.eweek.com/article2/0,1895,2104091,00.asp. AccessedOctober 27, 2007.Google. Available online. URL: http://www.google.com. AccessedOctober 27, 2007.Papert, Seymour(1928– )South African/American<strong>Computer</strong> ScientistSeymour Papert is an artificial intelligence pioneer <strong>and</strong>innovative educator who has brought computer science to awider audience, especially young people.Papert was born in Pretoria, South Africa, on March 1,1928. He attended the University <strong>of</strong> Witwatersr<strong>and</strong>, earninghis bachelor’s degree in mathematics in 1949 <strong>and</strong> Ph.D.in 1952. As a student he became active in the movementagainst the racial apartheid system, which was becomingentrenched in South African society. His unwillingness toaccept the established order <strong>and</strong> his willingness to be anoutspoken activist would serve him well later when he tookon the challenge <strong>of</strong> educational reform.Papert went to Cambridge University in Engl<strong>and</strong> <strong>and</strong>earned another Ph.D. in 1952, then did mathematicsresearch from 1954 to 1958. During this period artificialintelligence, or AI, was taking shape as researchers beganto explore the possibilities for using increasingly powerfulcomputers to create or at least simulate intelligent behavior.In particular, Papert worked closely with another AIpioneer in studying neural networks <strong>and</strong> perceptrons (seeMinsky, Marvin). These devices made electronic connectionsmuch like those between the neurons in the humanSeymour Papert has made it his life work to create computerfacilities (such as the Logo language) that reflect the psychology<strong>of</strong> learning <strong>and</strong> enable even young students to experiment with“powerful ideas.” (Bill Pierce / Time Life Pictures / GettyImages)brain. By starting with r<strong>and</strong>om connections <strong>and</strong> reinforcingappropriate ones, a computer could actually learn a task(such as solving a maze) without being programmed withinstructions.Papert’s <strong>and</strong> Minsky’s research acknowledged the value<strong>of</strong> this achievement, but in their 1969 book Perceptrons theyalso suggested that this approach had limitations, <strong>and</strong> thatresearchers needed to focus not just on the workings <strong>of</strong>brain connections but upon how information is actuallyperceived <strong>and</strong> organized.This focus on cognitive psychology came together withPapert’s growing interest in the process by which humanbeings assimilated mathematical <strong>and</strong> other concepts. From1958 to 1963 he worked with Jean Piaget, a Swiss psychologist<strong>and</strong> educator. Piaget had developed a theory <strong>of</strong> learningthat was quite different from that held by most educators.Traditional educational theory tended to view children asbeing incomplete adults who needed to be “filled up” withinformation.Piaget, however, observed that children did not thinklike defective adults. Rather, children at each stage <strong>of</strong> developmenthad characteristic forms <strong>of</strong> reasoning that madeperfect sense in terms <strong>of</strong> the tasks at h<strong>and</strong>. Piaget believedthat children best developed their reasoning skills by beingallowed to exercise them freely <strong>and</strong> learn from their mistakes,thus progressing naturally.In the early 1960s Papert went to the MassachusettsInstitute <strong>of</strong> <strong>Technology</strong>, where he c<strong>of</strong>ounded the MIT ArtificialIntelligence Laboratory with Minsky in 1965. He alsobegan working with children <strong>and</strong> developing computer systemsbetter suited for allowing them to explore mathematicalideas.The tool that he created to enable this exploration wasthe LOGO computer language (see Logo). Logo provideda visual, graphical environment at a time when most programmingresulted in long, hard-to-read printouts. At thecenter <strong>of</strong> the Logo environment is the “turtle,” which can beeither a screen cursor or an actual little robot that can movearound on the floor, tracing patterns on paper. Young studentscan give the turtle simple instructions such as FOR-WARD 50 or RIGHT 100 <strong>and</strong> draw everything from squaresto complicated spirals. As students continued to work withthe system, they could build more complicated programs bywriting <strong>and</strong> combining simple procedures. As they work,the students are exploring <strong>and</strong> grasping key ideas such asrepetition <strong>and</strong> recursion (the ability <strong>of</strong> a program to callitself repeatedly).In creating Logo, Papert believed that he had demonstratedthat “ordinary” students could indeed underst<strong>and</strong>the principles <strong>of</strong> computer science <strong>and</strong> explore the widervistas <strong>of</strong> mathematics. But when he saw how schools weremainly using computers for rote learning, he began to speakout more about problems with the education system. Buildingon Piaget’s work, Papert called for a different approach.Papert <strong>of</strong>ten makes a distinction between “instructivism,”or the imparting <strong>of</strong> information to students, <strong>and</strong> “constructivism,”or a student learning by doing.Papert “retired” from MIT in 1998, but remains veryactive, as can be seen from the many Web sites that describe


360 parallel porthis work. Papert lives in Blue-Hill, Maine, where he teachesat the University <strong>of</strong> Maine. He has also established theLearning Barn, a laboratory for exploring innovative ideasin education. Papert has worked on ballot initiatives tohave states provide computers for all their students, as wellas working with teenagers in juvenile detention facilities.Today, educational centers using Logo <strong>and</strong> other ideas fromPapert can be found around the world.In December 2006, while attending a conference inHanoi, Papert was struck by a motorcycle <strong>and</strong> suffered seriousbrain injuries. As <strong>of</strong> 2008 his rehabilitation is progressingwell.Papert has received numerous awards including a Guggenheimfellowship (1980), Marconi International fellowship(1981), the S<strong>of</strong>tware Publishers Association LifetimeAchievement Award (1994), <strong>and</strong> the <strong>Computer</strong>world SmithsonianAward (1997).Further ReadingAbelson, Harold, <strong>and</strong> Andrea DiSessa. Turtle Geometry: The <strong>Computer</strong>as a Medium for Exploring Mathematics. Cambridge,Mass.: MIT Press, 1981.Harvey, Brian. <strong>Computer</strong> <strong>Science</strong> Logo Style. (3 vols.) 2nd ed. Cambridge,Mass.: MIT Press, 1997.Papert, Seymour. The Children’s Machine: Rethinking School in theAge <strong>of</strong> the <strong>Computer</strong>. New York: Basic Books, 1993.———. The Connected Family: Bridging the Digital Generation Gap.Marietta, Ga.: Longstreet Press, 1996.———. Mindstorms: Children, <strong>Computer</strong>s <strong>and</strong> Powerful Ideas. 2nded. New York: Basic Books, 1993.“Seymour Papert.” Available online. URL: http://www.papert.org/.Accessed May 6, 2007.parallel portThere are two basic ways to send data from a computer toa peripheral device such as a printer. A single wire can beused to carry the data one bit at a time (see serial port), ormultiple parallel wires can be used to send the bits <strong>of</strong> a dataword or byte simultaneously.Serial ports have the advantage <strong>of</strong> needing only one line(wire), but sending a byte (eight-bit word) requires waitingfor each <strong>of</strong> the eight bits to arrive in succession at the destination.With a parallel connection, however, the eight bits<strong>of</strong> the byte are sent simultaneously, each along its own wire,so parallel ports are generally faster than serial ports. Also,since the data is transmitted simultaneously, the protocolfor marking the beginning <strong>and</strong> end <strong>of</strong> each data byte is simpler.On the other h<strong>and</strong>, parallel cables are more expensive(since they contain more wires) <strong>and</strong> are generally limitedto a length <strong>of</strong> 10 feet or so because <strong>of</strong> electrical interferencebetween the parallel wires.The original parallel interface for personal computerswas designed by Centronics, <strong>and</strong> a later version <strong>of</strong> this 36-pin connector remains popular today. Later, IBM designed a25-pin version. In addition to the wires carrying data, additionalwires are used to carry control signals.Most modern parallel ports use two more advancedinterfaces, EPP (Enhanced Parallel Port) or ECP (ExtendedCapabilities Port). Besides allowing for data transmissionup to 10 times faster than the original parallel port, theseenhanced ports allow for bi-directional (two-way) communications.This means that a printer can send signals backto the PC indicating that it is low on toner, for example.Printer control s<strong>of</strong>tware running on the PC can thereforedisplay more information about the status <strong>of</strong> the printer<strong>and</strong> the progress <strong>of</strong> the printing job. Besides printers, theparallel interface has also been used to connect externalCD-ROM <strong>and</strong> other storage devices.Although early PCs <strong>of</strong>ten provided their parallel portconnectors on plug-in expansion cards, most PCs todayhave two parallel connectors built into the motherboard.In recent years the faster <strong>and</strong> more flexible Universal SerialBus (see USB) interface has increasingly replaced the parallelport for printers, scanners, digital cameras, externalstorage drives, <strong>and</strong> many other devices.Further ReadingParallel Port Central. Available online. URL: http://www.lvr.com/parport.htm. Accessed August 17, 2007.“Parallel Port Configuration.” Available online. URL: http://www.geocities.com/nozomsite/parallel.htm. Accessed August 17,2007.Tyson, Jeff. “How Parallel Ports Work.” Available online. URL:http://computer.howstuffworks.com/parallel-port.htm.Accessed August 17, 2007.parsingJust as a speaker or reader <strong>of</strong> English must be able to recognizethe significance <strong>of</strong> words, phrases, <strong>and</strong> other components<strong>of</strong> sentences, a computer program must be ableto “underst<strong>and</strong>” the statements, comm<strong>and</strong>s, or other inputthat it is called upon to process.For example, an interpreter for the BASIC language mustbe able to recognize thatPRINT “End <strong>of</strong> Run”contains a previously defined comm<strong>and</strong> or keyword(PRINT) <strong>and</strong> that the quote marks enclose a string <strong>of</strong> charactersthat are to be interpreted literally rather than st<strong>and</strong>ingfor something else. Once the type <strong>of</strong> element or dataitem is recognized, then the appropriate procedure can becalled upon for processing it. (See compiler <strong>and</strong> interpreter.)Similarly, a comm<strong>and</strong> processor (see shell) for an operatingsystem such as UNIX will look at a line <strong>of</strong> input suchasls -l /bin/MyProgs<strong>and</strong> recognize that ls is an executable utility program. Itwill pass the rest <strong>of</strong> the comm<strong>and</strong> line to the ls program,which is then executed. In turn, ls must parse its comm<strong>and</strong>line <strong>and</strong> recognize that -l is a particular option that controlshow the directory listing is displayed, <strong>and</strong> /bin/MyProgs isa pathname that specifies a particular directory location inthe file system.To parse its input, the language or comm<strong>and</strong> interpreterbegins by looking in the program language or comm<strong>and</strong>statement for tokens. (This process is called lexical analy-


parsing 361sis.) A token is normally defined as a series <strong>of</strong> one or morecharacters separated by “whitespace” (blanks, carriagereturns, <strong>and</strong> so on). A token is thus analogous to a word inEnglish.The series <strong>of</strong> tokens is then sent to the parser. The parser’sjob is to identify the significance <strong>of</strong> each token <strong>and</strong> togroup the tokens into properly formed statements. Generally,the parser first checks the tokens for keywords—wordssuch as “if” or “loop” that have a special meaning in aparticular programming language. (In the BASIC example,PRINT is a keyword: In many other languages such functionsare external rather than being part <strong>of</strong> the languageitself.) As keywords (<strong>and</strong> punctuation symbols such as thesemicolon used at the end <strong>of</strong> statements in C <strong>and</strong> Pascal)are identified, the parser uses a set <strong>of</strong> rules to determine theoverall structure <strong>of</strong> the statement. For example, a languagemight define an if statement as follows:If then else This means that when the parser encounters an “if” it willexpect to find between that word <strong>and</strong> “then” an expressionthat can be tested for being true or false (see Booleanoperators). Following “then,” it will expect to find a completestatement. If it finds the optional keyword “else,” thatword will be followed by an alternative statement. Thus inthe statementIf Total > Limit Print “Overflow” else PrintTotalThe elements would be broken down as follows:IfTotal > LimitPrint“Overflow”elsePrintTotalkeywordBoolean expressionkeywordString literal (charactersto be printed)keywordkeywordvariableWhen writing a parser, the programmer depends ona precise <strong>and</strong> exhaustive description <strong>of</strong> the possible legalconstructs in the language (see also Backus-Naur form).In turn, these rules are turned into procedures by whichthe parser can construct a representation <strong>of</strong> the relationshipsbetween the tokens. This representation is <strong>of</strong>ten representedas an upside-down tree, rather like the sentencediagrams used in English class.In general form, an expression, for example, can be diagrammedas consisting <strong>of</strong> one or more terms (variables,constants, or literal values) or other expressions separatedby operators.A parse tree for the statement A = B + C × D. Notice how theexpression on the right-h<strong>and</strong> side <strong>of</strong> the equals (assignment) sign iseventually parsed into the component identifiers <strong>and</strong> operators.Notice that these diagrams are <strong>of</strong>ten recursive. That is,the definition <strong>of</strong> an expression can include expressions.The number <strong>of</strong> levels that can be “nested” is usually limitedby the compiler if not by the definition <strong>of</strong> the language.The underlying rules must be constructed in such a waythat they are not ambiguous. That is, any given string <strong>of</strong>tokens must result in one, <strong>and</strong> only one parse tree.Once the elements have been extracted <strong>and</strong> classified,a compiler must also analyze the nonkeyword tokens tomake sure they represent valid data types, any variableshave been previously defined, <strong>and</strong> the language’s namingconventions have been followed (see compiler).Fortunately, people who are designing comm<strong>and</strong> processors,scripting languages, <strong>and</strong> other applications requiringparsers need not work from scratch. Tools such as YACC (agrammar definition compiler) <strong>and</strong> BISON <strong>and</strong> ANTLR (parsergenerators) are available for UNIX <strong>and</strong> other platforms.Further ReadingAho, Alfred V., et al. Compilers: Principles, Techniques, & Tools. 2nded. Boston: Pearson/Addison-Wesley, 2007.Bowen, Jonathan P., <strong>and</strong> Peter T. Breuer. “Razor: The Cutting Edge<strong>of</strong> Parser <strong>Technology</strong>.” Oxford University Computing Laboratory.Available online. URL: http://www.jpbowen.com/pub/toulouse92.pdf. Accessed August 17, 2007.Donnelly, Charles, <strong>and</strong> Richard M. Stallman. Bison Manual: Usingthe YACC-Compatible Parser Generator. Boston, Mass.: GNUPress, 2003.


362 PascalLevine, John R., Tony Mason, <strong>and</strong> Doug Brown. lex & yacc. Sebastapol,Calif.: O’Reilly, 1995.Louden, Kenneth C. Compiler Construction: Principles <strong>and</strong> Practice.Boston: PWS Publishing, 1997.Metsker, Steven John. Building Parsers with Java. Boston: Pearson/Addison-Wesley, 2001.PascalBy the early 1960s, computer scientists had become increasinglyconcerned with finding ways to better organize orstructure programs. Indeed, one language (see Algol) hadalready been developed in part to demonstrate <strong>and</strong> encouragesound programming practices, including the proper use<strong>of</strong> control structures (see loop <strong>and</strong> structured programming).However, Algol lacked a full range <strong>of</strong> data types<strong>and</strong> other features needed for practical programming, whilearguably being too complex <strong>and</strong> inconsistent to serve as agood teaching language.Niklaus Wirth at ETH (the Swiss Federal Institute <strong>of</strong><strong>Technology</strong>) worked during the mid-1960s with a committeethat was trying to overcome the problems with Algol<strong>and</strong> make the language more practical <strong>and</strong> attractive tocomputer manufacturers <strong>and</strong> users. However, Wirth graduallybecame disillusioned with the committee’s unwieldyresults, <strong>and</strong> proceeded to develop a new language, Pascal,announcing its specifications in 1970.Pascal both streamlined Algol <strong>and</strong> extended it. Besidesproviding support for character, Boolean, <strong>and</strong> set data types,Pascal allows users to define new data types by combiningthe built-in types. This feature is particularly useful fordefining a “record” type that, for example, might combinean employee’s name <strong>and</strong> job title (characters), ID number (along integer), <strong>and</strong> salary (a floating-point number). The rigoroususe <strong>of</strong> data types also extends to the way proceduresare called <strong>and</strong> defined (see procedures <strong>and</strong> functions).Pascal attracted much interest among computer scientists<strong>and</strong> educators by providing a well-defined languagein which algorithms could be expressed succinctly. Theacceptance <strong>of</strong> Pascal was also aided by its innovative compilerdesign. Unlike the machine-specific compilers <strong>of</strong> thetime, the Pascal compiler did not directly create machinecode. Rather, its output was “P-code,” a sort <strong>of</strong> abstractmachine language (see also pseudocode). A run-time systemwritten for each computer interprets the P-Code <strong>and</strong>executes the appropriate machine instructions. This meantthat Pascal compilers could be “ported” to a particularmodel <strong>of</strong> computer simply by writing a P-Code Interpreterfor that machine. This strategy would be used more thantwo decades later by the creators <strong>of</strong> a popular language forWeb applications (see Java).Structure <strong>of</strong> a Pascal ProgramThe following simple program illustrates the basic structure<strong>of</strong> a program in Pascal. (The words in bold type are keywordsused to structure the program.) The program beginswith a Type section that declares user-defined data types.These can include arrays, sets, <strong>and</strong> records (composite typesthat can include several different basic types <strong>of</strong> data). Herean array <strong>of</strong> up to 10 integers (whole numbers) is defined as atype called IntList.The Var (variable) section then declares specific variablesto be used by the program. Variables can be definedusing either the language’s built-in types (such as integer)or types previously defined in the Type section. An importantcharacteristic <strong>of</strong> Pascal is that user-defined types mustbe defined before they can be used in variable declarations,<strong>and</strong> variables in turn must be declared before they can beused in the program. Some programmers found this strictnessto be confining, but it guards against, for example, atypographical error introducing an undefined variable inplace <strong>of</strong> the one intended. Today most languages enforcethe declaration <strong>of</strong> variables before use.The word begin introduces the executable part <strong>of</strong> theprogram. The variables needed for the loop are first initializedby assigning them a value <strong>of</strong> zero. Note that in Pascal :=(colon <strong>and</strong> equals sign) is used to assign values. The outer ifstatement is used to ensure that the user does not input aninvalid number <strong>of</strong> items. The for loop then reads each inputvalue, assigns it to its place in the array, <strong>and</strong> keeps a runningtotal. That total is then used to compute the average,which is output by the writeln (write line) statement.program FindAvg (input, output);type IntList = array [1 . . 10] <strong>of</strong> integer;varInts: IntList;Items, Count, Total, Average: integer;beginAverage := 0;Total := 0;Readln (Items);If ((Items > 0) <strong>and</strong> (Items


pattern recognition 363Turbo Pascal. This compiler used direct compilation ratherthan P-Code, sacrificing portability for speed <strong>and</strong> efficiency.It included an integrated programming environment thatmade development much cheaper <strong>and</strong> easier than withexisting “bulky” <strong>and</strong> expensive compilers such as thosefrom Micros<strong>of</strong>t. Turbo became very popular <strong>and</strong> eventuallyincluded language extensions that supported objectorientedprogramming. But Pascal became best known inits role as a first language for teaching programming <strong>and</strong> forexpressing algorithms.However, by 1990 the tide had clearly turned in favor<strong>of</strong> C <strong>and</strong> C++. These languages used a more cryptic syntaxthan Pascal <strong>and</strong> lacked the latter’s rigorous data typingmechanism. Systems programmers in particular preferredC’s ability to get “close to the machine” <strong>and</strong> manipulatememory directly without being confined by type definitions.C had also received a big boost because its developerswere also among the key developers <strong>of</strong> UNIX, a very popularoperating system in campus computing environments.During the 1990s, C, C++, <strong>and</strong> Java even began to supplantPascal for computer science instruction. Nevertheless,by encouraging structured programming concepts <strong>and</strong> helpingeducate a generation <strong>of</strong> computer scientists, Pascal madea lasting impact on the computer field. Wirth continued hiswork with the development <strong>of</strong> Modula-2 <strong>and</strong> Oberon, whichwere confined mainly to the academic world. However, Pascalalso was a major influence on the development <strong>of</strong> Ada, alanguage endorsed by the U.S. federal government that combinesstructured programming with object-oriented features<strong>and</strong> the ability to manage extensive packages <strong>of</strong> routines(see Ada).Further ReadingFree Online Pascal <strong>and</strong> Delphi Tutorials <strong>and</strong> Documentation.Available online. URL: http://www.thefreecountry.com/documentation/onlinepascal.shtml. Accessed August 17, 2007.Free Pascal Compiler. http://www.freepascal.org/Jensen, Kathleen, Niklaus Wirth, <strong>and</strong> A. Mickel. Pascal UserManual <strong>and</strong> Report: ISO Pascal St<strong>and</strong>ard. 4th ed. New York:Springer-Verlag, 1991.K<strong>of</strong>fman, Elliot B. Turbo Pascal. 5th update ed. Reading, Mass.:Addison-Wesley, 1997.Rachele, Warren. Learn Object Pascal with Delphi. Plano, Tex.:Wordware Publishing, 2000.Wirth, Niklaus. Programming in Modula-2. 3rd, corr. ed. New York:Springer-Verlag, 1985.pattern recognitionAfter many years <strong>of</strong> effort researchers have been able tocreate systems that can recognize particular human faces(see computer vision). On the other h<strong>and</strong>, any normalsix-month-old child can effortlessly recognize familiarfaces (such as parents). The fundamental task <strong>of</strong> turningraw data (whether from senses, instruments, or computerfiles) into recognizable objects or drawing inferences iscalled pattern recognition. Pattern recognition is at theheart <strong>of</strong> many areas <strong>of</strong> research <strong>and</strong> application in computing(see artificial intelligence <strong>and</strong> data mining).Despite the challenge in getting machines to do whatcomes naturally for biological organisms, the potentialpay<strong>of</strong>fs are immense.A pattern-recognition system begins with data, whetherstored or real-time (such as from a robot’s camera). The firsttask in turning potentially billions <strong>of</strong> bytes <strong>of</strong> data intomeaningful objects is to extract features from what is likelya high proportion <strong>of</strong> redundant or irrelevant data. (Withvisual images, this <strong>of</strong>ten involves finding edges that defineshapes.) The extracted features are then classified to determinewhat objects they might represent. This can be doneby comparing structures to templates or previously classifieddata or by applying statistical analysis to determine thelikely correlation <strong>of</strong> the new data to existing patterns (seeBayesian analysis).Pattern recognition <strong>of</strong>ten includes learning algorithmsas well; indeed, the field is <strong>of</strong>ten considered to be a subtopic<strong>of</strong> machine learning. For example, classification systemscan be refined by “training” them <strong>and</strong> reinforcing successfuldeterminations (see neural network).ApplicationsThere are numerous applications <strong>of</strong> pattern recognition,<strong>of</strong>ten as part <strong>of</strong> intelligent systems used in such areas as linguistics(see language translation s<strong>of</strong>tware), communications,intelligence <strong>and</strong> surveillance, identity verification(see biometrics), <strong>and</strong> the analysis <strong>of</strong> credit card transactionpatterns for signs <strong>of</strong> fraud. Some examples are shown in thefollowing table:Data Procedures Resultsspeech phonemes, transition textrulesh<strong>and</strong>written character classification identifiedaddresspostal addressh<strong>and</strong>written character classification identify amount <strong>of</strong>check (ATM)depositgeneral text grammar <strong>and</strong> syntax structure <strong>and</strong>meaninge-mail identify characteristics spam detectionBayesian filterfacial image feature templates, identified personstatisticsbiometric feature extraction <strong>and</strong> verified identity(retina, finger- template comparisonprint, etc.)Further ReadingBishop. Christopher M. Pattern Recognition <strong>and</strong> Machine Learning.New York: Springer, 2006.Duda, Richard O., Peter E. Hart, <strong>and</strong> David G. Stork. Pattern Classification.New York: Wiley, 2001.International Association <strong>of</strong> Pattern Recognition. Available online.URL: http://www.iapr.org/. Accessed November 3, 2007.Pattern Recognition. American Association for Artificial Intelligence.Available online. URL: http://www.aaai.org/AITopics/html/pattern.html. Accessed November 4, 2007.Recognition <strong>Technology</strong> <strong>and</strong> Pattern Analysis. Available online.URL: http://alumnus.caltech.edu/~dave/pattern.html. AccessedNovember 4, 2007.


364 PDATheodoridis, Sergios, <strong>and</strong> Konstantinos Koutroumbas. Pattern Recognition.3rd ed. San Diego, Calif.: Academic Press, 2006.PDA (personal digital assistant)The first stage in making computing available away fromthe <strong>of</strong>fice desk was the development <strong>of</strong> “portable” <strong>and</strong> thenlaptop computers in the 1980s (see laptop computer).Laptops, however, are relatively heavy <strong>and</strong> bulky, <strong>and</strong> thusnot suitable for activities such as making notes at meetingsor keeping track <strong>of</strong> appointments while on the go.The logical solution to that need was to develop a computersmall enough to carry in a pocket or purse. The firsth<strong>and</strong>held computer to achieve widespread recognition wasApple’s Newton, which the company referred to as a “personaldigital assistant.” This term, usually abbreviated toPDA, became a generic category with the introduction <strong>of</strong>the Palm Pilot, which first appeared in 1996, followed bythe seemingly ubiquitous RIM Blackberry in 1999.Features <strong>and</strong> UsesModern PDAs have sharp, readable displays, even given thelimited screen size. The role <strong>of</strong> the mouse is taken by navigationbuttons, <strong>and</strong> the ability to select items on the screenby touch or using a stylus (see touchscreen). (Some PDAsinclude small keyboards that can be typed on using tw<strong>of</strong>ingers or thumbs.) The operating system (such as Palm OS,Windows Mobile, or even Linux) is in read-only memory,<strong>and</strong> working memory is provided, exp<strong>and</strong>able through theuse <strong>of</strong> SD (Secure Digital) or Compact Flash memory cards.Wireless connectivity provides access to the Internet <strong>and</strong>for transferring data between the PDA <strong>and</strong> a regular PC (seeBluetooth <strong>and</strong> wireless <strong>and</strong> mobile computing). A synchronizationprogram installed on the PC can be used toensure that the latest version <strong>of</strong> each file will be stored onboth devices. (This also allows larger programs on the PCto work on <strong>and</strong> update data from the PDA—see personalinformation manager.)Typical PDA applications include an appointment calendar,address book for contacts, a simple note-taking program(see h<strong>and</strong>writing recognition), <strong>and</strong> increasingly,e-mail <strong>and</strong> a special Web browser designed for small displays.Many PDAs can also use their Bluetooth connectionto place calls through suitably equipped cellphones.PDAs can also be used for specialized applications thatinvolve the need to receive or update data while driving orwalking. Examples include navigation (with the use <strong>of</strong> aGPS device), delivery services, warehouse inventory management,reading utility meters, taking orders electronicallyin restaurants, <strong>and</strong> maintaining patient records in hospitals.Besides allowing for the recording <strong>of</strong> data, PDAs canalso include task-specific references such as prescriptiondrug databases or a medical dictionary.As with many other things in computing, the boundaries<strong>of</strong> the PDA category are becoming more fluid. Whiles<strong>of</strong>tware-enhanced mobile phones evolved separately (seesmartphone), PDA increasingly functions <strong>and</strong> telephonyare being seamlessly integrated into a single device, as withPalm’s Treo <strong>and</strong> especially Apple’s 2007 introduction <strong>of</strong> theiPhone, which also introduced an innovative “multitouch”interface that can respond to natural finger gestures such asflicking, sliding, or pinching.Further ReadingAl-Ubaydli, Mohammad. The Doctor’s PDA <strong>and</strong> Smartphone H<strong>and</strong>book:A Guide to H<strong>and</strong>held Healthcare. London: Royal Society<strong>of</strong> Medicine Press, 2006.Carlson, Jeff, <strong>and</strong> Agen G. N. Schmitz. Palm Organizers. 4th ed.Berkeley, Calif.: Peachpit Press, 2004.Hormby, Tom. “Early History <strong>of</strong> Palm.” Silicon User. Availableonline. URL: http://siliconuser.com/?q=node/17. AccessedNovember 4, 2007.Kao, Robert, <strong>and</strong> Dante Sarigumba. BlackBerry for Dummies. NewYork: Wiley, 2007.Palm. Available online. URL: http://www.palm.com/us/. AccessedNovember 4, 2007.PDA Reviews. Brighth<strong>and</strong>. Available online. URL: http://www.brighth<strong>and</strong>.com/. Accessed November 4, 2007.RIM (Research in Motion). Available online. URL: http://www.rim.com/. Accessed November 4, 2007.PDF (portable document format)The PDF (portable document format) created by Adobe Systemshas become a very common way to make documentsavailable in a way that preserves the appearance <strong>of</strong> theoriginal.When PDF first came out in the early 1990s it was notvery suitable for use on the Web. PDF documents couldonly be viewed using expensive proprietary s<strong>of</strong>tware, theycould not include embedded links (<strong>and</strong> thus could not behypertext), <strong>and</strong> they were large enough to be slow for downloadingon the dial-up connections <strong>of</strong> the time.All this had changed by the end <strong>of</strong> the decade: Adobedistributes the free Adobe Reader <strong>and</strong> plug-ins for all majorplatforms <strong>and</strong> browsers.OperationThe PDF specifications are open source, so anyone canwrite s<strong>of</strong>tware to create or read documents in the format.PDF includes three elements: a subset <strong>of</strong> the PostScript pagedescription language (see PostScript), a system for specifying<strong>and</strong> embedding common fonts (or referring to otherfonts), <strong>and</strong> a system for “packaging” the text <strong>and</strong> graphicsdescriptions into a file in compressed form. Later versions<strong>of</strong> the PDF specification also allow users to interact withthe document, such as by filling in fields in a form or addingannotations to the text. PDF also includes support fortags (see xml) <strong>and</strong> descriptors that can be used with programssuch as screen readers for the blind.PDF also includes support for encrypting documents sothey can only be read with a password, <strong>and</strong> for controllingwhether the document can be copied or printed, though thisdepends on the user’s s<strong>of</strong>tware underst<strong>and</strong>ing <strong>and</strong> obeyingthe restrictions.Although creating <strong>and</strong> editing PDF documents originallyrequired the relatively expensive Adobe Acrobat s<strong>of</strong>tware,there are now a number <strong>of</strong> free or low-cost editors<strong>and</strong> other PDF utilities for Windows, Mac OS X, <strong>and</strong> Linux/UNIX platforms.


Perl 365Further ReadingAdobe Creative Team. Adobe Acrobat 8 Classroom in a Book. SanJose, Calif.: Adobe Press, 2007.Adobe Reader (free download). Available online. URL: http://www.adobe.com/products/acrobat/readstep2_allversions.html.Accessed November 4, 2007.Lowagie, Bruno. iText in Action: Creating <strong>and</strong> Manipulating PDF.New York: Manning Publications, 2007.Padova, Ted. Adobe Acrobat 8 PDF Bible. Indianapolis: Wiley, 2007.Planet PDF: The Home <strong>of</strong> the PDF Community. Available online.URL: http://www.planetpdf.com/. Accessed November 4,2007.PerlThe explosive growth <strong>of</strong> the World Wide Web has confrontedprogrammers with the need to find ways to linkdatabases <strong>and</strong> other existing resources to Web sites. Thespecifications for such linkages are found in the CommonGateway Interface (see CGI). However, the early facilitiesfor writing CGI scripts were awkward <strong>and</strong> <strong>of</strong>ten frustratingto use.Back in 1986, UNIX developer Larry Wall had created alanguage called Perl (Practical Extraction <strong>and</strong> Report Language).There were already ways to write scripts for simpledata processing (see scripting languages) as well as ah<strong>and</strong>y pattern-manipulation language (see awk). However,Wall wanted to provide a greater variety <strong>of</strong> functions <strong>and</strong>techniques for finding, extracting, <strong>and</strong> formatting data. Perlattracted a following within the UNIX community. Sincemuch Web development was being done on UNIX-basedsystems by the mid- <strong>and</strong> late-1990s, it was natural thatmany webmasters <strong>and</strong> applications programmers wouldturn to Perl to write their CGI scripts.As with many UNIX scripting languages, Perl’s syntaxis broadly similar to C. However, the philosophy behindC is to provide a sparse core language with most functionalitybeing h<strong>and</strong>led by st<strong>and</strong>ard or add-in programlibraries. Perl, on the other h<strong>and</strong>, starts with most <strong>of</strong> thefunctionality <strong>of</strong> UNIX utilities such as sed (stream editor),C shell, <strong>and</strong> awk, including the powerful regular expressionsfamiliar to UNIX users. The language also includesa “hash” data type (a collection <strong>of</strong> paired keys <strong>and</strong> values)that makes it easy for a program to maintain <strong>and</strong> checklists such as <strong>of</strong> Internet hosts <strong>and</strong> their IP addresses (seehashing).Wall made it a point to solicit <strong>and</strong> respond to feedbackfrom Perl users, <strong>of</strong>ten by adding features or functions.Wall’s approach has been to provide as much practical helpfor programmers as possible, rather than worrying aboutthe language being well-defined, consistent, <strong>and</strong> thus easyto learn. For example, in most languages, to make somethinghappen only if a certain condition is not true, onewrites something like this:If ! (test for valid data)Print Error-Msg;Else Process_Data;In Perl, however, one can use the “unless” clause. Itlooks like this:Unless (Test for invalid data) {Process_Data;}Syntactically, the unless clause does not provide anythingmore than using an If <strong>and</strong> Else would, <strong>and</strong> it involves learninga different structure. However, it has the practical benefit<strong>of</strong> making the program a little easier to read by keeping theemphasis on what the program expects to be doing, not onthe possible error. Similarly, Perl <strong>of</strong>fers an “until” loop:Until (Condition is met) {Do something;}In C, one would have to sayWhile (Condition is not met) {Do something;}This “Swiss army knife” approach to providing languagefeatures has been criticized by some computer scientistsas encouraging undisciplined <strong>and</strong> hard-to-verify programming.However, Perl’s many aficionados see the languageas the versatile, essential toolbox for the ever-challengingworld <strong>of</strong> Web programming. As the language evolvedthrough the late 1990s, it also added a full set <strong>of</strong> object-orientedfeatures (see object-oriented programming).Sample Perl ProgramThe following very simple code illustrates a Perl programthat reads some lines <strong>of</strong> data from a file <strong>and</strong> prints themout. The first line tells UNIX to execute the Perl interpreter.The file name data.txt is assigned to the string variable$file. The file is then opened <strong>and</strong> assigned to the variableINFO. A single statement (not a loop) suffices to assign allthe lines in the file to the array @lines. The “foreach” statementis a compact form <strong>of</strong> For loop that assigns each linein the array to the string variable $line <strong>and</strong> then prints it tothe screen as HTML.#!/usr/local/bin/perl$file = ’data.txt’;open(INFO, “


366 personal computerConway, Damian. Perl Best Practices. Sebastapol, Calif.: O’Reilly,2005.Lee, James. Beginning Perl. 2nd ed. Berkeley, Calif.: Apress, 2004.Schwartz, R<strong>and</strong>all L., Tom Phoenix, <strong>and</strong> Brian D. Foy. LearningPerl. 4th ed. Sebastapol, Calif.: O’Reilly, 2005.Wall, Larry, Tom Christiansen, <strong>and</strong> Jon Orwant. ProgrammingPerl. 3rd ed. Sebastapol, Calif.: O’Reilly, 2000.personal computer (PC)The development <strong>of</strong> the “computer chip” (see microprocessor)<strong>and</strong> the increasing use <strong>of</strong> integrated circuit technologymade it possible by the mid-1970s to begin to think aboutdesigning small computers as <strong>of</strong>fice machines or consumerdevices that could be individually owned or used. In abouta decade the personal computer, or PC, would become wellestablished in many businesses <strong>and</strong> a growing number <strong>of</strong>homes. After another decade, it became almost as ubiquitousas TV sets <strong>and</strong> microwaves. Parallel developmentsin hardware, s<strong>of</strong>tware, operating systems, <strong>and</strong> accessorydevices made this revolution possible.The first commercial “personal computer” was the MITSAltair, a microcomputer kit built around an Intel 8080microprocessor. Building the kit required considerableskill with electronics assembly, but enthusiasts (includinga young Bill Gates) were soon writing s<strong>of</strong>tware <strong>and</strong> designingadd-on modules for the kit (see Gates, William). Avariety <strong>of</strong> publications, notably Byte magazine, as well asthe Homebrew <strong>Computer</strong> Club gave hobbyists a forum forsharing ideas.By the late 1970s, personal computing was starting tobecome accessible to the general public. The Altair enthusiastshad moved on to more powerful systems that <strong>of</strong>feredsuch amenities as floppy disk drives <strong>and</strong> an operating system(CP/M, developed by Gary Kildall). Meanwhile, lesstechnically experienced people could also begin to experimentwith personal computing, thanks to the complete,ready-to-run PCs being <strong>of</strong>fered by Radio Shack (TRS-80),Commodore (Pet), <strong>and</strong> in particular, the Apple II.In order to make serious inroads into the businessworld, however, the PC needed useful, reliable s<strong>of</strong>tware.WordStar <strong>and</strong> later WordPerfect made it possible to replaceexpensive special-purpose word processing machines (suchas those made by Wang) with the more versatile PC. One <strong>of</strong>the biggest spurs to business use <strong>of</strong> PCs, however, was anentirely new category <strong>of</strong> s<strong>of</strong>tware—the spreadsheet. DanBricklin’s VisiCalc (see spreadsheet) would make the PCattractive to accountants <strong>and</strong> corporate planners.The watershed year in personal computing was 1981because it brought the computer giant IBM into the PCarena (see IBM pc). The IBM PC had a somewhat morepowerful processor <strong>and</strong> could hold more memory than theApple II, but its main advantage was that it was backedby IBM’s decades-long reputation in <strong>of</strong>fice machines. Businesseswere used to buying IBM products, <strong>and</strong> conversely,many corporate buyers believed that if IBM was <strong>of</strong>feringdesktop computers, then PCs must be useful businessmachines.IBM (like Apple) had adopted the idea <strong>of</strong> open architecture—theability for third companies to make plug-in cardsto add functions to the machine. Thus, the IBM PC becamethe platform for a burgeoning hardware industry. Further, itturned out that other companies could reverse-engineer theinternal code that ran the system hardware (see bios) withoutinfringing IBM’s legal rights. This meant that companiescould make “clones” or IBM-compatible machines that couldrun the same s<strong>of</strong>tware as the genuine IBM PC. The first clonemanufacturers (such as Compaq) sometimes improved uponIBM such as by <strong>of</strong>fering better graphics or faster processors.However, by the late 1980s the trend was toward companiescompeting through lower prices for roughly equivalentperformance. Facing a declining market share, IBM triedto introduce a new architecture, called microchannel, thatprovided a mainframelike bus architecture for more efficientinput/output control. However, whatever technical advantagesthe new system (called PS/2) might have, the marketvoted against it by continuing to buy the ever more powerfulclones built on the original IBM architecture.Lower prices <strong>and</strong> more attractive options led to a growingnumber <strong>of</strong> users, which in turn encouraged greaterinvestment in s<strong>of</strong>tware development. By the mid-1980s,Lotus (headed by Mitch Kapor) dominated the spreadsheetmarket with its Lotus 1-2-3, while WordPerfect dominatedin word processing.However, Micros<strong>of</strong>t, whose MS-DOS (or PC-DOS) hadbecome the st<strong>and</strong>ard operating system for IBM-compatiblePCs, introduced a new operating environment with agraphical user interface (see Micros<strong>of</strong>t Windows). By themid-1990s, Windows had largely supplanted DOS. Micros<strong>of</strong>talso committed resources <strong>and</strong> exploited its intimateknowledge <strong>of</strong> the operating system to achieve dominance in<strong>of</strong>fice s<strong>of</strong>tware through MS Word, MS Excel (spreadsheet),<strong>and</strong> MS Access (database).At the margins Apple’s Macintosh (introduced in 1984<strong>and</strong> steadily refined) has retained a significant following,particularly in education, publishing, <strong>and</strong> graphic artsapplications (see Macintosh). Although Windows nowprovides a similar user interface, Mac enthusiasts believetheir machine is still easier to use (<strong>and</strong> more stylish), <strong>and</strong><strong>of</strong>ten see it as a badge for those who “think different.”PC TrendsWhen graphical Web browsing made the Internet widelyaccessible in the mid-1990s, the dem<strong>and</strong> for PCs increasedaccordingly. The desire for e-mail, Web browsing, <strong>and</strong> helpwith children’s homework led many families to purchasetheir first PCs. By 2000, about two-thirds <strong>of</strong> Americanchildren had access to computers at home, <strong>and</strong> virtuallyall schools had at least some PCs in the classroom. Usingsophisticated manufacturing <strong>and</strong> order processing systems,companies such as Dell <strong>and</strong> Gateway sell PCs directly toconsumers <strong>and</strong> businesses, largely displacing the neighborhoodcomputer store. These efficiencies (<strong>and</strong> lower pricesfor memory, processors, <strong>and</strong> other hardware) have broughtthe cost for a basic home PC down to less than $500, whilethe capabilities available for those willing to spend $1,500or so continued to increase. PC users now expect to be ableto play CD- <strong>and</strong> DVD-based multimedia while hearing goodquality sound.


personal health information management 367A number <strong>of</strong> challenges to the growth <strong>of</strong> the PC industryhave also emerged. As more <strong>and</strong> more <strong>of</strong> the activity <strong>of</strong>PC users began to focus on the Internet, some companiesbegan to host <strong>of</strong>fice applications on servers (see applicationservice provider). Some pundits began to say thatwith applications being moved to remote servers or <strong>of</strong>feredover the corporate LAN, the PC on the desk could bestripped down considerably. The “network PC” could makedo with a slower processor, less memory, <strong>and</strong> no hard drive,since all data could be stored on the server.Generally, however, the attempts to supplant the fullfeatured,general-purpose PC have made little progress.One reason is that the cost <strong>of</strong> complete PC has declined somuch that the supposed cost savings <strong>of</strong> a network PC orInternet appliance have become less significant. Further,privacy issues <strong>and</strong> the desire <strong>of</strong> people to have controlover their own data are <strong>of</strong>ten cited as arguments in favor<strong>of</strong> the PC.Ironically, the PC industry’s greatest challenge maycome from its very success. As more <strong>and</strong> more householdsin the United States <strong>and</strong> other developed countries havePCs, it becomes harder to maintain the sales rate. By theearly 2000s, the power <strong>of</strong> recent PCs had become so greatthat the desire to upgrade every few years may have becomeless compelling <strong>and</strong> the recent economic downturn has hitthe computer industry particularly hard. So far it looks likethe fastest-growing areas in computer hardware no longerinvolve the traditional desktop PC, but h<strong>and</strong>held (palm)computers (see PDA) <strong>and</strong> the embedding <strong>of</strong> more powerfulcomputer capabilities into other machines such as automobiles(see embedded systems).Further ReadingFreiberger, Paul, <strong>and</strong> Michael Swaine. Fire in the Valley: The Making<strong>of</strong> the Personal <strong>Computer</strong>. New York: McGraw-Hill, 1999.Long, Larry. Personal Computing Demystified. Emeryville, Calif.:McGraw-Hill/Osborne, 2004.Polsson, Ken. “Chronology <strong>of</strong> Personal <strong>Computer</strong>s.” Availableonline. URL: http://www.isl<strong>and</strong>net.com/~kpolsson/comphist/.Accessed August 17, 2007.Thompson, Robert, <strong>and</strong> Barbara Fritchman Thompson. Buildingthe Perfect PC. Sebastapol, Calif.: O’Reilly, 2006.———. Repairing <strong>and</strong> Upgrading Your PC. Sebastapol, Calif.:O’Reilly, 2006.White, Ron, <strong>and</strong> Timothy Edward Downs. How <strong>Computer</strong>s Work.8th ed. Indianapolis: Que, 2005.personal health information managementHealth care is at once a complex endeavor with many players,a vast industry, <strong>and</strong> a major expense <strong>of</strong> individuals,businesses, <strong>and</strong> governments. At the center <strong>of</strong> it all st<strong>and</strong>sthe prospective patient (or consumer) seeking to maintainor restore health.While the health care industry has long been a majoruser <strong>of</strong> computer technology (see medical applications<strong>of</strong> computers), the modern Web has brought a variety <strong>of</strong>services (many free) that can help health care consumerslearn more about conditions <strong>and</strong> treatments <strong>and</strong> comparehospitals, doctors, <strong>and</strong> other providers.Medical Information SitesIn today’s health care environment patients <strong>of</strong>ten have onlya few minutes to ask their doctor important questions abouttheir condition <strong>and</strong> possible treatments. Patients <strong>of</strong>ten feelthey have been left on their own when it comes to obtainingdetailed information. According to surveys by the PewInternet & American Life Project, by the end <strong>of</strong> 2005 about20 percent <strong>of</strong> Web users were reporting that the Internet“has greatly improved the way they get information abouthealth care.” Further, 7 million users had reported thatWeb sites had “played a crucial or important role in copingwith a major illness.”A variety <strong>of</strong> Web sites ranging from comprehensive <strong>and</strong>excellent to dubious (at best) <strong>of</strong>fer health-related information.In evaluating them, it is important to determine whosponsors the site <strong>and</strong> what is the source <strong>of</strong> the informationprovided. The very extensive WebMD site, for example, isreviewed for accuracy by an independent panel <strong>of</strong> experts.One <strong>of</strong> the foremost medical institutions, the Mayo Clinic,also has an authoritative site. The site OrganizedWisdom.com <strong>of</strong>fers a search engine that emphasizes informationthat has been reviewed by doctors for accuracy, while eliminatinglow-quality or duplicative results.Even if information is accurate, however, users may<strong>of</strong>ten lack the necessary background or context for interpretingit correctly. Underst<strong>and</strong>ing the results <strong>of</strong> medicalstudies, for example, requires some knowledge <strong>of</strong> how studiesare designed, the population used, <strong>and</strong> the statisticalsignificance <strong>and</strong> applicability <strong>of</strong> the results. As a practicalmatter, therefore, patients should not make any major decisionsabout diet, medication, or treatment options withoutconsulting a medical pr<strong>of</strong>essional. Attempts at self-diagnosiscan be particularly problematic.Support Groups <strong>and</strong> Provider RatingsOn the other h<strong>and</strong>, carefully chosen online information canbe very useful <strong>and</strong> can even improve outcomes. Patients canlearn what questions to ask their physicians, <strong>and</strong> may evenbe able to suggest relevant information <strong>of</strong> which the physicianis unaware.During treatment, patients can find emotional <strong>and</strong>practical support online. In keeping with the trend towardonline social cooperation (see social networking <strong>and</strong>user-created content) a number <strong>of</strong> sites are helping consumersfind or create support groups. Such groups havelong been important, particularly for patients with conditionssuch as cancer or serious chronic disease. For example,DailyStrength.org <strong>of</strong>fers 500 online support groups for agreat variety <strong>of</strong> conditions. Users can create online journalsto describe their daily struggles <strong>and</strong> can send supportivemessages <strong>and</strong> “hugs.” According to a 2007 report by the PewInternet & American Life Project, about half <strong>of</strong> adults withchronic conditions use the Internet regularly <strong>and</strong> extensivelyto help them manage their treatment <strong>and</strong> life issues.Selecting a compatible medical pr<strong>of</strong>essional is anotherarea where online sites can help prospective patients. Userratings have proven helpful on Amazon.com <strong>and</strong> other sitesfor a variety <strong>of</strong> products <strong>and</strong> services (for example, Yelp.com <strong>and</strong> the popular Angie’s List). A site called RateMDs.


368 personal information managercom has applied the same mechanism to allow patients toanonymously rate their doctors. (As with other user-providedreviews, however, one needs to be aware <strong>of</strong> the possibilitythat the reviews do not constitute a representativesample <strong>of</strong> consumer experience.) Patients can also personallyshare their experiences via a YouTube-like site calledICYou.com.Although social networking <strong>and</strong> content-sharing siteshave been most popular among the younger generation,the increasing adoption <strong>of</strong> these venues by older adults<strong>and</strong> seniors is likely to fuel growth in online health-relatedservices in years to come, as is the continuing need to findcost-effective ways <strong>of</strong> serving growing patient populations.Further ReadingColliver, Victoria. “For These Startups, Patients Are a Virtue.”San Francisco Chronicle, October 1, 2007, p. C1. Availableonline. URL: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/10/01/BUDKSGAF4.DTL. Accessed November 5, 2007.Cullen, Rowena. Health Information on the Internet: A Study <strong>of</strong> Providers,Quality, <strong>and</strong> Users. Westport, Conn.: Praeger, 2006.DailyStrength. Available online. URL: http://dailystrength.org/.Accessed November 5, 2007.Fox, Susannah. “E-Patients with a Disability or Chronic Disease.”Pew Internet & American Life Project, October 8, 2007.Available online. URL: http://www.pewinternet.org/pdfs/EPatients_Chronic_Conditions_2007.pdf. Accessed November6, 2007.Lewis, Deborah, et al., eds. Consumer Health Informatics: InformingConsumers <strong>and</strong> Improving Health Care. New York: Springer,2005.Madden, Mary, <strong>and</strong> Susannah Fox. “Finding Answers Onlinein Sickness <strong>and</strong> in Health.” Pew Internet & American LifeProject. Available online. URL: http://www.pewinternet.org/pdfs/PIP_Health_Decisions_2006.pdf. Accessed November6, 2007.Mayo Clinic. Available online. URL: http://www.mayoclinic.com/.Accessed November 5, 2007.Organized Wisdom. Available online. URL: http://organizedwisdom.com/. Accessed November 5, 2007.RateMDs.com. Available online. URL: http://www.ratemds.com.Accessed November 5, 2007.WebMD. Available online. URL: http://www.webmd.com/. AccessedNovember 5, 2007.personal information manager (PIM)A considerable amount <strong>of</strong> the working time <strong>of</strong> most businesspeopleis taken up not by primary business tasks butin keeping track <strong>of</strong> contacts, phone conversations, notes,meetings, deadlines, <strong>and</strong> other information needed to planor coordinate activities. S<strong>of</strong>tware designers have respondedto this reality by creating s<strong>of</strong>tware to help manage personalinformation.Early PC users improvised ways <strong>of</strong> using available s<strong>of</strong>twareapplications for tracking their activities. For example,a spreadsheet with text fields might be used to record<strong>and</strong> sort contacts <strong>and</strong> their associated information suchas phone numbers or data could be organized in tables inword processor documents. However, such improvisationscan be awkward to use. Loading a full-sized word processoror spreadsheet application takes time (<strong>and</strong> until Windows<strong>and</strong> other multitasking solutions came along, only one programcould be run at a time). Further, it is hard to integrateinformation or keep track <strong>of</strong> the “big picture” with severaldifferent kinds <strong>of</strong> information stored in different formatswith different programs.What was needed was a single application that couldintegrate the personal information <strong>and</strong> make it accessiblewithout the user having to shut down the main applicationprogram. The first successful PIM was Borl<strong>and</strong> Sidekick,first released in 1984. Although MS-DOS was designed torun only a single program at a time, it had an obscure featurethat allowed additional small programs to be loadedinto memory where they could be triggered using a keycombination. Taking advantage <strong>of</strong> this feature, Sidekickallowed someone while using, for example, a word processor,to pop up a note-taking window, an address book, calendar,telephone dialer, calculator, or other features. WhenMicros<strong>of</strong>t Windows replaced DOS, it became possible torun more than one full-fledged application at a time. PIMscould then become full-fledged applications in their ownright, <strong>and</strong> <strong>of</strong>fer additional features.As e-mail became more common on local networks inthe later 1980s <strong>and</strong> via the Internet in the 1990s, PIM featuresbegan to be integrated with e-mail programs suchas Micros<strong>of</strong>t Outlook <strong>and</strong> Netscape Navigator’s communicationsfacilities. New features included the automaticcreation <strong>of</strong> journal entries from various activities <strong>and</strong> thecreation <strong>of</strong> “rules” for recognizing <strong>and</strong> routing e-mail messageswith particular senders or subjects. A variety <strong>of</strong> freeware<strong>and</strong> shareware PIMs are available for users who wantan alternative to the commercial products, <strong>and</strong> a number <strong>of</strong>PIMs are available for Macintosh <strong>and</strong> Linux-based systems.Web-based personal information management tools canmake it particularly easy to coordinate a widely scatteredworkforce, since each user merely has to access the servingWeb site. Recently, low-cost (or even free) Web-based applicationsthat include PIM as well as productivity featureshave been introduced—for example, Google Apps.The growth <strong>of</strong> h<strong>and</strong>held (or palm) computers (see PDA)<strong>and</strong> more sophisticated cell phones has created a need toprovide PIM features for these devices (see smartphone).Since the capacity <strong>of</strong> h<strong>and</strong>held devices is limited comparedto desktop PCs, there is also a need for s<strong>of</strong>tware to alloweasy transfer <strong>of</strong> information between portable devices <strong>and</strong>desktop PCs. This can be done with a serial, USB, or evenwireless connection.In the future, the PIM is likely to become an integratedsystem that operates on a variety <strong>of</strong> h<strong>and</strong>held <strong>and</strong> desktopdevices <strong>and</strong> seamlessly maintains all information regardless<strong>of</strong> how it is received. There will also be greater abilityto give voice comm<strong>and</strong>s (such as to dial a person or to askfor information about a contact), <strong>and</strong> to have messages readaloud (see speech recognition <strong>and</strong> synthesis). The s<strong>of</strong>twareis also likely to include sophisticated “agents” that canbe instructed to carry out such tasks as prioritizing messagesor returning routine calls (see s<strong>of</strong>tware agent).Further ReadingBoyce, Jim, Beth Sheresh, <strong>and</strong> Doug Sheresh. Micros<strong>of</strong>t Outlook2007 Inside Out. Redmond, Wash.: Micros<strong>of</strong>t Press, 2007.


phishing <strong>and</strong> spo<strong>of</strong>ing 369Jones, William. Personal Information Management. Seattle: University<strong>of</strong> Washington Press, 2007.Lineberger, Michael. Total Workday Control: Using Micros<strong>of</strong>t Outlook.San Ramon, Calif.: New Academy Publishers, 2006.“Over 160 Free Personal Information Managers.” Available online.URL: http://www.lifehack.org/articles/lifehack/over-160-freepersonal-information-managers.html.Accessed August 17,2007.philosophical <strong>and</strong> spiritualaspects <strong>of</strong> computingWhen modern digital computing emerged in the 1940s, itevolved from two roots: engineering (particularly electricalengineering) <strong>and</strong> mathematics. The goals <strong>of</strong> the earliest computerdesigners were focused naturally enough on computing,although several early thinkers (see Bush, Vannevar;Shannon, Claude; <strong>and</strong> Turing, Alan) had already begunto think <strong>of</strong> computers as symbol-processing <strong>and</strong> knowledgeretrievingmachines, not just number crunchers.As computer scientists began to become more concernedabout the structure <strong>of</strong> data <strong>and</strong> the modeling <strong>of</strong> real-worldobjects in computer languages (see object-oriented programming),they began to wrestle with some areas longfamiliar to philosophers. As data structure involved intoknowledge representations, epistemology (the philosophicalinvestigation <strong>of</strong> the meaning <strong>and</strong> accessibility <strong>of</strong> knowledge)became more relevant, particularly in developingsystems for artificial intelligence <strong>and</strong> machine learning.Also relevant is ontology (the nature <strong>and</strong> relationship <strong>of</strong>entities—see ontologies <strong>and</strong> data models), particularlywith regard to the modern effort to encode relationshipsbetween items <strong>of</strong> knowledge into Web pages (see semanticWeb).The <strong>Computer</strong> as Philosophical LaboratoryBeyond investigating the potential for applying philosophicalideas to knowledge engineering, many philosophershave also taken increasing notice <strong>of</strong> the possibilities thatartificial intelligence, highly complex dynamic structures(particularly the Internet), <strong>and</strong> human-computer interaction<strong>of</strong>fer for investigating long-st<strong>and</strong>ing <strong>and</strong> <strong>of</strong>ten seeminglyintractable philosophical problems.One <strong>of</strong> the knottiest problems is the nature <strong>of</strong> somethingthat people experience during every waking moment—consciousness,that awareness <strong>of</strong> being an “I” or “self” that isexperiencing both an inner world <strong>of</strong> memories <strong>and</strong> thoughts<strong>and</strong> the outer world conveyed by the senses. One reasonwhy the problem <strong>of</strong> consciousness is so difficult to resolveis that cognitive scientists <strong>and</strong> philosophers lack the abilityto compare human consciousness with other possibleconsciousness. (Some “higher” animals may be consciousin some sense, but they cannot tell us about it.) However,as AI programs attempt to model aspects <strong>of</strong> human cognition,they can help us find similarities <strong>and</strong> possible differencesbetween the way computers <strong>and</strong> people “think.” Ofcourse philosophers take a wide variety <strong>of</strong> positions on thequestion <strong>of</strong> whether there is anything ultimately distinctiveabout what we call consciousness, <strong>and</strong> whether computersor robots might someday become truly conscious. (Forexamples <strong>of</strong> differing views see Dreyfus, Hubert; Kurzweil,Raymond; <strong>and</strong> McCarthy, John.)Finally, a number <strong>of</strong> writers have related developmentsin modern computing to ultimate philosophical or spiritualconcerns. For example, the World Wide Web can be comparedto the world-girdling “noosphere” <strong>of</strong> evolving knowledgedescribed by theologian-paleontologist Pierre Teilhardde Chardin in the mid-20th century. Thus there has beenconsiderable speculation (<strong>and</strong> perhaps hype) about a newform <strong>of</strong> collective consciousness emerging through theinteraction <strong>of</strong> people as well as increasingly intelligent programson the Net. On the other h<strong>and</strong>, the experience <strong>of</strong>immersive online environments (see online games <strong>and</strong>virtual reality) revisits a question that goes back to Descartesin the 17th century—whether what we perceive asreality might actually be an illusion—<strong>and</strong> this questionresonates with the works <strong>of</strong> Western Gnostics <strong>and</strong> EasternBuddhists, not to mention Hollywood’s The Matrix.The dialog among philosophy, spiritual practice, <strong>and</strong>the rapidly changing computer world is likely to remainfascinating.Further ReadingDavis, Erik. Techgnosis: Myth, Magic, <strong>and</strong> Mysticism in the Age <strong>of</strong>Information. New York: Harmony Books, 1998.Floridi, Luciano. Philosophy <strong>and</strong> Computing: An Introduction. NewYork: Routledge, 1999.———, ed. Philosophy <strong>of</strong> Computing <strong>and</strong> Information. Malden,Mass.: Blackwell, 2004.Foerst, Anne. God in the Machine: What Robots Teach Us aboutHumanity <strong>and</strong> God. New York: Dutton, 2004.Hayles, N. Katherine. How We Became Posthuman: Virtual Bodies inCybernetics, Literature, <strong>and</strong> Informatics. Chicago: University<strong>of</strong> Chicago Press, 1999.International Association for Computing <strong>and</strong> Philosophy. Availableonline. URL: http://www.ia-cap.org/. Accessed November6, 2007.Irwin, William. The Matrix <strong>and</strong> Philosophy. Chicago: Open Court,2002.Tetlow, Philip. The Web’s Awake: An Introduction to the Field <strong>of</strong> Web<strong>Science</strong> <strong>and</strong> the Concept <strong>of</strong> Web Life. Hoboken, N.J.: Wiley,2007.phishing <strong>and</strong> spo<strong>of</strong>ingJust about anyone with an e-mail account has received messagespurporting to be from a bank, a popular e-commercesite such as Amazon or eBay, or even a government agency.Typically the message warns <strong>of</strong> a problem (such as a suspendedaccount) <strong>and</strong> urges the recipient to click on a linkin the message. If the user does so, what appears to looklike the actual site <strong>of</strong> the relevant institution is actually a“spo<strong>of</strong>,” or fake site. If the user goes on to enter informationsuch as account numbers or passwords in order to fixthe “problem,” the information actually goes to the operator<strong>of</strong> the fake site, where it can be used for fraudulent purchasesor even impersonation (see identity theft). Thebogus site can also attempt to download viruses, spyware,keyloggers, or other forms <strong>of</strong> “malware” to the unwittinguser’s computer.


370 phishing <strong>and</strong> spo<strong>of</strong>ing“Phishing” messages such as this fake IRS e-mail try to trick usersinto clicking on links to equally bogus Web sites that can steal personalinformation or infect computers with viruses.This all-too-common scenario is called “phishing,”alluding to “fishing” for unwary users with various sorts <strong>of</strong>bait, with the f changed to ph in keeping with traditionalhacker practice. Phishing is similar to other techniques formanipulating people through deception, fear, or greed thathackers <strong>of</strong>ten refer to as “social engineering.” Unlike oneon-oneapproaches, however, phishing relies on the abilityto send large quantities <strong>of</strong> e-mail at virtually no cost (seespam), the availability <strong>of</strong> simple techniques for disguisingboth e-mail addresses <strong>and</strong> Web addresses (URLs), <strong>and</strong> theease with which the appearance <strong>of</strong> a Web site can be convincinglyreplicated.Although e-mail is the most common “hook” for phishing,any form <strong>of</strong> communication, including text or instantmessages, can be used. Recently sites such as MySpace havebecome targets for automated phishing expeditions thatchanged links on pages to point to fraudulent sites (seesocial networking).Defenses <strong>and</strong> CountermeasuresWary users have a number <strong>of</strong> ways to reduce their chance <strong>of</strong>being “phished.” Some signs <strong>of</strong> bogus messages include:• The message is addressed generically (“dear PayPaluser”) or to the user’s e-mail address rather than theaccount name.• The text <strong>of</strong> the message contains spelling errors orpoor grammar.• The URL shown for a link in the message (perhaps viaa “tool tip”) does not match the institution’s real Webaddress.There are even interactive games such as “Anti-PhishingPhil” that users can play to test their ability to detect phishingattempts.Unfortunately, modern phishers are becoming increasinglysophisticated. Some phishing messages can be personalized,using the target’s actual name. URLs can bedisguised so that discrepancies do not appear. When indoubt, the safest thing to do is always to access the institutionby typing (not copying) its name directly in the Webbrowser rather than clicking on a link in e-mail. (In a practicecalled “pharming,” a legitimate Web site can in effectbe hijacked so that normal user accesses will be divertedto the fraudulent site. Users have no real defense againstpharming; this is a matter for security pr<strong>of</strong>essionals at therelevant Web sites.)Fortunately there are ways in which s<strong>of</strong>tware can helpdetect <strong>and</strong> block most phishing attempts. A good spam filteris the first line <strong>of</strong> defense <strong>and</strong> can block many phishing messagesfrom getting to the user in the first place. Anti-phishingfeatures are also increasingly included in Web browsers,or available as plug-ins. Thus “blacklists” <strong>of</strong> known phishingsites can be checked in real time <strong>and</strong> warnings given, orthe site’s address can be blocked from access by the system.Web sites can also introduce an added layer <strong>of</strong> security:Bank <strong>of</strong> America, for example, asks users to select <strong>and</strong> labelone <strong>of</strong> several images <strong>of</strong>fered by the bank. The image <strong>and</strong>label are subsequent displayed as part <strong>of</strong> the log-in process.If the user does not see the image <strong>and</strong> the user’s label, thenthe site is presumably not the real bank site.Legislative ResponsePhishing has been one <strong>of</strong> the fastest-growing types <strong>of</strong> onlinecrime in recent years (see computer crime <strong>and</strong> security<strong>and</strong> online frauds <strong>and</strong> scams). By mid-2007 the Anti-Phishing Working Group (an association <strong>of</strong> financial institutions<strong>and</strong> businesses) was reporting the appearance <strong>of</strong>more than 30,000 new phishing sites per month (the largestnumber operating from China), though a site typically staysonline for only a few days. Phishing contributed significantlyto the $49 billion cost <strong>of</strong> identity theft in 2006 as estimatedby Javelin Research. Further, industry surveys havesuggested that phishing has aroused considerable consumerconcern, slowing down the adoption or continued use <strong>of</strong>some financial services (see banking <strong>and</strong> computers).In response to this growing concern, the U.S. FederalTrade Commission filed its first civil suit against a suspectedphisher in 2004. The United States <strong>and</strong> other countrieshave also arrested phishing suspects, generally undersome form <strong>of</strong> wire fraud statute. Starting in 2004, antiphishingbills have been introduced in Congress, thoughnone had passed as <strong>of</strong> 2007. However, the CAN-SPAM Act<strong>of</strong> 2003 was used in 2007 to convict a defendant accused<strong>of</strong> sending thous<strong>and</strong>s <strong>of</strong> phishing e-mails purporting to befrom America Online (AOL). Many states have also introducedanti-phishing legislation.Further ReadingAnti-Phishing Working Group. Available online. URL: http://www.antiphishing.org/. Accessed November 6, 2007.


photography, digital 371Jacobson, Markus, <strong>and</strong> Steven Myers, eds. Phishing <strong>and</strong> Countermeasures:Underst<strong>and</strong>ing the Increasing Problem <strong>of</strong> ElectronicIdentity Theft. Hoboken, N.J.: Wiley-Interscience, 2006.James, Lance. Phishing Exposed: Uncover Secrets from the Dark Side.Rockl<strong>and</strong>, Mass.: Syngress Publishing, 2005.Lininger, Rachael, <strong>and</strong> Russell Dean Vines. Phishing: Cutting theIdentity Theft Line. Indianapolis: Wiley, 2005.PhishTank. Available online. URL: http://www.phishtank.com/.Accessed November 6, 2007.Sheng, Steve, et al. “Anti-Phishing Phil: The Design <strong>and</strong> Evaluation<strong>of</strong> a Game That Teaches People Not to Fall for Phish.”Carnegie Mellon University. Available online. URL: http://cups.cs.cmu.edu/soups/2007/proceedings/p88_sheng.pdf.Accessed November 6, 2007. (The game itself is available athttp://cups.cs.cmu.edu/antiphishing_phil/.)U.S. Federal Trade Commission. “FTC Consumer Alert: How Notto Get Hooked by a ‘Phishing’ Scam.” October 2006. Availableonline. URL: http://www.ftc.gov/bcp/edu/pubs/consumer/alerts/alt127.pdf. Accessed February 8, 2008.photography, digitalFor more than 150 years photography has depended on theuse <strong>of</strong> film made from light-sensitive chemicals. However,digital photography, first developed in the 1970s, emergedin the late 1990s as a practical, <strong>and</strong> in some ways superior,alternative to traditional photography.The basic idea behind digital photography is that light(photons) can create an electrical charge in certain materials.In 1969, engineers at Bell Labs invented a light-sensitivesemiconductor that became known as a charge-coupleddevice (CCD). The original intention <strong>of</strong> the developers wasto use an array <strong>of</strong> CCDs to make a compact black-<strong>and</strong>whitevideo camera for the videophone, a device that didnot prove commercially viable. However, astronomers weresoon using CCD arrays to capture images too faint for thehuman eye or even for conventional film.Digital photography remained confined to such specializedapplications until the mid-1990s. By then, the growinguse <strong>of</strong> multimedia <strong>and</strong> the World Wide Web made digitalphotography an attractive alternative for getting imagesonline quickly, avoiding the need to scan traditional printsor negatives. At the same time, cheaper, more powerfulprocessors <strong>and</strong> larger capacity memory storage made goodquality digital cameras more viable as a consumer product.A digital camera uses the same type <strong>of</strong> lenses <strong>and</strong> opticalsystems as a conventional camera. Instead <strong>of</strong> fallingupon film, however, the incoming light strikes an array <strong>of</strong>CCD “photosites.” Each photosite represents one pictureelement, or pixel, which will appear as a tiny dot in theresulting picture. (Camera resolution is typically measuredin millions <strong>of</strong> pixels, or “megapixels.”)The surface <strong>of</strong> the array contains an abundance <strong>of</strong> freeelectrons. As light strikes a photosite, it creates a chargethat draws <strong>and</strong> concentrates nearby electrons. The voltageat a photosite is thus proportional to the intensity <strong>of</strong> thelight striking it. The charge <strong>of</strong> each row <strong>of</strong> photosites istransferred to a corresponding read-out register, where it isamplified to facilitate measurement.The camera uses an analog-to-digital converter (seeanalog <strong>and</strong> digital) to convert the amplified voltages todigital numeric values. Early consumer digital cameras typicallyused 8-bit values, limiting the camera to a range <strong>of</strong>gradated intensity from 0 to 255. However, many camerastoday use up to 12 bits, giving a range <strong>of</strong> 0 to 4096.The CCD mechanism itself measures only light intensities,not colors. To obtain color, many cameras use ared, green, or blue (RGB) filter at each photosite. (Somemanufacturers use cyan, yellow, green, <strong>and</strong> magenta filtersinstead.) Since each photosite registers only a singlecolor, interpolation algorithms must be used to estimate theactual color <strong>of</strong> each pixel by using laws <strong>of</strong> color optics <strong>and</strong>comparing the colors <strong>and</strong> intensity <strong>of</strong> the adjacent pixels.New high-end cameras are starting to eschew interpolationin favor <strong>of</strong> using a complete, separate CCD array forDigital cameras use a charge-coupled device (CCD) to convert incoming light to varying voltages that are digitized to create pixel values.They have largely replaced traditional film cameras for most applications.


372 PHPeach <strong>of</strong> the three RGB colors <strong>and</strong> thus making <strong>and</strong> combiningthree complete exposures that directly capture thecolors. This produces the best possible color accuracy but ismore expensive.The final image data is stored using a st<strong>and</strong>ard file format,usually JPEG (see graphics formats). The most commonlyused storage medium is an insertable “flash” memorymodule. The major competing memory card st<strong>and</strong>ards areCompactFlash, SD, <strong>and</strong> Sony Memory Stick. Storage capacitiesrun to 4 GB. As with regular RAM, the cost <strong>of</strong> flashmemory has declined considerably in recent years.In determining the adequacy <strong>of</strong> the camera’s storagecapacity, the user must also consider the camera’s resolution(number <strong>of</strong> pixels) <strong>and</strong> whether images will be compressedbefore storage (see data compression). While acertain amount <strong>of</strong> compression can be achieved withoutdiscernable degradation <strong>of</strong> the image, more drastic “lossy”compression sacrifices image quality for compactness. Itshould also be noted that as image resolution (<strong>and</strong> thus filesize) increases, the time needed to process <strong>and</strong> store eachimage will also increase, limiting how rapidly successiveexposures can be made.Most digital cameras have a USB connector (see USB),making it easy to upload the stored images from the camerato a PC. Once in the PC, images can be edited or otherwisemanipulated using the basic photo editing s<strong>of</strong>tware usuallyincluded with the camera or a full-featured pr<strong>of</strong>essionalproduct such as Adobe Photoshop.The same trends that have brought more capabilityper dollar spent on digital cameras have been even moreevident in printers (see printer). Using resolutions <strong>of</strong>2880 dots per inch or more <strong>and</strong> special papers, digitalcamera users can make prints with a quality similar tothat produced by traditional photo developers. <strong>Computer</strong>prints are more subject to color fading over time than areconventional prints, although some printer manufacturersnow <strong>of</strong>fer toner that will resist fading for 25 years ormore.Future TrendsHigh-end consumer digital cameras reached the 8–10 megapixelrange by 2008, allowing for images that can be “blownup” to 10 by 12 inches or larger while retaining image qualitycomparable to conventional photos. Pr<strong>of</strong>essional-gradedigital cameras (“digital SLRs”) are rated at 10 megapixelsor more. The need for such cameras for pr<strong>of</strong>essional workarises not only from the higher resolution requirementsbut also because these cameras have the very high-qualityoptics used in fine 35 mm cameras, as well as having agreater variety <strong>of</strong> available specialty lenses. (Consumer digital“superzoom” cameras, however, do <strong>of</strong>fer zoom lensesroughly comparable to those for low-cost 35-mm cameras.)The quality <strong>and</strong> convenience <strong>of</strong> digital photography ensurethat digital cameras will supplant conventional cameras formost consumer <strong>and</strong> many pr<strong>of</strong>essional applications. Manydigital cameras also have the ability to shoot short videosequences. The ubiquity <strong>of</strong> digital cameras <strong>and</strong> digital video(even in many cell phones) has had important social consequencesby facilitating transmission <strong>of</strong> pictures <strong>of</strong> disasters,political gaffes, <strong>and</strong> other events <strong>of</strong>ten outside the mainstreammedia (see user-created content <strong>and</strong> YouTube).Digital camcorders will also become more widely used.Their resolution is generally from about a quarter millionpixels to a million pixels—considerably lower than fordigital still cameras, but adequate <strong>and</strong> likely to improve.Digital video cameras are also rated according to lux value,indicating the minimum light level for satisfactory recording.Most digital videos store the captured image to tape(either MiniDV or Hi-8), but some newer cameras use builtinrecordable DVD disks instead (see CD-Rom <strong>and</strong> DVD-ROM). The ability to digitally edit video direct from thecamera is also an important advantage.Further ReadingBusch, David D. Digital SLR Cameras & Photography for Dummies.2nd ed. Hoboken, N.J.: Wiley, 2007.Etchells, Dave. “Finding the Right Digital Camera.” ImagingResource Newsletter. Available online. URL: http://www.imaging-resource.com /TIPS/ BUYGD/ BUYGUID.HTM.Accessed August 17, 2007.King, Julie Adair. Digital Photography for Dummies. 5th ed. Hoboken,N.J.: Wiley, 2005.Silva, Robert. “Digital Camcorder Formats.” Available online. URL:http://hometheater.about.com/od/camcorders/a/camformats_2.htm. Accessed August 17, 2007.Wilson, Tracy V., K. Nice, <strong>and</strong> G. Gurevich. “How Digital CamerasWork.” Available online. URL: http://www.howstuffworks.com/digital-camera.htm. Accessed August 17, 2007.PHPPHP is a very popular scripting language primarily usedfor creating dynamic Web pages (see Ajax <strong>and</strong> scriptinglanguages). PHP originated in 1994 as a way for Danishprogrammer Rasmus Lerdorf to replace a set <strong>of</strong> Perl scriptsused to manage his own Web page—hence the originalname “personal home page.” Lerdorf released the first versiontogether with a “form interpreter” in 1995. In 1997 thelanguage parser was rewritten by Israeli developers ZeevSuraski <strong>and</strong> Andi Gutmans, who launched PHP3 in 1998;since then the initials PHP have (recursively) stood for PHP:Hypertext Processor. In 2004 the current version, PHP5,was released. As the language has evolved, it has improvedin its support for objects (see object-oriented programming)as well as in its connectivity to MySQL <strong>and</strong> otherdatabase <strong>and</strong> Web-application coordination technologies.PHP normally runs on a Web server <strong>and</strong> processes PHPcode, which is <strong>of</strong>ten embedded within Web pages (seeHTML). The classic Hello World program would look likethis:The PHP processor parses only the code within the delimiters. (An alternative set <strong>of</strong> delimiters is .Besides being embedded in HTML pages, PHP canbe used interactively at the comm<strong>and</strong> line, where it hasreplaced older languages such as awk, Perl, or shell script-


PL/I 373ing for many users. PHP can also be linked to user-interfacelibraries (such as GTK+ for Linux/UNIX) to create applicationsthat run on the client machine rather than the server.PHP has a basic set <strong>of</strong> data types plus one called“resource” that represents data processed by special functionsthat return images, text files, database records, <strong>and</strong>so on. Additionally, PHP5 provides full support for objects,including private <strong>and</strong> protected member variables, constructors<strong>and</strong> destructors, <strong>and</strong> other features similar tothose found in C++ <strong>and</strong> other languages.There are numerous libraries <strong>of</strong> open-source objects<strong>and</strong> functions that enable PHP scripts to perform commonInternet tasks, including accessing database servers (such asMySQL) as well as extensions to the language to h<strong>and</strong>le popularWeb formats such as Adobe Flash animation. Programmershave access to a wide range <strong>of</strong> PHP resources throughPEAR (the PHP Extension <strong>and</strong> Application Repository).The combination <strong>of</strong> sophisticated features <strong>and</strong> easyinteractive scripting has made PHP the language <strong>of</strong> choicefor many Web developers, who use it as part <strong>of</strong> the group <strong>of</strong>technologies called LAMP, for Linux, Apache (Web server),MySQL (database), <strong>and</strong> PHP.Further ReadingAchour, Mehdi, et al. PHP Manual. Available online. URL: http://www.php.net/manual/en/. Accessed November 7, 2007.Lerdorf, Rasmus, Kevin Tatroe, <strong>and</strong> Peter MacIntyre. ProgrammingPHP. 2nd ed. Sebastapol, Calif.: O’Reilly Media, 2006.PEAR-PHP Extension <strong>and</strong> Applications Repository. Availableonline. URL: http://pear.php.net/. Accessed November 7,2007.PHP [<strong>of</strong>ficial Web site]. Available online. URL: http://php.net/.Accessed November 7, 2007.Z<strong>and</strong>stra, Matt. PHP Objects, Patterns, <strong>and</strong> Practice. Berkeley, Calif.:Apress, 2004.PL/IBy the early 1960s, two programming languages were inwidespread use: FORTRAN for scientific <strong>and</strong> engineeringapplications <strong>and</strong> COBOL for business computing. However,applications were becoming larger <strong>and</strong> more complex, callingfor a wider variety <strong>of</strong> capabilities. For example, scientificprogrammers needed to provide data-processing <strong>and</strong>reporting capabilities as well as computation. Business programmers,in turn, increasingly needed to work with formulas<strong>and</strong> statistics <strong>and</strong> needed floating-point <strong>and</strong> othernumber formats.Language developers thus began to look toward a general-purposelanguage that could be equally at home withwords, numbers, <strong>and</strong> data files. Meanwhile, IBM was preparingto replace its previously separate scientific <strong>and</strong> businesscomputer systems with the versatile System/360. They<strong>and</strong> one <strong>of</strong> their user groups, SHARE, formed a joint committeeto develop a new language for this new machine.At first the designers thought in terms <strong>of</strong> extendingFORTRAN to provide better text <strong>and</strong> data-processing capabilities,so they designated the new language FORTRANVI. However, their focus soon changed to designing acompletely new language, which was known until 1965 asNPL (New Programming Language). Because this acronymalready stood for Britain’s National Physical Laboratory, thename <strong>of</strong> the language was changed to PL/I (ProgrammingLanguage I).Language FeaturesPL/I has been described as the “Swiss army knife <strong>of</strong> languages”because it provides so many features drawn fromdisparate sources. The basic block structure <strong>and</strong> controlstructures (see loop <strong>and</strong> branching statement) wereadapted from Algol, a relatively small language that hadbeen devised by computer scientists as a model for structuredprogramming (see Algol) <strong>and</strong> is also similar to Pascal(see Pascal). Blocks can be nested, <strong>and</strong> variables declaredwithin a block can be accessed only within that block <strong>and</strong>its nested blocks, unless declared explicitly otherwise.PL/I includes a particularly rich variety <strong>of</strong> data types<strong>and</strong> can specify even the number <strong>of</strong> digits for numeric data.A PICTURE clause similar to that in COBOL can be used tospecify exact layout. However, the language takes a morepragmatic approach than Algol or Pascal; data need notbe declared <strong>and</strong> will be given default characteristics basedon context. Input/Output (I/O) is built into the languagerather than provided in an external library, <strong>and</strong> the flexibleoptions include character, streams <strong>of</strong> characters, blocks,<strong>and</strong> records with either sequential or r<strong>and</strong>om access.In general, PL/I provides more control over the lowleveloperation <strong>of</strong> the machine than Algol or even successorssuch as C. For example, there is an unusual amount <strong>of</strong>control over how variables are stored, ranging from STATIC(present throughout the life <strong>of</strong> the program) to AUTO-MATIC (allocated <strong>and</strong> deallocated as the containing blockis entered <strong>and</strong> exited) to CONTROLLED, where memorymust be explicitly allocated <strong>and</strong> freed. Pointers allow memorylocations to be manipulated directly. PL/I also providedmore elaborate facilities for h<strong>and</strong>ling exceptions (errors)arising from hardware condition, arithmetic, file-h<strong>and</strong>ling,or other conditions.Example ProgramThe following program executes a DO loop <strong>and</strong> counts fromone to the number <strong>of</strong> items specified. It then outputs thetotal <strong>of</strong> the numbers <strong>and</strong> their average.COUNTEM: PROCEDURE OPTIONS (MAIN);DECLARE (ITEMS, COUNTER, SUM, AVG) FIXED;ITEMS = 10;SUM = 0;DO COUNTER = 1 TO ITEMS;SUM = SUM + COUNTER;END;AVG = SUM / ITEMS;PUT SKIP LIST (“TOTAL OF ”);PUT ITEMS;PUT (“ITEMS IS ”);PUT TOTAL;PUT SKIP LIST (“THE AVERAGE IS: ”);PUT AVG;END COUNTEM;


374 Plug <strong>and</strong> PlayImpact <strong>of</strong> the LanguageBecause <strong>of</strong> its many practical features <strong>and</strong> its availability forthe popular IBM 360 mainframes, PL/I enjoyed considerablesuccess in the late 1960s <strong>and</strong> 1970s. The language waslater ported to most major platforms <strong>and</strong> operating systems.When personal computers came along, PL/I becameavailable for IBM’s OS/2 operating system as well as forMicros<strong>of</strong>t’s DOS <strong>and</strong> Windows, although the language neverreally caught on in those environments.<strong>Computer</strong> scientists such as structured programmingguru Edsger Dijkstra decried PL/I’s lack <strong>of</strong> a clear, welldefinedstructure. In his Turing Award Lecture in 1972,Dijkstra opined that “I absolutely fail to see how we cankeep our growing programs firmly within our intellectualgrip when by its sheer baroqueness the programming language—ourbasic tool, mind you!—already escapes ourintellectual control.” (See Dijkstra, Edsger.)On a practical level the sheer number <strong>of</strong> features inthe language meant that truly mastering it was a lengthyprocess. A language like C, on the other h<strong>and</strong>, had a muchsimpler “core” to master even though it was less versatile.PL/I also tended to retain the mainframe associations fromits birth at IBM, while C grew up in the world <strong>of</strong> minicomputers<strong>and</strong> the UNIX community <strong>and</strong> proved more suitablefor PCs. Nevertheless, PL/I provided many examples thatlanguage designers could use in attempting to design betterimplementations.Further ReadingThe Essentials <strong>of</strong> PL/I Programming Language. Piscataway, N.J.:Research <strong>and</strong> Education Association, 1993.Hughes, Joan Kirby. PL/I Structured Programming. 3rd ed. NewYork: Wiley, 1986.“PL/I Frequently Asked Questions (FAQ).” Available online. URL:http://www.faqs.org/faqs/computer-lang/pli-faq/. AccessedAugust 17, 2007.“The PL/I Language.” Available online. URL: http://home.nycap.rr.com/pflass/pli.htm. Accessed February 9, 2008.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson Addison-Wesley, 2007.Plug <strong>and</strong> PlayIn early MS-DOS systems installation <strong>of</strong> new hardware suchas a printer <strong>of</strong>ten had to be performed manually by copyingfiles (see device driver) to the hard drive from floppies<strong>and</strong> then making specified settings to the system configurationfiles AUTOEXEC.BAT <strong>and</strong> CONFIG.SYS. These settings<strong>of</strong>ten involved unfamiliar concepts such as interrupts(IRQs) <strong>and</strong> DMA (direct memory access) channels.When Windows came along, device manufacturers generallyprovided an installation program that takes care <strong>of</strong>copying the files <strong>and</strong> making the necessary changes to thesystem registry. However, there was still the problem <strong>of</strong>ensuring that one had a driver compatible with the version<strong>of</strong> the operating system in use, <strong>and</strong> users were sometimesasked to make choices for which they were not prepared(such as choosing which port to use).By the mid-1990s, Intel was promoting a st<strong>and</strong>ard for theautomated detection <strong>and</strong> configuration <strong>of</strong> devices. Knownas Plug <strong>and</strong> Play (PnP), this st<strong>and</strong>ard was incorporated inversions <strong>of</strong> Micros<strong>of</strong>t Windows starting with Windows 95(see Micros<strong>of</strong>t Windows). The required hardware supportsoon appeared on PC motherboards <strong>and</strong> expansion cards.With Plug <strong>and</strong> Play the user simply connects a printer,scanner, or other device to the PC. Windows detects thata device has been connected <strong>and</strong> queries it for its <strong>of</strong>ficialname <strong>and</strong> other information. If necessary, Windows canthen prompt the user for a disk containing the appropriatedriver or even search for a driver on a Web site.The concept <strong>of</strong> Plug <strong>and</strong> Play extends beyond the Windowsworld, however. In recent years there has been interestin developing a Universal Plug <strong>and</strong> Play (UPnP) protocolby which a variety <strong>of</strong> devices could automatically configurethemselves with any <strong>of</strong> a variety <strong>of</strong> different networks.This would be particularly helpful for home users who areincreasingly setting up small networks so they can sharebroadb<strong>and</strong> Internet connections, as well as the growingnumber <strong>of</strong> users who want their desktop PC to work withh<strong>and</strong>held (palm) computers <strong>and</strong> other devices. Micros<strong>of</strong>tsupports UPnP in versions <strong>of</strong> Windows starting with ME<strong>and</strong> XP.Further ReadingBigelow, Stephen J. The Plug & Play Book. New York: McGraw Hill,1999.Shanley, Tom. Plug <strong>and</strong> Play System Architecture. Reading, Mass.:Addison-Wesley, 1995.Universal Plug <strong>and</strong> Play Forum. Available online. URL: http://www.upnp.org/. Accessed August 17, 2007.plug-inA number <strong>of</strong> applications programs include the ability forthird-party developers to write small programs that extendthe main program’s functionality. For example, thous<strong>and</strong>s<strong>of</strong> “filters” (algorithms for transforming images) have beenwritten for Adobe Photoshop. These small programs arecalled plug-ins because they are designed to connect tothe main program <strong>and</strong> provide their service whenever it isdesired or required.Perhaps the most commonly encountered plug-ins arethose available for Web browsers such as Firefox, Netscape,or Internet Explorer. Plug-ins can enable the browser to displaynew types <strong>of</strong> files (such as multimedia). Many st<strong>and</strong>ardprograms for particular kinds <strong>of</strong> files are now providedboth as st<strong>and</strong>-alone applications <strong>and</strong> as browser plug-ins.Examples include Adobe (PDF document format), AppleQuickTime (graphics, video, <strong>and</strong> animation), RealPlayer(streaming video <strong>and</strong> audio), <strong>and</strong> Macromedia Flash (interactiveanimation <strong>and</strong> presentation). These <strong>and</strong> many otherplug-ins are <strong>of</strong>fered free for the downloading, in order toincrease the number <strong>of</strong> potential users for the formats <strong>and</strong>thus the market for the development packages.One <strong>of</strong> the most useful plug-ins found in most browsersis one that allows the browser to run Java applets (see Java).In turn, Java is <strong>of</strong>ten used to write other plug-ins.Beyond such traditional workhorses, a number <strong>of</strong> innovativebrowser plug-ins have appeared, particularly for the


pointers <strong>and</strong> indirection 375increasingly popular Firefox browser. For example, thereare plug-ins that enable the user to view <strong>and</strong> work withthe HTML <strong>and</strong> other elements <strong>of</strong> the page being viewed.Another popular area is plug-ins that make it easier tocapture <strong>and</strong> organize material from Web pages, going wellbeyond the st<strong>and</strong>ard favorites or bookmark facility.Including plug-in support for an application enables volunteeror commercial third-party developers to in effectincrease the feature set <strong>of</strong> the main application, which inturn benefits the original developer. In the broader perspective,plug-ins are a way to harness the collaborative spiritfound in open-source development, creating a communitythat is continually improving applications tools <strong>and</strong> makingthem more versatile. (The open-source Eclipse programmingenvironment is a good example.)Further ReadingAdd-Ons for Internet Explorer. Available online. URL: http://www.windowsmarketplace.com/category.aspx?bcatid=834&tabid=1/. Accessed August 17, 2007.Benjes-Small, C<strong>and</strong>ice M., <strong>and</strong> Melissa L. Just. The Library <strong>and</strong>Information Pr<strong>of</strong>essional’s Guide to Plug-ins <strong>and</strong> Other WebBrowser Tools. New York: Neal Schuman, 2002.Clayberg, Eric, <strong>and</strong> Dan Rubel. Eclipse: Building Commercial-QualityPlug-ins. 2nd ed. Upper Saddle River, N.J.: Addison-WesleyPr<strong>of</strong>essional, 2006.Drafahl, Jack, <strong>and</strong> Sue Drafahl. Plug-ins for Adobe Photoshop: AGuide for Photographers. Buffalo, N.Y.: Amherst Media, 2004.Firefox Add-ons: Common Plugins for Firefox. Available online.URL: https://addons.mozilla.org/en-US/firefox. AccessedAugust 17, 2007.Google Desktop Gadgets [plug-ins] Available online. URL: http://desktop.google.com/plugins/?hl=en. Accessed August 17,2007.Pilgrim, Mark. Greasemonkey Hacks: Tips & Tools for Remixing theWeb with Firefox. Sebastapol, Calif.: O’Reilly, 2005.podcastingPodcasting (from iPod plus broadcasting) lets users subscribeto <strong>and</strong> automatically download regularly distributedcontent (such as radio broadcasts) over the Internet. Themedia files can be stored on an Apple iPod or other mediaplayer (see music <strong>and</strong> video players, digital), personalcomputer, or other device (see smartphone). Podcastingbecame popular starting around 2004–05 <strong>and</strong> has becomewidely used by individuals <strong>and</strong> organizations.Typically, files to be podcast are put on a Web server. TheURLs for the files <strong>and</strong> other information (such as episodetitles) is provided in files called feeds, using a format suchas RSS or Atom (see Rss). The user installs client s<strong>of</strong>tware(such as iPodder), browses the feeds (such as through anonline directory), <strong>and</strong> decides what to subscribe to. The s<strong>of</strong>twarethen periodically checks the feeds, obtains the URLs <strong>of</strong>the latest files, <strong>and</strong> downloads them automatically. The s<strong>of</strong>twarecan, if desired, then transfer the downloaded files to aportable media player, such as over a USB connection.ApplicationsThere are many sources <strong>of</strong> podcasts. News organizationscan provide regular audio or video podcasts as a supplementto regular text material. Podcasting also <strong>of</strong>fers a wayfor a small news organization or independent journalist tobuild an audience using equipment as simple as a microphone<strong>and</strong> perhaps a video camera. Podcasts also providea way for political organizations to keep in touch with supporters(<strong>and</strong> perhaps supply them with talking points). Anysource <strong>of</strong> periodically distributed audio or video can be ac<strong>and</strong>idate for podcasting. These include class lectures, corporatecommunications, <strong>and</strong> even religious services.Further ReadingGeoghegan, Michael W., <strong>and</strong> Dan Hlass. Podcast Solutions: TheComplete How-To Guide to Getting Heard around the World.Berkeley, Calif.: Apress, 2005.Juice: The Cross-Platform Podcast Receiver. Available online.URL: http://juicereceiver.sourceforge.net/. Accessed November7, 2007.King, Kathleen P., <strong>and</strong> Mark Gura. Podcasting for Teachers: Using aNew <strong>Technology</strong> to Revolutionize Teaching <strong>and</strong> Learning. Charlotte,N.C.: Information Age Publishing, 2007.Mack, Steve, <strong>and</strong> Mitch Ratcliffe. Podcasting Bible. Indianapolis:Wiley, 2007.Morris, Tee, <strong>and</strong> Evo Terra. Podcasting for Dummies. Hoboken,N.J.: Wiley, 2006.Podcast Alley. Available online. URL: http://www.podcastalley.com/. Accessed November 7, 2007.Podcasting News. Available online. URL: http://www.podcastingnews.com/.Accessed November 7, 2007.pointers <strong>and</strong> indirectionThe memory in a computer is accessed by numbering the successivestorage locations (see addressing). When a programmerdeclares a variable, the compiler associates its name witha location in available memory (see variable). If the variableis used in an expression, when the expression is evaluated,the variable’s name is replaced by its current value—that is,with the contents <strong>of</strong> the memory location associated with thevariable. Thus, the expression Total + 10 is evaluated as “thecontents in the address associated with Total” plus 10.Sometimes, however, it is useful to have the generalcapability to access memory locations without assigningexplicit variables. This is done through a special type <strong>of</strong>variable called a pointer. The only difference between pointers<strong>and</strong> regular variables is that the value stored in a pointeris not the data to be ultimately used by the program. Rather,it is the address <strong>of</strong> that data. Here are some examples fromC, a language that famously provides support for pointers:Int MyVar;Int *MyPtr;integer// Declare a regular variable// Declare a pointer to an// (int) variableMyVar = 10; // Set the value <strong>of</strong> MyVarto 10MyPtr = &MyVar; // Store the address <strong>of</strong>MyVar in// the pointer MyPtrIn C, an asterisk in front <strong>of</strong> a variable name indicatesthat the variable is a pointer to the type declared. In the


376 pointers <strong>and</strong> indirectionA pointer is a variable whose value is an address location. HereMyPtr holds the address 101.second line above, therefore, MyPtr is a pointer to an integervariable. This means that the address <strong>of</strong> any integer variablecan be stored in MyPtr. The last line uses the & (ampers<strong>and</strong>)to represent the address <strong>of</strong> the variable MyVar. Therefore, itstores that address in MyPtr.Examining the lines above, one sees that the variableMyVar has the value 10. The pointer variable MyPtr has thevalue <strong>of</strong> whatever machine address contains the contents<strong>of</strong> the variable MyVar. In an expression, putting an asteriskin front <strong>of</strong> a pointer name “dereferences” the pointer. Thismeans that it returns not the address stored in the pointer,but the value stored at the address stored in the pointer (seethe diagram). Therefore if one writes:AnotherVar = * MyPtr;What is the value <strong>of</strong> AnotherVar? The answer is thecurrent value <strong>of</strong> MyVar (whose address had been stored inMyPtr)—that value, as assigned earlier, is 10.The general concept <strong>of</strong> storing the address <strong>of</strong> anothervariable in a variable is called indirection, or indirectaddressing. It was first used in assembly language to workwith index registers—special memory locations in a processorthat store memory addresses.Uses for PointersAlthough the concept may seem esoteric, pointers have anumber <strong>of</strong> uses. For example, suppose one has a buffer(perhaps storing video graphics data) <strong>and</strong> one wants tocopy it from one area to another. One could declare the bufferto be an array (see array) <strong>and</strong> then reference each element,or memory location <strong>and</strong> copy it. However, this wouldbe rather awkward. Instead, one can declare a pointer, set itto the starting address <strong>of</strong> the buffer, <strong>and</strong> then simply use aloop to increment the pointer, pointing in turn to each locationin the buffer.A similar approach applies to strings in C <strong>and</strong> relatedlanguages. A string <strong>of</strong> characters in C is declared as anarray <strong>of</strong> char. In an array, the name <strong>of</strong> the array is actuallya pointer to the first data location. It is therefore easy tomanipulate strings by getting their starting address by referencingthe name <strong>and</strong> then using one or more pointers tostep through the data locations. For example, the followingfunction copies the contents <strong>of</strong> one string into another:strcpy(char *s1,char *s2){while (*s2)*s1++ = *s2++;}The function takes two strings, s1 <strong>and</strong> s2, declared aspointers to char. It then steps (increments) them (usingthe ++ operator) so that the value in each location in s2 iscopied into the corresponding location in s1. The loop exitswhen the value at s2 is 0 (null), indicating that the end <strong>of</strong>string marker has been reached.Another common use for pointers is in memory allocation.Typically, a program requests memory by giving thememory allocation function a pointer <strong>and</strong> the amount <strong>of</strong>memory requested. The function allocates the memory <strong>and</strong>then returns the starting address <strong>of</strong> the new memory in thepointer, so the program knows how to access that memory.Pointers are also useful for passing a “bulky” variablesuch as a data record to a procedure or function. Suppose,for example, a program needs to pass a 65,000 byte recordto a procedure for printing a report. If it passes the actualrecord, the system has to make a copy <strong>of</strong> the whole record,tying up memory. If, instead, a pointer to the record is used,only the address is passed. The procedure can then accessthe record at that address without having to make a copy.In C <strong>and</strong> some other languages it is even possible tohave a pointer that points to another pointer. A commoncase is an array <strong>of</strong> strings, such asChar Form [80] [20];representing a form that has 20 lines <strong>of</strong> 80 characters. Eachline is an array <strong>of</strong> characters <strong>and</strong> the form as a whole is thus“an array <strong>of</strong> arrays <strong>of</strong> characters.” Therefore, to dereference(get the value <strong>of</strong>) a character one would first dereferencethe line, <strong>and</strong> then the column.Problems with PointersPointers may be useful, but they are also prone to causingprogramming problems. The simplest one is failing todistinguish between a pointer <strong>and</strong> its value. For example,suppose one writes:Total = Total + MyPtr;intending to add the value <strong>of</strong> the variable pointed to byMyPtr to Total. Unfortunately, the asterisk (dereferencingoperator) has been inadvertently omitted, so what getsadded to Total is the machine address stored in MyPtr!Another problem comes when a pointer is used to allocatememory, the memory is later deallocated, but thepointer is left pointing to it.Because pointers can potentially access any location inmemory (or at least attempt to), some computer scientistsview them as more dangerous than useful. It’s true thatmost things one might want to do with a pointer can beaccomplished by alternative means. One attempt to tamepointers is found in C++, which <strong>of</strong>fers the “reference” datatype. A reference is essentially a constant pointer that onceassigned to a variable always dereferences that variable <strong>and</strong>


political activism <strong>and</strong> the Internet 377cannot be pointed anywhere else. Java has gone even furtherby not including traditional pointers at all.Further ReadingJensen, Ted. “A Tutorial on Pointers <strong>and</strong> Arrays in C.” Availableonline. URL: http://home.netcom.com/~tjensen/ptr/pointers.htm. Accessed August 17, 2007.Parlante, Nick. “Pointers <strong>and</strong> Memory.” Available online. URL:http://cslibrary.stanford.edu/102/PointersAndMemory.pdf.Accessed August 17, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson Addison-Wesley, 2007.Soulle, Juan. “Pointers [in C++].” Available online. URL: http://www.cplusplus.com/doc/tutorial/pointers.html. AccessedAugust 17, 2007.political activism <strong>and</strong> the InternetAlthough newspapers <strong>and</strong> particularly television remain themost popular sources used by voters to obtain informationabout c<strong>and</strong>idates <strong>and</strong> issues, reports by the Pew Internet &American Life Project found that online media was usedby about a third <strong>of</strong> American voters in the 2006 midtermelections, <strong>and</strong> about 15 percent used it as their primaryinformation source. (The latter rate was about 35 percentamong young people who had access to broadb<strong>and</strong> Internetconnections at home.) The researchers also found thatabout half <strong>of</strong> the online users had sought information notavailable elsewhere, while 41 percent believed that newspapers<strong>and</strong> television did not provide them with all the informationthey wanted.It is true that much <strong>of</strong> the political information usersfind online is news that originated with mainstream printor broadcast news outlets. However, a growing role is alsobeing played by blogs, issue-oriented Web sites, or sitescreated by c<strong>and</strong>idates themselves, including pr<strong>of</strong>iles on theMySpace social networking site.A surprising number <strong>of</strong> people who look to the Internetfor political information participate actively, with about aquarter engaging in blogs or other online postings, whetherexpressing their own opinions or forwarding e-mail orreposting material. As users become more active (see usercreatedcontent), they are even becoming part <strong>of</strong> “<strong>of</strong>ficial”debates, as in 2007 when primary c<strong>and</strong>idates wereasked questions submitted as 30-second YouTube videos.Advantages <strong>and</strong> Pitfalls for C<strong>and</strong>idatesFor political c<strong>and</strong>idates <strong>and</strong> campaigns, the Internet is amixed blessing. Advantages include:• can reach a large number <strong>of</strong> people at relatively lowcost• can bypass a possibly indifferent mainstream media<strong>and</strong> reach people directly• provides ways to organize <strong>and</strong> motivate supporters(see blogs <strong>and</strong> blogging, podcasting, <strong>and</strong> socialnetworking)• allows for easier fund-raising, including potentiallymillions <strong>of</strong> small donationsThe first major c<strong>and</strong>idate to put together a campaignbased on these principles was Howard Dean, who for atime was frontrunner for the 2004 Democratic presidentialnomination. In the run-up to the 2008 race, libertarianRepublican Ron Paul, while barely registering in the polls,startled the mainstream media by raising more than $4 millionin one day from thous<strong>and</strong>s <strong>of</strong> supporters organized onthe Web.However, there are pitfalls for politicians in the digitalage as well. It is hard to control or coordinate self-organizedactivists, who may adopt positions that contradict the c<strong>and</strong>idate’sstated platform or engage in intemperate attacks.(In 2007 a video “mashup” by a Barack Obama supporterportraying Hillary Clinton as “big brother” in the famous1984 Apple Macintosh commercial led to denials that theObama campaign had anything to do with it.)Further, the legions <strong>of</strong> independent bloggers virtuallyguarantee that “stumbles” that might have been missed orignored by traditional media will be featured in blogs ordisplayed on YouTube for millions to ponder. (An examplewas Virginia senator George Allen, whose use <strong>of</strong> an obscureracial epithet macaca may have cost him reelection in 2006when it was captured by a video blogger.) It is unclearwhether the intense 24-hour scrutiny will force c<strong>and</strong>idatesto become ever more tightly scripted in their public activitiesso as to avoid “macaca moments.”Some critics also suggest that the Internet may actuallyweaken democracy in some ways. Because <strong>of</strong> the increasingability to personalize or customize what news one sees<strong>and</strong> whom one converses with, people could end up beingsimply confirmed in their beliefs <strong>and</strong> isolated from largerdialog. Extremist groups already use Web sites not only torecruit people, but to keep followers motivated <strong>and</strong> focusedon their issues, while in effect filtering out opposing views.The creation <strong>of</strong> such isolated constituencies, able to chooseto see only the kinds <strong>of</strong> things that make them comfortable,could be bad for democracy. (This could be called a form <strong>of</strong>self-censorship, as opposed to outwardly imposed censorship,as in China—see censorship <strong>and</strong> the Internet.) Onthe other h<strong>and</strong>, the sheer amount <strong>and</strong> variety <strong>of</strong> informationavailable may make it hard for people to cut themselves<strong>of</strong>f in this way.Despite these misgivings, the importance <strong>of</strong> the Webfor political activism <strong>and</strong> campaigns is clear. No campaign,whether political or issue advocacy, can afford not to have aquality Web site <strong>and</strong> staff who are adept at the new media <strong>and</strong>forms <strong>of</strong> communication, expression, <strong>and</strong> social networking.Further ReadingChadwick, Andrew. Internet Politics: States, Citizens, <strong>and</strong> New CommunicationTechnologies. New York: Oxford University Press,2006.Gar<strong>of</strong>oli, Joe. “Blogger Fest a Magnet for Liberal Politicos.” SanFrancisco Chronicle, July 29, 2007, p. A1. Available online.URL: http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/07/29/MNGRVR91RU1.DTL. Accessed November 8, 2007.Guynn, Jessica. “Growing Internet Role in Election.” San FranciscoChronicle, June 4, 2007, p. C-1. Available online. URL: http://sfgate.com/cgi-bin/article.cgi?f=/chronicle/archive/2007/06/04/BUGI6Q5L181. DTL. Accessed November 8, 2007.


378 popular culture <strong>and</strong> computingHogarth, Paul. “Hillary, Obama <strong>and</strong> the YouTube Election.” Beyond-Chron, March 21, 2007. Available online. URL: http://www.beyondchron.org/news/index.php?itemid=4322. Accessed November8, 2007.Jakoda, Karen A. B., ed. Crossing the River: The Coming <strong>of</strong> Age <strong>of</strong>the Internet in Politics <strong>and</strong> Advocacy. Philadelphia: Xlibris,2005.Nagourney, Adam. “Internet Injects Sweeping Change into U.S. Politics.”New York Times, April 2, 2006, p. 1 ff. Available online. URL:http://www.nytimes.com/2006/04/02/washington/02campaign.html?_r=1&or ef=slogin. Accessed November 8, 2007.Rainie, Lee, <strong>and</strong> John Horrigan. “Election 2006 Online.” Pew Internet& American Life Project, 2007. Available online. URL:http://www.pewinternet.org/pdfs/PIP_Politics_2006.pdf.Accessed November 8, 2007.TechPresident: Personal Democracy Forum. Available online.URL: http://www.techpresident.com/. Accessed November 8,2007.popular culture <strong>and</strong> computing<strong>Computer</strong> technology first came to public consciousnesswith the wartime ENIAC <strong>and</strong> the first commercial machinessuch as Univac in the early 1950s. The war had shown thedestructive side <strong>of</strong> new technologies (particularly atomicpower), but corporate <strong>and</strong> government leaders were soonpromoting their beneficial prospects. Just as atomic energyadvocates promised to provide power that was abundant,cheap, <strong>and</strong> clean, the computer, or “giant brain” was toutedfor its ability to solve problems that had been beyondhuman capabilities.Ominous MachinesHowever, the computer, too, had its shadow in the popularconsciousness. With their mysterious flashing lights<strong>and</strong> white-coated programmer/priests, mainframe computerswere <strong>of</strong>ten seen as modern embodiments <strong>of</strong> the “madscientist” trope, as in the movie Colossus: The Forbin Project(1970), where American <strong>and</strong> Soviet supercomputersjoined forces to take over the world. Artificial intelligencealso usurped humanity in the more mystical 2001: A SpaceOdyssey (1968).On the domestic front, the mainframe computer alsobecame a symbol <strong>of</strong> misgivings about the bureaucraticstate <strong>and</strong> corporate conformity. The romantic comedy filmDesk Set, featuring Katharine Hepburn as a beleagueredcorporate librarian, at first seems to confirm these fears,only to reveal that the computer had been misunderstood<strong>and</strong> would bring about a happier future for all. (IBM, incidentally,provided much <strong>of</strong> the technical support for thefilm.)The counterculture <strong>of</strong> the 1960s seemed much less sanguineabout the digital future. To many <strong>of</strong> the generation <strong>of</strong>activists starting with the Free Speech Movement in 1964,computers were the tools <strong>of</strong> the military-industrial complex,<strong>and</strong> computing facilities were sometimes picketed oreven physically attacked.However, a computer-savvy wing <strong>of</strong> the counterculturewas also rising (see hackers <strong>and</strong> hacking). Activistsbegan to see the machines as a tool for community organization<strong>and</strong> communication, as in 1973 with CommunityMemory, the first computer bulletin board system, accessedby teletype terminals.Getting PersonalBy the late 1970s the personal computer had arrived.On the one h<strong>and</strong>, PCs would seem not to fit the mainframestereotype. After all, the desktop machines aresmall <strong>and</strong> designed to be accessible helpers in everydaylife <strong>and</strong> work. Still, they could be connected to networks<strong>and</strong> perhaps used to take over the Pentagon’s doomsdayweapons—as in the movie War Games (1983). As fear<strong>of</strong> what malicious or criminal hackers could do took amore practical turn in the 1990s, such movies as The Net<strong>and</strong> Sneakers created a higher-tech incarnation <strong>of</strong> the spythriller. Finally, the series <strong>of</strong> movies beginning with TheMatrix extrapolated from the ultrarealistic movie effects<strong>and</strong> games <strong>of</strong> the coming century to raise the question <strong>of</strong>whether consensus reality could actually be a huge computersimulation.Meanwhile, the figure <strong>of</strong> the computer “geek” or “nerd”has become a staple character in movies <strong>and</strong> TV shows—clever, socially inept, but indispensable for keeping themodern world running. In some eyes, the entrepreneurialsuccess <strong>of</strong> Silicon Valley <strong>and</strong> the dot-coms placed Bill Gates<strong>and</strong> his colleagues in the same mold as Thomas Edison <strong>and</strong>Henry Ford a century earlier.Digitization <strong>of</strong> CultureBy the turn <strong>of</strong> the new century the network that had beenportrayed as the domain <strong>of</strong> hackers <strong>and</strong> spies had becomethe all-pervasive World Wide Web. Today computers <strong>and</strong>the Internet are not only reflected in American popular culture—theyare pr<strong>of</strong>oundly reshaping it. <strong>Computer</strong> games(particularly see online games) have become vast, persistentsocial worlds, as are sites like MySpace <strong>and</strong> Facebook(see social networking).With the blending <strong>of</strong> formerly distinct media (see digitalconvergence) <strong>and</strong> the fluid sharing <strong>and</strong> re-creation<strong>of</strong> images (see user-created content <strong>and</strong> mashups),the digital world now permeates mainstream culture—or,one might say, the culture itself has become digitized.Meanwhile the line between fact <strong>and</strong> fiction, creator <strong>and</strong>viewer, expert <strong>and</strong> amateur has become increasinglyblurred.Further ReadingFishwick, Marshall William. Probing Popular Culture: On <strong>and</strong> Offthe Internet. Binghamton, N.Y.: Haworth Press, 2004.Friedman, Ted. Electric Dreams: <strong>Computer</strong>s in American Culture.New York: NYU Press, 2005.King, Brad, <strong>and</strong> John Borl<strong>and</strong>. Dungeons <strong>and</strong> Dreamers: The Rise <strong>of</strong><strong>Computer</strong> Game Culture from Geek to Chic. Emeryville, Calif.:McGraw-Hill/Osborne, 2003.“Machines (<strong>and</strong> more) in Movies, Books <strong>and</strong> Music.” BerkshirePublishing Group. Available online. URL: http://www.berkshirepublishing.com/Human<strong>Computer</strong>InteractionAndPopCulture/list.asp. Accessed August 17, 2007.Nelson, Theodore H. <strong>Computer</strong> Lib/Dream Machines: You Can <strong>and</strong>Must Underst<strong>and</strong> <strong>Computer</strong>s Now. Chicago: Nelson, 1974.(Exp<strong>and</strong>ed, reprinted by Micros<strong>of</strong>t Press, 1987).


PostScript 379Polsson, Ken. “Personal <strong>Computer</strong> References in Pop Culture.”Available online. URL: http://www.isl<strong>and</strong>net.com/~kpolsson/comppop/. Accessed August 17, 2007.portalThe legion <strong>of</strong> new World Wide Web users who went onlinein the mid-1990s could easily navigate <strong>and</strong> “surf” the Web,using browsers such as Netscape <strong>and</strong> Internet Explorer (seeWeb browser). However, the lack <strong>of</strong> a reliable starting point<strong>and</strong> a systematic way to find information <strong>of</strong>ten led to frustration.Search engines such as AltaVista <strong>and</strong> Lycos (see searchengine) provided some help, but there was no single guidethat could present the most useful information at a glance.Meanwhile, in 1994, two graduate students, Jerry Yang<strong>and</strong> David Filo, had begun to circulate an organized listing<strong>of</strong> their favorite Web sites by e-mail. When the list provedvery popular, they decided they could make a business out<strong>of</strong> providing a Web site that could serve as a topical guideto the Web. The result was Yahoo!, the most successful <strong>of</strong>what would come to be called Web portals (see Yahoo).Yahoo! <strong>and</strong> other portals such as MSN (Micros<strong>of</strong>t Network),Excite, American Online (AOL), <strong>and</strong> Lycos generallyprovide a listing organized by topic <strong>and</strong> subtopic. Forexample, the general topic “<strong>Computer</strong>s <strong>and</strong> Internet” inYahoo! is divided into many subtopics such as communications<strong>and</strong> networking, hardware, s<strong>of</strong>tware, <strong>and</strong> so on. Manytopics are further subdivided until, at the bottom, there is alist <strong>of</strong> actual Web links that can be clicked upon to take theuser directly to the relevant site.The advantage <strong>of</strong> using a portal over using a searchengine is that the links on a portal have generally beenselected for quality, relevance, <strong>and</strong> usefulness. The disadvantageis the flip side <strong>of</strong> that selectivity: The links mayreflect the tastes, agenda, or commercial interests <strong>of</strong> theportal developers <strong>and</strong> thus exclude important points <strong>of</strong>view. When seeking to learn more about a subject, manyresearchers therefore both work “inward” from a portal <strong>and</strong>“outward” via a search engine (see online research).To gain a competitive edge <strong>and</strong> raise revenue, portalstypically include a considerable amount <strong>of</strong> advertising.Some portals also charge companies for being includedor featured in listings or displays. General-purpose portalsusually also contain such information as current news,stock prices, weather, <strong>and</strong> other timely information in anattempt to become their user’s default page. Portals (particularlyYahoo!) have also sought to become more attractive(<strong>and</strong> pr<strong>of</strong>itable) by including such services as travel,financial services, games, <strong>and</strong> auctions.Some portals emphasize particular approaches to information.For example, About.com goes beyond simply listinglinks to providing extensive guides to hundreds <strong>of</strong> subjectsin a sort <strong>of</strong> newsletter format. There are also portalsdesigned to serve particular constituencies, such as pr<strong>of</strong>essionalgroups, industries, or hobby or interest groups.Companies can also create “enterprise portals” that canhelp employees keep in touch with developments <strong>and</strong> shareinformation. Such portals <strong>of</strong>ten serve as the Web-basedinterface to the corporate local area network (LAN).As with other information content providers, commercialportal developers have struggled to obtain enough revenueto keep up with the need to exp<strong>and</strong> <strong>and</strong> compete in newareas. It is unclear whether the market will support morethan a h<strong>and</strong>ful <strong>of</strong> large consumer portals in the long run,but both commercial <strong>and</strong> specialized portals have becomean important part <strong>of</strong> the way most people access the Web.Further ReadingAbout.com. Available online. URL: http://www.about.com.Accessed August 17, 2007.Angel, Karen. Inside Yahoo!: Reinvention <strong>and</strong> the Road Ahead. NewYork: Wiley, 2002.“Frequently Asked Questions about Portals (FAQs).” Traffick.Available online. URL: http://www.traffick.com/article.asp?aID=9. Accessed August 17, 2007.Hock, R<strong>and</strong>olph. Yahoo! to the Max: An Extreme Searcher Guide.Medford, N.J.: Information Today, 2005.Kastel, Berthold. Enterprise Portals for the Business <strong>and</strong> IT Pr<strong>of</strong>essional.Sarasota, Fla.: Competitive Edge International, 2003.Linwood, Jeff, <strong>and</strong> Dave Minter. Building Portals with the Java PortletAPI. Berkeley, Calif.: Apress, 2004.Sullivan, Dan. Proven Portals: Best Practices for Planning, Designing,<strong>and</strong> Developing Enterprise Portals. Upper Saddle River, N.J.:Addison-Wesley Pr<strong>of</strong>essional, 2003.Utvich, Michael, Ken Milhous, <strong>and</strong> Yana Beylinson. 1 Hour WebSite: 120 Pr<strong>of</strong>essional Web Templates <strong>and</strong> Skins to Let You CreateYour Own Web Sites—Fast. Hoboken, N.J.: Wiley, 2007.Yahoo! Available online. URL: http://www.yahoo.com. AccessedAugust 17, 2007.PostScriptEarly computer printers were limited to one or a fewbuilt-in fonts, either stamped on typewriter style keys ondaisy wheels, or stored as patterns in the printer’s s<strong>of</strong>tware(with dot matrix printers). In the mid-1970s, whenXerox researchers were developing the laser printer, theyrealized they needed an actual programming language thatcould describe fonts, graphics, <strong>and</strong> other elements thatcould be printed on the more versatile new printers. PARCresearchers developed InterPress; meanwhile two <strong>of</strong> them,John Warnock <strong>and</strong> Chuck Geschke, founded their owncompany in 1982 (see Adobe Systems). They then createda more streamlined version <strong>of</strong> InterPress that they calledPostScript. The first printer to include built-in PostScriptcapability was Apple’s LaserWriter, in 1985. PostScript soonbecame the st<strong>and</strong>ard for a burgeoning industry (see desktoppublishing).Because PostScript is an actual programming language(for a somewhat similar language, see Forth), s<strong>of</strong>twaresuch as word processors can include functions that turna text document into a PostScript document, ready forprinting. A PostScript interpreter in the printer (or even inanother application) interprets the PostScript comm<strong>and</strong>sto re-create the document. The comm<strong>and</strong>s specify rasters(combinations <strong>of</strong> straight lines <strong>and</strong> curves), which canbe scaled <strong>and</strong> transformed to provide the specified output,including fonts, which can be enhanced by including“hints” to help the system identify key features. This processoris thus sometimes called a Raster Image Processor(RIP).


380 presentation s<strong>of</strong>twareDeclineBy the late 1990s, however, PostScript was declining inuse. In part this was because <strong>of</strong> the advent <strong>of</strong> cheaper inkjetprinters, which used simpler (<strong>and</strong> cheaper) s<strong>of</strong>tware.Further, PostScript’s role as a st<strong>and</strong>ard format for distributingdocuments has been largely replaced by one <strong>of</strong> Adobe’sother st<strong>and</strong>ards, the Portable Document Format (seePDF). However, PostScript-equipped laser printers are stillfavored for heavy-duty printing jobs, because the documentprocessing can be done in the printer instead <strong>of</strong> adding tothe burden <strong>of</strong> the main CPU.Further ReadingAdobe Systems Incorporated. PostScript Language Reference. 3rded. Reading, Mass.: Addison-Wesley, 1999. Available online.URL: http://partners.adobe.com/public/developer/en/ps/PLRM.pdf. Accessed November 8, 2007.———. PostScript Language Tutorial <strong>and</strong> Cookbook. Upper SaddleRiver, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2007. Availableonline. URL: http://www-cdf.fnal.gov/<strong>of</strong>fline/PostScript/BLUEBOOK.PDF. Accessed November 8, 2007.Weingartner, Peter. “A First Guide to PostScript.” Available online.URL: http://www.tailrecursive.org/postscript/postscript.html.Accessed November 8, 2007.presentation s<strong>of</strong>twareWhether at a business meeting or a scientific conference,the use <strong>of</strong> slides or transparencies has been largely replacedby s<strong>of</strong>tware that can create a graphic presentation. Generally,the user creates a series <strong>of</strong> virtual “slides,” which canconsist <strong>of</strong> text (such as bullet points) <strong>and</strong> charts or othergraphics. Often there are templates already structured forvarious types <strong>of</strong> presentations, so the user only needs tosupply the appropriate text or graphics. There are a variety<strong>of</strong> options for the general visual style, as well as for transitions(such as dissolves) between slides. Another useful featureis the ability to time the presentation <strong>and</strong> provide cuesfor the speaker. Finished presentations can be shown on ast<strong>and</strong>ard monitor screen (if the audience is small) or outputto a screen projector.Micros<strong>of</strong>t PowerPoint is an example <strong>of</strong> presentation s<strong>of</strong>tware. Such s<strong>of</strong>tware uses a “slideshow” metaphor in which screens corresponding toslides can be created <strong>and</strong> arranged on a timeline for playing. Many types <strong>of</strong> special effects are also available.


printers 381Micros<strong>of</strong>t PowerPoint is the most widely used presentationprogram. It includes the ability to import Excelspreadsheets, Word documents, or other items created byMicros<strong>of</strong>t Office suite applications. The user can switchbetween outline view (which shows the overall structure <strong>of</strong>the presentation) to viewing individual slides or workingwith the slides as a collection.There are a number <strong>of</strong> alternatives available includingApple’s Keynote <strong>and</strong> Open Office, which includes a presentationprogram comparable to PowerPoint. Another alternativeis to use HTML Web-authoring programs to createthe presentation in the form <strong>of</strong> a set <strong>of</strong> linked Web pages.(PowerPoint <strong>and</strong> other presentation packages can also converttheir presentations to HTML.) Although creating presentationsin HTML may be more difficult than using aproprietary package <strong>and</strong> the results may be somewhat lesspolished, the universality <strong>of</strong> HTML <strong>and</strong> the ability to runpresentations from a Web site are strong advantages <strong>of</strong> thatapproach.A number <strong>of</strong> observers have criticized the general sameness<strong>of</strong> most business presentations. Some presentationdevelopers opt to use full-fledged animation, created withproducts such as Macromedia Director.Further ReadingImpress: More Power to Your Presentations. Available online. URL:http://www.open<strong>of</strong>fice.org/product/impress.html. AccessedAugust 17, 2007.Keynote (Apple iWork). Available online. URL: http://www.apple.com/iwork/keynote/. Accessed August 17, 2007.Lowe, Doug. PowerPoint 2007 for Dummies. Hoboken, N.J.: Wiley,2007.Rutledge, Patrice-Anne, Geetesh Bajaj, <strong>and</strong> Tom Muccolo. SpecialEdition Using Micros<strong>of</strong>t Office PowerPoint 2007. Indianapolis:Que, 2006.A dot-matrix printer uses an array <strong>of</strong> pins controlled by solenoids.Each character has a pattern <strong>of</strong> pins that are pushed against a typewriter-likeribbon to form the character on the paper.printersFrom the earliest days <strong>of</strong> computing, computer users neededsome way to make a permanent record <strong>of</strong> the machine’s output.Although results <strong>of</strong> a program could be punched ontocards or saved to magnetic tape or some other medium, atsome point data has to be readable by human beings. Thisfact was recognized by the earliest computer <strong>and</strong> calculatordesigners: Charles Babbage (see Babbage, Charles)designed a printing mechanism for his never-finished computing“engine,” <strong>and</strong> Williams Burroughs patented a printingcalculator in 1888.Typewriter-Like PrintersThe large computers that first became available in the 1950s(see mainframe) used “line printers.” These devices haveone hammer for each column <strong>of</strong> the output. A rapidly movingb<strong>and</strong> <strong>of</strong> type moves under the hammers. Each hammerstrikes the b<strong>and</strong> when the correct character passes by.Printing is therefore done line by line, hence the name. Lineprinters were fast (600 lines per minute or more) but like themainframes they served, they were bulky <strong>and</strong> expensive.The typewriter <strong>of</strong>fered another point <strong>of</strong> departure fordesigning printers. A few early computers such as theBINAC (an <strong>of</strong>fshoot <strong>of</strong> ENIAC) used typewriters riggedwith magnetically controlled switches (solenoids). However,a more natural fit was with the Teletype, inventedearly in the 20th century to print telegraph messages. Sincethe Teletype is already designed to print from electricallytransmitted character codes, it was easy to rig up a circuitto translate the contents <strong>of</strong> computer data into appropriatecodes for printing. (Since the Teletype could send as well asreceive messages, it was <strong>of</strong>ten used as a control terminal forcomputer operators or for time-sharing computer users intothe 1970s.)The daisy-wheel printer was another typewriter-likedevice. It used a movable wheel with the letters embeddedin slim “petals” (hence the name). It was slow (about10 characters a second), noisy, <strong>and</strong> expensive, but it wasthe only affordable alternative for early personal computerusers who required “letter-quality” output.Dot-Matrix PrintersThe dot-matrix printer, which came into common usein the 1980s, uses a different principle <strong>of</strong> operation thantypewriter-style printers. Unlike the latter, the dot-matrixprinter does not form solid characters. Instead, it uses an


382 printersarray <strong>of</strong> magnetically controlled pins (9 pins at first, but 24on later models). Each character is formed by pressing theappropriate pins into a ribbon that pushes into the paper,leaving a pattern <strong>of</strong> tiny dots.Besides being relatively inexpensive, dot-matrix printersare versatile in that a great variety <strong>of</strong> character stylesor fonts can be printed (see font), either by loading differentsets <strong>of</strong> bitmaps. Likewise, graphic images can also beprinted. However, because the characters are made <strong>of</strong> tinydots, they don’t have the crisp, solid look <strong>of</strong> printed type.Laser <strong>and</strong> Ink-jet PrintersThe majority <strong>of</strong> printers used today use laser or ink-jet technology.Both combine the versatility <strong>of</strong> dot-matrix with theletter quality <strong>of</strong> typewriter-style printers. Xerox introducedthe first laser printer in the 1970s, although the technologywas too expensive for most users at first.The laser printer converts data from the computer intosignals that direct the laser beam to hit precise, tiny areas<strong>of</strong> a revolving drum. The drum is covered with a charged(usually negative) film. The areas hit by the laser, however,A laser printer uses a mirror-controlled laser beam to strike smallspots on a rotating drum (called an OPC or Organic PhotoconductingCartridge) that had been given an electrical charge (usuallypositive) by a corona wire. The spots where the light beam hit aregiven an opposite charge (usually negative). The drum is thencoated with a powdery toner that is charged opposite to the placeswhere the light hit, so the toner clings to the drum to form the patterns<strong>of</strong> the characters or graphics. A piece <strong>of</strong> paper is then givena strong negative charge so it can pull the toner <strong>of</strong>f the drum as itpasses under it. Finally, heated rollers called fusers bind the tonerto the paper to form the final image.gain the opposite charge. As the drum continues to revolve,toner (a black powder) is dispensed. Because the toner isgiven a charge opposite to the places where the laser hit, thetoner sticks to those places. Meanwhile, the paper is drawninto the drum. Because the paper is given the same chargeas that produced by the laser beam (but stronger), the toneris pulled from the dots on the drum to the correspondingparts <strong>of</strong> the paper, forming the characters or graphics. Aheating system then fuses the toner to the paper to makethe image permanent. Meanwhile, the drum is discharged<strong>and</strong> the printer is ready for the next sheet <strong>of</strong> paper.Color laser printers are also available, although they arestill relatively expensive. They work by using four revolutions<strong>of</strong> the drum for each sheet <strong>of</strong> paper, depositing appropriateamounts <strong>of</strong> black, magenta, cyan, <strong>and</strong> yellow toner.Laser printers fell in price throughout the 1990s (to$500 or so), but were soon rivaled by a different technology,the ink-jet printer.The ink-jet printer has a print head that contains an inkcartridge for each primary printing color. Each cartridgehas 50 nozzles, each thinner than a human hair. To print,the appropriate nozzles <strong>of</strong> the appropriate colors are subjectedto electric current, which goes through a tiny resistorin the nozzle. An intense heat results for a few microseconds,long enough to create a tiny bubble that in turn forcesa droplet <strong>of</strong> ink onto the page.Ink-jet printers are generally slower than lasers, althoughfast enough for most purposes. Although the ink-jet is likethe dot-matrix in producing tiny dots, the dots are muchfiner. With output at up to 2,880 dots per inch, the resultingcharacters are virtually indistinguishable from typeprinting.Using high resolution <strong>and</strong> special papers, ink-jetprinters can now also produce photo prints comparable tothose created by traditional processes.An interesting <strong>of</strong>fshoot <strong>of</strong> ink-jet printing technologycan be found in the development by HP <strong>of</strong> skin patches thatcan deliver controlled doses <strong>of</strong> drugs using tiny, virtuallypainless needles. The tiny droplets <strong>of</strong> drugs are transportedin much the same way as ink goes from cartridge reservoirto page.TrendsBy the end <strong>of</strong> the 1990s, the ink-jet printer was decliningsteeply in price, <strong>and</strong> today quite capable units canbe purchased for as little as $30 or so. Because <strong>of</strong> theirgreater speed, however, lasers are still used for higher-volumeprinting operations. “Multifunction” units combiningprinter, scanner, copier, <strong>and</strong> fax functions are also popular<strong>and</strong> cost less than a printer alone did only a few years ago.Advocates <strong>of</strong> <strong>of</strong>fice automation have long predicted the“paperless <strong>of</strong>fice,” but so far computers <strong>and</strong> their printershave churned out more paper, not less. However, there aresome trends that might eventually reverse this course. Development<strong>of</strong> practical “electronic books” (page-size displaysthat can hold thous<strong>and</strong>s <strong>of</strong> pages <strong>of</strong> text) may reduce theneed for printed output (see e-books <strong>and</strong> digital libraries).Another possible replacement for printing is “electronicink,” a sheet <strong>of</strong> paper with charged ink held in suspension.The text or graphics on the page can be changed electroni-


privacy in the digital age 383cally, so it can be reused indefinitely. Finally, the ability toaccess data anywhere on h<strong>and</strong>held or laptop computers mayalso reduce the need to make printouts.Further ReadingHarris, Tom. “How Laser Printers Work.” Available online. URL:http://home.howstuffworks.com/laser-printer.htm. AccessedAugust 17, 2007.“Printer Buying Guide” (Cnet Reviews). Available online. URL:http://reviews.cnet.com/4520-7604_7-1016838-1.html.Accessed August 17, 2007.“Printers: The Essential Buying Guide.” PC Magazine. Availableonline. URL: http://www.pcmag.com/article2/0,1895,1766,00.asp. Accessed August 17, 2007.Tyson, Jeff. “How Inkjet Printers Work.” Available online. URL:http://www.howstuffworks.com/inkjet-printer.htm. AccessedAugust 17, 2007.privacy in the digital ageQuoted in Fred H. Cate’s Privacy in the Information Age,legal scholar Alan F. Westin has defined privacy as “theclaim <strong>of</strong> individuals, groups, or institutions to determinefor themselves when, how, <strong>and</strong> to what extent informationabout themselves is communicated to others.”Since the mid-19th century, advances in communicationstechnology have raised new problems for people seekingto protect privacy rights. During the Civil War telegraphlines were tapped by both sides. In 1928, the U.S. SupremeCourt in Olmstead v. U.S. refused to extend Fourth Amendmentprivacy protections to prevent federal agents from tappingphone lines without a warrant. Almost 50 years later,the court would revisit the issue in Katz v. U.S. <strong>and</strong> rulethat telephone users did have an “expectation <strong>of</strong> privacy.”The decision also acknowledged the need to adapt legalprinciples to the realities <strong>of</strong> new technology.In the second half <strong>of</strong> the 20th century the growing use<strong>of</strong> computers would raise two basic kinds <strong>of</strong> privacy problems:surveillance <strong>and</strong> misuse <strong>of</strong> data.Surveillance <strong>and</strong> EncryptionSince much sensitive personal <strong>and</strong> business informationis now transmitted between or stored on computers, suchinformation is subject to new forms <strong>of</strong> surveillance or interception.Keystrokes can be captured using surreptitiouslyinstalled s<strong>of</strong>tware <strong>and</strong> e-mails can be intercepted from serversor a user’s hard drive. Many employers now routinelymonitor employees’ computer activity at work, includingtheir use <strong>of</strong> the World Wide Web. When this practice ischallenged, courts have generally sided with the employer,accepting the argument that the computers at work exist forbusiness purposes, not private communications, <strong>and</strong> thusdo not carry much <strong>of</strong> an expectation <strong>of</strong> privacy. Employers,however, have been encouraged to spell out their employeemonitoring or surveillance policies explicitly. Outside theworkplace, some protection is <strong>of</strong>fered by the ElectronicCommunications Privacy Act (ECPA), passed in 1986.Shadowy accounts about a secret system called Echelonhave suggested that the National Security Agency has inplace a massive system that can intercept worldwide communicationsranging from e-mail to cell phone conversations.Apparently, rooms full <strong>of</strong> supercomputers can siftthrough this torrent <strong>of</strong> communication, looking for keywords that might indicate a threat to the United States or itsallies. (Much communication is in “clear” text; the ability <strong>of</strong>the government to crack strong encryption is unclear.)<strong>Technology</strong> can be used to penetrate privacy, but it canalso be used to safeguard it (see encryption). Public keyencryption programs such as Pretty Good Privacy (PGP)can encode text so that it cannot be read without a veryhard-to-crackkey. The U.S. government, whose agenciesenjoyed powerful surveillance capabilities, initially foughtto suppress the use <strong>of</strong> encryption, but a combination <strong>of</strong>unfavorable court decisions <strong>and</strong> the ability to spread s<strong>of</strong>twareacross the Internet has pretty much decided the battlein favor <strong>of</strong> encryption users.In the aftermath <strong>of</strong> the terrorist attacks <strong>of</strong> September11, 2001, the federal government pressed for exp<strong>and</strong>ed surveillancepowers, some <strong>of</strong> which were granted in the USAPATRIOT Act <strong>of</strong> 2001. (The Foreign Intelligence SurveillanceAct [FISA] regulates wiretapping <strong>of</strong> U.S. persons toobtain foreign intelligence information, requiring that awarrant be obtained from a secret court. In 2008 after revelationsthat the administration was engaging in warrantlessdomestic surveillance outside <strong>of</strong> FISA, Congress passedan amendment that required FISA permission to wiretapAmericans living abroad.) <strong>Computer</strong>ized surveillance <strong>and</strong>identification systems (see biometrics) are also likely to beexp<strong>and</strong>ed in airports in other public places as part <strong>of</strong> the“War on Terrorism.”Information PrivacyMany privacy concerns arise not from the activities <strong>of</strong> spyor police agencies, but from the potential for the misuse <strong>of</strong>the many types <strong>of</strong> personal information now collected bybusinesses or government agencies. As far back as 1972, theAdvisory Committee on Automated Personal Data Systemsrecommended the following st<strong>and</strong>ards to the secretary <strong>of</strong>the Department <strong>of</strong> Health, Education, <strong>and</strong> Welfare:1. There must be no personal data record-keeping systemswhose very existence is secret.2. There must be a way for an individual to find outwhat information about him/her is on record <strong>and</strong>how it is used.3. There must be a way for an individual to correct oramend a record <strong>of</strong> identifiable information abouthim/her.4. There must be a way for an individual to preventinformation about him/her that was obtained forone purpose from being used or made available forother purposes without his/her consent.5. Any organization creating, maintaining, using, ordisseminating records <strong>of</strong> identifiable personal datamust guarantee the reliability <strong>of</strong> the data for theirintended use <strong>and</strong> must take precautions to preventmisuse <strong>of</strong> the data.The Federal Privacy Act <strong>of</strong> 1974 generally implementedthese principles with regard to data maintained by federal


384 procedures <strong>and</strong> functionsagencies. Later, federal laws have attempted to address particulartypes <strong>of</strong> information, including school records, medicalrecords, <strong>and</strong> video rentals.However, much <strong>of</strong> the information collected from peopleresults from commercial transactions or other interactionswith businesses, particularly via the Internet. Althoughencrypted processing systems have reduced the chance thata credit card number submitted to a store will be stolen, socalledidentity thieves may be able to obtain credit reportsunder false pretenses or collect enough information abouta person from various databases (including Social Securitynumbers). With that information, the thief can take outcredit cards in the person’s name <strong>and</strong> run up huge bills (seeidentity theft <strong>and</strong> phishing <strong>and</strong> spo<strong>of</strong>ing). While thedirect financial liability from identity theft is capped, thepsychological impact <strong>and</strong> the effort required for victims torehabilitate their credit st<strong>and</strong>ing can be considerable. In afew cases the same techniques have been used by stalkers,sometimes with tragic consequences.The ability <strong>of</strong> Web sites to track where a visitor clicksby means <strong>of</strong> small files called “cookies” has also disturbedmany people (see cookies). As with the recording <strong>of</strong>purchase information by supermarkets <strong>and</strong> other stores,businesses justify the practice as allowing for targetedmarketing that can provide consumers with informationlikely to be <strong>of</strong> interest to them. (Many e-mail addresses arealso gathered to be sold for use for unsolicited e-mail—seespam.) An even more intrusive technique involves the surreptitiousinstallation <strong>of</strong> s<strong>of</strong>tware on the user’s computerfor purposes <strong>of</strong> displaying advertising content or gatheringinformation. In turn, programmers have distributed freeutilities for identifying <strong>and</strong> removing such “adware” or“spyware.”While such consumer tracking is not as dangerous asidentity theft, it feels like an invasion <strong>of</strong> privacy to manypeople as well as a source <strong>of</strong> insecurity, particularly becausethere are as yet few regulations governing such practices.However, in response to such concerns many businesseshave put “privacy statements” on their Web sites, explainingwhat information about visitors will be collected <strong>and</strong>how it may be used. Businesses that meet st<strong>and</strong>ards for disclosure<strong>of</strong> their privacy practices can also display the seal <strong>of</strong>approval <strong>of</strong> organizations such as TRUSTe.Many privacy advocates, however, believe that self-regulationis not sufficient to truly protect consumer privacy.They support strong new regulations, including “optin”provisions that would require businesses to receiveexplicit permission from the consumer before collectinginformation.Privacy <strong>and</strong> Pervasive ComputingBeyond the Web <strong>and</strong> e-commerce, new challenges to privacyare emerging (see ubiquitous computing). In themovie Minority Report, stores instantly mine data aboutapproaching consumers <strong>and</strong> project personalized holographicads in front <strong>of</strong> their eyes. While that technologyis happily not here yet, many <strong>of</strong> the component piecesare (see data mining <strong>and</strong> RFID). Add global positioning(GPS) tracking to the mix, <strong>and</strong> another important part<strong>of</strong> privacy is threatened: “locational privacy.” Certainlyone can envisage situations where knowing not only whosomeone is but where they are can increase vulnerabilityto abuse.In response to these pervasive threats to privacy, manyadvocates continue to push for regulation <strong>of</strong> data gathering<strong>and</strong> ways to hold people legally responsible for misuse <strong>of</strong>personal information. However, some writers such as sciencefiction writer <strong>and</strong> futurist David Brin argue that thebattle for privacy is already lost, but the battle for transparency<strong>and</strong> mutual accountability may still be won—if thewatched can watch the watchers.Further ReadingBrin, David. The Transparent Society. Reading, Mass.: Addison-Wesley, 1998.Cate, Fred H. Privacy in the Information Age. Washington, D.C.:Brookings Institution, 1997.Electronic Frontier Foundation. Available online. URL: http://www.eff.org. Accessed August 17, 2007.Electronic Privacy Information Center. Available online. URL:http://www.epic.org. Accessed August 17, 2007.Henderson, Harry. Privacy in the Information Age (Library in aBook). 2nd ed. New York: Facts On File, 2006.Hunter, Richard. World without Secrets: Business, Crime <strong>and</strong> Privacyin the Age <strong>of</strong> Ubiquitous Computing. New York: Wiley2002.Monmonier, Mark. Spying with Maps: Surveillance Technologies <strong>and</strong>the Future <strong>of</strong> Privacy. Chicago: University <strong>of</strong> Chicago Press,2002.Solove, Daniel. The Digital Person: <strong>Technology</strong> <strong>and</strong> Privacy in theInformation Age. Rev. ed. New York: NYU Press, 2006.procedures <strong>and</strong> functionsFrom the earliest days <strong>of</strong> programming, programmers <strong>and</strong>language designers realized that it would be very useful toorganize programs so that each task to be performed by theprogram had its own discrete section <strong>of</strong> code. After all, a programwill <strong>of</strong>ten have to perform the same task, such as sortingor printing data, at several different points in its processing.Instead <strong>of</strong> writing out the necessary code instructions eachtime they are needed, why not write the instructions just once<strong>and</strong> have a mechanism by which they can be called upon asneeded? Such callable program sections have been known asprocedures, subroutines, or subprograms.The simplest sort <strong>of</strong> subroutine is found in assembly languages<strong>and</strong> early versions <strong>of</strong> BASIC or FORTRAN. In BASIC,for example, a GOSUB statement contains a line number.When the statement is encountered, execution “jumps” tothe statement with that line number, <strong>and</strong> continues fromthere until a statement such as RETURN is encountered.For example:10 TOTAL = 1020 GOSUB 4030 END40 PRINT “The total is: ”;50 PRINT TOTAL60 RETURN


programming as a pr<strong>of</strong>ession 385Here execution jumps from line 20 to line 40. After lines40–60 are executed, the program returns to line 30, whereit ends.Procedures with ParametersThe simple subroutine mechanism has some disadvantages,however. The subroutine gets the information it needs fromthe main part <strong>of</strong> the program implicitly through the globalvariables that have been defined (see variable). If it needsto return information, it does it by changing the value <strong>of</strong> oneor more <strong>of</strong> these global variables. The problem is that manydifferent subroutines may be relying upon the same variables<strong>and</strong> at the same time changing them, leading to unpredictableresults. Modern programming practice thereforegenerally avoids using global variables as much as possible.Most high-level languages today (including Pascal, C/C++, Java, <strong>and</strong> modern versions <strong>of</strong> BASIC) define subprogramsas procedures that pass information through specifiedparameters. For example, a procedure in Pascal mightbe defined as:Procedure PrintChar (CharNum : integer);This procedure has one parameter, an integer that specifiesthe number <strong>of</strong> the character to be printed (see characters<strong>and</strong> strings).The main program can call the procedure by giving itsname <strong>and</strong> an appropriate character number. For example:PrintChar (32);The code within the procedure does not work with theparameter CharNum directly. Rather, it receives a copy that itcan use. Thus, the procedure might include the statements:Writeln (‘Character number: ’, CharNum );Writeln (chr (CharNum));The program will print the character number <strong>and</strong> thenprint the character itself on the next line (for characternumber 32 this will actually be a blank).This typical way <strong>of</strong> using parameters is called passing byvalue. However, it is possible to pass a parameter to a procedure<strong>and</strong> have the parameter itself used rather than workingwith a copy. This is called “passing by reference.” Pascal usesthe var keyword for this purpose, while C passes a pointer tothe variable (see pointers <strong>and</strong> indirection), <strong>and</strong> C++ <strong>and</strong>Java prefix the variable name with an ampers<strong>and</strong> (&). Forexample, suppose one has a C function defined as follows:int ByTwo (int * Val){Val = Val * 2;}In the following statements in the calling program:Int Value, NewValue;Value = 10;NewValue = By Two (Value);NewValue would be set to 20 because the actual variableValue has been multiplied by two inside the ByTwo function.FunctionsA function is a procedure that returns its results as a valuein place <strong>of</strong> the function name in the calling statement. Forexample, a function in C to raise a specified number to aspecified power might be defined like this:int Power (int base, int exp)(C <strong>and</strong> related languages don’t use a keyword like Pascal’sprocedure or function because in C all procedures arefunctions.)This definition says that the Power function takes twointeger parameters, base <strong>and</strong> exp, <strong>and</strong> returns an integervalue.Suppose somewhere in the program there are the followingstatements:Int Base = 8;Int Dimensions = 3;Size = Power (Base, Dimensions);The variable Size will receive the value <strong>of</strong> Power (8, 3) or 512.Although the syntax for using procedures or functionsvaries by language, there are some principles that are generallyapplicable. The type <strong>of</strong> data expected by a procedureshould be carefully defined (see data types). Modern compilersgenerally catch mismatches between the type <strong>of</strong> datain the calling statement <strong>and</strong> what is defined in the proceduredeclaration. Procedures should also be checked forunwanted “side effects,” which they can minimize by notusing global variables.Procedures <strong>and</strong> functions relating to a particular taskare <strong>of</strong>ten grouped into separate files (sometimes called unitsor modules) where they can be compiled <strong>and</strong> linked into aprogram that needs to use them (see library, program).Object-oriented languages such as C++ think <strong>of</strong> proceduresin a somewhat different way from the examplesshown here. While a traditional program sees proceduresas blocks <strong>of</strong> code to be invoked for various purposes, anobject-oriented program sees procedures as “methods” orcapabilities <strong>of</strong> the program’s various objects (see objectorientedprogramming).Further Reading“Introduction to Python: Functions.” Available online. URL: http://www.penzilla.net/tutorials/python/functions/. Accessed August17, 2007.Kernighan, Brian W., <strong>and</strong> Dennis M. Ritchie. The C ProgrammingLanguage. 2nd ed. Englewood Cliffs, N.J.: Prentice Hall, 1988.“Procedures <strong>and</strong> Functions” [in VBScript]. Available online. URL:http://www.functionx.com/vbscript/Lesson06.htm. AccessedAugust 17, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson Addison Wesley, 2007.“Subroutines” [in Perl]. Available online. URL: http://www.comp.leeds.ac.uk/Perl/subroutines.html. Accessed August 17, 2007.programming as a pr<strong>of</strong>essionAll computer applications depend upon the ability to directthe machine to perform instructions such as fetching orstoring data, making logical comparisons, or performing


386 programming as a pr<strong>of</strong>essioncalculations. Although practical electronic computers firstbegan to be built in the 1940s, it took considerable time forprogramming to emerge as a distinct pr<strong>of</strong>ession. The firstprogrammers were the computer designers themselves, followedby people (<strong>of</strong>ten women) recruited from clerical personswho were good at mathematics. With machines likeENIAC, programming was more like setting up a complicatedpiece <strong>of</strong> factory machinery than like writing. Switchesor plugboards had to be set, <strong>and</strong> numeric instruction codespunched on cards to instruct the machine to move eachpiece <strong>of</strong> data from one location to another or to perform anarithmetic or logical operation.Two factors led to greater recognition for the art or craft<strong>of</strong> programming. First, as more computers were built <strong>and</strong>put to work for various purposes, more programmers wereneeded, as well as more attention to their training <strong>and</strong> management.Second, as programs became larger <strong>and</strong> more complex,a number <strong>of</strong> high-level languages such as COBOL <strong>and</strong>FORTRAN came into use (see programming languages).Besides making it easier to write programs, having just afew languages in widespread use made skills more readilytransferable from one computer installation to another. Andas with any pr<strong>of</strong>ession, programming developed bodies <strong>of</strong>knowledge <strong>and</strong> practice.At the same time, advances in language developmentwould raise a recurrent question: Are pr<strong>of</strong>essional programmersreally necessary? Since FORTRAN looked a lot likeordinary mathematical notation, couldn’t scientists <strong>and</strong>engineers just write the programs they need without hiringspecialists for the job? Similarly, some enthusiasts ledmanagers to think that with COBOL accountants (or evenmanagers) could write their own business programs.Sometimes part-time or “amateur” programming didprove to be practicable, particularly for scientists who foundthat writing a quick FORTRAN routine to solve a problemwas easier than trying to explain the problem to a pr<strong>of</strong>essionalprogrammer. However, the pr<strong>of</strong>essional programmer’sjob was never really in danger. Businesspeople wereless inclined to try to learn COBOL <strong>and</strong> entrust somethinglike the company’s payroll processing to ad hoc efforts. Inaddition, the programs that controlled the operation <strong>of</strong> thecomputer itself, which became known as operating systems,required both arcane knowledge <strong>and</strong> the ability to design,verify, test, <strong>and</strong> debug increasingly complex systems (sees<strong>of</strong>tware engineering).Development <strong>of</strong> PracticeIn response to this growing complexity, computer scientistsapproached the improvement <strong>of</strong> programming practice onseveral levels. New languages developed in the 1960s <strong>and</strong>1970s featured well-defined control structures, data types,<strong>and</strong> procedure calls (see Algol, Pascal, C, data types,loop, <strong>and</strong> structured programming.) The management<strong>of</strong> programming teams <strong>and</strong> the factors affecting productivitywere examined by pioneers such as Frederick Brooks,author <strong>of</strong> The Mythical Man-Month, <strong>and</strong> IBM sponsoredworkshops <strong>and</strong> study groups.While many mainframe business programmers continuedto write <strong>and</strong> maintain programs written in the olderlanguages (such as COBOL), starting in the 1970s a newgeneration <strong>of</strong> systems <strong>and</strong> applications programmers usedC <strong>and</strong> worked in a different environment—campus minicomputersrunning UNIX. Unlike the hierarchical, systematicapproach <strong>of</strong> the “mainframe culture,” the minicomputerprogrammers tended toward a decentralized but cooperativeapproach (see open-source movement <strong>and</strong> hackers<strong>and</strong> hacking).When the personal computer revolution began to arriveat the end <strong>of</strong> the 1970s, much <strong>of</strong> the evolution <strong>of</strong> programmingculture would be recapitulated. Since early microcomputersystems had very limited memory, programmerswho wanted to get useful work out <strong>of</strong> machines such as theApple II had to work mainly in assembly language or writequick <strong>and</strong> dirty programs in a limited dialect <strong>of</strong> BASIC. Thehobbyists <strong>and</strong> early adopters <strong>of</strong>ten knew little about theacademic world <strong>of</strong> computer science <strong>and</strong> s<strong>of</strong>tware engineering,but they were good at wringing the most out <strong>of</strong> eachclock cycle <strong>and</strong> byte <strong>of</strong> memory.As personal computers gained in power <strong>and</strong> capabilitythrough the 1980s, programmers were able to use higherlevellanguages such as C. Applications such as word processors,spreadsheets, <strong>and</strong> graphics programs became morecomplex, <strong>and</strong> programmers had to work in larger teams liketheir mainframe counterparts.At the same time, the sharp demarcation between programmer<strong>and</strong> user became less distinct with the personalcomputer. Many users who were not pr<strong>of</strong>essional programmersused applications s<strong>of</strong>tware that included programmablefeatures, such as spreadsheets <strong>and</strong> simple data bases (seemacro <strong>and</strong> scripting language). New languages such asVisual Basic let even relatively inexperienced programmersplug in user interfaces <strong>and</strong> other components <strong>and</strong> createuseful programs (see programming environment).Each sector <strong>of</strong> programming seems to go through acycle <strong>of</strong> improvisation <strong>and</strong> innovation followed by st<strong>and</strong>ardization<strong>and</strong> pr<strong>of</strong>essionalization. Just as the earlyENIAC programmers evolved into the organized hierarchy<strong>of</strong> corporate programming departments, the individuals<strong>and</strong> small groups who wrote the first personal computers<strong>of</strong>tware evolved into large teams using sophisticated s<strong>of</strong>twareto track to the modules, versions, <strong>and</strong> developmentsteps <strong>of</strong> major programming projects. Similarly, when theexplosion <strong>of</strong> the World Wide Web starting in the mid-1990sbrought a new dem<strong>and</strong> for people who could code HTML,CGI, <strong>and</strong> Java, much <strong>of</strong> the most interesting work was doneby individuals <strong>and</strong> small companies. But if history repeatsitself, the Internet applications field will undergo the sameprocess <strong>of</strong> pr<strong>of</strong>essionalization, with increasingly elaboratest<strong>and</strong>ards <strong>and</strong> expectations (see certification <strong>of</strong> computerpr<strong>of</strong>essionals).Throughout the history <strong>of</strong> programming, visionarieshave announced that the time was coming when most ifnot all programming could be automated. All a person willhave to do is give a reasonably coherent description <strong>of</strong> thedesired results <strong>and</strong> the required program will be coded bysome form <strong>of</strong> artificial intelligence (see expert systems,genetic algorithms, <strong>and</strong> neural network). But whileusers have now been given the ability to do many things


programming environment 387that formerly required programming, it seems there is stilla dem<strong>and</strong> for programmers who can move the bar anotherstep higher. The pr<strong>of</strong>ession continues to evolve without anysigns <strong>of</strong> impending extinction.Further ReadingBrooks, Frederick. The Mythical Man-Month, Anniversary Edition:Essays on S<strong>of</strong>tware Engineering. Reading, Mass.: Addison-Wesley,1995.Ceruzzi, Paul. A History <strong>of</strong> Modern Computing. Cambridge, Mass.:MIT Press, 1998.Henderson, Harry. Career Opportunities in <strong>Computer</strong>s <strong>and</strong> Cyberspace.2nd ed. New York: Facts On File, 2004.Kohanski, Daniel. Moths in the Machine: The Power <strong>and</strong> Perils <strong>of</strong>Programming. New York: St. Martin’s Press, 2000.Ullmann, Ellen. Close to the Machine: Technophilia <strong>and</strong> its Discontents.San Francisco: City Lights Books, 1997.programming environmentThe first programmers used pencil <strong>and</strong> paper to sketch outa series <strong>of</strong> comm<strong>and</strong>s, or punched them directly on cardsfor input into the machine. But as more computer resourcesbecame available, it was a natural thought that programscould be used to help programmers create other programs.The availability <strong>of</strong> Teletype or early CRT terminals on timesharingsystems by the 1960s encouraged programmers towrite simple text editing programs that could be used tocreate the computer language source code file, which in turnwould be fed to the compiler to be turned into an executableprogram (see terminal <strong>and</strong> text editor). The assemblers<strong>and</strong> BASIC language implementations on the first personalcomputers also included simple editing facilities.More powerful programming editors soon evolved, particularlyin academic settings. One <strong>of</strong> the best known isEMACS, an editor that contains its own LISP-like languagethat can be used to write macros to automatically generateprogram elements (see LISP <strong>and</strong> macro). With the manyother utilities available in the UNIX operating system, programmerscould now be said to have a programming environment—aset <strong>of</strong> tools that can be used to write, compile,run, debug, <strong>and</strong> analyze programs.More tightly integrated programming environmentsalso appeared. The UCSD “p-system” brought together aprogram editor, compiler, <strong>and</strong> other tools for developingPascal programs. While this system was somewhat cumbersome,in the mid-1980s Borl<strong>and</strong> International released (<strong>and</strong>steadily improved) Turbo Pascal. This product <strong>of</strong>fered whatbecame known as an “integrated development interface”or IDE. Using a single system <strong>of</strong> menus <strong>and</strong> windows, theAs the name suggests, Micros<strong>of</strong>t Visual Basic provides a visual programming environment in which the controls that make up a program’s userinterface can be placed on a form. Various properties (characteristics) <strong>of</strong> the controls can then be set, <strong>and</strong> program code is then written <strong>and</strong>attached to govern how the objects will behave.


388 programming languagesprogrammer could edit, compile, run, <strong>and</strong> debug programswithout leaving the main window.The release <strong>of</strong> Visual Basic by Micros<strong>of</strong>t a few yearslater brought a full graphical user interface (GUI). VisualBasic not only ran in Windows, it also gave programmersthe ability to design programs by arranging user interfaceelements (such as menus <strong>and</strong> dialog boxes) on the screen<strong>and</strong> then attaching code <strong>and</strong> setting properties to controlthe behavior <strong>of</strong> each interface object. This approach wassoon extended by Micros<strong>of</strong>t to development environmentsfor C <strong>and</strong> C++ (<strong>and</strong> later, Java) while Borl<strong>and</strong> releasedDelphi, a visual Pascal development system. Today visualprogramming environments are available for most languages.Indeed, many programming environments canhost many different languages <strong>and</strong> target environments.Examples include Micros<strong>of</strong>t’s Visual Studio .NET <strong>and</strong> theopen-source Eclipse, which can be extended to new languagesvia plug-ins.Modern programming environments help the programmerin a number <strong>of</strong> ways. While the program is being written,the editor can highlight syntax errors as soon as they’remade. Whether arising during editing or after compilation,an error message can be clicked to bring up an explanation,<strong>and</strong> an extensive online help system can provide informationabout language keywords, built-in functions, datatypes, or other matters. The debugger lets the programmertrace the flow <strong>of</strong> execution or examine the value <strong>of</strong> variablesat various points in the program.Most large programs today actually consists <strong>of</strong> dozensor even hundreds <strong>of</strong> separate files, including header files,source code files for different modules, <strong>and</strong> resources suchas icons or graphics. The process <strong>of</strong> tracking the connections(or dependencies) between all these files, which usedto require a list called a makefile can now be h<strong>and</strong>led automatically,<strong>and</strong> relationships between classes in object-orientedprograms can be shown visually.Researchers are working on a variety <strong>of</strong> imaginativeapproaches for future programming environments. Forexample, an interactive graphical display (see virtualreality) might be used to allow the programmer to ineffect walk through <strong>and</strong> interact with various representations<strong>of</strong> the program.Further ReadingBurd, Barry. Eclipse for Dummies. Hoboken, N.J.: Wiley, 2004.Hladni, Ivan. Inside Delphi 2006. Plano, Tex.: Wordware Publishing,2006.Kernighan, Brian W., <strong>and</strong> Rob Pike. The UNIX Programming Environment.Englewood Cliffs, N.J.: Prentice Hall, 1984.Parsons, Andrew, <strong>and</strong> Nick R<strong>and</strong>olph. Pr<strong>of</strong>essional Visual Studio2005. Indianapolis: Wiley, 2006.programming languagesThere are many ways to represent instructions to be carriedout by a computer. With early machines like ENIAC,programs consisted <strong>of</strong> a series <strong>of</strong> detailed machine instructions.The exact movement <strong>of</strong> data between the processor’sinternal storage (registers) <strong>and</strong> internal memory had to bespecified, along with the appropriate arithmetic operations.The evolution <strong>of</strong> a few major programming languages through fivedecades. There are actually hundreds <strong>of</strong> different programming languagesthat have seen at least some use in the past 50 years.This lowest level, least abstract form <strong>of</strong> programming languagesis hardest for humans to underst<strong>and</strong> <strong>and</strong> use.The first step toward a more symbolic form <strong>of</strong> programmingis to use easy-to-remember names for instructions(such as ADD or CMP for “compare”) as well asto provide labels for storage locations (variables) <strong>and</strong>subroutines (see procedures <strong>and</strong> functions). The file<strong>of</strong> symbolic instructions (called source code) is read bya program called an assembler (see assembler), whichgenerates the low-level instructions <strong>and</strong> actual memoryaddresses to be used by the program. Because <strong>of</strong> its abilityto closely specify machine operations, assembly languageis still used for low-level hardware control or whenefficiency is at a premium.Most languages in use today are higher-level. Themainstream <strong>of</strong> programming languages consists <strong>of</strong> languagesthat are procedural in nature. That is, they specifya main set <strong>of</strong> instructions that are executed in sequence,although the program can branch <strong>of</strong>f (see branchingstatements) or repeat a series <strong>of</strong> statements until a conditionis satisfied (see loop). A program can also calla set <strong>of</strong> instructions defined elsewhere in the program.Constant or variable data is declared to be <strong>of</strong> a certaintype such as integer or character (see data types) beforeit is used. There are also rules that determine what parts<strong>of</strong> a program can access what data (see variable). Forexamples <strong>of</strong> procedural languages, see Algol, BASIC, C,COBOL, FORTRAN, <strong>and</strong> Pascal.A variant <strong>of</strong> procedural languages is the object-orientedlanguage (see object-oriented programming). Such languages(see C++, Java, <strong>and</strong> Smalltalk) still use sequentialexecution <strong>and</strong> procedures, but the procedures are “packaged”together with relevant data into objects. In order todisplay a picture, for example, the program will call upona particular object (created from a class <strong>of</strong> such objects) toexecute its display function with certain parameters such aslocation <strong>and</strong> dimensions.


project management s<strong>of</strong>tware 389Nonprocedural LanguagesAlthough the bulk <strong>of</strong> today’s s<strong>of</strong>tware is written using procedurallanguages, there are some important languages constructedusing quite different paradigms. LISP, for example,is a powerful language used in artificial intelligence applications.LISP is written by putting together layers <strong>of</strong> functionsthat carry out the desired processing (see nonprocedurallanguages, LISP, <strong>and</strong> functional languages). There arealso “logic programming” languages, <strong>of</strong> which Prolog isbest known (see Prolog). Here a chain <strong>of</strong> logical steps isconstructed such that the program can traverse it to findthe solution <strong>of</strong> a problem.Context <strong>and</strong> Change inProgramming LanguagesBecause <strong>of</strong> the amount <strong>of</strong> effort it takes to truly mastera major programming language, most programmersare fluent in only a few languages <strong>and</strong> developers tendto st<strong>and</strong>ardize on one or two languages. The store <strong>of</strong>tried-<strong>and</strong>-true code <strong>and</strong> lore built up by the programmingcommunity tends to make it disadvantageous to radicallychange languages. Thus, FORTRAN <strong>and</strong> COBOL,although more than 40 years old, are still in considerableuse today. C, which is about 30 years old, has been graduallysupplanted by C++ <strong>and</strong> Java, but the latter languagesrepresent an object-oriented evolution <strong>of</strong> C, intentionallydesigned to make it easy for programmers to make thetransition. (Smalltalk, which was designed as a “pure”object-oriented language, never achieved widespread usein commercial development.)Similarly, when programmers had to cope with parallelprocessing (programs that can have several threads <strong>of</strong> executiongoing at the same time), they have tended to favor “parallelized”versions <strong>of</strong> familiar languages rather than whollynew ones (see concurrent programming <strong>and</strong> parallelprocessing).While the basic elements <strong>of</strong> computer languages tendto persist in the same recognizable forms, the way programmersexperience their use <strong>of</strong> languages has changedconsiderably through the use <strong>of</strong> modern visual integrateddevelopment environments (see programming environment).A variety <strong>of</strong> languages have also been designed fortasks such as data management, interfacing Web pages, <strong>and</strong>system administration (see scripting languages, awk,Perl, PHP, <strong>and</strong> Python).Further ReadingBergin, Thomas J., <strong>and</strong> Richard G. Gibson, eds. History <strong>of</strong> ProgrammingLanguages-II. Reading, Mass.: Addison-Wesley/ACMPress, 1996.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson Addison-Wesley, 2007.project management s<strong>of</strong>twareWhether a project involves only a few people in the samedepartment or thous<strong>and</strong>s <strong>of</strong> people <strong>and</strong> several years, thereis a variety <strong>of</strong> s<strong>of</strong>tware to help managers plan <strong>and</strong> monitorthe status <strong>of</strong> their projects.At the simplest level, PIM s<strong>of</strong>tware (see personalinformation manager) can be used by an individual tomonitor simple personal projects. Such s<strong>of</strong>tware generallyincludes the ability to record the description, priority, duedate, <strong>and</strong> reminder date for a task.Project management s<strong>of</strong>tware is generally used toplan larger projects involving many persons or teams. Acomplex project must first be broken down into tasks.(Large projects <strong>of</strong>ten have subprojects as an intermediateentity.) Next, dependencies must be taken into account.For example, the user testing program for a s<strong>of</strong>twareproduct can’t begin until a usable preliminary (“alpha”or “beta”) version <strong>of</strong> the program is available. The various“resources” assigned to a subproject or task mustalso be tracked, including personnel <strong>and</strong> number <strong>of</strong> hoursassigned <strong>and</strong> budget allocations. In tracking personnelassigned to a project, their availability (who is on vacation<strong>and</strong> who is assigned to what location) must also beconsidered.Once the scheduling <strong>and</strong> priorities are arranged, theinevitable divergences between what was planned <strong>and</strong> whatis actually happening must be monitored. Good projectmanagement s<strong>of</strong>tware provides many tools for the purpose.Available charts <strong>and</strong> reports <strong>of</strong>ten include:• Gantt charts that use bars to show the duration <strong>and</strong>percentage <strong>of</strong> completion <strong>of</strong> the various overlappingsubprojects or tasks.• PERT (Program Evaluation <strong>and</strong> Review Technique)charts that show each subproject or task as a rectangular“node” with information about the task. Theconnections between nodes show the relationships(dependencies) between the items. PERT charts areusually used at the beginning stages <strong>of</strong> planning.• Analysis tools that show critical paths <strong>and</strong> bottlenecks(places where one or more tasks falling behindmight threaten large portions <strong>of</strong> the project). Generally,the more preceding items a task is dependent on,the more likely that task is to fall behind.• Tools for estimating the probability for completion<strong>of</strong> a given task based on the probabilities <strong>of</strong> tasks itis dependent on, as well as other factors such as thelikelihood <strong>of</strong> certain resources becoming available.• A system <strong>of</strong> alerts or “stoplights” that show slowdowns,potential problems, or areas where work hasstopped completely. These can be set to be triggeredwhen various specified conditions occur.• Integration between project management <strong>and</strong> budgetreporting so tasks <strong>and</strong> the project as a whole can bemonitored in relation to budget constraints.• Integration between the project management s<strong>of</strong>tware<strong>and</strong> individual schedules kept in PIM s<strong>of</strong>tware such asMicros<strong>of</strong>t Outlook or in h<strong>and</strong>held computers (PDAs)such as the PalmPilot.• Integration between project management <strong>and</strong> s<strong>of</strong>twarefor scheduling meetings.


390 PrologGiven the scope <strong>and</strong> pace <strong>of</strong> today’s business, scientific, <strong>and</strong>other projects, project management s<strong>of</strong>tware is <strong>of</strong>ten a vitaltool. However, using too elaborate a project tracking systemfor a relatively small <strong>and</strong> well-defined project may diverttime <strong>and</strong> energy away from the work itself. Fortunately, awide variety <strong>of</strong> project management programs are available,ranging from full-fledged products such as Micros<strong>of</strong>tProject or Primavera Project Planner to simpler sharewareor free products.Further ReadingMarmel, Elaine. Micros<strong>of</strong>t Office Project 2007 Bible. Indianapolis:Wiley, 2007.Muir, Nancy C. Micros<strong>of</strong>t Office Project 2007 for Dummies. Hoboken,N.J.: Wiley, 2007.Open Workbench: Open-Source Project Scheduling for Windows.Available online. URL: http://www.openworkbench.org/.Accessed August 17, 2007.“Project Management S<strong>of</strong>tware.” Wikipedia. Available online.URL: http://en.wikipedia.org/wiki/Project_management_s<strong>of</strong>tware. Accessed August 17, 2007.PrologSince the 1950s, researchers have been intrigued by thepossibility <strong>of</strong> automating reasoning behavior, such as logicalinference (see artificial intelligence). A number <strong>of</strong>demonstration programs have been written to prove theoremsstarting from axioms or assumptions. In 1972, Frenchresearcher Alain Colmerauer <strong>and</strong> Robert Kowalski at EdinburghUniversity created a logic programming languagecalled Prolog (for Programmation en Logique) as a way <strong>of</strong>making automated reasoning <strong>and</strong> knowledge representationmore generally available.A conventional procedural program begins by definingvarious data items, followed by a set <strong>of</strong> procedures formanipulating the data to achieve the desired result. A Prologprogram, on the other h<strong>and</strong>, begins with a set <strong>of</strong> facts(axioms) that are assumed to be true. (This is sometimescalled declarative programming.)For example, the fact that Joe is the father <strong>of</strong> Bill wouldbe written:Father (Joe, Bill).The programmer then defines logical rules that apply tothe facts. For example:father (X, Y) :- parent (X, Y), is male (X)gr<strong>and</strong>father (X, Y) :- father (X, Z), parent(Z, Y)Here the first assertion says that a person X is the father<strong>of</strong> Y if he is the parent <strong>of</strong> Y <strong>and</strong> is male. The second assertionsays that X is Y’s gr<strong>and</strong>father if he is the father <strong>of</strong> aperson Z who in turn is a parent <strong>of</strong> Y.When a program runs, it processes queries, or assertionswhose truth is to be proven. Using a process calledunification, the Prolog system looks for facts or rules thatapply to the query <strong>and</strong> attempts to create a logical chainleading to proving the query is true. If the chain breaks(because no matching fact or rule can be found), the system“backtracks” by looking for another matching fact or rulefrom which to attempt another chain.Prolog aroused considerable interest among artificialintelligence researchers who were hoping to create a powerfulalternative to conventional programming languages forautomating reasoning. This interest was further spurredby the Japanese Fifth Generation <strong>Computer</strong> Program <strong>of</strong> the1980s, which sought to create logical supercomputers <strong>and</strong>made Prolog its language <strong>of</strong> choice. Although some suchmachines were built, the idea never really caught on. However,Borl<strong>and</strong> International (makers <strong>of</strong> the highly successfulTurbo Pascal) released a Turbo Prolog that made thelanguage more accessible to students using PCs, although itused some nonst<strong>and</strong>ard language extensions.Despite its commercial success being limited, Prologhas been used in a number <strong>of</strong> areas <strong>of</strong> artificial intelligenceresearch. Its rules-based structure is naturally suitedfor expert systems, knowledge bases, <strong>and</strong> natural languageprocessing (see expert systems <strong>and</strong> knowledge representation).It can also be used as a prototyping languagefor designing systems that would then be recoded in conventionallanguages for speed <strong>and</strong> efficiency.Further ReadingBratck, Ivan. Prolog Programming for Artificial Intelligence. 3rd ed.Reading, Mass.: Addison-Wesley, 2000.Clocksin, W. F., <strong>and</strong> C. S. Mellish. Programming in Prolog: Usingthe ISO St<strong>and</strong>ard. 5th ed. New York: Springer, 2003.Fisher, J. R. “Prolog: Tutorial.” Available online. URL: http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html. Accessed August 17, 2007.Sterling, Leon, <strong>and</strong> Ehud Shapiro. The Art <strong>of</strong> Prolog: Advanced ProgrammingTechniques. 2nd ed. Cambridge, Mass.: MIT Press,1994.SWI-Prolog [free Prolog for Windows, Linux, <strong>and</strong> Mac OS]. Availableonline. URL: http://www.swi-prolog.org/. AccessedAugust 17, 2007.pseudocodeBecause humans generally think on a higher (or moreabstract) level than that provided by even relatively highlevelprogramming languages such as BASIC or Pascal, itis sometimes suggested that programmers use some form<strong>of</strong> pseudocode to express how the program is intended towork. Pseudocode can be described as a language that ismore natural <strong>and</strong> readable than regular programming languages,but sufficiently structured to be unambiguous. Forexample, the following pseudocode describes how to calculatethe cost <strong>of</strong> wall-to-wall carpet for a room:Get room length (in feet)Get room widthMultiply length by width to get area (insquare feet)Get price <strong>of</strong> carpet per square footMultiply price/sq. foot by area to get totalcost.Pseudocode generally includes the basic control structuresused in programming languages (see branching


psychology <strong>of</strong> computing 391statements <strong>and</strong> loop) but is not concerned with smalldetails <strong>of</strong> syntax. For example, this pseudocode mightdetermine whether to charge sales tax for an online purchase:Get customer’s state <strong>of</strong> residenceIf state is “CA” thenTax = Price * .085Total = Price + TaxEnd IfOnce the pseudocode has been written <strong>and</strong> reviewed,the statements can be recoded in the programming language<strong>of</strong> choice. For example, the preceding example mightlook like this in C:If (state == “CA”) {Tax = Price * .085;Total = Price + Tax;}The term pseudocode can also be applied to “intermediatelanguages” that provide a generic, machine-independentrepresentation <strong>of</strong> a program. For example, in the UCSD Pascalsystem the language processor generates a “p-code” thatis turned into actual machine language by an interpreterwritten for each <strong>of</strong> the different types <strong>of</strong> computer supported.Today Java takes a similar approach.Further ReadingBailey, T. E., <strong>and</strong> Kris Lundgaard. Program Design with Pseudocode.3rd ed. Pacific Grove, Calif.: Brooks/Cole, 1989.Daviduck, Brent. “Introduction to Programming in C++: Algorithms,Flowcharts <strong>and</strong> Pseudocode.” Available online. URL:http://www.allclearonline.com/applications/DocumentLibraryManager/upload/program_intro.pdf. Accessed August17, 2007.Gilberg, Richard F,. <strong>and</strong> Behrouz A. Forouzan. Data Structures: aPseudocode Approach with C++. 2nd ed. Boston: Course <strong>Technology</strong>,2004.Neapolitan, Richard E. Foundations <strong>of</strong> Algorithms Using C++Pseudocode. 2nd ed. Sudbury, Mass.: Jones <strong>and</strong> Bartlett, 1998.psychology <strong>of</strong> computingComputing is a complex, pervasive, <strong>and</strong> increasingly vitalhuman activity. It is not surprising that human psychologycan play an important role in many aspects <strong>of</strong> computeruse.Since the 1960s psychology (in particular see cognitivescience) has contributed to the structuring <strong>of</strong> interactionbetween computer systems <strong>and</strong> users (see user interface).It is important to note the significant differences betweenhow computers <strong>and</strong> humans perceive <strong>and</strong> process information:computers are extremely fast in processing in a highlystructured setting (e.g., a program). The human brain, onthe other h<strong>and</strong>, while thous<strong>and</strong>s <strong>of</strong> times slower, is thusfar greatly superior in coping with loosely structured datathrough pattern recognition, the making <strong>of</strong> analogies, <strong>and</strong>generalization. A number <strong>of</strong> researchers (see, for example,Licklider, J. C. R.) have promoted the idea <strong>of</strong> creating ahuman-computer synergy where the structure <strong>of</strong> the systemtakes advantage <strong>of</strong> both the machine’s computational<strong>and</strong> data-retrieval abilities <strong>and</strong> the human user’s ability towork with the larger picture. Such research is continuing asautonomous s<strong>of</strong>tware (see s<strong>of</strong>tware agent) <strong>and</strong> is beginningto interact with Web users.Psychology <strong>of</strong> CyberspaceThe Internet <strong>and</strong> its perception as a shared cyberspace addsnew dimensions to the psychology <strong>of</strong> computing. In fact,the emphasis here is not on computation per se but on therepresentation <strong>of</strong> ideas <strong>and</strong> images, communication, socialinteraction, <strong>and</strong> identity. In particular, pioneering work(see Turkle, Sherry) has illuminated ways in which onlineinteractions affect identity <strong>and</strong> sense <strong>of</strong> self—even encouragingthe assumption <strong>of</strong> multiple identities (see identityin the online world <strong>and</strong> online games). Indeed, virtualworlds such as Second Life <strong>of</strong>fer new ways to study the formation<strong>of</strong> communities <strong>and</strong> social interactions.On the positive side, it has been argued that cyberspacehas encouraged people (particularly adolescents) to experimentwith new identities in a relatively safe environment,but lack <strong>of</strong> inhibition <strong>and</strong> experience can lead to riskybehavior such as involvement with sexual predators. Thevery fact that many people (particularly the young) mayspend several hours a day or more immersed in the onlineworld has also led to concerns; some psychologists haveeven suggested that “Internet addiction disorder” (IAD) beincluded as an <strong>of</strong>ficial mental disorder similar to compulsivegambling. However, as <strong>of</strong> 2007, the American MedicalAssociation has not recommended that IAD be classifiedas a mental disorder, <strong>and</strong> the American Society <strong>of</strong> AddictionMedicine has resisted such a status. Generally, excessiveor inappropriate use <strong>of</strong> the Internet has been seen as asymptom <strong>of</strong> more traditional diagnoses such as obsessionor compulsion.Further ReadingCard, Stuart K., Thomas P. Moran, <strong>and</strong> Allen Newell, eds. The Psychology<strong>of</strong> Human-<strong>Computer</strong> Interaction. Gr<strong>and</strong> Rapids, Mich.:CRC, 1986.Joinson, Adam N. Underst<strong>and</strong>ing the Psychology <strong>of</strong> Internet Behaviour:Virtual Worlds, Real Lives. New York: Palgrave Macmillan,2003.Suler, John. “<strong>Computer</strong> <strong>and</strong> Cyberspace Addiction.” InternationalJournal <strong>of</strong> Applied Psychoanalytic Studies 1 (2004): 359–382.Available online. URL: http://www-usr.rider.edu/~suler/psycyber/cybaddict.html. Accessed November 8, 2007.———. “The Psychology <strong>of</strong> Cyberspace.” Available online. URL:http://www-usr.rider.edu/~suler/psycyber/psycyber.html.Accessed November 8, 2007.Turkle, Sherry. Life on the Screen: Identity in the Age <strong>of</strong> the Internet.New York: Touchstone, 1995.———. The Second Self: <strong>Computer</strong>s <strong>and</strong> the Human Spirit. Twentiethanniversary ed. Cambridge, Mass.: MIT Press, 2005.Wallace, Patricia. The Psychology <strong>of</strong> the Internet. New York: CambridgeUniversity Press, 1999.Weinberg, Gerald. The Psychology <strong>of</strong> <strong>Computer</strong> Programming. Silveranniversary ed. New York: Dorset House, 1998.Whitty, Monica T., <strong>and</strong> Adrian N. Carr. Cyberspace Romance: ThePsychology <strong>of</strong> Online Relationships. New York: Palgrave Macmillan,2006.


392 punched cards <strong>and</strong> paper tapepunched cards <strong>and</strong> paper tapeIn 1804, the French inventor Joseph-Marie Jacquardinvented an automatic weaving loom that used a chain <strong>of</strong>punched cards to control the pattern in the fabric. A generationlater, a British inventor (see Babbage, Charles)decided that punched cards would be a suitable medium forinputting data into his proposed mechanical computer, theAnalytical Engine.Although Babbage’s machine was never built, by 1890an American inventor was using an electromechanical tabulatingmachine to process census data punched into cards(see Hollerith, Herman). Card tabulating machines wereimproved <strong>and</strong> marketed by International Business Machines(IBM) throughout the first part <strong>of</strong> the 20th century. IBMwould also create the 80-column st<strong>and</strong>ard punched cardthat would become familiar to a generation <strong>of</strong> programmers.Later machines included features such as mechanicalsorting, enhanced arithmetic functions, <strong>and</strong> the ability togroup cards by a particular criterion <strong>and</strong> print subtotals,counts, or other information about each group. Althoughthese machines were not computers, they did introduce theidea <strong>of</strong> automated data processing.During the 1930s, a number <strong>of</strong> companies introducedpunch card tabulators that could work with alphanumericdata (that is, letters as well as numbers). With theseexp<strong>and</strong>ed capabilities, punch card systems could be usedto keep track <strong>of</strong> military recruits, taxpayers, or customers(such as insurance policy holders). IBM emphasizedthe new machines’ features by calling them “accountingmachines” instead <strong>of</strong> tabulators.While tabulators <strong>and</strong> calculators using punched cardsgave a taste <strong>of</strong> the power <strong>of</strong> automated data processing,they had a very limited programming ability. For example,they could not make more than very simple comparisons ordecisions, <strong>and</strong> could not repeat steps under program control(looping). The desire to create a general-purpose dataprocessing system led in the 1940s to the development <strong>of</strong>the electronic computer.When the first computers were developed, it was naturalto turn to the existing punched cards <strong>and</strong> their machineryfor a medium for inputting data <strong>and</strong> program instructionsinto the new machines. Because computers contained workingmemory, the program could be stored in its entiretyduring processing, enabling looping, subroutines, <strong>and</strong> otherways to control processing. Because the amount <strong>of</strong> availablememory or “core” was severely limited, not much datacould be stored inside the computer. However, complicatedprocessing could be broken into a series <strong>of</strong> steps where aprogram was loaded <strong>and</strong> run, the input data cards read <strong>and</strong>processed, <strong>and</strong> the intermediate results punched onto a set<strong>of</strong> output cards. The card could then be input to anotherprogram to carry out the next phase.By the 1970s, however, faster <strong>and</strong> easier to use mediasuch as magnetic tape <strong>and</strong> disk drives were being employedfor program <strong>and</strong> data storage. Instead <strong>of</strong> having to use akeypunch machine to create each program statement, programmerscould type their comm<strong>and</strong>s at a terminal, usinga text editor (see programming environment). Even thegovernment began to phase out punched cards. Today some“legacy” punch card systems are maintained, <strong>and</strong> thereis sometimes a need to read <strong>and</strong> convert archival data inpunch card form.Ironically, this workhorse <strong>of</strong> early data processingwould surface again in the U.S. presidential election <strong>of</strong>2000, when problems with the interpretation <strong>of</strong> partlypunched “chads” on ballot punch cards would lead togreat controversy.Further ReadingCardamation Company. Available online. URL: http://www.cardamation.com/.Accessed August 17, 2007.Dyson, George. “The Undead: The Little Secret That Haunts CorporateAmerica: A <strong>Technology</strong> That Won’t Go Away.” Wired7.03 (March 1999): 141–145, 170–172. Available online. URL:http://www.wired.com/wired/archive/7.03/punchcards.html.Accessed August 17, 2007.Philips, N. V. “Everything About Punch Cards.” Available online. URL:http://www.museumwaalsdorp.nl/computer/en/punchcards.html. Accessed August 17, 2007.Province, Charles M. “IBM Punch Cards in the Army.” Availableonline. URL: http://www.geocities.com/pattonhq/ibm.html.Accessed February 9, 2008.PythonCreated by Guido van Rossum <strong>and</strong> first released in 1990,Python is a relatively simple but powerful scripting language(see scripting languages <strong>and</strong> Perl). The namecomes from the well-known British comedy group MontyPython.Python is particularly useful for system administrators,webmasters, <strong>and</strong> other people who have to link variousfiles, data source, or programs to perform their daily tasks.The language currently has a small but growing (<strong>and</strong> quiteenthusiastic) following.Python dispenses with much <strong>of</strong> the traditional syntaxused in the C family <strong>of</strong> languages. For example, the followinglittle program converts a Fahrenheit temperature to itsCelsius equivalent:temp = input(“Farenheit temperature:”)print (temp-32.0) *5.0/9.0Without the semicolons <strong>and</strong> braces found in C <strong>and</strong>related languages, Python looks rather like BASIC. Alsonote that the type <strong>of</strong> input data doesn’t have to be declared.The runtime mechanism will assume it’s numeric from theexpression found in the print statement. Python programsthus tend to be shorter <strong>and</strong> simpler than C, Java, or evenPerl programs. The simple syntax <strong>and</strong> lack <strong>of</strong> data typingdoes not mean that Python is not a “serious” language,however. Python contains full facilities for object-orientedprogramming, for example.Python programs can be written quickly <strong>and</strong> easily bytrying comm<strong>and</strong>s out interactively <strong>and</strong> then converted thescript to bytecode, a machine-independent representationthat can be run on an interpreter designed for each machineenvironment. Alternatively, there are translation programsthat can convert a Python script to a C source file that canthen be compiled for top speed.


Python 393Perl is still a popular scripting language for UNIX <strong>and</strong>Web-related applications. Perl contains a powerful builtinregular expression <strong>and</strong> pattern-matching mechanism, aswell as many other built-in functions likely to be useful forpractical scripting. Python, on the other h<strong>and</strong>, is a moregeneralized <strong>and</strong> more cleanly structured language that islikely to be suited for a wider variety <strong>of</strong> applications, <strong>and</strong>it is more readily extensible to larger <strong>and</strong> more complexapplications.Further ReadingLutz, Mark. Learning Python. 3rd. ed. Sebastapol, Calif.: O’Reilly,2007.———. Programming Python. 3rd ed. Sebastapol, Calif.: O’Reilly,2006.Python Programming Language—Official Web site. Available online.URL: http://www.python.org/. Accessed August 17, 2007.Zelle, John M. Python Programming: An Introduction to <strong>Computer</strong><strong>Science</strong>. Wilsonville, Ore.: Franklin, Beedle & Associates,2004.


Qquality assurance, s<strong>of</strong>twareModern s<strong>of</strong>tware programs are large <strong>and</strong> complex, <strong>and</strong> containmany interrelated modules. If a program is not thoroughlytested before it goes into service, it may containerrors that can result in serious consequences (see risks <strong>of</strong>computing).In the early days <strong>of</strong> computing, programmers generallytested their code informally <strong>and</strong> nonsystematically. Theassumption was that after the program was given to the usersany problems that arose could be fixed through “patches”or replacement versions containing bug fixes. Today, however,it is increasingly recognized that assuring the quality<strong>and</strong> reliability <strong>of</strong> s<strong>of</strong>tware requires a systematic, comprehensiveprocess that begins when s<strong>of</strong>tware requirements are firstspecified <strong>and</strong> continues after the program has been released.Any program is designed to meet the needs <strong>of</strong> a specifictype <strong>of</strong> users for specific applications. Therefore, thefirst step must be to make sure that users are able to communicatetheir requirements <strong>and</strong> that the s<strong>of</strong>tware engineersunderst<strong>and</strong> the users’ needs <strong>and</strong> concerns. Detailedwritten specifications, flowcharts, <strong>and</strong> other depictions <strong>of</strong>the program can be reviewed by user representatives (seeflowchart <strong>and</strong> case). The specifications can be furtherexplored by creating a prototype or demonstration <strong>of</strong> theprogram’s features (see presentation s<strong>of</strong>tware). Since aprototype can be dynamic <strong>and</strong> let users have simulatedinteractions with the program, it may reveal usability problemsthat would be hard to spot from charts or documentation.The result <strong>of</strong> this initial verification process shouldbe that the users agree that the program will do what theyneed <strong>and</strong> that they will be comfortable using it.In moving from design to implementation (writing theactual code), the developers must first choose an appropriateapproach (see algorithm) <strong>and</strong> data representation.Choosing an algorithm that is known to be sound is preferable,but if an algorithm must be modified (or a new onedeveloped), developers may be able to take advantage <strong>of</strong>mathematical techniques that will suggest, if not totallyprove, the algorithm’s accuracy <strong>and</strong> reliability.As the programmers write the code, they should try touse best practices (see s<strong>of</strong>tware engineering). Doing soensures that the code will be readable <strong>and</strong> organized insuch a way that the source <strong>of</strong> a problem area can be identifiedeasily, <strong>and</strong> any “fix” that must be made will be lesslikely to have unforeseen side effects.Developers can also include special code that will facilitatetesting. This code can include assertions—statements that testspecified conditions (such as variable values) at key points inthe program, displaying appropriate messages if the valuesare not within the proper range. Large, complex programscan also include diagnostic modules that give the developers asort <strong>of</strong> virtual console that they can use to monitor conditionswhile the program is running, or “drill into” particular areasfor closer inspection (see bugs <strong>and</strong> debugging).Although a certain amount <strong>of</strong> testing <strong>and</strong> debugging can<strong>and</strong> should be done while the code is being written, moreextensive <strong>and</strong> systematic testing is usually performed aftera preliminary version <strong>of</strong> the program has been completed.(This is sometimes called an alpha version.) There are twobasic approaches to designing the tests. “White box” tests usethe developer’s knowledge <strong>of</strong> the code to design test data thatwill test all <strong>of</strong> the program’s structural features (see proce-394


quantum computing 395dures <strong>and</strong> functions, branching statements, <strong>and</strong> loop).The testers may be aided by mathematical analysis that identifies“partitions” or ranges within the data that should resultin a particular execution path being taken through the program.“Fault coverage” tests can also be designed to testfor various specific types <strong>of</strong> errors (such as input/output,numeric overflow, loss <strong>of</strong> precision, <strong>and</strong> so on).A shortcoming <strong>of</strong> white box tests is that because thetester knows how the program works, he or she may unconsciouslyselect mainly “reasonable” data or situations. (Ithas been observed that users are under no such compulsion!)One way to compensate for this bias is to also perform“black box” tests. These tests assume no knowledge <strong>of</strong>the inner workings <strong>of</strong> the program. They approach the programfrom the outside, submitting data (or otherwise interactingwith the program) either through the user interfaceor using an automated process that simulates user input.The tester tries to generate as wide a variety <strong>of</strong> input dataas possible, <strong>of</strong>ten by using r<strong>and</strong>omization techniques. Theresult is that the ability <strong>of</strong> the program to deal with “unreasonable”data will also be tested, <strong>and</strong> unforeseen situationsmay arise <strong>and</strong> have to be dealt with.Once this cycle <strong>of</strong> testing <strong>and</strong> fixing problems is finished,the program will probably be given to a selectedgroup <strong>of</strong> users who will operate it under field conditions—that is, in the same sort <strong>of</strong> environment the program will beused once it is sold or deployed. This process is sometimescalled beta testing. (Game companies have traditionallyrelied upon the willingness <strong>of</strong> gamers to test a new game inexchange for getting to play it sooner.)The priority (<strong>and</strong> thus the resources) devoted to testingwill vary according to many factors, including• the complexity <strong>of</strong> the program (<strong>and</strong> thus the likelihood<strong>of</strong> problems)• the presence <strong>of</strong> strong competitors who could takeadvantage <strong>of</strong> significant problems with the program• the potential financial impact or legal exposure frombugs or problems• the ability to “amortize” the costs <strong>of</strong> developing testingtools <strong>and</strong> procedures over a number <strong>of</strong> years asnew versions <strong>of</strong> the program are developedThe Holy Grail for quality assurance would be to developpowerful artificially intelligent automatic testing programsthat could analyze a program <strong>and</strong> develop <strong>and</strong> execute avariety <strong>of</strong> thorough tests. However, such a program woulditself be very complex, difficult <strong>and</strong> expensive to develop,<strong>and</strong> subject to its own bugs. Nevertheless, a number <strong>of</strong>organizations (notably, IBM) have devoted considerableattention to the problem.Further ReadingGinac, Frank P. Customer-Oriented S<strong>of</strong>tware Quality Assurance.Upper Saddle River, N.J.: Prentice Hall PTR, 1997.Godbole, Nina S. S<strong>of</strong>tware Quality Assurance: Principles <strong>and</strong> Practice.Pangbourne, U.K.: Alpha <strong>Science</strong> International, 2004.Schulmeyer, G. Gordon, ed. H<strong>and</strong>book <strong>of</strong> S<strong>of</strong>tware Quality Assurance.4th ed. Boston: Artech House, 2007.S<strong>of</strong>tware QA <strong>and</strong> Testing Resource Center. Available online. URL:http://www.s<strong>of</strong>twareqatest.com/. Accessed August 17, 2007.quantum computingThe fundamental basis <strong>of</strong> electronic digital computing is theability to store a binary value (1 or 0) using an electromagneticproperty such as electrical charge or magnetic field.However, during the first half <strong>of</strong> the 20th century,physicists discovered the laws <strong>of</strong> quantum mechanics thatapply to the behavior <strong>of</strong> subatomic particles. An electronor photon, for example, can be said to be in any one <strong>of</strong> several“quantum states” depending on such characteristics asspin. In 1981, physicist Richard Feynman came up with theprovocative idea that if quantum properties could be “read”<strong>and</strong> set, a computer could use an electron, photon, or otherparticle to store not just a single 1 or 0, but a number <strong>of</strong> valuessimultaneously. The simplest case, storing two values atonce, is called a “qubit” (short for “quantum bit”). In 1985,David Deutsch at Oxford University fleshed out Feynman’sideas by creating an actual design for a “quantum computer,”including an algorithm to be run on it.At the time <strong>of</strong> Feynman’s proposal, the techniques formanipulating individual atoms or even particles had notyet been developed (see nanotechnology), so a practicalquantum computer could not be built. However, duringthe 1990s considerable progress was made, spurred in partby the suggestion <strong>of</strong> Bell Labs researcher Peter Shor, whooutlined a quantum algorithm that might be used for rapidfactoring <strong>of</strong> extremely large integers. Since the security <strong>of</strong>modern public key cryptography (see encryption) dependson the difficulty <strong>of</strong> such factoring, a working quantum computerwould be <strong>of</strong> great interest to spy agencies.The reason for the tremendous potential power <strong>of</strong> quantumcomputing is that if each qubit can store two valuessimultaneously, a register with three qubits could storeeight values, <strong>and</strong> in general, for n qubits one can operate on2 n values simultaneously. This means that a single quantumprocessor might be the equivalent <strong>of</strong> a huge number <strong>of</strong>separate processors (see multiprocessing). Clearly manyproblems that have been considered not practical to solve(see computability <strong>and</strong> complexity) might be tackledwith quantum computers.However, the practical problems involved in designing<strong>and</strong> assembling a quantum computer are expected to be veryformidable. Although scientists during the 1990s achievedthe ability to arrange individual atoms, the precise placement<strong>of</strong> atoms <strong>and</strong> even individual particles such as photonswould be difficult. Furthermore, as more <strong>of</strong> these componentsare assembled in very close proximity, it becomesmore likely that they will interfere with one another, causing“decoherence,” where the superimposed values “break down”to a single 1 or 0, thus causing loss <strong>of</strong> information. However,some researchers are hopeful that st<strong>and</strong>ard mathematicaltechniques (see error correction) could be used to keepthis problem in check. For example, redundant componentscould be used so that even if one decoheres, the others couldbe used to regenerate the information.Another approach is to use a large number <strong>of</strong> quantumcomponents to represent each qubit. In 1998, Neil Gershenfeld<strong>and</strong> Isaac L. Chuang reported successful experimentsusing a liquid with nuclear magnetic resonance(NMR) technology. Here each atom in a molecule (for


396 queueIn an empty queue, the head <strong>and</strong> tail pointers point to the firstcell in memory. To add a value, it is placed at the cell pointed toby the head pointer, <strong>and</strong> the tail pointer is moved up one cell. If anitem is removed, the head <strong>and</strong> tail pointers are moved down oneplace. (Note that items must be added at the tail <strong>and</strong> removed atthe head.)example, chlor<strong>of</strong>orm), would represent one qubit, <strong>and</strong>a large number <strong>of</strong> molecules would be used, for redundancy.Since each “observation” (that is, setting or readingdata) affects only a few <strong>of</strong> the many molecules foreach qubit, the stability <strong>of</strong> the information in the systemis not compromised. However, this approach is limited bythe number <strong>of</strong> atoms in the chosen molecule—perhaps to30 or 40 qubits.There are many potential applications for quantumcomputing. While the technology could be used to crackconventional cryptographic keys, researchers have suggestedthat it could also be used to generate unbreakablekeys that depend on the “entanglement” <strong>of</strong> observers<strong>and</strong> what they observe. The sheer computational power<strong>of</strong> a quantum computer might make it possible to developmuch better computer models <strong>of</strong> complex phenomenasuch as weather, climate, the economy—or <strong>of</strong> quantumbehavior itself.Further ReadingBurda, Ioan. Introduction to Quantum Computation. Boca Raton,Fla.: Universal Publishers, 2005.Kaye, Phillip, Raymond LaFlamme, <strong>and</strong> Michele Mosca. An Introductionto Quantum Computing. New York: Oxford UniversityPress, 2007.Quantum <strong>Computer</strong> News. <strong>Science</strong> Daily. Available online.URL: http://www.sciencedaily.com/news/computers_math/quantum_computers/. Accessed August 17, 2007.West, Jacob. The Quantum <strong>Computer</strong>. Available online. URL: http://www.cs.caltech.edu/~westside/quantum-intro.html. AccessedAugust 17, 2007.queueA queue is basically a “line” <strong>of</strong> items arranged according topriority, much like the customers waiting to check out in asupermarket. Many computer applications involve receiving,tracking, <strong>and</strong> processing requests. For example, an operatingsystem running on a computer with a single processor mustkeep track <strong>of</strong> which application should next receive the processor’sattention. A print spooler holds documents waiting tobe printed. A web or file server must keep track <strong>of</strong> requests forWeb pages, files, or other services. Queues provide an orderlyway to process such requests. Queues can also be used toefficiently store data in memory until it can be processed by arelatively slow device such as a printer (see buffering).As a data structure, a queue is a type <strong>of</strong> list (see listprocessing). New items are inserted at one end <strong>and</strong>removed (deleted) from the other end. This contrasts witha stack, where all insertions <strong>and</strong> deletions are made at thesame end (see stack). Just as the next person served at thesupermarket is the one at the head <strong>of</strong> the line, the end <strong>of</strong> aqueue from which items are removed is called the head orfront. And just as new people arriving at the supermarketline join the end <strong>of</strong> the line, the part <strong>of</strong> the queue wherenew items are added is called the tail or rear. Since the firstitem in line is the first to be removed, a queue is called aFIFO (first in, first out) structure.To create a queue, a program first allocates a block <strong>of</strong>memory. It then sets up to pointers (see pointers <strong>and</strong> indirection).One pointer stores the address <strong>of</strong> the item at thehead <strong>of</strong> the queue; the other has the address <strong>of</strong> the item atthe tail. When the queue starts out, it is empty. This meansthat both the head <strong>and</strong> tail pointer start out pointing to thesame location.A circular queue works in the same way as a “straight” queue,except that when the last cell in the allotted memory block isreached, the pointer or data “wraps around” to the first cell.


queue 397To add an item, the tail pointer is moved back one location<strong>and</strong> the item is stored there. To remove an item, thehead pointer is simply moved back one location. (The datathat had been pointed to by the head pointer can be eitherretrieved or discarded, depending on the application.)In actuality it’s not quite so simple. As items are addedto the queue, the tail pointer keeps moving back in memorywith the head pointer trailing behind as items are deleted. Ifthe queue is sufficiently active (many items are being added<strong>and</strong> removed), the queue will end up “crawling” throughmemory somewhat like a worm until all the memory isconsumed.In a real line at the supermarket, as a customer leavesthe checkout st<strong>and</strong>, each <strong>of</strong> the persons in line movesup one space. In a computer queue this could be accomplishedby moving each item up one location wheneveran item is removed at the head. However, having to moveall the data items each time one is changed would be veryinefficient. Instead, one could allow the head <strong>of</strong> the queueto move only up to some specified location. At that point,the head is moved back to the beginning <strong>of</strong> the memoryblock, <strong>and</strong> thus the space that had been vacated by thetail as it moved up is reutilized. In effect this wraps thememory around into a circle, so this is called a circularqueue.Further ReadingBrookshear, J. Glenn. <strong>Computer</strong> <strong>Science</strong>: An Overview. 6th ed. Reading,Mass.: Addison-Wesley, 2000.Skiena, Steven S. “Priority Queues.” Available online. URL: http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK3/NODE130.HTM. Accessed August 17, 2007.Suh, Eric. “The Queue Data Structure.” Available online. URL:http://www.cprogramming.com/tutorial/computersciencetheory/queue.html. Accessed August 17, 2007.


RRAID (redundant array <strong>of</strong> inexpensive disks)<strong>Computer</strong> storage is relatively cheap today (see hard disk),but having continued access to data in the event <strong>of</strong> hardwarefailure is essential to any enterprise. RAID, or redundantarray <strong>of</strong> inexpensive disks, is a way to turn plentifulstorage into higher reliability <strong>and</strong>/or speed <strong>of</strong> access. RAIDworks by turning a group <strong>of</strong> drives into a single logicalStriping spreads data across several disk drives so that a singlehead movement on each drive can fetch a large amount <strong>of</strong> data.Mirroring duplicates each sector <strong>of</strong> data on a second disk drive,ensuring that if one drive fails the data can still be retrieved. Combinations<strong>of</strong> both techniques are <strong>of</strong>ten used, trading space for reliability(or vice versa).unit; the operating system need not deal with this internalorganization, but simply reads or writes data as usual.To improve reliability, data can be mirrored, or copied totwo or more disks. While the data obviously takes up morespace, the advantage is that the data remains intact <strong>and</strong>recoverable if any one drive fails. Further reliability can beachieved by storing redundant data (such as parity bits orHamming codes), to diagnose <strong>and</strong> fix some disk problems(see error correction <strong>and</strong> fault tolerance).To achieve greater speed <strong>of</strong> data access, data can be“striped,” where a file is broken into pieces, with each piecestored on a sector on a different drive. Thus instead <strong>of</strong> thehead <strong>of</strong> a single drive having to jump around to multiplesectors to read the data, the heads on all the drives cansimultaneously read many parts <strong>of</strong> the file, which are thenassembled into the proper order.Levels <strong>and</strong> CompromisesBy combining mirroring, error correction, <strong>and</strong>/or striping,different “levels” <strong>of</strong> RAID can be implemented to suit differentneeds. There are various trade-<strong>of</strong>fs: Striping can increaseaccess speed, but uses more storage space <strong>and</strong>, by increasingthe number <strong>of</strong> disks, also increases the chance that one willfail. Implementing error correction can make failure recoverable,but slows data access down because data has to beread from more than one location <strong>and</strong> compared.The most commonly used RAID levels are:• RAID 0—striping data across disks, higher speed butno error correction; failure <strong>of</strong> any disk can make dataunrecoverable398


eal-time processing 399• RAID 1—mirroring (data stored on at least two disks),data intact as long as one disk is still operating• RAID 3 <strong>and</strong> 4—striping plus a dedicated disk for parity(error checking)• RAID 5—striping with distributed parity; data can berestored automatically after a failed disk is replaced• RAID 6—like RAID 5 but with parity distributed sothat data remains intact unless more than two drivesfailIn actuality, RAID configurations can be very complex,where different levels can be “layered” above one another,with each treating the next as a virtual drive, until onegets down to the actual hardware. Although RAID is <strong>of</strong>tenimplemented using a physical (hardware) controller, operatingsystems can also create a virtual RAID structure ins<strong>of</strong>tware, interposed between the logical drive as seen bythe read/write routines <strong>and</strong> the physical drives.Although RAID is most commonly used with largeshared storage units (see file server <strong>and</strong> networkedstorage), with the drastic decline in hard drive prices,simple RAID configurations (such as two mirrored drives)are also appearing in higher-end desktop PCs.Further ReadingLeider, Joel. “How to Select a RAID Disk Array.” Enterprise StorageForum. Available online. URL: http://www.enterprisestorageforum.com/hardware/features/article.php/726491.AccessedNovember 8, 2007.“Redundant Array <strong>of</strong> Inexpensive Disks (RAID).” PC Guide. Availableonline. URL: http://pcguide.com./ref/hdd/perf/raid/index.htm. Accessed November 8, 2007.r<strong>and</strong>om number generation<strong>Computer</strong> applications such as simulations, games, <strong>and</strong>graphics applications <strong>of</strong>ten need the ability to generate oneor more r<strong>and</strong>om numbers (see simulation <strong>and</strong> computergames). R<strong>and</strong>om numbers can be defined as numbers thatshow no consistent pattern, with each number in the seriesneither affected in any way by the preceding number, norpredictable from it.One way to get r<strong>and</strong>om digits is to simply start with anarbitrary number with a specified number <strong>of</strong> digits, perhaps10. This first number is called the seed. Multiply the seed bya constant number <strong>of</strong> the same length, <strong>and</strong> take that number<strong>of</strong> digits <strong>of</strong>f the right end <strong>of</strong> the product. The result becomesthe new seed. Multiply it by the original constant to generatea new product, <strong>and</strong> repeat as <strong>of</strong>ten as desired. The result isa series <strong>of</strong> digits that appear r<strong>and</strong>omly distributed as thoughgenerated by throwing a die or spinning a wheel. This type<strong>of</strong> algorithm is called a congruential generator.The quality <strong>of</strong> a r<strong>and</strong>om number generator is proportionalto its period, or the number <strong>of</strong> numbers it can producebefore a repeating pattern sets in. The period for acongruential generator is approximately 2 32 , quite adequatefor many applications. However, for applications such asvery large-scale simulations, different algorithms (calledshift-register <strong>and</strong> lagged-Fibonacci) can be used, althoughthese also have some drawbacks. Combining two differenttypes <strong>of</strong> generators produces the best results. The widelyused McGill R<strong>and</strong>om Number Generator Super-Duper combinesa congruential <strong>and</strong> a shift-register algorithm.Generating a r<strong>and</strong>om number series from a single seedwill work fine with most simulations that rely upon generatingr<strong>and</strong>om events under the control <strong>of</strong> probabilities(Monte Carlo simulations). However, although the sequence<strong>of</strong> numbers generated from a given seed is r<strong>and</strong>omly distributed,it is always the same series <strong>of</strong> numbers for the sameseed. Thus, a computer poker game that simply used a givenseed would always generate the same h<strong>and</strong>s for each player.What is needed is a large collection <strong>of</strong> potential seeds fromwhich one can be more or less r<strong>and</strong>omly chosen. If thereare enough possible seeds, the odds <strong>of</strong> ever getting the sameseries <strong>of</strong> numbers become vanishingly small.One way to do this is to read the time (<strong>and</strong> perhaps date)from the computer’s system clock <strong>and</strong> generate a seed basedon that value. Since the clock value is in milliseconds, thereare millions <strong>of</strong> possible values to choose from. Anothercommon technique is to use the interval between the user’skeystrokes (in milliseconds). Although they are not perfect,these techniques are quite adequate for games.So-called true r<strong>and</strong>om number generators extract r<strong>and</strong>omnumbers from physical phenomena such as a radioactivesource (the HotBits service at Fourmilab in Switzerl<strong>and</strong>)or even atmospheric noise as detected by a radio receiver.For the ultimate in r<strong>and</strong>om numbers, researchers havelooked to quantum processes that are inherently r<strong>and</strong>om.In 2007 researchers at an institute in Zagreb, Croatia, beganto <strong>of</strong>fer the Quantum R<strong>and</strong>om Bit Generator Service, whichis keyed to unpredictable emissions <strong>of</strong> photons in a semiconductor.The output <strong>of</strong> most r<strong>and</strong>om number services canbe interfaced with MATLAB <strong>and</strong> other popular mathematicals<strong>of</strong>tware packages.Further ReadingGentle, James E. R<strong>and</strong>om Number Generation <strong>and</strong> Monte CarloMethods. 2nd ed. New York: Springer, 2004.HotBits: Genuine R<strong>and</strong>om Numbers, Generated by RadioactiveDecay. Available online. URL: http://www.fourmilab.ch/hotbits/. Accessed August 18, 2007.“Introduction to R<strong>and</strong>omness <strong>and</strong> R<strong>and</strong>om Numbers.” Availableonline. URL: http://www.r<strong>and</strong>om.org. Accessed August 18,2007.real-time processingThere are many computer applications (such as air trafficcontrol or industrial process control) that require that thesystem respond almost immediately to its inputs.In designing a real-time system there are always twoquestions to answer: Will it respond quickly enough most<strong>of</strong> the time? How much variation in response time can wetolerate? A system that responds to real-time environmentalconditions (such as the amount <strong>of</strong> traction or torque actingon a car’s wheels) needs to have a sampling rate <strong>and</strong> a rate<strong>of</strong> processing the sampled data that’s fast enough so thatthe system can correct a dangerous condition in time. Theresponsiveness required <strong>of</strong> course varies with the situation


400 recursion<strong>and</strong> with the potential consequences <strong>of</strong> failure. An air trafficcontrol system may be able to take a few seconds betweenprocessing radar samples, but it better get it right in time.Systems like this where real-time response is absolutelycrucial are sometimes called “hard real-time systems.”Other systems are less critical. A streaming audio systemhas to keep its buffer full so it can play in real time,but if it stutters once in a while, no one’s life is in danger.(And since download rates over the Internet can vary formany reasons it’s not realistic to expect too perfect a level<strong>of</strong> performance.) A slower “s<strong>of</strong>t real-time system” like abank’s ATM system should be able to respond in tens <strong>of</strong> seconds,but if it doesn’t, the consequences are mainly potentialloss <strong>of</strong> customers <strong>and</strong> revenue. A fairly wide variation inresponse time may be acceptable as long waits don’t occur<strong>of</strong>ten enough to drive away too many customers.To put together the system, the engineer must look atthe inherent speed <strong>of</strong> the sampling device (such as radar,camera, or simply the keyboard buffer). The speed <strong>of</strong> theprocessor(s) <strong>and</strong> the time it takes to move data to <strong>and</strong> frommemory are also important. The structure, strengths, <strong>and</strong>weaknesses <strong>of</strong> the host operating system can also be a factor.Some operating systems (including some versions <strong>of</strong>UNIX) feature a guaranteed maximum response time forvarious operating system services. This can be used to helpcalculate the “worst case scenario”—that combination <strong>of</strong>inputs <strong>and</strong> the existing state <strong>of</strong> the system that should resultin the slowest response.Another approach available in most operating systems isto assign priority to parts <strong>of</strong> the processing so that the mostcritical situations are guaranteed to receive the attention <strong>of</strong>the system. However, things must be carefully tuned so thateven lower priority tasks are accomplished in an acceptablelength <strong>of</strong> time.The design <strong>of</strong> the data structure or database used tohold information about the process being monitored is alsoimportant. In most databases the age <strong>of</strong> the data is not thatimportant. For a payroll system, for example, it might besufficient to run a program once in a while to weed outpeople who are no longer employees. For a nuclear powerplant, if data is getting too old such that it’s not keepingup with current condition, some sort <strong>of</strong> alarm or evenautomatic shutdown might be in order. With a system thathas s<strong>of</strong>ter constraints (such as an automatic stock tradingsystem), it may be enough to be able to get most trades donewithin a specified time <strong>and</strong> to gather data about the performance<strong>of</strong> the system so the operators can decide whether itneeds improvement.Real-time systems are increasingly important because<strong>of</strong> the importance <strong>of</strong> the activities (such as air traffic control<strong>and</strong> power grids) entrusted to them, <strong>and</strong> because <strong>of</strong>their pervasive application in everything from cars to cellphones to medical monitors (see embedded system <strong>and</strong>medical applications <strong>of</strong> computers). The systems alsotend to be increasingly complex because <strong>of</strong> the increasinginterconnection <strong>of</strong> systems. For example, many real-timesystems have to interact with the Internet, with communicationsservices, <strong>and</strong> with ever more sophisticated multimediadisplay systems. Further, many real-time systems mustuse multiple processors (see multiprocessing), which canincrease the robustness <strong>and</strong> reliability <strong>of</strong> the system butalso the complexity <strong>of</strong> its architecture, <strong>and</strong> thus the difficultyin determining <strong>and</strong> ensuring reliability.Further ReadingButtazzo, Giorgio C. Hard Real-Time Computing Systems: PredictableScheduling Algorithms <strong>and</strong> Applications. 2nd ed. NewYork: Springer, 2005.Cheng, Albert M. K. Real-Time Systems: Scheduling, Analysis, <strong>and</strong>Verification. Hoboken, N.J.: Wiley, 2002.Resources for Real-Time Computing. TechRepublic. Availableonline. URL: http://search.techrepublic.com.com/search/real-time+computing.html. Accessed August 19, 2007.recursionEven beginning programmers are familiar with the ideathat a series <strong>of</strong> program statements can be executed repeatedlyas long as (or until) some condition is met (see loop).For example, consider this simple function in Pascal. Itcalculates the factorial <strong>of</strong> an integer, which is equal to theproduct <strong>of</strong> all the integers from 1 to the number. Thus factorial5, or 5! = 1 * 2 * 3 * 4 * 5 = 120.Function Factorial (n: integer) : integerBegini: integer;For i = 1 to n doFactorial := Factorial * i;End.If the main program has the line:Writelin (Factorial (5));then the 5 is sent to the function, where the loop simplymultiplies the numbers from 1 to 5 <strong>and</strong> returns 120.However, it is also possible to have a function call itselfrepeatedly until a specified condition is met. This is calledIn recursion, a procedure calls itself until some defined conditionis met. In this example <strong>of</strong> a Factorial procedure, F(1) is defined toreturn 1. Once it does, the returned value is plugged into its caller,which then returns the value <strong>of</strong> 1 * 2 to its caller, <strong>and</strong> so on.


educed instruction set computer 401recursion, <strong>and</strong> it allows for some compact but powerfulcoding. A recursive version <strong>of</strong> the Factorial function in Pascalmight look like this:function Factorial (n:integer) :integerbeginif (n = 1) thenFactorial := 1elseFactorial := Factorial (n - 1) * n;end;Why does this work? An alternative way to define a factorialis to say that the factorial <strong>of</strong> a number is that numbertimes the factorial <strong>of</strong> one less than the number. Thus, thefactorial <strong>of</strong> 5 is equal to 5 * 4! or 5 * 4 * 3 * 2 * 1. But in turnthe factorial <strong>of</strong> 4 would be equal to 4 * (3 * 2 * 1), <strong>and</strong> so ondown to the factorial <strong>of</strong> 1, which is simply 1. Thus, in generalterms the factorial <strong>of</strong> n is equal to n * factorial (n - 1).What happens if this function is called by the programstatement:Writeln (“Factorial <strong>of</strong> 5 is ”); Factorial (5)First, the Factorial function is called with the value 5assigned to n. The If statement checks <strong>and</strong> sees that n isnot 1, so it calls factorial (i.e., itself) with the value <strong>of</strong> n - 1,or 4. This new instance <strong>of</strong> the factorial function gets the4, sees that it is not 1, <strong>and</strong> calls factorial again with n - 1,which is now 4 - 1 or 3. This continues until n is 2, at whichpoint factorial 1 is called. But this time n is 1, so it returnsthe value <strong>of</strong> 1 rather than calling itself yet again.Now the returned value <strong>of</strong> 1 replaces the call to Factorial(n - 1) in the preceding instance <strong>of</strong> Factorial (where nhad been 2). That 1 is therefore multiplied by 2, <strong>and</strong> 1 *2 = 2 is returned to the preceding instance, where n hadbeen 3. Now that 2 gets multiplied by 3 <strong>and</strong> returned to theinstance where n had been 4. This continues until we’reback at the first call to factorial 5, where the value <strong>of</strong> 4 * 3 *2 * 1 now gets multiplied by that 5, giving 120, or factorial5. (See the accompanying diagram for help in visualizingthis process.)A Recursive Sorting AlgorithmIn the preceding example recursion does no more than asimple loop could, but many problems lend themselves morenaturally to a recursive formulation. For example, supposeyou have an algorithm to merge (combine) two lists <strong>of</strong> integersthat have been sorted into ascending values. The proceduresimply takes the smaller <strong>of</strong> the two numbers at the front<strong>of</strong> the two lists until one list runs out <strong>of</strong> numbers (any numbersin the remaining list can then simply be included).Using an English-like syntax, one can write a recursiveprocedure to sort a list <strong>of</strong> numbers by calling itself repeatedly,then using the Merge procedure:Procedure SortBeginIf the list has only one item, returnElseSort the first half <strong>of</strong> the listSort the second half <strong>of</strong> the listMerge the two sorted listsEnd IfEnd (Sort)Sort will call itself until one <strong>of</strong> the lists has only oneitem (which by definition is “sorted”), <strong>and</strong> the Merge procedurewill build the sorted list.To implement recursion, the run-time system for thelanguage must use an area <strong>of</strong> memory (see stack) to temporarilystore the values associated with each instance <strong>of</strong> afunction as it calls itself. Depending on the implementation,there may be a limit on how many levels <strong>of</strong> recursion areallowed, or on the size <strong>of</strong> the stack. (However, the plentifulsupply <strong>of</strong> available memory on most systems today makesthis less <strong>of</strong> an issue.)The first generation <strong>of</strong> high-level computer languages(such as FORTRAN <strong>and</strong> COBOL) did not allow recursion.However, the second generation <strong>of</strong> procedural languagesstarting around 1960 with Algol, as well as successors suchas Pascal <strong>and</strong> C do allow recursion. The LISP language(see LISP <strong>and</strong> functional languages) uses recursivedefinitions extensively, <strong>and</strong> recursion turns out to be veryuseful for processing the grammars for artificial <strong>and</strong> naturallanguages (see parsing). Recursion can also be usedto generate interesting forms <strong>of</strong> graphics (see fractals incomputing).Further ReadingHillis, W. Daniel. The Pattern in the Stone: The Simple Ideas thatMake <strong>Computer</strong>s Work. New York: Basic Books, 1998.McHugh, John. “The Animation <strong>of</strong> Recursion.” Available online.URL: http://www.animatedrecursion.com/home. AccessedAugust 19, 2007.Roberts, E. S. Thinking Recursively. New York: Wiley, 1986.reduced instruction set computer (RISC)All things being equal, the trend in computer design isto continually add new features. There are several reasonswhy this is the case with computer processors:• to create a “family” <strong>of</strong> upwardly compatible computers(see compatability <strong>and</strong> portability)• to make a new machine more competitive with existingsystems, or to give it a competitive advantage• to make it easier to write compilers for popular languages• to allow for more operations to be done with one(or a few) instructions rather than requiring manyinstructionsThere are certainly exceptions to the trend toward complexity.The minicomputer, for example, represented insome ways a simplification <strong>of</strong> the exiting mainframe design.It didn’t have as many ways <strong>of</strong> working with memory (seeaddressing) <strong>and</strong> lacked the multiple input/output “channels”<strong>and</strong> their separate processors. But once minicomputerswere introduced <strong>and</strong> achieved success, the same


402 regular expressioncompetitive <strong>and</strong> other pressures led their designers to startadding complexity.One way processor designers coped with the dem<strong>and</strong>for more complicated instructions was to give the main processora microprocessor with its own set <strong>of</strong> simple instructions.When the main processor received one <strong>of</strong> the complexinstructions, it would be executed by being broken downinto simpler instructions or “microcode” to be executed bythe sub-processor.This approach gave processor designers greater flexibility.It also made things easier for compiler designers,because the compiler could translate higher-level languagestatements into fewer, more complex instructions, leavingit to the hardware with its micro engine to break themdown into the ultimate machine operations. However, italso meant that the processor had to decode <strong>and</strong> executemore instructions in every processor cycle, making it lessefficient <strong>and</strong> slower <strong>and</strong> losing some <strong>of</strong> the benefits <strong>of</strong> thefaster processors that were becoming available.In 1975, John Cocke <strong>and</strong> his colleagues at IBM decidedto build a new minicomputer architecture from the groundup. Instead <strong>of</strong> using complex instructions <strong>and</strong> decodingthem with a micro engine, they would use only simpleinstructions that could be executed one per cycle. The clock(<strong>and</strong> thus the cycle time) would be much faster than forexisting machines, <strong>and</strong> the processor would use pipeliningso it could decode the next instruction while still executingthe previous one. Similarly, in many cases the next item<strong>of</strong> data needed could be fetched at the same time the datafrom the previous step was being written (stored). Thisapproach became known as reduced instruction set computing(RISC), because the number <strong>of</strong> instructions had beenreduced compared to exiting systems, which then becameknown as complex instruction set computing (CISC).Since the RISC system had only simple instructions,compilers could no longer use many complicated but h<strong>and</strong>yinstructions. The compiler would have to take over the job<strong>of</strong> the micro engine <strong>and</strong> break all statements down intothe basic instructions. It became important that the compilerbe able to generate the optimal set <strong>of</strong> instructions byanalyzing how data would have to be moved around inthe machine’s registers <strong>and</strong> memory. In other words, RISChardware gained higher performance through simplificationat the hardware level but at the cost <strong>of</strong> making compilersmore complicated. Fortunately, both hardware <strong>and</strong> s<strong>of</strong>twaredesigners were able to meet the challenge <strong>and</strong> in the processlearn how to get the most out <strong>of</strong> new technology.RISC would also play a part in the design <strong>of</strong> the microprocessorsthat began to power personal computers. Forexample, the DEC Alpha, a “pure” RISC chip introducedin 1992, provided a level <strong>of</strong> power that made it suitable forhigh-performance workstations. Another successful RISCbaseddevelopment has been the SPARC (Scalable ProcessorARChitecture) developed by Sun Microsystems for servers,computer clusters, <strong>and</strong> workstations.Perhaps the most interesting development, however, hasbeen the gradual application <strong>of</strong> RISC principles to mainstreamprocessors such as the Intel 80×86 series used inmost personal computers today. Increasingly, the recentPentium series chips, while supporting their legacy <strong>of</strong> CISCinstructions, are processing them using an inner architecturethat uses RISC principles <strong>and</strong> takes advantage <strong>of</strong> pipelining,as well as using more registers <strong>and</strong> a larger datacache. However, the sheer increase in clock cycle speed <strong>and</strong>performance in the newer chips has made the old trade<strong>of</strong>fbetween complicated <strong>and</strong> simple instructions less relevant.Further ReadingD<strong>and</strong>amudi, Sivarama P. Guide to RISC Processors for Programmers<strong>and</strong> Engineers: Introduction to Assembly Language Programmingfor Pentium <strong>and</strong> RISC Processors. New York: Springer, 2005.Knuth, Donald E. MMIX—A RISC <strong>Computer</strong> for the New Millennium.Vol. 1, fascicle 1 <strong>of</strong> Art <strong>of</strong> <strong>Computer</strong> Programming. UpperSaddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2005.regular expressionMany users <strong>of</strong> UNIX <strong>and</strong> the old MS-DOS are familiar withthe ability to use “wildcards” to find filenames that matchspecified patterns. For example, suppose a user wants to listall <strong>of</strong> the TIF graphics files in a particular directory. Sincethese files have the extension .tif, a UNIX ls comm<strong>and</strong> or aDOS dir comm<strong>and</strong>, when given the pattern *.tif, will match<strong>and</strong> list all the TIF files. (One does have to be aware <strong>of</strong>whether the operating system in question is case-sensitive.UNIX is, while MS-DOS is not.)The specification *.tif tells the comm<strong>and</strong> “match all fileswhose names consist <strong>of</strong> one or more characters <strong>and</strong> that endwith a period followed by the letters tif.” It is one <strong>of</strong> manypossible regular expressions. (See the accompanying tablefor more examples.) The asterisk here is a “metacharacter.”This means that it is not treated as a literal character, but asa pattern that will be matched in a specified way.Most operating systems that have comm<strong>and</strong> processors(see shell) allow for some form <strong>of</strong> regular expressions, butdon’t necessarily implement all <strong>of</strong> the metacharacters. UNIXprovides the most extensive use for regular expressions (seeUNIX). UNIX has an operating system facility called globthat exp<strong>and</strong>s regular expressions (that is, substitutes forthem whatever matches) <strong>and</strong> passes them on to the manyUNIX tools or utilities designed to work with regular expressions.These tools include editors such as ex <strong>and</strong> vi, thecharacter translation utility (tr), the “stream editor” (sed),<strong>and</strong> the string-searching tool grep. For example, sed can beused to remove all blank lines from a file by specifyingsed ‘s/^$/d’ list.txtThis comm<strong>and</strong> finds all lines with no characters (^$) inthe file list.txt <strong>and</strong> deletes them from the output. Even moreextensive use <strong>of</strong> pattern-matching with regular expressionsis found in many scripting languages (see scripting languages,awk, <strong>and</strong> Perl).It is true that most <strong>of</strong> today’s computer users don’t enteroperating system comm<strong>and</strong>s in text form but instead usemenus <strong>and</strong> manipulate icons (see user interface <strong>and</strong>Micros<strong>of</strong>t Windows). If such a user wants to change oneword to another throughout a word processing document,he or she is likely to open the Edit menu, select Find,


esearch laboratories in computing 403MetacharacterMETACHARACTERS IN REGULAR EXPRESSIONSMeaning. (period) Matches any single character in that position? Matches zero or one <strong>of</strong> any character* Matches zero or more <strong>of</strong> the preceding character (thus * matches any number <strong>of</strong> characters)+ Matches one or more <strong>of</strong> the preceding character (thus 9+ matches 9, 99, 999, etc.)[ ] Matches any <strong>of</strong> the characters enclosed by the brackets– Specifies a range <strong>of</strong> characters. Placing the range in brackets will match any character within therange. For example, [0–9] matches any digit, [A–Z] matches any uppercase character, <strong>and</strong> [A–Za–z]matches any alphabetic character.\ “Quotes” the following character. If it is a metacharacter, the following character will be treated as anordinary character. Thus \? matches an actual question mark.^Matches the beginning <strong>of</strong> a line$ Matches the end <strong>of</strong> a line<strong>and</strong> type the “before” <strong>and</strong> “after” words into a dialog box.However, even in such cases if the user has some familiaritywith regular expressions, more sophisticated substitutionscan be accomplished. In Micros<strong>of</strong>t Word, for example,a variety <strong>of</strong> wildcards (i.e., metacharacters) can be usedfor operations that would be hard to accomplish throughmouse selections.Further ReadingFriedl, Jeffrey. Mastering Regular Expressions. 3rd ed. Sebastapol,Calif.: O’Reilly, 2006.Regular Expressions Tutorial, Tools & Languages, Examples,Books & Reference. Available online. URL: http://www.regular-expressions.info/. Accessed August 19, 2007.Stubblebine, Tony. Regular Expression Pocket Reference: RegularExpressions for Perl, Ruby, PHP, Python, C, Java <strong>and</strong> .NET.Sebastapol, Calif.: O’Reilly, 2007.Watt, Andrew. Beginning Regular Expressions. Indianapolis: Wiley,2005.research laboratories in computingThe value <strong>of</strong> creating <strong>and</strong> maintaining environments forlong-term research in computer science <strong>and</strong> engineeringhas long been recognized by academic institutions, industryorganizations, <strong>and</strong> corporations.Academic Research InstitutionsArtificial intelligence <strong>and</strong> robotics have been the focus <strong>of</strong>many academic computer science research facilities (seeartificial intelligence <strong>and</strong> robotics). They are examples<strong>of</strong> areas that show great potential but that dem<strong>and</strong>a substantial investment in long-term research. There aremany research organizations in the AI field, but a few st<strong>and</strong>out as particularly important examples.The Massachusetts Institute <strong>of</strong> <strong>Technology</strong> (MIT) ArtificialIntelligence Lab has a wide-ranging program but hasemphasized robotics <strong>and</strong> related fields such as computervision <strong>and</strong> language processing.The MIT Media Lab has become well known for workwith new media technologies <strong>and</strong> the digital <strong>and</strong> graphicalrepresentation <strong>of</strong> data. However, in recent years it hasexp<strong>and</strong>ed its focus to the broader area <strong>of</strong> human-machineinteraction <strong>and</strong> the pervasive presence <strong>of</strong> intelligent devicesin the home <strong>and</strong> larger environment.The Stanford Artificial Intelligence Laboratory (SAIL)played an important role in the development <strong>of</strong> the LISPlanguage (see LISP) <strong>and</strong> other AI research. Today Stanford’simportant role in AI is continued by its Robotics Laboratory<strong>and</strong> the Knowledge Systems Laboratory. Carnegie MellonUniversity also has a number <strong>of</strong> influential AI labs <strong>and</strong>research projects.On the international scene Japan has had strong researchprograms in academic <strong>and</strong> industrial AI, such as the NeuralComputing Center at Keio University <strong>and</strong> the Knowledge-Based Systems Laboratory at Shizuoka University. There area number <strong>of</strong> important AI research groups in the UnitedKingdom, such as at Cambridge, Oxford, King’s College,<strong>and</strong> the University <strong>of</strong> Edinburgh (where the logic languageProlog was developed).Some <strong>of</strong> the most interesting research sometimesemerges from outside the main concerns <strong>of</strong> an institution.The World Wide Web, for example, was developed by TimBerners-Lee (see Berners-Lee, Tim) while he was workingwith the coordination <strong>of</strong> scientific computing at CERN, thegiant European particle physics laboratory.Corporate Research InstitutionsThe challenging nature <strong>of</strong> computer applications <strong>and</strong> thecompetitiveness <strong>of</strong> the industry have also led a number <strong>of</strong>major companies to underwrite permanent research institutions.Much corporate-funded research has gone into developingthe basic infrastructure <strong>of</strong> computing rather than tothe more esoteric topics pursued by academic departments.However, corporations have also funded “pure” researchthat may have little short-term application but can ultimatelylead to new technologies.The concept <strong>of</strong> the industrial laboratory is <strong>of</strong>ten attributedto Thomas Edison, whose famous Menlo Park, NewJersey, facility (founded in 1876) put experimentation <strong>and</strong>development <strong>of</strong> new inventions on a systematic, continuousbasis. Instead <strong>of</strong> an invention forming the basis for a company,Edison saw invention itself as the core business.


404 reverse engineeringA similar approach motivated the founding <strong>of</strong> Bell Laboratories.Bell Labs would play a direct role in making moderndigital electronics possible when three <strong>of</strong> its researchers,John Bardeen, Walter H. Brattain, <strong>and</strong> William B. Shockleyinvented the transistor in 1947.On the s<strong>of</strong>tware side, Bell supported the work <strong>of</strong> ClaudeShannon, whose fundamental theorems <strong>of</strong> informationtransmission would become a key to the design <strong>of</strong> the computernetworks (see Shannon, Claude). The development<strong>of</strong> the UNIX operating system at Bell in the early 1970s (seeRitchie, Dennis <strong>and</strong> UNIX) would provide much <strong>of</strong> theinfrastructure that would be used for computing at universities<strong>and</strong> other research institutions <strong>and</strong> ultimately in thedevelopment <strong>of</strong> the Internet. Similarly, Ritchie <strong>and</strong> Thompsonalso developed C, the language that together with its<strong>of</strong>fshoots C++ <strong>and</strong> Java would become the most widely usedgeneral-purpose programming languages for the rest <strong>of</strong> thecentury <strong>and</strong> beyond.IBM built its first research lab in 1945, beginning anetwork that would eventually include facilities in Switzerl<strong>and</strong>,Israel, Japan, China, <strong>and</strong> India. IBM research has generallyfocused on core hardware <strong>and</strong> s<strong>of</strong>tware technologies,including the development <strong>of</strong> the first hard drive in 1956<strong>and</strong> the development <strong>of</strong> the FORTRAN language by JohnBackus in 1957 (see foRTRAN). Other IBM innovationshave included online commerce (the SABRE airline reservationsystem), the relational database, <strong>and</strong> the first prototypeRISC (reduced instruction set computer).Xerox is best known for its photocopiers <strong>and</strong> printers,but in the late 1960s the company decided to try to diversifyits products by recasting itself as developer <strong>of</strong> a comprehensive“architecture <strong>of</strong> information” in the <strong>of</strong>fice. During the1970s, its Palo Alto Research Center (PARC) invented much<strong>of</strong> the technology (such as the mouse, graphical user interface,<strong>and</strong> notebook computer) that would become familiarto consumers a decade later in the Macintosh <strong>and</strong> Micros<strong>of</strong>tWindows.In 1991, Micros<strong>of</strong>t, then a medium-sized company,established its Micros<strong>of</strong>t Research division, which hassince grown to include four laboratories in Redmond,Washington, the San Francisco Bay Area, Cambridge,Engl<strong>and</strong>, <strong>and</strong> Beijing. The labs maintain close ties withuniversities, <strong>and</strong> their research areas have included datamining <strong>and</strong> analysis, geographic information systems(Terraserver), natural language processing, <strong>and</strong> computerconferencing <strong>and</strong> collaboration.The role <strong>of</strong> government agencies in funding computer-relatedresearch should not be overlooked (seegovernment funding <strong>of</strong> computer research). TheInternet evolved from a project funded by the Department<strong>of</strong> Defense’s ARPA (Advanced Research ProjectsAgency) in 1968 (see Internet). The network architecture<strong>and</strong> hardware in turn were developed by a contractor,Bolt, Beranek <strong>and</strong> Newman (BBN). In the late 1970s,the Defense Department would issue contracts for development<strong>of</strong> the Ada computer language. Other projectsfunded by Defense <strong>and</strong> other government agencies can befound in areas such as robotics, autonomous vehicles, <strong>and</strong>mapping systems.Coordinating ResearchTwo large pr<strong>of</strong>essional organizations for computer scientists<strong>and</strong> engineers, the Association for Computing Machinery(ACM) <strong>and</strong> the <strong>Computer</strong> Society <strong>of</strong> the Institute <strong>of</strong>Electrical <strong>and</strong> Electronics Engineers (IEEE), serve as clearinghouses<strong>and</strong> disseminators <strong>of</strong> research. The ComputingResearch Association (CRA) brings together more than 200North American university computer science departments,government-funded research institutions, <strong>and</strong> corporateresearch laboratories. Its goal is to improve the opportunitiesfor <strong>and</strong> quality <strong>of</strong> research <strong>and</strong> education in the computerfield. (For contact information for these <strong>and</strong> otherselected computer-related organizations, see Appendix IV.)Other Types <strong>of</strong> ResearchThe social impact <strong>of</strong> computing technology is also the subject<strong>of</strong> considerable ongoing research. Topics include consumerbehavior, the use <strong>of</strong> media, <strong>and</strong> sociological analysis<strong>of</strong> online communities. A particularly useful effort is theextensive surveys <strong>and</strong> overviews produced by the Pew Centerfor the Internet <strong>and</strong> American Life project. The computerhardware, s<strong>of</strong>tware, <strong>and</strong> e-commerce sectors are <strong>of</strong>course also the subject <strong>of</strong> research by economists, expertsin organizational behavior, investment analysts, <strong>and</strong> so on.Further ReadingComputing Research Association. Available online. URL: http://www.cra.org/. Accessed August 19, 2007.Open Directory Project. <strong>Computer</strong> <strong>Science</strong> Research Institutes.Available online. URL: http://www.dmoz.org/<strong>Computer</strong>s/<strong>Computer</strong>_<strong>Science</strong>/Research_Institutes/. Accessed August19, 2007.Pew Internet & American Life Project. Available online. URL:http://www.dmoz.org /<strong>Computer</strong>s/<strong>Computer</strong>_ <strong>Science</strong>/Research_Institutes/. Accessed August 19, 2007.TRN’s Research Directory: A Worldwide Listing <strong>of</strong> <strong>Technology</strong>Research Laboratories. Available online. URL: http://www.trnmag.com/Directory/directory.html. Accessed August 19, 2007.reverse engineeringBack in the days <strong>of</strong> mechanical clocks, curious kids wouldsometimes take a clock apart to try to figure out how itworked. A few were even able to reassemble the clock correctly—theseyoungsters were likely to become engineers!With s<strong>of</strong>tware, reverse engineering is the process <strong>of</strong> “takingapart” s<strong>of</strong>tware <strong>and</strong> analyzing its operation without havingaccess to the program code itself. Among other possibilities,reverse engineering may allow one to:• provide equivalent functions without violating copyrightlaws• emulate one operating system within another (seeemulation)• determine a file format so other programs can use itas well (interoperability)• document the operation <strong>of</strong> a program whose documentationis lost or no longer available• determine whether a competing product violates one’spatents or copyrights


RFID 405TechniquesReverse engineering can be thought <strong>of</strong> as running the developmentprocess backwards (see s<strong>of</strong>tware development).Instead <strong>of</strong> starting with the specification <strong>of</strong> the system <strong>and</strong>writing code, one starts with the operating program <strong>and</strong>constructs a detailed description <strong>of</strong> its organization. Severalgeneral techniques can be used:• disassembly (turning the machine-level code intosomewhat higher-level code with symbolic labels, etc.)(see assembler)• decompilation (which attempts to turn machine codeinto a higher-level language such as C) (see compiler)• systematically supplying data <strong>of</strong> various types <strong>and</strong>analyzing the program’s response (this is especiallyused when analyzing communications protocols)Perhaps the most significant example <strong>of</strong> reverse engineeringoccurred in the early 1980s when competitorsreverse engineered the built-in code (see BIOS) that controlledthe low-level functions <strong>of</strong> the original IBM PC, thusenabling the manufacture <strong>of</strong> legal “clones” by such companiesas Compaq. This was done by creating a “clean room”staffed with engineers who had no involvement with IBM<strong>and</strong> were not privy to any <strong>of</strong> the internal secrets <strong>of</strong> the BIOS.Reverse engineering has been widely used to provideopen-source implementations <strong>of</strong> formerly proprietary technologies.Examples include Samba (Windows SMB filesharing), Open Office (similar to Micros<strong>of</strong>t Office), Mono(Windows .NET API), <strong>and</strong> especially Windows emulatorsfor Linux such as Wine.Generally, under the Digital Millennium Copyright Act<strong>of</strong> 1998, courts have been sympathetic to reverse engineeringthat enables users to exercise what would be considered“fair use” under copyright laws or to provide morewidespread compatibility with other products. However,reverse engineering may be illegal when the intent is tobypass s<strong>of</strong>tware “locks” (see copy protection) in order tomake illegal copies, or when the machine code is copied ormanipulated (such as by decompiling).There are a number <strong>of</strong> ways in which reverse engineering(or similar practices) can be applied to technology otherthan s<strong>of</strong>tware. Perhaps the most unusual example was thesuccessful reconstruction <strong>of</strong> an ancient Greek astronomicalcalculator called the Antikythera mechanism. In general,the process <strong>of</strong> reverse engineering, by spreading knowledge<strong>of</strong> how to access <strong>and</strong> interface systems <strong>and</strong> provide functionality,ultimately contributes to the development <strong>of</strong> newtechnology <strong>and</strong> s<strong>of</strong>tware.Further ReadingEilam, Eldad. Reversing: Secrets <strong>of</strong> Reverse Engineering. Indianapolis:Wiley, 2005.James, Dick. “Reverse Engineering Delivers Product Knowledge,Aids <strong>Technology</strong> Spread.” Available online. URL: http://electronicdesign.com/Articles/Index.cfm?AD=1&ArticleID=11966. Accessed November 11, 2007.Musker, David C. “Reverse Engineering.” Available online. URL:http://www.jenkins-ip.com/serv/serv_6.htm. Accessed November11, 2007.Perry, Mike, <strong>and</strong> Nasko Oskov. “Introduction to Reverse EngineeringS<strong>of</strong>tware.” Available online. URL: http://www.acm.uiuc.edu/sigmil/RevEng/. Accessed November 11, 2007.Raja, Vinesh, <strong>and</strong> Kiran J. Fern<strong>and</strong>es, eds. Reverse Engineering: AnIndustrial Perspective. New York: Springer, 2008.RFID (radio frequency identification)For some years now people have become used to swipingcredit or debit cards to buy things in stores, or haveused magnetic cards to access transit systems. Increasingly,however, the information needed for identification, whether<strong>of</strong> goods in a warehouse or customers in a store, is beingscanned wirelessly using radio frequency identification(RFID) systems.An RFID system uses a tag or card (see smart card)that is able to store <strong>and</strong> modify information in memory,together with a tiny antenna <strong>and</strong> transmitter for communicatingthe information.Passive vs. ActivePassive RFID tags have no power supply; the power inducedby the reading signal is used to transmit the response.Because this power is very small, passive tags can only beread at distances from about 4 inches (10 cm) to a few yards(meters), depending on the antenna size <strong>and</strong> type. The mainadvantage <strong>of</strong> passive tags is that the lack <strong>of</strong> a battery makesthem small, lightweight, <strong>and</strong> inexpensive, making themideal for attaching to merch<strong>and</strong>ise (they have also beenembedded under the skin <strong>of</strong> pets <strong>and</strong>, in a few cases, evenpeople). Smart cards for use in transit systems <strong>and</strong> similarapplications are also passive; the system is activated by“tagging” or bringing the card near the reader.Active RFID tags have their own battery. Their advantageis that they are able to initiate communication withthe reader, <strong>and</strong> the signal they send is much stronger, morereliable, <strong>and</strong> with greater range (up to about 1,500 feet[500 m]). The stronger signal allows for communication inrougher environments (such as outdoors for tracking cattleor shipping containers).There is also a sort <strong>of</strong> hybrid called a semipassive tag. Thisalso has a battery, but only uses it for internal processing, notsending signals. The tag can gather information (such as loggingtemperature) <strong>and</strong> send it when queried by a reader.Current uses for RFID tags <strong>and</strong> cards <strong>of</strong> various typesinclude:• automatic fare payments systems for transit systems• automatic toll payments for bridges <strong>and</strong> turnpikes• automatic book checkout systems for libraries, whereit reduces repetitive strain injury (RSI) in staff <strong>and</strong>simplifies checking shelves• student ID cards• passports (RFID has been included in new U.S. passportssince 2006)• tracking cattle, including determining the origin <strong>of</strong>unhealthy animals


406 RFIDParts <strong>of</strong> an RFID system. Depending on whether the chip is active or passive, the reader can be inches or yards away.• identification chips placed beneath the skin <strong>of</strong> pets• experimental human RFID implants (pioneered byBritish computer scientist Kevin Warwick) <strong>and</strong> nowused by VIP customers in a few nightclubs• tracking goods from original shipment to inventory(Wal-Mart now requires its major suppliers to includeRFID labels with shipments)• scientific sensors, such as seismographic instrumentsPrivacy <strong>and</strong> Security IssuesThe benefits <strong>of</strong> RFID technology are numerous: betterinventory control (see supply chain management); moresecure passports <strong>and</strong> other forms <strong>of</strong> ID; faster, easier accessto transportation systems; <strong>and</strong> potentially, the avoidance <strong>of</strong>A Radio Frequency ID (RFID) “chip” from 3M. RFID is findingmany applications, but has also raised privacy concerns.(3M Corporation)mishaps in hospitals, such as the wrong patient receiving adrug or procedure.However, there are privacy <strong>and</strong> security concerns thatremain to be fully resolved. The primary threat is thatunauthorized persons could illicitly obtain information ortrack people or goods, for purposes ranging from simplelarceny to identity theft. Privacy rights organizations havealso raised concerns that information about consumer purchasescould be used for unwanted marketing (or sold tothird parties), while information about a library patron’sreading habits could trigger unwarranted governmentinvestigations in the name <strong>of</strong> fighting terrorism.There is an incentive to produce RFID cards <strong>and</strong> tagsthat are resistant to unauthorized reading or tampering. Acryptographic protocol can be used such that no informationwill be sent or received unless the reader <strong>and</strong> tag “know” thecorrect keys. Another possibility is to create a device thatcan “jam” reading attempts in the device’s vicinity, perhapsprotecting a customer’s grocery cart from being scanned.Finally, RFID cards can be put inside in a sleeve <strong>of</strong> materialthat blocks the signals. However, cryptographic <strong>and</strong> othersecurity technologies raise the cost <strong>of</strong> RFID devices <strong>and</strong> maymake them impracticable for some applications.In September 2006 the National <strong>Science</strong> Foundationawarded a $1.1 million grant to the RFID Consortium forSecurity <strong>and</strong> Privacy to study potential risks <strong>and</strong> safeguardsfor the technology. That same year a group <strong>of</strong> major corporationstogether with the National Consumers Leaguereleased a draft set <strong>of</strong> st<strong>and</strong>ards <strong>and</strong> guidelines for bestpractices in using RFID, with broader scope than the existingEPC (electronic product code) st<strong>and</strong>ards.Further ReadingEPC Global. Available online. URL: http://www.epcglobalinc.org/.Accessed November 12, 2007.Feder, Barbara. “Guidelines for Radio Tags Aim to Protect BuyerPrivacy.” New York Times, May 1, 2006. Available online.URL: http://query.nytimes.com/gst/fullpage.html?res=9805EFDF113FF932A35756C0A96 09C8B63. Accessed November12, 2007.


Rheingold, Howard 407Glover, Bill, <strong>and</strong> Himanashu Bhatt. RFID Essentials. Sebastapol,Calif.: O’Reilly, 2006.Newitz, Annalee. “The RFID Hacking Underground.” Wired, May2006. Available online. URL: http://www.wired.com/wired/archive/14.05/rfid.html. Accessed November 12, 2007.“Privacy Best Practices for Deployment <strong>of</strong> RFID <strong>Technology</strong>,Interim Draft.” CDT Working Group on RFID, May 1, 2006.Available online. URL: http://www.nclnet.org/advocacy/technology/rfid_guidelines_05012006.htm.Accessed November12, 2007.Sweeney, Partick J., II. RFID for Dummies. Hoboken, N.J.: Wiley,2005.Rheingold, Howard(1947– )AmericanWriterOn his Web site, Howard Rheingold says that he “fell intothe computer realm from the typewriter dimension, thenplugged his computer into his telephone <strong>and</strong> got suckedinto the net.” A prolific writer, explorer <strong>of</strong> the interaction<strong>of</strong> human consciousness <strong>and</strong> technology, <strong>and</strong> chronicler <strong>of</strong>virtual communities, Rheingold has helped people from studentsto businesspersons to legislators underst<strong>and</strong> the socialsignificance <strong>of</strong> the Internet <strong>and</strong> communications revolution.Born on July 17, 1947, in Phoenix, Arizona, he was latereducated at Reed College in Portl<strong>and</strong>, Oregon, but lived <strong>and</strong>worked for most <strong>of</strong> his life in the San Francisco Bay Area.A child <strong>of</strong> the counterculture, his interests included theexploration <strong>of</strong> consciousness <strong>and</strong> cognitive psychology. Hisbooks in this area would include Higher Creativity (writtenwith Willis Harman, 1984), The Cognitive Connections (writtenwith Howard Levine, 1986), <strong>and</strong> Exploring the World<strong>of</strong> Lucid Dreaming (written with Stephen LaBerge, 1990).In 1994 he updated the Whole Earth Catalog, a remarkableresource book by Stewart Br<strong>and</strong> that had become a bible forthe movement toward a more self-sufficient <strong>and</strong> humanscalelife in the 1970s.Rheingold bought his first personal computer, mainlybecause he thought word processing would make his workas a writer easier. In 1983 he bought a modem <strong>and</strong> was soonintrigued by the thous<strong>and</strong>s <strong>of</strong> PC bulletin board systemsthat were an important way to share files <strong>and</strong> ideas in thedays before the World Wide Web (see bulletin board systems).Interacting with these <strong>of</strong>ten tiny cyberspace villageshelped Rheingold explore his developing ideas about thenature <strong>and</strong> significance <strong>of</strong> virtual communities.In 1985 Rheingold joined The WELL (Whole Earth ’LectronicLink), a unique <strong>and</strong> remarkably persistent communitythat began as an unlikely meeting place <strong>of</strong> Deadheads(Grateful Dead fans) <strong>and</strong> computer hackers. Compared tomost bulletin boards, the WELL was more like the virtualequivalent <strong>of</strong> the cosmopolitan San Francisco Bay Area.The sum <strong>and</strong> evaluation <strong>of</strong> these experiences can befound in what is perhaps Rheingold’s most seminal book,The Virtual Community (1993; revised, 2000), which representsboth a participant’s <strong>and</strong> an observer’s tour through theonline meeting places that had begun to function as communities(see virtual community). Rheingold chronicledthe romances, feuds (“flame wars”), <strong>and</strong> growing pains thatmade The WELL seem much like a small town or perhapsan artist’s colony that just happened to be in cyberspace.In addition to The WELL, Rheingold also exploresMUDs (Multi-User Dungeons) <strong>and</strong> other elaborate onlinefantasy role-playing games, NetNews (also called Usenet)groups, chat rooms, <strong>and</strong> other forms <strong>of</strong> online interaction(see conferencing systems <strong>and</strong> netnews <strong>and</strong> newsgroups).Rheingold continues to manage the BrainstormsCommunity, a private Web-conferencing community thatallows for thoughtful discussions about a variety <strong>of</strong> topics.Rheingold saw the computer (<strong>and</strong> computer networksin particular) as a powerful tool for creating new forms<strong>of</strong> community. The original edition <strong>of</strong> his book Tools forThought (1985 <strong>and</strong> revised 2000), with its description <strong>of</strong>the potential <strong>of</strong> computer-mediated communications, seemsprescient today after a decade <strong>of</strong> the Web. Rheingold’s VirtualReality (1991) introduced that immersive technology.Around 1999 Rheingold started noticing the emergence<strong>of</strong> a different kind <strong>of</strong> virtual community—a mobile, highlyflexible, <strong>and</strong> adaptive one. In his book Smart Mobs, Rheingoldgives examples <strong>of</strong> groups <strong>of</strong> teenagers coordinatingtheir activities by sending each other text messages on theircell phones (see flash mobs). Rheingold believes that thecombination <strong>of</strong> mobile <strong>and</strong> network technology may be creatinga social revolution as important as that triggered bythe PC in the 1980s <strong>and</strong> the Internet in the 1990s.In 1996 Rheingold launched Electric Minds, an innovativecompany that tried to <strong>of</strong>fer virtual-community-buildingservices while attracting enough revenue from contractwork <strong>and</strong> advertising to become self-sustaining <strong>and</strong> pr<strong>of</strong>itablein about three years. He received financing from theventure capital firm S<strong>of</strong>tbank. However, the company failed,<strong>and</strong> Rheingold came to believe that there was a fundamentalmismatch between the pr<strong>of</strong>it objectives <strong>of</strong> most venturecapitalists <strong>and</strong> the patience needed to cultivate <strong>and</strong> grow anew social enterprise. Rheingold then started a more modesteffort, Rheingold Associates.According to Rheingold <strong>and</strong> coauthor Lisa Kimball, some<strong>of</strong> the benefits <strong>of</strong> creating such communities include the abilityto get essential knowledge to the community in times<strong>of</strong> emergency, to connect people who might ordinarily bedivided by geography or interests, to “amplify innovation,”<strong>and</strong> to “create a community memory” that prevents importantideas from getting lost. Rheingold continues to bothcreate <strong>and</strong> write about new virtual communities, workingthrough such efforts as the Cooperation Commons (a collaborationwith the Institute for the Future). He is also a nonresidentFellow <strong>of</strong> the Annenberg School for Communication.Rheingold’s writings have garnered a variety <strong>of</strong> awards.In 2003 Utne Reader magazine gave an Independent PressAward for a blog based on Smart Mobs. That year Rheingoldalso gave the keynote speech for the annual Webby Awardsfor Web-site design.Further ReadingCooperation Commons. Available online. URL: http://www.cooperationcommons.com/. Accessed November 12, 2007.


408 risks <strong>of</strong> computingHafner, Katie. The Well: A Story <strong>of</strong> Love, Death & Real Life in theSeminal Online Community. New York: Carol & Graf, 2001.Howard Rheingold [home page]. Available online. URL: http://www.rheingold.com. Accessed November 12, 2007.Kimball, Lisa, <strong>and</strong> Howard Rheingold. “How Online Social NetworksBenefit Organizations.” Available online. URL: http://www.rheingold.com /Associates/onlinenetworks.html.Accessed November 12, 2007.Rheingold, Howard. Smart Mobs: The Next Social Revolution. NewYork: Basic Books, 2003.———. Tools for Thought: The History <strong>and</strong> Future <strong>of</strong> Mind-Exp<strong>and</strong>ing<strong>Technology</strong>. 2nd rev. ed. Cambridge, Mass.: MIT Press,2000.———. The Virtual Community: Homesteading on the ElectronicFrontier. Revised ed. Cambridge, Mass.: MIT Press, 2000.[The first edition is also available online. URL: http://www.rheingold.com/vc/book/. Accessed November 12, 2007.]Smart Mobs Blog. Available online. URL: http://www.smartmobs.com/. Accessed November 12, 2007.The WELL Available online. URL: http://www.well.com. AccessedNovember 12, 2007.risks <strong>of</strong> computingProgrammers <strong>and</strong> managers <strong>of</strong> s<strong>of</strong>tware development aregenerally aware <strong>of</strong> the need for s<strong>of</strong>tware to properly dealwith erroneous data (see error h<strong>and</strong>ling). They knowthat any significant program will have bugs that must berooted out (see bugs <strong>and</strong> debugging). Good s<strong>of</strong>tware engineeringpractices <strong>and</strong> a systematic approach to assuring thereliability <strong>and</strong> quality <strong>of</strong> s<strong>of</strong>tware can minimize problemsin the finished product (see s<strong>of</strong>tware engineering <strong>and</strong>quality assurance, s<strong>of</strong>tware). However, serious bugs arenot always caught, <strong>and</strong> sometimes the consequences can becatastrophic. For example, in the Therac 25 computerizedX-ray cancer treatment machine, poorly thought-out comm<strong>and</strong>entry routines plus a counter overflow resulted inthree patients being killed by massive X-ray overdoses. Theoverdoses ultimately occurred because the designers hadremoved a physical interlock mechanism they believed wasno longer necessary.Any computer application is part <strong>of</strong> a much larger environment<strong>of</strong> humans <strong>and</strong> machines, where unforeseen interactionscan cause problems ranging from inconvenience toloss <strong>of</strong> privacy to potential injury or death. Seeing thesepotential pitfalls requires thinking beyond the specifications<strong>and</strong> needs <strong>of</strong> a particular project. For many years theUsenet newsgroup comp.risks (<strong>and</strong> its collected form, RisksDigest) have chronicled what amounts to an ongoing symposiumwhere knowledgeable programmers, engineers, <strong>and</strong>others have pointed out potential risks in new technology<strong>and</strong> suggested ways to minimize them.Unexpected SituationsA common source <strong>of</strong> risks arises from designers <strong>of</strong> controlsystems failing to anticipate extreme or unusual environmentalconditions (or interactions between conditions).This is a particular problem for mobile robots, which unliketheir tethered industrial counterparts must share elevators,corridors, <strong>and</strong> other places with human beings. For example,a hospital robot was not designed to recognize when itwas blocking an elevator door—a situation that could haveblocked a patient being rushed into surgery. A basic principle<strong>of</strong> coping with unexpected situations is to try to designa fail-safe mode that does not make the situation worse. Forexample, an automatic door should be designed so that if itfails it can be opened manually rather than trapping peoplein a fire or other disaster.Unanticipated InteractionsThe more systems there are that can respond to externalinputs, the greater the risk that a spurious input might triggeran unexpected <strong>and</strong> dangerous response. For example,the growing number <strong>of</strong> radio-controlled (wireless) deviceshave great potential for unexpected interactions betweendifferent devices. In one case reported to the Risks Forum, aSwedish policeman’s h<strong>and</strong>held radio inadvertently activatedhis car’s airbag, which slammed the radio into him. Severalmilitary helicopters have crashed because <strong>of</strong> radio interference.Banning the use <strong>of</strong> electronic devices at certain times<strong>and</strong> places (for example, aboard an aircraft that is taking <strong>of</strong>for l<strong>and</strong>ing) can help minimize interference with the mostsafety-critical systems.At the same time, regulations themselves introduce therisk that people will engage in other forms <strong>of</strong> risky behaviorin an attempt to either follow or circumvent the rule. Forexample, the Japanese bullet train system imposed a stiffpenalty for operators who failed to wear a hat. In one casean operator left the train cabin to retrieve his hat while thetrain kept running unsupervised. This minor incident actuallyconceals two additional sorts <strong>of</strong> risks—that <strong>of</strong> automatinga system so much that humans no longer pay attention,<strong>and</strong> the inability <strong>of</strong> the system to sense the lack <strong>of</strong> humansupervision.Unanticipated Use <strong>of</strong> DataThe growing number <strong>of</strong> different databases that track eventhe intimate details <strong>of</strong> individual lives has raised many privacyissues (see privacy in the digital age). Designers <strong>and</strong>maintainers <strong>of</strong> such databases had some awareness <strong>of</strong> thethreat <strong>of</strong> unauthorized persons breaking into systems <strong>and</strong>stealing such data (see computer crime <strong>and</strong> security).However, most people were surprised <strong>and</strong> alarmed by thenew crime <strong>of</strong> identity theft, which began to surface in significantnumbers in the mid- to late-1990s (see identity theft).It turned out that while a given database (such as customerrecords, bank information, illicitly obtained DMVrecords, <strong>and</strong> so on) usually did not have enough informationto allow someone to successfully impersonate another’sidentity, it was not difficult to use several <strong>of</strong> these sourcestogether to obtain, for example, the information needed toapply for credit in another’s name. In particular, while mostpeople guarded their credit card numbers, they tended notto worry as much about Social Security numbers (SSN).However, since many institutions use the SSN to indextheir records, the number has become a key for unlockingpersonal data.Further, as more organizations put their records online<strong>and</strong> make them Web-accessible, the ability <strong>of</strong> hackers, privateinvestigators (legitimate or not), <strong>and</strong> “data brokerage”


Ritchie, Dennis 409services to quickly assemble a dossier <strong>of</strong> sensitive informationon any individual was greatly increased. Here we havea case where a powerful tool for productivity (the Internet)also becomes a facilitator for using the vulnerabilities inany one system to compromise others.In an increasingly networked <strong>and</strong> technologically-dependentworld, the anticipation <strong>and</strong> prevention <strong>of</strong> computerrisks has become very important. To the extent companiesmay be legally liable for the more direct forms <strong>of</strong> risk, thereis more incentive for them to devote resources to risk amelioration.However, many computer-related risks are at leastas much social as technological in nature, <strong>and</strong> are beyondthe scope <strong>of</strong> concern <strong>of</strong> any one company or organization.Social risks ultimately dem<strong>and</strong> a broader social response.<strong>Technology</strong> itself can be used to help ameliorate technologicalrisks. Artificial intelligence techniques (see expertsystems <strong>and</strong> neural network) might be used improve theability <strong>of</strong> a system to adapt to unusual conditions. However,any such programming then becomes prone to bugs <strong>and</strong>risks itself.So far, the most successful way to deal with the broadrange <strong>of</strong> computer risks has been through human collaborationas facilitated by the Internet. Through venues such asthe Risks Forum computer-mediated communications <strong>and</strong>collaboration allows for the pooling <strong>of</strong> human intelligence inthe face <strong>of</strong> the growing complexity <strong>of</strong> human inventiveness.Further ReadingComp.risks [access via Google Groups]. Available online. URL:http://groups.google.com/group/comp.risks/topics. AccessedAugust 19, 2007.Glass, Robert L. S<strong>of</strong>tware Runaways: Monumental S<strong>of</strong>tware Disasters.Upper Saddle River, N.J.: Prentice Hall, 1997.Neumann, Peter G. <strong>Computer</strong>-Related Risks. Reading, Mass.: Addison-Wesley,1994.Peterson, Ivars. Fatal Defect: Chasing Killer <strong>Computer</strong> Bugs. NewYork: Vintage Books, 1996.Ritchie, Dennis(1941– )American<strong>Computer</strong> ScientistTogether with Ken Thompson, Dennis Ritchie developedthe UNIX operating system <strong>and</strong> the C programming language—twotools that have had a tremendous impact onthe world <strong>of</strong> computing for three decades.Ritchie was born on September 9, 1941, in Bronxville,New York. He was exposed to communications technology<strong>and</strong> electronics from an early age because his father wasdirector <strong>of</strong> the Switching Systems Engineering Laboratoryat Bell Laboratories. (Switching theory is closely akinto computer logic design.) Ritchie attended Harvard University<strong>and</strong> graduated with a B.S. in physics. However, bythen his interests had shifted to applied mathematics <strong>and</strong> inparticular, the mathematics <strong>of</strong> computation, which he laterdescribed as “the theory <strong>of</strong> what machines can possiblydo” (see computability <strong>and</strong> complexity). For his doctoralthesis he wrote about recursive functions (see recursion).Together with Ken Thompson, Dennis Ritchie developed the UNIXoperating system <strong>and</strong> the C programming language, two <strong>of</strong> themost important developments in the history <strong>of</strong> computing. (Photocourtesy <strong>of</strong> Lucent Technologies’ Bell Labs)This topic was proving to be important for the definition <strong>of</strong>new computer languages in the 1960s (see Algol).In 1967, however, Ritchie decided that he had had enough<strong>of</strong> the academic world. Without finishing the requirementsfor his doctorate, he started work at Bell Labs, his father’semployer. Bell Labs has made a number <strong>of</strong> key contributionsto communications <strong>and</strong> information theory (see researchlaboratories in computing).By the late 1960s, computer operating systems hadbecome increasingly complex <strong>and</strong> unwieldy. As typified bythe commercially successful IBM System/360, the operatingsystem was proprietary, had many hardware-specific functions<strong>and</strong> trade<strong>of</strong>fs in order to support a family <strong>of</strong> upwardlycompatible computer models, <strong>and</strong> was designed with a topdownapproach.During his graduate studies, however, Ritchie hadencountered a different approach to designing an operatingsystem. A new system called Multics was being designedjointly by Bell Labs, MIT, <strong>and</strong> General Electric. Multics wasquite different from the batch-processing world <strong>of</strong> mainframes:It was intended to allow many users to share acomputer. He had also done some work with MIT’s Project


410 roboticsMac. The MIT computer students, the original “hackers” (inthe positive meaning <strong>of</strong> the term), emphasized a cooperativeapproach to designing tools for writing programs. This,too, was quite different from IBM’s highly structured <strong>and</strong>centralized approach.Unfortunately, the Multics project itself grew increasinglyunwieldy. Bell Labs withdrew from the Multics projectin 1969. Ritchie <strong>and</strong> his colleague Ken Thompson thendecided to apply many <strong>of</strong> the same principles to creatingtheir own operating system. Bell Labs wasn’t in a mood tosupport another operating system project, but they eventuallylet Ritchie <strong>and</strong> Thompson use a DEC PDP-7 minicomputer.Although small <strong>and</strong> already obsolete, the machinedid have a graphics display <strong>and</strong> a Teletype terminal thatmade it suitable for the kind <strong>of</strong> interactive programmingthey preferred. They decided to call their system UNIX,punning on Multics by suggesting something that was simpler<strong>and</strong> better integrated.Instead <strong>of</strong> designing from the top down, Ritchie <strong>and</strong>Thompson worked from the bottom up. They designed away to store data on the machine’s disk drive (see file), <strong>and</strong>gradually wrote the necessary utility programs for listing,copying, <strong>and</strong> otherwise working with the files. Thompsondid the bulk <strong>of</strong> the work on writing the operating system,but Ritchie did make key contributions such as the idea thatdevices (such as the keyboard <strong>and</strong> printer) would be treatedthe same way as other files. Later, he reconceived data connectionsas “streams” that could connect not only files <strong>and</strong>devices but applications <strong>and</strong> data being sent using differentprotocols. The ability to flexibly assign input <strong>and</strong> output, aswell as to direct data from one program to another, wouldbecome hallmarks <strong>of</strong> UNIX.When Ritchie <strong>and</strong> Thompson successfully demonstratedUNIX, Bell Labs adopted the system for its internal use.UNIX turned out to be ideal for exploiting the capabilities<strong>of</strong> the new PDP-11 minicomputer. As Bell licensed UNIX tooutside users, a unique community <strong>of</strong> user-programmersbegan to contribute their own UNIX utilities (see opensourcemovement).In the early 1970s, Ritchie also collaborated with Thompsonin creating C, a streamlined version <strong>of</strong> the earlier BCPL<strong>and</strong> CPL languages. C would be a “small” language thatwas independent <strong>of</strong> any one machine but could be linkedto many kinds <strong>of</strong> hardware thanks to its ability to directlymanipulate the contents <strong>of</strong> memory. C became tremendouslysuccessful in the 1980s. Since then, C <strong>and</strong> its <strong>of</strong>fshoots C++<strong>and</strong> Java became the dominant languages used for most programmingtoday.Ritchie still works at Bell Labs’s Computing <strong>Science</strong>sResearch Center. (When AT&T spun <strong>of</strong>f many <strong>of</strong> its divisions,Bell Labs became part <strong>of</strong> Lucent Technologies.)Ritchie developed an experimental operating system calledPlan 9 (named for a cult sci-fi movie). Plan 9 attempts totake the UNIX philosophy <strong>of</strong> decentralization <strong>and</strong> flexibilityeven further, <strong>and</strong> is designed especially for networkswhere computing resources are distributed.Ritchie has received numerous awards, <strong>of</strong>ten givenjointly to Thompson. These include the ACM Turing Award(1985), the IEEE Hamming Medal (1990), the TsutomuKanai Award (1999), <strong>and</strong> the National Medal <strong>of</strong> <strong>Technology</strong>(also 1999).Further ReadingDennis Ritchie Home Page. Available online. URL: http://www.cs.bell-labs.com/who/dmr/. Accessed August 27, 2007.Kernighan, B. W., <strong>and</strong> Dennis M. Ritchie. The C ProgrammingLanguage. Upper Saddle River, N.J., Prentice Hall, 1978. (Asecond edition was published in 1989.)Lohr, Steve. Go To. New York: Basic Books, 2001.Plan 9 from Bell Labs. 4th ed. Available online. URL: http://plan9.bell-labs.com/plan9/. Accessed August 19, 2007.Ritchie, Dennis M., <strong>and</strong> Ken Thompson. “The UNIX Time-SharingSystem.” Communications <strong>of</strong> the ACM 17, 7 (1974): 365–375.Slater, Robert. Portraits in Silicon. Cambridge, Mass.: MIT Press,1987.roboticsThe idea <strong>of</strong> the automaton—the lifelike machine that performsintricate tasks by itself—is very old. Simple automatonswere known to the ancient world. By the 18th century,royal courts were being entertained by intricate humanlikeautomatons that could play music, draw pictures, or dance.A little later came the “Turk,” a chess-playing automatonthat could beat most human players.However, things are not always what they seem. Thetrue automatons, controlled by gears <strong>and</strong> cams, could playonly whatever actions had been designed into them. Theycould not be reprogrammed <strong>and</strong> did not respond to changesin their environment. The chess-playing automaton held aconcealed human player.True robotics began in the mid-20th century <strong>and</strong> hascontinued to move between two poles: the pedestrian butuseful industrial robots <strong>and</strong> the intriguing but tentativecreations <strong>of</strong> the artificial intelligence laboratories.Industrial RobotsIn 1921, the Czech playwright Karel Capek wrote a playcalled R.U.R. or Rossum’s Universal Robots. Robot is a Czechword that has been translated as work(er), serf, or slave. In theplay the robots, which are built by factories to work in otherfactories, eventually revolt against their human masters.During the 1960s, real robots began to appear in factorysettings (see also Engelberger, Joseph). They were an outgrowth<strong>of</strong> earlier machine tools that had been programmedby cams <strong>and</strong> other mechanisms. An industrial robot is basicallya movable arm that ends in a “h<strong>and</strong>” called an endeffector. The arm <strong>and</strong> h<strong>and</strong> can be moved by some combination<strong>of</strong> hydraulic, pneumatic, electrical, or mechanicalmeans. Typical applications include assembling parts,welding, <strong>and</strong> painting. The robot is programmed for a taskeither by giving it a detailed set <strong>of</strong> comm<strong>and</strong>s to move to,grasp, <strong>and</strong> manipulate objects, or by “training” the robot bymoving its arm, h<strong>and</strong>, <strong>and</strong> effectors through the requiredmotions, which are then stored in the robot’s memory. Bythe early 1970s, Unimation, Inc. had created a pr<strong>of</strong>itablebusiness from selling its Unimate robots to factories.The early industrial robots had very little ability torespond to variations in the environment, such as the “work


obotics 411human workers, such as in the military, law enforcement,h<strong>and</strong>ling <strong>of</strong> hazardous materials, <strong>and</strong> so on.An experimental NASA robot arm. (NASA photo)piece” that the robot was supposed to grasp being slightlyout <strong>of</strong> position. However, later models have more sophisticatedsensors to enable them to adjust to variations <strong>and</strong>still accomplish the task. The more sophisticated computerprograms that control newer robots have internal representationsor “frames <strong>of</strong> reference” to keep track <strong>of</strong> both therobot’s internal parameters (angles, pressures, <strong>and</strong> so on)<strong>and</strong> external locations in the work area.Mobile Robots <strong>and</strong> Service RobotsIndustrial robots work in an extremely restricted environment,so their world representation can be quite simple.However, robots that can move about in the environmenthave also been developed. Military programs have developedautomatic guided vehicles (AGVs) with wheels ortracks, capable <strong>of</strong> navigating a battlefield <strong>and</strong> scoutingor attacking the enemy (see military applications <strong>of</strong>computers). Space-going robots including the SojournerMars rover also have considerable onboard “intelligence,”although their overall tasks are programmed by remotecomm<strong>and</strong>s.Indeed, the extent to which mobile robots are trulyautonomous varies considerably. At one end is the “robot”that is steered <strong>and</strong> otherwise controlled by its humanoperator, such as law enforcement robots that can be sentinto dangerous hostage situations. (Another example is therobots that fight in arena combat in the popular Robot Warsshows.)Moving toward greater autonomy, we have the “servicerobots” that have begun to show up in some institutionssuch as hospitals <strong>and</strong> laboratories. These mobile robotsare <strong>of</strong>ten used to deliver supplies. For example, the Help-Mate robot can travel around a hospital by itself, navigatingusing an internal map. It can even take an elevator to go toanother floor.Service robots have had only modest market penetration,however. They are relatively expensive <strong>and</strong> limited infunction, <strong>and</strong> if relatively low-wage more versatile humanlabor is available, it is generally preferred. For now mobilerobots <strong>and</strong> service robots are most likely to turn up inspecialized applications in environments too dangerous forSmart RobotsRobotics has always had great fascination for artificial intelligenceresearchers (see artificial intelligence). Afterall, the ability to function convincingly in a real-world environmentwould go a long way toward demonstrating theviability <strong>of</strong> true artificial intelligence.Building a smart, more humanlike robot involves severalinterrelated challenges, all quite difficult. These includedeveloping a system for seeing <strong>and</strong> interpreting the environment(see computer vision) as well a way to represent theenvironment internally so as to be able to navigate aroundobstacles <strong>and</strong> perform tasks.One <strong>of</strong> the earliest AI robots was “Shakey,” built at theStanford Research Institute (SRI) in 1969. Shakey couldnavigate only in a rather simplified environment. However,the “Stanford Cart,” built by Hans Moravec in the late 1970scould navigate around the nearby campus without gettinginto too much trouble.An innovative line <strong>of</strong> research began in the 1990s at MIT(see Brooks, Rodney <strong>and</strong> Breazeal, Cynthia). Instead <strong>of</strong>a “top down” approach <strong>of</strong> programming robots with explicitlogical rules, so-called behavior-based robotics works fromthe bottom up, coupling systems <strong>of</strong> sensors <strong>and</strong> actuatorsthat each have their own simple rules, from which canemerge surprisingly complex behavior. The MIT “sociablerobots” Cog <strong>and</strong> Kismet were able to explore the world <strong>and</strong>learn to interact with people in somewhat the way a humantoddler might.Today it is possible to buy an AI robot for one’s home, inthe form <strong>of</strong> toys such as Sony’s AIBO robot dog, which canemulate various doggy behaviors such as chasing things <strong>and</strong>communicating by body language. Some robot toys not onlyhave an extensive repertoire <strong>of</strong> behavior <strong>and</strong> vocalizations,but also can learn to some extent (see neural network.)It is also possible to experiment with robotics at homeor school, thanks to kits such as the LEGO Logo, whichcombines a popular building set with a versatile educationalprogramming language (see Logo).Future ApplicationsA true humanoid robot with the kind <strong>of</strong> capabilities writtenabout by Isaac Asimov <strong>and</strong> other science fiction writersis not in sight yet. However, there are many interestingapplications <strong>of</strong> robots that are being explored today. Theseinclude the use <strong>of</strong> remote robots for such tasks as performingsurgery (see telepresence) <strong>and</strong> the application <strong>of</strong>robotics principles to the design <strong>of</strong> better prosthetic arms<strong>and</strong> legs for humans (bionics). Farther afield is the possibility<strong>of</strong> creating artificial robotic “life” that can self-reproduce(see artificial life).Further ReadingBreazeal, Cynthia. Designing Sociable Robots. Cambridge, Mass.:MIT Press, 2004.Brooks, Rodney A. Flesh <strong>and</strong> Machines: How Robots Will Change Us.New York: Pantheon Books, 2002.


412 RPGHenderson, Harry. Modern Robotics: Building Versatile Machines.New York: Chelsea House, 2006.Humanoid Robotics Group [MIT Artificial Intelligence Laboratory].Available online. URL: http://www.ai.mit.edu/projects/humanoid-robotics-group/. Accessed August 19, 2007.Menzel, Peter, <strong>and</strong> Faith D’Alusio. Robo Sapiens: Evolution <strong>of</strong> a NewSpecies. Cambridge, Mass.: MIT Press, 2001.N<strong>of</strong>, Shimon Y. H<strong>and</strong>book <strong>of</strong> Industrial Robotics. 2nd ed. New York:Wiley, 1999.Pires J. Norberto. Industrial Robots Programming: Building Applicationsfor the Factories <strong>of</strong> the Future. New York: Springer, 2007.Schraft, Rolf Dieter, <strong>and</strong> Gernot Schmierer. Service Robots: Products,Scenarios, Visions. Natick, Mass.: A. K. Peters, 2000.Severin, E. Oliver. Robotic Companions: Mentorbots <strong>and</strong> Beyond.New York: McGraw-Hill, 2004.Tesler, Pearl. Universal Robots: The History <strong>and</strong> Workings <strong>of</strong> Robotics.TheTech Museum. Available online. URL: http://www.thetech.org/exhibits/online/robotics/universal/index.html.Accessed August 19, 2007.RPG (Report Program Generator)Many business computer programs written for mainframecomputers involved reading data from files, performing relativelysimple procedures, <strong>and</strong> outputting printed reports.During the 1960s, some people believed that COBOL, ageneral-purpose (but business-oriented) computer language,would be easy enough for nonprogrammers to use(see COBOL). Although this turned out not to be the case,IBM did succeed in creating RPG (Report Program Generator),a language designed to make it easier for programmers(including beginners) to generate business reports.Most COBOL programs read data, perform tests <strong>and</strong> calculations,<strong>and</strong> print the results. RPG, first released in 1964for use with the new System/360 mainframe <strong>and</strong> the smallerSystem/3, simplifies this process <strong>and</strong> eliminates most writing<strong>of</strong> program code statements.A “classic” RPG program is built around the “RPGcycle,” consisting <strong>of</strong> three stages. During the input stage,the input device(s), file type, access specifications, <strong>and</strong> datarecord structure are specified. (These specifications can bequite elaborate.) The heart <strong>of</strong> the program specifies calculationsto be performed with the various data fields, while theoutput section specifies how the results will be laid out inreport form, including such things as headers, footers, <strong>and</strong>sections.Subsequent versions <strong>of</strong> RPG added more features. RPG-IV, released in 1994, includes the ability to define subroutines,for example. IBM has also released VisualAge RPG,which allows for the creation <strong>and</strong> running <strong>of</strong> RPG programsin the Micros<strong>of</strong>t Windows environment. There arealso tools for interfacing RPG programs with various databasesystems <strong>and</strong> to use RPG for writing Web-based (CGI)programs.Further ReadingCozzi, Robert. The Modern RPG IV Language. 4th ed. Lewisville,Tex.: MC Press Online, 2006.Martin, Jim. Free-Format RPG IV: How to Bring Your RPG Programsinto the 21st Century. Lewisville, Tex.: MC Press Online, 2005.Meyers, Bryan, <strong>and</strong> Jef Sutherl<strong>and</strong>. VisualAge for RPG by Example.Lovel<strong>and</strong>, Colo.: Duke Press, 1998.RSS (Really Simple Syndication)Web sites such as news providers <strong>and</strong> blogs (see blogs<strong>and</strong> blogging) are constantly posting new material. Whilereaders can periodically visit a site to look for new material,an increasingly popular option is to subscribe to a “Webfeed” <strong>and</strong> receive the latest information automatically. Themost commonly used tool for Web feeds is RSS, which canst<strong>and</strong> for Really Simple Syndication, Rich Site Summary, orRDF Site Summary, depending on the format used.The data in an RSS feed can include article titles, summaries,excerpts (such as the first paragraph), or the completearticle or posting. Feeds can also include multimediasuch as graphics, video, or sound. The data (<strong>and</strong> any linkedmaterial) is formatted using st<strong>and</strong>ard markup elements (seeHTML <strong>and</strong> XML). The following is an excerpt <strong>of</strong> a simpleRSS feed provided by the RSS Advisory Board:Lift<strong>of</strong>f Newshttp://lift<strong>of</strong>f.msfc.nasa.gov/Lift<strong>of</strong>f to Space Exploration.en-usTue, 10 Jun 2003 04:00:00 GMTTue, 10 Jun 2003 09:41:01GMThttp://blogs.law.harvard.edu/tech/rssWeblog Editor 2.0editor@example.comwebmaster@example.comStar Cityhttp://lift<strong>of</strong>f.msfc.nasa.gov/news/2003/news-starcity.aspHow do Americans getready to work with Russians aboardthe International Space Station? Theytake a crash course in culture, language<strong>and</strong> protocol at Russia’s &lt;ahref=“http://howe.iki.rssi.ru/GCTC/gctc_e.htm”&gt;Star City&lt;/a&gt;.Tue, 03 Jun 2003 09:39:21GMThttp://lift<strong>of</strong>f.msfc.nasa.gov/2003/06/03.html#item573As part <strong>of</strong> the process <strong>of</strong> setting up a feed on the Webserver, the feed is “published” so that it can be found <strong>and</strong>read using a client program called a reader or aggrega-


Ruby 413tor (the latter can combine feeds or organize them in anewspaper-like format for convenience). RSS readers canbe st<strong>and</strong>-alone applications or be included with many modernWeb browsers <strong>and</strong> e-mail clients. Alternatively, Webbasedreaders or aggregators such as NewsGator Online canallow feeds to be read using any Web browser. Readers <strong>of</strong>Web pages can find RSS feeds by looking for a “subscribe”icon or the words RSS or XML. Specialized search enginessuch as Bloglines can also help users find interesting feeds.Additionally, information on the server can also be usedby s<strong>of</strong>tware to automatically deliver the latest content (seepodcasting).History <strong>and</strong> DevelopmentForerunners <strong>of</strong> RSS go back to the mid-1990s, with RDFSite Summary first appearing in 1999 for use on Netscape’sportal. The adoption <strong>of</strong> RSS by the New York Times in 2002greatly aided the popularization <strong>of</strong> the format, as did thegrowing number <strong>of</strong> blogs that needed a way for contributors<strong>and</strong> readers to keep in touch. Today Web browsers such asInternet Explorer, Mozilla Firefox, <strong>and</strong> Safari support RSS.File-sharing services such as BitTorrent can be combinedwith RSS to deliver content automatically to users’ harddrives. An <strong>of</strong>fshoot <strong>of</strong> RSS called Atom has been less widelyadopted, but <strong>of</strong>fers better compatibility with XML st<strong>and</strong>ards<strong>and</strong> better management <strong>of</strong> multimedia content.Further ReadingBloglines. Available online. URL: http://www.bloglines.com/.Accessed November 19, 2007.Calishain, Tara. Information Trapping: Real-Time Research on theWeb. Berkeley, Calif.: New Riders, 2007.Finkelstein, Ellen. Syndicating Web Sites with RSS Feeds for Dummies.Hoboken, N.J.: Wiley, 2005.RSS Advisory Board. Available online. URL: http://www.rssboard.org. Accessed November 19, 2007.Sherman, Chris. “What Is RSS, <strong>and</strong> Why Should You Care?” SearchEngine Watch, August 30, 2005. Available online. URL: http://searchenginewatch.com/showPage.html?page=3530926.Accessed November 19, 2007.RTF (Rich Text Format)Rich Text Format was developed in the later 1980s by programmersat Micros<strong>of</strong>t. Its purpose is to allow for interchange<strong>of</strong> documents between Micros<strong>of</strong>t Word <strong>and</strong> others<strong>of</strong>tware, while preserving the original formatting.An RTF file is itself a plain text file containing the documenttext enclosed in control codes that determine the formatting.For example:{\rtf1\ansi{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}\f0\pardThis is some {\b bold} text.\par}The backslash starts a control code, such as for specifyinga font or a style, such as Times New Roman <strong>and</strong> boldin the example. Curly brackets { } enclose the text to beaffected by the control code. Thus the example above wouldbe rendered in a word processor as:This is some bold text.Although RTF is an 8-bit format, special escapesequences can be used to specify 16-bit Unicode characters,such as for non-Roman alphabets.Libraries <strong>and</strong> utilities are available for reading <strong>and</strong>writing RTF from most popular programming languages,including Perl, PHP, <strong>and</strong> Ruby.In practice, RTF created by word processors tends tocontain many control codes needed to ensure compatibilitywith older programs, making the files bulky <strong>and</strong> not practicableto edit directly. However, saving a file in RTF is agood way to ensure that a document can be used by recipientswho may have, for example, older versions <strong>of</strong> Word. (Itis quite typical for the latest default Word format to not becompatible with earlier versions.)Further ReadingBurke, Sean M. RTF Pocket Guide. Sebastapol, Calif.: O’Reilly,2003.Micros<strong>of</strong>t Corporation. Word 2007: Rich Text Format (RTF),Specification, Version 1.9. Available online. URL: http://www.micros<strong>of</strong>t.com/downloads/details.aspx?FamilyID=DD422B8D-FF06-420 7-B476-6B5396A18A2B. Accessed November 13,2007.RubyRuby is a versatile yet consistent programming languagethat has become popular in recent years, particularly forWeb development. Designed by Yukihiro Matsumoto <strong>and</strong>first released in 1995, Ruby has a compact syntax familiarto many users <strong>of</strong> Perl <strong>and</strong> other scripting languages (seePerl <strong>and</strong> Scripting language), avoiding, for example,the need to declare variable types. However, Ruby is alsoa thoroughgoing object-oriented language somewhat likeSmalltalk (see Smalltalk). Matsumoto has stressed thatthe design <strong>of</strong> the language is intended to stress being natural<strong>and</strong> enjoyable for the programmer, rather than focusingon the needs <strong>of</strong> the machine.StructureIn Ruby, every data type is an object (see class, data type,<strong>and</strong> object), even those defined as primitive types in otherlanguages, such as integers <strong>and</strong> Booleans. Although one canuse the traditional procedural method <strong>of</strong> defining variables<strong>and</strong> then working with them, they are still implicitly treatedas part <strong>of</strong> the root object called “Self.”Every function is a method that belongs to some class.Thus -5.abs invokes the absolute value method on the integer-5, returning 5. Similarly, “wireless wombat”.lengthwould return the length <strong>of</strong> the string, 15. Ruby includesmany built-in methods for working with data structuressuch as arrays <strong>and</strong> hashes, <strong>and</strong> there are many additionallibraries <strong>and</strong> applications available.There are Ruby interpreters for all major operating systems.In addition to reading <strong>and</strong> executing a program from


414 Rubya file, as with many scripting languages, Ruby can also beused interactively to test statements:% ruby eval.rbruby> puts “Hello, world.”Hello, world.nilruby> exitHere the Ruby interpreter is told to run eval.rb, a specialprogram that interactively evaluates statements <strong>and</strong> expressions.The puts comm<strong>and</strong> puts (outputs) the string Hello,world. The evaluator then reports that the puts methodreturned no value (nil).Although Ruby is traditionally an interpreted language,a version that will produce byte code for a virtual machine(similar to Java) is in development, <strong>and</strong> a more direct compileris certainly possible.Ruby on RailsThe most popular programming environment for Rubyis Ruby on Rails, an open-source application frameworkaimed particularly at writing programs that connect Websites to databases. The framework is based on the modelviewcontroller approach (separating data access <strong>and</strong> logicfrom the user interface) <strong>and</strong> includes “scaffolding” that canbe quickly filled in to provide data-driven Web sites withbasic functionality. Developers can also create plug-ins toextend the built-in packages.Further ReadingBaird, Kevin. Ruby by Example: Concepts <strong>and</strong> Code. San Francisco:No Starch Press, 2007.Burd, Barry. Ruby on Rails for Dummies. Hoboken, N.J.: Wiley,2007.Cooper, Peter. Beginning Ruby: From Novice to Pr<strong>of</strong>essional. Berkeley,Calif.: Apress, 2007.“Ruby: A Programmer’s Best Friend.” Available online. URL: http://www.ruby-lang.org/en/. Accessed November 13, 2007.Slagell, Mark. “Ruby User’s Guide.” Available online. URL: http://www.mentalpointer.com/ruby/index.html. Accessed November13, 2007.Stewart, Bruce. “An Interview with the Creator <strong>of</strong> Ruby.” O’ReillyLinux devcenter, November 29, 2001. Available online. URL:http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html. Accessed November 13, 2007.Thomas, Dave. Programming Ruby: The Pragmatic Programmer’sGuide. 2nd ed. Raleigh, N.C.: Pragmatic Bookshelf, 2004.


SSAPSAP (NYSE symbol: SAP) is a German acronym for Systeme,Anwendungen, und Produkete in der Datenverarbeitung (“Systems,Applications, <strong>and</strong> Products in Data Processing”). Fiveformer IBM engineers in Germany founded the company in1972.Although unfamiliar to the American public, unlike IBM<strong>and</strong> Micros<strong>of</strong>t, SAP is the world’s largest business s<strong>of</strong>twarecompany, <strong>and</strong> fourth-largest s<strong>of</strong>tware provider in general(behind Micros<strong>of</strong>t, IBM, <strong>and</strong> Oracle). The company operatesworldwide through three geographical divisions.Applications <strong>and</strong> ProductsSAP specializes in Enterprise Resource Planning (ERP),enhancing a corporation’s ability to manage its key assets<strong>and</strong> needs <strong>and</strong> to plan for the future. This s<strong>of</strong>tware consists<strong>of</strong> three tiers: the database, an application server, <strong>and</strong> theclient. Early versions <strong>of</strong> this s<strong>of</strong>tware were designed to runon mainframes. Other major products include:• SAP NetWeaver, which integrates all other SAP modulesusing modern open-st<strong>and</strong>ard Web technologies(see service-oriented architecture)• Customer Relationship Manager (see crm)• Supply Chain Management (see supply chain management)• Supplier Relationship Management• Human Resource Management System• Product Lifestyle Management• Exchange Infrastructure• Enterprise Portal• SAP Knowledge WarehouseChallengesSAP has recognized for some time that while its base <strong>of</strong>large Fortune 500 companies has given it steady income,changing trends in business have been limiting the s<strong>of</strong>twaregiant’s growth. In particular, the trend has beentoward smaller, simpler, more scalable applications thatcan be integrated with modern Web services. In September2007 SAP announced SAP Business ByDesign, a flexible set<strong>of</strong> enterprise management services that are delivered overthe Web. However, it remains to be seen how well SAP willbe able to compete with more agile companies such as Net-Suite <strong>and</strong> Salesforce.com, <strong>and</strong> whether the company will beable to upgrade its existing large company user base withoutdisaffecting it.SAP’s major competitor in the United States is Oracle(see Oracle), which has sued SAP in 2007 for unfairlydownloading <strong>and</strong> using patches <strong>and</strong> support materials fromOracle <strong>and</strong> using them to support former Oracle customers.SAP <strong>and</strong> Oracle have generally had quite different growthstrategies: SAP grows by exp<strong>and</strong>ing <strong>and</strong> extending its ownproducts, while Oracle has grown mainly through acquiringother companies. However, in October 2007 SAP acquiredBusiness Objects, a leader in “business intelligence” systems,for $6.8 billion. This may signal SAP’s willingness toengage in further strategic acquisitions.415


416 satellite Internet serviceFurther ReadingMcDonald, Kevin, et al. Mastering the SAP Business InformationWarehouse: Leveraging the Business Intelligence Capabilities <strong>of</strong>SAP NetWeaver. 2nd ed. Indianapolis: Wiley, 2006.Ricadela, Aaron. “SAP’s Down-Market Gamble.” Business Week,September 19, 2007. Available online. URL: http://www.businessweek.com/technology/content/sep2007/tc20070919_181869.htm. Accessed October 5, 2007.SAP.com. Available online. URL: http://www.sap.com/usa/index.epx. Accessed October 8, 2007.“SAP History: From Start-Up S<strong>of</strong>tware Vendor to Global MarketLeader.” Available online. URL: http://www.sap.com/company/history.epx. Accessed October 8, 2007.Vogel, Andreas, <strong>and</strong> Jan Kimbell. mySAP for Dummies. Hoboken,N.J.: Wiley, 2004.Woods, Dan, <strong>and</strong> Jeffrey Word. SAP NetWeaver for Dummies. Hoboken,N.J.: Wiley, 2004.satellite Internet serviceAs with television, satellite Internet service can provideaccess to areas (such as remote locations, ships, or l<strong>and</strong>vehicles) where wired service is not available (see broadb<strong>and</strong>).Besides the satellite, the system includes a terrestrialfacility that has two connections: routers <strong>and</strong> proxy serversthat manage the flow <strong>of</strong> traffic to <strong>and</strong> from the Internet, <strong>and</strong>an “uplink” transmitter that communicates with the satellite.In addition, there may be a connection to the publictelephone network.Each user has a satellite dish <strong>and</strong> associated equipmentsimilar to those used for receiving satellite TV, though thedish is larger <strong>and</strong> existing TV dishes cannot be used. In theNorthern Hemisphere, the user must have an unobstructedview <strong>of</strong> the southern sky (most satellites orbit over theequator). The equipment is also adapted for use on ships<strong>and</strong> recreational vehicles.The user also has a modem (either external or on a cardin the PC) to convert the satellite signals to data, <strong>and</strong> s<strong>of</strong>twaresupplied by the satellite service.There are two types <strong>of</strong> systems for sending data from theuser back to the Internet. In a dial-return system, the userhas a conventional telephone dial-up modem that connectsby phone to a hub at the terrestrial facility. Downloadingis at broadb<strong>and</strong> speeds (comparable to low-end DSL orcable), but uploading is at dial-up speeds. (This is not usuallya problem unless the user is uploading large files.) In atwo-way system, the user has a transmitter that sends datadirectly back to the satellite. This is usually several timesfaster than dial-up, but is more expensive.Because <strong>of</strong> the time it takes signals to travel between asatellite <strong>and</strong> the ground, all satellite Internet systems have abuilt-in delay, or latency. Satellites in geosynchronous orbit(about 22,000 miles [35,405.6 km] high) have wider coveragebut higher latency, while using lower orbits reduceslatency but requires more satellites to provide continuouscoverage. Latency can be problematic for applications suchas Internet telephony (see VOIP).Although small compared with that for cable or DSL,the satellite user base is growing, particularly in areas <strong>and</strong>countries that lack wired infrastructure. Users who havecable or DSL available in their neighborhood would havelittle reason to obtain satellite Internet, since the initial <strong>and</strong>monthly costs are considerably higher <strong>and</strong> download speedsare somewhat slower. Also, the need to use encrypted virtualprivate networks (VPN) to secure business data canlower effective speeds substantially. Finally, though the satellitesthemselves are very reliable, satellite service is subjectto interruption during heavy rain or snow.Further ReadingBrodkin, Jon. “Satellite Services <strong>and</strong> Telecommuting Not Alwaysa Pretty Mix.” NetworkWorld, July 24, 2007. Availableonline. URL: http://www.networkworld.com/news/2007/072407-satellites-for-telecommuting.html. Accessed November14, 2007.“How Does Satellite Internet Operate?” HowStuffWorks. Availableonline. URL: http://computer.howstuffworks.com/question606.htm. Accessed November 14, 2007.Kota, Sastri L., Kaveh Pahlavan, <strong>and</strong> Pentti Leppanen. Broadb<strong>and</strong>Satellite Communication for Internet Access. Norwell, Mass.:Kluwer Academic Publishers, 2004.Nutter, Ron. “Getting More Performance from a Satellite InternetSystem.” Network World, April 16, 2007. Available online. URL:http://www.networkworld.com/columnists/2007/041607nutter.html. Accessed November 14, 2007.scannerIn order for a computer to work with information, theinformation must be digitized—converted to data thatapplication programs can recognize <strong>and</strong> manipulate (seecharacters <strong>and</strong> strings). <strong>Computer</strong> users have thusbeen confronted with the task <strong>of</strong> converting millions <strong>of</strong>pages <strong>of</strong> printed words or graphics into machine-readableform. Since it is expensive to re-key text (<strong>and</strong> impractical toredraw images), some way is needed to automatically convertthe varying shades or colors <strong>of</strong> the text or images into adigitized graphics image that can be stored in a file.This is what a scanner does. The scanner head containsa charge-coupled device (CCD) like that used in digital cameras(see photography, digital). The CCD contains thous<strong>and</strong>sor millions <strong>of</strong> tiny regions that can convert incominglight into a voltage level. Each <strong>of</strong> these voltage levels, whenamplified, will correspond to one pixel <strong>of</strong> the scanned image.(A color scanner uses three different diodes for each pixel,each receiving light through a red, green, or blue filter.)The operation <strong>of</strong> the head depends on the type <strong>of</strong> scanner.In the most common type, the flatbed scanner, a motormoves the head back <strong>and</strong> forth across the paper, which liesfacedown on a glass window. In a sheet-fed scanner, thehead remains stationery <strong>and</strong> the paper is fed past it by a set<strong>of</strong> rollers. Finally, there are h<strong>and</strong>held scanners, where thejob <strong>of</strong> moving the scanner head is performed by the usermoving the scanner back <strong>and</strong> forth over the page.The resolution <strong>of</strong> a scanner depends on the number <strong>of</strong>pixels into which it can break the image. The color depthdepends on how many bits <strong>of</strong> information that it can storeper pixel (more information means more gradations <strong>of</strong> coloror gray). Resolutions <strong>of</strong> 2,400 dots per inch (dpi) or moreare now common, with up to 36 bit color depth, allowingfor about 68.7 billion colors or gradations (see color incomputing).


scheduling <strong>and</strong> prioritization 417Besides considerations <strong>of</strong> resolution <strong>and</strong> color depth, thequality <strong>of</strong> a scanned image depends on the quality <strong>of</strong> thescanner’s optics as well as on how the page or other objectreflects light. As anyone who has browsed eBay listingsknows, the quality <strong>of</strong> scans can vary considerably. Mostscanners come with s<strong>of</strong>tware that allows for the scanner tobe controlled <strong>and</strong> adjusted from the PC, <strong>and</strong> image-editings<strong>of</strong>tware can be used to further adjust the scanned image.Even if the input is a sheet <strong>of</strong> text, the scanner’s outputis simply a graphical image. Special s<strong>of</strong>tware must be usedto interpret scanned images <strong>of</strong> text <strong>and</strong> identify which characters<strong>and</strong> other features are present (see optical characterrecognition). Since such s<strong>of</strong>tware is not 100 percentaccurate, human pro<strong>of</strong>readers may have to inspect theresulting documents.Like printers, scanners have become quite inexpensivein recent years. Quite serviceable units are available foraround $100 or so. (Popular multifunction devices <strong>of</strong>teninclude scanner, copier, fax, <strong>and</strong> printer capabilities. Ascanner can be used as a copier or fax by sending its outputto the appropriate mechanism.)Many home users now use scanners to digitize imagesfor use in personal Web pages, online auctions, <strong>and</strong> othervenues. Since sheet-fed scanners can only process individualsheets (not books, magazines, or objects) they are now lesspopular. H<strong>and</strong>held scanners are somewhat tedious to use<strong>and</strong> require a steady h<strong>and</strong>, so they are generally used only inspecial circumstances where a flatbed scanner is not available.For capturing images <strong>of</strong> three-dimensional objects it is<strong>of</strong>ten easier to use a digital camera than a scanner.Specialized scanners are also available. For example,although many flatbed scanners have a holder for scanningfilm negatives, a dedicated film scanner (costing perhaps$500) is a better choice if one wants to scan <strong>and</strong> possiblyretouch or restore photographs. There are also high-enddrum-type scanners that can scan at resolutions <strong>of</strong> 10,000dpi or more.Further ReadingBusch, David D. Mastering Digital Scanning with Slides, Film, <strong>and</strong>Transparencies. Boston: Muska & Lipman, 2004.Chambers, Mark L. Scanners for Dummies. Hoboken, N.J.: Wiley,2004.PC Tech. Guide: Scanners. Available online. URL: http://www.pctechguide.com/55Scanners.htm. Accessed August 20, 2007.scheduling <strong>and</strong> prioritizationOften in computing, a fixed resource must be parceled outamong a number <strong>of</strong> competing users. The most obviousexample is the operating system’s scheduling the running<strong>of</strong> programs. Most computers have a single central processor(CPU) to execute programs. However, today virtuallyall operating systems (except for certain dedicated applications—seeembedded system) are expected to have manyprograms available simultaneously. For example, a Micros<strong>of</strong>tWindows user might have a word processor, spreadsheet,e-mail program, <strong>and</strong> Web browser all open at thesame time. Not only might all <strong>of</strong> these programs be carryingout tasks or waiting for the user’s input, but dozens <strong>of</strong>“hidden” system programs are also running in the background,providing services such as network support, virusprotection, <strong>and</strong> printing services (see multitasking).In this environment each executing program (or “process”)will be in one <strong>of</strong> three possible states. It may beactively executing (that is, its code is being run by theCPU). It may be ready to execute—that is, “wanting” toperform some activity but needing access to the CPU. Or,the program may be “blocked”—that is, not executing <strong>and</strong>unable to execute until some external condition is met.Blockage is usually caused by an input/output (I/O) operation.An example would be a program that’s waiting for datato finish loading from a file.In this sort <strong>of</strong> single-processor multiple-program system,the simplest arrangement is to have the operatingsystem dole out fixed amounts <strong>of</strong> execution time to eachprogram. Each program that indicates that it’s ready to rungets placed in a list (see queue) <strong>and</strong> given its turn. Whenthe amount <strong>of</strong> time fixed for a turn has passed, the operatingsystem saves the program’s “state” in the processor—thecontents <strong>of</strong> the registers, address pointed to by the pointerto the next instruction to be executed, <strong>and</strong> so on. Thisstored information can be considered to be a “virtual processor.”When the program’s turn comes around again, theprocessor is reloaded with the contents <strong>of</strong> the virtual processor<strong>and</strong> execution continues where it had left <strong>of</strong>f.Use <strong>of</strong> PriorityThe above scheme assumes that all programs should haveequal priority. In other words, that the timely completion<strong>of</strong> one program is not more important than that <strong>of</strong> another,or that no program should be “bumped up” in the queue forsome reason. In reality, however, most operating systems dogive some programs preference over others.For example, suppose the word processor has justreceived a user’s mouse click on a menu. The next programin the queue for execution, however, is an antivirus programthat’s checking all the files on the hard drive for possibleviruses. The latter program is important, but since theuser is not waiting for it to finish, a delay in its executionwon’t cause a significant problem. The user, on the otherh<strong>and</strong>, is expecting the menu just clicked on to open almostinstantly, <strong>and</strong> will become irritated with even a short delay.Therefore, it makes sense for the operating system to givea program that’s responding to immediate user activity ahigher priority than a program that’s carrying out tasksthat don’t require user intervention.There are other times when a program must (or should)be given a higher priority. A program may be required tocomplete a task within a guaranteed time frame (for example,to dispatch emergency services personnel). The operatingsystem must therefore provide a way that the programcan request priority execution.In general, an operating system that supports real-timeapplications or that requires great attention to efficiency inusing valuable devices may need a much more sophisticatedscheduling algorithm that factors in the availability <strong>of</strong> keydevices or services <strong>and</strong> adjusts program priorities in orderto minimize bottlenecks <strong>and</strong> guarantee that the system’s


418 science fiction <strong>and</strong> computingresponse will be within required parameters. Indeed, themethod used for assigning priorities may actually be changedin response to changes in the various “loads” on the system.Sophisticated systems may also include programs that canpredict the likely future load on the system in order to adjustfor it as quickly as possible.Scheduling Multiprocessor SystemsThese general principles also apply to systems where morethan one processor is available (see multiprocessing),but there is the added complication <strong>of</strong> deciding where thescheduling program will be run. In a multiprocessing systemthat has one “master” <strong>and</strong> many “slave” processors,the scheduling program runs on the master processor. Thisarrangement is simple, but it means that when a slave processorwants to schedule a program it must wait until thescheduling program gets its next time-slice on the masterprocessor.One alternative is to allow any processor that has freetime to run the scheduling algorithm. This is harder toset up because it requires a mechanism to make sure twoprocessors do not try to run the scheduling program at thesame time, but it smoothes out the bottleneck that wouldarise from relying on a single processor.A variant <strong>of</strong> this approach is “distributed scheduling.”Here each processor runs its own scheduling program.All the schedulers share the same set <strong>of</strong> information aboutthe status <strong>and</strong> queuing <strong>of</strong> processes on the system, <strong>and</strong>a locking mechanism is used to prevent two processorsfrom changing the same information at the same time. Thisapproach is easiest to “scale up” since added processors cancome with their own scheduling programs.Two trends in recent years have changed the emphasisin scheduling algorithms. One is the continuing dropin price per unit <strong>of</strong> processing power <strong>and</strong> memory. Thismeans that maximum efficiency in using the hardwarecan <strong>of</strong>ten give way in favor <strong>of</strong> catering to the user’s convenience<strong>and</strong> perceptions by giving more priority to interactionwith the user. The other development is the growinguse <strong>of</strong> systems where much <strong>of</strong> the burden <strong>of</strong> graphics <strong>and</strong>interactivity is placed on the user’s desktop, thus simplifyingthe complexity <strong>of</strong> scheduling for the server (see client-servercomputing).Principles <strong>of</strong> scheduling <strong>and</strong> priority can be appliedin areas other than computer operating systems. Schedulinghuman activities (such as factory work) adds furthercomplications such as the dependence <strong>of</strong> one task uponthe prior performance <strong>of</strong> one or more other tasks (seeproject management s<strong>of</strong>tware) <strong>and</strong> the “just-in-time”scheduling for minimizing the investment in materials orinventory.Further ReadingBrucker, Peter. Scheduling Algorithms. 5th ed. New York: Springer-Verlag, 2007.Leung, Joseph Y-T., ed. H<strong>and</strong>book <strong>of</strong> Scheduling Algorithms, Models,<strong>and</strong> Performance Analysis. Boca Raton, Fla.: CRC Press,2004.Pinedo, M. Scheduling: Theory, Algorithms, <strong>and</strong> Systems. 2nd ed.Upper Saddle River, N.J.: Prentice Hall, 2001.science fiction <strong>and</strong> computingThe image <strong>of</strong> the mechanical brain or “knowledge engine”has a surprisingly long history in Western literature. As farback as Jonathan Swift’s Gulliver’s Travels (1726), we finda gigantic engine that can create books on every conceivablesubject. While this was a satirical jab at thinkers whowere ushering in a rational, mechanistic cosmos, the ideathat the cunning mechanical automatons being created forthe amusement <strong>of</strong> princes might someday think did notseem so far-fetched. This belief would be strengthened inthe coming two centuries by the triumph <strong>of</strong> the IndustrialRevolution. In Jules Verne’s Paris in the Twentieth Century(written in 1863), giant calculating machines <strong>and</strong> facsimiletransmissions were used to coordinate business activities.As early as the beginning <strong>of</strong> the 20th century, writershad been exploring what might happen if some combination<strong>of</strong> artificial brains <strong>and</strong> robots <strong>of</strong>fered the possibility <strong>of</strong> cateringto all human needs. In E. M. Forster’s “The MachineStops,” published in 1909, people no longer even have toleave their insectlike cells because even their social needsare provided through machine-mediated communicationnot unlike today’s Internet. In the 1930s <strong>and</strong> 1940s, otherwriters such as John W. Campbell <strong>and</strong> Jack Williamsonwrote stories in which a worldwide artificial intelligencebecame the end point <strong>of</strong> evolution, with humans eitherbecoming extinct or living static, pointless lives.<strong>Science</strong> fiction writers had also been considering theramifications <strong>of</strong> a related technology, robotics. The termrobot came from Karel Čapek’s R.U.R. (Rossum’s UniversalRobots). Although the robot had a human face, it couldhave inhuman motives <strong>and</strong> threaten to become Earth’s newmaster, displacing humans. Isaac Asimov <strong>of</strong>fered a morebenign vision, thanks to the “laws <strong>of</strong> robotics” embeddedin his machines’ very circuitry. The first law states, “A robotshall not harm a human being or, through inaction, cause ahuman being to come to harm.” In the real world, <strong>of</strong> course,artificial intelligence had no such built-in restrictions (seeartificial intelligence).<strong>Science</strong> fiction <strong>of</strong> the “Golden Age” <strong>of</strong> the pulp magazineshad only limited impact on popular culture as a whole. Onceactual computers arrived on the scene, however, they becamethe subject for movies as well as novels. D. F. Jones’s novelColossus: The Forbin Project (1966), which became a film in1970, combined cold war anxiety with fear <strong>of</strong> artificial intelligence.Joining forces with its Soviet counterpart, Colossusfulfills its orders to prevent war by taking over <strong>and</strong> institutinga world government. Similarly, Hal in the film 2001:A Space Odyssey (based on the work <strong>of</strong> Arthur C. Clarke)puts its own instinct for self-preservation ahead <strong>of</strong> the franticcomm<strong>and</strong>s <strong>of</strong> the spaceship’s crew. However, the artificialcan also strive to be human, as in the 2001 movie A.I.During the 1940s <strong>and</strong> 1950s science fictional computerstended to be larger, more powerful versions <strong>of</strong> existingmainframes, sometimes aspiring to godlike status. However,in Murray Leinster’s book A Logic Named Joe (1946),a “Logic” is found in every home, complete with keyboard<strong>and</strong> television screen. All the Logics are connected to ahuge relay circuit called the Tank, <strong>and</strong> the user can obtaineverything from TV broadcasts to weather forecasts or even


scientific computing applications 419fiction called cyberpunk, where outlaws <strong>and</strong> murderous corporationsduel on the virtual frontier. Beyond the high-techchases, questions <strong>of</strong> the ultimate meaning <strong>of</strong> cyberspace <strong>and</strong><strong>of</strong> reality itself emerge, as in the Matrix trilogy <strong>of</strong> movies, orin the ultimate transformation <strong>of</strong> consciousness in human<strong>and</strong> machine (see singularity, technological).Perhaps the most famous science fiction movie <strong>of</strong> all is 2001: ASpace Odyssey (1968). However, the millennial year passed withouteither an AI like Hal or passenger space lines. (©ArenaPal /Topham / The Image Works)the answers to history trivia questions. Although the Logicis essentially an electronic-mechanical system, its functionalityis startlingly similar to that achieved by the Internetalmost half a century later.Writers such as William Gibson (Neuromancer) <strong>and</strong> VernorVinge (True Names) later began to explore the worldmutually experienced by computer users as a setting wherehumans could directly link their minds to computer-generatedworlds (see virtual reality). A new elite <strong>of</strong> cyberspacemasters were portrayed in a futuristic adaptation<strong>of</strong> such archetypes as the cowboy gunslinger, samurai, orninja. Unlike the morally unambiguous world <strong>of</strong> the oldwestern movies, however, the novels <strong>and</strong> movies with thenew “cyberpunk” sensibility are generally set in a jumbled,fragmented, chaotic world. That world is <strong>of</strong>ten dominatedby giant corporations (reflecting concerns about economicglobalism) <strong>and</strong> is generally dystopian.Meanwhile as cyberspace continues to become reality,cyberpunk has lost its distinctiveness as a genre. Gibson’slatest work (<strong>and</strong> that <strong>of</strong> other writers such as Bruce Sterling<strong>and</strong> Vernor Vinge) is more apt to explore ways <strong>of</strong> communicating<strong>and</strong> networking that belong to just the day aftertomorrow, if not already appearing (particularly amongyoung people) today.Cyberpunk <strong>and</strong> BeyondAs personal computers <strong>and</strong> networking began to burgeonin the 1980s, the focus began to shift from computers as“characters” to the ways in which people interact with, <strong>and</strong>are changed by, new technology.Although the term cyberspace was introduced by writerWilliam Gibson in his 1982 short story “Burning Chrome,”the word did not come into greater prominence until his1984 novel Neuromancer, where it was described as “a consensualhallucination experienced daily by billions. . . .” (Seecyberspace.) It became the arena for a new style <strong>of</strong> scienceFurther ReadingAsimov, Isaac, Patricia S. Warrick, <strong>and</strong> Martin H. Greenberg, eds.Machines That Think: The Best <strong>Science</strong> Fiction Stories aboutRobots <strong>and</strong> <strong>Computer</strong>s. New York: Holt, Rinehart, <strong>and</strong> Winston,1984.<strong>Computer</strong> in <strong>Science</strong> Fiction. Available online. URL: http://www.technovelgy.com/ct/<strong>Science</strong>_List_Detail.asp?BT=<strong>Computer</strong>.Accessed November 14, 2007.Conklin, Gr<strong>of</strong>f, ed. <strong>Science</strong>-Fiction Thinking Machines: Robots,Androids, <strong>Computer</strong>s. New York: Vanguard Press, 1954.Franklin, H. Bruce. “<strong>Computer</strong>s in Fiction,” 2000. Availableonline. URL: http://<strong>and</strong>romeda.rutgers.edu/~hbf/compulit.htm. Accessed November 14, 2007.Frenkel, James, ed. True Names by Vernor Vinge <strong>and</strong> the Opening <strong>of</strong>the Cyberspace Frontier. New York: Tor, 2001.Gibson, William. Neuromancer. New York: Ace Books, 1984.———. Pattern Recognition. New York: G. P. Putnam’s Sons, 2003.Vinge, Vernor. Rainbow’s End. New York: Tor, 2006.Warrick, Patricia S. The Cybernetic Imagination in <strong>Science</strong> Fiction.Cambridge, Mass.: MIT Press, 1980.scientific computing applicationsFrom microbiology to plasma physics, modern sciencewould be impossible without the computer. This is notbecause the computer has replaced the scientific method<strong>of</strong> observation, hypothesis, <strong>and</strong> experiment. Modern scientistsessentially follow the same intellectual procedures atdid Galileo, Newton, Darwin, <strong>and</strong> Einstein. Rather, underst<strong>and</strong>ing<strong>of</strong> the layered systems that make up the universehas now reached so complex <strong>and</strong> detailed a level that thereis too much data for an individual human mind to grasp.Further, the calculations necessary to process the data usuallycan’t be performed by unaided humans in any reasonablelength <strong>of</strong> time. This can be caused either by theinherent complexity <strong>of</strong> the calculation (see computability<strong>and</strong> complexity) or the sheer amount <strong>of</strong> data (as in DNAsequencing; see bioinformatics <strong>and</strong> data mining).InstrumentationSome apparatus such as particle accelerators are complicatedenough to make it expedient to control the operation bycomputer. It is simply more convenient to have instrumentssuch as spectrocopes process samples automatically undercomputer control <strong>and</strong> produce printed results.Most instruments for gathering data use electronicsto turn physical measurements into numeric representations(see analog <strong>and</strong> digital <strong>and</strong> data acquisition).The modern instrument’s built-in processor <strong>and</strong> s<strong>of</strong>twareperforms preliminary processing that used to have to bedone later in the lab. This can include scaling the data toan appropriate range <strong>of</strong> values, eliminating “noise” data,<strong>and</strong> providing an appropriate time framework for interpretingthe data. Use <strong>of</strong> electronics also enables the data to be


420 scientific computing applicationstransmitted from a remote location (telemetry). See spaceexploration <strong>and</strong> computers.Data AnalysisThe analysis <strong>of</strong> data to obtain theoretical underst<strong>and</strong>ing <strong>of</strong>the processes <strong>of</strong> nature also greatly benefits from the power<strong>of</strong> computers ranging from ordinary PCs to high-performancescientific workstations to large supercomputers. Thepossible significance <strong>of</strong> variables can be determined by statisticaltechniques (see also statistics <strong>and</strong> computing).The fundamental task in underst<strong>and</strong>ing any systemis to isolate the significant variables <strong>and</strong> determine howthey affect one another. In many cases this can be done bysolving differential equations, where a dependent variablechanges as a result <strong>of</strong> changes in one or more independentvariables. For example, the classical Maxwell theory<strong>of</strong> wave behavior is a system <strong>of</strong> differential equations thatcould be used to underst<strong>and</strong>, for example, how radar waveswill bounce <strong>of</strong>f an object with a given shape <strong>and</strong> reflectivity.However, real-world objects have complicating factors:A given problem may include aspects <strong>of</strong> wave behavior,electromagnetic interaction, deformation <strong>of</strong> material, <strong>and</strong>so on. While the great scientists <strong>of</strong> the late 19th to mid-20thcentury could develop elegant formulas showing key relationshipsin nature, the interaction <strong>of</strong> many different phenomena<strong>of</strong>ten requires much more formidable computationthat must be applied to many individual components.It might be considered fortunate that the computer camealong at about the time that it was required for furtherscientific progress. However, another way to look at it isto note that much <strong>of</strong> the pressure that led to investment inthe development <strong>of</strong> computers came from that very needfor computational resources, albeit primarily for wartimeprojects.Simulation <strong>and</strong> VisualizationEven if scientists have a basic underst<strong>and</strong>ing <strong>of</strong> a system,it may be hard to determine what the overall results <strong>of</strong> theinteraction <strong>of</strong> the many particles (or other elements) in thesystem will be. This is true, for example, in the analysis <strong>of</strong>events taking place in nuclear reactors. Fortunately computerscan apply the laws <strong>of</strong> the system to each <strong>of</strong> manyparticles <strong>and</strong> determine the resulting actions from theiraggregate behavior (see simulation). Simulation is particularlyimportant in fields where actual experiments are notpossible because <strong>of</strong> distance or time. Thus, a hypothesisabout the formation <strong>of</strong> the universe can be tested by applyingit to a set <strong>of</strong> initial conditions believed to reflect those ator near the time <strong>of</strong> the big bang.However, even the most skilled scientists have troublerelating numbers to the shape <strong>and</strong> interaction <strong>of</strong> real-worldobjects. <strong>Computer</strong>s have greatly aided in making it possibleto visualize structures <strong>and</strong> phenomena using high-resolution3D color graphics (see computer graphics). Features<strong>Computer</strong> processing <strong>of</strong> photographic or scanned data can provide detailed information about our environment. In this NASA test project,aerial <strong>and</strong> satellite imagery is analyzed to yield information about the ripeness <strong>of</strong> grapes in a vineyard, as well as moisture, soil conditions,<strong>and</strong> plant disease. (NASA photo)


scripting languages 421<strong>of</strong> interest can be enhanced, <strong>and</strong> arbitrary (“false”) colorscan be used to visually show such things as temperatureor blood flow. These techniques can also be used to createinteractive models where scientists can, for example,combine molecules in new ways <strong>and</strong> have the computercalculate the likely properties <strong>of</strong> the result. Finally, computervisualization <strong>and</strong> modeling can be used both to teachscience <strong>and</strong> to give the general public some visceral grasp <strong>of</strong>the meaning <strong>of</strong> scientific theories <strong>and</strong> discoveries.Further ReadingHeath, Michael T. Scientific Computing: An Introductory Survey.2nd ed. New York: McGraw-Hill, 2002.Jahne, Bernd. Practical H<strong>and</strong>book <strong>of</strong> Image Processing for ScientificApplications. 2nd ed. Boca Raton, Fla.: CRC Press, 2004.Langtangen, H. P., A. M. Bruaset, <strong>and</strong> E. Quak, eds. Advances inS<strong>of</strong>tware Tools for Scientific Computing. New York: Springer,2000.Linux S<strong>of</strong>tware: Scientific Applications. Available online. URL:http://linux.about.com/od/s<strong>of</strong>tscience/Linux_S<strong>of</strong>tware_Scientific_Applications.htm. Accessed August 20, 2007.Oliveira, Suely, <strong>and</strong> David E. Stewart. Writing Scientific S<strong>of</strong>tware: AGuide to Good Style. New York: Cambridge University Press,2006.Scientific Computing <strong>and</strong> Numerical Analysis FAQ. Available online.URL: http://www.mathcom.com/corpdir/techinfo.mdir/index.html. Accessed August 20, 2007.scripting languagesThere are several different levels at which someone cangive comm<strong>and</strong>s to a computer. At one end, an applicationsprogrammer writes program code that ultimately results ininstructions to the machine to carry out specified processing(see programming languages <strong>and</strong> compiler). Theresult is an application that users can control in order to gettheir work done.At the other end, the ordinary user <strong>of</strong> the applicationuses menus, icons, keystrokes, or other means to selectprogram features in order to format a document, calculatea spreadsheet, create a drawing, or perform some othertask. Today most users also control the operating system byusing a graphical user interface to, for example, copy files.However, there is an intermediate realm where text comm<strong>and</strong>scan be used to work with features <strong>of</strong> the operatingsystem, to process data through various utility programs,<strong>and</strong> to create simple reports. For example, a system administratormay want to log the number <strong>of</strong> users on the systemat various times, the amount <strong>of</strong> disk capacity being used,the number <strong>of</strong> hits on various pages on a Web server, <strong>and</strong>so on. (See system administrator.) It would be expensive<strong>and</strong> time-consuming to write <strong>and</strong> compile full-fledgedapplication programs for such tasks, particularly if changingneeds will dictate frequent changes in the processing.The use <strong>of</strong> the operating system shell <strong>and</strong> shell scripting(see shell) has traditionally been the way to deal withautomating routine tasks, especially with systems runningUNIX. However, the complexity <strong>of</strong> modern networks <strong>and</strong>in particular, the Internet, has driven administrators <strong>and</strong>programmers to seek languages that would combine thequick, interactive nature <strong>of</strong> shells, the structural features <strong>of</strong>full-fledged programming languages, <strong>and</strong> the convenience<strong>of</strong> built-in facilities for pattern-matching, text processing,data extraction, <strong>and</strong> other tasks. The result has been thedevelopment <strong>of</strong> a number <strong>of</strong> popular scripting languages(see awk, Perl, <strong>and</strong> Python).Working with Scripting LanguagesAlthough the various scripting languages differ in syntax<strong>and</strong> features, they are all intended to be used in a similarway. Unlike languages such as C++, scripting languages areinterpreted, not compiled (see interpreter). Typically, ascript consists <strong>of</strong> a number <strong>of</strong> lines <strong>of</strong> text in a file. Whenthe file is invoked (such as by someone typing the name<strong>of</strong> the language followed by the name <strong>of</strong> the script file atthe comm<strong>and</strong> prompt), the script language processor parseseach statement (see parser). If the statement includes a referenceto one <strong>of</strong> the language’s internal features (such as anarithmetic operator or a print comm<strong>and</strong>), the appropriatefunction is carried out. Most languages include the basictypes <strong>of</strong> control structures (see branching statements<strong>and</strong> loop) to test various variables <strong>and</strong> direct executionaccordingly.The trend in higher-level languages has been to requirethat all variables be declared to be used for particular kinds<strong>of</strong> data such as integer, floating-point number, or characterstring (see data types). Scripting languages, however,are designed to be easy to use <strong>and</strong> scripts are relativelysimple <strong>and</strong> easy to debug. Since the consequences <strong>of</strong> errorsinvolving data types are less likely to be severe, scriptinglanguages don’t require that variables be declared beforethey are used. The language processor will make “commonsense” assumptions about data. Thus if an integer such as23 <strong>and</strong> a floating-point number like 17.5 must be addedtogether, the integer will be converted to floating point <strong>and</strong>the result will be expressed as the floating-point value 40.5.Similarly, scripting languages take a relaxed view aboutscope, or the parts <strong>of</strong> a program from which a variable’svalue can be accessed. Scripting languages do provide forsome form <strong>of</strong> subroutine or procedure to be declared (seeprocedures <strong>and</strong> functions). Generally, variables usedwithin a subroutine will be considered to be “local” to thatsubroutine, <strong>and</strong> variables declared outside <strong>of</strong> any subroutinewill be treated as global.With compilers for regular programming languages, agreat deal <strong>of</strong> attention must be paid to creating fast, efficientcode. A scientific program may need to optimize calculationsso that it can tackle cutting-edge problems in physicsor engineering. A commercial application such as a wordprocessor must implement many features to be competitive,<strong>and</strong> yet be able to respond immediately to the user <strong>and</strong>complete tasks quickly.Scripting languages, on the other h<strong>and</strong>, are typicallyused to perform housekeeping tasks that don’t place muchdem<strong>and</strong> on the processor, <strong>and</strong> that <strong>of</strong>ten don’t need to befinished quickly. Because <strong>of</strong> this, the relative inefficiency <strong>of</strong>on-the-fly interpretation instead <strong>of</strong> optimized compilation isnot a problem. Indeed, by making it easy for users to write<strong>and</strong> test programs quickly, the interpreter makes it mucheasier for administrators <strong>and</strong> others to create simple but


422 search engineuseful tools for monitoring the system <strong>and</strong> extracting necessaryinformation. Scripting languages can also be used toquickly create a prototype version <strong>of</strong> a program that will belater recoded in a language such as C++ for efficiency.Scripting languages were originally written for operatingsystems that process text comm<strong>and</strong>s. However, with thepopularity <strong>of</strong> Micros<strong>of</strong>t Windows, Macintosh, <strong>and</strong> variousUNIX-based graphical user interfaces, many users <strong>and</strong> evensystem administrators now prefer a visual scripting environment.For example, Micros<strong>of</strong>t Visual Basic for Windows(<strong>and</strong> the related Visual Basic for Applications <strong>and</strong> VBScript)allow users to write simple programs that can harnessthe features <strong>of</strong> the Windows operating system <strong>and</strong> userinterface <strong>and</strong> take advantage <strong>of</strong> prepackaged functionalityavailable in ActiveX controls (see BASIC). In these visualenvironments the tasks that had been performed by scriptfiles can be automated by setting up <strong>and</strong> linking appropriateobjects <strong>and</strong> adding code as necessary.Web ScriptingAside from shell programming, the most common use <strong>of</strong>scripting languages today is to provide interactive featuresfor Web pages <strong>and</strong> to tie forms <strong>and</strong> displays to data sources.On the Web server, such technologies as ASP (see activeserver pages) use scripts embedded in (or called from) theHTML code <strong>of</strong> the page. On the client side (i.e., the user’sWeb browser) languages such as JavaScript <strong>and</strong> VBScriptcan be used to add features.(For specific scripting languages, see awk, Javascript,Lua, VBScript, Perl, PHP, <strong>and</strong> TCL. For general-purposelanguages that have some features in common with scriptinglanguages, see Python <strong>and</strong> Ruby.)Further ReadingBarron, David. The World <strong>of</strong> Scripting Languages. New York: Wiley,2000.Brown, Christopher. “Scripting Languages.” Available online. URL:http://cbbrowne.com/info/scripting.html. Accessed August 20,2007.Foster-Johnson, Eric, John C. Welch, <strong>and</strong> Micah Anderson. BeginningShell Scripting. Indianapolis: Wiley, 2005.Ousterhout, John K. “Scripting: Higher Level Programming for the21st Century.” IEEE <strong>Computer</strong>, March 1998. Available online.URL: http://www.tcl.tk/doc/scripting.html. Accessed August20, 2007.“Scriptorama: A Slightly Skeptical View on Scripting Languages.”Available online. URL: http://www.s<strong>of</strong>tpanorama.org/Scripting/index.shtm.Accessed August 20, 2007.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson/Addison-Wesley, 2007.search engineBy the mid-1990s, many thous<strong>and</strong>s <strong>of</strong> pages were beingadded to the World Wide Web each day (see World WideWeb). The availability <strong>of</strong> graphical browsing programs suchas Mosaic, Netscape, <strong>and</strong> Micros<strong>of</strong>t Internet Explorer (seeWeb browser) made it easy for ordinary PC users to viewWeb pages <strong>and</strong> to navigate from one page to another. However,people who wanted to use the Web for any sort <strong>of</strong> systematicresearch found they needed better tools for findingthe desired information.There are basically three approaches to exploring theWeb: casual “surfing,” portals, <strong>and</strong> search engines. A usermight find (or hear about) an interesting Web page devotedto a business or other organization or perhaps a particulartopic. The page includes a number <strong>of</strong> featured links to otherpages. The user can follow any <strong>of</strong> those links to reach otherpages that might be relevant. Those pages are likely to haveother interesting links that can be followed, <strong>and</strong> so on.Most Web users have surfed in this way: It can be fun <strong>and</strong>it can certainly lead to “finds” that can be bookmarked forlater reference. However, this approach is not systematic,comprehensive, or efficient.Alternatively, the user can visit a site such as the famousYahoo! started by Jerry Yang <strong>and</strong> David Filo (see portal<strong>and</strong> Yahoo!). These sites specialize in selecting what theireditors believe to be the best <strong>and</strong> most useful sites for eachtopic, <strong>and</strong> organizing them into a multilevel topical index.The portal approach has several advantages: The work <strong>of</strong>sifting through the Web has already been done, the indexis easy to use, <strong>and</strong> the sites featured are likely to be <strong>of</strong> goodquality. However, even Yahoo!’s busy staff can examine onlya tiny portion <strong>of</strong> the estimated 1 trillion or so Web pagesbeing presented on about 175 million different Web sites(as <strong>of</strong> 2008). Also, the sites selected <strong>and</strong> featured by portalsare subject both to editorial discretion (or bias) <strong>and</strong> in somecases to commercial interest.Anatomy <strong>of</strong> a Search EngineSearch engines such as Lycos <strong>and</strong> AltaVista were introducedat about the same time as portals. Although thereis some variation, all search engines follow the same basicapproach. On the host computer the search engine runsautomatic Web searching programs (sometimes called “spiders”or “Web crawlers”). These programs systematicallyvisit Web sites <strong>and</strong> follow the links to other sites <strong>and</strong> so onthrough many layers. Usually, several such programs arerun simultaneously, from different starting points or usingdifferent approaches in an attempt to cover as much <strong>of</strong> theWeb as possible. When a Web crawler reaches a site, itrecords the address (URL) <strong>and</strong> compiles a list <strong>of</strong> significantwords. The Web crawlers give the results <strong>of</strong> their searchesto the search engine’s indexing program, which adds theURLs to the associated keywords, compiling a very largeword index to the Web.Search engines can also receive information directlyfrom Web sites. It is possible for page designers to add aspecial HTML “metatag” that includes keywords for use bysearch engines. However, this facility can be misused bysome commercial sites to add popular words that are notactually relevant to the site, in the hope <strong>of</strong> attracting morehits.To use a search engine, the user simply navigates to thesearch engine’s home page with his or her Web browser.(Many browsers can also add selected search engines to aspecial “search pane” or menu item for easier access.) Theuser then types in a word or phrase. Most search enginesaccept logical specifiers (see Boolean operators) such as


search engine 423AND, OR, or NOT. Thus, a search for “internet <strong>and</strong> statistics”will find only pages that have both words. Someengines also allow for phrases to be put in quote marks sothey will be searched for as a whole. A search for “internetstatistics” will match only pages that have these two wordsnext to each other.Because <strong>of</strong> the huge size <strong>of</strong> the Web, even seeminglyesoteric search words can yield thous<strong>and</strong>s <strong>of</strong> “hits”(results). Therefore, most search engines rank the resultsby analyzing how relevant they are likely to be. This canbe done in a simple way by comparing the frequency withwhich the search terms appear on the various pages. Moresophisticated search engines such as Google can determinehow relevant a word or phrase seems to be because<strong>of</strong> its placement or presence in a heading or how <strong>of</strong>ten asite is referred to from other sites (see Google). Somesearch engines also <strong>of</strong>fer the ability to “refine” searches byadding further words <strong>and</strong> performing a new match againstthe set <strong>of</strong> results.Limitations <strong>and</strong> Future <strong>of</strong> Search EnginesSearch engines do provide many useful “hits” for bothcasual <strong>and</strong> pr<strong>of</strong>essional researchers, but the current technologydoes have a number <strong>of</strong> limitations. Even the mostcomprehensive search engines now reach <strong>and</strong> index only asmall fraction <strong>of</strong> the total available Web pages. One way tomaximize the number <strong>of</strong> pages searched is to use a “metasearch”program such as Copernic, which submits a user’ssearch to many different search engines. It then collates theresults, removing duplicates <strong>and</strong> attempting to rank themin relevance.Even with “relevancy” algorithms, searches for broad,general topics are likely to retrieve many less-than-usefulhits. Also, current search engines have difficulty findingimage <strong>and</strong> sound (music) files, which are among themost sought-after Web content. This is because the searchengine cannot recognize graphics or sound as such, onlyfile names or extensions or text descriptions. Searchengines also vary considerably in their ability to read <strong>and</strong>index files in proprietary text formats such as Micros<strong>of</strong>tWord or Adobe PDF.Once mainly an auxiliary tool for Web portals, searchengines have become a major business, <strong>and</strong> a variety <strong>of</strong>new types <strong>of</strong> search engines have proliferated. By combiningsearch with paid advertising <strong>and</strong> delivery <strong>of</strong> a variety<strong>of</strong> services, Google in particular has become one <strong>of</strong> theWeb’s biggest success stories. In turn, Web-site owners haveattempted to use various techniques to “optimize” or raisethe ranking <strong>of</strong> their pages in search results, while Googlehas quietly tweaked its “page rank” algorithm to keep suchefforts in check.Two major search trends that can be seen in Googleare specialized searches <strong>and</strong> local search. Google <strong>of</strong>fers avariety <strong>of</strong> search options to target images, video, news, evenblogs. Local search (such as Google Maps) combines mapswith lists <strong>of</strong> local businesses, making it easier for users t<strong>of</strong>ind, for example, hotels near a given airport (see mapping<strong>and</strong> navigation systems). Services such as Google MapsStreet View even provide for a street-level closeup view <strong>of</strong>Copernic, a “metasearch engine,” can pass a user’s request to manydifferent search engines <strong>and</strong> then prioritize <strong>and</strong> collate the results,weeding out duplicates. (Unfortunately some results are still muchless useful than others.)a neighborhood—almost a virtual tour, although this hasraised privacy concerns. Google <strong>of</strong>fers an extensive programminginterface that is available to Web developers, aswell as an easier-to-use facility for creating custom mapdisplays (see mashups).In the future artificial intelligence techniques may makeit possible for search engines to recognize types <strong>of</strong> imagesor sounds through pattern recognition. Search engines maybe able to respond more appropriately to “natural language”queries such as “How many pages are there on the Web?”<strong>and</strong> find the answer, or at least Web pages that are likely tohave the answer. (Current services <strong>of</strong> this type such as Ask.com tend to give hit-<strong>and</strong>-miss results.)For now, search engines remain a useful tool, but systematicresearchers should complement their results with linksfrom portals <strong>and</strong> recommendations from authoritative sites.Further ReadingBatelle, John. The Search: How Google <strong>and</strong> Its Rivals Rewrote theRules <strong>of</strong> Business <strong>and</strong> Transformed Our Culture. New York:Penguin, 2005.Dornfest, Rael, Paul Bausch, <strong>and</strong> Tara Calishain. Google Hacks:Tips & Tools for Finding <strong>and</strong> Using the World’s Information. 3rded. Sebastapol, Calif.: O’Reilly, 2006.Kent, Peter. Search Engine Optimization for Dummies. Hoboken,N.J.: Wiley, 2006.Milstein, Sarah, J. D. Biersdorfer, <strong>and</strong> Matthew MacDonald. Google:The Missing Manual. 2nd ed. Sebastapol, Calif.: O’ReillyMedia, 2005.Moran, Mike, <strong>and</strong> Bill Hunt. Search Engine Marketing, Inc.: DrivingSearch Traffic to Your Company’s Web Site. Upper Saddle River,N.J.: IBM Press, 2005.Purvis, Michael, Jeffrey Sambells, <strong>and</strong> Cameron Turner. BeginningGoogle Maps Applications with PHP <strong>and</strong> Ajax: From Novice toPr<strong>of</strong>essional. Berkeley, Calif.: Apress, 2006.


424 semantic WebSearch Engine Watch. Available online. URL: http://searchenginewatch.com/.Accessed August 21, 2007.semantic WebThe ever-growing World Wide Web consists <strong>of</strong> billions <strong>of</strong>linked HTML documents (<strong>and</strong> other resources), but most <strong>of</strong>the links contain no information about why the linkage hasbeen made or what it might mean. Services such as Googlecan automatically trace the links <strong>and</strong> index each page (seesearch engine) with the aid <strong>of</strong> “metadata” such as keywordsthat summarize page content. However, discoveringthe relationships between data items on pages, or betweenpages—<strong>and</strong> their meaning, or semantics—requires humanscrutiny.In his 1999 book Weaving the Web, World Wide Web creatorTim Berners-Lee (see Berners-Lee, Tim) described a newway in which Web pages might be organized in the future:I have a dream for the Web [in which computers] becomecapable <strong>of</strong> analyzing all the data on the Web—the content,links, <strong>and</strong> transactions between people <strong>and</strong> computers. A“Semantic Web,” which should make this possible, has yetto emerge, but when it does, the day-to-day mechanisms <strong>of</strong>trade, bureaucracy <strong>and</strong> our daily lives will be h<strong>and</strong>led bymachines talking to machines. The “intelligent agents” peoplehave touted for ages will finally materialize.In other words, by encoding definitions <strong>of</strong> objects <strong>and</strong>their relationships into the text <strong>of</strong> Web pages, programs(see s<strong>of</strong>tware agent) can be written to use this informationto answer sophisticated questions such as “whichdevices from this vendor use open-source s<strong>of</strong>tware?”ApproachesThe development <strong>of</strong> “machine underst<strong>and</strong>able” Web resourcesrequires that several layers <strong>of</strong> language be used. At bottomis the basic description <strong>of</strong> the structure <strong>of</strong> a document <strong>and</strong>its elements, such as titles or descriptions (see xml). Nextcomes RDF (Resource Description Format), which describesthe relationship between data objects (“resources”). Theserelationships might include “a motherboard is a part <strong>of</strong> acomputer” or “John owns this computer.” Programs are nowavailable to automatically create RDF statements given adatabase <strong>and</strong> its defined characteristics.For these relationships to be truly useful, they must bepart <strong>of</strong> a larger structure that describes their meaning. Thiscan be provided via an RDF scheme or through the use <strong>of</strong> alanguage such as the Web Ontology Language (OWL)—seeontologies <strong>and</strong> data models.Programs can then query for these relationships using alanguage such as SPARQL.ApplicationsThe semantic Web is not something that can appear overnight—afterall, it will take considerable human effort toencode the information needed for machines to underst<strong>and</strong>Web resources, <strong>and</strong> additional effort to code the applicationprograms that will take advantage <strong>of</strong> that information.However, the potential pay<strong>of</strong>f is huge, allowing both human<strong>and</strong> automated searchers to tackle much more sophisticatedtasks.For example, the University <strong>of</strong> Maryl<strong>and</strong> is developinga prototype semantic search engine called Swoogle. It canextract information <strong>and</strong> determine relationships betweendocuments that include RDF or OWL elements. Swooglecan also help users find appropriate ontologies for exploringa subject (see ontologies <strong>and</strong> data models).Much research needs to be done. For example, there isthe problem <strong>of</strong> deriving a measure <strong>of</strong> “reliability” or “trust”based on the data sources used to answer the query, whichmay be scattered all over the world <strong>and</strong> represent very differentkinds <strong>of</strong> sources.Further ReadingAlesso, H. Peter, <strong>and</strong> Craig F. Smith. Thinking on the Web: Berners-Lee, Gödel, <strong>and</strong> Turing. New York: Wiley, 2006.Antoniou, Grigoris, <strong>and</strong> Frank van Harmelen. A Semantic WebPrimer. Cambridge, Mass.: MIT Press, 2004.Davies, John, Rudi Studer, <strong>and</strong> Paul Warren. Semantic Web Technologies:Trends <strong>and</strong> Research in Ontology-Based Systems.Hoboken, N.J.: Wiley, 2006.Swartz, Aaron. “The Semantic Web in Breadth.” Available online.URL: http://logicerror.com/semanticWeb-long. Accessed November13, 2007.Swoogle [semantic Web search engine]. Available online. URL:http://swoogle.umbc.edu/index.php. Accessed November 3,2007.senior citizens <strong>and</strong> computingA growing number <strong>of</strong> people 50 <strong>and</strong> older have beenlearning how to use computer technology <strong>and</strong> especiallyapplications such as e-mail <strong>and</strong> Web browsing. However,a substantial number <strong>of</strong> seniors have expressed reluctanceto join the digital world—as <strong>of</strong> January 2006, thePew Internet & American Life Project found that only 34percent <strong>of</strong> persons 65 <strong>and</strong> over were online. Some reasonswhy seniors have avoided the technology include the following:• the belief that it would be too hard to learn to use it• uncertainty about what can be done online <strong>and</strong>whether it is worth the effort• fear <strong>of</strong> well-publicized dangers such as viruses <strong>and</strong>identity theft• the expense <strong>of</strong> a personal computer <strong>and</strong> InternetaccessFortunately a number <strong>of</strong> these factors are graduallybeing ameliorated. There are numerous books <strong>and</strong> courses(such as at adult education or senior centers) that introducethe essentials <strong>of</strong> computing to seniors. Properly installedsecurity <strong>and</strong> filtering s<strong>of</strong>tware, together with some usereducation, can minimize the chances <strong>of</strong> being victimizedonline. Finally, Internet-capable PCs are now available foraround $300 or less, though the cost <strong>of</strong> broadb<strong>and</strong> accesshas not fallen as rapidly as that <strong>of</strong> hardware.


service-oriented architecture 425Seniors <strong>and</strong> the InternetAccording to research by the Pew Internet & AmericanLife Project, for seniors who do go online, e-mail is themost popular activity (<strong>and</strong> something shared with otherage groups). While teens are most prolific at adopting newtechnologies such as instant messaging, content sharing,<strong>and</strong> social networking, older users are less likely to adoptemerging services, but more likely to bank or make travelreservations online—perhaps reflecting their having moremoney for leisure travel. Older people also tend to be moreavid in pursuing health information. On the other h<strong>and</strong>,buying things online seems to be equally popular with allage groups.<strong>Computer</strong> technology can also assist seniors with theactivities <strong>of</strong> daily life. At the Quality <strong>of</strong> Life TechnologiesCenter, researchers from Pitt <strong>and</strong> Carnegie Mellon Universitiesare developing technologies including:• robotic wheelchairs with arms that can manipulateobjects <strong>and</strong> even assist in cooking meals• systems to help people get out <strong>of</strong> bed, dress, bathe,<strong>and</strong> so on• pervasive sensor networks that can monitor personsas they move around• monitoring systems that can detect growing confusionor cognitive impairment <strong>and</strong> call for help• systems to supervise daily activities <strong>and</strong> make suremedications are taken on time• “coaching” s<strong>of</strong>tware that can help maintain memory<strong>and</strong> cognitive skills, even in persons with Alzheimer’sdisease(See disabled persons <strong>and</strong> computing.)Further Reading“Abby & Me.” Available online. URL: http://www.abby<strong>and</strong>me.com.Accessed November 14, 2007.Fox, Susannah, <strong>and</strong> Mary Madden. “Are ‘Wired Seniors’ SittingDucks?” Pew Internet & American Life Project, April 2006.Available online. URL: http://www.pewinternet.org/pdfs/PIP_Wired_Senior_2006_Memo.pdf. Accessed November 14,2007.———. “Generations Online.” Pew Internet & American LifeProject, December 2005. Available online. URL: http://www.pewinternet.org/pdfs/PIP_Generations_Memo.pdf. AccessedNovember 13, 2007.Rolstein, Gary. “Robotic Aids for the Disabled <strong>and</strong> Elderly.” PittsburghPost-Gazette, November 14, 2007. Available online.URL: http://www.post-gazette.com/pg/07318/833537-114.stm.Accessed November 14, 2007.Stokes, Abby. It’s Never Too Late to Love a <strong>Computer</strong>: Everything YouNeed to Know to Plug In, Boot Up <strong>and</strong> Get Online. Revised ed.New York: Workman Publishing, 2005.Stuur, Addo. Internet <strong>and</strong> E-mail for Seniors with Windows Vista.Visual Steps Publishing, 2006.serial portThere are basically two ways to move data from a computerto or from a peripheral device such as a printer or modem.A byte (8 bits) <strong>of</strong> data can be moved all at once, with eachbit traveling along its own wire (see parallel port). Alternatively,a single wire can be used to carry the data one bitat a time. Such a connection is called a serial port.The serial port receives data a full byte at a time fromthe computer bus <strong>and</strong> uses a UART (Universal AsynchronousReceiver-Transmitter) to extract the bits one at a time<strong>and</strong> send them through the port. A corresponding circuitat the other end accumulates the incoming bits <strong>and</strong> reassemblesthem into data bytes.The data bits for each byte are preceded by a start-bit tosignal the beginning <strong>of</strong> the data <strong>and</strong> terminated by an stopbit.Depending on the application, an additional bit may beused for parity (see error correction). Devices connectedby a serial port must “negotiate” by requesting a particularconnection speed <strong>and</strong> parity setting. Failure to agree resultsin gibberish being received.The <strong>of</strong>ficial st<strong>and</strong>ard for serial transmission is called RS-232C. It defines various additional pins to which wires areconnected, such as for synchronization (specifying whenthe device is ready to send or receive data) <strong>and</strong> ground.Physically, the old-style connectors are called DB-25because they contain 25 pins (many <strong>of</strong> which are not used).Most newer PCs have DB-9 (i.e. nine pin) connectors. A“gender changer” can be used in cases where two devicesboth have male connectors (with pins) or female connectors(with corresponding sockets).Because they use a single data transmission line <strong>and</strong>include error-correction, serial cables can be longer thanparallel cables (25 feet or more, as opposed to 10–12 feet).Serial transmission is generally slower (at up to 115,200bits/second) than parallel transmission. Serial connectionshave generally been used for such devices as modems(whose speed is already limited by phone line characteristics),keyboards, mice, <strong>and</strong> some older printers. Today thefaster <strong>and</strong> more flexible USB (see universal series bus)is replacing serial connections for many devices includingeven keyboards.Further ReadingPeacock, Craig. “Interfacing the Serial / RS232 Port.” Availableonline. URL: http://www.beyondlogic.org/serial/serial.htm.Accessed August 21, 2007.Tyson, Jeff. “How Serial Ports Work.” Available online. URL: http://computer.howstuffworks.com/serial-port.htm. Accessed August21, 2007.service-oriented architecture (SOA)The traditional model for organizing information processing,particularly in large installations, is in terms <strong>of</strong> installing<strong>and</strong> maintaining large applications that each providemany functions, <strong>and</strong> then devising ways for the applicationsto exchange data <strong>and</strong> otherwise coordinate with each other.As the information environment has become more complex(particularly with regard to databases <strong>and</strong> Web-relatedservices), this approach has become more cumbersome, lessflexible, <strong>and</strong> harder to maintain.


426 Shannon, Claude E.Service-oriented architecture is a new approach thatfocuses on services (basic functions, such as displaying<strong>and</strong> processing forms or formatting data) <strong>and</strong> providesst<strong>and</strong>ardized ways for them to be accessed by programs.Applications in turn are then built up by “plugging in” therequired services <strong>and</strong> organizing them to meet the requiredlogic <strong>and</strong> sequence <strong>of</strong> processing.In order to be accessed, each service provides “metadata”(usually in XML files) that describes what data isused by a service <strong>and</strong> what it provides. The descriptionitself can be provided using Web Services Description Language(WSDL), including network addresses (ports) forconnecting to the service, the operations supported, <strong>and</strong>the abstract format <strong>of</strong> the expected data. (For more on themessage protocol, see soap.)There are three basic roles that must be filled in designingan SOA system: The service provider creates a service(<strong>of</strong>ten a Web service) <strong>and</strong> “exposes” aspects <strong>of</strong> the service<strong>and</strong> controls access to it (through security policies). Theservice broker provides a registry <strong>of</strong> available services <strong>and</strong>tells requesters how to connect to them. (For more on brokers,see corba.) Finally, the requestor in an applicationfinds <strong>and</strong> requests services as needed.In general SOA can be seen as part <strong>of</strong> the trend towarddecentralized, loosely coupled computing (see distributedcomputing). Because all services communicate throughthe network, it is easy to reallocate or scale up services asneeded. It is also easier to upgrade s<strong>of</strong>tware <strong>and</strong> reuse it fornew applications. (For more on combining services providedby applications, see mashups.) However, SOA bringschallenges <strong>of</strong> its own in terms <strong>of</strong> making services trulyinteroperable <strong>and</strong> conforming to st<strong>and</strong>ards that are stillevolving.went on to make important contributions to the young discipline<strong>of</strong> artificial intelligence (AI).Shannon was born in Gaylord, Michigan, on April 30,1916. He received bachelor’s degrees in both mathematics<strong>and</strong> electrical engineering at the University <strong>of</strong> Michigan in1936. He went on to MIT, where he earned a master’s degreein electrical engineering <strong>and</strong> a Ph.D. in mathematics, bothin 1940. Shannon’s background thus well equipped himto relate mathematical concepts to practical engineeringissues.While a graduate student at MIT, Shannon was incharge <strong>of</strong> programming an elaborate analog computercalled the Differential Analyzer that had been built byVannevar Bush (see analog computer <strong>and</strong> Bush, Vannevar).Actually “programming” is not quite the rightword: To solve a differential equation with the DifferentialAnalyzer, it had to be translated into a variety <strong>of</strong> physicalsettings <strong>and</strong> arrangements <strong>of</strong> the machine’s intricate electromechanicalparts.The Differential Analyzer was driven by electrical relay<strong>and</strong> switching circuits. Shannon became interested in theunderlying mathematics <strong>of</strong> these control circuits. He realizedthat their fundamental operations corresponded to theBoolean algebra he had studied in undergraduate mathematicsclasses (see Boolean operators). It turned out that theseemingly abstract Boolean AND, OR <strong>and</strong> NOT operationshad a practical engineering use. Shannon used the results<strong>of</strong> his research in his 1938 M.S. thesis, titled “A SymbolicAnalysis <strong>of</strong> Relay <strong>and</strong> Switching Circuits.” This work washonored with the Alfred Nobel prize <strong>of</strong> the combined engineeringsocieties (this is not the same as the more famousNobel Prize).Further ReadingErl, Thomas. SOA Principle <strong>of</strong> Service Design. Boston: Pearson Education/PrenticeHall, 2007.Hurwitz, Judith, et al. Service Oriented Architecture for Dummies.Hoboken, N.J.: Wiley, 2007.Josuttis, Nicolai M. SOA in Practice: The Art <strong>of</strong> Distributed SystemDesign. Sebastapol, Calif.: O’Reilly, 2007.QAT SOA Resource Center. Available online. URL: http://www.soaresourcecenter.com/. Accessed November 14, 2007.Service-Oriented Architecture (SOA). TechRepublic. Availableonline. URL: http://search.techrepublic.com.com/search/Service-Oriented+Architecture+( SOA).html. Accessed November14, 2007.Weerawarana, Sanjiva, et al. Web Services Platform Architecture.Upper Saddle River, N.J.: Prentice Hall PTR, 2005.Shannon, Claude E.(1916–2001)AmericanMathematician, <strong>Computer</strong> ScientistThe information age would not have been possible withouta fundamental underst<strong>and</strong>ing <strong>of</strong> how information couldbe encoded <strong>and</strong> transmitted electronically. Claude ElwoodShannon developed the theoretical underpinnings for moderninformation <strong>and</strong> communications technology <strong>and</strong> thenClaude Shannon developed the fundamental theory underlyingmodern data communications, as well as making contributions tothe development <strong>of</strong> artificial intelligence. (Lucent TechnologiesBell Labs)


shareware <strong>and</strong> freeware 427Along with the work <strong>of</strong> Alan Turing <strong>and</strong> John von Neumann(see Turing, Alan <strong>and</strong> von Neumann John), Shannon’slogical analysis <strong>of</strong> switching circuits would becomeessential to the inventors who would build the first digitalcomputers in just a few years. (Demonstrating the breadth <strong>of</strong>his interests, Shannon’s Ph.D. thesis would be in an entirelydifferent application—the algebraic analysis <strong>of</strong> problems ingenetics.)In 1941, Shannon joined Bell Laboratories, perhapsAmerica’s foremost industrial research organization. Theworld’s largest phone company had become increasinglyconcerned with how to “scale up” the burgeoning telephonesystem <strong>and</strong> still ensure reliability. The coming <strong>of</strong> waralso highlighted the importance <strong>of</strong> cryptography—securingone’s own transmissions while finding ways to breakopponents’ codes. Shannon’s existing interests in both datatransmission <strong>and</strong> cryptography neatly dovetailed with theseneeds.Shannon’s paper titled “A Mathematical Theory <strong>of</strong> Cryptography”would be published after the war. But Shannon’smost lasting contribution would be to the fundamental theory<strong>of</strong> communication. His formulation would explain whathappens when information is transmitted from a sender toa receiver—in particular, how the reliability <strong>of</strong> such transmissioncould be analyzed (see information theory).Shannon’s 1948 paper, “A Mathematical Theory <strong>of</strong>Communication” was published in The Bell System TechnicalJournal. Shannon identified the fundamental unit <strong>of</strong>information (the binary digit, or “bit” that would becomefamiliar to computer users). He showed how to measure theredundancy (duplication) within a stream <strong>of</strong> data in relationto the transmitting channel’s capacity, or b<strong>and</strong>width.Finally, he showed methods that could be used to automaticallyfind <strong>and</strong> fix errors in the transmission. In essence,Shannon founded modern information theory, which wouldbecome vital for technologies as diverse as computer networks,broadcasting, data compression, <strong>and</strong> data storage onmedia such as disks <strong>and</strong> CDs.One <strong>of</strong> the unique strengths <strong>of</strong> Bell Labs is that it didnot limit its researchers to topics that were directly relatedto telephone systems or even data transmission in general.Like Alan Turing, Shannon became interested after the warin the question <strong>of</strong> whether computers could be taught toperform tasks that are believed to require true intelligence(see artificial intelligence). He developed algorithmsto enable a computer to play chess <strong>and</strong> published an articleon computer chess in Scientific American in 1950. He alsobecame interested in other aspects <strong>of</strong> machine learning, <strong>and</strong>in 1952 he demonstrated a mechanical “mouse” that couldsolve mazes with the aid <strong>of</strong> a circuit <strong>of</strong> electrical relays.The mid-1950s would prove to be a very fertile intellectualperiod for AI research. In 1956, Shannon <strong>and</strong> AIpioneer John McCarthy (see McCarthy, John) put out acollection <strong>of</strong> papers titled “Automata Studies.” The volumeincluded contributions by two other seminal thinkers, Johnvon Neumann <strong>and</strong> Marvin Minsky (see Minsky, Marvin).Although he continued to do research, by the late 1950sShannon had changed his emphasis to teaching. As DonnerPr<strong>of</strong>essor <strong>of</strong> <strong>Science</strong> at MIT (1958–1978) his lecturesinspired a new generation <strong>of</strong> AI researchers. During thesame period Shannon also explored the social impact <strong>of</strong>automation <strong>and</strong> computer technology as a Fellow at theCenter for the Study <strong>of</strong> Behavioral <strong>Science</strong>s in Palo Alto,California.Shannon received numerous prestigious awards, includingthe IEEE Medal <strong>of</strong> Honor <strong>and</strong> the National Medal <strong>of</strong><strong>Technology</strong> (both in 1966). Shannon died on February 26,2001, in Murray Hill, New Jersey.Further ReadingShannon, Claude Elwood. “A Chess-Playing Machine.” ScientificAmerican, February 1950, 48–51.———. Collected Papers. Ed. N. J. A. Sloane <strong>and</strong> Aaron D. Wyner.New York: IEEE Press, 1993.———. “A Mathematical Theory <strong>of</strong> Communication.” Bell SystemTechnical Journal 27; July <strong>and</strong> October, 1948, 379–423, 623–656. Available online. URL: http://plan9.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf. Accessed August 21,2007.Waldrop, M. Mitchell. “Claude Shannon: Reluctant Father <strong>of</strong> theDigital Age.” <strong>Technology</strong> Review, July/Aug. 2001. Available online.URL: http://www.technologyreview.com/Infotech/12505/.Accessed August 21, 2007.shareware <strong>and</strong> freewareThe early users <strong>of</strong> personal computers generally had considerabletechnical skill <strong>and</strong> a desire to write their ownprograms. This was partly by necessity: If one wanted toget an Apple, Atari, Commodore, or Radio Shack machineto perform some particular task, chances were one wouldhave to write the s<strong>of</strong>tware oneself. Commercial s<strong>of</strong>twarewas scarce <strong>and</strong> relatively expensive. However, given enoughtime, it was possible for hobbyists to write programs usingthe machine’s built-in BASIC language or (with more effort)assembly language.Programs such as utilities <strong>and</strong> games were <strong>of</strong>ten freelyshared at gatherings <strong>of</strong> PC enthusiasts (see user groups).Many talented amateur programmers considered trying toturn their avocation into a business. However, a utility toprovide better file listings or a colorful graphics programthat creates kaleidoscopic images was unlikely to interestthe commercial s<strong>of</strong>tware companies who developed largeprograms in-house for marketing primarily to business.In 1982, Andrew Fuegelman created a program calledPC-Talk. This program provided a better way for users withmodems to connect to the many bulletin board systemsthat were starting to spring up. Fluegelman was familiarwith the common practice <strong>of</strong> public radio <strong>and</strong> TV broadcasters<strong>of</strong> soliciting pledge payments to help support their“free” service. He decided to do something similar with hisprogram. He distributed it to many bulletin boards, whereusers could download it for free. However, he asked userswho liked the program <strong>and</strong> wanted to continue to use it topay him $25.Fluegelman dubbed his method <strong>of</strong> s<strong>of</strong>tware distribution“freeware” (because it cost nothing to try out the program).Other programmers began to use the same method withtheir own s<strong>of</strong>tware. This included Jim Knopf, author <strong>of</strong> thePC-File database program, <strong>and</strong> Bob Wallace, who <strong>of</strong>fered


428 shellPC-Write as a full-featured alternative to expensive commercialword processing program. Because Fluegelman hadtrademarked the term freeware, these other authors beganto call their <strong>of</strong>ferings shareware.Today freeware means s<strong>of</strong>tware that can be downloadedat no cost <strong>and</strong> for which there is no charge for continueduse. The program may be redistributed by users as long asthey don’t charge for it.Shareware, on the other h<strong>and</strong>, follows Fluegelman’soriginal concept. The s<strong>of</strong>tware can be downloaded for free.The user is allowed to try the program for a limited period(either a length <strong>of</strong> time such as 30 days, or a maximumnumber <strong>of</strong> times that the program can be run). After thetrial period, the user is expected to pay the author thespecified fee <strong>of</strong> continued use. (Today this is usually donethrough the author’s Web site or a service that can acceptsecure credit card payments online.) Once the user pays,he or she receives either an unrestricted version <strong>of</strong> the s<strong>of</strong>twareor frequently, an alphanumeric key that can be typedinto the program to remove all restrictions. At this pointthe program is said to be “registered.”Users can be encouraged (or forced) to pay in variousways. Some programs keep working after the trial period,but display continual “nag” messages or remove some functionality,such as the ability to print or save one’s work.(“Demos” <strong>of</strong> commercial games or other programs also havelimited functionality, but cannot be registered or upgraded.They are there simply to entice consumers to buy the commercialproduct.)Alternatively, some shareware authors prefer to enticetheir users to register by <strong>of</strong>fering bonuses, such as additionalfeatures, free upgrades, or additional technical support.Sometimes (as with the RealPlayer streaming sound<strong>and</strong> video player <strong>and</strong> the Eudora e-mail program) a usefulbut limited “lite” version is <strong>of</strong>fered as freeware, but usersare encouraged to upgrade to a more full-featured “pr<strong>of</strong>essional”version.Shareware has been a moderately successful businessfor a number <strong>of</strong> program authors. For example, Phil Katz’sPKZip file compression <strong>and</strong> packaging program is so usefulthat it has found its way onto millions <strong>of</strong> PCs, <strong>and</strong> enoughusers paid for the program to keep Katz in business. (PKZip<strong>and</strong> its cousin WinZip are examples <strong>of</strong> shareware programsthat became so popular that they spawned commerciallypackaged versions.)Shareware <strong>and</strong> freeware should be distinguished frompublic domain <strong>and</strong> open source s<strong>of</strong>tware (see open-sourcemovement). Public domain s<strong>of</strong>tware is not only free (aswith freeware), but the author has given up all rights includingcopyright, <strong>and</strong> users are free to alter the program’s codeor to use it as part <strong>of</strong> a new program. Open-source s<strong>of</strong>tware,on the other h<strong>and</strong>, allows users free access to the s<strong>of</strong>tware<strong>and</strong> its source code, but with certain restrictions—notably,that it not be used in some other product for which accesswill be restricted.Today tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> shareware <strong>and</strong> freeware programsare available on the Internet via ftp archives, author’sWeb sites, <strong>and</strong> giant online libraries maintained by zdnet.com, cnet.com, tucows.com, <strong>and</strong> others.Further ReadingAssociation <strong>of</strong> Shareware Pr<strong>of</strong>essionals. Available online. URL:http://www.asp-shareware.org. Accessed August 21, 2007.Ellis, Robert. H<strong>and</strong>picked S<strong>of</strong>tware for Mac OS X: The Best NewFreeware, Shareware, <strong>and</strong> Commercial S<strong>of</strong>tware for Mac OS X.Petaluma, Calif.: Futurosity, 2002.Hasted, Edward. S<strong>of</strong>tware That Sells: A Practical Guide to Developing<strong>and</strong> Marketing Your S<strong>of</strong>tware Project. Indianapolis: Wiley, 2005.Lehnert, Wendy G. The Web Wizard’s Guide to Freeware <strong>and</strong> Shareware.Boston: Addison-Wesley, 2002.Shareware.com. Available online. URL: http://www.shareware.com. Accessed August 21, 2007.Tucows.com. Available online. URL: http://www.tucows.com.Accessed August 21, 2007.shellDuring the 1950s, using a computer generally meant thatoperators submitted batch-processing comm<strong>and</strong> cards (seejob control language) that controlled how each programwould use the computer’s resources. One programran at a time, <strong>and</strong> interaction with the user was minimal.However, when time-sharing computers began to appearin the 1960s, users gained the ability to control the computerinteractively from terminals. The operating systemtherefore needed to have a facility that would interpret <strong>and</strong>execute the comm<strong>and</strong>s being typed in by the users, such asa request to list the files in a directory or to send a file to theprinter. This comm<strong>and</strong> interpreter is called a shell.To see a simple shell in action, a Windows user needonly bring up a comm<strong>and</strong> prompt, type the word dir, <strong>and</strong>press Enter. A shell called comm<strong>and</strong>.com provides the userinterface for users <strong>of</strong> IBM PC-compatible systems runningMS-DOS. The comm<strong>and</strong> processor displays a prompt onthe screen. It then interprets (see parsing) the user’s comm<strong>and</strong>s.If the comm<strong>and</strong> involves one <strong>of</strong> the shell’s internaloperations (such as “dir” to list a file directory), it simplyexecutes that routine. For example the comm<strong>and</strong>:dir temp /pwould be interpreted as a call to execute the dir function,passing it the name “temp” (a directory) <strong>and</strong> the /p, which dirinterprets as a “switch” or instruction telling it to pause thedirectory listing after each screenful <strong>of</strong> text. If the comm<strong>and</strong>is an external MS-DOS utility such as “xcopy” (a file copyingprogram), the shell runs that program, passing it the information(mainly file names) from the comm<strong>and</strong> line. Finally,the shell can run any other executable program on the system.It is then that program’s responsibility to interpret <strong>and</strong>act upon any additional information that was provided.MS-DOS also has the ability for the comm<strong>and</strong>.com shell toread a series <strong>of</strong> comm<strong>and</strong>s stored in a text file called a batchfile, <strong>and</strong> having the *.bat (batch) extension. This allowed forrudimentary scripting <strong>of</strong> system housekeeping operations orother routine tasks (see scripting languages).UNIX ShellsMS-DOS largely faded away in the 1990s as more usersswitched to Micros<strong>of</strong>t Windows <strong>and</strong> begun to use a graphicaluser interface to control their machines. However, shells


shell 429have achieved their greatest proliferation <strong>and</strong> elaborationwith UNIX, the operating system developed by Ken Thompson<strong>and</strong> Dennis Ritchie starting in 1969 <strong>and</strong> widely used foracademic, scientific, engineering, <strong>and</strong> Web applications.UNIX shells serve the same basic purposes as the MS-DOS shell: interactive control <strong>of</strong> the operating system <strong>and</strong>the ability to run stored comm<strong>and</strong> scripts. However, theUNIX shells have considerably more complex syntax <strong>and</strong>capabilities.Part <strong>of</strong> the design philosophy <strong>of</strong> the UNIX system wasto place the core operating system functions in the kernel(see Kernel <strong>and</strong> UNIX). This modular design meant thatUNIX, unlike most other operating systems, did not have tocommit itself to a particular form <strong>of</strong> user interface or comm<strong>and</strong>processor. Accordingly, a number <strong>of</strong> such processors(shells) have been developed, reflecting the programmingstyle preferences <strong>of</strong> their originators.The first shell to be developed was the Bourne Shell,named for its creator, Steven R. Bourne, who developed itat Bell Labs, the original home <strong>of</strong> UNIX. The Bourne shellimplemented some basic ideas that are characteristic <strong>of</strong>UNIX: the ability to redirect input <strong>and</strong> output to <strong>and</strong> fromfiles, devices or other sources (using the < <strong>and</strong> > characters),<strong>and</strong> the ability to use “pipes” (the | character) to connectthe output <strong>of</strong> one comm<strong>and</strong> to the input <strong>of</strong> another.The next major development was the C shell (csh). TheBourne shell used a relatively simple <strong>and</strong> clean syntaxdevised by its creator. As the name suggests, the C shell(developed at the University <strong>of</strong> California, Berkeley) takesits syntax from the C programming language, which wasby far the most commonly used language on UNIX systems.One logical reason for this choice was that C programmerscould quickly learn to write scripts with the C shell. TheC shell also added support for job control (that is, movingprocesses between foreground <strong>and</strong> background operation)<strong>and</strong> in general was easier to use for interactively controllingprograms from the comm<strong>and</strong> line.UNIX users sometimes used both shells, since the simpler<strong>and</strong> more consistent syntax <strong>of</strong> the Bourne shell is generallythought to be better for writing scripts. (The twoshells also reflected the split in the UNIX world betweenthe version <strong>of</strong> the operating system provided by AT&T <strong>and</strong>the variant developed at UC Berkeley.)David Korn at AT&T then decided to combine the bestfeatures <strong>of</strong> both shells. His Korn shell (Ksh) kept the betterscripting language features from the Bourne shell but addedjob-control <strong>and</strong> other features from the C shell. He alsoadded the programming language concept <strong>of</strong> functions (seeprocedures <strong>and</strong> functions), allowing for cleaner organization<strong>of</strong> code.Another popular shell, BASH (Bourne Again Shell) wasdeveloped by the Free S<strong>of</strong>tware Foundation for GNU, anopen-source version <strong>of</strong> UNIX. BASH <strong>and</strong> Ksh share mostfeatures <strong>and</strong> both are compatible with POSIX, a st<strong>and</strong>ardspecification for connecting programs to the UNIX operatingsystem.The surge <strong>of</strong> interest in open-source UNIX in recentyears (see Linux) has brought a new generation <strong>of</strong> shellusers. Although modern Linux distributions provide a fullgraphical user interface (GUI)—indeed, a choice <strong>of</strong> them—such tasks as s<strong>of</strong>tware installation <strong>and</strong> configuration <strong>of</strong>teninvolve entering shell comm<strong>and</strong>s. Experienced users canalso find, copy, move, or otherwise manipulate batches <strong>of</strong>files more efficiently in the shell than in using windows <strong>and</strong>mouse movements.Shell ScriptsRegardless <strong>of</strong> the version <strong>of</strong> the shell used, shell scriptswork in the same basic way. A shell script is a text filecontaining comm<strong>and</strong>s to the shell. The comm<strong>and</strong>s can usecontrol statements (see branching statements <strong>and</strong> loop)<strong>and</strong> invoke both the shell’s internal features <strong>and</strong> the manyhundreds <strong>of</strong> utility programs that are available on UNIXsystems (see scripting languages).Once the script is written, there are two ways to executeit. One way is to type the name <strong>of</strong> the shell at the comm<strong>and</strong>prompt, followed by the name <strong>of</strong> the script file, as in:$ sh MyScriptAlternatively, the chmod (change mode) comm<strong>and</strong> can beused to mark the script’s file type as executable, <strong>and</strong> the firstline <strong>of</strong> the script then contains a statement that invokes theshell, which will parse the rest <strong>of</strong> the script. The script cannow be executed simply by typing its name at the comm<strong>and</strong>prompt (or it can be included as a comm<strong>and</strong> in anotherscript).Here is a simple example <strong>of</strong> a shell script that prints outvarious items <strong>of</strong> information about the user <strong>and</strong> the currentsession on a UNIX system:#! /sbin/shecho My username: `whoami`echo My current directory: `pwd`echoecho My disk usage:du -kechoecho System status:uptimeif test -f log.txt; thencat log.txtelse echo Log file not foundfiThe first line tells UNIX which shell to use to interpretthe script (in this case the Bourne shell, sh, will beexecuted). The echo comm<strong>and</strong> simply outputs the text thatfollows it to the screen. “whoami” is a UNIX comm<strong>and</strong> thatprints the user’s name. The script takes advantage <strong>of</strong> aninteresting UNIX feature: The whoami comm<strong>and</strong> is put in“backquotes” (` `). This inserts the output <strong>of</strong> the whoamicomm<strong>and</strong> (the user name) in place <strong>of</strong> that comm<strong>and</strong>, <strong>and</strong>the resulting text is output by the echo comm<strong>and</strong>.The du comm<strong>and</strong> gives the user’s disk usage, while theuptime comm<strong>and</strong> gives some statistics about how manyusers are on the system <strong>and</strong> how long the system has beenrunning. Finally, the if statement at the end <strong>of</strong> the script


430 Simonyi, Charlestests for the presence <strong>of</strong> the file log.txt. If the file exists, itscontents are displayed by the “cat” comm<strong>and</strong>.When “myinfo” is typed at the UNIX prompt, the outputmight look like the following:$ myinfoMy username: hrhMy current directory: /home/h/r/hrhMy disk usage:132 ./.nn4 ./Mail48 ./.elm296 .System status:7:34pm up 56 day(s), 20:39, 73 users, loadaverage: 3.62, 3.45, 3.49This is a test file.Further ReadingGite, Vivek G. “Linux Shell Scripting Tutorial.” Available online.URL: http://www.freeos.com/guides/lsst/. Accessed August21, 2007.Kochan, Stephen, <strong>and</strong> Patrick Wood. Unix Shell Programming. 3rded. Indianapolis: Sams, 2003.Newham, Cameron. Learning the Bash Shell. 3rd ed. Sebastapol,Calif.: O’Reilly Media, 2005.Quigley, Ellie. UNIX Shells by Example. 4th ed. Upper Saddle River,N.J.: Prentice Hall, 2004.Robbins, Arnold, <strong>and</strong> Bill Rosenblatt. Learning the Korn Shell. 2nded. Sebastapol, Calif.: O’Reilly Media, 2002.Sobell, Mark G. A Practical Guide to Linux Comm<strong>and</strong>s, Editors, <strong>and</strong>Shell Programming. Upper Saddle River, N.J.: Prentice Hall,2005.Simonyi, Charles(1948– )Hungarian-AmericanS<strong>of</strong>tware Engineer, EntrepreneurBorn in Budapest, Hungary, on September 10, 1948, CharlesSimonyi shaped the architecture <strong>of</strong> Micros<strong>of</strong>t’s dominants<strong>of</strong>tware applications for many years, devised a new programmingparadigm <strong>and</strong> established a company to promoteit, <strong>and</strong>, along the way, became the fifth civilian “space tourist”to visit the International Space Station.Simonyi’s father was a pr<strong>of</strong>essor <strong>of</strong> electrical engineering.In high school, Simonyi worked as a night watchmanat a computer laboratory. When he expressed his interest,one <strong>of</strong> the engineers taught him how to program; he soonwrote a compiler <strong>and</strong> sold it to a government department.After working for a Danish company for a couple <strong>of</strong> years,Simonyi moved to the United States in 1968, attending theUniversity <strong>of</strong> California, Berkeley, <strong>and</strong> earning a B.S. inengineering mathematics in 1972. Moving to Stanford Universityfor graduate study, Simonyi was also hired by XeroxPARC, where he shared ideas with innovators in computerinterfaces <strong>and</strong> networking. Simonyi received his Ph.D. incomputer science from Stanford in 1977. In his dissertationSimonyi showed his early interest in “metaprogramming”—thedevelopment <strong>of</strong> ways to coordinate programs<strong>and</strong> provide them with a higher-level context.In 1981 Simonyi applied directly to Bill Gates for a job(see Gates, Bill <strong>and</strong> Micros<strong>of</strong>t Corporation). At Micros<strong>of</strong>tSimonyi took charge <strong>of</strong> the development <strong>of</strong> the productsthat would dominate the <strong>of</strong>fice s<strong>of</strong>tware market bythe end <strong>of</strong> the 1980s, including Word <strong>and</strong> Excel. Simonyialso brought to Micros<strong>of</strong>t new program structure ideas thathe had seen at Xerox PARC—see object-oriented programming.At this time Simonyi also developed a st<strong>and</strong>ardsystem for naming variables that soon became known asHungarian notation in honor <strong>of</strong> his ancestry.The tremendous success <strong>of</strong> Simonyi as a s<strong>of</strong>tware developer(<strong>and</strong> Micros<strong>of</strong>t’s gargantuan revenue) made Simonyiindependently wealthy. However, in 2002 he decided tostrike out on his own, founding a company called IntentionalS<strong>of</strong>tware with his business partner Gregor Kiczales.The company develops <strong>and</strong> promotes an approach tos<strong>of</strong>tware design called intentional programming. (Simonyihad developed forerunners <strong>of</strong> this concept at Micros<strong>of</strong>t, butapparently the latter company lost interest in it, perhapsprompting Simonyi’s departure.)To develop an application, s<strong>of</strong>tware engineers usingintentional programming begin by building a “toolbox” <strong>of</strong>specific functions needed for the area in which the programis intended to operate (such as insurance or banking).Domain experts—people who have “real world” knowledge<strong>of</strong> that area—use a special editor to create a description <strong>of</strong>how the application must operate; thus the program is in asense designed not by the programmers, but by the peoplewho will guide its use. The program development systemthen connects the tools to the description to generate thefinal code, which can then be refined. An important feature<strong>of</strong> this process is that the specific intentions about what theprogram needs to do are preserved along with the code,with the result largely self-documenting. It is argued thatthis makes subsequent testing <strong>and</strong> modification <strong>of</strong> the s<strong>of</strong>twaremuch faster <strong>and</strong> easier. The first commercial version<strong>of</strong> this development system is expected in 2008.Space Tourist <strong>and</strong> PhilanthropistIn April 2007 Simonyi, an experienced pilot, fulfilled a lifelonginterest in space by riding a Russian Soyuz spacecraftto the International Space Station; the 10-day “vacation” costhim about $20 million. Simonyi chronicled his preparations<strong>and</strong> the trip itself via his “Nerd in Space” Web site. (Simonyialso sails in his sleek luxury yacht Skat.)As a philanthropist, Simonyi established a pr<strong>of</strong>essorshipfor the Public Underst<strong>and</strong>ing <strong>of</strong> <strong>Science</strong> at Oxford University,as well one for Innovation in Teaching at Stanford. Hehas given tens <strong>of</strong> millions <strong>of</strong> dollars to various programsin the arts <strong>and</strong> sciences. As <strong>of</strong> 2007 Simonyi was datingdomestic arts entrepreneur <strong>and</strong> author Martha Stewart.While it remains uncertain how successful <strong>and</strong> influentialintentional programming will become, Simonyi hasbeen hailed by Bill Gates as “one <strong>of</strong> the great programmers<strong>of</strong> all time.”


simulation 431Further ReadingCharles in Space. Available online. URL: http://www.charlesinspace.com/. Accessed November 14, 2007.Greene, Stephen G. “Entrepreneur Seeks to Promote Excellencethrough Philanthropy.” Chronicle <strong>of</strong> Philanthropy 16 (February19, 2004): 20.Intentional S<strong>of</strong>tware. Available online. URL: http://www.intents<strong>of</strong>t.com/. Accessed November 14, 2007.Rosenberg, Scott. “Anything You Can Do, I Can Do Meta: SpaceTourist <strong>and</strong> Billionaire Programmer Charles SimonyiDesigned Micros<strong>of</strong>t Office. Now He Wants to ReprogramS<strong>of</strong>tware.” <strong>Technology</strong> Review, January 2007. Available online.URL: http://www.technologyreview.com/Infotech/18047/?a=f.Accessed November 14, 2007.SimulaOne <strong>of</strong> the most interesting applications <strong>of</strong> computers isthe simulation <strong>of</strong> systems in which many separate actionsor events are happening simultaneously (see simulation).During the 1950s, Norwegian computer scientist KristenNygaard began to develop a more formal way <strong>of</strong> describing<strong>and</strong> designing simulations. A typical simulation consists<strong>of</strong> a number <strong>of</strong> “objects,” such as cars in a traffic flow orcustomers waiting in a bank line. In a bank simulation,for example, the objects (customers) would dem<strong>and</strong> servicefrom particular serving objects (teller windows). Theywould move in a queue <strong>and</strong> their motion would be capturedat various points <strong>of</strong> time.Nygaard used his ideas to create symbols <strong>and</strong> flow diagramsto represent the events going on in a simulation.However, existing computer languages such as Algol 60were designed to carry out procedures sequentially <strong>and</strong> oneat a time, not simultaneously. This made it difficult to writea program representing a situation in which many cars orcustomers were moving simultaneously.In the early 1960s, Nygaard was joined by Ole-JohanDahl, who had more experience with systems programming<strong>and</strong> computer language design. They worked together tocreate a new language that they called Simula, reflectingtheir emphasis on simulation programming. In designingSimula, the authors sought to create a data structure thatwas better suited to simultaneous actions or events. Forexample, in a simulation <strong>of</strong> automobile traffic, each carwould be an “object” with data such as its location <strong>and</strong>speed as well as actions or capabilities such as changingspeed or direction. The data for each object must be maintainedseparately <strong>and</strong> updated frequently.The Algol 60 language already had a way to define code“blocks” (see procedures <strong>and</strong> functions) that could containtheir own local data as well as actions to be performed.Further, such blocks could be called repeatedly such thatmany copies could be “open” at the same time. However,these calls were still essentially sequential, not simultaneous.In their new Simula 1 language (introduced in 1965),Dahl <strong>and</strong> Nygaard created a way to simulate simultaneousprocessing. Even though the computer would (probably)only have a single processor such that only one copy <strong>of</strong>a block <strong>of</strong> code could be executing at a given time, Simulaset up special variables for keeping track <strong>of</strong> simulatedtime. Control would “jump” from one instance <strong>of</strong> a block toanother such that all blocks would, for example, have theiractions for the time 20:15 executed, then actions for 20:16would be executed, <strong>and</strong> so on. A list kept track <strong>of</strong> processesin time order. Thus, Simula 1 kept all the features <strong>of</strong> Algolbut made it more suitable for modeling simultaneous events(see multiprocessing).Simula 1 was quite successful as a simulation language,but the authors soon realized that the ability to use separateinvocations <strong>of</strong> a procedure to create individual “objects”had a more general application to representing data inapplications other than simulations. In creating Simula 67(the version <strong>of</strong> the language still used today), they thereforeintroduced the formal concept <strong>of</strong> the class as a specificationthat could be used to create objects <strong>of</strong> that type. Theyalso introduced the key idea <strong>of</strong> inheritance (where one classcan be derived from an earlier class), as well as a way that aderived class could redefine a procedure that it had inheritedfrom the original (base) class (see object-orientedprogramming <strong>and</strong> class).Although Simula 67 would continue to be used primarilyfor simulations rather than as a general-purpose programminglanguage, its object-oriented ideas would proveto be very influential. The designers <strong>of</strong> Smalltalk <strong>and</strong> Adawould look to Simula for structural ideas, <strong>and</strong> the popularC++ language began with an effort to create a “C withclasses” language along the lines <strong>of</strong> Simula. (See Smalltalk,Ada, <strong>and</strong> C++.)Further ReadingHolmevik, Jan-Rune. “Compiling Simula: a Study in the History <strong>of</strong>Computing <strong>and</strong> the Construction <strong>of</strong> the SIMULA ProgrammingLanguages.” STS Report (Trondheim). Available online. URL:http://staff.um.edu.mt/jskl1/simula.html. Accessed August 21,2007.Nygaard, K., <strong>and</strong> O.-J. Dahl. “The Development <strong>of</strong> the Simula Languages”in The History <strong>of</strong> Programming Languages, R. L. Wexelblat,ed. New York: Academic Press, 1981.Pooley, R. Introduction to Programming with Simula. Oxfordshire,U.K.: Alfred Waller, 1987.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 7th ed.Boston: Addison-Wesley, 2006.Sklenar, J. “Introduction to OOP in Simula.” Available online.URL: http://staff.um.edu.mt/jskl1/talk.html. Accessed August21, 2007.simulationA simulation is a simplified (but adequate) model that representshow a system works. The system can be an existing,real-world one, such as a stock market or a human heart,or a proposed design for a system, such as a new factory oreven a space colony.If a system is simple enough (a cannonball falling froma height, for example), it is possible to use formulas suchas those provided by Newton to get an exact answer. However,many real-world systems involve many discrete entitieswith complex interactions that cannot be captured witha single equation. During the 1940s, scientists encounteredjust this problem in attempting to underst<strong>and</strong> what wouldhappen under various conditions in a nuclear reaction.


432 singularity, technologicalTogether with physicist Enrico Fermi, two mathematicians,John von Neumann (see von Neumann, John) <strong>and</strong>Stanislaw Ulam, devised a new way to simulate complexsystems. Instead <strong>of</strong> trying fruitlessly to come up with somehuge formula to “solve” the whole system, they appliedprobability formulas to each <strong>of</strong> a number <strong>of</strong> particles—in effect, “rolling the dice” for each one <strong>and</strong> then observingtheir resulting distribution <strong>and</strong> behavior. Because <strong>of</strong>its analogy to gambling, this became known as the MonteCarlo method. It turned out to be widely useful not onlyfor simulating nuclear reactions <strong>and</strong> particle physics but formany other activities (such as bombing raids or the spread<strong>of</strong> disease) where many separate things behave according toprobabilities.A number <strong>of</strong> other models <strong>and</strong> techniques have madeimportant contributions to simulation. For example, theattempt to simulate the operation <strong>of</strong> neurons in the brainhas led to a powerful technique for performing tasks suchas pattern recognition (see neural network). The application<strong>of</strong> simple rules to many individual objects can result inbeautiful <strong>and</strong> dynamic patterns (see cellular automata),as well as ways to model behavior (see artificial life).Here, instead <strong>of</strong> a system being simplified into a simulation,a simulation can be created in order to see what sort <strong>of</strong> systemsmight emerge.S<strong>of</strong>tware ImplementationBecause <strong>of</strong> the number <strong>of</strong> calculations (repeated for a singleobject <strong>and</strong>/or applied to many objects) required for an accuratesimulation, it is obviously useful for the simulationdesigner to have as much computer power as possible. Similarly,having many processors or a network <strong>of</strong> separate computersnot only increases the available computing power,but may make it more natural to represent different objectsor parts <strong>of</strong> a system by assigning each to its own processor.(This naturalness goes the other way, too: Simulation techniquescan be very important in modeling or predicting theperformance <strong>of</strong> computer networks including the Internet.)However, it is also important to have programming languages<strong>and</strong> techniques that are suited for representing thesimultaneous changes to objects (see also multiprocessing).Using object-oriented languages such as Simula orSmalltalk makes it easier to package <strong>and</strong> manage the data<strong>and</strong> operations for each object (see object-oriented programming,Simula, <strong>and</strong> Smalltalk).ApplicationsSimulations <strong>and</strong> simulation techniques are used for a tremendousrange <strong>of</strong> applications today. Besides helping withthe underst<strong>and</strong>ing <strong>of</strong> natural systems in physics, chemistry,biology, or engineering, simulation techniques are alsoapplied to human behavior. For example, the behavior <strong>of</strong>consumers or traders in a stock market can be exploredwith a simulation based on game theory concepts. Artificialintelligence techniques (such as expert systems) canbe used to give the individual “actors” in a simulation morerealistic behavior.Simulations are <strong>of</strong>ten used in training. A modern flightsimulator, for example, not only simulates the aerodynamics<strong>of</strong> a plane <strong>and</strong> its response to the environment <strong>and</strong>to control inputs, but detailed graphics (<strong>and</strong> simulatedphysical motion) can make such training simulations feelvery realistic, if not quite to Star Trek holodeck st<strong>and</strong>ards.Whether for flight, military exercises, or stock trading, simulationscan provide a much wider range <strong>of</strong> experiences ina relatively short time than would be feasible (or safe) usingthe real-world activity. Simulations can also play an importantpart in testing s<strong>of</strong>tware or systems or in predicatingthe results <strong>of</strong> business decisions or strategies.Simulations are also frequently sold as entertainment.Many commercial strategy <strong>and</strong> role-playing games as wellas vehicle simulators contain surprisingly complex simulationsthat make the games both absorbing <strong>and</strong> challenging(see computer games <strong>and</strong> online games). Such games canalso have considerable educational value.Further ReadingGilbert, Nigel, <strong>and</strong> Klaus G. Troitzsch. Simulation for the SocialScientist. 2nd ed. Maidenhead, Berkshire, U.K.: Open UniversityPress, 2005.Laguna, Manuel, <strong>and</strong> Johan Marklund. Business Process Modeling,Simulation, <strong>and</strong> Design. Upper Saddle River, N.J.: PrenticeHall, 2004.Rizzoli, Andrea Emilio. “A Collection <strong>of</strong> Modelling <strong>and</strong> SimulationResources on the Internet.” Available online. URL: http://www.idsia.ch/~<strong>and</strong>rea/simtools.html. Accessed August 21,2007.Ross, Sheldon M. Simulation. Burlington, Mass.: Elsevier AcademicPress, 2006.Shelton, Brett E., <strong>and</strong> David A. Wiley, eds. The Design <strong>and</strong> Use <strong>of</strong>Simulation <strong>Computer</strong> Games in Education. Rotterdam, Netherl<strong>and</strong>s:Sense Publishers, 2007.singularity, technologicalThe idea that an incomprehensible future is rushing downon us goes back at least as far as Alan T<strong>of</strong>fler’s book FutureShock (1970). T<strong>of</strong>fler suggested that fundamental changesin society brought about by industrial <strong>and</strong> postindustrialdevelopments were creating psychological stress <strong>and</strong> disorientation.Future shock can be thought <strong>of</strong> as a steep line on a graphthat represents the complexity <strong>of</strong> technological society. Butwhat if the line were asymptotic, approaching the vertical<strong>and</strong> then disappearing? This is what science fiction writerVernor Vinge described in the 1980s as the “technologicalsingularity.” In physics, a singularity is a place wherelaws break down, such as at the center <strong>of</strong> a black hole. Byanalogy, Vinge suggested that the development <strong>of</strong> artificialintelligence <strong>and</strong> related technologies would reach a pointwhere intelligent machines would drive their own furtherdevelopment, with their design <strong>and</strong> operation far outstrippinghuman underst<strong>and</strong>ing. Once intelligent machinescreate even more intelligent machines (<strong>and</strong> so on), moretechnological progress might occur in a decade or two thanin the preceding thous<strong>and</strong>s <strong>of</strong> years.An obvious question is whether the singularity is in factcoming, <strong>and</strong> if so, when. Inventor <strong>and</strong> futurist Ray Kurzweilargues that history (including the accuracy <strong>of</strong> Moore’s law<strong>of</strong> doubling computational power) shows that technological


Smalltalk 433progress is indeed exponential. In his book The SingularityIs Near, Kurzweil predicts that the threshold will bereached in the 2040s, leading to “technological change sorapid <strong>and</strong> pr<strong>of</strong>ound it represents a rupture in the fabric <strong>of</strong>human history.”There are a number <strong>of</strong> contrary views. First, there arethose who argue that there are fundamental reasons whycomputers will never achieve truly human-equivalent intelligence,let alone surpass it (see, for example, Dreyfus,Hubert). Others argue that the present rate <strong>of</strong> accelerationwill not necessarily continue, <strong>and</strong> that human-level AImay still be achievable, but only in centuries rather than adecades.Responding to the SingularityWhat happens if there is a singularity is the stuff <strong>of</strong> muchspeculation <strong>and</strong> science fiction. “Super AI” might lead tothe development <strong>of</strong> technologies such as the ability to storeor transfer the contents <strong>of</strong> a human brain, making peopleeffectively immortal. On the other h<strong>and</strong>, superhumanintelligences might be indifferent to, or worse, hostile to,humanity. Super AI might also foster technologies such asgenetic engineering or nanotechnology that have promises<strong>and</strong> dangers <strong>of</strong> their own.There have been a number <strong>of</strong> responses to such dangers.Some critics (see, for example, Joy, Bill) urge that a limitingframework be put in place to prevent certain areas <strong>of</strong>research from getting out <strong>of</strong> h<strong>and</strong>. Others, such as EliezerYudkowsky <strong>of</strong> the Singularity Institute for Artificial Intelligence,want to ensure that “seed” AIs (intelligences capable<strong>of</strong> improving themselves) have safeguards <strong>and</strong> dispositionsthat would make them place a high regard on human interests,rather like Isaac Asimov’s “three laws <strong>of</strong> robotics.”Another suggested approach is to use the growingknowledge <strong>of</strong> the detailed structure <strong>and</strong> function <strong>of</strong> thehuman brain to enhance or augment cognitive function. Forexample, a mathematician might think about a problem <strong>and</strong>seamlessly retrieve data from both personal memory <strong>and</strong> theWorld Wide Web, then carry out symbolic manipulations<strong>and</strong> calculations at electronic speed, all via brain implants.A “S<strong>of</strong>t Singularity?”While the likelihood <strong>of</strong> computer s<strong>of</strong>tware exceedinghuman intelligence remains a subject for speculation <strong>and</strong>controversy, existing phenomena (<strong>and</strong> trends) in s<strong>of</strong>twaredesign <strong>and</strong> computer-mediated communication (see socialnetworking) suggest that a new level <strong>of</strong> complexity <strong>and</strong>sophistication is rapidly emerging. As information is beingincreasingly coded for meaning (see semantic Web) <strong>and</strong>programs are acting more autonomously (see artificiallife <strong>and</strong> s<strong>of</strong>tware agent), one might say the Web is startingto underst<strong>and</strong> itself, if not yet becoming conscious inthe human sense. In turn, the augmentation <strong>of</strong> humancognition is already well underway. Thus many potentialeffects <strong>of</strong> the singularity are already significant issues.Further ReadingBrin, David. “Singularities <strong>and</strong> Nightmares: Extremes <strong>of</strong> Optimism<strong>and</strong> Pessimism about the Human Future.” Availableonline. URL: http://lifeboat.com/ex/singularities.<strong>and</strong>.nightmares. Accessed November 15, 2007.Kurzweil, Raymond. The Singularity Is Near: When Humans TranscendBiology. New York: Viking, 2005.KurzweilAI.net. Available online. URL: http://www.kurzweilai.net. Accessed November 15, 2007.Lifeboat Foundation. Available online. URL: http://lifeboat.com.Accessed November 15, 2007.Singularity Institute for Artificial Intelligence. Available online.URL: http://www.singinst.org/. Accessed November 15, 2007.Vinge, Vernor. “The Coming Technological Singularity: Howto Survive in the Post-Human Era.” Available online. URL:http://www-rohan.sdsu.edu/faculty/vinge/misc/singularity.html. Accessed November 15, 2007.SmalltalkWorking during the 1970s at the Xerox Palo Alto ResearchLaboratory (PARC), computer scientist Alan Kay createdmany ideas <strong>and</strong> devices that have found their way intotoday’s personal computers. While designing a proposednotebook computer called the Dynabook, Kay decided totake a new approach to creating its operating system. Theresult would be a language (<strong>and</strong> system) called Smalltalk.In developing Smalltalk, Kay built upon two importantideas. The first was that people could master the power<strong>of</strong> the computer most easily by being able to create, test,<strong>and</strong> revise programs interactively rather than having to gothrough the cumbersome process <strong>of</strong> traditional compilation.Seymour Papert had already created Logo, an interactive,graphics-rich language that proved especially goodfor teaching children surprisingly sophisticated computerscience concepts. The name Smalltalk reflects how the firstimplementation <strong>of</strong> this language was also designed to be asimple, child-friendly language.The other key idea Kay used in Smalltalk was object-orientedprogramming, which had first been developed in thelanguage Simula 67 (see Simula <strong>and</strong> object-oriented programming).However, instead <strong>of</strong> simply adding classes <strong>and</strong>objects to existing language features, Kay designed Smalltalkto be object-oriented from the ground up. Even thedata types (such as integer <strong>and</strong> character) that are used todeclare variables in traditional languages become objects inSmalltalk. Users can define new classes that are treated justlike the “built-in” ones. There is no need to worry abouthaving to declare variables to be <strong>of</strong> a certain type beforethey can be used; in Smalltalk variables can be associatedwith any object.To get a program to perform an action, a “message” issent to an object, which invokes one <strong>of</strong> the object’s definedcapabilities (methods). For a very simple example, considerthe BASIC assignment statement:Total = Total + 1In a traditional language like BASIC, this is conceptualizedas “add 1 to the value stored at the location labeledTotal <strong>and</strong> store the result back in that location.” In theobject-oriented Smalltalk language, however, the equivalentstatement would be:Total


434 smart buildings <strong>and</strong> homesThis means “send the message + 1 to the object thatis referenced by the variable called Total.” This messagereferences the + method, one <strong>of</strong> the methods that numericobjects “underst<strong>and</strong>.” The object therefore adds 1 to itsvalue, <strong>and</strong> returns that value as a new object, which in turnis now referenced by the variable Total.A “program” in Smalltalk is simply a collection <strong>of</strong> objectswith the capabilities to carry out whatever processes arerequired. The objects <strong>and</strong> their associated variables makeup the “workspace,” which can be saved to disk periodically.For the Smalltalk programmer there is no distinctionbetween Smalltalk <strong>and</strong> the host computer’s operatingsystem. The operating system’s capabilities (such asfile h<strong>and</strong>ling) are provided within the Smalltalk system aspredefined objects. Kay envisaged Smalltalk as a completeenvironment that could be extended by users who were notnecessarily experienced programmers, <strong>and</strong> he designed itspioneering graphical user interface as a way to make it easyfor users to work with the system.Smalltalk includes a “virtual machine,” whose instructionsare then implemented in specific code for each majortype <strong>of</strong> computer system. Because <strong>of</strong> Smalltalk’s consistentstructure <strong>and</strong> ability to build everything up from objects,almost all <strong>of</strong> the Smalltalk system is written in Smalltalkitself, making it easy to transplant to a new computer oncethe machine-specific details are provided.Because <strong>of</strong> its elegance <strong>and</strong> consistency <strong>and</strong> its availabilityon personal computers, by the 1980s Smalltalk hadaroused considerable interest. The language has not beenwidely used for mainstream applications, in part becausethe mechanisms needed to kept track <strong>of</strong> classes <strong>and</strong> inheritance<strong>of</strong> methods are hard to implement as efficiently asthe simpler mechanisms used in traditional languages. Theapproach <strong>of</strong> building object-oriented features onto existinglanguages (as with developing C++ from C) had greaterappeal to many because <strong>of</strong> efficiency <strong>and</strong> a less steep learningcurve.Nevertheless, the conceptual power <strong>of</strong> Smalltalk hasmade it attractive for certain AI <strong>and</strong> complex simulationprojects, <strong>and</strong> it appeals to those who want a pure objectorientedapproach where an application can cleanly mirrora real-world situation. Smalltalk also remains a good choicefor teaching programming to children (<strong>and</strong> others). A versioncalled Squeak provides a rich environment <strong>of</strong> graphics<strong>and</strong> other functions. Squeak <strong>and</strong> a number <strong>of</strong> other Smalltalkimplementations are available for free download for anumber <strong>of</strong> different computer systems.Further ReadingDucasse, Stéphane. Squeak: Learn Programming with Robots. Berkeley,Calif.: Apress, 2005.Klimas, Edward J., Suzanne Skublics, <strong>and</strong> David A. Thomas. Smalltalkwith Style. Englewood Cliffs, N.J.: Prentice Hall, 1996.Lewis, Simon. The Art <strong>and</strong> <strong>Science</strong> <strong>of</strong> Smalltalk. Englewood Cliffs,N.J.: Prentice Hall, 1995.Smalltalk. Available online. URL: http://smalltalk.org. AccessedAugust 21, 2007.Squeak. Available online. URL: http://www.squeak.org/. AccessedAugust 21, 2007.smart buildings <strong>and</strong> homesA smart building, whether commercial space or a home, isone in which components ranging from HVAC (heating,ventilation, <strong>and</strong> air conditioning) to appliances, computers,communications, security, <strong>and</strong> entertainment systems areintegrated into a network for easy control.Some typical features <strong>of</strong> a smart building include thefollowing:• lighting that is controlled by time <strong>of</strong> day, scheduling,<strong>and</strong> occupancy sensors• temperature <strong>and</strong> air-flow sensors to determine theamount <strong>of</strong> cooling, heating, or fresh air needed• controls for central heating, hot water, <strong>and</strong> air conditioningsystems, optimizing efficiency <strong>and</strong> minimizingenergy use• alarms for intrusion, fire, carbon monoxide/dioxide,<strong>and</strong> other hazards• alarms indicating failure or unsafe operating conditionsfor various devices• integration <strong>of</strong> alarm <strong>and</strong> status messages withcommunications systems, enabling users to receivethem by e-mail, text message, phone, or othermeansUsing a secure link, the user can connect to the buildingvia mobile phone or perhaps Internet connection <strong>and</strong>give it comm<strong>and</strong>s, such as to turn the heating or porch lighton, close the drapes, <strong>and</strong> so on. The system can also let theremote user know who is at the door <strong>and</strong> allow for communication,or let them in.Smart <strong>of</strong>fice or other buildings use many <strong>of</strong> the sametechnologies as smart homes, but the priorities <strong>and</strong> emphasesmay be different. Smart buildings are more likely tobe centrally controlled <strong>and</strong> fully automated rather thanallowing individuals to interact with them. (Regulatory <strong>and</strong>safety requirements are also likely to be different <strong>and</strong> morecomplex.)Applications <strong>and</strong> QuestionsThe integrated controls in a smart house are potentiallyvery useful for disabled persons or seniors who have limitedmobility. Lighting could automatically be turned onas a person gets up from bed <strong>and</strong> goes to the bathroom, forexample. Appliances could be controlled remotely, <strong>and</strong> evencupboards or tables could be designed to raise or lower atthe touch <strong>of</strong> a button. (See disabled persons <strong>and</strong> computing<strong>and</strong> seniors <strong>and</strong> computing.) If such systems areeffective, their cost may be well worth the psychologicalbenefits <strong>of</strong> allowing people to remain in their homes, <strong>and</strong> incomparison to the cost <strong>of</strong> assisted living or residence facilities.Smart homes could also help parents monitor toddlersor small children as well as restrict them from enteringpotentially hazardous parts <strong>of</strong> the house.Critics <strong>of</strong> the smart-house concept point out that installing<strong>and</strong> integrating all the required equipment for a full


smart card 435A smart house or building makes it easy to control essential functions such as heating, air conditioning, lighting, <strong>and</strong> security systems.implementation is quite expensive. Incorporating the necessaryfeatures when building a new house would be easier,since infrastructure such as cabling can be incorporatedin the building design. However, much <strong>of</strong> the technologyis not fully mature. There are several st<strong>and</strong>ards for interconnection,including the venerable X10, Z-Wave, <strong>and</strong>Insteon—<strong>and</strong> they are incompatible with one another.Further ReadingBriere, Danny, <strong>and</strong> Pat Hurley. Smart Homes for Dummies. 3rd ed.Hoboken, N.J.: Wiley, 2007.Eisenpeter, Robert C., <strong>and</strong> Anthony Volte. Build Your Own SmartHome. Emeryville, Calif.: McGraw-Hill/Osborne, 2003.“Home Automation for the Elderly <strong>and</strong> Disabled.” Wikipedia.Available online. URL: http://en.wikipedia.org/wiki/Home_automation_for_the_elderly_<strong>and</strong>_disabled. Accessed November15, 2007.Lee, Jeanne. “Smart Homes: The Best <strong>of</strong> Today’s Intelligent, NetworkedHome Appliances Aren’t Just Cool <strong>and</strong> High-Concept.Believe It or Not, They also Make Sense.” Money, Oct. 1,2002, p. 120 ff.Mitchell, Robert. “The Rise <strong>of</strong> Smart Buildings.” <strong>Computer</strong>world,March 14, 2005. Available online. URL: http://www.computerworld.com/networkingtopics/networking/story/0,10801,100318,00.html. Accessed November 15, 2007.account. All the actual data (such as account balances) iskept in a central server, which is why credit cards mustbe validated <strong>and</strong> transactions approved through a phone(modem) link. Some magnetic strip cards such as thoseused in rapid transit systems are rewritable, so that, forexample, the fare for the current ride can be deducted. Telephonecards work the same way. Nevertheless, these cardsare essentially passive tokens containing a small amount <strong>of</strong>data. They have little flexibility.However, since the mid-1970s it has been possible toput a microprocessor <strong>and</strong> rewritable memory into a cardthe size <strong>of</strong> a st<strong>and</strong>ard credit card. These smart cards cansmart cardThe smart card is the next generation <strong>of</strong> transaction devices.Magnetically coded credit, debit, <strong>and</strong> ATM cards have beenin use for many years. These cards contain a magnetic stripencoded with a small amount <strong>of</strong> fixed data to identify theA smart card is “smart” because it does not just hold <strong>and</strong> updatedata, but has an embedded program <strong>and</strong> the ability to respond to avariety <strong>of</strong> requests.


436 smartphonestore a hundred or more times the data <strong>of</strong> a magnetic stripcard. Further, because they have an onboard computer (seeembedded system), they can interact with a computer atthe point <strong>of</strong> service, exchanging <strong>and</strong> updating information.Magnetic strip cards have no way to verify whetherthey’re being used by their legitimate owner, <strong>and</strong> it is relativelyeasy for criminals to obtain the equipment for creatingcounterfeits. With a smart card, the user’s PIN can bestored on the card <strong>and</strong> the terminal can require that the usertype in that number to authorize a transaction. Again, thePIN can be validated without reference to a remote server.Hardware <strong>and</strong> ProgrammingBesides the microprocessor <strong>and</strong> associated circuitry, thesmart card contains a small amount <strong>of</strong> RAM (r<strong>and</strong>omaccess memory) to hold “scratch” data during processing,as well as up to 64 kB <strong>of</strong> ROM (read-only memory) containingthe card’s programming instructions. The program iscreated on a desktop computer <strong>and</strong> written to the ROMthat is embedded in the card. Finally, the card includes upto 64 kB <strong>of</strong> EEPROM (Electrically Erasable ProgrammableRead Only Memory) for holding account balances <strong>and</strong> otherdata. This memory is nonvolatile (meaning that no power isneeded to maintain it), <strong>and</strong> can be erased <strong>and</strong> rewritten bythe card reader.“Contact” cards must be swiped through the reader <strong>and</strong>are most commonly used in retail, phone, pay TV, or healthcare applications. “Contactless” cards need only be broughtinto the proximity <strong>of</strong> the reader, which communicates withit via radio signals or a low-powered laser beam. Contactlesscards are more practical for applications such as collectingbridge tolls (see also rfid).The card reader (or terminal) at the point <strong>of</strong> sale containsits own computer, which runs s<strong>of</strong>tware that requestsparticular services from the card’s program, including providingidentifying information <strong>and</strong> balances, updating balances,<strong>and</strong> so on.Micros<strong>of</strong>t <strong>and</strong> some other companies have introducedthe PC/SC st<strong>and</strong>ard for programming smart cards fromWindows-based systems. Another st<strong>and</strong>ard, Open Card,promises to be compatible with a wide range <strong>of</strong> platforms<strong>and</strong> languages, including Java. (Java, after all, descendedfrom a project to develop a language for programmingembedded systems.) However, the first commercially availableJava-based smart card programming system is basedon another st<strong>and</strong>ard called JavaCard.ApplicationsThe same smart card might also be programmed to h<strong>and</strong>leseveral different types <strong>of</strong> transactions, <strong>and</strong> could functionas a combination phone card, ATM card, credit card, <strong>and</strong>even medical insurance card. Europe has been well ahead <strong>of</strong>the United States in adopting smart card technology, withboth France <strong>and</strong> Germany beginning during the 1980s touse smart cards for their phone systems. During the 1990s,they began to develop infrastructure for universal use <strong>of</strong>smart cards for their national health care systems. In 2002,Ontario, Canada, began to replace citizenship papers with asmart card, as well as creating a health services card. Otherinnovative uses for smart cards include London’s city passfor tourists, which can be programmed to provide not onlyprepaid access but also various bonuses <strong>and</strong> promotions.The packing <strong>of</strong> many services <strong>and</strong> the associated informationonto a smart card raises greater concern that theinformation might be illicitly captured <strong>and</strong> abused (see privacyin the digital age). Smart chips about the size <strong>of</strong>a grain <strong>of</strong> rice can be implanted beneath the skin. Whenscanned by hospital personnel, the patient’s entire medicalrecord can be retrieved, which can be vital for decidingwhich drugs to administer in an emergency when the patientis unable to communicate. However, the chips might be surreptitiouslyscanned by, for example, employers seeking toscreen out workers with expensive medical conditions.Smart cards (such as for digital TV access) have beencounterfeited with the aid <strong>of</strong> sophisticated programs <strong>and</strong>intrusion equipment. Card makers try to design the card’scircuits so that it resists intrusion <strong>and</strong> tampering <strong>and</strong> rejectsprogramming attempts from unauthorized equipment.Another way to prevent unauthorized use is to havethe card store identifying information that can be verifiedthrough fingerprint scanners or other means (see biometrics).Smart ID <strong>and</strong> access cards are being deployed bymore U.S. government agencies to control access to sensitiveareas in the wake <strong>of</strong> the September 11, 2001, terroristattacks. The newest smart cards, such as one called theUltra Card, can hold 20 MB <strong>of</strong> information, allowing theuse <strong>of</strong> much more extensive biometric data. The controversial“national ID card,” if implemented, is likely to be asmart card.A service called GSM (Global System <strong>of</strong> Mobile Communications)is gradually being adopted. Through the use<strong>of</strong> a smart card “subscriber identity module,” it allows wirelessphone users in any participating country to make calls<strong>and</strong> have the appropriate fees deducted. Further, the GSMcan route calls to a person’s number automatically to thatperson’s h<strong>and</strong>set, regardless <strong>of</strong> the country <strong>of</strong> origin <strong>and</strong>destination.There is a very large investment in the current creditcard technology, but the flexibility <strong>and</strong> potential security <strong>of</strong>smart credit <strong>and</strong> debit cards is attractive. Already some issuershave released credit cards with smart chip technology.Further ReadingJurgensen, Timothy M., <strong>and</strong> Scott B. Guthery. Smart Cards: TheDeveloper’s Toolkit. Upper Saddle River, N.J.: Prentice Hall,2002.Paret, Dominique. RFID <strong>and</strong> Contactless Smart Card Applications.New York: Wiley, 2005.Rankl, Wolfgang, <strong>and</strong> Wolfgang Effing. Smart Card H<strong>and</strong>book. 3rded. New York: Wiley, 2004.Smart Card Basics. Available online. URL: http://www.smartcardbasics.com/. Accessed August 21, 2007.smartphoneIn biology, convergent evolution is when two very differenttypes <strong>of</strong> creatures evolve similar structures or traits to copewith similar environments—for example, wings in insects,


smartphone 437birds, <strong>and</strong> bats. Something like this has happened with h<strong>and</strong>heldmobile devices that are used to manage personal information<strong>and</strong> for communication. Personal digital assistants(see PDA) can maintain lists <strong>of</strong> phone numbers <strong>and</strong> othercontact information, as well as running a variety <strong>of</strong> useful orentertaining applications. However, the first models had noprovision for actually making phone calls, while later models<strong>of</strong>fered the ability to make calls through a wireless connection(see Bluetooth) to an appropriately equipped mobilephone. This meant, though, that the user had to carry twoseparate devices, the PDA <strong>and</strong> the phone, somewhat defeatingthe objectives <strong>of</strong> portability <strong>and</strong> convenience.Meanwhile, <strong>of</strong> course, mobile phones were a boomingindustry—<strong>and</strong> a very competitive one, hence the pressureto add new features. Some <strong>of</strong> these features overlap typicalPDA features, such as storing contact lists, appointments,<strong>and</strong> other personal information. Further, users want to beable to not only send text messages, but read <strong>and</strong> send e-mail, <strong>and</strong> browse the Web. But providing all these applicationsreally calls for a full-fledged (albeit compact) operatingsystem <strong>and</strong> facilities for creating user interfaces. The resultis the smartphone, which in effect is a phone that is growninto a PDA while maintaining its phone capabilities. Thusthe smartphone aims to be the way to meet all communications,information management, Web, <strong>and</strong> entertainmentneeds in a single device. Typical features also include acamera <strong>and</strong> an audio-video media player (see music <strong>and</strong>video players, digital) <strong>and</strong> a small but increasingly sharpscreen.Some <strong>of</strong> the major smartphone manufacturers <strong>and</strong> theiroperating systems include the following:• Symbian (Symbian OS), used by Nokia, Motorola,Samsung, <strong>and</strong> others• Windows Mobile (enhanced Windows CE), popularin phones used in Asia• Blackberry (RIM), the popular PDA/smartphone• Linux, used as the base on which to build a variety<strong>of</strong> PDA/phone operating systems, including productsfrom Motorola, Palm, <strong>and</strong> Nokia (Maemo)• OS X (Apple), used in Apple’s innovative <strong>and</strong> verypopular iPhoneConvergenceAs a practical matter, the PDA <strong>and</strong> smartphone categoriesnow overlap so much that a device such as the Apple iPhonecan be called either, <strong>and</strong> then some. Although Apple initiallylocked out full access to the iPhone operating systemfor developing third-party applications (<strong>and</strong> locked thephone itself to only a few providers), the overall trend in theindustry is to provide more flexibility <strong>and</strong> accessibility.Although not yet accompanied by an actual device, the2007 announcement by Google <strong>of</strong> an open-source phones<strong>of</strong>tware platform called Android has been greeted by considerableinterest. The product will be developed furtherby the Open H<strong>and</strong>set Alliance, a consortium <strong>of</strong> Google <strong>and</strong>more than 30 other companies, including T-Mobile <strong>and</strong>Smartphone or PDA? Sometimes it is just a matter <strong>of</strong> semanticswhat to call a h<strong>and</strong>held device such as this Palm Treo 700w thatcan make phone calls <strong>and</strong> send e-mail or text messages as well asmanage information. (Palm, Inc.)Motorola. The use <strong>of</strong> open-source s<strong>of</strong>tware should reducecosts to developers <strong>and</strong> consumers, in part by making itpossible for a developer to create an application that canrun on dozens <strong>of</strong> different smartphone models.Further ReadingAmes, Patrick, <strong>and</strong> David Maloney. Now You Know: Treo 700wSmartphone. Berkeley, Calif.: Peachpit Press, 2007.Best, Jo. “Analysis: What Is a Smart Phone?” Silicon.com, February13, 2006. Available online. URL: http://networks.silicon.com/mobile/0,39024665,39156391,00.htm. Accessed November16, 2007.Jipping, Michael J. Smartphone Operating System Concepts withSymbian OS. Hoboken, N.J.: Wiley, 2007.McPherson, Frank. How to Do Everything with Windows Mobile.New York: McGraw-Hill, 2006.Open H<strong>and</strong>set Alliance. Available online. URL: http://www.openh<strong>and</strong>setalliance.com/. Accessed November 16, 2007.


438 SOAPPogue, David. iPhone: The Missing Manual. Sebastapol, Calif.:O’Reilly, 2007.Smartphone & Pocket PC [magazine Web site]. Available online.URL: http://www.pocketpcmag.com/defaults.asp. AccessedNovember 16, 2007.SOAPOriginally st<strong>and</strong>ing for Simple Object Access Protocol, butnow no longer an acronym, SOAP is a st<strong>and</strong>ard way toaccess Web services (see service-oriented architecture<strong>and</strong> Web services). In today’s Web, where what appears tousers to be a single site or application is usually built frommany services, such a facility is essential.Prior to SOAP, Web applications usually communicatedthrough remote procedure calls (RPC). However there wereproblems with compatibility <strong>of</strong> applications running underdifferent operating systems (<strong>and</strong> perhaps using differentprogramming languages), as well as security problems that<strong>of</strong>ten led to such facilities being blocked.SOAP, on the other h<strong>and</strong>, uses the same HTTP recognizedby all Web servers <strong>and</strong> browsers (see Web browser,Web server, <strong>and</strong> World Wide Web)—indeed, it can alsouse secure HTTP (https).A SOAP request (or message) is an ordinary XML file(see xml) that includes an “envelope” element specifyingit to be a SOAP message, an optional header, a body elementcontaining the information pertaining to the functionor transaction requested, <strong>and</strong> an optional fault elementto specify error processing. After receiving the message,the destination server returns a message providing therequested information.A very simple SOAP message might look like this:311The message asks for the price for item number 311.Despite its advantages in terms <strong>of</strong> security, versatility,<strong>and</strong> readability, SOAP does have some disadvantages.The main one is that XML files can be quite lengthy, makingtransactions slower than with the much more compactCORBA (see CORBA).Further ReadingBurd, Barry. Java & XML for Dummies. Indianapolis: Wiley, 2002.Freeman, Adam, <strong>and</strong> Allen Jones. Micros<strong>of</strong>t .NET XML Web ServicesStep by Step. Redmond, Wash.: Micros<strong>of</strong>t Press, 2003.“SOAP Tutorial.” W3schools.com. Available online. URL: http://www.w3schools.com/soap. Accessed November 17, 2007.“What Is SOAP” [Flash presentation]. Available online. URL:http://searchwebservices.techtarget.com/searchWebServices/downloads/what_is_soap.swf. Accessed November 17, 2007.Zimmermann, Olaf, Mark Tomlinson, <strong>and</strong> Stefan Peuser. Perspectiveson Web Services: Applying SOAP, WSDL, <strong>and</strong> UDDI toReal-World Projects. New York: Springer, 2003.social impact <strong>of</strong> computingIn 2001, the <strong>Computer</strong> Pr<strong>of</strong>essionals for Social Responsibility(CPSR) held a conference titled “Nurturing theCybercommons, 1981–2021.” Speakers looked back at theamazing explosion in computing <strong>and</strong> computer-mediatedcommunications in the last two decades <strong>of</strong> the 20th century.They then turned to the next 20 years, discussinghow computing technology <strong>of</strong>fered both the potential fora more robust democracy <strong>and</strong> the threat that control <strong>of</strong>information by the few could disenfranchise the many.Their challenge was to create a “cybercommons”—a wayin which the benefits <strong>of</strong> technology could be shared moreequitably.It is sobering to realize just how much happened in onlytwo decades. The computer went from being an esotericpossession <strong>of</strong> large institutions to a ubiquitous companion<strong>of</strong> daily work <strong>and</strong> home life. At the same time, the Internet,which in 1981 had been a tool for a small number <strong>of</strong>campus computing departments <strong>and</strong> government-fundedresearchers, has burgeoned to a medium that is fast changingthe way people buy, learn, <strong>and</strong> socialize.The use <strong>of</strong> computing for specific applications generallybrings risks along with benefits (see risks <strong>of</strong> computing).Sometimes risks can go beyond a specific program into theinteraction between that program <strong>and</strong> other systems. In thebroadest sense, however, computer use as a human activityaffects all other human activities. The ultimate infrastructureis not the computer, the s<strong>of</strong>tware program, or even theentire Internet. Rather, it is society as a whole. There are aseveral dimensions along which both positive <strong>and</strong> negativepossibilities can be seen.One <strong>of</strong> the earliest hints that computers might have a broaderimpact on society came in 1952, when Univac’s prediction <strong>of</strong>an Eisenhower election victory was relayed by anchor WalterKronkite. (Al Fenn / Time Life Pictures/Getty Images)


social impact <strong>of</strong> computing 439Stratification v. OpportunityIn the past 30 years, the computer has created millions <strong>of</strong>new jobs, ranging from webmaster to support technicianto Internet café proprietor (see employment in the computerfield). Millions <strong>of</strong> other jobs have been redefined:The typist has become the word processor, for example.Many other jobs have disappeared or are in the process<strong>of</strong> disappearing—such as travel agents, who have foundthemselves under pressure both from do-it-yourself Internetbooking <strong>and</strong> the airlines deciding that they no longerneeded to give agents incentives for booking.In a rapidly changing technological <strong>and</strong> economic l<strong>and</strong>scape,there are always emerging opportunities. The primacy<strong>of</strong> computer skills in the job market has, however,exacerbated a trend that was seen throughout the 20thcentury. New, well-paid jobs increasingly require technicaltraining <strong>and</strong> skills—exp<strong>and</strong>ing the definition <strong>of</strong> “functionalliteracy.” Throughout the second half <strong>of</strong> the century,the traditional blue-collar factory jobs that could assure acomfortable living for persons with only a high school educationhave become increasingly scarce. This has been theresult both <strong>of</strong> increasingly competitive (<strong>and</strong> lower-priced)overseas labor <strong>and</strong> factory automation (see robotics) athome. Essentially, the well-paid tech sector <strong>and</strong> the lowpaidservice sector have grown rapidly, while the ground inbetween has eroded.Sometimes jobs don’t disappear, but are “dumbed down,”becoming low-skill <strong>and</strong> low-paid. Fifty years ago, a storeclerk had to be able to count up from the cash register totalto the amount <strong>of</strong> money presented by the customer. Today,computerized cash registers tell the clerk exactly how muchchange to give (<strong>and</strong> <strong>of</strong>ten dispense the coins automatically).Old-style clerks had to know about prices, discounts, <strong>and</strong>special <strong>of</strong>fers. Today these are h<strong>and</strong>led automatically bybar codes <strong>and</strong> smart cards. Although the supermarket clerkstill is moderately well paid, the ultimate end <strong>of</strong> the processis seen in the fast food clerk, who <strong>of</strong>ten needs only pushbuttons with pictures <strong>of</strong> food on them. He or she is likelyto be paid little more than minimum wage. The impact <strong>of</strong>technology on jobs can even go through several stages. Forexample, skilled photo technicians have been replaced bythe use <strong>of</strong> automated photo processing equipment. In turn,however, the growing use <strong>of</strong> digital cameras is reducing theuse <strong>of</strong> film-based photography in general.The result <strong>of</strong> these trends may well be increased socialstratification. The best jobs in the information age requireskills such as programming, systems analysis, or the abilityto create multimedia content. However, the opportunityto acquire such skills varies <strong>and</strong> is not evenly distributedthrough all groups in the population (see digital divide).Although minority groups are now catching up in terms <strong>of</strong>access to computers at home <strong>and</strong> in school, disparities inthe quality <strong>of</strong> education will only be magnified as technicalskills increasingly correlate with good pay <strong>and</strong> benefits.At the same time the computer <strong>of</strong>fers powerful newtools for education (see education <strong>and</strong> computers).Potentially, this could overcome much <strong>of</strong> the disadvantages<strong>of</strong> poverty because once the threshold <strong>of</strong> access is met, thepoor person’s Internet is much the same as that availableto the privileged. However, mastering the necessary skillsrequires both provision <strong>of</strong> adequate resources <strong>and</strong> that prevailingcultural attitudes support intellectual achievement.Dependency v. Empowerment<strong>Computer</strong>s have made people more dependent in someways while empowering them in others. Society is increasinglydependent on computers to operate the systems thatprovide transportation, power, <strong>and</strong> communications infrastructure.The “y2k” scare at the end <strong>of</strong> the century provedto be unfounded, but it did give people a chance to considerwhat a major, prolonged failure in the information infrastructurewould mean for maintaining the physical necessities<strong>of</strong> life, the viability <strong>of</strong> the economy, <strong>and</strong> the cohesion<strong>of</strong> society itself (see Y2K problem). The terrorist attacks <strong>of</strong>September 11, 2001, brought to greater public awarenessthe concerns about “cyberterrorism” that experts had beendebating since the late 1990s. (See cyberterrorism.)At the same time, computers—<strong>and</strong> particularly theInternet—have give individuals a greater feeling <strong>of</strong> empowermentin many respects. The savvy Web user now hasnumerous ways to shop for everything from airline ticketsto Viagra pills at prices that reflect disintermediation—the elimination <strong>of</strong> the middleman. Many people are lessinclined to take the word <strong>of</strong> traditional authority figures(such as doctors) <strong>and</strong> instead are tapping into the sort <strong>of</strong>information that had been previously been accessible onlyto pr<strong>of</strong>essionals. However, access to information is not thesame thing as having the necessary background <strong>and</strong> skillsto evaluate that information. Whether falling victim to anoutright scam or simply not fully underst<strong>and</strong>ing the consequences<strong>of</strong> a decision, the Web user finds little in the way<strong>of</strong> a regulatory safety net. The tension between the highdegree <strong>of</strong> regulation now existing in much <strong>of</strong> our society<strong>and</strong> the frontierlike qualities <strong>of</strong> cyberspace will no doubt bea major theme in the next few decades.Centralization v. DemocracyWith new forms <strong>of</strong> media technology (such as radio <strong>and</strong>television in the 20th century), early innovators <strong>and</strong> experimentershave considerable freedom to experiment <strong>and</strong>express themselves. This freedom is largely the result <strong>of</strong>lack <strong>of</strong> pressure from powerful economic interests whilethe new technology is largely still “under the radar.” However,as a technology matures, large corporate interests tendto consolidate the market, leaving fewer opportunities forsmaller, independent operators.By the late 1990s there was some concern that theInternet <strong>and</strong> World Wide Web were entering such a consolidationstage in the wake <strong>of</strong> such developments as theAOL/Time-Warner merger. However, while there are nowlarge corporate presences online, the diversity <strong>of</strong> the means<strong>of</strong> expression has actually increased (see blogs <strong>and</strong> blogging,user-created content, wikis <strong>and</strong> Wikipedia, <strong>and</strong>YouTube). Further, the influence <strong>of</strong> activist groups hasincreased to the point where any serious political campaigngives high priority to its Internet presence <strong>and</strong> the cultivation<strong>of</strong> influential bloggers (see political activism <strong>and</strong>the Internet).


440 social networkingThere continue to be centralizing or antidemocraticpressures in the online world (for example, see censorship<strong>and</strong> the Internet). There is also the conflict between thedesire to protect intellectual property <strong>and</strong> the free sharing<strong>of</strong> images <strong>and</strong> other media (see distribution <strong>of</strong> music <strong>and</strong>video, online <strong>and</strong> intellectual property <strong>and</strong> computing).Loss <strong>of</strong> privacy can also inhibit untrammeled politicaldiscourse (see privacy in the digital age). At the sametime, organizations such as the Electronic Frontier Foundation,Electronic Privacy Information Center, <strong>and</strong> Center forDemocracy <strong>and</strong> <strong>Technology</strong> work to protect <strong>and</strong> advocatedemocratic expression.Isolation v. CommunityThere are many online facilities that allow individuals <strong>and</strong>groups to maintain an ongoing dialog (see chat, online<strong>and</strong> conferencing systems). Students at a school in Iowacan now collaborate with their counterparts in Kenya orThail<strong>and</strong> on projects such as measuring global environmentalconditions. Senior citizens who have become isolatedfrom family members <strong>and</strong> lack access to transportation canfind social outlets online.However, critics such as Clifford Stoll believe that thegrowth <strong>of</strong> online communication (see also virtual community)may be leading to a further erosion <strong>of</strong> physicalcommunities <strong>and</strong> a sense <strong>of</strong> neighborhood. For many years,it has been observed that people in suburbia <strong>of</strong>ten don’tknow their neighbors: The car <strong>and</strong> the phone let them formrelationships <strong>and</strong> “communities” without much regard togeography. It is possible that the growth in online communitieswill accelerate this effect. Further, with people beingable to order an increasing array <strong>of</strong> goods <strong>and</strong> servicesonline, might the market plaza <strong>and</strong> its modern counterpartthe mega mall become less <strong>of</strong> a meeting place? Eventhe proposal to allow people to vote online might promotedemocracy at the expense <strong>of</strong> the contact between citizens<strong>and</strong> the shared rituals that give people a stake in the largercommunity.Thus, computer technology <strong>of</strong>fers many opposing prospects<strong>and</strong> visions. The social changes that are cascadingfrom information <strong>and</strong> communications technology arelikely to be at least as pervasive in the early 21st century asthe those wrought by the telephone, automobile, <strong>and</strong> televisionwere in the 20th.Further ReadingAssociation for Computing Machinery. Special Interest Group on<strong>Computer</strong>s <strong>and</strong> Society. Available online. URL: http://www.sigcas.org/. Accessed August 21, 2007.Center for Democracy & <strong>Technology</strong>. Available online. URL:http://www.cdt.org/. Accessed August 21, 2007.<strong>Computer</strong> Pr<strong>of</strong>essionals for Social Responsibility. Available online.URL: http://www.cpsr.org. Accessed August 21, 2007.De Paula, Paul. Annual Editions: <strong>Computer</strong>s in Society 06/07. Guilford,Conn.: McGraw-Hill/Duskin, 2006.Electronic Frontier Foundation. Available online. URL: http://www.eff.org. Accessed August 21, 2007.Kizza, Joseph Migga. Ethical <strong>and</strong> Social Issues in the InformationAge. 2nd ed. New York: Springer, 2002.Morley, Deborah, <strong>and</strong> Charles S. Parker. <strong>Computer</strong>s <strong>and</strong> <strong>Technology</strong> ina Changing Society. 2nd ed. Boston: Course <strong>Technology</strong>, 2004.Pew Internet & American Life Project. Available online. URL:http://www.pewinternet.org/. Accessed August 21, 2007.social networkingToday, millions <strong>of</strong> people—middle, high school, <strong>and</strong> collegestudents, but increasingly adults as well—have pages onpopular Web sites such as MySpace <strong>and</strong> Facebook. Thesesites are significant examples <strong>of</strong> social networking: the use<strong>of</strong> Web sites <strong>and</strong> communications <strong>and</strong> collaboration technologyto help people find, form, <strong>and</strong> maintain social relationships.The origins <strong>of</strong> social networking can be traced to onlinevenues that arose in the 1970s <strong>and</strong> 1980s, notably Usenet<strong>and</strong>, later, online chat boards (see bulletin board system,conferencing system, netnews, <strong>and</strong> virtual community).In the late 1990s social networking Web sites beganto appear, including Classmates.com (helping people find<strong>and</strong> communicate with former schoolmates) <strong>and</strong> SixDegrees.com,which emphasized “knows someone who knowssomeone who . . .” kinds <strong>of</strong> links.By the mid-2000s the two biggest sites were Facebook<strong>and</strong> MySpace. Founded in 2006 by Mark Zuckerberg, Facebookwas originally restricted to Harvard students, buteventually became open to any college student, <strong>and</strong> thenhigh schools <strong>and</strong> even places <strong>of</strong> employment. (The namecomes from a book given to incoming students in someschools to familiarize them with their peers.) As <strong>of</strong> late2007 Facebook had more than 55 million active members<strong>and</strong> had become the seventh most visited <strong>of</strong> all Web sites.Facebook users have pr<strong>of</strong>ile pages that include a “wall”on which their designated circle <strong>of</strong> friends can post briefmessages. (Longer or private messages similar to e-mail canalso be sent.) Users can also send each other “gifts” representedby colorful icons. Finally, users in a given Facebookcommunity can keep track <strong>of</strong> each other’s status (wherethey are <strong>and</strong> what they are doing).Beverly Hills, California-based, MySpace is an evenlarger site, near the top <strong>of</strong> the Web site popularity statisticsthrough much <strong>of</strong> 2007. Founded in 2003, the site was created<strong>and</strong> marketed by a company called eUniverse (laterIntermix), <strong>and</strong> its launch was greatly boosted by being ableto tap many <strong>of</strong> eUniverse’s 20 million existing subscribers.User pr<strong>of</strong>iles are broadly similar to those in Facebook, butare less structured <strong>and</strong> more colorful, with uploaded graphics<strong>and</strong> a blog for each user. Pr<strong>of</strong>iles can be elaboratelycustomized using a variety <strong>of</strong> tools <strong>and</strong> utilities. The sitehas also exp<strong>and</strong>ed into other areas such as instant messaging(MySpaceIM), video sharing (MySpactTV), <strong>and</strong> mobilephones (MySpace Mobile).Social network applications are also exp<strong>and</strong>ing behindthe linking <strong>of</strong> classmates or colleagues. Companies can usesocial networking s<strong>of</strong>tware to set up user groups <strong>and</strong> providesupport <strong>and</strong> incentives. Medical pr<strong>of</strong>essionals are <strong>of</strong>tenforming social networks to share knowledge <strong>and</strong> news—<strong>and</strong> not surprisingly, drug company representatives havemoved in to make their pitch as well. Business executives<strong>and</strong> pr<strong>of</strong>essionals can meet on LinkedIn, a site that linkspeople only if they have an existing relationship or an “invi-


social sciences <strong>and</strong> computing 441tation” from an existing member. As further pro<strong>of</strong> that thetechnology is maturing, about 20 percent <strong>of</strong> adult Internetusers have reported visiting a social networking site in thepast 30 days.CommercializationIndeed, because they are now bringing so many peopletogether, social networking sites have become a very attractiveplatform for online products <strong>and</strong> businesses. Facebook,for example, is explicitly allowing selected businesses touse the site, in exchange for a portion <strong>of</strong> the revenue generated.(Even without formal relationships, many sites allowusers to add code enabling third-party services.) Some utilities(<strong>of</strong>ten sponsored by advertising) help users make theirpr<strong>of</strong>iles more attractive, while one called MySpacelog servesusers who are anxious to see who is viewing their sites.Looming on the horizon by 2007 was Google, which isreleasing OpenSocial, a set <strong>of</strong> programming interfaces thatis expected to enable developers to create applications thatwill run on a wide variety <strong>of</strong> social networking sites.While social networking sites generally want to encourageproducts that can add revenue (<strong>and</strong> value to users), someadd-on applications can be problematic. In 2006 a site calledStalkerati let users automatically search for a person’s pr<strong>of</strong>ileson popular social networking sites <strong>and</strong> consolidate them intoa summary. However, the perhaps unfortunately named sitedwas soon blocked by MySpace <strong>and</strong> other sites, which citedprivacy <strong>and</strong> security concerns. These concerns have becomeincreasingly important as networks such as MySpace haveproven attractive to spammers, identity thieves, <strong>and</strong> sexualpredators. (A 2007 survey by the Pew Internet & AmericanLife Project found that 23 percent <strong>of</strong> teens on social networkshad felt “scared or uncomfortable” because <strong>of</strong> an onlineencounter with a stranger. However, that same report showedthat many parents <strong>and</strong> teens themselves have become aware<strong>of</strong> potential risks <strong>and</strong> the need to more carefully managewhere <strong>and</strong> how information is disclosed.)Social networking is also attracting the attention <strong>of</strong>social scientists <strong>and</strong> academics: For example, the University<strong>of</strong> Michigan now has a graduate program in social computing.Meanwhile sociologist Michael Macy <strong>of</strong> Cornell Universityis directing a multiyear research project, funded bythe National <strong>Science</strong> Foundation <strong>and</strong> Micros<strong>of</strong>t, titled “GettingConnected: Social <strong>Science</strong> in the Age <strong>of</strong> Networks.”Note: the term social network is also used to refer to amethod <strong>of</strong> mathematical <strong>and</strong> sociological analysis <strong>of</strong> sociallinks within organizations. Such methods can <strong>of</strong> course beapplied to the online social networking sites.Further ReadingBaloun, Karel M. Inside FaceBook: Life, Works, <strong>and</strong> Visions <strong>of</strong> Greatness.Victoria, B.C., Canada: Trafford, 2007.Facebook. Available online. URL: http://www.facebook.com/.Accessed November 18, 2007.Hupfer, Ryan, Mitch Maxson, <strong>and</strong> Ryan Williams. MySpace forDummies. Hoboken, N.J.: Wiley, 2007.Lavallee, Andrew. “At Some Schools, Facebook Evolves from TimeWaster to Academic Study.” Wall Street Journal Online, May29, 2007. Available online. URL: http://online.wsj.com/article/SB117917799574302391.html. Accessed November 18, 2007.Lenhart, Am<strong>and</strong>a, <strong>and</strong> Mary Madden. “Social Networking Websites<strong>and</strong> Teens: An Overview.” Pew Internet & American LifeProject, January 7, 2007. Available online. URL: ttp://www.pewinternet.org/pdfs/PIP_SNS_Data_Memo_Jan_2007.pdf.Accessed November 18, 2007.———. “Teens, Privacy & Online Social Networks: How TeensManage Their Online Identities <strong>and</strong> Personal Informationin the Age <strong>of</strong> MySpace.” Pew Internet & American LifeProject, April 18, 2007. Available online. URL: http://www.pewinternet.org/pdfs/PIP_Teens_Privacy_SNS_Report_Final.pdf. Accessed November 18, 2007.MySpace. Available online. URL: http://www.myspace.com/.Accessed November 18, 2007.Shepherd, Lauren. “Social Networking Breeds Creation <strong>of</strong> Third-Party Sites.” Associated Press/San Francisco Chronicle, June18, 2007, p. C5.Weber, Larry. Marketing to the Social Web: How Digital CustomerCommunities Build Your Business. Hoboken, N.J.: Wiley, 2007.social sciences <strong>and</strong> computingBroadly speaking, social scientists study the structure <strong>and</strong>dynamics <strong>of</strong> human societies as well as groups <strong>of</strong> all kinds.Depending on subject matter, the research can fall withinone or more disciplines, for example, anthropology, psychology,economics, geography, history, political science,or sociology. As with other scientific fields, computers havegreatly enhanced <strong>and</strong> exp<strong>and</strong>ed the ability to carry out,analyze, <strong>and</strong> communicate research findings.ApplicationsSocial scientists can use a variety <strong>of</strong> s<strong>of</strong>tware throughoutthe research process. For example, researchers might usethe following:• Web <strong>and</strong> bibliographical search tools to find existingresearch on their topic• note-taking <strong>and</strong> concept-diagramming (“mind-mapping”)s<strong>of</strong>tware• s<strong>of</strong>tware to conduct polls or surveys <strong>and</strong> compile theresults• social networking analysis to better underst<strong>and</strong> agroup’s structure <strong>and</strong> dynamics• statistical analysis tools to analyze the findings (seestatistics <strong>and</strong> computing)• map-based systems for studying geographical aspects(see geographical information systems)• modeling s<strong>of</strong>tware to simulate the mechanism beingstudied, using mathematical techniques such as theMonte Carlo <strong>and</strong> Markov-Chain methodsGames <strong>and</strong> virtual worlds in particular are being usedin innovative ways. Games such as the classic SimCity orthe “social simulator” The Sims can be used to help studentsunderst<strong>and</strong> <strong>and</strong> experiment with economic <strong>and</strong> socialdynamics. However, virtual worlds can also be studied intheir own right—for example Tufts University researchersNina Fefferman <strong>and</strong> Eric L<strong>of</strong>gren have written a paperdescribing how the spread <strong>of</strong> a “virtual plague” in Second


442 s<strong>of</strong>tware agentLife could be studied to learn how people would be mostlikely to react to a real disease outbreak. And at CarnegieMellon University, a National <strong>Science</strong> Foundation–fundedproject will be studying interactions in online venues asdisparate as World <strong>of</strong> Warcraft <strong>and</strong> Wikipedia.Further ReadingDochartaigh, Niall O. The Internet Research H<strong>and</strong>book: A PracticalGuide for Students <strong>and</strong> Researchers in the Social <strong>Science</strong>s.Thous<strong>and</strong> Oaks, Calif.: Sage Publications, 2002.Gilbert, Nigel, <strong>and</strong> Klaus G. Troitzsch. Simulation for the SocialScientist. Philadelphia: Open University Press, 1999.“The Impoverished Social Scientist’s Guide to Free Statistical S<strong>of</strong>tware<strong>and</strong> Resources.” Available online. URL: http://www.hmdc.harvard.edu/micah_altman/socsci.shtml. AccessedOctober 5, 2007.Patterson, David A. “Using Spreadsheets for Data Collection, StatisticalAnalysis, <strong>and</strong> Graphical Representation.” Availableonline. URL: http://web.utk.edu/~dap/R<strong>and</strong>om/Order/Start.htm. Accessed October 5, 2007.Saam, Nicole J., <strong>and</strong> Bernd Schmidt. Cooperative Agents: Applicationsin the Social <strong>Science</strong>. Norwell, Mass.: Kluwer AcademicPublishers, 2001.Summary <strong>of</strong> Survey Analysis S<strong>of</strong>tware (Harvard). Available online.URL: http://www.hcp.med.harvard.edu/statistics/survey-s<strong>of</strong>t/.Accessed October 5, 2007.s<strong>of</strong>tware agentMost s<strong>of</strong>tware is operated by users giving it comm<strong>and</strong>sto perform specific, short-duration tasks. For example, auser might have a word processor change a word’s typestyleto bold, or reformat a page with narrower margins.On the other h<strong>and</strong>, a person might give a human assistanthigher-level instructions for an ongoing activity: for example,“Start a clippings file on the new global trade treaty <strong>and</strong>how it affects our industry.”In recent years, however, computer scientists <strong>and</strong> developershave created s<strong>of</strong>tware that can follow instructionsmore like those given to the human assistant than thosegiven to the word processor. These programs are variouslycalled s<strong>of</strong>tware agents, intelligent agents, or bots (shortfor “robots”). Some consumers have already used s<strong>of</strong>twareagents to comb the Web for them, looking, for example,for the best online price for a certain model <strong>of</strong> digital camera.Agent programs can also assist with online auctions,travel planning <strong>and</strong> booking, <strong>and</strong> filtering e-mail to removeunwanted “spam” or to direct inquiries to appropriate salesor technical support personnel. (See also Maes, Pattie.)Practical agents or bots can be quite effective, but theyare relatively inflexible <strong>and</strong> able to cope only with narrowlydefined tasks. A travel planning agent may be able to interfacewith online reservations systems <strong>and</strong> book airline tickets,for example. However, the agent is unlikely to be able torecognize that a recent upsurge in civil strife suggests thattravel to that particular country is not advisable.Researchers have, however, been working on a variety<strong>of</strong> more open-ended agents that, while not demonstrably“intelligent,” do appear to behave intelligently. The first programthat was able to create a humanlike conversation wasELIZA. Written in the mid-1960s by Joseph Weizenbaum,ELIZA simulated a conversation with a “nondirective” psychotherapist.More recently, Internet “chatterbots” such asone called Julia have been able to carry on apparently intelligentconversations in IRC (Internet Relay Chat) rooms,complete with flirting. Other “social bots” have served asplayers in online games (see chatterbots).Chatterbots are effective because they can mirror humansocial conventions <strong>and</strong> because much <strong>of</strong> casual humanconversation contains stereotyped phrases or clichés thatcan be easily imitated. Ideally, however, one would wantbots to be able to combine the ability to carry out practicaltasks with a more general intelligence <strong>and</strong> a more “sociable”interface. This requires that the bot have an extensiveknowledge base (see knowledge representation) <strong>and</strong> agreater ability to underst<strong>and</strong> human language (see linguistics<strong>and</strong> computing). Small strides have been made inproviding online help systems that can deal with naturallanguage questions, as well as being able to interactivelyhelp users step through a particular tasks.Agents or bots have also suggested a new paradigm fororganizing programs. Currently, the most widely acceptedparadigm treats a program as a collection <strong>of</strong> objects withdefined capabilities that respond to “messages” asking forservices (see object-oriented programming). A move to“agent-oriented programming” would carry this evolution astep further. Such a program would not simply have objectsthat wait passively for requests. Rather, it would have multipleagents that are given ongoing tasks, priorities, or goals.One approach is to allow the agents to negotiate with oneanother or to put tasks “up for bid,” letting agents thathave the appropriate ability contract to perform the task.With each task having a certain amount <strong>of</strong> “money” (ultimatelyrepresenting resources) available, the negotiationmodel would ideally result in the most efficient utilization<strong>of</strong> resources.If Marvin Minsky’s (see Minsky, Marvin) “society <strong>of</strong>mind” theory is correct <strong>and</strong> the human brain actually containsmany cooperating “agents,” then it is possible thatsystems <strong>of</strong> competing <strong>and</strong>/or cooperating agents mighteventually allow for the emergence <strong>of</strong> a true artificial intelligence.In the future, agents are likely to become more capable<strong>of</strong> underst<strong>and</strong>ing <strong>and</strong> carrying out high-level requestswhile enjoying a great deal <strong>of</strong> autonomy. Some possibleapplication areas include data mining, marketing <strong>and</strong> surveyresearch, intelligent Web searching, security, <strong>and</strong> intelligencegathering. However, autonomy may cause problemsif agents get out <strong>of</strong> control or exhibit viruslike behavior.Further ReadingDenison, D. C. “Guess Who’s Smarter.” Boston Globe, May 26,2003, p. D1. Available online. URL: http://web.media.mit.edu/~lieber/Press/Globe-Common-Sense.html. Accessed August21, 2007.D’Inverno, Mark, <strong>and</strong> Michael Luck. Underst<strong>and</strong>ing Agent Systems.2nd ed. New York: Springer, 2004.Lieberman, H., et al. “Commonsense on the Go: Giving MobileApplications an Underst<strong>and</strong>ing <strong>of</strong> Everyday Life.” Availableonline. URL: http://agents.media.mit.edu/projects/mobile/BT-Commonsense_on_the_Go.pdf. Accessed August 21, 2007.


s<strong>of</strong>tware engineering 443Padgham, Lin, <strong>and</strong> Michael Winik<strong>of</strong>f. Developing Intelligent AgentSystems: A Practical Guide. New York: Wiley, 2004.S<strong>of</strong>tware Agents Group (MIT Media Lab). Available online. URL:http://agents.media.mit.edu/. Accessed August 21, 2007.s<strong>of</strong>tware engineeringBy the late 1960s, large computer programs (such as theoperating systems for mainframe computers) consisted<strong>of</strong> thous<strong>and</strong>s <strong>of</strong> lines <strong>of</strong> computer code. In what becameknown as “the s<strong>of</strong>tware crisis,” managers <strong>of</strong> s<strong>of</strong>tware developmentwere facing great uncertainty about both programdevelopment schedules <strong>and</strong> the reliability <strong>of</strong> the resultingprograms.Programming had started out in the 1940s as an <strong>of</strong>fshoot<strong>of</strong> mathematics, just as the building <strong>of</strong> computers wasan <strong>of</strong>fshoot <strong>of</strong> electrical or electronic engineering. Increasingly,however, programmers were searching for a new pr<strong>of</strong>essionalidentity. What paradigm was truly appropriate?Should programmers strive to be more like mathematicians,seeking to rigorously prove the correctness <strong>of</strong> their programs?On the other h<strong>and</strong>, many programmers thought <strong>of</strong>their work as a craft, performed using individual experience<strong>and</strong> intuition, <strong>and</strong> not easily subject to st<strong>and</strong>ardization.Between the two poles <strong>of</strong> mathematics (or science) <strong>and</strong>craft came another possibility: engineering.The concept <strong>of</strong> s<strong>of</strong>tware engineering proved to be attractive.Mathematics (<strong>and</strong> science in general) are usually carriedon without being immediately <strong>and</strong> directly applied tocreating a particular device or process. Outside <strong>of</strong> researchprograms, however, computer applications were written toperform real-world tasks (such as flight control) that havereal-world consequences. Thus, although the notation <strong>of</strong>a computer program resembles that <strong>of</strong> mathematics, theoperation <strong>of</strong> a program more nearly resembles that <strong>of</strong> complexmechanical systems created by engineers. By attachingthe label <strong>of</strong> engineering to what programmers do, advocates<strong>of</strong> s<strong>of</strong>tware engineering hoped to develop a body <strong>of</strong>practices <strong>and</strong> st<strong>and</strong>ards comparable in some way to thoseused in engineering. Some critics, however, believe thatthis paradigm is inappropriate, either because they believeone should strive for the greater rigor <strong>of</strong> science or out <strong>of</strong> apreference for individual craft over st<strong>and</strong>ardization.Programming PracticesOne <strong>of</strong> the most pervasive contributions to s<strong>of</strong>tware engineeringhas been in computer language design <strong>and</strong> codingpractices. At about the same time that the concept <strong>of</strong> s<strong>of</strong>twareengineering was being promulgated, computer scientistswere advocating better facilities for defining <strong>and</strong> structuringprograms (see structured programming). These includedwell-defined control structures (see branching statements<strong>and</strong> loop), use <strong>of</strong> built-in <strong>and</strong> user-defined kinds <strong>of</strong> data (seedata types), <strong>and</strong> the breaking <strong>of</strong> programs into more manageablemodules (see procedures <strong>and</strong> functions).The next paradigm came in the late 1970s <strong>and</strong> hadtaken hold by the late 1980s (see object-oriented programming).The ability to “hide” details <strong>of</strong> function withinobjects that mirrored those in the real world provided a furtherway to make complex programs easier to underst<strong>and</strong><strong>and</strong> maintain. The growing use <strong>of</strong> well-tested collections<strong>of</strong> procedures or objects (see library, program) has beenessential for keeping up with the growing complexity <strong>of</strong>application programs.S<strong>of</strong>tware engineers are also concerned with developingtools that will better manage the programming process <strong>and</strong>help ensure that st<strong>and</strong>ards are being followed (see programmingenvironment). The use <strong>of</strong> CASE (<strong>Computer</strong>-Aided S<strong>of</strong>tware Engineering) tools such as sophisticatedprogram editors, documentation generators, class diagrammers,<strong>and</strong> version control systems has also steadilyincreased. Today many <strong>of</strong> these tools are available even onmodest desktop computing environments (see case).The Program Development ProcessPerhaps the most important task for s<strong>of</strong>tware engineeringhas been seeking to define <strong>and</strong> improve the process bywhich programs are developed. In general, the overall stepsin developing a program are:The Waterfall, or Cascade, model sees s<strong>of</strong>tware development as a more linear process going through the requirements, design, implementation,integration <strong>and</strong> testing, <strong>and</strong> maintenance phases. The results <strong>of</strong> each phase cascade down into the next.


444 s<strong>of</strong>tware piracy <strong>and</strong> counterfeiting• Detailed specification <strong>of</strong> what the program will berequired to do. This can include developing a prototype<strong>and</strong> getting user’s reaction to it.• Creation <strong>of</strong> a suitable program architecture—algorithm(s) <strong>and</strong> the data types, objects, or other structuresneeded to implement them (see algorithm).• Coding—writing the program language statementsthat implement the structure.• Verification <strong>and</strong> testing <strong>of</strong> the program using realisticdata <strong>and</strong> field testing (see quality assurance,s<strong>of</strong>tware).• Maintenance, or the correction <strong>of</strong> errors <strong>and</strong> adding<strong>of</strong> requested minor features (short <strong>of</strong> creating a newversion <strong>of</strong> the program).There are a number <strong>of</strong> competing ways in which to viewthis s<strong>of</strong>tware development cycle. The “iterative” or “evolutionary”approach sees s<strong>of</strong>tware development as a linearprocess <strong>of</strong> progress through the above steps.The “spiral” approach, on the other h<strong>and</strong>, sees the steps<strong>of</strong> planning, risk analysis, development, <strong>and</strong> evaluationbeing applied repeatedly, until the risk analysis <strong>and</strong> evaluationphases result in a go/no go to finish the project.The most commonly used approach is called waterfall.In it the results (output) <strong>of</strong> each stage become the input<strong>of</strong> the next stage. This approach is easiest for scheduling(see project management s<strong>of</strong>tware), since each stage isstrictly dependent on its predecessor. However, some advocates<strong>of</strong> this approach have included the ability for a givenstage to feed back to the preceding stage if necessary. Forexample, a problem found in implementation (coding) mayrequire revisiting the preceding design phase.Developing S<strong>of</strong>tware Engineering St<strong>and</strong>ardsTwo organizations have become prominent in the effort topromote s<strong>of</strong>tware engineering. The federally funded S<strong>of</strong>twareEngineering Institute (SEI) at Carnegie Mellon Universitywas established in 1984. Its mission statement is to:1. Accelerate the introduction <strong>and</strong> widespread use<strong>of</strong> high-pay<strong>of</strong>f s<strong>of</strong>tware engineering practices <strong>and</strong>technology by identifying, evaluating, <strong>and</strong> maturingpromising or underused technology <strong>and</strong> practices.2. maintain a long-term competency in s<strong>of</strong>tware engineering<strong>and</strong> technology transition.3. Enable industry <strong>and</strong> government organizations tomake measured improvements in their s<strong>of</strong>tware engineeringpractices by working with them directly.4. Foster the adoption <strong>and</strong> sustained use <strong>of</strong> st<strong>and</strong>ards<strong>of</strong> excellence for s<strong>of</strong>tware engineering practice.Since 1993, the IEEE <strong>Computer</strong> Society <strong>and</strong> ACM SteeringCommittee for the Establishment <strong>of</strong> S<strong>of</strong>tware Engineeringas a Pr<strong>of</strong>ession has been pursuing a set <strong>of</strong> goals that arelargely complementary to those <strong>of</strong> the SEI:1. Adopt St<strong>and</strong>ard Definitions2. Define Required Body <strong>of</strong> Knowledge <strong>and</strong> RecommendedPractices (In electrical engineering, forThe Spiral Model visualizes s<strong>of</strong>tware development as a process <strong>of</strong>planning, risk analysis, development, <strong>and</strong> evaluation. The cyclerepeats until the project is developed to its full scope.example, electromagnetic theory is part <strong>of</strong> the body<strong>of</strong> knowledge while the National Electrical SafetyCode is a recommended practice.)3. Define Ethical St<strong>and</strong>ards4. Define Educational Curricula for (a) undergraduate,(b) graduate (MS), <strong>and</strong> (c) continuing education(for retraining <strong>and</strong> migration).Further ReadingBooch, Grady. “The Promise, the Limits, the Beauty <strong>of</strong> S<strong>of</strong>tware.”March 8, 2007. Lecture before the British <strong>Computer</strong> Society.Available online. URL: http://www.bcs.org/server.php?show=ConWebDoc.10367. Accessed August 21, 2007.Brooks, Frederick. The Mythical Man-Month: Essays on S<strong>of</strong>twareEngineering. 20th anniversary ed. Reading, Mass.: Addison-Wesley, 1995.Christensen, Mark J., <strong>and</strong> Richard H. Thayer. The Project Manager’sGuide to S<strong>of</strong>tware Engineering’s Best Practices. Los Alamitos,Calif.: IEEE <strong>Computer</strong> Society Press, 2001.McConnell, Steve. After the Gold Rush: Creating a True Pr<strong>of</strong>ession<strong>of</strong> S<strong>of</strong>tware Engineering. Redmond, Wash.: Micros<strong>of</strong>t Press,1999.S<strong>of</strong>tware Engineering Coordinating Committee (IEEE <strong>Computer</strong>Society <strong>and</strong> Association for Computing Machinery.) Availableonline. URL: http://www.acm.org/serving/se/homepage.html.Accessed August 21, 2007.Sommerville, Ian. S<strong>of</strong>tware Engineering. 8th ed. Boston: Addison-Wesley, 2006.s<strong>of</strong>tware piracy <strong>and</strong> counterfeitingAccording to surveys by analysis firm IDC, s<strong>of</strong>tware piracyaccounted for $7.3 billion in losses to the U.S. s<strong>of</strong>twareindustry in 2006, while reducing its expansion <strong>and</strong> thus jobcreation. (This is part <strong>of</strong> a larger picture in which, accordingto a Gallup study, 22 percent <strong>of</strong> adults in the United Statesreported having bought some sort <strong>of</strong> counterfeit product.) Abit <strong>of</strong> Web searching (or even reading spam in one’s in-box)suggests that thous<strong>and</strong>s <strong>of</strong> sites <strong>of</strong>fer “cracked” s<strong>of</strong>tware


Sony 445that has been stripped <strong>of</strong> copy protection. The BusinessS<strong>of</strong>tware Alliance estimates that 35 percent <strong>of</strong> new s<strong>of</strong>twareinstalled on PCs in 2006 was obtained illegally.Although piracy can involve many forms <strong>of</strong> distributionincluding Web sites, file-sharing services (see file-sharing<strong>and</strong> P2P networks), <strong>and</strong> even s<strong>of</strong>tware found on “bargain”PCs, the most visible form involves physical packages completewith box, CDs, <strong>and</strong> even holograms. These counterfeits,which range from crude to nearly indistinguishable,are <strong>of</strong>ten produced in full-scale factories. China has beena major source for many types <strong>of</strong> product counterfeiting,although the government has periodically cracked downon the practice. Counterfeiting has also flourished in suchunlikely locales as Bangladesh <strong>and</strong> Serbia.Industry groups also assert that the misuse <strong>of</strong> legitimatelypurchased s<strong>of</strong>tware (such as running more copiesthan have been licensed) is also a form <strong>of</strong> piracy. The potentiallegal liability is enormous, so companies make rigorouspolicies involving s<strong>of</strong>tware use <strong>and</strong> install monitoring systemsto detect or prevent licensing violations. (For theirpart, industry groups have <strong>of</strong>fered large cash rewards toemployees who reveal their company’s violations.)CountermeasuresAs perhaps the largest potential victim, Micros<strong>of</strong>t has beendiligent in fighting s<strong>of</strong>tware piracy. Recent versions <strong>of</strong> Windows,Office, <strong>and</strong> other products require that users “validate”the s<strong>of</strong>tware, associating the license number withdetails <strong>of</strong> the system’s hardware configuration. When theuser wants to download later updates or patches, the s<strong>of</strong>twarevalidation is checked. Failure <strong>of</strong> validation leads towarning messages <strong>and</strong> disabling <strong>of</strong> many features <strong>of</strong> thes<strong>of</strong>tware.Micros<strong>of</strong>t has also been active in suing alleged pirates,<strong>and</strong> educating consumers about the dangers <strong>of</strong> buyingpirated s<strong>of</strong>tware, which include the risk <strong>of</strong> exposure toviruses, spyware, <strong>and</strong> other harmful programs. An industryantipiracy group, the Business S<strong>of</strong>tware Alliance, has vigorouslyinvestigated corporate s<strong>of</strong>tware use (<strong>of</strong>ten with theaid <strong>of</strong> tipsters), finding violations <strong>and</strong> making companiespay fines <strong>and</strong> buy licenses in lieu <strong>of</strong> legal action.Meanwhile, growing pressure from the s<strong>of</strong>tware industryhas led in turn to U.S. pressure on China <strong>and</strong> othercountries to go after s<strong>of</strong>tware counterfeiting operations. Insummer 2007, a joint operation by the FBI <strong>and</strong> Chinese<strong>of</strong>ficials led to the seizure <strong>of</strong> more than $500 million incounterfeit s<strong>of</strong>tware.Critics <strong>of</strong> antipiracy efforts, such as the Electronic FrontierFoundation, argue that estimates <strong>of</strong> losses from piracyassume that every pirated copy <strong>of</strong> a program represents alost sale, ignoring the possibility that people (such as students)would not have the money to buy legitimate copies.They also point to what they consider to be heavy-h<strong>and</strong>edenforcement <strong>of</strong> copyright laws <strong>and</strong> point to proposed legislationsuch as the Inducing Infringement <strong>of</strong> CopyrightsAct, which they argue would in effect outlaw all file-sharingnetworks <strong>and</strong> subject people to prison sentences for minorinfractions.Further ReadingBusiness S<strong>of</strong>tware Alliance. Available online. URL: http://www.bsa.org. Accessed November 18, 2007.Donoghue, Andrew. “Counting the Cost <strong>of</strong> Counterfeiting.” CNetNews, May 22, 2006. Available online. URL: http://www.news.com/Counting-the-cost-<strong>of</strong>-counterfeiting/2100-7348_3-6074831.html?tag=item. Accessed November 18, 2007.Evers, Joris. “Fighting Micros<strong>of</strong>t’s Piracy Check.:” CNet News,June 20, 2006. Available online. URL: http://www.bsa.org.Accessed November 18, 2007.Hopkins, David, Lewis T. Kontnik, <strong>and</strong> Mark T. Turnage. CounterfeitingExposed: How to Protect Your Br<strong>and</strong> <strong>and</strong> Market Share.Hoboken, N.J.: Wiley, 2003.Plastow, Alan L. Modern Pirates: Protect Your Company from theS<strong>of</strong>tware Police. Garden City, N.Y.: Morgan James, 2006.“Protect Yourself from Piracy.” Micros<strong>of</strong>t Corporation. Availableonline. URL: http://www.micros<strong>of</strong>t.com/piracy/. AccessedNovember 18, 2007.SonySony Corporation (NYSE symbol: SNE) is the electronicsbusiness unit <strong>of</strong> Sony Group, a large Japanese multinationalcompany that plays a leading role in worldwide electronics,games, <strong>and</strong> entertainment media (movies <strong>and</strong> music), introducing<strong>and</strong> shaping many now-familiar st<strong>and</strong>ards.The company traces its origin to a radio repair shopstarted by Masaru Ibuka in a bombed-out building inTokyo in 1945. He was soon joined by Akio Morita, <strong>and</strong>the men started an electronics company whose name translatesin English to Tokyo Telecommunications EngineeringCorporation. They started by building tape recorders, butin the early 1950s the two entrepreneurs were among theearliest to realize the potential <strong>of</strong> the transistor, marketingtransistor radios starting in 1956. The devices essentiallyestablished the modern consumer electronics field, perfectlyfitting with a new music fad among American teenagers—rock<strong>and</strong> roll.With their marketing success, Ibuka <strong>and</strong> Morita realizedthat they needed a simple, catchy name that would appealto Americans <strong>and</strong> other non-Japanese customers. In 1958they came up with Sony. Although the name did not exist inany language (<strong>and</strong> thus could be made proprietary), “Sony”evokes English words such as “sound” <strong>and</strong> “sonic.” (It alsoresembled a Japanese slang phrase “sony-sony,” for somethinglike what we would call “geeks” or “nerds” today.)Influence on Media <strong>and</strong> ComputingOne <strong>of</strong> Sony’s most enduring impacts has been its establishment<strong>of</strong> st<strong>and</strong>ards for media <strong>and</strong> storage technologies. Thecompany was not always successful: A famous also-ran wasits Betamax videotape format, which lost out to VHS. However,the company’s successful consumer products haveincluded the following:• Trinitron tubes for televisions <strong>and</strong> computer monitors(no longer sold in the United States)• Walkman portable music player (1979)• 3.5″ floppy disk (1983), which flourished until thelater 1990s


446 sorting <strong>and</strong> searching• Discman CD-based music player (1984)• H<strong>and</strong>ycam camcorder <strong>and</strong> Video format (1985)• Digital audio tape, or DAT (1987)• Blu-ray optical discSony would also become a major player in the consolegaming market (see gaming console). In 1994 the companyintroduced the PlayStation, followed by later modelsin 2000 <strong>and</strong> 2006. Sony is also a significant seller <strong>of</strong> digitalcameras, including the Mavica floppy disc (later CD), sincediscontinued. The company also introduced its proprietary“memory stick” for storage.Stumbles <strong>and</strong> SuccessesIn 2005 a controversy erupted when it was revealed thatSony music CDs included as part <strong>of</strong> their copy protection(see also digital rights management) a “rootkit” that couldallow PCs to be compromised. Sony eventually agreed withthe Federal Trade Commission (FTC) to exchange theaffected CDs <strong>and</strong> to reimburse damage to consumers’ computersthat might have occurred while attempting to removethe s<strong>of</strong>tware. However, in 2007 a similar problem arose withthird-party s<strong>of</strong>tware packaged with Sony memory sticks.Around the same time, Sony had to recall laptop batteriesthat had serious flaws that could cause them to overheat<strong>and</strong> catch fire. In 2006 Sony <strong>and</strong> Dell agreed to replace over4.1 million laptop batteries—this was followed by 1.8 millionSony batteries in Apple laptops <strong>and</strong> 526,000 in IBM<strong>and</strong> Lenovo laptops.Despite these setbacks, Sony continues to be very successful,with $70.3 billion in revenue <strong>and</strong> a net income <strong>of</strong> $1.07billion in 2007, <strong>and</strong> about 163,000 employees worldwide.Further ReadingLuh, Shu Shin. Business the Sony Way: Secrets <strong>of</strong> the World’s MostInnovative Electronics Giant. New York: Wiley, 2003.Nathan, John. Sony. New York: Houghton Mifflin, 1999.Sony America. Available online. URL: http://www.sony.com/.Accessed November 18, 2007.Sony Playstation. Available online. URL: http://www.us.playstation.com/. Accessed November 18, 2007.sorting <strong>and</strong> searchingBecause they are so fundamental to maintaining databases,the operations <strong>of</strong> sorting (putting data records in order) <strong>and</strong>searching (finding a desired record) have received extensiveattention from computer scientists. A variety <strong>of</strong> different<strong>and</strong> quite interesting sorting methods have been devised(see algorithm).Any application that involves keeping track <strong>of</strong> a significantnumber <strong>of</strong> data records will have to keep them sortedin some way. After all, if records are simply inserted as theyarrive without any attempt at order, the time it will take t<strong>of</strong>ind a given record will, on the average, be the time it wouldtake to search through half the records in the database.While this might not matter for a few hundred records ona fast modern computer, it would be quite unacceptable fordatabases that might have millions <strong>of</strong> records.Sorting ConsiderationsWhile some sorting algorithms are better than others inalmost all cases, there are basic considerations for choosingan approach to sorting. The most obvious is how fastthe algorithm can sort the number <strong>of</strong> records the applicationis likely to encounter. However, it is also necessary toconsider whether the speed <strong>of</strong> the sort increases steadily(linearly) as the number <strong>of</strong> records increases, or it becomesproportionately worse. That is, if an algorithm can sort athous<strong>and</strong> records in two seconds, will it take 20 seconds for10,000 records, or perhaps five minutes?In most cases one assumes that the records to be sortedare in more or less r<strong>and</strong>om order, but what happens if therecords to be sorted are already partly sorted . . . or almostcompletely sorted? Some algorithms can take advantage <strong>of</strong>the partial sorting <strong>and</strong> complete the job far more quicklythan otherwise. Other algorithms may slow down drasticallyor even produce errors under those conditions.The range or variation in the key (the data field by whichrecords are being sorted) may also play a role. In some casesif the keys are close together, some algorithms may be ableto take advantage <strong>of</strong> that fact.Finally, the available computer resources must be considered.Today many desktop PCs have 1 GB (gigabyte) ormore <strong>of</strong> main memory (RAM), while servers or mainframesmay have several GBs. If the database is small enough that itcan be entirely kept in main memory, sorting is fast becauseany record can be accessed in the same amount <strong>of</strong> time atelectronic speeds. If, however, part <strong>of</strong> the database must bekept in secondary storage (such as hard drives), the sortingprogram will have to be designed so that it reads a number<strong>of</strong> records from the hard drive in a single reading operation,in order to avoid the overhead <strong>of</strong> repeated disk operations.Most likely the individual batches will be read fromthe disk, sorted in memory, written back to disk, <strong>and</strong> thenmerged to sort the whole database.Sorting AlgorithmsThere are numerous sorting algorithms ranging from theeasy-to-underst<strong>and</strong> to the commonly used to the exotic <strong>and</strong>quirky. Only the highlights can be covered here; see FurtherReading for sources for more detailed discussions.Selection SortThe simplest <strong>and</strong> least efficient kind <strong>of</strong> sort is called the selectionsort. Rather like a bridge player organizing a h<strong>and</strong>, theselection sort involves finding the record with the lowest key<strong>and</strong> swapping it with the first record, then scanning backthrough for the next lowest key <strong>and</strong> swapping it with the secondrecord, <strong>and</strong> so on until all the records are sorted. Whilethis uses memory very efficiently (since the records are sortedin place), it is not only slow, but also gets worse fast. That is,the time taken to sort n records is proportional to n 2 .The selection approach suffers because on each pass thesort determines not only the record with the lowest key but


sorting <strong>and</strong> searching 447the one with the next lowest key. However, that informationis not retained. The heapsort, invented by John Williams in1964, uses a binary tree to store a heap <strong>of</strong> sorted records(see tree <strong>and</strong> heap). Once the heap is built, the tree nodescan be used to store record numbers in a correspondingarray that will represent the sorted database. The heapsortis efficient because no records are physically moved, <strong>and</strong>the only memory needed is for the heap <strong>and</strong> array. The heapsortis generally considered the fastest <strong>and</strong> most reliablegeneral-purpose sorting algorithm, with a maximum runningtime <strong>of</strong> log n.Bubble SortThe bubble sort is based on making comparisons <strong>and</strong> swaps.It makes the most convenient comparison possible: eachrecord with its neighbor. The algorithm looks at the firsttwo records. If the second has a lower key than the first,the records are swapped. The procedure continues with thesecond <strong>and</strong> third records, then the third <strong>and</strong> fourth, <strong>and</strong>so on through all the records, swapping pairs <strong>of</strong> adjacentrecords whenever they are out <strong>of</strong> order. After one pass therecord with highest key will have “bubbled up to” the end<strong>of</strong> the list. The procedure is then repeated for all but the lastrecord until the two highest records are at the end, <strong>and</strong> soon until all the records are sorted. Unfortunately, the number<strong>of</strong> comparisons <strong>and</strong> swaps that must be made makes thebubble sort as slow as the selection sort.QuicksortThe quicksort improves on the basic bubble sort by firstchoosing a record with a key approximately midway betweenthe lowest <strong>and</strong> highest. This key is called the pivot. Therecords are then moved to the left <strong>of</strong> the pivot if they arelower than it, <strong>and</strong> to the right if higher (that is, the recordsare divided into two partitions). The process is then repeatedIn a bubble sort, pairs <strong>of</strong> adjacent numbers are compared <strong>and</strong>switched if they are out <strong>of</strong> order. Eventually the lowest values (suchas 2 in this case) will “bubble up” to the front <strong>of</strong> the list.The Quicksort uses a value called the pivot to partition the list intotwo smaller lists. This process is repeated until the list has beendivided <strong>and</strong> “conquered” (sorted).to split the left side with a new pivot, <strong>and</strong> then the right sidelikewise. This is continued until the partition size is one,<strong>and</strong> the records are now all sorted. (Because <strong>of</strong> this repeatedpartitioning, quicksort is usually implemented using a procedurethat calls itself repeatedly—see recursion.)Devised by C. A. R. Hoare in 1962, quicksort is muchfaster than the bubble sort because records are moved overgreater distances in a single operation rather than simplybeing exchanged with their neighbors. Assuming an appropriateinitial pivot value is chosen, running time is proportionalto the logarithm <strong>of</strong> n rather than to the square <strong>of</strong> n.The difference becomes dramatic as the size <strong>of</strong> the databaseincreases.Insertion SortThe bubble sort <strong>and</strong> quicksort are designed to work withrecords that are in r<strong>and</strong>om order. However, in many applicationsa database grows slowly over time. At any giventime the existing database is already sorted, so it hardlymakes sense to have to resort the whole database each timea new record is added.Instead, an insertion sort can be used. In its simplestform, the algorithm looks sequentially through the sortedrecords until it finds the first record whose key is higherthan that <strong>of</strong> the new record. The new record can then beinserted just before that record, much like the way a bridgeplayer might organize the cards in a h<strong>and</strong>. (Since insertinga record <strong>and</strong> physically moving all the higher recordsup in memory can be time-consuming, a linked list <strong>of</strong> keyvalues <strong>and</strong> associated record number is <strong>of</strong>ten used instead.(See list processing.) That way only the links need to bechanged rather than any records being moved.The insertion sort was improved by Donald L. Shell in1959. His “shellsort” takes a recursive approach (like thatin the quicksort), <strong>and</strong> applies the insertion sort procedureto successively smaller partitions.Another improvement on the insertion sort is the mergesort.As the name implies, this approach begins by creatingtwo small lists <strong>of</strong> sorted records (using a simple comparisonalgorithm), then merging the lists into longer lists. Mergingis accomplished by looking at the two keys on the top <strong>of</strong>two lists <strong>and</strong> taking whichever is lowest until the lists areexhausted. The merge sort also lends itself to a recursive


448 sound file formatsapproach, <strong>and</strong> it is comparable in speed <strong>and</strong> stability to theheapsort.Hash SortsAll <strong>of</strong> the sorting algorithms discussed so far rely uponsome form <strong>of</strong> comparison. However, it also possible to sortrecords by calculating their relative positions or distribution(see hashing). In its simplest form, an array can becreated whose range <strong>of</strong> indexes is equal to 1 to the maximumpossible key value. Each key is then stored in theindex position equal to its value (that is, a record with a key<strong>of</strong> 2314 would be stored in the array at position Array[2314].This procedure works well, but only if the keys are all integers,the range is small enough to fit in memory, <strong>and</strong> thereare no duplicate keys (since a duplicate would in effectoverwrite the record already stored in that position).A more practical approach is to use a formula (hashfunction) that should create a unique hash value for eachkey. The function must be chosen to minimize “collisions”where two keys end up with the same hash value, whichcreates the same problem as with duplicate keys. A hashsort is quite efficient within those constraints.SearchingOnce one has a database (sorted or not), the next questionis how to search for records in it. As with sorting, thereare a variety <strong>of</strong> approaches to searching. The simplest <strong>and</strong>least efficient is the linear search. Like the selection sort,the linear search simply goes through the database recordssequentially until it finds a matching key or reaches the endwithout a “hit.” If there is indeed a matching record, on theaverage it will be found in half the time needed to processthe whole database.In most real applications the database will have beensorted using one <strong>of</strong> the methods discussed earlier. Here, thebasic approach is to do a binary search. First the key in themiddle record in the database is examined. The key is comparedwith the search key. If the search key is smaller, thenany matching key must be in the first half <strong>of</strong> the database.Otherwise, it must be in the second half (unless, <strong>of</strong> course,it happens to be the matching key). The process is thenrepeated. That is, if the key is somewhere in the first half,that portion <strong>of</strong> the list is in turn split in half <strong>and</strong> its middlevalue is examined, <strong>and</strong> the comparison to the search key ismade. Thus, the area in which the matching key must befound is progressively cut in half until either the matchingkey is found or there are no more records to check. Because<strong>of</strong> the power <strong>of</strong> successive division, the binary search isvery quick, <strong>and</strong> doubling the size <strong>of</strong> the database meansadding only one more comparison on the average.Sometimes knowledge about the distribution <strong>of</strong> keysin the database can be used to improve even the binarysearch. For example, if keys are alphabetical <strong>and</strong> the searchkey begins with S, it is likely to be faster to pick a startingpoint near the end <strong>of</strong> the list rather than from the middle. Abinary tree (see tree) can be constructed from the keys in adatabase in order to analyze the most likely starting pointsfor a search.Finally, hashing (as previously discussed) can be usedto quickly calculate the expected location <strong>of</strong> the desiredrecord, provided there are no collisions.Further ReadingKnuth, Donald E. Art <strong>of</strong> <strong>Computer</strong> Programming, Volume 3: Searching<strong>and</strong> Sorting. 2nd ed. Upper Saddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 1998.Ploedereder, Erhard. “The Sort Algorithm Animator V1.0.” Availableonline. URL: http://www.iste.uni-stuttgart.de/ps/Ploedereder/sorter/sortanimation2.html.Accessed August 21, 2007.Sedgewick, Robert. Algorithms in C++: Parts 1–4: Fundamentals,Data Structures, Sorting, Searching. Upper Saddle River, N.J.:Addison-Wesley, 1998.Wilt, Nicholas. Classical Algorithms in C++: With New Approachesto Sorting, Searching, <strong>and</strong> Selection. New York: Wiley, 1995.sound file formatsThere are a number <strong>of</strong> ways that sound can be sampled,stored, or generated digitally (see music, computer). Herewe will look at some <strong>of</strong> the most popular sound file formats.WAVThe WAV (wave) file format is specific to Micros<strong>of</strong>t Windows.It essentially stores the raw sample data that representsthe digitized audio content, including informationabout the sampling rate (which in turns affects the soundquality). Since WAV files are not compressed, they can consumeconsiderable disk space.AIFFAIFF st<strong>and</strong>s for Audio Interchange File Format, <strong>and</strong> is specificto the Apple Macintosh <strong>and</strong> to Silicon Graphics (SGI)platforms. Like WAV, it stores actual sound sample data. Avariant, AIFF-C, can store compressed sound.AUThe AU (audio) file format was developed by Sun Microsystems<strong>and</strong> is used mainly on UNIX systems, <strong>and</strong> also in Javaprogramming.MIDIMIDI st<strong>and</strong>s for Musical Instrument Digital Interface.Unlike most other sound formats, MIDI files don’t representsampled sound data. Rather, they represent virtual musicalinstruments that synthesize sound according to complexalgorithms that attempt to mirror the acoustic characteristics<strong>of</strong> real pianos, guitars, or other instruments. SinceMIDI is like a “score” for the virtual instruments ratherthan storing the sounds, it is much more compact thansampled sound formats. MIDI is generally used for musiccomposition rather than casual listening.MP3MP3 is actually a component <strong>of</strong> the MPEG (Moving PictureExpert Group) multimedia st<strong>and</strong>ard, <strong>and</strong> st<strong>and</strong>s for MPEG-1 Audio Layer 3. It is now the most popular sound format,using compression to provide a balance <strong>of</strong> sound quality


space exploration <strong>and</strong> computers 449<strong>and</strong> compactness that is comparable to that <strong>of</strong> st<strong>and</strong>ardaudio CDs <strong>and</strong> suitable for most listeners. The compressionalgorithm relies upon psychoacoustics (the study <strong>of</strong>how people perceive the components <strong>of</strong> sound) to identifyfrequencies that humans can’t hear, <strong>and</strong> thus may be safelydiscarded. The digitized sound on a CD is compressed upto 1/12 or less <strong>of</strong> its original size, so a 630 MB CD becomesabout 50 MB in MP3 files.Since most PC users now have hard drives rated in thehundreds <strong>of</strong> gigabytes (GB), it is easy to store an extensivemusic library in MP3 form. Most PCs now come withs<strong>of</strong>tware that can play MP3 files (such as Windows MediaPlayer), <strong>and</strong> there are also free <strong>and</strong> shareware programsfrom a variety <strong>of</strong> sources, as well as plug-ins for playingsound files directly from the Web browser.Since MP3 is much more compact than “raw” CD format,users with inexpensive CD-RW drives can “burn”large amounts <strong>of</strong> music in MP3 form onto a single CD. Thisis typically done using s<strong>of</strong>tware that “rips” the raw tracksfrom an audio CD <strong>and</strong> converts them to an MP3 file, whichcan then be stored on the PC’s hard drive.In recent years portable media players such as the iPodhave become ubiquitous (see music <strong>and</strong> video players,digital). MP3 is the most popular format for music that isnot digitally protected from copying (see digital rightsmanagement). However, because MP3 involves a number<strong>of</strong> patents, it is not included by default in Linux distributions,which instead provide Ogg, a “container” that can beused for a variety <strong>of</strong> formats (see codecs).Further ReadingAudio File Types. Available online. URL: http://www.fileinfo.net/filetypes/audio. Accessed August 22, 2007.Johnson, Dave, <strong>and</strong> Rick Broida. How to Do Everything with MP3<strong>and</strong> Digital Music. New York: McGraw Hill Pr<strong>of</strong>essional, 2001.Young, Robert. The MIDI Files. 2nd ed. New York: Prentice Hall,2001.space exploration <strong>and</strong> computersIt might have been barely possible to put a satellite (or person)in orbit without the use <strong>of</strong> computers, but any moreextensive exploration <strong>of</strong> space requires many types <strong>of</strong> computerapplications.Human Space ExplorationFlying to the Moon required precisely calculated <strong>and</strong> controlled“burns” to inject the Apollo spacecraft from orbitinto its arcing trajectory to the Moon. The detachableLunar Excursion Module (LEM) also had a computer onboard (roughly comparable in power to something foundin today’s programmable calculators). Although the pilotcontrolled the final l<strong>and</strong>ing manually, the computer interpretedradar data to fix the l<strong>and</strong>er’s position, monitored fuelconsumption, <strong>and</strong> provided other key data.The Space Shuttle, the most complex vehicle ever builtby human beings, has five onboard computer systems thatcontrol flight maneuvers (including rendezvous <strong>and</strong> dockingoperations), monitor <strong>and</strong> control environmental conditions,keep track <strong>of</strong> fuel, batteries, life support, <strong>and</strong> otherconsumables, <strong>and</strong> provide many other functions to supportthe crew’s tasks <strong>and</strong> experiments.Automated Space ExplorationThus far, human explorers have flown no farther than theMoon. However, in the last 40 years an extensive survey <strong>of</strong>most <strong>of</strong> the solar system has been carried out by robot (thatis to say, computerized) probes <strong>and</strong> l<strong>and</strong>ers. These probeshave l<strong>and</strong>ed on Mars <strong>and</strong> visited every planet except Pluto,as well as making close approaches to asteroids <strong>and</strong> comets.The control computer aboard a space probe has severaljobs. It must keep the probe oriented in such a waythat its solar panels can receive energy from the Sun, aswell as keeping an antenna pointed toward Earth so it canreceive comm<strong>and</strong>s <strong>and</strong> return data from the probe’s scientificinstruments.Starting with Voyager 2 (a probe that is still returningdata from more than 7 billion miles from Earth), space probecomputers have been more autonomous, able to make attitudecorrections <strong>and</strong> course corrections as needed. The onboardcomputer can even be reprogrammed with new instructionssent from Earth. Space probes have returned incrediblydetailed pictures <strong>of</strong> the surface <strong>of</strong> the Moon <strong>and</strong> planets, preparingthe way for human missions or robot l<strong>and</strong>ers.L<strong>and</strong>ers reach a fixed point on a planetary surface <strong>and</strong>transmit photographs, temperature, radiation, <strong>and</strong> otherreadings. Probes can survive only for minutes on the hostilesurface <strong>of</strong> Venus, but have functioned for many monthson Mars. In a remarkably ambitious mission beginning in1976, the two Viking Mars l<strong>and</strong>ers were able to carry outexperiments on soil samples in an unsuccessful attempt t<strong>of</strong>ind evidence <strong>of</strong> life while a third probe mapped the planet’ssurface from orbit. Besides demonstrating remarkable reliability(Viking 2 was still operating in 1982 when it wasaccidentally turned <strong>of</strong>f by a remote comm<strong>and</strong>), the missionalso demonstrated the ability to coordinate surface <strong>and</strong>orbital exploration.In July 1997, the Mars Pathfinder probe l<strong>and</strong>ed on the redplanet, rolling <strong>and</strong> bouncing to a stop inside a sort <strong>of</strong> giantairbag. After deflating, the Pathfinder base station deployedthe Sojourner mobile robot. This vehicle (see robotics)was controlled by operators on Earth, but because <strong>of</strong> the10–15-minute time delay in signals arriving from Earth,the Sojourner had some autonomous ability to avoid collisionsor other hazards. The onboard computer also had tocompress <strong>and</strong> transmit images <strong>and</strong> other data. The followonMars Exploration Rover (MER) program began in 2003with the launching <strong>of</strong> two larger surface rovers dubbedSpirit <strong>and</strong> Opportunity. L<strong>and</strong>ing in January 2004, the rovershave shown remarkable durability, still functioning in early2008, far beyond their original three-month mission life.The need to build compact computers <strong>and</strong> other electronicsfor space exploration helped spur the development <strong>of</strong> techniquesnow found in garden-variety consumer electronics.Space computers are also important for demonstrating thereliability <strong>and</strong> robustness that is necessary for applicationson Earth (such as in the military). Space electronics must beshielded <strong>and</strong> “hardened” to withst<strong>and</strong> the intense solar radiation,extreme changes in temperature, <strong>and</strong> electromagnetic


450 Spafford, Eugene H.<strong>and</strong> computer science from the State University <strong>of</strong> New Yorkat Brockport. He then earned M.S. (1981) <strong>and</strong> Ph.D. (1986)degrees at the Georgia Institute <strong>of</strong> <strong>Technology</strong>, with his graduatework focused on distributed operating systems.How do scientists look at images that are sent back from anotherplanet <strong>and</strong> determine what is interesting <strong>and</strong> needs further investigation?Mars rover scientists do this very task during surfacemission operations. Each day, rovers send to Earth new imagesthat the science team must examine. These images allow the scientiststo think <strong>of</strong> hypotheses that relate to help the science teamdecide what to study <strong>and</strong> determine what experiments they willconduct. (NASA photo)fluxes or surges. Redundancy can be used where possible, butweight is always at a high premium. With the exception <strong>of</strong>certain satellites <strong>and</strong> the Hubble Space Telescope, space computerscannot receive on-site service visits.Because <strong>of</strong> the high cost <strong>and</strong> risk <strong>of</strong> maintaining humanlife for long periods in space, it is likely that robotic probes<strong>and</strong> rovers will remain the main means for space explorationin the early 21st century.Further ReadingFurmiss, Tim. A History <strong>of</strong> Space Exploration <strong>and</strong> Its Future. London:Mercury Books, 2006.Hall, Eldon C. Journey to the Moon: The History <strong>of</strong> the Apollo Guidance<strong>Computer</strong>. Reston, Va.: American Institute <strong>of</strong> Aeronautics,1996.Mars Exploration Rover Mission (Jet Propulsion Laboratory).Available online. URL: http://marsrovers.jpl.nasa.gov/home/index.html. Accessed August 22, 2007.Mars Pathfinder [archive]. Available online. URL: http://mpfwww.jpl.nasa.gov/MPF/index1.html. Accessed August 22, 2007.Matl<strong>of</strong>f, Gregory L. Deep Space Probes: To the Outer Solar System<strong>and</strong> Beyond. 2nd ed. New York: Springer, 2005.Squyres, Steve. Roving Mars: Spirit, Opportunity, <strong>and</strong> the Exploration<strong>of</strong> the Red Planet. New York: Hyperion, 2005.Spafford, Eugene H.(1956– )American<strong>Computer</strong> ScientistEugene (Gene) H. Spafford is a computer scientist <strong>and</strong> pioneerin network security. Spafford earned a B.A. in mathematicsUsenet <strong>and</strong> BeyondSpafford played a key role in the development <strong>of</strong> the Usenet(see netnews <strong>and</strong> newsgroups), including the backbones<strong>and</strong> connections that provided for the efficient distribution<strong>of</strong> a growing volume <strong>of</strong> news posts, as well as the systemfor naming newsgroups. He also created basic introductorydocumentation to help new users participate in the systemresponsibly.On the night <strong>of</strong> November 2, 1988, sites throughoutthe Internet began to shut down. The culprit was a wormprogram (see computer virus) that Spafford analyzed ina technical paper. The worm would unfortunately only bethe first <strong>of</strong> a legion <strong>of</strong> worms <strong>and</strong> viruses that would infectthe network, <strong>and</strong> Spafford would apply considerable effortto helping cope with them. Since then Spafford has beena computer security consultant <strong>and</strong> adviser for numerousorganizations including Micros<strong>of</strong>t, Intel, the U.S. Air Force,the National Security Agency, the FBI, <strong>and</strong> the National <strong>Science</strong>Foundation.Spafford has been on the faculty at Purdue Universitysince 1987. In 2007, he was appointed an adjunct pr<strong>of</strong>essor<strong>of</strong> computer science at the University <strong>of</strong> Texas at San Antonio.He is also executive director <strong>of</strong> the university’s newInstitute for Information Assurance.Spafford has served on the boards <strong>of</strong> a number <strong>of</strong> pr<strong>of</strong>essionalsocieties, including the <strong>Computer</strong> ResearchAssociation <strong>and</strong> the U.S. Public Policy Committee <strong>of</strong> theAssociation for Computing Machinery (ACM). He has writtenseveral books <strong>and</strong> hundreds <strong>of</strong> papers on UNIX <strong>and</strong>Internet security <strong>and</strong> related ethical issues. Spafford becamean ACM Fellow in 1997 <strong>and</strong> a Fellow <strong>of</strong> the American Associationfor the Advancement <strong>of</strong> <strong>Science</strong> in 1999. He wasinducted as a Fellow <strong>of</strong> the Institute for Electrical <strong>and</strong> ElectronicsEngineers (IEEE) in 2000 <strong>and</strong> received its TechnicalAchievement Award in 2006. In 2007 Spafford received theACM President’ Award.Further ReadingGarfinkel, Simson L., <strong>and</strong> Eugene H. Spafford. Practical UNIXSecurity. Sebastapol, Calif.: O’Reilly, 2003.Rospach, Chuq von, with editing additions by Eugene H. Spafford.“A Primer on How to Work with the Usenet Community.”Available online. URL: http://www.faqs.org/faqs/usenet/primer/part1/. Accessed November 18, 2007.Spafford, Eugene H. “The Internet Worm: Crisis <strong>and</strong> Aftermath.”Communications <strong>of</strong> the ACM 32 (June 1989): 678–687. Availableonline. URL: http://vx.netlux.org/lib/aes01.html. AccessedNovember 18, 2007.Spaf’s Home Page. Purdue University. Available online. URL: http://homes.cerias.purdue.edu/~spaf/. Accessed November 18, 2007.spamIn a well-known 1970 sketch by the British comedy troupeMonty Python, a customer is trying to order a breakfast item


speech recognition <strong>and</strong> synthesis 451that does not include Spam (the popular luncheon meat). Agroup <strong>of</strong> Vikings then keeps interrupting the conversationby loudly singing “Spam, lovely Spam, wonderful Spam. . . .”Segue to the mid-1990s when people (including a legal firm)began automatically posting hundreds <strong>of</strong> identical messageson Usenet (see netnews <strong>and</strong> newsgroups) groups; thesketch came to mind <strong>and</strong> the postings were quickly dubbed“spam”—although the term may actually date back to the1980s. As news <strong>of</strong> the spam grew, some administrators <strong>and</strong>users used “cancelbots” to automatically delete the <strong>of</strong>fendingmessages; others opposed this as censorship, <strong>and</strong> manynewsgroups became effectively unreadable.While spam can appear in any communications medium(including chat, instant messaging, <strong>and</strong> even blogs), themost prevalent type is e-mail spam, which costs U.S. businessesbillions <strong>of</strong> dollars a year in processing expenditures,lost time, <strong>and</strong> damage caused by malicious s<strong>of</strong>tware (malware)for which spam can be either a delivery vehicle or aninducement. In 2007 an estimated 90 billion spam messageswere sent each day.The fundamental driving force <strong>of</strong> spam is the fact that,given one has Internet access, sending e-mail costs essentiallynothing, no matter how many messages are sent. Thuseven if only a tiny number <strong>of</strong> people respond to a spamsolicitation (such as for sexual-enhancement products), theresult is almost pure pr<strong>of</strong>it for the spammer.Besides directly making fraudulent solicitations forproducts that are ineffective, counterfeit, or nonexistent,spam carries two other dangers: inducements to click tovisit fake Web sites (see phishing <strong>and</strong> spo<strong>of</strong>ing) <strong>and</strong>attachments containing viruses or other dangerous s<strong>of</strong>tware(see computer virus <strong>and</strong> spyware <strong>and</strong> adware).Fighting SpamMuch spam is spread by first compromising thous<strong>and</strong>s <strong>of</strong>systems (via viruses) <strong>and</strong> planting in them “bots,” or s<strong>of</strong>twarethat can be programmed to mail spam. The controllers<strong>of</strong> “botnets” can then sell their service to spammerswho want to get their message distributed widely. Thespammers can also buy lists <strong>of</strong> e-mail addresses that havebeen “harvested” from postings, poorly secured Web sites,<strong>and</strong> so on.Ways to stop the spread <strong>of</strong> spam include the following:• e-mail filtering s<strong>of</strong>tware, using a combination <strong>of</strong> textanalysis by keyword or statistical correlation (seeBayesian analysis) <strong>and</strong> lists <strong>of</strong> Internet locations(domains) associated with spamming; filtering can bedone both by service providers <strong>and</strong> individual users,or collaboratively• tightening the technical requirements for messages tobe accepted by mail servers (much spam has poorlyformatted headers)• improving techniques for blocking the viruses usedby spammers to set up their bots—see computervirus <strong>and</strong> firewall• attempting to shut down the infrastructure that supportsspam operations, such as hosts who allow bulke-mail, <strong>and</strong> sellers <strong>of</strong> spamming s<strong>of</strong>tware <strong>and</strong> illicitlygathered address listsSpam is illegal in a number <strong>of</strong> respects. Spamming is againstthe “acceptable use policy” <strong>of</strong> most Internet Service Providers(ISP), though willingness to enforce these rules varies.In 2003 Congress passed the CAN-SPAM act, whichbans bulk e-mail that contains misleading subject or headerlines, but has been criticized for being weak <strong>and</strong> for preemptingmore stringent state laws. (The law also requiresthat messages include an opt-out provision, but spammerssimply use this to verify that the e-mail address is valid.)Although filtering s<strong>of</strong>tware <strong>and</strong> other measures canreduce the amount <strong>of</strong> spam seen by the average user, spammers<strong>and</strong> spam-fighters continue their relentless battle witheach countermeasure, leading to altering the spam to makeit more likely to pass through. In the long run probablyonly a Net-wide authentication <strong>of</strong> all e-mail senders <strong>and</strong>/ora small per-message e-mail fee could effectively banish thescourge <strong>of</strong> spam.Further ReadingBoutin, Paul. “Can E-mail Be Saved?” InfoWorld, April 16, 2004.Available online. URL: http://www.infoworld.com/article/04/04/16/16FEfuturemail_1.html. Accessed November 18, 2007.Garretson, Cara. “12 Spam Research Projects That Might Make aDifference.” Network World, November 2007. Available online.URL: http://www.networkworld.com/news/2007/112007-spamresearch.html.Accessed April 28, 2008.Gregory, Peter H., <strong>and</strong> Michael A. Simon. Blocking Spam & Spywarefor Dummies. Hoboken, N.J.: Wiley, 2005.Lee, Nicole. “How to Fight Those Surging Splogs” [spam blogs].Wired News, October 27, 2005. Available online. URL: http://www.wired.com/culture/lifestyle/news/2005/10/69380.Accessed November 18, 2007.Mark<strong>of</strong>f, John. “Attack <strong>of</strong> the Zombie <strong>Computer</strong>s Is a GrowingThreat.” New York Times, January 7, 2007. Available online.URL: http://www.nytimes.com/2007/01/07/technology/07net.html. Accessed November 18, 2007.McWilliams, Brian S. Spam Kings: The Real Story behind the High-Rolling Hucksters Pushing Porn, Pills, <strong>and</strong> %*@)# Enlargements.Sebastapol, Calif.: O’Reilly, 2004.Naughton, Philippe. “Arrest <strong>of</strong> ‘Spam King’ No Relief for Inboxes.”Times (London) online, June 1, 2007. Available online. URL:http://technology.timesonline.co.uk/tol/news/tech_<strong>and</strong>_web/article1870548.ece. Accessed November 18, 2007.Spammer-X. Inside the Spam Cartel: Trade Secrets from the DarkSide. Rockl<strong>and</strong>, Mass.: Syngress, 2004.Zeller, Tom. “The Fight Against V1@gra (<strong>and</strong> Other Spam).” NewYork Times, May 21, 2006. Available online. URL: http://www.nytimes.com/2006/05/21/business/yourmoney/21spam.html?_r=1&oref=slogin. Accessed November 18, 2007.speech recognition <strong>and</strong> synthesisThe possibility that computers could use spoken languageentered popular culture with Hal 2001, the self-aware talkingcomputer in the film 2001: A Space Odyssey. On a practicallevel, the ability <strong>of</strong> users to communicate using speechrather than a keyboard would bring many advantages, suchas mobile, h<strong>and</strong>s-free computing <strong>and</strong> greater independencefor disabled persons. Considerable progress has been madein this technology since Hal “talked” in 1968.


452 spreadsheetSpeech recognition begins with digitizing the speechsounds <strong>and</strong> converting them into a st<strong>and</strong>ard, compact representation.The analysis can be based on matching the inputsounds to one <strong>of</strong> about 200 “spectral equivalence classes”from which the representation can be created. Alternatively,algorithms can use data based on modeling how the humanvocal tract produces speech sounds, <strong>and</strong> extract key featuresthat then become the speech representation. Neuralnetworks can also be “trained” to recognize speech features(see neural network). The latter two approachesare potentially more flexible but also considerably more difficult,<strong>and</strong> tend to be used in research rather than in commercialvoice recognition systems.Whichever form <strong>of</strong> representation is used, it must thenbe matched to the characteristics <strong>of</strong> particular words orphonemes, usually with the aid <strong>of</strong> sophisticated statistical<strong>and</strong> time-fitting techniques. The simplest systems work ona word level, which may suffice if the system is restrictedto a simple vocabulary <strong>and</strong> the user speaks slowly <strong>and</strong> distinctlyenough. Such systems usually require that the user“train” the system by speaking selected words <strong>and</strong> phrases.The user can then control the system with a set <strong>of</strong> voicecomm<strong>and</strong>s.Creating a system that can h<strong>and</strong>le the full range <strong>of</strong> languageis much more difficult. This kind <strong>of</strong> system breaksthe language down into phonemes, its basic sound constituents(English has about 40 phonemes). The system includesa stored dictionary <strong>of</strong> phoneme sequences <strong>and</strong> the correspondingwords. However, “underst<strong>and</strong>ing” which wordsare being spoken is more than a matter <strong>of</strong> matching phonemesequences to a dictionary. For one thing, the sound <strong>of</strong>the first or last phoneme in a word can change dependingon the phoneme in an adjacent word.Once the speech has been recognized, it can be convertedto character data (see characters <strong>and</strong> strings)<strong>and</strong> treated as though the text had been entered from thekeyboard. This means, for example, that a user could dictatetext to be placed in a word processor document as wellas using voice comm<strong>and</strong>s to perform tasks such as formattingtext. (Special words can be used to introduce <strong>and</strong> endcomm<strong>and</strong>s.)Voice control <strong>and</strong> dictation have been <strong>of</strong>fered commerciallyby such companies as Dragon Systems <strong>and</strong> Kurzweil.Micros<strong>of</strong>t now includes speech recognition <strong>and</strong> synthesisfacilities in the latest version <strong>of</strong> its popular <strong>of</strong>fice suite,Office 2007.Voice SynthesisThe other part <strong>of</strong> the speech equation is the ability to havethe computer turn character codes into spoken words. Themost primitive approach is to digitally record appropriatespoken words or phrases, which can then be replayedwhen speech is desired. Naturally, what is spoken is limitedto what is available in the recorded library, although thewords <strong>and</strong> phrases can be combined in various ways. Sincethe combinations lack the natural transitions that speakersuse, the result sounds “mechanical.” Common applicationsinclude automated announcements in train stations or inprompts for voicemail systems.To produce a synthesizer that can “speak” any naturallanguage text, the system must have a dictionary that givesthe phonemes found in each word. The 40 or so differentphonemes can then be digitally recorded <strong>and</strong> the systemwould then identify the phonemes in each word <strong>and</strong> playthem to create speech. While this solves the limited vocabularyproblem, the synthesized speech is rather unnatural<strong>and</strong> hard to underst<strong>and</strong>. This is because, as noted earlier,the way phonemes are sounded changes under the influence<strong>of</strong> adjacent phonemes, <strong>and</strong> these nuances are lackingin a simple phoneme playback.More sophisticated voice synthesis systems record naturalspeech <strong>and</strong> identify all the possible combinations <strong>of</strong> half<strong>of</strong> a phoneme <strong>and</strong> half <strong>of</strong> an adjacent phoneme. That way thepossible transition sounds are also recorded, <strong>and</strong> the resultingspeech sounds considerably more natural. The drawbackis that more memory <strong>and</strong> processing power are required, butthese commodities are becoming increasingly cheaper.Speech recognition <strong>and</strong> synthesis technology has madeonly slow inroads into the computing mainstream, suchas <strong>of</strong>fice applications. Given the costs <strong>of</strong> hardware, s<strong>of</strong>tware,<strong>and</strong> training, the keyboard remains more productive<strong>and</strong> cost-effective for most applications. However, voicetechnology does have a growing number <strong>of</strong> specialty uses,including security <strong>and</strong> access systems, speech synthesis fordisabled persons who cannot see or speak, <strong>and</strong> enablingservice robots to interact with people in the environment.Speech technology has also been a long-st<strong>and</strong>ing topic inartificial intelligence <strong>and</strong> robotics research.Further ReadingBrown, Robert. “Exploring New Speech Recognition <strong>and</strong> SynthesisAPIs in Windows Vista.” MSDN Magazine. Available online.URL: http://msdn.micros<strong>of</strong>t.com/msdnmag/issues/06/01/speechinWindowsVista/. Accessed August 22, 2007.Holmes, John, <strong>and</strong> Wendy Holmes. Speech Synthesis <strong>and</strong> Recognition.2nd ed. Boca Raton, Fla.: CRC Press, 2001.Huang, Xuedong, Alex Acero, <strong>and</strong> Hsiao-Wuen Hon. Spoken LanguageProcessing: A Guide to Theory, Algorithm, <strong>and</strong> SystemDevelopment. Upper Saddle River, N.J.: Prentice Hall, 2001.Jurafsky, Daniel, <strong>and</strong> James H. Martin. Speech <strong>and</strong> Language Processing:An Introduction to Natural Language Processing, ComputationalLinguistics <strong>and</strong> Speech Recognition. Upper SaddleRiver, N.J.: Prentice Hall, 2000.Speech <strong>Technology</strong> (Google Directory). Available online. URL:http://www.google.com/Top/<strong>Computer</strong>s/Speech_<strong>Technology</strong>/.Accessed August 22, 2007.Speech <strong>Technology</strong> Research, Development, <strong>and</strong> Deployment(Carnegie Mellon University). Available online. URL: http://www.speech.cs.cmu.edu/. Accessed August 22, 2007.spreadsheetWith the possible exception <strong>of</strong> word processing, no personalcomputer application caught the imagination <strong>of</strong> thebusiness world as quickly as did the spreadsheet, whichfirst appeared as Daniel Bricklin’s VisiCalc in 1979. Visi-Calc quickly became the “killer app”—the application thatcould justify corporate purchases <strong>of</strong> Apple II computers.When the IBM PC began to dominate the <strong>of</strong>fice computingindustry in the mid-1980s, it had a new spreadsheet, Lotus1-2-3. By the end <strong>of</strong> the decade, however, Micros<strong>of</strong>t’s Excel


spyware <strong>and</strong> adware 453spreadsheet had come to the forefront, running on Micros<strong>of</strong>tWindows. It remains the market leader today.How Spreadsheets WorkA spreadsheet is basically a tabular arrangement <strong>of</strong> rows<strong>and</strong> columns that define many individual cells. Typically,the columns are lettered (A to Z, then AA, AB, <strong>and</strong> so on)while the rows are numbered. A particular cell is referencedusing its column <strong>and</strong> row coordinates; thus A1 is the cell inthe upper left corner <strong>of</strong> the spreadsheet.Any cell can contain a numeric value, a formula, or a label(such as for giving a title to the spreadsheet or some section <strong>of</strong>it). Formulas reference the values in other cell locations. Forexample, if the formula =SUM (A1:B1) is inserted into cell C1,when the spreadsheet is calculated the sum <strong>of</strong> the contents <strong>of</strong>cells A1 <strong>and</strong> B1 will be inserted into C1. Modern spreadsheetslet users select from a variety <strong>of</strong> functions (predefined formulas)for such things as interest or rates <strong>of</strong> return. Instead <strong>of</strong>having to type the individual coordinates <strong>of</strong> cells to be usedin a formula, he or she can simply click on or drag across thecells to select them. Formulas can also include conditionalevaluation (similar to the If statements found in programminglanguages—see branching statements).Spreadsheets provide a variety <strong>of</strong> “housekeeping” comm<strong>and</strong>sthat can be used for functions such as copying ormoving a range <strong>of</strong> cells or “cloning” a cell’s value into arange <strong>of</strong> cells. Large spreadsheets can be broken down intomultiple linked spreadsheets to make it easier to underst<strong>and</strong><strong>and</strong> maintain.Macros <strong>of</strong>fer a powerful way to simplify <strong>and</strong> automatespreadsheet operations. A macro is essentially a set <strong>of</strong> programmedinstructions to be carried out by the spreadsheet(see macro). One use <strong>of</strong> macros is to carry out complicatedprocedures by taking advantage <strong>of</strong> features similarto those found in programming languages such as VisualBasic. Macros can also be used to automate data entry intothe spreadsheet <strong>and</strong> validate the data. Depending on theircomplexity, macros can either be typed in as a series <strong>of</strong>statements or recorded as the user takes appropriate menu<strong>and</strong> mouse actions. “Solver” utilities can also simplify theprocess <strong>of</strong> tweaking input variables in order to achieve adefined goal. Although spreadsheets can certainly solvemany types <strong>of</strong> algebraic equations, symbolic manipulationis better h<strong>and</strong>led by programs such as Mathematica (seemathematics s<strong>of</strong>tware).Besides having extensive graphics <strong>and</strong> charting capabilities,modern spreadsheets are <strong>of</strong>ten part <strong>of</strong> integrated<strong>of</strong>fice programs (see application suite). Thus, a Micros<strong>of</strong>tExcel spreadsheet could obtain data from an Access database<strong>and</strong> create charts suitable for Web pages or PowerPointpresentations.Further ReadingBalakrishnan, Nagraj, Barry Render, <strong>and</strong> Ralph M. Stair, Jr. ManagerialDecision Modeling with Spreadsheets. 2nd ed. UpperSaddle River, N.J.: Prentice Hall, 2006.Google Docs <strong>and</strong> Spreadsheets. Available online. URL: http://docs.google.com. Accessed August 22, 2007.Harvey, Greg. Micros<strong>of</strong>t Office Excel 2007 for Dummies. Hoboken,N.J.: Wiley, 2007.Hayden, Yvonne. So You Need to Make a Spreadsheet: A Quick Startto Micros<strong>of</strong>t Excel 2003. Ch<strong>and</strong>ler, Ariz.: Copadego Publishing,2006.Jelen, Bill, ed. The Spreadsheet at 25: The 25 Year Evolution <strong>of</strong> theInvention that Changed the World. Uniontown, Ohio: HolyMacro! Books, 2005.Neuwirth, Ertich. “Spreadsheets, Mathematics, <strong>Science</strong>, <strong>and</strong>Statistics Education.” Available online. URL: http://sunsite.univie.ac.at/Spreadsite/. Accessed August 22, 2007.spyware <strong>and</strong> adwareSpyware <strong>and</strong> adware are two pervasive threats to computerusers. Both are programs that are installed more or lesssurreptitiously, <strong>of</strong>ten accompanying an attractive-looking“free” s<strong>of</strong>tware package or media download. Depending onhow widely it is defined, as many as eight out <strong>of</strong> 10 PCsmay be infected by some sort <strong>of</strong> spyware. Signs <strong>of</strong> infectioncan include the system slowing down or periodically freezing,Web browsers that fail to display the expected homepage or search results, <strong>and</strong> the appearance <strong>of</strong> numerousunwanted pop-up windows (a sign <strong>of</strong> adware).Ranging from least to most harmful, spyware <strong>and</strong>adware can do the following:• Display annoying advertising that can clog up thescreen or cover up information (some adware can alsobe spyware that uses information about the user to targetadvertising)• Track Web browsing to provide information to sell tomarketers (see cookies)• Obtain personal information for use in identity theft• Install keyloggers (programs that record keystrokes,such as passwords being entered) or other “backdoor” or “trojan” programsStopping SpywareGrowing concern about spyware has prompted the use <strong>of</strong>antispyware programs such as Ad-Aware <strong>and</strong> Spybot-Search& Destroy, as well as a free program from Micros<strong>of</strong>t. Antispywareprograms are also being included in popular securitysuites from companies such as Symantec <strong>and</strong> McAfee.The programs work similarly to antivirus programs, watchingfor suspicious behavior or “signatures” matching knownspyware or adware. Depending on the program, the spywarecan be blocked from executing at all or removed fromthe system.The s<strong>of</strong>tware varies considerably in effectiveness, sousers may have to run several different programs to completelyremove an “infestation.”Spyware has been generally given a lower priority thanviruses or even spam. When challenged, spyware makersgenerally claim that the user authorized its installation (atleast implicitly) by installing the utility or other s<strong>of</strong>twarethat contains it. Although antispyware legislation has beenintroduced in Congress, it has not passed as <strong>of</strong> mid-2008.However, state <strong>of</strong>ficials such as former New York StateAttorney General Eliot Spitzer successfully sued a spywarecompany, winning a $7.5 million settlement.


454 SQLFurther Reading“Antispyware.” PC Magazine. Available online. URL: http://www.pcmag.com/category2/0,1738,1639157,00.asp. Accessed November18, 2007.Chadbrow, Eric. “Spyware <strong>and</strong> Adware Continue to Plague PCs.”InformationWeek. March 27, 2006. Available online. URL:http://www.informationweek.com/story/showArticle.jhtml?articleID=183702594. Accessed November 18, 2007.Gregory, Peter H., <strong>and</strong> Michael A. Simon. Blocking Spam & Spywarefor Dummies. Hoboken, N.J.: Wiley, 2005.“Magoo’s Wise Words: Guide to Eliminating Spyware.” Availableonline. URL: http://guides\radified.com/magoo/guides/spyware/remove_spyware_01.htm. Accessed November 18,2007.Shetty, Sachin. “Introduction to Spyware Keyloggers,” April 14,2005. Available online. URL: http://www.securityfocus.com/infocus/1829. Accessed November 18, 2007.SQLStructured query language was originally developed in theearly 1970s as a comm<strong>and</strong> interface for IBM mainframedatabases. Today, however, SQL has become the linguaModern spreadsheets have many sophisticated features. Micros<strong>of</strong>t Excel, for example, has a “Solver” module that can be used to solve for particularvalues or to maximize or minimize specified values.


SQL 455Structured Query Language (SQL) is a st<strong>and</strong>ardized way to query <strong>and</strong> manipulate databases. Here the statement SELECT NUMBER, NAME,PRICE WHERE PRICE >= 50.00 extracts only the records meeting that criterion.franca for relational database systems (see database managementsystem).A relational database (such as Oracle, Sybase, IBM DB2,<strong>and</strong> Micros<strong>of</strong>t Access) stores data in tables called relations.The columns in the table describe the characteristics <strong>of</strong>an entity (corresponding to data fields). For example, in acustomer database the Customer table might include attributessuch as customer number, First_name, Last_Name,Street, City, Phone_number, <strong>and</strong> so on. The rows in thetable (sometimes called tuples) represent the data recordsfor the various customers.Many database systems have more than one table. Forexample, a store’s database might contain a Customers table(for information identifying a customer), an Item table (givingcharacteristics <strong>of</strong> an item, such as price <strong>and</strong> number instock), <strong>and</strong> a Transaction table (whose characteristics mightbe customer number, date, item bought, <strong>and</strong> so on). Noticethat the Transaction record contains both a customer number<strong>and</strong> an item number. It thus serves as a sort <strong>of</strong> bridge orlink between the Customer <strong>and</strong> Item tables.SQL provides comm<strong>and</strong>s that can be used to specify <strong>and</strong>access components <strong>of</strong> a database. For example, the INSERT<strong>and</strong> DELETE comm<strong>and</strong>s can be used to add or remove rows(records) from tables.To query a database means to give criteria for selectingcertain records from a table. For example, the querySELECT * FROM CUSTOMERS WHERE LAST_NAME =“Howard”would return the complete records for all customers whoselast name is Howard. If only selected fields are desired, theycan be specified like this:SELECT NUMBER, NAME, PRICE FROM ITEMS WHEREPRICE > = 50.00This query will display the Number, Name, <strong>and</strong> Price fieldsfor all items whose price is greater than or equal to $50.00.SQL includes many comm<strong>and</strong>s to further refine dataprocessing <strong>and</strong> reporting. There are built-in mathematicalfunctions as well as a GROUP BY comm<strong>and</strong> for furtherbreaking down a report by a particular field name orvalue.SQL can be used interactively by typing comm<strong>and</strong>s ata prompt, but database applications designed for less technicalusers <strong>of</strong>ten provide a user-friendly query form (<strong>and</strong>perhaps menus or buttons). After the user selects the appropriatefields <strong>and</strong> values, the program will then generate thenecessary SQL statements <strong>and</strong> send them to the internal“database engine” for processing. The results will then bedisplayed for the user.SQL procedures can be stored <strong>and</strong> managed as part <strong>of</strong>a database. SQL can also be “embedded” within a morecomplete programming language environment so that, forexample, a Java program can perform SQL operations whileusing Java for processing that cannot be specified in SQL.In the mid-1990s an object-oriented version <strong>of</strong> SQL calledOQL (object query language), allowing the use <strong>of</strong> that popularparadigm for database operations (see object-orientedprogramming).One <strong>of</strong> the most popular implementations <strong>of</strong> SQL isMySQL, which is privately owned <strong>and</strong> developed but availablefor free license on many platforms, including Windows<strong>and</strong> Linux. A number <strong>of</strong> applications are designed to workwith MySQL databases: see, for example, wikis <strong>and</strong> Wikipedia<strong>and</strong> YouTube.Further ReadingForta, Ben. Sams Teach Yourself SQL in 10 Minutes. 3rd ed. Indianapolis:Sams, 2004.K<strong>of</strong>ler, Michael. The Definitive Guide to MySQL 5. 3rd ed. Berkeley,Calif.: Apress, 2005.MySQL home page. Available online. URL: http://mysql.org/.Accessed August 22, 2007.Rankins, Ray, et al. Micros<strong>of</strong>t SQL Server 2005 Unleashed. Indianapolis:Sams, 2006.Tahaghoghi, Seyed M. M., <strong>and</strong> Hugh Williams. Learning MySQL.Sebastapol, Calif.: O’Reilly Media, 2006.Taylor, Allen G. SQL for Dummies. 6th ed. Hoboken, N.J.: Wiley,2006.


456 stackstackOften a temporary storage data area is needed duringprocessing. For example, a program that calls a procedure(see procedures <strong>and</strong> functions) usually needs to passone or more data items to the procedure. These itemsare specified as arguments that will be matched to theprocedure’s defined parameters. For example, the procedurecallSquare (50, 50, 20)could draw a square whose upper left corner is at thescreen coordinates 50, 50 <strong>and</strong> whose length per side is 20pixels.When the compiler generates the machine code for thisstatement, that code will probably instruct the processorto store the numbers 50, 50, <strong>and</strong> 20 onto a stack. A stack issimply a list that represents successive locations in memoryinto which data can be inserted. The operation <strong>of</strong> astack can be visualized as being rather like the springloadedplatform onto which dishes are stacked for washingin some restaurants. As each dish (number) is added, thestack is “pushed.” Because only the item “on top” (the lastone added) can be removed (“popped”) at any given time,a stack is described as a LIFO (last in, first out) structure.(Note that this is different from a queue, where items canbe added or removed from either end [see queue].)Stacks are useful whenever nested items must betracked. For example, a procedure might call a procedurethat in turn calls another procedure. The stack can keeptrack <strong>of</strong> the parameters (as well as the calling address) foreach pending procedure.Stacks can also be used to evaluate nested arithmeticexpressions. For example, the expression that we write inconventional (prefix) notation as7 * 5 + 2can be represented internally in postfix form as:* + 5 7 2Here one stack can be used to hold the operators (* +) <strong>and</strong>one the oper<strong>and</strong>s (5 7 2). The evaluation then proceeds inthe following steps:Pop the * from the operator stackSince * is a binary operator (one that needstwo oper<strong>and</strong>s), pop the 5 <strong>and</strong> 7 from theoper<strong>and</strong> stackMultiply 5 <strong>and</strong> 7 to get 35.Pop the + from the operator stack.Pop the 35 (which is now on the top <strong>of</strong> theoper<strong>and</strong> stack) <strong>and</strong> the 2Add 35 <strong>and</strong> 2 to get 37.An interesting programming language uses this stackmechanism for all processing (see forth). In working withstacks, it may be necessary to keep in mind any limitationson the amount <strong>of</strong> memory allocated to the stack, although astack can also be implemented dynamically as a linked list(see list processing).Further Reading“Data Structures/Stacks <strong>and</strong> Queues.” Wikibooks. Availableonline. URL: http://en.wikibooks.org/wiki/Data_Structures/Stacks_<strong>and</strong>_Queues. Accessed August 22, 2007.Stallman, Richard(1953– )American<strong>Computer</strong> ScientistRichard Stallman created superb s<strong>of</strong>tware tools—the programsthat help programmers with their work. He wenton to spearhead the open source movement, a new way todevelop s<strong>of</strong>tware.Stallman was born on March 16, 1953, in New YorkCity. He quickly showed prodigious talent for mathematics<strong>and</strong> was exploring calculus by the age <strong>of</strong> eight. Not muchlater, his summer camp reading included a manual for theIBM 7094 mainframe belonging to one <strong>of</strong> the counselors.Fascinated with the idea <strong>of</strong> programming languages, youngRichard began writing simple programs, even though hehad no access to a computer.Fortunately, a high school honors program let himobtain some time on a mainframe, <strong>and</strong> his programmingtalents led to a summer job with IBM. While studyingfor his B.A. in physics at Harvard (which he received in1970), Stallman found himself sneaking across town tothe MIT Artificial Intelligence Lab. There he developedEmacs, a powerful text editor that could be programmedwith a language modeled after LISP, the favorite language<strong>of</strong> AI researchers. While working on Emacs <strong>and</strong> othersystem s<strong>of</strong>tware for the AI Lab, Stallman participatedin the unique MIT “hacker culture.” (During the 1970s,“hacker” still meant a creative computing virtuoso, not acyber-criminal.)Stallman’s experience in the freewheeling, competitiveyet cooperative atmosphere at MIT led him to decidein 1984 to start the Free S<strong>of</strong>tware Foundation, whichwould become his life’s work. Stallman <strong>and</strong> his colleaguesat the FSF worked through the 1980s to develop GNU.At the time, UNIX, the operating system <strong>of</strong> choice formost campuses <strong>and</strong> researchers, required an expensivelicense from Bell Laboratories. GNU (a recursive acronymfor “GNU’s Not UNIX”) was intended to include all thefunctionality <strong>of</strong> UNIX but with code that owed nothingto Bell Labs. Stallman’s key contributions to the projectincluded the GNU C compiler <strong>and</strong> debugger, as well ashis management <strong>of</strong> a cooperative effort in which manytalented programmers would coordinate their efforts overthe Internet.By the early 1990s, most <strong>of</strong> GNU was complete exceptfor a key component: the kernel containing the essentialfunctions <strong>of</strong> the operating system. A Finnish programmer


statistics <strong>and</strong> computing 457named Linus Torvalds decided to write the kernel <strong>and</strong> integrateit with much <strong>of</strong> the existing GNU s<strong>of</strong>tware. The resultwould become known as Linux, <strong>and</strong> today it is a popularoperating system that runs on many servers <strong>and</strong> workstations.While acknowledging Torvalds’s efforts, Stallmaninsists that the operating system is more properly calledGNU Linux, to reflect the large amount <strong>of</strong> GNU code itemploys.In recent years Stallman has best been known as a vigorousadvocate for free s<strong>of</strong>tware (see open-source movement)<strong>and</strong> for creating alternative structures for controllingits distribution, such as the various forms <strong>of</strong> the GeneralPublic License (GPL). Stallman has been accused <strong>of</strong> beingrigid <strong>and</strong> abrasive, such as in his urging that certain terminologybe used, or, in the case <strong>of</strong> the phrase “intellectualproperty,” not used.Stallman has received a number <strong>of</strong> important awards,including the ACM Grace Hopper Award (1990), ElectronicFrontier Foundation Pioneer Award (1998), <strong>and</strong> a MacArthurFoundation fellowship (1990).Further ReadingFree S<strong>of</strong>tware Foundation. Available online. URL: http://www.fsf.org/. Accessed August 22, 2007.Stallman, Richard M. Free S<strong>of</strong>tware, Free Society: Selected Essays<strong>of</strong> Richard M. Stallman. Boston: Free S<strong>of</strong>tware Foundation,2002.Williams, Sam. Free as in Freedom: Richard Stallman’s Crusade forFree S<strong>of</strong>tware. Sebastapol, Calif.: O’Reilly Media, 2002.st<strong>and</strong>ards in computingOne hallmark <strong>of</strong> the maturity <strong>of</strong> a technology is the development<strong>of</strong> a variety <strong>of</strong> kinds <strong>of</strong> st<strong>and</strong>ards that are acceptedby a majority <strong>of</strong> practitioners. There are several reasonswhy st<strong>and</strong>ards develop.Marketplace St<strong>and</strong>ardsIn many cases, a particular product gains a prominentposition in an emerging market, <strong>and</strong> would-be competitorsadopt its interface <strong>and</strong> specifications. For example,the parallel port printer interface (<strong>and</strong> plug) developedby Centronics for its printers was adopted by virtually allprinter manufacturers. Since it would be impracticable forcomputer manufacturers to provide many different parallelconnectors on their machines, there was a clear marketadvantage in setting a st<strong>and</strong>ard. When a particular product(Centronics in this case) becomes that st<strong>and</strong>ard, it is mainlya matter <strong>of</strong> timing.Once a marketplace st<strong>and</strong>ard is established, manufacturers<strong>and</strong> consumers will generally not want products that areincompatible with it. When the IBM PC <strong>and</strong> its ISA expansioncard became the st<strong>and</strong>ard followed by many “clone”manufacturers, IBM discovered that even Big Blue floutedthe st<strong>and</strong>ard at its peril. When IBM came out with its MCA(Microchannel Architecture) in the late 1980s, the newmachines, although possessing some technical advances,did not sell as well as expected. Most people stayed withthe existing IBM st<strong>and</strong>ard <strong>and</strong> built upwardly compatiblemachines upon it.Official St<strong>and</strong>ardsSome st<strong>and</strong>ards are developed by <strong>of</strong>ficial bodies. For example,the International St<strong>and</strong>ards Organization (ISO) has anelaborate formal process where panels <strong>of</strong> experts developst<strong>and</strong>ards for a huge variety <strong>of</strong> technologies, including manyrelating to computing. In an increasingly global economy,international st<strong>and</strong>ards allow equipment (or s<strong>of</strong>tware) fromone country to be used with that from another. For example,credit cards, phone cards, <strong>and</strong> “smart cards” around theworld have a common format established by ISO st<strong>and</strong>ards.(St<strong>and</strong>ards specific to electrical <strong>and</strong> electronic engineeringare developed by a similar body, the International ElectrotechnicalCommission, or IEC.) St<strong>and</strong>ards that have becomewidely accepted but are not yet <strong>of</strong>ficial ISO st<strong>and</strong>ards takethe form <strong>of</strong> Publicly Available Specifications, or PAS. Governmentcontracts <strong>of</strong>ten specify ISO st<strong>and</strong>ards as well as avariety <strong>of</strong> other st<strong>and</strong>ards developed by various governmentagencies. The ISO 9001 st<strong>and</strong>ards apply specifically to computersystems, s<strong>of</strong>tware, <strong>and</strong> its development.Evolution <strong>of</strong> St<strong>and</strong>ardsThe extent <strong>of</strong> st<strong>and</strong>ardization within the broad informationtechnology (IT) industry varies widely among applications.Generally, things that have been established for a long time(meaning, in computing terms, a couple decades or so) arelikely to be well st<strong>and</strong>ardized. An example is the st<strong>and</strong>ardsfor character sets.For areas in which new applications are emerging, practitionerstend to have less interest (or patience) with the idea <strong>of</strong>st<strong>and</strong>ards. For example, the World Wide Web is still relativelynew, <strong>and</strong> st<strong>and</strong>ards for the operation <strong>of</strong> Web sites are emergingonly slowly. In this case, it is mainly concern about suchmatters as privacy protection that has encouraged the adoption<strong>of</strong> st<strong>and</strong>ards for matters such as the secure transmission<strong>of</strong> credit card information on-line or privacy policies regardingthe use <strong>of</strong> information obtained from Web users. Thepotential threat <strong>of</strong> government regulation <strong>of</strong>ten encouragesthe development <strong>of</strong> marketplace st<strong>and</strong>ards as an alternative.Technical societies such as the Institute for Electrical<strong>and</strong> Electronic Engineering (IEEE) <strong>and</strong> the World WideWeb Consortium are an important forum for the discussion<strong>and</strong> development <strong>of</strong> st<strong>and</strong>ards.Further ReadingDargan, P. A. Open Systems <strong>and</strong> St<strong>and</strong>ards for S<strong>of</strong>tware ProductDevelopment. Norwood, Mass.: Artech House, 2005.Hoyle, David. ISO 9000 Quality Systems H<strong>and</strong>book. 2nd. ed. Burlington,Mass.: Butterworth-Heinemann, 2006.“ISO IEC 90003 2004 S<strong>of</strong>tware St<strong>and</strong>ard Translated into PlainEnglish.” Paxiom Research Group. Available online. URL:http://www.praxiom.com/iso-90003.htm. Accessed August22, 2007.Lund, Susan K., <strong>and</strong> John W. Walz. Practical Support for ISO 9001S<strong>of</strong>tware Project Documentation: Using IEEE S<strong>of</strong>tware EngineeringSt<strong>and</strong>ards. New York: Wiley, 2006.statistics <strong>and</strong> computingThe application <strong>of</strong> computing technology to the collection<strong>and</strong> analysis <strong>of</strong> statistics is as old as computing itself. Indeed,


458 Stoll, CliffordCharles Babbage was an early proponent <strong>of</strong> the collection <strong>of</strong>social <strong>and</strong> economic statistics in order to underst<strong>and</strong> howsociety was being changed by the Industrial Revolution inthe early 19th century. By the end <strong>of</strong> that century, HermanHollerith had come to the rescue <strong>of</strong> the U.S. Census Bureauby providing his card tabulation machines for the 1890 Census.(See Babbage, Charles <strong>and</strong> Hollerith, Herman.)In the era <strong>of</strong> the mainframe, performing statisticalanalysis with a computer generally required writing a customizedprogram (although the development <strong>of</strong> FORTRANaround 1960 gradually led the accumulation <strong>of</strong> an extensivelibrary <strong>of</strong> subroutines that could be employed to performstatistical functions). Programs generally run in a batchmode, with data supplied from punched cards or tape.When the personal computer arrived, it wasn’t yet powerfulenough for much statistical work, although a programsuch as VisiCalc (see spreadsheet) could be used for simpleoperations. Gradually, spreadsheets grew more powerful,but statisticians truly rejoiced when s<strong>of</strong>tware packagesspecifically designed for statistical work began to appear.Today there are hundreds <strong>of</strong> statistical packages available,<strong>of</strong> which the best known one for personal computersis SPSS. Most packages can be used to perform the st<strong>and</strong>ardforms <strong>of</strong> statistical analysis, including analysis <strong>of</strong> variance,regression analysis, discrete data analysis, time seriesanalysis, <strong>and</strong> cluster analysis. There are also packages forspecialized applications. Moving in the direction <strong>of</strong> greatergenerality, mathematical s<strong>of</strong>tware such as Mathematica <strong>and</strong>MATLAB can also be used for statistical applications (seemathematics s<strong>of</strong>tware). This category <strong>of</strong> s<strong>of</strong>tware experiencessteady growth because the ability to analyze dataquickly <strong>and</strong> interactively is increasingly important given thegrowing pace <strong>of</strong> human activity, whether one is confrontedwith a rapidly spreading disease or a volatile economy.Other areas related to statistical computing include theextraction <strong>of</strong> useful correlations from existing data bases(see data mining) <strong>and</strong> the development <strong>of</strong> dynamic modelsbased on probability <strong>and</strong> statistics (see simulation).Further ReadingAmerican Statistical Association. Available online. URL: http://www.amstat.org. Accessed August 22, 2007.Givens, Ge<strong>of</strong> H., <strong>and</strong> Jennifer A. Hoeting. Computational Statistics.New York: Wiley-Interscience, 2005.Griffith, Arthur. SPSS for Dummies. Hoboken, N.J.: Wiley, 2007.Linnemann, Jim. “Statistical S<strong>of</strong>tware Resources on the Web.”Available online. URL: http://www.pa.msu.edu/people/linnemann/stat_resources.html. Accessed August 22, 2007.McKenzie, John, <strong>and</strong> Robert Goldman, Jr. The Student Guide toMINITAB Release 14 + MINITAB Student Release 14. UpperSaddle River, N.J.: Addison-Wesley, 2004.Stoll, Clifford(1950– )AmericanAstrophysicist, <strong>Computer</strong> CriticUntil he became famous for tracking down a computer hacker,Clifford Stoll, born on June 4, 1950, in Buffalo, New York, wasan astronomer who had received his Ph.D. from the University<strong>of</strong> Arizona in 1980. (In the 1960s <strong>and</strong> 1970s Stoll had workedas an engineer at a public radio station in Buffalo.)In 1986, while working at the Lawrence Berkeley Laboratoryas a system administrator, Stoll was asked to track downa 75-cent accounting discrepancy. As he delved into computerfiles, Stoll discovered that an unknown hacker had penetratedsupposedly secure systems housing secret data relating to militarytechnology. Alarmed, Stoll <strong>and</strong> his colleagues decidedagainst immediately shutting down the intruder’s accounts.Instead, they painstakingly traced him, <strong>and</strong> discovered aneven more alarming possibility: that he was using the lab’scomputers to reach other computers operated by the military<strong>and</strong> defense contractors. Despite being virtually ignored whenreporting his findings to the FBI, Stoll <strong>and</strong> his impromptuteam soldiered on, even planting false data to keep the intruder’sinterest while continuing to trace his movements. FinallyStoll was able to get the attention <strong>of</strong> federal authorities. Theintrusion was traced to a West German hacker spy ring thatwas selling secrets to the Soviet KGB.Stoll’s book Cuckoo’s Egg recounted this adventure invivid, accessible terms, <strong>and</strong> made the New York Times bestsellerlist for 16 weeks in 1990. For many readers, this wastheir first introduction to the vulnerabilities <strong>of</strong> computersystems.Cyber-CriticIn writing <strong>and</strong> lectures, Stoll is engaging if sometimes a bitfrenetic. He soon turned his iconoclastic attitude towardcomputers themselves, warning about the dangers <strong>of</strong> overrelianceon them. Stoll’s books Silicon Snake Oil <strong>and</strong> HighTech Heretic particularly target the use <strong>of</strong> computers in education.Stoll believes that the technology has been embracedas a panacea for the endemic problem <strong>of</strong> underperformingschools. However, Stoll notes that the technology is <strong>of</strong>tenused for superficial purposes, with little attention to reading<strong>and</strong> writing skills, while the needs <strong>of</strong> teachers <strong>and</strong> students<strong>and</strong> their vital relationship remain neglected. In turn,advocates <strong>of</strong> computers in education have criticized Stoll asbeing superficial <strong>and</strong> lacking underst<strong>and</strong>ing <strong>of</strong> what goods<strong>of</strong>tware can really do (see computers <strong>and</strong> education).In more recent years Stoll has devoted more time to hisfirst love, astronomy. He also has an unusual hobby: makingone-sided Klein bottles.Further ReadingStoll, Clifford. The Cuckoo’s Egg: Tracking a Spy through the Maze <strong>of</strong><strong>Computer</strong> Espionage. New York: Doubleday, 1989.———. High-Tech Heretic: Why <strong>Computer</strong>s Don’t Belong in the Classroom,<strong>and</strong> Other Reflections by a <strong>Computer</strong> Contrarian. NewYork: Doubleday, 1999.———. Silicon Snake Oil: Second Thoughts on the Information Highway.New York: Doubleday, 1995.“When Slide Rules Ruled.” Scientific American, May 2006, pp. 80–87.streamingWeb users increasingly have access to such content as newsbroadcasts, songs, <strong>and</strong> even full-length videos. The problem


Stroustrup, Bjarne 459is that the user must receive the content in real time at asteady pace, not in sputters or jerks. However, factors suchas load on the Web server <strong>and</strong> network congestion betweenthe server <strong>and</strong> user can cause delays in transmission. Oneway to reduce the problem would be to compress the data(see data compression). However, excessive compressionwould compromise audio or picture quality to an unacceptableextent. Fortunately, a technology called streaming<strong>of</strong>fers a way to smooth out the transmission <strong>of</strong> largeamounts audio or video content (see also multimedia).When a user clicks on an audio or video link, the players<strong>of</strong>tware (or Web browser plug-in) is loaded <strong>and</strong> the transmissionbegins. Typically, the player stores a few seconds<strong>of</strong> the transmission (see buffering), so any momentarydelays in the transmission <strong>of</strong> data packets will not appearas the data starts to play. Assuming the rate <strong>of</strong> transmissionremains sufficient, enough data remains in the bufferso that data can be “fed” to the playing s<strong>of</strong>tware at a steadypace. If, however, there is too much delay due to networkcongestion, the playback will pause while the player refillsits buffer.The most popular media players for PCs (such asWinAmp, RealPlayer, <strong>and</strong> Windows Media Player) providefor streaming data. Despite streaming, connections <strong>of</strong> fewerthan about 56 kbps are likely to result in occasional interruption<strong>of</strong> content. Together with the use <strong>of</strong> streaming, themove to faster cable or DSL connections (see broadb<strong>and</strong>)is improving the multimedia experience for Web users. Inturn, the ability to easily access video online has fueledvideo-sharing services (see user-created content <strong>and</strong> You-Tube). Meanwhile, the growing use <strong>of</strong> fiber <strong>and</strong> other highspeedconnections into homes is beginning to make “ondem<strong>and</strong>” streaming video services <strong>and</strong> IPTV (televisionprogramming delivered via the Internet) competitive withexisting cable <strong>and</strong> satellite systems.Further ReadingFollansbee, Joe. Get Streaming!: Quick Steps to Delivering Audio <strong>and</strong>Video Online. Burlington, Mass.: Focal Press, 2004.“Introduction: How to Create Streaming Video.” Media College.Available online. URL: http://www.mediacollege.com/video/streaming/overview.html. Accessed August 22, 2007.IPTV news. Available online. URL: http://www.iptvnews.net/.Accessed August 22, 2007.Mack, Steve. Streaming Media Bible. New York: Wiley, 2002.Stolarz, Damien. Mastering Internet Video: A Guide to Streaming <strong>and</strong>On-Dem<strong>and</strong> Video. Upper Saddle River, N.J.: Addison-WesleyPr<strong>of</strong>essional, 2004.Bjarne Stroustrup created C++, an object-oriented successorto the popular C language that has now largely supplantedthe original language.Stroustrup was born on December 30, 1950, in Aarhus,Denmark. As a student at the University <strong>of</strong> Aarhus his interestswere far from limited to computing (indeed, he foundprogramming classes to be rather dull). However, unlike literature<strong>and</strong> philosophy, programming did <strong>of</strong>fer a practicaljob skill, <strong>and</strong> Stroustrup began to do contract programmingfor Burroughs, an American mainframe computer company.To do this work, Stroustrup had to pay attention to both theneeds <strong>of</strong> application users <strong>and</strong> the limitations <strong>of</strong> the machine,on which programs had to be written in assembly languageto take optimal advantage <strong>of</strong> the memory available.By the time Stroustrup received his master’s degree incomputer science from the University <strong>of</strong> Aarhus, he was anexperienced programmer, but he soon turned toward thefrontiers <strong>of</strong> computer science. He became interested in distributedcomputing (writing programs that run on multiplecomputers at the same time) <strong>and</strong> developed such programsat the Computing Laboratory at Cambridge University inEngl<strong>and</strong>, where he earned his Ph.D. in 1979.The 1970s was an important decade in computing. Itsaw the rise <strong>of</strong> a more methodical approach to programming<strong>and</strong> programming languages (see structured programming).It also saw the development <strong>of</strong> a powerful <strong>and</strong>versatile new computing environment: the UNIX operatingsystem <strong>and</strong> C programming language developed by DennisRitchie (see Ritchie, Dennis) <strong>and</strong> Ken Thompson <strong>and</strong> BellLaboratories. Soon after getting his doctorate, Stroustrupmoved to Bell Labs, where he became part <strong>of</strong> that effort.As Stroustrup continued to work on distributed computing,he decided that he needed a language that was betterthan C at working with the various modules runningon the different computers. He studied an early object-orientedlanguage (see object-oriented programming <strong>and</strong>Simula). Simula had a number <strong>of</strong> key concepts includingthe organization <strong>of</strong> a program into classes, entities thatcombined data structures <strong>and</strong> associated capabilities (methods).Classes <strong>and</strong> the objects created from them <strong>of</strong>fered abetter way to organize large programs, <strong>and</strong> was particularlyStroustrup, Bjarne(1950– )Danish<strong>Computer</strong> ScientistIn the 1980s Bjarne Stroustrup created the object-oriented C++ languagethat became the most popular language for general applicationsprogramming. (Bjarne Stroustrup)


460 structured programmingsuited for distributed computing <strong>and</strong> parallel programmingwhere there were many separate entities running at thesame time.However, Simula was fairly obscure, <strong>and</strong> it was unlikelythat the large community <strong>of</strong> systems programmers whowere using C would switch to a totally different language.Instead, starting in the early 1980s, Stroustrup decided toadd object-oriented features (such as classes with memberfunctions, user-defined operators, <strong>and</strong> inheritance) to C. Atfirst he gave the language the rather unwieldy name <strong>of</strong> “Cwith Classes.” However, in 1985 he changed the name toC++. (The ++ is a reference to an operator in C that adds oneto its oper<strong>and</strong>, thus C++ is “C with added features.”)At first some critics criticized C++ for retaining most <strong>of</strong>the non-object oriented features <strong>of</strong> C (unlike pure objectlanguages such as Smalltalk), while others complainedthat the overhead required in processing classes made C++slower than C. During the 1990s, however, C++ becameincreasingly popular, aided by its relatively smooth learningcurve for C programmers <strong>and</strong> the development or moreefficient compilers. C++ is now the most widely used generalpurpose computer language.Stroustrup has been honored for his contributions tocomputer science. In 1993 he received the ACM Grace HopperAward for his work on C++, <strong>and</strong> became an AT&TFellow. After leaving AT&T Stroustrup became a pr<strong>of</strong>essorholding the College <strong>of</strong> Engineering Chair in <strong>Computer</strong> <strong>Science</strong>at Texas A&M University. In 2004 Stroustrup receivedthe IEEE <strong>Computer</strong> Society <strong>Computer</strong> EntrepreneurAward, <strong>and</strong> in 2005 the William Procter Prize for ScientificAchievement.Further ReadingBjarne Stroustrup [home page]. Available online. URL: http://parasol.tamu.edu/people/bs/.Accessed August 22, 2007.Dolya, Aleksey. “Interview with Bjarne Stroustrup.” Linux Journal,August 28, 2003. Available online. URL: http://www.linuxjournal.com/article/7099. Accessed August 22, 2007.Pontin, Jason. “The Problem with Programming: Bjarne Stroustrup,the Inventor <strong>of</strong> the C++ Programming Language, DefendsHis Legacy <strong>and</strong> Examines What’s Wrong with Most S<strong>of</strong>twareCode.” <strong>Technology</strong> Review, November 28, 2006. Availableonline. URL: http://www.techreview.com/Infotech/17831/page1/. Accessed August 22, 2007.Stroustrup, Bjarne. The C++ Programming Language. Special 3rded. Upper Saddle River, N.J.: Addison-Wesley, 1997.———. The Design <strong>and</strong> Evolution <strong>of</strong> C++. Reading, Mass.: Addison-Wesley, 1995.structured programmingAs programs grew longer <strong>and</strong> more complex during the1960s, computer scientists began to pay more attention tothe ways in which programs were organized. Most programminglanguages had a statement called “GOTO” or itsequivalent. This statement transfers control to some arbitraryother point in the program, as identified by a label orline number.In 1968, computer scientist Edsger Dijkstra (see dijkstra,edsger) sent a letter to the editor <strong>of</strong> the Proceedings <strong>of</strong>the ACM with the title “GO TO Statement Considered Harmful.”In it he pointed out that the more such jumps programsmade from place to place, the harder it was for someone tounderst<strong>and</strong> the logic <strong>of</strong> the program’s operation.The following year, Dijkstra introduced the term structuredprogramming to refer to a set <strong>of</strong> principles for writingwell-organized programs that could be more easily shownto be correct. One <strong>of</strong> these principles is statements such asIf . . . Then . . . Else be used to organize a choice betweentwo or more alternatives (see branching statements) <strong>and</strong>that statements such as While be used to control repetitionor iteration <strong>of</strong> a statement (see loop).Other computer scientists added further principles, suchas modularization (breaking down a program into separateprocedures, such as for data input, different stages <strong>of</strong> processing,<strong>and</strong> output or printing). Modularization makes iteasier to figure out which part <strong>of</strong> a program may be causing aproblem, <strong>and</strong> to fix part <strong>of</strong> a problem without affecting otherparts. A related principle, information hiding, keeps the dataused by a procedure “hidden” in that procedure so that itcan’t be changed from some other part <strong>of</strong> the program.Structured programming also encourages stepwiserefinement, a program design process described by NiklausWirth, creator <strong>of</strong> Pascal. This is a top-down approach inwhich the stages <strong>of</strong> processing are first described in highlevelterms (see also pseudocode), <strong>and</strong> then graduallyfleshed out in their details, much like the writing <strong>of</strong> anoutline for a book.The principles <strong>of</strong> structured programming were soonembodied in a new generation <strong>of</strong> programming languages(see Algol, Pascal, <strong>and</strong> c). Although use <strong>of</strong> well-structuredlanguage didn’t guarantee good structured programmingpractice, it at least made the tools available.The ideas <strong>of</strong> structured programming form a solid basisfor programming style today. They have been supplementedrather than replaced by a new paradigm developed in the1970s <strong>and</strong> 1980s (see object-oriented programming).Further ReadingDhal, Ole-Johan, Edsger W. Dijkstra, <strong>and</strong> C. A. R. Hoare, eds.Structured Programming. New York: Academic Press, 1972.Dijkstra, Edsger. A Discipline <strong>of</strong> Programming. Englewood Cliffs,N.J.: Prentice Hall, 1976.———. “Go To Statement Considered Harmful.” Communications<strong>of</strong> the ACM 11, no. 3 (1968): 147–148.———. “Notes on Structured Programming.” Available online. URL:http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF.Accessed August 22, 2007.Orr, Kenneth T. Structured Systems Development. New York: YourdonPress, 1977.Sun MicrosystemsFounded in 1982, Sun Microsystems (NASDAQ symbol:JAVA) has played an important role in the development<strong>of</strong> computer workstations <strong>and</strong> servers, UNIX-based operatingsystems, <strong>and</strong> the Java programming language (see Java,unix, <strong>and</strong> workstation).During the 1980s, Sun was known mainly for its workstationsfor programmers <strong>and</strong> graphics pr<strong>of</strong>essionals, runningon its own SPARC series microprocessors. However,


supercomputer 461by the 1990s the growing power <strong>of</strong> regular desktop PCs wasreducing the need for special-purpose workstations. As theWeb grew starting in the 1990s, Sun’s line <strong>of</strong> multiprocessingWeb servers became quite successful, though the “dotbust”<strong>of</strong> the early 2000s cut revenues.One <strong>of</strong> Sun’s founders was a key developer <strong>of</strong> UNIXs<strong>of</strong>tware (see Joy, Bill). Sun developed its own version <strong>of</strong>UNIX (SunOS) for its workstations in the 1980s, <strong>and</strong> thenjoined with AT&T to develop the widely used UNIX SystemV Release 4, which in turn became the basis for Sun’s newoperating system, Solaris. (Sun has also supported the use<strong>of</strong> Linux on its hardware.)Sun’s biggest impact on s<strong>of</strong>tware development, however,has been its development <strong>of</strong> the Java language <strong>and</strong> platformsince the early 1990s. Although newer languages such asPython, PHP, <strong>and</strong> Ruby have come along to challenge it,Java, with its ability to run via “virtual machines” on allmajor platforms, is widely used <strong>and</strong> has a rich set <strong>of</strong> libraryroutines <strong>and</strong> programming frameworks.Scott McNealy, one <strong>of</strong> the company’s founders, remainsits chairman. Sun had $13.87 billion revenue in 2007 ($473million net income), <strong>and</strong> employs about 36,400 people.Further ReadingBoyous, Jon. “Java <strong>Technology</strong>: The Early Years.” Sun DeveloperNetwork. Available online. URL: http://java.sun.com/features/1998/05/birthday.html. Accessed November 18, 2007.Southwick, Karen. High Noon: The Inside Story <strong>of</strong> Scott McNealy<strong>and</strong> the Rise <strong>of</strong> Sun Microsystems. New York: Wiley, 1999.Sun Microsystems. Available online. URL: http://www.sun.com/.Accessed November 18, 2007.Sun Multimedia Center [videos]. Available online. URL: http://sunfeedroom.sun.com. Accessed November 18, 2007.Sun Wikis. Available online. URL: http://wikis.sun.com. AccessedNovember 18, 2007.supercomputerThe term supercomputer is not really an absolute termdescribing a unique type <strong>of</strong> computer. Rather, it has beenused through successive generations <strong>of</strong> computer designto describe the fastest, most powerful computers availableat a given time. However, what makes these machines thefastest is usually their adoption <strong>of</strong> a new technology orcomputer architecture that later finds its way into st<strong>and</strong>ardcomputers.The first supercomputer is generally considered to bethe Control Data CDC 6600, designed by Seymour Crayin 1964. The speed <strong>of</strong> this machine came from its use <strong>of</strong>the new, faster silicon (rather than germanium) transistors<strong>and</strong> its ability to run at a clock speed <strong>of</strong> 10 MHz (a speedthat would be achieved by personal computers by the mid-1980s). Even with transistors, these machines generatedso much heat that they had to be cooled by a Freon-basedrefrigeration system.Cray then left CDC to form Cray Research. He designedthe Cray 1 in 1976, the first <strong>of</strong> a highly successful series<strong>of</strong> supercomputers. The Cray 1 took advantage <strong>of</strong> a newtechnology, integrated circuits, <strong>and</strong> new architecture: vectorprocessing, in which a single instruction can be appliedA Cray 190 A supercomputer. Seymour Cray’s leading-edgemachines defined supercomputing for many years. (NASA photo)to an entire series (or array) <strong>of</strong> numbers simultaneously.This innovation marked the use <strong>of</strong> parallel processing asone <strong>of</strong> the distinguishing features <strong>of</strong> supercomputers. Themachine’s monolithic appearance gave it a definite air <strong>of</strong>science fiction, <strong>and</strong> the first one built was installed at thesecretive Los Alamos National Laboratory.The next generation, the Cray X-MP, carried parallelismfurther by incorporating multiple processors (the successor,Cray Y-MP, had 8 processors, which together could performa billion floating-point operations per second [1 gigaflop]).Soon Cray no longer had the supercomputer field toitself, <strong>and</strong> other companies (particularly the Japanese manufacturersNEC <strong>and</strong> Fujitsu) entered the market. The number<strong>of</strong> processors in supercomputers increased to as manyas 1,024 (in the 1998 Cray SV1), which can exceed 1 trillionfloating-point operations per second (1 teraflop).Meanwhile, processors for desktop computers (such asthe Intel Pentium) also continued to increase in power, <strong>and</strong>it became possible to build supercomputers by combininglarge numbers <strong>of</strong> these readily available (<strong>and</strong> relatively lowcost)processors.The ultimate in multiprocessing is the series <strong>of</strong> ConnectionMachines built by Thinking Machines Inc. (TMI)<strong>and</strong> designed by Daniel Hillis. These machines have upto 65,000 very simple processors that run simultaneously,<strong>and</strong> can form connections dynamically, somewhat likethe process in the human brain. These “massively parallel”machines are thus attractive for artificial intelligenceresearch. It is also possible to achieve supercomputerlikepower by having many computers on a network divide thework <strong>of</strong>, for example, cracking a code or analyzing radiotelescope data for signs <strong>of</strong> intelligent signals.Programs for supercomputers must be written usingspecial languages (or libraries for st<strong>and</strong>ard languages) thatare designed to provide for many processes to run at thesame time <strong>and</strong> that allow for communication <strong>and</strong> coordinationbetween processing (see multiprocessing).


462 supply chain managementApplicationsSupercomputers are always more expensive <strong>and</strong> somewhatless reliable than st<strong>and</strong>ard computers, so they are used onlywhen necessary. As the power <strong>of</strong> st<strong>and</strong>ard computers continuesto grow, applications that formerly required a multimillion-dollarsupercomputer can now run on a desktopworkstation (a good example is the creation <strong>of</strong> detailed 3Dgraphics).On the other h<strong>and</strong>, there are always applications that willsoak up whatever computing power can be brought to bear onthem. These include analysis <strong>of</strong> new aircraft designs, weather<strong>and</strong> climate models, the study <strong>of</strong> nuclear reactions, <strong>and</strong> thecreation <strong>of</strong> models for the synthesis <strong>of</strong> proteins. The neverendingbattle <strong>of</strong> organizations such as the National SecurityAgency (NSA) to monitor worldwide communications <strong>and</strong>crack ever-tougher encryption also dem<strong>and</strong>s the fastest availablesupercomputers (see quantum computing).ArchitectureThe fastest “conventional” supercomputers as <strong>of</strong> 2007 wereIBM’s Blue Gene series, expected to reach a speed <strong>of</strong> 3 pflop(peta, or quadrillion floating point operations per second).Machines <strong>of</strong> this magnitude are usually destined for institutionssuch as the Los Alamos National Laboratory (see governmentfunding <strong>of</strong> computer research).However, for many applications it may be more cost-effectiveto build systems with numerous coordinated processors(a sort <strong>of</strong> successor to the 1980s Connection Machine).For example, the Beowulf architecture involves “clusters” <strong>of</strong>ordinary PCs coordinated by s<strong>of</strong>tware running on UNIX orLinux. The use <strong>of</strong> free s<strong>of</strong>tware <strong>and</strong> commodity PCs canmake this approach attractive, though application s<strong>of</strong>twarestill has to be rewritten to run on the distributed processors.Recently a new resource for parallel supercomputingcame from an unlikely place: the new generation <strong>of</strong> cellprocessors found in game consoles such as the Sony Playstation3. This architecture features tight integration <strong>of</strong> acentral “power processor element” with multiple “synergisticprocessing elements.” IBM is currently developing a newsupercomputer called Roadrunner that will include 16,000conventional (Opteron) <strong>and</strong> 16,000 cell processors, <strong>and</strong> isexpected to reach a speed <strong>of</strong> 1 pflop.Finally, an ad hoc “supercomputer” can be createdalmost for free, using s<strong>of</strong>tware that parcels out calculationtasks to thous<strong>and</strong>s <strong>of</strong> computers participating via theInternet, as with SETI@Home (searching for extraterrestrialradio signals) <strong>and</strong> Folding@Home (for protein-foldinganalysis). (See cooperative processing.)Further Reading“Blue Gene.” IBM. Available online. URL: http://www-03.ibm.com/servers/deepcomputing/bluegene.html. Accessed August22, 2007.Gropp, William, Ewing Lusk, <strong>and</strong> Thomas Sterling. Beowulf ClusterComputing with Linux. 2nd ed. Cambridge, Mass.: MITPress, 2003.“IBM to Build World’s First Cell Broadb<strong>and</strong> Engine Based Supercomputer.”September 6, 2006. Available online. URL: http://www-03.ibm.com/press/us/en/pressrelease/20210.wss. AccessedAugust 22, 2007.Murray, C. J. The Supermen: The Story <strong>of</strong> Seymour Cray <strong>and</strong> theTechnical Wizards behind the Supercomputer. New York: Wiley,1995.National Center for Supercomputing Applications (NCSA). Availableonline. URL: http://www.ncsa.uiuc.edu/. Accessed August22, 2007.National Research Council. Getting Up to Speed: The Future <strong>of</strong>Supercomputing. Washington, D.C.: National Academies Press,2005.Scientific American. Underst<strong>and</strong>ing Supercomputing. New York:Warner Books, 2002.Top 500 Supercomputer Sites. Available online. URL: http://www.top500.org/. Accessed August 22, 2007.supply chain managementFew consumers are aware <strong>of</strong> the complexity <strong>of</strong> the network<strong>of</strong> organizations, transportation <strong>and</strong> storage facilities, <strong>and</strong>information processing facilities that are needed to turnraw materials into finished products. The term supply chainmanagement was developed in the 1980s to refer to the systematicefforts to improve the efficiency <strong>and</strong> reliability <strong>of</strong>this vital business activity. Although the details will varywith the industry, a supply chain can include the followingactivities:• obtaining the raw materials or components needed forthe product• manufacturing finished products• marketing the product• distributing the product to retailers or other outlets• servicing the product <strong>and</strong> supporting customers• (increasingly) providing for the ultimate recycling ordisposal <strong>of</strong> the productAt all stages <strong>of</strong> the chain, planners must take into considerationwhat location for operations is most advantageous<strong>and</strong> how materials will be transported, warehoused,<strong>and</strong> tracked. Potential suppliers must be evaluated for cost<strong>and</strong> reliability. Schedules must be monitored. Finally, everythingshould be part <strong>of</strong> a comprehensive plan that spells outthe objectives <strong>and</strong> how they will be measured.S<strong>of</strong>twareOf course such a complex process involving a great deal <strong>of</strong>information, monitoring, <strong>and</strong> decision making is ripe fors<strong>of</strong>tware assistance. Some companies <strong>of</strong>fer comprehensivesolutions (see, for example, sap), but they must still beadapted to the needs <strong>of</strong> a particular industry <strong>and</strong> manufacturer.S<strong>of</strong>tware must be interfaced <strong>and</strong> integrated withexisting databases, management information systems, <strong>and</strong>other s<strong>of</strong>tware. Nevertheless, in a very competitive worldmarket, enterprises have little choice but to develop aneffective way to manage <strong>and</strong> optimize their supply chains.Further ReadingBlanchard, David. Supply Chain Management Best Practices. Hoboken,N.J.: Wiley, 2007.Chopra, Sunil, <strong>and</strong> Peter Meindl. Supply Chain Management. 3rded. Upper Saddle River, N.J.: Prentice Hall, 2006.


Sutherl<strong>and</strong>, Ivan Edward 463Simchi, David, Philip Kaminsky, <strong>and</strong> Edith Simchi-Levi. Designing<strong>and</strong> Managing the Supply Chain. 2nd ed. New York: McGraw-Hill, 2002.Worthen, Ben. “ABC: An Introduction to Supply Chain Management.”CIO. Available online. URL: http://www.cio.com/article/40940. Accessed November 18, 2007.Sutherl<strong>and</strong>, Ivan Edward(1938– )American<strong>Computer</strong> ScientistToday it is hard to think about computers without interactivegraphics displays. Whether one is flying a simulated747 jet, retouching a photo, or just moving files from onefolder to another, everything is shown on the screen ingraphical form. For the first two decades <strong>of</strong> the computer’shistory, however, computers lived in a text-only world,except for a few experimental military systems. Duringthe 1960s <strong>and</strong> 1970s Ivan Sutherl<strong>and</strong> would almost single-h<strong>and</strong>edlycreate the framework for modern computergraphics while designing Sketchpad, the first computerdrawing program.Sutherl<strong>and</strong> was born on May 16, 1938, in Hastings,Nebraska, but the family later moved to Scarsdale, NewYork. His father was a civil engineer, <strong>and</strong> as a young boySutherl<strong>and</strong> was fascinated by the drawing <strong>and</strong> surveyinginstruments his father used. When he was about 12,Sutherl<strong>and</strong> <strong>and</strong> his brother Bert got a job working fora pioneer computer scientist named Edmund Berkeley.Berkeley gave Sutherl<strong>and</strong> the opportunity to play with“Simon,” a suitcase-sized electromechanical computer thatcould add numbers as long as the total did not exceed 30.Simon eventually rewired the machine so it could dividenumbers as well.Sutherl<strong>and</strong> first attended Carnegie Mellon University,where he received a B.S. in electrical engineering in 1959.The following year he earned an M.A. from the CaliforniaInstitute <strong>of</strong> <strong>Technology</strong> (Cal Tech). He then went to MIT todo his doctoral work under Claude Shannon at the LincolnLaboratory (see Shannon, Claude).At MIT Sutherl<strong>and</strong> was able to work with the TX-2, anadvanced (<strong>and</strong> very large) transistorized computer that wasa harbinger <strong>of</strong> the minicomputers that would become prevalentlater in the decade. Unlike the older mainframes, theTX-2 had a graphics display <strong>and</strong> could accept input from alight pen as well as switches that could serve something likethe functions that mouse buttons do today. The machinealso had 70,000 36-bit words <strong>of</strong> memory, an amount thatwould not be achieved by personal computers until the1980s. Having this much memory made it possible to storethe pixel information for detailed graphics objects.Having access to this interactive machine gave Sutherl<strong>and</strong>the idea for his doctoral dissertation (submitted in1963). He developed a program called Sketchpad, whichrequired that he develop algorithms for drawing realisticobjects by plotting pixels <strong>and</strong> polygons as well as scalingobjects in relation to the viewer’s position. Sutherl<strong>and</strong>’sSketchpad could even automatically “snap” lines into placeas the user drew on the screen with the light pen. Besidesdrawing, Sketchpad demonstrated the beginnings <strong>of</strong> the“graphical user interface” that would be further developedby researchers at Xerox PARC in the 1970s <strong>and</strong> would reachthe consumer in the 1980s.After demonstrating Sktechpad in 1963 <strong>and</strong> receivinghis Ph.D. from MIT, Sutherl<strong>and</strong> took on a quite differenttask. He became the director <strong>of</strong> the Information ProcessingTechniques Office (IPTO) <strong>of</strong> the Defense Department’sAdvanced Research Projects Agency (ARPA)—see Licklider,J. C. R. While continuing his research on graphicsSutherl<strong>and</strong> thus also oversaw the work on computer timesharing<strong>and</strong> the networking research that would eventuallylead to the ARPANet <strong>and</strong> the Internet.In 1968 Sutherl<strong>and</strong> <strong>and</strong> David Evans went to the University<strong>of</strong> Utah, where they established an InformationProcessing <strong>Technology</strong> Office (IPTO)–funded computergraphics research program. There, Sutherl<strong>and</strong>’s groupbrought computer graphics to a new level <strong>of</strong> realism. Forexample, they developed the ability to place objects in front<strong>of</strong> other objects, which required intensive calculations todetermine what was obscured. They also developed an ideasuggested by Evans called incremental computing. Instead <strong>of</strong>drawing each pixel in isolation, they used information frompreviously drawn pixels to calculate new ones, considerablyspeeding up the rendering <strong>of</strong> graphics. The results began toapproach the realism <strong>of</strong> a photograph. (The two researchersalso founded a commercial enterprise, Evans <strong>and</strong> Sutherl<strong>and</strong>,to exploit their graphics ideas. It became one <strong>of</strong> theleaders in the field.)In 1976 Sutherl<strong>and</strong> left the University <strong>of</strong> Utah to serveas the chairman <strong>of</strong> the computer science department at CalTech. Working with a colleague, Carver Mead, Sutherl<strong>and</strong>developed a systematic concept <strong>and</strong> curriculum for integratedcircuit design, which became the main specialty <strong>of</strong>the department. He would later point out that it was theimportant role that geometry played in laying out components<strong>and</strong> wires that had intrigued him the most.Sutherl<strong>and</strong> left Caltech in 1980 <strong>and</strong> started a consulting<strong>and</strong> venture capital firm with Bob Sproull, whom he hadmet years earlier at Harvard. In 1990 Sun Microsystemsbought the company for its technical expertise, making itthe core <strong>of</strong> Sun Labs, where Sutherl<strong>and</strong> continues to workas a Sun Microsystems Fellow <strong>and</strong> vice president. Sutherl<strong>and</strong>received the prestigious ACM Turing Award in 1988.Further Reading“An Evening with Ivan Sutherl<strong>and</strong>: Research <strong>and</strong> Fun” [partialtranscript <strong>and</strong> online video]. <strong>Computer</strong> History Museum,October 19, 2005. Available online. URL: http://www.mprove.de/script/05/sutherl<strong>and</strong>/index.html. Accessed November 18,2007.Frenkel, Karen A. “Ivan E. Sutherl<strong>and</strong>, 1988 A. M. Turing AwardRecipient” [Interview]. Communications <strong>of</strong> the ACM 32 (June1989): 711.Sutherl<strong>and</strong>, Ivan E. “Sketchpad—A Man-Machine Graphical CommunicationSystem.” University <strong>of</strong> Cambridge <strong>Computer</strong>Laboratory. Technical Report No. 574 [with new preface],September 2003. Available online. URL: http://www.cl.cam.ac.uk/TechReports/UCAM-CL-TR-574.pdf. Accessed November18, 2007.


464 system administratorsystem administratorA system administrator is the person responsible for managingthe operations <strong>of</strong> a computer facility to ensure that itruns properly, meets user needs, <strong>and</strong> protects the integrity<strong>of</strong> users’ data. Such facilities range from <strong>of</strong>fices with just afew users to large campus or corporate facilities that may beserved by a large staff <strong>of</strong> administrators.The system administrator’s responsibilities <strong>of</strong>ten include:• setting up accounts for new users• allocating computing resources (such as server space)among users• configuring the file, database, or local area network(LAN) servers• installing new or upgraded s<strong>of</strong>tware on users’ workstations• keeping up with new versions <strong>of</strong> the operating system<strong>and</strong> networking s<strong>of</strong>tware• using various tools to monitor the performance <strong>of</strong>the system <strong>and</strong> to identify potential problems such asdevice “bottlenecks” or a shortage <strong>of</strong> disk space• ensuring that regular backups are made• configuring network services such as e-mail, Internetaccess, <strong>and</strong> the intranet (local TCP/IP network)• using tools such as firewalls <strong>and</strong> virus scanners toprotect the system from viruses, hacker attacks, <strong>and</strong>other security threats (see also computer crime <strong>and</strong>security)• providing user orientation <strong>and</strong> training• creating <strong>and</strong> documenting policies <strong>and</strong> proceduresSystem administrators <strong>of</strong>ten write scripts to automate many<strong>of</strong> the above tasks (see scripting languages). Because <strong>of</strong>the complexity <strong>of</strong> modern computing environments, anadministrator usually specializes in a particular operatingsystem such as UNIX or Windows.A good system administrator needs not only technicalunderst<strong>and</strong>ing <strong>of</strong> the many components <strong>of</strong> the system,but also the ability to communicate well with users—good“people skills.” Larger organizations are more likely to haveseparate network <strong>and</strong> database administrators, while theadministrator <strong>of</strong> a small facility must be a jack (or jill) <strong>of</strong> alltrades.Further ReadingCulp, Brian. Windows Vista Administration: The Definitive Guide.Sebastapol, Calif.: O’Reilly Media, 2007.Frisch, Æleen. Essential System Administration. 3rd ed. Sebastapol,Calif.: O’Reilly Media, 2002.———. Essential Windows NT System Administration. Sebastapol,Calif.: O’Reilly Media, 1998.Information for Linux System Administration (Librenix). Availableonline. URL: http://librenix.com/. Accessed August 22, 2007.Limoncelli, Thomas A., Christina J. Horgan, <strong>and</strong> Strata R. Chalup.The Practice <strong>of</strong> System <strong>and</strong> Network Administration. 2nd ed.Upper Saddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2007.Nemeth, Evi, Garth Snyder, <strong>and</strong> Trent R. Hein. Linux SystemAdministration H<strong>and</strong>book. 2nd ed. Upper Saddle River, N.J.:Prentice Hall PTR, 2006.systems analystThe systems analyst serves as the bridge between the needs<strong>of</strong> the user <strong>and</strong> the capabilities <strong>of</strong> the computer system. Thesystems analyst goes into action when users request thatsome new application or function be provided (usually in acorporate computing environment).The first step is to define the user’s requirements <strong>and</strong> toprepare precise specifications for the program. In doing so,the systems analyst is aided by methodologies developedby computer scientists over the last several decades (seestructured programming <strong>and</strong> object-oriented programming).Often flowcharts or other aids are used to helpvisualize the operation <strong>of</strong> the program (see also case).After communicating with the user, the systems analystmust then communicate with the programmers, helpingthem underst<strong>and</strong> what is needed <strong>and</strong> reviewing their workas they begin to design the program. Although the systemsanalyst may do little actual programming, he or she must befamiliar with programming tools <strong>and</strong> practices. This maymake it possible to suggest existing s<strong>of</strong>tware or componentsthat could be adapted instead <strong>of</strong> undertaking the cost <strong>and</strong>time involved with creating a new program. As a programis developed, systems analysts are <strong>of</strong>ten responsible fordesigning tests to ensure that the s<strong>of</strong>tware works properly(see quality assurance, s<strong>of</strong>tware).Depending on the organizational structure, all or part <strong>of</strong>the analysis function may be included in the job description“programmer-analyst” or included as part <strong>of</strong> the duties <strong>of</strong> asenior s<strong>of</strong>tware engineer or manager <strong>of</strong> program development.Experienced systems analysts are likely to be calledupon to participate in the evaluation <strong>of</strong> possible investmentsin new s<strong>of</strong>tware or hardware, <strong>and</strong> other aspects <strong>of</strong>long-term planning for computing facilities.Further ReadingSatzinger, John W., Robert B. Jackson, <strong>and</strong> Stephen D. Burd. SystemsAnalysis & Design in a Changing World. 4th ed. Boston:Course <strong>Technology</strong>, 2006.Shelly, Gary B., Thomas J. Cashman, <strong>and</strong> Harry J. Rosenblatt. SystemsAnalysis & Design. 7th ed. Boston: Course <strong>Technology</strong>,2007.Systems Analysis Web Sites. Available online. URL: http://www.umsl.edu/~sauterv/analysis/analysis_links.html. AccessedAugust 22, 2007.Whitten, Jeffrey L., <strong>and</strong> Lonnie D. Bentley. Introduction to SystemsAnalysis & Design. New York: McGraw-Hill/Irwin, 2007.———. Systems Analysis & Design Methods. 7th ed. New York:McGraw-Hill/Irwin, 2005.systems programmingApplications programmers write programs to help userswork better, while systems programmers write programsto help the computer itself work better (see operating system).Systems programmers generally work for companiesin the computer industry that develop operating systems,


systems programming 465network facilities, program language compilers <strong>and</strong> others<strong>of</strong>tware development tools, utilities, <strong>and</strong> device drivers.However, systems programmers can also work for applicationsdevelopers to help them interface their programs tothe operating system or to devices (see device driver <strong>and</strong>applications programming interface).Modern operating systems are highly complex, so systemsprogrammers tend to specialize in particular areas.These might include device drivers, s<strong>of</strong>tware developmenttools, program language libraries, applications programminginterfaces (APIs), <strong>and</strong> utilities for monitoring systemconditions <strong>and</strong> resources. Systems programmers developthe infrastructure needed for networking, as well as multiple-processorcomputers <strong>and</strong> distributed computing systems.Systems programmers also play a key role when anapplication program must be “ported” to a different platformor simply modified to run under a new version <strong>of</strong> theoperating system.Generally, an application programmer works at a fairlyhigh level, using language functions <strong>and</strong> APIs to have theprogram ask the operating system for services such as loadingor saving files, printing, <strong>and</strong> so on. The systems programmer,on the other h<strong>and</strong>, must be concerned with theinternal architecture <strong>of</strong> the system (such as the buffers allocatedto hold various kinds <strong>of</strong> temporary data) <strong>and</strong> withhow comm<strong>and</strong>s are constructed for disks <strong>and</strong> other devices.Generally, the systems programmer must also have a morethorough knowledge <strong>of</strong> data structures <strong>and</strong> how they arephysically represented in the machine as well as the comparativeefficiency <strong>of</strong> various algorithms. Because it determineshow efficiently the system’s resources can be used,systems programming must <strong>of</strong>ten be “tight” <strong>and</strong> optimizedfor peak performance. Thus, although lower-level assemblylanguage is no longer used for much applications programming,it can still be found in systems programming.Further ReadingBeck, Lel<strong>and</strong> L. System S<strong>of</strong>tware: An Introduction to Systems Programming.3rd ed. Reading, Mass.: Addison-Wesley, 1996.Hart, Johnson M. Windows System Programming. 3rd ed. UpperSaddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2004.Love, Robert. Linux System Programming. Sebastapol, Calif.:O’Reilly Media, 2007.Robbins, Kay A., <strong>and</strong> Steven Robbins. UNIX Systems Programming.Upper Saddle River, N.J.: Prentice Hall PTR, 2003.


Ttablet PCAs the name suggests, a tablet PC is a small computer aboutthe size <strong>of</strong> a notebook (not to be confused with a “notebookPC,” which is a small, light laptop). The user can write onthe screen with a stylus to take notes (for similar functionality,see graphics tablet), draw, <strong>and</strong> make selections withstylus or fingertip.If the user writes on the screen, s<strong>of</strong>tware converts thewriting to the appropriate characters <strong>and</strong> stores them in afile (see h<strong>and</strong>writing recognition). As with some PDAs,there may also be a system <strong>of</strong> shorth<strong>and</strong> “gestures” that canbe used to write more quickly. Alternatively, the user cantype with stylus or fingertips on a “virtual keyboard” displayedon the screen (see touchscreen).A more versatile <strong>and</strong> natural interface is becoming available:“multitouch,” pioneered by the Apple iPhone <strong>and</strong>Micros<strong>of</strong>t Surface, can recognize multiple motions <strong>and</strong>pressure points simultaneously. This allows the user to, forexample, flick the finger to “turn a page” or use a pinchingmotion to “pick up” an object.Applications for tablet PCs include many PDA-typeapplications (see personal information management<strong>and</strong> pda), field note taking, inventory, <strong>and</strong> other tasks thatrequire a device that is not encumbering. Because <strong>of</strong> itscompactness, a tablet PC can also be a good reader for e-books (see e-books <strong>and</strong> digital libraries).Tablet PCs generally follow common specificationsdeveloped by Micros<strong>of</strong>t, <strong>and</strong> <strong>of</strong>ten use Windows XP TabletPC Edition or, later, Windows Vista, which has built-insupport for tablet PCs. These operating systems includesupport for sophisticated h<strong>and</strong>writing recognition thatcan be “trained” by the user <strong>and</strong> that can store h<strong>and</strong>writteninput in special data formats. Voice recognition isalso supported.A “convertible” tablet PC is a hybrid in which the tabletis attached to a base containing a keyboard. The display canbe used vertically (laptop style) or rotated <strong>and</strong> folded downover the keyboard for tablet use.Internet TabletsAn interesting variant is the Internet tablet, best known inNokia’s N-series. These are smaller <strong>and</strong> lighter than a tabletPC. The Nokia N810, for example, has a slide-out keyboardas well as a virtual screen keyboard. The most notablefeature is the Internet browser <strong>and</strong> related applications,such as e-mail <strong>and</strong> instant messaging, <strong>and</strong> built-in wirelessconnections (see bluetooth <strong>and</strong> wireless computing).Although there is no phone, Internet-based services such asSkype can be used to place calls, or a Bluetooth-equippedmobile phone. The Nokia series uses a variant <strong>of</strong> Linux <strong>and</strong>can run a large variety <strong>of</strong> open-source applications.Further ReadingLinenberger, Michael. Seize the Work Day: Using the Tablet PC toTake Control <strong>of</strong> Your Work <strong>and</strong> Meeting Day. San Ramon, Calif.:New Academy Publishers, 2004.Stevenson, Nancy. Tablet PCs for Dummies. New York: Wiley, 2003.Tablet PC Review. Available online. URL: http://www.tabletpcreview.com/. Accessed November 19, 2007.“What Is a Tablet PC?” Micros<strong>of</strong>t, February 9, 2005. Availableonline. URL: http://www.micros<strong>of</strong>t.com/windowsxp/tabletpc/evaluation/about.mspx. Accessed November 19, 2007.466


tape drives 467tape drivesAnyone who has seen computers in old movies is familiarwith the row <strong>of</strong> large, freest<strong>and</strong>ing tape cabinets with theirspinning reels <strong>of</strong> tape. The visual cue that the computerwas running consisted <strong>of</strong> the reels thrashing back <strong>and</strong> forthvigorously while rows <strong>of</strong> lights flashed on the computerconsole. Magnetic tape was indeed the mainstay for datastorage in most large computers (see mainframe) in the1950s through the 1970s.In early mainframes the main memory (correspondingto today’s RAM chips) consisted <strong>of</strong> “core”—thous<strong>and</strong>s <strong>of</strong>tiny magnetized rings crisscrossed with wires by whichthey could be set or read. Because core memory was limitedto a few thous<strong>and</strong> bytes (kB), it was used only to holdthe program instructions (see punched cards <strong>and</strong> papertape) <strong>and</strong> to store temporary working data while the programwas running.The source data to be processed by the program wasread from a reel <strong>of</strong> tape on the drive. If the program updatedthe data (rather than just reporting on it), it would generallywrite a new tape with the revised data. In large facilities aperson called a tape librarian was in charge <strong>of</strong> keeping thereels <strong>of</strong> tape organized <strong>and</strong> providing them to the computeroperators as needed.OperationA mainframe tape drive had two reels, the supply reel <strong>and</strong>the take-up reel. Because each reel had its own motor, theycould be spun at different speeds. This allowed a specifiedlength <strong>of</strong> tape to be suspended between the two reels,serving as sort <strong>of</strong> a buffer <strong>and</strong> allowing the take-up reel toaccelerate at the start <strong>of</strong> a read or write operation withoutdanger <strong>of</strong> breaking the tape. The “buffer” tape was actuallysuspended in a partial vacuum, which both kept thetape taut enough to prevent snarling <strong>and</strong> allowed for airpressure sensors to activate the appropriate motor whenthe amount <strong>of</strong> tape in the buffer went above or below presetpoints.Data was read or written by the read <strong>and</strong> write headsrespectively, in units called frames. In addition to the 1 or0 data bits, each frame included parity bits (see error correction).The frames were combined into blocks, with eachblock having a header in front <strong>of</strong> the data frames <strong>and</strong> one ormore frames <strong>of</strong> check (parity) bits following the data.The two predominant tape formats were the IBM format,which used variable-length data blocks (<strong>and</strong> thus could notbe rewritten) <strong>and</strong> the DEC format, which used fixed-lengthblocks, allowing data to be rewritten in place, albeit at somecost in speed <strong>and</strong> efficiency.During the 1960s, magnetic disks (see hard disk)increasingly came into use, <strong>and</strong> more <strong>of</strong> the temporary databeing used by programs began to be stored on disk ratherthan on tape. Eventually, tapes were relegated to storingvery large data sets or archiving old data.However, when the first desktop microcomputers (suchas the Apple II <strong>and</strong> Radio Shack TRS-80) came along inthe late 1970s <strong>and</strong> early 1980s, they, like the first mainframes,had very limited main memory <strong>and</strong> disk driveswere unavailable or expensive. As a result, programs (suchA NASA automated tape library. These facilities can store trillions<strong>of</strong> bytes <strong>of</strong> data. (NASA Photo)as Bill Gates’s Micros<strong>of</strong>t Basic) <strong>of</strong>ten came on tape cassettes,<strong>and</strong> the computer included an interface allowing it tobe connected to an ordinary audio cassette recorder. However,this use <strong>of</strong> tapes was quite short-lived, <strong>and</strong> was soonreplaced by the floppy disk drive <strong>and</strong> later, hard drives <strong>and</strong>CD-ROM drives.Tapes as Backup DevicesBy the 1990s, PC users generally used tapes only for makingbackups. A typical backup tape drive uses DAT (digitalaudio tape) cartridges that hold from hundreds <strong>of</strong> megabytesto several gigabytes <strong>of</strong> data. Most drives use a rotatingassembly <strong>of</strong> four heads (two read <strong>and</strong> two write) that verifydata as it’s being written. As a backup medium, tape has alower cost per gigabyte than disk devices. It is easy to use<strong>and</strong> can be set up to run unattended (except for periodicallychanging cartridges).However, since tapes are written <strong>and</strong> read sequentially,they are not convenient for restoring selected files (seebackup <strong>and</strong> archive systems). Many smaller installationsnow prefer using a second (“mirror”) hard drive as backup,using disk arrays (see raid) or using recordable CDs oroptical drives for smaller amounts <strong>of</strong> data (see cd-rom <strong>and</strong>dvd-rom).Many large companies <strong>and</strong> government agencies havethous<strong>and</strong>s <strong>of</strong> reels <strong>of</strong> tape stored away in their vaults sincethe 1960s, including data returned from early NASA spacemissions. As time passes, it becomes increasingly difficult toguarantee that this archived data can be successfully read.This is due both to gradual deterioration <strong>of</strong> the medium <strong>and</strong>the older data formats becoming obsolete (see backup <strong>and</strong>archive systems).Further ReadingBrain, Marshall. “How Tape Drives Work.” Available online. URL:http://electronics.howstuffworks.com/cassette.htm. AccessedAugust 22, 2007.


468 TclHaylor, Phil. <strong>Computer</strong> Storage: A Manager’s Guide. Victoria, B.C.,Canada: Trafford, 2005.Scapicchio, Mark. “How Tape Drives Work: Tape Backup Still aGood Option.” Smart Computing, October 2002, pp. 69–72.Available online. URL: http://www.smartcomputing.com/editorial/article.asp?article=articles/archive/r0608/13 r08/13r08.asp&guid=. Accessed August 22, 2007.White, Ron, <strong>and</strong> Timothy Edward Downs. How <strong>Computer</strong>s Work.8th ed. Indianapolis: Que, 2005.TclDeveloped by John Ousterhout in 1988, Tcl (Tool comm<strong>and</strong>language) is used for scripting, prototyping, testing interfaces,<strong>and</strong> embedding in applications (see scripting languages).Tcl has an unusually simple <strong>and</strong> consistent syntax. Ascript is simply a series <strong>of</strong> comm<strong>and</strong>s (either built in or userdefined) <strong>and</strong> their arguments (parameters). A comm<strong>and</strong>itself can be an argument to another comm<strong>and</strong>, creating theequivalent <strong>of</strong> a function call in other languages.For example, setting the value <strong>of</strong> a variable uses the setcomm<strong>and</strong>:set total 0The value <strong>of</strong> the variable can now be referenced as$total.Control structures are simply comm<strong>and</strong>s that run othercomm<strong>and</strong>s. A while loop, for example, consists <strong>of</strong> a comm<strong>and</strong>or expression that performs a comparison, followedby a series <strong>of</strong> comm<strong>and</strong>s to be executed each time it returns“true”:while { MoreInFile } {GetDataDisplayData}In practice, many <strong>of</strong> the comm<strong>and</strong>s used are utilitiesfrom the operating system, usually UNIX or Linux. Tclalso includes a number <strong>of</strong> useful data structures such asassociative arrays, which consist <strong>of</strong> pairs <strong>of</strong> data itemssuch as:set abbr (California)Extensions <strong>and</strong> ApplicationsTcl includes a number <strong>of</strong> extensions that, for example,provide access to popular database formats such as MySQL<strong>and</strong> can interface with other programming languages suchas C++ <strong>and</strong> Java. The most widely used extension is Tk,which provides a library for creating user interfaces for avariety <strong>of</strong> operating systems <strong>and</strong> languages such as Perl,Python, <strong>and</strong> Ruby.Tcl has been described as a “glue” to connect existingapplications. It is relatively easy to write <strong>and</strong> test a scriptinteractively (<strong>of</strong>ten at the comm<strong>and</strong> line), <strong>and</strong> then insert itinto the code <strong>of</strong> an application. When the application runs,the Tcl interpreter runs the script, whose output can thenbe used by the main application (see interpreter).CAFurther ReadingFoster-Johnson, Eric. Graphical Applications with Tcl & Tk. 2nd ed.New York: Hungry Minds, 1997.Wall, Kurt. Tcl <strong>and</strong> Tk Programming for the Absolute Beginner. Boston:Course <strong>Technology</strong>, 2007.Welch, Brent B., <strong>and</strong> Ken Jones. Practical Programming in Tcl <strong>and</strong>Tk. 4th ed. Upper Saddle River, N.J.: Prentice Hall, 2003.TCP/IPContrary to popular perception, the Internet is not e-mail,chat rooms, or even the World Wide Web. It is a system bywhich computers connected to various kinds <strong>of</strong> networks<strong>and</strong> with different kinds <strong>of</strong> hardware can exchange dataaccording to agreed rules, or protocols. All the applicationsmentioned (<strong>and</strong> many others) then use this infrastructureto communicate.TCP/IP (Transmission Control Protocol/Internet Protocol)provides the rules for transmitting data on the Internet.It consists <strong>of</strong> two parts. The IP (Internet Protocol) routespackets <strong>of</strong> data. The header information also includes:• The total length <strong>of</strong> the packet. In theory packets canbe as large as 65 kbytes; in practice they are limited toa smaller maximum.• An identification number that can be used if a packetis broken into smaller pieces for efficiency in transmission.This allows the packet to be reassembled atthe destination.• A “time to live” value that specifies how many hops(movements from one intermediate host to another)the packet will be allowed to take. This is reduced by1 for each hop. If it reaches 0, the packet is assumedto have gotten “lost” or stale, <strong>and</strong> is discarded.• A protocol number (the protocol is usually TCP, seebelow).• A checksum for checking the integrity <strong>of</strong> the headeritself (not the data in the packet).• The source <strong>and</strong> destination addresses.The source <strong>and</strong> destination are given as IP addresses,which are 32 bits long <strong>and</strong> typically written as four sets <strong>of</strong>up to three numbers each—for example, 208.162.106.17A Network <strong>of</strong> NetworksAs the name implies, the Internet is a network that connectsmany local networks. The IP address includes an IDfor each network (called a subnet) <strong>and</strong> each host computeron the network. The arrangement <strong>and</strong> meaning <strong>of</strong> thesefields differs somewhat among five classes <strong>of</strong> IP addresses.The first three classes are designed for different sizes <strong>of</strong>networks, <strong>and</strong> the latter two are used for special purposessuch as “multicasting” where the same data packet is sentto multiple hosts.Many Internet users (at home as well as in <strong>of</strong>fices) arepart <strong>of</strong> a local network (see local area network). Typically,all users on the local network share a single Internetconnection, such as a DSL or cable line. This sharing


TCP/IP 469The header fields <strong>and</strong> data for an IP (Internet Protocol) packet. Thepackets can travel over different routes to the destination address<strong>and</strong> then be reassembled in the correct order.is enabled by having one computer (or a hardware devicecalled a router) connected to the Internet, serving as thelink between the local network <strong>and</strong> the rest <strong>of</strong> the world. Afacility called Network Address Translation (NAT) assigns aprivate IP address to each computer on the network. Whena computer wants to make an Internet connection, its outgoingpacket is assigned a public IP address from a pool.When packets replying to that public address are received,they are converted back to the private address <strong>and</strong> thusrouted to the appropriate user.NAT has the benefit <strong>of</strong> providing some security againstintrusion, since from the outside only the single public IPaddress is visible, not the private addresses <strong>of</strong> the variousNetwork Address Translation (NAT) can protect computers on alocal network by giving outgoing packets an arbitrary public sourceaddress in place <strong>of</strong> a computer’s actual (private) address. Incomingpackets addressed to that public address are then routed to the correctprivate address using a table.machines on the network. However, using NAT (<strong>and</strong> a similarscheme called PAT that allows difference hosts to use thesame IP address by being assigned different port numbers)causes some slowdown because <strong>of</strong> the translation process.Another facility, Dynamic Host Configuration Protocol(DHCP), is used to assign an arbitrary available public IPaddress to each host when it connects to the network. Thissystem is now used by most DSL <strong>and</strong> cable systems, <strong>and</strong> itreduces the danger <strong>of</strong> running out <strong>of</strong> IP numbers (each networkis assigned a range <strong>of</strong> numbers, <strong>and</strong> is thus limited tothat many IP addresses).A more lasting <strong>and</strong> flexible solution to address depletionis the new Internet Protocol version 6 (IPv6). The newaddressing scheme allows for about 3 × 10 38 addresses,more than enough to accommodate every star in the knownuniverse if it were a networked computer! The scheme isbeing rolled out gradually but should be well established bythe end <strong>of</strong> the 2000 decade.Domain Name SystemInternet users typically don’t have to worry about IP numbers,except perhaps when configuring their s<strong>of</strong>tware.Instead they use alphabetic addresses, such as http://www.factsonfile.com. The Domain Name System (DNS) sets up acorrespondence between the names (which include domainssuch as .com for commercial or .edu for educational institutions)<strong>and</strong> the IP numbers (see dns).Transmission Control ProtocolThe Transmission Control Protocol (the TCP part <strong>of</strong> TCP/IP) controls the flow <strong>of</strong> packets that have been structured asdescribed above. To use TCP, the sending computer opensa special file called a socket, which is identified by thecomputer’s IP number plus a port number. St<strong>and</strong>ard portnumbers are used for the various protocols such as www(Web) <strong>and</strong> ftp (File Transfer Protocol). The receiving computerconnects using a corresponding socket. TCP includesbasic flow control <strong>and</strong> error-checking features similar tothose used for most data transmissions. For some applications(such as connecting to the domain name server) errorcontrol is not needed, so a simpler protocol called the UserDatagram Protocol is used.The Big PictureHow does TCP/IP fit into the use <strong>of</strong> the Internet? When anapplication such as an e-mail program, Web browser, or ftpclient makes a connection, IP packets using TCP flow controlcarry the requests from the client to the server <strong>and</strong> theserver’s response back to the client. Each application has itsown protocol to specify these requests (such as for a Webpage). For e-mail the protocol is SMTP (Simple Mail TransferProtocol); Web servers <strong>and</strong> browsers use HTTP (HypertextTransfer Protocol); <strong>and</strong> for file transfers it is FTP (FileTransfer Protocol). (See also e-mail, html, hypertext <strong>and</strong>hypermedia, <strong>and</strong> file transfer protocols.)Further ReadingHagen, Silvia. IPv6 Essentials. 2nd ed. Sebastapol, Calif.: O’Reilly,2006.


470 technical supportIPv6 Information Page. Available online. URL: http://www.ipv6.org/. Accessed August 22, 2007.Kozierok, Charles M. The TCP/IP Guide: A Comprehensive, IllustratedInternet Protocols Reference. San Francisco, Calif.: NoStarch Press, 2005.Leiden, C<strong>and</strong>ace, <strong>and</strong> Marshall Wilensky. TCP/IP for Dummies. 5thed. New York: Wiley, 2003.Raz, Uri. “Uri’s TCP/IP Resources List.” Available online. URL:http://www.private.org.il/tcpip_rl.html. Accessed August 22,2007.technical supportCompetition <strong>and</strong> user dem<strong>and</strong> have led to modern s<strong>of</strong>twarebecoming increasingly complex <strong>and</strong> <strong>of</strong>ten stuffed with esotericfeatures. Despite improvement in programs’ own builtinhelp systems (see help systems), users will <strong>of</strong>ten havequestions about how to perform particular tasks. There willalso be times when a program doesn’t perform as the userexpects because the user misunderst<strong>and</strong>s some feature <strong>of</strong>the program, the program has an internal flaw (see bugs <strong>and</strong>debugging), or there is a problem in interaction between theapplication program, the user’s operating system, or the user’shardware (see device driver).To get help when problems arise, users <strong>of</strong>ten turn tothe technical support facility, <strong>of</strong>ten called a help desk. Thisfacility can either be internal to an organization (helpingthe organization’s computer users with a wide range<strong>of</strong> problems), or belong to the maker <strong>of</strong> the s<strong>of</strong>tware (<strong>and</strong>available in varying degrees to all licensed users <strong>of</strong> thats<strong>of</strong>tware).Large help desks <strong>of</strong>ten have two or more levels or tiers<strong>of</strong> assistants. The first tier assistant can respond to the simplest(<strong>and</strong> usually most common) situations. For example, afirst-tier support person for a cable or DSL Internet ServiceProvider could tell a caller whether service has been interruptedin their area <strong>and</strong> if not, take the caller through a set<strong>of</strong> steps to reset a “hung” modem. If the situation is morecomplex (or the basic steps do not resolve it), the call will be“escalated” to the next tier, where a more experienced techniciancan address detailed s<strong>of</strong>tware configuration issues.Advanced technical support representatives can usetools such as remote operation s<strong>of</strong>tware that lets them takeover control <strong>of</strong> the user’s PC in order to see exactly what isgoing on. They can also submit detailed problem reports toengineers in cases were a modification (patch) to the s<strong>of</strong>twaremight be needed.Support AlternativesUsers who are dissatisfied with the wait for phone supportor dealing with poorly trained support personnel may beable to take advantage <strong>of</strong> alternative sources <strong>of</strong> information<strong>and</strong> support. Most s<strong>of</strong>tware companies now have Web sitesthat include a support section that <strong>of</strong>fers services such as• Frequently Asked Questions (FAQ) files with answersto common problems.• A searchable “knowledge base” <strong>of</strong> articles relating tovarious aspects <strong>of</strong> the s<strong>of</strong>tware, including compatibilitywith other products, operating system issues,<strong>and</strong> so on.• Forms or e-mail links that can be used to submitquestions to the company. Typically questions areanswered in one or two working days.• A bulletin board where users can share solutions <strong>and</strong>tips relating to the s<strong>of</strong>tware.Web sites for publications such as PC Magazine <strong>and</strong> ZDNetalso <strong>of</strong>fer articles <strong>and</strong> other resources for working with thevarious versions <strong>of</strong> Micros<strong>of</strong>t Windows <strong>and</strong> popular applications.Technical Support IssuesAs with many other aspects <strong>of</strong> the computer industry, thechanging economic climate has had an impact on technicalsupport practices. Many companies are hoping that providingmore extensive Web-based technical support willreduce the need for help desk representatives. Companiesthat don’t want to create their own support Web sites canturn to consultants such as Expertcity.com or PCSupport.com to create <strong>and</strong> manage such services for a fee.Another way companies have sought to reduce help deskcosts is to outsource their technical support operations.Most s<strong>of</strong>tware companies are in areas with a relatively highcost <strong>of</strong> labor. With modern communications <strong>and</strong> networkservices, there is no need for the help desk personnel to beat the company headquarters. Workers in less expensiveparts <strong>of</strong> the United States or even in countries such as Indiathat have a large pool <strong>of</strong> technically trained, English-speakingpersons can <strong>of</strong>ten <strong>of</strong>fer help services at a lower costthan running an in-house help desk, even when the cost <strong>of</strong>training <strong>and</strong> phone line charges are taken into account. Onthe other h<strong>and</strong>, there have been complaints by customersthat some overseas support staff have language problems orare poorly trained, using only rote “scripts” to try to diagnoseproblems.Poor technical support can lead customers to switchto competing products. While this may not be much <strong>of</strong> aconcern in a rapidly exp<strong>and</strong>ing industry (where new customersseem to be available in abundance), the situationis different in stagnant or contracting economic conditions.Trying to reduce technical support costs may bringsome short-term help to the bottom line, but in the longerrun the result might be fewer customers <strong>and</strong> less revenue.An alternative approach is to consider technical supportto be part <strong>of</strong> a broad effort to maintain customer loyalty;this is <strong>of</strong>ten called Customer Relationship Management(see customer relationship management). With regardto technical support, CRM is implemented by using s<strong>of</strong>twareto better track the resolution <strong>of</strong> customer’s problemsas well as to use information obtained in the support processto <strong>of</strong>fer the customer additional products or servicescustom-tailored to individual situations. With such anapproach the effort to provide better technical support isseen not simply as a necessary business expense but as aninvestment with an expected (though hard to measure)return.


technical writing 471Further ReadingBest Free Technical Support Sites. Available online. URL: http://www.techsupportalert.com/best_free_tech_support_sites.htm. Accessed August 22, 2007.Czegel, Barbara. Help Desk Practitioner’s H<strong>and</strong>book. New York:Wiley, 1999.Fleischer, Joe, <strong>and</strong> Brendan Read. The Complete Guide to CustomerSupport: How to Turn Technical Assistance into a Pr<strong>of</strong>itableRelationship. New York: CMP Books, 2002.Tourniaire, Françoise, <strong>and</strong> Richard Farrell. The Art <strong>of</strong> S<strong>of</strong>twareSupport: Design & Operation <strong>of</strong> Support Centers <strong>and</strong> HelpDesks. Upper Saddle River, N.J.: Prentice Hall, 1997.Tyman, Dan. “Tech Nightmares: Customer Service.” CNETReviews, January 24, 2005. Available online. URL: http://reviews.cnet.com/4520-10168_7-5621441-1.html. AccessedAugust 22, 2007.technical writingUsers <strong>of</strong> complex systems require a variety <strong>of</strong> instructional<strong>and</strong> reference materials, which are produced by technicalwriters <strong>and</strong> editors. (It should be noted that technical writingcovers many areas other than computer s<strong>of</strong>tware <strong>and</strong>systems. However, it is the latter that fall within the scope<strong>of</strong> this book.)The traditional products produced by technical writersin the computer industry can be divided into three broadcategories: s<strong>of</strong>tware manuals, trade books, <strong>and</strong> in-housedocumentation for developers.S<strong>of</strong>tware ManualsUntil the mid-1990s, just about every significant s<strong>of</strong>twareproduct came with a manual (or a set <strong>of</strong> manuals). A typicalmanual might include an overview <strong>of</strong> the program, anintroductory tutorial, <strong>and</strong> a complete, detailed referenceguide to all comm<strong>and</strong>s or functions.In theory, staff technical writers (or sometimes contractors)develop the manuals during the time the program isbeing written. They have access to the programmers forasking questions about the program’s operation, <strong>and</strong> theyreceive updates from the developers that describe changesor added features. In practice, however, writers may notbe assigned to a project until the program is almost done.The programmers, who are under deadline pressure, maynot be very communicative, <strong>and</strong> the writers may have tomake their best guess about some matters. The result canbe a manual that is no longer “in synch” with the program’sactual feature set.Technical writers <strong>of</strong>ten work in a publications departmentwith other pr<strong>of</strong>essionals including editors, desktoppublishers, <strong>and</strong> graphics specialists. While manuals can bewritten using an ordinary word processing program, manydepartments use programs such as FrameMaker that aredesigned for the production <strong>and</strong> management <strong>of</strong> complexdocuments.In recent years, many s<strong>of</strong>tware manufacturers havestopped including printed user manuals with their packages,or include only slim “Getting Started” manuals. Asa money-saving measure the traditional documentation is<strong>of</strong>ten replaced by a PDF (Adobe Portable Document Format)document on the CD. There is also a greater relianceon extensive on-line help, using either a Windows orMacintosh-specific format or the HTML format that is thelingua franca <strong>of</strong> the World Wide Web. (See documentation,user.)Technical writers have thus had to learn how to constructHelp files in these various formats (see authoringsystems, help systems, <strong>and</strong> html). Creation <strong>of</strong> interactivetutorials also requires knowledge <strong>of</strong> multimedia formats<strong>and</strong> even animation (such as Flash).Trade BooksAs millions <strong>of</strong> people became new computer users duringthe 1980s, a thriving computer book publishing industry<strong>of</strong>fered users a more user-friendly approach than that usuallyprovided in the manuals issued by the s<strong>of</strong>tware companies.The “Dummies” books, <strong>of</strong>fering bite-sized servings<strong>of</strong> information written in a breezy style <strong>and</strong> accompaniedby cartoons, eventually spread beyond computers into hundreds<strong>of</strong> other fields <strong>and</strong> the format was then copied byother publishers. Publishers such as Sams, Coriolis, <strong>and</strong> particularlyO’Reilly have aimed their <strong>of</strong>ferings at more experiencedusers, programmers, <strong>and</strong> multimedia developers.<strong>Computer</strong> trade books are <strong>of</strong>ten written by experienceddevelopers <strong>and</strong> systems programmers who can <strong>of</strong>feradvanced knowledge <strong>and</strong> “tips <strong>and</strong> tricks” to their lessexperienced colleagues. Since many technical “gurus” arenot experienced writers, the best results <strong>of</strong>ten come fromcollaboration between the expert <strong>and</strong> an experienced technicalwriter <strong>and</strong>/or editor who can review the material forcompleteness, organization, <strong>and</strong> clarity.In recent years there has been some contraction inthe computer book industry. This has arisen from severalsources: improved on-line help included in products; thedominance <strong>of</strong> many applications areas by a h<strong>and</strong>ful <strong>of</strong> products;<strong>and</strong> fewer people needing beginner-level instruction.In-House DocumentationMany technical writers work within s<strong>of</strong>tware companies orin the information systems departments <strong>of</strong> other corporations,universities, or government agencies. Their work isgenerally more highly structured than that <strong>of</strong> the manualor book writer. As part <strong>of</strong> a development team, a technicalwriter may be in charge <strong>of</strong> creating documentation describingthe data structures, classes, <strong>and</strong> functions within theprogram. This task is aided by a variety <strong>of</strong> tools includingfacilities for extracting such information automatically fromC++ or Java programs. The writer may also be responsible formaintaining logs that show each change or addition made tothe program during each compiled version or “build.”This type <strong>of</strong> technical writing requires detailed knowledge<strong>of</strong> operating systems, programming languages,s<strong>of</strong>tware development tools, <strong>and</strong> s<strong>of</strong>tware engineeringmethodology. It also requires the ability to work well aspart <strong>of</strong> a team, <strong>of</strong>ten under conditions <strong>of</strong> high pressure.Technical Writing as a Pr<strong>of</strong>essionUntil the 1980s, few institutions <strong>of</strong>fered degrees in technicalwriting. Programmers with an interest in writing orwriters with a technical bent entered the field informally.


472 technology policyDuring the 1980s, the number <strong>of</strong> degree <strong>of</strong>ferings increased,<strong>and</strong> people began to specifically prepare for the field, <strong>of</strong>tenby earning a computer science degree with a specializationin technical writing. Organizations such as the Society forTechnical Communication have <strong>of</strong>fered technical writers<strong>and</strong> editors a forum for discussing their pr<strong>of</strong>ession, includingissues relating to certification.Further ReadingAlred, Gerald J., Charles T. Brusaw, <strong>and</strong> Walter E. Oliu. The H<strong>and</strong>book<strong>of</strong> Technical Writing. 8th ed. Boston: St. Martin’s Press, 2006.Lindsell-Roberts, Sheryl. Technical Writing for Dummies. New York:Hungry Minds, 2001.Pringle, Alan S., <strong>and</strong> Sarah S. O’Keefe. Technical Writing 101: AReal-World Guide to Planning <strong>and</strong> Writing Technical Documentation.2nd ed. Research Triangle Park, N.C.: ScriptoriumPublishing Services, 2003.Society for Technical Communication. Available online. URL:http://www.stc.org/. Accessed August 22, 2007.technology policyPolicy makers have found themselves increasingly confrontedwith difficult issues relating to the Internet, theinformation industry, <strong>and</strong> an economy increasingly dependenton computing <strong>and</strong> communications technology. Aswith other complex issues such as health care, there hasbeen difficulty reaching a consensus or formulating comprehensiveor consistent policies.Historically many <strong>of</strong> the early innovators in moderncomputing (even Micros<strong>of</strong>t) have tended to keep alo<strong>of</strong> frompolitics <strong>and</strong> lobbying. This may have been due in part tolibertarian or laissez-faire beliefs that the best thing thegovernment could do for the information highway was tostay out <strong>of</strong> its way.Today, however, with vital economic interests <strong>and</strong> thous<strong>and</strong>s<strong>of</strong> jobs at stake, major computer companies have joinedthe political game with a vengeance. In turn, c<strong>and</strong>idates in therun up to the 2008 presidential election have not neglectedto court technology leaders. (For example, in 2008 leadingDemocratic c<strong>and</strong>idates Hillary Rodham Clinton <strong>and</strong> BarackObama both outlined extensive technology agendas.)Major policy issues involving information technologyindustries include:• foreign trade <strong>and</strong> the protection <strong>of</strong> intellectual property(see intellectual property <strong>and</strong> computing<strong>and</strong> s<strong>of</strong>tware piracy <strong>and</strong> counterfeiting)• attempts to reform the patent system to prevent whatis seen as dubious <strong>and</strong> expensive litigation• the need for an increasing number <strong>of</strong> trained workers<strong>and</strong> providing a sufficient number <strong>of</strong> visas for foreignworkers (see globalization <strong>and</strong> the computerindustry)• preserving equal access to the Internet (see net neutrality),which pits content providers against telecommunicationscompanies• promoting the development <strong>of</strong> a next-generationInternet infrastructure (“Internet 2”)• government support for computer research (such asthrough the National <strong>Science</strong> Foundation)—see governmentfunding <strong>of</strong> computer research• favorable treatment <strong>of</strong> online businesses with regardto taxation (<strong>of</strong>ten objected to by traditional brick<strong>and</strong>-mortarbusinesses)—see e-commerce• laws against computer-related fraud <strong>and</strong> other crime(see computer crime <strong>and</strong> security <strong>and</strong> onlinefrauds <strong>and</strong> scams)• Privacy regulations (see identity theft <strong>and</strong> privacyin the digital age)The computer industry is also involved in issues thatwill affect its future over the longer term, such as the needto improve math <strong>and</strong> science education in elementary <strong>and</strong>high schools, energy <strong>and</strong> environmental policy, <strong>and</strong> issuessuch as health care <strong>and</strong> pensions that affect all sectors <strong>of</strong>the economy.International AspectsIn a global industry, American information technology policycannot be considered without looking at the policies<strong>of</strong> other nations (both industrialized <strong>and</strong> developing) <strong>and</strong>their potential impacts. For example, China’s success (orlack there<strong>of</strong>) in protecting intellectual property has a directimpact on the revenue <strong>of</strong> major s<strong>of</strong>tware companies. Similarly,issues <strong>of</strong> censorship (see censorship <strong>and</strong> the Internet)create dilemmas for companies that must balanceconcern for human rights with the opportunity to enterhuge new markets. Other important aspects <strong>of</strong> comparativetechnology policy include research funding, subsidies, patent<strong>and</strong> copyright law, <strong>and</strong> labor st<strong>and</strong>ards.Further ReadingAspray, William, ed. Chasing Moore’s Law: Information <strong>Technology</strong>Policy in the United States. Raleigh, N.C.: SciTech Publishing,2004.Coopey, Richard, ed. Information <strong>Technology</strong> Policy: An InternationalHistory. New York: Oxford University Press, 2004.Marcus, Alan I., <strong>and</strong> Amy Sue Bix. The Future Is Now: <strong>Science</strong><strong>and</strong> <strong>Technology</strong> Policy in America since 1958. Amherst, N.Y.:Humanity Books, 2006.MIT Center for <strong>Technology</strong>, Policy, <strong>and</strong> Industrial Development.Available online. URL: http://web.mit.edu/ctpid. AccessedNovember 27, 2007.Nuechterlein, Jonathan E., <strong>and</strong> Philp J. Weiser. Digital Crossroads:American Telecommunications Policy in the Internet Age. Cambridge,Mass.: MIT Press, 2007.Ricadela, Aaron. “<strong>Technology</strong> Companies Have Much at Stake in2008.” Business Week, September 19, 2007. Available online.URL: http://www.businessweek.com/technology/content/sep2007/tc20070917_079427.htm. Accessed November 26, 2007.U.S. <strong>Technology</strong> Administration. Available online. URL: http://www.technology.gov/. Accessed November 27, 2007.telecommunicationsSince its birth in the mid-20th century, the digital computer<strong>and</strong> the telephone have had a close mutual relationship.Many <strong>of</strong> the first programmable calculators <strong>and</strong> computersbuilt in the early 1940s used relays <strong>and</strong> other compo-


telecommuting 473nents that were being manufactured for the increasinglyautomated phone system (see Aiken, Howard). The phoneindustry contributed ideas as well as hardware. Scientists atthe Bell Laboratories carried out fundamental research intoinformation theory that would soon be applied to data communications(see Shannon, Claude).As computers became more capable in the 1950s <strong>and</strong>1960s, they began to return the favor, making possibleincreasing automation for the phone system. Meanwhile,computers were starting to be hooked up to telephone lines(see modem) so they could exchange data <strong>and</strong> allow theirusers to communicate (see network).The development <strong>of</strong> a global network (see Internet)<strong>and</strong> its growth through the 1980s provided a universal platformfor data communications. At first, the Internet wasused mostly by academics <strong>and</strong> engineers, but the advent<strong>of</strong> the World Wide Web <strong>and</strong> in particular, graphical Webbrowsers made Internet access ubiquitous among smallbusinesses <strong>and</strong> home users by the late 1990s.Institutional Internet users <strong>of</strong>ten had fast access throughdedicated phone lines (designated T-1, <strong>and</strong> so on), whilehomes, small businesses, <strong>and</strong> schools were limited to muchslower dial-up access. This began to change in the late 1990sas alternatives to POTS (“plain old telephone service”)emerged in the form <strong>of</strong> DSL (a much faster service runningover regular phone lines) <strong>and</strong> cable modems that used theinfrastructure that already brought TV to millions <strong>of</strong> homes.Impact <strong>of</strong> DeregulationPrior to the court-ordered breakup <strong>of</strong> AT&T in 1984, thephone industry functioned in a monolithic way <strong>and</strong> wasnot very responsive to the needs <strong>of</strong> the growing computernetworking industry.The breakup <strong>of</strong> AT&T led to growing competition, providinga wider variety <strong>of</strong> telecommunications equipment<strong>and</strong> lower phone rates just as PC users were starting tobuy modems <strong>and</strong> sign up with online services <strong>and</strong> bulletinboards. The growing deregulation movement in the1990s (culminating in the Telecommunications Act <strong>of</strong>1996) furthered this process by opening cable <strong>and</strong> broadcasttelevision, radio, <strong>and</strong> other wireless communication tocompetition.With more than half <strong>of</strong> American Internet users onhigh-speed connections (see broadb<strong>and</strong>), the delivery <strong>of</strong>communications <strong>and</strong> media over the Net can only grow.Wireless <strong>and</strong> mobile services (satellite, cell network,<strong>and</strong> 802.11—see wireless computing) have also beengrowing vigorously. The result is that the “informationhighway” now has many lanes, with some being expresslanes.Convergence <strong>and</strong> the FutureThe ability <strong>of</strong> the Internet to transmit any sort <strong>of</strong> data virtuallyanywhere at relatively low cost has created new alternativesto traditional communications technologies. Forexample, sending digitized voice telephone calls as packetsover the Internet can provide a lower-cost alternativeto conventional long distance calling (see VoIP). At thesame time, previously separate functions are converginginto “smarter” devices. Thus, the h<strong>and</strong>held computer <strong>and</strong>the cell phone seem to be converging into a single devicethat can provide data management (see smartphone). Webbrowsing, <strong>and</strong> communications in a single package.<strong>Computer</strong>s <strong>and</strong> communications technology will continueto grow more intertwined. Today it is increasingly hard to distinguishinformation technology, media content, <strong>and</strong> communicationstechnology as being distinctive sectors. After all, aconsumer can watch a movie in the theater or later on broadcast,cable, or satellite TV, rent it on commercial videotapeor DVD disk (playable on PCs as well as portable players),or even view it as a streaming file direct from the Internet.Although these technologies have differing technical constraints,their end products are the same for the consumer.This multiplicity <strong>of</strong> function means that the competitiveenvironment is increasingly hard to predict, since there areso many possible players. The companies <strong>of</strong>fering contentthrough this variety <strong>of</strong> technologies are also increasinglyintertwined.For analysts, studying any technology requires awareness<strong>of</strong> the many possible alternatives, while studying anyapplication means considering the many possible technologicalimplementations. For policy makers <strong>and</strong> regulators,the challenge is to provide for such public goods as equalaccess, privacy, <strong>and</strong> protection <strong>of</strong> intellectual property in acommunications infrastructure that is truly global in scope<strong>and</strong> evolving at a pace that frequently outdistances thepolitical process.Further ReadingBenjamin, Stuart Minor, et al. Telecommunications Law <strong>and</strong> Policy.2nd ed. Durham, N.C.: Carolina Academic Press, 2006.———. Telecommunications Law <strong>and</strong> Policy, 2007 Supplement. Durham,N.C.: Carolina Academic Press, 2007.Goleniewski, Lillian. Telecommunications Essentials: The CompleteGlobal Source. 2nd ed. Upper Saddle River, N.J.: Addison-Wesley, 2007.Hill Associates. Telecommunications: A Beginner’s Guide. Berkeley,Calif.: McGraw-Hill/Osborne, 2002.“Media <strong>and</strong> Telecommunications Policy <strong>and</strong> Legislation.” M<strong>of</strong>fittLibrary, UC Berkeley. Available online, URL: http://www.lib.berkeley.edu/MRC/MediaPolicy.html. Accessed August 22,2007.Olejniczak, Stephen P. Telecom for Dummies. Hoboken, N.J.: Wiley,2006.telecommutingTelecommuting (also called telework) is the ability to workfrom home or from some location other than the main<strong>of</strong>fice. According to a report by the nonpr<strong>of</strong>it organizationWorldatWork, 28.7 million people worked from home atleast one day a month in 2006. (Self-employed persons, <strong>of</strong>course, have a much higher rate <strong>of</strong> working from home.)Telecommuting was made possible by the growing capabilities<strong>of</strong> home computers <strong>and</strong> the availability <strong>of</strong> networkconnections that allow the worker at home to have accessto most <strong>of</strong> the people <strong>and</strong> facilities that would be availableif the worker were on site. Workers <strong>and</strong> companies that promotetelecommuting <strong>of</strong>ten cite the following advantages:


474 telepresence• elimination <strong>of</strong> stressful, time-wasting commutes• workers may be more productive because they havefewer <strong>of</strong>fice distractions, unnecessary meetings, etc.• reduction <strong>of</strong> traffic, air pollution, <strong>and</strong> fuel costs• greater flexibility in working hours• the ability <strong>of</strong> working parents with small children tocombine child care <strong>and</strong> work to some extent• reduction <strong>of</strong> costs associated with <strong>of</strong>fice facilitiesHowever, telecommuting has its critics in management.Some <strong>of</strong> the problems or disadvantages cited include:• Worker productivity may decrease due to lack <strong>of</strong> sufficientdiscipline <strong>and</strong> workers becoming distracted athome.• managers may have trouble keeping track <strong>of</strong> or evaluatingthe activities <strong>of</strong> workers who are not physicallypresent.• Telecommuters may miss critical information <strong>and</strong> go“out <strong>of</strong> the loop.”• Security can be compromised, particularly throughtheft <strong>of</strong> laptops containing sensitive personal data.• Possible legal liabilities <strong>and</strong> application <strong>of</strong> OSHA rulesto home working situations.It is true that telecommuting is suitable mainly forjobs that involve information processing rather than person-to-personcontact, such as service jobs. However, theuse <strong>of</strong> videoconferencing or Web conferencing technologyincreasingly makes it possible for suitably equipped telecommutersto participate in meetings almost as directlyas if they were physically present (see conferencing systems<strong>and</strong> telepresence).In some cases involving videoconferencing or otheractivities that require high-powered computer systems <strong>and</strong>high b<strong>and</strong>width connections, telecommuters physicallycommute to a “satellite work center” near their home thathas the appropriate equipment. This can provide some <strong>of</strong>the advantages <strong>of</strong> telecommuting such as flexibility <strong>and</strong>lower commute <strong>and</strong> <strong>of</strong>fice costs.A number <strong>of</strong> issues must be worked out between workers<strong>and</strong> management for any telecommuting program, including:• Who will pay for the equipment used by the telecommuter• Procedures for monitoring the work• How telecommuters will participate in meetings(either remotely or in person)• The portion <strong>of</strong> the worker’s hours involving telecommuting,<strong>and</strong> the portion requiring attendance inhouseTrendsTelecommuting was touted in the mid-1990s as the wave<strong>of</strong> the future. In reality, the statistics given earlier suggestwhile it is a viable option for a significant minority <strong>of</strong>workers, telecommuting is not growing as rapidly as hadbeen predicted. The growing power <strong>of</strong> desktop PCs <strong>and</strong> theavailability <strong>of</strong> broadb<strong>and</strong> (DSL or cable) network connectionsshould help facilitate telecommuting. In the longerterm new technologies may make the distinction betweentelecommuters <strong>and</strong> physically present workers much lessimportant (see telepresence <strong>and</strong> virtual reality).Further ReadingAmerican Telecommuting Association. Available online. URL:http://www.yourata.com/index.html. Accessed August 22,2007.Dziak, Michael. Telecommuting Success: A Practical Guide for Stayingin the Loop While Working Away from the Office. Indianapolis:Park Avenue, 2001.Messmer, Ellen. “Telecommuting Security Concerns Grow.” Info-World, April 18, 2006. Available online. URL: http://www.infoworld.com/article/06/04/18/77520_HNtelecommuntingsecurity_1.html.Accessed August 22, 2007.Zetlin, Minda. Telecommuting for Dummies. New York: HungryMinds, 2001.telepresenceAn old phone company slogan asserted that “long distanceis the next best thing to being there.” Today technologyhas made the ability to “be there” a much more completeexperience. It is now quite common for businesspersonsto “attend” a meeting in a distant city using video camerasto see <strong>and</strong> be seen, with images <strong>and</strong> voice traveling overspecial leased lines or high speed Internet connections (seevideoconferencing).While videoconferencing <strong>and</strong> suitable s<strong>of</strong>tware allowsremote interaction <strong>and</strong> collaboration (such as being ableto build a spreadsheet or diagram together), the remoteparticipant has little ability to physically interact with theenvironment. He or she can’t walk freely around, perhapsjoining other meeting participants in an adjacent roomwhile they have pastries <strong>and</strong> c<strong>of</strong>fee. The remote participantalso cannot h<strong>and</strong>le physical objects such as models.There are two basic approaches to letting persons havean unconstrained experience in a remote environment. Thefirst is to use technology to create a virtual presence where aperson can experience a simulated environment from manydifferent angles <strong>and</strong> move freely through it while grasping<strong>and</strong> manipulating objects (see virtual reality). In a virtualenvironment each participant can be represented by an“avatar” body that can be programmed to move in responseto head trackers, gloves, <strong>and</strong> other devices.However, a virtual reality is an artificial representation<strong>of</strong> the world. A group <strong>of</strong> people having a meeting in a physicalspace can’t interact with someone who is in virtual spaceexcept in the most rudimentary ways. To be on an equalfooting, all participants would have to be in either physicalor virtual space.TeleroboticsThe alternative is to connect the remote participant to amobile robot (this is sometimes called telerobotics). Suchrobots already exist, although their capabilities are limited


terminal 475<strong>and</strong> they are not yet widely used for meetings. RodneyBrooks, director <strong>of</strong> the MIT Artificial Intelligence Laboratory,foresees a not very distant future in which such robotswill be commonplace.The robot will have considerable built-in capabilities,so the person who has “roboted in” to it won’t need toworry about the mechanics <strong>of</strong> walking, avoiding obstacles,or focusing vision on particular objects. Seeing <strong>and</strong> actingthrough the robot, the person will be able to move aroundan environment as freely as persons who are physically present.The operator can give general comm<strong>and</strong>s amounting to“walk over there” or “pick up this object” or perform moredelicate manipulations by using his or her h<strong>and</strong>s to manipulategloves connected to a force-feedback mechanism.Brooks sees numerous applications for robotic telepresence.For example, someone at work could “robot in” to hisor her household robot <strong>and</strong> do things such as checking tomake sure appliances are on or <strong>of</strong>f, respond to a burglaralarm, or even refill the cat’s food dish. Robotic telepresencecould also be used to bring expertise (such as that <strong>of</strong> asurgeon) to any site around the world without the time <strong>and</strong>expense <strong>of</strong> physical travel. Indeed, robots may be the onlyway (for the foreseeable future) that humans are likely toexplore environments far beyond Earth (see space exploration<strong>and</strong> computers).Further ReadingBallantyne, Garth H., Jacques Marescaux, <strong>and</strong> Pier Crist<strong>of</strong>oro Giulianotti.The Primer <strong>of</strong> Robotic <strong>and</strong> Telerobotic Surgery: A BasicGuide to Heart Disease. 4th ed. Baltimore: Lippincott Williams& Wilkins, 2004.Frere, Manuel, et al., eds. Advances in Telerobotics. New York:Springer, 2007.Goldberg, Ken, ed. The Robot in the Garden: Telerobotics <strong>and</strong> Telepistemologyin the Age <strong>of</strong> the Internet. Cambridge, Mass.: MITPress, 2000.NASA Space Telerobotics Program. Available online. URL: http://ranier.hq.nasa.gov/telerobotics_page/telerobotics.shtm.Accessed August 22, 2007.Sheppard, P. J., <strong>and</strong> G. R. Walker, eds. Telepresence. New York:Springer, 1998.Tele-Robotics Links [Online robots, etc.]. Available online. URL:http://queue.ieor.berkeley.edu/~goldberg/art/teleroboticslinks.html.Accessed August 22, 2007.templateThe term template is used in a several contexts in computing,but they all refer to a general pattern that can be customizedto create particular products such as documents.In a word processing program such as Micros<strong>of</strong>t Word, atemplate (sometimes called a style sheet) is a document thatcomes with a particular set <strong>of</strong> styles for various elementssuch as titles, headings, first <strong>and</strong> subsequent paragraphs,lists, <strong>and</strong> so on. Each style in turn consists <strong>of</strong> various characteristicssuch as type font, type style (such as bold), <strong>and</strong>spacing. The template also includes properties <strong>of</strong> the documentas a whole, such as margins, header, <strong>and</strong> footer.To create a new document, the user can select one <strong>of</strong>several built-in templates for different types <strong>of</strong> documentssuch as letters, faxes, <strong>and</strong> reports, or design a custom templateby defining appropriate styles <strong>and</strong> properties. Specialsequences <strong>of</strong> programmed actions can also be attached to atemplate (see macro).Templates can be created <strong>and</strong> used for applications otherthan word processing. A spreadsheet template consists <strong>of</strong>appropriate macros <strong>and</strong> formulas in an otherwise blankspreadsheet. When it is run, the template prompts the userto enter the appropriate values <strong>and</strong> then the calculationsare performed. A database program can have input formsthat serve in effect as templates for creating new records byinputting the necessary data.Class TemplatesSome programming languages use the term template to referto an abstract definition that can be used to create a variety<strong>of</strong> similar classes for h<strong>and</strong>ling different types <strong>of</strong> data, whichin turn are used to create actual objects. For example, oncethe programmer defines the following template:templateANY_TYPE maximum(ANY_TYPE a, ANY_TYPE b){return (a > b) ? a : b;This template provides any class with the maximumfunction, which can compare any two objects <strong>of</strong> that class<strong>and</strong> return the larger one. (See c++, class, <strong>and</strong> objectorientedprogramming.)Further ReadingAbrams, David, <strong>and</strong> Aleksey Gurtovoy. C++ Template Metaprogramming:Concepts, Tools, <strong>and</strong> Techniques from Boost <strong>and</strong>Beyond. Upper Saddle River, N.J.: Addison-Wesley Pr<strong>of</strong>essional,2004.Free Templates for Work, Home, <strong>and</strong> Play. Micros<strong>of</strong>t Office Online.Available online. URL: http://<strong>of</strong>fice.micros<strong>of</strong>t.com/en-us/templates/FX100595491033.aspx.Accessed August 22, 2007.“Introduction to the St<strong>and</strong>ard Template Library” [for C++]. SGI.Available online. URL: http://www.sgi.com/tech/stl/stl_introduction.html.Accessed August 22, 2007.Krieger, Stephanie. Advanced Micros<strong>of</strong>t Office Documents Inside Out.2007 ed. Redmond, Wash.: Micros<strong>of</strong>t Press, 2007.V<strong>and</strong>evoorde, David, <strong>and</strong> Nicolai M. Josuttis. C++ Templates: The CompleteGuide. Upper Saddle River, N.J.: Addison-Wesley, 2002.Utvich, Michael, Ken Milhous, <strong>and</strong> Yana Beylinson. 1 Hour WebSite: 120 Pr<strong>of</strong>essional Templates <strong>and</strong> Skins. Hoboken, N.J.:Wiley, 2006.Walkenbach, John. Micros<strong>of</strong>t Office Excel 2007 Bible. Indianapolis:Wiley, 2007.terminalThroughout the 1950s, operators interacted with computersprimarily by punching instructions onto cards that werethen fed into the machine (see punched cards <strong>and</strong> papertape). Although this noninteractive batch processing procedurewould continue to be used with mainframe computersduring the next two decades, another way to use computersbegan to be seen in the 1960s.With the beginning <strong>of</strong> time-sharing computer systems,several users could run programs on the computer at thesame time. The users communicated with the machine by


476 text editortyping comm<strong>and</strong>s into a Teletype or similar device. Such adevice is called a terminal.The simple early terminals did little more than acceptlines <strong>of</strong> text comm<strong>and</strong>s from the user <strong>and</strong> print responsesor lines <strong>of</strong> output coming from the computer. However, anewer type <strong>of</strong> terminal began to replace the Teletype. Itconsisted <strong>of</strong> a keyboard attached to a televisionlike cathoderay tube (CRT) display. User still typed comm<strong>and</strong>s, but thecomputer’s output could now be displayed on the screen.Gradually, CRT terminals gained additional capabilities.The text being entered was now stored in a memory bufferthat corresponded to the screen <strong>and</strong> the user could usespecial control comm<strong>and</strong>s or keys to move the input cursoranywhere on the screen when creating a text file. This madeit much easier for users to revise their input (see text editing).These “smart terminals” had their own small processor<strong>and</strong> ran s<strong>of</strong>tware that provided these functions.During the 1970s, the UNIX operating system developeda sophisticated way to support the growing variety <strong>of</strong>terminals. It provided a library <strong>of</strong> cursor-control routines(called curses) <strong>and</strong> a database <strong>of</strong> terminal characteristics(called termcap).When the personal computer came along, it had akeyboard, a processor, the ability to run s<strong>of</strong>tware, <strong>and</strong> aconnection for a TV or monitor. The PC thus had all theingredients to become a smart terminal. Indeed, a modernPC is a terminal, but users don’t usually have to think inthose terms. The exception is when the user runs a communicationsprogram to connect to a remote computer (perhapsa bulletin board) with a modem. These programs, suchas the Hyperterminal program that comes with Windows,allow the PC to emulate (work like) one <strong>of</strong> the st<strong>and</strong>ard terminaltypes such as VT-100. This ability to emulate a st<strong>and</strong>ardterminal means that any s<strong>of</strong>tware that supports thatphysical terminal should also work remotely with a PC.Today most interaction with remote programs is througha Web browser, although protocols such as telnet are stillused to provide terminallike access to remote programs.Many comm<strong>and</strong>s previously entered as text lines in a terminalare now given using the mouse with menus <strong>and</strong> icons(see user interface).The relationship between a terminal <strong>and</strong> remote computeris analogous to that between a workstation (or desktop PC)<strong>and</strong> the network server in that the burden <strong>of</strong> processing isdivided between the two devices in various ways (see clientservercomputing). A “thin client” PC performs relativelylittle processing with the server doing most <strong>of</strong> the work.Specialized terminals are still used for many applications.An ATM, for example, is a special-purpose bankingterminal driven by a keypad <strong>and</strong> touchscreen.Further ReadingArchive <strong>of</strong> Video Terminal Information. Available online. URL:http://www.cs.utk.edu/~shuford /terminal/index.html.Accessed August 22, 2007.Free S<strong>of</strong>tware Foundation. The Termcap Library. Available online.URL: http://www.gnu.org/manual/termcap-1.3/termcap.html.Accessed August 22, 2007.Linux Terminal Server Project. Available online. URL: http://www.ltsp.org/. Accessed August 22, 2007.text editorAs noted in the previous article (see terminal), an alternativeto batch-processing punch card driven computer operationsemerged in the 1960s in the form <strong>of</strong> text comm<strong>and</strong>styped at an interactive console or terminal. At first textcould be typed only a line at a time <strong>and</strong> there was no way tocorrect a mistake in a previous line.Soon, however, programmers began to create text editingprograms. The first editors were still line-oriented, butthey stored the lines for the current file in memory. To displaya previous line, the user might simply type its number.To correct a word in the line the user might type somethinglikec/fot/forto change the typo “fot” to the word “for” in the current line.Starting in the early 1970s, the UNIX system providedboth a line editor (ed or ex) <strong>and</strong> a “visual editor” (vi). The lattereditor works with terminals that can display full screens<strong>of</strong> text <strong>and</strong> allow the cursor to be moved anywhere on thescreen. This type <strong>of</strong> editor is also called a screen editor.Most ordinary PC users use word processors rather thantext editors to create documents. Unlike a text editor, aword processor’s features are designed to create output thatlooks as much like a printed document as possible. Thisincludes the ability to specify text fonts <strong>and</strong> styles. However,most systems also include a simpler text editor thatcan be useful for making quick notes (in Windows this programis indeed called Notepad).The primary use <strong>of</strong> text editors today is to create programs<strong>and</strong> scripts. These must generally be created usingonly st<strong>and</strong>ard ASCII characters (see characters <strong>and</strong>strings), without all the embedded formatting comm<strong>and</strong>s<strong>and</strong> graphics found in word processing documents. Programmer’stext editors can be very sophisticated in theirown right, providing features such as built in syntax checking<strong>and</strong> formatting or (as with the Emacs editor) the abilityto program the editor itself. Ultimately, however, programeditors must create a source code file that can be processedby the compiler.Text editors are also useful for writing quick, shortscripts (see scripting languages) <strong>and</strong> can be h<strong>and</strong>y forwriting HTML code for the Web. However, many Web pagesare now designed using word processor–like programs thatconvert the WYSIWYG (what you see is what you get) formattinginto appropriate HTML codes automatically.Further ReadingCameron, Debra, et al. Learning GNU Emacs. 3rd ed. Sebastapol,Calif.: O’Reilly, 2005.Chassell, Robert J. An Introduction to Programming in Emacs Lisp.2nd ed. Boston, Mass.: GNU Press, 2004.Robbins, Arnold, <strong>and</strong> Linda Lamb. Learning the vi Editor. 6th ed.Sebastapol, Calif.: O’Reilly, 1998.Shareware Text Editors, Word Processors, etc. Available online.URL: http://www.passtheshareware.com/c-txtwp.htm. AccessedAugust 22, 2007.Smith, Larry L. How to Use the UNIX-LINUX vi Text Editor: Tips,Tricks, <strong>and</strong> Techniques (And Tutorials Too!) Charleston, S.C.:BookSurge, 2007.


Torvalds, Linus 477texting <strong>and</strong> instant messagingAlthough they use different devices <strong>and</strong> formats, textmessaging on cell phones <strong>and</strong> PDAs <strong>and</strong> instant messagingthrough online services have much in common. Bothinvolve sending short messages to other users who canreceive them <strong>and</strong> reply as soon as they are online. (Thisis an ad hoc connection that differs from a chat room [seechat, online] in that the latter is an established locationwhere people go to converse with other members. It alsodiffers from an online discussion group [see conferencingsystems <strong>and</strong> netnews <strong>and</strong> newsgroups] where messagesare posted <strong>and</strong> may be replied to later, but there is noreal-time communication.)Text messaging or texting uses a protocol called ShortMessage Service (SMS), which is available with most cellphones <strong>and</strong> service plans as well as PDAs that have wirelessconnections. When a user sends a message to a designatedrecipient, it goes to a service center where it isrouted to the destination phone; if that phone is not connected,the message is stored <strong>and</strong> retried later. Typicallymessages are limited to 160 characters, though up to sixor so messages can be concatenated <strong>and</strong> treated as a longermessage.While texting did not become popular until the late1990s, instant messaging began in the 1970s as a way formultiple users on a shared computer or network (such asa UNIX system) to communicate in real time using comm<strong>and</strong>ssuch as send <strong>and</strong> talk (the latter being more conversational—seechat, online). In the late 1980s <strong>and</strong> early1990s, various dial-up services (see America Online <strong>and</strong>online services) provided for sending text messages (AOLwas the first to use the term instant messages for its facility).By the mid-1990s instant messaging was well established onthe Internet, <strong>of</strong>ten employing a graphical user interface, aswith ICQ <strong>and</strong> AOL Instant Messenger (AOL later acquiredICQ as well).There have been efforts to allow users <strong>of</strong> different instantmessaging systems to communicate with one another, butresistance on the part <strong>of</strong> the proprietary networks (<strong>of</strong>tenciting security concerns) has hobbled this process thus far.Instant messaging has also been implemented as an applicationfor phones <strong>and</strong> other mobile devices (an effort headedby the Open Mobile Alliance). Generally this involvesreworking the IM s<strong>of</strong>tware to use the SMS text service tocarry messages.Cultural ImpactBetween 2000 <strong>and</strong> 2004 the numbers <strong>of</strong> text messages sentworldwide soared from 17 billion to 500 billion. At about adime a message, texting became a major source <strong>of</strong> revenuefor phone companies. Since then, texting has continuedto grow, particularly in parts <strong>of</strong> Europe, the Asia-Pacificregion (particularly China), <strong>and</strong> Japan (where it has largelybecome an Internet-based service).In the United States texting is most popular amongteenagers (see young people <strong>and</strong> computing). It is notuncommon to see a bench full <strong>of</strong> teens talking excitedly toone another while carrying on simultaneous texting withunseen friends in what, to many adult onlookers, appearsto be an incomprehensible code, their conversation perhapsending with ttyl (talk to you later).Loosely affiliated groups communicating by text (seeflash mobs) have organized everything from “happenings”to serious protest campaigns (as in the anti-WTO [WorldTrade Organization] demonstrations in Seattle in 1999 <strong>and</strong>in the Philippines uprising in 2001.)The popularity <strong>of</strong> texting has increasingly attracted theattention <strong>of</strong> fraudsters (see phishing <strong>and</strong> spo<strong>of</strong>ing <strong>and</strong>spam) as well as more legitimate marketers.Further ReadingAll about Instant Messengers. Available online. URL: http://aboutmessengers.com/. Accessed November 29, 2007.Hord, Jennifer. “How SMS Works.” Available online. URL: http://communication.howstuffworks.com/sms.htm. AccessedNovember 29, 2007.Le Bodic, Gwenael. Mobile Messaging Technologies <strong>and</strong> Services:SMS, EMS <strong>and</strong> MMS. 2nd ed. New York: John Wiley <strong>and</strong> Sons,2005.Rheingold, Howard. Smart Mobs: The Next Social Revolution. Cambridge,Mass.: Perseus Books, 2003.SMS Speak Translator. Available online. URL: http://smspup.com/smsSpeak.php. Accessed November 29, 2007.“Web Messengers H<strong>and</strong>book.” Available online. URL: http://web2.ajaxprojects.com/web2/newsdetails.php?itemid=35. AccessedNovember 29, 2007.Torvalds, Linus(1969– )FinnishS<strong>of</strong>tware DeveloperLinus Torvalds developed Linux, a free version <strong>of</strong> the UNIXoperating system that has become the most popular alternativeto proprietary operating systems.Torvalds was born on December 28, 1969, in Helsinki,Finl<strong>and</strong>. His childhood coincided with the microprocessorrevolution <strong>and</strong> the beginnings <strong>of</strong> personal computing.At the age <strong>of</strong> 10, he received a Commodore PC from hisgr<strong>and</strong>father, a mathematician. He learned to write his owns<strong>of</strong>tware to make the most out <strong>of</strong> the relatively primitivemachine.In 1988, Torvalds enrolled in the University <strong>of</strong> Helsinkito study computer science. There he encountered UNIX, apowerful <strong>and</strong> flexible operating system that was a delightfor programmers who liked to tinker with their computingenvironment. Having experienced UNIX, Torvalds couldno longer be satisfied with the operating systems that ranon most PCs, such as MS-DOS, which lacked the powerfulcomm<strong>and</strong> shell <strong>and</strong> hundreds <strong>of</strong> utilities that UNIX userstook for granted.Torvalds’s problem was that the UNIX copyright wasowned by AT&T, which charged $5,000 for a license to runUNIX. To make matters worse, most PCs weren’t powerfulenough to run UNIX anyway.At the time there was already a project called GNUunderway (see open source <strong>and</strong> Stallman, Richard). TheFree S<strong>of</strong>tware Foundation was attempting to replicate all thefunctions <strong>of</strong> UNIX without using any <strong>of</strong> AT&T’s proprietary


478 touchscreencode. This would mean that the AT&T copyright wouldnot apply, <strong>and</strong> the functional equivalent <strong>of</strong> UNIX could begiven away for free. Stallman <strong>and</strong> the FSF had already providedkey tools such as the C compiler <strong>and</strong> the Emacs programeditor. However, they had not yet created the heart <strong>of</strong>the operating system (see kernel). The kernel contains theessential functions needed for the operating system to controlthe computer’s hardware, such as creating <strong>and</strong> managingfiles on the hard drive.In 1991, Torvalds wrote his own kernel <strong>and</strong> put ittogether with the various GNU utilities to create what soonbecame known as Linux. Torvalds adopted the open sourcelicense (GPL) pioneered by Stallman <strong>and</strong> the FSF, allowingLinux to be distributed freely. The s<strong>of</strong>tware soon spreadthrough ftp sites on the Internet, where hundreds <strong>of</strong> enthusiasticusers (mainly at universities) helped to improveLinux, adding features <strong>and</strong> writing drivers to enable it towork with more kinds <strong>of</strong> hardware.By the mid-1990s, the free <strong>and</strong> reliable Linux hadbecome the operating system <strong>of</strong> choice for many Web sitedevelopers. Torvalds, who still worked at the University <strong>of</strong>Helsinki as a researcher, faced an ever-increasing burden<strong>of</strong> coordinating Linux development <strong>and</strong> deciding when torelease successive versions. As companies sprang up to markets<strong>of</strong>tware for Linux, they <strong>of</strong>fered Torvalds very attractivesalaries, but he did not want to be locked into one particularLinux package (distribution).Instead, in 1997 Torvalds moved to California’s SiliconValley, where he became a key s<strong>of</strong>tware engineer at Transmeta,a company that makes Crusoe, a processor designedfor mobile computing.In 2003 Torvalds left Transmeta. In 2004 he movedto Portl<strong>and</strong>, Oregon, where the Linux Foundation, a nonpr<strong>of</strong>itconsortium dedicated to promoting the growth <strong>of</strong>Linux, supports his work. There he concentrates on guidingthe continuing development <strong>of</strong> the Linux core, or kernel.Although he strongly supports open-source s<strong>of</strong>tware, Torvaldshas been criticized by some advocates for his pragmaticapproach <strong>of</strong> using proprietary s<strong>of</strong>tware when it seemsto be more suitable to a given task.Further ReadingDibona, Chris. Open Sources: Voices from the Open Source Revolution.Sebastapol, Calif.: O’Reilly, 2001.“FM Interview with Linus Torvalds: What Motivates Free S<strong>of</strong>twareDevelopers?” First Monday, vol. 3 (1998). Available online.URL: http://www.firstmonday.org/issues/issue3_3/torvalds/.Accessed August 23, 2007.Linux Foundation. Available online. URL: http://www.linuxfoundation.org/en/Main_Page.Accessed August 23, 2007.Richardson, Marjorie. “Interview: Linus Torvalds.” Linux Journal,November 1, 1999. Available online. URL: http://www.linuxjournal.com/article/3655.Accessed August 23, 2007.Torvalds, Linus, <strong>and</strong> David Diamond. Just for Fun: The Story <strong>of</strong> anAccidental Revolutionary. New York: HarperCollins, 2001.touchscreenAs the name implies, a touchscreen is a screen display thatcan respond to various areas being touched or pressed.Invented in 1971, the first form <strong>of</strong> touchscreens to becomepart <strong>of</strong> daily life were found on automatic teller machines(ATMs) <strong>and</strong> point-<strong>of</strong>-sale credit card processors.Touchscreens can detect the pressure <strong>of</strong> a finger or stylusin several ways: A “resistive” touchscreen uses two layers<strong>of</strong> electrically conductive metallic material separated bya space. When an area is touched, the two layers are electricallyconnected, <strong>and</strong> the change in electrical current is registered<strong>and</strong> converted to a code that identifies the locationtouched. Surface acoustic wave (SAW) touchscreens usean ultrasonic wave that is interrupted by a touch; capacitivetouchscreens respond to the change in electron storage(capacitance) caused by contact with a human body. Variousother acoustic, mechanical (strain-based), or opticalsystems can also be used, with the latter being particularlypopular.Touchscreens can have drawbacks ranging from problemswith long fingernails to screen “keys” placed too closetogether for normal fingers. Responsiveness is also considerablyslower than with a keyboard. Depending on the technologyused, dirt or grease can also become a problem.Other ApplicationsIn addition to dedicated uses such as banking <strong>and</strong> retailing,touchscreens are a common form <strong>of</strong> input for mobilephones, PDAs, <strong>and</strong> similar devices (see pda <strong>and</strong> smartphone)where a “virtual” on-screen keyboard is <strong>of</strong>ten usedfor entering text. Particularly versatile systems such asApple’s iPhone combine proximity sensors with touchscreentechnology in order to be able to recognize gestures suchas pinching <strong>and</strong> flicking. Another example is Micros<strong>of</strong>t’s“Surface” interface. (For related technologies, see graphicstablet <strong>and</strong> tablet pc.)Further ReadingBaig, Edward C. iPhone for Dummies. New York: Wiley, 2007.Buxton, Bill. “Multi-Touch Systems That I Have Known <strong>and</strong>Loved.” Available online. URL: http://www.billbuxton.com/multitouchOverview.html. Accessed November 29, 2007.Micros<strong>of</strong>t Surface. Available online. URL: http://www.micros<strong>of</strong>t.com/surface/. Accessed November 29, 2007.Plaisant, Catherine. “High-Precision Touchscreens: MuseumKiosks, Home Automation <strong>and</strong> Touchscreen Keyboards.”University <strong>of</strong> Maryl<strong>and</strong> Human-<strong>Computer</strong> Interaction Lab,January 31, 1999. Available online. URL: http://www.cs.umd.edu/hcil/touchscreens/. Accessed November 29, 2007.Woyke, Elizabeth. “Reach Out <strong>and</strong> Touch—A Phone Screen.”Forbes.com, November 28, 2007. Available online. URL:h t t p: // w w w. f o r b e s . c o m / t e c h n o l o g y / 2 0 0 7/ 11 / 2 8 /touch-screen s-phone s -tech-hol id ay tech07- c x _ e w_1128touch.html. Accessed November 29, 2007.transaction processingMany computer applications involve the arrival <strong>of</strong> a set <strong>of</strong>data that must be processed in a specified way. For example,a bank’s ATM system receives a customer’s request todeposit money together with identification <strong>of</strong> the account<strong>and</strong> the amount to be deposited. The system must accept thedeposit, update the account balance, <strong>and</strong> return a receipt tothe customer. This is an example <strong>of</strong> real-time transactionprocessing.


tree 479Some applications process transactions in batches. Forexample, a company may run a program once a month thatgenerates paychecks <strong>and</strong> withholding stubs from employeerecords that include hours worked, number <strong>of</strong> dependentsclaimed, <strong>and</strong> so on. Indeed, in the ATM example, theaccount balance is typically not updated during the on-linetransaction, but instead a batch transaction is stored. Overnightthat transaction will be processed together with othertransactions affecting that account (such as checks), <strong>and</strong>the balance will then be <strong>of</strong>ficially updated. (The programmodule that keeps track <strong>of</strong> the progress <strong>of</strong> transactions iscalled a transaction monitor.)There are several considerations that are important indesigning transaction systems. While some transactionsmay simply involve a request for information <strong>and</strong> do notupdate any files, many transactions may require that severalfiles or database records be updated. For example, a transfer<strong>of</strong> funds from a saving account to a checking account willrequire that both accounts be updated: the first with a debit<strong>and</strong> the second with a credit. What happens if the computerperforms the savings debit but then goes down before thechecking account can be credited? The result would be anupset customer whose money seems to have disappeared.The solution to this problem is to design a process wherethe various updates are done not to the actual databasesbut to associated temporary databases. Once these potentialtransactions are posted, the system issues a “commit” comm<strong>and</strong>to the databases. Each database must send a replyacknowledging that it’s ready to perform the actual update.Only if all databases reply affirmatively is the commit comm<strong>and</strong>given, which updates all the databases simultaneously.stored in a binary tree, a program can use two pointers, oneto the current node’s left child <strong>and</strong> one to its right child(see pointers <strong>and</strong> indirection). The pointers can then beused to trace the paths through the nodes. If the tree representsa file that has been sorted (see sorting <strong>and</strong> searching),comparing nodes to the desired value <strong>and</strong> branchingaccordingly quickly leads to the desired record.Alternatively, the data can be stored directly in contiguousmemory locations corresponding to the successivenumbers <strong>of</strong> the nodes. This method is faster than havingto trace through successive pointers, <strong>and</strong> a binary searchalgorithm can be applied directly to the stored data. On theother h<strong>and</strong> it is easier to insert new items into a linked list(see list processing).A common solution is to combine the two structures,storing the linked list in a contiguous range <strong>of</strong> memory bystoring its root in the middle <strong>of</strong> the range, its left child atthe beginning <strong>of</strong> the range, its right child at the end, <strong>and</strong>then repeatedly splitting each portion <strong>of</strong> the range to storeeach level <strong>of</strong> children. Intuitively, one can see that algorithmsfor processing such stored trees will take a recursiveapproach (see recursion).Further ReadingLewis, Philip M., Arthur Bernstein, <strong>and</strong> Michael Kifer. Databases<strong>and</strong> Transaction Processing: An Application-Oriented Approach.Upper Saddle River, N.J.: Addison-Wesley, 2002.Little, Mark, Jon Maron, <strong>and</strong> Greg Pavlik. Java Transaction Processing:Design <strong>and</strong> Implementation. Upper Saddle River, N.J.:Prentice Hall PTR, 2004.treeThe tree is a data structure that consists <strong>of</strong> individual intersectionscalled nodes. The tree normally starts with a singleroot node. (Unlike real trees, data trees have their root atthe top <strong>and</strong> branch downward.) The root connects to oneor more nodes, which in turn branch into additional nodes,<strong>of</strong>ten through a number <strong>of</strong> levels. (A node that branchesdownward from another node is called that node’s childnode.) A node at the bottom that does not branch any furtheris called a terminal node or sometimes a leaf.Trees are useful for expressing many sorts <strong>of</strong> hierarchicalstructures such as file systems where the root <strong>of</strong> a diskholds folders that in turn can hold files or additional folders,<strong>and</strong> so on down many levels. (A corporate organizationchart is a noncomputer example <strong>of</strong> a hierarchical tree.)The most common type <strong>of</strong> tree used as a data structureis the binary tree. A binary tree is a tree in which nonode has more than two child nodes. To move through dataIn a binary tree each node either has two branch (child) nodes oris a terminal node. Here a binary tree is shown with the equivalentrepresentation in an array <strong>of</strong> memory locations. Notice that thenumbers are stored level by level (50 in the top level, 25 <strong>and</strong> 75 inthe second level, <strong>and</strong> so on.) Null would be a special value (suchas -1) representing an empty node.


480 trends <strong>and</strong> emerging technologiesFor efficiency it’s important to keep all branches <strong>of</strong> a treeapproximately the same length. A B-tree (balanced tree) isdesigned to automatically optimize itself in this way.Trees lend themselves to game programs where a series<strong>of</strong> moves <strong>and</strong> their possible replies must be explored tovarying levels. A chess program will typically create a treefrom the current position, but use various criteria to determinewhich moves should be explored beyond just a fewlevels, thus “pruning” the game tree.Further ReadingBrookshear, J. Glenn. <strong>Computer</strong> <strong>Science</strong>: An Overview. 9th ed. Boston:Addison-Wesley, 2006.Lafore, Robert. Data Structures & Algorithms in Java. 2nd ed. Indianapolis:Sams, 2002.Parlante, Nick. “Binary Trees.” Available online. URL: http://cslibrary.stanford.edu/110/BinaryTrees.html. Accessed August23, 2007.trends <strong>and</strong> emerging technologiesBecause <strong>of</strong> the complexity <strong>of</strong> computer systems, s<strong>of</strong>tware,<strong>and</strong> business models, it is easy to “fail to see the forest forthe trees.” Stepping back once in a while to see what ischanging (or likely to change) is recommended. Such a perspectiveis particularly useful for pr<strong>of</strong>essionals who need toperiodically evaluate their skills against the market, investors,venture capitalists, journalists, <strong>and</strong> educators.It is nearly a commonplace to say that the future is comingat an accelerating rate (for the ultimate speculation, seesingularity, technological). What adds to the challengeis the way each new technology (<strong>and</strong> social adaptation)has multiple consequences, whether it is social networking,“viral marketing,” or individually targeted, location-awareadvertising. At the same time, attempting to distinguishshort-term hype from genuine trends is always difficult—anyone in the computing field can compile a glossary <strong>of</strong>now-obsolete buzzwords. Thus reading a variety <strong>of</strong> perspectivesfrom advocates to pundits to critics is essential.Overall TrendsThat said, the following table suggests some activities thatare in transition from a traditional model to one that reflectsemerging technological <strong>and</strong> social trends.Fromtodesktop PCmobile <strong>and</strong> pervasive computingwired networkswireless <strong>and</strong> mobile computingseparate h<strong>and</strong>ling <strong>of</strong> media integrated media serversbroadcastinguser-driven, customizable channels<strong>of</strong> mediauser as consumer user as contributor <strong>and</strong> sharerindividual consumers social networkings<strong>of</strong>tware as product s<strong>of</strong>tware as serviceproprietary codeopen sourceinterface-driven tasks search-driven interfacesarbitrarily organized data semantically retrievableinformation.e-commerceintegration <strong>of</strong> online <strong>and</strong> traditionalchannelsFor more information about emerging trends, see thefollowing entries: digital convergence, open-sourcemovement, service-oriented architecture, smartbuildings <strong>and</strong> homes, social networking, ubiquitouscomputing, user-created content, Web 2.0 <strong>and</strong>beyond, Web services.Further ReadingHaskin, David. “Don’t Believe the Hype: The 21 Biggest <strong>Technology</strong>Flops.” <strong>Computer</strong>world, April 4, 2007. Available online.URL: http://www.computerworld.com/action/article.do?articleId=9012345&comm <strong>and</strong>=viewArticleBasic. AccessedNovember 29, 2007.Piquepaille, Rol<strong>and</strong>. “Emerging <strong>Technology</strong> Trends” [blog]. ZDNet.Available online. URL: http://blogs.zdnet.com/emergingtech/.Accessed November 29, 2007.Plunkett Research. “Plunkett’s E-Commerce & Internet Industry.”Available online. URL: http://www.plunkettresearch.com/Industries/ECommerceInternet/tabid/151/Default.aspx.Accessed November 29, 2007.———. “Plunkett’s InfoTech, <strong>Computer</strong>s & S<strong>of</strong>tware Industry.”Available online. URL: http://www.plunkettresearch.com/Industries/InfoTech<strong>Computer</strong>sS<strong>of</strong>tware/tabid/152/Default.aspx. Accessed November 29, 2007.Seidensticker, Bob. Future Hype: The Myths <strong>of</strong> <strong>Technology</strong> Change.San Francisco: Berrett-Koehler, 2006.trust <strong>and</strong> reputation systemsTrust <strong>and</strong> reputation are inherently connected. Participantsin any transaction (such as respondents to classified ads orparticipants in an online auction) want assurance that theywill receive the promised value in exchange for what theyare giving up. The default anonymity <strong>of</strong> online transactions(see anonymity <strong>and</strong> the Internet) presents a challenge:How does one obtain information about someone’s reputation(how he or she has behaved previously) <strong>and</strong> thus beassured <strong>of</strong> his or her reliability?One solution is to collect <strong>and</strong> characterize the experiences<strong>of</strong> participants in previous transactions with thatperson or entity. For an auction (see auctions, online <strong>and</strong>eBay), the system can solicit <strong>and</strong> tabulate ratings (“feedback”)by participants in each transaction. However, thiskind <strong>of</strong> simple system must guard against being subvertedby people who create false identities (fronts) <strong>and</strong> transactions<strong>and</strong> use them to inflate the feedback score.A more sophisticated reputation system can be used forranking Web pages, contributions (such as blogs or productreviews), or other works. Instead <strong>of</strong> giving each participantthe same single “vote,” the feedback is weighted accordingto the responder’s own reputation. Thus if a number<strong>of</strong> people whose own product reviews have been highlyrecommended also recommend another review, that reviewwill be much more highly rated. Examples <strong>of</strong> this sort <strong>of</strong>system include the PageRank algorithm used by Google,the consumer review site Epinions.com, <strong>and</strong> the “techie”favorite Slashdot.Developing a trust <strong>and</strong> reputation system that is effectivebut unobtrusive is particularly important for the collaborativecreation <strong>of</strong> content such as for search engines<strong>and</strong> wikis (see user-created content <strong>and</strong> wikis <strong>and</strong>Wikipedia).


Turing, Alan Mathison 481Online attacks on reputation (defamation) are also agrowing problem for both businesses <strong>and</strong> individuals. Evenif the perpetrator is legally prosecuted or otherwise forcedto stop, removing the defamatory material (<strong>and</strong> links to it)can be difficult, since the material may have been extensivelycached, archived, or otherwise copied. Thus consultantsin “reputation management” have begun to <strong>of</strong>fer theirservices to the victims <strong>of</strong> undeserved negative reputations.(This includes optimizing for search engines so that negativematerial will be pushed to the bottom <strong>of</strong> the results.)Further ReadingDellarocas, Chrysanthos. “Reputation Mechanisms” [overview<strong>and</strong> resources]. University <strong>of</strong> Maryl<strong>and</strong>, R. H. Smith School <strong>of</strong>Business. Available online. URL: http://www.washingtonpost.com/wp-dyn/content/article/2007/07/01/AR2007070101355.html? hpid=artslot. Accessed November 29, 2007.Kinzie, Susan, <strong>and</strong> Ellen Nakashima. “Calling In Pros to RefineYour Google Image.” Washington Post.com, July 2, 2007.Available online. URL: http://www.washingtonpost.com/wp-dyn/content/article/2007/07/01/AR2007070101355.html?hpid=artslot. Accessed November 29, 2007.Masum, Hassan, <strong>and</strong> Yi-Cheng Zhang. “Manifesto for the ReputationSociety.” First Monday, vol. 9 (July 2004). Availableonline. URL: http://www.firstmonday.org/issues/issue9_7/masum/index.html. Accessed November 29, 2007.Solove, Daniel J. The Future <strong>of</strong> Reputation: Gossip, Rumor, <strong>and</strong> Privacyon the Internet. New Haven, Conn.: Yale University Press,2007.Trust Metrics Evaluation Project. Available online. URL: http://www.trustlet.org/wiki/Trust_Metrics_Evaluation_project.Accessed November 29, 2007.Turing, Alan Mathison(1912–1954)BritishMathematician, <strong>Computer</strong> ScientistAlan Turing’s broad range <strong>of</strong> thought pioneered manybranches <strong>of</strong> computer science, ranging from the fundamentaltheory <strong>of</strong> computability to the question <strong>of</strong> what mightconstitute true artificial intelligence.Turing was born in London on June 23, 1912. His fatherworked in the Indian (colonial) Civil Service, while hismother came from a family that had produced a number <strong>of</strong>distinguished scientists. As a youth Turing showed greatinterest <strong>and</strong> aptitude in both physical science <strong>and</strong> mathematics.When he entered King’s College, Cambridge, in1931, his first great interest was in probability, where hewrote a well-regarded thesis on the Central Limit Theorem.Turing’s interest then turned to the question <strong>of</strong> whatproblems could be solved through computation (see computability<strong>and</strong> complexity). Instead <strong>of</strong> pursuing conventionalmathematical strategies, he re-imagined the problemby creating the Turing Machine, an abstract “computer”that performs only two kinds <strong>of</strong> operations: writing ornot writing a symbol on its imaginary tape, <strong>and</strong> possiblymoving one space on the tape to the left or right. Turingshowed that from this simple set <strong>of</strong> states (see finitestate machine) any possible type <strong>of</strong> calculation could beconstructed. His 1936 paper “On Computable Numbers”together with another researcher’s different approach (seeChurch, Alonzo) defined the theory <strong>of</strong> computability.Turing then came to America, studied at Princeton University,<strong>and</strong> received his Ph.D. in 1938.Turing did not remain in the abstract realm, however,but began to think about how actual machines could performsequences <strong>of</strong> logical operations. When World War IIerupted, Turing returned to Britain <strong>and</strong> went into servicewith the government’s Bletchley Park code-breaking facility.He was able to combine his previous work on probability<strong>and</strong> his new insights into computing devices to help analyzecryptosystems such as the German Enigma cipher machine<strong>and</strong> to design specialized code-breaking machines.As the war drew to an end, Turing’s imagination broughttogether what he had seen <strong>of</strong> the possibilities <strong>of</strong> automaticcomputation, <strong>and</strong> particularly the faster machines thatwould be made possible by harnessing electronics ratherthan electromechanical relays. In 1946, he received a Britishgovernment grant to build the ACE (Automatic ComputingEngine). This machine’s design incorporated advanced programmingconcepts such as the storing <strong>of</strong> all instructionsin the form <strong>of</strong> programs in memory without the mechanicalsetup steps required for machines such as the ENIAC.Another important idea <strong>of</strong> Turing was that programs couldmodify themselves by treating their own instructions justlike other data in memory. However, the engineering <strong>of</strong> theadvanced memory system led to delays, <strong>and</strong> Turing left theproject in 1948 (it would be completed in 1950). Turing alsocontinued his interest in pure mathematics <strong>and</strong> developed anew interest in a completely different field, biochemistry.Turing’s last <strong>and</strong> perhaps greatest impact would come inthe new field <strong>of</strong> artificial intelligence. Working at the University<strong>of</strong> Manchester, Turing devised a concept that becameknown as the Turing Test. In its best-known variation, thetest involves a human being communicating via a Teletypewith an unknown party that might be either another personor a computer. If a computer at the other end is sufficientlyable to respond in a humanlike way, it may fool the humaninto thinking it is another person. This achievement couldin turn be considered strong evidence that the computer istruly intelligent. Since Turing’s 1950 article computer programssuch as ELIZA <strong>and</strong> Web “chatterbots” have been ableto temporarily fool people they encounter, but no computerprogram has yet been able to pass the Turing Test whensubjected to extensive probing questions by a knowledgeableperson.Alan Turing had a secret that was very dangerous in thattime <strong>and</strong> place: He was gay. In 1952, the socially awkwardTuring stumbled into a set <strong>of</strong> circumstances that led to hisbeing arrested for homosexual activity, which was illegal<strong>and</strong> heavily punished at the time. The effect <strong>of</strong> his trial <strong>and</strong>forced medical “treatment” suggested that his death fromcyanide poisoning on June 7, 1954, was probably a suicide.Alan Turing’s many contributions to computer sciencewere honored by his being elected a Fellow <strong>of</strong> the BritishRoyal Society in 1951 <strong>and</strong> by the creation <strong>of</strong> the prestigiousTuring Award by the Association for Computing Machinery,given every year since 1966 for outst<strong>and</strong>ing contributionsto computer science.


482 Turkle, SherryFurther ReadingHenderson, Harry. Modern Mathematicians. New York: Facts OnFile, 1996.Herken, R. The Universal Turing Machine. 2nd ed. London: OxfordUniversity Press, 1988.Hodges, A. Alan Turing: The Enigma. New York: Simon & Schuster,1983. Reprinted New York: Walker, 2000.———. “Alan Turing” [Web site]. Available online. URL: http://www.turing.org.uk/. Accessed August 23, 2007.Turing, Alan M. “Computing Machinery <strong>and</strong> Intelligence.” Mind,vol. 49, 1950, 433–460.———. “On Computable Numbers, with an Application to theEntscheidungsproblem.” Proceedings <strong>of</strong> the London MathematicalSociety, vol. 2, no. 42, 1936–1937, 230–265.———. “Proposed Electronic Calculator.” In Carpenter, B. E. <strong>and</strong>R. W. Doran, eds. A. M. Turing’s ACE Report <strong>of</strong> 1946 <strong>and</strong> otherPapers. Charles Babbage Institute Reprint Series in the History<strong>of</strong> Computing, vol. 10. Cambridge, Mass.: MIT Press,1986.Turkle, Sherry(1948– )AmericanScientist, WriterFrom the time cyberspace began to become a reality in the1980s, Sherry Turkle has been a pioneer in studying thepsychological, social, <strong>and</strong> existential effects <strong>of</strong> computeruse <strong>and</strong> online interaction.Turkle was born Sherry Zimmerman on June 18, 1948,in Brooklyn, New York. After graduating from AbrahamLincoln High School as valedictorian in 1965, she enrolledin Radcliffe College (which later became part <strong>of</strong> HarvardUniversity) in Cambridge, Massachusetts. However, whenshe was a junior her mother died, she quarreled with herstepfather, <strong>and</strong> dropped out <strong>of</strong> Radcliffe because she was nolonger able to keep up with her studies.Turkle then went to France, which by the late 1960s hadbecome the scene <strong>of</strong> social <strong>and</strong> intellectual unrest. A newmovement called poststructuralism was <strong>of</strong>fering a radicalcritique <strong>of</strong> modern institutions. Turkle became fascinatedby its ideas <strong>and</strong> attended seminars by such key figures asMichael Foucault <strong>and</strong> Rol<strong>and</strong> Barthes. In particular, personalexperience <strong>and</strong> intellectual interest joined in spurringher to investigate personal identity in the modern world.Poststructuralism <strong>and</strong> postmodernism see identity assomething constructed by society or by the individual, notsomething inherent. The new philosophers spoke <strong>of</strong> peopleas having multiple identities between which they couldmove “fluidly.” In being able to try on a new identity forherself, Turkle could see the applicability <strong>of</strong> these ideasto her own life <strong>and</strong> began to explore how they may alsoexplain the changes that were sweeping through society.Turkle decided to return to the United States to resumeher studies. In 1970 she received an A.B. degree in socialstudies, summa cum laude, from Radcliffe. After workingfor a year with the University <strong>of</strong> Chicago’s Committee onSocial Thought, she enrolled in Harvard, receiving an M.A.in sociology in 1973. She went on to receive her doctoratein sociology <strong>and</strong> personality psychology in 1976, writingabout the relationship between Freudian thought <strong>and</strong> themodern French revolutionary movements.Psychology <strong>of</strong> CyberspaceAfter getting her Harvard Ph.D. Turkle accepted a positionas an assistant pr<strong>of</strong>essor <strong>of</strong> sociology at nearby MIT. Hereshe found a culture as exotic as that <strong>of</strong> the French intellectuals,but seemingly very different. In encountering theMIT hackers that would later be described in Steven Levy’sbook Hackers, Turkle became intrigued by the way the studentswere viewing all <strong>of</strong> reality (including their own emotions)through the language <strong>of</strong> computers.For many <strong>of</strong> the MIT computer students, the mindwas just another computer, albeit a complicated one. Anemotional overload required “clearing the buffer,” <strong>and</strong>troubling relationships should be “debugged.” Fascinated,Turkle began to function as an anthropologist, takingnotes on the language <strong>and</strong> behavior <strong>of</strong> the computer students.In her second book, The Second Self: <strong>Computer</strong>s <strong>and</strong>the Human Spirit (1984), Turkle says that the computer forits users is not an inanimate lump <strong>of</strong> metal <strong>and</strong> plastic, butan “evocative object” that <strong>of</strong>fers images <strong>and</strong> experiences<strong>and</strong> draws out emotions. She also explained that the computercould satisfy deep psychological needs, particularlyby <strong>of</strong>fering a detailed but structured “world” (as in a videogame) that could be mastered, leading to a sense <strong>of</strong> power<strong>and</strong> security.Although the computer culture <strong>of</strong> the time was largelymasculine, Turkle also observed that this evocative nature<strong>of</strong> technology could also allow for a “s<strong>of</strong>t approach” basedon relationship rather than rigorous logic. This “feminine”approach usually met with rejection. Turkle believed thatthis message had to be changed if girls were not to be leftbehind in the emerging computer culture.Turkle had already observed how computer activities(especially games) <strong>of</strong>ten led users to assume new identities,but she had mainly studied st<strong>and</strong>-alone computer use. Inthe 1990s, however, online services <strong>and</strong> the Internet in particularincreasingly meant that computer users were interactingwith other users over networks. In her 1995 bookLife on the Screen, Turkle takes readers inside the fascinatingworld <strong>of</strong> the MUD, or multi-user dungeon (see onlinegames). In this fantasy world created by descriptive text,users could assume any identity they wished. An insecureteenage boy could become a mighty warrior—or perhaps aseductive woman. A woman, by assuming a male identity,might find it easier to be assertive <strong>and</strong> would avoid the sexism<strong>and</strong> harassment <strong>of</strong>ten directed at females.The immersive world <strong>of</strong> cyberspace <strong>of</strong>fers promises, perils,<strong>and</strong> potential, according to Turkle. As with other media,the computer world can become a source <strong>of</strong> unhealthyescapism, but it can also give people practice in using socialskills in a relatively safe environment, although there canbe difficulty in transferring skills learned online to a faceto-faceenvironment.Although the computer has provided a new mediumfor the play <strong>of</strong> human identity, Turkle has pointed out thatthe question <strong>of</strong> identity (<strong>and</strong> the reality <strong>of</strong> multiple identities)is inherent in the postmodern world. Looking to the


typography, computerized 483future, Turkle suggests that the boundary between cyberspace<strong>and</strong> so-called real life is vanishing, forcing people toconfront the question <strong>of</strong> what “reality” means. Meanwhile,she remains concerned about the paradox in which peoplemay be becoming at once more connected <strong>and</strong> more alienatedthan ever before.Turkle married artificial intelligence pioneer <strong>and</strong> educatorSeymour Papert; the marriage ended in divorce. Shecontinues today at MIT as a pr<strong>of</strong>essor <strong>of</strong> the sociology <strong>of</strong>science <strong>and</strong> as director <strong>of</strong> the MIT Initiative on <strong>Technology</strong><strong>and</strong> Self. She has received a number <strong>of</strong> fellowships, includinga Rockefeller Foundation fellowship (1980), a Guggenheimfellowship (1981), Fellow <strong>of</strong> the American Associationfor the Advancement <strong>of</strong> <strong>Science</strong> (1992), <strong>and</strong> World EconomicForum Fellow (2002).In 1984 Turkle was selected Woman <strong>of</strong> the Year by Ms.magazine, <strong>and</strong> she has made a number <strong>of</strong> other lists <strong>of</strong>influential persons such as the “Top 50 Cyber Elite” <strong>of</strong> TimeDigital (1997) <strong>and</strong> Time Magazine’s Innovators <strong>of</strong> the Internet(2000).Further Reading“Sherry Turkle” [Home page]. Available online. URL: http://web.mit.edu/sturkle/www/. Accessed November 29, 2007.Turkle, Sherry. “Can You Hear Me Now?” Forbes, May 7, 2007, p.176.———. Evocative Objects: Things We Think With. Cambridge,Mass.: MIT Press, 2007.———. Life on the Screen: Identity in the Age <strong>of</strong> the Internet. NewYork: Simon <strong>and</strong> Schuster, 1995.———. The Second Self: <strong>Computer</strong>s <strong>and</strong> the Human Spirit. NewYork: Simon <strong>and</strong> Schuster, 1984.typography, computerizedThe more than five-century-old art <strong>of</strong> typography (thedesign, arrangement, <strong>and</strong> setting <strong>of</strong> printing type) wastransformed in the latter part <strong>of</strong> the 20th century by digitaltechnology. With the exception <strong>of</strong> some traditional pressesdevoted to the fine book market, nearly all type used todayis designed <strong>and</strong> set by computer.Most users are familiar with the typefaces distributedwith their operating system <strong>and</strong> s<strong>of</strong>tware, such as the popularAdobe <strong>and</strong> TrueType (see Adobe systems <strong>and</strong> font).Many such font designs are based on (<strong>and</strong> sometimes namedafter) traditional typefaces, modified for readability usingtypical displays <strong>and</strong> printers.For control <strong>of</strong> composition, there are three overlappinglevels <strong>of</strong> s<strong>of</strong>tware, ranging from easiest to use (but mostlimited) to most complex, versatile, <strong>and</strong> precise. Modernword processors such as Micros<strong>of</strong>t Word <strong>and</strong> Open Officeprovide enough control for many types <strong>of</strong> shorter documents(see word processing). Desktop publishing s<strong>of</strong>twareadds facilities suitable for layout <strong>of</strong> fliers, brochures,newsletters, <strong>and</strong> similar publications that <strong>of</strong>ten mix text<strong>and</strong> graphics (see desktop publishing).More elaborate documents such as books, magazines,<strong>and</strong> newspapers require more sophisticated facilitiesto control the layout <strong>and</strong> flow <strong>of</strong> text. Some traditionalchoices include LaTex (for the Tex typesetting program),used particularly by scientists <strong>and</strong> other academics, <strong>and</strong>the older tr<strong>of</strong>f <strong>and</strong> its <strong>of</strong>fshoots on UNIX systems. Morerecent programs include Quark, FrameMaker, PageMaker,<strong>and</strong> InDesign. Related utilities <strong>of</strong>ten used in digital typographyinclude font editors (for design <strong>and</strong> modification) <strong>and</strong>utilities to convert fonts from one format to another.Further ReadingBringhurst, Robert. The Elements <strong>of</strong> Typographic Style. Version 3.0.Point Roberts, Wash.: Hartley & Marks, 2004.Ellison, Andy. The Complete Guide to Digital Type: Creative Use <strong>of</strong>Typography in the Digital Arts. New York: Collins Design, 2004.FontLab. Available online. URL: http://www.fontlab.com/i.Accessed November 30, 2007.FontSite: Digital Typography & Design. Available online. URL:http://www.fontsite.com/. Accessed November 30, 2007.Knuth, Donald E. <strong>Computer</strong>s <strong>and</strong> Typesetting. 5 vols. Upper SaddleRiver, N.J.: Addison-Wesley Pr<strong>of</strong>essional, 2001.Page Layout Programs. Aeonix Publishing Group. Availableonline. URL: http://www.aeonix.com/pagelay.htm. AccessedNovember 30, 2007.Tr<strong>of</strong>f: The Text Processor for Typesetters. Available online. URL:http://tr<strong>of</strong>f.org/. Accessed November 30, 2007.


Uubiquitous computingTraditionally people have thought <strong>of</strong> computers as discretedevices (such as a desktop or h<strong>and</strong>held device), used forspecific purposes such as to send e-mail or browse the Web.However, many researchers <strong>and</strong> futurists are looking towarda new paradigm that many believe is rapidly emerging. Ubiquitous(or pervasive) computing focuses not on individualcomputers <strong>and</strong> tasks but on a world where most objects(including furniture <strong>and</strong> appliances) have the ability to communicateinformation. (This has also been called “the Internet<strong>of</strong> things.”) This can be viewed as the third phase in aprocess where the emphasis has gradually shifted from individualdesktops (1980s) to the network <strong>and</strong> Internet (1990s)to mobile presence <strong>and</strong> the ambient environment.Some examples <strong>of</strong> ubiquitous computing might include:• picture frames that display pictures attuned to theuser’s activities• “dashboard” devices that can be set to display changinginformation such as weather <strong>and</strong> stock quotes• parking meters that can provide verbal directions tonearby attractions• kiosks or other facilities to provide verbal cues toguide travelers, such as through airports• home monitoring systems that can sense <strong>and</strong> dealwith accidents or health emergenciesUbiquitous computing greatly increases the ability <strong>of</strong>people to seamlessly access information for their dailyactivities, but the fact that the user is in effect “embedded”in the network can also raise issues <strong>of</strong> privacy <strong>and</strong> thereceiving <strong>of</strong> unwanted advertising or other information (seeprivacy in the digital age).An early center <strong>of</strong> research in ubiquitous computing wasXerox PARC, famous for its development <strong>of</strong> graphical userinterfaces (particularly the work <strong>of</strong> Mark Weiser). Today amajor force is MIT (see MIT Media Lab), especially its ProjectOxygen, which explores networks <strong>of</strong> embedded computers.This challenging research area brings together aspects<strong>of</strong> many other fields (see artificial intelligence, distributedcomputing, psychology <strong>of</strong> computing, smart buildings <strong>and</strong>homes, touchscreen, user interface, <strong>and</strong> wearable computers).Note that while the user’s experience <strong>of</strong> ubiquitouscomputing might be similar in some ways to that <strong>of</strong> virtualreality, the latter puts the user into a computer-generatedworld, while the former uses computing power to enhancethe user’s connections to the outside world (see virtualreality).Further ReadingGreenfield, Adam. Everywhere: The Dawning Age <strong>of</strong> UbiquitousComputing. Berkeley, Calif.: New Riders, 2006.Igoe, Tom. Making Things Talk: Practical Methods Connecting PhysicalObjects. Sebastapol, Calif.: O’ Reilly, 2007.MIT Project Oxygen. Available online. URL: http://www.oxygen.lcs.mit.edu/. Accessed November 30, 2007.Morville, Peter. Ambient Findability: What We Find Changes WhoWe Become. Sebastapol, Calif.: O’Reilly, 2005.Terdiman, Daniel. “Meet the Metaverse, Your New Digital Home.”CNET News. Available online. URL: http://news.com.com/Meet+the+metaverse%2C+your+new+digital+home/2100-1025_3-6175973.html. Accessed November 30, 2007.484


UNIX 485Vasilakos, Athanasios, <strong>and</strong> Witold Pedrycz, eds. Ambient Intelligence,Wireless Networking, <strong>and</strong> Ubiquitous Computing. Boston:Artech House, 2006.UNIXBy the 1970s, time-sharing computer systems were in use atmany universities <strong>and</strong> engineering <strong>and</strong> research organizations.Such systems, <strong>of</strong>ten running on computers such asthe PDP series (see minicomputer), required a new kind<strong>of</strong> operating system that could manage the resources foreach user as well as the running <strong>of</strong> multiple programs (seemultitasking).An elaborate project called Multics had been begun inthe 1960s in an attempt to create such an operating system.However, as the project began to bog down, two <strong>of</strong> its participants,Ken Thompson <strong>and</strong> Dennis Ritchie (see Ritchie,Dennis) decided to create a simple, more practical operatingsystem for their PDP-7. The result would become UNIX,an operating system that today is a widely used alternativeto proprietary operating systems such as those from IBM<strong>and</strong> Micros<strong>of</strong>t.ArchitectureThe essential core <strong>of</strong> the UNIX system is the kernel, whichprovides facilities to organize <strong>and</strong> access files (see kernel<strong>and</strong> file), move data to <strong>and</strong> from devices, <strong>and</strong> controlthe running <strong>of</strong> programs (processes). In designing UNIX,Thompson deliberately kept the kernel small, noting that hewanted maximum flexibility for users. Since the kernel wasthe only part <strong>of</strong> the system that could not be reconfigured orreplaced by the user, he limited it to those functions that reliability<strong>and</strong> efficiency dictated be h<strong>and</strong>led at the system level.Another way in which the UNIX kernel was kept simplewas through device independence. This meant that instead<strong>of</strong> including specific instructions for operating particularmodels <strong>of</strong> terminal, printers, or plotters within the kernel,generic facilities were provided. These could then be interfacedwith device drivers <strong>and</strong> configuration files to controlthe particular devices.A UNIX system typically has many users, each <strong>of</strong> whommay be running a number <strong>of</strong> programs. The interface thatprocesses user comm<strong>and</strong>s is called the shell. It is importantto note that in UNIX a shell is just another program,so there can be (<strong>and</strong> are) many different shells reflectingvarying tastes <strong>and</strong> purposes (see shell). Traditional UNIXshells include the Bourne shell (sh), C shell (csh), <strong>and</strong> Kornshell (ksh). Modern UNIX systems can also have graphicaluser interfaces similar to those found on Windows <strong>and</strong>Macintosh personal computers (see user interface).Working with Comm<strong>and</strong>sUNIX systems come with hundreds <strong>of</strong> utility programs thathave been developed over the years by researchers workingat Bell Labs <strong>and</strong> campuses such as the University <strong>of</strong> Californiaat Berkeley (UCB). These range from simple comm<strong>and</strong>sfor working with files <strong>and</strong> directories (such as cd to set acurrent directory <strong>and</strong> ls to list the files in a directory) tolanguage compilers, editors, <strong>and</strong> text-processing utilities.Whatever shell is used, UNIX provides several key featuresfor constructing comm<strong>and</strong>s. A powerful system <strong>of</strong>patterns (see regular expression) can be used to find filesthat match various criteria. For a very simple example, thecomm<strong>and</strong>% ls *.docwill list all files in the current directory that end in .doc.(The % represents the comm<strong>and</strong> prompt given by the shell.)Most earlier operating systems used special syntax torefer to devices such as the user’s terminal <strong>and</strong> the printer.UNIX, however, treats devices just like other files. Thismeans that a program can receive its input by opening a terminalfile <strong>and</strong> send its output to another file. For example:% cat > noteThis is a note.^DThe cat (short for concatenate) comm<strong>and</strong> adds the user’sinput to a file called note. The ^D st<strong>and</strong>s for Control-D, thespecial character that marks end-<strong>of</strong>-file. Once the comm<strong>and</strong>finishes, there is a file called note on the disk, which can belisted by the ls comm<strong>and</strong>:% ls –l note-rw———- 1 hrh well 16 Mar 25 20:16 noteThe contents <strong>of</strong> the file can be checked by issuinganother cat comm<strong>and</strong>:% cat noteThis is a note.Many comm<strong>and</strong>s default to taking keyboard input if noinput file is specified. For example, one can type sort followedby a list <strong>of</strong> words to sort:% sortapplepearorangetangerinelemon^DOnce the input is finished, the sort comm<strong>and</strong> outputsthe sorted list:applelemonorangepeartangerineOne <strong>of</strong> the things that makes UNIX attractive to its usersis the ability to combine a set <strong>of</strong> comm<strong>and</strong>s in order to performa task. For example, suppose a user on a timesharingsystem wants to know which other users are logged on. Thewho comm<strong>and</strong> provides this information, but it includes alot <strong>of</strong> details that may not be <strong>of</strong> interest. Suppose one justwants the names <strong>of</strong> the current users. One way to do this isto connect the output <strong>of</strong> the who comm<strong>and</strong> to awk, a scriptinglanguage (see awk <strong>and</strong> scripting languages).


486 USB% who | awk ' { print $1 }'Here the vertical bar (called a pipe) connects the output<strong>of</strong> the first comm<strong>and</strong> to the input <strong>of</strong> the second. Thus, theawk comm<strong>and</strong> receives the output <strong>of</strong> the who comm<strong>and</strong>.The statement print $1 tells awk to output the first columnfrom who’s output, which is just the names <strong>of</strong> the users.The first part <strong>of</strong> the list looks like this:mnemonicberniekryannanlevgoddessjbradydemaristechgirlThis is fine, but the output might be better if it were sorted.All that’s needed is to add one more pipe to connect the output<strong>of</strong> the awk comm<strong>and</strong> to the sort comm<strong>and</strong>:% who | awk ' {print $1}' | sortaarongaimeealmanacamicusautumnbiscuitbradburnbrianThe ability to redirect input <strong>and</strong> output <strong>and</strong> to use pipes toconnect comm<strong>and</strong>s makes it easy for UNIX users to createmini-programs called scripts to perform tasks that wouldrequire full-fledged compiled programs on other systems.For example, the preceding comm<strong>and</strong> could be put into afile called users, <strong>and</strong> the file could be set to be executable.Once this is done, all the user has to do to get the user listis to type users at a shell prompt. Today UNIX users have awide choice <strong>of</strong> powerful scripting languages (see perl <strong>and</strong>python).Unix Then <strong>and</strong> NowThe versatility <strong>of</strong> UNIX quickly made it the operating system<strong>of</strong> choice for most campuses <strong>and</strong> laboratories, as well asfor many s<strong>of</strong>tware developers. When PCs came along in thelate 1970s <strong>and</strong> 1980s, they generally lacked the resources torun UNIX, but developers <strong>of</strong> PC operating systems such asCP/M <strong>and</strong> MS-DOS were influenced by UNIX ideas includingthe hierarchical file system with its levels <strong>of</strong> directories,the use <strong>of</strong> a comm<strong>and</strong>-processing shell, <strong>and</strong> wildcards formatching filenames.Besides hardware requirements, another barrier to theuse <strong>of</strong> UNIX by home <strong>and</strong> business users was that theoperating system was copyrighted by Bell Labs <strong>and</strong> a UNIXlicense <strong>of</strong>ten cost more than the PC to run it on. However,a combination <strong>of</strong> the efforts <strong>of</strong> the Free S<strong>of</strong>tware Foundation(see Stallman, Richard) <strong>and</strong> a single inspired programmer(see Torvalds, Linus) resulted in the release <strong>of</strong>Linux, an operating system that is fully functionally compatiblewith UNIX but uses no AT&T code <strong>and</strong> is thus free<strong>of</strong> licensing fees (see Linux).Although UNIX has been somewhat overshadowed byits Linux progeny, a variety <strong>of</strong> open-source versions <strong>of</strong> traditionalUNIX systems have become available. In 2005 SunMicrosystems released OpenSolaris (based on UNIX SystemV). There is also OpenBSD, derived from the UC BerkeleyS<strong>of</strong>tware Distribution (but with stronger security features),<strong>and</strong> available for most major platforms. Finally, the continuinginfluence <strong>of</strong> UNIX can also be seen in the currentgeneration <strong>of</strong> operating systems for the Apple Macintosh(see os x).Further ReadingBach, Maurice J. The Design <strong>of</strong> the UNIX Operating System. UpperSaddle River, N.J.: Prentice Hall, 1986.Lucas, Michael W. Absolute OPENBSD: UNIX for the Practical Paranoid.San Francisco: No Starch Press, 2003.OpenBSD. Available online. URL: http://www.openbsd.org/.Accessed August 23, 2007.OpenSolaris Project. Available online. URL: http://www.opensolaris.org/os/. Accessed August 23, 2007.Peek, Jerry, Grace Todino-Gonquet, <strong>and</strong> John Strang. Learning theUNIX Operating System. 5th ed. Sebastapol, Calif.: O’ReillyMedia, 2002.Robbins, Arnold. UNIX in a Nutshell. 4th ed. Sebastapol, Calif.:O’Reilly Media, 2005.Salus, Peter H. A Quarter Century <strong>of</strong> UNIX. Reading, Mass.: Addison-Wesley,1994.“Unix Introduction <strong>and</strong> Quick Reference.” Available online. URL:http://www.decf.berkeley.edu/help/h<strong>and</strong>outs/unix-intro.pdf.Accessed August 23, 2007.USBThe traditional ways to connect a computer to peripheraldevices such as printers are via parallel <strong>and</strong> serial connections(see parallel port <strong>and</strong> serial port). Both methodsare st<strong>and</strong>ardized <strong>and</strong> reliable, but by the mid-1990s peoplewanted to connect many more data-hungry devices totheir PCs, including scanners, digital cameras, <strong>and</strong> externalstorage drives. Besides wanting faster data transfers,system designers looked for a way to connect more deviceswithout having to add more ports to the motherboard.It would also be convenient to be able to plug or unplugdevices without having to reboot the PC. The UniversalSerial Bus (USB) has all these features: It is relatively fast<strong>and</strong> quite flexible.Introduced in 1996, USB uses a four-wire cable withsmall rectangular connectors. Devices can be connecteddirectly to the host USB hub built into the computer. Alternatively,a second hub can be connected to the host hub,allowing for several devices to share the same connection.(Often for convenience, monitors <strong>and</strong> other devices nowinclude built-in USB hubs for ease in connecting otherdevices on the desktop.)Two <strong>of</strong> the four wires carry power from the PCs powersupply (or from a secondary powered hub) to the connecteddevices. The other two wires carry data. The 1s <strong>and</strong> 0s inthe data are signaled by the difference in voltage betweenthe two wires. (This tends to reduce the effects <strong>of</strong> outside


user-created content 487electromagnetic interference, since if both wires are affectedsimilarly, the difference between them won’t change.)When a USB device is connected, it creates a voltagechange that causes the USB system in the PC to queryit for identifying information. If the information indicatesthat the device has not been installed, the operating systembegins an installation procedure that can be carried outeither automatically or with a little help from the user (seeplug <strong>and</strong> play).Once a device is installed, its identifying informationtells the USB system what data rate it can h<strong>and</strong>le. (Somedevices, such as keyboards, don’t need to be very fast, whileothers, such as CD drives, place a premium on speed.) TheUSB system assigns each device an address. The systemfunctions like a miniature token-ring network, sending queriesor comm<strong>and</strong>s with tokens identifying the appropriatedevice. The devices respond to requests that have their token<strong>and</strong> in turn send requests when they have data to transmit.The USB system can assign priorities to devices accordingto their need for an uninterrupted flow <strong>of</strong> data. Arecordable CD (CD-RW) drive, for example, is sensitive tointerruptions in the flow <strong>of</strong> data, so it is given a high priority.A keyboard sends only a tiny bit <strong>of</strong> data at a time, <strong>and</strong> itcan get by with a low priority, requesting service as needed.Other devices such as scanners <strong>and</strong> printers may h<strong>and</strong>le alarge flow <strong>of</strong> data, but are not very sensitive to interruptions<strong>and</strong> can have a medium priority.The original USB specification allowed for up to 12 MB/sec data transfers. However, the current USB 2.0 specificationallows speeds up to 480 MB/sec, enough to easily h<strong>and</strong>le adigital camera, scanner, <strong>and</strong> CD-RW drive simultaneously.Today USB connections are also <strong>of</strong>ten used to add externalhard drive storage as well as for h<strong>and</strong>y “thumb drives”or “memory sticks” that make it easy to carry one’s documents<strong>and</strong> even s<strong>of</strong>tware from one machine to the next (seeflash drive). Finally, a USB-connected wireless adapter(see Bluetooth <strong>and</strong> wireless computing) can be themost convenient way to put an older desktop or laptop PCinto communication with the rest <strong>of</strong> the world.Further ReadingAxelson, Jan. “USB Central” [Web site]. Available online. URL:http://www.lvr.com/usb.htm. Accessed August 23, 2007.———. USB Complete: Everything You Need to Develop Custom USBPeripherals. 3rd ed. Madison, Wisc.: Lakeview Research,2005.———. USB Mass Storage: Designing <strong>and</strong> Programming Devices <strong>and</strong>Embedded Hosts. Madison, Wisc.: Lakeview Research, 2006.ZDNET USB Resources. Available online. URL: http://updates.zdnet.com/tags/USB.html?t=17&s=0&o=0. Accessed August23, 2007.user-created contentTraditional print <strong>and</strong> broadcast media divide the worldinto two groups: content producers <strong>and</strong> content consumers.However, as noted by its creator Tim Berners-Lee atits very beginning, the World Wide Web had at least thepotential for users to take an active role in linking existingcontent <strong>and</strong> contributing their own (see Berners-Lee, Tim<strong>and</strong> World Wide Web). Indeed, Berners-Lee wanted Webclient s<strong>of</strong>tware to include not only browsing functions buteasy ways for users to create their own Web pages.In reality, early users faced something <strong>of</strong> a learningcurve, usually having to cope with HTML to some extent,for example. But by the mid-2000s a variety <strong>of</strong> new media<strong>of</strong> communication had become readily accessible using anordinary Web browser at sites that host the required s<strong>of</strong>tware.The most prominent applications are blogs (see blogs<strong>and</strong> blogging) <strong>and</strong> wikis, particularly Wikipedia (seewikis <strong>and</strong> Wikipedia).Meanwhile, inexpensive digital still <strong>and</strong> video cameras<strong>and</strong> easy-to-use editing s<strong>of</strong>tware encouraged people to maketheir own media creations. Sites to enable users to upload,share, <strong>and</strong> comment on their creations have flourished (seeYouTube).The growth <strong>of</strong> sites such as Facebook <strong>and</strong> MySpace(see social networking) has also provided new ways forusers from junior high school age on up to create <strong>and</strong> sharecontent.Applications <strong>and</strong> IssuesThe effects <strong>of</strong> this ability to create as well as consume mediaare proving to be far-reaching. YouTube, for example, hasfeatured elaborate documentaries <strong>and</strong> controversial politicalpieces. C<strong>and</strong>idates in the 2008 presidential primarycampaign had to deal with a new debate format where voter’squestions, rather than being read by a moderator, arepresented in videos created by the voters themselves.User-created content is also becoming significant inmedia <strong>and</strong> journalism. Some newspapers are even beginningto experiment with assigning stories to volunteer collaborators—possiblyas a way <strong>of</strong> coping with diminishingrevenues <strong>and</strong> budgets for pr<strong>of</strong>essional journalists.Forms <strong>of</strong> user-created content are also increasinglyprevalent in the traditional broadcast media. While previouslyexisting only in such forms as talk radio <strong>and</strong> gameshows, more or less unscripted participation is now foundin reality TV <strong>and</strong> the endless variants on American Idol.Economists <strong>and</strong> social scientists are beginning toexplore how a combination <strong>of</strong> open-source, user-createdcontent, <strong>and</strong> mass collaboration are changing how informationis assembled <strong>and</strong> used <strong>and</strong> even how products aredesigned (see open-source movement).However, user-created content also raises challenges:What kind <strong>of</strong> journalistic st<strong>and</strong>ards might be applied to nonpr<strong>of</strong>essionalreporting <strong>and</strong> documentaries? (See journalism<strong>and</strong> computers.) What should be the responsibility <strong>of</strong> theowner <strong>of</strong> a venue such as YouTube for content that might violatesomeone’s copyright or be defamatory? The creation <strong>of</strong>content that contains information about personal identity canalso be problematic from a privacy <strong>and</strong> security st<strong>and</strong>point.Finally, in venues such as online games where users mayhave spent hundreds <strong>of</strong> hours creating content, the question<strong>of</strong> who owns it <strong>and</strong> what they can do with it is significant.Further ReadingEspejo, Roman. User-Generated Content. (At Issue Series). Farmington,Mich.: Greenhaven Press, 2007.


488 user groupsGar<strong>of</strong>oli, Joe. “User News Sites Offer Diverse Stories, SomeQuestionable Sources.” San Francisco Chronicle. Availableonline. URL: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/09/12/MNPDS3RE6.DTL&hw=user+content&sn=001&sc=100. Accessed November 30, 2007.Gillmor, Dan. We the Media: Grassroots Journalism by the People, forthe People. Cambridge, Mass.: O’Reilly, 2004.Hietannen, Herkko, Ville Oksanen, <strong>and</strong> Vikko Valimaki. CommunityCreated Content: Law, Business, <strong>and</strong> Policy. Helsinki,Finl<strong>and</strong>: Turre Publishing, 2007.King, Brad. “User-Created Content Comes to TV.” <strong>Technology</strong>Review blogs, December 5, 2006. Available online. URL:http://www.technologyreview.com/blog/editors/17485/.Accessed November 30, 2007.Tapscott, Don, <strong>and</strong> Anthony D. Williams. Wikinomics: How MassCollaboration Changes Everything. New York: Portfolio, 2006.Vickery, Graham, <strong>and</strong> Sacha Wunsch-Vincent. Participative Web<strong>and</strong> User-Created Content: Web 2.0 Wikis <strong>and</strong> Social Networking.Paris: Organization for Economic Cooperation <strong>and</strong> Development,2007.user groups<strong>Computer</strong> users have always had an interest in finding <strong>and</strong>sharing information about the systems they are trying touse. As early as 1955, users <strong>of</strong> the IBM 701 mainframeb<strong>and</strong>ed together, in this case to try to influence IBM’s decisionsabout new s<strong>of</strong>tware. Later, users <strong>of</strong> minicomputersmade by Digital Equipment Corporation formed DECUS.By the mid-1970s, microcomputer experimenters hadorganized several groups, <strong>of</strong> which the most influential wasprobably the Homebrew <strong>Computer</strong> Club, meeting first in agarage in Menlo Park, California, 1975. The group soon wasfilling an auditorium at Stanford University. Members demonstrated<strong>and</strong> explained their h<strong>and</strong>-built computer systems,argued the merits <strong>of</strong> kits such as the Altair, <strong>and</strong> later, witnessedSteve Wozniak’s prototype Apple I computer.At the other end <strong>of</strong> the scale, users <strong>of</strong> UNIX on universitycomputer systems had formed USENIX, the UNIX user’sgroup. A growing system <strong>of</strong> newsgroups called USENET(see netnews <strong>and</strong> newsgroups) would soon extendbeyond UNIX concerns to hundreds <strong>of</strong> other topics.Early PC users had great need for user groups. Technicalsupport was primitive <strong>and</strong> the variety <strong>of</strong> computerbooks limited, so the best way to get quirky hardware orbalky s<strong>of</strong>tware to work was <strong>of</strong>ten to ask fellow users, readuser group newsletters, or skim through the great variety<strong>of</strong> small publications that catered to users <strong>of</strong> particular systems.Users could also meet to swap public domain s<strong>of</strong>twaredisks. User groups could be formed around s<strong>of</strong>tware as wellas hardware. Thus, users could swap spreadsheet templatesor discuss Photoshop techniques.User groups have gradually become less important, orperhaps it is better to say that they have changed theirmode <strong>of</strong> existence. Starting in the mid-1980s, the modem<strong>and</strong> bulletin board, on-line services such as CompuServe<strong>and</strong> later, Web sites <strong>of</strong>fered more convenient access to information<strong>and</strong> s<strong>of</strong>tware without the need to attend meetings.At the same time, the quality <strong>and</strong> reliability <strong>of</strong> hardware<strong>and</strong> s<strong>of</strong>tware has steadily improved, even though there isalways a new crop <strong>of</strong> problems.User groups played a key role in the adoption <strong>of</strong> newtechnology, much as they had in earlier movements suchas amateur radio. Today it might be said that every userhas the opportunity to join numerous virtual user groups,although the sense <strong>of</strong> fellowship <strong>and</strong> mutual explorationmay be somewhat lacking.Further ReadingAssociation <strong>of</strong> Personal <strong>Computer</strong> User Groups. Available online.URL: http://www.apcug.org/. Accessed August 23, 2007.Moen, Rick. “Linux User Group HOWTO.” Available online. URL:http://www.linux.org/docs/ldp/howto/User-Group-HOWTO.html. Accessed August 23, 2007.MUG Center: The Mac User Group Resource Site. Available online.URL: http://www.mugcenter.com/. Accessed August 23, 2007.USENIX. Available online. URL: http://www.usenix.org/. AccessedAugust 23, 2007.User Group Network. Available online. URL: http://www.usergroups.net/.Accessed August 23, 2007.WUGNET (Windows Users Group Network). Available online.URL: http://www.wugnet.com/. Accessed August 23, 2007.user interfaceAll computer designers are faced with the question <strong>of</strong> howusers are going to communicate with the machine in orderto get it to do what they want it to do. User interfaces haveevolved considerably in 60 years <strong>of</strong> computing.The user interface for ENIAC <strong>and</strong> other early computersconsisted <strong>of</strong> switches or plugs for configuring the machinefor a particular problem, followed by loading instructionsfrom punch cards. The mainframes <strong>of</strong> the 1950s <strong>and</strong> 1960shad control consoles from which text comm<strong>and</strong>s could beentered (see job control language).The time-sharing computers that became popular startingin the 1960s still used only text comm<strong>and</strong>s, but theywere more interactive. Users could type comm<strong>and</strong>s toexamine directories <strong>and</strong> files, <strong>and</strong> run utilities <strong>and</strong> otherprograms. Starting in the 1970s, UNIX provided a powerful<strong>and</strong> flexible way to combine comm<strong>and</strong>s to carry out a variety<strong>of</strong> tasks interactively or through batch processing (seeunix <strong>and</strong> shell).The first graphical user interfaces (GUIs) resulted fromexperimental work at the Xerox Palo Alto Research Center(PARC) during the 1970s. Instead <strong>of</strong> typing comm<strong>and</strong>s ata prompt, GUI users can use a mouse to open menus <strong>and</strong>select comm<strong>and</strong>s, <strong>and</strong> click on icons to open programs <strong>and</strong>files. For operations that require detailed specifications, ast<strong>and</strong>ard dialog box can be presented, using controls suchas check boxes, buttons, text boxes, <strong>and</strong> sliders.GUIs entered the mainstream thanks to Apple’s Macintosh<strong>and</strong> Micros<strong>of</strong>t Windows for IBM-compatible PCs. Bythe mid-1990s, the GUI had supplanted text-based operatingsystems such as MS-DOS for most PC users. Thestrength <strong>of</strong> the GUI is that it can visually model the wayusers work with objects in the real world. For example, afile can be deleted by dragging it to a trash can icon <strong>and</strong>dropping it in. Dragging a slider control to adjust the volumefor a sound card is directly analogous to moving aslider on a home stereo system.


user interface 489Because a system like Windows or the Macintosh providesdevelopers with st<strong>and</strong>ardized interface objects <strong>and</strong>conventions, users are able to learn the basics <strong>of</strong> operatinga new application more quickly. Whereas in the old daysdifferent programs might use slightly different keystrokesor comm<strong>and</strong>s for saving a file, Windows users know that invirtually any application they can open the File menu <strong>and</strong>select Save, or press Ctrl-S.With the growth <strong>of</strong> the World Wide Web, interfacedesign has extended to Web pages. Generally, Web pagesuse similar elements to desktop GUIs, but there are somespecial considerations such as browser compatibility,response at differing connection speeds, <strong>and</strong> the integration<strong>of</strong> text <strong>and</strong> interactive elements.GUIs do have some general drawbacks. An experienceduser <strong>of</strong> a text-based operating system might be able to typea precise comm<strong>and</strong> that could find all files <strong>of</strong> a given typeon the system <strong>and</strong> copy them to a backup directory. TheGUI counterpart might involve opening the Search menu,typing a file specification, <strong>and</strong> making further selections<strong>and</strong> menu choices to perform the copy. Comm<strong>and</strong>-drivensystems also provide for powerful scripting capabilities.GUI systems <strong>of</strong>ten allow for the recording <strong>of</strong> keystrokes ormenu selections, but this is less powerful <strong>and</strong> versatile.Another important consideration is the difficulty thatpeople with certain disabilities may have in using GUI systems.There are a variety <strong>of</strong> possible solutions, many <strong>of</strong>which are incorporated in Micros<strong>of</strong>t Windows, Web browsers,<strong>and</strong> other s<strong>of</strong>tware. These include screen magnifier orreader utilities for the visually impaired <strong>and</strong> alternatives tothe mouse such as head tracker/pointers (see disabled persons<strong>and</strong> computing).Designers <strong>of</strong> user interfaces have to consider whether theelements <strong>of</strong> the system are intuitively underst<strong>and</strong>able <strong>and</strong>consistent <strong>and</strong> whether they can be manipulated in efficientyet natural ways (see also ergonomics <strong>of</strong> computing).Alternative <strong>and</strong> Future InterfacesThe marketplace has spoken, <strong>and</strong> the desktop GUI is nowthe mainstream interface for most ordinary PC users. However,there are a variety <strong>of</strong> other interfaces that are used forparticular circumstances or applications, such as:• touchscreens (as with ATMs) (see touchscreen)• h<strong>and</strong>writing or written “gesture” recognition, such ason h<strong>and</strong>held computers (see h<strong>and</strong>writing recognition)or for drawing tablets• voice-controlled systems (see speech recognition<strong>and</strong> synthesis)• trackballs, joysticks, <strong>and</strong> touchpads (used as mousealternatives)• virtual reality interfaces using head-mounted systems,sensor gloves, <strong>and</strong> so on (see virtual reality)Because much interaction with computers is now away fromthe desktop <strong>and</strong> taking place on laptops, h<strong>and</strong>held, or palmcomputers, <strong>and</strong> even in cars, there is likely to be continuingexperimentation with user interface design.Further ReadingArlov, Laura. GUI Design for Dummies. New York: Wiley, 1997.Galitz, Wilbert O. The Essential Guide to User Interface Design: AnIntroduction to GUI Design Principles <strong>and</strong> Techniques. 3rd ed.Indianapolis: Wiley, 2007.Hobart, John. “Principles <strong>of</strong> Good GUI Design.” Available online.URL: http://www.iie.org.mx/Monitor/v01n03/ar_ihc2.htm.Accessed August 23, 2007.Johnson, Jeff. GUI Bloopers 2.0: Common User Interface DesignDon’ts <strong>and</strong> Dos. San Francisco: Morgan Kaufmann, 2007.Krug, Steve. Don’t Make Me Think: A Common Sense Approach toWeb Usability. 2nd ed. Berkeley, Calif.: New Riders, 2005.Stephenson, Neil. In the Beginning Was the Comm<strong>and</strong> Line. NewYork: Avon Books, 1999.


VvariableVirtually all computer programs must keep track <strong>of</strong> a variety<strong>of</strong> items <strong>of</strong> information that can change as a result <strong>of</strong>processing. Such values might include totals or subtotals,screen coordinates, the current record in a database, or anynumber <strong>of</strong> other things. A variable is a name given to sucha changeable quantity, <strong>and</strong> it actually represents the area <strong>of</strong>computer memory that holds the relevant data.Consider the following statement in the C language:int Total = 0;Variables have several attributes. First, every variablehas a name—Total in this case. Although this name actuallyrefers to an address in memory, in most cases the programmercan use the much more readable name instead <strong>of</strong>the actual address.It is possible to have more than one name for the samevariable by having another variable point to the first variable’scontents, or by declaring a “reference” variable (seepointers <strong>and</strong> indirection).Each variable has a data type, which might be number,character, string, a collection (such as an array), a datarecord, or some special type defined by the programmer(see data types). With some exceptions (see scriptinglanguages) most modern programming languages requirethat the programmer declare each variable before it is used.The declaration specifies the variable’s type—in the currentexample, the type is int (integer, or whole number).A variable is usually given an initial value by using anassignment statement; in the example above the variableTotal is given an initial value <strong>of</strong> 0, <strong>and</strong> the assignment iscombined with the declaration. (Some languages automaticallyassign a default value such as 0 for a number or a nullcharacter for a string, but with other languages failure toassign a value results in the variable having as its valuewhatever happens to be currently stored in the memoryaddress associated with the variable. An explicit assignmentis thus always safer <strong>and</strong> more readable.)When exactly do variables get set up, <strong>and</strong> when do theyget their values? This varies with the programming language(see binding). With C <strong>and</strong> similar languages, a variablereceives its data type when the program is compiled(compile time). The type in turn determines the range <strong>of</strong>values that the variable can hold (physically based on thenumber <strong>of</strong> bytes <strong>of</strong> memory allocated to it). The variable’svalue is actually stored in that location when the program isexecuted (run time).A few languages such as APL <strong>and</strong> LISP use dynamicbinding, meaning that a data type is not associated with avariable until run time. This makes for flexibility in programming,but at some cost in efficiency <strong>of</strong> storage <strong>and</strong>execution speed.During processing, a variable’s value can changethrough the use <strong>of</strong> operators in expressions (see operators<strong>and</strong> expressions). Thus, the example value Total might bechanged by a statement such as:Total = Total + Subtotal;When this statement is executed, the following happens:The value <strong>of</strong> the memory location labeled “Subtotal” isobtained.490


VBScript 491The value <strong>of</strong> the memory location labeled “Total” isobtained.The two values are added together.The result is stored in the location labeled “Total,” replacingits former value.Scope <strong>of</strong> VariablesIn early programming languages variables were generallyglobal, meaning that they could be accessed <strong>and</strong> changedfrom any part <strong>of</strong> the program. While this practice is convenient,it became riskier as programs became larger <strong>and</strong> morecomplex. One part <strong>of</strong> a program might be using a variablecalled Total or Subtotal to keep track <strong>of</strong> some quantity. Later,another part is written to deal with some other calculation,<strong>and</strong> uses the same names. The programmer may think <strong>of</strong> thesecond Total <strong>and</strong> Subtotal as being quite separate from thefirst, but in reality they refer to the same memory locations<strong>and</strong> any change affects both <strong>of</strong> them. Thus, it’s easy to createunwanted “side effects” when using global variables.Starting in the 1960s <strong>and</strong> more systematically duringthe 1970s, there was great interest in designing computerlanguages that could better manage the structure <strong>and</strong> complexity<strong>of</strong> large programs (see structured programming).One way to do this is to break programs up into more manageablemodules that each deal with some specific task (seeprocedures <strong>and</strong> functions). Unless explicitly declared tobe global, variables within a procedure or function are localto that unit <strong>of</strong> code. This means that if two procedures bothhave a variable called Total, changes to one Total do notaffect the other.Generally, in block-structured languages such as Pascala variable is by default local to the block <strong>of</strong> code in whichit is defined. This means it can be accessed only within thatblock. (Its visibility is said to be limited to that block.) Thevariable will also be accessible to any block that is nestedwithin the defining block, unless another variable with thesame name is declared in the inner block. In that case theinner variable supersedes the outer one, which will not bevisible in the inner block.Some languages such as APL <strong>and</strong> early versions <strong>of</strong> LISPdefine scope differently. Since these languages are not blockstructured, scope is determined not by the relationship <strong>of</strong>blocks <strong>of</strong> code but by the sequence in which functions arecalled. At run time each variable’s definition is searchedfor first in the code where it is first invoked, then in whateverfunction called that code, then in the function thatcalled that function, <strong>and</strong> so on. As with dynamic binding,dynamic scooping <strong>of</strong>fers flexibility but at a considerableprice. In this case, the price is that the program’s effects onvariables will be hard to underst<strong>and</strong>, <strong>and</strong> the search mechanismslows down program execution. Dynamic scoping isthus not <strong>of</strong>ten used today, even in LISP.Global variables were convenient because they allowedinformation generated by one part <strong>of</strong> a program to beaccessed by any other. However, such accessibility can beprovided in a safer, more controlled form by explicitly passingvariables or their values to a procedure or functionwhen it is called (see procedures <strong>and</strong> functions).Object-oriented languages provide another way to controlor encapsulate information. Variables describing dataused within a class are generally declared to be private(accessible only within the functions used by the class).Public (i.e., global) variables are used sparingly. The ideais that if another part <strong>of</strong> the program wants data belongingto a class, it will call a member function <strong>of</strong> the class, whichwill provide the data without giving unnecessary access tothe class’s internal variables.A final concept that is important for underst<strong>and</strong>ing variablesis that <strong>of</strong> lifetime, that is, how long the definition <strong>of</strong> avariable remains valid. For efficiency, the runtime environmentmust deallocate memory for variables when they canno longer be used by the program (that is go “out <strong>of</strong> scope”).Generally, a variable exists (<strong>and</strong> can be accessed) only whilethe block <strong>of</strong> code in which it was defined is being executed(including any procedures or functions called from thatblock). In the case <strong>of</strong> a variable declared in the main program,this will be until the program as a whole reaches itsend statement. For variables within procedures or functions,however, the lifetime lasts only until the procedure or functionends <strong>and</strong> control is returned to the calling statement.However, languages such as C allow the special keywordstatic to be used for a variable that is to remain in existenceas long as the program is running. This can be useful whena procedure needs to “remember” some information betweenone call <strong>and</strong> the next, such as an accumulating total.Further ReadingKernighan, Brian W., <strong>and</strong> Dennis Ritchie. The C Programming Language.2nd ed. Englewood Cliffs, N.J.: Prentice Hall, 1988.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Addison-Wesley, 2007.Stroustrup, Bjarne. The C++ Programming Language. special ed.Reading, Mass.: Addison-Wesley, 2000.VBScriptDating back to the mid-1990s, VBScript is a scripting languagedeveloped by Micros<strong>of</strong>t <strong>and</strong> based on its popularVisual Basic programming language (see basic <strong>and</strong> scriptinglanguage). It is also part <strong>of</strong> the evolution <strong>of</strong> whatMicros<strong>of</strong>t called “active scripting,” based on componentsthat allow outside access to the capabilities <strong>of</strong> applications.The host environment in which scripts run is providedthrough Windows (as with Windows Script Host) or withinMicros<strong>of</strong>t’s Internet Explorer browser.For client-side processing, VBScript can be used to writescripts embedded in HTML pages, which interact with thest<strong>and</strong>ard Document Object Model (see dom) in a way similarto other Web scripting languages (in particular, seeJavaScript). However, VBScript is not supported by popularnon-Micros<strong>of</strong>t browsers such as Firefox <strong>and</strong> Opera, sodevelopers generally must use the widely compatible Java-Script instead. VBScript can also be used for processing onthe Web server, particularly in connection with Micros<strong>of</strong>t’sWeb servers (see active server pages).Because versions <strong>of</strong> Windows starting with Windows98 include Windows Script Host, VBScripts can also bewritten to run directly under Windows. One unfortunate


492 videoconferencingconsequence was scripts containing worms (such as the ILOVE YOU worm) or other malware <strong>and</strong> mailed as attachmentsto unwary users.ExamplesVBScript code will be very familiar to users <strong>of</strong> Visual Basic<strong>and</strong> generally follows syntax similar to that <strong>of</strong> other objectorientedlanguages. The canonical “Hello World” programcan be simply written as:WScript.Echo “Hello World!”Where WScript is the object representing the script host.To get user input through a text box, the programmercan write code like this:option explicitdim userInputuserInput = InputBox(“What is your name?:”,“Greetings”)if userInput = “ ” thenMsgbox “You did not write anything or youpressed cancel!”elseMsgBox “Hello, “ & userInput & “.”,vbInformationend ifOf course VBScript has libraries <strong>and</strong> interfaces to enableit to perform much more complicated tasks, such as queryingdatabases <strong>and</strong> configuring other aspects <strong>of</strong> Windowssystems through Windows Management Instrumentation(WMI) <strong>and</strong> Active Directory Services Interface (ADSI).Although the language (<strong>and</strong> code using it) will be in usefor years to come, Micros<strong>of</strong>t is no longer actively developingVBScript, having moved on to a new programming framework(see Micros<strong>of</strong>t .NET) <strong>and</strong> focusing on languagessuch as Visual Basic .NET.Further ReadingJones, Don. VBScript, WMI, <strong>and</strong> ADSI Unleashed. Indianapolis:Sams, 2007.VBScript Sample Scripts. Available online. URL: http://cwashington.netreach.net/depo/default.asp?topic=repository&scripttype =vbscript. Accessed December 2, 2007.VBScript Tutorial. W3Schools. Available online. URL: http://www.w3schools.com/vbscript/default.asp. Accessed December 2,2007.VBScript User’s Guide. Micros<strong>of</strong>t Developer Network. Availableonline. URL: http://msdn2.micros<strong>of</strong>t.com/en-us/library/sx7b3k7y.aspx. Accessed December 2, 2007.Wilson, Ed. Micros<strong>of</strong>t VBScript Step by Step. Redmond, Wash.:Micros<strong>of</strong>t Press, 2007.videoconferencingThe growth <strong>of</strong> the global economy has meant that manycompanies have operations in many locations aroundthe world. The time <strong>and</strong> expense involved in travel haveencouraged the search for alternatives to face-to-face meetings(see telepresence). The added discomfort <strong>and</strong> uncertaintyrelated to current airline travel is likely to furtherspur this movement.Basic videoconferencing is carried out by using videocameras <strong>and</strong> microphones to carry the image <strong>and</strong> voice <strong>of</strong>each person so that it can be seen by all participants. Thevideo <strong>and</strong> sound data is digitized <strong>and</strong> transmitted betweenthe participants’ locations, using some existing communicationslink. Although direct satellite technology can beused, it is very expensive. A more practicable alternativeis the use <strong>of</strong> a proprietary system over special phone lines(such as ISDN or DSL). Increasingly, however, broadb<strong>and</strong>connections to the general Internet are used (see also VoIP).This is relatively inexpensive <strong>and</strong> flexible, but sometimesless reliable because <strong>of</strong> the effects <strong>of</strong> network congestion.The quality <strong>of</strong> imagery depends on the system. Highendsystems, which can cost tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> dollars,use large, high-definition screens or even special projectionequipment that can give a 3D look to peoples’ faces.Although high-end videoconferencing s<strong>of</strong>tware <strong>and</strong> hardwarecan be expensive, there are now a variety <strong>of</strong> alternativesfor small businesses <strong>and</strong> individual users. (As <strong>of</strong> 2002the printing store chain Kinko’s is <strong>of</strong>fering videoconferencingthrough some <strong>of</strong> its stores for $450/hr.)For smaller, less formal meetings there are more affordablealternatives. Products such as Micros<strong>of</strong>t NetMeeting,CuSeeMe, <strong>and</strong> Yahoo Messenger set up user accounts <strong>and</strong>a directory that makes it easy for users to connect. Otherthan the Internet connection, the only hardware needed is amicrophone <strong>and</strong> an inexpensive camera (see web cam).Business videoconferencing systems <strong>of</strong>ten include the abilityfor participants to view <strong>and</strong> interact with s<strong>of</strong>tware applications.This makes it possible not only to view slide shows orother presentations (see presentation s<strong>of</strong>tware) but to collaborateon creating documents. An “electronic whiteboard”can be used to display not only computer text <strong>and</strong> graphicsbut also h<strong>and</strong>written notes created by participants using electronicdrawing pads. The system can also create a hardcopyrecord <strong>of</strong> documents developed during the meeting.Besides business meetings <strong>and</strong> conferences <strong>and</strong> productroll-outs, videoconferencing can also be used for a variety<strong>of</strong> other applications including sales presentations <strong>and</strong> forconducting focus groups for market research.Videoconferencing is also being used increasingly ineducation. For K-12 classes, a videoconferencing field tripcan take children to a museum or science laboratory thatwould otherwise be too far to visit. Both docent <strong>and</strong> studentscan see <strong>and</strong> hear one another, as well as being able tosee exhibits or experiments close up. For college students<strong>and</strong> adults, it is possible to attend classes given by eminentlecturers <strong>and</strong> participate fully just as though they wereenrolled on campus (see also distance education <strong>and</strong>computers).Further ReadingBarlow, Janelle, Peta Peter, <strong>and</strong> Lewis Barlow. Smart Videoconferencing:New Habits for Virtual Meetings. San Francisco: Berrett-KoehlerPublishers, 2002.Pachnowski, Lynn M. “Virtual Field Trips Through Teleconferencing.”Learning & Leading with <strong>Technology</strong> 29, no. 6 (March2002): 10.


virtual community 493Prencipe, Loretta W. “Management Briefing: Do You Know theRules <strong>and</strong> Manners <strong>of</strong> an Effective Virtual Meeting?” Info-World 23, no. 18 (April 30, 2001): 46.Spielman, Sue, <strong>and</strong> Liz Winfield. The Web Conferencing Book. NewYork: AMACOM, 2003.Videoconferencing Product Reviews from PC Magazine. Availableonline. URL: http://www.pcmag.com/category2/0,1874,4836,00.asp. Accessed August 23, 2007.Winters, Floyd Jay, <strong>and</strong> Julie Manchester. Web Collaboration UsingOffice XP <strong>and</strong> NetMeeting. Upper Saddle River, N.J.: PrenticeHall, 2002.video editing, digitalWhen videotape first became available in the 1950s, recorderscost thous<strong>and</strong>s <strong>of</strong> dollars <strong>and</strong> could only be affordedby TV studios. Today the VCR is inexpensive <strong>and</strong> ubiquitous.However, it is hard to edit videotape. Tape is a linearmedium, meaning that to find a given piece <strong>of</strong> videothe tape has to be moved to that spot. Removing or addingsomething involves either physically splicing the tape(as is done with film) or more commonly, feeding in tapefrom two or more recorders onto a destination tape. Besidesbeing tedious <strong>and</strong> limited in capabilities, “linear editing” bycopying loses a bit <strong>of</strong> quality with each copying operation.Today, however, it is easy to shoot video in digital form(see photography, digital) or to convert analog video intodigital form. Digital video is a stream <strong>of</strong> data that representssampling <strong>of</strong> the source signal, such as from the chargecoupleddevice (CCD) that turns light photons into electronflow in a digital camera or digital camcorder. This processinvolves either s<strong>of</strong>tware or hardware compression forstorage <strong>and</strong> decompression for viewing <strong>and</strong> editing (sucha scheme is called a CODEC for “compression/decompression”).The most widely used formats include DV (DigitalVideo) <strong>and</strong> MPEG (Motion Picture Expert Group), whichhas versions that vary in the amount <strong>of</strong> compression <strong>and</strong>thus fidelity.In a turnkey system, the input source is automaticallydigitized <strong>and</strong> stored. In desktop video using a PC, a videocapture card must be installed. The card turns the analogvideo signal into a digital stream. The most commonlyused interface to bring video into a PC is IEE1394, betterknown as FireWire, which has the high b<strong>and</strong>width neededto transfer video data.Once the video is captured, it can be stored in framebuffers in memory <strong>and</strong> edited in various ways using a variety<strong>of</strong> s<strong>of</strong>tware. Expensive turnkey systems come withadvanced s<strong>of</strong>tware, while desktop video users can choosefrom products such as Media Studio Pro or Adobe Premiere.The editing interface usually has a timeline <strong>and</strong> thumbnailsshowing the location <strong>of</strong> key frames in the sequence. Individualclips can be extracted <strong>and</strong> tweaked with motion <strong>and</strong>transition effects; a variety <strong>of</strong> filters (see plug-in) can beapplied to the video. The accompanying sound track(s) canalso be edited. Once things look right, the s<strong>of</strong>tware is toldto render (create) the finished video <strong>and</strong> save it to disk.The ever-increasing processing power <strong>and</strong> disk capacity<strong>of</strong> today’s PC is likely to make real-time video editing morefeasible. This means that video can be played back directlyfrom the edited timeline without transitions or effectshaving to be rendered first. Digital video cameras are alsolikely to increase in picture quality. Already desktop videois proving to be an affordable, viable alternative to expensiveturnkey systems for many applications.Meanwhile, like digital photography, digital video is rapidlybecoming a creative medium for the masses, aided byeasy-to-use basic s<strong>of</strong>tware for Macintosh (such as iMovie)<strong>and</strong> numerous products for Windows. Another driver forthe proliferation <strong>of</strong> this medium is the ease with which videoscan be uploaded <strong>and</strong> shared (see user-created content<strong>and</strong> YouTube).Further ReadingBr<strong>and</strong>on, Bob. The Complete Digital Video Guide: A Step-by-StepH<strong>and</strong>book for Making Great Home Movies Using Your DigitalCamcorder. Pleasantville, N.Y.: Readers Digest, 2005.Digital Video Editing. Available online. URL: http://videoediting.digitalmedianet.com/. Accessed August 23, 2007.Digital Video Resources. Available online. URL: http://www.manifest-tech.com/links/mmtech.htm. Accessed August 23,2007.Goodman, Robert M., <strong>and</strong> Patrick McCrath. Editing DigitalVideo: The Complete Creative <strong>and</strong> Technical Guide. New York:McGraw-Hill, 2003.Pogue, David. iMovie 6 & iDVD: The Missing Manual. Sebastapol,Calif.: O’Reilly Media, 2006.Underahl, Keith. Digital Video for Dummies. Hoboken, N.J.: Wiley,2006.virtual communityBack in the mid-19th century, a number <strong>of</strong> technical pr<strong>of</strong>essionalsbegan to “chat” online without meeting physically—theywere telegraph operators who relayed messagesacross the growing web that one author has called “TheVictorian Internet.” When computer networking began togrow in the 1970s, its own pioneers used facilities such asnewsgroups (see netnews <strong>and</strong> newsgroups) to discuss avariety <strong>of</strong> topics. By the early 1980s, users were interactingon-line in complex fantasy games called MUDs (Multi-UserDungeons, or Dimensions) or MOOs (Muds, Object-Oriented).A little later, bulletin boards <strong>and</strong> especially systemssuch as the WELL (Whole Earth ’Lectronic Link) based inthe San Francisco Bay Area (see bulletin board <strong>and</strong> conferencingsystems) provided long-term outlets for peopleto share information <strong>and</strong> interact on-line.Looking at the WELL, a writer named Howard Rheingoldintroduced the term virtual community in a 1993 book. Heexplored the ways in which a sufficiently compelling <strong>and</strong> versatiletechnology encouraged people to form long-term contacts,form personal relationships, <strong>and</strong> carry out feuds. Whenon-line, participants experience such a venue as the WELL asa place that becomes almost as tangible (<strong>and</strong> <strong>of</strong>ten as “real”)as a physical place such as a small town or corner bar.Virtual community members who live in the same geographicalarea sometimes do get together physically (theWELL has had picniclike “WELL Office Parties” for manyyears). Members can b<strong>and</strong> together to support a colleaguewho faces a crisis such as the life-threatening illness <strong>of</strong> ason (on the WELL, blank postings called beams are <strong>of</strong>ten


494 virtualizationused as an expression <strong>of</strong> sympathy). The virtual communitycan also serve as a rallying point following a physicaldisaster such as the 1989 earthquake in the San FranciscoBay Area. On a daily basis, virtual communities can <strong>of</strong>tenprovide help or advice from a remarkable variety <strong>of</strong> highlyqualified experts.Virtual communities have their share <strong>of</strong> human foibles<strong>and</strong> worse. A virtual world that is compelling enough toimmerse participants for hours on end is also powerfulenough to engage emotions <strong>and</strong> expose vulnerabilities.For example, in a MUD called LambdaMOO one participantused descriptive language to have his game character“rape” a female character created by another participant,inflicting genuine distress. Like physical communities,virtual communities must evolve rules <strong>of</strong> governance, <strong>and</strong>actions in a virtual community can have real-world legalconsequences.Critics such as Clifford Stoll have argued that virtualcommunities are not only not a substitute for “true” physicalcommunity, but also may be further fragmenting neighborhoods<strong>and</strong> isolating people. (On the other h<strong>and</strong>, peoplewho are already physically isolated, such as rural folk <strong>and</strong>the elderly or disabled, may find an outlet for their socialneeds in a virtual community.) Certainly the “b<strong>and</strong>width”in terms <strong>of</strong> human experience is less in a virtual communitythan in a physical community. Ideally, individualsshould cultivate a mixture <strong>of</strong> virtual <strong>and</strong> physical communityrelationships.Like a number <strong>of</strong> “virtual” concepts, virtual communityis gradually blending into everyday life <strong>and</strong> thus becomingless distinct as an idea. Millions <strong>of</strong> people now participatein a form <strong>of</strong> virtual community through games such as SecondLife (see online games). Young people keep constantlyin touch through a web <strong>of</strong> text messages (see flash mobs<strong>and</strong> texting <strong>and</strong> instant messaging). Finally, the popularity<strong>of</strong> sites such as MySpace <strong>and</strong> Facebook may be partlydue to the seamless way they bring together conventionalsocial ties <strong>and</strong> their virtual extensions (see social networking).Further ReadingBarnes, S. B. On-line Connections: Internet Personal Relationships.Cresskill, N.J.: Hampton Press, 2000.Dibbel, J. “Rape in Cyberspace: How an Evil Clown, a HaitianTrickster Spirit, Two Wizards <strong>and</strong> a Cast <strong>of</strong> Dozens Turned aDatabase into a Society.” The Village Voice, Dec. 21, 1993, 39.———. My Tiny Life: Crime <strong>and</strong> Passion in a Virtual World. NewYork: Henry Holt, 1998.Powazek, Derek. Design for Community: The Art <strong>of</strong> Connecting RealPeople in Virtual Places. Berkeley, Calif.: New Riders, 2001.Renninger, K. Ann, <strong>and</strong> Wesley Shumar, eds. Building Virtual Communities:Learning <strong>and</strong> Change in Cyberspace. New York: CambridgeUniversity Press, 2002.The Well. Available online. URL: http://www.well.com. AccessedAugust 23, 2007.Rheingold, Howard. The Virtual Community: Homesteading on theElectronic Frontier. 2nd ed. Reading, Mass.: Addison-Wesley,1993.———. “Howard Rheingold Home Page.” http://www.rheingold.com/Turkle, Sherry. Life on the Screen: Identity in the Age <strong>of</strong> the Internet.New York: Simon & Schuster, 1995.virtualizationOne <strong>of</strong> the most powerful tools for underst<strong>and</strong>ing <strong>and</strong>manipulating a complex system is creating models or representationsthat simplify (while retaining the essentials)or that provide other useful ways <strong>of</strong> looking at the system.This ability to translate systems into representations is usedin many fields, <strong>and</strong> probably dates back to the first cavepaintings <strong>of</strong> our prehistoric ancestors.In the computing field, virtualization involves the creation<strong>of</strong> a working model or representation <strong>of</strong> one systemwithin a different system. This idea has been widely usedin the field since the 1960s. Some applications <strong>of</strong> virtualizationinclude:• An appropriate model <strong>of</strong> a system (such as a programmingframework—see application programminginterface) that hides unneeded details canmake it easier for programmers to underst<strong>and</strong> <strong>and</strong>access its functions (see design patterns <strong>and</strong> modelinglanguages).• A compiler for a language that compiles all programsto an intermediate representation (such as “bytecode”).A virtual machine running on each kind <strong>of</strong>platform can then run the code, taking care <strong>of</strong> thedetails required by the host hardware (see compiler<strong>and</strong> Java).• A virtual machine created in s<strong>of</strong>tware can be designedto perform all the functions available on a particularhardware platform or operating system, allowing s<strong>of</strong>twareto be run on a system different from the onefor which it was originally written (see emulation).For example, there are a number <strong>of</strong> virtualizationprograms (such as VMWare for PCs) that can createseparate areas in memory, each running a differentoperating system, such as a version <strong>of</strong> Windows orLinux.• multiple processors or entire computers can betreated as a single entity for processing a program,with s<strong>of</strong>tware designed to assign threads <strong>of</strong> executionto physical processors <strong>and</strong> to coordinate the use <strong>of</strong>shared data (see grid computing).• A physical device such as a disk drive can be madeto appear as several separate devices to the operatingsystem (for better organization <strong>of</strong> data). Similarly,many servers can run on the same physical machine.Conversely, multiple drives can appear to be a singlelogical device while providing redundancy <strong>and</strong> errorrecovery (see raid).• A secure “virtual private network” can be createdwithin the larger public Internet. The virtual systemtakes care <strong>of</strong> encrypting <strong>and</strong> transmitting datathrough the physical network.Social VirtualizationThe concept <strong>of</strong> virtualization can also be applied to howwork involving computers is being conceptualized <strong>and</strong>


virtual reality 495organized in the modern world (see globalization <strong>and</strong>the computer industry <strong>and</strong> ubiquitous computing). A“virtual <strong>of</strong>fice” or even “virtual corporation” is a businessentity that is not tied to a physical location, but uses networks,communications technology, <strong>and</strong> facilities such asvideo conferencing to keep workers in touch. Alternatively,several organizations can share the same physical space(such as for mail or shipping) while maintaining their separateidentities.Similarly, people can form long-lasting social networkswhile meeting physically seldom (if at all)—see socialnetworking <strong>and</strong> virtual community.Further ReadingBrown, M. Katherine. Managing Virtual Teams: Getting the Mostfrom Wikis, Blogs, <strong>and</strong> Other Collaborative Tools. Plano, Tex.:Wordware, 2007.Golden, Bernard. Virtualization for Dummies. Indianapolis: Wiley,2007.Goldworm, Barb, <strong>and</strong> Anne Skamarock. Blade Servers <strong>and</strong> Virtualization:Transforming Enterprise Computing while CuttingCosts. Indianapolis: Wiley, 2007.Smith, James E., <strong>and</strong> Ravi Nair. Virtual Machines: Versatile Platformsfor Systems <strong>and</strong> Processes. San Francisco: MorgannKaufmann, 2005.Virtualization [news]. NetworkWorld. Available online. URL:http://www.networkworld.com/topics/virtualization.html.Accessed December 2, 2007.Virtualization News Digest. Available online. URL: http://www.virtualization.info/. Accessed December 2, 2007.Wolf, Chris, <strong>and</strong> Erick M. Halter. Virtualization: From the Desktopto the Enterprise. Berkeley, Calif.: Apress, 2005.virtual realityAs the graphics <strong>and</strong> processing capabilities <strong>of</strong> computers grewincreasingly powerful starting in the 1980s, it became possibleto think in terms <strong>of</strong> creating a 3D environment that wouldnot only appear to be highly realistic to the user, but alsowould respond to the user’s natural motions in realistic ways.This idea is not that new in itself. Starting as early as the1930s, the military built mechanical flight trainers or simulatorsthat could create a somewhat realistic experience <strong>of</strong>what a pilot would see <strong>and</strong> feel during flight. More sophisticatedversions <strong>of</strong> these mechanical simulators helped theUnited States train the tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> pilots it neededduring World War II while reducing the resources neededfor actual flight hours. Today the military continues to pioneerthe use <strong>of</strong> realistic computerized simulators to trainA NASA researcher wearing an early virtual reality (VR) outfit, including head-mounted display <strong>and</strong> gloves whose position can betracked. (NASA photo)


496 VoIPtank crews <strong>and</strong> even individual soldiers in the field (seemilitary applications <strong>of</strong> computers).Early simulators used “canned” graphics <strong>and</strong> could notrespond very smoothly to control inputs (such as a pilotmoving stick or rudder). Modern virtual reality, however,depends on the ability to smoothly <strong>and</strong> quickly generaterealistic 3D graphics. At first such graphics could only begenerated on powerful workstations such as those madeby Sun or Silicon Graphics. However, as anyone who hasrecently played a computer game or simulation knows,there has been great improvement in the graphics availableon ordinary desktop PCs since the mid-1990s.A variety <strong>of</strong> s<strong>of</strong>tware <strong>and</strong> programming tools can beused to generate 3D worlds on a PC (see computer graphics).First released in 1995, a facility called VRML (VirtualReality Modeling Language) is now supported by manyWeb browsers. There are also programming extensions forJava (Java 3D).Modern computer games thus embody aspects <strong>of</strong> virtualreality in terms <strong>of</strong> graphics <strong>and</strong> responsiveness. But trueVR is generally considered to involve a near total immersion.Instead <strong>of</strong> a screen, a head-mounted display (HMD) isgenerally used to display the virtual world to the user whileshutting out environmental distractions. Typically, slightlydifferent images are presented to the left <strong>and</strong> right eyes tocreate a 3D stereo effect.The other half <strong>of</strong> the VR equation is the way in whichthe user interacts with the virtual objects. Head-trackingsensors are used to tell the system where the user is lookingso the graphics can be adjusted accordingly. Other sensorscan be placed in gloves worn by the user. The system canthus tell where the user’s h<strong>and</strong> is within the virtual world,<strong>and</strong> if the user “grasps” with the glove, the user’s h<strong>and</strong> inthe virtual world will grasp or otherwise interact with thevirtual object. More elaborate systems involve a full-bodysuit studded with sensors.To make interaction realistic, VR researchers have hadto study both the operation <strong>of</strong> human senses <strong>and</strong> that <strong>of</strong> theskeleton <strong>and</strong> muscles. For a truly realistic experience, theuser must be able to feel the resistance <strong>of</strong> objects (whichcan be implemented by a force-feedback system). Soundcan be h<strong>and</strong>led easily, but as <strong>of</strong> yet not much has been donewith the senses <strong>of</strong> smell <strong>and</strong> taste.In designing a VR system, there are a number <strong>of</strong> importantconsiderations. Will the user be physically immersed(such as with an HMD), or, as in some military applications,will the user be seeing both a virtual <strong>and</strong> the actualphysical world? How important is graphic realism vs. realtimeresponsiveness? (Opting too much for computationallyintensive realism might cause unacceptable latency, or delaybetween a user action <strong>and</strong> the environment’s response.)ApplicationsBesides military training, currently the most viable applicationfor VR seems to be entertainment. VR techniqueshave been used to create immersive experiences in elaboratefacilities at venues such as Disneyl<strong>and</strong> <strong>and</strong> UniversalStudios, <strong>and</strong> to some extent even in local arcades. VR that isaccompanied by convincing physical sensations has allowedfor the creation <strong>of</strong> a new generation <strong>of</strong> roller coasters that ifbuilt physically would be too expensive, too dangerous, oreven physically impossible.However, there are other significant emerging applicationsfor VR. When combined with telerobotic technology(see telepresence), VR techniques are already being usedto allow surgeons to perform operations in new ways. VRtechnology can also be used to make remote conferencingmore realistic <strong>and</strong> satisfactory for participants. Clearly thepotential uses for VR for education <strong>and</strong> training in manydifferent fields are endless. VR technology combined withrobotics could also be used to give disabled persons muchgreater ability to carry out the tasks <strong>of</strong> daily life.In the ultimate VR system, users will be networked <strong>and</strong>able to simultaneously experience the environment, interactingboth with it <strong>and</strong> one another. The technical resources<strong>and</strong> programming challenges are also much greater for suchapplications. The result, however, might well be the sort<strong>of</strong> environment depicted by science fiction writers such asWilliam Gibson (see cyberspace <strong>and</strong> cyber culture).Further ReadingKim, Gehard Jounghyun. Designing Virtual Reality Systems: TheStructured Approach. New York: Springer, 2005.McMenemy, Karen, <strong>and</strong> Stuart Ferguson. A Hitchhiker’s Guide toVirtual Reality. Wellesley, Mass.: A. K. Peters, 2007.Sherman, William R., <strong>and</strong> Alan B. Craig. Underst<strong>and</strong>ing VirtualReality: Interface, Application, <strong>and</strong> Design. San Francisco: MorganKaufman, 2003.Sturrock, Carrie. “Virtual Becomes Reality at Stanford.” SanFrancisco Chronicle, April 29, 2007, p. A1. Available online.URL: http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/04/29/MNGFPPGVPF1.DTL. Accessed August 23, 2007.Virtual Reality Resources. Available online. URL: http://vresources.org/. Accessed August 23, 2007.VoIP (voiceover Internet protocol)The basic idea <strong>of</strong> VoIP is simple: the Internet can carrypackets <strong>of</strong> any sort <strong>of</strong> data (see tcp/ip), which means it cancarry the digitized human voice as well, carrying ordinaryphone calls. There are several ways to do this:• a regular phone plus an adapter that connects to thecomputer <strong>and</strong> compresses <strong>and</strong> converts between regularanalog phone signals <strong>and</strong> the digital equivalent• a complete “IP phone” unit that includes all neededhardware <strong>and</strong> s<strong>of</strong>tware—no computer needed, just anetwork connection, such as to a router• use <strong>of</strong> the computer’s own sound card <strong>and</strong> speakerswith a microphone, plus s<strong>of</strong>tware (<strong>of</strong>ten free)Using that last option, VoIP service can be essentiallyfree, regardless <strong>of</strong> distance. However, one can only callsomeone who is currently connected to the Internet <strong>and</strong>also has VoIP s<strong>of</strong>tware.Alternatively, one can subscribe to a VoIP provider suchas Skype who also provides connectivity to the “plain oldtelephone service” (POTS). This allows calling anyone whohas an ordinary phone: The VoIP provider sends the call


von Neumann, John 497A regular telephone carries the voice as an analog signal over the phone line. For Internet (IP) telephony, however, the user’s voice from themicrophone is converted to a digital signal that is carried by st<strong>and</strong>ard Internet packets. At the destination, the packets are reassembled into astream <strong>of</strong> digital data that is then sent to the sound card to be turned back into voice sounds to be played through the system speaker.over the Internet to the nearest connection point, whereit is placed as a regular phone call. The charges are muchlower than typical long-distance plans. (For example, as <strong>of</strong>2007 Skype charged a flat rate <strong>of</strong> $3.00 a month for unlimitedcalls to the United States <strong>and</strong> Canada <strong>and</strong> only a fewcents per minute to most developed countries.)Since video can also be sent over the Internet, videoover IP for calling <strong>and</strong> conferencing is also becoming morecommon. Video does require a higher b<strong>and</strong>width connectionthan does voice.Advantages <strong>and</strong> DrawbacksVoIP has several advantages over regular phone service.Because it uses the Internet’s flexible packet-switching system,it uses b<strong>and</strong>width more efficiently (indeed, much conventionalphone service is now carried as digital packetsas well). If done through a direct computer-to-computerconnection with free s<strong>of</strong>tware, VoIP can be essentially freeto the user, since the Internet connection is presumablyalready paid for. (It also follows that VoIP is most advantageousfor long-distance calling.) Finally, VoIP can be usedwith wireless mobile devices, sometimes with lower costthan cell service.At least as currently implemented, VoIP does have somedisadvantages:• Like cordless phones (but unlike traditional phones),VoIP requires that the user be connected to power. Thismay make the system unavailable in an emergency.• Also, in an emergency, a 911 operator has no way toknow where the caller is located geographically. Thiscould be a problem if the caller is unable to providethis information.• While a regular phone is a pretty simple device, VoIPrequires special hardware or a PC, which might fail.• VoIP requires a working Internet connection—inpractice, a high-speed connection (see broadb<strong>and</strong>).Load or instability in the network could cause interruptionsin calls or a lowering <strong>of</strong> voice quality.• As with other data sent over the Internet, there arepotential security concerns. Encryption can be usedto secure VoIP calls, but this in turn leads to concernsby law enforcement agencies seeking to implementeavesdropping warrants.Despite these disadvantages, VoIP is likely to continueto become more prevalent <strong>and</strong> reliable due to the advantages<strong>of</strong> integrating with the global Internet <strong>and</strong> a widevariety <strong>of</strong> devices.Further Reading“History <strong>of</strong> VoIP.” Available online. URL: http://www.utdallas.edu/~bjackson/history.html. Accessed December 3, 2007.Kelly, Timothy V. VoIP for Dummies. Hoboken, N.J.: Wiley, 2005.Skype. Available online. URL: http://www.skype.com/. AccessedDecember 3, 2007.Valdes, Robert. “How VoIP works.” Available online. URL: http://communication.howstuffworks.com/ip-telephony.htm.Accessed December 3, 2007.Van Meggelen, Jim, Jared Smith, <strong>and</strong> Leif Madsen. Asterisk: TheFuture <strong>of</strong> Telephony. Sebastapol, Calif.: O’Reilly, 2005.Venezia, Paul. “Open Source VoIP Makes the Business Connection.”Infoworld, March 19, 2007. Available online. URL:http://www.infoworld.com/article/07/03/19/12FEopenvoip_1.html. Accessed December 3, 2007.Wallingford, Ted. Switching to VoIP. Sebastapol, Calif.: O’Reilly,2005.von Neumann, John(1903–1957)Hungarian–AmericanMathematician, <strong>Computer</strong> ScientistJohn von Neumann made wide-ranging contributions infields as diverse as pure logic, simulation, game theory, <strong>and</strong>quantum physics. He also developed many <strong>of</strong> the key conceptsfor the architecture <strong>of</strong> the modern digital computer<strong>and</strong> helped design some <strong>of</strong> the first successful machines.Von Neumann was born on December 28, 1903, in Budapest,Hungary, to a family with banking interests. As a youthhe showed a prodigious talent for calculation <strong>and</strong> interest inmathematics, but his father opposed his pursuing a career inpure mathematics. Therefore, when von Neumann enteredthe University <strong>of</strong> Berlin in 1921 <strong>and</strong> the Technische Hochschulein 1923, he earned his Ph.D. in chemical engineering.However, in 1926 he went back to Budapest <strong>and</strong> earned aPh.D. in mathematics with a dissertation on set theory. He


498 von Neumann, JohnJohn von Neumann developed automata theory as well as fundamentalconcepts <strong>of</strong> computer architecture such as storing programsin memory along with the data. He also did seminal work in logic,quantum physics, simulation, <strong>and</strong> game theory. (SPL / PhotoResearchers, Inc.)would then serve as privatdozcent, or lecturer, at Berlin <strong>and</strong>the University <strong>of</strong> Hamburg.During the mid-1920s, two competing mathematicaldescriptions <strong>of</strong> the behavior <strong>of</strong> atomic particles were being<strong>of</strong>fered by Erwin Schrödinger’s wave equations <strong>and</strong> WernerHeisneberg’s matrix approach. Von Neumann showed thatthe two theories were mathematically equivalent. His 1932book, The Mathematical Foundations <strong>of</strong> Quantum Mechanics,remains a st<strong>and</strong>ard textbook to this day. Von Neumann alsodeveloped a new form <strong>of</strong> algebra where “rings <strong>of</strong> operators”could be used to describe the kind <strong>of</strong> dimensional spaceencountered in quantum mechanics.Meanwhile, von Neumann had become interested in themathematics <strong>of</strong> games, <strong>and</strong> developed the discipline thatwould later be called game theory. His “minimax theorem”described a class <strong>of</strong> two-person games in which both playerscould minimize their maximum risk by following aspecific strategy.Computation <strong>and</strong> <strong>Computer</strong> ArchitectureIn 1930, von Neumann immigrated to the United States,where he would become a naturalized citizen <strong>and</strong> spend therest <strong>of</strong> his career. He was made a Fellow at the new Institutefor Advanced Study at Princeton at its founding in 1933,<strong>and</strong> would serve in various capacities there <strong>and</strong> as a consultantfor the U.S. government.In the late 1930s, interest had begun to turn to the construction<strong>of</strong> programmable calculators or computers (seeChurch, Alonzo <strong>and</strong> Turing, Alan). Just before <strong>and</strong> duringWorld War II, von Neumann worked on a variety <strong>of</strong>problems in ballistics, aerodynamics, <strong>and</strong> later, the design<strong>of</strong> nuclear weapons. All <strong>of</strong> these problems cried out formachine assistance, <strong>and</strong> von Neumann became acquaintedboth with British research in calculators <strong>and</strong> the massiveHarvard Mark I programmable calculator (see Aiken,Howard).A little later, von Neumann learned that two engineerswere working on a new kind <strong>of</strong> machine: an electronic digitalcomputer called ENIAC that used vacuum tubes for itsswitching <strong>and</strong> memory, making it about a thous<strong>and</strong> timesfaster than the Mark I. Although the first version <strong>of</strong> ENIAChad already been built by the time von Neumann came onboard, he served as a consultant to the project at the University<strong>of</strong> Pennsylvania’s Moore School.The earliest computers (such as the Mark I) read instructionsfrom cards or tape, discarding each instruction as itwas performed. This meant, for example, that to program aloop, an actual loop <strong>of</strong> tape would have to be mounted <strong>and</strong>controlled so that instructions could be repeated. The electronicENIAC was too fast for tape readers to keep up, so ithad to be programmed by setting thous<strong>and</strong>s <strong>of</strong> switches tostore instructions <strong>and</strong> constant values. This tedious proceduremeant that it wasn’t practicable to use the machine foranything other than massive problems that would run formany days.In his 1945 “First Draft <strong>of</strong> a Report on the EDVAC” <strong>and</strong>his more comprehensive 1946 “Preliminary Discussion <strong>of</strong>the Logical Design <strong>of</strong> an Electronic Computing Instrument,”von Neumann established the basic architecture <strong>and</strong> designprinciples <strong>of</strong> the modern electronic digital computer.Von Neumann declared that in future computers themachine’s internal memory would be used to store constantdata <strong>and</strong> all instructions. With programs in memory, loopingor other decision making can be accomplished simplyby “jumping” from one memory location to another. <strong>Computer</strong>swould have two forms <strong>of</strong> memory: relatively fastmemory for holding instructions, <strong>and</strong> a slower form <strong>of</strong> storagethat could hold large amounts <strong>of</strong> data <strong>and</strong> the results <strong>of</strong>processing. (In today’s PCs these functions are provided bythe r<strong>and</strong>om access memory [RAM] <strong>and</strong> hard drive respectively.)The storage <strong>of</strong> programs in memory also meant thata program could treat its own instructions like data <strong>and</strong>change them in response to changing conditions.In general, von Neumann took the hybrid design <strong>of</strong>ENIAC <strong>and</strong> conceived <strong>of</strong> a design that would be all-electronicin its internal operations <strong>and</strong> store data in the mostnatural form possible for an electronic machine—binary,with 1 <strong>and</strong> 0 representing the on <strong>and</strong> <strong>of</strong>f switching states<strong>and</strong>, in memory, two possible “marks” indicated by magnetism,voltage levels, or some other phenomenon. The logicaldesign would be consistent <strong>and</strong> largely independent <strong>of</strong> thevagaries <strong>of</strong> hardware.


von Neumann, John 499Eckert <strong>and</strong> Mauchly (see Eckert, J. Presper <strong>and</strong>Mauchly, John William) <strong>and</strong> some <strong>of</strong> their supporterswould later claim that they had already conceived <strong>of</strong> theidea <strong>of</strong> storing programs in memory, <strong>and</strong> in fact they hadalready designed a form <strong>of</strong> internal memory called a mercurydelay line. Whatever the truth in this assertion, itremains that von Neumann provided the comprehensivetheoretical architecture for the modern computer, whichwould become known as the von Neumann architecture.Von Neumann’s reports would be distributed widely <strong>and</strong>would guide the beginnings <strong>of</strong> computer science researchin many parts <strong>of</strong> the world.Looking beyond EDVAC, von Neumann, together withHerman Goldstine <strong>and</strong> Arthur Burks, designed a newcomputer for the Institute for Advanced Study that wouldembody the von Neumann principles. The IAS machine’sdesign would in turn lead to the development <strong>of</strong> researchcomputers for RAND Corporation, the Los Alamos NationalLaboratory, <strong>and</strong> in several countries including Australia,Israel, <strong>and</strong> even the Soviet Union. The design would eventuallybe commercialized by IBM in the form <strong>of</strong> the IBM 701.In his later years, von Neumann continued to explorethe theory <strong>of</strong> computing. He studied ways to make computersthat could automatically maintain reliability despite theloss <strong>of</strong> certain components, <strong>and</strong> he conceived <strong>of</strong> an abstractself-reproducing automaton (see cellular automata).Von Neumann’s career was crowned with many awardsreflecting his diverse contributions to American sciencetechnology. These include the Distinguished Civilian ServiceAward (1947), Presidential Medal <strong>of</strong> Freedom (1956),<strong>and</strong> the Enrico Fermi Award (1956). Von Neumann died onFebruary 8, 1957, in Washington, D.C.Further ReadingAspray, William. John von Neumann <strong>and</strong> the Origins <strong>of</strong> ModernComputing. Cambridge, Mass.: MIT Press, 1990.Heims, S. J. John von Neumann <strong>and</strong> Norbert Wiener: From Mathematicsto the Technologies <strong>of</strong> Life <strong>and</strong> Death. Cambridge, Mass.:MIT Press, 1980.“John Louis von Neumann” [biography]. Available online. URL: http://ei.cs.vt.edu/~history/VonNeumann.html. Accessed August 23,2007.MacRae, Norman. John Von Neumann: The Scientific Genius WhoPioneered the Modern <strong>Computer</strong>, Game Theory, Nuclear Deterrence,<strong>and</strong> Much More. 2nd ed. Providence, R.I.: AmericanMathematical Society, 2000.von Neumann, John. The <strong>Computer</strong> <strong>and</strong> the Brain. New Haven,Conn.: Yale University Press, 1958.———. Theory <strong>of</strong> Self-Reproducing Automata. Edited <strong>and</strong> compiledby Arthur W. Burks. Urbana: University <strong>of</strong> Illinois Press, 1966.


WWales, Jimmy(1966– )AmericanInternet EntrepreneurJimmy Wales is a key force behind Wikipedia, the community-editedonline encyclopedia that has become a popularstop for Web users seeking information about any <strong>of</strong> millions<strong>of</strong> topics.Wales was born on August 7, 1966, in Huntsville, Alabama,<strong>and</strong> received his early education in a tiny privateschool run by his mother <strong>and</strong> gr<strong>and</strong>mother. However, Walesthen went to an advanced college preparatory school inHuntsville, where he was extensively exposed to computertechnology. Wales went on to earn a bachelor’s degree infinance from Auburn University <strong>and</strong> a master’s in finance atthe University <strong>of</strong> Alabama. He entered but did not completethe doctoral program, later attributing his dropping out toboredom. During the 1990s Wales became research directorat Chicago Options Associates, trading so successfully incurrency <strong>and</strong> interest rate options that he achieved lifetimefinancial security.By that time Wales had become involved with the growinge-commerce boom. However, his first project, an “eroticsearch engine” called Bomis, would be controversial. Usingthe Bomis site, Wales <strong>and</strong> Larry Sanger then launchedtheir first online encyclopedia, Nupedia. In 2001, however,Sanger suggested the use <strong>of</strong> wiki s<strong>of</strong>tware (see wikis<strong>and</strong> Wikipedia). Wales <strong>and</strong> Sanger set up the parametersfor how users would contribute, collaborate, <strong>and</strong> reviewarticles. Wikipedia soon far outstripped Nupedia. Sanger<strong>and</strong> Wales found themselves in frequent disagreement, <strong>and</strong>Sanger left Wikipedia in 2002.Wikipedia <strong>and</strong> BeyondIn 2003 Wales established the Wikimedia Foundation, anonpr<strong>of</strong>it organization to support Wikipedia <strong>and</strong> a variety<strong>of</strong> new projects based on online communities. In 2004Wales <strong>and</strong> Angela Beesley founded a for-pr<strong>of</strong>it company,Wikia, Inc. Besides making it easy for individuals <strong>and</strong>communities to organize <strong>and</strong> manage their own wikis <strong>and</strong>blogs, Wikia also intends to apply the wiki collaborativeprinciple to creating a search engine that would draw uponusers’ own expertise <strong>and</strong> interests <strong>and</strong> operate “transparently.”Wales believes this model will prove to be superiorto proprietary operations such as Google.Wales was criticized in 2005 for editing his own biographyin Wikipedia, downplaying the pornographic nature<strong>of</strong> Bomis <strong>and</strong> minimizing Sanger’s role as a c<strong>of</strong>ounder <strong>of</strong>Wikipedia. Wales later expressed regrets about his editing,while continuing to insist that Sanger’s role was that <strong>of</strong>an employee rather than a c<strong>of</strong>ounder. (Sanger later createdCitizendium, an online encyclopedia that requires strictercredentials for editors.)Politically, Wales describes himself as a passionateobjectivist (follower <strong>of</strong> Ayn R<strong>and</strong>’s philosophy) <strong>and</strong> a libertarianwho admires philosopher-economist F. A. Hayek(though distancing himself from the Libertarian Party).Wales’s interest in decentralized, emergent organizations(such as Wikipedia <strong>and</strong> Wikia) can be seen as flowing out<strong>of</strong> his political philosophy. At the same time, the scope <strong>and</strong>500


Web 2.0 <strong>and</strong> beyond 501powers Wales continues to exercise over Wikipedia can beunclear <strong>and</strong> subject to controversy.In 2005 Wales became a member <strong>of</strong> the board <strong>of</strong> directors<strong>of</strong> Socialtext, a developer <strong>of</strong> wiki technology. In 2006he also joined the board <strong>of</strong> Creative Commons, developer<strong>of</strong> new ways to share intellectual property. That same yearTime listed Wales among 100 <strong>of</strong> the year’s most influentialpeople, <strong>and</strong> Wales received a Pioneer Award from the ElectronicFrontier Foundation. Wales lives near St. Petersburg,Florida.Further Reading“Jimmy Wales: Free Knowledge for Free Minds” [blog]. http://blog.jimmywales.com/. Accessed May 10, 2007.Lee, Ellen. “As Wikipedia Moves to S.F., Founder DiscussesPlanned Changes.” San Francisco Chronicle, November 30,2007. Available online. URL: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/11/30/BUOMTKNJA.DTL. AccessedDecember 3, 2007.Mangu-Ward, Katherine. “Wikipedia <strong>and</strong> Beyond: Jimmy Wales’Sprawling Vision.” Reason, June 2007, pp. 18–29.Tapscott, Don, <strong>and</strong> Anthony D. Williams. Wikinomics: How MassCollaboration Changes Everything. New York: Penguin, 2006.Wikipedia. Available online. URL: http://en.wikipedia.org/wiki/Main_Page. Accessed May 10, 2007.wearable computersFor some time, technology pundits have talked about computersbeing literally woven into daily life, embedded inclothing <strong>and</strong> personal accessories. However, implementationshave thus far seen only limited use. For example,watches with limited computer functions (see pda) havenot proven popular—a watch large enough for input <strong>and</strong>display <strong>of</strong> information would likely be too bulky for comfort.(People have also walked about with attached webcams,although the novelty seems to have quickly worn<strong>of</strong>f.)Emerging PossibilitiesThere are, however, a number <strong>of</strong> more limited wearablecomputers that are likely to be practical. Small cards (seerfid <strong>and</strong> smart card) could provide tracking for childrenor others needing monitoring. Embedded sensors could bedesigned to detect whether an elderly person has fallen orperhaps has suffered a heart attack.Head-mounted displays that fit into eyeglasses or gogglesare already in use <strong>and</strong> can <strong>of</strong>fer applications rangingfrom gaming (see virtual reality) to providing informationaloverlays to aid in military reconnaissance, policepatrol, or firefighting. (This could also be combined withtracking <strong>and</strong> communications.) Other embedded computersmight provide h<strong>and</strong>s-free voice recognition or languagetranslation.More whimsical wearable computers could control thecolors <strong>and</strong> patterns displayed by garments, perhaps varyingthem with the mood <strong>of</strong> the wearer.Whimsy aside, some serious effort is now going intodeveloping a wide range <strong>of</strong> wearable computer applications.The most prominent effort is wearIT@work, funded by theA fashion model wears a “Skooltool” outfit that allows informationto be played through earphones or projected onto the lenses. Theoutfit was a collaboration between MIT researchers <strong>and</strong> fashiondesigners. (Sam Ogden / Photo Researchers, Inc.)European Union. It is developing an Open Wearable ComputingFramework <strong>and</strong> st<strong>and</strong>ard hardware.Further ReadingCristol, Hope. “The Future <strong>of</strong> Wearable <strong>Computer</strong>s.” The Futurist36 (September 1, 2002): 68.MIT Media Lab Wearable Computing. Available online. URL:http://www.media.mit.edu/wearables/index.html. AccessedDecember 3, 2007.“Wearing <strong>Technology</strong> on Your Sleeve.” PhysOrg, November 26,2007. Available online. URL: http://www.physorg.com/news115310793.html. Accessed December 3, 2007.WearIt@Work. Available online. URL: http://www.wearitatwork.com/. Accessed December 3, 2007.Xu, Yangsheng, Wen Jung Li, <strong>and</strong> Ka Keung Lee. Intelligent WearableInterfaces. Hoboken, N.J.: Wiley Interscience, 2007.Web 2.0 <strong>and</strong> beyondSomewhere between a buzzword <strong>and</strong> a genuine new paradigm,Web 2.0 refers to a number <strong>of</strong> developments that are


502 Web 2.0 <strong>and</strong> beyond“Web 2.0” is a somewhat nebulous term, but its core technologies are changing both how information is presented on the Web <strong>and</strong> how userscan create <strong>and</strong> share their own content.changing the way content is created <strong>and</strong> presented on theWeb, as well as ways in which Web users are using technologyto create new communities <strong>and</strong> institutions. (The termis somewhat misleading because it seems to imply a newversion <strong>of</strong> the fundamental Web s<strong>of</strong>tware itself. It is more achange in the way the Web is perceived <strong>and</strong> used.)The term emerged into prominence following a 2004conference that emphasized the Web as being not justa place to <strong>of</strong>fer services, but a platform upon which tobuild them, <strong>of</strong>fering applications that are not dependenton any particular operating system. As services were built<strong>and</strong> users participated in new ways, the emerging communitieswould then extend the power <strong>of</strong> the Web platformeven further (see social networking <strong>and</strong> user-createdcontent). For some <strong>of</strong>ten-cited examples, see Craigslist,eBay, Wikipedia, <strong>and</strong> YouTube.Web 2.0 ToolsAlthough the most important part <strong>of</strong> Web 2.0 is its business<strong>and</strong> social models, a number <strong>of</strong> Web technologies areneeded to provide the flexibility <strong>and</strong> rich interaction neededto <strong>of</strong>fer a new Web experience. These include:• dynamic, efficient generation <strong>of</strong> content (see Ajax)• programming interfaces (see api) using structuredtext files (see xml)• platforms for running applications in the browser,such as Google apps• merging <strong>and</strong> customizing content from differentsources (see mashups)• user subscription to content (see podcasting <strong>and</strong> rss)


Web browser 503• platforms for user-created content <strong>and</strong> collaboration(see blogs <strong>and</strong> blogging, social networking, <strong>and</strong>wikis <strong>and</strong> Wikipedia)In some quarters the term Web 2.0 is already obsoleteor relegated to a marketing buzzword, while the search ison for new ways to describe the latest developments suchas, inevitably, “Web 3.0.” One possible emphasis movingbeyond Web 2.0 is the leveraging <strong>of</strong> the actual knowledgecontained in Web pages, properly encoded <strong>and</strong> interpretedby applications (see semantic web <strong>and</strong> s<strong>of</strong>tware agent).Whatever terminology might be used, the importantthing is that people are using the Web in the late 2000decade in substantially new ways, <strong>and</strong> that the consequencesare likely to spread beyond the online world tosociety as a whole.Further ReadingFost, Dan. “Digital Utopia: A New Breed <strong>of</strong> Technologists Envisionsa Democratic World Improved by the Internet.” SanFrancisco Chronicle, November 5, 2006, p. F1. Availableonline. URL: http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2006/11/05/BUGIGM5A2D1.DTL. Accessed December 4,2007.———. “The People Who Populate Web 2.0” San FranciscoChronicle, November 5, 2006, p. F5. Available online. URL:http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2006/11/05/BUG78M5OUA1.DTL. Accessed December 4, 2007.Madden, Mary, <strong>and</strong> Susannah Fox. “Riding the Waves <strong>of</strong> ‘Web2.0.’ ” Pew Internet & American Life Project, October 5, 2006.Available online. URL: http://www.pewinternet.org/pdfs/PIP_Web_2.0.pdf. Accessed December 4, 2007.Metz, Cade. “Web 3.0.” PC Magazine, March 14, 2007. Available online.URL: http://www.pcmag.com/article2/0,1759,2102852,00.asp.Accessed December 4, 2007.Solomon, Gwen, <strong>and</strong> Lynne Schrum. Web 2.0: New Tools, NewSchools. Eugene, Ore.: ISTE, 2007.Vossen, Gottfried, <strong>and</strong> Stephan Hagemann. Unleashing Web 2.0:From Concepts to Creativity. Burlington, Mass.: MorganKaufmann, 2007.When the Web was first created in the early 1990s (seeBerners-Lee, Tim) it consisted only <strong>of</strong> text pages, althoughthere were a few experimental graphical Web extensionsdeveloped by various researchers. The first graphical Webbrowser to achieve widespread use was Mosaic created byMarc Andreessen, developed at the National Center forSupercomputing Applications (NCSA). (See Andreessen,Marc.) By 1993, Mosaic was available for free download<strong>and</strong> had become the browser <strong>of</strong> choice for PC users.Andreessen left NCSA in 1994 to found Netscape Corporation.The Netscape Navigator browser improved Mosaicin several ways, making the graphics faster <strong>and</strong> more attractive.Netscape included a facility called Secure SocketsLayer (SSL) for carrying out encrypted commercial transactionson-line (see e-commerce).Micros<strong>of</strong>t, which had been a latecomer to the Internetboom, entered the fray with its Micros<strong>of</strong>t Internet Explorer.At first the program was inferior to Netscape, but it wassteadily improved. Aided by Micros<strong>of</strong>t’s controversial tactic <strong>of</strong>bundling the free browser starting with Windows 95, InternetExplorer has taken over the leading browser position withWeb browserThe World Wide Web consists <strong>of</strong> millions <strong>of</strong> sites (seeWorld Wide Web <strong>and</strong> Web server) that provide hypertextdocuments (see html <strong>and</strong> Web page design) that caninclude not only text but still images, video, <strong>and</strong> sound. Toaccess these pages, the user runs a Web-browsing program.The basic function <strong>of</strong> a Web browser is to request apage by specifying its address (URL, uniform [or universal]resource locator). This request resolves to a request (HTTP,HyperText Transport Protocol) that is processed by the relevantWeb server. The server sends the HTML document tothe browser, which then displays it for the user. Typically,the browser stores recently requested documents <strong>and</strong> filesin a local cache on the user’s PCs. Use <strong>of</strong> the cache reducesthe amount <strong>of</strong> data that must be resent over the Internet.However, sufficiently skilled snoopers can examine thecache to find details <strong>of</strong> a user’s recent Web surfing. (Cachingis also used by Internet Service Providers so they canprovide frequently requested pages from their own serverrather than having to fetch them from the hosting sites.)A Web browser such as Micros<strong>of</strong>t Internet Explorer or Firefoxmakes it easy to find <strong>and</strong> move between linked Web pages. Browserusers can record or “bookmark” favorite pages. Browser plug-insprovide support for services such as streaming video <strong>and</strong> audio.Here, part <strong>of</strong> the photo library <strong>of</strong> the National Oceanic <strong>and</strong> AtmosphericAdministration is shown. (NOAA image)


504 webcamabout a 75 percent market share by 2001. However, a ratherstrong competitor later emerged in Firefox, <strong>and</strong> other browserssuch as Opera <strong>and</strong> Safari also have their supporters, wh<strong>of</strong>eel those products are more agile, versatile, <strong>and</strong> perhaps moresecure than Internet Explorer.Some typical features <strong>of</strong> a modern Web browser include• navigation buttons to move forward <strong>and</strong> back throughrecently visited pages• tabs to switch between Web pages• a “history” panel allowing return to pages visited inrecent days• a search button that brings up the default searchengine (which can be chosen by the user)• the ability to save page as “favorites” or “bookmarks”for easy retrievalThe Browser as PlatformToday a Web user can view a live news broadcast, listen tomusic from a radio station, or view a document formatted tonear-print quality. All these activities are made possible by“helper” s<strong>of</strong>tware (see plug-in) that gives the Web browserthe capability to load <strong>and</strong> display or play files in special formats.Examples include the Adobe PDF (Portable DocumentFormat) reader, the Windows Media Player, <strong>and</strong> RealPlayerfor playing video <strong>and</strong> audio content (see streaming).What makes the browser even more versatile is the abilityto load <strong>and</strong> run programs from Web sites (see Java).Java was highly touted starting in the mid-1990s, <strong>and</strong> someobservers believed that by making Web browsers into platformscapable <strong>of</strong> running any sort <strong>of</strong> s<strong>of</strong>tware, there wouldbe less need for proprietary operating systems such asMicros<strong>of</strong>t Windows. Micros<strong>of</strong>t has responded by trying toshift developers’ emphasis from Java to its proprietary technologycalled .NET. Meanwhile, the tools for making Webpages more versatile <strong>and</strong> interactive continue to proliferate,including later versions <strong>of</strong> HTML <strong>and</strong> XML (see Web pagedesign). This proliferation, as well as use <strong>of</strong> proprietaryextensions can cause problems in accessing Web sites fromolder or less-known browsers.The growing numbers <strong>of</strong> h<strong>and</strong>held or palm computers(see portable computers) are accompanied by scaleddownWeb browsers. These are generally controlled bytouch <strong>and</strong> have a limited display size, but can provideinformation useful to travelers such as driving directions,weather forecasts, <strong>and</strong> capsule news or stock summaries.Further ReadingBarker, Donald I., <strong>and</strong> Katherine T. Pinard. Micros<strong>of</strong>t InternetExplorer 7, Illustrated Essentials. Boston: Course <strong>Technology</strong>,2007.Browser Review. Available online. URL: http://www.yourhtmlsource.com/starthere/browserreview.html.Accessed August23, 2007.Firefox 2. Available online. URL: http://www.mozilla.com/en-US/firefox/. Accessed August 23, 2007.Opera Browser Home Page. Available online. URL: http://www.opera.com/. Accessed August 23, 2007.Ross, Blake. Firefox for Dummies. Hoboken, N.J.: Wiley, 2006.Windows Internet Explorer 7. Available online. URL: http://www.micros<strong>of</strong>t.com/windows/products/winfamily/ie/default.mspx. Accessed August 23, 2007.webcamThous<strong>and</strong>s <strong>of</strong> real-time views <strong>of</strong> the world are available onthe Web. These include everything from the prosaic (a c<strong>of</strong>feemachine at MIT) to the international (a view <strong>of</strong> downtownParis or Tokyo) to the sublime (a Rocky Mountainsunset). All <strong>of</strong> these views are made possible thanks to theavailability <strong>of</strong> inexpensive digital cameras (see photography,digital).To create a basic webcam, the user connects a digitalcamera to a PC, usually via a USB cable. A program controlsthe camera, taking a picture at frequent intervals (perhapsevery 30 seconds or minute). The picture is received fromthe camera as a JPG (JPEG) file. The program then uploadsthe picture to the user’s Web page (usually using file transferprotocol, or ftp), replacing the previous picture. Usersconnected to the Web site can click to see the latest picture.Alternatively, a script running on the server can update thepicture automatically.History <strong>and</strong> ApplicationsOne <strong>of</strong> the earliest <strong>and</strong> most famous webcams was createdby Quentin Stafford-Fraser in 1991. He later recalled that he<strong>and</strong> his fellow “c<strong>of</strong>fee club” members were tired <strong>of</strong> makingthe long trek to the c<strong>of</strong>fee room at the Cambridge Universitycomputer laboratory. It seemed that more <strong>of</strong>ten thannot the life-giving brew so necessary to computer sciencehad already been consumed. So they rigged a video camera,connected it to a video capture card, <strong>and</strong> fed the imageinto the building’s local network. Now researchers workinganywhere in the building could get an updated image <strong>of</strong> thec<strong>of</strong>fee machine three times a minute. This wasn’t technicallya webcam. At the time the Web was just being developedby Tim Berners-Lee (see Berners-Lee, Tim). However,the camera was put on the Web in 1993, where it resideduntil 2001 when the laboratory housing the now-famousc<strong>of</strong>fee machine was moved.The webcam became a social phenomenon in 1996 whena college student named Jennifer Ringley started Jennicam,a webcam set up to make a continuing record <strong>of</strong> her dailylife available on the Web. There were soon many imitators.Apparently this use <strong>of</strong> Webcams taps into humans’ intensecuriosity about the details <strong>of</strong> each other’s lives—a curiositythat to some critics tips over into voyeurism <strong>and</strong> obsession.The popularity <strong>of</strong> such social webcams may have contributedto the “reality TV” phenomenon at the turn <strong>of</strong> the newcentury.Webcams have many practical applications, however.People on the road can log into the Web <strong>and</strong> check to makesure everything is okay at home. A webcam also makes aninexpensive monitor for checking on infants or toddlers inanother room, or checking on the behavior <strong>of</strong> a babysitter(“Nannycam”).Webcams can also serve an educational purpose. Theycan take viewers to remote volcanoes or the interior <strong>of</strong> an


webmaster 505Amazon rain forest. In a sense, viewers who saw the pictures<strong>of</strong> the Martian surface <strong>and</strong> the explorations <strong>of</strong> theSojourner rover were using the farthest-reaching webcam<strong>of</strong> all.Further ReadingBreeden, John, <strong>and</strong> Jason Byrne. Guide to Webcams. Indianapolis:Prompt Publications, 2001.Layton, Julia. “How Webcams Work.” Available online. URL:http://www.howstuffworks.com/webcam.htm. AccessedAugust 23, 2007.Mobberly, Martin. Lunar <strong>and</strong> Planetary Webcam User’s Guide. NewYork: Springer, 2006.Webcam Resources. Available online. URL: http://www.resourcehelp.com/qserwebcam.htm. Accessed August 23, 2007.Web filterListings <strong>of</strong> the most frequent requests typed into Web searchengines usually begin with the word sex. Although sensationaljournalism <strong>of</strong> the mid-1990s sometimes unfairlyportrayed the World Wide Web as nothing more than anelectronic red light district, it is indisputable that there aremany Web sites that feature material that most people wouldagree is not suitable for young people. Many parents as wellas some schools, libraries, <strong>and</strong> workplaces have installed Webfilter programs, marketed under names such as SurfWatch orNetNanny. Popular Internet security programs (such as thosefrom Norton/Symantec) also include Web filter modules.The Web filter examines requests made by a Web user(see World Wide Web <strong>and</strong> Web browser) <strong>and</strong> blocksthose associated with sites deemed by the filter user to beobjectionable. There are two basic mechanisms for determiningwhether a site is unsuitable. The first is to check thesite’s address (URL) against a list <strong>and</strong> reject a request forany site on the list. (Most filter programs come with defaultlists; the filter user can add other sites as desired. Generally,the filter is installed with a password so only the authorizeduser [such as a parent] can change the filter’s behavior.)The other filtering method relies on a list <strong>of</strong> keywordsassociated with objectionable activities (such as pornography).When the user requests a site, the filter checks the pagefor words on the keyword list. If a matching word or phraseis found, the site is blocked <strong>and</strong> not shown to the user.Each method has its drawbacks: Using a site list willmiss new sites that appear between list updates, while usingkeywords can result in appropriate sites also being blocked.For example, a keyword filter that blocks sites with theword breast will probably also block a site devoted to breastcancer research, a fact <strong>of</strong>ten pointed out by opponents <strong>of</strong>laws requiring the use <strong>of</strong> Web filters. The list <strong>and</strong> keywordmethods can be combined.Filtering <strong>and</strong> parental control <strong>of</strong>ten involves more thansimply blocking Web sites. Many filtering products attemptto scan <strong>and</strong> block problematic chat <strong>and</strong> e-mail messages.Another type <strong>of</strong> filtering tries to stop users (particularlychildren) from providing sensitive information such astheir name <strong>and</strong> address online. Another common parentalcontrol feature is the ability to limit the times <strong>of</strong> day <strong>and</strong>total amount <strong>of</strong> time a child can go online.Besides protecting children from inappropriate materialat home or in a school or library, Web filters are also used inworkplaces. Besides wanting to keep workers from becomingdistracted, employers are concerned that allowing Internetpornography in the workplace may make them liable forcreating a “hostile work environment” under sexual harassmentlaws.However, civil liberties groups such as the ACLU objectto the use <strong>of</strong> Web filters in public libraries on First Amendmentgrounds <strong>and</strong> have vigorously fought such legislationin the courts. The 1996 Communications Decency Act wasdeclared unconstitutional by the U.S. Supreme Court, <strong>and</strong>a later law, the 1998 Child On-line Protection Act (whichrequires that users <strong>of</strong> adult Web sites provide pro<strong>of</strong> <strong>of</strong> age)was overturned by the U.S. Supreme Court in 2004.The next attempt at protecting children online was the2002 Children’s Internet Protection Act. This law was eventuallyupheld by the courts subject to the requirement thatadult library users be given prompt unfiltered access to theInternet upon request.Critics <strong>of</strong> Web filters suggest that rather using technicaltools to block access to the Internet, parents <strong>and</strong> teachersshould talk to children about their use <strong>of</strong> the Internet <strong>and</strong>supervise it if necessary. Another approach is to focus onWeb sites that are designed especially for kids.Further ReadingGilbert, Alorie, <strong>and</strong> Stefanie Olsen. “Do Web Filters Protect YourChild?” CNET News. Available online. URL: http://news.com.com/Do+Web+filters+protect+your+child/2100-1032_3-6030200.html. Accessed August 23, 2007.Internet Filter Reviews. Available online. URL: http://internetfilter-review.toptenreviews.com/.Accessed August 23, 2007.Olsen, Stefanie. “Kids Outsmart Web Filters.” CNET News. Availableonline. URL: http://news.com.com/Kids+outsmart+Web+filters/2009-1041_3-60 62548.html. Accessed August 23, 2007.Parental Control S<strong>of</strong>tware. Available online. URL: http://www.s<strong>of</strong>tforyou.com/. Accessed August 23, 2007.webmasterThere are many online services (including some free ones)that will provide users with personal Web pages. Thereare also programs such as Micros<strong>of</strong>t FrontPage that allowusers to design Web pages by arranging objects visually onthe screen <strong>and</strong> setting their properties. However, creating<strong>and</strong> maintaining a complete Web site with its many linkedpages, interactive forms <strong>and</strong> interfaces to databases <strong>and</strong>other services is a complicated affair. For most moderateto large-size organizations, it requires the services <strong>of</strong> a newcategory <strong>of</strong> IT pr<strong>of</strong>essional: the webmaster.Although the mixture <strong>of</strong> tasks <strong>and</strong> responsibilities willvary with the extent <strong>and</strong> purpose <strong>of</strong> the Web site, the skillset for a webmaster can include the following:Developing <strong>and</strong> Extending the Web site• underst<strong>and</strong>ing how the Web site responds to <strong>and</strong>manages requests (see Web server)


506 Web page design• fluency in the basic formatting <strong>of</strong> text <strong>and</strong> other pagecontent <strong>and</strong> the use <strong>of</strong> frames <strong>and</strong> other tools fororganizing <strong>and</strong> presenting text (see html)• extended formatting <strong>and</strong> content organization facilitiessuch as Cascading Style Sheets (CSS), DynamicHTML (DHTML), <strong>and</strong> Extensible Markup Language(see xml)• use <strong>of</strong> graphics formats <strong>and</strong> graphics <strong>and</strong> animationprograms (such as Photoshop, Flash, <strong>and</strong> Dream-Weaver)• extending the interactivity <strong>of</strong> Web pages throughwriting scripts using tools such as JavaScript <strong>and</strong> PHP(see cgi, JavaScript, <strong>and</strong> Python)• dealing with platform <strong>and</strong> compatibility issues,including browser compatibilityIt is hard to draw a bright line between advanced tasksfor webmasters <strong>and</strong> full-blown applications designed torun on servers or Web browsers. Some additional tools forextending Web capabilities include:• languages for Web application development (see c#,Java, Ruby, <strong>and</strong> Visual Basic)• Web server <strong>and</strong> browser plug-ins• Active X controls <strong>and</strong> the Micros<strong>of</strong>t .NET framework(for Windows-based systems)• techniques for the efficient updating <strong>of</strong> dynamic Webpages (see Ajax)Administrative Tasks• Obtaining, organizing, <strong>and</strong> updating the content forWeb pages (this may be delegated to writers, editors,or graphics specialists)• monitoring the performance <strong>of</strong> the Web server• ensuring site availability <strong>and</strong> response time• recommending acquisition <strong>of</strong> new hardware or s<strong>of</strong>twareas necessary• using tools to gather information about how the site isbeing used, what parts are being visited, the effectiveness<strong>of</strong> advertising, <strong>and</strong> so on (This is particularly relevantto commercial sites, <strong>and</strong> can raise privacy issues.)• setting up <strong>and</strong> managing facilities for online shopping(see e-commerce)• installing <strong>and</strong> using security tools (particularly importantfor commercial <strong>and</strong> sensitive government sites)• developing policies <strong>and</strong> deploying tools to help protectusers’ privacy <strong>and</strong> to control the use <strong>of</strong> informationthey submit online• working with major search engine providers to ensurethat the site is presented to relevant searches• fielding queries from users about the operation <strong>of</strong> thesite• relating the Web site operation to other concerns suchas marketing, technical support, or the legal department• developing policies for Web site use• integrating the Web site operations into the overallcorporate planning <strong>and</strong> budgeting processThe mixture <strong>of</strong> technical pr<strong>of</strong>essional <strong>and</strong> administratorthat is the webmaster makes for an always interesting <strong>and</strong>challenging career. In larger organizations there may befurther differentiation <strong>of</strong> roles, with the webmaster mainlycharged with operation <strong>and</strong> maintenance <strong>of</strong> the site, withthe development <strong>and</strong> extension <strong>of</strong> the site h<strong>and</strong>led by contentproviders <strong>and</strong> programmers. However, even in suchcases the webmaster will need to have a general underst<strong>and</strong>ing<strong>of</strong> how the various features <strong>of</strong> the Web site interact <strong>and</strong><strong>of</strong> the tools used to create <strong>and</strong> maintain them. People withwebmaster skills can also work as independent consultantsto set up <strong>and</strong> run Web sites for smaller businesses, schools,<strong>and</strong> nonpr<strong>of</strong>it organizations.Webmaster skills are now taught in high school, communitycollege, vocational school, <strong>and</strong> as part <strong>of</strong> universityinformation technology programs. However the situationwith regard to certification remains somewhat chaotic, witha variety <strong>of</strong> proprietary <strong>and</strong> multivendor certifications competingfor attention.The long-term outlook for qualified webmasters remainsgood. Many organizations have made a fundamental commitmentto use <strong>of</strong> the Web for business functions, <strong>and</strong> webmastersare needed to manage this effort.Further ReadingAmerican Association <strong>of</strong> Webmasters. Available online. URL:http://www.aawebmasters.com/. Accessed August 23, 2007.Big Webmaster—Webmaster Resources. Available online. URL:http://www.bigwebmaster.com/. Accessed August 23, 2007.Spainhour, Sebastian. Webmaster in a Nutshell. 3rd ed. Sebastapol,Calif.: O’Reilly, 2002.Still, Julie. The Accidental Webmaster. Medford, N.J.: InformationToday, 2003.Web page designThe World Wide Web has existed for fewer than twodecades, so it is not surprising that the principles <strong>and</strong> practicesfor the design <strong>of</strong> attractive <strong>and</strong> effective Web pages arestill emerging. As seen in the preceding entry (see webmaster),creating Web pages involves many skills. In additionto the basic art <strong>of</strong> writing, many skills that had belonged toseparate pr<strong>of</strong>essions in the print world now <strong>of</strong>ten must beexercised by the same individual. These include typography(the selection <strong>and</strong> use <strong>of</strong> type <strong>and</strong> type styles), composition(the arrangement <strong>of</strong> text on the page), <strong>and</strong> graphics. To thismix must be added nontraditional skills such as designinginteractive features <strong>and</strong> forms, interfacing with other facilities(such as databases), <strong>and</strong> perhaps the incorporation <strong>of</strong>features such as animation or streaming audio or video.However new the technology, the design process stillbegins with the traditional questions any writer must ask:


Web server 507What is the purpose <strong>of</strong> this work? Who am I writing for?What are the needs <strong>of</strong> this audience? A Web site that isdesigned to provide background information <strong>and</strong> contactfor a university department is likely to have a printlikeformat <strong>and</strong> a restrained style. Nevertheless, the designer <strong>of</strong>such a site may be able to imaginatively extend it beyondthe traditional bounds—for example, by including streamingvideo interviews that introduce faculty members.A site for an online store is likely to have more graphics<strong>and</strong> other attention-getting features than an academicor government site. However, despite the pressure to “grabeyeballs,” the designer must resist making the site so clutteredwith animations, pop-up windows, <strong>and</strong> other featuresthat it becomes hard for readers to search for <strong>and</strong> read aboutthe products they want.A site intended for an organization’s own use should notbe visually unattractive, but the emphasis is not on grabbingusers’ attention, since the users are already committedto using the system. Rather, the emphasis will be on providingspeedy access to the information people need to do theirjob, <strong>and</strong> in keeping information accurate <strong>and</strong> up to date.Once the general approach is settled on, the design mustbe implemented. The most basic tool is HTML, which hasundergone periodic revisions <strong>and</strong> expansions (see html).Even on today’s large, high-resolution monitors a screen<strong>of</strong> text is not the same as a page in a printed book ormagazine. There are many ways text can be organized (seehypertext <strong>and</strong> hypermedia). A page that is presentinga manual or other lengthy document can mimic a printedbook by having a table <strong>of</strong> contents. Clicking on a chaptertakes the reader there. Shorter presentations (such as productdescriptions) might be shown in a frame with buttonsfor the reader to select different aspects such as features<strong>and</strong> pricing. Frames (independently scrollable regions ona page) can turn a page into a “window” into many kinds<strong>of</strong> information without the user having to navigate frompage to page, but there can be browser compatibility issues.Tables are another important tool for page designers. Settingup a table <strong>and</strong> inserting text into it allows pages to beformatted automatically.Many sites include several different navigation systemsincluding buttons, links, <strong>and</strong> perhaps menus. This can begood if it provides different types <strong>of</strong> access to serve differentneeds, but the most common failing in Web design isprobably the tendency to clutter pages with features to thepoint that they are confusing <strong>and</strong> actually harder to use.Although the Web is a new medium, much <strong>of</strong> the traditionaltypographic wisdom still applies. Just as many peoplewho first encountered the variety <strong>of</strong> Windows or Macintoshfonts in the 1980s filled their documents with a variety<strong>of</strong> <strong>of</strong>ten bizarre typefaces, beginning Web page designerssometimes choose fonts that they think are “edgy” or cool,but may be hard to read—especially when shown against apurple background!Today it is quite possible to create attractive Web pageswithout extensive knowledge <strong>of</strong> HTML. Programs suchas FrontPage <strong>and</strong> DreamWeaver mimic the operation <strong>of</strong> aword processor <strong>and</strong> take a WYSIWYG (what you see iswhat you get) approach. Users can build pages by selecting<strong>and</strong> arranging structural elements, while choosing stylesfor headers <strong>and</strong> other text as in a word processor. Theseprograms also provide “themes” that help keep the visual<strong>and</strong> textual elements <strong>of</strong> the page consistent. Of course,designing pages in this way can be criticized as leading to a“canned” product. People who want more distinctive pagesmay choose instead to learn the necessary skills or hire apr<strong>of</strong>essional Web page designer. A feature called CascadingStyle Sheets (CSS) allows designers to precisely control theappearance <strong>of</strong> Web pages while defining consistent stylesfor elements such as headings <strong>and</strong> different types <strong>of</strong> text(see cascading style sheets).Most Web pages include graphics, <strong>and</strong> this raises anadditional set <strong>of</strong> issues. Most users now have fast Internetconnections (see broadb<strong>and</strong>), but others are still limited toslower dial-up speeds. One way to deal with this situation isto display relatively small, lower-resolution graphics (usually72 pixels per inch), but to allow the user to click on ornear the picture to view a higher-resolution version. Anotherconsideration in today’s wireless world is ensuring that Webpages likely to be useful to users on the go, such as a restaurantguide, display well in the small browsers found inmobile devices (see pda <strong>and</strong> smartphone). Page designersmust also make sure that the graphics they are using are createdin-house, are public domain, or are used by permission.Animated graphics (animated GIFs or more elaboratepresentations created with s<strong>of</strong>tware) can raise performance<strong>and</strong> compatibility issues. Generally, if a site <strong>of</strong>fers, for example,Flash animations, it also <strong>of</strong>fers users an alternative presentationto accommodate those with slower connections orwithout the necessary browser plug-ins.The line between Web page design <strong>and</strong> other Web servicescontinues to blur as more forms <strong>of</strong> media are carriedonline (see digital convergence). Web designers need tolearn about such media technologies (see for example podcasting,rss, <strong>and</strong> streaming) <strong>and</strong> find appropriate ways tointegrate them into their pages. Web pages may also needto provide or link to new types <strong>of</strong> forums (see blogs <strong>and</strong>blogging <strong>and</strong> wikis <strong>and</strong> Wikipedia).Further ReadingBeaird, Jason. The Principles <strong>of</strong> Beautiful Web Design. Lancaster,Calif.: Sitepoint, 2007.Lopuck, Lisa. Web Design for Dummies. 2nd ed. Hoboken, N.J.:Wiley, 2006.Robbins, Jennifer Niederst. Learning Web Design: A Beginner’sGuide to HTML, Graphics, <strong>and</strong> Beyond. Sebastapol, Calif.:O’Reilly Media, 2003.Sitepoint. Available online. URL: http://www.sitepoint.com.Accessed August 23, 2007.Web serverMost Web users are not aware <strong>of</strong> exactly how the informationthey click for is delivered, but the providers <strong>of</strong> informationon the Web must be able to underst<strong>and</strong> <strong>and</strong> usethe Web server. In simple terms, a Web server is a programrunning on a networked computer (see Internet). Theserver’s job is to deliver the information <strong>and</strong> services thatare requested by Web users.


508 Web servicesWhen a user types in (or clicks on) a link in the browserwindow, the browser sends a HTTP request (see http <strong>and</strong>web browser). To construct the request, the browser firstlooks at the address (URL) in the user request. An addresssuch as http://www.well.com/conferencing.html consists <strong>of</strong>three parts:• The protocol, specifying the type <strong>of</strong> request. For Webpages this is normally http. In many cases this partcan be omitted <strong>and</strong> the browser will assume that it ismeant.• The name <strong>of</strong> the server—in this case, www.well.com. The www indicates that it is a World Wide Webserver. The rest <strong>of</strong> the server name gives the organization<strong>and</strong> the domain (.com, or commercial).• The specific page being requested. A Web page is simplya file stored on the server, <strong>and</strong> has the extensionhtm or html to indicate that it is an HTML-formattedpage. If no page is specified, the server will normallyprovide a default page such as index.html.In order to direct the browser’s request to the appropriatehost <strong>and</strong> server, the browser sends the URL to a nameserver (see domain name system). The name server providesthe appropriate numeric IP address (see tcp/ip). Thebrowser then sends an HTTP “get” request to the server’s IPaddress.Assuming the page requested is valid, the server sendsthe HTML file to the browser. The browser in turn interpretsthe formatting <strong>and</strong> display instructions in the HTMLfile <strong>and</strong> “renders” the text <strong>and</strong> graphics appropriately. It isremarkable that this whole process from user click to displayedpage usually takes only a few seconds, even if theWeb site is thous<strong>and</strong>s <strong>of</strong> miles away <strong>and</strong> requests must berelayed through many intervening computers.Web Server FeaturesWeb servers would be simple if Web pages consisted only<strong>of</strong> static text <strong>and</strong> graphics. However, Web pages today aredynamic: They can display animations, sound, <strong>and</strong> video.They also interact with the user, responding to menus<strong>and</strong> other controls, presenting <strong>and</strong> processing forms, <strong>and</strong>retrieving data from linked databases. To do these things,the server cannot simply serve up a preformatted page, itmust dynamically generate a unique page that responds tothe user’s actions.This interactivity requires that the server be able torun programs (scripts) embedded in Web pages. The CommonGateway Interface (CGI) is the basic mechanism forthis, though many Web page developers can now work at ahigher level to create their page’s interaction through scriptsin languages such JavaScript. (See cgi <strong>and</strong> scripting languages.)The task <strong>of</strong> interfacing Web pages with databasefacilities is <strong>of</strong>ten accomplished using powerful data-managementlanguages (see Perl <strong>and</strong> Python).Windows-based servers use ASP (Active Server Pages), afacility that links the Web server to Windows ActiveX controlsto access databases. The interaction is usually scriptedin VB Script or JScript.Modern Web server s<strong>of</strong>tware also contains modules formonitoring <strong>and</strong> security—an increasingly important considerationas Web sites become essential to business <strong>and</strong>the delivery <strong>of</strong> goods <strong>and</strong> services.One <strong>of</strong> the most popular <strong>and</strong> reliable Web servers inuse today is Apache, developed in 1995 <strong>and</strong> freely distributedwith Linux <strong>and</strong> other UNIX systems (there is also aWindows version). The name is a pun on “a patchy server,”meaning that it was developed by adding a series <strong>of</strong> “s<strong>of</strong>twarepatches” to existing NCSA server code. Micros<strong>of</strong>t alsoprovides its own line <strong>of</strong> Web server s<strong>of</strong>tware that is specificto Windows.The future should see an increasingly seamless integrationbetween Web servers, browsers, <strong>and</strong> other applications.Micros<strong>of</strong>t has been promoting .NET, an initiative thatis designed to build Internet access <strong>and</strong> interoperabilityinto all applications, providing operating system extensions<strong>and</strong> programming frameworks (see Ajax <strong>and</strong> Micros<strong>of</strong>t.NET).Beyond Micros<strong>of</strong>t’s mainly proprietary efforts, anothersource <strong>of</strong> integration is the growing use <strong>of</strong> the ExtensibleMarkup Language (see xml) <strong>and</strong> its <strong>of</strong>fshoot SOAP (SimpleObject Access Protocol) (see soap). The goal is to give Webdocuments <strong>and</strong> other objects the ability to “communicate”their content <strong>and</strong> structure to other programs, <strong>and</strong> to allowprograms to freely request <strong>and</strong> provide services to oneanother regardless <strong>of</strong> vendor, platform, or location. As thistrend progresses, the Web server starts to “disappear” as aseparate entity <strong>and</strong> the provision <strong>of</strong> Web services becomes adistributed, cooperative effort (see also Web services).Further ReadingApache S<strong>of</strong>tware Foundation. Available online. URL: http://www.apache.org/. Accessed August 23, 2007.Aulds, Charles. Linux Apache Web Server Administration. 2nd ed.Alameda, Calif.: Sybex, 2002.Braginski, Leonid. Running Micros<strong>of</strong>t Internet Information Server.New York: McGraw-Hill, 2000.Jones, Brian W. How to Host Your Own Web Server. Morrisville,N.C.: Lulu.com, 2006.Rosenbrock, Eric, <strong>and</strong> Eric Filson. Setting Up LAMP: Getting Linux,Apache, MySQL, <strong>and</strong> PHP Working Together. Alameda, Calif.:Sybex, 2004.Silva, Steve. Web Server Administration. Boston: Course <strong>Technology</strong>,2003.Web servicesA characteristic <strong>of</strong> the modern Web <strong>and</strong> its development isthat much <strong>of</strong> the s<strong>of</strong>tware is designed to <strong>of</strong>fer services orcapabilities that can be called upon by applications. Thiscreation <strong>of</strong> powerful, versatile building blocks has greatlysped the evolution <strong>of</strong> Web applications (see Web 2.0 <strong>and</strong>beyond).In order to be useful, a service must be able to underst<strong>and</strong>“messages” (requests) <strong>and</strong> provide appropriateresponses. The medium <strong>of</strong> exchange is a structured textfile (see xml) <strong>and</strong> a st<strong>and</strong>ard format. Three commonly usedspecifications (defined by the World Wide Web Consortium,or W3C) are what was originally called Simple Object


Weizenbaum, Joseph 509Access Protocol (see soap), the Web Services DescriptionLanguage (WSDL), <strong>and</strong> the Universal Description Discovery<strong>and</strong> Integration (UDDI), which can coordinate <strong>and</strong>“broker” the services. To keep requester <strong>and</strong> responder onthe same page (so to speak), the W3C also provides a set <strong>of</strong>“pr<strong>of</strong>iles” that specify which versions <strong>of</strong> which specificationsare being used. Additionally, a number <strong>of</strong> specializedspecifications are under development, such as for h<strong>and</strong>lingconsiderations for security <strong>and</strong> transactions.There are several ways in which Web services can beaccessed:• Remote Procedure Call (RPC), which generally usesWSDL <strong>and</strong> follows a format similar to the traditionalway programs call upon library functions• An organization based on the available messagesrather than calls or operations (see service-orientedarchitecture)• Representational State Transfer (REST), which viewsapplications or services as collections <strong>of</strong> “resources”with specific addresses (URLs) <strong>and</strong> specific requestsusing HTTPA variety <strong>of</strong> other specifications <strong>and</strong> approaches can beused; this area is a very fluid one. Fortunately, programmers<strong>and</strong> even users (see mashups) can build new Webapplications without having to know the details <strong>of</strong> how theunderlying services work.Further ReadingCerami, Ethan. Web Services Essentials: Distributed Applicationswith XML-RPC, SOAP, UDDI & WSDL. Sebastapol, Calif.:O’Reilly, 2002.Papazoglu, Michael. Web Services: Principles <strong>and</strong> <strong>Technology</strong>. UpperSaddle River, N.J.: Prentice-Hall, 2007.Richardson, Leonard, <strong>and</strong> Sam Ruby. RESTful Web Services. Sebastapol,Calif.: O’Reilly, 2007.World Wide Web Consortium. Web Services Activity. Availableonline. URL: http://www.w3.org/2002/ws/. Accessed December4, 2007.Weizenbaum, Joseph(1923– )German-American<strong>Computer</strong> ScientistJoseph Weizenbaum, after writing one <strong>of</strong> the most famousprograms in the history <strong>of</strong> artificial intelligence research,eventually became one <strong>of</strong> the most persistent <strong>and</strong> cogentcritics <strong>of</strong> the AI project itself.Weizenbaum was born on January 8, 1923, in Berlinto Jewish parents. Having fled Nazi Germany with hisparents, in 1941 Weizenbaum enrolled in Wayne Universityin Detroit, Michigan. However, the following year heenlisted in the United States Army Air Corps. After thewar he resumed his study <strong>of</strong> mathematics. While workingas a research assistant, Weizenbaum had the opportunityto help design <strong>and</strong> build an early digital computer, <strong>and</strong>although he received his master’s degree in mathematics in1950, he would spend his career in the computer field.From 1955 to 1963 Weizenbaum worked for GeneralElectric’s <strong>Computer</strong> Development Laboratory as a systemsengineer. During this time he would oversee the design <strong>and</strong>implementation <strong>of</strong> the first integrated computerized bankingsystem, for Bank <strong>of</strong> America.In 1963 Weizenbaum returned to academia, joining thefaculty at MIT, which had one <strong>of</strong> the nation’s foremost programsin artificial intelligence research. He contributed tothe development <strong>of</strong> the time-sharing computer system atMIT <strong>and</strong> early computer networks, but the work for whichhe would be most remembered started with his interestin getting machines to “underst<strong>and</strong>” human language (seenatural language processing).In 1966 Weizenbaum <strong>and</strong> a collaborator, psychiatristKenneth Colby, created a remarkable program called Eliza(named for the character in Bernard Shaw’s play who istaught “proper English” by Pr<strong>of</strong>essor Henry Higgins). Elizawas remarkable not for its complexity or for innovative use<strong>of</strong> AI techniques, but for the way it used a few simple proceduresto convey the impression that it was a true artificialintelligence—or indeed, a real person.Eliza worked basically by identifying key words <strong>and</strong>basic sentence structure <strong>and</strong> then “mirroring” the user’sstatements back. A sample snippet <strong>of</strong> human-Eliza dialogmight look like this (Eliza’s words are in caps).Men are all alike.IN WHAT WAY?They’re always bugging us about something or other.CAN YOU THINK OF A SPECIFIC EXAMPLE?Well, my boyfriend made me come here.YOUR BOYFRIEND MADE YOU COME HERE?He says I’m depressed much <strong>of</strong> the time.I AM SORRY TO HEAR YOU ARE DEPRESSED.It’s true. I am unhappy.DO YOU THINK COMING HERE WILL HELP YOU NOT TOBE UNHAPPY?I need some help, that much seems certain.WHAT WOULD IT MEAN TO YOU IF YOU GOT SOME HELP?Perhaps I could learn to get along with my mother.TELL ME MORE ABOUT YOUR FAMILY.Although the program seemed to have at best a superficialunderst<strong>and</strong>ing <strong>of</strong> human language, Weizenbaum soonbecame dismayed at how readily people treated it as thoughit were a human being. (Indeed, Colby wanted to use a programlike Eliza to automate psychotherapy.)The result <strong>of</strong> these concerns was Weizenbaum’s book<strong>Computer</strong> Power <strong>and</strong> Human Reason, a collection <strong>of</strong> essaysthat both explain the achievements <strong>of</strong> AI pioneers <strong>and</strong>points out their limitations. If, as Weizenbaum observes,“the computer programmer is creator <strong>of</strong> universes for whichhe alone is responsible . . . universes <strong>of</strong> almost unlimited


510 Wiener, Norbertcomplexity . . .,” then indeed the computer scientist musttake responsibility for his or her creations. This is the challengethat Weizenbaum believes has not been taken seriouslyenough.As the 1960s progressed, the United States plunged intothe Vietnam War, <strong>and</strong> racial tension crackled in the streets<strong>of</strong> major cities. Weizenbaum became increasingly concernedthat technology was being used for warlike <strong>and</strong> oppressivepurposes. As an activist, Weizenbaum campaigned againstwhat he saw as the misuse <strong>of</strong> technology for military purposessuch as missiles <strong>and</strong> missile defense systems. He wasfounder <strong>of</strong> a group called <strong>Computer</strong> Pr<strong>of</strong>essionals againstthe ABM (anti-ballistic missile).Weizenbaum does not consider himself to be a Luddite,however, <strong>and</strong> he is not without recognition <strong>of</strong> thepotential good that can come from computer technology,though he believes that this potential can only be realizedif humans change their attitudes toward nature <strong>and</strong> theirfellow humanity.During the 1970s <strong>and</strong> 1980s Weizenbaum not onlytaught at MIT, but also lectured or served as a visiting pr<strong>of</strong>essorat a number <strong>of</strong> institutions, including the Center forAdvanced Studies in the Behavioral <strong>Science</strong>s at StanfordUniversity (1972–73), Harvard University (1973–74), <strong>and</strong>coming full circle, the Technical University <strong>of</strong> Berlin <strong>and</strong>the University <strong>of</strong> Hamburg.In 1988 Weizenbaum retired from MIT. That same yearhe received the Norbert Wiener Award for Pr<strong>of</strong>essional<strong>and</strong> Social Responsibility from <strong>Computer</strong> Pr<strong>of</strong>essionalsfor Social Responsibility (CPSR). In 1991 he was given theNamur Award <strong>of</strong> the International Federation for InformationProcessing. He also received European honors suchas the Humboldt Prize from the Alex<strong>and</strong>er von HumboldtFoundation in Germany.Further ReadingBen-Aaron, Diana. “Weizenbaum Examines <strong>Computer</strong>s [<strong>and</strong>]Society.” The Tech (Massachusetts Institute <strong>of</strong> <strong>Technology</strong>)vol. 105, April 9, 1985. Available online. URL: http://wwwtech.mit.edu/V105/N16/weisen.16n.html.Accessed December4, 2007.ELIZA [running as a Java Applet]. Available online. URL: http://www.manifestation.com/neurotoys/eliza.php3. AccessedDecember 4, 2007.Henderson, Harry. Artificial Intelligence: Mirrors for the Mind. NewYork: Chelsea House, 2007.Weizenbaum, Joseph. <strong>Computer</strong> Power <strong>and</strong> Human Reason. SanFrancisco: W. H. Freeman, 1976.“Weizenbaum: Rebel at Work” [information about <strong>and</strong> excerptsfrom a film by Peter Haas]. Available online. URL: http://www.ilmarefilm.org/W_E_1.htm. Accessed December 4,2007.Wiener, Norbert(1894–1964)AmericanMathematician, PhilosopherNorbert Wiener developed the theory <strong>of</strong> cybernetics, or theprocess <strong>of</strong> communication <strong>and</strong> control in both machines<strong>and</strong> living things. His work has had an important impactboth on philosophy <strong>and</strong> on design principles.Wiener was born on November 26, 1894, in Columbia,Missouri. His father was a linguist at Harvard University,<strong>and</strong> spurred an interest in communication which the boycombined with an avid pursuit <strong>of</strong> mathematics <strong>and</strong> science(particularly biology). A child prodigy, Wiener startedreading at age three, entered Tufts University at age 11,<strong>and</strong> earned his B.A. in 1909 at the age <strong>of</strong> 14, after concludingthat his lack <strong>of</strong> manual dexterity made biological worktoo frustrating. He earned his M.A. in mathematics fromHarvard only three years later, <strong>and</strong> his Harvard Ph.D. inmathematical logic just a year later in 1913. He then traveledto Europe, where he met leading mathematicians suchas Bertr<strong>and</strong> Russell, G. H. Hardy, Alfred North Whitehead,<strong>and</strong> David Hilbert. When the United States entered WorldWar I, Wiener served at Aberdeen Proving Ground, wherehe designed artillery firing tables.After the war, Wiener was appointed as an instructorat MIT, where he would serve until his retirement in 1960.However, he continued to travel widely, serving as a GuggenheimFellow at Copenhagen <strong>and</strong> Göttingen in 1926, <strong>and</strong>a visiting lecturer at Cambridge (1931–32) <strong>and</strong> Tsing-HuaUniversity in Beijing (1935–36). Wiener’s scientific interestsproved to be as wide as his travels, including research intostochastic <strong>and</strong> r<strong>and</strong>om processes (such as the Brownianmotion <strong>of</strong> microscopic particles) where he sought more generalmathematical tools for the analysis <strong>of</strong> irregularity.During the 1930s, Wiener began to work more closelywith MIT electrical engineers who were building mechanicalcomputers (see Bush, Vannevar <strong>and</strong> analog computer). Helearned about feedback controls <strong>and</strong> servomechanisms thatenabled machines to respond to forces in the environment.During World War II, he did secret military researchwith an engineer, Julian Bigelow, on antiaircraft gun controlmechanisms, including methods for predicting thefuture position <strong>of</strong> an aircraft based upon limited <strong>and</strong> possiblyerroneous information.Wiener became particularly interested in the feedbackloop—the process by which an adjustment is made on thebasis <strong>of</strong> information (such as from radar) to a predictednew position, a new reading is taken <strong>and</strong> a new adjustmentmade, <strong>and</strong> so on. (He had first encountered these conceptsat MIT with his friend <strong>and</strong> colleague Harold Hazen.) Theuse <strong>of</strong> “negative feedback” made it possible to design systemsthat would progressively adjust themselves such as byintercepting a target. More generally, it suggested mechanismsby which a machine (perhaps a robot) could progressivelywork toward a goal.Wiener’s continuing interest in biology led him alwaysto relate what he was learning about control <strong>and</strong> feedbackmechanisms to the behavior <strong>of</strong> living organisms. He had followedthe work <strong>of</strong> Arturo Rosenbleuth, a Mexican physiologistwho was studying neurological conditions that appearedto result from excessive or inaccurate feedback. (Unlike thehelpful negative feedback, positive feedback in effect amplifieserrors <strong>and</strong> sends a system swinging out <strong>of</strong> control.)By the end <strong>of</strong> World War II, Wiener, Rosenbleuth, theneuropsychiatrist Warren McCulloch, <strong>and</strong> the logician


wikis <strong>and</strong> Wikipedia 511Walter Pitts were working together toward a mathematicaldescription <strong>of</strong> neurological processes such as the firing<strong>of</strong> neurons in the brain. This research, which startedout with the relatively simple analogy <strong>of</strong> electromechanicalrelays (as in the telephone system) would eventually resultin the development <strong>of</strong> neural network theory (see neuralnetwork <strong>and</strong> Minsky, Marvin). More generally, these scientists<strong>and</strong> others (see von Neumann, John) had begun todevelop a new discipline for which Wiener in 1947 gave thename cybernetics. This word is from a Greek word referringto the steersman <strong>of</strong> a ship, suggesting the control <strong>of</strong> a systemin response to its environment.The field <strong>of</strong> cybernetics attempted to draw from manysources, including biology, neurology, logic, <strong>and</strong> whatwould later become robotics <strong>and</strong> computer science. Wiener’s1948 book, Cybernetics or Control <strong>and</strong> Communicationin the Animal <strong>and</strong> the Machine, was as much philosophicalas scientific, suggesting that cybernetic principles could beapplied not only to scientific research <strong>and</strong> engineering butalso to the better governance <strong>of</strong> society. (On a more practicallevel Wiener also worked with Jerome Wiesner ondesigning prosthetics to replace missing limbs.)Although Wiener did not work much directly with computers,the ideas <strong>of</strong> cybernetics would indirectly influencethe new disciplines <strong>of</strong> artificial intelligence (AI) <strong>and</strong> robotics.However, in his 1950 book, The Human Use <strong>of</strong> HumanBeings, Wiener warned against the possible misuse <strong>of</strong> computersto rigidly control or regiment people, as was theexperience in Stalin’s Soviet Union. Wiener became increasinglyinvolved in writing these <strong>and</strong> other popular works tobring his ideas to a general audience.Wiener received the National Medal <strong>of</strong> <strong>Technology</strong> fromPresident Johnson in 1964. The accompanying citationpraised his “marvelously versatile contributions, pr<strong>of</strong>oundlyoriginal, ranging within pure <strong>and</strong> applied mathematics, <strong>and</strong>penetrating boldly into the engineering <strong>and</strong> biological sciences.”He died on March 18, 1964, in Stockholm, Sweden.Further ReadingConway, Flo, <strong>and</strong> Jim Siegelm. Dark Hero <strong>of</strong> the Information Age: InSearch <strong>of</strong> Norbert Wiener, The Father <strong>of</strong> Cybernetics. New York:Basic Books, 2005.Heims, Steve J. John von Neumann <strong>and</strong> Norbert Wiener: From Mathematicsto the Technologies <strong>of</strong> Life <strong>and</strong> Death. Cambridge, Mass.:MIT Press, 1980.Wiener, Norbert. Cybernetics, or Control <strong>and</strong> Communication in theAnimal <strong>and</strong> Machine. Cambridge, Mass.: MIT Press, 1950 (2nded. 1961).———. The Human Use <strong>of</strong> Human Beings: Cybernetics <strong>and</strong> Society.Boston: Houghton Mifflin, 1950. (2nd ed., Avon Books,1970).———. Invention: The Care <strong>and</strong> Feeding <strong>of</strong> Ideas. Cambridge, Mass.:MIT Press, 1993.wikis <strong>and</strong> WikipediaA wiki (from the Hawaiian word for “quick”) is a generallyWeb-based s<strong>of</strong>tware application that allows users to collaborativelycontribute <strong>and</strong> edit articles on various topics.Developed by Howard G. “Ward” Cunningham in the mid-1990s, the best-known example today is Wikipedia.Structure <strong>and</strong> S<strong>of</strong>twareWiki s<strong>of</strong>tware varies in details such as use <strong>of</strong> markup languages,programming interface, <strong>and</strong> platform. However,most wikis include the following features:• Users can create new pages (articles) or edit existingones.• Pages contain links to related pages, sometimes using“wiki words” where WordsAreScrunchedTogether-WithIntialCaps.• Simple markup can be used to create such effects asboldface, headings, or lists. The wiki s<strong>of</strong>tware usuallytranslates this to HTML for rendering.• A record is kept <strong>of</strong> each contribution or edit, <strong>of</strong>tendisplayed on a “Recent Changes” page.• many wikis use a database (such as MySQL) to store<strong>and</strong> retrieve pages. Some wikis simply store each pageas a file, <strong>and</strong> a few (such as TiddlyWiki) store allpages together as a single document.• Wikis can be public (open to anyone) or restricted,such as to members <strong>of</strong> an organization.• The administrator <strong>of</strong> the wiki establishes guidelinesor st<strong>and</strong>ards (such as for citing sources for facts) <strong>and</strong>procedures for dealing with disputes <strong>and</strong> controversialtopics.There is now a great variety <strong>of</strong> wiki s<strong>of</strong>tware for justabout every computing platform. At one end there is MediaWiki,the s<strong>of</strong>tware used to implement Wikipedia, <strong>and</strong>“enterprise wikis” such as BrainKeeper <strong>and</strong> Twiki, providingcomplex features for large-scale knowledge bases. Socalledpersonal Wikis such as DidiWiki <strong>and</strong> TiddlyWikican be used by individuals for note-taking, research, ormanaging personal information.Wikipedia <strong>and</strong> Its CriticsFounded in 2001 (see Wales, Jimmy), Wikipedia is theworld’s largest <strong>and</strong> best-known wiki. As <strong>of</strong> mid-2008 Wikipediahad more than 2,500,000 articles in English <strong>and</strong>7,500,000 in more than 250 other languages. At any giventime there are about 75,000 people from all backgrounds<strong>and</strong> walks <strong>of</strong> life contributing or editing articles.Wikipedia has a number <strong>of</strong> strengths. Its ubiquity <strong>and</strong>diversity enable it to cover tens <strong>of</strong> thous<strong>and</strong>s <strong>of</strong> topics(including the obscure or the simply local) that would bedeemed unsuitable or impracticable for traditional encyclopedias.Emerging topics, including recent news events, canbe covered quickly <strong>and</strong> comprehensively (though perhapsblurring the lines between reference <strong>and</strong> journalism).The principal problem raised by critics stems from issues<strong>of</strong> “quality control.” Unlike the case with traditional encyclopedias,there are no requirements that contributors haveacademic training or otherwise demonstrate their expertisein their chosen area. Further, the ability <strong>of</strong> anyone to editan article has led to “edit wars” as people on different sides


512 wikis <strong>and</strong> WikipediaWiki s<strong>of</strong>tware such as the extensive <strong>and</strong> ever-growing Wikipedia, allows users to collaborate to create <strong>and</strong> update knowledge bases. Entriescan include images such as the astronomical photo shown here. There is also a place for ongoing discussion <strong>of</strong> changes to the page.<strong>of</strong> a controversial topic (or even politicians) would changearticles back <strong>and</strong> forth to reflect their views.Defenders <strong>of</strong> Wikipedia believe that the same “bottomup” writing <strong>and</strong> editing process cited by critics can alsobe one <strong>of</strong> the project’s strengths. Each article has a record<strong>of</strong> changes, <strong>and</strong> many articles have attached discussionpages where writers can critique the page or discuss theirrationales for edits. Finally, they cite a study by the journalNature that found that in the science articles analyzed,Wikipedia averaged four errors while the Encyclopaedia Britannicawas only slightly more accurate, averaging three.Defenders <strong>of</strong> Britannica, however, point out that theirpublication has the kind <strong>of</strong> consistency that can only comethrough rigorous application <strong>of</strong> editorial st<strong>and</strong>ards. Wikipediadoes have st<strong>and</strong>ards that writers <strong>and</strong> editors areurged to apply, such as providing a citation for every significantstatement, maintaining a “neutral point <strong>of</strong> view,” <strong>and</strong>refraining from including original research. Nevertheless,the quality <strong>of</strong> organization <strong>and</strong> writing does vary considerablyfrom one article to the next.Meanwhile innovators in Wikipedia <strong>and</strong> its communityare developing new tools that may improve the reliability <strong>of</strong>


wireless computing 513the encyclopedia. One tool, WikiScanner, searches for <strong>and</strong>compiles information (such as affiliations) about wiki contributors,allowing readers to better judge their competence<strong>and</strong> motivations. Wikipedia’s parent Wikimedia Foundationis also introducing a system by which previouslyunknown contributors will undergo a sort <strong>of</strong> probationaryperiod while their material is scrutinized. (Eventually theywould become “trusted” <strong>and</strong> their material would appearinstantly, as it does now for most articles.)Wikis have, like blogs, become a pervasive form <strong>of</strong>online communication <strong>and</strong> information sharing, <strong>and</strong> havegained considerable attention as an application for the“new” Web (see user-created content, Web 2.0 <strong>and</strong>beyond, <strong>and</strong> social networking). Wikis are currentlybeing used to create rapidly exp<strong>and</strong>ing knowledge bases(such as for technical support), to share emerging scholarship,<strong>and</strong> to promulgate documentation within an organization.Hosting services (called “wiki farms”) such as Wikia<strong>of</strong>fer communities wiki s<strong>of</strong>tware <strong>and</strong> Web space, sometimesfree <strong>of</strong> charge. Wiki principles are also finding their wayinto s<strong>of</strong>tware such as personal information managers (seecontent management).Further ReadingComparison <strong>of</strong> Wiki S<strong>of</strong>tware. Available online. URL: http://en.wikipedia.org/wiki/Comparison_<strong>of</strong>_wiki_s<strong>of</strong>tware.Accessed May 11, 2007.Ebersbach, Anja, Markus Glaser, <strong>and</strong> Richard Heigl. Wiki: WebCollaboration. New York: Springer, 2005.Giles, Jim. “Wikipedia 2.0: Now with Added Trust.” NewScientist.com News Service. Available online. URL: http://technology.newscientist.com/channel/tech/mg19526226.200-wikipedia-20%20-now-with -added-trust.html. Accessed December 4,2007.Klobas, Jane. Wikis: Tools for Information Work <strong>and</strong> Collaboration.Oxford: Ch<strong>and</strong>os Publishing, 2006.Lee, Ellen. “As Wikipedia Moves to S.F., Founder DiscussesPlanned Changes.” San Francisco Chronicle, November 30,2007. Available online. URL: http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/11/30/BUOMTKNJA.DTL. AccessedDecember 3, 2007.Leuf, Bo, <strong>and</strong> Ward Cunningham. The Wiki Way: Quick Collaborationon the Web. Reading, Mass.: Addison-Wesley, 2001.MediaWiki. Available online. URL: http://www.mediawiki.org.Accessed December 4, 2007.Wikipedia. Available online. URL: http://www.wikipedia.org.Accessed December 4, 2007.Woods, Dan. Wikis for Dummies. Hoboken, N.J.: Wiley, 2007.wireless computingUsing suitable radio frequencies to carry data among computerson a local network has several advantages. The trouble<strong>and</strong> expense <strong>of</strong> running cables (such as for Ethernet) inolder buildings <strong>and</strong> homes can be avoided. With a wirelessLAN (WLAN) a user could work with a laptop on the deckor patio while still having access to a high-speed Internetconnection.Typically, a wireless LAN uses a frequency b<strong>and</strong> witheach unit on a slightly different frequency, thus allowingall units to communicate without interference. (Althoughradio frequency is now most popular, wireless LANs canalso use microwave links, which are sometimes used as analternative to Ethernet cable in large facilities.)Usually there is a network access point, a PC that containsa transceiver <strong>and</strong> serves as the network hub (it mayalso serve as a bridge between the wireless network <strong>and</strong> awired LAN). The hub computer can also be connected toa high-speed Internet service via DSL or cable. It has anantenna allowing it to communicate with wireless PCs upto several hundred feet away, depending on building configuration.Each computer on the wireless network has an adapterwith a transceiver so it can communicate with the accesspoint. The adapter can be built-in (as is the case with someh<strong>and</strong>held computers), or mounted on a PC card (for laptops)or an ISA card (for desktop PCs) or connected to aUSB port.Simple home wireless LANs can be set up as a “peer network”where any two units can communicate directly witheach other without going through an access point or hub.Applications needing Internet access (such as e-mail <strong>and</strong>Web browsers) can connect to the PC that has the Internetcable or DSL connection.A wireless LAN can make it easier for workers who haveto move around within the building to do their jobs. Examplesmight include physicians or nurses entering patientdata in a hospital or store workers checking shelf inventory.ProtocolsSeveral protocols or st<strong>and</strong>ards have been developed forwireless LANs. The most common today is IEEE 802.11b,also called WiFi with speeds up to 11 mbps (megabitsper second) transmitting on 2.4 GHz (gigahertz) b<strong>and</strong>.Although that would seem to be fast enough for mostapplications, a new alternative, 802.11n, can <strong>of</strong>fer speedsup to 54 mbps. Because it uses the unlicensed 5 GHzfrequency range it is not susceptible to interference fromother devices.The question <strong>of</strong> security for 802.11 wireless networkshas been somewhat controversial. Obviously, wirelessdata can be intercepted in the same way that cell phone orother radio transmissions can. The networks come with asecurity feature, WEP or the newer WPA, but many usersneglect to enable it, <strong>and</strong> it is vulnerable to certain types <strong>of</strong>attack. Users can obtain greater security by reducing emissionsoutside the building, changing default passwords<strong>and</strong> device IDs, <strong>and</strong> disabling DHCP to make it harderfor snoopers to obtain a valid IP address for the network.Users can also add another layer <strong>of</strong> encryption <strong>and</strong> possiblyisolate the wireless network from the wired networkby using a more secure Virtual Private Network (VPN).Many <strong>of</strong> these measures do involve a trade<strong>of</strong>f between thecost <strong>of</strong> s<strong>of</strong>tware <strong>and</strong> administration on the one h<strong>and</strong> <strong>and</strong>greater security on the other. However, the growing popularity<strong>of</strong> wireless access should spur the development <strong>of</strong>improved built-in security.Another wireless protocol called Bluetooth has beenembedded in a variety <strong>of</strong> h<strong>and</strong>held computers, appliances,<strong>and</strong> other devices. It provides a wireless connection atspeeds up to 1 MB/second (see Bluetooth).


514 Wirth, NiklausMobile Wireless NetworkingWireless connections can also keep computer users intouch with the Internet <strong>and</strong> their home <strong>of</strong>fice while theytravel. Increasingly, more devices are becoming wirelesscapable while at the same time the functions <strong>of</strong> h<strong>and</strong>heldcomputers, cell phones, <strong>and</strong> other devices are being merged(see also portable computers). A new initiative called 3G(third generation) involves the establishment <strong>of</strong> ubiquitouswireless services that can connect users to the Internet (<strong>and</strong>thus to one another) from a growing number <strong>of</strong> locations.Currently, the 3G agenda is further advanced in Europethan in the United States. One problem is that a st<strong>and</strong>ardprotocol has not yet emerged. The leading c<strong>and</strong>idatesappear to be GSM (Global System for Mobile Communications),which is used by European cell phone networks, <strong>and</strong>CDMA (Code Division Multiplexing Access).3G has different speeds ranging from 144 bps for vehicularconnections to 384 kbps for personal h<strong>and</strong>held devicesto 2 bps for indoor installations. All providers, rangingfrom cell phones to packet (IP) telephony would using ast<strong>and</strong>ard billing format <strong>and</strong> database so that users couldoperate across many sorts <strong>of</strong> services seamlessly. Anotheralternative is WIMAX, which can be thought <strong>of</strong> as a widerareaversion <strong>of</strong> Wifi in which each base station can transmitover up to 50 kilometers. As <strong>of</strong> 2008 deployment hasbeen slower than anticipated, with widespread coverage inU.S. cities not likely to be available for at least several years.Ultimately, these technologies may bring a Star Trek–like world, with h<strong>and</strong>held devices that include not onlye-mail <strong>and</strong> Web browsing capability but a “smart phone,”MP3 music player, <strong>and</strong> even a digital camera.Further ReadingBriere, Dany, Pat Hurley, <strong>and</strong> Edward Ferris. Wireless Home Networkingfor Dummies. 2nd ed. Hoboken, N.J.: Wiley, 2006.Geier, Eric. Wi-Fi Hotspots: Setting Up Public Wireless InternetAccess. Indianapolis: Cisco Press, 2006.Haley, E. Phil. Over-the-Road Wireless for Dummies. Hoboken, N.J.:Wiley, 2006.Kwok, Yu-Kwong Ricky, <strong>and</strong> Vincent K. N. Lau. Wireless Internet<strong>and</strong> Mobile Computing: Interoperability <strong>and</strong> Performance. NewYork: Wiley, 2007.Wireless Networks <strong>and</strong> Mobile Computing. Available online.URL: http://www.networkworld.com/topics/wireless.html.Accessed August 23, 2007.Wirth, Niklaus(1934– )Swiss<strong>Computer</strong> ScientistNiklaus Wirth created new programming languages suchas Pascal that helped change the way computer scientists<strong>and</strong> programmers thought about their work. His workinfluenced later languages <strong>and</strong> ways <strong>of</strong> organizing programresources.Wirth was born on February 15, 1934, in Winterhur,Switzerl<strong>and</strong>. He received a degree in electrical engineeringat the Swiss Federal Institute <strong>of</strong> <strong>Technology</strong> (ETH) in 1959,then earned his M.S. at Canada’s Laval University. He wentto the University <strong>of</strong> California, Berkeley, where he receivedhis Ph.D. in 1963 <strong>and</strong> taught in the newly founded <strong>Computer</strong><strong>Science</strong> Department at nearby Stanford University. Bythen he had become involved with computer science <strong>and</strong>the design <strong>of</strong> programming languages.Wirth returned to the ETH in Zurich in 1968, wherehe was appointed a full pr<strong>of</strong>essor <strong>of</strong> computer science. Hehad been part <strong>of</strong> an effort to improve Algol. Although Algol<strong>of</strong>fered better program structures than earlier languagessuch as FORTRAN, the committee revising the languagehad become bogged down in adding many new features tothe language that would become Algol-68 (see Algol).Wirth believed that adding several ways to do the samething did not improve a language but simply made it harderto underst<strong>and</strong> <strong>and</strong> less reliable. Between 1968 <strong>and</strong> 1970,Wirth therefore crafted a new language, Pascal, named afterthe 17th-century mathematician who had built an early calculatingmachine.Pascal required that data be properly defined (see datatypes) <strong>and</strong> allowed users to define new types <strong>of</strong> data suchas records (similar to those used in databases). It providedall the necessary control structures (see loop <strong>and</strong> branchingstatements). Following the new thinking about structuredprogramming (see Dijkstra, Edsger) Pascal retainedthe “unsafe” GOTO statement but discouraged its use.Pascal became the most popular language for teachingprogramming. By the 1980s, versions such as UCSDPascal <strong>and</strong> later, Borl<strong>and</strong>’s Turbo Pascal were bringingthe benefits <strong>of</strong> structured programming to desktop computerusers. Meanwhile, Wirth was working on a newlanguage, Modula-2. As the name suggested, the languagefeatured the use <strong>of</strong> modules, packages <strong>of</strong> program codethat could be linked to programs to extend their datatypes <strong>and</strong> functions. Wirth also designed a computerworkstation called Lilith. This powerful machine not onlyran Modula-2; its operating system, device drivers <strong>and</strong> allother facilities were also implemented in Modula-2 <strong>and</strong>could be seamlessly integrated, essentially removing thedistinction between operating system <strong>and</strong> application programs.Wirth also helped design Modula-3, an object-orientedextension <strong>of</strong> Modula-2, as well as another language,Oberon, which was originally intended to run in built-incomputers (see embedded systems).Looking back at the development <strong>of</strong> object-orientedprogramming (OOP), the next paradigm that captured theattention <strong>of</strong> computer scientists <strong>and</strong> developers after structuredprogramming, Wirth has noted that OOP isn’t all thatnew. Its ideas (such as encapsulation <strong>of</strong> data) are largelyimplicit in structured procedural programming, even if itshifted the emphasis to binding functions into objects <strong>and</strong>allowing new objects to extend (inherit from) earlier ones.But he believes the fundamentals <strong>of</strong> good programminghaven’t really changed in 30 years. In a 1997 interviewWirth noted that “the woes <strong>of</strong> S<strong>of</strong>tware Engineering are notdue to lack <strong>of</strong> tools, or proper management, but largely dueto lack <strong>of</strong> sufficient technical competence. A good designermust rely on experience, on precise, logical thinking; <strong>and</strong>on pedantic exactness. No magic will do.”


women <strong>and</strong> minorities in computing 515Wirth has received numerous honors, including theACM Turing Award (1984) <strong>and</strong> the IEEE <strong>Computer</strong> PioneerAward (1987).Further ReadingPescio, Carlo. “A Few Words with Niklaus Wirth.” S<strong>of</strong>twareDevelopment, vol. 5, no. 6, June 1997. Available online. URL:http://www.eptacom.net/pubblicazioni/pub_eng/wirth.html.Accessed August 23, 2007.Wirth, Niklaus. Algorithms + Data Structures = Programs. EnglewoodCliffs, N.J.: Prentice Hall, 1976.———, <strong>and</strong> Kathy Jensen. PASCAL User Manual <strong>and</strong> Report. 4thed. New York: Springer-Verlag, 1991.———. Project Oberon: The Design <strong>of</strong> an Operating System <strong>and</strong> Compiler.Reading, Mass.: Addison-Wesley, 1992.———. “Recollections about the Development <strong>of</strong> Pascal.” InBergin, Thomas J., <strong>and</strong> Richard G. Gibson, eds., History <strong>of</strong>Programming Languages-II, 97–111. New York: ACM Press;Reading, Mass.: Addison-Wesley, 1996.———. Systematic Programming: An Introduction. Reading, Mass.:Addison-Wesley, 1973.women <strong>and</strong> minorities in computingAlthough the development <strong>of</strong> computer science <strong>and</strong> technologyhas been an international effort, there is no doubt thatthe majority <strong>of</strong> contributors (particularly in the early years)were men—specifically white men. The interesting exceptionsinclude Charles Babbage’s collaborator Ada Lovelace,ENIAC’s first trained programmers—all women—<strong>and</strong> <strong>of</strong>course Grace Hopper, whose COBOL revolutionized businesscomputing. Finally, the 2007 winner <strong>of</strong> one <strong>of</strong> thefield’s most prestigious honors, the ACM Turing Award, is awoman, compiler developer Frances E. Allen.Today women have gained prominent roles in all aspects<strong>of</strong> computer science as well as some high-pr<strong>of</strong>ile posts inbusiness (such as Carly Fiorina, former CEO <strong>of</strong> Hewlett-Packard, <strong>and</strong> Meg Whitman <strong>of</strong> eBay). However, the overallinvolvement <strong>of</strong> women in the higher echelons <strong>of</strong> computingremains relatively small.Educational surveys suggest that boys <strong>and</strong> girls start outwith roughly equal interest <strong>and</strong> involvement with computers,including basic courses in computer literacy <strong>and</strong> applications.However, a 2006 report from the College Boardfound that 59 percent <strong>of</strong> boys reported taking courses inprogramming, compared with 41 percent <strong>of</strong> girls. Further,the great majority <strong>of</strong> students taking advanced placementcomputer science exams are male.At the college level, women made gains in the percentage<strong>of</strong> bachelor’s degrees in the computer field, reaching 37percent by the mid-1980s. However, by 2005 that percentagehad declined to 22 percent. (However, women wereearning 34 percent <strong>of</strong> master’s degrees by 2001.) Further,the number <strong>of</strong> women working in information technologydeclined from 984,000 (28.9 percent) in 2000 to 908,000(26.2 percent) in 2006.The reasons for this decline are unclear, though somepossible causes that have been suggested include the effects<strong>of</strong> the “dot-bust” <strong>and</strong> the perception that IT jobs were nolonger secure, the “geek” stereotype not appealing to youngwomen, <strong>and</strong> the availability <strong>of</strong> more attractive career paths.Jean Bartik (st<strong>and</strong>ing) <strong>and</strong> Betty Holberton answered a callfor “computers” during World War II. At the time, that was thename for a clerical person who performed calculations. But thesetwo computer pioneers, shown here at a reunion, would go on todevelop important programming techniques for the ENIAC <strong>and</strong>later machines. (Courtesy <strong>of</strong> the Association for Womenin Computing)In terms <strong>of</strong> race or ethnicity, whites <strong>and</strong> Asians earn adisproportionate number <strong>of</strong> degrees in computing, althoughinterestingly, minority women tend to earn a higher percentagethan white women. Although minorities have beengradually increasing their participation in the computingfield, economic disadvantage (see digital divide) <strong>and</strong> pooreducational preparation continue to be obstacles for some.Efforts at ChangeA variety <strong>of</strong> programs have sought to interest women <strong>and</strong>minority students in computer programming <strong>and</strong> otherdigital careers. These can include the creation <strong>of</strong> nontraditionalprogramming environments such as Alice, whichallows students to create animated stories using scripting<strong>and</strong> 3D graphics tools. (The theory behind this is that girlsare more interested in storytelling <strong>and</strong> character interaction,while traditional programming classes focused moreon “shoot ’em up” games <strong>and</strong> other things <strong>of</strong> more interestto boys.) There has also been a move away from emphasison “hard core” programming skills to a more broad-basedability to think about technology <strong>and</strong> its possible uses. (Asa result <strong>of</strong> this <strong>and</strong> a certain amount <strong>of</strong> affirmative action,Carnegie Mellon raised its percentage <strong>of</strong> women computerscience students from 8 percent to 40 percent.)African Americans <strong>and</strong> other minorities have also developeda number <strong>of</strong> organizations <strong>and</strong> programs designed


516 word processingto promote networking among minority pr<strong>of</strong>essionals, linkapplicants to job openings, <strong>and</strong> encourage pr<strong>of</strong>essionaldevelopment.Further ReadingACM Committee on Women in Computing. Available online. URL:http://women.acm.org/. Accessed December 4, 2007.ADA Project. Available online. URL: http://women.cs.cmu.edu/ada/. Accessed December 4, 2007.Association for Women in Computing. Available online. URL:http://www.awc-hq.org/. Accessed December 4, 2007.Black Data Processing Associates. Available online. URL: http://www.bdpa.org. Accessed December 4, 2007.Dean, Cornelia. “<strong>Computer</strong> <strong>Science</strong> Takes Steps to Bring Womento the Fold.” New York Times, April 17, 2007. Available online.URL: http://www.nytimes.com/2007/04/17/science/17comp.html?_r=1&oref=slogin. Accessed December 4, 2007.Margolis, Jane, <strong>and</strong> Allan Fisher. Unlocking the Clubhouse. Cambridge,Mass.: MIT Press, 2001.National Center for Women <strong>and</strong> Information <strong>Technology</strong>. Availableonline. URL: http://www.ncwit.org/. Accessed December4, 2007.National Institute for Women in Trades, <strong>Technology</strong> & <strong>Science</strong>.Available online. URL: http://www.iwitts.com/. AccessedDecember 4, 2007.Pinkett, R<strong>and</strong>al D. “Strategies for Motivating Minorities to Engage<strong>Computer</strong>s.” Carnegie Mellon University. Available online.URL: ttp://llk.media.mit.edu/papers/cmu1999.pdf. AccessedDecember 4, 2007.Yount, Lisa. A-Z <strong>of</strong> Women in <strong>Science</strong> <strong>and</strong> Math. Rev. ed. New York:Facts On File, 2007.word processingAlthough computers are most <strong>of</strong>ten associated with numbers<strong>and</strong> calculation, creating text documents is probablythe most ubiquitous application for desktop PCs.The term word processor was actually coined by IBMin the 1960s to refer to a system consisting <strong>of</strong> a Selectrictypewriter with magnetic tape storage. This allowed thetypist to record keystrokes (<strong>and</strong> some data such as marginsettings) on tape. Material could be corrected by being rerecorded.The tape could then be used to print as manyperfect copies <strong>of</strong> the document as required. A version usingmagnetic cards instead <strong>of</strong> tape appeared in 1969.The first modern-style word processor was marketed byLexitron <strong>and</strong> Linolex. It also used magnetic tape, but itadded a video display screen. Now the writer could see<strong>and</strong> correct text without having to print it first. A few yearslater, a new invention, the floppy disk, became the st<strong>and</strong>ardstorage medium for dedicated word processing systems.The word-processing systems developed by Wang,Digital Equipment Corporation, Data General, <strong>and</strong> othersbecame a feature in large <strong>of</strong>fices in the late 1970s. Thesesystems were essentially minicomputers with screens, keyboards,<strong>and</strong> printers <strong>and</strong> running a specialized s<strong>of</strong>twareprogram. Because these systems were expensive (rangingfrom about $8,000 to $20,000 or more), they were notaffordable by smaller businesses. Typically, they were operatedby specially trained personnel (who became knownalso as “word processors”) to whom documents were funneledfor processing, as with the old “typing pool.”PC Word ProcessingThe first microcomputer systems had very limited memory<strong>and</strong> storage capacity. However, by the late 1970s varioussystems using the S-100 bus <strong>and</strong> running CP/M had wordprocessingprograms, as did the Apple II <strong>and</strong> other firstgenerationPCs. However, it took the entry <strong>of</strong> the IBM PCinto the market in 1981 to make the PC a word-processingalternative for mainstream businesses. The machine hadmore memory <strong>and</strong> storage than earlier machines, <strong>and</strong> theIBM name provided reassurance to business.A number <strong>of</strong> word-processing programs were written forthe IBM PC running MS-DOS, but the market leaders wereWordStar <strong>and</strong> WordPerfect. Both programs <strong>of</strong>fered basictext editing <strong>and</strong> formatting, including the ability to embedcomm<strong>and</strong>s to mark text for boldface, italic, <strong>and</strong> so on. Theprograms came with drivers for the more popular printers.In 1984, the Macintosh <strong>of</strong>fered a new face for word processing<strong>and</strong> other applications. Using bitmapped fonts, theMac could show a good representation <strong>of</strong> the fonts <strong>and</strong> typestylesthat would be in the printed document. This “whatyou see is what you get” (WYSIWYG) approach, togetherwith the graphical user interface with mouse-driven menusmeant that users did not have to learn the <strong>of</strong>ten obscurecomm<strong>and</strong> key sequences used in WordStar or WordPerfect.Micros<strong>of</strong>t then developed Windows as a graphical userinterface alternative to MS-DOS for IBM-compatible PCs.By 1990, Windows was rapidly replacing DOS as the operatingsystem <strong>of</strong> choice, <strong>and</strong> Micros<strong>of</strong>t Word was winning thebattle against WordPerfect, whose Windows version wasrather flawed at first.In addition to being able to visually show fonts <strong>and</strong>formatting, Word <strong>and</strong> other modern word processors arepacked with features. Some typical features today include:• different views <strong>of</strong> the document, including an outlineshowing headings down to a user-specified level• automatic table <strong>of</strong> contents <strong>and</strong> index generation• tables <strong>and</strong> multicolumn text• automatic formatting <strong>of</strong> bulleted <strong>and</strong> numbered lists• built-in <strong>and</strong> user-defined styles for headings, paragraphs,<strong>and</strong> so on.• the ability to use built-in or user-defined templatesto provide starting settings for new documents (seetemplate)• the ability to record or otherwise specify a series<strong>of</strong> comm<strong>and</strong>s to be performed automatically (seemacro)• spelling <strong>and</strong> grammar checkers• the ability to incorporate a variety <strong>of</strong> graphics imageformats in the document• automatic formatting <strong>and</strong> linking <strong>of</strong> Web hyperlinkswithin documents• the ability to import <strong>and</strong> export documents in a variety<strong>of</strong> formats, including Web documents (see html)


World Wide Web 517• an extensive online help system including “wizards”to guide the user step-by-step through various tasksAs word processors become more extensive in theircapabilities, it has become harder to distinguish them fromprograms designed to create precise copy for publication(see desktop publishing). However, copy prepared bywriters with a word processor must generally be furtherprocessed through a desktop publishing or in-house computerizedtypography system.At the other end <strong>of</strong> the spectrum many users find thatword processors are “overkill” for making simple notes. Avariety <strong>of</strong> programs for entering simple text are available,including the Notepad program that comes with Windows.There are also applications for which plain text must beproduced, without the formatting codes added by word processors.In particular, programmers <strong>of</strong>ten use specializedediting programs to create source code (see text editor).TrendsToday word processing programs are generally part <strong>of</strong> an<strong>of</strong>fice s<strong>of</strong>tware suite such as Micros<strong>of</strong>t Office, Corel Office,or Open Office. Documents created by other components <strong>of</strong>the suite can be embedded in word processing documents.(In Windows, object linking <strong>and</strong> embedding [OLE] is a systemthat allows for embedded documents to be automaticallyupdated <strong>and</strong> to be edited using the functions <strong>of</strong> thehost program. Thus, an Excel spreadsheet embedded in aWord document can be worked in place using the st<strong>and</strong>ardExcel interface.)There are also features that can facilitate collaborationbetween workers in a networked <strong>of</strong>fice, such as by keepingtrack <strong>of</strong> revisions made by various people working on thesame document.A new alternative is the free (or low-cost) online wordprocessor such as Google Docs & Spreadsheets <strong>and</strong> ZohoWriter. These products can be used from any Web browser<strong>and</strong> facilitate the central storage <strong>of</strong> documents for mobileusers (see application service provider).As with other applications, word processors are increasinglybeing integrated with the Web, <strong>and</strong> include the abilityto create HTML documents. In turn, the programs specificallydesigned for creating HTML documents now havemany word-processor features including templates, styles,<strong>and</strong> the visual representation <strong>of</strong> the page.Further ReadingCox, Joyce, <strong>and</strong> Joan Preppernau. Micros<strong>of</strong>t Office Word 2007 Stepby Step. Redmond, Wash.: Micros<strong>of</strong>t Press, 2007.Google Docs & Spreadsheets. Available online. URL: http://www.docs.google.com. Accessed August 23, 2007.Kunde, Brian. “A Brief History <strong>of</strong> Word Processing (Through1986).” Available online. URL: http://www.stanford.edu/~bkunde/fb-press/articles/wdprhist.html. Accessed August23, 2007.Open Office.org. Available online. URL: http://www.open<strong>of</strong>fice.org/. Accessed August 23, 2007.Petrie, Michael. “A Potted History <strong>of</strong> WordStar.” Available online.URL: http://www.wordstar.org/wordstar/history/history.htm.Accessed August 23, 2007.Zoho Writer (online word processor). Available online. URL:http://writer.zoho.com/jsp/home.jsp?serviceurl=%2Findex.do. Accessed August 23, 2007.workstationLike minicomputer, workstation is a rather slippery termwhose meaning <strong>and</strong> significance has changed somewhatwith the growing power <strong>of</strong> desktop PCs.In the late 1960s <strong>and</strong> 1970s, most “personal” computingwas done by individuals connected to time-sharing mainframesor minicomputers by terminals. Generally, the terminalscould only display text, not graphics.However, researchers at the Xerox Palo Alto ResearchCenter (PARC) began to develop a more powerful computerfor individual use (see Englebart, Douglas <strong>and</strong> Kay,Alan). The Xerox Alto had a high-resolution bitmappedgraphics display <strong>and</strong> a mouse-controlled graphical userinterface. While it was expensive <strong>and</strong> not very successfulcommercially, the Alto set the stage for the Macintosh in1984 <strong>and</strong> for Micros<strong>of</strong>t Windows.Although the desktop PCs <strong>of</strong> the 1980s such as the IBMPC had some graphics capabilities, the machines lacked thecapacity for graphics-intensive applications such as engineeringdesign <strong>and</strong> the generation <strong>of</strong> movie effects. Ledby Sun <strong>and</strong> Silicon Graphics (SGI), the high-performancegraphics workstation emerged as a distinctive product category.These machines used relatively powerful microprocessors(such as the Sun SPARC <strong>and</strong> the MIPS) with instructionsets optimized for speed (see risc). These systems generallyran UNIX as their operating system.However, by the late 1990s, ordinary desktop PCs werecatching up to dedicated workstations in terms <strong>of</strong> processingpower <strong>and</strong> graphics features. By 2002, a desktop PCcosting about $2,000 <strong>of</strong>fered a 2-GB processor, 256 MB <strong>of</strong>RAM, 120 GB hard drive, <strong>and</strong> an optimized 3D graphicscard that can drive displays up to 1600 by 1200 pixels ormore. These systems can run Windows NT or XP, or, forusers preferring UNIX, Linux <strong>of</strong>fers a robust <strong>and</strong> inexpensiveoperating system. This sort <strong>of</strong> system rivals the capabilities<strong>of</strong> a dedicated workstation while <strong>of</strong>fering all <strong>of</strong> theversatility <strong>of</strong> a general-purpose PC. As a result, the termworkstation today refers more to a way <strong>of</strong> using a computerthan to a specific class <strong>of</strong> hardware. Machines are thought<strong>of</strong> as workstations if they emphasize graphics performance<strong>and</strong> are dedicated to particular activities such as science,imaging, engineering, design (see also computer-aideddesign <strong>and</strong> manufacturing), or video editing.Further ReadingGoldberg, Adele. A History <strong>of</strong> Personal Workstations. Reading,Mass.: Addison-Wesley/ACM, 1988.Sun Microsystems. The New User’s Guide to Sun Workstation. NewYork: Springer-Verlag, 1991.World Wide WebIn little more than a decade the World Wide Web hasbecome nearly as ubiquitous as the telephone <strong>and</strong> hasbecome for many a preferred medium for shopping, news,entertainment, <strong>and</strong> education. Some cultural observersbelieve that this vast system <strong>of</strong> linked information may behaving an impact on society as great as that <strong>of</strong> the invention<strong>of</strong> the printing press more than five centuries earlier.


518 World Wide WebBy the beginning <strong>of</strong> the 1990s, the Internet had becomewell established as a means <strong>of</strong> communication betweenrelatively advanced computer users, particularly scientists,engineers, <strong>and</strong> computer science students—primarily usingUNIX-based systems (see unix). A number <strong>of</strong> services usedthe Internet protocol (see tcp/ip) to carry messages or data.These included e-mail, file transfer protocol (see ftp) <strong>and</strong>newsgroups (see netnews <strong>and</strong> newsgroups). A Wide AreaInformation Service (WAIS) even provided a protocol forusers to retrieve information from databases on remotehosts. Another interesting service, Gopher, was developedat the University <strong>of</strong> Minnesota in 1991. It used a system <strong>of</strong>nested menus to organize documents at host sites so theycould be browsed <strong>and</strong> retrieved by remote users.Gopher was quite popular for a few years, but it wouldsoon be overshadowed by a rather different kind <strong>of</strong> networkedinformation service. A physicist/programmer (seeBerners-Lee, Tim) working at CERN, the European particlephysics laboratory in Switzerl<strong>and</strong> had devised in 1989a system that he eventually called the World Wide Web(sometimes called WWW or W3). By 1990, he was runninga prototype system <strong>and</strong> demonstrating it for CERNresearchers <strong>and</strong> a few outside participants.Using the WebThe Web consists essentially <strong>of</strong> three parts. Berners-Leedevised a markup language: that is, a system for indicatingdocument elements (such as headers), text characteristics,<strong>and</strong> so on (see html). Any document could be linkedto another (see hypertext <strong>and</strong> hypermedia) by specifyingthat document’s unique address (called a UniformResource Locator or URL) in a request. Berners-Lee definedthe HyperText Transport Protocol, or HTTP, to h<strong>and</strong>le thedetails needed to retrieve documents. (Although HTTP ismost <strong>of</strong>ten used to retrieve HTML-formatted Web documents,it can also be used to specify documents using otherprotocols, such as ftp, news, or Gopher.)A program (see Web server) responds to requests fordocuments sent over the network (usually the Internet, thatis, TCP/IP). The requests are issued by a client program asa result <strong>of</strong> the user clicking on highlighted links or buttonsor specifying addresses (see Web browser). The browserin turn interprets the HTML codes on the page to display itcorrectly on the user’s screen.At first the Web had only text documents. However,thanks to Berners-Lee’s flexible design (see client-servercomputing) new, improved Web browsers could be created<strong>and</strong> used with the Web as long as they followed therules for HTTP. The most successful <strong>of</strong> these new browserswas Mosaic, created by Marc Andreesen at the NationalCenter for Supercomputing Applications. NCSA Mosaic wasavailable for free download <strong>and</strong> could run on Windows,Macintosh, <strong>and</strong> UNIX-based systems. Mosaic not only dispensedwith the text comm<strong>and</strong>s used by most <strong>of</strong> the firstbrowsers, it also had the ability to display graphics <strong>and</strong>play sound files. With Mosaic the text-only hypertext <strong>of</strong> theearly Web rapidly became a richer hypermedia experience.And thanks to the ability <strong>of</strong> browsers to accept modules toh<strong>and</strong>le new kinds <strong>of</strong> files (see plug-in), the Web could alsoaccommodate real-time sound <strong>and</strong> video transmissions (seestreaming).In 1994, Andreessen left NCSA <strong>and</strong> co-founded a companycalled Netscape Communications, which improved<strong>and</strong> commercialized Mosaic. Micros<strong>of</strong>t soon entered witha competitor, Internet Explorer; today these two browsersdominate the market with Micros<strong>of</strong>t having taken thelead. Together with relatively low-cost Internet access(see modem <strong>and</strong> internet service provider) these userfriendlyWeb browsers brought the Web (<strong>and</strong> thus theunderlying Internet) to the masses. Schools <strong>and</strong> librariesbegan to <strong>of</strong>fer Web access while workplaces began to useinternal webs to organize information <strong>and</strong> organize operations.Meanwhile, companies such as the on-line booksellerAmazon.com demonstrated new ways to deliver traditionalproducts, while the on-line auction site eBay took advantage<strong>of</strong> the unique characteristics <strong>of</strong> the on-line medium toredefine the auction.The burgeoning Web was soon <strong>of</strong>fering millions <strong>of</strong>pages, especially as entrepreneurs began to find additionalbusiness opportunities in the new medium (see e-commerce).Two services emerged to help Web users makesense <strong>of</strong> the flood <strong>of</strong> information. Today users can searchfor words or phrases (see search engine) or browsethrough structured topical listings (see portal). Estimatesfrom various sources suggest that as <strong>of</strong> 2007 approximately1.2 billion people worldwide access the Web, with usageincreasing most rapidly in the emerging industrial superpowers<strong>of</strong> India <strong>and</strong> China.Impact <strong>and</strong> TrendsThe Web is rapidly emerging as an important news medium(see journalism <strong>and</strong> the computer industry). Themedium combines the ability <strong>of</strong> broadcasting to reach manypeople from one point with the ability to customize contentto each person’s preferences. Traditional broadcasting<strong>and</strong> publishing are constrained by limited resources <strong>and</strong>the need for pr<strong>of</strong>itability, <strong>and</strong> thus the range <strong>and</strong> diversity<strong>of</strong> views made available tend to be limited. With the Web,anyone with a PC <strong>and</strong> a connection to a service providercan put up a Web site <strong>and</strong> say just about anything. Millions<strong>of</strong> people now display aspects <strong>of</strong> their lives <strong>and</strong> interests ontheir personal Web pages (see blogs <strong>and</strong> blogging). TheWeb has also provided a fertile medium for the creation <strong>of</strong>online communities (see social networking <strong>and</strong> virtualcommunity) while contributing to significant issues (seeprivacy in the digital age).As the new century continues, the Web is proving itselfto be truly worldwide, resilient, <strong>and</strong> adaptable to many newcommunications <strong>and</strong> media technologies (see digital convergence).Nevertheless, the Web faces legal <strong>and</strong> politicalchallenges (see censorship <strong>and</strong> the Internet, <strong>and</strong> intellectualproperty <strong>and</strong> computing) as well as technicalchallenges (see semantic Web <strong>and</strong> Web 2.0).Further ReadingBerners-Lee, Tim. Weaving the Web: The Original Design <strong>and</strong> UltimateDestiny <strong>of</strong> the World Wide Web. New York: Harperbusiness,2000.


Wozniak, Steven 519Gillies, James, <strong>and</strong> Robert Cailliau. How the Web Was Born: TheStory <strong>of</strong> the World Wide Web. New York: Oxford UniversityPress, 2000.Internet Society. Available online. URL: http://www.isoc.org.Accessed August 23, 2007.Internet World Stats. Available online. URL: http://www.internetworldstats.com/stats.htm. Accessed August 23, 2007.Wozniak, Steven(1950– )American<strong>Computer</strong> Inventor <strong>and</strong> EngineerSteve Wozniak, <strong>of</strong>ten known as “Woz,” c<strong>of</strong>ounded Applecomputer <strong>and</strong> designed the Apple II, one <strong>of</strong> the first popularpersonal computers.Born on August 11, 1950, in San Jose, California, Wozniakgrew up to be a classic “electronics whiz.” He built aworking electronic calculator when he was 13, winning thelocal science fair. After graduating from Homestead HighSchool, Wozniak tried community college but quit to workwith a local computer company. Although he then enrolledin the University <strong>of</strong> California, Berkeley, to study electronicengineering <strong>and</strong> computer science, he dropped out in 1971to go to work again, this time as an engineer at Hewlett-Packard, at that time one <strong>of</strong> the most successful companiesin the young Silicon Valley.By the mid-1970s, Wozniak was in the midst <strong>of</strong> a technicalrevolution in which hobbyists explored the possibilities<strong>of</strong> the newly available microprocessor or “computeron a chip.” A regular attendee at meetings <strong>of</strong> the Homebrew<strong>Computer</strong> Club, Wozniak <strong>and</strong> other enthusiasts wereexcited when the MITS Altair, the first complete microcomputerkit, came on the market in 1975. The Altair, however,had a tiny amount <strong>of</strong> memory, had to be programmed bytoggling switches to input hexadecimal codes (rather likethe ENIAC), <strong>and</strong> had very primitive input/output capabilities.Wozniak decided to build a computer that would bemuch easier to use—<strong>and</strong> more useful.Wozniak’s prototype machine, the Apple I, had a keyboard<strong>and</strong> could be connected to a TV screen to provide avideo display. He demonstrated it at the Homebrew <strong>Computer</strong>Club <strong>and</strong> among the interested spectators was hisfriend Steve Jobs. Jobs had a more entrepreneurial interestthan Wozniak, <strong>and</strong> spurred him to set up a business tomanufacture <strong>and</strong> sell the machines. Together they foundedApple <strong>Computer</strong> in June 1976. Their “factory” was Jobs’sparents’ garage, <strong>and</strong> the first machines were assembled byh<strong>and</strong>.Wozniak designed most <strong>of</strong> the key parts <strong>of</strong> the Apple,including its video display <strong>and</strong> later, its floppy disk interface,which is considered a model <strong>of</strong> elegant engineering tothis day. He also created the built-in operating system <strong>and</strong>BASIC interpreter, which were stored in read-only memory(ROM) chips so the computer could function as soon as itwas turned on.In 1981, just as the Apple II was reaching the peak <strong>of</strong>its success, Wozniak was almost killed in a plane crash. Hetook a sabbatical from Apple to recover, get married, <strong>and</strong>return to UC Berkeley (under an assumed name!) to finishhis B.S. in electrical engineering <strong>and</strong> computer science.Wozniak’s life changes affected him in other ways. AsApple grew <strong>and</strong> became embroiled in the problems <strong>of</strong> largecompanies, “Woz” sold large amounts <strong>of</strong> his Apple stock <strong>and</strong>gave the money to Apple employees that he thought had notbeen properly rewarded for their work. Later in the 1980s,he produced two rock festivals that lost $25 million, whichhe paid out <strong>of</strong> his own money. He was quoted as saying, “I’drather be liked than rich.” He left Apple for good in 1985<strong>and</strong> founded Cloud Nine, an unsuccessful company thatdesigned remote control <strong>and</strong> “smart appliance” hardware.During the 1990s, Wozniak organized a number <strong>of</strong>charitable <strong>and</strong> educational programs, including cooperativeactivities with people in the former Soviet Union. He particularlyenjoyed classroom teaching, bringing the excitement<strong>of</strong> technology to young people. In 1985, Wozniak receivedthe National Medal <strong>of</strong> <strong>Technology</strong>.Further ReadingCringely, Robert X. Accidental Empires: How the Boys <strong>of</strong> Silicon ValleyMake Their Millions, Battle Foreign Competition, <strong>and</strong> StillCan’t Get a Date. Reading, Mass.: Addison-Wesley, 1992.Freiberger, Paul, <strong>and</strong> Michael Swaine. Fire in the Valley: the Making<strong>of</strong> the Personal <strong>Computer</strong>. 2nd ed. New York: McGraw-Hill,1999.Kendall, Martha E. Steve Wozniak, Inventor <strong>of</strong> the Apple <strong>Computer</strong>.2nd rev. ed. Los Gatos, Calif.: Highl<strong>and</strong> Publishing, 2001.Woz.org [Steve Wozniak’s Home Page]. Available online. URL:www.woz.org. Accessed August 27, 2007.Wozniak, Steve, <strong>and</strong> Gina Smith. iWoz: From <strong>Computer</strong> Geek toCult Icon: How I Invented the Personal <strong>Computer</strong>, Co-FoundedApple, <strong>and</strong> Had Fun Doing It. New York: W. W. Norton, 2006.


XXMLSeveral markup languages have been devised for specifyingthe organization or format <strong>of</strong> documents. Today the mostcommonly known markup language is the Hypertext MarkupLanguage (see html, dhtml, <strong>and</strong> xhtml), which is the organizational“glue” <strong>of</strong> the Web (see World Wide Web).HTML is primarily concerned with rendering (displaying)documents. It describes structural features <strong>of</strong> documents(such as headers, sections, tables, <strong>and</strong> frames), butit does not really convey the structure <strong>of</strong> the informationwithin the document. Further, HTML is not extensible—that is, one can’t define one’s own tags <strong>and</strong> use them as part<strong>of</strong> the language. XML, or Extensible Markup Language, isdesigned to meet both <strong>of</strong> these needs. In effect, while HTMLis a descriptive coding scheme, XML is a scheme for creatingdata definitions <strong>and</strong> manipulating data within documents.(XML can be viewed as a subset <strong>of</strong> the powerful <strong>and</strong> generalizedSGML, or St<strong>and</strong>ard Generalized Markup Language.)The basic building block <strong>of</strong> XML is the element, whichcan be used to define an entity (rather like a databaserecord). For example, the following statement:Babe RuthLou GehrigXML text is bracketed by tags as with HTML. The“team” element has an attribute called “name” that isassigned the value “New York Yankees.” (Attribute valuesmust be enclosed in quote marks.) It also contains a nestedelement called players, which in turn defines player names,Babe Ruth <strong>and</strong> Lou Gehrig. The elements are defined atthe beginning <strong>of</strong> the XML document by a DTD (DocumentType Definition), or such a definition can be “included”from another file.XML is currently supported by the leading Web browsers.In effect, it includes HTML as a subset, or more accuratelyXHTML (HTML conformed to XML 1.0 st<strong>and</strong>ards)(see html, dhtml, <strong>and</strong> xhtml). Thus, XML documentscan be properly rendered by browsers, while applicationsthat are XML-enabled (or that use XML-aware ActiveX controlsor similar Java facilities, for example) can parse theXML <strong>and</strong> identify the data structures <strong>and</strong> elements in thedocument. Together with programming languages such asJava <strong>and</strong> facilities such as SOAP (Simple Object Access Protocol),XML can be used to create applications that connectservers <strong>and</strong> documents across the Internet—it is rapidlybecoming the data “glue” that holds Web sites together.XML can be viewed as part <strong>of</strong> a trend to make data “selfdescribing.”The ability to encode not just the structure butthe logical content <strong>of</strong> documents promises a growing abilityfor automated agents or “bots” to take over much <strong>of</strong> thework <strong>of</strong> sifting through the Web for desired information,bringing the Web closer to the intentions <strong>of</strong> its inventor,Tim Berners-Lee (see Berners-Lee, Tim; semantic web).Further ReadingCarey, Patrick. New Perspectives on XML. 2nd ed. Boston: Course<strong>Technology</strong>, 2006.520


XML 521Eisenberg, J. David. “Introduction to XML.” Available online. URL:http://www.digital-web.com/articles/introduction_to_xml.Accessed August 23, 2007.Harold, Elliotte Rusty, <strong>and</strong> W. Scott Means. XML in a Nutshell. 3rded. Sebastapol, Calif.: O’Reilly Media, 2004.Jacobs, Sas. Beginning XML with DOM <strong>and</strong> Ajax: From Novice toPr<strong>of</strong>essional. Berkeley, Calif.: Apress, 2006.XML Resources. Available online. URL: http://www.s<strong>of</strong>twareag.com/xml/Techn_Links/default.htm. Accessed August 23,2007.


YY2K problemSherlock Holmes once referred to a dog barking in thenight. Watson, puzzled as usual, replied that no dog hadbarked. Holmes replied that it was the nonbarking that wassignificant. The same can be said about the growing concerntoward the end <strong>of</strong> the 1990s that the year 2000 mightbring massive, disastrous failures to many <strong>of</strong> the computersystems on which society now depended for its well-being.Most programs written in the 1960s <strong>and</strong> 1970s (seemainframe <strong>and</strong> cobol) saved expensive memory space bystoring only the second two digits <strong>of</strong> year dates. After all,dates could be understood to begin with “19” for manyyears to come (although some farsighted computer scientistsdid warn <strong>of</strong> future trouble). Eventually the centurybegan to draw to an end.Although much computing activity had moved ontonewer systems by the 1990s, many large government <strong>and</strong>corporate computer systems were still running the originalapplications or their descendents. If such a program wererun in the year 2000, it would have no way to distinguisha date in that year from a date in 1900. While the prospect<strong>of</strong> a centenarian being suddenly treated as a newborn waslikely to be more amusing than significant, what wouldhappen to a 30-year mortgage that was written in 1975<strong>and</strong> intended to come due in 2005? Would people be billedbased on a 70-year term? Many observers feared that somesystems would actually crash because they would begin togenerate nonsensical data. What, for example, might happento an air traffic control system or automated power gridsystem that used dates <strong>and</strong> times to track events?No one really knew. One problem was that there weremillions <strong>of</strong> lines <strong>of</strong> code, <strong>of</strong>ten written by programmerswho had long since retired. Nor was it simply a matter <strong>of</strong>looking for references to date fields (such as in decisionstatements), because <strong>of</strong> the many ways programmers couldexpress such statements. In addition to mainframe applications,there were also the computers hardwired into devices<strong>of</strong> all kinds including cars <strong>and</strong> airplanes (see embeddedsystem). As with the early mainframes, these systems were<strong>of</strong>ten designed with limited available memory, <strong>and</strong> thustheir programmers, too, may have been tempted to savebytes by lopping <strong>of</strong>f the century years.As the fateful date approached, government agencies<strong>and</strong> businesses began to invest billions <strong>of</strong> dollars <strong>and</strong> hireexpensive consultants to check code for “Y2K compatibility.”In the end, Y2K problems were found <strong>and</strong> fixedin the most critical systems, <strong>and</strong> the year 2000 dawnedwithout significant mishaps. (It turned out that virtually allthe embedded systems did not in fact have Y2K problems,mostly because they didn’t even track year dates.)But although the “dog didn’t bark” <strong>and</strong> in retrospectsome <strong>of</strong> the hype about Y2K seems excessive, it did leadto improvement in a great deal <strong>of</strong> s<strong>of</strong>tware. Further, itincreased awareness <strong>of</strong> dependence on computers for somany aspects <strong>of</strong> life—a dependence that has been cast ina harsh new light by the terrorist events <strong>of</strong> September 11,2001 (see risks <strong>of</strong> computing).Further ReadingCrawford, Walt. “Y2K: Lessons from a Non-Event.” Online, vol. 25,issue 2, March 2001, 73.522


young people <strong>and</strong> computing 523Finkelstein, Anthony. “Y2K: a Retrospective View.” Computing<strong>and</strong> Control Engineering Journal, vol. 11, no. 4, August 2000,156–159. Available online. URL: http://www.cs.ucl.ac.uk/staff/A.Finkelstein/papers/y2kpiece.pdf. Accessed August 23,2007.Manion, M., <strong>and</strong> W. M. Evan. “The Y2K Problem <strong>and</strong> Pr<strong>of</strong>essionalResponsibility: A Retrospective Analysis.” <strong>Technology</strong> in Society22 (August 2000): 351–387.Yahoo! Inc.Yahoo! (NASDAQ symbol: YHOO) has played an importantrole in the development <strong>of</strong> Web services. In 1994 Stanfordstudents Jerry Yang <strong>and</strong> David Filo developed the firstpopular directory <strong>of</strong> Web sites (see portal). Realizing thatthe millions <strong>of</strong> Web users flocking to their site provided anopportunity for advertising <strong>and</strong> services, the two partnersincorporated Yahoo! in 1995. (In 1996 the company wentpublic <strong>and</strong> raised $33.8 million, a significant amount ata time when the business potential <strong>of</strong> the Web was onlybeginning to be appreciated.)Yahoo! continued to grow, <strong>and</strong> the company acquireda number <strong>of</strong> other online services, which they used to provideWeb-based e-mail, Web hosting, <strong>and</strong> news. But havingflown so high, Yahoo! had far to fall when the dot-com marketbubble burst in 2001: A stock that had traded at around$130.00 per share fell as low as $4.06.However, Yahoo! proved its resilience as one <strong>of</strong> the fewearly dot-coms to survive <strong>and</strong> has continued to thrive inthe post-bubble era since 2002. The company made strategicpartnerships with telecommunications companies suchas BT <strong>and</strong> Verizon. Yahoo! entered a continuing strugglewith another Web services powerhouse (see Google) whileacquiring new media sites (such as the photo-sharing serviceFlickr <strong>and</strong> the social “bookmarking” service del.icio.us), <strong>and</strong> creating new services (see blogs <strong>and</strong> blogging<strong>and</strong> social networking). Yahoo! also provides onlinestorefronts, competing in that venue mainly with eBay.Yahoo! has a strong international presence, which, however,led to a controversial case where the company provideduser information to Chinese authorities that led toimprisonment <strong>of</strong> two dissidents on charges <strong>of</strong> passing statesecrets. (A lawsuit by the families <strong>of</strong> the dissidents wassettled by Yahoo.)Yahoo!’s main source <strong>of</strong> revenue remains search-relatedadvertising. The company may have received a competitiveboost in 2007 with a new online advertising system called“Panama,” catching up to similar technology previouslydeployed by Google. In fiscal 2007 Yahoo! had revenue <strong>of</strong>$6.7 billion <strong>and</strong> earned about $730 million. At the timeYahoo! had about 13,600 employees.In 2008 Yahoo! became the target <strong>of</strong> a takeover bid byMicros<strong>of</strong>t. Although this has met with at least initial rejection,rumors continued, including the possibility that TimeWarner might acquire the company <strong>and</strong> merge it with itsAOL division.Further ReadingAngel, Karen. Inside Yahoo!: Reinvention <strong>and</strong> the Road Ahead. NewYork: Wiley, 2002.Fost, Dan. “Web Portal Works to Integrate the Companies It HasAcquired.” San Francisco Chronicle, December 24, 2006, p.F1. Available online. URL: http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2006/12/24/BUGUIN3TKS1.DTL. AccessedDecember 4, 2007.Kopyt<strong>of</strong>f, Verne. “‘Panama System Helping Yahoo Compete.” SanFrancisco Chronicle, April 8, 2007, p. D1. Available online.URL: http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/04/08/BUGKNP3UD91.DTL. Accessed December 4, 2007.Snell, Rob. Starting a Yahoo! Business for Dummies. Hoboken, N.J.:Wiley, 2006.Wagner, Richard. Yahoo! SiteBuilder for Dummies. Hoboken, N.J.:Wiley, 2005.Yahoo! Available online. URL: http://www.yahoo.com/. AccessedDecember 4, 2007.young people <strong>and</strong> computing<strong>Computer</strong>s <strong>and</strong> technology play a role in the lives <strong>of</strong> mostyoung people that many adults have difficulty comprehending.Children in industrialized countries are liable toencounter video games even before they arrive at school.Once there, they will be exposed to a considerable amount<strong>of</strong> educational s<strong>of</strong>tware, depending on their school’s affluence(see education <strong>and</strong> computers). Upon returningfrom school, there are more sophisticated games, MySpacepages to keep updated (see social networking), sophisticatedtools for creating music <strong>and</strong> video, <strong>and</strong>, <strong>of</strong> course, theInternet in all its vast diversity. Meanwhile, a web <strong>of</strong> incessantmessages (see texting <strong>and</strong> instant messaging) islikely to keep the youngster in touch with friends.ChallengesA major positive aspect <strong>of</strong> young peoples’ involvement withcomputer technology is that, as with learning a second language,learning the “language” <strong>of</strong> the digital world is easiestfor the young. The capabilities <strong>and</strong> opportunities for creativity<strong>of</strong>fered to today’s teens are astonishing—as are many<strong>of</strong> the impressive results that can be seen in young peoples’blogs, Web sites, <strong>and</strong> YouTube videos. It is also widelybelieved that children will need to master current <strong>and</strong>emerging technology in order to be competitive as adults.At the same time, adults <strong>and</strong> parents in particularremain concerned about the dangers <strong>and</strong> drawbacks <strong>of</strong>teens’ pervasively digital life. A 2007 survey by the PewInternet & American Life Project found that a majority <strong>of</strong>parents whose children were online had rules about whattheir kids could see or play—<strong>and</strong> for how long each day. Ingeneral parents seem to be becoming somewhat less enthusiasticabout their children’s online activities even as thelatter’s positive attitude toward the technology continuesto increase. Use <strong>of</strong> protective s<strong>of</strong>tware (see Web filter) iscommon, although tech-savvy teens have a way <strong>of</strong> stayingahead <strong>of</strong> the curve <strong>of</strong> parental restrictions.Common parental concerns include:• potential exposure to online sexual predators or bullying(see cyberstalking <strong>and</strong> harassment)• viewing <strong>of</strong> inappropriate material such as pornography<strong>and</strong> highly violent games


524 YouTube• excessive time spent online to the detriment <strong>of</strong> study,physical activity, or sleepWhile some <strong>of</strong> this concern echoes an earlier generation’smisgivings about television, the online world is farmore deeply embedded in daily life, <strong>and</strong> both opportunities<strong>and</strong> concerns are thus more complex (see identity in theonline world). While parents can learn more about therelevant issues, <strong>and</strong> schools can help students develop asavvy, critical attitude toward technology, communicationbetween generations will need to be an important strategyfor coping with such rapid technological change.Further ReadingBuckingham, David, <strong>and</strong> Rebekah Willett, editors. Digital Generations:Children, Young People, <strong>and</strong> the New Media. Mahwah,N.J.: Lawrence Erlbaum, 2006.Lenhart, Am<strong>and</strong>a, <strong>and</strong> Mary Madden. “Social Networking Websites<strong>and</strong> Teens: An Overview.” Pew Internet & American LifeProject, January 7, 2007. Available online. URL: http://www.pewinternet.org/pdfs/PIP_SNS_Data_Memo_Jan_2007.pdf.Accessed December 4, 2007.———. “Teens <strong>and</strong> <strong>Technology</strong>: Youth Are Leading the Transitionto a Fully Wired <strong>and</strong> Mobile Nation.” Pew Internet &American Life Project, July 27, 2005. Available online. URL:www.pewinternet.org/pdfs/PIP_Teens_Tech_July2005web.pdf. Accessed December 4, 2007.Macgill, Alex<strong>and</strong>ra Rankin. “Parent <strong>and</strong> Teenager Internet Use.”Pew Internet & American Life Project, October 24, 2007.Available online. URL: http://www.pewinternet.org/pdfs/PIP_Teen_Parents_data_memo_Oct2007.pdf. Accessed December4, 2007.Mazzarella, Sharon R., ed. Girl Wide Web: Girls, the Internet, <strong>and</strong>the Negotiation <strong>of</strong> Identity. New York: Peter Lang, 2005.Reimer, Jeremy. “Study Shows Youth Embracing <strong>Technology</strong>Even More than Before.” Ars Technica, August 1, 2006. Availableonline. URL: http://arstechnica.com/news.ars/post/20060801-7401.html. Accessed December 4, 2007.Willard, Nancy E. Cyber-Safe Kids, Cyber-Savvy Teens: HelpingYoung People Learn to Use the Internet Safely <strong>and</strong> Responsibly.San Francisco, Calif.: Jossey-Bass, 2007.YouTubeSince the late 1990s, Web users (particularly younger ones)have been adept at sharing media content online (see filesharing<strong>and</strong> p2p networks). In the 2000 decade, however,the emphasis has shifted to users not merely sharing otherpeoples’ content, but creating their own (see user-createdcontent). The first part <strong>of</strong> the recipe was the availability <strong>of</strong>ubiquitous digital cameras <strong>and</strong> camcorders; the second partwas easy-to-use video-editing s<strong>of</strong>tware; <strong>and</strong> the third partwas a Web site that could host the results.Created in 2005 by three former PayPal employees, thevideo-sharing site YouTube has been the leading venue foramateur video. Although available content includes clipsfrom movies <strong>and</strong> TV shows (some unauthorized), much <strong>of</strong>the most interesting content is original videos created <strong>and</strong>uploaded by users. Beyond just sharing or accessing content,users are encouraged to rate <strong>and</strong> comment on the videosthey see, <strong>and</strong> users can also subscribe to “feeds” <strong>of</strong> newmaterial that is likely to be <strong>of</strong> interest to them.By 2008 more than 83 million videos were available onYouTube—<strong>and</strong> hundreds <strong>of</strong> thous<strong>and</strong>s added each day.Political InfluenceJust as political pundits were beginning to notice thatbloggers were creating parallel structures that rivaled theinfluence <strong>of</strong> the mainstream media (see journalism <strong>and</strong>computers), YouTube broke into the highly visual field <strong>of</strong>political advertising. Most c<strong>and</strong>idates in the 2008 presidentialprimaries have put their statements <strong>and</strong> other videos onYouTube. However, other supporters soon got into the act,including the creator <strong>of</strong> a pro–Barack Obama ad that castrival Hillary Rodham Clinton in the role <strong>of</strong> Big Brother inthe classic “1984” Apple Macintosh commercial (see mashups).Political commentators <strong>and</strong> journalists have also beenactive in putting their opinions on YouTube (or commentingon those <strong>of</strong> others). Perhaps the political establishment’sbiggest nod to YouTube is the series <strong>of</strong> debates cosponsoredby CNN <strong>and</strong> YouTube, bringing together the Republican<strong>and</strong> Democratic primary fields.YouTube has had its share <strong>of</strong> criticism: Critics havecharged the service with not sufficiently policing copyrightviolations <strong>and</strong> violent content (including videos <strong>of</strong> fightsor bullying in schools), as well as neo-Nazi propag<strong>and</strong>a,scenes <strong>of</strong> animal abuse, <strong>and</strong> videos by anti-American insurgentgroups, as well as generally tasteless exhibitionism. Afew countries <strong>and</strong> some schools have responded by blockingaccess to the service.If YouTube’s main resource is the creativity <strong>and</strong> enthusiasm<strong>of</strong> its users, its main revenue is advertising—about $15million per month by 2006. Don Tapscott <strong>and</strong> Anthony D.Williams, authors <strong>of</strong> the book Wikinomics, cite YouTube asa classic example <strong>of</strong> the new economics <strong>of</strong> mass collaborationon the Web. Google signaled its appreciation for theeconomic potential <strong>of</strong> YouTube by buying it for $1.65 billionin late 2006.Further ReadingFah, Chad. How to Do Everything with YouTube. Emeryville, Calif.:McGraw-Hill Osborne, 2007.Miller, Michael. YouTube 4 You. Indianapolis: Que, 2007.Sahlin, Doug. YouTube for Dummies. Indianapolis: Wiley, 2007.YouTube. Available online. URL: http://www.youtube.com. AccessedDecember 4, 2007.Weber, Steve. Plug Your Business! Marketing on MySpace, YouTube,Blogs <strong>and</strong> Podcasts, <strong>and</strong> Other Web 2.0 Social Networks. FallsChurch, Va.: Weber Books, 2007.Winograd, Morley, <strong>and</strong> Michael D. Hais. Millennial Makeover:MySpace, YouTube, <strong>and</strong> the Future <strong>of</strong> American Politics. Piscataway,N.J.: Rutgers University Press, 2008.


ZZuse, Konrad(1910–1995)GermanEngineer, InventorGreat inventions seldom have a single parent. Althoughpopular history credits Alex<strong>and</strong>er Graham Bell with thetelephone, the almost forgotten Elisha Gray invented thedevice at almost the same time. And although the ENIACis widely considered to be the first practical electronic digitalcomputer (see Eckert, J. Presper <strong>and</strong> Mauchly, John)another American inventor built a smaller machine onsomewhat different principles that also has a claim to being“first” (see Atanas<strong>of</strong>f, John). Least known <strong>of</strong> all is KonradZuse, perhaps because he did most <strong>of</strong> his work in a nationthat was plunging the world into war.Zuse was born on June 22, 1910, in Berlin. He studiedcivil engineering at the Technische Hochschule Berlin-Charlottenburg, receiving his degree in 1935. One <strong>of</strong> histasks in engineering was performing calculations <strong>of</strong> thestress on structures such as bridges. At the time these calculationswere carried out by going through a series <strong>of</strong> stepson a form over <strong>and</strong> over again, plugging in the data <strong>and</strong>calculating by h<strong>and</strong> or using an electromechanical calculator.Like other inventors before him, Zuse began to wonderwhether he could build a machine that could carry outthese repetitive steps automatically.Zuse was unaware <strong>of</strong> the nearly forgotten work <strong>of</strong>Charles Babbage <strong>and</strong> that <strong>of</strong> other inventors in America<strong>and</strong> Britain who were beginning to think along the samelines (see Babbage, Charles). With financial help from hisparents (<strong>and</strong> the loan <strong>of</strong> their living room), Zuse began toassemble his first machine from scrounged parts. His firstmachine, the Z1, was completed in 1938. The machine usedslotted metal plates with holes <strong>and</strong> pins that could slide tocarry out binary addition <strong>and</strong> other operations (in usingthe simpler binary system rather than decimal, Zuse wasdeparting from other calculator designers).The Z1 had trouble storing <strong>and</strong> retrieving numbers <strong>and</strong>never worked well. Undeterred, Zuse began to develop anew machine that used electromechanical telephone relays(a ubiquitous component that was also favored by HowardAiken [see Aiken, Howard]). The new machine workedmuch better, <strong>and</strong> Zuse successfully demonstrated it at theGerman Aerodynamics Research Institute in 1939.With World War II under way, Zuse was able to obtainfunding for his Z3, which was able to carry out automaticsequences from instructions (Zuse used discarded moviefilm instead <strong>of</strong> punched tape). The machine used 22-bitwords <strong>and</strong> had 600 relays in the calculating unit <strong>and</strong>1,800 for the memory. However, the machine could not dobranching or looping the way modern computers can. Itwas destroyed in a bombing raid in 1944. Meanwhile, Zuseused spare time from his military duties at the Henschelaircraft company to work on the Z4, which was completedin 1949. This machine was more fully programmable <strong>and</strong>was comparable to Howard Aiken’s Mark I.By that time, however, Zuse’s electromechanical technologyhad been surpassed by the fully electronic vacuum tubecomputers such as the ENIAC <strong>and</strong> its successors. (Zuse hadconsidered vacuum tubes but had rejected them, believingthat their inherent unreliability <strong>and</strong> the large numbers525


526 Zuse, Konradneeded would make them impracticable for a large-scalemachine.) During the 1950s <strong>and</strong> 1960s, Zuse ran a computercompany, ZUSE KG, which eventually produced electronicvacuum tube computers.Zuse’s most interesting contribution to computer sciencewould not be his hardware but a programming languagecalled Plankalkül or “programming calculus.” Although thelanguage was never implemented, it was far in advance <strong>of</strong>its time in many ways. It started with the radically simpleconcept <strong>of</strong> grouping individual bits to form whatever datastructures were desired. It also included program modulesthat could operate on input variables <strong>and</strong> store their resultsin output variables (see procedures <strong>and</strong> functions). Programswere written using a notation similar to mathematicalmatrices.Zuse labored in obscurity even within the computer sciencefraternity. However, toward the end <strong>of</strong> his life his workbegan to be publicized. He received numerous honorarydegrees from European universities as well as awards <strong>and</strong>memberships in scientific <strong>and</strong> engineering academies. Zusealso took up abstract painting in his later years. He died onDecember 18, 1995.Further ReadingBauer, F. L., <strong>and</strong> H. Wössner. “The Plankalkül <strong>of</strong> Konrad Zuse: AForerunner <strong>of</strong> Today’s Programming Languages.” Communications<strong>of</strong> the ACM, vol. 15, 1972, 678–685.Lee, J. A. N. <strong>Computer</strong> Pioneers. Los Alamitos, Calif.: IEEE <strong>Computer</strong>Society Press, 1995.Zuse, Konrad. The <strong>Computer</strong>—My Life. New York: Springer-Verlag,1993.


Appendix IBibliographies <strong>and</strong> Web ResourcesThe following selections provide reference material <strong>and</strong>resources to supplement the Further Reading selections atthe conclusion <strong>of</strong> the majority <strong>of</strong> entries in this book.Print Resources2008 S<strong>of</strong>tware Industry Directory. Greenwood Village, Colo.:Webcom Communications, 2007.Bidgoli, Hassan, ed. The Internet <strong>Encyclopedia</strong>. New York: Wiley,2003.Cortada, James W. Historical Dictionary <strong>of</strong> Data Processing. 3vols. New York: Greenwood Press, 1987.Daintith, John, <strong>and</strong> Edmund Wright. The Facts On File Dictionary<strong>of</strong> <strong>Computer</strong> <strong>Science</strong>. Rev. ed. New York: Facts On File,2006.De Palma, Paul, ed. Annual Editions: <strong>Computer</strong>s in Society 08/09.Guilford, Conn.: McGraw-Hill/Dushkin, 2007.Downing, Douglas, Michael Covington, <strong>and</strong> Melody MauldinCovington. Dictionary <strong>of</strong> <strong>Computer</strong> <strong>and</strong> Internet Terms. 9thed. Hauppauge, N.Y.: Barron’s, 2006.Hackett, Edward J. et al., eds. The H<strong>and</strong>book <strong>of</strong> <strong>Science</strong> <strong>and</strong> <strong>Technology</strong>Studies. 3rd ed. Cambridge, Mass.: MIT Press, 2007.Henderson, Harry. A to Z <strong>of</strong> <strong>Computer</strong> Scientists. New York: FactsOn File, 2003.Knee, Michael. <strong>Computer</strong> <strong>Science</strong> <strong>and</strong> Computing: A Guide to theLiterature. Greenwich, Colo.: Libraries Unlimited, 2005.Lee, John A. N. International Biographical Dictionary <strong>of</strong> <strong>Computer</strong>Pioneers. New York: Routledge, 1995.Lubar, Stephen. InfoCulture: The Smithsonian Book <strong>of</strong> InformationAge Inventions. Boston: Houghton Mifflin, 1993.McGraw-Hill <strong>Encyclopedia</strong> <strong>of</strong> <strong>Science</strong> & <strong>Technology</strong>. 10th ed. NewYork: McGraw-Hill, 2007.Sun Technical Publications. Read Me First!: A Style Guide for the<strong>Computer</strong> Industry. 2nd ed. Upper Saddle River, N.J.: PrenticeHall, 2003.Web ResourcesAbout.com. “Computing <strong>and</strong> <strong>Technology</strong>.” Available online.URL: http://about.com/compute/. Accessed December 6,2007.Academic Info: <strong>Computer</strong> <strong>Science</strong> & <strong>Computer</strong> Engineering.Available online. URL: http://www.academicinfo.net/compsci.html. Accessed December 6, 2007.ACM Computing Reviews. Available online. URL: http://www.reviews.com/home.cfm. Accessed December 6, 2007.ACM Digital Library. Available online. URL: http://portal.acm.org/dl.cfm. Accessed December 6, 2007.ACM Tech. News. Available online. URL: http://technews.acm.org/current.cfm. Accessed December 7, 2007.Ars Technica. Available online. URL: http://arstechnica.com/.Accessed December 6, 2007.ClickZ Stats. Available online. URL: http://www.clickz.com/stats/. Accessed December 6, 2007.Cnet. Available online. URL: http://www.cnet.com. AccessedDecember 6, 2007.Collection <strong>of</strong> <strong>Computer</strong> <strong>Science</strong> Bibliographies. Available online.URL: http://liinwww.ira.uka.de/bibliography/. AccessedDecember 7, 2007.<strong>Computer</strong> Dictionaries, Acronyms, <strong>and</strong> Glossaries. Availableonline. URL: http://www.compinfo-center.com/tpdict-t.htm.Accessed December 6, 2007.<strong>Computer</strong> History Museum. Available online. URL: http://www.computerhistory.org/. Accessed December 6, 2007.Connected: An Internet <strong>Encyclopedia</strong>. Available online. URL:http://frees<strong>of</strong>t.org/CIE/. Accessed December 7, 2007.FOLDOC (Free On-Line Dictionary <strong>of</strong> Computing). Availableonline. URL: http://foldoc.org/. Accessed December 7,2007.How Stuff Works. Available online. URL: http://www.howstuffworks.com/.Accessed December 6, 2007.IDG (International Data Group). Available online. URL: http://www.idg.net/. Accessed December 7, 2007.IEEE Annals <strong>of</strong> the History <strong>of</strong> Computing. Available online.URL: http://www.computer.org/annals/. Accessed December6, 2007.InfoWorld. Available online. URL: http://www.infoworld.com.Accessed December 6, 2007.Internet News. Available online. URL: http://www.internetnews.com/. Accessed December 6, 2007.Pew/Internet. Available online. URL: http://www.pewinternet.org. Accessed December 6, 2007.527


528 Appendix IRed Herring: The Business <strong>of</strong> <strong>Technology</strong>. Available online. URL:http://www.redherring.com/pages/pagenotfound/. AccessedDecember 7, 2007.Slashdot. Available online. URL: http://slashdot.org. AccessedDecember 6, 2007.Smithsonian Institution. <strong>Science</strong> <strong>and</strong> <strong>Technology</strong> Division,Information <strong>Technology</strong>. Available online. URL: http://www.si.edu/<strong>Encyclopedia</strong>_SI/science_<strong>and</strong>_technology/Information_<strong>Technology</strong>.htm. Accessed December 6, 2007.Webopedia. Available online. URL: http://www.webopedia.com/.Accessed December 6, 2007.Wikipedia. Available online. URL: http://en.wikipedia.org.Accessed December 6, 2007.Yahoo! Finance. Available online. URL: http://biz.yahoo.com.Accessed December 7, 2007.Yahoo! <strong>Science</strong>: <strong>Computer</strong> <strong>Science</strong>. Available online. URL:http://dir.yahoo.com/<strong>Science</strong>/<strong>Computer</strong>_<strong>Science</strong>/. AccessedDecember 6, 2007.ZDNet. Available online. URL: http://www.zdnet.com. AccessedDecember 7, 2007.


Appendix IIA Chronology <strong>of</strong> ComputingThe following chronology lists some significant events in thehistory <strong>of</strong> computing. Although the first calculators (i.e.,the abacus) were known in ancient times, the chronologybegins with the development <strong>of</strong> modern mathematics <strong>and</strong> thefirst calculators in the 17th century.1617• John Napier published an explanation <strong>of</strong> “Napier’s bones,”a manual aid to calculation based on logarithms, <strong>and</strong> theancestor to the slide rule.1624• William Schickard invented a mechanical calculator thatcan perform automatic carrying during addition <strong>and</strong> subtraction.It can also multiply <strong>and</strong> divide by repeated additionsor subtractions.1642• Blaise Pascal invented a calculator that he calls the Pascaline.Its improved carry mechanism used a weight to allowit to carry several places. A small batch <strong>of</strong> the machines wasmade, but it did not see widespread use.1673• Gottfried Wilhelm Leibniz (co-inventor with Isaac Newton<strong>of</strong> the calculus) invented a calculator called the LeibnizWheel. He also wrote about the binary number system thateventually became the basis for modern computation.1786• J. H. Muller invented a “difference engine,” a machine thatcan solve polynomials by repeated addition or subtraction.1822• Charles Babbage designed <strong>and</strong> partially built a much moreelaborate difference engine.1832• Babbage sketched out a detailed design for the AnalyticalMachine. This machine was to have been programmed bypunched cards, storing data in a mechanical memory, <strong>and</strong>even including a printer. Although it was not built duringhis lifetime, Babbage’s machine embodied most <strong>of</strong> the conceptsused in modern computers.1843• Ada Lovelace provided extensive commentary on a book byBabbage’s Italian supporter Menabrea. Besides being thefirst technical writer, Lovelace also wrote what might beconsidered the world’s first computer program.1844• Samuel Morse demonstrated the electromagnetic telegraphby sending a message from Washington to Baltimore. Thetelegraph inaugurated both electric data transmission <strong>and</strong>the use <strong>of</strong> a binary character code (dots <strong>and</strong> dashes).1850• Amedee Mannheim created the first modern slide rule. Itwill become an essential accessory for engineers <strong>and</strong> scientistsuntil the inexpensive electronic calculator arrived inthe 1970s.1854• George Boole’s book The Laws <strong>of</strong> Thought described what isnow called Boolean algebra. Boolean operators are essentialfor the branching statements <strong>and</strong> loops that controlthe operation <strong>of</strong> computer programs.1884• W. S. Burroughs marketed his first adding machine, beginningwhat will become an important calculator (<strong>and</strong> later,computer) business.1890• Herman Hollerith’s punched card tabulator enabledthe U.S. government to complete the 1890 census in recordtime.1896• Hollerith founded the Tabulating Machine Company,which will become the Computing, Tabulating, <strong>and</strong> Record-529


530 Appendix IIing company (CTR) in 1911. In 1924, it will become InternationalBusiness Machines (IBM).1904• J. A. Fleming invented the diode vacuum tube. Together withLee de Forest’s invention <strong>of</strong> the triode two years later, thisdevelopment defined the beginnings <strong>of</strong> electronics, <strong>of</strong>fering aswitching mechanism much faster than mechanical relays.1919• The “flip-flop” circuit was invented by two American physicists,W. H. Eccles <strong>and</strong> R. W. Jordan. The ability <strong>of</strong> the circuitto switch smoothly between two (binary) states wouldform the basis for computer arithmetic logic units.1921• Karl Capek’s play R.U.R. introduced the term robot. Robotswill become a staple <strong>of</strong> science fiction “pulps” starting in the1930s.1930• Vannevar Bush’s elaborate analog computer, the DifferentialAnalyzer, went into service.1936• Alonzo Church developed the lambda calculus, which canbe used to demonstrate the computability <strong>of</strong> mathematicalproblems.• Konrad Zuse built his first computer, a mechanical machinebased on the binary system.1937• Alan Turing provided an alternative (an equivalent) demonstration<strong>of</strong> computability through his Turing Machine, animaginary computer that can reduce any computable problemto a series <strong>of</strong> simple operations performed on an endlesstape.• Bell Laboratories mathematician George Stibitz createdthe first circuit that could perform addition by combiningBoolean operators.1938• In a key development in robotics, Doug T. Ross, an Americanengineer, created a robot that can store its experience inmemory <strong>and</strong> “learn” to navigate a maze.• G. A. Philbrick developed an electronic version <strong>of</strong> the analogcomputer.• Working in a garage near Stanford University, WilliamHewlett <strong>and</strong> David Packard began to build audio oscillators.They called their business the Hewlett-Packard Company.Fifty years later, the garage would be preserved as a historicall<strong>and</strong>mark.1939• John Atanas<strong>of</strong>f <strong>and</strong> Clifford Berry built a small electronicbinary computer called the Atanas<strong>of</strong>f-Berry <strong>Computer</strong>(ABC). A 1973, court decision would give this machine precedenceover ENIAC as the first electronic digital computer.• George Stibitz built the Complex Number Calculator, whichis controlled by a keyboard <strong>and</strong> uses relays.1940• Claude Shannon introduced the fundamental concepts <strong>of</strong>data communications theory.• George Stibitz demonstrated remote computing by controllinghis Complex Number Calculator in New York from aTeletype terminal at Dartmouth College in New Hampshire.1941• Working in isolation in wartime Germany, Konrad Zusecompleted the Z3. Although still mechanical rather thanelectronic, the machine used sophisticated floating-pointnumeric data.1943• The British-built Colossus, an electronic (vacuum tube) special-purposecomputer that can rapidly analyze permutationsto crack the German Enigma cipher.1944• Howard Aiken completed the Harvard Mark I, a large programmablecalculator (or computer) using electromechanicalrelays.• John von Neumann <strong>and</strong> Stanislaw Ulam developed theMonte Carlo method <strong>of</strong> probabilistic simulation, a toolthat would find widespread use as computer power becomesavailable.1945• Zuse continued computer development <strong>and</strong> created asophisticated matrix-based programming language calledPlankalkül.• Vannevar Bush envisioned hypertext <strong>and</strong> knowledge linking<strong>and</strong> retrieval in his article “As We May Think.”• Alan Turing developed the concept <strong>of</strong> using procedures<strong>and</strong> functions (subroutines) called with parameters. Histeam also developed the Pilot ACE (Automatic ComputingEngine), which would help the development <strong>of</strong> a Britishcomputer industry.1946• ENIAC went into service. Developed by J. Presper Eckert<strong>and</strong> John Mauchly, the machine is widely considered tobe the first large-scale electronic digital computer. It used18,000 vacuum tubes.• In the “Princeton Reports” based upon the ENIAC work, Johnvon Neumann, together with Arthur W. Burks <strong>and</strong> HermanGoldstine described the fundamental operations <strong>of</strong> moderncomputers including the stored program concept—the holding<strong>of</strong> all program instructions in memory, where they can bereferred to repeatedly <strong>and</strong> even manipulated like other data.1947• The Association for Computing Machinery (ACM) wasfounded.


Appendix II 531•Eckert <strong>and</strong> Mauchly formed the Eckert-Mauchly Corporationfor commercial marketing <strong>of</strong> computers based on theENIAC design.John von Neumann began development <strong>of</strong> the EDVAC(Electronic Discrete Variable Automatic Calculator) forthe U.S. government’s Ballistic Research Laboratory. Thismachine, completed in 1952, would be the first to use programscompletely stored in memory <strong>and</strong> able to be changedwithout physically changing the hardware.Richard Hamming developed error correction algorithms.Alan Turing’s paper on “Intelligent Machinery” began layingthe groundwork for artificial intelligence research.In Britain, Manchester University built the first electroniccomputer that can store a full program in memory. It wascalled “baby” because it was a small test version <strong>of</strong> a plannedlarger machine. For its main memory it used a CRT-like tubeinvented by F. C. Williams.IBM under Thomas J. Watson, Sr. decided to enter the newcomputer field in a big way by beginning to develop theSelective Sequence Electronic Calculator (SSEC) as a competitorto ENIAC <strong>and</strong> the Harvard Mark I. The huge machineused thous<strong>and</strong>s <strong>of</strong> both vacuum tubes <strong>and</strong> relays.Tom Kilburn <strong>and</strong> M. H. A. Newman invented the index register,which would be used to keep track <strong>of</strong> the current locationin memory <strong>of</strong> instructions or data.The transistor was invented at Bell Labs by John Bardeen,Walter Brattain, <strong>and</strong> William Shockley. The solid-statedevice could potentially replicate all the functionality <strong>of</strong> thevacuum tube with much less size <strong>and</strong> power consumption.It would be some time before it was inexpensive enough tobe used in computers, however.Norbert Wiener coined the term cybernetics to refer to control<strong>and</strong> feedback systems.Claude Shannon formally introduced statistical informationtheory.•••••••••1949• The Cambridge EDSAC demonstrated versatile stored-programcomputing. Meanwhile, Eckert <strong>and</strong> Mauchly workon BINAC, a successor/spin<strong>of</strong>f <strong>of</strong> ENIAC for Northrop AircraftCorporation.• Frank Rosenblatt developed the perceptron, the first form <strong>of</strong>neural network, for solving pattern-matching problems.• An Wang patented “core memory,” using an array <strong>of</strong> magnetizedrings <strong>and</strong> wires, which would become the main memory(RAM) for many mainframes in the 1950s.1950• Alan Turing proposed the Turing Test as a way to demonstrateartificial intelligence.• Development began <strong>of</strong> the high-speed computers Whirlwind<strong>and</strong> SAGE for the U.S. military. The military also began touse computers to run war games or simulations.• Claude Shannon outlined the algorithms for a chess-playingprogram that could evaluate positions <strong>and</strong> perform heuristiccalculations. He would build a chess-playing computercalled Caissac.• Japan began development <strong>of</strong> electronic computers under theleadership <strong>of</strong> Hideo Yamashita, who would build the TokyoAutomatic Calculator.• Approximately 60 electronic or electromechanical computerswere in operation worldwide. Each was built “by h<strong>and</strong>”as there were no production models yet.1951• Eckert <strong>and</strong> Mauchly marketed Univac I, generally consideredthe first commercial computer (although the FerrantiMark I is sometimes given co-honors).• An Wang founded Wang Laboratories, which would becomea major computer manufacturer through the 1970s.• Grace Hopper at Remington R<strong>and</strong> coined the word compiler<strong>and</strong> began developing automatic systems for creatingmachine codes from higher-level instructions.1952•••Alick Glennie developed autocode, generally considered tobe the first true high-level programming language.Magnetic core memory began to come into use.election night a Univac I predicted that Dwight D. Eisenhowerwould win the 1952 U.S. presidential election. Itmade its prediction an hour after the polls closed, but itsfindings were not released at first because news analystsinsisted the race was closer.MANIAC was On developed to do secret nuclear research inLos Alamos.The IBM 701 went into production. It was one <strong>of</strong> the firstcomputers to use magnetic tape drives as primary means<strong>of</strong> data storage.IBM was accused <strong>of</strong> violating the Sherman Antitrust Actin its computer business. Litigation in one form or anotherwould drag on until 1982.John von Neumann described self-reproducing automata.The symbolic assembler was introduced by NathanielRochester.IBM <strong>and</strong> Remington R<strong>and</strong> (Univac) dominated the youngcomputer industry.••••••1954• The ibm 650 was marketed. It was the first truly mass-producedcomputer, <strong>and</strong> relatively affordable by businesses <strong>and</strong>industries. It used a magnetic drum memory.• In Britain, the Lyons Electronic Office (LEO) became thefirst integrated computer system for use for business applications,primarily accounting <strong>and</strong> payroll.1955• Grace Hopper created Flow-matic, the first high-level languagedesigned for business applications <strong>of</strong> computers.• The <strong>Computer</strong> Usage Company (CUC) was founded by JohnW. Sheldon <strong>and</strong> Elmer C. Kubie. It is considered to be thefirst company devoted entirely to developing computer s<strong>of</strong>twarerather than hardware.• Bendix marketed the G-15, its competitor to the IBM 650 inthe “small” business computer market.


532 Appendix II• Users <strong>of</strong> the new IBM 704 mainframe, frustrated at thelack <strong>of</strong> technical supported, formed the first computer usergroup, called SHARE.• The large ibm 705 mainframe is marketed by IBM. It usesmagnetic core memory.1956• The IBM 704 <strong>and</strong> Univac 1103 introduced a new generation<strong>of</strong> commercial mainframes with magnetic core storage.• John McCarthy coined the term artificial intelligence,or AI.• The Dartmouth AI conference brought together leadingresearchers such as McCarthy, Marvin Minsky, HerbertSimon, <strong>and</strong> Allen Newell. It would set the agenda for the field.• Newell, Shaw, <strong>and</strong> Simon developed Logic Theorist, the firstprogram that can prove theorems.• A. I. Dumey described hashing, a procedure for quicklysorting or retrieving data by assigning calculated values.• The infant transistor industry began to grow as companiessuch as IBM began to build transistorized calculators.• IBM signed a consent decree ending the 1952 antitrust complaintby restricting some <strong>of</strong> its business practices in sellingmainframe computers.1957•John Backus <strong>and</strong> his team released fortran, which wouldbecome the most widely used language for scientific computingapplications.Digital Equipment Corporation (DEC) was founded by KenOlsen <strong>and</strong> Harlan Anderson. The company’s agenda involvedthe development <strong>of</strong> a new class <strong>of</strong> smaller computer, theminicomputer.Minicomputer development would be inspired by the MITTX-0 computer. While not yet a “mini,” the machine was thefirst fully transistorized computer.The hard drive came into service in ibm’s 305 RAMAC.IBM developed the first dot matrix printer.••••1958• The I/O interrupt used by devices to signal their needs tothe CPU was developed by ibm. It would be used later inpersonal computers.• China began to build computers based on Soviet designs,which in turn had been based upon American <strong>and</strong> Britishmachines.• Sperry R<strong>and</strong> introduced the Univac II, a huge, powerful,<strong>and</strong> surprisingly reliable computer that used 5,200 vacuumtubes, 18,000 crystal diodes, <strong>and</strong> 184,000 magnetic cores.• Jack Kilby <strong>of</strong> Texas Instruments built the first integratedcircuit, fitting five components onto a half-inch piece <strong>of</strong> germanium.• As the cold war continued, the U.S. Air Force brought SAGEon-line. This integrated air defense system featured realtimeprocessing <strong>and</strong> graphics displays.1959• John McCarthy developed Lisp, a language based onAlonzo Church’s lambda calculus <strong>and</strong> including extensivefacilities for list processing. It would become the favoritelanguage for artificial intelligence research.• cobol was introduced, with much <strong>of</strong> the key work <strong>and</strong>inspiration coming from Grace Hopper.• ibm marketed the 7090 mainframe, a large transistorizedmachine that could perform 229,000 additions a second. Thesmaller IBM 1401 would prove to be even more popular. IBMalso introduced a high-speed printer using type chains.• Robert Noyce <strong>of</strong> Fairchild Semiconductor built a differenttype <strong>of</strong> integrated circuit, using aluminum traces <strong>and</strong> layersdeposited on a silicon substrate.1960• Digital Equipment Corporation (DEC) marketed the PDP-1,generally considered the first commercial minicomputer.• Control Data Corporation (CDC) impressed the industrywith its CDC 1604, designed by Seymour Cray. It <strong>of</strong>feredhigh speed at considerably lower prices than ibm <strong>and</strong> theother major companies.• The Algol language demonstrated block structure for betterorganization <strong>of</strong> programs. The report on the language introducedBNF (Backus-Naur form) as a systematic description<strong>of</strong> computer language grammar.• Donald Blitzer introduced PLATO, the first large-scaleinteractive computer-aided instruction system. It wouldlater be marketed extensively by Control Data Corporation(CDC).• Paul Baran <strong>of</strong> RAND developed the idea <strong>of</strong> packet-switching toallow for decentralized information networks; the idea wouldsoon attract the attention <strong>of</strong> the U.S. Defense Department.• In an advance in practical robotics, the remote-operated“H<strong>and</strong>yman” robot arm <strong>and</strong> h<strong>and</strong> was put to work in anuclear power plant.• The U.S. Navy began to develop the Naval Tactical DataSystem (NTDS) to track targets <strong>and</strong> the status <strong>of</strong> ships in acombat zone.1961• Time-sharing computer systems came into use at MIT <strong>and</strong>other facilities. Among other things, they encouraged theefforts <strong>of</strong> the first hackers to find clever things to do withthe computers.• Leonard Kleinrock’s paper “Information Flow in Large CommunicationNets” was the first description <strong>of</strong> the packetswitchingmessage transfer system that would underlie theInternet.• Arthur Samuel’s ongoing research into computer gamesdesign culminated in his checkers program reaching masterlevel. The program includes learning algorithms that canimprove its play.• The ibm STRETCH (IBM 7030) is installed at Los AlamosNational Laboratory. Its advanced “pipeline” architectureallowed new instructions to begin to be processed whilepreceding ones were being finished. It <strong>and</strong> Univac’s LARCare sometimes considered to be the first supercomputers.• IBM made a major move into scientific computing withits modular 7040 <strong>and</strong> 7044 computers, which can be used


Appendix II 533••together with the 1401 to build a “scalable” installation fortackling complex problems.Unimation introduced the industrial robot (the Unimate).Fairchild Semiconductor marketed the first commercialintegrated circuit.1962•The discipline <strong>of</strong> computer science began to emergewith the first departments established at Purdue <strong>and</strong> Stanford.MIT students created Spacewar, the first video computergame, on the PDP-1.On a more practical level, MIT programmers Richard Greenblatt<strong>and</strong> D. Murphy develop TECO, one <strong>of</strong> the first texteditors.J. C. R. Licklider described the “Intergalactic Network,”a universal information exchange system that would helpinspire the development <strong>of</strong> the Internet.Douglas Engelbart invented the computer mouse at SRI.IBM developed the SABRE online ticket reservation systemfor American Airlines. The system will soon be adoptedby other carriers <strong>and</strong> demonstrate the use <strong>of</strong> networkedcomputer systems to facilitate commerce. Meanwhile, ibmearned $1 billion from its computer business, which by thenhad overtaken its traditional <strong>of</strong>fice machines as the company’sleading source <strong>of</strong> revenue.•••••1963• Joseph Weizenbaum’s Eliza program carried on naturalsoundingconversations in the manner <strong>of</strong> a psychotherapist.• Ivan Sutherl<strong>and</strong> developed Sketchpad, the first computerdrawing system.• Reliable Metal Oxide Semiconductor (MOS) integrated circuitswere perfected, <strong>and</strong> would become the basis for manyelectronic devices in years to come, including computers forspace exploration.1964• The ibm System/360 was announced. It would become themost successful mainframe in history, with its successorsdominating business computing for the next two decades.• IBM introduced the MT/ST (Magnetic Tape/Selectric Typewriter),considered to be the first dedicated word processingsystem. While rudimentary, it allowed text to becorrected before printing.• Seymour Cray’s Control Data CDC 6600 is announced.When completed, it ran about three times faster than IBM’sSTRETCH, irritating Thomas Watson, head <strong>of</strong> the far largerIBM.• J. Kemeny <strong>and</strong> T. Kurtz developed basic to allow students toprogram on the Dartmouth time-sharing system.• At the other end <strong>of</strong> the scale, IBM introduced the complex,feature-filled PL/1 (Programming Language 1) for use withits System/360.• The American National St<strong>and</strong>ards Institute (ANSI) <strong>of</strong>ficiallyadopted the ASCII (American St<strong>and</strong>ard Code for InformationInterchange) character code.• Paul Baran <strong>of</strong> SRI wrote a paper, “On Distributed CommunicationNetworks,” further describing the implementation<strong>of</strong> packet-switched network that could route around disruptions.The work began to attract the attention <strong>of</strong> militaryplanners concerned with air defense <strong>and</strong> missile control systemssurviving nuclear attack.• Jean Sammet <strong>and</strong> her colleagues developed the first computerprogram that can do algebra.• Gordon Moore (a founder <strong>of</strong> Fairchild Semiconductor <strong>and</strong>later, <strong>of</strong> Intel Corporation) stated that the power <strong>of</strong> CPUswould continue to double every 18 to 24 months. “Moore’slaw” proved to be remarkably accurate.1965• ibm introduced the floppy disk (or diskette) for use with itsmainframes.• Edsgar Dijkstra devised the semaphore, a variable that twoprocesses can use to synchronize their operations <strong>and</strong> aidingthe development <strong>of</strong> concurrent programming.• The APL language developed by Kenneth Iverson provideda powerful, compact, but perhaps cryptic way to formulatecalculations.• The Simula language introduced what will become knownas object-oriented programming.• The DEC PDP-8 became the first mass-produced minicomputer,with over 50,000 systems being sold. The machinebrings computing power to thous<strong>and</strong>s <strong>of</strong> universities,research labs, <strong>and</strong> businesses that could not afford mainframes.Designed by Edson deCastro <strong>and</strong> engineered by GordonBell, the PDP-8 design marked an important milestoneon the road to the desktop PC.• NASA uses an IBM onboard computer to guide Geminiastronauts in their first rendezvous in space.• The potential <strong>of</strong> the expert system was demonstrated byDendral, a specialized medical diagnostic program thatbegan development by Edward Feigenbaum, Joshua Lederberg,<strong>and</strong> Bruce Buchanan.• The U.S. Defense Department’s ARPA (Advanced ResearchProjects Agency) sponsored a study <strong>of</strong> a “co-operative network<strong>of</strong> time-sharing computers.” A testbed network wasbegun by connecting a TX-2 minicomputer at MIT via phoneline to a computer at System Development Corporation inSanta Monica, California.• Ted Nelson’s influential vision <strong>of</strong> universal knowledge sharingthrough computers introduced the term hypertext.1966•••In the first federal case involving computer crime (U.S. v.Bennett), a bank programmer is convicted <strong>of</strong> altering a bankprogram to allow him to overdraw his account.The first ACM Turing Award is given to Alan Perlis.The New York Stock Exchange automated much <strong>of</strong> its tradingoperations.1967• The memory cache (a small amount <strong>of</strong> fast memory usedfor instructions or data that are likely to be needed) wasintroduced in the IBM 360/85 series.


534 Appendix II••ibm developed the first floppy disk drive.Seymour Papert introduced Logo, a Lisp-like language thatwould be used to teach children programming conceptsintuitively.A chess program written by Richard Greenblatt <strong>of</strong> MIT,Mac Hack IV, achieved the playing skill <strong>of</strong> a strong amateurhuman player.Fred Brooks did early experiments in computer-mediatedsense perception, laying groundwork for virtual reality.••1968• Edsger Dijkstra’s little letter entitled “GO TO ConsideredHarmful” argued that the GOTO or “jump” statement madeprograms hard to read <strong>and</strong> more prone to error. The resultingdiscussion gave impetus to the structured programmingmovement. Another aspect <strong>of</strong> this movement was theintroduction <strong>of</strong> the term s<strong>of</strong>tware engineering.• Robert Noyce, Andrew Grove, <strong>and</strong> Gordon Moore foundedIntel, the company that would come to dominate themicroprocessor industry by the early 1980s.• ibm introduced the System/3, a lower-cost computer systemdesigned for small businesses.• Bolt, Beranek <strong>and</strong> Newman (BBN) was awarded a governmentcontract to build “interface message processors” orIMPs to translate data between computers linked overpacket-switched networks.• Alan Kay prototyped the Dynabook, a concept that ledtoward both the portable computer <strong>and</strong> the graphicaluser interface.• Stanley Kubrick’s movie 2001 introduced Hal 9000, theself-aware (but paranoid) computer that kills members <strong>of</strong> adeep-space exploration crew.1969• Ken Thompson <strong>and</strong> Dennis Ritchie began work on theunix operating system. It will feature a small kernel thatcan be used with many different comm<strong>and</strong> shells, <strong>and</strong> willeventually incorporate hundreds <strong>of</strong> utility programs thatcan be linked to perform tasks.• Edgar F. Codd introduced the concept <strong>of</strong> the relational systemthat would form the foundation for most modern databasemanagement system.• ibm was sued by the U.S. Department <strong>of</strong> Justice for antitrustviolations. The voluminous case would finally be dropped in1982. However, government pressure may have led the computergiant to finally allow its users to buy s<strong>of</strong>tware fromthird parties, giving a major boost to the s<strong>of</strong>tware industry.• ARPANET is <strong>of</strong>ficially launched. The first four nodes <strong>of</strong> theARPANET came online, prototyping what would eventuallybecome the Internet.• SRI researchers developed Shakey, the first mobile robotthat could “see” <strong>and</strong> respond to its environment. The actualcontrol computer was separate, however, <strong>and</strong> controlled therobot through a radio link.• Neil Armstrong <strong>and</strong> Edwin Aldrin successfully made thefirst human l<strong>and</strong>ing on the Moon, despite problems with theonboard Apollo Guidance <strong>Computer</strong>.• The first automatic teller machine (ATM) was put in service.1970• Gene Amdahl left ibm to found Amdahl Corporation, whichwould compete with IBM in the mainframe “clone” market.• An Intel Corporation team led by Marcian E. H<strong>of</strong>f began todevelop the Intel 4004 microprocessor.• Digital Equipment Corporation announced the PDP-11, thebeginning <strong>of</strong> a series <strong>of</strong> 16-bit minicomputers that will supporttime-sharing computing in many universities.• John Conway’s “Game <strong>of</strong> Life” popularized cellularautomata.• The ACM held its first all-computer chess tournament inNew York City. Northeastern University’s Chess 3.0 toppedthe field <strong>of</strong> six programs competing.• Charles Moore began writing programs to demonstrate theversatility <strong>of</strong> his programming language Forth.• Xerox Corporation established the Palo Alto Research Center(PARC). This laboratory will create many innovations ininteractive computing <strong>and</strong> the graphical user interface.1971•••Niklaus Wirth formally announced Pascal, a small, wellstructuredlanguage that will become the most popularlanguage for teaching computer science for the next twodecades.The IEEE <strong>Computer</strong> Society was founded.The ibm System/370 series ushered in a new generation <strong>of</strong>mainframes using densely packed integrated circuits forboth cpu <strong>and</strong> memory.1972• Dennis Ritchie <strong>and</strong> Brian Kernighan developed c, a compactlanguage that would become a favorite for systems programming,particularly in unix.• The creation <strong>of</strong> an e-mail program for the ARPANETincluded the decision to use the at (@) key as part <strong>of</strong> e-mailaddresses.• Alan Kay developed Smalltalk, building upon SIMULAto create a powerful, seamless object-oriented programminglanguage <strong>and</strong> operating system. The language wouldeventually be influential although not widely used. Kay alsoprototyped the Dynabook, a notebook computer, but Xerox<strong>of</strong>ficials showed little interest.• Seymour Cray left CDC <strong>and</strong> founded Cray Research todevelop new supercomputer.• Intel introduced the 8008, the first commercially available8-bit microprocessor.• The 5.25-inch diskette first appeared. It would become amainstay <strong>of</strong> personal computing until it was replaced by themore compact 3.5-inch diskette in the 1990s.• Nolan Bushnell’s Atari Corp. had the first commercial computergame hit, Pong. It <strong>and</strong> its beeping cousins would soonbecome an inescapable part <strong>of</strong> every parent’s experience.1973• Alain Colmerauer <strong>and</strong> Philippe Roussel at the University <strong>of</strong>Marseilles developed Prolog (Programming in Logic), alanguage that could be used to reason based upon a stored


Appendix II 535base <strong>of</strong> knowledge. The language would become popular forexpert systems development.• Bell Laboratories established a group to support <strong>and</strong> promulgatethe unix operating system.• The Ethernet protocol for LANs (local area networks)was developed by Robert Metcalfe.• In a San Francisco hotel lobby Vinton Cerf sketched thearchitecture for an Internet gateway on a napkin.• Don Lancaster published his “TV Typewriter” design inRadio Electronics. It would enable hobbyists to build displaysfor the soon-to-be available microcomputer.• The Boston <strong>Computer</strong> Society (BCS) was founded. It becameone <strong>of</strong> the premier computer user groups.• Gary Kildall founded Digital Research, whose CP/M operatingsystem would be an early leader in the microcomputerfield.• A federal court declared that the Eckert-Mauchly ENIACpatents were invalid because John Atanas<strong>of</strong>f had the sameideas earlier in his ABC computer.1974• The Alto graphical workstation was developed by AlanKay <strong>and</strong> others at Xerox PARC. It did not achieve commercialsuccess, but a decade later something very much like itwould appear in the form <strong>of</strong> the Apple Macintosh.• An international computer chess tournament is won by theRussian KAISSA program, which crushed the Americanfavorite Chess 4.0.• <strong>Computer</strong>ized product scanners were introduced in an Ohiosupermarket.• Intel released the 8080, a microprocessor that had 6,000transistors, could execute 640,000 instructions per second,was able to access 64 kB <strong>of</strong> memory, <strong>and</strong> ran at a clock rate<strong>of</strong> 2 MHz.• David Ahl’s Creative Computing magazine began to <strong>of</strong>fer anemphasis on using small computers for education <strong>and</strong> otherhuman-centered tasks.• Vinton Cerf <strong>and</strong> Robert Kahn began to publicize their tcp/ip internet protocol.• A group at the University <strong>of</strong> California, Berkeley, began todevelop their own version <strong>of</strong> the unix operating system.• The 1974 Privacy Act began the process <strong>of</strong> trying to protectindividual privacy in the digital age.1975• Fred Brooks published the influential book The MythicalMan-Month. It explained the factors that bog down s<strong>of</strong>twaredevelopment <strong>and</strong> focused more attention on s<strong>of</strong>twareengineering <strong>and</strong> its management.• Electronics hobbyists were intrigued by the announcement<strong>of</strong> the MITS Altair, the first complete microcomputer systemavailable in the form <strong>of</strong> a kit. While the basic kit costonly $395, the keyboard, display, <strong>and</strong> other peripherals wereextra.• MITS founder Ed Roberts also coined the term personalcomputer. Hundreds <strong>of</strong> hobbyists built the kits <strong>and</strong> yearnedfor more capable machines. Many hobbyists flocked tomeetings <strong>of</strong> the Homebrew <strong>Computer</strong> Club in Menlo Park,California.• ibm introduced the first commercially available laserprinter. The very fast, heavy-duty machine was suitableonly for very large businesses.• The first ARPANET discussion mail list was created. Themost popular topic for early mail lists was science fiction.• In Los Angeles, Dick Heiser opened what is believed to bethe first retail store to sell computers to “ordinary people.”1976• Seymour Cray’s sleek, monolithlike Cray 1 set a new st<strong>and</strong>ardfor supercomputers.• Whitfield Diffie <strong>and</strong> Martin Hellman announced a publickeyencryption system that allowed users to securely sendinformation without previously exchanging keys.• ibm developed the first (relatively crude) inkjet printer forprinting address labels.• Shugart Associates <strong>of</strong>fered a floppy disk drive to microcomputerbuilders. It cost $390.• Steve Wozniak proposed that Hewlett-Packard fund the creation<strong>of</strong> a personal computer, while his friend Steve Jobsmade a similar proposal to Atari Corp. Both proposals wererejected, so the two friends started Apple <strong>Computer</strong> Company.• Chuck Peddle <strong>of</strong> MOS <strong>Technology</strong> developed the 6502microprocessor, which would be used in the Apple, Atari,<strong>and</strong> some other early personal computers.• Bill Gates complained about s<strong>of</strong>tware piracy in his “OpenLetter to Hobbyists.” People were illicitly copying his BASIClanguage tapes. copy protection would soon be used in anattempt to prevent copying <strong>of</strong> commercial programs for personalcomputers.• <strong>Computer</strong> enthusiasts found an erudite forum in themagazine Dr. Dobb’s Journal <strong>of</strong> <strong>Computer</strong> Calisthenics <strong>and</strong>Orthodontia: Running Light without Overbyte. The more mainstreamByte magazine also became a widely known forumfor describing new projects <strong>and</strong> selling components.• William Crowther <strong>and</strong> Don Woods at Stanford Universitydeveloped the first interactive computer game involvingan adventure with monsters <strong>and</strong> other obstacles. Universityadministrators would soon complain that the game waswasting too much computer time.1977• Benoit M<strong>and</strong>elbrot’s book on fractals in computing popularizeda mathematical phenomenon that would find usesin computer graphics, data compression, <strong>and</strong> other areas.• The Data encryption St<strong>and</strong>ard (DES) was announced. Criticscharged that it was too weak <strong>and</strong> probably already compromisedby spy agencies.• Vinton Cerf demonstrated the versatility <strong>and</strong> extent <strong>of</strong>the Internet Protocol (IP) by sending a message around theworld via radio, l<strong>and</strong> line, <strong>and</strong> satellite links.• The Charles Babbage Institute was founded. It wouldbecome an important resource for the study <strong>of</strong> computinghistory.


536 Appendix II• Bill Gates <strong>and</strong> Paul Allen found a tiny company calledMicros<strong>of</strong>t. Its first product was a basic interpreter forthe newly emerging personal computer systems.• Radio Shack began selling its TRS-80 Model 1 personalcomputer.• The Apple II was released. It will become the most successful<strong>of</strong> the early (pre-IBM) personal computers.1978• Diablo Systems marketed the first daisy-wheel printer.• Atari announced its Atari 400 <strong>and</strong> Atari 800 personal computers.They <strong>of</strong>fered superior graphics (for the time).• Daniel Bricklin’s VisiCalc spreadsheet is announced. It willbecome the first s<strong>of</strong>tware “hit” for the Apple II, leading businessesto consider using personal computers.• Ward Christiansen <strong>and</strong> R<strong>and</strong>y Suess developed the first s<strong>of</strong>twarefor bulletin board systems (BBS).• The first West Coast <strong>Computer</strong> Faire was organized in SanFrancisco. The annual event became a showcase for innovation<strong>and</strong> a meeting forum for the first decade <strong>of</strong> personalcomputing.• The BSD (Berkeley S<strong>of</strong>tware Distribution) version <strong>of</strong> UNIXwas released by the group at the University <strong>of</strong> California,Berkeley, under the leadership <strong>of</strong> Bill Joy.• The awk (named for Aho, Weinberger, <strong>and</strong> Kernighan)scripting language appeared.1979• medical applications <strong>of</strong> computing were highlightedwhen Allan M. Cormack <strong>and</strong> Godfrey N. Hounsfieldreceived the Nobel Prize in medicine for the development <strong>of</strong>computerized tomography (CAT), creating a revolutionaryway to examine the structure <strong>of</strong> the human body.• The Ashton-Tate company began to market dBase II, a databasemanagement system that became the leader in personalcomputer databases during the coming decade.• Intel’s new 16-bit processors, the 8086 <strong>and</strong> 8088, began todominate the market.• Hayes marketed the first modem, <strong>and</strong> the CompuServe onlineservice <strong>and</strong> early bulletin boards gave a growing number<strong>of</strong> users something to connect to.• unix users Tom Truscott, Jim Ellis, <strong>and</strong> Steve Bellovin developeda program to exchange news in the form <strong>of</strong> files copiedbetween the Duke University <strong>and</strong> University <strong>of</strong> North Carolinacomputer systems. This gradually grew into USENET(or netnews), providing thous<strong>and</strong>s <strong>of</strong> topical newsgroups.• The first networked computer fantasy game, MUD (Multi-User Dungeon), was developed.• The first COMDEX was held in Las Vegas. It would becomethe PC industry’s premier trade show.• Boston’s <strong>Computer</strong> Museum was founded. This perhaps signaledthe computing field’s consciousness <strong>of</strong> coming <strong>of</strong> age.1980• Ada, a modular descendent <strong>of</strong> Pascal, was announced. Thelanguage was part <strong>of</strong> efforts by the U.S. Defense Departmentto modernize its s<strong>of</strong>tware development process.• RISC (reduced instruction set computer) microprocessorarchitecture was introduced.• Apple’s initial public <strong>of</strong>fering <strong>of</strong> 4.6 million shares at $22per share sold out immediately. It was the largest IPO sincethat <strong>of</strong> Ford Motor Company in 1956. Apple founders, SteveJobs <strong>and</strong> Steve Wozniak, became the first multimillionaires<strong>of</strong> the microcomputer generation.• XENIX, a version <strong>of</strong> unix for personal computers, was<strong>of</strong>fered. It met with limited success.• Shugart Associates announced a hard disk drive for personalcomputers. The disk stored a whopping 5 megabytes.1981• The ibm PC was announced. Apple “welcomed” its competitorin ads, but the IBM machine would soon surpass its competitorsas the personal computer <strong>of</strong> choice for business. Itssuccess is aided by a version <strong>of</strong> the VisiCalc spreadsheetthat sells more than 200,000 copies.• Osborne introduced the portable (sort <strong>of</strong>) computer, amachine with the size <strong>and</strong> weight <strong>of</strong> a heavy suitcase.• Apple tried to market the Apple III as a more powerful desktopcomputer for business, but the machine was plaguedwith technical problems <strong>and</strong> did not sell well.• Digital Equipment Corporation introduced its DECmatededicated word-processing system.• Xerox PARC displayed the Star, a successor to the Alto with512 kB <strong>of</strong> RAM. It was intended for use in an Ethernet network.• A network called BITNET (“Because It’s Time Network”)began to link academic institutions worldwide.• Tracy Kidder’s best-selling The Soul <strong>of</strong> a New Machinerecounted the intense Silicon Valley working culture as seenin the development <strong>of</strong> Data General’s latest workstation,the Eclipse.• Japan announced a 10-year effort to create “Fifth Generation”computing based on application <strong>of</strong> artificial intelligence.1982• Sun Microsystems was founded. It would specialize inhigh-performance workstations.• AT&T began marketing unix (System III) as a commercialproduct.• Compaq became one <strong>of</strong> the most successful makers <strong>of</strong>“clones” or ibm PC-compatible computers, introducing aportable (luggable) machine.• The AutoCad program brought CAD (computer-aideddesign <strong>and</strong> manufacturing) to the desktop.• The Time magazine “man <strong>of</strong> the year” was not a person atall—it was the personal computer!1983• Business use <strong>of</strong> personal computers continued to grow.word processing leaders WordStar <strong>and</strong> WordPerfect werejoined by the first version <strong>of</strong> Micros<strong>of</strong>t Word. Lotus 1-2-3became the new spreadsheet leader.• Borl<strong>and</strong> International introduced Turbo Pascal, a speedy, easyto use programming environment for personal computers.


Appendix II 537• An industry pundit introduced the term vaporware to referto much-hyped but never-released s<strong>of</strong>tware, such as a productcalled Ovation for ibm PCs.• IBM tried to market the PC Jr., a less-expensive PC for home<strong>and</strong> school users. It failed to gain a foothold in the market.• More successfully, IBM <strong>of</strong>fered the PC XT, the first personalcomputer that had a built-in hard drive.• Radio Shack introduced the Model 100, the first practicalnotebook computer.• Apple introduced the Lisa, a $10,000 computer with agraphical user interface. Its high price <strong>and</strong> slow performancemade it a flop, but its ideas would be more successfullyimplemented the following year in the Macintosh.• John Sculley became president <strong>of</strong> Apple <strong>Computer</strong>, beginninga bitter struggle with Apple c<strong>of</strong>ounder Steve Jobs.• Richard Stallman began the GNU (GNU’s not UNIX) projectto create a version <strong>of</strong> UNIX that would not be subject toAT&T licensing.• The movie War Games portrayed teenage hackers takingcontrol <strong>of</strong> nuclear missile facilities.1984• A classic Super Bowl commercial introduced the AppleMacintosh, the computer “for the rest <strong>of</strong> us.” Based largelyon Alan Kay’s earlier work at Xerox PARC, the “Mac” usedmenus, icons, <strong>and</strong> a mouse instead <strong>of</strong> the cryptic text comm<strong>and</strong>srequired by MS-DOS.• Meanwhile, IBM introduced a more powerful personal computer,the PC/AT with the Intel 80286 chip.• Steve Jobs leaves Apple <strong>Computer</strong> to found a company calledNeXT.• Micros<strong>of</strong>t CEO Bill Gates was featured on a Time magazinecover.• The domain name system began. It allows Internet usersto connect to remote machines by name without having tospecify an exact network path.• British institutions develop JANET, the Joint AcademicNetwork.• <strong>Science</strong> fiction writer William Gibson coined the wordcyberspace in his novel Neuromancer. It began a new SFgenre called cyberpunk, featuring a harsh, violent, immersivehigh-tech world.1985• Desktop publishing was fueled by several developmentsincluding John Warnock’s PostScript page description language<strong>and</strong> the Aldus PageMaker page layout program. TheMacintosh’s graphical interface gave it the early lead in thisapplication.• Micros<strong>of</strong>t Windows 1.0 was released, using many <strong>of</strong> thesame features as the Macintosh, although not nearly aswell.• There was increasing effort to unify the two versions <strong>of</strong>unix (AT&T <strong>and</strong> BSD), with guidelines including the SystemV Interface St<strong>and</strong>ard <strong>and</strong> POSIX.• Commodore introduces the Amiga, a machine with a sophisticatedoperating system <strong>and</strong> powerful color graphics. Themachine had many die-hard fans but ultimately could notsurvive in the marketplace.• ibm marketed the IBM 3090, a large, powerful mainframethat cost $9.3 million.• The Cray 2 supercomputer broke the 1-billion-instructions-a-secondbarrier.• A conferencing system called the Whole Earth ‘LectronicLink (WELL) was founded. Its earliest users are largelydrawn from Grateful Dead fans <strong>and</strong> assorted techies.1986• The National <strong>Science</strong> Foundation funded NSFNET, whichprovides high-speed Internet connections to link universities<strong>and</strong> research institutions.• Borl<strong>and</strong> released a PROLOG compiler, making the artificialintelligence language accessible to PC users. A PCversion <strong>of</strong> Smalltalk also appeared from another company.• Apple beefed up the relatively anemic Macintosh with theMacintosh Plus, which has more memory.1987• Bjarne Stroustrup’s C++ language <strong>of</strong>fered object-orientedprogramming in a form that was palatable to the legions <strong>of</strong>C programmers. The language would surpass its predecessorin the coming decade.• Sun marked its first workstation based on RISC (reducedinstruction set computing) technology.• Apple sold its one millionth Macintosh. Apple also broughtout a new line <strong>of</strong> Macs (the Macintosh SE <strong>and</strong> Macintosh II)that, unlike the original Macs, were exp<strong>and</strong>able by pluggingin cards.• Apple also introduced Hypercard, a simple hypertextauthoring system that became popular with educators.• ibm introduced a new line <strong>of</strong> personal computers called thePS/2. It featured a more efficient BUS called the Microchannel<strong>and</strong> some other innovations, but it sold only modestly.Most <strong>of</strong> the industry continued to further develop st<strong>and</strong>ardsbased upon the IBM PC AT.• The Thinking Machines Corporation’s Connection Machineintroduced massive parallel processing. It contained 64,000microprocessors that could collectively perform 2 billioninstructions per second.1988•Robert Morris Jr.’s “worm” accidentally ran out <strong>of</strong> control onthe Internet, bringing concerns about computer crime<strong>and</strong> security to public attention. The <strong>Computer</strong> EmergencyResponse Team (CERT) was formed in response.Wolfram’s Mathematica program was a milestone in mathematicalcomputing, allowing users to not merely calculatebut also to solve symbolic equations automatically.Cray introduced the Cray Y-MP supercomputer. It couldprocess 2 billion operations per second.ibm announced a new midrange mainframe, the AS/400.S<strong>and</strong>ia National Laboratory began to build a massively parallel“hypercomputer” that would have 1,024 processorsworking in t<strong>and</strong>em.••••


538 Appendix II• A consortium called the Open S<strong>of</strong>tware Foundation wasestablished to promote open source shared s<strong>of</strong>tware development.1989••The Internet now had more than 100,000 host computers.Deep Thought defeated Danish chess gr<strong>and</strong>master BentLarsen, marking the first time a gr<strong>and</strong>master had beendefeated by a computer.Intel announced the 80486 CPU, a chip with over a milliontransistors.Astronomer Clifford Stoll’s book The Cuckoo’s Eggrecounted his pursuit <strong>of</strong> German hackers who were seekingmilitary secrets. Stoll soon became a well-known critic <strong>of</strong>computer technology <strong>and</strong> the Internet.The ARPANET <strong>of</strong>ficially ends, having been succeeded by theNSFNET.•••1990• Micros<strong>of</strong>t Windows became truly successful with version3.0, diminishing the user interface advantages <strong>of</strong> the Macintosh.• At Sun Microsystems, James Gosling developed the Oak languageto control embedded systems. After the original projectwas canceled, Gosling redesigned the language as Java.• ibm announced the System/390 mainframe.• ibm <strong>and</strong> Micros<strong>of</strong>t developed OS/2, an operating systemintended to replace MS-dos. Micros<strong>of</strong>t withdrew in favor <strong>of</strong>Windows, <strong>and</strong> despite considerable technical merits, OS/2never really takes hold.• Secret Service agents raided computer systems <strong>and</strong> bulletinboards, seeking evidence <strong>of</strong> illegal copying <strong>of</strong> a BellSouthmanual, disrupting an innocent game company. In response,Mitch Kapor founded the Electronic Frontier Foundationto advocate for civil liberties <strong>of</strong> computer users. Anothergroup, the <strong>Computer</strong> Pr<strong>of</strong>essionals for Social Responsibility,filed a Freedom <strong>of</strong> Information Act (FOIA) request for FBIrecords involving alleged government surveillance <strong>of</strong> bulletinboard systems.1991• The <strong>Science</strong> Museum in London exhibited a reconstruction<strong>of</strong> Charles Babbage’s never-built difference engine.• A Finnish student named Linus Torvalds found that hecouldn’t afford a unix license, so he wrote his own unixkernel <strong>and</strong> combined it with GNU utilities. The resultwould eventually become the popular Linux operatingsystem.• Developers at the University <strong>of</strong> Minnesota created Gopher,a system for providing documents over the Internet usinglinked menus. However, it was soon to be surpassed by theWorld Wide Web, created by Tim Berners-Lee at theCERN physics laboratory in Geneva, Switzerl<strong>and</strong>.• Advanced Micro Devices began to compete with Intel bymaking IBM PC-compatible CPU chips.• Apple <strong>and</strong> ibm signed a joint agreement to develop technologyin areas that include object-oriented operating sys-tems, multimedia, <strong>and</strong> interoperability between Macintosh<strong>and</strong> IBM networks.1992• Reports <strong>of</strong> the Michelangelo computer virus frightenedcomputer users. Although the virus did little damage, itspurred more users to practice “safe computing” <strong>and</strong> installantivirus s<strong>of</strong>tware.• Motorola announced the Power PC, a 32-bit RISC microprocessorthat contains 28 million transistors.• An estimated 1 million host computers were on the Internet.The Internet Society is founded to serve as a coordinator<strong>of</strong> future development <strong>of</strong> the network.1993• Apple’s Newton h<strong>and</strong>held computer created a new category<strong>of</strong> machine called the pda, or personal digital assistant.• Micros<strong>of</strong>t Windows NT was announced. It is a version <strong>of</strong>the operating system designed especially for network servers.• Steve Jobs announced that his NeXT company wouldab<strong>and</strong>on its hardware efforts <strong>and</strong> concentrate on marketingits innovative operating system <strong>and</strong> developments<strong>of</strong>tware.• Leonard Adleman demonstrated molecular computing byusing DNA molecules to solve the Traveling Salesman problem.• The Cray 3 supercomputer continued the evolution <strong>of</strong> thatline. It could be scaled up to a 16-processor system.• The Mosaic graphical Web browser popularized the WorldWide Web.• The Clinton administration announced plans to develop anational “Information Superhighway” based on the Internet.Volunteer “Net Day” programs would begin to connectschools to the network.• The White House established its Web site, www.whitehouse.gov.1994•Mosaic’s developer, Marc Andreessen, left NCSA <strong>and</strong> joinedJim Clark to found Netscape. Netscape soon released animproved browser called Netscape Navigator.Apple announced that it would license the Mac operatingsystem to other companies to make Macintosh “clones.”Few companies would take them up on it, <strong>and</strong> Apple wouldsoon withdraw the licensing <strong>of</strong>fer.Intel Corporation was forced to recall millions <strong>of</strong> dollarsworth <strong>of</strong> its new Pentium chips when a mathematical flawwas discovered in the floating-point routines.Marc Andreessen <strong>and</strong> Jim Clark founded Netscape <strong>and</strong>developed a new Web browser, Netscape Navigator. Itwould become the leading Web browser for several years.Red Hat released a commercial distribution <strong>of</strong> Linux 1.0.Search engines such as Lycos <strong>and</strong> Alta Vista started helpingusers find Web pages. Meanwhile, a graduate studentnamed Jerry Yang started compiling an online list <strong>of</strong> his•••••


Appendix II 539favorite Web sites. That list would eventually becomeYahoo!• Advertising in the form <strong>of</strong> banner ads began to appear onWeb sites.1995•Micros<strong>of</strong>t Windows 95 gave a new look to the operatingsystem <strong>and</strong> provided better support for devices, includingplug <strong>and</strong> play device configuration.Micros<strong>of</strong>t began its own on-line service, the Micros<strong>of</strong>tNetwork (MSN). Despite its startup icon being placed onthe Windows 95 desktop, the network would trail industryleader America Online, which had overtaken CompuServe<strong>and</strong> Prodigy.Jeff Bezos’s online bookstore, Amazon.com, opened for business.It would become the largest e-commerce retailer.The major online services began major promotion <strong>of</strong> accessto the World Wide Web.NSFNET retired from direct operation <strong>of</strong> the Internet,which had now been fully privatized. The agency thenfocused on providing new broadb<strong>and</strong> connections betweensupercomputer sites.Sun announced the Java language. It would become one <strong>of</strong>the most popular languages for developing applications forthe World Wide Web.Motorola announced the Power PC-602, a 64-bit cpu chip.Compaq ranked first in personal computer sales in theUnited States, followed by Apple.Physicists Peter Fromherz <strong>and</strong> Alfred Stett <strong>of</strong> the MaxPlanck Institute <strong>of</strong> Biochemistry in Munich, Germany, demonstratedthe direct stimulation <strong>of</strong> a specific nerve cell ina leech by a computer probe. This conjured visions <strong>of</strong> the“jacked-in” neural implants foreseen by science fiction writerssuch as William Gibson.The next generation <strong>of</strong> Cray supercomputers, the T90series, could be scaled up to a rate <strong>of</strong> 60 billion instructionsper second.streaming (real-time video <strong>and</strong> audio) began to becomepopular on the Web.<strong>Computer</strong>-generated imagery (CGI) was featured by Hollywoodin the movie Toy Story.•••••••••••1996• A product called Web TV attempted to bring the WorldWide Web to home consumers without the complexity <strong>of</strong>full-fledged computers. The product achieved only modestsuccess as the price <strong>of</strong> personal computers continued todecline.• The U.S. Postal Service issued a stamp honoring the 50thanniversary <strong>of</strong> ENIAC.• The Boston <strong>Computer</strong> Society, one <strong>of</strong> the oldest computeruser groups, disb<strong>and</strong>ed.• World chess champion Garry Kasparov won his first matchagainst IBM’s Deep Blue chess computer, but said the matchhad been unexpectedly tough.• Yahoo! <strong>of</strong>fered its stock to the public, running up the second-highestfirst-day gain in NASDAQ history.• Seymour Cray’s Cray Research (a developer <strong>of</strong> supercomputers)was acquired by Silicon Graphics.• Pierre Omidyar turned a small hobby auction site into eBay<strong>and</strong> was soon attracting thous<strong>and</strong>s <strong>of</strong> eager sellers <strong>and</strong> buyersto the site.• In one <strong>of</strong> its infrequent ventures into hardware, Micros<strong>of</strong>tannounced the NetPC, a stripped-down diskless PC thatwould run s<strong>of</strong>tware from a network. Such “network computers”never really caught on, being overtaken by the everdecliningprice for complete PCs.1997•The chess world was shocked when world champion GarryKasparov was defeated in a rematch with Deep Blue.A single Internet domain name, business.com, was sold for$150,000.Amazon.com had a successful initial public <strong>of</strong>fering (IPO).A technology called “push” began to be hyped. It involvedWeb sites continually feeding “channels” <strong>of</strong> news or entertainmentto user’s desktops. However, the idea would fail tomake much headway.Internet users b<strong>and</strong>ed together to demonstrate distributedcomputing by cracking a 56-bit DES cipher in 140days.The Association for Computing Machinery (ACM) celebratedits 50th anniversary.•••••1998• Micros<strong>of</strong>t Windows 98 provided an incremental improvementin the operating system.• Apple announced the iMac, a stylish machine that rejuvenatedthe Macintosh line.• eBay’s IPO was wildly successful, making Pierre Omidyar,Meg Whitman, <strong>and</strong> other eBay executives instant millionaires.• Merger-mania hit the online service industry, with AmericaOnline buying CompuServe’s online service (spinning <strong>of</strong>fthe network facilities to WorldCom). AOL then acquiredNetscape <strong>and</strong> its Web hosting technology.• In another significant merger, Compaq acquired DigitalEquipment Corporation (DEC).1999•••Federal Judge Thomas Penfield Jackson found that Micros<strong>of</strong>tviolated antitrust laws. The case dragged on withappeals, with the process <strong>of</strong> crafting a remedy (such aspossibly the split-up <strong>of</strong> the company) still unresolved in2002.Another virus, Melissa, panicked computer users.Some companies began to <strong>of</strong>fer “free” computers to peoplewho agreed to sign up for long-term, relatively expensiveInternet service.<strong>Computer</strong> scientists <strong>and</strong> industry pundits debated the possibility<strong>of</strong> widespread computer disasters due to the y2k problem.Companies spent millions <strong>of</strong> dollars trying to find <strong>and</strong>fix old computer code that used only two digits to store yeardates.•


540 Appendix II• Apple released os x, a new unix-based operating systemfor the Macintosh.2000• New Year’s Day found the world to be continuing much asbefore, with only a few scattered y2k problems.• Unknown hackers, however, brought down some commercialWeb sites with denial-<strong>of</strong>-service (DOS) attacks.• AOL merged with Time-Warner, creating the world’s largestmedia company. Critics worried about the affects <strong>of</strong>growing corporate concentration on the diversity <strong>of</strong> theInternet.• Micros<strong>of</strong>t Windows 2000 began the process <strong>of</strong> mergingthe consumer Windows <strong>and</strong> Windows NT lines into a singlefamily <strong>of</strong> operating systems that would no longer use any <strong>of</strong>the underlying ms-dos code.• The World Wide Web was estimated to have about 1 billionpages online.• Tech stocks (<strong>and</strong> particularly e-commerce companies)began to sharply decline as investors became increasinglyskeptical about pr<strong>of</strong>itability.• A growing number <strong>of</strong> Web users were beginning to switchto much faster broadb<strong>and</strong> connections using dsl or cablemodems.2001• The decline in e-commerce stocks continued, with tens <strong>of</strong>thous<strong>and</strong>s <strong>of</strong> jobs lost. One <strong>of</strong> the many failures was Webvan,the Internet grocery service. Amazon.com sufferedlosses but continued trying to exp<strong>and</strong> into pr<strong>of</strong>itable niches.Only eBay among the major e-commerce companies continuedto be pr<strong>of</strong>itable.• Micros<strong>of</strong>t Windows XP <strong>of</strong>fered consumer <strong>and</strong> “pr<strong>of</strong>essional”versions <strong>of</strong> Windows on the same code base.• ibm researchers created a seven “qubit” quantum computerto execute Shor’s algorithm, a radical approach to factoringthat could potentially revolutionize cryptography.• Among the specters raised in the wake <strong>of</strong> the September 11terrorist attacks was cyberterrorism having the potentialto disrupt vital infrastructure, services, <strong>and</strong> the economy.biometrics <strong>and</strong> more sophisticated database techniqueswere enlisted in the war on terrorism while civil libertiesgroups voiced concerns.2002• Wireless networking using the faster 802.11 st<strong>and</strong>ardbecame increasingly popular as an alternative to cabled orphone line networks for homes <strong>and</strong> small <strong>of</strong>fices.• Consumer digital cameras began to approach “pr<strong>of</strong>essional”quality.• The U.S. Supreme Court ruled that “virtual” child pornography(in which no actual children were used) was protectedby the First Amendment.• Continuing stock market declines threaten growth in thecomputer <strong>and</strong> Internet sectors.• The music-sharing service Napster goes out <strong>of</strong> business,when it is forced to stop distributing copyrighted music.2003• The U.S. economy begins to recover, including the technologysector. However, there is a growing concern aboutjobs being “outsourced” to countries such as India <strong>and</strong>China.• Weblogs, or blogs, are an increasingly popular form <strong>of</strong>online expression. Some journalists even use them to“break” major stories.• The Recording Industry Association <strong>of</strong> America (RIAA) fileshundreds <strong>of</strong> lawsuits against individual users <strong>of</strong> music filesharingsystems.• Apple <strong>and</strong> AMD introduce the first 64-bit microprocessorsin the personal computer market.2004• Security remains an urgent concern as viruses <strong>and</strong> wormsflood the Internet in vast numbers.• spam also floods users’ e-mail boxes. phishing messagestrick users into revealing credit card numbers <strong>and</strong> othersensitive information.• Apple’s iPod dominates the portable media player market,while its iTunes store sells over 100 million songs.• Bloggers become a political force, winning access to majorparty conventions.• Enthusiastic response to Google’s initial public stock <strong>of</strong>feringsignals that investors may have regained confidence inthe strength <strong>of</strong> the Internet sector.2005• “Web 2.0” becomes a buzzword with Web services beingdesigned to be leveraged into new applications to be deliveredto users’ browsers.• Sony’s flawed CD copy protection leaves users vulnerable tohackers; consumers increasingly dem<strong>and</strong> an end to restrictionson use <strong>of</strong> media they buy.• Concerns about the security <strong>of</strong> new electronic votingsystems grow.2006• Apple begins selling Intel-based Macs; meanwhile mostPCs now have dual processors.• Google buys the phenomenally successful video site You-Tube for $1.65 billion.• Micros<strong>of</strong>t releases its delayed Windows Vista operatingsystem, but response is lukewarm.• New versions <strong>of</strong> Linux such as Ubuntu attract enthusiasts,but are slow in making inroads on the desktop.2007• social networking sites such as MySpace <strong>and</strong> FaceBookare used by millions <strong>of</strong> students, but raise concerns aboutprivacy <strong>and</strong> bullying.• Wikipedia now has more than 9 million articles in 252 languages.• CNN <strong>and</strong> YouTube join to sponsor presidential politicaldebates, <strong>and</strong> c<strong>and</strong>idates respond to questions posed in videossubmitted by the public.


Appendix II 541• Google <strong>and</strong> other free Web-based applications <strong>of</strong>fer newalternatives for <strong>of</strong>fice s<strong>of</strong>tware.• Apple introduces the iPhone <strong>and</strong> new iPods with innovativeuser interfaces.• Albert Fert <strong>and</strong> Peter Grunberg receive the Nobel Prize inphysics for their development <strong>of</strong> “giant magnetoresistance,”a phenomenon that enables disk drives to read fainter, moredensely packed magnetic signals. The result is shrinkingdisks <strong>and</strong>/or greater storage capacity.2008• A record amount <strong>of</strong> money is raised online during the presidentialelection campaign.• Micros<strong>of</strong>t engages in a protracted campaign to acquireonline rival Yahoo!• Providers <strong>and</strong> advocacy groups struggle over net neutrality(equal treatment <strong>of</strong> online applications <strong>and</strong> content).


Appendix IIISome Significant AwardsThis appendix describes some <strong>of</strong> the major awards in computerscience <strong>and</strong> technology <strong>and</strong> lists recipients as <strong>of</strong> 2001.The last names <strong>of</strong> persons with entries in this book aregiven in small capital letters.Association for ComputingMachinery (ACM)ACM Turing AwardThe ACM Turing Award “is given to an individual selectedfor contributions <strong>of</strong> a technical nature made to the computingcommunity. The contributions should be <strong>of</strong> lasting <strong>and</strong>major technical importance to the computer field.”Annual Recipients(A few years have joint recipients.)1966 A. J. Perlis: “For his influence in the area <strong>of</strong> advancedprogramming techniques <strong>and</strong> compiler construction.”1967 Maurice V. Wilkes: “Pr<strong>of</strong>essor Wilkes is best known asthe builder <strong>and</strong> designer <strong>of</strong> the EDSAC, the first computer withan internally stored program. Built in 1949, the EDSAC useda mercury delay line memory. He is also known as the author,with Wheeler <strong>and</strong> Gill, <strong>of</strong> a volume on ‘Preparation <strong>of</strong> Programsfor Electronic Digital <strong>Computer</strong>s’ in 1951, in which programlibraries were effectively introduced.”1968 Richard Hamming: “For his work on numerical methods,automatic coding systems, <strong>and</strong> error-detecting <strong>and</strong> errorcorrectingcodes.”1969 Marvin Minsky [Citation not listed by ACM. However,Minsky was a key pioneer in artificial intelligence research,including neural networks, robotics, <strong>and</strong> cognitive psychology.]1970 J. H. Wilkinson: “For his research in numerical analysisto facilitate the use <strong>of</strong> the high-speed digital computer, havingreceived special recognition for his work in computations in linearalgebra <strong>and</strong> ‘backward’ error analysis.”1971 John McCarthy: “Dr. McCarthy’s lecture ‘The PresentState <strong>of</strong> Research on Artificial Intelligence’ is a topic that coversthe area in which he has achieved considerable recognition forhis work.”1972 E. W. Dijkstra.: “Edsger Dijkstra was a principal contributorin the late 1950s to the development <strong>of</strong> the ALGOL, ahigh-level programming language which has become a model <strong>of</strong>clarity <strong>and</strong> mathematical rigor. He is one <strong>of</strong> the principal exponents<strong>of</strong> the science <strong>and</strong> art <strong>of</strong> programming languages in general,<strong>and</strong> has greatly contributed to our underst<strong>and</strong>ing <strong>of</strong> theirstructure, representation, <strong>and</strong> implementation. His fifteen years<strong>of</strong> publications extend from theoretical articles on graph theoryto basic manuals, expository texts, <strong>and</strong> philosophical contemplationsin the field <strong>of</strong> programming languages.”1973 Charles W. Bachman: “For his outst<strong>and</strong>ing contributionsto database technology.”1974 Donald E. Knuth: “For his major contributions to theanalysis <strong>of</strong> algorithms <strong>and</strong> the design <strong>of</strong> programming languages,<strong>and</strong> in particular for his contributions to the ‘art <strong>of</strong>computer programming’ through his well-known books in acontinuous series by this title.”1975 Alan Newell <strong>and</strong> Herbert A. Simon: “In joint scientificefforts extending over twenty years, initially in collaborationwith J. C. Shaw at the RAND Corporation, <strong>and</strong> subsequentiallywith numerous faculty <strong>and</strong> student colleagues at Carnegie-MellonUniversity, they have made basic contributions to artificialintelligence, the psychology <strong>of</strong> human cognition, <strong>and</strong> list processing.”1976 Michael O. Rabin <strong>and</strong> Dana S. Scott: “For their jointpaper ‘Finite Automata <strong>and</strong> Their Decision Problem,’ whichintroduced the idea <strong>of</strong> nondeterministic machines, which hasproved to be an enormously valuable concept. Their [Scott &Rabin] classic paper has been a continuous source <strong>of</strong> inspirationfor subsequent work in this field.”542


Appendix III 5431977 John Backus: “For pr<strong>of</strong>ound, influential, <strong>and</strong> lastingcontributions to the design <strong>of</strong> practical high-level programmingsystems, notably through his work on FORTRAN, <strong>and</strong> for seminalpublication <strong>of</strong> formal procedures for the specification <strong>of</strong> programminglanguages.”1978 Robert W. Floyd: “For having a clear influence on methodologiesfor the creation <strong>of</strong> efficient <strong>and</strong> reliable s<strong>of</strong>tware,<strong>and</strong> for helping to found the following important subfields <strong>of</strong>computer science: the theory <strong>of</strong> parsing, the semantics <strong>of</strong> programminglanguages, automatic program verification, automaticprogram synthesis, <strong>and</strong> analysis <strong>of</strong> algorithms.”1979 Kenneth E. Iverson: “For his pioneering effort in programminglanguages <strong>and</strong> mathematical notation resulting in whatthe computing field now knows as APL, for his contributions tothe implementation <strong>of</strong> interactive systems, to educational uses <strong>of</strong>APL, <strong>and</strong> to programming language theory <strong>and</strong> practice.”1980 C. Anthony R. Hoare: “For his fundamental contributionsto the definition <strong>and</strong> design <strong>of</strong> programming languages.”1981 Edgar F. Codd: “For his fundamental <strong>and</strong> continuingcontributions to the theory <strong>and</strong> practice <strong>of</strong> database managementsystems. He originated the relational approach to databasemanagement in a series <strong>of</strong> research papers published commencingin 1970. His paper ‘A Relational Model <strong>of</strong> Data forLarge Shared Data Banks’ was a seminal paper, in a continuing<strong>and</strong> carefully developed series <strong>of</strong> papers. Dr. Codd built uponthis space <strong>and</strong> in doing so has provided the impetus for widespreadresearch into numerous related areas, including databaselanguages, query subsystems, database semantics, locking <strong>and</strong>recovery, <strong>and</strong> inferential subsystems.”1982 Stephen A. Cook: “For his advancement <strong>of</strong> our underst<strong>and</strong>ing<strong>of</strong> the complexity <strong>of</strong> computation in a significant <strong>and</strong>pr<strong>of</strong>ound way. His seminal paper, ‘The Complexity <strong>of</strong> TheoremProving Procedures,’ presented at the 1971 ACM SIGACT Symposiumon the Theory <strong>of</strong> Computing, laid the foundations forthe theory <strong>of</strong> NP-Completeness. The ensuing exploration <strong>of</strong> theboundaries <strong>and</strong> nature <strong>of</strong> NP-complete class <strong>of</strong> problems hasbeen one <strong>of</strong> the most active <strong>and</strong> important research activities incomputer science for the last decade.”1983 Ken Thompson <strong>and</strong> Dennis Ritchie: “For their development<strong>of</strong> generic operating systems theory <strong>and</strong> specifically forthe implementation <strong>of</strong> the UNIX operating system.”1984 Niklaus Wirth: “For developing a sequence <strong>of</strong> innovativecomputer languages, EULER, ALGOL-W, MODULA <strong>and</strong>PASCAL. PASCAL has become pedagogically significant <strong>and</strong> hasprovided a foundation for future computer language, systems,<strong>and</strong> architectural research.”1985 Richard M. Karp: “For his continuing contributions tothe theory <strong>of</strong> algorithms including the development <strong>of</strong> efficientalgorithms for network flow <strong>and</strong> other combinatorial optimizationproblems, the identification <strong>of</strong> polynomial-time computabilitywith the intuitive notion <strong>of</strong> algorithmic efficiency, <strong>and</strong>,most notably, contributions to the theory <strong>of</strong> NP-completeness.Karp introduced the now st<strong>and</strong>ard methodology for provingproblems to be NP-complete which has led to the identification<strong>of</strong> many theoretical <strong>and</strong> practical problems as being computationallydifficult.”1986 John Hopcr<strong>of</strong>t <strong>and</strong> Robert Tarjan: “For fundamentalachievements in the design <strong>and</strong> analysis <strong>of</strong> algorithms <strong>and</strong> datastructures.”1987 John Cocke: “For significant contributions in the design<strong>and</strong> theory <strong>of</strong> compilers, the architecture <strong>of</strong> large systems <strong>and</strong>the development <strong>of</strong> reduced instruction set computers (RISC);for discovering <strong>and</strong> systematizing many fundamental transformationsnow used in optimizing compilers including reduction<strong>of</strong> operator strength, elimination <strong>of</strong> common subexpressions,register allocation, constant propagation, <strong>and</strong> dead code elimination.”1988 Ivan Sutherl<strong>and</strong>: “For his pioneering <strong>and</strong> visionary contributionsto computer graphics, starting with Sketchpad, <strong>and</strong>continuing after. Sketchpad, though written twenty-five yearsago, introduced many techniques still important today. Theseinclude a display file for screen refresh, a recursively traversedhierarchical structure for modeling graphical objects, recursivemethods for geometric transformations, <strong>and</strong> an object orientedprogramming style. Later innovations include a ‘Lorgnette’ forviewing stereo or colored images, <strong>and</strong> elegant algorithms forregistering digitized views, clipping polygons, <strong>and</strong> representingsurfaces with hidden lines.”1989 William (Velvel) Kahan: “For his fundamental contributionsto numerical analysis. One <strong>of</strong> the foremost experts onfloating-point computations. Kahan has dedicated himself to‘making the world safe for numerical computations.’ ”1990 Fern<strong>and</strong>o J. Corbato: “For his pioneering work organizingthe concepts <strong>and</strong> leading the development <strong>of</strong> the general-purpose,large-scale, time-sharing <strong>and</strong> resource-sharingcomputer systems, CTSS <strong>and</strong> Multics.”1991 Robin Milner: “For three distinct <strong>and</strong> complete achievements:1) LCF, the mechanization <strong>of</strong> Scott’s Logic <strong>of</strong> ComputableFunctions, probably the first theoretically based yet practicaltool for machine assisted pro<strong>of</strong> construction; 2) ML, the firstlanguage to include polymorphic type inference together witha type-safe exception-h<strong>and</strong>ling mechanism; 3) CCS, a generaltheory <strong>of</strong> concurrency. In addition, he formulated <strong>and</strong> stronglyadvanced full abstraction, the study <strong>of</strong> the relationship betweenoperational <strong>and</strong> denotational semantics.”1992 Butler W. Lampson: “For contributions to the development<strong>of</strong> distributed, personal computing environments <strong>and</strong> thetechnology for their implementation: workstations, networks,operating systems, programming systems, displays, security <strong>and</strong>document publishing.”


544 Appendix III1993 Juris Harmanis <strong>and</strong> Richard E. Stearns: “In recognition<strong>of</strong> their seminal paper which established the foundations for thefield <strong>of</strong> computational complexity theory.”1994 Edward Feigenbaum <strong>and</strong> Raj Reddy: “For pioneeringthe design <strong>and</strong> construction <strong>of</strong> large-scale artificial intelligencesystems, demonstrating the practical importance <strong>and</strong> potentialcommercial impact <strong>of</strong> artificial intelligence technology.”1995 Manuel Blum: “In recognition <strong>of</strong> his contributions to thefoundations <strong>of</strong> computational complexity theory <strong>and</strong> its applicationto cryptography <strong>and</strong> program checking.”1996 Amir Pneueli: “For seminal work introducing temporallogic into computing science <strong>and</strong> for outst<strong>and</strong>ing contributionsto program <strong>and</strong> systems verification.”1997 Douglas Engelbart: “For an inspiring vision <strong>of</strong> thefuture <strong>of</strong> interactive computing <strong>and</strong> the invention <strong>of</strong> key technologiesto help realize this vision.”1998 James Gray: “For seminal contributions to database <strong>and</strong>transaction processing research <strong>and</strong> technical leadership in systemimplementation.”1999 Frederick P. Brooks, Jr.: “For l<strong>and</strong>mark contributionsto computer architecture, operating systems, <strong>and</strong> s<strong>of</strong>twareengineering.”2000 Andrew Chi-Chih Yao: “In recognition <strong>of</strong> his fundamentalcontributions to the theory <strong>of</strong> computation, including thecomplexity-based theory <strong>of</strong> pseudor<strong>and</strong>om number generation,cryptography, <strong>and</strong> communication complexity.”2001 Ole-Johan Dahl <strong>and</strong> Kristen Nygaard: “For ideas fundamentalto the emergence <strong>of</strong> object oriented programming,through their design <strong>of</strong> the programming languages Simula I<strong>and</strong> Simula 67.”2002 Ronald L. Rivest, Adi Shamir, <strong>and</strong> Leonard M. Adelman:“For their ingenious contribution for making public-key cryptographyuseful in practice.”2003 Alan Kay: “pioneering many <strong>of</strong> the ideas at the root <strong>of</strong>contemporary object-oriented programming languages, leadingthe team that developed Smalltalk, <strong>and</strong> for fundamental contributionsto personal computing.”2004 Vinton G. Cerf <strong>and</strong> Robert E. Kahn: “For pioneeringwork on internetworking, including the design <strong>and</strong> implementation<strong>of</strong> the Internet’s basic communications protocols, TCP/IP,<strong>and</strong> for inspired leadership in networking.”2005 Peter Naur: “For fundamental contributions to programminglanguage design <strong>and</strong> the definition <strong>of</strong> Algol 60, to compilerdesign, <strong>and</strong> to the art <strong>and</strong> practice <strong>of</strong> computer programming.”2006 Frances E. Allen: “For contributions that fundamentallyimproved the performance <strong>of</strong> computer programs in solving problems,<strong>and</strong> accelerated the use <strong>of</strong> high-performance computing.”2007 Edmund M. Clarke, E. Allen Emerson, <strong>and</strong> Joseph Sifakis:“For . . . developing ModelChecking into a highly effectiveverification technology, widely adopted in the hardware <strong>and</strong>s<strong>of</strong>tware industries.”Eckert-Mauchly AwardAdministered jointly by ACM <strong>and</strong> IEEE <strong>Computer</strong> Society<strong>and</strong> “given for contributions to computer <strong>and</strong> digital systemsarchitecture where the field <strong>of</strong> computer architectureis considered at present to encompass the combined hardware-s<strong>of</strong>twaredesign <strong>and</strong> analysis <strong>of</strong> computing <strong>and</strong> digitalsystems.”Annual Recipients1979 Robert S. Barton: “For his outst<strong>and</strong>ing contributionsin basing the design <strong>of</strong> computing systems on the hierarchicalnature <strong>of</strong> programs <strong>and</strong> their data.”1980 Maurice V. Wilkes: “For major contributions to computerarchitecture over three decades including notable achievementsin developing a working stored-program computer,formulation <strong>of</strong> the basic principles <strong>of</strong> microprogramming, earlyresearch on cache memories, <strong>and</strong> recent studies in distributedcomputation.”1981 Wesley A. Clark: “For contributions to the early development<strong>of</strong> the minicomputer <strong>and</strong> the multiprocessor, <strong>and</strong> forcontinued contributions over 25 years that have found theirway into computer networks, modular computers, <strong>and</strong> personalcomputers.”1982 C. Gordon Bell: “For his contributions to designing <strong>and</strong>underst<strong>and</strong>ing computer systems: for his contributions in theformation <strong>of</strong> the minicomputer; for the creation <strong>of</strong> the first commercial,interactive timesharing computer; for pioneering workin the field <strong>of</strong> hardware description languages; for co-authoringclassic computer books <strong>and</strong> co-founding a computer museum.”1983 Tom Kilburn: “For major seminal contributions tocomputer architecture spanning a period <strong>of</strong> three decades. Forestablishing a tradition <strong>of</strong> collaboration between university <strong>and</strong>industry which dem<strong>and</strong>s the mutual underst<strong>and</strong>ing <strong>of</strong> electronicstechnology <strong>and</strong> abstract programming concepts.”1984 Jack B. Dennis: “For contributions to the advancement<strong>of</strong> combined hardware <strong>and</strong> s<strong>of</strong>tware design through innovationsin data flow architectures.”1985 John Cocke: “For contributions to high performancecomputer architecture through lookahead, parallelism <strong>and</strong> pipelineutilization, <strong>and</strong> to reduced instruction set computer architecturethrough the exploitation <strong>of</strong> hardware-s<strong>of</strong>tware trade<strong>of</strong>fs<strong>and</strong> compiler optimization.”1986 Harvey G. Cragon: “For major contributions to computerarchitecture <strong>and</strong> for pioneering the application <strong>of</strong> integrated circuitsfor computer purposes. For serving as architect <strong>of</strong> the Texas


Appendix III 545Instruments scientific computer <strong>and</strong> for playing a leading role inmany other computing developments in that company.”1987 Gene M. Amdahl: “For outst<strong>and</strong>ing innovations in computerarchitecture, including pipelining, instruction look-ahead,<strong>and</strong> cache memory.”1988 Daniel P. Siewiorek: “For outst<strong>and</strong>ing contributions inparallel computer architecture, reliability, <strong>and</strong> computer architectureeducation.”1989 Seymour Cray: “For a career <strong>of</strong> achievements that haveadvanced supercomputing design.”1990 Kenneth E. Batcher: “For contributions to parallel computerarchitecture, both for pioneering theories in interconnectionnetworks <strong>and</strong> for the pioneering implementations <strong>of</strong>parallel computers.”1991 Burton J. Smith: “For pioneering work in the design <strong>and</strong>implementation <strong>of</strong> scalable shared memory multiprocessors.”1992 Michael J. Flynn: “For his important <strong>and</strong> seminal contributionsto processor organization <strong>and</strong> classification, computerarithmetic <strong>and</strong> performance evaluation.”1993 David Kuck: “For his impact on the field <strong>of</strong> supercomputing,including his work in shared memory multiprocessing,clustered memory hierarchies, compiler technology, <strong>and</strong> application/librarytuning.”1994 James E. Thornton: “For his pioneering work on highperformanceprocessors; for inventing the ‘scoreboard’ forinstruction issue; <strong>and</strong> for fundamental contributions to vectorsupercomputing.”1995 John Crawford: “In recognition <strong>of</strong> your impact on thecomputer industry through your development <strong>of</strong> microprocessortechnology.”1996 Yale N. Patt: “For important contributions to instructionlevel parallelism <strong>and</strong> superscalar processor design.”1997 Robert Tomasulo: “For the ingenious Tomasulo’s algorithm,which enabled out-<strong>of</strong>-order execution processors to beimplemented.”1998 T. Watanabe: [Citation not available, but NEC notes thatWatanabe “was a chief architect for NEC’s first supercomputer,the SX-2, <strong>and</strong> is recognized for his significant contributions tothe architectural design <strong>of</strong> supercomputers having multiple, parallelvector pipelines <strong>and</strong> programmable vector caches.”]1999 James E. Smith: “For fundamental contributions to highperformancemicroarchitecture, including saturating countersfor branch prediction, reorder buffers for precise exceptions,decoupled access/execute architectures, <strong>and</strong> vector supercomputerorganization, memory, <strong>and</strong> interconnects.”2000 Edward Davidson: “For his seminal contributions to thedesign, implementation, <strong>and</strong> performance evaluation <strong>of</strong> highperformancepipelines <strong>and</strong> multiprocessor systems.”2001 John Hennessy: “For being the founder <strong>and</strong> chief architect<strong>of</strong> the MIPS <strong>Computer</strong> Systems <strong>and</strong> contributing to thedevelopment <strong>of</strong> the l<strong>and</strong>mark MIPS R2000 microprocessor.”2002 B. Ramakrishna (Bob) Rau: “For pioneering contributionsto statistically scheduled instruction-level parallel processors<strong>and</strong> their compilers.”2003 Joseph A. (Josh) Fisher: “In recognition <strong>of</strong> 25 years <strong>of</strong>seminal contributions to instruction-level parallelism, pioneeringwork on VLIW architectures, <strong>and</strong> the formulation <strong>of</strong> theTrace Scheduling compilation technique.”2004 Frederick P. Brooks: “For the definition <strong>of</strong> computerarchitecture <strong>and</strong> contributions to the concept <strong>of</strong> computer families<strong>and</strong> to the principles <strong>of</strong> instruction set design; for seminalcontributions in instruction sequencing, including interruptsystems <strong>and</strong> execute instructions; <strong>and</strong> for contributions to theIBM 360 instruction set architecture.”2005 Robert P. Colwell: “For outst<strong>and</strong>ing achievements in thedesign <strong>and</strong> implementation <strong>of</strong> industry-changing microarchitectures,<strong>and</strong> for significant contributions to the RISC/CISC architecturedebate.”2006 James H. Pomerene: “For pioneering innovations in computerarchitecture, including early concepts in cache, reliablememories, pipelining <strong>and</strong> branch prediction, for the design <strong>of</strong> theIAS computer <strong>and</strong> for the design <strong>of</strong> the Harvest supercomputer.”2007 Mateo Valero: “For extraordinary leadership in buildinga world class computer architecture research center, for seminalcontributions in the areas <strong>of</strong> vector computing <strong>and</strong> multithreading,<strong>and</strong> for pioneering basic new approaches to instructionlevelparallelism.”2008 David Patterson: “For seminal contributions to RISCmicroprocessor architectures, RAID storage systems design, <strong>and</strong>reliable computing, <strong>and</strong> for leadership in education <strong>and</strong> in disseminatingacademic research results into successful industrialproducts.”Grace Murray Hopper AwardThe ACM gives this award for “the outst<strong>and</strong>ing young computerpr<strong>of</strong>essional <strong>of</strong> the year . . . selected on the basis <strong>of</strong> asingle recent major technical or service contribution.”Annual RecipientsNote: this award has not been given every year.1971 Donald E. Knuth: “For the publication in 1968 (at age30) <strong>of</strong> Volume I <strong>of</strong> his monumental treatise ‘The Art <strong>of</strong> <strong>Computer</strong>Programming.’ ”


546 Appendix III1972 Paul E. Dirksen <strong>and</strong> Paul H. Kress: “For the creation <strong>of</strong>WATFOR Compiler, the first member <strong>of</strong> a powerful new family<strong>of</strong> diagnostic <strong>and</strong> educational programming tools.”1973 Lawrence M. Breed, Richard Lathwell, <strong>and</strong> Roger Moore:“For their work in the design <strong>and</strong> implementation <strong>of</strong> APL/360,setting new st<strong>and</strong>ards in simplicity, efficiency, reliability <strong>and</strong>response time for interactive systems.”1974 George N. Baird: “For his successful development <strong>and</strong>implementation <strong>of</strong> the Navy’s COBOL Compiler ValidationSystem.”1975 Allen L. Scherr: “For his pioneering study in quantitativecomputer performance analysis.”1976 Edward H. Shortliffe: “For his pioneering research whichis embodied in the MYCIN program. MYCIN is a program whichconsults with physicians about the diagnosis <strong>and</strong> treatment <strong>of</strong>infections. In creating MYCIN, Shortliffe employed his background<strong>of</strong> medicine, together with his research in knowledgebasedsystems design, to produce an integrated package whichis easy for expert physicians to use <strong>and</strong> extend. Shortliffe’s workformed the basis for a research program supported by NIH, <strong>and</strong>has been widely studied <strong>and</strong> drawn upon by others in the field<strong>of</strong> knowledge-based systems.”1978 Raymond C. Kurzweil: “For his development <strong>of</strong> aunique reading machine for the blind, a computer-based devicethat reads printed pages aloud. The Kurzweil machine is an 80-pound device that shoots a beam <strong>of</strong> light across each printedpage, converts the reflected light across each printed page, convertsthe reflected light into digital data that is analyzed by itsbuilt-in computer, <strong>and</strong> then transformed into synthetic speech.It is expected to make reading <strong>of</strong> all printed material possiblefor blind people, whose reading was previously limited to materialtranslated into Braille. The machine would not have beenpossible without another achievement by Kurzweil, that is, aset <strong>of</strong> rules embodied in the mini-computer program by whichprinted characters <strong>of</strong> a wide variety <strong>of</strong> sizes <strong>and</strong> shapes are reliably<strong>and</strong> automatically recognized.”1979 Steven Wozniak: “For his many contributions to therapidly growing field <strong>of</strong> personal computing <strong>and</strong>, in particular,to the hardware <strong>and</strong> s<strong>of</strong>tware for the Apple <strong>Computer</strong>.”1980 Robert M. Metcalfe: “For his work in the development<strong>of</strong> local networks, specifically the Ethernet.”1981 Daniel S. Bricklin: “For his contributions to personalcomputing <strong>and</strong>, in particular, to the design <strong>of</strong> VisCalc. Bricklin’sefforts in the development <strong>of</strong> the ‘Visual Calculator’ provide theexcellence <strong>and</strong> elegance that ACM seeks to sustain through suchactivities as the Awards program.”1982 Brian K. Reid: “For his contributions in the area <strong>of</strong> computerizedtext-production <strong>and</strong> typesetting systems, specificallyScribe which represents a major advance in this area. It embodiesseveral innovations based on computer science research inprogramming language design, knowledge-based systems, computerdocument processing, <strong>and</strong> typography. The impact <strong>of</strong>Scribe has been substantial due to the excellent documentation<strong>and</strong> Reid’s efforts to spread the system.”1984 Daniel H. H. Ingalls, Jr.: “For his work at the Xerox PaloAlto Research Center, where he was a major force, both technical<strong>and</strong> inspirational, in the development <strong>of</strong> the SMALLTALKlanguage <strong>and</strong> its graphics facilities. He is the designer <strong>of</strong> theBITBLT primitive that is now widely used for generating imageson raster-scan displays. The combination <strong>of</strong> a good idea, a gooddesign, <strong>and</strong> very effective <strong>and</strong> careful implementation has ledto BITBLT’s wide acceptance in the computing community. Mr.Ingalls’ research has also directly <strong>and</strong> dramatically affected thecomputing industry’s view <strong>of</strong> what people should have in theway <strong>of</strong> accessible computing.”1985 Cordell Green: “For establishing several key aspects <strong>of</strong>the theoretical basis for logic programming <strong>and</strong> providing a resolutiontheorem prover to carry out a programming task by constructingthe result which the computer program is to compute.For proving the constructive technique correct <strong>and</strong> for presentingan effective method for constructing the answer; these contributionsproviding an early theoretical basis for Prolog <strong>and</strong>logic programming.”1986 William N. Joy: “For his work on the Berkeley UNIXOperating System as a designer, integrator, <strong>and</strong> implementor <strong>of</strong>many <strong>of</strong> its advanced features including Virtual Memory, the C-shell, the vi Screen editor, <strong>and</strong> Networking.”1987 John K. Ousterhout: “For his contribution to very largescale integrated circuit computer aided design. His systems,Caesar <strong>and</strong> Magic, have demonstrated that effective CAD systemsneed not be expensive, hard to learn, or slow.”1988 Guy L. Steele: “For his general contributions to thedevelopment <strong>of</strong> Higher Order Symbolic Programming, principallyfor his advancement <strong>of</strong> lexical scoping in LISP.”1989 W. Daniel Hillis: “For his basic research on data parallelalgorithms <strong>and</strong> for the conception, design, implementation <strong>and</strong>commercialization <strong>of</strong> the Connection Machine.”1990 Richard Stallman: “For pioneering work in the development<strong>of</strong> the extensible editor EMACS (Editing Macros).”1991 Feng-hsuing Hsu: “For contributions in architecture <strong>and</strong>algorithms for chess machines. His work led to the creation <strong>of</strong>the Deep Thought Chess Machine, which led to the first chessplaying computer to defeat Gr<strong>and</strong>masters in tournament play<strong>and</strong> the first to achieve a certified Gr<strong>and</strong>master level rating.”1993 Bjarne Stroustrup: “For his early work laying the foundationsfor the C++ programming language. Based on the foundations<strong>and</strong> Dr. Stroustrup’s continuing efforts, C++ has becomeone <strong>of</strong> the most influential programming languages in the history<strong>of</strong> computing.”


Appendix III 5471996 Shafrira Goldwasser: “For her early work relating computation,r<strong>and</strong>omness, knowledge committee <strong>and</strong> pro<strong>of</strong>s, whichhas shaped the foundations <strong>of</strong> probabilistic computation theory,computational number theory, <strong>and</strong> cryptography. This work is acontinuing influence in design <strong>and</strong> certification <strong>of</strong> secure communicationsprotocols, with practical applications to development<strong>of</strong> secure networks <strong>and</strong> computer systems.”1999 Wen-mei Hwu: “For the design <strong>and</strong> implementation<strong>of</strong> the IMPACT compiler infrastructure which has been usedextensively both by the microprocessor industry as a baselinefor product development <strong>and</strong> by academia as a basis foradvanced research <strong>and</strong> development in computer architecture<strong>and</strong> compiler design.”2000 Lydia Kavraki: “For her seminal work on the probabilisticroadmap approach which has caused a paradigm shiftin the area <strong>of</strong> path planning, <strong>and</strong> has many applications inrobotics, manufacturing, nanotechnology <strong>and</strong> computationalbiology.”2001 George Necula: “For his seminal work on the concept<strong>and</strong> implementation <strong>of</strong> Pro<strong>of</strong> Carrying Code, which has had agreat impact on the field <strong>of</strong> programming languages <strong>and</strong> compilers<strong>and</strong> has given a new direction to applications <strong>of</strong> theoremproving to program correctness, such as safety <strong>of</strong> mobile code<strong>and</strong> component-based s<strong>of</strong>tware.”2002 Ramakrishnan Srikant: “For his seminal work on miningassociation rules, which has led to association rules becoming akey data mining tool as well as part <strong>of</strong> the core syllabus in database<strong>and</strong> data mining courses.”2003 Stephen W. Keckler: “For ground-breaking analysis <strong>of</strong>technology scaling for high-performance processors that shedsnew light on the methods required to maintain performanceimprovement trends in computer architecture, <strong>and</strong> on the designimplications for future high-performance processors <strong>and</strong> systems.”2004 Jennifer Rexford: “For models, algorithms, <strong>and</strong> deployedsystems that assure stable <strong>and</strong> efficient Internet routing withoutglobal coordination.”2005 Omer Reingolf: “For his work in finding a deterministiclogarithmic-space algorithm for ST-connectivity in undirectedgraphs.”2006 Daniel Klein: “For the design <strong>of</strong> a system capable <strong>of</strong>learning a high-quality grammar for English directly from text.”2007 Vern Paxson: “For his work in measuring <strong>and</strong> characterizingthe Internet.”Electronic FrontierFoundation (EFF)Pioneer AwardsThe EFF gives annual “Pioneer Awards” to leaders in“exp<strong>and</strong>ing knowledge, freedom, efficiency, <strong>and</strong> utility.”1992 Douglas C. Engelbart, Robert Kahn, Jim Warren, TomJennings, <strong>and</strong> Andrzej Smereczynski.1993 Paul Baran, Vinton Cerf, Ward Christensen, DaveHughes, <strong>and</strong> the USENET s<strong>of</strong>tware developers, represented bythe s<strong>of</strong>tware’s originators Tom Truscott <strong>and</strong> Jim Ellis.1994 Ivan Sutherl<strong>and</strong>, Whitfield Diffie <strong>and</strong> Martin Hellman,Murray Tur<strong>of</strong>f <strong>and</strong> Starr Roxanne Hiltz, Lee Felsenstein, BillAtkinson, <strong>and</strong> the Well.1995 Philip Zimmermann, Anita Borg, <strong>and</strong> Willis Ware.1996 Robert Metcalfe, Peter Neumann, Shabbir Safdar, <strong>and</strong>Matthew Blaze.1997 Marc Rotenberg, Johan “Julf” Helsingius, <strong>and</strong> (specialhonorees) Hedy Lamarr <strong>and</strong> George Antheil.1998 Richard Stallman, Linus Torvalds, <strong>and</strong> BarbaraSimons.1999 Jon Postel, Drazen Panic, <strong>and</strong> Simon Davies.2000 Tim Berners-Lee, Phil Agre, <strong>and</strong> “Librarians Everywhere.”2001 Seth Finkelstein, Stephanie Perrin, <strong>and</strong> Bruce Ennis.2002 Dan Gillmour, Beth Givens, Jon Johansen, <strong>and</strong> “writers<strong>of</strong> DeCSS.”2003 Amy Goodman, Eben Moglen, <strong>and</strong> David Sobel.2004 Kim Alex<strong>and</strong>er, David Dill, <strong>and</strong> Arviel Rubin.2005 Patrick Ball, Edward Felten, <strong>and</strong> Mitch Kapor.2006 Craigslist, Gigi Sohn, <strong>and</strong> Jimmy Wales.2007 Yochai Benkler, Cory Doctorow, <strong>and</strong> Bruce Scheier.2008 Mozilla Foundation, Mitchell Baker, Michael Geist, <strong>and</strong>Mark Klein.IEEE <strong>Computer</strong> Society<strong>Computer</strong> Pioneer AwardThe IEEE <strong>Computer</strong> Society presents the <strong>Computer</strong> PioneerAward “for significant contributions to concepts <strong>and</strong> developmentsin the electronic computer field which have clearlyadvanced the state <strong>of</strong> the art in computing.” The award isgiven a minimum <strong>of</strong> 15 years after the achievement beingawarded.Charter RecipientsHoward H. AikenSamuel N. Alex<strong>and</strong>erGene M. Amdahl


548 Appendix IIIJohn W. BackusRobert S. BartonC. Gordon BellFrederick P. Brooks, Jr.Wesley A. ClarkFern<strong>and</strong>o J. CorbatoSeymour R. CrayEdsgar W. DijkstraJ. Presper EckertJay W. ForresterHerman H. GoldstineRichard W. HammingGrace M. HopperAlston S. HouseholderDavid A. HuffmanKenneth E. IversonTom KilburnDonald E. KnuthHerman Luk<strong>of</strong>fJohn W. MauchlyGordon E. MooreAllen NewellRobert N. NoyceLawrence G. RobertsGeorge R. StibitzShmuel WinogradMaurice V. WilkesKonrad ZuseAnnual Recipients(With year <strong>and</strong> achievement as cited by the <strong>Computer</strong>Society.)1981 Jeffrey Chuan Chu: “For his early work in electroniccomputer logic design”1982 Harry D. Huskey: “For the first parallel computerSWAC”1982 Arthur Burks: “For his early work in electronic computerlogic design”1984 John Vincent Atanas<strong>of</strong>f: “For the first electronic computerwith serial memory”1984 Jerrier A. Haddad: “For his part in the lead IBM 701design team”1984 Nicholas C. Metropolis: “For the first solved atomicenergy problems on ENIAC”1984 Nathaniel Rochester: “For the architecture <strong>of</strong> IBM 702electronic data processing machines”1984 Willem L. van der Poel: “For the serial computerZEBRA”1985 John G. Kemeny: “For BASIC”1985 John McCarthy: “For LISP <strong>and</strong> artificial intelligence”1985 Alan Perlis: “For computer language translation”1985 Ivan Sutherl<strong>and</strong>: “For the graphics SKETCHPAD”1985 David J. Wheeler: “For assembly language programming”1985 Heniz Zemanek: “For computer <strong>and</strong> computer languages—MAILUEFTERL”1986 Cuthbert C. Hurd: “For contributions to early computing”1986 Peter Naur: “For computer language development”1986 James H. Pomerene: “For IAS <strong>and</strong> Harvest computers”1986 Adriann van Wijngaarden: “For ALGOL 68”1987 Robert E. Everett: “For Whirlwind”1987 Reynold B. Johnson: “For RAMAC”1987 Arthur L. Samuel: “For Adaptive non-numeric processing”1987 Nicklaus E. Wirth: “For PASCAL”1988 Freidrich L. Bauer: “For computer stacks”1988 Marcian E. H<strong>of</strong>f, Jr.: “For microprocessor on a chip”1989 John Cocke: “For instruction pipelining <strong>and</strong> RISC concepts”1989 James A. Weidenhammer: “For high speed I/O mechanisms”1989 Ralph L. Palmer: “For the IBM 604 electronic calculator”1989 Mina S. Rees: “For the ONR <strong>Computer</strong> R&D developmentbeginning in 1946”1989 Marshall C. Yovits: “For the ONR <strong>Computer</strong> R&D developmentbeginning in 1946”1989 F. Joachim Weyl: “For the ONR <strong>Computer</strong> R&D developmentbeginning in 1946”1989 Gordon D. Goldstein: “For his work with the Office <strong>of</strong>Naval Research <strong>and</strong> computer R&R beginning in 1946”1990 Werner Buchholz: “For computer architecture”1990 C. A. R. Hoare: “For programming languages definitions”1991 Bob O. Evans: “For compatable computers”


Appendix III 5491991 Robert W. Floyd: “For early compilers”1991 Thomas E. Kurtz: “For BASIC”1992 Stephen W. Dunwell: “For project stretch”1992 Douglas C. Engelbart: “For human computer interaction”1993 Erich Bloch: “For high speed computing”1993 Jack S. Kilby: “For co-inventing the integrated circuit”1993 Willis H. Ware: “For the design <strong>of</strong> IAS <strong>and</strong> Johnniaccomputers”1994 Gerrit A. Blaauw: “In recognition <strong>of</strong> your contributionsto the IBM System/360 Series <strong>of</strong> computers”1994 Harlan B. Mills: “In recognition <strong>of</strong> contributions toStructured Programming”1994 Dennis M. Ritchie: “In recognition <strong>of</strong> contributions tothe development <strong>of</strong> UNIX”1994 Ken L. Thompson: “For his work with UNIX”1995 Gerald Estrin: “For significant developments on earlycomputers”1995 David Evans: “For seminal work on computer graphics”1995 Butler Lampson: “For early concepts <strong>and</strong> developments<strong>of</strong> the PC”1995 Marvin Minsky: “For conceptual development <strong>of</strong> artificialintelligence”1995 Kenneth Olsen: “For concepts <strong>and</strong> development <strong>of</strong> minicomputers”1996 Angel Angelov: “For computer science technologies inBulgaria”1996 Richard F. Clippinger: “For computing laboratory staffmember, Aberdeen Proving Ground, who converted the ENIACto a stored program”1996 Edgar Frank Codd: “For the invention <strong>of</strong> the firstabstract model for database management”1996 Norber Fristacky: “For pioneering digital devices”1996 Victor M. Glushkov: “For digital automation <strong>of</strong> computerarchitecture”1996 Jozef Gruska: “For the development <strong>of</strong> computer sciencein former Czechoslovakia with fundamental contributions to thetheory <strong>of</strong> computing <strong>and</strong> extraordinary organizational activities”1996 Jiri Horejs: “For informatics <strong>and</strong> computer science”1996 Lubomir Georgiev Iliev: “A founder <strong>and</strong> influentialleader <strong>of</strong> computing in Bulgaria; leader <strong>of</strong> the team that developedthe first Bulgarian computer; made fundamental <strong>and</strong> continuingcontributions to abstract mathematics <strong>and</strong> s<strong>of</strong>tware”1996 Robert E. Kahn: “For the co-invention <strong>of</strong> the TCP/IPprotocols <strong>and</strong> for originating the Internet program”1996 Laszlo Kalmar: “For recognition as the developer <strong>of</strong> a1956 logical machine <strong>and</strong> the design <strong>of</strong> the MIR computer inHungary”1996 Antoni Kilinski: “For pioneering work in the construction<strong>of</strong> the first commercial computers in Pol<strong>and</strong>, <strong>and</strong> for thedevelopment <strong>of</strong> university curriculum in computer science”1996 Laszlo Kozma: “For development <strong>of</strong> the 1930 relaymachines, <strong>and</strong> going on to build early computers in post-warHungary”1996 Sergey A. Lebedev: “For the first computer in the SovietUnion”1996 Alexej A. Lyuponov: “For Soviet cybernetics <strong>and</strong> programming”1996 Romuald W. Marczynski: “For pioneering work in theconstruction <strong>of</strong> the first Polish digital computers <strong>and</strong> contributionsto fundamental research in computer architecture”1996 Grigore C. Moisil: “For polyvalent logic switching circuits”1996 Ivan Pl<strong>and</strong>er: “For the introduction <strong>of</strong> computer hardwaretechnology into Slovakia <strong>and</strong> the development <strong>of</strong> the firstcontrol computer”1996 Arnols Reitsakas: “For contributions to Estonia’s computerage”1996 Antonin Svoboda: “For the pioneering work leading tothe development <strong>of</strong> computer research in Czechoslovakia <strong>and</strong>the design <strong>and</strong> construction <strong>of</strong> the SAPO <strong>and</strong> EPOS computers”1997 Homer (Barney) Oldfield: “For pioneering work in thedevelopment <strong>of</strong> banking applications through the implementation<strong>of</strong> ERMA, <strong>and</strong> the introduction <strong>of</strong> computer manufacturingto GE”1997 Francis Elizabeth (Betty) Snyder-Holberton: “For thedevelopment <strong>of</strong> the first sort-merge generator for the Univacwhich inspired the first ideas about compilation”1998 Irving John (Jack) Good: “For significant contributionsto the field <strong>of</strong> computing as a cryptologist <strong>and</strong> statistici<strong>and</strong>uring World War II at Bletchley Park, as an early worker <strong>and</strong>developer <strong>of</strong> the Colossus at Bletchley Park <strong>and</strong> on the Univer-


550 Appendix IIIsity <strong>of</strong> Manchester Mark I, the world’s first stored program computer”1999 Herbert Freeman: “For pioneering work on the firstcomputer built by the Sperry Corporation, the SPEEDAC, <strong>and</strong>for subsequent contributions to the areas <strong>of</strong> computer graphics<strong>and</strong> image processing”2000 Harold W. Lawson: “For inventing the pointer variable<strong>and</strong> introducing this concept into PL/I, thus providing for thefirst time, the capability to flexibly treat linked lists in a generalpurposehigh level language”2000 Gennady Stolyarov: “For pioneering development in‘Minsk’ series computers’ s<strong>of</strong>tware, <strong>of</strong> the information systems’s<strong>of</strong>tware <strong>and</strong> applications <strong>and</strong> for data processing <strong>and</strong> data basemanagement systems concepts dissemination <strong>and</strong> promotion”2000 Georgy Lopato: “For pioneering development in Belarus<strong>of</strong> the ‘Minsk’ series computers’ hardware, <strong>of</strong> the multicomputercomplexes <strong>and</strong> <strong>of</strong> the ‘RV’ family <strong>of</strong> mobile computers for heavyfield conditions”2001 Vernon Schatz: “For the development <strong>of</strong> ElectronicsFunds Transfer which made possible computer to computercommercial transactions via the banking system”2001 William H. Bridge: “For the marrying <strong>of</strong> computer <strong>and</strong>communications technology in the GE DATANET 30, puttingterminals on peoples’ desks to communicate with <strong>and</strong> timesharea computer, leading directly to the development <strong>of</strong> the personalcomputer, computer networking <strong>and</strong> the internet”2002 Per Brinch Hansen: “For pioneering development inoperating systems <strong>and</strong> concurrent programming, exemplified bywork on the RC4000 multiprogramming system, monitors, <strong>and</strong>Concurrent Pascal”2002 Robert W. Bemer: “For meeting the world’s needs forvariant character sets <strong>and</strong> other symbols via ASCII, ASCII-alternatesets, <strong>and</strong> escape sequences”2003 Martin Richards: “For pioneering system s<strong>of</strong>twareportability through the programming language BCPL widelyinfluential <strong>and</strong> used in academia <strong>and</strong> industry for a variety <strong>of</strong>prominent system s<strong>of</strong>tware”2004 Frances (Fran) E. Allen: “For pioneering work establishingthe theory <strong>and</strong> practice <strong>of</strong> compiler optimization”2005 [No award given]2006 Arnold M. Spielberg: ”For recognition <strong>of</strong> contributionto real-time data acquisition <strong>and</strong> recording that significantlycontributed to the definition <strong>of</strong> modern feedback <strong>and</strong> controlprocesses”2006 Mamoru Hosaka: “For recognition <strong>of</strong> pioneering activitieswithin computing in Japan”National Medal <strong>of</strong> <strong>Technology</strong><strong>and</strong> INNOVATIONGiven by the President <strong>of</strong> the United States, the NationalMedal <strong>of</strong> <strong>Technology</strong> <strong>and</strong> Innovation is “the highest honorbestowed by the President <strong>of</strong> the United States to America’sleading innovators.”<strong>Computer</strong>-Related Recipients1985AT&T Bell Laboratories: “For contribution over decades tomodern communication systems.”Frederick P. Brooks, Jr., Erich Bloch, <strong>and</strong> Bob O. Evans, InternationalBusiness Machines Corp.: “For their contributions to thedevelopment <strong>of</strong> the hardware, architecture <strong>and</strong> systems engineeringassociated with the IBM System/360, a computer system<strong>and</strong> technologies which revolutionized the data processingindustry <strong>and</strong> which helped to make the United States dominantin computer technology for many years.”Steven P. Jobs <strong>and</strong> Steven Wozniak, Apple <strong>Computer</strong>, Inc.: “Fortheir development <strong>and</strong> introduction <strong>of</strong> the personal computerwhich has sparked the birth <strong>of</strong> a new industry extending thepower <strong>of</strong> the computer to individual users.”John T. Parsons <strong>and</strong> Frank L. Stulen, John T. Parsons Company:“For their development <strong>and</strong> successful demonstration <strong>of</strong>the numerically-controlled machine tool for the production <strong>of</strong>three-dimensional shapes, which has been essential for the production<strong>of</strong> commercial airliners <strong>and</strong> which is seminal for thegrowth <strong>of</strong> the robotics, CAD-CAM, <strong>and</strong> automated manufacturingindustries.”1986Bernard Gordon, Analogic Corp.: “Father <strong>of</strong> high-speed analogto-digitalconversion which has been applied to medical, analytical,computer <strong>and</strong> communications products; founder <strong>of</strong> twocompanies with over 2,000 employees <strong>and</strong> over $100 million inannual sales <strong>and</strong> creator <strong>of</strong> a new master’s level institute locatedin Massachusetts to teach engineering leadership <strong>and</strong> projectengineering to engineers.”Reynold B. Johnson, International Business Machines Corp.:“Introduction <strong>and</strong> development <strong>of</strong> magnetic disk storage forcomputers that provided access to virtually unlimited amounts<strong>of</strong> information in fractions <strong>of</strong> a second <strong>and</strong> is the basis for timesharing systems <strong>and</strong> storage <strong>of</strong> millions <strong>of</strong> records. Over $10 billionin annual sales <strong>and</strong> over 100,000 jobs arose from this development.”William C. Norris, Control Data Corp.: “Advancement <strong>of</strong> microelectronics <strong>and</strong> computer technology <strong>and</strong> creation <strong>of</strong> one <strong>of</strong> theFortune 500—Control Data Corporation—which has over $5billion in annual sales <strong>and</strong> over 50,000 employees.”1987Robert N. Noyce, Intel Corp.: “For his inventions in the field<strong>of</strong> semiconductor integrated circuits, for his leading role in theestablishment <strong>of</strong> the microprocessor which has led to much


Appendix III 551wider use <strong>of</strong> more powerful computers, <strong>and</strong> for his leadership <strong>of</strong>research <strong>and</strong> development in these areas, all <strong>of</strong> which have hadpr<strong>of</strong>ound consequences both in the United States <strong>and</strong> throughoutthe world.”1988Robert H. Dennard, IBM T.J. Watson Research Center: “Forinvention <strong>of</strong> the basic one-transistor dynamic memory cell usedworldwide in virtually all modern computers.”David Packard, Hewlett-Packard Company: “For extraordinary<strong>and</strong> unselfish leadership in both industry <strong>and</strong> government,particularly in widely diversified technological fields whichstrengthened the competitiveness <strong>and</strong> defense capabilities <strong>of</strong> theUnited States.”1989Jay W. Forrester, Massachusetts Institute <strong>of</strong> <strong>Technology</strong> <strong>and</strong>Robert R. Everett, The MITRE Corp.: “For their creative workin developing the technologies <strong>and</strong> applying computers to realtimeapplications. Their important contributions proved vital tonational <strong>and</strong> free world defense <strong>and</strong> opened a new era <strong>of</strong> worldbusiness.”1990John V. Atanas<strong>of</strong>f, Iowa State University (Ret.): “For hisinvention <strong>of</strong> the electronic digital computer <strong>and</strong> for contributionstoward the development <strong>of</strong> a technically trained U.S. workforce.”Jack St. Clair Kilby, Jack Kilby Co.: “For his invention <strong>and</strong> contributionsto the commercialization <strong>of</strong> the integrated circuit<strong>and</strong> the silicon thermal print-head; for his contributions to thedevelopment <strong>of</strong> the first computer using integrated circuits; <strong>and</strong>for the invention <strong>of</strong> the h<strong>and</strong>-held calculator, <strong>and</strong> gate array.”John S. Mayo, AT&T Bell Laboratories: “For providing the technologicalfoundation for information-age communications, <strong>and</strong>for overseeing the conversion <strong>of</strong> the national switched telephonenetwork from analog to a digital-based technology forvirtually all long-distance calls both nationwide <strong>and</strong> betweencontinents.”Gordon E. Moore, Intel Corp.: “For his seminal leadership inbringing American industry the two major postwar innovationsin microelectronics—large-scale integrated memory <strong>and</strong> themicroprocessor—that have fueled the information revolution.”1991C. Gordon Bell, Stardent <strong>Computer</strong>s: “For his continuing intellectual<strong>and</strong> industrial achievements in the field <strong>of</strong> computerdesign; <strong>and</strong> for his leading role in establishing cost-effective,powerful computers which serve as a significant tool for engineering,science <strong>and</strong> industry.”John Cocke, International Business Machines Corp.: “For hisdevelopment <strong>and</strong> implementation <strong>of</strong> Reduced Instruction Set<strong>Computer</strong> (RISC) architecture that significantly increased thespeed <strong>and</strong> efficiency <strong>of</strong> computers, thereby enhancing U.S. technologicalcompetitiveness.”Grace Murray Hopper, U.S. Navy (Ret.)/Digital EquipmentCorp.: “For her pioneering accomplishments in the development<strong>of</strong> computer programming languages that simplified computertechnology <strong>and</strong> opened the door to a significantly largeruniverse <strong>of</strong> users.”1992William H. Gates III, Micros<strong>of</strong>t Corp.: “For his early vision <strong>of</strong>universal computing at home <strong>and</strong> in the <strong>of</strong>fice; for his technical<strong>and</strong> business management skills in creating a world-wide technologycompany; <strong>and</strong> for his contribution to the development<strong>of</strong> the personal computer industry.”1993Kenneth H. Olsen, Digital Equipment Corp.: “For his contributionsto the development <strong>and</strong> use <strong>of</strong> computer technology; <strong>and</strong>for his entrepreneurial contribution to American business.”1994[No computer-related recipients]1995Edward R. McCracken, Silicon Graphics, Inc.: “For his groundbreakingwork in the areas <strong>of</strong> affordable 3D visual computing<strong>and</strong> super computing technologies; <strong>and</strong> for his technical <strong>and</strong>leadership skills in building Silicon Graphics, Inc., into a globaladvanced technology company.”IBM Team: Praveen Chaudhari, IBM TJ Watson Research Center;Jerome J. Cuomo, North Carolina State University (formerlywith IBM); <strong>and</strong> Richard J. Gambino, State University <strong>of</strong> NewYork at Stony Brook (formerly with IBM): “For the discovery<strong>and</strong> development <strong>of</strong> a new class <strong>of</strong> materials—the amorphousmagnetic materials—that are the basis <strong>of</strong> erasable, read-write,optical storage technology, now the foundation <strong>of</strong> the worldwidemagnetic-optic disk industry.”1996James C. Morgan, Applied Materials, Inc.: “For his leadership<strong>of</strong> 20 years developing the U.S. semiconductor manufacturingequipment industry, <strong>and</strong> for his vision in building Applied Materials,Inc. into the leading equipment company in the world,a major exporter <strong>and</strong> a global technology pioneer which helpsenable Information Age technologies for the benefit <strong>of</strong> society.”1997Vinton Gray Cerf, MCI, <strong>and</strong> Robert E. Kahn, Corporationfor National Research Initiatives: “For creating <strong>and</strong> sustainingdevelopment <strong>of</strong> Internet Protocols <strong>and</strong> continuing to provideleadership in the emerging industry <strong>of</strong> internetworking.”1998Kenneth L. Thompson, Bell Laboratories, <strong>and</strong> Dennis M.Ritchie, Lucent Technologies: “For their invention <strong>of</strong> UNIX®operating system <strong>and</strong> the C programming language, whichtogether have led to enormous growth <strong>of</strong> an entire industry,


552 Appendix IIIthereby enhancing American leadership in the InformationAge.”1999Raymond Kurzweil, founder, chairman, <strong>and</strong> chief executive<strong>of</strong>ficer, Kurzweil Technologies, Inc.: “For pioneering <strong>and</strong> innovativeachievements in computer science such as voice recognition,which have overcome many barriers <strong>and</strong> enriched the lives<strong>of</strong> disabled persons <strong>and</strong> all Americans.”Robert Taylor (Ret.): “For visionary leadership in the development<strong>of</strong> modern computing technology, including computer networks,the personal computer <strong>and</strong> the graphical user interface.”2000Douglas C. Engelbart, director, Bootstrap Institute: “For creatingthe foundations <strong>of</strong> personal computing including continuous,real-time interaction based on cathode-ray tube displays<strong>and</strong> the mouse, hypertext linking, text editing, on-line journals,shared-screen teleconferencing, <strong>and</strong> remote collaborative work.More than any other person, he created the personal computingcomponent <strong>of</strong> the computer revolution.”The IBM Corporation: “For 40 years <strong>of</strong> innovations in thetechnology <strong>of</strong> hard disk drives <strong>and</strong> information storage products.IBM is widely recognized as the world’s leader in basic datastorage technologies, <strong>and</strong> holds over 2,000 U.S. patents. IBMis a top innovator <strong>of</strong> component technologies—such as flyingmagnetic heads (thin film heads, <strong>and</strong> magneto resistive heads),film disks, head accessing systems, digital signal processing <strong>and</strong>coding, as well as innovative hard disk drive systems. Some specificIBM inventions are used in every modern hard drive today:thin film inductive heads, MR <strong>and</strong> GMR heads, rotary actuators,sector servos <strong>and</strong> advanced disk designs. These advances outranforeign hard disk technology <strong>and</strong> enabled the U.S. industry tomaintain the lead it holds today.”2001Arun N. Netravali, Chief Scientist, Lucent Technologies <strong>and</strong>Past President <strong>of</strong> Bell Labs: “For his leadership in the field <strong>of</strong>communication systems; for pioneering contributions thattransformed TV from analog to digital, enabling numerous integratedcircuits, systems <strong>and</strong> services in broadcast TV, CATV,DBS, HDTV, <strong>and</strong> multimedia over the Internet; <strong>and</strong> for technicalexpertise <strong>and</strong> leadership, which have kept Bell Labs at the forefrontin communications technology.”Jerry M. Woodall, Yale University: “For his pioneering role inthe research <strong>and</strong> development <strong>of</strong> compound semiconductormaterials <strong>and</strong> devices; for the invention <strong>and</strong> development <strong>of</strong>technologically <strong>and</strong> commercially important compound semiconductorheterojunction materials, processes, <strong>and</strong> relateddevices, such as light-emitting diodes, lasers, ultra-fast transistors,<strong>and</strong> solar cells.”new industries in wide b<strong>and</strong>gap semiconductors <strong>and</strong> enablingother new industries in efficient blue, green, <strong>and</strong> white light,full-color displays, high-power solid-state microwave amplifiers,more efficient/compact power supplies, higher efficiency powerdistribution/transmission systems, <strong>and</strong> gemstones.”Carver A. Mead, California Institute <strong>of</strong> <strong>Technology</strong>: “For hispioneering contributions to microelectronics that include spearheadingthe development <strong>of</strong> tools <strong>and</strong> techniques for modernintegrated-circuit design, laying the foundation for fabless semiconductorcompanies, catalyzing the electronic-design automationfield, training generations <strong>of</strong> engineers that have made theUnited States the world leader in microelectronics technology,<strong>and</strong> founding more than twenty companies.”Team <strong>of</strong> Nick Holonyak, Jr. (University <strong>of</strong> Illinois at Urbana-Champaign), M. George Craford (Lumileds Lighting Corp.)<strong>and</strong> Russell Dean Dupuis (Georgia Institute <strong>of</strong> <strong>Technology</strong>):“For contributions to the development <strong>and</strong> commercialization<strong>of</strong> light-emitting diode (LED) technology, with applications todigital displays, consumer electronics, automotive lighting, trafficsignals, <strong>and</strong> general illumination.”2003Robert M. Metcalfe: “For leadership in the invention, st<strong>and</strong>ardization,<strong>and</strong> commercialization <strong>of</strong> the Ethernet.”Watts S. Humphrey: “For his vision <strong>of</strong> a discipline for s<strong>of</strong>twareengineering, for his work toward meeting that vision, <strong>and</strong> forthe resultant impact on the U.S. Government, industry, <strong>and</strong> academiccommunities.”2004Ralph H. Baer: “For his groundbreaking <strong>and</strong> pioneering creation,development <strong>and</strong> commercialization <strong>of</strong> interactive videogames, which spawned related uses, applications, <strong>and</strong> megaindustriesin both the entertainment <strong>and</strong> education realms.”2005Semiconductor Research Corporation: “For building the world’slargest <strong>and</strong> most successful university research force to supportthe rapid growth <strong>and</strong> advance <strong>of</strong> the semiconductor industry;for proving the concept <strong>of</strong> collaborative research as the firsthigh-tech research consortium; <strong>and</strong> for creating the concept <strong>and</strong>methodology that evolved into the International <strong>Technology</strong>Roadmap for Semiconductors.”Xerox Corporation: “For over 50 years <strong>of</strong> innovation in marking,materials, electronics communications, <strong>and</strong> s<strong>of</strong>tware thatcreated the modern reprographics, digital printing, <strong>and</strong> printon-dem<strong>and</strong>industries.”2006–2007[No computer-related recipients]2002Calvin H. Carter, Cree, Inc.: “For his exceptional contributionsto the development <strong>of</strong> silicon carbide wafers, leading to


Appendix IV<strong>Computer</strong>-Related OrganizationsThe following is a list <strong>of</strong> some important computer-relatedorganizations, including contact information.General <strong>Computer</strong> <strong>Science</strong>OrganizationsAmerican Society for Information <strong>Science</strong> (http:www.asis.org/)1320 Fenwick Lane, Suite 510, Silver Spring, MD 20910.Telephone: (301) 495-0900 e-mail: asis@asis.orgAssociation for Computing Machinery (http://www.acm.org/)2 Penn Plaza, Suite 701, New York, NY 10121-0701. Telephone:(800) 342-6626 e-mail: acmhelp@acm.orgComputing Research Association (http://www.cra.org) 1100Seventeenth Street, NW, Suite 507, Washington, DC 20036-4632. Telephone: (202) 234-2111 e-mail: webmaster@cra.orgIEEE <strong>Computer</strong> Society (http:www.computer.org) 1730 MassachusettsAve. NW, Washington, DC 20036-1992. Telephone:(202) 371-0101 e-mail: membership@computer.orgS<strong>of</strong>tware Engineering Institute (http://sei.cmu.edu) 4500 FifthAve., Pittsburgh, PA 15213-2612. Telephone: (888) 201-4479 e-mail: customer-relations@sei.cmu.eduApplication <strong>and</strong> Industry-SpecificGroupsAeA (formerly American Electronics Association) (http://www.aeanet.org/) 601 Pennsylvania Avenue NW, Suite 600,North Building, Washington, DC 20004. Telephone: (202)682-9110 e-mail: Web formsAmerican Association for Artificial Intelligence (http://www.aaai.org/) 445 Burgess Drive, Suite 100, Menlo Park, CA94025-3442. Telephone: 650-328-3123 e-mail: info7contact@aaai.orgAmerican Design Drafting Association (http://www.adda.org)105 East Main St., Newham, TN 38059. Telephone: (731)627-0802 e-mail: Web formAmerican Society for Photogrammetry <strong>and</strong> Remote Sensing(http://www.asprs.org) 5410 Grosvenor Lane, Suite 210,Bethesda, MD 20814-2160. Telephone: (301) 493-0290 e-mail: asprs@.orgAmerican Statistical Association (http://www.amstat.org) 732North Washington St., Alex<strong>and</strong>ria, VA 22314-1943. Telephone:(703) 684-1221 e-mail: asainfo@amstat.orgAssociation for Library <strong>and</strong> Information <strong>Science</strong> Education(http:www.alise.org) 68 E. Wacker Place, Suite 1900, Chicago,IL 60601-7246. Telephone: (312) 795-0996 e-mail:contact@alise.orgAssociation for Multimedia Communication (http://www.amcomm.org) P.O. Box 10645, Chicago, IL 60610. Telephone:(773) 276-9320 e-mail: Web formAssociation <strong>of</strong> American Geographers (http://www.aag.org)1710 16th St. NW, Washington, DC 20009-3198. Telephone:(202) 234-1450 e-mail: gaia@aag.orgAssociation <strong>of</strong> Information <strong>Technology</strong> Pr<strong>of</strong>essionals (http://www.aitp.org) 401 North Michigan Avenue, Suite 2400, Chicago,IL 60611-4267. Telephone: (312) 673-4793 e-mail: Web formCAM-I (<strong>Computer</strong>-Aided Manufacturing International) (http://cami.affiniscape.com) 6836 Bee Cave, Suite 256, Austin,TX 78746. Telephone: (512) 617-6428 e-mail: Web formComputing <strong>Technology</strong> Industry Association (CompTIA)(http://www.comptia.org) 1815 S. Meyers Road, Suite 300Oakbrook Terrace, IL 60181-5228. Telephone: (630) 678-8300 e-mail: Web formDigital Library Federation (http://www.digilib.org) 1755 MassachusettsAve. NW, Suite 500, Washington, DC 20036-2124.Telephone: (202) 939-4761 e-mail: dlfinfo@clir.orgElectronics Industries Alliance (http://www.eia.org/) 2500 WilsonBlvd., Arlington, VA 22201. Telephone: (703) 907-7500 e-mail: Web formInformation <strong>Technology</strong> Association <strong>of</strong> America (http://www.itaa.org) 1401 Wilson Blvd., Suite 1100, Arlington, VA22209. Telephone: (703) 522-5005 e-mail: Web directoryInternational Game Developer’s Association (http://www.igda.org) 19 Mantua Road, Mt. Royal, NJ 08061. Telephone:(856) 423-2990 e-mail: contact@igda.orgInternational Society for <strong>Technology</strong> in Education (http://www.iste.org) 1710 Rhode Isl<strong>and</strong> Ave. NW, Suite 900, Washington,DC 20036. Telephone: (800) 336-5191 e-mail: iste@orgInternational <strong>Technology</strong> Law Association (http://www.itechlaw.org) 401 Edgewater Place, Suite 600, Wakefield, MA 01800.Telephone: (781) 876-8877 e-mail: <strong>of</strong>fice@itechlaw.org553


554 Appendix IVInternational Webmasters Association (http://www.irwa.org/)119 E. Union St., Suite F, Pasadena, CA 91103. Telephone:(626) 449-3709 e-mail: via Web linksLibraries for the Future (http://www.lff.org) 27 Union SquareWest, Suite 204, New York, NY 10003. Telephone: (646)336-6236 e-mail: info@lff.orgLibrary <strong>and</strong> Information <strong>Technology</strong> Association (http://www.lita.org) American Library Association, 50 East Huron St.,Chicago, IL 60611-2795. Telephone: (800) 545-2433 e-mail: library@ala.orgOffice Automation Society International (http://www.pstcc.cc.tn.us/ost/oasi.html) 5170 Meadow Wood Blvd., Lyndhurst,OH 44124. Telephone: (216) 461-4803 e-mail: jbdyke@aol.comRobotics Industries Association (http://www.robotics.org) 900Victors Way, Suite 140, P.O. Box 3724, Ann Arbor, MI48106. Telephone: (734) 994-6088 e-mail: webmaster@robotics.orgSIGGRAPH [Graphics special interest group <strong>of</strong> the Associationfor Computing Machinery] (http://www.siggraph.org). e-mail: Web linksSociety for Information Management (http://www.simnet.org/)401 N. Michigan Ave., Chicago, IL 60611-4267. Telephone:312 644-6610 e-mail: info@simnet.orgSociety for Modeling <strong>and</strong> Simulation International (http://www.scs.org) P.O. Box 17900 San Diego, CA 92177-7900. Telephone:(858) 277-3888 e-mail: info@scs.orgSociety for Technical Communication (http://www.stc.org/) 901N. Stuart St., Suite 904, Arlington, VA 22203-1854. Telephone:(703) 522-4114 e-mail: stc@stc.orgS<strong>of</strong>tware & Information Industry Association (http://www.siia.org/) 1090 Vermont Ave. NW, Sixth Floor, Washington, DC20005-4095. Telephone: (202) 289-7442 e-mail: Web formTelecommunications Industry Association (http://www.tiaonline.org) 2500 Wilson Blvd., Suite 300, Arlington, VA 22201-3834. Telephone: (703) 907-7700 e-mail: tia@tiaonline.orgGovernment, St<strong>and</strong>ards <strong>and</strong>Security OrganizationsAmerican National St<strong>and</strong>ards Institute (ANSI) (http://ansi.org)1819 L Street NW, 6th Floor, Washington, DC 20036. Telephone:(202) 293-8020 e-mail: info@ansi.org<strong>Computer</strong> Emergency Response Team (CERT) (http://www.cert.org) CERT Coordination Center, S<strong>of</strong>tware EngineeringInstitute, Carnegie Mellon University, Pittsburgh, PA15213-3890. Telephone: (412) 268-7090 e-mail: cert@cert.org<strong>Computer</strong> Security Institute (http://www.gocsi.com/) 600 HarrisonSt., San Francisco, CA 94107. Telephone: (415) 947-6320 e-mail: csi@cmp.comDefense Advanced Research Projects Agency (DARPA) (http://www.darpa.gov). 3701 North Fairfax Drive, Arlington,VA 22203-1714. Telephone: (571) 218-4219 e-mail: WebformsInformation Systems Security Association (http://www.issa.org)9200 SW Barbour Blvd. #119-333 Portl<strong>and</strong>, OR 97219.Telephone: (866) 349-5818 e-mail: Web formsInstitute for the Certification <strong>of</strong> Computing Pr<strong>of</strong>essionals(http://www.iccp.org) 2350 East Devon Ave., Suite 115, DesPlaines, IL 60018-4610. Telephone: (847) 299-4227 e-mail:<strong>of</strong>fice@iccp.orgInternational Organization for St<strong>and</strong>ardization (ISO) (http://www.iso.org) 1, ch de la Voie-Creuse, Case postale 56, CH-1211 Geneva 20, Switzerl<strong>and</strong>. Telephone: +41 22 749 01 11e-mail: Web formsInternet Society (http://www.isoc.org/) 1775 Wiehle Ave., Suite102, Reston, VA 20190-5108. Telephone: (703) 326-9880e-mail: info@isoc.orgNational Center for Supercomputing Applications (NCSA)(http://www.ncsa.uiuc.edu) University <strong>of</strong> Illinois at Urbana-Champaign, 1205 W. Clark St., Room 1008, Urbana, IL61801. Telephone: (217) 244-0710 e-mail: tlbarker@ncsa.uiue.eduNational Telecommunications <strong>and</strong> Information Administration(http://www.ntia.doc.gov/) U.S. Dept. <strong>of</strong> Commerce, 1401Constitution Ave. NW, Washington, DC 20230. Telephone:(202) 482-1840 e-mail: Web directoryQuality Assurance Institute Worldwide (http://www.qaiworldwide.com.qai.html)2101 Park Center Drive, Suite 200,Orl<strong>and</strong>o, FL 32835-7614. Telephone: (407) 363-1111 e-mail: Web directoryUrban <strong>and</strong> Regional Information Systems Association (http://www.urisa.org) 1460 Renaissance Drive, Suite 305, ParkRidge, IL 60068. Telephone: (847) 824-6300 e-mail: WebdirectoryWorld Wide Web Consortium (www.w3c.org) MassachusettsInstitute <strong>of</strong> <strong>Technology</strong>, 32 Vassar St., Room 32-G515,Cambridge, MA 02139. Telephone: (617) 253-2613 e-mail:Web linksAdvocacy GroupsAssociation for Women in Computing (http://www.awc-hq.org)41 Sutter St., Suite 1006, San Francisco, CA 94104. Telephone:(415) 905-4663 e-mail: info@awc-hq.orgBlack Data Processing Associates (http://www.bdpa.org) 6301Ivy Lane, Suite 700, Greenbelt, MD 20770. Telephone:(800) 727-BDPA e-mail: Web formsCenter for Democracy <strong>and</strong> <strong>Technology</strong> (http://www.cdt.org)1634 Eye St., NW, #100, Washington, DC 20006. Telephone:(202) 637-9800 e-mail: Web form<strong>Computer</strong> Pr<strong>of</strong>essionals for Social Responsibility (http://www.cpsr.org) 1370 Mission St., 4th Floor, San Francisco, CA94103-2654. Telephone: (415) 839-9355 e-mail: cpsr@cpsr.orgElectronic Frontier Foundation (http://www.eff.org) 454 ShotwellSt., San Francisco, CA 94110-1914. Telephone: (415)436-9333 e-mail: information@eff.orgElectronic Privacy Information Center (http://www.epic.org)1718 Connecticut Ave. NW, Suite 200, Washington, DC20009. Telephone: (202) 483-1140 e-mail: Web formWomen in <strong>Technology</strong> (http://www.womenintechnology.com)717 Princess St., Alex<strong>and</strong>ria, VA 22314. Telephone: (703)683-4033 e-mail: staff@womenintechnology.org


I n d e xBoldface page numbers denotemain entries; italic page numbersindicate illustrations.AA-0 231AACS (Advanced Access ContentSystem) 149Aaron (program) 25abacus 70, 226ABC (Atanas<strong>of</strong>f-Berry computer)30, 297Abelson, Harold 284About.com 350, 379AboutUs 122abstract data type. See dataabstractionabstract object 68Abstract Windowing Toolkit(AWT) 254accelerated graphics port (AGP)63, 214, 243Access (Micros<strong>of</strong>t) 131, 132Access Certificates for ElectronicServices (ACES) 79accessibility (data) 130–131accessibility (universal design). Seedisabled persons <strong>and</strong> computingaccountability, <strong>and</strong> privacy 384accounting applications 64accumulator 304ACE (Automatic ComputingEngine) 481A+ Certificate 80ACES (Access Certificates forElectronic Services) 79ACH (automated clearing house) 39ACLU v. Reno 125ACM (Association for ComputingMachinery) 7, 79, 267, 296,297, 404ACP (Associate ComputingPr<strong>of</strong>essional) certificate 80Acrobat 257, 374, 504. See also PDFactive matrix display 199active RFID 405Active Server Pages (ASP) 1, 249,422, 491, 508. See also ASP.NETActiveX 89, 422, 508Ada 2in computer history 229enumerations in 184government funding for 404Pascal <strong>and</strong> 363sets in 185Simula <strong>and</strong> 431ADA (American with DisabilitiesAct) 152Ad-Aware 453address bus 51addressing 3, 3. See alsoindirection; pointersAnalytical Engine <strong>and</strong>35–36in ARPANET 247binding <strong>and</strong> 45bits <strong>and</strong> 51hexadecimals for 225indirect 375–377on Internet 155–158in list processing 282in machine code 28in memory 301in minicomputers 227in MS-DOS 321–322in multiprocessing 323with pointers 375–376variables in 490–491in virtual memory 302address register 304Adelman, Leonard 146, 181ad hoc computer grid 217administrative applications 64administrator status 136Adobe Systems 3–4. See alsoAcrobat; Illustrator; PageMaker;PDF; Photoshop; PostScript;PremiereADO.NET 306adoption scams 345AdSense 211, 344ADSL (asymmetric DSL) 162adult education 171Advanced Access Content System(AACS) 149Advanced Computing SystemsLaboratory (IBM) 10Advanced Graphics Port (AGP) 86Advanced Micro Devices (AMD)4–5, 86, 140, 218, 245Advanced Network <strong>and</strong> Services272Advanced <strong>Technology</strong> Attachment(ATA) 223advertising 164, 251. See alsoonline advertisingADVISE 119, 136adware 111, 344–345, 384,453–454AdWord 211Aegis 311Aero 307affective computing 313affiliate marketing 344agent-oriented programming 442agent s<strong>of</strong>tware. See s<strong>of</strong>tware agentsAge <strong>of</strong> Intelligent Machines, The(Kurzweil) 269Age <strong>of</strong> Spiritual Machines, The(Kurzweil) 269AGP (accelerated graphics port)63, 214, 243AGP (Advanced Graphics Port) 86agriculture 143Aho, Alfred V. 33AI. See artificial intelligenceAIBO robot dog 411AIFF (Audio Interchange FileFormat) 448Aiken, Howard 5, 231air traffic control system 399–400Ajax (asynchronous JavaScript <strong>and</strong>XML) 5–6, 6, 110AL. See artificial lifealarm system, in smart buildings434Alcatel 42“Alchemy <strong>and</strong> ArtificialIntelligence” (Dreyfus) 162Aldus 4Aldus Pagemaker. See PagemakerAlex<strong>and</strong>er, Christopher 142Algol 6–7Backus-Naur Form <strong>and</strong> 38McCarthy’s work on 297Pascal <strong>and</strong> 362PL/I <strong>and</strong> 373recursion in 401Simula <strong>and</strong> 431Wirth’s work with 514algorithms 7–8in banking security 39in computer animation 16in computer science 109in computing 295for data compression 134error h<strong>and</strong>ling <strong>and</strong> 186genetic 8, 28, 75, 207–208Google PageRank 57, 210,211, 423, 480in graphics 106in graphics cards 214in implementation 394for memory management302in music 325–326in Pascal 362patentability <strong>of</strong> 245in pattern recognition 363for r<strong>and</strong>om numbergeneration 399for scheduling <strong>and</strong>prioritization 417–418for searching 446for search relevancy 423. Seealso PageRank algorithmin s<strong>of</strong>tware engineering 444for sorting 446–448for speech recognition 452Alice (chatterbot) 84, 515Alienware 140Allen (robot) 59Allen, Frances E. 515Allen, George 377Allen, Paul 206alpha version 394Altair 206, 228, 304, 366, 519AltaVista 422Alto 320, 517ALU (arithmetic logic unit) 23,119, 120, 305Amazin’ S<strong>of</strong>tware 174Amazon.com 8–9, 44–45CRM used by 123data mining by 136entrepreneurship <strong>and</strong> 184in mashups 294online research with 349“Search inside the Book”on 167s<strong>of</strong>tware sales <strong>of</strong> 294World Wide Web <strong>and</strong> 518Amazon Unbox 327ambient intelligence 314AMD (Advanced Micro Devices)4–5, 86, 140, 218, 245AMD64 4Amdahl, Gene Myron 10–11American with Disabilities Act(ADA) 152America Online (AOL) 11, 11–12chat on 83instant messaging on 477as ISP 252MapQuest under 292Netscape acquired by 16as online information service350–351Amicus Attorney 274Amnesty International 76analog 12, 12–13, 13, 147, 213, 371analog computer 13–14, 14,226, 510. See also differentialanalyzer555


556 IndexAnalytical Engine 35–36, 36, 226,301, 392anchor 234Anderson, Harlan 41AND operator 51, 54Andreessen, Marc 14–15, 15, 184,503, 518Android 437Angle, Colin 59, 60, 253animal behavior, cellular automata<strong>and</strong> 75animated GIF 214, 507animation, computer 16–17, 104,194. See also computer graphicsanonymity <strong>and</strong> the Internet 17censorship <strong>and</strong> 76in chat 83cyberbullying <strong>and</strong> 126cyberterrorism <strong>and</strong> 118with digital cash 147on file-sharing networks 193fraud <strong>and</strong> 345identity <strong>and</strong> 237reputation <strong>and</strong> 480ANSI BASIC 40ANSI characters 81ANSI COBOL 90anthropometry 47Antikythera Mechanism 13, 405Anti-Phishing Phil 370Anti-Phishing Working Group 370antitrust 107, 206–207, 274, 306antivirus s<strong>of</strong>tware 100, 111, 417.See also securityANTLR 361AOL. See America OnlineApache 81, 306, 352, 508API. See application programinterfaceAPL (a programming language) 18,204, 490, 491Apollo spacecraft 449Apple I 18, 258, 519Apple IIin education 99, 169emulator for 179hard disk <strong>of</strong> 222IBM PC <strong>and</strong> 366market entry <strong>of</strong> 106Pascal on 362success <strong>of</strong> 18, 258VisiCalc on 452word processing on 516Wozniak’s work on 519Apple Corporation 18–19. See alsoiPhone; iPod; Macintoshin computing history 228DRM <strong>and</strong> 150in FireWire development 197IBM PC <strong>and</strong> 236Jobs at 257–258Kay at 264Omidyar at 343Wozniak at 519Apple DOS 353Apple LaserWriter 379Apple Lisa 18Apple Logo (Abelson) 284Apple Newton 220–221, 364AppleScript 19applet 19–20. See also JavaApple TV 19appliance computing 107, 177, 434application layer 334application program interface (API)20, 20–21C in 66for content managementsystems 116graphics in 105in mashups 294for operating systems 354virtual 494Application Service Provider (ASP)broadb<strong>and</strong> <strong>and</strong> 107in computer industry trends108in computing history 229groupware <strong>and</strong> 217Micros<strong>of</strong>t Windows <strong>and</strong> 309<strong>of</strong>fice suites through 107Oracle on Dem<strong>and</strong> 356PC market <strong>and</strong> 367for remote backup services37SAP as 415s<strong>of</strong>tware installation <strong>and</strong> 244in s<strong>of</strong>tware market 294for SOHO market 230word processor from 517application service provider (ASP)6, 21–22application s<strong>of</strong>tware 22auditing <strong>of</strong> 31backup <strong>of</strong> 37benchmarks for 43bugs in. See bugs <strong>and</strong>debuggingcommenting in 158compatibility <strong>of</strong> 94copyright for 245CORBA for 118custom 293device drivers <strong>and</strong> 144document model <strong>and</strong> 160for early computers 427for education 170ergonomics <strong>of</strong> 185error h<strong>and</strong>ling in 186file formats in 135files in 192firewalls <strong>and</strong> 197fonts in 200free access to 21freeware 427–428help systems in 225in identity theft prevention238installation <strong>of</strong> 244internationalization <strong>of</strong>246–247Internet-related 249in law enforcement 273legal 273–274licensing violations 445for Linux 279, 280literacy in 109localization <strong>of</strong> 246–247for Macintosh 287macros in 289for management informationsystems 292marketing <strong>of</strong> 107–108,293–294mathematics 145, 295–296,338, 453, 458. See alsospreadsheetmessage passing in 303multiprocessing <strong>and</strong> 324for music 326with OS X 357for PDAs 364plug-in versions <strong>of</strong> 374–375portability <strong>of</strong> 95presentation 32, 64, 380,380–381, 492. See alsoMicros<strong>of</strong>t PowerPointproject management 342,389–390, 418, 444quality assurance in. Seequality assurance,s<strong>of</strong>twareregistration <strong>of</strong> 244renting 21reverse engineering 404–405for RSS 412–413by SAP 415scheduling <strong>and</strong> prioritization<strong>of</strong> 417–418in service-orientedarchitecture 426shareware 427–428for supply chain management462threading in 324as trade secret 245–246types <strong>of</strong> 22updates for 244user documentation for 159,471validation <strong>of</strong> 445Web services for 508–509application suite 23. See alsoMicros<strong>of</strong>t Officein computer industry 107document model <strong>and</strong> 160from Google 211market for 206marketing <strong>of</strong> 293in <strong>of</strong>fice automation 342spreadsheet in 453word processor in 517APT (Automatically ProgrammedTool) 98Aqua 357arcade games 103–104archive attribute 191archive systems. See backup <strong>and</strong>archive systemsArchon (game) 174arithmetic coding 134arithmetic expressions 354arithmetic logic unit (ALU) 23,119, 120, 305Arnie Street 326ARPANETbulletin board systems<strong>and</strong> 61Cerf <strong>and</strong> 78in computer history 228cyberspace <strong>and</strong> 125distance education on 153e-mail <strong>and</strong> 177funding for 212hypertext in 182Internet <strong>and</strong> 247network for 266Roberts’s work on 145Sutherl<strong>and</strong>’s work on 463array 23–25, 24. See also hashingin C 65in computer science 109data in 128as data type 138data types in 137in data warehouse 139in FORTRAN 202in hash sort 448in heapsort 447list compared to 137–138,282logical errors in 61art <strong>and</strong> the computer 25, 25–26artificial intelligence (AI) 26–28academic credentials for 79in automatic programming33Brooks’s work in 59in chatterbots 83–84cognitive science <strong>and</strong> 92–93computer science in 110computer vision in 112creativity in 25cybernetics in 511dangers <strong>of</strong> 261–262data models in 351Dreyfus’s work in 161–162in education 99epistemology <strong>and</strong> 369in expert systems 187, 188Feigenbaum’s work in 190in games 103government funding <strong>of</strong> 212for image interpretation 239for information retrieval 241Joy on 261–262knowledge representation in266–267Kurzweil’s work in 268Licklider <strong>and</strong> 277LISP used in 204, 280–281,297McCarthy’s work in 297Minsky’s work in 313in natural languageprocessing 330ontologies in 351Papert’s work in 359pattern recognition in 363philosophy <strong>and</strong> 369programming pr<strong>of</strong>ession <strong>and</strong>386–387Prolog used in 390research institutions in 403risk <strong>and</strong> 409in robotics 411in science fiction 418, 419in search engines 423in semantic Web 424Shannon’s work in 427simulation <strong>and</strong> 432singularity from 269Smalltalk for 434s<strong>of</strong>tware agents in 289, 442for s<strong>of</strong>tware testing 395in technological singularity432–433Turing in 481Weizenbaum in 509–510artificial life (AL) 28artificial intelligence in 27cellular automata in 75finite state machines <strong>and</strong> 196genetic algorithms in 208robotic 411simulation <strong>and</strong> 432technological singularity<strong>and</strong> 433artificial limbs 335Art <strong>of</strong> <strong>Computer</strong> Programming, The(Knuth) 267ASCII characters 81, 81–82, 236,265Asheron’s Call 104Asia 108Asimov, Isaac 418, 433Ask Jeeves 241ASP. See application serviceproviderASP (active server pages) 1, 249,422, 491, 508. See also ASP.NETA-Space 119ASP .NET 1, 306assembler 5, 28–29, 29, 95, 288,388assertion 188, 266assistive devices 268, 425Associate Computing Pr<strong>of</strong>essional(ACP) certificate 80Association for ComputingMachinery (ACM) 7, 79, 267,296, 297, 404associative arrays 24“As We May Think” (Bush) 182


Index 557Asymetrix Toolbook 32asymmetric multiprocessing 323asynchronous JavaScript <strong>and</strong> XML(Ajax) 5–6, 6, 110asynchronous processes 154ATA (Advanced <strong>Technology</strong>Attachment) 223Atanas<strong>of</strong>f, John Vincent 30, 226,297Atanas<strong>of</strong>f-Berry computer (ABC)30, 297Atari 104, 179, 205, 258, 264Atkinson, Bill 322ATM. See automatic teller machinesAtom 413AT&T 473, 477–478, 486. See alsoBell Laboratoriesattachments 111, 134, 177, 193attenuation 191Attila (robot) 56AT (Advanced <strong>Technology</strong>)machine 62attributes 191, 201, 232auctions, online 31, 100, 120, 343.See also eBayAuctionWeb 165, 343Audio Interchange File Format(AIFF) 448auditing in data processing 31, 130AU format 448Augmentation Research Center182augmented finite state machines 59“Augmenting Human Intellect:A Conceptual Framework”(Engelbart) 182authentication 31–32, 39, 146, 181authoring systems 32automata 196, 410. See also cellularautomata“Automata Studies” (Shannon <strong>and</strong>McCarthy) 427automated cars 71–72automated clearing house (ACH)39Automatically Programmed Tool(APT) 98Automatic Computing Engine(ACE) 481automatic programming 33automatic tabulating machine 229,230, 294, 341, 392automatic teller machines (ATM)authentication at 32in banking 39biometrics used with 48–49real-time processing in 400as terminal 476touchscreens in 478transaction processing in478–479automotive computers 71, 71–72,177, 293avatars 237–238, 348awk 33–34, 83, 365, 485–486AWT (Abstract WindowingToolkit) 254axioms, in Prolog 390BBabbage, Charles 35–36, 36analog computer <strong>of</strong> 226mechanical computer <strong>of</strong> 294memory <strong>and</strong> 301printer design by 381punched cards <strong>and</strong> 392on statistics 458Babel Fish 271back door, in Clipper Chip 146,181background process. See demonbackup <strong>and</strong> archive systems 36–37in auditing 31in content managementsystems 116copy protection <strong>and</strong> 117, 150in database administration130–131in disaster planning <strong>and</strong>recovery 152as fair use 246fault tolerance with 189floppy disks <strong>and</strong> 200in libraries 276outsourcing <strong>of</strong> 108tape for 467Backus, John W. 38, 202, 404Backus-Naur form (BNF) 38, 38,110, 278backward chaining 188Baker, Nicholas 276Ballistic Research Laboratory 167ballots 175b<strong>and</strong>width 38, 298, 335. See alsobroadb<strong>and</strong>Bankers Trust 44banking <strong>and</strong> computers 39biometrics used in 48–49identity theft <strong>and</strong> 238investing 348personal s<strong>of</strong>tware for 195phishing <strong>and</strong> 370smart card in 435terrorism against 127Bank <strong>of</strong> America 370, 509banner ads 344Bardeen, John 42, 85, 404Bard’s Tale, The (game) 174Barlow, John Perry 123, 124Barnes<strong>and</strong>Noble.com 349Bartik, Jean 515BASH (Bourne Again Shell) 429BASIC 39–40classes <strong>and</strong> 88games in 103Gates <strong>and</strong> 305graphics in 105, 105as interpreter 252loop in 285–286Micros<strong>of</strong>t <strong>and</strong> 305parsing 360in personal computers 228procedures in 384–385strings in 82basic input/output system (BIOS)49–50, 54, 236, 319, 405Bateson, Gregory 124battle management 311baud 298Baudot character set 265Bayes, Thomas 40Bayesian analysis 40–41, 270BBN (Bolt Beranek <strong>and</strong> Newman)247, 277, 284, 404BBS. See bulletin board systemsbeams 493–494Beesley, Angela 500behavioral biometrics 48Being Digital (Negroponte) 331Bell, C. Gordon (Bennet) 41–42Bell Laboratories 42art research at 25C++ at 67charged-couple device at 371government funding <strong>of</strong> 212research <strong>of</strong> 404Ritchie at 409Shannon at 427Stroustrup at 459telecommunications <strong>and</strong> 473UNIX <strong>and</strong> 486Bell’s Law <strong>of</strong> <strong>Computer</strong> Classes 41benchmark 43Bendix 227Benford, Gregory 28Bense, Max 25Beowulf clusters 217, 462Berkeley, Edmund 463Berkeley Open Infrastructure forNetwork Computing (BOINC)117Berkeley S<strong>of</strong>tware Distribution(BSD) 261, 486Berners-Lee, Tim 43–44in computer history 229Dertouzos <strong>and</strong> 141as entrepreneur 184HTML invented by 232in Internet growth 247semantic Web <strong>and</strong> 424on user-created content 487in World Wide Webdevelopment 518Bernstein, Daniel 125, 181, 246Berry, Clifford E. 30Bertillon, Alphonse 47best fit algorithm 302beta testing 395Better Business Bureau 345Bezos, Jeffrey P. 8, 44, 44–45, 184Bigelow, Julian 510Bill <strong>and</strong> Melinda Gates Foundation207Billings, John Shaw 229bill payment, online 39Billpoint 146–147Bina, Eric 15BINAC 167, 296, 381binary data 128, 225binary search 448binary tree 479binding 45–46bins 223biodiversity, measuring 46bioinformatics 46–47, 110, 136, 179biology <strong>and</strong> computing 75biometrics 27, 47–49, 48for authentication 32employment in 179in flash drives 198in law enforcement 273military use <strong>of</strong> 310pattern recognition in 363with smart cards 436BIOS (Basic Input-Output System)49–50, 54, 236, 319, 405biotechnology 262bird flight 75BISON 361bitmapped fonts 201bitmapped image 50, 50, 81, 214bits 50–51, 51, 52, 204, 298BitTorrent 193, 413bitwise operations 51–52, 54black, in CYMK 93BlackBerry 220, 364, 437black box testing 395blacklists 370blindness 151block-structured languages 491Blogger.com 52, 211Bloglines 52blogs <strong>and</strong> blogging 52–53advertising in 344censorship <strong>of</strong> 76in cyberbullying 126on eBay 166freedom <strong>of</strong> speech for 125Google in 211hypertext in 234in Internet growth 248as journalism 259netiquette in 332in <strong>of</strong>fice automation 342political activism <strong>and</strong> 377RSS for 412user-created content <strong>of</strong> 487World Wide Web <strong>and</strong> 518blue, in RGB 93Blue Gene 462Blue Origin 45Bluetooth 53, 273, 299, 487, 513Blu-ray 75, 205, 446BMP (Windows bitmap) 214BNF (Backus-Naur form) 38, 38,110, 278board games 103body language, in robots 56–57boids 28BOINC (Berkeley OpenInfrastructure for NetworkComputing) 117Bolt Beranek <strong>and</strong> Newman (BBN)247, 277, 284, 404Bomis 500Boneh, Dan 317bookmarks 234, 374books, technical 471bookstore, online. See Amazon.comBoole, George 40, 53–54Boolean bitwise operators 51Boolean data type 138Boolean operators 53–54in branching statements 55Differential Analyzer <strong>and</strong>426with flags 197for information retrieval 240in searching 422–423in switched computers 295Boot Camp 19, 288booting 353boot sequence 54–55Bootstrap Institute 182Borl<strong>and</strong> 20Borl<strong>and</strong> Sidekick 368Bosack, Leo 87botnet 100, 111, 451bots. See s<strong>of</strong>tware agentsbound port 303bounds, <strong>of</strong> arrays 24Bourne, Steven R. 429Bourne Again Shell (BASH) 429Bourne Shell 429, 485Boyer, Amy 126bragging rights 100Braille 151brain implants 336BrainKeeper 511Brainstorms Community 407branching statements 55Boolean operators in 54in C 65in COBOL 91in error h<strong>and</strong>ling 187in flowcharts 200functional languages <strong>and</strong> 204in PL/I 373in procedural languages 388in structured programming460Br<strong>and</strong>, Stewart 407Brattain, Walter 42, 85, 404breakpoint 61Breazeal, Cynthia 27, 56, 56–57, 60Bricklin, Daniel 366, 452Brief Code 297Brin, David 384Brin, Sergey 57, 210, 358broadb<strong>and</strong> 57–59. See also cablemodem; DSL; satellite Internetservicewith AOL 12cable modems for 69


558 Indexdata communications over133in digital divide 149for distance education153–154fiber optic cable for 191firewalls <strong>and</strong> 196, 197in Internet growth 248ISPs for 252modems <strong>and</strong> 316net neutrality <strong>and</strong> 332<strong>of</strong>fice applications over 107packet-sniffing <strong>and</strong> 100streaming <strong>and</strong> 459telecommunications <strong>and</strong> 473for videoconferencing 492video distribution <strong>and</strong> 327for VoIP 497Web page design <strong>and</strong> 507broadcast journalism 259–260Brooks, Frederick 386Brooks, Rodney 27, 56, 59–60,253, 289, 475browser. See Web browserbrowser history, Ajax pages <strong>and</strong> 6“brute force” strategy 84–85BSD (Berkeley S<strong>of</strong>twareDistribution) UNIX 261, 486bubble sort 447, 447Buckimaster, Jim 120buddy system 302budgeting s<strong>of</strong>tware 195buffering 60. See also queuein data acquisition 130for graphics display 105in I/O processing 243overflows in 60pointers for 376queue in 396in streaming 459in tape drives 467in video capture 493bugs <strong>and</strong> debugging 61in C 66CASE tools for 74in compiling 96data <strong>and</strong>, threat to 36dynamic binding <strong>and</strong> 46error h<strong>and</strong>ling <strong>and</strong> 186in programming environment388quality assurance <strong>and</strong> 394risk <strong>of</strong> 408technical support <strong>and</strong> 470bulletin board systems (BBS)61–62on ARPANET 247in computer history 228conferencing systems <strong>and</strong>114cultures <strong>of</strong> 125cyberspace <strong>and</strong> 125early use <strong>of</strong> 11in Internet development 247Rheingold <strong>and</strong> 407as social networking 440for technical support 470bullet train 408bullying 126bump mapping 106Burks, Arthur 499“Burning Chrome” (Gibson) 419Burroughs 459Burroughs, William 70bus 62, 62–63bits <strong>and</strong> 51in boot sequence 54in chipset 86clock speed <strong>and</strong> 90CPU <strong>and</strong> 304in Ethernet network 283for graphics cards 214in IBM PC 236for I/O processing 242–243for modem 316on motherboard 319in multiprocessing 323in personal computers 228Bush, Vannevar 13, 63, 182, 212,233Bushnell, Nolan 258business applications <strong>of</strong> computers63–64. See also application suiteblogging in 53in disaster planning <strong>and</strong>recovery 152enterprise computing183–184ergonomics <strong>and</strong> 185financial s<strong>of</strong>tware <strong>and</strong> 195groupware in 217Macintosh <strong>and</strong> 287management informationsystems for 291–292mashups 294online advertising 344–345PCs 366personal informationmanagers 368portals 379project management s<strong>of</strong>tware389–390SAP s<strong>of</strong>tware in 415s<strong>of</strong>tware installation <strong>and</strong> 244supply chain management462surveillance 383text in 81Web filters 505Business Objects 415Business S<strong>of</strong>tware Alliance 445bus mastering 62bus snooping 323“Buy It Now” 165byte 50–51, 51, 52, 204, 298byte code 19, 95, 253Byte magazine 260, 366CC (language) 65–66BASIC <strong>and</strong> 40bitwise operator symbolsin 52branching statements in 55commenting in 158in computer history 228C shell <strong>and</strong> 429current use <strong>of</strong> 389development <strong>of</strong> 42, 404, 410enumerations in 184–185functions in 385logic errors in 61macros in 288numeric data in 338Pascal <strong>and</strong> 363Perl <strong>and</strong> 365PL/I <strong>and</strong> 374pointers in 375–376porting to C++ 68procedures in 385pr<strong>of</strong>essional programmingwith 386program libraries in 276recursion in 401strings in 82syntax errors in 61variables in 490, 491viability <strong>of</strong> 389C# (language) 66, 307C++ (language) 67–69classes in 88commenting in 158compiling 96in computer history 228development <strong>of</strong> 459–460Eiffel <strong>and</strong> 173–174enumerations in 184–185error h<strong>and</strong>ling in 187inheritance in 340for Internet applicationsprogramming 249Java <strong>and</strong> 255in Micros<strong>of</strong>t Windows 309operators in 341Pascal <strong>and</strong> 363pointers in 376–377procedures in 385program libraries in 276Simula <strong>and</strong> 431cable modem 38, 58, 69, 162–163,299cache 69–70buffering <strong>and</strong> 60in chipset 86in client-server computing89in computer engineering 101CPU <strong>and</strong> 304, 305development <strong>of</strong> 10for file server 192for hard disks 223in information retrieval 240memory for 301in multiprocessing 323in Web browsers 503CAD/CAM (computer-aided design<strong>and</strong> manufacturing) 64, 98–99CAI (computer-aided instruction)32, 99, 169, 311calculation speed 298calculator 5, 70–71, 341, 392. Seealso mechanical calculatorcalendaring, in groupware 217call. See procedurescamcorders, digital 372, 446camera-ready copy 142cameras 108, 223, 371–372. Seealso photography, digitalcamouflage 203Campbell, John W. 418cancelbots 451Canion, Rod 184CAN-SPAM Act 370, 451capacitive touchscreens 478capacitors 30Čapek, Carl 410, 418carbon dioxide emissions 216card readers. See punched cards<strong>and</strong> paper tapeCareerJournal 348Carnegie Mellon HumanComputation 117Carnegie Mellon University 403Carpal Tunnel Syndrome (CTS)185cars <strong>and</strong> computing 71, 71–72,177, 293cartography 208–209cartridge drives 37, 258, 467,467–468cascading style sheets (CSS) 5–6,72, 72–73, 152, 233, 507case. See branching statementsCASE (computer-aided s<strong>of</strong>twareengineering) 73, 73–74, 200,443Case, Steve 11, 12, 350case statement 55cash, digital 146–147Casino City 346cassette tape 37, 258, 467, 467–468CAT (computerized tomography)scanning 300cataloging, library 275Cate, Fred H. 383cathode ray tube (CRT)in defense computingprojects 212for graphics 104, 105as memory 301in monitors 199, 317for terminals 476CB Simulator 350CBT (computer-aided instruction)32, 99, 169, 311CCM (CORBA Component Model)118CCP (Certified ComputingPr<strong>of</strong>essional) certificate 80CCTV (closed-circuit television)164, 273CDC (Control Data Corporation)99, 121, 227, 323, 461CD copy protection 149–150CDMA (Code DivisionMultiplexing Access) 514CD-ROM <strong>and</strong> DVD-ROM 74, 74–75in boot sequence 55for data backup 37, 200in game consoles 205in laptops 272lasers for 356multimedia <strong>and</strong> 322for music files 449reusable media for 216Sony <strong>and</strong> 446CDT (Center for Democracy <strong>and</strong><strong>Technology</strong>) 125, 440cell chip 205, 305cell phones. See also smartphonebroadb<strong>and</strong> access through 58by Motorola 320MySpace <strong>and</strong> 440smartphones <strong>and</strong> 108texting on 477touchscreens on 478with VoIP 497cell processors 462cells, <strong>of</strong> memory 224cellular automata 28, 75, 75–76,432, 499. See also Game <strong>of</strong> Lifecensorship <strong>and</strong> the Internet 76<strong>of</strong> blogs 53centralization <strong>and</strong> 440in China 211, 250encryption <strong>and</strong> 246policy <strong>and</strong> 472political extremism <strong>and</strong> 377Center for Democracy <strong>and</strong><strong>Technology</strong> (CDT) 125, 440CenterStage 299central computer 154centralization 439–440central processing unit. See CPUCentronics 360Cerf, Vinton D. 78CERN 43, 247, 403certificate, digital 78–79, 79,223–224certification authority 78–79, 79certification <strong>of</strong> computerpr<strong>of</strong>essionals 79–80, 131, 171,356, 386, 506Certified Computing Pr<strong>of</strong>essional(CCP) certificate 80Certified Netware Administrator(CNA) certificate 80Certified Netware Engineer (CNE)certificate 80CFCs (chlor<strong>of</strong>luorocarbons) 216CGA (Color Graphics Adapter) 213CGI. See computer graphicsCGI (common gateway interface)80, 80–81, 249, 365, 508


Index 559chads 175, 392chairs, ergonomic 185channels 83, 243, 290, 323chaos 203Chapel 324characters <strong>and</strong> strings 81–83in C 65classes <strong>of</strong> 88compression <strong>of</strong> 134as data types 138file transfer protocols <strong>and</strong>193pointers <strong>and</strong> 376processing 33–34, 402, 485character sets 457charge-coupled device (CCD) 42,371, 416, 493charitable solicitations, fraudulent345Charles Schwab 348chat, online 83on AOL 350community <strong>and</strong> 440on CompuServe 350conferencing <strong>and</strong> 113cyber culture <strong>and</strong> 125filtering 505in groupware 217identity used in 237instant messaging comparedto 477pseudonymity in 17Rheingold on 407texting compared to 477chatterbots 83–84, 442, 481Chautauqua 153check clearing 39checksum 133, 186, 194chess <strong>and</strong> computers 26, 84, 84–85, 427, 480Child On-line Protection Act 505Children’s Internet Protection Act76, 505Children’s Machine 331Chinablogging in 53censorship in 76, 211, 251in computer industry 108computing in 143digital divide in 149Internet anonymity in 17Internet cafés in 250, 250phishing operators in 370policy <strong>and</strong> 472pollution controls in 216s<strong>of</strong>tware counterfeiting in445Yahoo! <strong>and</strong> 523Chinese Room 93chip 85–86. See also CPU(central processing unit);microprocessorbenchmarks for 43clock speed <strong>and</strong> 90in game consoles 205, 235by Intel 244in Macintosh 245optical computing <strong>and</strong> 356chipset 86, 101chlor<strong>of</strong>luorocarbons (CFCs) 216Chomsky, Noam 278Christenson, Ward 194chron 140Chuang, Isaac L. 395Church, Alonzo 86–87, 295Church theorem 87Church thesis 87cipher machines 180circuit design 295circular buffer 60circular queue 396, 397CISC (complex instruction setcomputing) 402Cisco Systems 80, 87Citizendium 500citizen journalism 259Civilization strategy game 99,103, 103Clark, Jim 15, 184Clarke, Arthur C. 418classes 88, 88Ada <strong>and</strong> 2for APIs 20binding <strong>and</strong> 45–46in C# 67in C++ 68, 459–460in computer science 109data abstraction in 129data structures <strong>and</strong> 138data types <strong>and</strong> 138in Eiffel 173encapsulation with 180in Java 254–255in Lua 286in Micros<strong>of</strong>t .NET 306in object-orientedprogramming 67–68,340–341, 388in ontologies 351in Ruby 413in Simula 431in Smalltalk 433structs compared to 67templates for 475in UML 315variables <strong>and</strong> 88virtual 88class frameworks 89clean room 4, 404–405clearinghouses 39“click fraud” 344clicking (mouse) 321click through 344client-server computing 89–90,183, 192, 255, 303, 476Climate Savers ComputingInitiative 216Clinton, Hillary 377, 524Clipper Chip 146, 181clock 90clock speed 90, 101, 119–120, 130closed-circuit television (CCTV)164, 273closed feedback loop 13cloud computing 21Cloud Nine 519cluster analysis 458cluster computing 216–217clustering 136clusters 216, 323CLUT (color lookup table) 93, 94CMC (<strong>Computer</strong>-MediatedCommunications) 113CMOS (complementary metal oxidesemiconductor) 49, 54, 301CMS (color matching system) 93CMS (content managementsystems) 115CMYK 93CNA (Certified NetWareAdministrator) certificate 80CNE (Certified NetWare Engineer)certificate 80CNET 260, 293–294, 428coalescence 302COBOL (Common Business-Oriented Language) 90–92commenting in 158current use <strong>of</strong> 389for databases 131Hopper <strong>and</strong> 231PL/I <strong>and</strong> 373pr<strong>of</strong>essional programming<strong>and</strong> 386RPG <strong>and</strong> 412Y2K <strong>and</strong> 522cochlear implant 335Cocke, John 402Codd, Edgar F. 131codec 92, 493Code Division Multiplexing Access(CDMA) 514code generation 96Code <strong>and</strong> Other Laws <strong>of</strong> Cyberspace(Lessig) 274–275code pr<strong>of</strong>iling 8Code Version 2.0 (Lessig) 274–275code word, in Hamming Code 186c<strong>of</strong>fee shops 250Cog (robot) 27, 56, 59–60, 411cognitive prosthetics 336cognitive science 92–93in computer science 110, 391neural network <strong>and</strong> 313,336–337Papert’s work in 359senior citizens <strong>and</strong> 425technological singularity<strong>and</strong> 433Cognitive Tutor 99Cohen, Harold 25coherence 323coherency, cache 70Colby, Kenneth 509collaborative filtering 289collating sequence 82collision 223, 283, 448Colmerauer, Alain 390Color Graphics Adapter (CGA) 213color in computing 50, 93–94, 94color laser printers 382Colossus 226Colossus (film) 378, 418COM (Common Object Model) 160comma-delimited files 135comm<strong>and</strong> interpreter 55comm<strong>and</strong> processor 321comments, in program code 158commercial applications 22Commodore 228common gateway interface (CGI)80, 80–81, 249, 365, 508Common Language Runtime 306Common LISP 281–282common object request brokerarchitecture (CORBA) 89, 118,154, 310communications 124, 241, 242, 248communications buffer 60Communications Decency Act 76,274Communications Nets (Kleinrock)266communications theory 295Compaq 107, 184, 228, 237, 273,366compatibility <strong>and</strong> portability 94–95, 135, 465compiler(s) 402, 490, 494compilers 95, 95–97, 96binding in 45in COBOL 91in computer history 227in computer science 110data <strong>and</strong> 128for Eiffel 173for embedded systems 178enumerations in 184–185for FORTRAN 202Hopper’s work on 231interpreters <strong>and</strong> 252for Java 255for Lua 286parsers <strong>and</strong> 361in Pascal 362program libraries in 277Smalltalk <strong>and</strong> 433stack <strong>and</strong> 456compile-time binding 45complementary metal oxidesemiconductor (CMOS) 49,54, 301COMPLEMENT bitwise operators51completeness 267complex instruction set computing(CISC) 402complexity. See computability <strong>and</strong>complexitycomponent object model. SeeMicros<strong>of</strong>t .NETcomposite, in hypertext 234composite data types 138Comprehensive Perl ArchiveNetwork (CPAN) 365compression. See data compressionComptometer 70CompuServe 214, 252, 350, 351computability <strong>and</strong> complexity97–98Church <strong>and</strong> 87in computer science 109Physical Symbol SystemHypothesis <strong>and</strong> 93quantum computing <strong>and</strong> 395in scientific applications 419Turing on 481computational biology 46Computek 141computer-aided design <strong>and</strong>manufacturing (CAD/CAM) 64,98–99computer-aided instruction (CAI)32, 99, 169, 311computer-aided s<strong>of</strong>twareengineering (CASE) 73, 73–74,200, 443computer animation 16–17, 104,194. See also computer graphics<strong>Computer</strong>-based EducationResearch Laboratory 169computer-based-training 32, 99,169, 311computer crime 100–101, 408.See also hackers <strong>and</strong> hacking;identity theft; law enforcement<strong>and</strong> computers; online fraud <strong>and</strong>scams; securityavatars <strong>and</strong> 237–238banking <strong>and</strong> 39on Craigslist 121cyberlaw <strong>and</strong> 123–124digital certificates <strong>and</strong> 78–79on eBay 166firewalls <strong>and</strong> 196forensics in 102–103by hackers 220Internet growth <strong>and</strong> 248Internet regulation <strong>and</strong> 251law enforcement <strong>and</strong> 273policy on 472RFID <strong>and</strong> 406<strong>Computer</strong> Decency Act 125computer engineering 101–102computer forensics 101, 102–103,118, 179, 273computer games 103–104. See alsoonline gamesanimation in 16beta testing <strong>of</strong> 395in education 99, 169by Electronic Arts 174finite-state machines in 196fractals used in 203


560 Indexgraphics in 106, 194haptic interfaces for 221Lua for 286natural language processingin 330in popular culture 378r<strong>and</strong>om number generationfor 399simulation in 432virtual reality as 496computer graphics 104–106, 105.See also animation, computer;image processinganimated 507on Apple II 258benchmarks for 43color in 93–94compression <strong>of</strong> 134, 203computer science in 110in education 99in games 103, 104geometry in 295graphics cards for 213–214Macintosh for 287measurement units for 298monitor for 317scheduling algorithms <strong>and</strong>418in scientific applications420–421Sutherl<strong>and</strong>’s work on 4633D 213–214in virtual reality 496in Web page design 507on workstations 517<strong>Computer</strong> History Museum 42computer industry 106–109certification in 80entrepreneurs <strong>of</strong> 184establishment <strong>of</strong> 227globalization <strong>and</strong> 108,209–210hackers in 219journalism <strong>and</strong>. Seejournalismnanotechnology in 329–330computerized tomography (CAT)scanning 300computerized typography 267,483. See also fontscomputer languages. Seeprogramming languagescomputer literacy 109, 148–149,170, 171, 225<strong>Computer</strong>-MediatedCommunications (CMC) 113computer music 325–326,448–449computer platforms 41<strong>Computer</strong> Power <strong>and</strong> Human Reason(Weizenbaum) 509–510computer pr<strong>of</strong>essionals,certification <strong>of</strong> 79–80<strong>Computer</strong> Pr<strong>of</strong>essionals against theABM 510<strong>Computer</strong> Pr<strong>of</strong>essionals for SocialResponsibility (CPSR) 438computer programming. Seeprogrammingcomputer research, governmentfunding <strong>of</strong> 212–213, 404, 462,472computersBoolean logic in 54dependency on 439development <strong>of</strong> 226Eckert’s work on 167–168energy consumption <strong>of</strong>215–216e-waste from 216government-funded 212greenhouse emissions <strong>and</strong>216invention <strong>of</strong> 30for modeling cognition 92pollution from 216recycling <strong>of</strong> 140resource consumption <strong>of</strong> 216in science fiction 418–419self-replicating 329switches in 295Turing machines equivalentto 97<strong>Computer</strong>s <strong>and</strong> Thought(Feigenbaum <strong>and</strong> Feldman,eds.) 190computer science 7–8, 109–110,124, 138, 171, 277, 294–295. Seealso education in computer field<strong>Computer</strong> <strong>Science</strong> Corporation(CSC) 293<strong>Computer</strong> Society <strong>of</strong> the Institute<strong>of</strong> Electrical <strong>and</strong> ElectronicsEngieers 404computer technicians 108computer theory 109<strong>Computer</strong> Usage Corporation(CUC) 293computer virus 110–112data <strong>and</strong> 36in denial-<strong>of</strong>-service attacks100e-mail <strong>and</strong> 177identity theft from 238Internet growth <strong>and</strong> 248Micros<strong>of</strong>t Windows <strong>and</strong> 309Spafford’s work on 450from spam 451user status <strong>and</strong> 137computer vision 27, 112, 363, 411<strong>Computer</strong>world 260computing 313, 314Computing Research Association(CRA) 404Computing <strong>Technology</strong> IndustryAssociation (CompTIA) 80concurrent programming 112–114,154, 263conditionals 204conferencing, video 83, 322, 342,474, 492–493, 497. See alsotelepresenceconferencing systems 114–115,125, 407, 440, 474confidence factors 188confrontation, constructive 218congruential algorithm 399connectionists 93Connection Machines 461consciousness 369Consolidated Controls 182constants 115constructive confrontation 218constructivist learning 144, 284,359constructor function 88, 340consumer electronics 19, 140, 445.See also specific typesconsumer privacy 383–384container 92, 160content management 115–116, 179content management systems(CMS) 115, 132Content Scrambling System (CSS)149contextual advertising 211Control Data Corporation (CDC)99, 121, 227, 323, 461controls, in Micros<strong>of</strong>t Windows 308control structures. See alsobranching statements; loopin Ada 2in Algol 7in awk 33–34in BASIC 40in C 65in Pascal 514in PL/I 373in pseudocode 390–391in scripting languages 421in shell scripting 429in structured programming443in Tcl 468in Z3 525control unit 119–120, 120Conway, John 28, 75cookies 116, 211, 384, 453cooperative processing 116–117,155, 462cooperative programs 117co-ops 143Copernic 423, 423coprocessor 243, 304copyleft 352copy protection 117–118. See alsodigital rights managementcyberlaw <strong>and</strong> 123in data security 130digital convergence <strong>and</strong> 148<strong>of</strong> digital libraries 167digital rights management for149–150in e-books 166file-sharing networks <strong>and</strong>193First Amendment <strong>and</strong> 246hacking 219–220reverse engineering <strong>and</strong> 405copyright 245, 275, 445CORBA (Common Object RequestBroker Architecture) 89, 118,154, 310CORBA Component Model (CCM)118Corel Draw 143Core Service Technician exam 80Corley, Eric 246Corning 191correspondence classes 153counterculture 378counterfeiting 166, 436. Seealso s<strong>of</strong>tware piracy <strong>and</strong>counterfeitingcounterterrorism <strong>and</strong> computers118–119, 127, 220country codes, for DNS 155–157Count Zero (Gibson) 220CourseBuilder (Discovery Systems)32CPAN (Comprehensive PerlArchive Network) 365CP/Mdevelopment <strong>of</strong> 353in microcomputers 236, 366Micros<strong>of</strong>t <strong>and</strong> 206MS-DOS <strong>and</strong> 321UNIX <strong>and</strong> 486word processing on 516Xmodem for 194CPSR (<strong>Computer</strong> Pr<strong>of</strong>essionals forSocial Responsibility) 438CPU (central processing unit)35, 119–120, 120. See alsomicroprocessorarithmetic logic unit in 23benchmarks for 43bits <strong>and</strong> 51cache for 60, 69–70chips for 86in concurrent programming113in Dell computers 140evolution <strong>of</strong> 107in information retrieval240by Intel 218, 318–319in I/O processing 242–243,243in laptops 272in Macintosh 287measurement units for 298on motherboard 319in multiprocessing 323in multitasking 324–325scheduling <strong>and</strong>prioritization <strong>of</strong> 417speed <strong>of</strong> 90CRA (Computing ResearchAssociation) 404Craigslist 120–121, 294, 348Crawford, Chris 104Cray, Seymour 121, 121–122, 227,461Cray Research 121–122, 227, 324,461CRC (cyclical redundancy check)186, 194Creative Commons 275Creative Labs Zen 327Creative Suite 3 (Adobe) 4credit card transactions 39, 146credit ratings, “repairing” 345crime. See computer crimeCRM. See customer relationshipmanagementCRT. See cathode ray tubeCrusoe 478cryptography. See also encryptionin ARPANET 145ciphers in 180in DRM 150hashing in 223–224number theory in 295public key 32, 145–146,180–181, 181quantum computing <strong>and</strong> 396in RFID 406Shannon’s work in 427Turing’s work in 481CSC (<strong>Computer</strong> <strong>Science</strong>Corporation) 293C shell (csh) 261, 365, 429, 485CSS (cascading style sheets) 5–6,72, 72–73, 152, 233, 507CSS (Content Scrambling System)149CTS (Carpal Tunnel Syndrome)185CUC (<strong>Computer</strong> UsageCorporation) 293Cuckoo’s Egg (Stoll) 458culture, <strong>and</strong> computing 314Cunningham, Howard (Ward)122–123, 511Cu-SeeMe 83, 492customer relationship management(CRM) 123at Amazon.com 9ASPs for 21business use <strong>of</strong> 64in computing history 229data mining in 136employment in 179natural language processingin 330SAP s<strong>of</strong>tware for 415technical support in 470cyan, in CYMK 93CyberCash 146cybercommons 438cyberlaw 123–124, 237–238,274–275, 347–348cybernetics 110, 124, 277, 510–511


Index 561Cybernetics <strong>of</strong> Control <strong>and</strong>Communication in the Animal <strong>and</strong>the Machine (Wiener) 511cyberpunk 220, 335, 419cyberspace advocacy groups124–125cyberspace <strong>and</strong> cyber culture 125–126, 391, 419, 482–483cyberstalking <strong>and</strong> harassment 100,126, 248, 252, 523cyberterrorism 126–127computer crimes in 100countering 118–119data backup <strong>and</strong> 37disaster planning <strong>and</strong> 152hackers in 220information warfare <strong>and</strong> 242Internet growth <strong>and</strong> 248online gambling <strong>and</strong> 346threat <strong>of</strong> 439Cyc 27, 267, 351cyclical redundancy check (CRC)186, 194cylinders, in hard disks 222DDAC (digital to analog converter)317daemon. See demonDahl, Ole-Johan 431DailyStrength.com 367daisy-wheel printer 381DAQ (data acquisition device) 129,130Dark Web 127DARPA (Defense AdvancedResearch Projects Agency) 113funding <strong>of</strong> 212Kay <strong>and</strong> 263Licklider at 277multiprocessing language<strong>and</strong> 324networks <strong>and</strong> 334research <strong>of</strong> 311, 404Sutherl<strong>and</strong> at 463DARPA automated vehiclechallenge 71Dartmouth Summer ResearchProject on Artificial Intelligence281, 297Darwin 357DAT (digital audio tape) 446data 128. See also backup <strong>and</strong>archive systemsin classes 88constants 115in distributed computing154in LISP 281in pattern recognition 363redundancy in 427repurposing 139in service-orientedarchitecture 426unanticipated use <strong>of</strong> 408in XML 520data abstraction 128–129data accessibility 130–131data acquisition 110, 129, 129–130,419data acquisition device (DAQ)129, 130databaseBoolean operators in 54for business data processing64caching for 70for CAD 98client-server computing<strong>and</strong> 89CORBA for 118in CRM 123data dictionary for 135data mining <strong>of</strong> 135–136data security in 137in decision support systems139distributed computing for154hard disk space for 223hashing in 223, 224information retrieval from240–241for library catalogs 275in management informationsystem 292middleware for 310for online research 349PHP <strong>and</strong> 372for real-time processing 400record-level security in 137relational model for 131–132,139, 292, 455. See alsodatabase managementsystemssearching in 446for s<strong>of</strong>tware agents 289in s<strong>of</strong>tware engineering 73sorting in 446storage <strong>of</strong> 192templates in 475WAIS for 248for wikis 511database administration 130–131,178database management systems(DBMS) 131, 131–133automatic programmingin 33benchmarks for 43for cartography 208computer science in 110development <strong>of</strong> 131early market for 206management informationsystems <strong>and</strong> 292network traffic <strong>and</strong> 334object-oriented programming<strong>and</strong> 341in <strong>of</strong>fice automation 342by Oracle 356SQL for 455data breaches 137data bus. See busdata communications 133–134with Bluetooth 53broadb<strong>and</strong>. See broadb<strong>and</strong>clock speed <strong>and</strong> 90in computer science 110error correction in 186measurement units for 298in UNIX 410data compression 134, 134–135codecs for 92<strong>of</strong> digital photographs 372on hard disks 223<strong>of</strong> images 50, 203, 214, 239<strong>of</strong> MP3 files 448–449in networks 334<strong>of</strong> PDFs 364redundancy <strong>and</strong> 241in streaming 459data conversion 135data dictionary 73–74, 135Data division 91Data Encryption St<strong>and</strong>ard (DES)39, 145, 180, 317Data General 106, 516data glove 221–222data integrity 130, 131, 132, 194data link layer 334data list 282data mining 27, 135–136cookies in 116in counterterrorism 118, 119in CRM 123data warehouses for 139in e-commerce 168employment in 179expert systems for 188Google’s use <strong>of</strong> 211in information retrieval 241knowledge representationin 267management informationsystems <strong>and</strong> 292Micros<strong>of</strong>t research on 404natural language processingin 330neural networks in 337pattern recognition in 363privacy <strong>and</strong> 384statistics in 458data models. See ontologies <strong>and</strong>data modelsData Over Cable Service InterfaceSpecification (DOCSIS) 69data processingfor bank transactions 39batch processing 257buffering in 60in business 63–64, 291in client-server computing89in COBOL 91in flowcharts 200job control language for 257mainframes for 290in scientific applications419–420, 420data security 136–137. See alsosecurityin database administration130at “hot spots” 250Internet growth <strong>and</strong> 248online backup services<strong>and</strong> 37in operating systems 354risk <strong>and</strong> 408satellite service <strong>and</strong> 416user accounts in 354data storage 36, 37, 74–75, 89, 222,299, 445–446data structures 137–138. See alsoarray; branching statements;enumerations <strong>and</strong> sets; hashing;loop; queue; treein Algol 7in algorithm design 8in APIs 20in BASIC 88bit manipulation in 52in computer science 109data types compared to 138lists for 282object-oriented programming<strong>and</strong> 339in Pascal 88queue 396–397in Ruby 413in Simula 431systems programming <strong>and</strong>465data types 138. See also classes;enumerations <strong>and</strong> setsabstract 128–129in Ada 2in Algol 7in BASIC 40binding <strong>and</strong> 45in C 65in C++ 68checking 66, 68in COBOL 91in compiling 96in computer science 110conversion <strong>of</strong> 61, 67in data structures 137data structures comparedto 138for FORTRAN 202in interpretation <strong>of</strong> data 128for knowledge representation266in LISP 281–282in Lua 286numeric 338in object-orientedprogramming 340in Pascal 362, 514in Perl 365in PHP 373in PL/I 373in procedural languages 388procedures <strong>and</strong> 385Python <strong>and</strong> 392in Ruby 413in scripting languages 421in Smalltalk 433in structured programming443for variables 490data validation 186–187, 197data warehouse 135, 139, 139, 292dates, storage <strong>of</strong> 522dBase 131DBMS. See database managementsystemsDCE (Distributed ComputingEnvironment) 310DCOM (Distributed ComponentObject Model) 89, 154DDR (double data rate) SDRAM301deafness 151Dean, Howard 377debit card transactions 39debugging. See bugs <strong>and</strong> debuggingDEC Alpha 402decimal numbers 338decision making, Feigenbaum’swork in 190decision statements. See branchingstatements; loopdecision support system (DSS)139–140decompilation 405decrement operation 65DeCSS 149, 246DECUS 488DEC VAX 227deductive synthesis 33Deep Blue 26, 85Deep Thought 85defragmentation 222–223DejaNews 333delegates 67deletion, from list 282del.icious.us 294, 523Dell, Inc. 108, 140, 184, 237, 366Dell, Michael 140, 184Delphi 114demo 428democracy 439demon 140–141, 144DENDRAL 27, 187, 190denial-<strong>of</strong>-service (DOS) attacks100, 111, 242Department <strong>of</strong> Defense. SeeARPANET; DARPADepartment <strong>of</strong> Homel<strong>and</strong> Security119, 136dependencies 389


562 IndexDertouzos, Michael L. 141DES (Data Encryption St<strong>and</strong>ard)39, 145, 180, 317Descartes, Rene 295D. E. Shaw Company 44design documents 159design patterns 122, 142Design Patterns (book) 142Desk Set (film) 378desktop publishing (DTP) 4, 18,64, 142–143, 287, 483, 517desktop replacement. See laptopcomputersdestructor function 88deterministic games 103developing nations <strong>and</strong> computing108, 143–144, 149, 209device driver 144–145, 145assembly languages <strong>and</strong> 29BIOS <strong>and</strong> 49in boot sequence 55in computer science 110CPU <strong>and</strong> 304for hard disks 223in operating systems 353, 354Plug <strong>and</strong> Play <strong>and</strong> 374in s<strong>of</strong>tware installation 244systems programmer <strong>and</strong>465UNIX <strong>and</strong> 485device-independent bitmap (DIB)214Devol, Joseph 182DHCP (Dynamic HostingConfiguration Protocol) 469Dhrystone 43DHTML (dynamic HTML) 161,232–233. See also HTML;XHTMLDiablo II 104dialog boxes 308dial-return satellite system 416dial-up modem access 38, 58DIB (device-independent bitmap)214dictionary 134, 201, 270, 271. Seealso data dictionaryDidiWiki 511difference engine 35–36Differential Analyzer 13, 14, 63, 426Diffie, Bailey Whitfield 145–146,180diffraction 191DigiCash 146digital 12, 12–13, 13, 147digital audio tape (DAT) 446digital camcorders 372digital cameras 108, 223, 371–372.See also photography, digitaldigital cash 146–147digital certificate 78–79, 79, 223–224Digital Chocolate 174digital convergence 59, 147, 147–148, 331, 378, 473, 507. See alsoubiquitous computingdigital dashboard 148, 294digital divide 58, 109, 148–149,170, 172, 439Digital Editions (Adobe) 4Digital Equipment Corporation(DEC) 41, 187, 261, 467, 516.See also PDP minicomputerdigital libraries 166–167, 211, 260Digital Millennium Copyright Act(DMCA) 150, 246, 405digital music <strong>and</strong> video players.See music <strong>and</strong> video players,digitaldigital photography. Seephotography, digitalDigital Research 236, 321digital rights management (DRM)149–150, 166, 246, 326. See alsocopy protectiondigital signature 32, 39, 146digital subscriber line. See DSLdigital to analog converter (DAC)317digital video recording (DVR)163–164digitizing tablet 215, 215Dijkstra, Edsger W. 150, 150–151,374, 460diodes 86Dipmeter Advisor 187Direct2D 105Direct3D 214direct deposit 39direct memory access (DMA) 243directories 191direct-recording electronic (DRE)175DirectX 105, 214Dirt Dog (robot) 253disabled persons <strong>and</strong> computing151–152Ajax pages <strong>and</strong> 6JavaScript <strong>and</strong> 256neural interface for 269senior citizens <strong>and</strong> 425smart homes for 434speech synthesizer for 268user interface <strong>and</strong> 489virtual reality <strong>and</strong> 496voting systems <strong>and</strong> 176disassembly 405disaster planning <strong>and</strong> recovery37, 152Discovery Systems CourseBuilder32discrete data analysis 458discrete mathematics 296discrimination net 190disk array. See RAIDdisk cache 60, 70, 223disk compression 223disk controllers 223disk drives 55, 70. See also CD-ROM <strong>and</strong> DVD-ROM; flashdrive; floppy disk; hard diskdiskette. See floppy diskdisplay. See flat-panel display;monitordistance education 153, 153–154,170, 322distracted driving 72, 327–328Distributed Component ObjectModel (DCOM) 89, 154distributed computing 113, 154–155, 324, 354, 426, 459, 462Distributed ComputingEnvironment (DCE) 310distributed database system 188,292, 303, 334distributed denial-<strong>of</strong>-service(DDOS) attacks. See denial-<strong>of</strong>serviceattacksdistributed object computing 89,118distributed processing 310diversity 179divisions, in COBOL 91DLLs (dynamic link libraries) 20,277, 277, 309DMA (direct memory access) 243DMCA (Digital MillenniumCopyright Act) 150, 246, 405DNA 316, 316–317DNS (domain name system) 154,155–158, 247, 251, 469, 508DOCSIS (Data Over Cable ServiceInterface Specification) 69Dr. Dobbs’ Journal 260doctors, ratings <strong>of</strong> 367–368documentation 158, 159–160,225, 471documentation <strong>of</strong> programcode 74, 158–159. See alsodocumentation; technicalwritingdocument model 160–161, 192Document Object Model (DOM)160, 161, 233, 256documents, XML 520DOM (Document Object Model)160, 161, 233, 256domain name system (DNS) 154,155–158, 247, 251, 469, 508domain squatting 158Donahoe, John 166dongle 117doping 86DOS. See denial-<strong>of</strong>-service attacks;MS-DOSDOS-SHELL 322DOS/Windows Service Technicianexam 80dot-com bustAmazon.com <strong>and</strong> 9, 45AOL <strong>and</strong> 12ASPs in 21in computing history 229in e-commerce 168employment after 179recovery from 108women in computing <strong>and</strong>515Yahoo! <strong>and</strong> 523dot-matrix printers 379, 381,381–382dot pitch 318Dot project 67DoubleClick 212double data rate (DDR) SDRAM301double precision float 338doubly linked lists 282downward compatibility 94, 135“Drafting Dan” 98dragging 321Dragon Systems 452DRAM (dynamic r<strong>and</strong>om accessmemory) 218, 301DRE (direct-recording electronic)175Dreamweaver (Macromedia) 4, 507Drexler, K. Eric 329Dreyfus, Hubert 93, 161–162, 297drill <strong>and</strong> practice programs 99drive connection 86driver. See device driverDRM (digital rights management)149–150, 166, 246, 326. See alsocopy protectiondrone aircraft 311Drudge, Matt 259drum, in laser printer 382drum scanners 417Drupal 52DSL (digital subscriber line) 38,58, 69, 162–163, 163, 299, 335DSL access Multiplexer (DSLAM)162DSS (decision support system)139–140DTP. See desktop publishingdual-core processors 4, 19, 245,305, 324“Dummies” series 159, 471Dungeons <strong>and</strong> Dragons 104, 237,347DUP 201DV (Digital Video) 493DVD copy protection 149, 246DVD-ROM. See CD-ROM <strong>and</strong> DVD-ROMDvorak keyboard 185, 265DVR (digital video recording)163–164Dynabook 263, 273, 433dynamic arrays 24dynamic binding 46, 490Dynamic Hosting ConfigurationProtocol (DHCP) 469dynamic HTML (DHTML) 161,232–233. See also HTML;XHTMLdynamic link libraries (DLLs) 20,277, 277, 309dynamic r<strong>and</strong>om access memory(DRAM) 218, 301dynamic scoping 491Eearly binding 46ease <strong>of</strong> use 37, 137eBay 31, 165–166Craigslist <strong>and</strong> 120–121entrepreneurship <strong>and</strong> 184founder <strong>of</strong> 342–344in mashups 294reputation system <strong>of</strong> 480World Wide Web <strong>and</strong> 518EBCDIC (Extended Binary-CodedDecimal Interchange Code) 81EBNF (extended Backus-Naurform) 38e-books 9, 166–167, 260, 382, 466e-cash 146–147eCharge 146Echelon 181, 383Eckert, J. Presper 167–168, 184,226, 226, 296, 499. See alsoUNIVACEckert-Mauchly <strong>Computer</strong>Corporation 167, 231, 296. Seealso Eckert, J. Presper; Mauchly,John WilliamEclipse 122, 235, 352, 388ECMAScript 256ecology <strong>and</strong> computers 75e-commerce 168–169, 169Amazon.com in 8–9, 45Andreessen in 15anonymity in 17auctions in 31authentication in 32certification for 80in computer history 229computer science in 110CRM in 123data mining in 136digital cash for 146–147encryption in 181, 503expert systems for 188fraud in 100in Internet growth 248mainframes used in 290management informationsystems in 292natural language processingin 330Omidyar in 343policy on 472security in 101in s<strong>of</strong>tware market 294Web page design for 507World Wide Web <strong>and</strong> 518ECP (Extended Capabilities Port)360ECPA (Electronic CommunicationsPrivacy Act) 383


Index 563Edelman, Leonard 316Edison, Thomas 403EDO (Extended Data Out) 301EDP (electronic data processing)341EDS (Electronic Data Systems)16, 293educational fraud 345Educational Research Laboratory99education <strong>and</strong> computers 169–171.See also computer-aidedinstruction (CAI)computer-aided instruction99in computer history 229computer literacy in 109in developing countries 143in digital divide 149employment <strong>and</strong> 179Logo for 284–285, 359long-distance 153, 153–154multimedia <strong>and</strong> 322Papert <strong>and</strong> 359PCs in 366robotics in 411Smalltalk for 434social impact <strong>of</strong> computingin 439Stoll on 458videoconferencing in 492webcams in 504–505webmaster skills in 506education in computer field 79–80,171–172, 179, 363, 514, 515EDVAC 167, 227, 498–499EEPROM (electrically erasableprogrammable read-onlymemory) 49, 436EFF (Electronic FrontierFoundation) 124–125, 150, 275,440, 445effectuators 178, 178EFT (electronic funds transfer) 39EGA (Enhanced Graphics Adapter)213e-government 172–173EIDE (Enhanced IDE) 86, 223EIES (Electronic InformationExchange System) 114Eiffel 173–174eigenfaces 4880-core processor 305EISA (Extended ISA) bus 62eldercare robots 183electrical current, in hard drives222electrically erasable programmableread-only memory (EEPROM)49, 436electricity, access to 143Electric Minds 407electromagnetic radiation, frommonitors 185Electronic Arts 174–175electronic calculators 70–71Electronic CommunicationsPrivacy Act (ECPA) 383electronic data processing (EDP)341Electronic Data Systems (EDS)16, 293Electronic Frontier Foundation(EFF) 124–125, 150, 275, 440,445electronic funds transfer (EFT) 39Electronic Information ExchangeSystem (EIES) 114electronic ink 382–383electronic library 166–167, 211, 260electronic mail. See e-mailelectronic music 325Electronic Music Studio 325Electronic Privacy InformationCenter (EPIC) 125, 440electronic voting systems 175,175–176element 23, 138, 520Elementary Perceiver <strong>and</strong>Memorizer (EPAM) 190eListening Post 326Eliza (chatterbot) 26, 83, 442,481, 509Ella (chatterbot) 83Ellis, Jim 333Ellison, Larry 356else statements 55EMACS 387Emacs 456e-mail 176–177, 177advertising in 344on ARPANET 247business use <strong>of</strong> 64in computing history 228data compression in 134encryption <strong>of</strong> 181filtering 451, 505fraud in 345in groupware 217in identity theft 238Internet <strong>and</strong> 518in Internet growth 247–248in journalism 259netiquette in 332netnews <strong>and</strong> 333in <strong>of</strong>fice automation 342persistence <strong>of</strong> 332personal informationmanagers <strong>and</strong> 368phishing with 369–370senior citizens’ use <strong>of</strong>424–425on smartphones 437spam in 451for technical support 470viruses spread by 100, 111wiretapping 273from Yahoo! 523e-mail filters 41embedded systems 177–178, 178Ada for 2in cars 71engineering <strong>of</strong> 102Forth for 202marketing <strong>of</strong> 107microprocessors in 305operating systems for 354PC market <strong>and</strong> 367real-time processing in 400in smart cards 435in ubiquitous computing 484in wearable computers 501Y2K <strong>and</strong> 522embedding, in documents 160emerging technologies. See trends<strong>and</strong> emerging technologiesEmerson Electric 320emotion 56, 313Emotion Machine, The (Minsky)313employment in the computer field108, 171–172, 178–179, 439employment schemes 345emulation 179–180, 405, 476, 494Encapsulated PostScript (EPS) 214encapsulation 88, 88, 109, 129,180, 341Encore <strong>Computer</strong> 41encryption 180–181. See alsocryptographyfor authentication 32in banking systems 39censorship <strong>and</strong> 76in computer security 100for copy protection 117in data security 137Diffie <strong>and</strong> 145digital certificates <strong>and</strong>78–79under First Amendment 246<strong>of</strong> flash drives 198in networks 334<strong>of</strong> PDFs 364privacy <strong>and</strong> 383public key 32, 78–79, 79,145–146, 180–181, 181quantum computing <strong>and</strong>395supercomputers <strong>and</strong> 462<strong>of</strong> VoIP 497for voting systems 176in Web browsers 503on wireless networks 513encyclopedias, multimedia 322endless loop 286energy consumption, <strong>of</strong> computers215–216Energy Star 215–216Engaged 114Engelbart, Douglas 182, 233, 320Engelberger, Joseph 182–183engineering 110, 208engineering applications 75, 130Engineering Research Associates(ERA) 121Enhanced Graphics Adapter (EGA)213Enhanced IDE (EIDE) 86, 223Enhanced Parallel Port (EPP) 360ENIAC (Electronic NumericalIntegrator <strong>and</strong> <strong>Computer</strong>)in computing history226–227development <strong>of</strong> 525Eckert’s work on 167government funding <strong>of</strong> 212Mauchly’s work on 296patent dispute over 297in popular culture 378programming in 386user interface for 488von Neumann <strong>and</strong> 498Enigma cipher 180, 226, 481enterprise computing 183–184Enterprise Resource Planning(ERP) 415entrepreneurs in computing 184,252entropy, in information theory 241enumerations <strong>and</strong> sets 67, 184–185environment, computers’ impact on215–216, 229Environment division 91EPAM (Elementary Perceiver <strong>and</strong>Memorizer) 190EPIC (Electronic PrivacyInformation Center) 125, 440Epinions.com 480epistemology 267, 369EPP (Enhanced Parallel Port) 360EPS (Encapsulated PostScript) 214ERA (Engineering ResearchAssociates) 121ergonomics <strong>of</strong> computing 185–186,265, 318Ericsson Corporation 53eroticism, virtual 125ERP (Enterprise ResourcePlanning) 415error codes 187error correction 186, 186in data communication 133,427file transfer protocols <strong>and</strong>193, 194hashing in 224in information theory241–242mathematics in 295in modems 316in networks 334in programming environment388quantum computing <strong>and</strong> 395in RAID 398serial ports <strong>and</strong> 425in tape drives 467error h<strong>and</strong>ling 186–187, 373,408, 427eShop 343Estonia 242Estrada, Joseph 198Estridge, Phillip “Don” 236ETH (Swiss Federal Institute <strong>of</strong><strong>Technology</strong>) 362, 514Ethernet network 38, 283, 299ethnic diversity 179eToys 264E*Trade 348Eudora 428eUniverse 440Evans, David 463Evans <strong>and</strong> Sutherl<strong>and</strong> 463even parity 186events, in Micros<strong>of</strong>t Windows 308Everquest (game) 104, 347evidence 102–103, 147evolution, in genetic algorithms207evolutionary biology 46evolutionary programming. Seegenetic algorithmsevolutionary s<strong>of</strong>tware engineering444e-waste 216ex 261Excel (Micros<strong>of</strong>t) 160, 452–453,454expansion slots 62, 62expert systems 187–188, 188. Seealso DENDRAL; SHRDLUartificial intelligence in 27in automated programming33computer science in 110in decision support systems139for fault diagnosis 189Feigenbaum’s work with 190fuzzy logic in 204genetic algorithms in 208knowledge engineering in190knowledge representation in266, 267for medical field 300Prolog for 390risk <strong>and</strong> 409exponent 338exponential time 98expressions 354–355, 490. See alsoregular expressionext3 192extended ASCII characters 81extended Backus-Naur form(EBNF) 38Extended Binary-Coded DecimalInterchange Code (EBCDIC) 81Extended Capabilities Port (ECP)360Extended Data Out (EDO) 301extremism 377eye, biometric scanning <strong>of</strong> 48eyestrain 318


564 IndexFFacebook 16, 440–441, 487, 494facial scanning 48factories, CAD/CAM in 98–99fail-safe 189, 408Fairchild Semiconductor 4, 85,218, 318fair use 246false color 239, 421false positives, from Bayesianalgorithms 41FAQ (Frequently Asked Questions)470farming 143FAT (file allocation table) 191, 321fat client 89fault coverage testing 395fault tolerance 39, 155, 178,189–190Federal Privacy Act 383–384Federal Wire Act 346Fedora 279feedback 56, 124feedback loop 510feedback system, on eBay 165–166,343, 480Fefferman, Nina 441Feigenbaum, Edward 187, 190Feldman, Julian 190Felt, Dorr E. 70Fermi, Enrico 432ferrite core memory 301Feynman, Richard 329, 395fiber optics 58, 162, 190–191, 356fiber-to-the-home (FTTH) 191fiction, hypertext used for 234Fido BBS 61FidoNet 247FIFO (first in, first out) 60, 138,396Fifth Generation, The (Feigenbaum<strong>and</strong> McCorduck) 190Fifth Generation <strong>Computer</strong>Program 390file 191–192, 217, 264, 321, 353,410file allocation table (FAT) 191, 321file conversion 135file extensions 192file formats 37, 94–95, 135,163–164file permissions 136–137, 248File & Serve (Lexis) 274file server 107, 192–193, 235,335, 396. See also client-servercomputing; RAIDfile-sharing <strong>and</strong> P2P networks 193anonymity in 17counterfeit s<strong>of</strong>tware on 445Electronic FrontierFoundation <strong>and</strong> 125liability <strong>of</strong> 246for music <strong>and</strong> videodistribution 326<strong>of</strong> protected content 150service providers <strong>and</strong> 332file transfer protocols (FTP) 193–194, 248, 518film industry <strong>and</strong> computing 16,104, 194–195Filo, David 379, 422, 523filters, image processing 239financial calculators 195financial s<strong>of</strong>tware 195fingerprints 48, 49finger scanning 48finite-state machine 195–196, 196,278, 481Fiorina, Carly 515Fios (Verizon) 58, 69, 191Firefly Networks 289Firefox 374–375, 504firewall 100, 111, 196–197, 334FireWire 197, 493First Amendment 124–125, 246“First Draft <strong>of</strong> a Report on theEDVAC” (von Neumann) 498first fit algorithm 302first in, first out (FIFO) 60, 138,396FISA (Foreign IntelligenceSurveillance Act) 119, 383Fitel 44flag 197–198flaming 17, 83, 114, 331Flash (Macromedia) 4, 20, 32,374, 507flash <strong>and</strong> smart mobs 198, 407, 477flash drive 37, 198–199, 200, 446,487flash memory 4, 272, 301, 372flatbed scanner 416flat file database model 131flat-panel display 199, 199, 318FLEX 263Flickr 294, 523floating ads 344floating point numbers 338floating-point units (FPUs) 61,138, 305, 323floppy disk 199–200in Apple 519capacity <strong>of</strong> 74CD-ROM replacement <strong>of</strong> 74copy protection <strong>of</strong> 117in IBM PC 236Sony <strong>and</strong> 445viruses on 111in word processors 516flops 298flowchart 73, 73, 200, 200flow control, in datacommunication 133flowers, robotic 57FLOW-MATIC 90, 231FOIA (Freedom <strong>of</strong> InformationAct) 173Folding@Home 46–47, 217, 462fonts 3, 110, 143, 200–201, 201,364, 507. See also typography,computerizedforce-feedback systems 221, 496Foreign Intelligence SurveillanceAct (FISA) 119, 383fork statement 113formalism 162formal language 278formatting, <strong>of</strong> hard disks 222forms 80–81, 256, 470Forster, E.M. 418Forth 201–202, 456FORTRAN 202–203current use <strong>of</strong> 389development <strong>of</strong> 404mathematics <strong>and</strong> 295for mathematics libraries296PL/I <strong>and</strong> 373procedures in 384pr<strong>of</strong>essional programming<strong>and</strong> 386Fortress 113, 324forums 350forward chaining 188FPS 43fractals in computing 134, 203,203, 295, 401fragmentation 222–223, 302framesin artificial intelligence 27,313<strong>of</strong> data packets 283in data transmission 133in expert systems 188for knowledge representation266–267for language processing278–279in natural languageprocessing 330frameworks 6, 20, 89, 95, 173. Seealso Micros<strong>of</strong>t .NETFrank, Barney 346fraud, online 100, 344, 345–346,349, 472. See also identity theftFree Culture (Lessig) 274–275Freedom <strong>of</strong> Information Act (FOIA)173freedom <strong>of</strong> speech 124, 125Freescale Semiconductors 320Free S<strong>of</strong>tware Foundation 429,456, 477–478, 486Free Speech Movement 378free trade 209–210freeware 104, 293–294, 352,427–428Frequently Asked Questions (FAQ)470Fritz 9 84Front Row 357FTP (file transfer protocol) 193–194, 248, 518FTTH (fiber-to-the-home) 191FUD (fear, uncertainty, <strong>and</strong> doubt)10Fuegelman, Andrew 427Fujitsu 108Full Spectrum Warrior (game) 311functional languages 67, 203–204,286, 338. See also LISPfunctions 384–385in APIs 20, 20binding <strong>and</strong> 45–46in C 66in C# 67in C++ 68in computer science 109, 110in data abstraction 129in functional languages203–204in Korn shell 429in LISP 281, 389in Lua 286macros <strong>and</strong> 288–289object-oriented programming<strong>and</strong> 339, 443in Plankalkül 526programming languages<strong>and</strong> 388recursive 401in Ruby 413in spreadsheets 453for strings 82in structured programming443virtual 88fund-raising 377future event, probability <strong>of</strong> 40–41Future Shock (T<strong>of</strong>fler) 432fuzzy logic 204, 337, 356fuzzy set 204Ggain, in DAQ performance 130Galvin Manufacturing Corporation320gambling, online 346–347game consoles 108, 174, 205–206,235, 305. See also Nintendo Wii;PlayStation; XboxGame <strong>of</strong> Life 28, 75, 75games. See computer games; onlinegamesgame theory 103, 432, 498GAMM (Gesellschaft fürangew<strong>and</strong>te Mathematik undMechanik) 7Gantt charts 389GarageB<strong>and</strong> 326garbage collection 224, 281Gardner, Martin 75Garmin 293Garriott, Richard 104Gates, William, III (Bill) 79, 184,206–207, 207, 305–306, 321, 430Gateway 366gateway programs 80gateways 177, 247, 248gauges 129GDI (Graphics Device Interface) 308geeks 378, 515gender diversity 179General Dynamics 320General Electric 509General Motors 183General Public License (GPL3)150, 352, 457, 478General Services Administration79generative grammar 278gene sequencing 46genetic algorithms 8, 28, 75,207–208genetics 27, 46, 188, 262Genghis (robot) 59Geographical Information Systems(GIS) 208–209, 404geometry 295German Aerodynamics ResearchInstitute 525germanium 85Gershenfeld, Neil R. 395Geschke, Charles 3, 379Gesellschaft für angew<strong>and</strong>teMathematik und Mechanik(GAMM) 7Gibson, William 125, 419. See alsoNeuromancer (Gibson)GIF (graphics interchange format)94, 134, 214gigabyte 51, 298Gilmore, John 124GIS (Geographical InformationSystems) 208–209, 404Gise, Preston 44glare 185global flags 197–198globalization <strong>and</strong> the computerindustry 179, 209–210, 229, 472Global Positioning System (GPS)209, 292Global System <strong>of</strong> MobileCommunications (GSM) 436,514global variables 491Gmail 211GNU Linux. See LinuxGNU Project 279, 352, 429, 456,477–478Gnutella 193Go (game) 85Godel, Kurt 295Goldstine, Herman 296, 499Google 210–212advertising business <strong>of</strong> 344,346, 358blogging <strong>and</strong> 52censorship in China <strong>and</strong> 76Cerf at 78in Chinese market 108digital library <strong>of</strong> 166, 167founding <strong>of</strong> 57, 358mashups <strong>and</strong> 294for online research 350


Index 565PageRank algorithm <strong>of</strong> 57,210, 211, 423, 480phone platform from 437searching with 423in social networking 441Yahoo! <strong>and</strong> 523YouTube <strong>and</strong> 524Google Apps 21, 107, 211, 217,294, 306Google Book Search 167, 211Google Docs & Spreadsheets 21,107, 211, 294, 517Google Earth 211, 292–293Google Groups 333–334Google Language Tools 271Google Maps 211, 292–293, 294,423Google News 211Google Pack 21Google Product Search 211Gopher 248, 518Gosling, James 255“GO TO Considered Harmful”(Dijkstra) 151Gouraud shading 106government 49, 76, 172–173, 181,250, 436government funding <strong>of</strong> computerresearch 212–213, 404, 462, 472GPL3 (General Public License)150, 352, 457, 478GPS (Global Positioning System)209, 364, 384Gr<strong>and</strong> Theft Auto series 104graphical user interface. See userinterfacegraphics. See computer graphicsgraphics card 213, 213–214BIOS <strong>and</strong> 49–50chipset for 86games <strong>and</strong> 104in IBM PC 236in I/O processing 243in laptops 272microprocessor for 305on motherboard 319in PCs 322performance <strong>of</strong> 106Graphics Device Interface (GDI)308graphics engine 105–106graphics formats 94, 214–215graphics interchange format (GIF)94, 134, 214graphics modeling 105–106graphics tablet 215, 215graphing calculators 71Gray, Elisha 525greedy algorithm 8green, in RGB 93greenhouse emissions 216green PC 101, 215–216Greiner, Helen 60, 253grid computing 87, 155, 216–217,494Grokster 246groupware 217–218Grove, Andrew S. 218, 318GSM (Global System <strong>of</strong> MobileCommunications) 436, 514GUI. See user interfaceGulf War 242Gulliver’s Travels (Swift) 418Gutmans, Andi 372HHackers (Levy) 482hackers <strong>and</strong> hacking 219–220. Seealso computer crime; security<strong>of</strong> application serviceproviders 21banking <strong>and</strong> 39copy protection <strong>and</strong> 246in cyber culture 125IBM <strong>and</strong> 235Mitnick <strong>and</strong> 314in open-source movement352in popular culture 378Stallman <strong>and</strong> 456Stoll <strong>and</strong> 458<strong>of</strong> voting systems 176hacktivism 127hafnium 86HAL 9000 (character) 59Halo (game) 306Halting problem 97Hamming Code 186H<strong>and</strong>book <strong>of</strong> Artificial Intelligence(Feigenbaum, ed.) 190h<strong>and</strong> geometry 48h<strong>and</strong>held scanner 416h<strong>and</strong>writing recognition 220–221,221, 466, 489hanging chads 175, 392Hannibal (robot) 56haptic interfaces 221–222harassment 100, 126, 248, 252,523hard disk 222, 222–223BIOS <strong>and</strong> 49bits in 50in boot sequence 55for data backup 37development <strong>of</strong> 404for file servers 192in game consoles 205in IBM PC 236in information retrieval 240in laptops 272tape drives <strong>and</strong> 467for virtual memory 302hardware 95, 137, 240, 245Harvard Mark I 5, 61, 231, 498Harvey, Brian 285hashing 24, 223–224, 240, 365,448hash sort 448Haskell language 204Hawking, Stephen 151Hawkins, Trip 174Hayek, F. A. 500Hazen, Harold 510HD-DVD 75HDTV 75head-mounted display (HMD)496, 501health, personal 300–301, 367–368, 436heap 24, 224heapsort 447hearing damage, from musicplayers 327heat 101, 305Heinlein, Robert 98Hellman, Martin 145, 180“Hello World” 67Help America Vote Act 176help desks 108HelpMate (robot) 183, 410HelpMate Robotics, Inc. 183help systems 224–225, 233, 308,471. See also technical supportheuristic 8Heuristic Compiler 33Hewlett-Packard (HP) 16, 237, 258hexadecimal system 225–226high-level language 29, 227,252–253, 278, 288, 337. See alsoC (language); C++ (language);FORTRANhigh-speed Internet. See broadb<strong>and</strong>High Tech Heretic (Stoll) 458highway system, automated 71–72Hilbert, David 87Hillis, Daniel 461history (Web browser) 234history <strong>of</strong> computing 226–229HMD (head-mounted display)496, 501Hoare, Anthony 33Hoare, C. A. R. 447H<strong>of</strong>f, Marcian E. “Ted” 304,318–319Holberton, Betty 515Holl<strong>and</strong>, John 28Hollerith, Herman 229–230, 458Homebrew <strong>Computer</strong> Club 18,366, 488, 519home business schemes 345Homel<strong>and</strong> Security 119, 136home media center 299home <strong>of</strong>fice 230–231Honeywell 297Hopper, Grace Murray 90, 231,231–232, 515hospital information systems (HIS)299HotBits 399Hot Plug 63“hot spots” 58, 250, 250Howard, John H. 63HP (Hewlett-Packard) 16, 237, 258HTML (Hypertext MarkupLanguage) 232, 232–233. Seealso DHTML; XHTMLCGI <strong>and</strong> 80–81in document formatting 342for help systems 225for hypertext 233for Internet applicationsprogramming 249with Java 255with JavaScript 256for presentations 381Web browsers <strong>and</strong> 503in Web page design 507for World Wide Web 518XML <strong>and</strong> 520HTTP (HyperText TransferProtocol) 157–158, 233, 438,503, 508, 518Huffman coding 134human-computer symbiosis 139,277, 391human genome 46human mind, modeling 92–93Human Use <strong>of</strong> Human Beings, The(Wiener) 511HVAC, in smart buildings 434hybrid cars 71Hypercard 32, 99, 122, 233, 322hypermedia 233–234. See alsomultimediaHyperterminal 476hypertext 233–234Bush <strong>and</strong> 63in computer history 229Engelbart’s work on 182in help systems 225multimedia <strong>and</strong> 322for World Wide Web 43in World Wide Web 518II18n 246–247IAD (Internet addiction disorder)391IBM (International BusinessMachines) 235–236Amdahl at 10Apple <strong>and</strong> 258in computing history 227Deep Blue <strong>and</strong> 85FORTRAN developed at 202government funding <strong>of</strong> 212hafnium chips by 86Hollerith <strong>and</strong> 230IAS computer <strong>and</strong> 499Java <strong>and</strong> 255mainframes by 290, 290marketing <strong>of</strong> 106Mark I underwritten by 5McCarthy at 297in <strong>of</strong>fice automation 341optical hybrid chip by 356parallel interface by 360patents owned by 245popular culture <strong>and</strong> 378research <strong>of</strong> 404RPG at 412supercomputers <strong>of</strong> 462tape format <strong>of</strong> 467word processor <strong>and</strong> 516X10 at 324IBM/360 227, 235, 290, 290, 323IBM/370 235, 290IBM/390 290IBM MVS JCL 257IBM PC 236–237. See also PCclonesApple II <strong>and</strong> 18, 258boot sequence for 54–55bus in 62in computing history 228in education 99in IBM business 235introduction <strong>of</strong> 366keyboard <strong>of</strong> 265Macintosh <strong>and</strong> 287market entry <strong>of</strong> 106–107microprocessors in 304, 319monitor for 318operating system for 107,206, 305, 307, 321processors for 4, 218reverse engineering <strong>of</strong> 405st<strong>and</strong>ards <strong>and</strong> 457word processing on 516Ibuka, Masaru 445IC. See integrated circuitICANN (Internet Corporation forAssigned Names <strong>and</strong> Numbers)17, 158, 251ICCP (Institute for Certification <strong>of</strong>Computing Pr<strong>of</strong>essionals) 80Icon 83icons 247ICT (Information <strong>and</strong>Communication Technologies)Task Force 251ICYou.com 368IDE (Integrated Drive Electronics)223Identification division 91identity fraud 238identity in the online world 17,124, 125, 237–238, 391, 482, 524identity theft 100, 238–239. Seealso computer crime; onlinefraud <strong>and</strong> scamsbiometrics <strong>and</strong> 49credit card use <strong>and</strong> 146data security <strong>and</strong> 137by hackers 220information collection in384Internet growth <strong>and</strong> 248phishing in 369, 370policy on 472risk <strong>and</strong> 408spyware in 453with viruses 111ideographs 82


566 IndexIDNA (Internationalizing DomainNames in Applications) 158IEC (International ElectrotechnicalCommission) 298IEEE Transactions on InformationTheory (Diffie <strong>and</strong> Hellman)146IETF (Internet Engineering TaskForce) 251if statements 55IGF (Internet Governance Forum)251IIOP (Internet Inter-ORB Protocol)118iLife 357I.Link 197Illustrator (Adobe) 4iMac 19, 258, 288image, bitmapped 50, 50, 81, 214image manipulation, as art 25image processing 110, 112, 204,239, 300. See also computergraphicsiMovie 493IMP 78impaired driving, monitoring 71imperative languages 203implementation 138, 154, 394, 444IMPs (Interface MessageProcessors) 266income, in digital divide 149incremental computing 463increment operation 65index file, in information retrieval240index register 119–120, 304index table 223India 143, 149, 209indirection 375–377Inducing Infringement <strong>of</strong>Copyrights Act 445induction 190industrial robots 182–183,410–411industry 99. See also CAD/CAMinference engine 188, 188Information <strong>and</strong> CommunicationTechnologies (ICT) Task Force251information design 239–240“Information Flow in LargeCommunication Nets”(Kleinrock) 266information hiding 129, 460Information Processing <strong>Technology</strong>Office (IPTO) 463information retrieval 240–241,273. See also search engineinformation science 46, 110information services, online. Seeonline servicesinformation systems auditing 31,130information systems degrees 171information theory 42, 241–242,427information transfer rate 38information warfare 100, 127, 220,242, 248, 311Information Week 260InfoTrac 349InfoWorld 260infrastructurein developing nations 143embedded systems in 178for enterprise computing 183in information warfare 242for Internet 87pyramid model <strong>of</strong> 291, 291for smart home 435society as 438inheritancein C# 67in cellular automata 75in classes 20, 88in data abstraction 129in object-orientedprogramming 67, 340in Simula 431Smalltalk <strong>and</strong> 434in-house applications 22in-house documentation 471Ink Development 343inkjet printer 380, 382inner identity 237In pointer 60input device. See graphics tablet;keyboard; mouseInput/Output (I/O) 242–243, 243in C 66in C++ 68in COBOL 91in computer engineering 101CPU <strong>and</strong> 304in flowcharts 200in mainframes 290microprocessor <strong>and</strong> 304in minicomputers 312in MS-DOS 321in operating systems 353in PL/I 373insertion, in list 282insertion sort 447–448installation <strong>of</strong> s<strong>of</strong>tware 244instant messaging 11, 126, 198,217, 440, 477, 523Institute for Advanced Study 499Institute for Certification <strong>of</strong>Computing Pr<strong>of</strong>essionals (ICCP)80Institute for Electrical <strong>and</strong>Electronic Engineers (IEEE)79, 457Institute <strong>of</strong> Electrical <strong>and</strong>Electronics Engineers <strong>Computer</strong>Society 404instructionsaddressing 3in Analytical Engine 35in BINAC 167in cache 10, 69–70CPU processing <strong>of</strong> 304in machine code 28storage <strong>of</strong> 167instrumentation, scientific419–420integer 138, 338integrated circuit (IC). See alsoCPU; microprocessorin calculators 71in chipsets 86in computing history 227invention <strong>of</strong> 85in microcomputer 228Moore’s work with 318in supercomputers 461Sutherl<strong>and</strong>’s work on 463Integrated Drive Electronics (IDE)223Intel Corporation 244–245AMD processors <strong>and</strong> 4Apple <strong>and</strong> 258chipset architecture <strong>of</strong> 86Grove at 218hafnium chips by 86in industry st<strong>and</strong>ardization237Macintosh <strong>and</strong> 288, 357microprocessors <strong>of</strong> 228, 304Moore at 318–319nanotechnology at 330in USB development 197intellectual property <strong>and</strong>computing 245–246censorship <strong>and</strong> 76centralization <strong>and</strong> 440digital rights management<strong>and</strong> 149–150DVRs <strong>and</strong> 164file-sharing networks <strong>and</strong>193Google Book Search <strong>and</strong>167, 211hackers <strong>and</strong> 219ISPs <strong>and</strong> 252at MIT Media Lab 313policy on 472YouTube <strong>and</strong> 524intelligence, defining 26intelligence agencies 118–119, 136IntelliGenetics 190intelligent agents. See s<strong>of</strong>twareagentsIntellipedia 119intentional programming 430Intentional S<strong>of</strong>tware 430InterCasino 346Interface Message Processors(IMPs) 266interfaces. See specific typesinterference 408interlaced display 318interlock mechanism 113intermediate language (IL) 67intermediate representation 96, 96International ElectrotechnicalCommission (IEC) 298internationalization <strong>and</strong>localization 158, 246–247Internationalizing Domain Namesin Applications (IDNA) 158International Space Station 430International St<strong>and</strong>ardsOrganization (ISO) 457International TelecommunicationUnion (ITU) 251, 316Internet 247–249. See also WorldWide Webb<strong>and</strong>width on 38broadb<strong>and</strong> for 57–59business use <strong>of</strong> 64centralization <strong>and</strong> 439–440computer-aided instructionover 99computer engineering <strong>and</strong>102in computer science 110in computer security 100in computing history 228,229data communications over133definition <strong>of</strong> 468digital divide <strong>of</strong> 148–149distance education over153–154DNS in 155employment in 178–179in groupware 217infrastructure for 87for journalism research 259legal theory on 274–275in libraries 276local area networks <strong>and</strong> 284multimedia on 322in <strong>of</strong>fice automation 342organization <strong>and</strong> governance<strong>of</strong> 124, 250–251, 274–275,439, 494packet switching on 78, 133in popular culture 378portability <strong>and</strong> 95publications on 260risk <strong>and</strong> 408–409in science fiction 418–419in s<strong>of</strong>tware marketing293–294TCP/IP <strong>and</strong> 468–469telecommunications <strong>and</strong> 473viruses spread by 100wiretapping <strong>and</strong> 119Internet addiction disorder (IAD)391Internet addresses 157–158Internet applications programming249–250Internet cafés 250, 250Internet Corporation for AssignedNames <strong>and</strong> Numbers (ICANN)17, 158, 251Internet Crime Complaint Center345Internet Engineering Task Force(IETF) 251Internet Explorer. See Micros<strong>of</strong>tInternet ExplorerInternet Governance Forum (IGF)251Internet Inter-ORB Protocol (IIOP)118Internet Law Treatise 274Internet-only banks 39Internet radio 251Internet Relay Chat (IRC) 83, 442Internet security packages 197,505Internet service provider (ISP) 70,251–252, 332, 350–351, 451,503. See also America OnlineInternet tablet 466Internet telephony. See VoIPInternet Worm 111interpolation 371InterPress 379interpreter 252, 252–253in APL 18for BASIC 40Brief Code 297in LISP 281parsing by 360–361for Pascal 362for PostScript 379for Python 392for Ruby 413–414in scripting languages 421for Tcl 468interprocess communication 264interrupt-driven I/O 243, 243interrupt request (IRQ) 243, 243interstitial ads 344Intranet 229, 284, 292intrusion detection 102inventory 291investments 345, 348IP addresses 155, 158, 468, 469iPhone 19, 147, 258, 364, 437,466, 478iPod 19, 108, 154, 258, 326, 327,327–328, 375IP phone 496iptables 197IPTO (Information Processing<strong>Technology</strong> Office) 463IPTV 69IP Version 6 158Iraq War 53, 198IRC (Internet Relay Chat) 83, 442iris scanning 48, 48iRobot Corporation 60, 253iRobot Create 253IRQ (interrupt request) 243, 243ISA (industry st<strong>and</strong>ardarchitecture) 62, 62, 237, 319,457


Index 567ISAM (Indexed Sequential AccessMethod) 192ISDN (integrated services digitalnetwork) 58, 299ISO (International St<strong>and</strong>ardsOrganization) 457ISP (Internet service provider) 70,251–252, 332, 350–351, 451,503. See also America Online;satellite Internet serviceiterative s<strong>of</strong>tware engineering 444ITU (InternationalTelecommunication Union) 251iTunes 19, 150, 258, 326, 327Iverson, Kenneth E. 18iWork 357JJabberwocky (chatterbot) 83Jackson, Steve 124–125Jacquard, Joseph-Marie 392Jansky, Karl 42Japan 108“Jaron’s World” 272Java 254, 254–256, 255applets in 19C++ <strong>and</strong> 68–69development <strong>of</strong> 461for financial calculators 195inheritance in 340for Internet applicationsprogramming 249interpreters for 253Joy <strong>and</strong> 261Micros<strong>of</strong>t <strong>and</strong> 206Micros<strong>of</strong>t .NET comparedto 307Micros<strong>of</strong>t Windowschallenged by 107multiprogramming in 324plug-ins 374pointers <strong>and</strong> 377portability <strong>of</strong> 95procedures in 385program libraries in 276pseudocode <strong>and</strong> 391for smart cards 436SQL <strong>and</strong> 455for virtual realityprogramming 496in Web browser 504XML <strong>and</strong> 520Java API for XML (JAX) 255JavaBeans 255JavaCard 436Java/RMI (Java/Remote MethodInvocation) 154–155JavaScript 256–257, 508in Ajax 6in DOM 161Java Server Pages (JSPs) 255Java Virtual Machine (JVM) 179,253, 255, 461JAX (Java API for XML) 255JCL (job control language) 97,257, 276J dialect 18Jennicam 504Jennings, Tom 61Jet Propulsion Laboratory (JPL) 78Jini 261JobCentral 348job control language (JCL) 97,257, 276job market 108, 171–172, 178–179,439Jobs, Steven Paul 18, 19, 150,257–259, 357, 519job searching <strong>and</strong> recruiting,online 348–349John Madden Football (game) 174join, in database 131Joint Photographic Experts Group(JPEG) 214–215, 372Jones, D.F. 418JotSpot 211journaling, in file systems 192journalismblogs in 52, 53, 125censorship <strong>of</strong> 76<strong>and</strong> computer industry260–261<strong>and</strong> computers 259–260multimedia <strong>and</strong> 322online research in 349podcasts in 375political activism <strong>and</strong> 377user-created content in 487World Wide Web in 518Joy, Bill 255, 261, 261–262joystick 489JPEG (Joint Photographic ExpertsGroup) 214–215, 372JScript 257, 508JScript.NET 257JSPs (Java Server Pages) 255Julia (chatterbot) 83, 442jurisdiction 123JVM (Java Virtual Machine) 179,253, 255, 461KKaczynski, Theodore 261Kahn, Robert 78Kana Unicode 82Kaphan, Shel 45Kapor, Mitch 124Kasparov, Garry 26, 85Katz, Phil 428Katz v. U.S. 383Kay, Alan 263–264, 433Kazaa 193Kelvin, Lord. See Thomson,WilliamKemeny, John G. 39Kepler, Johannes 70Kermit 194kernel 264in boot sequence 55for GNU 279, 456–457in Linux 279, 478in operating systemarchitecture 354in OS X 357in UNIX 353, 429, 485Kernighan, Brian W. 33kerning 201key 24, 131, 223, 224, 446–448. Seealso public key cryptographykeyboard 129, 185, 265, 265, 272,364key escrow 146, 181key exchange 146keyframes 16keyloggers 453Keynote (Apple) 381keystroke comm<strong>and</strong>s 489keywordscooperative assignment<strong>of</strong> 117for information retrieval 241in online advertising 211,344in parsing 361in Pascal 362in search engines 422in Web filters 505Kiczales, Gregor 430Kilby, Jack 85Kildall, Gary 321kilobyte 51, 298Kimball, Lisa 407Kimsey, Jim 11Kindle 9, 166Kismet (robot) 27, 56, 411Kleinrock, Leonard 265–266Knopf, Jim 427knowledge, encoding 187knowledge base 188, 188, 470“knowledge engine” 418knowledge engineering 190knowledge principle 190knowledge representation 110,266–267, 369, 390, 442Knuth, Donald 267–268Korn, David 429Korn shell (Ksh) 429, 485Kowalski, Robert 390KR 110, 266–267, 369, 390, 442KRM (Kurzweil Reading Machine)268Kurtz, Thomas 39Kurzweil, Ray 268, 268–269, 325,355, 432–433, 452Kurzweil Reading Machine (KRM)268LL1 cache 70L2 cache 70L10n 246–247Laboratory for <strong>Computer</strong> <strong>Science</strong>141lagged-Fibonacci algorithm 399lambda calculus 87, 97LambdaMOO 494LAN. See local area networkL<strong>and</strong>au, Susan 146l<strong>and</strong>ers 449languages. See programminglanguageslanguage translation s<strong>of</strong>tware270–271, 278–279, 330, 363Lanier, Jaron 271–272LAPACK 43laptop computers 272, 272–273batteries for 446data security on 137by Dell 140fingerprint readers on 49global market for 108“hot spots” <strong>and</strong> 250by IBM 237identity theft from 238keyboard for 265market entry <strong>of</strong> 107military use <strong>of</strong> 310operating system <strong>and</strong> 354PDAs <strong>and</strong> 364Larson, Earl Richard 30, 297laser 42, 74–75, 300, 356laser printer 379, 380, 382, 382LaserWriter (Apple) 379last in, first out (LIFO) 138, 456last mile 87latency 416LaTex 483law enforcement <strong>and</strong> computers 17,31, 49, 273, 345–346, 370law <strong>of</strong>fices 273–274laws <strong>of</strong> robotics 418, 433layered architecture 59LCD (liquid crystal display) 199,199, 272, 318LCS (MIT Laboratory for <strong>Computer</strong><strong>Science</strong>) 141learning theory 284, 359LEFT SHIFT bitwise operator 52Legal Information Institute 274legal research 349legal s<strong>of</strong>tware 273–274legal theory 274–275LEGO Logo 285, 411Leibniz, Gottfried Wilhelm 70, 294Leinster, Murray 418–419LEM (Lunar Excursion Module)449Lempel-Ziv compression 134Lenat, Douglas 27, 267, 351Lenovo 235Leonardo (robot) 56, 56–57Lerdorf, Rasmus 372Lerner, S<strong>and</strong>y 87Lessig, Lawrence 123, 251,274–275Levy, David 85Levy, Steven 482lexical analysis 95, 96lexical binding 45LexisNexis 274, 349LexisOne 274Lexitron 516libraries, digital 166–167libraries <strong>and</strong> computing 275–276,349, 505library, program 276, 276–277. Seealso DLLsin Algol 7algorithms in 7for APIs 20in C++ 68in compiling 96–97for mathematics 296in Micros<strong>of</strong>t .NET 306in Micros<strong>of</strong>t Windows 20,309in object-orientedprogramming 341, 443in operating system 353for PHP 373procedures <strong>and</strong> functionsin 385for sequential calculators 5for VBScript 492Licklider, Joseph Carl Robnett277–278Life on the Screen (Turkle) 482lifetime, <strong>of</strong> variables 491LIFO (last in, first out) 138, 456lighting, in smart buildings 434light level, in graphics 106Lilith (workstation) 514Linden Lab 347–348linear search 448line noise 316line printers 381linguistics <strong>and</strong> computing 278–279, 330, 442LinkedIn 349, 440–441linking, in document model 160links. See hypertextLinksys 87Link trainer 311Linolex 516Linpack 43Linux 279, 279–280, 280. See alsoUNIXASP .NET on 1in computer industry trends108in computer market 107on Dell computers 140development <strong>of</strong> 456–457,477–478, 486device drivers in 145DRM on 149, 150DVR capability <strong>of</strong> 163–164emulators on 179files in 192firewall in 197on flash drive 198kernel in 264as media center 299Micros<strong>of</strong>t <strong>and</strong> 306, 309


568 Indexin open-source movement352personal informationmanagers for 368server version <strong>of</strong> 192shell in 429for smartphones 437s<strong>of</strong>tware installation on 244updates under 244for workstations 517Lisa (computer) 258LISP 280–282applications <strong>of</strong> 204, 389development <strong>of</strong> 403in EMACS 387as functional language 204lambda calculus in 87Logo <strong>and</strong> 284McCarthy’s work on 297recursion in 401variables in 490, 491list 137–138list processing 282, 282–283in C# 67in computer science 109in insertion sort 447lambda calculus in 87LISP for 281in Logo 284in memory allocation 224queue for 396stack <strong>and</strong> 456trees for 479literacy 143, 149literals 115literature, hypertext used for 234lithography 85, 86Littman, Jonathan 314LiveScript 256load balancing 310loader program 54local area network (LAN) 283,283–284business use <strong>of</strong> 64in cluster computing 216in computer history 228data communications over133groupware <strong>and</strong> 217in <strong>of</strong>fice automation 342for SOHO market 230local buses 62–63localization 158, 246–247local search 423locational privacy 384Loebner Contest 84L<strong>of</strong>gren, Eric 441logical comparisons 65logical operators 51logic bombs 111logic error 61Logic Named Joe, A (Leinster)418–419logic programming languages 338,389Logic Theorist 33, 190, 295logistics 310Logo 170, 282, 284–285, 359, 433Loislaw 274London, cholera outbreaks in 239long-distance education 153,153–154, 170, 322long integer 138, 338loop 285, 285–286in arrays 24in BASIC 40in C 65in COBOL 91in error h<strong>and</strong>ling 187in flowcharts 200in FORTRAN 202infinite 97in interpreters 252logical errors in 61in Perl 365in procedural languages 388recursion <strong>and</strong> 400in structured programming460lossless compression 92, 214lossy compression 92, 134, 214,372Lotus 1-2-3 366, 452Lotus Notes 217, 342LoudCloud 16Lovelace, Ada 2, 35, 36, 515LR parsing 267Lua 286Lucent Technologies 42Lunar Excursion Module (LEM)449Lunar X Prize 358Lycos 422LZW (lossless compression) 214Mmachine code 28–29, 45, 95, 388Machine Readable Cataloging(MARC) 275“Machine Stops, The” (Forster) 418machine translation (MT) 270Macintosh 18–19, 287–288, 288.See also Apple; iMacin computing history 228C on 66desktop publishing on 143device drivers in 144–145digital video on 493DVR capability <strong>of</strong> 163–164in education 99, 169embedding <strong>and</strong> 160emulators on 179floppy disks <strong>and</strong> 199graphics on 105, 322help systems in 225hypertext on 233Intel chips in 245introduction <strong>of</strong> 258, 524Jobs <strong>and</strong> 257–258laptops by 273market entry <strong>of</strong> 107market share <strong>of</strong> 306as media center 299microprocessors in 320, 357mouse <strong>and</strong> 320–321operating systems for 353,357. See also OS Xin personal computing 366personal informationmanagers for 368scripting in 422user documentation in 159user interface <strong>of</strong> 18, 228,258, 307, 488–489word processing on 516Mac-LISP 281macro 29, 111, 288–289, 453Macromedia 4Macromedia Director 381Macromedia DreamWeaver 4, 507Macromedia Flash 4, 20, 32, 374,507Macsyma 145Macy, Michael 441Made In America (Dertouzos) 141Maes, Pattie 289–290Magellan 293magenta, in CYMK 93magnetic ink character recognition(MICR) 39magnetic resonance imaging (MRI)300mailer demon 140mainframe 290, 290–291Amdahl <strong>and</strong> 10backup systems for 37batch processing in 257buses in 62in CAD 98compiling in 97in computing history 227employment <strong>and</strong> 179FORTRAN for 202IBM <strong>and</strong> 235I/O processing in 243marketing <strong>of</strong> 106memory in 467multiprocessing in 323in popular culture 378printers for 381pr<strong>of</strong>essional programmersfor 386program libraries in 276RPG for 412SQL <strong>and</strong> 454Stallman’s work with 456statistical analysis with 458tape drives in 467user group for 488Y2K <strong>and</strong> 522maintenance 444makefile 388malware 451. See also spyware <strong>and</strong>adwaremanaged backup services 37“Management Game, The” 103management information system(MIS) 110, 171, 291, 291–292M<strong>and</strong>elbrot, Benoit 203mantissa 338manuals 159, 471map information <strong>and</strong> navigationsystems 71, 209, 211, 229,292–293, 441MapQuest 292MARC (Machine ReadableCataloging) 275marker, in hypertext 234marketing 9, 11marketing applications 64marketing <strong>of</strong> s<strong>of</strong>tware 107–108,293–294Markh<strong>of</strong>f, John 314Mark I 5, 61, 231, 498Mark II 5Mark III 5Mark IV 5markup languages 5–6, 161, 232–233, 256, 520. See also DHTML;HTML; XHTMLmarriage scams 345Mars Pathfinder 449Mars rovers 59, 410, 449, 450Martinian, Emin 49mashups 110, 211, 275, 292, 294,423masking 52Massachusetts Institute <strong>of</strong><strong>Technology</strong>. See MITmassively multiplayer online roleplayinggames (MMORPGs) 347master boot record 55matchmaking, s<strong>of</strong>tware agentsfor 289Mathematical Foundations <strong>of</strong>Quantum Mechanics, The (vonNeumann) 498“Mathematical Theory <strong>of</strong>Communication, A” (Shannon)241, 427“Mathematical Theory <strong>of</strong>Cryptography, A” (Shannon)427mathematics 7, 110, 326, 443mathematics <strong>of</strong> computing294–295mathematics s<strong>of</strong>tware 145,295–296, 338, 453, 458. See alsospreadsheetMatrix films 378, 419Matsumoto, Yakihiro 413Mauchly, John William 167, 184,226, 226, 296–297, 499Mauldin, Michael 83Mavica floppy disk 446Maxwell theory 420Mayo Clinic 367MBTF (mean time betweenfailures) 189MCA (Microchannel Architecture)62, 236, 457McCarthy, John 297–298in artificial intelligence 26Brooks <strong>and</strong> 59on chess 85on encoding knowledge 187LISP <strong>and</strong> 281Minsky <strong>and</strong> 313Shannon <strong>and</strong> 427McCorduck, Pamela 190McCulloch, Warren S. 336,510–511McGill R<strong>and</strong>om Number GeneratorSuper-Duper 399MCSE (Micros<strong>of</strong>t Certified SystemEngineer) 80Mead, Carver 463Mead, Margaret 124mean time between failures(MBTF) 189measurement units used incomputing 298–299mechanical calculator 35–36, 70,226, 294mechanical computer 13–14, 14,226, 510. See also differentialanalyzermechanical integrator 13media center, home 299Media Studio Pro 493MediaWiki 116medical applications <strong>of</strong> computers299–301, 300<strong>of</strong> artificial intelligence 27bioinformatics 47haptic interfaces 222image processing 239inkjet technology <strong>and</strong> 382personal health informationmanagement 367–368robotics 183, 411for senior citizens 425smart ships 436virtual reality 496medical informatics 299–301medical research 349MEDLINE 350meeting management, ingroupware 217megabyte 51, 298megapixels 371Memex 63, 233memory 301–302. See also cache;heap; stackin Analytical Engine 35–36,226for arrays 24assembly languages <strong>and</strong> 29BASIC <strong>and</strong> 40bits in 50–51buffer in 60for cache 69–70capacitors in 30cells <strong>of</strong> 224


Index 569in chipset 86chips for 86, 218clock speed <strong>and</strong> 90in computer engineering 101CPU <strong>and</strong> 120, 304–305demons <strong>and</strong> 141for digital cameras 372in embedded systems 178,178for fonts 201fragmentation <strong>of</strong> 302for graphics cards 214for hard disks 223in heap 224in IBM PC 236by Intel 244interpreters <strong>and</strong> 252in I/O processing 242–243in laptops 272in mainframes 467microprocessor <strong>and</strong> 304in minicomputers 312on motherboard 319in MS-DOS 321–322in multiprocessing 323,323–324nanotechnology <strong>and</strong> 329in PDAs 364in personal computers 228program access to 137prosthetic 336punched cards <strong>and</strong> 392in recursion 401in smart cards 436sorting <strong>and</strong> 446for stored programs 227virtual 3, 224, 261, 302,308, 353von Neumann’s work on498Y2K <strong>and</strong> 522memory (human), in cognitivescience 92memory bus. See busmemory management 302–303addresses in 3allocation 302, 376deallocation 224early binding <strong>and</strong> 46kernel <strong>and</strong> 264in LISP 281in list processing 282in Micros<strong>of</strong>t Windows 308in operating systems 353pointers <strong>and</strong> 375–376stack for 456Menlo Park 403Mephisto 52mercury delay line 499mergesort 447–448message passing 113, 303, 308, 324Message Passing Interface (MPI)303, 324metacharacters 402, 403Meta-Dendral 190METAFONT 267Metal Oxide Semiconductor FieldEffect Transistor (MOSFET) 301metasearch engine 423, 423metatag 422metavariables 38method. See functionsmetric prefixes 298Metro chip 305Meyer, Bertr<strong>and</strong> 173MFC (Micros<strong>of</strong>t FoundationClasses) 20, 89, 309, 341MFLOPS 43Michelangelo virus 111MICR (magnetic ink characterrecognition) 39Microchannel Architecture (MCA)62, 236, 366, 457microchip. See chipmicrocode 227microcomputer. See also Altair;personal computerBASIC on 39–40buses in 62–63in computing history 228CPU for 304Forth on 201–202graphics on 213hacking 219IBM PC <strong>and</strong> 236I/O processing in 243marketing <strong>of</strong> 106publications on 260tape drives in 467user groups for 488word processing on 516Wozniak’s design for 258Microelectronics <strong>and</strong> <strong>Computer</strong><strong>Technology</strong> Corporation 41micr<strong>of</strong>ilm, archiving with 276microkernel 264microlasers 356micropayment systems 146–147microprocessor 303, 303–305.See also CPU; multiprocessing;reduced instruction setcomputer (RISC)from Advanced MicroDevices 4in calculators 71in chipset 86clock speed <strong>and</strong> 90emulators <strong>and</strong> 179engineering <strong>of</strong> 101for graphics cards 214for IBM PC 236increasing complexity <strong>of</strong>401–402by Intel 218, 244, 318–319in Macintosh 19, 288, 357measurement units for 298in minicomputers 312Moore’s work with 318–319on motherboard 319by Motorola 320nanotechnology <strong>and</strong> 329in <strong>of</strong>fice automation 341–342in PC development 366in personal computers 228scripts <strong>and</strong> 421–422in smart cards 435–436speed <strong>of</strong> 90in supercomputers 461in synthesizers 325–326Micros<strong>of</strong>t Access 131, 132Micros<strong>of</strong>t Certified SystemEngineer (MCSE) 80Micros<strong>of</strong>t Corporation 305–306.See also Gates, William, III;MS-DOSantitrust case against 15,107, 206–207, 274, 306Bell at 42browser development by 15censorship in China <strong>and</strong> 76certification through 80in computer history 228founding <strong>of</strong> 206in industry st<strong>and</strong>ardization237Java <strong>and</strong> 255open source projects at 122RTF at 413Simonyi at 430smart card st<strong>and</strong>ard <strong>of</strong> 436s<strong>of</strong>tware piracy <strong>and</strong> 445Yahoo! <strong>and</strong> 523Micros<strong>of</strong>t Excel 160, 452–453, 454Micros<strong>of</strong>t Exchange 217Micros<strong>of</strong>t Foundation Classes(MFC) 20, 89, 309, 341Micros<strong>of</strong>t FrontPage 505, 507Micros<strong>of</strong>t Internet Explorer503–504development <strong>of</strong> 305–306JavaScript in 256Netscape <strong>and</strong> 15–16plug-ins for 374Windows packaged with229, 306World Wide Web <strong>and</strong> 518Micros<strong>of</strong>t .NET 306–307ASP <strong>and</strong> 1C# <strong>and</strong> 67CORBA <strong>and</strong> 118for distributed computing154for distributed objectcomputing 89for Internet applicationsprogramming 249Java <strong>and</strong> 504network object model in160–161VBScript <strong>and</strong> 492Web servers <strong>and</strong> 508in Windows 309Micros<strong>of</strong>t NetMeeting 492Micros<strong>of</strong>t Network (MSN) 306, 351Micros<strong>of</strong>t Office 23competition for 306copy protection <strong>of</strong> 117–118development <strong>of</strong> 305document model used in 160dominance <strong>of</strong> 107for Macintosh 287macros in 289market for 293in <strong>of</strong>fice automation 342in personal computing 366Simonyi’s work on 430speech recognition in 452Micros<strong>of</strong>t Office Live 21Micros<strong>of</strong>t OneNote 221Micros<strong>of</strong>t Outlook 177, 342, 368Micros<strong>of</strong>t PowerPoint 380, 381Micros<strong>of</strong>t Project 390Micros<strong>of</strong>t Research 404Micros<strong>of</strong>t Surface 466, 478Micros<strong>of</strong>t Visual Basic 20, 40, 309,387, 388, 422, 491Micros<strong>of</strong>t Visual Basic .NET 492Micros<strong>of</strong>t Visual Studio .NET 388Micros<strong>of</strong>t Windows 307–310. Seealso Micros<strong>of</strong>t Windows VistaAPI <strong>of</strong> 20, 354Apple <strong>and</strong> 18–19backup s<strong>of</strong>tware in 37competition against 107in computer history 228–229in computer market 107C on 66copy protection <strong>of</strong> 117–118demons in 141desktop publishing on 143development <strong>of</strong> 206, 305, 353device drivers in 144–145disabled users <strong>and</strong> 151DVR capability <strong>of</strong> 163–164dynamic link libraries in 20in education 99, 169emulator for 179files in 191–192graphics on 105, 214help systems in 225hypertext on 233Java dialect for 255keyboard for 265on laptops 273Macintosh <strong>and</strong> 107, 287–288mathematics s<strong>of</strong>tware in 295Media Center in 299mouse <strong>and</strong> 321MS-DOS in 322multitasking in 324, 325objects in 340OS/2 <strong>and</strong> 236in personal computing 366personal informationmanagers for 368PL/I <strong>and</strong> 374Plug <strong>and</strong> Play in 374scheduling <strong>and</strong> prioritizationin 417scripting in 422server version <strong>of</strong> 192, 508shell in 428s<strong>of</strong>tware installation under244for tablet PCs 466updates under 244user documentation in 159VBScript in 491–492wizards in 225word processing in 516for workstations 517Micros<strong>of</strong>t Windows 7 307–308Micros<strong>of</strong>t Windows CardSpace 307Micros<strong>of</strong>t WindowsCommunication Foundation307Micros<strong>of</strong>t Windows Explorer 308Micros<strong>of</strong>t Windows Live 351Micros<strong>of</strong>t Windows ManagementInstrumentation (WMI) 492Micros<strong>of</strong>t Windows Media Player327, 504Micros<strong>of</strong>t Windows Mobile 437Micros<strong>of</strong>t Windows NT 305–306,307Micros<strong>of</strong>t Windows PresentationFoundation 307Micros<strong>of</strong>t Windows Vista 307–309,308caching in 70firewall in 197help system in 225Media Center in 299memory in 198, 223, 301sales <strong>of</strong> 306security <strong>of</strong> 100, 111for tablet PCs 466Micros<strong>of</strong>t Windows WorkflowFoundation 307Micros<strong>of</strong>t Word 135, 143, 160, 192,403, 483, 516–517Micros<strong>of</strong>t Xbox 205, 206Micros<strong>of</strong>t Xbox 360 108, 205Micros<strong>of</strong>t Zune 327MicroWorlds Logo 285middleware 139, 310MIDI (musical instrument digitalinterface) 326, 448military applications <strong>of</strong> computers310–312ENIAC 167fractals in 203government funding <strong>and</strong> 212in history <strong>of</strong> computing 226IBM in 235image processing 239information warfare 242laptops 273Mauchly’s work with 296robotics 253, 410simulation 432virtual reality 271, 495–496MIME (Multipurpose Internet MailExtensions) 333


570 IndexMinard, Joseph 239mind 92–93, 313mind-mapping 441minicomputer 312, 312–313Bell’s work on 41buses in 62business use <strong>of</strong> 64complexity <strong>and</strong> 401–402in computing history 227graphics on 104mainframes <strong>and</strong> 290marketing <strong>of</strong> 106monitors for 317operating systems for 353,410, 485pr<strong>of</strong>essional programmers<strong>of</strong> 386user group for 488minimax theorem 498minorities in computing 515–516Minority Report (film) 384Minsky, Marvin Lee 313in artificial intelligence 26,27, 162at Dartmouth Conference297Kurzweil <strong>and</strong> 268LISP <strong>and</strong> 281neural networks <strong>and</strong>336–337s<strong>of</strong>tware agents <strong>and</strong> 442MIPS 43, 90, 517mirrored hard disk 37, 398MIS (management informationsystem) 110, 171, 291, 291–292MIT (Massachusetts Institute <strong>of</strong><strong>Technology</strong>)Breazeal at 56Brooks at 59Bush at 63Dertouzos at 141Kleinrock at 266Kurzweil at 268Licklider at 277Maes at 289MIT Architecture Machine Group331MIT Artificial IntelligenceLaboratory 59, 289, 313, 336–337, 359, 403, 456MIT Laboratory for <strong>Computer</strong><strong>Science</strong> 141MIT Media Lab 289, 313–314, 314,331, 403, 484Mitnick, Kevin D. 220, 314–315MITS 206, 228, 304, 366, 519Mitsubishi Electric ResearchLaboratories 49ML language 204MLM (multi-level marketing) 345MMORPGs (massively multiplayeronline role-playing games) 347mobile computingbusiness use <strong>of</strong> 64in computing history 229data communications over134e-commerce <strong>and</strong> 169employment in 179h<strong>and</strong>writing recognitionfor 220at “hot spots” 250JavaScript <strong>and</strong> 256keyboards for 265paperless <strong>of</strong>fice <strong>and</strong> 383wireless 514mode 196modeling languages 74, 315modem 315–316b<strong>and</strong>width <strong>of</strong> 38, 298, 335in computer history 228for data communication 133in journalism 259for satellite Internet service416telecommunications <strong>and</strong> 473transfer speed <strong>of</strong> 299moderators 83, 114Modula-2 363, 514Modula-3 514modularization 460Mohr, Manfred 25molecular computing 42, 305,316–317molecular machines 314Mondrian, Piet 25money, digital 146–147Moneymaker, Chris 346money management s<strong>of</strong>tware 195monitor 104–105, 142, 185, 236,272, 317, 317–318. See also flatpaneldisplayMono project 1, 67, 405monospace fonts 201Monster.com 348Monte Carlo simulations 399, 432Moog synthesizer 325Moondust (game) 271Moore, Charles H. 201Moore, Gordon E. 86, 218, 244,318–319Moore’s Law 86, 229, 304, 318MOOs (Muds, Object-Oriented)493Moravec, Hans 28, 59, 411More, Grinell 59Morita, Akio 445morphing 16morphology 270Morris, Robert, Jr. 111Mosaic 322, 503, 518Mosaic Web browser 15MOSFET (Metal OxideSemiconductor Field EffectTransistor) 301Moss, Frank 313motherboard 101, 319Motorola Corporation 320mouse 320, 320–321data acquisition with 129Dynabook <strong>and</strong> 263ergonomics <strong>of</strong> 185graphics tablet <strong>and</strong> 215invention <strong>of</strong> 182in Micros<strong>of</strong>t Windows 308user interface <strong>and</strong> 489movies 16, 104, 194–195MP3 format 448–449MP3 players 327, 327–328. Seealso iPodMPEG (Motion Picture ExpertGroup) 493MPI (Message Passing Interface)303, 324MPI-2 303MRI (magnetic resonance imaging)300MS-DOS 321–322API <strong>of</strong> 354compiling in 97C on 66demons in 141development <strong>of</strong> 353disabled users <strong>and</strong> 151files in 191help systems in 225hypertext on 233in IBM PC 107, 236, 307on laptops 273market entry <strong>of</strong> 107in Micros<strong>of</strong>t success 305in Micros<strong>of</strong>t Windows 307PL/I <strong>and</strong> 374regular expressions in 402shell for 428UNIX <strong>and</strong> 486MSDs (musculo-skeletal disorders)185MSN (Micros<strong>of</strong>t Network) 306, 351MT (machine translation) 270MUDs (Multi-User Dungeons) 104,125, 347, 407, 482, 493M.U.L.E. (game) 174multicore processor 305Multics 353, 409–410, 485multidimensional arrays 24multifunction peripherals 230, 417multi-level marketing (MLM) 345multimedia 322–323Adobe in 4broadb<strong>and</strong> for 58–59codecs for 92in cyberbullying 126digital convergence in 147digital photography in 371in education 99floppy capacity <strong>and</strong> 74graphics in 106hard disk space for 223at home 299library access to 276in Micros<strong>of</strong>t Windows Vista307network <strong>and</strong> 335in presentations 381streaming <strong>of</strong> 458–459multiplayer games 174multiple inheritance 88multiple intelligence agents 92multiplexed transmission 133multiplexing 243multiprocessing 323, 323–324.See also dual-core processors;parallel processingin Ada 2Amdahl’s law <strong>of</strong> 10cache coherency in 70clock speed <strong>and</strong> 90in computer engineering 101in computer science 109in computing history 229in concurrent programming113Intel <strong>and</strong> 245microprocessors for 305in molecular computing 317multitasking compared to325object-oriented programming<strong>and</strong> 341operating system <strong>and</strong> 354quantum processor <strong>and</strong> 395in real-time systems 400scheduling <strong>and</strong> prioritization<strong>and</strong> 418Simula <strong>and</strong> 431in simulations 432in supercomputers 461multiprogramming 324, 353, 354Multipurpose Internet MailExtensions (MIME) 333multitasking 324–325, 325in computer science 109CPU <strong>and</strong> 113DLLs <strong>and</strong> 277document model <strong>and</strong> 160kernel <strong>and</strong> 264in Micros<strong>of</strong>t Windows 308operating system <strong>and</strong> 353preemptive 113scheduling <strong>and</strong> prioritization<strong>of</strong> 417multithreading 305, 325multitouch 19, 364, 466, 478Multi-User Dungeons (MUDs) 104,125, 347, 407, 482, 493musculo-skeletal disorders (MSDs)185Muses 125music, computer 325–326,448–449musical instrument digitalinterface (MIDI) 326musical synthesizer 268–269, 325music <strong>and</strong> video distribution,online 326–327b<strong>and</strong>width <strong>and</strong> 38broadb<strong>and</strong> for 58centralization <strong>and</strong> 440copy protection <strong>and</strong> 148,149–150in Internet growth 248by iTunes 150, 258media center <strong>and</strong> 299multimedia access <strong>and</strong> 322on MySpace 440real-time processing <strong>and</strong> 400streaming for 459music <strong>and</strong> video players, digital19, 108, 258, 327–328, 375, 437,445–446, 449Muslims, extremist 127mutual exclusion 151MYCIN 27MyLifeBits 42My Real Baby (robot) 253MySpace 237, 370, 377, 440–441,487, 494MySQL 132, 352, 455, 468, 511Mythical Man-Month, The (Brooks)386MythTV 299Nnames, in computing 154, 490name server 158namespaces 67Nannycam 504nanotechnology 42, 86, 305,329–330nanotubes 329–330nanowires 330Napier’s bones 70, 226Napoléon I, Russia invaded by239–240Napster 148, 150, 193, 326NAS 152, 192, 335NAT (Network AddressTranslation) 469, 469National Center forSupercomputing Applications(NCSA) 15, 212national ID card 436National <strong>Science</strong> Foundation (NSF)212National Security Agency (NSA)181, 383, 462National Tele-Immersion Initiative272natural language processing (NLP)27, 278, 330–331, 390, 404, 509natural selection, in geneticalgorithms 207nature, fractals in 203Naur, Peter 38navigation systems 71, 209, 211,229, 292–293, 441NCSA (National Center forSupercomputing Applications)15, 212negative feedback 510Negroponte, Nicholas 313–314,331Nelson, Theodore 233


Index 571nerds 378nested loops 286.NET. See Micros<strong>of</strong>t .NETNet, The (film) 378netiquette 331–332NetNanny 505net neutrality 44, 275, 332–333,472netnews <strong>and</strong> newsgroups 61,333–334. See also bulletin boardsystemson ARPANET 247in computing history 228conferencing systems <strong>and</strong>114cyberspace <strong>and</strong> 125Internet <strong>and</strong> 248, 518netiquette <strong>and</strong> 331–332Rheingold on 407as social networking 440Spafford’s work on 450spam on 451Netscape Corporation 14, 350,503, 518Netscape Navigator (NetscapeCommunicator) 15–16, 256,322, 352, 368, 374, 503Network Address Translation(NAT) 469, 469network administration 108, 178network cache 70networked storage 152, 192, 335network file system (NFS) 192,261, 335network layer 334Network News Transfer Protocol(NNTP) 333networks 334–335. See alsointranet; local area networkb<strong>and</strong>width <strong>of</strong> 38Cisco’s work in 87in computer engineering101, 102in computer history 228in computer science 110data communications over133decentralized 209in enterprise computing 183in fault tolerance 189file servers in 192file transfer protocols on193–194firewalls <strong>and</strong> 196–197floppy disk usage <strong>and</strong> 200in hacking 220hypertext on 233in Internet 468–469Kleinrock’s work on 266Licklider’s work in 278mainframes <strong>and</strong> 290mathematics in 295measurement units for 298Micros<strong>of</strong>t <strong>and</strong> 305–306with Micros<strong>of</strong>t Windows 307Mitnick <strong>and</strong> 314object-oriented programming<strong>and</strong> 341in <strong>of</strong>fice automation 342operating system <strong>and</strong> 354packet-switched 78, 133,189, 265–266in popular culture 378in science fiction 418–419security <strong>of</strong> 450for simulations 432system administrators <strong>and</strong>464TCP/IP for 468–469telecommunications <strong>and</strong> 473in telecommuting 473–474viruses spread by 111for voting systems 175–176Weizenbaum’s work on 509network technicians 108Neumann, John von. See vonNeumann, JohnNeural Computing Center 403neural interfaces 335–336, 336neural network 27, 28, 336–337,337. See also perceptroncognitive science <strong>and</strong> 92computer science in 110connectionists on 93EPAM <strong>and</strong> 190for h<strong>and</strong>writing recognition220Minsky <strong>and</strong> 313Papert’s work in 359in pattern recognition 363risk <strong>and</strong> 409simulation <strong>and</strong> 432for speech recognition 452Wiener’s work on 510–511Neuromancer (Gibson) 125, 220,419neurons 336, 432neuroprosthetics 335–336, 336Neverwinter Nights (games) 347Newell, Allen 26, 93, 162, 190, 295New Kind <strong>of</strong> <strong>Science</strong>, A (Wolfram)76Newmark, Craig 120news cycle 259newsfeed 333news servers 333New <strong>Technology</strong> File System(NTFS) 191–192Newton (Apple) 220–221, 364Nextlink 58NextStep 258NFS (network file system) 192,261, 335Nigerion money scheme 345Ning 16Nintendo 205Nintendo 64 205Nintendo Wii 205, 221NLP (natural language processing)27, 278, 330–331, 390, 404, 509NLS/Augment 212, 233NNTP (Network News TransferProtocol) 333nodes<strong>of</strong> ARPANET 266in distributed computing154in hypertext 234in LISP 281in lists 282, 282in multiprocessing 323in networks 133in trees 479, 479Nokia N810 466Noll, A. Michael 25nondeterministic polynomial 98nonprocedural languages 337–338,389nonvolatile memory 178noosphere 369normalization 131, 338Norman (robot) 59notebook computers. See laptopcomputersNotepad 476, 517note-taking 441NOT operator 54Novell Linux 279Novell Netware 80, 228, 284Noyce, Robert 85, 218, 244, 318NSA (National Security Agency)181, 383, 462NSF (National <strong>Science</strong> Foundation)212NSFnet 247NTFS (New <strong>Technology</strong> FileSystem) 191–192nuclear magnetic resonance (NMR)technology 395–396nuclear reactions, simulating 432number theory 295numerical analysis 296numeric data 110, 138, 338, 341Nupedia 500Nvidia GeForce 8800 305Nygaard, Kristen 431OObama, Barack 377, 524Oberon 363, 514object(s) 88in C++ 459–460data abstraction <strong>and</strong> 129database components as 132design patterns <strong>and</strong> 142in distributed computing 154interoperability <strong>of</strong> 118in Java 254–255in Micros<strong>of</strong>t Windows308–309in object-orientedprogramming 340in PHP 373in Ruby 413in simulation 431object-based media 314Object Linking <strong>and</strong> Embedding(OLE) 160, 309, 517Object Management Group (OMG)118object-oriented database model132, 183object-oriented programming(OOP) 339–341, 340, 388binding <strong>and</strong> 45–46in C# 67in C++ 67–69, 460classes in 88COBOL <strong>and</strong> 91in computer history 228in computer science 109data abstraction in 129data structures in 138for expert systems 188flowcharting <strong>and</strong> 200Forth <strong>and</strong> 201in FORTRAN 202in JavaScript 256Kay’s work on 263message passing in 303at Micros<strong>of</strong>t 430with Micros<strong>of</strong>t .NET 306–607in Micros<strong>of</strong>t Windows 309operators defined in 355with Perl 365with PHP 372procedures in 385in Ruby 413Simonyi’s work in 430in Simula 431for simulation 432in Smalltalk 433s<strong>of</strong>tware agents <strong>and</strong> 442in s<strong>of</strong>tware engineering73–74, 443SQL <strong>and</strong> 455strings in 82UML for 315variables in 491Wirth on 514object query language (OQL) 455Object Request Broker (ORB) 118,310OCLC (On-line College LibraryCenter) 275OCR (optical characterrecognition) 268, 342, 355–356,417OCX (OLE controls) 309odd parity 186<strong>of</strong>fice automation 341–342<strong>of</strong>fice suites. See application suite<strong>of</strong>fshoring 209Ogg 449Oikarinen, Jarkko 83OLAP (Online AnalyticalProcessing) 139OLE (Object Linking <strong>and</strong>Embedding) 160, 309, 517Olmstead v. U.S. 383Olsen, Kenneth 41OMG (Object Management Group)118Omidyar, Pierre 165, 184, 342–344, 343Omidyar Network 343–344Omnifont 268“On Computable Numbers”(Turing) 481One Laptop Per Child 108, 109,144, 149, 314, 331OneNote 221online advertising 116, 123, 210–211, 212, 344–345, 358, 441Online Analytical Processing(OLAP) 139online auctions 31, 100, 120, 343.See also eBayonline backup services 37online banking 39online chat. See chat, onlineOn-line College Library Center(OCLC) 275online fraud <strong>and</strong> scams 100, 344,345–346, 349, 472. See alsoidentity theftonline gambling 346–347online games 347–348. See alsoonline gamblingon AOL 11broadb<strong>and</strong> for 59chatterbots in 442cyberlaw <strong>and</strong> 124for distance education 154identity used in 237Internet cafés for 250multimedia in 322in popular culture 378popularity <strong>of</strong> 104pseudonymity in 17simulation in 432social sciences <strong>and</strong> 441–442user-created content in 487online investing 348online job searching <strong>and</strong> recruiting348–349online music <strong>and</strong> videodistribution. See music <strong>and</strong>video distribution, onlineonline relationships 237online research 259, 274, 349–350,377, 422–423, 441, 518online services 350–351bulletin boards <strong>and</strong> 61–62chat on 83cyberspace <strong>and</strong> 125e-mail on 177in hacking 220instant messaging on 477Internet development <strong>and</strong>247maps used in 292for research 349Web pages provided by 505


572 IndexOnStar 71ontologies <strong>and</strong> data models 267,351, 369, 424OOP. See object-orientedprogrammingOpenBSD 486Open Card 436OpenDoc 160Open Document st<strong>and</strong>ard 160OpenGL 105, 214Open H<strong>and</strong>set Alliance 437OpenMP 324Open Office 21, 309, 381, 405, 483OpenRide 12OpenSocial 441OpenSolaris 486open-source movement 352in computer industry trends108Cunningham in 122database alternatives from132in digital rights management150employment in 179in globalization 209hacking in 220IBM in 235Licklider in 278Linux in 279–280at Micros<strong>of</strong>t 122Micros<strong>of</strong>t <strong>and</strong> 306, 309Netscape Navigator in 16phone s<strong>of</strong>tware <strong>and</strong> 437plug-ins in 375reverse engineering in 405Ruby in 414shareware <strong>and</strong> 428Stallman in 457Torvalds in 478UNIX in 261, 410, 486user-created content in 487voting systems <strong>and</strong> 176open system interconnection (OSI)334OpenType fonts 3Opera 504oper<strong>and</strong>s 354operating system 352–354, 353.See also Linux; Macintosh;Micros<strong>of</strong>t Windows; UNIXfor Altair 206APIs <strong>of</strong> 20, 20for Apple 519backup <strong>of</strong> 37BIOS <strong>and</strong> 49in boot sequence 55compromising 137in computer engineering 102in computer science 110CPU <strong>and</strong> 119–120data security in 137demons in 141device drivers <strong>and</strong> 144–145DLLs in 277for embedded systems 178entrepreneurship in 184ergonomics <strong>of</strong> 185error h<strong>and</strong>ling in 186files in 191–192as finite-state machine 196on flash drive 198fonts in 200hard disk <strong>and</strong> 222–223Java <strong>and</strong> 255kernel <strong>of</strong>. See kernelfor laptops 272marketing <strong>of</strong> 107mathematics s<strong>of</strong>tware in 295memory management by 302message passing in 303multiprocessing under 324multitasking in 324–325networks <strong>and</strong> 334new 145for PDAs 364in personal computers 228portability <strong>and</strong> 95program-level security under137queues in 396in real-time processing 400scheduling <strong>and</strong> prioritizationby 417scripts <strong>and</strong> 421Smalltalk <strong>and</strong> 434system administrators <strong>and</strong>464systems programmer <strong>and</strong>464–465for time-sharing 219Trojan horses in 100virtual machine for 494virtual memory in 224operation(s) 28, 51–52, 54, 137operational amplifier 14operational analysis 139, 291–292operators 65, 68, 341, 354–355,355, 490. See also BooleanoperatorsOpportunity rover 449Opsware 16optical character recognition(OCR) 268, 342, 355–356, 417optical computing 42, 356optical lithography 86optical mouse 321optical scanning, for votingsystems 175–176optimization 95, 96, 115OQL (object query language) 455Oracle 80, 132, 415Oracle Corporation 356–357Oracle Information Architecture356Oracle on Dem<strong>and</strong> 356ORB (Object Request Broker) 310Ordnance Engineering Corporation30organizations, theory <strong>of</strong> 139OrganizedWisdom 367OR operator 51, 54OS/2 236, 305, 307, 374Osborne 1 273OSI (open system interconnection)334OSI MHS (Message H<strong>and</strong>lingSystem) 177OS X 19, 258, 288, 357, 437, 486Ousterhout, John K. 468outer identity 237outline fonts 201Out pointer 60outsourcing 209, 470. See alsoglobalization <strong>and</strong> the computerindustryoverclocking 90overloading 67, 68, 340–341OWL (Web Ontology Language)20, 267Oxygen 141PP2P networks. See file-sharing <strong>and</strong>P2P networksP-159/A (Mohr) 25packages 2, 244PackBot (robot) 253packet, in Ethernet network 283packet-sniffing 100, 250packet-switched network 78, 133,189, 265–266Pac-Man 104Page, Larry 57, 210, 358–359Pagemaker 4, 18, 143, 287, 307PageRank algorithm 57, 210, 211,423, 480Painter’s Algorithm 106palettes, color 93–94, 94Palm, h<strong>and</strong>writing recognitionon 220Palm Pilot 364Palm Treo 364Panama 523paperless <strong>of</strong>fice 216, 342, 382paperless statements 39Papert, Seymour 109, 170, 282,284, 313, 359, 359–360, 483paradox, in Halting problem 97parallel ATA (PATA) 223parallel port 360, 425, 457, 486parallel processing 5, 10, 121–122,204, 263, 285, 389, 461. See alsomultiprocessingParallel Virtual Machine (PVM)217parameters 385PARC. See Xerox PARC laboratoryParis in the Twentieth Century(Verne) 418parity 186, 186Parry (chatterbot) 83parsing 360–362, 361in compiling 95, 96, 96in computer vision 112Knuth’s work in 267recursion in 401<strong>of</strong> scripts 421PAS (Publicly AvailableSpecifications) 457Pascal 362–363BASIC <strong>and</strong> 40branching statements in 55classes <strong>and</strong> 88in computer history 228enumerations in 184–185interpreters for 252–253PL/I <strong>and</strong> 373procedures in 385recursion in 401sets in 185variables in 491Wirth’s work on 514Pascal, Blaise 70, 226, 294passing by reference 385passing by value 385passive matrix display 199passive RFID 405PATA (parallel ATA) 223patches 111patent, for ENIAC 297Patent Reform Act 245patent system 245, 472patent trollers 245Paterson, Tim 321Patient Safety Institute 300PATRIOT Act 383pattern language 142Pattern Language, A (Alex<strong>and</strong>er)142pattern matching 33–34, 402, 485pattern recognition 112, 363–364in counterterrorism 119in data mining 136fuzzy logic in 204in h<strong>and</strong>writing recognition220, 221for information retrieval241Kurzweil’s work in 268in law enforcement 273Paul, Ron 377PayPal 146–147payroll s<strong>of</strong>tware 64PC. See personal computerPC AT 236, 265PCB (printed circuit board) 85PC clones 107, 228, 236, 304, 366,405PC-DOS 321PC-File 427PCI (peripheral componentinterconnect) 63, 86, 237, 319PC Magazine 260p-code 362, 391PCR (polymerase chain reaction)316PC/SC st<strong>and</strong>ard 436PC’s Limited 140PC-Talk 427PC-Write 428PCX 215PC-XT 236PDA (personal digital assistant)364, 437. See also mobilecomputingin computing history 229GPS in 293“hot spots” <strong>and</strong> 250keyboards <strong>and</strong> 265music playback on 327in <strong>of</strong>fice automation 342operating system <strong>and</strong> 354PC market <strong>and</strong> 367personal informationmanagers on 368smartphones <strong>and</strong> 108, 437texting on 477touchscreens on 478PDF (portable document format)364–365in desktop publishing 143for e-books 166in <strong>of</strong>fice automation 342PostScript <strong>and</strong> 380success <strong>of</strong> 3for technical manuals 471for user documentation 159PDP Assembly 65PDP minicomputer 41, 106, 227,312, 485PEAR (PHP Extension <strong>and</strong>Application Repository) 373pedophiles, chat rooms <strong>and</strong> 83PEEK 40peephole optimization 96peering arrangements 332peer network 513pen, with graphics tablet 215pen computing 343Pentium microprocessor 4, 218,244, 304, 305perception 92, 112, 162perceptron 313, 336–337, 359Perceptrons (Papert <strong>and</strong> Minsky)359peripheral hardware 49–50, 54,101, 140, 230, 374Perl (Practical Extraction <strong>and</strong>Repot Language) 24, 83, 365–366, 393, 508permission status 136–137Perot, H. Ross 293perpendicular hard disk 223persistent cookies 116personal ads 120personal computer (PC) 366–367.See also laptop computers;microcomputerbackup for 37BASIC used on 40BIOS in 49bus in 62in CAD 98


Index 573in client-server computing89computer-aided instructionon 99in computing history 228in data acquisition 130by Dell 140in desktop publishing 142as DVR 163–164entrepreneurship in 184file servers <strong>and</strong> 192fingerprint readers on 49graphics on 105, 213–214,322help systems for 225in home <strong>of</strong>fice 230Kay <strong>and</strong> 263Linux <strong>of</strong>fered for 306mainframes <strong>and</strong> 290marketing <strong>of</strong> 106–107McCarthy <strong>and</strong> 297as media center 299microprocessors in 304minicomputer <strong>and</strong> 312motherboard in 319, 319in <strong>of</strong>fice automation 342operating systems for 353podcasts on 375in popular culture 378pr<strong>of</strong>essional programmers<strong>of</strong> 386publications on 260RISC processors in 402sales <strong>of</strong> 108s<strong>of</strong>tware marketed for 293st<strong>and</strong>ards for 457statistical analysis with 458tablet 221, 466as terminal 476UNIX <strong>and</strong> 486user groups for 488user interfaces for 488–489virtual memory in 302in wireless network 513personal data management 42personal digital assistant. See PDApersonal finance s<strong>of</strong>tware 39personal health informationmanagement 300–301, 367–368, 436personal information manager(PIM) 368–369, 389, 437, 466personal robots 314PERT (Program Evaluation <strong>and</strong>Review Technique) 389Pet 228PET (positron emissiontomography) 300PGP (Pretty Good Privacy) 181,383pharming 370phenomenology 162philosophical <strong>and</strong> spiritual aspects<strong>of</strong> computing 28, 148, 237, 369phishing <strong>and</strong> spo<strong>of</strong>ing 369–371anonymity <strong>of</strong> 17banks <strong>and</strong> 39in e-commerce 168fraud from 345by hackers 220identity theft from 238information collection from384in information warfare 242Internet growth <strong>and</strong> 248spam <strong>and</strong> 451viruses spread by 111phoneme 452phone phreaks 314Phong shading 106phosphors 105photography, digital 239, 275, 371,371–372, 382. See also digitalcameras; video editing, digital;Web camphotonic crystal 191Photoshopart <strong>and</strong> 25, 25in desktop publishing 143for image processing 4, 239on Macintosh 287memory for 301for photo editing 372plug-ins for 374photosites 371photovoltaic cells 42PHP 372–373PHP Extension <strong>and</strong> ApplicationRepository (PEAR) 373physical layer 334Physical Symbol System Hypothesis93Piaget, Jean 284, 359Picospan 114picture frames, electronic 484PIM (personal informationmanager) 368–369, 389, 437,466Pinball Construction Set (game)174pipelining 101, 305, 402pipes, in s<strong>of</strong>tware engineering 73piracy. See s<strong>of</strong>tware piracy <strong>and</strong>counterfeitingPitts, Walter 336, 510–511pivot 447Pixar 258pixelsin bitmaps 50, 214in CRTs 317, 318in digital photography 371in GIFs 214in graphics 105, 214in LCD displays 199PKZip 428plain old telephone service (POTS)162, 473Plan 9 410Plankalkül 526PLATO (Programmed Logic forAutomatic Teaching Operations)99, 114, 153, 169, 322, 347Plato Notes 114platters, in hard disks 222, 222PlayStation 446PlayStation 2 205PlayStation 3 108, 205, 305, 462PL/I 373–374Plug <strong>and</strong> Play (PnP) 50, 63, 144–145, 244, 374, 487plug-in 19–20, 79, 374–375, 459,493, 504, 518P-machine 252–253podcasting 19, 251, 375pointers 375–377, 376addressing <strong>and</strong> 3in Algol 7in arrays 24in binary trees 479in buffering 60in C 65in C# 67Java <strong>and</strong> 255in list processing 282logical errors in 61in memory allocation 224in procedures 385in queues 396, 396–397variables <strong>and</strong> 490pointing devices 185POKE 40poker, online 346political activism <strong>and</strong> the Internet377–378democracy <strong>and</strong> 439flash <strong>and</strong> smart mobs 198journalism <strong>and</strong> 259–260Lessig <strong>and</strong> 275podcasts 375user-created content in 487YouTube <strong>and</strong> 524political policy 472polling 243poll-taking 441pollution 216polymerase chain reaction (PCR)316polymorphism 45–46, 340–341polynomial period <strong>of</strong> time 98Pong (game) 205pooled buffer 60popular culture <strong>and</strong> computing378–379, 418–419, 496pop-under ads 344pop-up ads 344pornography 76, 193, 505, 523port 303portability 94–95, 135, 465portable computers. See also laptopcomputers; mobile computing;PDA; smartphoneglobal market for 108h<strong>and</strong>writing recognitionfor 220“hot spots” <strong>and</strong> 250identity theft from 238market entry <strong>of</strong> 107medical use <strong>of</strong> 300military use <strong>of</strong> 310Web browsers on 504wireless access for 514portable document format. See PDFportal 350, 379, 422, 523Portl<strong>and</strong> Pattern Repository 122port numbers 469port scanning 196positive feedback 510positron emission tomography(PET) 300POSIX 429POST (power-on self test) 49, 54postal mail 177POS terminal 89postfix notation 201PostScript 3, 180, 201, 202, 214,364, 379–380poststructuralism 482posttraumatic stress disorder(PTSD) 311POTS (plain old telephone service)162, 473, 496PowerBook 18, 273PowerPC chip 245, 288, 320precedence, <strong>of</strong> operators 355Predator 311predicate calculus 266predictability, fractals <strong>and</strong> 203preemptive multitasking 113,324–325Premiere 493Premiere (Adobe) 493preprocessor directives 66presentation layer 334presentation s<strong>of</strong>tware 32, 64, 380,380–381, 492. See also Micros<strong>of</strong>tPowerPointpresidential election 175, 227, 296,392, 438pressure, haptic interfaces <strong>and</strong> 221pressure gauges 129Pretty Good Privacy (PGP) 181,383Primavera Project Planner 390primitives 18printed circuit board (PCB) 85printers 381, 381–383. See also dotmatrixprinters; inkjet printer;laser printerBraille from 151in desktop publishing 142device driver for 144for digital photos 372parallel port for 360PostScript for 379–380for SOHO market 230st<strong>and</strong>ard for 457toner cartridges for 216print journalism 259–260print spooler demon 140, 396prior art 245prioritization 389, 417–418privacy in the digital age 383–384advocacy groups for 125anonymity <strong>and</strong> 17avatars <strong>and</strong> 237–238banking <strong>and</strong> 39biometrics <strong>and</strong> 49centralization <strong>and</strong> 440Clipper Chip <strong>and</strong> 146computer crime <strong>and</strong> 101cookies <strong>and</strong> 116counterterrorism <strong>and</strong> 119in CRM 123data mining <strong>and</strong> 136e-commerce <strong>and</strong> 168e-government <strong>and</strong> 173encryption <strong>and</strong> 181Google Earth <strong>and</strong> 211,292–293Google Maps <strong>and</strong> 423Internet growth <strong>and</strong> 248ISPs <strong>and</strong> 252law enforcement <strong>and</strong> 273medical information <strong>and</strong> 300network PCs <strong>and</strong> 367online advertising <strong>and</strong> 345online backup services<strong>and</strong> 37policy on 472RFID <strong>and</strong> 406risk <strong>and</strong> 408smart cards <strong>and</strong> 436social networking <strong>and</strong> 441ubiquitous computing <strong>and</strong>484user-created content <strong>and</strong>487Privacy in the Information Age(Cate) 383Privacy on the Line (Diffie <strong>and</strong>L<strong>and</strong>au) 146private class variables 88private key cryptography 146,180–181, 181probability 40–41, 241, 270, 296,389probes, in space exploration 449problem solving, design patternsin 142Probst, Larry 174procedural languages 138, 282,337, 388. See also C (language)Procedure division 91procedures 384–385in Algol 7in BASIC 40, 88in classes 88in COBOL 91in computer science 109,110encapsulation <strong>and</strong> 180in Logo 284–285macros <strong>and</strong> 288–289in mathematics s<strong>of</strong>tware 296


574 Indexin object-orientedprogramming 340–341,388in Pascal 88, 362in Plankalkül 526programming languages<strong>and</strong> 388in scripting languages 421in Simula 431in SQL 455stack <strong>and</strong> 456in structured programming443, 460process control 264processes 151, 154, 186, 264process management 353processor. See CPU; microprocessorProdigy 350production applications 64. Seealso CAD/CAMproduction systems, in artificialintelligence 26–27pr<strong>of</strong>essional organizations 79pr<strong>of</strong>iles, Bluetooth 53pr<strong>of</strong>iling, cookies in 116program(s)addressing in 3applications. See applications<strong>of</strong>twarefor batch processing 257code clarity in 158commenting in 158concurrent 112–113CPU <strong>and</strong> 120data security in 137demons 140–141as finite-state machine 196firewalls <strong>and</strong> 197global flags in 197–198internationalization <strong>of</strong> 247libraries for. See library,programlocalization <strong>of</strong> 247scripts <strong>and</strong> 421in Smalltalk 434in s<strong>of</strong>tware engineering 444stored 227for supercomputers 461testing 394as trade secrets 245–246undecidable 97program code, documentation<strong>of</strong> 74, 158–159. See alsodocumentation; technicalwritingprogram code modules 73–74, 135Program Evaluation <strong>and</strong> ReviewTechnique (PERT) 389program library. See library,programprogrammable calculator 71programmable read-only memory(PROM) 49, 301programming. See also automaticprogramming; concurrentprogramming; object-orientedprogramming; structuredprogramming; systemsprogrammingbenchmarks in 43bugs in 61in data integrity 130<strong>of</strong> Differential Analyzer 426employment in 385–387<strong>of</strong> Internet applications 249libraries for. See library,programin Micros<strong>of</strong>t Windows308–309as pr<strong>of</strong>ession 385–387pseudocode for 390–391for supercomputers 461systems analyst <strong>and</strong> 464in text editor 476<strong>of</strong> UNIVAC 296–297programming environment 387,387–388CASE tools in 73compilers in 253current use <strong>of</strong> 389documentation tools in 159for games 104interpreters in 253for Micros<strong>of</strong>t Windows 309for OS X 357pr<strong>of</strong>essional programmers<strong>and</strong> 386punched cards <strong>and</strong> 392for Ruby 414Smalltalk as 434in s<strong>of</strong>tware engineering 443programming languages 388, 388–389. See also specific languagesin ASP .NET 1assembly language <strong>and</strong> 29Backus-Naur Form for 38binding <strong>and</strong> 45compatibility <strong>and</strong> 94compilers for 95in computing history 227,228for concurrent programming113data in 128data structures in 138for embedded systems 178graphics <strong>and</strong> 105lambda calculus in 87linguistics in 278for multiprocessing 324open-source 352operator precedence in 355parsing 360–361scripting <strong>and</strong> 421string-oriented 82–83variables in 490–491Project Gutenberg 167project management s<strong>of</strong>tware 342,389–390, 418, 444Project Oxygen 484Prolog 389, 390PROM (programmable read-onlymemory) 49, 301PROMIS 140propag<strong>and</strong>a 126–127, 242propagation 131proportional fonts 201propositional calculus 53–54prostheses 335–336, 336, 411protected class variables 88protein folding 46–47, 117Proteins@home 117protein simulation 47, 47protocols 154, 157–158, 177, 360,469, 513. See also file transferprotocols; TCP/IP; VoIPproxy address 197pruning strategy 84–85PS/2 236, 366pseudocode 73, 362, 390–391, 460pseudonymity 17psychoacoustics 449psychology <strong>of</strong> computing 237, 391,482–483psychotherapy, ELIZA <strong>and</strong> 83, 509PTSD (posttraumatic stressdisorder) 311public key cryptography 32, 78–79,79, 145–146, 180–181, 181Publicly Available Specifications(PAS) 457public variables 88, 491puck, with graphics tablet 215punched cards <strong>and</strong> paper tape 392in Analytical Engine 35, 226automatic tabulation <strong>of</strong>229–230commenting in 158in ENIAC 488in mainframes 290in voting systems 175PVM (Parallel Virtual Machine)217Python 392–393, 508QQDOS 321Qpass 146quad-core processors 4, 245quadriplegia 151quality assurance, s<strong>of</strong>tware 61,109, 186, 394–395, 408, 444,464Quality <strong>of</strong> Life Technologies Center424–425Quantum <strong>Computer</strong> Services 11quantum computing 181, 329,395–396Quantum R<strong>and</strong>om Bit GeneratorService 399QuarkXPress 4qubit 395queries 131, 139, 337, 455queue 396, 396–397in circular buffer 60in computer science 109as data structure 138in multitasking 325for scheduling <strong>and</strong>prioritization 417stack <strong>and</strong> 456Quick BASIC 40QuickBooks 195Quicken 39, 195quicksort 447, 447QuickTime 374quote marks, in search engines 423QWERTY keyboard 185Rrace 149, 515–516race condition 113Racter (chatterbot) 83radiation, from monitors 185radio astronomy 42radio frequency identification(RFID) 384, 405–407, 406, 436radio interference 408Radio Shack 228radix 338RAID (redundant array <strong>of</strong>inexpensive disks) 398,398–399for data backup 37in disaster planning <strong>and</strong>recovery 152fault tolerance with 189as file server 192hard disks for 223for networked storage 335virtualization <strong>and</strong> 494Rainbow Six (game) 311RAM (r<strong>and</strong>om access memory) 3,3, 301, 304. See also memoryRAND Corporation 162. See alsoSperry-R<strong>and</strong> Corporationr<strong>and</strong>om access 192r<strong>and</strong>om access memory (RAM) 3,3, 301, 304. See also memoryr<strong>and</strong>omization, in qualityassurance 395r<strong>and</strong>om number generation 295,399range, in DAQ performance 130rape, virtual 125, 494Rapid Selector 63raster data 208Raster Image Processor (RIP) 379RateMDs.com 367–368rationalism 162RCA MKI 325RCA MKII 325RDF (Resource DescriptionFormat) 424RDF Site Summary 413read attribute 191readme 244Read-Only Memory (ROM) 301,304ReadyBoost 70, 198reality, nature <strong>of</strong> 369, 378,482–483Really Simple Syndication (RSS)375, 412–413RealPlayer 327, 374, 428, 504real-time games 104real-time processing 2, 399–400real-time simulations (RTS) 104,311reasoning, in cognitive science 92record data type 138Recording Industry Association <strong>of</strong>America (RIAA) 125, 150, 246record-level security 137recruitment, <strong>of</strong> terrorists 126–127recursion 400, 400–401in Algol 7in FORTRAN 202lambda calculus in 87in LISP 281in Logo 359in mergesort 447in quicksort 447Ritchie <strong>and</strong> 409in shellsort 447trees <strong>and</strong> 479recycling <strong>of</strong> computers 140red, in RGB 93Red Hat 279, 352reduced instruction set computer(RISC) 261, 288, 305, 320,401–402redundancy 39, 247, 427redundant array <strong>of</strong> inexpensivedisks. See RAIDrefactoring 74reference counter 224referential integrity 130, 131referral network, <strong>of</strong> Amazon.com 9refraction 190–191registers 28, 304regression analysis 136, 458regular expression 402–403, 485relational database model 131–132,139, 292, 455. See also databasemanagement systemsrelations 455relationships, online 237relevance, in information retrieval241reliability 36, 39, 130–131religion, extremist 127Remington-R<strong>and</strong> UNIVAC 90, 296remote backup services 37remote procedure call (RPC) 154,309, 438, 509Reno, ACLU v. 125repetitive stress injuries (RSIs)185, 265Replay TV 163Report Program Generator (RPG)412repository 116. See also datawarehouse


Index 575Representational State Transfer(REST) 509reputation systems 480–481research, online. See onlineresearchresearch laboratories in computing403–404. See also specificlaboratoriesResearch Library InformationNetwork (RLIN) 275resistive touchscreen 478resource consumption, <strong>of</strong>computers 216resource data type 373Resource Description Format(RDF) 424resource lock 113resource management 151, 389REST (Representational StateTransfer) 509retina scanning 48retirement planning 195reverse engineering 4, 404–405Reynolds, Craig 28RFID (radio frequencyidentification) 384, 405–407,406, 436RGB 93, 371Rhapsody 326Rheingold, Howard 198, 407–408,493Rheingold Associates 407RIAA (Recording IndustryAssociation <strong>of</strong> America) 125,150, 246Rich Text Format (RTF) 135, 413RIGHT SHIFT bitwise operator 52Riley, Bridget 25RIM BlackBerry 220, 364, 437Ringley, Jennifer 504RIP (Raster Image Processor) 379RISC (reduced instruction setcomputer) 261, 288, 305, 320,401–402Rise <strong>of</strong> the Expert Company, The(Feigenbaum) 190risks <strong>of</strong> computing 408–409, 438Ritchie, Dennis 65, 409, 409–410,429, 485River, The 114Rivest, Ron 146, 181RLE (run-length encoding) 214RLIN (Research LibraryInformation Network) 275Roadrunner 462Roberts, Lawrence G. 145, 266RoboHelp 225robotics 410–412academic credentials for 79artificial intelligence in 27in artificial life 28artificial limbs <strong>and</strong> 335–336in assistive technologies 425Breazeal’s work in 56–57Brooks’s work in 59–60in CAM 98computer science in 110computer vision in 112cybernetics in 124finite state machines in 196frames used in 313genetic algorithms in 208haptic interfaces in 222industrial use <strong>of</strong> 182–183in law enforcement 273“laws” <strong>of</strong> 418, 433layered architecture for 59military use <strong>of</strong> 311Minsky’s work in 313natural language processingin 330neural networks in 337personal robots 314research institutions in 403risk <strong>and</strong> 408in science fiction 418social impact <strong>of</strong> 439in space exploration 449for telepresence 474–475Robotics in Practice (Engelberger)183Robotics in Service (Engelberger)183Robot Wars 410Rock, Andrew 318Rockefeller Differential Analyzer(RDA2) 63RoCo (robot) 57role-playing games 104, 237, 347Rollins, Kevin B. 140ROM (Read-Only Memory) 301Roomba (robot) 60, 253root, <strong>of</strong> tree 138rootkit 150, 446root status 136Rosenblatt, Frank 313, 336Rosenbleuth, Arturo 510–511routers 87, 197routines 45, 49, 197–198, 200,207, 296royalties, for Internet radio 251RPC (remote procedure call) 154,309, 438, 509RPG (Report Program Generator)412R. R. Donnelly 292RSA algorithm 146, 181RSIs (repetitive stress injuries)185, 265RSS (Really Simple Syndication)375, 412–413RTF (Rich Text Format) 135, 413RTS (real-time simulations) 104,311Ruby 413–414Ruby on Rails 414ruggedized laptops 273rules 188, 204, 270, 271run-length encoding (RLE) 214run-time errors 186R.U.R. (Čapek) 410, 418Rural Free Delivery 153SSABRE 404SAC (Strategic Air Comm<strong>and</strong>) 311Safari 504SAGE (Strategic Air GroundEnvironment) 104, 139, 212,235, 311SageTV 299SAIL (Stanford ArtificialIntelligence Laboratory) 59,145, 403sales applications 64Salesforce.com 21salon.com 259SAM (s<strong>of</strong>tware asset management)244Samba 405sampling, in computer vision 112sampling rate 130, 399–400SAN (storage area network) 192,335s<strong>and</strong>box 255Sanger, Larry 500sans serif fonts 201SAP 293, 415–416, 462SAP Business ByDesign 415SATA (serial IDE) 223satellite communications network320satellite Internet service 58, 416SAX (Simple API for SML) 161Scalia, Antonin 274scams, online 100, 344, 345–346,349, 472. See also identity theftscanner 12–13, 48, 268, 342, 355,416–417scheduling <strong>and</strong> prioritization 389,417–418schema. See framesScheme 281Schickard, Wilhelm 70Schmidt, Eric 358Schmitt, William 297Schockley Semiconductor Labs 318Scholastic Aptitude Test (SAT) 71school shootings 126science fiction <strong>and</strong> computing 220,335, 410, 411, 418–419Scientific Atlanta 87scientific computing applications27, 110, 130, 136, 419–421, 420,431–432. See also FORTRANscientific instrumentation 419–420scientific modeling 106. See alsosimulationScooba (robot) 253scope, <strong>of</strong> variables 491Scottrade 348screen savers 203scripting languages 421–422.See also awk; JavaScript; Lua;Perl; PHP; Python; Ruby; Tcl;VBScriptfor administrative tasks 464in Ajax 5–6applets <strong>and</strong> 19in ASP 1in authoring systems 32for CGI 80–81computer science in 110for database development132with DHTML 233in DOM 161for Internet applicationsprogramming 249Java <strong>and</strong> 256regular expressions in 402in shell 428, 429–430in s<strong>of</strong>tware installation 244in text editor 476in UNIX 485–486Web servers <strong>and</strong> 508scriptwriting 194SCSI (Small <strong>Computer</strong> SystemsInterface) 63, 197, 223, 335Sculley, John 258SDRAM (synchronous DRAM) 301search engine 422–424, 423.See also Google; informationretrievalAjax pages <strong>and</strong> 6Boolean operators in 54in computing history 229in cyberstalking 126for information retrieval241, 241in Internet growth 248knowledge representationin 267Micros<strong>of</strong>t research in 306natural language processingin 330in online advertising 344for online research 350portals <strong>and</strong> 379Semantic web <strong>and</strong> 424searching 109, 240–241, 401, 402,446–448“Search Inside the Book” 9Searle, John 93Seattle <strong>Computer</strong> Products 321Second Life 347, 347–348as computer game 104cyberlaw <strong>and</strong> 124distance education in 154study <strong>of</strong> 391, 441–442virtual community <strong>of</strong> 494Second Self, The (Turkle) 482sector interleaving 222sectors 222Secure Digital (SD) memory card198secure shell (ssh) 248Secure Sockets Layer (SSL) 79, 503security 100–101. See alsocomputer crime; data securityauditing <strong>and</strong> 31banking <strong>and</strong> 39buffer overflows <strong>and</strong> 60cable modems <strong>and</strong> 69cookies <strong>and</strong> 116<strong>of</strong> credit card transactions146digital certificates <strong>and</strong> 78–79in e-commerce 168e-mail <strong>and</strong> 177employment in 178, 179forensics in 102–103in information warfare 242Internet growth <strong>and</strong> 248JavaScript <strong>and</strong> 256<strong>of</strong> mainframes 290–291in Micros<strong>of</strong>t Windows 309in military systems 311Mitnick <strong>and</strong> 314NAT <strong>and</strong> 469networks <strong>and</strong> 334, 450in operating systems 354outsourcing <strong>of</strong> 108risk <strong>and</strong> 408system administrators <strong>and</strong>464telnet <strong>and</strong> 248<strong>of</strong> voting systems 176<strong>of</strong> Web servers 508on wireless networks 513security patches 111sed 365seed 399Sega 205SEI (S<strong>of</strong>tware EngineeringInstitute) 444selection sort 446–447selection statements. See branchingstatementsSelectric typewriter 516self 369self-replicating computers 329semantic analysis 96, 96semantics 270semantic Web 424Berners-Lee <strong>and</strong> 44in counterterrorism 118for information retrieval 241knowledge representationin 267ontologies in 351, 369technological singularity<strong>and</strong> 433Web 2.0 <strong>and</strong> 503semaphore 113, 151semiconductors 85, 318semipassive RFID 405sendmail 60, 111, 177senior citizens <strong>and</strong> computing424–425, 434sensors 178, 178, 208, 496September 11, 2001, attacks 53,383, 439sequential access 192


576 Indexsequential calculator 5serial IDE (SATA) 223serial numbers 117–118serial port 360, 425, 486serial transmission 133serif fonts 201server 89, 133. See also file server;Web serverserver message block (SMB) 335service broker 426service bureaus 64service-oriented architecture (SOA)110, 415, 425–426, 509service robot 183, 410servlets 255session layer 334SETI@home 116–117, 155, 217, 462sets 67, 184–185set theory 87, 351Seven Cities <strong>of</strong> Gold (game) 174sexual content, in chat rooms 83SGI (Silicon Graphics) 122SGML (St<strong>and</strong>ard GeneralizedMarkup Language) 232, 520Shakey 411Shamir, Adi 146, 181Shannon, Claude E. 84, 103, 241,404, 426, 426–427, 463SHARE 373shareware <strong>and</strong> freeware 104, 293–294, 352, 427–428Shaw, Cliff 162sheet-fed scanner 416shell 110, 354, 421, 428–430, 485,488Shell, Donald L. 447shellsort 447shift operators 51shift-register algorithm 399Shimomura, Tsutomu 314Shockley, William 42, 85, 404Shockwave 20Sholes, Christopher Latham 265Shor, Peter 395Short Message Service (SMS) 477SHRDLU 27, 187Shuttlesworth, Mark 279Sidekick (Borl<strong>and</strong>) 368sign 338signal conditioning circuit129–130signal processors 178signatures. See authentication;certificate, digitalsignific<strong>and</strong> 338silicon 85Silicon Graphics (SGI) 122Silicon Snake Oil (Stoll) 458Sim City 103Simon 463Simon, Herbert 26, 33, 85, 93, 162,190, 295Simonyi, Charles 430–431Simple API for SML (SAX) 161Simple Mail Transport Protocol(SMTP) 177, 177, 247Simple Object Access Protocol 1,118, 438, 508–509, 520Sims, The (game) 174, 441Simula 88, 263, 339–340, 431, 459simulation 431–432. See alsoemulation; virtualizationanalog computers in 14biological 47, 47in CAD system 98<strong>of</strong> cognition 92–93in decision support systems139fractals used in 203GIS in 208haptic interfaces for 222military use <strong>of</strong> 311in Nintendo Wii 205r<strong>and</strong>om number generationfor 399in scientific applications 420Simula for 431Smalltalk for 434in social sciences 441in virtual reality 271virtual reality <strong>and</strong> 495–496simulation games 103simultaneous processing 431singularity, technological 269,432–433Singularity Is Near, The (Kurzweil)269, 433site licenses 244SixDegrees.com 440Sketchpad 263, 463Skoll, Jeff 165, 343Skype 87, 496–497Slashdot 260, 480slide rule 13slides 380Slot-1 chipset architecture 86small businesses 195Small <strong>Computer</strong> System Interface(SCSI) 63, 197, 223, 335Small Office/Home Office (SOHO)230–231Smalltalk 88, 228, 263–264, 340,389, 431, 433–434smart buildings <strong>and</strong> homes 107,434–435, 435smart card 405, 435, 435–436smart cars 71–72smart mobs 198, 407, 477Smart Mobs (Rheingold) 198, 407smartphone 436–438, 437. See alsomobile computingin computer industry 108in computing history 229distance education on 154GPS in 293“hot spots” <strong>and</strong> 250iPhone 19, 147, 258keyboards <strong>and</strong> 265multimedia on 147music playback on 327PDAs <strong>and</strong> 364podcasts on 375touchscreens on 478SMB (server message block) 335SMP (symmetric multiprocessing)323SMS (Short Message Service) 477SMTP (Simple Mail TransferProtocol) 177, 177, 247sneaker-net 200Sneakers (film) 378sniping 31Snobol 82–83Snow, John 239SOA (service-oriented architecture)110, 415, 425–426, 509SOAP 1, 118, 438, 508–509, 520social bookmarking 294. See alsodel.icious.ussocial bots 83–84, 442, 481social engineering 100, 220, 314,370social impact <strong>of</strong> computing438–440in computer literacy 109Dertouzos on 141<strong>of</strong> digital photography 372<strong>of</strong> e-government 172–173Lanier on 272<strong>of</strong> online identity 237–238Shannon’s work on 427smart mobs 407virtual worlds <strong>and</strong> 348webcams in 504<strong>of</strong> World Wide Web 517social networking 440–441cyberbullying <strong>and</strong> 126cyberstalking <strong>and</strong> 126in globalization 209in intelligence agencies 119in Internet growth 248for job-hunting 349persistence <strong>of</strong> postings 332political activism <strong>and</strong> 377s<strong>of</strong>tware agents <strong>and</strong> 289in s<strong>of</strong>tware engineering 74support groups <strong>and</strong> 367technological singularity<strong>and</strong> 433user-created content in 487as virtual community 494in Web 2.0 502World Wide Web <strong>and</strong> 518by young people 523social sciences <strong>and</strong> computing441–442social security numbers 408Socialtext 501social virtualization 494–495social worlds 104society <strong>of</strong> mind 237, 313, 314, 442Society <strong>of</strong> Mind, The (Minsky) 237,313, 336Socket 7 chipset architecture 86sockets 469S<strong>of</strong>tbank 407s<strong>of</strong>tware. See application s<strong>of</strong>twares<strong>of</strong>tware agents 442–443artificial intelligence in 27demons <strong>and</strong> 141globalization <strong>and</strong> 209Maes’s work in 289at MIT Media Lab 314natural language processingin 330ontologies in 351in personal informationmanagers 368psychology <strong>and</strong> 391in semantic Web 424for spam 451technological singularity<strong>and</strong> 433Web 2.0 <strong>and</strong> 503S<strong>of</strong>tware Agents Group 289s<strong>of</strong>tware applications. Seeapplication s<strong>of</strong>twares<strong>of</strong>tware asset management (SAM)244s<strong>of</strong>tware crisis 443s<strong>of</strong>tware engineering 22, 443,443–444with Ada 2benchmarks in 43blogging in 53CASE for 73, 73–74compatibility <strong>and</strong> 94–95computer engineering <strong>and</strong>101in computer science 109Cunningham’s work in 122under Defense Department2documenting in 159employment in 178emulators in 179flowcharting in 200<strong>of</strong> games 104with intentionalprogramming 430patterns used in 142pr<strong>of</strong>essional programmingin 386quality assurance <strong>and</strong>394–395reverse engineering 404–405risk <strong>and</strong> 408Wirth on 514S<strong>of</strong>tware Engineering Institute(SEI) 444s<strong>of</strong>tware installation 244s<strong>of</strong>tware piracy <strong>and</strong> counterfeiting444–445. See also copyprotection; intellectual property<strong>and</strong> computingapplication service providers<strong>and</strong> 21copy protection <strong>and</strong> 117–118,246digital rights management<strong>and</strong> 149–150in global market 108, 210by hackers 219–220policy on 472S<strong>of</strong>tware Publishers Association(SPA) 117s<strong>of</strong>tware suite. See application suites<strong>of</strong>tware testing 61, 109, 186,394–395, 408, 444, 464SOHO (Small Office/Home Office)230–231Sojourner 449Solaris 461solar power 42solid state computer 227Sony 108, 150, 445–446Sony ACID Pro 326Sony PlayStation 2 205Sony PlayStation 3 108, 205sorting <strong>and</strong> searching 109, 240–241, 401, 402, 446–448sound cards 326sound file formats 448–449source bits 51source code 95, 158SPA (S<strong>of</strong>tware PublishersAssociation) 117space exploration <strong>and</strong> computers45, 358, 410, 410, 449–450Space Invaders (game) 205Space Shuttle 449Spacewar 103Spafford, Eugene H. 450spam 17, 111, 332, 384, 450–451spambots 83spam filters 41, 117, 370, 451SPARC (Scalable ProcessorARChitecture) 402, 460–461,517speakers 326specialized applications 22specification 444spectral equivalence classes 452speech recognition <strong>and</strong> synthesis451–452artificial intelligence for 27for assistive devices 268Bell Labs <strong>and</strong> 42keyboards <strong>and</strong> 265Kurzweil’s work in 268, 269language translation with271military use <strong>of</strong> 311neural networks in 337in user interfaces 489Sperry-R<strong>and</strong> (Sperry-Univac)Corporation 30, 106, 168, 227,297spiders 422spiral model 444, 444Spirit rover 449spiritual aspects <strong>of</strong> computing.See philosophical <strong>and</strong> spiritualaspects <strong>of</strong> computing


Index 577Spitzer, Eliot 453spo<strong>of</strong>ing. See phishing <strong>and</strong> spo<strong>of</strong>ingspool. See bufferingsports betting 346spreadsheet 452–453, 454. See alsoLotus 1-2-3; Micros<strong>of</strong>t Excel;VisiCalcfor business data processing64early market for 206mathematics with 295in <strong>of</strong>fice automation 342PC <strong>and</strong> 366as personal informationmanager 368statistical analysis with 458templates for 475sprites 16Sproull, Bob 463SPSS 458Spybot Search & Destroy 453spyware <strong>and</strong> adware 111, 344–345,384, 453–454SQL (Structured Query Language)454–455, 455computer science in 110for database management132for data warehouse 139for information retrieval 241Oracle <strong>and</strong> 356procedures <strong>and</strong> 337Squeak 264, 434SRI (Stanford Research Institute)320SSL (Secure Sockets Layer) 503stack 456abstract 129in C 67in C++ 68as data structure 138in Forth 201queue <strong>and</strong> 396in recursion 401Stafford-Fraser, Quentin 504Stalkerati 441stalking 100, 126, 248, 252, 523Stallman, Richard 150, 279, 352,456–457St<strong>and</strong>ard Generalized MarkupLanguage (SGML) 232, 520st<strong>and</strong>ards in computing 457Stanford Artificial IntelligenceLaboratory (SAIL) 59, 145, 403Stanford Cart 59, 411Stanford Knowledge SystemsLaboratory 403Stanford Research Institute (SRI)320, 411Stanford Robotics Laboratory 403Stanley (car) 71–72Starflight (game) 174StarLogo 285star network 283, 283Star Office 352state-based devices 195static array 24static RAM 301static variables 491statistics <strong>and</strong> computing 270, 271,296, 330, 420, 441, 457–458stepper motor 222stepwise refinement 460Sterling, Bruce 125Steve Jackson Games 124–125Stockhausen, Karlheinz 325stock trading 348Stoll, Clifford 170, 440, 458, 494storage, networked 152, 192, 335storage area network (SAN) 192,335storage media 191stored program 227storyboarding 194Strategic Air Comm<strong>and</strong> (SAC) 311Strategic Air Ground Environment(SAGE) 104, 139, 212, 235, 311strategic planning 291stratification 439streaming 458–459buffering in 60codecs for 92digital convergence <strong>and</strong> 147in Internet growth 248<strong>of</strong> Internet radio 251<strong>of</strong> multimedia 322network <strong>and</strong> 335real-time processing <strong>and</strong> 400<strong>of</strong> television episodes326–327stress gauges 129STRETCH 10string-oriented languages 82–83strings. See characters <strong>and</strong> stringsstriping 398Stroustrup, Bjarne 67, 341, 459,459–460struct 65, 138structured data types 138structured programming 460. Seealso Algol; C (language); Pascalwith Ada 2BASIC <strong>and</strong> 40C++ <strong>and</strong> 459COBOL <strong>and</strong> 91in computer science 109in computing history 228Dijkstra <strong>and</strong> 151documentation in 159encapsulation in 180FORTRAN <strong>and</strong> 202Pascal. See Pascalin s<strong>of</strong>tware engineering 443subroutines <strong>and</strong> 180variables in 491Structured Query Language. SeeSQLstyles 72subatomic particles 395–396subprograms. See proceduressubrange 185subroutine. See proceduressubscripts, in arrays 23, 24substitution ciphers 180substrate 85Sun Labs 463Sun Microsystems 113, 146, 255–256, 261, 324, 460–461SunOS 461Sun SPARC (Scalable ProcessorARChitecture) 402, 460–461,517supercomputer 461, 461–462benchmarks for 43cell chip for 205cluster computing as 217in computing history 227Cray’s work with 121–122government funding <strong>of</strong> 212grid computing as 216Prolog used in 390Superfund Program 216Super Mario Brothers (game) 205Super Socket 7 chipset architecture86Super VGA (SVGA) 213supply chain management 64, 415,462–463support groups, online 367Suraski, Zeev 372surface acoustic wave (SAW) 478surfing 422SurfWatch 505surgery 300surveillancebiometrics with 49in computer attacks 100in counterterrorism 118–119Electronic FrontierFoundation <strong>and</strong> 125with Google Earth 292image processing in 239in law enforcement 273privacy <strong>and</strong> 383surveys 441Sutherl<strong>and</strong>, Ivan Edward 463SVGA (Super VGA) 213swapfile 302Swift, Jonathan 418Swiss Federal Institute <strong>of</strong><strong>Technology</strong> (ETH) 362switch. See branching statementsswitched Ethernet systems 283switch statement 55Swoogle 424Symbian 437symbolic assembler 29symbolic programming 29symbolists 93symmetric multiprocessing (SMP)323synchronous DRAM (SDRAM) 301synchronous processes 154syntax error 61synthesizer, musical 268–269, 325system administrator 178, 421, 464system chart 200system clock 90systems analyst 464systems programming 29, 65, 67,464–465System X 217SYSTRAN 271Ttables, in relational databases 131tablet PC 221, 466tabulating machine 229, 230, 294,341, 392“Tactical Iraqi” (game) 311Tagged Image File Format (TIFF)215tags, markup 232, 520TAI (<strong>Technology</strong> AchievementIndex) 143T<strong>and</strong>y 228tape drives 37, 258, 467, 467–468Tapscott, Don 524tasks, in groupware 217tax-avoidance schemes 345tax returns 79, 172, 195Tcl 468TCP (Transmission ControlProtocol) 469TCP/IP 468–470, 469Cisco’s work on 87in computer science 110development <strong>of</strong> 78DNS in 155e-mail <strong>and</strong> 177in Internet 247Internet <strong>and</strong> 518for local area networks 284for networks 334UNIX support for 261Web server <strong>and</strong> 508TD Ameritrade 348technical publishing 159technical support 140, 178, 210,230, 470–471technical writing 471–472. See alsodocumentation; documentation<strong>of</strong> program codetechnological singularity 269,432–433<strong>Technology</strong> Achievement Index(TAI) 143technology policy 472<strong>Technology</strong>-Related AssistanceAct 152Teilhard de Chardin, Pierre 369telecommunications 110, 472–473,496–497Telecommunications Act 473telecommuting 473–474telegraph 383, 493telephone 38, 58, 69, 266, 314, 383,496. See also modemtelepresence 300, 411, 474, 474–475. See also videoconferencingtelerobotics 474–475, 496teletex 168Teletype 151, 265, 381, 476television 163–164, 194television networks, onlinedistribution by 326–327telnet 248, 476template 68, 88, 96, 98, 112, 355,475terabyte 51, 298TeraGrid 217Termin, Lev 325terminal 475–476terminate <strong>and</strong> stay resident (TSR)function 321terrorism. See cyberterrorismTexas Instruments 85TeX system 267text editor 110, 387, 476, 517. Seealso word processingtexting 113, 126, 198, 477, 494,523text-to-speech s<strong>of</strong>tware 151texture mapping 106TFT (thin film transistor) 199Therac 25 408thermistors 129thermocouples 129thermostats 124thin client 89thin film transistor (TFT) 199Thinking Machines Inc. (TMI) 461Thompson, Ken 261, 409–410,429, 485Thomson, James 13Thomson, William (Lord Kelvin)13THOR 297threads 61, 113, 154, 201, 324, 3533D graphics 213–2143DMark 433DO 1743G (third generation) 58, 514three laws <strong>of</strong> robotics 418, 433thumb drive 37, 198–199, 200,446, 487thumb tribes 198TiddlyWiki 511TIFF (Tagged Image File Format)215Time Machine 357Time magazine 207time series analysis 458time-sharingBASIC <strong>and</strong> 40in computer-aidedinstruction 99e-mail for 176–177government funding for 212hackers <strong>and</strong> 219Licklider’s work in 278mainframes <strong>and</strong> 290McCarthy’s work on 297shell <strong>and</strong> 428


578 Indexterminals in 475–476user interface for 488Weizenbaum’s work on 509Time-Warner 11–12, 350TiVo 163Tk 468TMI (Thinking Machines Inc.) 461T<strong>of</strong>fler, Alan 432token 95–96, 201, 360–361token ring network 283, 283TomTom 293toner 382Tools for Thought (Rheingold) 407topology 295torrents 193Torvalds, Linus 184, 279, 352,456–457, 477–478Toshiba 108touchpad 321, 489touchscreen 19, 175–176, 364, 466,478, 489TP (transaction processing) 130,291, 310, 478–479trace 61trackball 185, 321, 489tracker (torrent) 193trade secrets 245–246transaction processing (TP) 130,291, 310, 478–479transducer 129transfer speeds 299transformation 33transistorsin calculator 71on chips 86in computing history 227development <strong>of</strong> 42invention <strong>of</strong> 85in minicomputers 312Moore’s work with 318Sony <strong>and</strong> 445in supercomputers 461transition 196Transmeta 478Transmission Control Protocol(TCP) 469transparency, privacy <strong>and</strong> 384transport layer 334trap-door function 145–146travel, s<strong>of</strong>tware agents for 289Traveling Salesman Problem97–98tree 138, 479, 479–480trends <strong>and</strong> emerging technologies102, 480in computer industry 108in database management132in data compression 134in data mining 136in digital photography 372in e-commerce 168–169in education 170in e-mail 177in expert systems 188in financial s<strong>of</strong>tware 195in game consoles 205for haptic interfaces 221–222in Internet applicationsprogramming 249in laptop computers 273in medicine 300–301in networks 334–335in object-orientedprogramming 341in <strong>of</strong>fice automation 342in operating systems 354in PCs 366–367in search engines 423in telecommuting 474in user interfaces 489in work processors 517in World Wide Web 518Treo (Palm) 364Trilogy 10–11Trojan horse 100, 111TRS-80 228True BASIC 40TrueType fonts 3, 201Truscott, Tom 333trust <strong>and</strong> reputation systems480–481TRUSTe 345, 384TRW 206TSR (terminate <strong>and</strong> stay resident)function 321Tucows.com 428tuples 158Turbo Pascal 363, 387, 514Turbo Prolog 390Turing, Alan Mathison 87, 103,196, 481–482. See also Turingmachine; Turing testTuring Machine 481computability <strong>and</strong> 97, 295Turing Test 26, 83, 481Turk, the 84, 410Turkle, Sherry 237, 482–483turnkey system 493Tur<strong>of</strong>f, Murray 114turtle, in Logo 284, 359turtle robot 124tweening 16Twiki 5112001: A Space Odyssey (film) 378,418, 419, 451two-way satellite system 416TX-2 463Type 1 fonts 3typeface. See fontstypes. See data typestypewriters 381typing, ergonomics <strong>of</strong> 185typography, computerized 267,483. See also fontsUUART (Universal AsynchronousReceiver-Transmitter) 425ubiquitous computing 331, 384,484–485. See also digitalconvergenceUbuntu 279, 280, 306, 309UCSD P-System 362, 387–388, 391UDDI (Universal DescriptionDiscovery <strong>and</strong> Integration)508–509UDP (User Datagram Protocol)469Ulam, Stanislaw 432Ultima (game) 104, 174Ultima Online (game) 347ultra broadb<strong>and</strong> 58Ultra Card 436ultra-wide b<strong>and</strong> (UWB) 53UML (Unified Modeling Language)315Unabomber 261Unbox 327Unfinished Revolution, The(Dertouzos) 141Unicode characters 82, 247Unified Modeling Language (UML)315uniform resource locator (URL)43, 157–158, 503, 508, 518. Seealso DNSUnimate (robot) 182–183, 410Unimation 182, 410uninterruptible power supply(UPS) 37, 152union 65Unisys Corporation. See Sperry-R<strong>and</strong> CorporationUnited Nations 251UNIVACin computing history 227Cray’s work on 121Hopper’s work on 231mainframes <strong>and</strong> 290marketing <strong>of</strong> 106Mauchly’s work on 296–297memory in 301in popular culture 378Presper’s work on 167–168social impact <strong>of</strong> 438Univac (company) 212Universal Asynchronous Receiver-Transmitter (UART) 425universal computer concept 179,196, 336Universal Description Discovery<strong>and</strong> Integration (UDDI)508–509Universal Plug <strong>and</strong> Play (UPnP)374universities 212, 219. See alsospecific universitiesUniversity <strong>of</strong> Phoenix 170UNIX 485–486. See also LinuxAPI <strong>of</strong> 354ASP .NET on 1awk scripting languagefor 33compiling in 97in computer history 228–229C on 65data security in 136–137development <strong>of</strong> 42, 312, 404,409–410file attributes in 191file transfer for 194GNU project <strong>and</strong> 456help system in 225Internet <strong>and</strong> 518Joy’s work on 261kernel in 264Linux <strong>and</strong> 279mathematics s<strong>of</strong>tware in 295multitasking in 325netnews <strong>and</strong> 333in OS X 19, 258, 288, 357parsing in 360programming environment<strong>of</strong> 387real-time processing in 400regular expressions in 402scripting in 422shell <strong>and</strong> 428–429s<strong>of</strong>tware installation on 244Sun <strong>and</strong> 461terminals <strong>and</strong> 476text editing in 476time-sharing with 353Torvalds work with 477. Seealso Linuxuser groups for 488user interface <strong>of</strong> 488in workstations 517Unlawful Internet GamblingEnforcement Act 346upload speeds 58UPnP (Universal Plug <strong>and</strong> Play)374UPS (uninterruptible powersupply) 37, 152upward compatibility 94urban playground movement 198URL (uniform resource locator)43, 157–158, 503, 508, 518. Seealso DNSusability 141, 394, 489USA.gov 172USB (universal serial bus) 486–487in boot sequence 55for data backup 37for digital cameras 372for external hard disks 223FireWire <strong>and</strong> 197for flash drives 198introduction <strong>of</strong> 63on laptops 272parallel ports <strong>and</strong> 360serial ports <strong>and</strong> 425U.S. Department <strong>of</strong> Defense. SeeARPANET; DARPAUsenet. See netnews <strong>and</strong>newsgroupsUser Account Control 100, 307user accounts 354user-created content 487–488on Amazon.com 9blogs as 52, 53on bulletin boards 61–62in computing history 229in development <strong>of</strong> WorldWide Web 44on eBay 165–166, 343in e-commerce 169in globalization 209mashups 294multimedia 323open-source movement <strong>and</strong>352in personal healthmanagement 367–368in trust <strong>and</strong> reputationsystems 480video 493, 524in Web 2.0 502in Wikipedia 511–513in wikis 511on YouTube 493, 524User Datagram Protocol (UDP) 469user-defined data types 138, 286,362user documentation. Seedocumentation, useruser groups 260, 427, 488user interface 488–489. Seealso application programinterface; graphics tablet; hapticinterfaces; keyboard; mousecomputer science in 110copyright <strong>and</strong> 245for decision support systems140for digital dashboard 148disabled users <strong>and</strong> 152Engelbart’s work in 182graphics on 105for Macintosh 18, 228, 258,287, 307for Micros<strong>of</strong>t .NET 307in Micros<strong>of</strong>t Visual Basic 388in Micros<strong>of</strong>t Windows 206,308in Micros<strong>of</strong>t Windows Vista307in Nintendo Wii 205for operating systems 354psychology <strong>and</strong> 391Sketchpad <strong>and</strong> 463for terminals 476in UNIX 485in virtual reality 271voice-controlled 330by Xerox PARC 105, 404Userl<strong>and</strong> S<strong>of</strong>tware 52users 37, 100, 130, 394user status 136, 137, 191Utah Street Networks 87UUCP 333


Index 579Vvacuum, robotic 253vacuum tube 85, 226, 525–526v<strong>and</strong>alism, electronic 100van Rossum, Guido 392variables 490–491. See also flagas address 3in Algol 7in Analytical Engine 35in BASIC 40binding <strong>and</strong> 45in classes 88COBOL <strong>and</strong> 91in compiling 96constants <strong>and</strong> 115in data mining 136functional languages <strong>and</strong>203–204in Pascal 362in PL/I 373in procedural languages 388in procedures 385in scripting languages 421in Smalltalk 433in Tcl 468variance, analysis <strong>of</strong> 458VAXcluster 216VAX minicomputers 41, 261VBA (Visual Basic for Applications)289, 422VBScript 422, 491–492, 508VDT (Video Display Terminal) 317Veblen, Oswald 86vector data 208, 337vectored interrupts 243vector fonts 201vector graphics 50, 214vector processing 461VeriSign 78–79Verizon Fios 58, 69, 191Verne, Jules 418Verro (robot) 253versioning 74, 115, 159VESA bus 63VGA (Video Graphics Array) 62,213, 236vi 261video, on PCs 322video accelerator 214video blogging 52video buffer 60video cameras, digital 372, 446,492video card. See graphics cardvideo cassette recorders (VCRs)163videoconferencing 83, 322, 342,474, 492–493, 497. See alsotelepresenceVideo Display Terminal (VDT) 317video distribution, online. Seemusic <strong>and</strong> video distribution,onlinevideo editing, digital 493. See alsophotography, digitalvideo games. See computer gamesVideo Graphics Array (VGA) 62,213, 236video players, digital. See music<strong>and</strong> video players, digitalVideo RAM (VRAM) 214Viewpoints Research Institute 264Viking l<strong>and</strong>ers 449Vinge, Verner 28, 419, 432violence, in games 104Violence Against Women Act 126virtual classes 88virtual community 83, 114, 125,407, 440, 493–494, 518Virtual Community, The (Rheingold)407virtual functions 68, 88virtual identities 237–238, 348virtualization 209, 494–495. Seealso simulationvirtual library 166–167, 211, 260virtual machine 95, 179, 286,434, 494. See also Java VirtualMachinevirtual memory 3, 224, 261, 302,308, 353Virtual Private Network (VPN)494, 513virtual property law 124virtual reality 495, 495–496art in 26in cyber culture 126digital convergence <strong>and</strong> 148Lanier’s work in 271–272military use <strong>of</strong> 311multimedia <strong>and</strong> 322neural interfaces <strong>and</strong> 335programming environmentin 388in science fiction 419for telepresence 474ubiquitous computing <strong>and</strong>484as user interface 489wearable displays for 501Virtual Reality (Rheingold) 407Virtual Reality Modeling Language(VRML) 496virtual school 170virtual worlds 104, 124, 237, 347–348, 391, 441–442, 482virus. See computer virusVisiCalc 18, 106, 258, 295, 366,452, 458vision, computer 27, 112, 363, 411VisualAge RPG 412Visual Basic 20, 40, 309, 387, 388,422, 491Visual Basic for Applications (VBA)289, 422visualization 47, 47, 420–421VL bus 63VMware 179, 494vocoder 42voice-coil actuator 222voiceprint 48voice recognition. See speechrecognition <strong>and</strong> synthesisvoice scanning 48voice synthesis 151VoIP (voice over Internet protocol)496–497, 497broadb<strong>and</strong> for 59cable service <strong>and</strong> 69, 163for chat 83Cisco’s work in 87satellite service <strong>and</strong> 416telecommunications <strong>and</strong> 473Volkswagen Touareg 71–72von Neumann, John 28, 167, 190,329, 432, 497–499, 498von Rospach, Chuq 331voting systems, electronic 175,175–176Voyager 2 449voyeurism 504VPL Research 271VPN (Virtual Private Network)494, 513VRAM (Video RAM) 214VRML (Virtual Reality ModelingLanguage) 496WWAIS (Wide Area InformationService) 248, 518Wales, Jimmy 500–501, 511Wall, Larry 365Wallace, Bob 427–428Wallace, Richard 84Walt Disney Imagineering 264Walter, Grey 59, 124WAN (wide area network) 133, 334Wang, An 341Wang Corporation 106, 516Warcraft 104warez 220war games 103War Games (film) 378Warnock, John 3, 379Warwick, Kevin 406Wasik, Bill 198watch 61waterfall model 443, 444Watson, Thomas, Sr. 5, 235Wave Table Synthesis 326WAV format 448Wayne, Ronald 18wearable computers 141, 496,501, 501wearIT@work 501Weaving the Web (Berners-Lee) 424Web. See World Wide WebWeb 2.0 110, 501–503, 502Web browser 503, 503–504. Seealso Micros<strong>of</strong>t Internet Explorer;Mosaic; Netscape Navigatoranti-phishing in 370Berners-Lee <strong>and</strong> 43in blogging 52bulletin boards <strong>and</strong> 62cache for 70in computer history 229cookie control in 116digital dashboard <strong>and</strong> 148disabled users <strong>of</strong> 152for file transfer 194history in, Ajax pages <strong>and</strong> 6in Internet growth 247, 248JavaScript in 256Micros<strong>of</strong>t Windowschallenged by 107multimedia <strong>and</strong> 322navigation in 234newsreaders in 333plug-ins for 374on smartphones 437threading in 324XML in 520Web cam 83, 492webcam 504–505Web crawler 141, 422webcrawler 241WebEx 87Web feed 375, 412–413Web filter 76, 77, 505, 523Web logs. See blogs <strong>and</strong> bloggingwebmaster 80, 505–506WebMD 367Web Ontology Language (OWL)20, 267, 351, 424Web page design 506–507Ajax for 5–6applets in 19–20cascading style sheets in 72DOM for 161for information display 240with JavaScript 256PHP for 372scripting in 422user interface in 489Web browser <strong>and</strong> 504webmaster <strong>and</strong> 506Web portal 350, 379, 422, 523Web server 507–508access from ISPs 252Berners-Lee <strong>and</strong> 43caching by 70for client-server computing89cookies from 116development <strong>of</strong> 107digital dashboard on 148queue in 396by Sun 461VBScript <strong>and</strong> 491webmaster <strong>and</strong> 505–506World Wide Web <strong>and</strong> 518Web services 508–509active server pages for 1broadb<strong>and</strong> connections<strong>and</strong> 58CGI for 80–81employment in 179JavaScript <strong>and</strong> 256–257in service-orientedarchitecture 426SOAP for 438Web Services Description Language(WSDL) 426Web sitesattacks on 127banner ads on 344for businesses 64content management <strong>of</strong>115–116for database hosting 342databases <strong>and</strong> 132disabled users <strong>of</strong> 152document model in 161for government agencies 172for help systems 225in information warfare 242for newspapers 259in <strong>of</strong>fice automation 342political activism <strong>and</strong> 377spo<strong>of</strong>ing 369–370for technical support 470for user documentation 159viruses from 111Web server <strong>and</strong> 507–508from Yahoo! 523WebTV 107WebVan 168Weinberger, Peter J. 33Weizenbaum, Joseph 26, 83, 442,509–510Weizmann Institute <strong>of</strong> <strong>Science</strong> 317WELL, The 17, 62, 113, 314, 407,493–494Westin, Alan F. 383Westlaw 274What <strong>Computer</strong>s Can’t Do (Dreyfus)162What <strong>Computer</strong>s Still Can’t Do(Dreyfus) 162What Will Be (Dertouzos) 141Whetstone 43Whirlwind 104, 212whiteboard programs 217, 342, 492white box testing 394–395Whitman, Margaret (Meg) 165,166, 343, 515Whois 17Whole Earth Catalog (Br<strong>and</strong>) 407Wide Area Information Service(WAIS) 248, 518wide area network (WAN) 133, 334widgets 73Wiener, Norbert 124, 277, 510–511Wiesner, Jerome 313, 331, 511WiFi 53, 513. See also wirelesscomputingWii 205, 221wiki(s) 511–513accuracy <strong>of</strong> 259on Amazon.com 9as content managementsystems 116


580 Indexdatabases in 132development <strong>of</strong> 122on eBay 166Google <strong>and</strong> 211as groupware 217hypertext in 234in Internet growth 248journalism <strong>and</strong> 259for legal information 274netiquette <strong>and</strong> 332in <strong>of</strong>fice automation 342user-created content <strong>of</strong> 487Wikia, Inc. 500, 513Wikimedia Foundation 500, 513Wikinomics (Tapscott <strong>and</strong>Williams) 524Wikipedia 119, 122, 292, 350, 487,500–501, 511–513, 512WikiScanner 513wildcards 402, 403Williams, Anthony D. 524Williams, John 447Williamson, Jack 418WiMAX 58, 514Windows. See Micros<strong>of</strong>t WindowsWine 405Winer, David 52WinHelp 225Wintel. See IBM PC; Intel;Micros<strong>of</strong>t WindowsWinZip 428Wired 260, 331wireless computing 513–514with Bluetooth 53broadb<strong>and</strong> 58data communications over134in developing nations 143employment in 179at “hot spots” 250with laptops 272, 273for local area networks 284mouse 321with PDAs 364for portable devices 107with tablet PC 466transfer speed <strong>of</strong> 299USB adapters for 487wiretapping 119, 242, 273, 383,497Wirth, Niklaus 362, 363, 460,514–515WISC (Wisconsin IntegrallySynchronized <strong>Computer</strong>) 10Wizardry 104wizards 225, 308WLAN. See wireless computingWMI (Windows ManagementInstrumentation) 492Wolfram, Stephen 76women <strong>and</strong> minorities incomputing 515–516Wonder, Stevie 268WordPerfect 516WordPress 52word processing 516–517in business 64computer science in 110desktop publishing <strong>and</strong> 143document model <strong>and</strong> 160early market for 206in <strong>of</strong>fice automation 341–342revision marking in 342templates in 475text editors <strong>and</strong> 476typography in 483word processors (machines) 106words, in Forth 201WordStar 516workstation 517World Community Grid 117World <strong>of</strong> Warcraft (game) 286, 347World Wide Web 517–519. See alsoWeb browserAOL <strong>and</strong> 11bulletin boards <strong>and</strong> 62business use <strong>of</strong> 64centralization <strong>and</strong> 439–440in computer history 229conferencing systems on 114development <strong>of</strong> 43disabled users <strong>and</strong> 152as distributed computing154in education 169empowerment by 439entrepreneurship <strong>and</strong> 184hypertext on 233information design on 240in Internet development247, 248libraries <strong>and</strong> 276medical information on300–301Micros<strong>of</strong>t <strong>and</strong> 305–306multimedia on 322–323for online research 350PDFs on 364in personal healthinformation management367philosophy <strong>and</strong> 369portals for 350, 379, 422, 523pr<strong>of</strong>essional programmers<strong>and</strong> 386senior citizens’ use <strong>of</strong>424–425st<strong>and</strong>ards for 457telecommunications <strong>and</strong> 473terrorists on 126–127user interface <strong>and</strong> 489World Wide Web Consortium(W3C) 43, 141, 161, 251, 457worm 111, 450, 492Wozniak, Steven 18, 258, 519wrist rest 185write attribute 191WSDL (Web Services DescriptionLanguage) 426W3C 43, 141, 161, 251, 457WYSIWYG 142, 287, 507, 516XX10 324Xanadu 233Xbox 205, 206, 306Xbox 360 108, 205Xcode 357XCON 187Xerox PARC (Palo Alto ResearchCenter) laboratory 18Ethernet at 283Kay at 263–264laptop <strong>and</strong> 273PostScript <strong>and</strong> 379research <strong>of</strong> 404Simonyi at 430Simula developed at 339–340Smalltalk at 433ubiquitous computing at 484user interface developed at258, 307, 463, 488workstation at 517XHTML (Extensible HyperTextMarkup Language) 5–6,232–233, 233, 256, 520. See alsoDHTML; HTMLXML (extensible markup language)520–521in ASP .NET 1computer science in 110with DOM 161for information retrieval 241for Internet applicationsprogramming 249Java with 255knowledge representationin 267for RSS 412in service-orientedarchitecture 426in SOAP 438Web servers <strong>and</strong> 508in Web services 508Xmodem 194XNU 357XOR operator 51, 54XSLT (XML style sheet processor)161XWindows 354YY2K problem 91, 159, 178, 439,522–523YACC 361Yahoo!advertising on 346censorship in China <strong>and</strong> 76in Chinese market 108entrepreneurship <strong>and</strong> 184Micros<strong>of</strong>t acquisition <strong>of</strong> 306for online research 350, 422online services <strong>and</strong> 350as portal 379, 422Yahoo! Inc. 523Yahoo! Internet Life 260Yahoo! Messenger 492Yang, Jerry 184, 379, 422, 523yellow, in CYMK 93“Yenta” agent 289Ymodem 194young people <strong>and</strong> computing 237,248, 477, 523–524YouTube 524access to 194advertising on 345distribution by 326DVRs <strong>and</strong> 164Google <strong>and</strong> 211journalism <strong>and</strong> 260in mashups 294political activism <strong>and</strong> 377streaming by 459user-created content <strong>of</strong> 487Yudkowsky, Eliezer 433ZZ1 525Z3 525Z4 525Zadeh, L.A. 204Z-buffer algorithm 106ZDNet 260, 293–294, 428Zen 327Ziff Davis 260Zimmermann, Philip 181Zimmermann, Tom 271Zip disks 200Zip program 134Zmodem 194ZOG/KMS 140ZoneAlarm 197Zuckerberg, Mark 440Zune 327Zuse, Konrad 226, 525–526ZUSE KG 526

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!