(original) (raw)

%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: afterword.dvi %%Pages: 2 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: Helvetica-Bold Times-Bold Courier-Bold Times-Roman %%+ Times-Italic %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -R -q -o output.ps afterword.dvi %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2002.08.15:0350 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginProcSet: color.pro %! TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll }repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def /TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ /currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC /Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC /Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ 0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ 0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ 0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ 0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ 0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end %%EndProcSet TeXDict begin 39158280 55380996 1000 600 600 (afterword.dvi) @start /Fa 139[23 4[42 42 60 23 2[23 42 1[23 37 2[42 42 23[28 73[{TeXBase1Encoding ReEncodeFont}12 83.022 /Times-Italic rf /Fb 134[50 4[33 1[44 1[55 50 5[28 55 50 35[72 67[{TeXBase1Encoding ReEncodeFont}9 99.6264 /Times-Bold rf /Fc 86[63 18[42 23[45 3[37 42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 1[23 42 42 28 37 42 37 42 37 3[28 1[28 1[60 1[78 2[51 46 55 1[46 60 1[74 51 2[28 60 2[51 60 55 1[60 5[23 23 42 42 1[42 42 42 42 42 42 42 23 21 28 21 2[28 28 28 2[42 33[46 2[{ TeXBase1Encoding ReEncodeFont}65 83.022 /Times-Roman rf /Fd 134[72 3[72 72 72 72 2[72 1[72 4[72 2[72 1[72 34[72 1[72 1[72 13[72 46[{TeXBase1Encoding ReEncodeFont}14 119.552 /Courier-Bold rf /Fe 129[62 4[60 60 86 60 66 40 47 53 1[66 60 66 100 3[33 66 60 1[53 66 53 1[60 3[40 1[40 6[80 66 86 12[80 10[40 10[33 30 46[{TeXBase1Encoding ReEncodeFont} 29 119.552 /Times-Bold rf /Ff 134[115 1[161 2[69 1[80 2[126 126 7[69 115 126 2[115 13[138 16[149 149 1[126 4[69 58[{TeXBase1Encoding ReEncodeFont}15 206.585 /Helvetica-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop Black Black 225 1051 a Ff(Afterw)l(or)l(d:)71 b(Be)m(y)-5 b(ond)58 b(Software?)1324 1194 y Fe(Eric)30 b(Ste)n(v)o(en)h(Raymond)609 1338 y(Th)n(yrsus)e(Enter)o(prises)h ([http://www)-8 b(.tuxedo.or)o(g/~esr/])120 1744 y Fd (esr@thyrsus.com)1574 1987 y Fc(This)21 b(is)g(v)o(ersion)e(3.0)1282 2087 y(Cop)o(yright)g(\251)h(2000)f(Eric)h(S.)h(Raymond)0 2289 y Fb(Copyright)0 2472 y Fc(Permission)26 b(is)h(granted)e(to)i (cop)o(y)-5 b(,)26 b(distrib)n(ute)g(and/or)f(modify)f(this)j(document) e(under)g(the)h(terms)g(of)g(the)h(Open)e(Publication)0 2572 y(License,)20 b(v)o(ersion)f(2.0.)1379 2671 y($Date:)25 b(2002/08/02)17 b(09:02:14)h($)p Black Black 0 2756 a(Re)n(vision)i (History)p Black Black Black Black 0 2848 a(Re)n(vision)g(1.1)p Black Black Black Black 772 w(16)g(August)g(1999)p Black Black Black Black 658 w(esr)p Black Black Black Black 21 2939 a(This)g(v)o(ersion)f(w)o(as)i(used)f(in)g(the)h(\002rst)f (printed)f(edition.)p Black Black 0 3151 a(The)e(essays)h(in)f(this)h (book)e(were)h(a)h(be)o(ginning,)d(b)n(ut)i(the)o(y)g(are)g(not)g(an)g (end.)24 b(There)16 b(are)h(man)o(y)f(questions)h(not)g(yet)g(resolv)o (ed)f(about)0 3251 y(open-source)j(softw)o(are.)28 b(And)21 b(there)g(are)h(man)o(y)e(questions)h(about)f(other)h(kinds)g(of)g (creati)n(v)o(e)g(w)o(ork)f(and)h(intellectual)g(property)0 3351 y(that)f(the)g(open-source)e(phenomenon)f(raises,)j(b)n(ut)g(does) g(not)g(really)g(suggest)g(a)g(good)f(answer)h(for)-5 b(.)0 3533 y(I)20 b(am)g(often)f(ask)o(ed)g(if)h(I)g(belie)n(v)o(e)f (the)h(open-source)d(model)i(can)g(be)h(usefully)f(applied)f(to)i (other)f(kinds)g(of)h(goods)f(than)g(softw)o(are.)0 3633 y(Most)24 b(usually)f(the)h(question)f(is)h(ask)o(ed)g(about)f(music,)h (or)f(the)h(content)f(of)g(some)h(kinds)f(of)h(books,)f(or)h(designs)f (for)g(computer)0 3733 y(and)j(electronic)f(hardw)o(are.)42 b(Almost)27 b(as)g(frequently)d(I)j(am)f(ask)o(ed)g(whether)g(I)g (think)g(the)h(open-source)c(model)j(has)g(political)0 3832 y(implications.)0 4015 y(I)h(am)f(not)g(short)h(of)f(opinions)f (about)h(music,)h(books,)g(hardw)o(are,)f(or)h(politics.)44 b(Some)26 b(of)g(those)h(opinions)e(do)h(indeed)f(touch)0 4115 y(on)31 b(the)g(ideas)g(about)f(peer)g(re)n(vie)n(w)-5 b(,)33 b(decentralization,)e(and)f(openness)g(e)o(xplored)f(in)i(this)h (book;)j(the)c(interested)f(reader)g(is)0 4214 y(welcome)d(to)g(visit)i (my)e(home)f(site)j([http://www)-5 b(.tux)o(edo.or)o(g/~esr)o(])22 b(and)27 b(mak)o(e)g(his)h(or)f(her)h(o)n(wn)f(deductions.)45 b(Ho)n(we)n(v)o(er)m(,)27 b(I)0 4314 y(ha)n(v)o(e)i(deliberately)e(a)n (v)n(oided)h(such)h(speculation)f(in)h(connection)e(with)j(my)f(w)o (ork)f(as)i(a)f(theorist)g(and)g(ambassador)e(of)i(open)0 4413 y(source.)0 4596 y(The)20 b(principle)f(is)j(simple:)k Fa(one)20 b(battle)g(at)h(a)f(timeone)g(battle)h(at)f(a)h(time)p Fc(.)26 b(My)21 b(tribe)f(is)i(w)o(aging)d(a)i(struggle)f(to)h(raise)f (the)h(quality)0 4696 y(and)e(reliability)g(e)o(xpectations)f(of)h (softw)o(are)g(consumers)f(and)h(o)o(v)o(erturn)d(the)k(standard)e (operating)g(procedures)f(of)i(the)h(softw)o(are)0 4795 y(industry)-5 b(.)41 b(W)-7 b(e)27 b(f)o(ace)f(entrenched)d(opposition) i(with)h(a)g(lot)g(of)g(mone)o(y)e(and)i(mind-share)e(and)h(monopoly)e (po)n(wer)-5 b(.)42 b(It')-5 b(s)27 b(not)e(an)0 4895 y(easy)19 b(\002ght,)g(b)n(ut)g(the)h(logic)e(and)h(economics)f(are)h (clear;)g(we)h(can)f(win)g(and)g(we)g(will)h(win.)25 b Fa(IfIf)p Fc(,)19 b(that)g(is,)h(we)g(stay)f(focused)f(on)h(that)0 4995 y(goal.)0 5177 y(Staying)30 b(focused)f(on)i(the)f(goal)h(in)m(v)n (olv)o(es)e(not)h(w)o(andering)f(do)n(wn)h(a)h(lot)g(of)f(be)o(guiling) f(byw)o(ays.)56 b(This)30 b(is)i(a)f(point)f(I)h(often)0 5277 y(feel)j(needs)f(emphasizing)f(when)i(I)g(address)f(other)g(hack)o (ers,)j(because)d(in)h(the)g(past)g(our)f(representati)n(v)o(es)f(ha)n (v)o(e)i(sho)n(wn)f(a)0 5376 y(strong)21 b(tendenc)o(y)e(to)j (ideologize)e(when)h(the)o(y)f(w)o(ould)h(ha)n(v)o(e)g(been)g(more)g (ef)n(fecti)n(v)o(e)f(sticking)h(to)g(relati)n(v)o(ely)g(narro)n(w)-5 b(,)20 b(pragmatic)0 5476 y(ar)o(guments.)p Black 1860 5872 a(1)p Black eop %%Page: 2 2 2 1 bop Black Black 0 983 a Fc(Y)-8 b(es,)33 b(the)e(success)g(of)f (open)g(source)g(does)g(call)h(into)g(some)f(question)g(the)g(utility)h (of)f(command-and-control)25 b(systems,)33 b(of)0 1083 y(secrec)o(y)-5 b(,)27 b(of)g(centralization,)f(and)h(of)f(certain)h (kinds)f(of)g(intellectual)h(property)-5 b(.)42 b(It)27 b(w)o(ould)f(be)h(almost)g(disingenuous)e(not)h(to)0 1182 y(admit)31 b(that)g(it)h(suggests)f(\(or)g(at)g(least)h (harmonizes)e(well)h(with\))g(a)h(broadly)d(libertarian)h(vie)n(w)h(of) g(the)g(proper)f(relationship)0 1282 y(between)19 b(indi)n(viduals)g (and)h(institutions.)0 1465 y(These)28 b(things)g(ha)n(ving)f(been)g (said,)k(ho)n(we)n(v)o(er)m(,)c(it)i(seems)g(to)f(me)g(for)g(the)g (present)g(more)f(appropriate)f(to)i(try)g(to)h(a)n(v)n(oid)f(o)o(v)o (er)n(-)0 1564 y(applying)22 b(these)h(ideas.)35 b(A)24 b(case)f(in)h(point;)g(music)g(and)e(most)i(books)e(are)h(not)g(lik)o (e)h(softw)o(are,)g(because)e(the)o(y)h(don')o(t)f(generally)0 1664 y(need)i(to)g(be)h(deb)n(ugged)d(or)i(maintained.)36 b(W)m(ithout)24 b(that)h(requirement,)e(the)h(utility)h(of)f(peer)g(re) n(vie)n(w)g(is)h(much)f(lo)n(wer)m(,)g(and)g(the)0 1763 y(rational)j(incenti)n(v)o(es)g(for)g(some)h(equi)n(v)n(alent)e(of)i (open-sourcing)d(therefore)h(nearly)h(v)n(anish.)47 b(I)28 b(do)g(not)g(w)o(ant)g(to)g(weak)o(en)f(the)0 1863 y(winning)19 b(ar)o(gument)f(for)h(open-sourcing)e(softw)o(are)j(by)g(tying)f(it)i (to)f(a)h(potential)e(loser)-5 b(.)0 2046 y(I)19 b(e)o(xpect)e(the)h (open-source)e(mo)o(v)o(ement)g(to)j(ha)n(v)o(e)e(essentially)i(w)o(on) f(its)h(point)f(about)g(softw)o(are)g(within)g(three)g(to)g(\002)n(v)o (e)g(years)g(\(that)0 2145 y(is,)25 b(by)e(2003\2262005\).)30 b(Once)23 b(that)h(is)g(accomplished,)e(and)h(the)g(results)h(ha)n(v)o (e)f(been)f(manifest)h(for)g(a)h(while,)g(the)o(y)e(will)i(become)0 2245 y(part)g(of)g(the)h(background)c(culture)i(of)h(non-programmers.) 33 b(At)25 b Fa(thatthat)f Fc(point)f(it)i(will)g(become)f(more)f (appropriate)f(to)j(try)f(to)0 2345 y(le)n(v)o(erage)19 b(open-source)e(insights)j(in)h(wider)e(domains.)0 2527 y(In)25 b(the)h(meantime,)f(e)n(v)o(en)g(if)g(we)h(hack)o(ers)f(are)g (not)g(making)f(an)i(ideological)e(noise)h(about)g(it,)i(we)f(will)g (still)g(be)g(changing)d(the)0 2627 y(w)o(orld.)p Black 1860 5872 a(2)p Black eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF /esr@thyrsus.com