3803
+ − 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ − 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ − 3
+ − 4 <html>
+ − 5 <head>
+ − 6 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ − 7 <title>O'Reilly -- O'Reilly Policy on Re-Use of Code Examples from Books</title>
+ − 8 <meta name="keywords" content="O'Reilly,O'Reilly Network,oreillynet,oreillynet.com,O'Reilly,OREILLY,,Ask Tim,,Bruce Epstein,policy,re-use of code examples" />
+ − 9 <meta name="description" content="What is our policy with regard to programmers incorporating code examples from books into their work?" />
+ − 10 <meta name="date" content="Nov. 01, 2001" />
+ − 11 <meta name="pagename" content="O'Reilly Policy on Re-Use of Code Examples from Books" />
+ − 12 <meta name="site" content="O'Reilly" />
+ − 13 <meta name="author" content="" />
+ − 14 <meta name="safariu_url" content="" />
+ − 15
+ − 16
+ − 17 <!-- common javascript, css and hitbox -->
+ − 18 <link rel="stylesheet" rev="stylesheet" href="http://www.oreillynet.com/styles/all.css" type="text/css"/>
+ − 19
+ − 20 <script language="JavaScript" type="text/javascript" src="http://www.oreillynet.com/engine.js"></script>
+ − 21 <script language="JavaScript" type="text/javascript" src="http://www.oreillynet.com/common.js"></script>
+ − 22
+ − 23 <!--WEBSIDESTORY CODE HBX1.0 (Universal)-->
+ − 24 <!--COPYRIGHT 1997-2004 WEBSIDESTORY,INC. ALL RIGHTS RESERVED. U.S.PATENT No. 6,393,479B1. MORE INFO:http://websidestory.com / privacy-->
+ − 25 <script language="javascript" type="text/javascript">
+ − 26 var _hbEC=0,_hbE=new Array;function _hbEvent(a,b){b=_hbE[_hbEC++]=new Object();b._N=a;b._C=0;return b;}
+ − 27 var hbx=_hbEvent("pv");hbx.vpc="HBX0100u";hbx.gn="ehg-oreilly.hitbox.com";
+ − 28
+ − 29 //"BCB: oreilly.com,/a/oreilly/ask_tim/2001/codepolicy.html, DM52032830WV";
+ − 30
+ − 31 hbx.acct="DM52032830WV;DM520404M4ZR"; //ACCOUNT NUMBER(S)
+ − 32 hbx.pn="OReilly+Policy+on+Re-Use+of+Code+Examples+from+Books"; //PAGE NAME(S)
+ − 33 hbx.mlc="/a/oreilly/ask_tim/2001/;/oreilly.com/a/oreilly/ask_tim/2001/"; //MULTI-LEVEL CONTENT CATEGORY
+ − 34 hbx.pndef="title"; //DEFAULT PAGE NAME
+ − 35 hbx.ctdef="full"; //DEFAULT CONTENT CATEGORY
+ − 36
+ − 37 hbx.lt="auto"; //LINK TRACKING
+ − 38 hbx.dlf="n"; //DOWNLOAD FILTER
+ − 39 hbx.dft="n"; //DOWNLOAD FILE NAMING
+ − 40 hbx.elf="n"; //EXIT LINK FILTER
+ − 41
+ − 42 //SEGMENTS AND FUNNELS
+ − 43 hbx.seg=""; //VISITOR SEGMENTATION
+ − 44 hbx.fnl=""; //FUNNELS
+ − 45
+ − 46 //CAMPAIGNS
+ − 47 hbx.cmp=""; //CAMPAIGN ID
+ − 48 hbx.cmpn="CMP"; //CAMPAIGN ID IN QUERY
+ − 49 hbx.hra=""; //RESPONSE ATTRIBUTE
+ − 50 hbx.hqsr=""; //RESPONSE ATTRIBUTE IN REFERRAL QUERY
+ − 51 hbx.hqsp="ATT"; //RESPONSE ATTRIBUTE IN QUERY
+ − 52 hbx.hlt=""; //LEAD TRACKING
+ − 53 hbx.hla=""; //LEAD ATTRIBUTE
+ − 54 hbx.gp=""; //CAMPAIGN GOAL
+ − 55 hbx.gpn=""; //CAMPAIGN GOAL IN QUERY
+ − 56 hbx.hcn=""; //CONVERSION ATTRIBUTE
+ − 57 hbx.hcv=""; //CONVERSION VALUE
+ − 58 hbx.cp="null"; //LEGACY CAMPAIGN
+ − 59 hbx.cpd=""; //CAMPAIGN DOMAIN
+ − 60
+ − 61 //CUSTOM VARIABLES
+ − 62 hbx.ci="";//CUSTOMER ID
+ − 63 hbx.hc1="";//CUSTOM 1
+ − 64 hbx.hc2="";//CUSTOM 2
+ − 65 hbx.hc3="";//CUSTOM 3
+ − 66 hbx.hc4="";//CUSTOM 4
+ − 67 hbx.pec="";//ERROR CODES
+ − 68 </script><script language="javascript1.1" defer="defer" src="http://www.oreillynet.com/hbx.js" type="text/javascript"></script><!--//-->
+ − 69 <!-- END WEBSIDESTORY CODE -->
+ − 70
+ − 71
+ − 72 <link rel="stylesheet" rev="stylesheet" href="http://www.oreillynet.com/styles/about.css" />
+ − 73
+ − 74 <!-- feed autodiscovery links -->
+ − 75
+ − 76
+ − 77
+ − 78
+ − 79
+ − 80
+ − 81 </head>
+ − 82 <body onload="setMenu();" id="about">
+ − 83
+ − 84 <div id="page">
+ − 85
+ − 86
+ − 87 <div id="header">
+ − 88 <h1><a href="http://www.oreilly.com"><img src="/images/oreilly/oreilly.gif" width="228" height="67" alt="O'Reilly" /></a></h1>
+ − 89 <ul>
+ − 90 <li><a href="https://epoch.oreilly.com/account/default.orm" class="acct">My Account</a></li>
+ − 91 <li><a href="https://epoch.oreilly.com/shop/cart.orm" class="cart">View Cart</a></li>
+ − 92 </ul>
+ − 93 <span id="animal">
+ − 94 </span>
+ − 95 </div><!-- /#header -->
+ − 96
+ − 97 <div id="nav">
+ − 98 <ul>
+ − 99 <li><a href="http://www.oreilly.com/">Home</a></li>
+ − 100 <li><a href="http://www.oreillynet.com/">Network</a></li>
+ − 101 <li><a href="http://www.oreilly.com/store/">Store</a></li>
+ − 102 <li><a href="http://safari.oreilly.com">Safari Books Online</a></li>
+ − 103 <li><a href="http://conferences.oreillynet.com/">Conferences</a></li>
+ − 104 <li><a href="http://www.oreillylearning.com">Courses</a></li>
+ − 105 <li><a href="http://academic.oreilly.com/">Academic Solutions</a></li>
+ − 106 <li class="nav_selected"><a href="http://www.oreilly.com/about/">About</a></li>
+ − 107 </ul>
+ − 108 <div class="clear"></div>
+ − 109 </div><!-- /#nav -->
+ − 110
+ − 111 <div id="subnav">
+ − 112 <ul>
+ − 113 <li>
+ − 114 <a href="http://www.oreilly.com/contact.html">Contacts</a></li>
+ − 115
+ − 116 <li>
+ − 117 <a href="http://www.oreilly.com/history.html">History</a></li>
+ − 118
+ − 119 <li>
+ − 120 <a href="http://tim.oreilly.com">Tim O'Reilly</a></li>
+ − 121
+ − 122 <li>
+ − 123 <a href="http://labs.oreilly.com/">Labs</a></li>
+ − 124
+ − 125 <li>
+ − 126 <a href="http://press.oreilly.com/">Press Room</a></li>
+ − 127
+ − 128 <li>
+ − 129 <a href="http://jobs.oreilly.com/">Jobs</a></li>
+ − 130
+ − 131 <li>
+ − 132 <a href="http://www.oreillynet.com/cs/nl/home">Newsletters</a></li>
+ − 133
+ − 134 <li>
+ − 135 <a href="http://www.oreilly.com/oreilly/author/intro.csp">Writing for O'Reilly</a></li>
+ − 136
+ − 137 <li>
+ − 138 <a href="http://www.oreilly.com/feeds/">RSS Feeds</a></li>
+ − 139
+ − 140 </ul>
+ − 141 <div class="clear"></div>
+ − 142 </div><!-- /#subnav -->
+ − 143
+ − 144
+ − 145 <div id="content">
+ − 146
+ − 147
+ − 148
+ − 149 <!-- begin print-safariu-del.icio.us options -->
+ − 150 <div style="float:right;width:150px;margin: 0px 0px 6px 6px;">
+ − 151
+ − 152 <div style="padding-bottom:5px;"><a class="tool" title="Go to a print-friendly version of this page." href="/lpt/a/3883" class="secondary"><img src="/images/icons/print_18.gif" width="18" height="18" hspace="3" vspace="0" alt="Print." border="0" />Print</a></div>
+ − 153
+ − 154 <div style="padding: 5px 1px 5px 1px; border-top: 2px solid #ccc; border-bottom: 2px solid #ccc;" class="secondary"><a href='http://del.icio.us/post?url=http%3A%2F%2Fwww.oreilly.com%2Fpub%2Fa%2Foreilly%2Fask_tim%2F2001%2Fcodepolicy.html&title=O'Reilly%20Policy%20on%20Re-Use%20of%20Code%20Examples%20from%20Books'>Bookmark with del.icio.us</a></div>
+ − 155
+ − 156 </div>
+ − 157 <!-- end print-safariu-del.icio.us options -->
+ − 158
+ − 159
+ − 160 <!-- content here -->
+ − 161 <span id="intelliTxt">
+ − 162 <p> <font size="4"><b>O'Reilly Policy on Re-Use
+ − 163 of Code Examples from Books</b></font> </p>
+ − 164 <p> Bruce Epstein, author of <i>Director in a Nutshell</i>
+ − 165 (out of print) and <a href="http://www.oreilly.com/catalog/lingonut/">Lingo
+ − 166 in a Nutshell</a>, who is now working as a part-time
+ − 167 editor for O'Reilly (he is editor of Colin Moock's
+ − 168 recently published <a href="http://www.oreilly.com/catalog/actscript/">ActionScript:
+ − 169 The Definitive Guide</a>) sent in the following
+ − 170 question: </p>
+ − 171 <p> "What is our policy with regard to programmers
+ − 172 incorporating code examples from books into
+ − 173 their work? I get asked this all the time."
+ − 174 </p>
+ − 175 <p> The short answer is this: </p>
+ − 176 <p> You can use and redistribute example code from
+ − 177 our books for any non-commercial purpose (and
+ − 178 most commercial purposes) as long as you acknowledge
+ − 179 their source and authorship. The source of the
+ − 180 code should be noted in any documentation as
+ − 181 well as in the program code itself (as a comment).
+ − 182 The attribution should include author, title,
+ − 183 publisher, and ISBN. </p>
+ − 184 <p> As is often the case, there's a longer answer
+ − 185 as well. Bruce made it really easy for me to
+ − 186 put this response together, since he forwarded
+ − 187 an unofficial reply on this subject that he'd
+ − 188 sent to the FlashCoders mailing list. What appears
+ − 189 below is based on his message. (Hey, anyone
+ − 190 else who wants to send the answer as well as
+ − 191 the question to Ask Tim can make my job a lot
+ − 192 easier :-) Thanks, Bruce.) </p>
+ − 193 <p> As per the copyright notice in our books, O'Reilly
+ − 194 reserves all rights to the material in the book,
+ − 195 including the code examples. This literally
+ − 196 means that you can use the example code all
+ − 197 you like, but you can't publish or redistribute
+ − 198 it without our permission. In reality, we are
+ − 199 comfortable with any reasonable "fair use" of
+ − 200 the code, and you can assume permission is granted
+ − 201 without contacting us. The threshold of what
+ − 202 is reasonable (fair use) depends on a number
+ − 203 of factors. First, if the book is published
+ − 204 under an open source or open publication license,
+ − 205 you can use the code examples without any obligation
+ − 206 to us. Otherwise, use the following sanity tests:
+ − 207 </p>
+ − 208 <ol>
+ − 209 <li>
+ − 210 <p>If the code is incorporated into a software
+ − 211 product, Web site, or Web service, is
+ − 212 the product, site, or service a commercial
+ − 213 venture? We don't object to commercial
+ − 214 ventures, but if someone is looking
+ − 215 to profit from our work (or that of
+ − 216 our authors'), and the use is substantial,
+ − 217 we may want to consider a license fee.
+ − 218 (Send licensing queries to <a href="mailto:permissions@oreilly.com">permissions@oreilly.com</a>.)
+ − 219 </p>
+ − 220 </li>
+ − 221 <li>
+ − 222 <p>Is the O'Reilly material incidental to
+ − 223 the entire product? Are you using only
+ − 224 a small excerpt? For example, you can't
+ − 225 publish a CD-ROM of code examples from
+ − 226 O'Reilly books without our explicit
+ − 227 permission. But we aren't going to worry
+ − 228 if you use a routine taken from our
+ − 229 books as part of a huge software project,
+ − 230 in which the borrowed code is incidental.
+ − 231 </p>
+ − 232 </li>
+ − 233 <li>
+ − 234 <p>Does the work compete with O'Reilly?
+ − 235 For example, if you are a book publisher,
+ − 236 you can't use anything from our books
+ − 237 without our permission. </p>
+ − 238 </li>
+ − 239 <li>
+ − 240 <p>Is proper credit given? Such credit would
+ − 241 include a statement specifying the source
+ − 242 of the material, such as "Derived from
+ − 243 Example 10-2, <i>ActionScript: The Definitive
+ − 244 Guide</i> by Colin Moock. Copyright
+ − 245 2001 O'Reilly & Associates." Note
+ − 246 that giving credit does not insulate
+ − 247 you from prosecution if you improperly
+ − 248 use copyrighted material! </p>
+ − 249 </li>
+ − 250 <li>
+ − 251 <p>Does your use fall within fair use provisions
+ − 252 of copyright law? (Academic research,
+ − 253 commentary, etc.) For example, you don't
+ − 254 need O'Reilly's explicit permission
+ − 255 to post a snippet of code on a mailing
+ − 256 list if you are pointing out a bug,
+ − 257 asking a question, or answering one.
+ − 258 We especially like it when people answer
+ − 259 questions by pointing to our books,
+ − 260 quoting from them, and citing their
+ − 261 examples, as long as they acknowledge
+ − 262 the source! </p>
+ − 263 <p> Acknowledging the source is particularly
+ − 264 important. Bruce didn't mention this
+ − 265 in his posting to FlashCoders, but I
+ − 266 know that he personally was bit by this
+ − 267 one. Someone was routinely answering
+ − 268 Lingo questions on a mailing list by
+ − 269 supplying examples from Bruce's book,
+ − 270 without acknowledging the source (and
+ − 271 leading people to believe that the poster
+ − 272 had written them). </p>
+ − 273 </li>
+ − 274 </ol>
+ − 275 <p> We put the code from our books online because
+ − 276 we want it to be used. (Who wants to type it
+ − 277 in?) That's why we make it available in lots
+ − 278 of ways: for download from the Web (all examples
+ − 279 are linked from the book's catalog page on <i>oreilly.com</i>),
+ − 280 in our CD Bookshelf products, and in our new
+ − 281 Safari online service. </p>
+ − 282 <p> If you are interested in licensing O'Reilly
+ − 283 book content as a third party, send your request
+ − 284 to <a href="mailto:corporate@oreilly.com">corporate@oreilly.com</a>.
+ − 285 </p>
+ − 286 <p> --Tim </p>
+ − 287 <!-- End main text here -->
+ − 288 <p align="center"> <a href="http://www.oreilly.com/ask_tim/asktim_form.html"><b>Got
+ − 289 a question? Just ask!</b></a> </p>
+ − 290 <b>Return to: <a href="http://www.oreilly.com/ask_tim/">Ask Tim Archive</a></b>
+ − 291 </span>
+ − 292 <!-- end content -->
+ − 293
+ − 294
+ − 295 <img src="/images/trans.gif" alt=" " width="490" height="1" /><br />
+ − 296
+ − 297
+ − 298
+ − 299
+ − 300
+ − 301
+ − 302
+ − 303
+ − 304
+ − 305 <br /><br />
+ − 306
+ − 307
+ − 308
+ − 309 </div> <!-- /#content -->
+ − 310
+ − 311 <!-- navbar and footer -->
+ − 312
+ − 313 <div id="netnav">
+ − 314 <h3>Topics</h3>
+ − 315 <ul>
+ − 316 <li><a href="#" onclick="toggleSheet('business'); return true" id="businessButton" class="rollup">Business & Culture</a>
+ − 317 <ul id="business">
+ − 318 <li>
+ − 319
+ − 320
+ − 321 <a href="http://www.oreilly.com/pub/topic/business" class="showtopic">
+ − 322
+ − 323
+ − 324 Business</a>
+ − 325 </li><li>
+ − 326
+ − 327
+ − 328 <a href="http://www.oreilly.com/pub/topic/culture" class="showtopic">
+ − 329
+ − 330
+ − 331 Digital Culture</a>
+ − 332 </li><li>
+ − 333
+ − 334
+ − 335 <a href="http://www.oreilly.com/pub/topic/finance" class="showtopic">
+ − 336
+ − 337
+ − 338 Personal Finance</a>
+ − 339 </li><li>
+ − 340
+ − 341
+ − 342 <a href="http://www.oreilly.com/pub/topic/projectmanagement" class="showtopic">
+ − 343
+ − 344
+ − 345 Project & Career Management</a>
+ − 346 </li>
+ − 347 </ul>
+ − 348 </li>
+ − 349 <li><a href="#" onclick="toggleSheet('databases'); return false" id="databasesButton" class="rollup">Databases</a>
+ − 350 <ul id="databases">
+ − 351 <li>
+ − 352
+ − 353
+ − 354 <a href="http://www.oreilly.com/pub/topic/access" class="showtopic">
+ − 355
+ − 356
+ − 357 Access</a>
+ − 358 </li><li>
+ − 359
+ − 360
+ − 361 <a href="http://www.oreilly.com/pub/topic/mysql" class="showtopic">
+ − 362
+ − 363
+ − 364 MySQL</a>
+ − 365 </li><li>
+ − 366
+ − 367
+ − 368 <a href="http://www.oreilly.com/pub/topic/oracle" class="showtopic">
+ − 369
+ − 370
+ − 371 Oracle</a>
+ − 372 </li><li>
+ − 373
+ − 374
+ − 375 <a href="http://www.oreilly.com/pub/topic/otherdatabases" class="showtopic">
+ − 376
+ − 377
+ − 378 Other Databases</a>
+ − 379 </li><li>
+ − 380
+ − 381
+ − 382 <a href="http://www.oreilly.com/pub/topic/sql" class="showtopic">
+ − 383
+ − 384
+ − 385 SQL</a>
+ − 386 </li><li>
+ − 387
+ − 388
+ − 389 <a href="http://www.oreilly.com/pub/topic/sqlserver" class="showtopic">
+ − 390
+ − 391
+ − 392 SQL Server</a>
+ − 393 </li><li>
+ − 394
+ − 395
+ − 396 <a href="http://www.oreilly.com/pub/topic/theory" class="showtopic">
+ − 397
+ − 398
+ − 399 Theory</a>
+ − 400 </li>
+ − 401 </ul>
+ − 402 </li>
+ − 403 <li><a href="#" onclick="toggleSheet('design'); return false" id="designButton" class="rollup">Design & Graphics</a>
+ − 404 <ul id="design">
+ − 405 <li>
+ − 406
+ − 407
+ − 408 <a href="http://www.oreilly.com/pub/topic/flash" class="showtopic">
+ − 409
+ − 410
+ − 411 Flash & Actionscript</a>
+ − 412 </li><li>
+ − 413
+ − 414
+ − 415 <a href="http://www.oreilly.com/pub/topic/graphics" class="showtopic">
+ − 416
+ − 417
+ − 418 Illustration & Graphics</a>
+ − 419 </li><li>
+ − 420
+ − 421
+ − 422 <a href="http://www.oreilly.com/pub/topic/photomanipulation" class="showtopic">
+ − 423
+ − 424
+ − 425 Photoshop & Photomanipulation</a>
+ − 426 </li><li>
+ − 427
+ − 428
+ − 429 <a href="http://www.oreilly.com/pub/topic/printdesign" class="showtopic">
+ − 430
+ − 431
+ − 432 Print Design</a>
+ − 433 </li>
+ − 434 </ul>
+ − 435 </li>
+ − 436 <li><a href="#" onclick="toggleSheet('audiovideo'); return false" id="audiovideoButton" class="rollup">Digital Audio & Video</a>
+ − 437 <ul id="audiovideo">
+ − 438 <li>
+ − 439
+ − 440
+ − 441 <a href="http://www.oreilly.com/pub/topic/digitalaudio" class="showtopic">
+ − 442
+ − 443
+ − 444 Digital Audio</a>
+ − 445 </li><li>
+ − 446
+ − 447
+ − 448 <a href="http://www.oreilly.com/pub/topic/digitalvideo" class="showtopic">
+ − 449
+ − 450
+ − 451 Digital Video</a>
+ − 452 </li>
+ − 453 </ul>
+ − 454 </li>
+ − 455 <li><a href="#" onclick="toggleSheet('photography'); return false" id="photographyButton" class="rollup">Digital Photography</a>
+ − 456 <ul id="photography">
+ − 457 <li>
+ − 458
+ − 459
+ − 460 <a href="http://www.oreilly.com/pub/topic/digiphoto" class="showtopic">
+ − 461
+ − 462
+ − 463 Digital Photography</a>
+ − 464 </li><li>
+ − 465
+ − 466
+ − 467 <a href="http://www.oreilly.com/pub/topic/photomanipulation" class="showtopic">
+ − 468
+ − 469
+ − 470 Photoshop & Photomanipulation</a>
+ − 471 </li>
+ − 472 </ul>
+ − 473 </li>
+ − 474 <li><a href="#" onclick="toggleSheet('hardware'); return false" id="hardwareButton" class="rollup">Hardware</a>
+ − 475 <ul id="hardware">
+ − 476 <li>
+ − 477
+ − 478
+ − 479 <a href="http://www.oreilly.com/pub/topic/devices" class="showtopic">
+ − 480
+ − 481
+ − 482 Devices & Peripherals</a>
+ − 483 </li><li>
+ − 484
+ − 485
+ − 486 <a href="http://www.oreilly.com/pub/topic/hardwarehacking" class="showtopic">
+ − 487
+ − 488
+ − 489 Hacks & Modifications</a>
+ − 490 </li><li>
+ − 491
+ − 492
+ − 493 <a href="http://www.oreilly.com/pub/topic/pchardware" class="showtopic">
+ − 494
+ − 495
+ − 496 PC Hardware</a>
+ − 497 </li>
+ − 498 </ul>
+ − 499 </li>
+ − 500 <li><a href="#" onclick="toggleSheet('homeoffice'); return false" id="homeofficeButton" class="rollup">Home & Office</a>
+ − 501 <ul id="homeoffice">
+ − 502 <li>
+ − 503
+ − 504
+ − 505 <a href="http://www.oreilly.com/pub/topic/security" class="showtopic">
+ − 506
+ − 507
+ − 508 Computer Security & Privacy</a>
+ − 509 </li><li>
+ − 510
+ − 511
+ − 512 <a href="http://www.oreilly.com/pub/topic/games" class="showtopic">
+ − 513
+ − 514
+ − 515 Games</a>
+ − 516 </li><li>
+ − 517
+ − 518
+ − 519 <a href="http://www.oreilly.com/pub/topic/homeentertainment" class="showtopic">
+ − 520
+ − 521
+ − 522 Home Entertainment</a>
+ − 523 </li><li>
+ − 524
+ − 525
+ − 526 <a href="http://www.oreilly.com/pub/topic/homenetworking" class="showtopic">
+ − 527
+ − 528
+ − 529 Home Networking</a>
+ − 530 </li><li>
+ − 531
+ − 532
+ − 533 <a href="http://www.oreilly.com/pub/topic/mac" class="showtopic">
+ − 534
+ − 535
+ − 536 Mac OS X</a>
+ − 537 </li><li>
+ − 538
+ − 539
+ − 540 <a href="http://www.oreilly.com/pub/topic/macprograms" class="showtopic">
+ − 541
+ − 542
+ − 543 Macintosh Programs</a>
+ − 544 </li><li>
+ − 545
+ − 546
+ − 547 <a href="http://www.oreilly.com/pub/topic/pchardware" class="showtopic">
+ − 548
+ − 549
+ − 550 PC Hardware</a>
+ − 551 </li><li>
+ − 552
+ − 553
+ − 554 <a href="http://www.oreilly.com/pub/topic/finance" class="showtopic">
+ − 555
+ − 556
+ − 557 Personal Finance</a>
+ − 558 </li><li>
+ − 559
+ − 560
+ − 561 <a href="http://www.oreilly.com/pub/topic/windows" class="showtopic">
+ − 562
+ − 563
+ − 564 Windows 2000 & earlier</a>
+ − 565 </li><li>
+ − 566
+ − 567
+ − 568 <a href="http://www.oreilly.com/pub/topic/windowsprograms" class="showtopic">
+ − 569
+ − 570
+ − 571 Windows Programs</a>
+ − 572 </li><li>
+ − 573
+ − 574
+ − 575 <a href="http://www.oreilly.com/pub/topic/windowsvista" class="showtopic">
+ − 576
+ − 577
+ − 578 Windows Vista</a>
+ − 579 </li><li>
+ − 580
+ − 581
+ − 582 <a href="http://www.oreilly.com/pub/topic/windowsxp" class="showtopic">
+ − 583
+ − 584
+ − 585 Windows XP</a>
+ − 586 </li>
+ − 587 </ul>
+ − 588 </li>
+ − 589 <li><a href="#" onclick="toggleSheet('sysadmin'); return false" id="sysadminButton" class="rollup">Networking & Sys Admin</a>
+ − 590 <ul id="sysadmin">
+ − 591 <li>
+ − 592
+ − 593
+ − 594 <a href="http://www.oreilly.com/pub/topic/apache" class="showtopic">
+ − 595
+ − 596
+ − 597 Apache</a>
+ − 598 </li><li>
+ − 599
+ − 600
+ − 601 <a href="http://www.oreilly.com/pub/topic/certification" class="showtopic">
+ − 602
+ − 603
+ − 604 Certification</a>
+ − 605 </li><li>
+ − 606
+ − 607
+ − 608 <a href="http://www.oreilly.com/pub/topic/cisco" class="showtopic">
+ − 609
+ − 610
+ − 611 Cisco & other Routers</a>
+ − 612 </li><li>
+ − 613
+ − 614
+ − 615 <a href="http://www.oreilly.com/pub/topic/email" class="showtopic">
+ − 616
+ − 617
+ − 618 Email</a>
+ − 619 </li><li>
+ − 620
+ − 621
+ − 622 <a href="http://www.oreilly.com/pub/topic/homenetworking" class="showtopic">
+ − 623
+ − 624
+ − 625 Home Networking</a>
+ − 626 </li><li>
+ − 627
+ − 628
+ − 629 <a href="http://www.oreilly.com/pub/topic/projectmanagement" class="showtopic">
+ − 630
+ − 631
+ − 632 Project & Career Management</a>
+ − 633 </li><li>
+ − 634
+ − 635
+ − 636 <a href="http://www.oreilly.com/pub/topic/protocols" class="showtopic">
+ − 637
+ − 638
+ − 639 Protocols</a>
+ − 640 </li><li>
+ − 641
+ − 642
+ − 643 <a href="http://www.oreilly.com/pub/topic/serveradmin" class="showtopic">
+ − 644
+ − 645
+ − 646 Server Administration</a>
+ − 647 </li><li>
+ − 648
+ − 649
+ − 650 <a href="http://www.oreilly.com/pub/topic/serversecurity" class="showtopic">
+ − 651
+ − 652
+ − 653 Server Security</a>
+ − 654 </li><li>
+ − 655
+ − 656
+ − 657 <a href="http://www.oreilly.com/pub/topic/spam" class="showtopic">
+ − 658
+ − 659
+ − 660 Spam</a>
+ − 661 </li><li>
+ − 662
+ − 663
+ − 664 <a href="http://www.oreilly.com/pub/topic/telephony" class="showtopic">
+ − 665
+ − 666
+ − 667 Telephony</a>
+ − 668 </li><li>
+ − 669
+ − 670
+ − 671 <a href="http://www.oreilly.com/pub/topic/wireless" class="showtopic">
+ − 672
+ − 673
+ − 674 Wireless</a>
+ − 675 </li>
+ − 676 </ul>
+ − 677 </li>
+ − 678 <li><a href="#" onclick="toggleSheet('os'); return false" id="osButton" class="rollup">Operating Systems</a>
+ − 679 <ul id="os">
+ − 680 <li>
+ − 681
+ − 682
+ − 683 <a href="http://www.oreilly.com/pub/topic/linux" class="showtopic">
+ − 684
+ − 685
+ − 686 Linux/Unix</a>
+ − 687 </li><li>
+ − 688
+ − 689
+ − 690 <a href="http://www.oreilly.com/pub/topic/mac" class="showtopic">
+ − 691
+ − 692
+ − 693 Mac OS X</a>
+ − 694 </li><li>
+ − 695
+ − 696
+ − 697 <a href="http://www.oreilly.com/pub/topic/windows" class="showtopic">
+ − 698
+ − 699
+ − 700 Windows 2000 & earlier</a>
+ − 701 </li><li>
+ − 702
+ − 703
+ − 704 <a href="http://www.oreilly.com/pub/topic/windowsvista" class="showtopic">
+ − 705
+ − 706
+ − 707 Windows Vista</a>
+ − 708 </li><li>
+ − 709
+ − 710
+ − 711 <a href="http://www.oreilly.com/pub/topic/windowsxp" class="showtopic">
+ − 712
+ − 713
+ − 714 Windows XP</a>
+ − 715 </li>
+ − 716 </ul>
+ − 717 </li>
+ − 718 <li><a href="#" onclick="toggleSheet('programming'); return false" id="programmingButton" class="rollup">Programming</a>
+ − 719 <ul id="programming">
+ − 720 <li>
+ − 721
+ − 722
+ − 723 <a href="http://www.oreilly.com/pub/topic/dotnet" class="showtopic">
+ − 724
+ − 725
+ − 726 .NET & Windows Programming</a>
+ − 727 </li><li>
+ − 728
+ − 729
+ − 730 <a href="http://www.oreilly.com/pub/topic/ajax" class="showtopic">
+ − 731
+ − 732
+ − 733 Ajax</a>
+ − 734 </li><li>
+ − 735
+ − 736
+ − 737 <a href="http://www.oreilly.com/pub/topic/csharp" class="showtopic">
+ − 738
+ − 739
+ − 740 C#</a>
+ − 741 </li><li>
+ − 742
+ − 743
+ − 744 <a href="http://www.oreilly.com/pub/topic/cprog" class="showtopic">
+ − 745
+ − 746
+ − 747 C/C++</a>
+ − 748 </li><li>
+ − 749
+ − 750
+ − 751 <a href="http://www.oreilly.com/pub/topic/certification" class="showtopic">
+ − 752
+ − 753
+ − 754 Certification</a>
+ − 755 </li><li>
+ − 756
+ − 757
+ − 758 <a href="http://www.oreilly.com/pub/topic/games" class="showtopic">
+ − 759
+ − 760
+ − 761 Games</a>
+ − 762 </li><li>
+ − 763
+ − 764
+ − 765 <a href="http://www.oreilly.com/pub/topic/java" class="showtopic">
+ − 766
+ − 767
+ − 768 Java</a>
+ − 769 </li><li>
+ − 770
+ − 771
+ − 772 <a href="http://www.oreilly.com/pub/topic/otherprogramming" class="showtopic">
+ − 773
+ − 774
+ − 775 Other Programming</a>
+ − 776 </li><li>
+ − 777
+ − 778
+ − 779 <a href="http://www.oreilly.com/pub/topic/perl" class="showtopic">
+ − 780
+ − 781
+ − 782 Perl</a>
+ − 783 </li><li>
+ − 784
+ − 785
+ − 786 <a href="http://www.oreilly.com/pub/topic/php" class="showtopic">
+ − 787
+ − 788
+ − 789 PHP</a>
+ − 790 </li><li>
+ − 791
+ − 792
+ − 793 <a href="http://www.oreilly.com/pub/topic/projectmanagement" class="showtopic">
+ − 794
+ − 795
+ − 796 Project & Career Management</a>
+ − 797 </li><li>
+ − 798
+ − 799
+ − 800 <a href="http://www.oreilly.com/pub/topic/python" class="showtopic">
+ − 801
+ − 802
+ − 803 Python</a>
+ − 804 </li><li>
+ − 805
+ − 806
+ − 807 <a href="http://www.oreilly.com/pub/topic/ruby" class="showtopic">
+ − 808
+ − 809
+ − 810 Ruby</a>
+ − 811 </li><li>
+ − 812
+ − 813
+ − 814 <a href="http://www.oreilly.com/pub/topic/secureprogramming" class="showtopic">
+ − 815
+ − 816
+ − 817 Secure Programming</a>
+ − 818 </li><li>
+ − 819
+ − 820
+ − 821 <a href="http://www.oreilly.com/pub/topic/vb" class="showtopic">
+ − 822
+ − 823
+ − 824 Visual Basic</a>
+ − 825 </li><li>
+ − 826
+ − 827
+ − 828 <a href="http://www.oreilly.com/pub/topic/webservices" class="showtopic">
+ − 829
+ − 830
+ − 831 Web Services</a>
+ − 832 </li><li>
+ − 833
+ − 834
+ − 835 <a href="http://www.oreilly.com/pub/topic/xml" class="showtopic">
+ − 836
+ − 837
+ − 838 XML</a>
+ − 839 </li>
+ − 840 </ul>
+ − 841 </li>
+ − 842 <li><a href="#" onclick="toggleSheet('science'); return false" id="scienceButton" class="rollup">Science & Math</a>
+ − 843 <ul id="science">
+ − 844 <li>
+ − 845
+ − 846
+ − 847 <a href="http://www.oreilly.com/pub/topic/mapping" class="showtopic">
+ − 848
+ − 849
+ − 850 Mapping</a>
+ − 851 </li><li>
+ − 852
+ − 853
+ − 854 <a href="http://www.oreilly.com/pub/topic/math" class="showtopic">
+ − 855
+ − 856
+ − 857 Math</a>
+ − 858 </li><li>
+ − 859
+ − 860
+ − 861 <a href="http://www.oreilly.com/pub/topic/science" class="showtopic">
+ − 862
+ − 863
+ − 864 Science</a>
+ − 865 </li>
+ − 866 </ul>
+ − 867 </li>
+ − 868 <li><a href="#" onclick="toggleSheet('security'); return false" id="securityButton" class="rollup">Security</a>
+ − 869 <ul id="security">
+ − 870 <li>
+ − 871
+ − 872
+ − 873 <a href="http://www.oreilly.com/pub/topic/security" class="showtopic">
+ − 874
+ − 875
+ − 876 Computer Security & Privacy</a>
+ − 877 </li><li>
+ − 878
+ − 879
+ − 880 <a href="http://www.oreilly.com/pub/topic/secureprogramming" class="showtopic">
+ − 881
+ − 882
+ − 883 Secure Programming</a>
+ − 884 </li><li>
+ − 885
+ − 886
+ − 887 <a href="http://www.oreilly.com/pub/topic/serversecurity" class="showtopic">
+ − 888
+ − 889
+ − 890 Server Security</a>
+ − 891 </li><li>
+ − 892
+ − 893
+ − 894 <a href="http://www.oreilly.com/pub/topic/spam" class="showtopic">
+ − 895
+ − 896
+ − 897 Spam</a>
+ − 898 </li>
+ − 899 </ul>
+ − 900 </li>
+ − 901 <li><a href="#" onclick="toggleSheet('softwareengineering'); return false" id="softwareengineeringButton" class="rollup">Software Engineering</a>
+ − 902 <ul id="softwareengineering">
+ − 903 <li>
+ − 904
+ − 905
+ − 906 <a href="http://www.oreilly.com/pub/topic/designpatterns" class="showtopic">
+ − 907
+ − 908
+ − 909 Design Patterns</a>
+ − 910 </li><li>
+ − 911
+ − 912
+ − 913 <a href="http://www.oreilly.com/pub/topic/enterprisedev" class="showtopic">
+ − 914
+ − 915
+ − 916 Enterprise Development</a>
+ − 917 </li><li>
+ − 918
+ − 919
+ − 920 <a href="http://www.oreilly.com/pub/topic/projectmanagement" class="showtopic">
+ − 921
+ − 922
+ − 923 Project & Career Management</a>
+ − 924 </li><li>
+ − 925
+ − 926
+ − 927 <a href="http://www.oreilly.com/pub/topic/secureprogramming" class="showtopic">
+ − 928
+ − 929
+ − 930 Secure Programming</a>
+ − 931 </li><li>
+ − 932
+ − 933
+ − 934 <a href="http://www.oreilly.com/pub/topic/testing" class="showtopic">
+ − 935
+ − 936
+ − 937 Testing</a>
+ − 938 </li>
+ − 939 </ul>
+ − 940 </li>
+ − 941 <li><a href="#" onclick="toggleSheet('web'); return false" id="webButton" class="rollup">The Web</a>
+ − 942 <ul id="web">
+ − 943 <li>
+ − 944
+ − 945
+ − 946 <a href="http://www.oreilly.com/pub/topic/ajax" class="showtopic">
+ − 947
+ − 948
+ − 949 Ajax</a>
+ − 950 </li><li>
+ − 951
+ − 952
+ − 953 <a href="http://www.oreilly.com/pub/topic/flash" class="showtopic">
+ − 954
+ − 955
+ − 956 Flash & Actionscript</a>
+ − 957 </li><li>
+ − 958
+ − 959
+ − 960 <a href="http://www.oreilly.com/pub/topic/mapping" class="showtopic">
+ − 961
+ − 962
+ − 963 Mapping</a>
+ − 964 </li><li>
+ − 965
+ − 966
+ − 967 <a href="http://www.oreilly.com/pub/topic/webapplications" class="showtopic">
+ − 968
+ − 969
+ − 970 Web Applications</a>
+ − 971 </li><li>
+ − 972
+ − 973
+ − 974 <a href="http://www.oreilly.com/pub/topic/browsers" class="showtopic">
+ − 975
+ − 976
+ − 977 Web Browsers</a>
+ − 978 </li><li>
+ − 979
+ − 980
+ − 981 <a href="http://www.oreilly.com/pub/topic/webdesign" class="showtopic">
+ − 982
+ − 983
+ − 984 Web Design</a>
+ − 985 </li><li>
+ − 986
+ − 987
+ − 988 <a href="http://www.oreilly.com/pub/topic/webdev" class="showtopic">
+ − 989
+ − 990
+ − 991 Web Development</a>
+ − 992 </li><li>
+ − 993
+ − 994
+ − 995 <a href="http://www.oreilly.com/pub/topic/webservices" class="showtopic">
+ − 996
+ − 997
+ − 998 Web Services</a>
+ − 999 </li>
+ − 1000 </ul>
+ − 1001 </li>
+ − 1002 </ul>
+ − 1003
+ − 1004 <h3>International Sites</h3>
+ − 1005 <p><a href="http://www.oreilly.com.cn/"><img src="/images/oreilly/flags/new/china2.gif" alt="O'Reilly China" height="16" width="23" style="border: 1px solid black;" /></a> <a href="http://www.oreilly.fr/"><img src="/images/oreilly/flags/new/france2.gif" alt="O'Reilly France" height="16" width="23" style="border: 1px solid black;" /></a> <a href="http://www.oreilly.de/"><img src="/images/oreilly/flags/new/germany2.gif" alt="O'Reilly Germany" height="16" width="23" style="border: 1px solid black;" /></a> <a href="http://www.oreilly.co.jp/"><img src="/images/oreilly/flags/new/japan2.gif" alt="O'Reilly Japan" height="16" width="23" style="border: 1px solid black;" /></a> <a href="http://www.oreilly.com.tw/"><img src="/images/oreilly/flags/new/taiwan2.gif" alt="O'Reilly Taiwan" height="16" width="23" style="border: 1px solid black;" /></a></p>
+ − 1006
+ − 1007 <p> </p>
+ − 1008
+ − 1009 </div><!-- /#nav_net -->
+ − 1010
+ − 1011 <div class="clear"></div>
+ − 1012
+ − 1013
+ − 1014 <div id="footer">
+ − 1015 <p class="footer-links"><a href="http://www.oreilly.com/about/">About O'Reilly</a> | <a href="http://www.oreilly.com/oreilly/contact.html">Contact</a> | <a href="http://jobs.oreilly.com">Jobs</a> | <a href="http://press.oreilly.com">Press Room</a> | <a href="http://www.oreillynet.com/mediakit/">How to Advertise</a> | <a href="http://www.oreillynet.com/pub/a/mediakit/privacy.html">Privacy Policy</a>
+ − 1016 </p>
+ − 1017
+ − 1018 <p>© 2006, O'Reilly Media, Inc.<br />
+ − 1019 All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.</p>
+ − 1020 </div><!-- /#footer -->
+ − 1021
+ − 1022 </div><!-- /#page -->
+ − 1023 <!--WEBSIDESTORY CODE HBX1.0 (Universal)-->
+ − 1024 <!--COPYRIGHT 1997-2004 WEBSIDESTORY,INC. ALL RIGHTS RESERVED. U.S.PATENT No. 6,393,479B1. MORE INFO:http://websidestory.com / privacy-->
+ − 1025 <script language="javascript" type="text/javascript">
+ − 1026 var _hbEC=0,_hbE=new Array;function _hbEvent(a,b){b=_hbE[_hbEC++]=new Object();b._N=a;b._C=0;return b;}
+ − 1027 var hbx=_hbEvent("pv");hbx.vpc="HBX0100u";hbx.gn="ehg-oreilly.hitbox.com";
+ − 1028
+ − 1029 //"BCB: oreilly.com,/a/oreilly/ask_tim/2001/codepolicy.html, DM52032830WV";
+ − 1030
+ − 1031 hbx.acct="DM52032830WV;DM520404M4ZR"; //ACCOUNT NUMBER(S)
+ − 1032 hbx.pn="OReilly+Policy+on+Re-Use+of+Code+Examples+from+Books"; //PAGE NAME(S)
+ − 1033 hbx.mlc="/a/oreilly/ask_tim/2001/;/oreilly.com/a/oreilly/ask_tim/2001/"; //MULTI-LEVEL CONTENT CATEGORY
+ − 1034 hbx.pndef="title"; //DEFAULT PAGE NAME
+ − 1035 hbx.ctdef="full"; //DEFAULT CONTENT CATEGORY
+ − 1036
+ − 1037 hbx.lt="auto"; //LINK TRACKING
+ − 1038 hbx.dlf="n"; //DOWNLOAD FILTER
+ − 1039 hbx.dft="n"; //DOWNLOAD FILE NAMING
+ − 1040 hbx.elf="n"; //EXIT LINK FILTER
+ − 1041
+ − 1042 //SEGMENTS AND FUNNELS
+ − 1043 hbx.seg=""; //VISITOR SEGMENTATION
+ − 1044 hbx.fnl=""; //FUNNELS
+ − 1045
+ − 1046 //CAMPAIGNS
+ − 1047 hbx.cmp=""; //CAMPAIGN ID
+ − 1048 hbx.cmpn="CMP"; //CAMPAIGN ID IN QUERY
+ − 1049 hbx.hra=""; //RESPONSE ATTRIBUTE
+ − 1050 hbx.hqsr=""; //RESPONSE ATTRIBUTE IN REFERRAL QUERY
+ − 1051 hbx.hqsp="ATT"; //RESPONSE ATTRIBUTE IN QUERY
+ − 1052 hbx.hlt=""; //LEAD TRACKING
+ − 1053 hbx.hla=""; //LEAD ATTRIBUTE
+ − 1054 hbx.gp=""; //CAMPAIGN GOAL
+ − 1055 hbx.gpn=""; //CAMPAIGN GOAL IN QUERY
+ − 1056 hbx.hcn=""; //CONVERSION ATTRIBUTE
+ − 1057 hbx.hcv=""; //CONVERSION VALUE
+ − 1058 hbx.cp="null"; //LEGACY CAMPAIGN
+ − 1059 hbx.cpd=""; //CAMPAIGN DOMAIN
+ − 1060
+ − 1061 //CUSTOM VARIABLES
+ − 1062 hbx.ci="";//CUSTOMER ID
+ − 1063 hbx.hc1="";//CUSTOM 1
+ − 1064 hbx.hc2="";//CUSTOM 2
+ − 1065 hbx.hc3="";//CUSTOM 3
+ − 1066 hbx.hc4="";//CUSTOM 4
+ − 1067 hbx.pec="";//ERROR CODES
+ − 1068 </script><script language="javascript1.1" defer="defer" src="http://www.oreillynet.com/hbx.js" type="text/javascript"></script><!--//-->
+ − 1069 <!-- END WEBSIDESTORY CODE -->
+ − 1070 </body>
+ − 1071
+ − 1072 </html>