the.world.is.flat-µÚ22½Ú
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
had¡¡been¡¡left¡¡to¡¡gather¡¡virtual¡¡dust¡¡when¡¡its¡¡primary¡¡programmer£»¡¡University¡¡of¡¡
Illinois¡¡student¡¡Rob¡¡McCool£»¡¡had¡¡been¡¡scooped¡¡up¡¡£¨along¡¡with¡¡Marc¡¡Andreessen¡¡and¡¡Lynx¡¡
author¡¡Eric¡¡Bina£©¡¡by¡¡a¡¡little¡known¡¡company¡¡in¡¡Silicon¡¡Valley¡¡named¡¡Netscape¡£¡¡
Meanwhile£»¡¡the¡¡Web¡¡refused¡¡to¡¡stop¡¡growing¡and¡¡
87¡¡
kept¡¡creating¡¡new¡¡problems¡¡for¡¡Web¡¡servers¡¡to¡¡cope¡¡with¡£¡¨¡¡So¡¡patches¡¡of¡¡one¡¡kind¡¡or¡¡
another¡¡proliferated¡¡like¡¡Band¡Aids¡¡on¡¡bandwidth£»¡¡plugging¡¡one¡¡hole¡¡here¡¡and¡¡
breaching¡¡another¡¡gap¡¡there¡£¡¡
Meanwhile£»¡¡all¡¡these¡¡patches¡¡were¡¡slowly£»¡¡in¡¡an¡¡ad¡¡hoc¡¡open¡source¡¡manner£»¡¡building¡¡
a¡¡new¡¡modern¡¡Web¡¡server¡£¡¡But¡¡everyone¡¡had¡¡his¡¡or¡¡her¡¡own¡¡version£»¡¡trading¡¡patches¡¡
here¡¡and¡¡there£»¡¡because¡¡the¡¡NCSA¡¡lab¡¡couldn't¡¡keep¡¡up¡¡with¡¡it¡¡all¡£¡¡
¡¨I¡¡was¡¡just¡¡this¡¡near¡dropout£»¡¨¡¡explained¡¡Behlendorf¡£¡¡¡¨I¡¡was¡¡having¡¡a¡¡lot¡¡of¡¡fun¡¡
building¡¡this¡¡Web¡¡site¡¡for¡¡Wired¡¡and¡¡learning¡¡more¡¡than¡¡I¡¡was¡¡learning¡¡at¡¡Berkeley¡£¡¡
So¡¡a¡¡discussion¡¡started¡¡in¡¡our¡¡little¡¡working¡¡group¡¡that¡¡the¡¡NCSA¡¡people¡¡were¡¡not¡¡
answering¡¡our¡¡e¡mails¡£¡¡We¡¡were¡¡sending¡¡in¡¡patches¡¡for¡¡the¡¡system¡¡and¡¡they¡¡weren't¡¡
responding¡£¡¡And¡¡we¡¡said£»¡¡'If¡¡NCSA¡¡would¡¡not¡¡respond¡¡to¡¡our¡¡patches£»¡¡what's¡¡going¡¡to¡¡
happen¡¡in¡¡the¡¡future£¿'¡¡We¡¡were¡¡happy¡¡to¡¡continue¡¡improving¡¡this¡¡thing£»¡¡yet¡¡we¡¡were¡¡
worried¡¡when¡¡we¡¡were¡¡not¡¡getting¡¡any¡¡feedback¡¡and¡¡seeing¡¡our¡¡patches¡¡integrated¡£¡¡So¡¡
I¡¡started¡¡to¡¡contact¡¡the¡¡other¡¡people¡¡I¡¡knew¡¡trading¡¡patches¡£¡¡¡£¡¡¡£¡¡Most¡¡of¡¡them¡¡were¡¡
on¡¡the¡¡standards¡¡working¡¡groups¡¡£§the¡¡Internet¡¡Engineering¡¡Task¡¡Force£§¡¡that¡¡were¡¡
setting¡¡the¡¡first¡¡standards¡¡for¡¡the¡¡interconnectivity¡¡between¡¡machines¡¡and¡¡
applications¡¡on¡¡the¡¡Internet¡£¡£¡£¡¡And¡¡we¡¡said£»¡¡'Why¡¡don't¡¡we¡¡take¡¡our¡¡future¡¡into¡¡our¡¡
own¡¡hands¡¡and¡¡release¡¡our¡¡own¡¡£§Web¡¡server£§¡¡version¡¡that¡¡incorporated¡¡all¡¡our¡¡patches£¿'¡¡
¡¨We¡¡looked¡¡up¡¡the¡¡copyright¡¡for¡¡the¡¡NCSA¡¡code£»¡¡and¡¡it¡¡basically¡¡just¡¡said¡¡give¡¡us¡¡
credit¡¡at¡¡Illinois¡¡for¡¡what¡¡we¡¡invented¡¡if¡¡you¡¡improve¡¡it¡and¡¡don't¡¡blame¡¡us¡¡if¡¡it¡¡
breaks£»¡¨¡¡recalled¡¡Behlendorf¡£¡¡¡¨So¡¡we¡¡started¡¡building¡¡our¡¡own¡¡version¡¡from¡¡all¡¡our¡¡
patches¡£¡¡None¡¡of¡¡us¡¡had¡¡time¡¡to¡¡be¡¡a¡¡full¡time¡¡Web¡¡server¡¡developer£»¡¡but¡¡we¡¡thought¡¡
if¡¡we¡¡could¡¡combine¡¡our¡¡time¡¡and¡¡do¡¡it¡¡in¡¡a¡¡public¡¡way£»¡¡we¡¡could¡¡create¡¡something¡¡
better¡¡than¡¡we¡¡could¡¡buy¡¡off¡¡the¡¡shelf¡and¡¡nothing¡¡was¡¡available¡¡then£»¡¡anyway¡£¡¡This¡¡
was¡¡all¡¡before¡¡Netscape¡¡had¡¡shipped¡¡its¡¡first¡¡commercial¡¡Web¡¡server¡£¡¡That¡¡was¡¡the¡¡
beginning¡¡of¡¡the¡¡Apache¡¡project¡£¡¨¡¡
By¡¡February¡¡1999£»¡¡they¡¡had¡¡completely¡¡rewritten¡¡the¡¡original¡¡NCSA¡¡program¡¡and¡¡
formalized¡¡their¡¡cooperation¡¡under¡¡the¡¡name¡¡¡¨Apache¡£¡¨¡¡
¡¨I¡¡picked¡¡the¡¡name¡¡because¡¡I¡¡wanted¡¡it¡¡to¡¡have¡¡a¡¡positive¡¡connotation¡¡of¡¡being¡¡
assertive£»¡¨¡¡said¡¡Behlendorf¡£¡¡¡¨The¡¡Apache¡¡tribe¡¡was¡¡the¡¡last¡¡tribe¡¡
to¡¡surrender¡¡to¡¡the¡¡oncoming¡¡U¡£S¡£¡¡government£»¡¡and¡¡at¡¡the¡¡time¡¡we¡¡worried¡¡that¡¡the¡¡
big¡¡companies¡¡would¡¡come¡¡in¡¡and¡¡'civilize'¡¡the¡¡landscape¡¡that¡¡the¡¡early¡¡Internet¡¡
engineers¡¡built¡£¡¡So¡¡'Apache'¡¡made¡¡sense¡¡to¡¡me¡¡as¡¡a¡¡good¡¡code¡¡name£»¡¡and¡¡others¡¡said¡¡
it¡¡also¡¡would¡¡make¡¡a¡¡good¡¡pun¡¨¡as¡¡in¡¡the¡¡APAtCHy¡¡server£»¡¡because¡¡they¡¡were¡¡patching¡¡
all¡¡these¡¡fixes¡¡together¡£¡¡
So¡¡in¡¡many¡¡ways£»¡¡Bellendorf¡¡and¡¡his¡¡open¡source¡¡colleagues¡most¡¡of¡¡whom¡¡he¡¡had¡¡never¡¡
met¡¡but¡¡knew¡¡only¡¡by¡¡e¡mail¡¡through¡¡their¡¡open¡source¡¡chat¡¡room¡had¡¡created¡¡a¡¡virtual£»¡¡
online£»¡¡bottom¡up¡¡software¡¡factory£»¡¡which¡¡no¡¡one¡¡owned¡¡and¡¡no¡¡one¡¡supervised¡£¡¡¡¨We¡¡
had¡¡a¡¡software¡¡project£»¡¡but¡¡the¡¡coordination¡¡and¡¡direction¡¡were¡¡an¡¡emergent¡¡behavior¡¡
based¡¡on¡¡whoever¡¡showed¡¡up¡¡and¡¡wanted¡¡to¡¡write¡¡code£»¡¨¡¡he¡¡said¡£¡¡
But¡¡how¡¡does¡¡it¡¡actually¡¡work£¿¡¡I¡¡asked¡¡Behlendorf¡£¡¡You¡¡can't¡¡just¡¡have¡¡a¡¡bunch¡¡of¡¡
people£»¡¡unmonitored£»¡¡throwing¡¡code¡¡together£»¡¡can¡¡you£¿¡¡
¡¨Most¡¡software¡¡development¡¡involves¡¡a¡¡source¡¡code¡¡repository¡¡and¡¡is¡¡managed¡¡by¡¡tools¡¡
such¡¡as¡¡the¡¡Concurrent¡¡Versions¡¡System£»¡¨¡¡he¡¡explained¡£¡¡¡¨So¡¡there¡¡is¡¡a¡¡CVS¡¡server¡¡out¡¡
there£»¡¡and¡¡I¡¡have¡¡a¡¡CVS¡¡program¡¡on¡¡my¡¡computer¡£¡¡It¡¡allows¡¡me¡¡to¡¡connect¡¡to¡¡the¡¡server¡¡
and¡¡pull¡¡down¡¡a¡¡copy¡¡of¡¡the¡¡code£»¡¡so¡¡I¡¡can¡¡start¡¡working¡¡with¡¡it¡¡and¡¡making¡¡
modifications¡£¡¡If¡¡I¡¡think¡¡my¡¡patch¡¡is¡¡something¡¡I¡¡want¡¡to¡¡share¡¡with¡¡others£»¡¡I¡¡run¡¡
a¡¡program¡¡called¡¡Patch£»¡¡which¡¡allows¡¡me¡¡to¡¡create¡¡a¡¡new¡¡file£»¡¡a¡¡compact¡¡collection¡¡
of¡¡all¡¡the¡¡changes¡£¡¡That¡¡is¡¡called¡¡a¡¡patch¡¡file£»¡¡and¡¡I¡¡can¡¡give¡¡that¡¡file¡¡to¡¡someone¡¡
else£»¡¡and¡¡they¡¡can¡¡apply¡¡it¡¡to¡¡their¡¡copy¡¡of¡¡the¡¡code¡¡to¡¡see¡¡what¡¡impact¡¡that¡¡patch¡¡
has¡£¡¡If¡¡I¡¡have¡¡the¡¡right¡¡privileges¡¡to¡¡the¡¡server¡¡£§which¡¡is¡¡restricted¡¡to¡¡a¡¡tightly¡¡
controlled¡¡oversight¡¡board£§£»¡¡I¡¡can¡¡then¡¡take¡¡my¡¡patch¡¡and¡¡commit¡¡it¡¡to¡¡the¡¡repository¡¡
and¡¡it¡¡will¡¡become¡¡part¡¡of¡¡the¡¡source¡¡code¡£¡¡The¡¡CVS¡¡server¡¡keeps¡¡track¡¡of¡¡everything¡¡
and¡¡who¡¡sent¡¡in¡¡what¡£¡£¡£¡¡So¡¡you¡¡might¡¡have¡¡'read¡¡access'¡¡to¡¡the¡¡repository¡¡but¡¡not¡¡
'commit¡¡access'¡¡to¡¡change¡¡things¡£¡¡When¡¡someone¡¡makes¡¡a¡¡commit¡¡to¡¡the¡¡repository£»¡¡that¡¡
patch¡¡file¡¡gets¡¡e¡mailed¡¡out¡¡to¡¡all¡¡the¡¡other¡¡developers£»¡¡and¡¡so¡¡you¡¡get¡¡this¡¡peer¡¡
review¡¡system¡¡after¡¡the¡¡fact£»¡¡and¡¡if¡¡there¡¡is¡¡something¡¡wrong£»¡¡you¡¡fix¡¡the¡¡bug¡£¡¨¡¡
So¡¡how¡¡does¡¡this¡¡community¡¡decide¡¡who¡¡are¡¡trusted¡¡members£¿¡¡
¡¨For¡¡Apache£»¡¨¡¡said¡¡Behlendorf£»¡¡¡¨we¡¡started¡¡with¡¡eight¡¡people¡¡who¡¡really¡¡trusted¡¡each¡¡
other£»¡¡and¡¡as¡¡new¡¡people¡¡showed¡¡up¡¡at¡¡the¡¡discussion¡¡forum¡¡and¡¡offered¡¡patch¡¡files¡¡
posted¡¡to¡¡the¡¡discussion¡¡form£»¡¡we¡¡would¡¡
89¡¡
gain¡¡trust¡¡in¡¡others£»¡¡and¡¡that¡¡eight¡¡grew¡¡to¡¡over¡¡one¡¡thousand¡£¡¡We¡¡were¡¡the¡¡first¡¡
open¡source¡¡project¡¡to¡¡get¡¡attention¡¡from¡¡the¡¡business¡¡community¡¡and¡¡get¡¡the¡¡backing¡¡
from¡¡IBM¡£¡¨¡¡
Because¡¡of¡¡Apache's¡¡proficiency¡¡at¡¡allowing¡¡a¡¡single¡server¡¡machine¡¡to¡¡host¡¡thousands¡¡
of¡¡different¡¡virtual¡¡Web¡¡sites¡music£»¡¡data£»¡¡text£»¡¡pornography¡it¡¡began¡¡to¡¡have¡¡¡¨a¡¡
commanding¡¡share¡¡of¡¡the¡¡Internet¡¡Service¡¡Provider¡¡market£»¡¨¡¡noted¡¡Salon's¡¡Leonard¡£¡¡
IBM¡¡was¡¡trying¡¡to¡¡sell¡¡its¡¡own¡¡proprietary¡¡Web¡¡server£»¡¡called¡¡GO£»¡¡but¡¡it¡¡gained¡¡only¡¡
a¡¡tiny¡¡sliver¡¡of¡¡the¡¡market¡£¡¡Apache¡¡proved¡¡to¡¡be¡¡both¡¡a¡¡better¡¡technology¡¡and¡¡free¡£¡¡
So¡¡IBM¡¡eventually¡¡decided¡¡that¡¡if¡¡it¡¡could¡¡not¡¡beat¡¡Apache£»¡¡it¡¡should¡¡join¡¡Apache¡£¡¡
You¡¡have¡¡to¡¡stop¡¡here¡¡and¡¡imagine¡¡this¡£¡¡The¡¡world's¡¡biggest¡¡computer¡¡company¡¡decided¡¡
that¡¡its¡¡engineers¡¡could¡¡not¡¡best¡¡the¡¡work¡¡of¡¡an¡¡ad¡¡hoc¡¡open¡source¡¡collection¡¡of¡¡
geeks£»¡¡so¡¡they¡¡threw¡¡out¡¡their¡¡own¡¡technology¡¡and¡¡decided¡¡to¡¡go¡¡with¡¡the¡¡geeks£¡¡¡
IBM¡¡¡¨initiated¡¡contact¡¡with¡¡me£»¡¡as¡¡I¡¡had¡¡a¡¡somewhat¡¡public¡¡speaker¡¡role¡¡for¡¡Apache£»¡¨¡¡
said¡¡Behlendorf¡£¡¡¡¨IBM¡¡said£»¡¡'We¡¡would¡¡like¡¡to¡¡figure¡¡out¡¡how¡¡we¡¡can¡¡use¡¡£§Apache£§¡¡and¡¡
not¡¡get¡¡flamed¡¡by¡¡the¡¡Internet¡¡community£»¡¡£§how¡¡we¡¡can£§¡¡make¡¡it¡¡sustainable¡¡and¡¡not¡¡
just¡¡be¡¡ripping¡¡people¡¡off¡¡but¡¡contributing¡¡to¡¡the¡¡process¡£¡¡¡£¡¡¡£'¡¡IBM¡¡was¡¡saying¡¡that¡¡
this¡¡new¡¡model¡¡for¡¡software¡¡development¡¡was¡¡trustworthy¡¡and¡¡valuable£»¡¡so¡¡let's¡¡invest¡¡
in¡¡it¡¡and¡¡get¡¡rid¡¡of¡¡the¡¡one¡¡that¡¡we¡¡are¡¡trying¡¡to¡¡make¡¡on¡¡our¡¡own£»¡¡which¡¡isn't¡¡as¡¡
good¡£¡¨¡¡
John¡¡Swainson¡¡was¡¡the¡¡senior¡¡IBM¡¡executive¡¡who¡¡led¡¡the¡¡team¡¡that¡¡approached¡¡Apache¡¡
£¨he's¡¡now¡¡chairman¡¡of¡¡Computer¡¡Associates£©¡£¡¡He¡¡picked¡¡up¡¡the¡¡story£º¡¡¡¨There¡¡was¡¡a¡¡whole¡¡
debate¡¡going¡¡on¡¡at¡¡thetime¡¡about¡¡open¡source£»¡¡but¡¡it¡¡was¡¡all¡¡over¡¡the¡¡place¡£¡¡We¡¡decided¡¡
we¡¡could¡¡deal¡¡with¡¡the¡¡Apache¡¡guys¡¡because¡¡they¡¡answered¡¡our¡¡questions¡£¡¡We¡¡could¡¡hold¡¡
a¡¡meaningful¡¡conversation¡¡with¡¡these¡¡guys£»¡¡and¡¡we¡¡were¡¡able¡¡to¡¡create¡¡the¡¡£§nonprofit£§¡¡
Apache¡¡Software¡¡Foundation¡¡and¡¡work¡¡out¡¡all¡¡the¡¡issues¡£¡¨¡¡
At¡¡IBM's¡¡expense£»¡¡its¡¡lawyers¡¡worked¡¡with¡¡the¡¡Apache¡¡group¡¡to¡¡create¡¡a¡¡legal¡¡framework¡¡
around¡¡it¡¡so¡¡that¡¡there¡¡would¡¡be¡¡no¡¡copyright¡¡or¡¡liability¡¡problems¡¡for¡¡companies£»¡¡
like¡¡IBM£»¡¡that¡¡wanted¡¡to¡¡build¡¡applications¡¡on¡¡top¡¡of¡¡Apache¡¡and¡¡charge¡¡money¡¡for¡¡
them¡£¡¡IBM¡¡saw¡¡the¡¡value¡¡in¡¡having¡¡a¡¡standard¡¡vanilla¡¡Web¡¡server¡¡architecture¡which¡¡
allowed¡¡
90¡¡
heterogeneous¡¡computer¡¡systems¡¡and¡¡devices¡¡to¡¡talk¡¡to¡¡each¡¡other£»¡¡displaying¡¡e¡mail¡¡
and¡¡Web¡¡pages¡¡in¡¡a¡¡standard¡¡format¡that¡¡was¡¡constantly¡¡being¡¡improved¡¡for¡¡free¡¡by¡¡
an¡¡open¡source¡¡community¡£¡¡The¡¡Apache¡¡collaborators¡¡did¡¡not¡¡set¡¡out¡¡to¡¡make¡¡free¡¡
software¡£¡¡They¡¡set¡¡out¡¡to¡¡solve¡¡a¡¡common¡¡problem¡Web¡¡serving¡and¡¡found¡¡that¡¡
collaborating¡¡for¡¡free¡¡in¡¡this¡¡open¡source¡¡manner¡¡was¡¡the¡¡best¡¡way¡¡to¡¡assemble¡¡the¡¡
best¡¡brains¡¡for¡¡the¡¡job¡¡they¡¡needed¡¡done¡£¡¡
¡¨When¡¡we¡¡started¡¡working¡¡with¡¡Apache£»¡¡there¡¡was¡¡an¡¡apache¡£org¡¡Web¡¡site¡¡but¡¡no¡¡formal¡¡
legal¡¡structure£»¡¡and¡¡businesses¡¡and¡¡informal¡¡structures¡¡don't¡¡coexist¡¡well£»¡¨¡¡said¡¡
Swainson¡£¡¡¡¨You¡¡need¡¡to¡¡be¡¡able¡¡to¡¡vet¡¡the¡¡code£»¡¡sign¡¡an¡¡agreement£»¡¡and¡¡deal¡¡with¡¡
liability¡¡issues¡£¡¡£§Today£§¡¡anybody¡¡can¡¡download¡¡the¡¡Apache¡¡code¡£¡¡The¡¡only¡¡obligation¡¡
is¡¡that¡¡they¡¡acknowledge¡¡that¡¡it¡¡came¡¡from¡¡the¡¡site£»¡¡and¡¡if¡¡they¡¡make¡¡any¡¡changes¡¡
that¡¡they¡¡share¡¡them¡¡back¡£¡¨¡¡There¡¡is¡¡an¡¡Apache¡¡development¡¡process¡¡that¡¡manages¡¡the¡¡
traffic£»¡¡and¡¡you¡¡earn¡¡your¡¡way¡¡into¡¡that¡¡process£»¡¡added¡¡Swainson¡£¡¡It¡¡is¡¡something¡¡
like¡¡a¡¡pure¡¡meritocracy¡£When¡¡IBM¡¡started¡¡using¡¡Apache£»¡¡it¡¡became¡¡part¡¡of¡¡the¡¡community¡¡
and¡¡started¡¡making¡¡contributions¡£¡¡
Indeed£»¡¡the¡¡one¡¡thing¡¡the¡¡Apache¡¡people¡¡demanded¡¡in¡¡return¡¡for¡¡their¡¡collaboration¡¡
with¡¡IBM¡¡was¡¡that¡¡IBM¡¡assign¡¡its¡¡best¡¡engineers¡¡to¡¡join¡¡the¡¡Apache¡¡open¡source¡¡group¡¡
and¡¡contribute£»¡¡like¡¡everyone¡¡else£»¡¡for¡¡free¡£¡¡¡¨The¡¡Apache¡¡people¡¡were¡¡not¡¡interested¡¡
in¡¡payment¡¡of¡¡cash£»¡¨¡¡said¡¡Swainson¡£¡¡¡¨They¡¡wanted¡¡contribution¡¡to¡¡the¡¡base¡£¡¡Our¡¡
engineers¡¡came¡¡to¡¡us¡¡and¡¡said£»¡¡'These¡¡guys¡¡who¡¡doApache¡¡are¡¡good¡¡andthey¡¡are¡¡insisting¡¡
that¡¡we¡¡contribute¡¡good¡¡people¡£'¡¡At¡¡first¡¡they¡¡rejected¡¡some¡¡of¡¡what¡¡we¡¡contributed¡£¡¡
They¡¡said¡¡it¡¡wasn't¡¡up¡¡to¡¡their¡¡standards£¡¡¡The¡¡compensation¡¡that¡¡the¡¡community¡¡
expected¡¡was¡¡our¡¡best¡¡contribution¡£¡¨¡¡