Tải bản đầy đủ

OReilly producing open source software oct 2005 ISBN 0596007590

ProducingOpenSourceSoftware
ByKarlFogel
...............................................
Publisher:O'Reilly
PubDate:October2005
ISBN:0-596-00759-0
Pages:302

TableofContents|Index

Thecorporatemarketisnowembracingfree,"opensource"softwarelikenever
before,asevidencedbytherecentsuccessofthetechnologiesunderlyingLAMP
(Linux,Apache,MySQL,andPHP).Eachistheresultofapubliclycollaborative
processamongnumerousdeveloperswhovolunteertheirtimeandenergytocreate
bettersoftware.
Thetruthis,however,thattheoverwhelmingmajorityoffreesoftwareprojectsfail.
Tohelpyoubeattheodds,O'ReillyhasputtogetherProducingOpenSource
Software,aguidethatrecommendstriedandtruestepstohelpfreesoftware
developersworktogethertowardacommongoal.Notjustfordeveloperswhoare
consideringstartingtheirownfreesoftwareproject,thisbookwillalsohelpthose
whowanttoparticipateintheprocessatanylevel.

Thebooktacklesthisverycomplextopicbydistillingitdownintoeasily
understandableparts.Startingwiththebasicsofprojectmanagement,itdetails
specifictoolsusedinfreesoftwareprojects,includingversioncontrol,IRC,bug
tracking,andWikis.AuthorKarlFogel,knownforhisworkonCVSandSubversion,
offerspracticaladviceonhowtosetupandusearangeoftoolsincombinationwith
openmailinglistsandarchives.Healsoprovidesseveralchaptersontheessentialsof
recruitingandmotivatingdevelopers,aswellashowtogainmuch-neededpublicity
foryourproject.
Whilemanagingateamofenthusiasticdevelopers--mostofwhomyou'venever
evenmet--canbechallenging,itcanalsobefun.ProducingOpenSourceSoftware
takesthisintoaccount,too,asitspeaksofthesheerpleasuretobehadfromworking
withamotivatedteamoffreesoftwaredevelopers.


ProducingOpenSourceSoftware
ByKarlFogel
...............................................
Publisher:O'Reilly
PubDate:October2005
ISBN:0-596-00759-0
Pages:302

TableofContents|Index



Dedication



Copyright



Foreword



Preface




WhyWriteThisBook?



WhoShouldReadThisBook?



HowtoUseThisBook



Sources



Conventions



CommentsandQuestions



SafariEnabled



Acknowledgments



Disclaimer



Chapter1.Introduction



Section1.1.History



Section1.2.TheSituationToday



Chapter2.GettingStarted



Section2.1.First,LookAround



Section2.2.StartingfromWhatYouHave



Section2.3.ChoosingaLicenseandApplyingIt



Section2.4.SettingtheTone




Section2.5.Announcing
Chapter3.TechnicalInfrastructure



Section3.1.WhataProjectNeeds



Section3.2.MailingLists



Section3.3.VersionControl



Section3.4.BugTracker



Section3.5.IRC/Real-TimeChatSystems



Section3.6.Wikis





Section3.7.WebSite
Chapter4.SocialandPoliticalInfrastructure



Section4.1.Forkability



Section4.2.BenevolentDictators



Section4.3.Consensus-BasedDemocracy



Section4.4.WritingItAllDown



Chapter5.Money



Section5.1.TypesofInvolvement



Section5.2.HirefortheLongTerm



Section5.3.AppearasMany,NotasOne



Section5.4.BeOpenAboutYourMotivations



Section5.5.MoneyCan'tBuyYouLove



Section5.6.Contracting



Section5.7.FundingNon-ProgrammingActivities




Section5.8.Marketing
Chapter6.Communications



Section6.1.YouAreWhatYouWrite



Section6.2.AvoidingCommonPitfalls



Section6.3.DifficultPeople



Section6.4.HandlingGrowth



Section6.5.NoConversationsintheBugTracker



Section6.6.Publicity



Chapter7.Packaging,Releasing,andDailyDevelopment



Section7.1.ReleaseNumbering



Section7.2.ReleaseBranches



Section7.3.StabilizingaRelease



Section7.4.Packaging



Section7.5.TestingandReleasing



Section7.6.MaintainingMultipleReleaseLines




Section7.7.ReleasesandDailyDevelopment
Chapter8.ManagingVolunteers



Section8.1.GettingtheMostOutofVolunteers



Section8.2.ShareManagementTasksasWellasTechnicalTasks



Section8.3.Transitions



Section8.4.Committers



Section8.5.Credit



Section8.6.Forks



Chapter9.Licenses,Copyrights,andPatents



Section9.1.Terminology



Section9.2.AspectsofLicenses



Section9.3.TheGPLandLicenseCompatibility



Section9.4.ChoosingaLicense



Section9.5.CopyrightAssignmentandOwnership



Section9.6.DualLicensingSchemes



Section9.7.Patents





Section9.8.FurtherResources
AppendixA.FreeVersionControlSystems



SectionA.1.Subversion



SectionA.2.SVK



SectionA.3.Arch



SectionA.4.monotone



SectionA.5.Codeville



SectionA.6.Vesta



SectionA.7.Darcs



SectionA.8.Aegis



SectionA.9.CVSNT



SectionA.10.Meta-CVS



SectionA.11.OpenCM



SectionA.12.Stellation



SectionA.13.PRCS



SectionA.14.Bazaar



SectionA.15.Bazaar-NG



SectionA.16.ArX



SectionA.17.SourceJammer



SectionA.18.FastCST



SectionA.19.GIT



SectionA.20.Superversion



AppendixB.FreeBugTrackers



SectionB.1.Bugzilla



SectionB.2.GNATS



SectionB.3.RT



SectionB.4.Trac



SectionB.5.Roundup



SectionB.6.Mantis



SectionB.7.Scarab



SectionB.8.DBTS



SectionB.9.Trouble-TicketTrackers



SectionB.10.BTT



AppendixC.WhyShouldICareWhatColortheBikeshedIs?



AppendixD.ExampleInstructionsforReportingBugs



Colophon



Index


Dedication
Thisbookisdedicatedtotwodearfriendswithoutwhomitwouldnothave
beenpossible:KarenUnderhillandJimBlandy


Copyright©2006KarlFogel.Somerightsreserved.
PrintedintheUnitedStatesofAmerica.
PublishedbyO'ReillyMedia,Inc.,1005GravensteinHighwayNorth,
Sebastopol,CA95472.
O'Reillybooksmaybepurchasedforeducational,business,orsalespromotional
use.Onlineeditionsarealsoavailableformosttitles(http://safari.oreilly.com).
Formoreinformation,contactourcorporate/institutionalsalesdepartment:(800)
998-9938orcorporate@oreilly.com.
NutshellHandbook,theNutshellHandbooklogo,andtheO'Reillylogoare
registeredtrademarksofO'ReillyMedia,Inc.ProducingOpenSourceSoftware
andrelatedtradedressaretrademarksofO'ReillyMedia,Inc.
Manyofthedesignationsusedbymanufacturersandsellerstodistinguishtheir
productsareclaimedastrademarks.Wherethosedesignationsappearinthis
book,andO'ReillyMedia,Inc.wasawareofatrademarkclaim,thedesignations
havebeenprintedincapsorinitialcaps.
Whileeveryprecautionhasbeentakeninthepreparationofthisbook,the
publisherandauthorsassumenoresponsibilityforerrorsoromissions,orfor
damagesresultingfromtheuseoftheinformationcontainedherein.
ThisworkislicensedundertheCreativeCommonsAttribution-ShareAlike
License.Toviewacopyofthislicense,visit
http://creativecommons.org/licenses/by-sa/2.5/orsendalettertoCreative
Commons,543HowardStreet,5thFloor,SanFrancisco,California,94105,
USA.


Foreword
Themostwell-knownorganizationalmodelsofgettingthingsdonewhetherit's
buildingahouse,producingamotionpicture,orwritingsoftwaretendtoconcern
thepredictionofandcommitmenttospecificoutcomes,mitigatingrisktothe
plan,andcorrectingsurprisesalongtheway.Insuchmodels,innovationisseen
tohappenatthemomentofinspirationoftheideaandtheremaining99%ofthe
effortisperspiration,toparaphraseEdison.Sayitalongwithme:"Yeah,right."
Thisviewlooksatinnovationasaverysolitarysport;wewanttotalkabout
SteveJobsastheguybehindtheiPod,ratherthanthemixofgoodengineersand
productmarketingtypeswhocollaboratedwithStevetofindtherightsweet-spot
combinationoffeaturesandfashion.
WealsowanttotalkaboutLinusTorvaldsastheguyresponsibleforLinux,but
that'sevenlessclosetothetruththantheJobs/iPodexample.Linus'brillianceis
notincreatinganunprecedentedtechnologyinnovation,norinplottingthe
perfectroadmapfortheLinuxkernel,norinhavingafull-timestaffofhisown
toassignworkto.ThebrillianceinsideLinusishisabilitytoorchestratethe
aggregatedinterestsofthousandsofotherdevelopers,allindividuallyscratching
theirownitch(orthatoftheiremployer),andtherebymakingaproduct
renownedforreliability,performance,andthefeaturespeopleneed.Linus'role
islikethatofanairtrafficcontrollerwatchingtheskiesfillwithideas,prototypes
basedonthoseideas,andseriousproduction-qualitycodeimplementingthebest
ofthoseideasthendecidingwhenthatworkismatureenoughtolandatthe
airportknownasLinus'officialkernelsourcecoderepository.
It'sbeensaidthathumilityisthemostunderratedforceintheworldtoday.
Successfulopensourceleadersdemonstratethisoverandoverbydrivingfor
consensusonmajorideas,makingitcleartheirownideasareopentochallenge,
andbeingastransparentaspossible.Buildingasenseofempowermentamongst
thedevelopersismoreimportantthanmeetingshipdateswithspecificfeatures,
andmoreimportantthancreatingzero-defectsoftware.TheApacheSoftware
Foundation,forexample,believesthatitsfirstorderofbusinessiscreating
healthysoftwaredevelopercommunitiesfocusedonsolvingcommonproblems;
goodsoftwareisasimplyanemergentresult.


Infactitcouldn'thappenanyotherway,andhere'swhy.TheOpenSource
Definitionisalistoftermsthatarerequirementsofanylicenseclaimingtobean
opensourcelicense,andanyprojectclaimingtobeanopensourceprojectmust
havesuchalicense.OneofthekeythemesoftheOSDis"therighttofork":the
righttocreateaderivativeworkandredistributeittootherpeopleunderthe
termsofthesamelicense,withouttheapprovaloftheoriginaldevelopers.This
doesn'thappenoften;mostofthetime,whensomeonefixesabugoraddsa
minorfeature,theyusuallyofferitbacktotheoriginaldevelopers,andifthe
projectiswellrun,thatendsupinasubsequentrelease.Butwhenitneedsto
happenwhentheoriginaldevelopershavemovedontootherthings,orworse,
becomedifficulttoworkwiththerighttoforkactsasanessentialdevicetocarry
aprojectforward.
Amongmanyotherbenefits,thisrulemeansthatleadershipinanopensource
communitycomesnotfromleverageorcontrol,butfromfindingcommon
interestsandexpertlymanagingwhatisvolunteered.Opensourceprojectsdon't
competefor"marketshare"fordollarsfromtheuserbasebecausetherearen'tany.
Instead,theycompetefordevelopermindshareandheartshare,andthat'snot
goingtoflowtoaleaderwho'sobstinate,unresponsivetotheusercommunity,or
technicallyunsophisticated.
Thosewhoseeopensourceasabunchofzero-pricesoftwarecreatedby
impossiblyaltruisticamateursdon'tgetthisatall.Therestoftheworld,though,
isstartingtoclueintotheideathatthesoftwareindustrydoesn'thavetobea
zero-sumgame,andthatlettinggoofalittlecontrolandownershipmight
actuallyresultinsomethinggranderinreturn.Thisnotionislargerthanjust
software.ProfessorEricvonHippelatMIThaschartedahistoryofinteresting
experimentsandpatternsinthedomainof"user-ledinnovation"companieswho
haveexperimentedwithinvolvingtheircustomersinthedesignoffollow-up
products;ordeliveringtoolkitsratherthanfinishedworks,allowingcustomersto
createnewusesorsolvemorecomplicatedproblems.TheWikipediaisahuge
exampleofparticipatorycreationthatsoundslikeitshouldbeanunmanageable
chaos,butinsteadhasdevelopedareputationforbeingmorecomplete,up-todate,andbalancedthananyseriesyoucouldbuyandputonyourbookshelf.
Thesesuccessesdon'tjusthappenbymagicallypressingthe"BeMoreOpen"
buttononthekeyboard.Thereisauniverseofbestpracticeandlorethatbefore
nowhasbeenlargelyanoraltradition,pickedupbysittingonagoodproject


mailinglistforyearsandlearningthepatternsofcommunicationandprocess.
Karlhasdonethesoftwaredevelopmentworldatremendousfavorbyfinally
capturingmuchofthatinthisbook.Whilethesoftwareengineeringworldis
muchmorecomfortablewiththeconceptsofopensource,softwaredeveloper
communities,andunpredictableoutcomesthantheywerebefore,therearestill
notenoughleaderswithKarl'sgraspofthenuancesthatmakeallthedifference.
Withthisbook,thatcanchange.
BrianBehlendorfApacheSoftwareFoundationandCollabNet


Preface
WhyWriteThisBook?
WhoShouldReadThisBook?
HowtoUseThisBook
Sources
Conventions
CommentsandQuestions
SafariEnabled
Acknowledgments
Disclaimer


WhyWriteThisBook?
Atparties,peoplenolongergivemeablankstarewhenItellthemIwritefree
software."Oh,yes,opensourcelikeLinux?"theysay.Inodeagerlyin
agreement."Yes,exactly!That'swhatIdo."It'snicenottobecompletelyonthe
fringeanymore.Inthepast,thenextquestionwasusuallyfairlypredictable:
"Howdoyoumakemoneydoingthat?"Toanswer,I'dsummarizetheeconomics
ofopensource:thatthereareorganizationsinwhoseinterestitistohavecertain
softwareexist,butthattheydon'tneedtosellcopies,theyjustwanttomakesure
thesoftwareisavailableandmaintained,asatoolinsteadofacommodity.
Lately,however,thenextquestionhasnotalwaysbeenaboutmoney.The
businesscaseforopensourcesoftware[1]isnolongersomysterious,andmany
non-programmersalreadyunderstandoratleastarenotsurprisedthatthereare
peopleemployedatitfulltime.Instead,thequestionIhavebeenhearingmore
andmoreoftenis"Oh,howdoesthatwork?"
[1]Theterms"opensource"and"free"areessentiallysynonymousinthiscontext;theyare
discussedmoreinthesectionSection1.1.2inChapter1.

Ididn'thaveasatisfactoryanswerready,andtheharderItriedtocomeupwith
one,themoreIrealizedhowcomplexatopicitreallyis.Runningafreesoftware
projectisnotexactlylikerunningabusiness(imaginehavingtoconstantly
negotiatethenatureofyourproductwithagroupofvolunteers,mostofwhom
you'venevermet!).Nor,forvariousreasons,isitexactlylikerunninga
traditionalnon-profitorganization,noragovernment.Ithassimilaritiestoall
thesethings,butIhaveslowlycometotheconclusionthatfreesoftwareissui
generis.Therearemanythingswithwhichitcanbeusefullycompared,butnone
withwhichitcanbeequated.Indeed,eventheassumptionthatfreesoftware
projectscanbe"run"isastretch.Afreesoftwareprojectcanbestarted,andit
canbeinfluencedbyinterestedparties,oftenquitestrongly.Butitsassetscannot
bemadethepropertyofanysingleowner,andaslongastherearepeople
somewhereanywhereinterestedincontinuingit,itcannotbeunilaterallyshut
down.Everyonehasinfinitepower;everyonehasnopower.Itmakesforan
interestingdynamic.


ThatiswhyIwantedtowritethisbook.Freesoftwareprojectshaveevolveda
distinctculture,anethosinwhichthelibertytomakethesoftwaredoanything
onewantsisacentraltenet,andyettheresultofthislibertyisnotascatteringof
individualseachgoingtheirownseparatewaywiththecode,butenthusiastic
collaboration.Indeed,competenceatcooperationitselfisoneofthemosthighly
valuedskillsinfreesoftware.Tomanagetheseprojectsistoengageinakindof
hypertrophiedcooperation,whereone'sabilitynotonlytoworkwithothersbut
tocomeupwithnewwaysofworkingtogethercanresultintangiblebenefitsto
thesoftware.Thisbookattemptstodescribethetechniquesbywhichthismaybe
done.Itisbynomeanscomplete,butitisatleastabeginning.
Goodfreesoftwareisaworthygoalinitself,andIhopethatreaderswhocome
lookingforwaystoachieveitwillbesatisfiedwithwhattheyfindhere.But
beyondthatIalsohopetoconveysomethingofthesheerpleasuretobehad
fromworkingwithamotivatedteamofopensourcedevelopers,andfrom
interactingwithusersinthewonderfullydirectwaythatopensourceencourages.
Participatinginasuccessfulfreesoftwareprojectisfun,andultimatelythat's
whatkeepsthewholesystemgoing.


WhoShouldReadThisBook?
Thisbookismeantforsoftwaredevelopersandmanagerswhoareconsidering
startinganopensourceproject,orwhohavestartedoneandarewonderingwhat
todonow.Itshouldalsobehelpfulforpeoplewhojustwanttoparticipateinan
opensourceprojectbuthaveneverdonesobefore.
Thereaderneednotbeaprogrammer,butshouldknowbasicsoftware
engineeringconceptssuchassourcecode,compilers,andpatches.
Priorexperiencewithopensourcesoftware,aseitherauseroradeveloper,isnot
necessary.Thosewhohaveworkedinfreesoftwareprojectsbeforewillprobably
findatleastsomepartsofthebookabitobvious,andmaywanttoskipthose
sections.Becausethere'ssuchapotentiallywiderangeofaudienceexperience,
I'vemadeanefforttolabelsectionsclearly,andtosaywhensomethingcanbe
skippedbythosealreadyfamiliarwiththematerial.


HowtoUseThisBook
Thisbookconsistsofninechaptersandfourappendixes:

Chapter1
Abriefhistoryoffreesoftware,andanoverviewoftheopensourceworld
today.

Chapter2
Howtogetanopensourceprojectoffontherightfoot,includinggathering
developers,choosingalicense,andannouncingtheproject.

Chapter3
Anin-depthlookatthetoolsaprojectneedstofunctionsmoothly,
includingcommunications,versioncontrol,andbugtrackingsoftware.

Chapter4
Howtosetupformalandinformalpoliticalstructurestoenableproject
memberstoworktogetherandachieveconsensusonimportantissues.

Chapter5
Whyandhowtohaveacommercialrelationshipwithanopensource
project.


Chapter6
Aguidetoproductiveconductinprojectforums,coveringboththesocial
andtechnicalaspectsofcommunications.

Chapter7
Howtomanageregularreleasesofopensourcesoftware,without
disruptingthedevelopmentcyclesofthevolunteerparticipants.

Chapter8
Understandingwhyvolunteerdevelopersdowhattheydo,andtreating
theminsuchawaythattheykeepdoingit.

Chapter9
Howtoevaluateandchoosefreesoftwarelicenses,includinganin-depth
examinationoflicensecompatibilityissues.

AppendixA
Alistofopensourceversioncontrolsystems,forprojectsjuststartingout.

AppendixB
Likewise,alistofopensourcebugtrackers.


AppendixC
Anoft-citedscreedbyPoul-HenningKampaboutthedangersofgroup
decision-makingandopensourcediscussionlists.

AppendixD
Anexamplethatshowshowanopensourceprojectcanusebugreporting
instructionstograduallyteachcertainusersaboutthedevelopment
procedurestheprojectfollows.


Sources
Muchoftherawmaterialforthisbookcamefromfiveyearsofworkingwiththe
Subversionproject(http://subversion.tigris.org/).Subversionisanopensource
versioncontrolsystem,writtenfromscratch,andintendedtoreplaceCVSasthe
defactoversioncontrolsystemofchoiceintheopensourcecommunity.The
projectwasstartedbymyemployer,CollabNet(http://www.collab.net/),inearly
2000,andthankgoodnessCollabNetunderstoodrightfromthestarthowtorun
itasatrulycollaborative,distributedeffort.Wegotalotofvolunteerdeveloper
buy-inearlyon;todaythereare50-somedevelopersontheproject,ofwhom
onlyafewareCollabNetemployees.
Subversionisinmanywaysaclassicexampleofanopensourceproject,andI
endedupdrawingonitmoreheavilythanIoriginallyexpected.Thiswaspartly
amatterofconvenience:wheneverIneededanexampleofaparticular
phenomenon,IcouldusuallycalloneupfromSubversionrightoffthetopofmy
head.Butitwasalsoamatterofverification.AlthoughIaminvolvedinother
freesoftwareprojectstovaryingdegrees,andtalktofriendsandacquaintances
involvedinmanymore,onequicklyrealizeswhenwritingforprintthatall
assertionsneedtobefact-checked.Ididn'twanttomakestatementsaboutevents
inotherprojectsbasedonlyonwhatIcouldreadintheirpublicmailinglist
archives.IfsomeoneweretotrythatwithSubversion,Iknew,she'dberight
abouthalfthetimeandwrongtheotherhalf.Sowhendrawinginspirationor
examplesfromaprojectwithwhichIdidn'thavedirectexperience,Itriedto
firsttalktoaninformantthere,someoneIcouldtrusttoexplainwhatwasreally
goingon.
Subversionhasbeenmyjobforthelast5years,butI'vebeeninvolvedinfree
softwarefor12.Otherprojectsthatinfluencedthisbookinclude:
TheGNUEmacstexteditorprojectattheFreeSoftwareFoundation,in
whichImaintainafewsmallpackages.
ConcurrentVersionsSystem(CVS),whichIworkedonintenselyin19941995withJimBlandy,buthavebeeninvolvedwithonlyintermittently
since.


ThecollectionofopensourceprojectsknownastheApacheSoftware
Foundation,especiallytheApachePortableRuntime(APR)andApache
HTTPServer.
OpenOffice.org,theBerkeleyDatabasefromSleepycat,andMySQL
Database;Ihavenotbeeninvolvedwiththeseprojectspersonally,buthave
observedthemand,insomecases,talkedtopeoplethere.
GDB,theGNUDebugger(likewise).
TheDebianProject(likewise).
Thisisnotacompletelist,ofcourse.Likemostopensourceprogrammers,I
keeploosetabsonmanydifferentprojects,justtohaveasenseofthegeneral
stateofthings.Iwon'tnameallofthemhere,buttheyarementionedinthetext
whereappropriate.


Conventions
Thefollowingconventionsareusedinthisbook:

Italic
Usedforfileanddirectorynames,forURLs,andforemphasiswhen
introducinganewterm.

Constantwidth
Usedforcodeexamples.

Constantwidthitalic
Insomecodeexamples,indicatesanelement(e.g.,afilename)thatyou
supply.


CommentsandQuestions
Pleaseaddresscommentsandquestionsconcerningthisbooktothepublisher:
O'ReillyMedia,Inc.
1005GravensteinHighwayNorth
Sebastopol,CA95472
(800)998-9938(intheUnitedStatesorCanada)
(707)829-0515(internationalorlocal)
(707)829-0104(fax)
Wehaveawebpageforthisbook,wherewelisterrata,examples,andany
additionalinformation.Youcanaccessthispageat:
http://www.oreilly.com/catalog/producingoss
Tocommentorasktechnicalquestionsaboutthisbook,sendemailto:
bookquestions@oreilly.com
Formoreinformationaboutourbooks,conferences,ResourceCenters,andthe
O'ReillyNetwork,seeourwebsiteat:
http://www.oreilly.com


SafariEnabled

WhenyouseeaSafari®Enabledicononthecoverofyourfavorite
technologybook,itmeansthebookisavailableonlinethroughtheO'Reilly
NetworkSafariBookshelf.
Safarioffersasolutionthat'sbetterthane-books.It'savirtuallibrarythatlets
youeasilysearchthousandsoftoptechnologybooks,cutandpastecode
samples,downloadchapters,andfindquickanswerswhenyouneedthemost
accurate,currentinformation.Tryitforfreeathttp://safari.oreilly.com.


Acknowledgments
ThisbooktookfourtimeslongertowritethanIthoughtitwould,andformuch
ofthattimefeltratherlikeihadagrandpianosuspendedabovemyhead
whereverIwent.Withouthelpfrommanypeople,Iwouldnothavebeenableto
completeitwhilestayingsane.
AndyOram,myeditoratO'Reilly,wasawriter'sdream.Asidefromknowing
thefieldintimately(hesuggestedmanyofthetopics),hehastheraregiftof
knowingwhatonemeanttosayandhelpingonefindtherightwaytosayit.It
hasbeenanhonortoworkwithhim.ThanksalsotoChuckToporekforsteering
thisproposaltoAndyrightaway.
BrianFitzpatrickreviewedalmostallofthematerialasIwroteit,whichnotonly
madethebookbetter,butkeptmewritingwhenIwantedtobeanywhereinthe
worldbutinfrontofthecomputer.BenCollins-SussmanandMikePilatoalso
checkeduponprogress,andwerealwayshappytodiscusssometimesat
lengthwhatevertopicIwastryingtocoverthatweek.TheyalsonoticedwhenI
sloweddown,andgentlynaggedwhennecessary.Thanks,guys.
BiellaColemanwaswritingherdissertationatthesametimeasIwaswriting
thisbook.Sheknowswhatitmeanstositdownandwriteeveryday,and
providedaninspiringexampleaswellasasympatheticear.Shealsohasa
fascinatinganthropologist's-eyeviewofthefreesoftwaremovement,givingboth
ideasandreferencesthatIwasableuseinthebook.AlexGolubanother
anthropologistwithonefootinthefreesoftwareworld,andalsofinishinghis
dissertationatthesametimewasexceptionallysupportiveearlyon,whichhelped
agreatdeal.
MicahAndersonsomehowneverseemedtoooppressedbyhisownwritinggig,
whichwasinspiringinasick,envy-generatingsortofway,buthewasever
readywithfriendship,conversation,and(onatleastoneoccasion)technical
support.Thanks,Micah!
JonTrowbridgeandSanderStrikergavebothencouragementandconcrete
helptheirbroadexperienceinfreesoftwareprovidedmaterialIcouldn'thave


gottenanyotherway.
ThankstoGregSteinnotonlyforfriendshipandwell-timedencouragement,but
forshowingtheSubversionprojecthowimportantregularcodereviewisin
buildingaprogrammingcommunity.ThanksalsotoBrianBehlendorf,who
tactfullydrummedintoourheadstheimportanceofhavingdiscussionspublicly;
Ihopethatprincipleisreflectedthroughoutthisbook.
ThankstoBenjamin"Mako"HillandSethSchoen,forvariousconversations
aboutfreesoftwareanditspolitics;toZackUrlockerandLouisSuarez-Pottsfor
takingtimeoutoftheirbusyschedulestobeinterviewed;toShaneonthe
Slashcodelistforallowinghisposttobequoted;andtoHaggenSoforhis
enormouslyhelpfulcomparisonofcannedhostingsites.
ThankstoAllaDekhtyar,Polina,andSonyafortheirunflaggingandpatient
encouragement.I'mverygladthatIwillnolongerhavetoend(orrather,try
unsuccessfullytoend)oureveningsearlytogohomeandworkon"TheBook."
ThankstoJackRepenningforfriendship,conversation,andastubbornrefusalto
everacceptaneasywronganalysiswhenaharderrightoneisavailable.Ihope
thatsomeofhislongexperiencewithbothsoftwaredevelopmentandthe
softwareindustryrubbedoffonthisbook.
CollabNetwasexceptionallygenerousinallowingmeaflexiblescheduleto
write,anddidn'tcomplainwhenitwentonfarlongerthanoriginallyplanned.I
don'tknowalltheintricaciesofhowmanagementarrivesatsuchdecisions,butI
suspectSandhyaKlute,andlaterMaheshMurthy,hadsomethingtodowithitmy
thankstothemboth.
TheentireSubversiondevelopmentteamhasbeenaninspirationforthepastfive
years,andmuchofwhatisinthisbookIlearnedfromworkingwiththem.I
won'tthankthemallbynamehere,becausetherearetoomany,butIimplore
anyreaderwhorunsintoaSubversioncommittertoimmediatelybuythat
committerthedrinkofhischoiceIcertainlyplanto.
ManytimesIrantedtoRachelScollonaboutthestateofthebook;shewas
alwayswillingtolisten,andsomehowmanagedtomaketheproblemsseem
smallerthanbeforewetalked.Thathelpedalotthanks.


Thanks(again)toNoelTaylor,whomustsurelyhavewonderedwhyIwantedto
writeanotherbookgivenhowmuchIcomplainedthelasttime,butwhose
friendshipandleadershipofGolosáhelpedkeepmusicandgoodfellowshipin
mylifeeveninthebusiesttimes.ThanksalsotoMatthewDeanandDorothea
Samtleben,friendsandlong-sufferingmusicalpartners,whowerevery
understandingasmyexcusesfornotpracticingpiledup.MeganJenningswas
constantlysupportive,andgenuinelyinterestedinthetopiceventhoughitwas
unfamiliartoheragreattonicforaninsecurewriter.Thanks,pal!
Ihadfourknowledgeableanddiligentreviewersforthisbook:YoavShapira,
AndrewStellman,DavanumSrinivas,andBenHyde.IfIhadbeenableto
incorporatealloftheirexcellentsuggestions,thiswouldbeabetterbook.Asit
was,timeconstraintsforcedmetopickandchoose,buttheimprovementswere
stillsignificant.Anyerrorsthatremainareentirelymyown.
Myparents,FrancesandHenry,werewonderfullysupportiveasalways,andas
thisbookislesstechnicalthanthepreviousone,Ihopethey'llfinditsomewhat
morereadable.
Finally,Iwouldliketothankthededicatees,KarenUnderhillandJimBlandy.
Karen'sfriendshipandunderstandinghavemeanteverythingtome,notonly
duringthewritingofthisbookbutforthelastsevenyears.Isimplywouldnot
havefinishedwithoutherhelp.LikewiseforJim,atruefriendandahacker's
hacker,whofirsttaughtmeaboutfreesoftware,muchasabirdmightteachan
airplaneaboutflying.


Disclaimer
Thethoughtsandopinionsexpressedinthisbookaremyown.Theydonot
necessarilyrepresenttheviewsofCollabNetoroftheSubversionproject.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×