Donald Knuth

54 results back to index


pages: 1,758 words: 342,766

Code Complete (Developer Best Practices) by Steve McConnell

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Ada Lovelace, Albert Einstein, Buckminster Fuller, call centre, choice architecture, continuous integration, data acquisition, database schema, don't repeat yourself, Donald Knuth, fault tolerance, Grace Hopper, haute cuisine, if you see hoof prints, think horses—not zebras, index card, inventory management, iterative process, Larry Wall, late fees, loose coupling, Menlo Park, Perl 6, place-making, premature optimization, revision control, Sapir-Whorf hypothesis, slashdot, sorting algorithm, statistical model, Tacoma Narrows Bridge, the scientific method, Thomas Kuhn: the structure of scientific revolutions, Turing machine, web application

New York, NY: Yourdon Press. Knuth, Donald. 1971. "An Empirical Study of FORTRAN programs," Software—Practice and Experience 1:105–33. Knuth, Donald. 1974. "Structured Programming with go to Statements." In Classics in Software Engineering, edited by Edward Yourdon. Englewood Cliffs, NJ: Yourdon Press, 1979. Knuth, Donald. 1986. Computers and Typesetting, Volume B, TEX: The Program. Reading, MA: Addison-Wesley. Knuth, Donald. 1997a. The Art of Computer Programming, vol. 1, Fundamental Algorithms, 3d ed. Reading, MA: Addison-Wesley. Knuth, Donald. 1997b. The Art of Computer Programming, vol. 2, Seminumerical Algorithms, 3d ed. Reading, MA: Addison-Wesley. Knuth, Donald. 1998. The Art of Computer Programming, vol. 3, Sorting and Searching, 2d ed. Reading, MA: Addison-Wesley. Knuth, Donald. 2001. Literate Programming.

"Optimization: Your Worst Enemy." May 2000, http://www.flounder.com/optimization.htm. Newcomer is an experienced systems programmer who describes the various pitfalls of ineffective optimization strategies in graphic detail. Algorithms and Data Types cc2e.com/2599 Knuth, Donald. The Art of Computer Programming, vol. 1, Fundamental Algorithms, 3d ed. Reading, MA: Addison-Wesley, 1997. Knuth, Donald. The Art of Computer Programming, vol. 2, Seminumerical Algorithms, 3d ed. Reading, MA: Addison-Wesley, 1997. Knuth, Donald. The Art of Computer Programming, vol. 3, Sorting and Searching, 2d ed. Reading, MA: Addison-Wesley, 1998. These are the first three volumes of a series that was originally intended to grow to seven volumes. They can be somewhat intimidating. In addition to the English description of the algorithms, they're described in mathematical notation or MIX, an assembly language for the imaginary MIX computer.

Unix Review 9, no. 10 (10): 39–43. Beck, Leland L. , and Thomas E. Perkins . 1983. "A Survey of Software Engineering Practice: Tools, Methods, and Results." IEEE Transactions on Software Engineering SE-9, no. 5 (5): 541–61. Beizer, Boris. 1990. Software Testing Techniques, 2d ed. New York, NY: Van Nostrand Reinhold. Bentley, Jon , and Donald Knuth. 1986. "Literate Programming." Communications of the ACM 29, no. 5 (5): 364–69. Bentley, Jon , Donald Knuth, and Doug McIlroy. 1986. "A Literate Program." Communications of the ACM 29, no. 5 (5): 471–83. Bentley, Jon. 1982. Writing Efficient Programs. Englewood Cliffs, NJ: Prentice Hall. Bentley, Jon. 1988. More Programming Pearls: Confessions of a Coder. Reading, MA: Addison-Wesley. Bentley, Jon. 1991. "Software Exploratorium: Writing Efficient C Programs."


pages: 236 words: 50,763

The Golden Ticket: P, NP, and the Search for the Impossible by Lance Fortnow

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, Andrew Wiles, Claude Shannon: information theory, cloud computing, complexity theory, Donald Knuth, Erdős number, four colour theorem, Gerolamo Cardano, Isaac Newton, John von Neumann, linear programming, new economy, NP-complete, Occam's razor, P = NP, Paul Erdős, Richard Feynman, Richard Feynman, Rubik’s Cube, smart grid, Stephen Hawking, traveling salesman, Turing machine, Turing test, Watson beat the top human players on Jeopardy!, William of Occam

But one Turing Award for the P versus NP problem is not enough, and in 1985 Richard Karp received the award for his work on algorithms, most notably for the twenty-one NP-complete problems. What’s in a Name? Karp’s paper gave the names P and NP that we use today. But what should people call those hardest problems in NP? Cook called them by a technical name “deg({DNF tautologies}),” and Karp used the term “(polynomial) complete.” But these names didn’t feel right. Donald Knuth took up this cause. In 1974 Knuth received the Turing Award for his research and his monumental three-volume series, The Art of Computer Programming. For the fourth volume, Knuth, realizing the incredible importance of the P versus NP problem, wanted to settle the naming issue for the hardest sets in NP. In 1973, Knuth ran a poll via postal mail. He famously doesn’t use email today, but back in 1973 neither did anyone else.

Knuth was not entirely happy with this choice but was willing to live with it. He truly wanted a single English world that captured the intuitive meaning of hard search problems, a term for the masses. In a 1974 wrap-up of his survey, Knuth wrote “NP-complete actually smacks of being a little too technical for a mass audience, but it’s not so bad as to be unusable.” “NP-complete” quickly became the standard terminology. It took Donald Knuth about four decades to finish volume 4. Knuth should have pushed a bit harder for less technical names for “NP-complete,” and perhaps for “P” and “NP” as well. The P versus NP problem has taken on an importance that goes well beyond computer science, and using terminology that just abbreviates a technical definition hides this import from outsiders. But terminology gets embedded in the culture over the decades, and at this point it would be difficult to change, even if we had great alternatives.

The third (interior point) works well both in theory and practice. Not bad for a problem still considered unresolved into the late 1970s. * Computers and Intractability: A Guide to the Theory of NP-Completeness, by Michael Garey and David Johnson (New York: W. H. Freeman, 1979). Chapter 5 THE PREHISTORY OF P VERSUS NP One does not fear the Perebor, but rather uses it reasonably.* IN THE LAST CHAPTER WE RECOUNTED Donald Knuth’s ultimately unsuccessful attempt to find a good English word to capture NP-completeness. Knuth could have turned east to the Russians to find perebor (Перебор). Perebor means “brute force search,” the process of trying all possibilities to find the best solution. P versus NP asks whether we need perebor to solve the clique problem or whether some faster approach could work. But Knuth and others in America couldn’t so easily look toward Russia.


pages: 429 words: 114,726

The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise by Nathan L. Ensmenger

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

barriers to entry, business process, Claude Shannon: information theory, computer age, deskilling, Donald Knuth, Firefox, Frederick Winslow Taylor, future of work, Grace Hopper, informal economy, information retrieval, interchangeable parts, Isaac Newton, Jacquard loom, Jacquard loom, job satisfaction, John von Neumann, knowledge worker, loose coupling, new economy, Norbert Wiener, pattern recognition, performance metric, Philip Mirowski, post-industrial society, Productivity paradox, RAND corporation, Robert Gordon, Shoshana Zuboff, sorting algorithm, Steve Jobs, Steven Levy, the market place, Thomas Kuhn: the structure of scientific revolutions, Thorstein Veblen, Turing machine, Von Neumann architecture, Y2K

John Backus, “Programming in America in the 1950s: Some Personal Impressions,” in A History of Computing in the Twentieth Century: A Collection of Essays, ed. Nicholas Metropolis, Jack Howlett, and Gian-Carlo Rota (New York: Academic Press, 1980), 125–135. 60. Frederick Brooks, The Mythical Man-Month: Essays on Software Engineering (New York: Addison-Wesley, 1975), 7. 61. Donald Ervin Knuth, The Art of Computer Programming. Addison-Wesley Series in Computer Science and Information Processing (Reading, MA: Addison-Wesley, 1968); Donald Knuth, Literate Programming (Stanford, CA: Center for the Study of Language/Information, 1992). 62. P. Mody, “Is Programming an Art?” Software Engineering Notes 17, no. 4 (1992): 19–21; Steve Lohr, Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists, and Iconoclasts—The Programmers Who Created the Software Revolution (New York: Basic Books, 2001). 63.

“Cybernetics, Management Science, and Technology Policy: The Emergence of ‘Information Technology’ as a Keyword, 1948–1985.” Technology and Culture 47 (3) (2006): 513–535. Knoebel, Robert M. “The Federal Government’s Role in the Education of Data Processing Personnel.” In SIGCPR ’67: Proceedings of the Fifth SIGCPR Conference on Computer Personnel Research, 77–84. New York: ACM Press, 1967. Knuth, Donald Ervin. The Art of Computer Programming, Volume 1: Fundamental Algorithms. Reading, MA: Addison-Wesley, 1968. Knuth, Donald Ervin. Literate Programming. Stanford, CA: Center for the Study of Language/Information, 1992. Koss, Adele Mildred. “Programming on the Univac 1.” IEEE Annals of the History of Computing 25 (1) (2003): 48–59. Kraft, Philip. Programmers and Managers: The Routinization of Computer Programming in the United States. New York: Springer-Verlag, 1977.

The seeming paradox between the inevitable progress promised by Moore’s Law and the perpetual crisis in software production challenges conventional assumptions about the progressive nature of computer technology. This is perhaps the most significant lessons to be learned from the history of software: There is no Moore’s Law for software technology. But the real problem with software is not so much that it is “hard” (as computer scientist Donald Knuth famously declared) but rather that it is inherently contested; the problem was generally not that the software itself did not work but instead that the work that it did do turned out to have undesirable side effects for the organizations that used them.23 Computerization projects created “unusual internal implications,” “placed stress on established organizational relationships,” and demanded “skills not provided by the previous experience of people assigned to the task.”24 Such projects generally crossed organizational boundaries and disrupted existing hierarchies and power relationships.


pages: 523 words: 143,139

Algorithms to Live By: The Computer Science of Human Decisions by Brian Christian, Tom Griffiths

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

4chan, Ada Lovelace, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, algorithmic trading, anthropic principle, asset allocation, autonomous vehicles, Bayesian statistics, Berlin Wall, Bill Duvall, bitcoin, Community Supported Agriculture, complexity theory, constrained optimization, cosmological principle, cryptocurrency, Danny Hillis, David Heinemeier Hansson, delayed gratification, dematerialisation, diversification, Donald Knuth, double helix, Elon Musk, fault tolerance, Fellow of the Royal Society, Firefox, first-price auction, Flash crash, Frederick Winslow Taylor, George Akerlof, global supply chain, Google Chrome, Henri Poincaré, information retrieval, Internet Archive, Jeff Bezos, John Nash: game theory, John von Neumann, knapsack problem, Lao Tzu, Leonard Kleinrock, linear programming, martingale, Nash equilibrium, natural language processing, NP-complete, P = NP, packet switching, Pierre-Simon Laplace, prediction markets, race to the bottom, RAND corporation, RFC: Request For Comment, Robert X Cringely, sealed-bid auction, second-price auction, self-driving car, Silicon Valley, Skype, sorting algorithm, spectrum auction, Steve Jobs, stochastic process, Thomas Bayes, Thomas Malthus, traveling salesman, Turing machine, urban planning, Vickrey auction, Vilfredo Pareto, Walter Mischel, Y Combinator, zero-sum game

In academia, holding office hours is a way of coalescing interruptions from students. And in the private sector, interrupt coalescing offers a redemptive view of one of the most maligned office rituals: the weekly meeting. Whatever their drawbacks, regularly scheduled meetings are one of our best defenses against the spontaneous interruption and the unplanned context switch. Perhaps the patron saint of the minimal-context-switching lifestyle is the legendary programmer Donald Knuth. “I do one thing at a time,” he says. “This is what computer scientists call batch processing—the alternative is swapping in and out. I don’t swap in and out.” Knuth isn’t kidding. On January 1, 2014, he embarked on “The TeX Tuneup of 2014,” in which he fixed all of the bugs that had been reported in his TeX typesetting software over the previous six years. His report ends with the cheery sign-off “Stay tuned for The TeX Tuneup of 2021!”

a quarter of the computing resources of the world: Knuth, The Art of Computer Programming, p. 3. “unit cost of sorting, instead of falling, rises”: Hosken, “Evaluation of Sorting Methods.” the record for sorting a deck of cards: While we couldn’t find a video of Bradáč’s performance, there are plenty of videos online of people trying to beat it. They tend to sort cards into the four suits, and then sort the numbers within each suit. “But there is a faster way to do the trick!” urges Donald Knuth in The Art of Computer Programming: First, deal out the cards into 13 piles based on their face value (with one pile containing all the 2s, the next all the 3s, etc.). Then, after gathering up all the piles, deal the cards out into the four suits. The result will be one pile for each suit, with the cards ordered within each. This is a Radix Sort, and is related to the Bucket Sort algorithm we discuss later in the chapter.

Subsequent engineers have suggested that Bogobogosort isn’t even the bottom of the well, and have proposed getting even more meta and Bogosorting the program rather than the data: randomly flipping bits in the computer memory until it just so happens to take the form of a sorting program that sorts the items. The time bounds of such a monstrosity are still being explored. The quest for pessimality continues. Computer science has developed a shorthand: Big-O notation originated in the 1894 book Die analytische zahlentheorie by Paul Bachmann. See also Donald Knuth, The Art of Computer Programming, §1.2.11.1. Formally, we say that the runtime of an algorithm is O(f(n)) if it is less than or equal to a multiple (with a coefficient that is a positive constant) of f(n). There is also the kindred “Big-Omega” notation, with Ω(f(n)) indicating that the runtime is greater than or equal to a multiple of f(n), and “Big-Theta” notation, with Θ(f(n)) meaning the runtime is both O(f(n)) and Ω(f(n)).


pages: 1,201 words: 233,519

Coders at Work by Peter Seibel

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Ada Lovelace, bioinformatics, cloud computing, Conway's Game of Life, domain-specific language, don't repeat yourself, Donald Knuth, fault tolerance, Fermat's Last Theorem, Firefox, George Gilder, glass ceiling, Guido van Rossum, HyperCard, information retrieval, Larry Wall, loose coupling, Marc Andreessen, Menlo Park, Metcalfe's law, Perl 6, premature optimization, publish or perish, random walk, revision control, Richard Stallman, rolodex, Ruby on Rails, Saturday Night Live, side project, slashdot, speech recognition, the scientific method, Therac-25, Turing complete, Turing machine, Turing test, type inference, Valgrind, web application

Jamie Zawinski and Dan Ingalls emphasized the importance of getting code up and running right away while Joshua Bloch described how he designs APIs and tests whether they can support the code he wants to write against them before he does any implementation and Donald Knuth described how he wrote a complete version of his typesetting software TeX in pencil before he started typing in any code. And while Fran Allen lay much of the blame for the decline in interest in computer science in recent decades at the feet of C and Bernie Cosell called it the “biggest security problem to befall modern computers”, Ken Thompson argued that security problems are caused by programmers, not their programming languages and Donald Knuth described C's use of pointers as one of the “most amazing improvements in notation” he's seen. Some of my subjects scoffed at the notion that formal proofs could be useful in improving the quality of software, but Guy Steele gave a very nice illustration of both their power and their limitations.

This is a good time to be an over-the-hill programmer emeritus, because you have a few props because you did it once, but the world is so wondrous that you can take advantage of it, maybe even get a little occasional credit for it without having to still be able to do it. Whereas if you were in college—if you major in computer science and you have to go out there and you have to figure out how you are going to add to this pile of stuff—save me. Donald Knuth Of all the subjects of this book, Donald Knuth perhaps least needs an introduction. For the past four decades he has been at work on his multivolume masterwork The Art of Computer Programming, the bible of fundamental algorithms and data structures, which American Scientist included on its list of the top 12 physical-sciences monographs of the century, in the company of works by Russell and Whitehead, Einstein, Dirac, Feynman, and von Neumann.

Hoare in Communications of the ACM, Vol. 14, Issue 1 (ACM, 1971) Programming Pearls, Jon Bentley (ACM Press, 1999) Purely Functional Data Structures, Chris Okasaki (Cambridge University Press, 2008) A Retargetable C Compiler: Design and Implementation, David Hanson and Christopher Fraser (Addison-Wesley Professional, 1995) Smalltalk-80: The Interactive Programming Environment, Adele Goldberg (Addison-Wesley, 1983) Smalltalk-80: The Language & Its Implementation, David Robson and Adele Goldberg (Addison-Wesley, 1983) Structure and Interpretation of Computer Programs, Harold Abelson and Gerald Jay Sussman (MIT Press, 1996) TeX: The Program, Donald Knuth (Addison-Wesley, 1986) The Programming Language LISP: Its Operation and Applications, Edmund Berkeley and Daniel Bobrow, eds. (MIT Press, 1966) The Psychology of Computer Programming: Silver Anniversary Edition, Gerald Weinberg (Dorset House, 1998) The TeXbook, Donald Knuth (Addison-Wesley Professional, 1986) Writers at Work: The Paris Review Interviews, Malcolm Cowley (Penguin, 1977) Zen and the Art of Motorcycle Maintenance: An Inquiry into Values, Robert Pirsig (Bantam, 1984) Index A abstraction, 22, 29 ACS-1 supercomputer, 485 ActionScript, 143 Ada, 349 ADsafe, 99 Adventure, 576, 577 aesthetics, 26, 234, 235, 283, 284, 285, 369, 371, 372, 488, 555 Agorics, 95 AI, 3, 206, 300, 301 Ajax, 91, 97, 101, 102, 111, 125, 142, 158 Algol, 243, 248 Allen, Fran, 560 Altair, 245 Andreessen, Marc, 14, 18, 19 Android, 71 ANSI C, 420 AOL, 53 Apache, 58, 61 APL, 2, 93, 325, 327, 328, 340, 344, 352, 353 App Engine, 64, 65, 66 Apple II, 49, 50, 135 Apple Users Group, 3 Armstrong, Joe, 150 ARPANET, 519, 529, 541 Art of Computer Programming, The, 565, 568, 570, 572, 577, 579, 583, 584 assertions, 31, 32, 364, 365 asserts, 468 Atari 800, 94 Atlas, 102 awk, 145 BASIC, 2, 50, 62, 168, 169, 170, 288, 289, 373, 377, 383, 386 B Basic Four, 94, 121 BBN, 519, 520, 521, 522, 523, 525, 526, 535, 539, 540, 541, 543, 549, 551, 552, 553, 554 BBS, 52 BCPL, 244, 246, 255, 456 BDDs, 575, 584, 587, 588 Bell Labs, 449, 457, 458, 463, 464, 474 Belle, 449 Berkeley, 451, 453, 454 Big Brother Database, 9 BigInteger, 176 Big-O, 565 Bina, Eric, 16 bit twiddling, 172 BitBlt, 373, 380, 384, 385, 386, 387, 394, 395, 409, 410 Björklund, Martin, 230 Bliss, 325, 353, 462 Bobrow, Dan, 461 Bobrow, Danny, 430 Bolt Beranek and Newman (BBN), 519 books, 43, 44, 81, 160, 161, 171, 276, 299, 326, 327, 330, 332, 334, 401, 477, 527 Books, 175 Boolean decision diagrams (BDDs), 575 bots, 53 British Robotics Association, 206, 209 Brooks, Fred, 492, 493, 494 buddy programming, 200 Butterfield, Steve, 546 C C, 30, 52, 72, 134, 137, 144, 147, 184, 191, 197, 213, 221 -2, 325, 353, 355, 388, 406, 420, 444, 456, 460, 467, 501-3, 557, 559-60, 585 589 C--, 264 C code, 11 C language, 10 C*, 325, 354 C++, 9-11, 20-1, 38, 49, 62-4, 80 85, 138-9, 147-8, 156, 162-4, 170 184-6, 191, 193, 198,224,247 262, 325, 349, 353-4, 377, 389 406-7, 467-8, 475-6, 503, 529, 559 Cambridge, 241, 244, 245, 246, 247, 249, 255 Cambridge Electron Accelerator, 413, 414, 416 Canady, Rudd, 464 Carnegie Mellon, 353 Carnegie Mellon University (CMU), 3, 4 Carnegie-Mellon University, 167 Case Institute of Technology, 566 CGI, 53, 54, 56, 57 change files, 586, 587, 588 Charles, Philippe, 489 Chrome, 71 Chromix, 248 Church, Alonzo, 146 Clark, Jim, 136 Clarke, Thomas, 245, 253, 256 Cleanroom process, 493, 494 CMU, 190 CMU Common Lisp, 3 COBOL, 325, 353, 376, 398, 596 Cocke, John, 515 code design, 154, 155 code ownership, 201 code reading, 92, 102, 103, 104, 105, 107, 116, 129, 182 Collabra, 19 Columbia University, 167 combinatorial algorithms, 580 comments, 36, 541, 545, 555, 556 Common Lisp, 325, 338, 343, 350, 351, 353, 365, 372 computer science, 41, 42, 52, 66, 68, 130, 135, 137, 150, 160, 205, 208, 209, 217, 233, 244, 247, 249, 250, 288, 290, 295, 297, 298, 311, 331, 332, 333, 347, 379, 390, 393, 400, 410, 431, 453, 482, 486, 502, 506, 510, 511, 512, 513, 565, 569, 594, 595, 600 concurrency, 271, 274 concurrent programming, 237 continue statement, 106 Crockford, Doug, 142, 143, 144, 146, 148 Crowther, Will, 525, 529, 531, 532, 534, 535, 536, 537, 538, 547 curiosity, 44 curly-brace languages, 107 CWEB, 572, 575, 579, 589 D Danga Interactive, 49 De Bellis, Thomas, 169 debugging, 8, 29, 31, 32, 43, 78, 79, 86, 120, 121, 151, 152, 153, 183, 187, 189, 190, 207, 225, 226, 227, 266, 268, 269, 295, 300, 312, 313, 314, 315, 335, 337, 342, 362, 364, 365, 366, 367, 368, 388, 395, 397, 399, 404, 405, 406, 452, 453, 460, 465, 466, 468, 470, 477, 481, 488, 489, 514, 520, 524, 533, 535, 537, 546, 547, 570, 586, 588, 589, 590 DEC, 327, 331, 354 design reviews, 538, 540 designing software, 326, 340, 458 Deutsch, L.

Guide to LaTeX by Helmut Kopka, Patrick W. Daly

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

centre right, Donald Knuth, framing effect, hypertext link, invention of movable type, Menlo Park

For bibliographies with author–year citations (Section 9.3.4) the entries in the thebibliography are the same, except that the optional label must be present, taking a special form that will transfer the author and year texts to the citation commands. A sample (numerical) thebibliography environment could look as follows: \begin{thebibliography}{99} \bibitem{lamport} Leslie Lamport. \textsl{\LaTeX\ -- A Document Preparation System}, 2nd edition. Addison-Wesley, Reading, MA, 1994 . . . . . . . . . \bibitem{knuth} Donald E. Knuth. \textsl{Computers and Typesetting Vol.\ A--E}. Addison-Wesley, Reading, MA, 1986 \bibitem[6a]{knuth:a} Vol A: \textsl{The {\TeX}book}, 1986 . . . . . . . . . \bibitem[6e]{knuth:e} Vol E: \textsl{Computer Modern Typefaces}, 1986 \end{thebibliography} Here lamport, knuth, and knuth:a have been chosen as keys. The sample label is given as 99 since a two-digit number produces sufficient indentation for the standard form of \bibitem.

In fact, we feel that even for a single document, it is simpler to make an entry into the database than to adhere to the very precise and fiddly requirements of a literature list, especially regarding punctuation and positioning of the authors’ initials. The database entry proceeds very quickly and easily if one has a generalized template, as illustrated in Section 14.2.6. The entries in a bibliographic database are of the form @BOOK{knuth:86a, AUTHOR = "Donald E. Knuth", TITLE = {The \TeX{}book}, EDITION = "third", PUBLISHER = "Addison--Wesley", ADDRESS = {Reading, Massachusetts}, YEAR = 1986 } The first word, prefixed with @, determines the entry type, as explained in the next section. The entry type is followed by the reference information for that entry enclosed in curly braces { }. The very first entry is the key 312 Chapter 14. Bibliographic Databases and BIBTEX for the whole reference by which it is referred to in the \cite command.

In the next Section we outline the development of TEX and LATEX, and go on to show that LATEX, a product of the mid 1980’s, is a programmable markup language that is ideally suited for the modern world of electronic publishing. 6 Chapter 1. Introduction 1.3 TEX and its offspring The most powerful formatting program for producing book quality text of scientific and technical works is that of Donald E. Knuth (Knuth, 1986a, 1986b, 1986c, 1986d, 1986e). The program is called TEX, which is a rendering in capitals of the Greek letters τχ. For this reason the last letter is pronounced not as an x, but as the ch in Scottish loch or German ach, or as the Spanish j or Russian kh. The name is meant to emphasize that the printing of mathematical texts is an integral part of the program and not a cumbersome add-on.


pages: 450 words: 569

ANSI Common LISP by Paul Graham

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, general-purpose programming language, Paul Graham, premature optimization, Ralph Waldo Emerson, random walk

If this were inconvenient, you could use the following read-macro instead: 409 NOTES (defvar *symtab* (make-hash-table :test #'equal)) (defun pseudo-intern (name) (or (gethash name *symtab*) (setf (gethash name *symtab*) (gensym)))) (set-dispatch-macro-character #\# #\[ #'(lambda (stream charl char2) (do ((ace nil (cons char ace)) (char (read-char stream) (read-char stream))) ((eql char #\]) (pseudo-intern ace))))) Then it would be possible to say just: (defclass counter () ((#[state] rinitform 0))) (defmethod increment ((c counter)) (incf (slot-value c '#[state]))) (defmethod clear ((c counter)) (setf ( s l o t - v a l u e c ' # [ s t a t e ] ) 0)) 204 The following macro pushes new elements into binary search trees: (defmacro bst-push (obj bst <) (multiple-value-bind (vars forms var s e t access) (get-setf-expansion bst) ( l e t ((g (gensym))) ' ( l e t * ( ( , g ,obj) ,®(mapcar # ' l i s t vars forms) ( , ( c a r var) ( b s t - i n s e r t ! ,g ,access , < ) ) ) ,set)))) 213 Knuth, Donald E. Structured Programming with goto Statements. Computing Surveys, 6:4 (December 1974), pp. 261-301. 214 Knuth, Donald E. Computer Programming as an Art. In ACM Turing Award Lectures: The First Twenty Years. ACM Press, 1987. This paper and the preceding one are reprinted in: Knuth, Donald E. Literate Programming. CSLI Lecture Notes #27, Stanford University Center for the Study of Language and Information, Palo Alto, 1992. 216 Steele, Guy L., Jr. Debunking the "Expensive Procedure Call" Myth or, Procedural Call Implementations Considered Harmful or, LAMBDA: The Ultimate GOTO.

I owe thanks to many others, including Henry Baker, Kim Barrett, Ingrid Bassett, Trevor Blackwell, Paul Becker, Gary Bisbee, Frank Deutschmann, Frances Dickey, Rich and Scott Draves, Bill Dubuque, Dan Friedman, Jenny X PREFACE Graham, Alice Hartley, David Hendler, Mike Hewett, Glenn Holloway, Brad Karp, Sonya Keene, Ross Knights, Mutsumi Komuro, Steffi Kutzia, David Kuznick, Madi Lord, Julie Mallozzi, Paul McNamee, Dave Moon, Howard Mullings, Mark Nitzberg, Nancy Parmet and her family, Robert Penny, Mike Plusch, Cheryl Sacks, Hazem Sayed, Shannon Spires, Lou Steinberg, Paul Stoddard, John Stone, Guy Steele, Steve Strassmann, Jim Veitch, Dave Watkins, Idelle and Julian Weber, the Weickers, Dave Yost, and Alan Yuille. Most of all, I'd like to thank my parents, and Jackie. Donald Knuth called his classic series The Art of Computer Programming. In his Turing Award Lecture, he explained that this title was a conscious choice—that what drew him to programming was "the possibility of writing beautiful programs." Like architecture, programming has elements of both art and science. A program has to live up to mathematical truth in the same way that a building has to live up to the laws of physics. But the architect's aim is not simply to make a building that doesn't fall down. Almost always the real aim is to make something beautiful. Many programmers feel, like Donald Knuth, that this is also the real aim of programming. Almost all Lisp hackers do. The spirit of Lisp hacking can be expressed in two sentences.

Thanks also to the staff at Aiken Lab, including Tony Hartman, Dave Mazieres, Janusz Juda, Harry Bochner, and Joanne Klys. I'm glad to have had the chance to work with Alan Apt again. The people at Prentice Hall—Alan, Mona Pompili, Shirley McGuire, and Shirley Michaels—are really a pleasure to work with. The cover is again the work of the incomparable Gino Lee, of the Bow & Arrow Press, Cambridge. This book was typeset using L^TgX, a language written by Leslie Lamport atop Donald Knuth's Tj3C, with additional macros by L. A. Carr, Van Jacobson, and Guy Steele. The diagrams were done with Idraw, by John Vlissides and Scott Stanton. The whole was previewed with Ghostview, by Tim Theisen, which is built on Ghostscript, by L. Peter Deutsch. I owe thanks to many others, including Henry Baker, Kim Barrett, Ingrid Bassett, Trevor Blackwell, Paul Becker, Gary Bisbee, Frank Deutschmann, Frances Dickey, Rich and Scott Draves, Bill Dubuque, Dan Friedman, Jenny X PREFACE Graham, Alice Hartley, David Hendler, Mike Hewett, Glenn Holloway, Brad Karp, Sonya Keene, Ross Knights, Mutsumi Komuro, Steffi Kutzia, David Kuznick, Madi Lord, Julie Mallozzi, Paul McNamee, Dave Moon, Howard Mullings, Mark Nitzberg, Nancy Parmet and her family, Robert Penny, Mike Plusch, Cheryl Sacks, Hazem Sayed, Shannon Spires, Lou Steinberg, Paul Stoddard, John Stone, Guy Steele, Steve Strassmann, Jim Veitch, Dave Watkins, Idelle and Julian Weber, the Weickers, Dave Yost, and Alan Yuille.

Deep Work: Rules for Focused Success in a Distracted World by Cal Newport

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

8-hour work day, Albert Einstein, barriers to entry, business climate, Cal Newport, Capital in the Twenty-First Century by Thomas Piketty, Clayton Christensen, David Brooks, David Heinemeier Hansson, deliberate practice, Donald Knuth, Donald Trump, Downton Abbey, en.wikipedia.org, Erik Brynjolfsson, experimental subject, follow your passion, Frank Gehry, informal economy, information retrieval, Internet Archive, Jaron Lanier, knowledge worker, Mark Zuckerberg, Marshall McLuhan, Merlin Mann, Nate Silver, new economy, Nicholas Carr, popular electronics, remote working, Richard Feynman, Richard Feynman, Ruby on Rails, Silicon Valley, Silicon Valley startup, Snapchat, statistical model, the medium is the message, Watson beat the top human players on Jeopardy!, web application, winner-take-all economy, zero-sum game

Some of these strategies will deploy simple heuristics to hijack your brain’s motivation center while others are designed to recharge your willpower reserves at the fastest possible rate. You could just try to make deep work a priority. But supporting this decision with the strategies that follow—or strategies of your own devising that are motivated by the same principles—will significantly increase the probability that you succeed in making deep work a crucial part of your professional life. Decide on Your Depth Philosophy The famed computer scientist Donald Knuth cares about deep work. As he explains on his website: “What I do takes long hours of studying and uninterruptible concentration.” A doctoral candidate named Brian Chappell, who is a father with a full-time job, also values deep work, as it’s the only way he can make progress on his dissertation given his limited time. Chappell told me that his first encounter with the idea of deep work was “an emotional moment.”

This strategy will help you avoid this fate by presenting four different depth philosophies that I’ve seen work exceptionally well in practice. The goal is to convince you that there are many different ways to integrate deep work into your schedule, and it’s therefore worth taking the time to find an approach that makes sense for you. The Monastic Philosophy of Deep Work Scheduling Let’s return to Donald Knuth. He’s famous for many innovations in computer science, including, notably, the development of a rigorous approach to analyzing algorithm performance. Among his peers, however, Knuth also maintains an aura of infamy for his approach to electronic communication. If you visit Knuth’s website at Stanford with the intention of finding his e-mail address, you’ll instead discover the following note: I have been a happy man ever since January 1, 1990, when I no longer had an email address.

He would then meditate and walk in the woods to clarify his thinking in preparation for the next day’s writing. These efforts, I argued, were aimed at increasing the intensity of Jung’s deep work to a level that would allow him to succeed in intellectual combat with Freud and his many supporters. In recalling this story I want to emphasize something important: Jung did not deploy a monastic approach to deep work. Donald Knuth and Neal Stephenson, our examples from earlier, attempted to completely eliminate distraction and shallowness from their professional lives. Jung, by contrast, sought this elimination only during the periods he spent at his retreat. The rest of Jung’s time was spent in Zurich, where his life was anything but monastic: He ran a busy clinical practice that often had him seeing patients until late at night; he was an active participant in the Zurich coffeehouse culture; and he gave and attended many lectures in the city’s respected universities.


pages: 239 words: 64,812

Geek Sublime: The Beauty of Code, the Code of Beauty by Vikram Chandra

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Apple II, barriers to entry, Berlin Wall, British Empire, business process, conceptual framework, create, read, update, delete, crowdsourcing, don't repeat yourself, Donald Knuth, East Village, European colonialism, finite state, Firefox, Flash crash, glass ceiling, Grace Hopper, haute couture, iterative process, Jaron Lanier, John von Neumann, land reform, London Whale, Norman Mailer, Paul Graham, pink-collar, revision control, Silicon Valley, Silicon Valley ideology, Skype, Steve Jobs, Steve Wozniak, supercomputer in your pocket, theory of mind, Therac-25, Turing machine, wikimedia commons, women in the workforce

Formal languages “contrast with natural languages such as English whose rules, evolving as they do with use, fall short of being either a complete or a precise definition of the syntax, much less the semantics, of the language.”6 So these formal dialects may be less flexible and less forgiving of ambiguity than natural languages, but coders—like poets—manipulate linguistic structures and tropes, search for expressivity and clarity. While a piece of code may pass instructions to a computer, its real audience, its readers, are the programmers who will add features and remove bugs in the days and years after the code is first created. Donald Knuth is the author of the revered magnum opus on computer algorithms and data structures, The Art of Computer Programming. Volume 3 of the Art was published in 1973; the first part of Volume 4 appeared in 2011, the next part is “under preparation.” If ever there was a person who fluently spoke the native idiom of machines, it is Knuth, computing’s great living sage. More than anyone else, he understands the paradox that programmers write code for other humans, not for machines: “Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.”7 In 1984, therefore, he famously formalized the notion of “literate programming”: The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style.

The snarl in the dependency diagram (figure 6.1) may strike the civilian as a pretty picture, with its swirl of lines and punctuating sparks of gray; to the programmer, it is an abomination because it speaks of incoherence, incomprehensibility, unpredictability, sticky seams of connection that prevent swift diagnosis and make excision and replacement all but impossible. With his emphasis on programmer happiness, Matz makes explicit his allegiance to Donald Knuth’s literate programming. He writes: Programs share some attributes with essays. For essays, the most important question readers ask is, “What is it about?” For programs, the main question is, “What does it do?” In fact, the purpose should be sufficiently clear that neither question ever needs to be uttered … Both essays and lines of code are meant—before all else—to be read and understood by human beings.3 The trouble of course is that as software programs grow bigger and more complex, the code they comprise tends to become unreadable and incomprehensible to human beings.

Programmers like to point out that if each line of code, or even each logical statement (which may spread to more than one physical line), is understood to be a component, software systems are the most complicated things that humans have ever built: the Lucent 5ESS switch, used in telephone exchanges, derives its functionality from a hundred million lines of code; the 2008 Fedora 9 distribution of Linux comprises over two hundred million lines of code.4 No temple, no cathedral has ever contained as many moving parts. So if you’ve ever written code, you understand in your bones the truth of Donald Knuth’s assertion, “Software is hard. It’s harder than anything else I’ve ever had to do.”5 If you’ve ever written code, the fact that so much software works so much of the time can seem profoundly miraculous. Software is complicated because it tries to model the irreducible complexity of the world. Even a simple software requirement for a small company that, say, provides secretarial services for the medical insurance industry—“We need an application that makes it easier for our scribes to write up reports from doctors’ examinations of insurance claimants”—will always reveal a swirling hodgepodge of exceptions and special cases.


pages: 394 words: 118,929

Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software by Scott Rosenberg

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

A Pattern Language, Benevolent Dictator For Life (BDFL), Berlin Wall, c2.com, call centre, collaborative editing, conceptual framework, continuous integration, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, Dynabook, en.wikipedia.org, Firefox, Ford paid five dollars a day, Francis Fukuyama: the end of history, George Santayana, Grace Hopper, Guido van Rossum, Gödel, Escher, Bach, Howard Rheingold, index card, Internet Archive, inventory management, Jaron Lanier, John Markoff, John von Neumann, knowledge worker, Larry Wall, life extension, Loma Prieta earthquake, Menlo Park, Merlin Mann, new economy, Nicholas Carr, Norbert Wiener, pattern recognition, Paul Graham, Potemkin village, RAND corporation, Ray Kurzweil, Richard Stallman, Ronald Reagan, Ruby on Rails, semantic web, side project, Silicon Valley, Singularitarianism, slashdot, software studies, source of truth, South of Market, San Francisco, speech recognition, stealth mode startup, stem cell, Stephen Hawking, Steve Jobs, Stewart Brand, Ted Nelson, Therac-25, thinkpad, Turing test, VA Linux, Vannevar Bush, Vernor Vinge, web application, Whole Earth Catalog, Y2K

“I think we need to be ashamed” and “Everything we’ve done”: Richard Gabriel talk at the Software Development Forum, Palo Alto, California, January 23, 2003. “art meant something devised” and “The chief goal of my work”: Donald Knuth, “Computer Programming as an Art,” 1974 Turing Award lecture, in Communications of the ACM, December 1974. “couldn’t stand to write books”: Donald Knuth quoted in Steve Ditlea, “Rewriting the Bible in 0’s and 1’s,” Technology Review, September–October1999. “Beware of bugs in the above code”: Knuth explains the exact origins of the much-cited quote at http://www-cs-faculty.stanford.edu/~knuth/faq.htm. “What were the lessons I learned”: Donald Knuth, Selected Papers on Computer Science (CSLI Publicational/Cambridge University Press, 1996), p. 161. “A longer attention span is needed”: Ibid., p. 145. The information about the Piet Hein poem over Knuth’s entrance is from Ditlea, “Rewriting the Bible,” in Technology Review.

CONTENTS TITLE PAGE DEDICATION EPIGRAPH AUTHOR’S NOTE CHAPTER 0 SOFTWARE TIME [1975–2000] CHAPTER 1 DOOMED [JULY 2003] CHAPTER 2 THE SOUL OF AGENDA [1968–2001] CHAPTER 3 PROTOTYPES AND PYTHON [2001–NOVEMBER 2002] CHAPTER 4 LEGO LAND [NOVEMBER 2002–AUGUST 2003] CHAPTER 5 MANAGING DOGS AND GEEKS [APRIL–AUGUST 2003] CHAPTER 6 GETTING DESIGN DONE [JULY–NOVEMBER 2003] CHAPTER 7 DETAIL VIEW [JANUARY–MAY 2004] CHAPTER 8 STICKIES ON A WHITEBOARD [JUNE–OCTOBER 2004] CHAPTER 9 METHODS CHAPTER 10 ENGINEERS AND ARTISTS CHAPTER 11 THE ROAD TO DOGFOOD [NOVEMBER 2004–NOVEMBER 2005] EPILOGUE A LONG BET [2005–2029 AND BEYOND] NOTES ACKNOWLEDGMENTS ABOUT THE AUTHOR COPYRIGHT For my parents Software is hard. —Donald Knuth, author of The Art of Computer Programming AUTHOR’S NOTE The shelves of the world are full of how-to books for software developers. This is not one of them. I’m barely an elementary programmer myself. I wouldn’t presume to try to teach the experts. And if my research had uncovered some previously unknown innovation or fail-safe insight into building better software, I’d be smarter to seek investors, not readers.

To shape it so that people can learn it easily, and to render it flexible so people can bend it to their needs? Is it just a matter of time and experience? Could some radical breakthrough be right around the corner? Or is there something at the root of what software is, its abstractness and intricateness and malleability, that dooms its makers to a world of intractable delays and ineradicable bugs—some instability or fickleness that will always let us down? “Software is hard,” wrote Donald Knuth, author of the programming field’s most respected textbooks. But why? Maybe you noticed that I’ve called this Chapter 0. I did not mean to make an eccentric joke but, rather, to tip my hat to one small difference between computer programmers and the rest of us: Programmers count from zero, not from one. The full explanation for this habit lies in the esoteric realm of the design of the registers inside a computer’s central processing unit and the structure of data arrays.


pages: 509 words: 92,141

The Pragmatic Programmer by Andrew Hunt, Dave Thomas

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

A Pattern Language, Broken windows theory, business process, buy low sell high, c2.com, combinatorial explosion, continuous integration, database schema, domain-specific language, don't repeat yourself, Donald Knuth, general-purpose programming language, George Santayana, Grace Hopper, if you see hoof prints, think horses—not zebras, index card, loose coupling, Menlo Park, MVC pattern, premature optimization, Ralph Waldo Emerson, revision control, Schrödinger's Cat, slashdot, sorting algorithm, speech recognition, traveling salesman, urban decay, Y2K

[KLM+97] Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In European Conference on Object-Oriented Programming (ECOOP), volume LNCS 1241. Springer-Verlag, June 1997. [Knu97a] Donald Ervin Knuth. The Art of Computer Programming: Fundamental Algorithms, volume 1. Addison Wesley Longman, Reading, MA, third edition, 1997. [Knu97b] Donald Ervin Knuth. The Art of Computer Programming: Seminumerical Algorithms, volume 2. Addison Wesley Longman, Reading, MA, third edition, 1997. [Knu98] Donald Ervin Knuth. The Art of Computer Programming: Sorting and Searching, volume 3. Addison Wesley Longman, Reading, MA, second edition, 1998. [KP99] Brian W. Kernighan and Rob Pike. The Practice of Programming. Addison Wesley Longman, Reading, MA, 1999.

Related sections include: Estimating, page 64 Challenges Every developer should have a feel for how algorithms are designed and analyzed. Robert Sedgewick has written a series of accessible books on the subject ([Sed83, SF96, Sed92] and others). We recommend adding one of his books to your collection, and making a point of reading it. For those who like more detail than Sedgewick provides, read Donald Knuth's definitive Art of Computer Programming books, which analyze a wide range of algorithms [Knu97a, Knu97b, Knu98]. In Exercise 34, we look at sorting arrays of long integers. What is the impact if the keys are more complex, and the overhead of key comparison is high? Does the key structure affect the efficiency of the sort algorithms, or is the fastest sort always fastest? Exercises 34.

At best it is an unfortunate necessity; at worst it is treated as a low-priority task in the hope that management will forget about it at the end of the project. Pragmatic Programmers embrace documentation as an integral part of the overall development process. Writing documentation can be made easier by not duplicating effort or wasting time, and by keeping documentation close at hand—in the code itself, if possible. These aren't exactly original or novel thoughts; the idea of wedding code and documentation appears in Donald Knuth's work on literate programming and in Sun's JavaDoc utility, among others. We want to downplay the dichotomy between code and documentation, and instead treat them as two views of the same model (see It's Just a View, page 157). In fact, we want to go a little further and apply all of our pragmatic principles to documentation as well as to code. Tip 67 Treat English as Just Another Programming Language There are basically two kinds of documentation produced for a project: internal and external.


pages: 351 words: 123,876

Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice) by Adam Goucher, Tim Riley

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, barriers to entry, Black Swan, call centre, continuous integration, Debian, Donald Knuth, en.wikipedia.org, Firefox, Grace Hopper, index card, Isaac Newton, natural language processing, p-value, performance metric, revision control, six sigma, software as a service, software patent, the scientific method, Therac-25, Valgrind, web application

Values of n that you would want to use for testing, say n = 1,000, are more than big enough. Donald Knuth’s book gives more details concerning the K-S test, such as an explanation of where the range values come from and how to find your own values based on how often you want the test to pass. If the K-S test usually passes, this is strong evidence that the transformation from uniform to nonuniform random values was implemented correctly. In that case, if the uniform RNG is trustworthy, then the nonuniform generator is trustworthy. Of course it is possible that a bug could still slip through the process, but this is unlikely. If the K-S test fails, examining the values of x that determine K+ and K− could help developers locate the bug in the RNG. † Knuth, Donald E. The Art of Computer Programming, Vol. 2: Seminumerical Algorithms, Third Edition.

How do you know when χ2 is too large or too small? First we consider the number of buckets. If there are too few buckets, the test is not very demanding and errors could go undetected. On the other hand, if there are too many buckets, then we do not expect to find many samples in each bucket and the theoretical requirements of the test are not met. A common rule of thumb is that the expected number of samples in ‖ Knuth, Donald E. The Art of Computer Programming, Vol. 2: Seminumerical Algorithms, Third Edition. Addison-Wesley, 1998. 138 CHAPTER TEN each bucket should be at least five.# This is no problem because we are generating our data rather than collecting it. We can determine our number of buckets first, then choose the number of samples n so large that we expect well more than five samples in each bucket.

The counts in each bucket would not be affected by such a bug, and if the generator were otherwise correct, the bucket test would pass most of the time. We would like a more fine-grained test of how the random samples are distributed. Here’s one way to proceed. Take a large number of samples n. For each sample xi we can compare the actual proportion of samples less than xi to the proportion of samples we would expect to have # Knuth, Donald E. The Art of Computer Programming, Vol. 2: Seminumerical Algorithms, Third Edition. Addison-Wesley, 1998. * In case you’re curious: xi = tan(π(0.1 i − 0.5)). TESTING A RANDOM NUMBER GENERATOR 139 seen. In other words, we will compare the empirical distribution function with the theoretical distribution function. The empirical distribution is defined as: and the theoretical distribution function F(x) is the theoretical probability of the RNG returning a value no greater than x.


pages: 394 words: 108,215

What the Dormouse Said: How the Sixties Counterculture Shaped the Personal Computer Industry by John Markoff

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Any sufficiently advanced technology is indistinguishable from magic, Apple II, back-to-the-land, beat the dealer, Bill Duvall, Bill Gates: Altair 8800, Buckminster Fuller, California gold rush, card file, computer age, computer vision, conceptual framework, cuban missile crisis, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Dynabook, Edward Thorp, El Camino Real, Electric Kool-Aid Acid Test, general-purpose programming language, Golden Gate Park, Hacker Ethic, hypertext link, informal economy, information retrieval, invention of the printing press, Jeff Rulifson, John Markoff, John Nash: game theory, John von Neumann, Kevin Kelly, knowledge worker, Mahatma Gandhi, Menlo Park, Mother of all demos, Norbert Wiener, packet switching, Paul Terrell, popular electronics, QWERTY keyboard, RAND corporation, RFC: Request For Comment, Richard Stallman, Robert X Cringely, Sand Hill Road, Silicon Valley, Silicon Valley startup, South of Market, San Francisco, speech recognition, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, Thorstein Veblen, Turing test, union organizing, Vannevar Bush, Whole Earth Catalog, William Shockley: the traitorous eight

Moreover, other important companies such as Digital, Lucasfilm, and Intel received important technological boosts from SAIL innovations. SAIL research also led to a wave of AI startups in the late seventies and early eighties. Ultimately, the dream of AI went unrealized, but SAIL nurtured an eclectic group of computer hackers who passed through before going on in a computing diaspora that eventually was every bit as influential as the later scattering from Xerox PARC. During the evenings, Donald Knuth, a Stanford computer scientist who invented several of the field’s most important algorithms, would show up to use the SAIL computer along with other hackers. Knuth eventually wrote The Art of Computer Programming, the definitive text in the field. Years later, after becoming annoyed with the declining quality of the typesetting in the production of math books, he designed an advanced text-formatting language called TeX.

He was able to visit the Menlo Park laboratory and had a good conversation with a number of the members of the Augment team. He liked them, and they liked him. There was just one small problem: Lehtman knew almost nothing about computers. The visit ended inconclusively, but the computing bug had bitten Lehtman. He discovered a new program that was being started at UCSD in physics and information. He entered the graduate school and was given the responsibility for teaching a computer-science course. Since Donald Knuth’s first volume of The Art of Computer Programming had recently been published, he got a copy and throughout the quarter managed to keep barely ahead of everyone in the class. During the summer of 1969 he called Bill English and told him, “I know about computers now.” He arrived as a summer intern and then came to work full-time the next year. The doors of Augment were opened not only to a small technical elite of software designers like Duvall and Lehtman.

In his senior year, he began experimenting with electronic devices and built several electronic slide rules, assembling them from components that he dredged out of scavenging expeditions to a electronic-surplus shop in Cambridge. Designing simple electronic circuits grew into a captivating hobby, and upon graduating from Harvard, Ingalls, remembering a childhood visit, decided to head for California’s beaches and Stanford University. Once at Stanford, his passion for hardware cooled a bit, and he began spending more and more time trying to pursue the softer side of computing. He took a colloquium taught by Donald Knuth, the Stanford computer scientist who spent his evenings hacking at SAIL. The Knuth course explored program optimization, the craft of speeding software performance. It opened new vistas for Ingalls, who became deft at designing programs called optimizers—software that would overcome bottlenecks in programs that were inefficient. The Knuth course also led to Ingalls’s first entrepreneurial venture and his first business failure when he launched a one-man consulting firm that sought to speed up programs written in Fortran.


pages: 400 words: 94,847

Reinventing Discovery: The New Era of Networked Science by Michael Nielsen

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, augmented reality, barriers to entry, bioinformatics, Cass Sunstein, Climategate, Climatic Research Unit, conceptual framework, dark matter, discovery of DNA, Donald Knuth, double helix, Douglas Engelbart, Douglas Engelbart, en.wikipedia.org, Erik Brynjolfsson, fault tolerance, Fellow of the Royal Society, Firefox, Freestyle chess, Galaxy Zoo, Internet Archive, invisible hand, Jane Jacobs, Jaron Lanier, Kevin Kelly, Magellanic Cloud, means of production, medical residency, Nicholas Carr, publish or perish, Richard Feynman, Richard Feynman, Richard Stallman, selection bias, semantic web, Silicon Valley, Silicon Valley startup, Simon Singh, Skype, slashdot, social web, statistical model, Stephen Hawking, Stewart Brand, Ted Nelson, The Death and Life of Great American Cities, The Nature of the Firm, The Wisdom of Crowds, University of East Anglia, Vannevar Bush, Vernor Vinge

Their heroes were people who could, in a few days, whip up a program that would take lesser programmers months to write. To give you the flavor of what skills were valued in those days, consider this story from one of the great pioneers of modern computing, Alan Kay, a recipient of the Turing Award, the highest honor in computer science. It’s an admiring story about the programming prowess of Donald Knuth, another legend of computing and Turing Award recipient: When I was at Stanford with the [artificial intelligence] project [in the late 1960s] one of the things we used to do every Thanksgiving is have a programming contest with people on research projects in the Bay area. The prize I think was a turkey. [Artificial intelligence pioneer and Stanford Professor John] McCarthy used to make up the problems.

p 56 The issue tracker isn’t just for fixing bugs, it’s also used to propose and implement new features: In fact, the issue tracker is just one of several ways in which Firefox developers can propose new features. Other forums used to propose new features include an online mailing list, a wiki, and even a weekly conference phone call of Firefox developers. p 58 more than a billion lines: This and the estimate of the rate of code growth are conservative estimates, based on work by Deshpande and Riehle [51], current as of the end of 2006. p 58: Alan Kay’s story about Donald Knuth is from page 101 of [192]. p 59 “Good programmers code; great programmers reuse other people’s code”: Variants of this saying have floated around the open source world for years, but I haven’t been able to track down the original source. This is fitting. There’s more, too: the quote is a paraphrase of a quote often attributed to Picasso, “Good artists copy; great artists steal.” I haven’t been able to find a verifiable source for the Picasso quote, but compare T.

See also citations; papers, scientific Justinian (emperor), 158 Kacheishvili, Giorgi, 25 Karpov, Anatoly, 18 Kasparov, Garry, 15–18 on hybrid chess tournament, 114 limits on expertise of, 32 Kasparov versus the World, 15–18 amplifying collective intelligence in, 21, 66, 75 collective insight and, 66–68 conversational critical mass in, 30 dynamic division of labor in, 34–36 expert attention and, 24–26, 28, 66 microcontributions in, 64 shared praxis in, 75 superiority to committees, 39 Katznelson, Yitzhak, 212 Kay, Alan, 58 Kelly, Kevin, 221, 233 Kepler, Johannes, 104, 172–73 Kepler Mission, 201 Khalifman, Alexander, 26 Kleinberg, Jon, 217 knowledge: aggregated by the market, 37–39 current change in construction of, 10, 206 entire body of, 123 of information commons, 59 modern expansion of, 31–32 public accessibility of, 96. See also meaning found in knowledge Knuth, Donald, 58 Krush, Irina, 16–18, 24–26, 35, 66, 67–68, 74 Lakhani, Karim, 218 language translation by machine, 124–26 Lanier, Jaron, 223 Large Hadron Collider (LHC), 161 Large Synoptic Survey Telescope (LSST), 107, 151 lasers, 157 Lauer, Tod, 100–101, 103, 114 lean manufacturing, 36 Leibniz, Gottfried Wilhelm, 174 Lessig, Lawrence, 220 Lévy, Pierre, 217, 221 libraries, and new knowledge tools, 235–36 line-free configurations, 209–10, 212 Lintott, Chris, 133, 134–35 Linus’s Law, 223 Linux: conscious modularity in development of, 51–52, 56–57 microcontributions to, 63 near-fracturing of, 49–50 origin of, 20, 44–45 release 2.0, 52 societal change and, 158 ubiquity of, 45 Lockheed Martin Skunk Works, 36 Lockyer, Joseph Norman, 138 machine translation, 124–26 Mackay, Charles, 218 Mad Max (film), 34 Magellanic clouds, 99 Manhattan Project, 36 markets: collaboration markets, 85, 86, 87, 182, 196 delivering social benefits of science, 156–57, 158 online collaboration compared to, 37–38 subsumed by online tools, 38–39, 224 Masum, Hassan, 171 mathematical proof.


pages: 398 words: 107,788

Coding Freedom: The Ethics and Aesthetics of Hacking by E. Gabriella Coleman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Benjamin Mako Hill, commoditize, crowdsourcing, Debian, Donald Knuth, dumpster diving, en.wikipedia.org, financial independence, ghettoisation, Hacker Ethic, informal economy, Jacob Appelbaum, Jaron Lanier, Jason Scott: textfiles.com, Jean Tirole, knowledge economy, laissez-faire capitalism, Larry Wall, Louis Pasteur, means of production, Paul Graham, peer-to-peer, pirate software, popular electronics, RFC: Request For Comment, Richard Stallman, rolodex, Ronald Reagan, Silicon Valley, Silicon Valley startup, slashdot, software patent, software studies, Steve Ballmer, Steven Levy, Ted Nelson, the scientific method, The Structural Transformation of the Public Sphere, web application, web of trust

He characterized computer programs as “writings” to argue that software was unfit for patents, although appropriate for copyrights and thus free speech protections (patents being for invention, and copyright being for expressive content). The idea that coding was a variant of writing was also gaining traction, in part because of the popular publications of Stanford Computer Science professor Donald Knuth (1998; see also Black 2002) on the art of programming. During the early 1990s, a new ethical sentiment emerged among Usenet enthusiasts (many of them hackers and developers) that the Internet should be a place for unencumbered free speech (Pfaffenberger 1996). This sensibility in later years would become specified and attached to technical artifacts such as source code. Perhaps most significantly, what have come to be known as the “encryption wars” in the mid-1990s were waged over the right to freely publish and use software cryptography in the face of governmental restrictions that classified strong forms of encryption as munitions.

Mother Jones, July 20. http://motherjones.com/politics/2001/07/peace-love-and-marketing (accessed August 24, 2011). Kidder, Tracy. 1981. The Soul of a New Machine. Boston: Little, Brown and Company. Klein, Naomi. 2008. The Shock Doctrine: The Rise of Disaster Capitalism. New York: Henry Holt and Company. Kollock, Peter. 1999. The Economies of Online Cooperation: Gifts and Public Goods. In Communities in Cyberspace, ed. Marc A. Smith and Peter Kollock, 219–39. London: Routledge. Knuth, Donald. 1998. The Art of Computer Programming, Vol. 1. New York: Addison-Wesley. Lakoff, George. 2004. Don’t Think of an Elephant! Know Your Values and Frame the Debate. White River Junction, VT: Chelsea Green. 2006. Whose Freedom? The Battle over America’s Most Important Idea. New York: Farrar, Straus, Giroux. Lancashire, David. 2001. Code, Culture, and Cash: The Fading Altruism of Open Source Development.

., 200–203; definition of, 9, 84, 118; expansion of, 84–86; history of, 9–10, 62–64; and international treaties, 71, 72, 84; relationship of to free speech, 9, 10, 183, 200 International Intellectual Property Alliance (IIPA), 71, 87 Internet, 26, 30, 32–33, 39, 46, 58, 73, 75, 83, 88, 169, 189, 207 Internet Relay Chat (IRC), 6, 23, 33, 51, 107, 128, 140, 194, 213n9 Jackson, Michael, 27 Jaffe, Adam, 66, 67 jazz poetics. See poetics of hacking Johansen, Jon Lech, 86, 161, 162, 170–73, 180, 181. See also DeCSS joking. See humor jurisgenesis, 124 Kant, Immanuel, 157, 221n23 KDE, 44, 75, 167 Kelty, Chris, 58, 68, 76, 123, 127, 189, 198, 209 kernel, 43, 46, 74, 75. See also Linux Kidder, Tracy, 61 Klecker, Joel “Espy,” 53 Knuth, Donald, 169 Kraft, Martin “madduck,” 54 Latour, Bruno, 57, 76, 185, 190, 197, 198 lawsuits, 46, 64, 72, 86, 161, 171–72, 180–82 legal education of hackers. See hackers: legal consciousness of Lehman, Bruce, 73 Lessig, Lawrence, 26, 41–42, 82, 83, 168, 180, 181, 190, 197–200. See also Creative Commons Levy, Steven, 19 liberalism, 2, 17, 68, 121, 211n4; definition of, 2–4; relation of to F/OSS, 3, 13, 15, 17, 75, 185, 189, 192, 202; history of, 2–4, 211n2; and notions of selfhood, 11, 94, 95, 118, 121, 202; principles of, 2, 3, 9, 17, 189, 195.

Algorithms Unlocked by Thomas H. Cormen

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

bioinformatics, Donald Knuth, knapsack problem, NP-complete, optical character recognition, Silicon Valley, sorting algorithm, traveling salesman

Freeman, 1979. [Gri81] David Gries. The Science of Programming. Springer, 1981. [KL08] Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography. Chapman & Hall/CRC, 2008. [Knu97] Donald E. Knuth. The Art of Computer Programming, Volume 1: Fundamental Algorithms. Addison-Wesley, third edition, 1997. [Knu98a] Donald E. Knuth. The Art of Computer Programming, Volume 2: Seminumeral Algorithms. Addison-Wesley, third edition, 1998. [Knu98b] Donald E. Knuth. The Art of Computer Programming, Volume 3: Sorting and Searching. Addison-Wesley, second edition, 1998. [Knu11] Donald E. Knuth. The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part I. Addison-Wesley, 2011. [Mac12] John MacCormick. Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today’s Computers.

John MacCormick’s book Nine Algorithms That Changed the Future [Mac12] describes several algorithms and related aspects of computing that affect our everyday lives. MacCormick’s treatment is less technical than this book. If you find that my approach in this book is too mathematical, then I recommend that you try reading MacCormick’s book. You should be able to follow much of it even if you have a meager mathematical background. In the unlikely event that you find CLRS too watered down, you can try Donald Knuth’s multi-volume set The Art of Computer Programming [Knu97, Knu98a, Knu98b, Knu11]. Although the title of the series makes it sound like it might focus on details of writing code, these books Chapter 1: What Are Algorithms and Why Should You Care? 9 contain brilliant, in-depth analyses of algorithms. Be warned, however: the material in TAOCP is intense. By the way, if you’re wondering where the word “algorithm” comes from, Knuth says that it derives from the name “al-Khowârizmı̂,” a ninth-century Persian mathematician.


pages: 749 words: 92,104

Hacker's Delight by Henry S. Warren

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, John von Neumann

In Papers of John von Neumann on Computing and Computing Theory, Volume 12 in the Charles Babbage Institute Reprint Series for the History of Computing, MIT Press, 1987. [Ken] Found in a GNU C compiler for the RS/6000 that was ported by Richard Kenner. He attributes this to a 1992 PLDI conference paper by him and Torbjörn Granlund. [Knu1] Knuth, Donald E. The Art of Computer Programming, Volume 1, Third Edition: Fundamental Algorithms. Addison-Wesley, 1997. [Knu2] Knuth, Donald E. The Art of Computer Programming, Volume 2, Third Edition: Seminumerical Algorithms. Addison-Wesley, 1998. [Knu3] The idea of using a negative integer as the base of a number system for arithmetic has been independently discovered by many people. The earliest reference given by Knuth is to Vittorio Grünwald in 1885. Knuth himself submitted a paper on the subject in 1955 to a "science talent search" for high-school seniors.

[GGS] Gregoire, Dennis G., Groves, Randall D., and Schmookler, Martin S. Single Cycle Merge/Logic Unit, US Patent No. 4,903,228, February 20, 1990. [GK] Granlund, Torbjörn and Kenner, Richard. "Eliminating Branches Using a Superoptimizer and the GNU C Compiler." In Proceedings of the 5th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), July 1992, 341-352. [GKP] Graham, Ronald L., Knuth, Donald E., and Patashnik, Oren. Concrete Mathematics: A Foundation for Computer Science, Second Edition. Addison-Wesley, 1994. [GLS1] Steele, Guy L., Jr. Private communication. [GLS2] Steele, Guy L., Jr. "Arithmetic Shifting Considered Harmful." AI Memo 378, MIT Artificial Intelligence Laboratory (September 1976); also in SIGPLAN Notices 12, 11 (November 1977), 61-69. [GM] Granlund, Torbjörn and Montgomery, Peter L.


pages: 315 words: 70,044

Learning SPARQL by Bob DuCharme

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

database schema, Donald Knuth, en.wikipedia.org, G4S, linked data, semantic web, SPARQL, web application

p "two"^^mt:potrzebies . } It’s an interesting case, because it has the ^^ in it to indicate that the value is of a specific type, but it’s not an xsd type. RDF lets you define custom datatypes for your own needs, and as this query demonstrates, SPARQL lets you query for them. (We’ll learn how to query for d:item2d, which has the @en tag to show that it’s in English, in Checking, Adding, and Removing Spoken Language Tags.) Note The Potrzebie System of Weights and Measures was developed by noted computer scientist Donald Knuth. He published it as a teenager in Mad Magazine in 1957, so it is not considered normative. A single potrzebie is the thickness of Mad magazine issue number 26. The use of non-XSD types in RDF is currently most common in data using the SKOS standard for controlled vocabularies. In SKOS, the skos:notation property names an identifier for a concept that is often a legacy value from a different thesaurus expressed as a cryptic numeric sequence (for example, “920” to represent biographies in the library world’s Dewey Decimal System), unlike the concept’s skos:prefLabel property that provides a more human-readable name.

., Adding Data to a Dataset integer datatype, Datatypes and Queries IRI, Glossary IRI(), Node Type Conversion Functions isBlank(), Node Type and Datatype Checking Functions isIRI(), Node Type and Datatype Checking Functions isLiteral(), Node Type and Datatype Checking Functions isNumeric(), Node Type and Datatype Checking Functions isURI(), FILTERing Data Based on Conditions, Node Type and Datatype Checking Functions J JavaScript, SPARQL and Web Application Development, SPARQL Query Results XML Format Jena, Defining Rules with SPARQL, Getting Started with Fuseki, Getting Started with Fuseki, Standalone Processors join (SPARQL equivalent), Searching Further in the Data JSON, The SPARQL Specifications, SPARQL and Web Application Development, SPARQL Query Results XML Format, Standalone Processors as ARQ output, Standalone Processors query results, SPARQL Query Results XML Format K Knuth, Donald, Datatypes and Queries L lang(), Checking, Adding, and Removing Spoken Language Tags, Checking, Adding, and Removing Spoken Language Tags langMatches() vs., Checking, Adding, and Removing Spoken Language Tags langMatches(), Checking, Adding, and Removing Spoken Language Tags language codes, Making RDF More Readable with Language Tags and Labels, Using the Labels Provided by DBpedia, Checking, Adding, and Removing Spoken Language Tags, Checking, Adding, and Removing Spoken Language Tags checking, adding, and removing, Checking, Adding, and Removing Spoken Language Tags, Checking, Adding, and Removing Spoken Language Tags filtering on, Using the Labels Provided by DBpedia LCASE(), String Functions LIMIT, Retrieving a Specific Number of Results, Federated Queries: Searching Multiple Datasets with One Query Linked Data, What Exactly Is the “Semantic Web”?


pages: 525 words: 142,027

CIOs at Work by Ed Yourdon

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

8-hour work day, Apple's 1984 Super Bowl advert, business intelligence, business process, call centre, cloud computing, crowdsourcing, distributed generation, Donald Knuth, Flash crash, Googley, Grace Hopper, Infrastructure as a Service, Innovator's Dilemma, inventory management, Julian Assange, knowledge worker, Mark Zuckerberg, Nicholas Carr, rolodex, shareholder value, Silicon Valley, six sigma, Skype, smart grid, smart meter, software as a service, Steve Ballmer, Steve Jobs, Steven Levy, the new new thing, the scientific method, WikiLeaks, Y2K, Zipcar

I think I’ve been lucky in that in every job I’ve been in, there’s been one or more people I’ve been able to look up to and learn from. Yourdon: Hmm. Fried: Kind of different depending on the situation. When I was working my way through school, I was spending a lot of time reading, guess what? I think it was classic computer science texts. Yourdon: [laughter] Fried: And everything from reading [Brian] Kernighan and [P.J.] Plauger’s Elements of Programming Style [McGraw-Hill, 1978], the books of the Bell Labs guys, [Donald] Knuth’s Art of Computer Programming [Addison-Wesley, 2011], and the stuff he did. Did you guys [Bell Labs team and Ed Yourdon] publish together? I thought I remembered. Yourdon: Well, because it took two years to get my books out—in fact, because of Bill Plauger, we had the first nonacademic UNIX license in the country. Fried: Really? Yourdon: And I said, “Is it free?” And [Plauger] said, “Of course not, it’s $10,000.”

Of course, you have access to whatever you want on the Internet, but it’s something I’ve noticed having written a whole bunch of books: nobody wants to read a book anymore. Nobody wants to spend more than ten minutes focusing intellectually on anything. Nicholas Kristof wrote something saying that in today’s world you could never read War and Peace because who’s got time for a 1200-page book, whether it’s a novel or a computer science book? Fried: Yeah. Yourdon: Who’s going to read Donald Knuth’s four volumes? Fried: Yeah, I just got the new one, the 4A just came out, right? So, that’s interesting. There had been this period of time when many of us had thought or hoped that the prevalence of e-mail would lead to a second great, generation of letters, of people of letters. But of course, what happened instead was instant messaging and tweets and so on—more and more sharding of one’s attention.

., 87 Arizona Public Service (APS) Company, 66, 211, 223 Arizona State University, 227 ARPANET, 19, 117, 135 Art of Computer Programming, 2 Atlanta-based Southern Company, 191 AT&T, 191, 249 B Ballmer, Steve, 39 Bank of Boston, 47 Baylor-Grapevine Board of Trustees, 47 Bedrock foundation, 249 Bell Atlantic Mobile, 231 Bell Labs, 2, 249 BlackBerry, 60, 96, 116, 121, 171, 184, 246, 261, 296, 317 Blalock, Becky, 182, 191, 215 adaptability, 192 Air Force brat, 191, 192 Atlanta-based Southern Company, 191 banking industry, 203 Boucher, Marie, 196 brainstorm, 202 24/7 business, 199 business intelligence, 204 cloud computing, 205 cognitive surplus, 206 cognitive time, 206 Coker, Dave, 196 communication and education, 200 Community and Economic Development, 194 consumer market, 202 cybersecurity, 207, 209 data analytics, 204, 205 disaster recovery, 209 distributed generation, 204 distribution organization, 201 Egypt revolution, 198 farming technology, 206 finance backgrounds/marketing, 200, 209 Franklin, Alan, 193 Georgia Power, 191 Georgia Power Management Council, 193 global society, 206 Google, 198 incredible technology, 195 Industrial Age, 206 Information Age, 206 InformationWeek's, 196 infrastructure, 202 intellectual property, 196 intelligence and redundancy, 207 Internet, 198, 206 leapfrog innovations, 205 mainframe system, 207 marketing and customer service, 193, 200 MBA, finance, 192 microfiche, 207 microwave tower, 207 mobile devices, 203 mobility and business analytics, 205 Moore's Law, 205 new generation digital natives, 197 flexible and adaptable, 199 innovation and creativity, 199 superficial fashion, 198 Olympic sponsor, 193 out pushing technology, 202 reinforcement, 201 sense of integrity, 200 Southern Company, 194, 198, 201, 207 teamwork survey, 201 technology lab, 202 undergraduate degree, marketing, 192 virtualization, 205 VRU, 203 Ward, Eileen, 196 wire business, 201 world-class customer service, 203 Bohlen, Ken, 211 American Production Inventory Control Society, 211 Apple, 217 APS, 211, 223 ASU, 227 benchmarking company, 216 chief innovation officer, 229 Citrix, 217 cloud computing, 218, 219 cognitive surplus, 220 DECnet, 212 Department of Defense, 222 distributed computing, 217 energy industry, 214 gizmo/whiz-bang show, 216 GoodLink, 217 hard-line manufacturing, 218 home computing, 219 home entertainment, 219 Honeywell, 219 HR generalists, 215 information technology department, 211 Intel machines, 217 John Deere, 213 just say yes program, 223 Lean Six Sigma improvement process, 211 Linux, 220 MBA program, 214 mentors, 213 national alerts, 224 North American universities, 228 paradigm shifts, 218, 220 PDP minicomputers, 212 Peopleware, 226 prefigurative culture, 221 R&D companies, 218 Rhode Island, 226 role models, 213 San Diego Fire Department, 224 security/privacy issues, 217 skip levels, 223 smart home concepts, 219 smartphone, 217 social media, 225 Stead, Jerry, 214 Stevie Award, 211 Storefront engineering, 212 traditional management, 219, 226 Twitter, 224 vocabulary, 221 Waterloo operations, 213 Web 2.0 companies, 227 Web infrastructure, 215 wikipedia, 220 Y2K, 222 Botnets, 23 Brian's and Rob Pike's, 2 Bristol-Myers Squibb, 33 Broadband networks, 241 Brown, 227 Bryant, 227 BT Global Services, 253 BT Innovate & Design (BTI&D), 253 Bumblebee tuna, 130 C Career writing technology, 67 CASE tools, 232 Cash, Jim, 50 Christensen, Clyde, 212 Chrome, 14, 18 Chrysler Corporation, 175 Citibank, 337 Citicorp, 313 Citrix, 217 Client-server-type applications, 59 Cloud computing, 218, 219, 239, 240, 261, 262, 310, 311, 313 Cloud technology, 62 CNN, 54 COBOL, 250 Cognitive surplus, 20, 79, 206, 291 College of Engineering, University of Miami, 113 Columbia University, 1 Community and Economic Development, 194 Computer Sciences Corporation, 35 Computerworld magazine, 196 Consumer-oriented technology, 22 Content management system, 133 Corporate information management (CIM) program, 309 Corporate Management Information Systems, 87 Corvus disk drive, 36 Customer Advisory Boards of Oracle, 191 Customer-relationship management (CRM), 56 Cutter Business Technology Council, 173 D Dallas Children's Medical Center Development Board, 48 DARPA, 19 DDoS attacks and security, 81 DECnet, 212 Dell Platinum Council, 113 DeMarco, Tom, 16, 226 Department of Defense, 222, 329, 332 Detroit Energy, 252 Digital books, 30 Digital Equipment, 48 Distributed computing, 217 Dodge, 189 Dogfooding, 11, 37, 38, 236 DTE Energy, 173 DuPont Dow Elastomers, 151 E Educational Testing Service (ETS), 151 E-government, 282, 285 Electrical distribution grid, 182 Elementary and Secondary Education Strategic Business Unit, 151 Elements of Programming Style, 2 Ellyn, Lynne, 173 advanced technology software planning, 175 Amazon, 184 artificial intelligence group, 175 Association for Women in Computing, 173 benchmark, 180, 181 BlackBerries, 184 Burns, Ursula, 175 Chrysler, 176 Cisco, 186 cloud computing, 183, 184 component-based architecture, 186 corporate communications customer service, 185 Crain's Detroit Business, 173 cyber security threats, 177 degree of competence, 187 diversity and sophistication, 182 DTE Energy, 173 energy trading, 176 engineering and science programs, 188 enterprise business systems policy, 186 executive MBA program, 176 Facebook, 185 fresh-out-of-the-university, 187 General Electric, 174 Google, 184 Grace Hopper, 174 grid re-automation, 182 Henry Ford Hospital, 174 internal social media, 185 International Coaching Federation, 178 iPads, 184 IP electrical grids, 182 iPod applications, 182 IT budgets, 186 IT responsibilities, 176 Java, 186 level of sophistication, 179 lobbying efforts, 181 medical computing, 175 Miller, Joan, 174 Mulcahey, Anne, 175 Netscape, 175 neuroscience leadership, 189 object-oriented programming, 186 Oracle, 186 peer-level people, 179 people system, 177 policies and strategies, 180 Radio Shack, 180 remote access capacity, 189 security tool and patch, 183 sense of community, 180 Shipley, Jim, 174 smart grid, 177, 182 smart meters, 182 smart phone applications, 183 swarming, 179 technical competence, 178, 179 Thomas, Marlo, 174 Twitter, 185 UNITE, 181 vendor community, 186 virtualization, 183, 184 Xerox, 175 E-mail, 9 Employee-relationship management (ERM), 56 Encyclopedia, 115 Encyclopedia Britannica, 292 ERP, 123 F Facebook, 244 Ellyn, Lynne, 185 Sridhara, Mittu, 73, 84 Temares, Lewis, 116, 121, 131 Wakeman, Dan, 169 Federal information technology investments, 299 Flex, 236 Ford, 102 Ford, Monte, 47 agile computing, 59 agile development, 62, 66 airplanes, 51 American Airlines, 47 Arizona Public Services, 66 Bank of Boston, 47 Baylor-Grapevine Board of Trustees, 47 BlackBerry, 60 board of Chubb, 51 board of Tandy, 51 business organizations, 63 business school, dean, 50 career writing technology, 67 client-server-type applications, 59 cloud technology, 62 CNN, 54 common-sense functionality, 49 consumer-based technology, 60 CRM, 56 Dallas Children's Medical Center Development Board, 48 Digital Equipment, 48 ERM, 56 financial expert, 69 frequent-flier program, 57 frontal lobotomy, 57 Harvard Business Review, 50 HR policies, 65 IBM, 48 information technology, 47, 52 Internet, 54 Internet-based protocol, 59 iPhone, 52 IT stuff, 58 Knight Ridder, 51 legacy apps, 59 mainframe-like applications, 59 management training program, 64 marketing and technical jobs, 48 Maynard, Massachusetts mill, 48 MBA program, 50 mentors, 49 Microsoft, 50 mobile computing, 62 New York Times, 53 operations center, 54 PDP-5, 49 PDP-6, 49 Radio Shack, 51 revenue management, 57 role models, 49 security paradigms, 62 self-service machine, 57 Silicon Valley companies, 68 smartphones, 54 social networking, 51, 53, 56, 58 stateful applications, 59 techie department, 48 The Associates First Capital Corporation, 47 transmission and distribution companies, 47 wireless network, 59 YouTube, 65 Fort Worth, 226 Free software foundation, 19 Fried, Benjamin, 1, 241 agile development, 25 agile methodologies, 26 Apple Genius Bar, 8 ARPANET, 19 Art of Computer Programming, 2 Bell Labs, 2 books and records, accuracy, 25 botnets, 23 Brian's and Rob Pike's, 2 cash-like principles, 29 CFO, 4 check writers, 18 chrome, 14, 18 classic computer science text, 1 cognitive surplus, 20 Columbia University, 1 compensation management, 7 competitive advantage, 9, 18 computer science degree, 1 computer scientists, 6 consumer-driven computing, 12 consumer-driven software-as-a-service offerings, 12 consumer-driven technology, 12 consumer-oriented technology, 14, 22 corporate leadership, 25 cost centers, 4 DARPA, 19 decision makers, 17 decision making, 13 360-degree performance management, 7 detroit energy, 30 digital books, 30 document workbench, 2 dogfooding, 11 e-books, 29 Elements of Programming Style, 2 e-mail, 9 end-user support, 7 engineering executive group, 4 European vendors, 6 file servers and print servers, 17 Folger Library editions, 30 free software foundation, 19 German company, 13 German engineering, 13 Gmail, 15 Godot, 26 Google, 1 books, 29 products, 5, 10 software engineers, 6 hiring managers, 6 HR processes and technologies, 6 IBM model, 13 instant messaging, 9 Internet age, 6 interviewers, training, 6 iPad, 29 iPhone, 29 IPO, 3 IT, engineering and computer science parts, 4 Knuth's books, 2 Linux machine, 8 Linux software, 19 machine running Windows, 8 Macintosh, 8 Mac OS, 9 macro factors, 11 Managing Director, 1 mentors, 1 microcomputers, 18 Microsoft, 5 Minds for Sale, 20 Morgan Stanley, 1–3, 5, 16 nonacademic UNIX license, 2 nontechnical skills, 5 oil exploration office, 17 open-source phone operating system, 20 outlook, 15 PARC, 19 performance review cycles, 7 personal computer equipment, 15 post-Sarbanes-Oxley world, 25 project manager, 13 quants, 24 rapid-release cycle, 26 R&D cycle, 24 regression testing, 27 role models, 1 shrink-wrapped software, 14 signature-based anti-virus, 22 smartphone, 20, 27 social contract, 8 society trails technology, 21 software engineering tool, 13 software installation, 14 supply chain and inventory and asset management, 10 SVP, 4 telephony, 17 ten things, 13 TMRC, 19 TROFF, 2 typesetter workbench, 2 UI designer, 14 university computing center, 28 videoconferencing, 12 Visicalc, 24 Wall Street, 23 Walmart, 6 waterfall approach, 25 XYZ widget company, 5 YouTube video, 20 G Gates, Bill, 39, 50 General Electric, 134 General Foods, 309, 326–328 General Motors, 33, 321, 329, 332 George Mason School of Information Technology, 309 Georgia Power Company, 191–193, 196 Georgia Power Management Council, 193 German company, 13 German engineering, 13 German manufacturing company, 232 Gizmo/whiz-bang show, 216 Gmail, 15 GoodLink, 217 Google, 1, 84, 85, 117, 217, 219, 220, 222, 235, 241, 263, 302, 319 apps, 314 books, 29 commercial products, 10 model, 293 Government Accountability Office (GAO), 305 4G program, 250 4G smartphone, 235 GTE, 231 Gupta, Ashish aspiration, organization, 256 bandwidth and network infrastructure, 267 BlackBerry, 261 business and customer outcomes, 274 capital investment forums, 269 career progression, 255 cloud-based shared infrastructure model, 263 cloud computing, 261, 262 collaboration, 272 communications infrastructure, 258 compute-utility-based model, 262 control and integrity, 268 core competency, 255 core network infrastructure, 267 core strengths, 256 cost per unit of bandwidth, 267 customer demands, 268 data protection, 261, 262 decision-making bodies, 269 demographics, 272, 273 device convergence, 263 dogfooding, 259 employee flexibility, 260, 264 engagement and governance, 269 enterprise market segment, 261 equipment management, 260 executive MBA, 256 fourth-generation LTE networks, 267 functional service departments, 270 Global Services, distributed organization, 257 Google, 263, 275 Google Apps, 266 handheld devices, 265 hastily formed networks, 258 IMF, 266 innovation and application development, 265 iPad, 257, 260, 261, 266,267 iPhone, 266 Japan, 257, 258 London Business School, 253 management functions, 257 management sales functions, 257 market segments, 259 MBA, General Management, 253 measurements, 271 messaging with voice capability, 264 mini-microcomputer model, 261 mobile communications network, 258 mobile-enabling voice, 259 mobile phone network, 260 mobile traffic explosion, 265 network infrastructures, 265 network IT services, 254 network quality, 257 new generation digital natives, 271 disadvantages, 273 Google, 273 opportunities, 273 Olympics, 263 opportunities, 275 organizational construct, 272 outsourced network IT services, 259 outsourcing, 271 per-use-based model, 262 portfolio and business alignment, 274 Portfolio & Service Design (P&SD), 253 primary marketing thrust, 264 product development thrust, 264 product management team, 259 project and program management, 255 resource balance, 270 scalability, 262 security, 262 Selley, Clive, 254, 255 service delivery organization, 254 single-device model, 264 smart devices, 267 smart phones, 266 telecommunications capability, 259 upward-based apps, 264 virtualization, 261 voice-over-IP connections, 258 Windows platform, 261 Gurnani, Roger, 231 accounting/finance department, 233 analog cellular networks, 250 AT&T, 249 bedrock foundation, 249 Bell Atlantic Mobile, 231 Bell Labs, 249 blogs, 244 broadband networks, 241 business benefits, 237 business device, 240 business executives, 238 business leaders, 248, 249 business relationship management, 248 buzzword, 239 CASE tools, 232 cloud computing, 239, 240 COBOL, 250 consumer and business products, 231 consumer electronics devices, 241 consumer telecom business, 233 customer-engagement channel, 244 customer forums, 244 customer support operations, 251 customer-touching channels, 236 degree of control, 246 distribution channel, 250 dogfooding, 236 ecosystem, 243, 249 enterprise business, 233 ERP systems, 236 face-to-face communications, 244 FiOS product, 235 flex, 236 "follow the sun" model, 239 German manufacturing company, 232 4G program, 250 4G smartphone, 235 hardware/software vendors, 247 information assets, 245 information technology strategy, 231 intellectual property rights, 244 Internet, 235, 239 iPhone, 243 Ivan, 232 Lowell, 232 LTE technology-based smartphone, 235 marketing, 251 MIT, 246 mobile technology, 234 Moore's law, 242 MP3 file, 235 network-based services, 240 Nynex Mobile, 233 P&L responsibility, 251 PDA, 238 personal computing, 235 product development, 234, 251 role models, 232 sales channels, 251 smartphones, 238 state-level regulatory issues, 251 state-of-the-art networks, 243 telecom career, 232 telephone company, Phoenix, 234 Verizon Communication, 231, 232 virtual corporations, 241 Web 2.0, 244 Williams Companies, 232, 233 WillTell, 233 wireless business, 233 H Hackers, 19 Harmon, Jay, 213 Harvard Business Review, 50 Harvard Business School, 331 Heller, Martha, 171 Henry Ford Hospital, 174 Hewlett-Packard piece, 129 Home computing, 219 Honda, 102 Honeywell, 219 Houghton Mifflin, 134, 136 I IBM, 48, 250 manpower, 311 model, 13 Indian IT outsourcing company, 255 Information technology, 52 Intel machines, 217 International Coaching Federation, 178 Internet, 9, 44, 54, 117, 235, 239, 316, 322 Internet-based protocol, 59 Interoperability, 341 iPads, 2, 94, 97, 184, 257, 260, 264, 267, 288, 289, 295, 296 IP electrical grids, 182 iPhones, 43, 52, 96, 101, 170, 181, 260, 264,296 iPod, 101 IT lifecycle management process, 37 Ivan, 232 J John Deere, 213 K Kansas, 226 Kernigan, Brian, 2 Knight Ridder, 51 Knuth, Donald, 2, 29 Kraft Foods Inc, 309 Krist, Nicholas, 28 Kundra, Vivek Clever Commute, 305 cognitive surplus, 303 command and control systems, 301 consumerization, 302 consumption-based model, 300 cyber-warfare, 301 Darwinian pressure, 302 desktop core configuration, 306 digital-borne content, 301 digital oil, 300, 307 digital public square, 304 enterprise software, 303 entrepreneurial startup model, 306 frugal engineering, 306 Google, 302 government business, 302 innovator's dilemma, 307 iPad, 302 IT dashboard, 302 leapfrog technology, 306 massive consumerization, 301 megatrends, 301 parameter security, 302 Patent Office, 305 pharmaceutical industry, 304 phishing attacks, 301 policy and strategic planning, 299 security and privacy, 301 server utilization, 300 social media and technology, 300, 306 storage utilization, 300 Trademark Office, 305 Wikipedia, 303 L LAN, 259 Lean Six Sigma improvement process, 211 Levy, Steven (Hackers), 19 Linux, 220 machine, 8 open-source software, 19 Lister, Tim, 226 London Business School, 73, 253, 256 Long-term evolution (LTE), 235 Lowell, 232 M MacArthur's intelligence officer, 327 Macintosh, 8 Mainframe computers, 118 Mainframe-like applications, 59 Marriott's Great America, 35 McDade, 327 McGraw-Hill Education, 133, 147, 150 Mead, Margaret, 221 Mendel, 311 Microcomputers, 18 Microsoft Corporation, 5, 11, 33, 36, 38, 41, 44, 46, 50, 156, 217, 223, 236, 250, 293 Microsoft Higher Education Advisory Group, 113 Microsoft's operational enterprise risk management, 33 Middlesex University, 189 Miller, Joan Apple products, 295 authority and accuracy, 292 award-winning ICT programs and services, 277 back locked-down information, 289 big-scale text issues, 294 big-time computing, 279 BlackBerry, 296 business management training, 281 business skills, 281 central government, 283 cognitive surplus, 291 community care project, 278 community development programs, 277, 278 computers, constituency office, 294 confidential information, 284 data management, 281 decision making, 286 democratic process, 288 economics degree, 278 e-government, 282, 285 electronic communication, 289 electronic-enabled public voice, 286 electronic information, 288 electronic media, 286 electronic records, 280, 284 electronic services, 294 e-mail, 289, 290, 295 forgiving technology, 296 front-office service, 282, 283 Google, 292 Google's cloud service, 290 Government 2, 287 Health and Social Care, 284 House business, 294 House of Lords, 288 ICT strategy, 289, 290 information management, 278 insurance company, 278 Internet information, 285 iPad, 288, 289, 296 IT data management, 279 management principle, 280 local government, 283 mainframe environment, 289 member-led activity, 287 messages, 289 Microsoft, 293 Microsoft's cloud service, 290 mobile electronic information, 284 mobile technology, 289 national organization, 284 network perimeters, 290 official government information, 285 on-the-job training, 281 organizational planning, 278 Parliamentary ICT, 277 project management, 279 public sector, 282 public transportation, 285 quango-type organizations, 283 representational democracy, 286 security, 290, 291 social care organization, 279 social care services, Essex, 278 social care systems, 284 social networking, 285 sovereignty, 291 sustainability and growth, 293 technical language, 294 technology skills, 281 transactional services, 285 transferability, 291 Web-based services, 285 Wikipedia, 291, 292 X-factor, 286 Minds for Sale, 20 Mitchell & Co, 333 MIT Media Labs, 149 Mobile computing, 62 Mobile technology, 234 Mooney, Mark, 133 artificial intelligence, 134 back-office legacy, 136 balancing standpoint, 145 BBC, 140 Bermuda Triangle, 135 BlackBerry shop, 142 Bureau of National Standards, 136 business model, 140 career spectrum, 144 cloud computing, 148 competitive intelligence and knowledge, 143 Connect, 141 customer-facing and product development, 135 customer-facing product space, 137 customer space and product development, 136 digital products development, 144 digital space and product, 146 educational and reference content, 139 educational products, 141 entrepreneur, 150 General Electric, 134 GradeGuru, 140 handheld devices, 142 hard-core technical standpoint, 146 hardware servers, 142 Houghton Mifflin, 134, 136 HTML, 138 industrial-strength product, 141 intellectual content, 148 Internet, 148 iPad, 138, 139, 142 iPhone, 142, 143 iTunes, 138 Klein, Joel, 147 learning management systems, 137 long-term production system, 141 Marine Corps, 134 McGraw-Hill Education, 133, 147 media development, 144 media space, 138, 142 mobile computing, 139 MOUSE, 150 online technology, 138 open-source capabilities, 142 Oracle quota-management system, 143 people's roles and responsibilities, 137 Phoenix, 149 product development, 149 publishing companies, 142 publishing systems, 137 Reed Elsevier, 133, 136 Salesforce.com, 144, 149 scalability testing, 145 senior business leaders, 146 social network, 148 soft discipline guidelines, 141 solar energy, 149 Strassmann, Paul, 135 technical skill set, 143, 144 testing systems integration, 145 The Shallows, 139 transactional systems, 142 trust and integrity, 145 TTS, QuickPro, and ACL, 144 Vivendi Universal, 134 War and Peace today, 139 Moore's law, 242 Morgan Stanley, 2, 3, 16 N NASA, 309, 333, 334 National Institute of Standards and Technology (NIST), 173 Naval Postgraduate School, 134 Netscape, 175 New Brunswick model, 282 News Corp., 147 New York Stock Exchange (NYSE), 87, 116, 223, 278 New York Times, 53 North American universities, 228 NSA/CIA software, 134 Nynex Mobile, 233 O Oil exploration office, 17 Open-source phone operating system, 20 Outlook, 15 P Pacer Software, 135 Paradigm shifts, 218, 220 Parks and Recreation Department, 126 PDP minicomputers, 212 Peopleware, 226 Personal computing, 235 Personal digital assistant (PDA), 238 Petri dish, 44 Phoenix, 211 Plauger, Bill, 2 Q Quants, 24 R Radio Shack, 51 Reed Elsevier, 133, 136 Reed, John, 335 Rubinow, Steve, 87 AdKnowledge, Inc., 87 agile development, 110 Agile Manifesto, 110 Archipelago Holdings Inc., 87 attributes, 108 capital market community, 91 cash/actual trading business, 88 channel marketing departments, 92 cloud computing, 97 CNBC, 89 collaborative technology, 95 collective intelligence, 95 communication skills, 102, 106 conference organizations, 99 consumer marketplace, 94 data center, 90 decision making, 105, 108 economy standpoint, 100 e-mail, 100 Fidelity Investments, 105 financial services, 92 IEEE, 101 innovative impression, 94 Internet, 98 iPad, 97 iPod device, 91 labor laws, 110 listening skills, 106 logical progression, 104 Mac, 96 mainframe, 104 management and leadership, 104, 105 market data system, 89 micro-second response time, 89 mobile applications, 94 multidisciplinary approach, 103 multimedia, 97 multi-national projects, 110 multiprocessing options, 99 network operating system, 103 NYSE Euronext, 87 open outside system, 88 parallel programming models, 99 personal satisfaction, 109 PR function, 106 proclaimed workaholic, 109 real estate business, 88 regulatory and security standpoint, 96 Rolodex, 94 Rubin, Howard, 99 server department, 97 software development, 89 sophisticated technology, 101 technology business, 88 technology integration, 91 trading engines, 90 typewriter ribbon, 94 virtualization, 98 Windows 7, 96 younger generation video games, 93 visual interfaces, 93 Rumsfeld, Donald, 222 S San Diego Fire Department, 224 Santa Clara University, 36 SAS programs, 131 Scott, Tony, 10, 33, 236 Android, 43 Apple Computer, 35 architectural flaw, 44 BASIC and Pascal, 35 Bristol-Myers Squibb, 33 Bunch, Rick (role model), 34 business groups, 42 COO, 39 Corporate Vice President, 33 Corvus disk drive, 36 CSC, 35 Defense department, 45 dogfooding, 37, 38 games and arcades, 35 General Motors, 33 IBM's role, 37 information systems management, 36 integrity factor, 40 Internet, 44 iPhone, 43 IT lifecycle management process, 37 leadership capability, 40 leisure studies, 34 macro-architectural threats, 44 Marriott's Great America, 35 math models, 36 Microsoft Corporation, 33, 36, 38, 41, 44, 46 Microsoft's operational enterprise risk management, 33 parks and recreation, 34 Petri dish, 44 playground leader, 42 product groups, 42 quality and business excellence team, 33 Santa Clara University, 36 Senior Vice President, 33 smartphone, 43 social computing, 38 Sun Microsystems, 36 theme park industry, 35 University of Illinois, 34 University of San Francisco, 36 value-added business, 33 Walt Disney Company, 33 Senior Leadership Technology and Product Marketing, 71 Shakespeare, 30 Shirky, Clay, 220 Sierra Ventures, 191 Silicon Valley companies, 68 Silicon Valley software factories, 323 Skype, 118 Smart Grid Advisory Committee, 177 Smartphones, 20, 27, 43, 54, 217, 238 Social care computer electronic record system, 279 Social computing, 38, 320 Social networking, 51, 53, 56, 58 Society trails technology, 21 SPSS programs, 131 Sridhara, Mittu, 71 Amazon, 76 American Airlines, 72 back-end computation and presentation, 80 banking, 77 B2B and B2C, 85 business/product departments, 82 business work context, 74 buzzword, 77 career aspiration, 73 career spans, 73 coders, 72 cognitive surplus, 79 competitive differentiation, 74 computing power, 78 contribution and energy, 85 convergence, 75 CPU cycles, 78 cross-channel digital business, 71 cultural and geographic implementation, 72 customer experience, 84, 85 customer profile, 76 data visualization, 79, 80 DDoS protection, 81 economies of scale, 77 elements of technology, 72 encryption, 82 end customer, 83 entertainment, 75 ERP system, 72 Facebook, 84 finance and accounting, 73 foster innovation and open culture, 81 friends/mentors/role models, 74 FSA, 76 gambling acts, 81 games, 79 gaming machines, 80 GDS, 72 global organization, 71 Google, 75, 84, 85 Group CIO, Ladbrokes PLC, 71 industry-standard technologies, 77 integrity and competence, 83 IT, 74, 82 KickOff app, 71 land-based casinos, 79 live streaming, 78 London Business School, 73 mobile computing, 78 multimedia, 84 new generation, 84 on-the-job training, 73 open-source computing, 79 opportunity, 80, 83 PCA-compliant, 81 personalization, 76 real-time systems, 74 re-evaluation, 81 reliability and availability, 77 security threats, 80 smart mobile device, 75 technology-intense customer, 85 top-line revenue, 74 trader apps, 82 true context, 73 underpinning business process, 76 virtualization, 78 Visa/MasterCard transactions, 78 Web 3.0 business, 76 web-emerging web channel, 76 Wikipedia, 79, 85 Word documents and e-mail, 82 work-life balance, 84 young body with high miles, 72 Zuckerberg, Mark, 73 Stead, Jerry, 214 Storefront engineering, 212 Strassmann, Paul, 228, 309 agile development, 340 Amazon EC2, 314 America information processors, 322 Annapolis, 340 AT&T, 332 backstabbing culture, 339 BlackBerry, 317 block houses, 319 CFO/CEO position, 337 CIM program, 309 Citibank, 337 Citicorp, 313, 339 cloud computing, 310, 311, 313 coding infrastructure, 341 communication infrastructure, 341 corporate information management, 329 Corporate Information Officer, 309 counterintelligence, 320 cyber-operations, 338 Dell server, 314 Department of Defense, 329, 332 Director of Defense Information, 309 employee-owned technology, 316 enterprise architecture, 316 exfiltration, 313 financial organizations, 320 firewalls and antiviruses, 312 General Foods, 309, 326–328 General Motors, 321, 329, 332 George Mason School of Information Technology, 309 Google apps, 314 government-supported activities, 326 Harvard Business School, 331 HR-related issues, 331 IBM manpower, 311 infiltration, 313 Internet, 316, 322 interoperability, 315, 317, 341 Kraft Foods Inc, 309 MacArthur's intelligence officer, 327 Machiavellian view, 327 mash-up, 316 military service, 331 NASA, 309, 333, 334 police department, economics, 312 powerpoint slides, 324 Radio Shack, 319 senior executive position, 334 service-oriented architecture, 316 Silicon Valley software factories, 323 social computing, 320 Strassmann's concentration camp, 318 structured methodologies, 342 U.S.


pages: 855 words: 178,507

The Information: A History, a Theory, a Flood by James Gleick

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Ada Lovelace, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, AltaVista, bank run, bioinformatics, Brownian motion, butterfly effect, citation needed, Claude Shannon: information theory, clockwork universe, computer age, conceptual framework, crowdsourcing, death of newspapers, discovery of DNA, Donald Knuth, double helix, Douglas Hofstadter, en.wikipedia.org, Eratosthenes, Fellow of the Royal Society, Gödel, Escher, Bach, Henri Poincaré, Honoré de Balzac, index card, informal economy, information retrieval, invention of the printing press, invention of writing, Isaac Newton, Jacquard loom, Jacquard loom, Jaron Lanier, jimmy wales, John von Neumann, Joseph-Marie Jacquard, lifelogging, Louis Daguerre, Marshall McLuhan, Menlo Park, microbiome, Milgram experiment, Network effects, New Journalism, Norbert Wiener, On the Economy of Machinery and Manufactures, PageRank, pattern recognition, phenotype, Pierre-Simon Laplace, pre–internet, Ralph Waldo Emerson, RAND corporation, reversible computing, Richard Feynman, Richard Feynman, Rubik’s Cube, Simon Singh, Socratic dialogue, Stephen Hawking, Steven Pinker, stochastic process, talking drums, the High Line, The Wisdom of Crowds, transcontinental railway, Turing machine, Turing test, women in the workforce

♦ “THIS PROCESS OF CONQUEST AND INFLUENCE”: Julian Jaynes, The Origin of Consciousness in the Breakdown of the Bicameral Mind, 198. ♦ TO FORM LARGE NUMBERS, THE BABYLONIANS: Donald E. Knuth, “Ancient Babylonian Algorithms,” Communications of the Association for Computing Machinery 15, no. 7 (1972): 671–77. ♦ “IT WAS ASSUMED THAT THE BABYLONIANS”: Asger Aaboe, Episodes from the Early History of Mathematics (New York: L. W. Singer, 1963), 5. ♦ “OUR TASK CAN THEREFORE PROPERLY BE COMPARED”: Otto Neugebauer, The Exact Sciences in Antiquity, 2nd ed. (Providence, R.I.: Brown University Press, 1957), 30 and 40–46. ♦ “A CISTERN. THE HEIGHT IS 3,20”: Donald E. Knuth, “Ancient Babylonian Algorithms,” 672. ♦ “FUNDAMENTALLY LETTERS ARE SHAPES”: John of Salisbury, Metalogicon, I:13, quoted and translated by M. T. Clanchy, From Memory to Written Record, England, 1066-1307 (Cambridge, Mass.: Harvard University Press, 1979), 202

To demonstrate this, Otto Neugebauer, the leading twentieth-century historian of ancient mathematics, had to reassemble tablets whose fragments had made their way to opposite sides of the Atlantic Ocean. In 1949, when the number of cuneiform tablets housed in museums reached (at his rough guess) a half million, Neugebauer lamented, “Our task can therefore properly be compared with restoring the history of mathematics from a few torn pages which have accidentally survived the destruction of a great library.”♦ In 1972, Donald Knuth, an early computer scientist at Stanford, looked at the remains of an Old Babylonian tablet the size of a paperback book, half lying in the British Museum in London, one-fourth in the Staatliche Museen in Berlin, and the rest missing, and saw what he could only describe, anachronistically, as an algorithm: A cistern. The height is 3,20, and a volume of 27,46,40 has been excavated. The length exceeds the width by 50.

Out of Control: The Rise of Neo-Biological Civilization. Reading, Mass.: Addison-Wesley, 1994. Kendall, David G. “Andrei Nikolaevich Kolmogorov. 25 April 1903–20 October 1987.” Biographical Memoirs of Fellows of the Royal Society 37 (1991): 301–19. Keynes, John Maynard. A Treatise on Probability. London: Macmillan, 1921. Kneale, William. “Boole and the Revival of Logic.” Mind 57, no. 226 (1948): 149–75. Knuth, Donald E. “Ancient Babylonian Algorithms.” Communications of the Association for Computing Machinery 15, no. 7 (1972): 671–77. Kolmogorov, A. N. “Combinatorial Foundations of Information Theory and the Calculus of Probabilities.” Russian Mathematical Surveys 38, no. 4 (1983): 29–43. ———. Selected Works of A. N. Kolmogorov. Vol. 3, Information Theory and the Theory of Algorithms. Translated by A.


pages: 894 words: 190,485

Write Great Code, Volume 1 by Randall Hyde

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

AltaVista, business process, Donald Knuth, John von Neumann, locality of reference, Von Neumann architecture, Y2K

In theory, arithmetic is quite easy; you use the same algorithms to add, subtract, multiply, and divide fractional values that you learned in grade school when dealing with fractions. The only problem is that certain operations may produce really large numerators or denominators (to the point where you get integer overflow in these values). Other than this problem, however, you can represent a wide range of fractional values using this scheme. 2.13 For More Information Donald Knuth’s The Art of Computer Programming, Volume Two: Seminumerical Algorithms is probably the seminal text on number systems and arithmetic. For more information on binary, decimal, fixed-point, rational, and floating-point arithmetic, you’ll want to take a look at that text. * * * [1] The “..” notation, taken from Pascal and other programming languages, denotes a range of values. For example, “a..z” denotes all the lowercase alphabetic characters between a and z

Inserting ThirdField into the Social Security packed type Here’s the C/C++ code that accomplishes the operation shown in Figure 3-10: packedValue = (packedValue & 0xFFc000FF) | (ThirdField << 8 ); You’ll note that $FFC000FF is the hexadecimal value that corresponds to all zeros in bit positions 8 through 21 and ones everywhere else. 3.8 For More Information My book, The Art of Assembly Language, provides additional information on bit processing, including several algorithms for counting bits, reversing the bits in an object, merging two bit strings, coalescing sets of bits, and spreading bits out across some value. Please see that text for more details on these low-level bit operations. Donald Knuth’s The Art of Computer Programming, Volume Two: Seminumerical Algorithms provides a discussion of various arithmetic operations (addition, subtraction, multiplication, and division) that you may find of interest. * * * [6] It’s also possible to set all the uninteresting bits to ones via the OR operation, but the AND operator is often more convenient. [7] Actually, they could count down to zero as well, but usually they count up

. // Okay, assemble the final real32 value: shr( 8, eax ); // Move mantissa into bits 0..23. and( $7f_ffff, eax ); // Clear the implied bit. or( ecx, eax ); // Merge mantissa & exponent into EAX. or( ebx, eax ); // Merge in the sign. Whew! This has been a lot of code. However, it’s worthwhile to go through all this just to see how floating-point operations work (so you can gain an appreciation of exactly what an FPU is doing for you). 4.8 For More Information Donald Knuth’s The Art of Computer Programming, Volume Two: Seminumerical Algorithms, provides an in-depth discussion of floating-point arithmetic and floating-point formats. This book is required reading for someone who wants to fully understand how floating-point arithmetic operates. Also, Intel’s documentation on its Pentium processors explains its floating-point formats, exceptional conditions, and other issues related to the use of its FPU.


pages: 893 words: 199,542

Structure and interpretation of computer programs by Harold Abelson, Gerald Jay Sussman, Julie Sussman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Andrew Wiles, conceptual framework, Donald Knuth, Douglas Hofstadter, Eratosthenes, Fermat's Last Theorem, Gödel, Escher, Bach, industrial robot, information retrieval, iterative process, loose coupling, probability theory / Blaise Pascal / Pierre de Fermat, Richard Stallman, Turing machine

New York: Prentice-Hall. Kohlbecker, Eugene Edmund, Jr. 1986. Syntactic extensions in the programming language Lisp. Ph.D. thesis, Indiana University. Konopasek, Milos, and Sundaresan Jayaraman. 1984. The TK!Solver Book: A Guide to Problem-Solving in Science, Engineering, Business, and Education. Berkeley, CA: Osborne/McGraw-Hill. Knuth, Donald E. 1973. Fundamental Algorithms. Volume 1 of The Art of Computer Programming. 2nd edition. Reading, MA: Addison-Wesley. Knuth, Donald E. 1981. Seminumerical Algorithms. Volume 2 of The Art of Computer Programming. 2nd edition. Reading, MA: Addison-Wesley. Kowalski, Robert. 1973. Predicate logic as a programming language. Technical report 70, Department of Computational Logic, School of Artificial Intelligence, University of Edinburgh. Kowalski, Robert. 1979.

List of Exercises 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 1.44 1.45 1.46 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 2.35 2.36 2.37 2.38 2.39 2.40 2.41 2.42 2.43 2.44 2.45 2.46 2.47 2.48 2.49 2.50 2.51 2.52 2.53 2.54 2.55 2.56 2.57 2.58 2.59 2.60 2.61 2.62 2.63 2.64 2.65 2.66 2.67 2.68 2.69 2.70 2.71 2.72 2.73 2.74 2.75 2.76 2.77 2.78 2.79 2.80 2.81 2.82 2.83 2.84 2.85 2.86 2.87 2.88 2.89 2.90 2.91 2.92 2.93 2.94 2.95 2.96 2.97 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36 3.37 3.38 3.39 3.40 3.41 3.42 3.43 3.44 3.45 3.46 3.47 3.48 3.49 3.50 3.51 3.52 3.53 3.54 3.55 3.56 3.57 3.58 3.59 3.60 3.61 3.62 3.63 3.64 3.65 3.66 3.67 3.68 3.69 3.70 3.71 3.72 3.73 3.74 3.75 3.76 3.77 3.78 3.79 3.80 3.81 3.82 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 4.32 4.33 4.34 4.35 4.36 4.37 4.38 4.39 4.40 4.41 4.42 4.43 4.44 4.45 4.46 4.47 4.48 4.49 4.50 4.51 4.52 4.53 4.54 4.55 4.56 4.57 4.58 4.59 4.60 4.61 4.62 4.63 4.64 4.65 4.66 4.67 4.68 4.69 4.70 4.71 4.72 4.73 4.74 4.75 4.76 4.77 4.78 4.79 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39 5.40 5.41 5.42 5.43 5.44 5.45 5.46 5.47 5.48 5.49 5.50 5.51 5.52 Index Any inaccuracies in this index may be explained by the fact that it has been prepared with the help of a computer. Donald E. Knuth, Fundamental Algorithms (Volume 1 of The Art of Computer Programming) ! in names " (double quote) λ calculus, see lambda calculus ⟼ notation for mathematical function π , see pi Σ (sigma) notation θ, see theta ' (single quote) read and, [2] * (primitive multiplication procedure) + (primitive addition procedure) , (comma, used with backquote) - (primitive subtraction procedure) as negation / (primitive division procedure) < (primitive numeric comparison predicate) = (primitive numeric equality predicate) =number?

., [2] read-eval-print loop intersection-set binary-tree representation ordered-list representation unordered-list representation interval arithmetic invariant quantity of an iterative process inverter inverter iteration contructs, see looping constructs iterative improvement iterative process as a stream process design of algorithm implemented by procedure call, [2], [3], see also tail recursion linear, [2] recursive process vs., [2], [3], [4] register machine for Jayaraman, Sundaresan Kaldewaij, Anne Karr, Alphonse Kepler, Johannes key key of a record in a data base in a table testing equality of Khayyam, Omar Knuth, Donald E., [2], [3], [4], [5], [6], [7] Kohlbecker, Eugene Edmund, Jr. Kolmogorov, A. N. Konopasek, Milos Kowalski, Robert KRC, [2] label (in register machine) simulating label-exp label-exp-label Lagrange interpolation formula λ calculus (lambda calculus) lambda (special form) define vs. with dotted-tail notation lambda expression as operator of combination value of lambda-body lambda-parameters lambda?


pages: 574 words: 164,509

Superintelligence: Paths, Dangers, Strategies by Nick Bostrom

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

agricultural Revolution, AI winter, Albert Einstein, algorithmic trading, anthropic principle, anti-communist, artificial general intelligence, autonomous vehicles, barriers to entry, Bayesian statistics, bioinformatics, brain emulation, cloud computing, combinatorial explosion, computer vision, cosmological constant, dark matter, DARPA: Urban Challenge, data acquisition, delayed gratification, demographic transition, Donald Knuth, Douglas Hofstadter, Drosophila, Elon Musk, en.wikipedia.org, endogenous growth, epigenetics, fear of failure, Flash crash, Flynn Effect, friendly AI, Gödel, Escher, Bach, income inequality, industrial robot, informal economy, information retrieval, interchangeable parts, iterative process, job automation, John Markoff, John von Neumann, knowledge worker, Menlo Park, meta analysis, meta-analysis, mutually assured destruction, Nash equilibrium, Netflix Prize, new economy, Norbert Wiener, NP-complete, nuclear winter, optical character recognition, pattern recognition, performance metric, phenotype, prediction markets, price stability, principal–agent problem, race to the bottom, random walk, Ray Kurzweil, recommendation engine, reversible computing, social graph, speech recognition, Stanislav Petrov, statistical model, stem cell, Stephen Hawking, strong AI, superintelligent machines, supervolcano, technological singularity, technoutopianism, The Coming Technological Singularity, The Nature of the Firm, Thomas Kuhn: the structure of scientific revolutions, transaction costs, Turing machine, Vernor Vinge, Watson beat the top human players on Jeopardy!, World Values Survey, zero-sum game

It turned out to be possible to build a perfectly fine chess engine around a special-purpose algorithm.58 When implemented on the fast processors that became available towards the end of the twentieth century, it produces very strong play. But an AI built like that is narrow. It plays chess; it can do no other.59 In other domains, solutions have turned out to be more complicated than initially expected, and progress slower. The computer scientist Donald Knuth was struck that “AI has by now succeeded in doing essentially everything that requires ‘thinking’ but has failed to do most of what people and animals do ‘without thinking’—that, somehow, is much harder!”60 Analyzing visual scenes, recognizing objects, or controlling a robot’s behavior as it interacts with a natural environment has proved challenging. Nevertheless, a fair amount of progress has been made and continues to be made, aided by steady improvements in hardware.

J. 4 Gorbachev, Mikhail 86 graceful degradation 7 graphical models 11 growth 1–7, 48–55, 69–75, 83, 163, 261, 281 H Hail Mary approach 198–200, 207, 293, 294 Hanson, Robin 2, 160, 261, 270, 271, 287 hardware overhang 73, 240–243, 274, 289, 301, 302 hedonism 140, 210 hedonium 140, 219 Helsinki Declaration 188 heuristic search 6 Hill, Benny 105 hippocampus 47 HLMI, see machine intelligence, human-level Hodgkin–Huxley model 25 human baseline 62–77, 82 human extinction, see existential risk Human Genome Project 86, 253, 276 human intelligence 5–14, 24–58, 98–99, 159–184, 242–254, 255–257 human–machine interface, see cyborg I impersonal perspective 228–246 in vitro fertilization, see embryo selection incentive methods 131–143 cryptographic reward tokens 133 social integration 131–132, 156–158, 159, 202, 283 indirect normativity 141–150, 209–227, 262, 298 indirect reach 58 inductive bias 9–10 Industrial Revolution 2, 80, 161–163 infrastructure profusion 123–125, 153, 187, 226, 282 institution design 202–208 instrumental convergence thesis 105–116 intelligence explosion 2–5, 22–51, 62–77, 78–90, 95–104, 108, 115–126, 127–128, 136, 151, 160, 165, 178, 198, 205, 227, 228–254, 256–260, 274, 276, 282, 284, 289, 300, 301–302 Internet 16, 45–49, 67–77, 85, 94–98, 130, 146, 241, 271 inventory control systems 16 IVF, see embryo selection J Jeopardy!13 K Kasparov, Garry 12 Kepler, Johannes 14 Knuth, Donald 14, 264 Kurzweil, Ray 2, 261, 269 L Lenat, Douglas 12, 263 Logic Theorist (system) 6 logicist paradigm, see Good Old-Fashioned Artificial Intelligence (GOFAI) Logistello 12 M machine intelligence; see also artificial intelligence human-level (HLMI) 4, 19–21, 27–35, 73–74, 207, 243, 264, 267 revolution, see intelligence explosion machine learning 8–18, 28, 121, 152, 188, 274, 290 machine translation 15 macro-structural development accelerator 233–235 malignant failure 123–126, 149, 196 Malthusian condition 163–165, 252 Manhattan Project 75, 80–87, 276 McCarthy, John 5–18 McCulloch–Pitts neuron 237 MegaEarth 56 memory capacity 7–9, 60, 71 memory sharing 61 Mill, John Stuart 210 mind crime 125–126, 153, 201–208, 213, 226, 297 Minsky, Marvin 18, 261, 262, 282 Monte Carlo method 9–13 Moore’s law 24–25, 73–77, 274, 286; see also computing power moral growth 214 moral permissibility (MP)218–220, 297 moral rightness (MR)217–220.296, 297 moral status 125–126, 166–169, 173, 202–205, 268, 288, 296 Moravec, Hans 24, 265, 288 motivation selection 29, 127–129, 138–144, 147, 158, 168, 180–191, 222 definition 138 motivational scaffolding 191, 207 multipolar scenarios 90, 132, 159–184, 243–254, 301 mutational load 41 N nanotechnology 53, 94–98, 103, 113, 177, 231, 239, 276, 277, 299, 300 natural language 14 neural networks 5–9, 28, 46, 173, 237, 262, 274 neurocomputational modeling 25–30, 35, 61, 301; see also whole brain emulation (WBE) and neuromorphic AI neuromorphic AI 28, 34, 47, 237–245, 267, 300, 301 Newton, Isaac 56 Nilsson, Nils 18–20, 264 nootropics 36–44, 66–67, 201, 267 Norvig, Peter 19, 264, 282 O observation selection theory, see anthropics Oliphant, Mark 85 O’Neill, Gerard 101 ontological crisis 146, 197 optimality notions 10, 186, 194, 291–293 Bayesian agent 9–11 value learner (AI-VL) 194 observation-utility-maximizer (AI-OUM) 194 reinforcement learner (AI-RL) 194 optimization power 24, 62–75, 83, 92–96, 227, 274 definition 65 oracle AI 141–158, 222–226, 285, 286 definition 146 orthogonality thesis 105–109, 115, 279, 280 P paperclip AI 107–108, 123–125, 132–135, 153, 212, 243 Parfit, Derek 279 Pascal’s mugging 223, 298 Pascal’s wager 223 person-affecting perspective 228, 245–246, 301 perverse instantiation 120–124, 153, 190–196 poker 13 principal–agent problem 127–128, 184 Principle of Epistemic Deference 211, 221 Proverb (program) 12 Q qualia, see consciousness quality superintelligence 51–58, 72, 243, 272 definition 56 R race dynamic, see technology race rate of growth, see growth ratification 222–225 Rawls, John 150 Reagan, Ronald 86–87 reasons-based goal 220 recalcitrance 62–77, 92, 241, 274 definition 65 recursive self-improvement 29, 75, 96, 142, 259; see also seed AI reinforcement learning 12, 28, 188–189, 194–196, 207, 237, 277, 282, 290 resource acquisition 113–116, 123, 193 reward signal 71, 121–122, 188, 194, 207 Riemann hypothesis catastrophe 123, 141 robotics 9–19, 94–97, 117–118, 139, 238, 276, 290 Roosevelt, Franklin D.85 RSA encryption scheme 80 Russell, Bertrand 6, 87, 139, 277 S Samuel, Arthur 12 Sandberg, Anders 265, 267, 272, 274 scanning, see whole brain emulation (WBE) Schaeffer, Jonathan 12 scheduling 15 Schelling point 147, 183, 296 Scrabble 13 second transition 176–178, 238, 243–245, 252 second-guessing (arguments) 238–239 seed AI 23–29, 36, 75, 83, 92–96, 107, 116–120, 142, 151, 189–198, 201–217, 224–225, 240–241, 266, 274, 275, 282 self-limiting goal 123 Shakey (robot) 6 SHRDLU (program) 6 Shulman, Carl 178–180, 265, 287, 300, 302, 304 simulation hypothesis 134–135, 143, 278, 288, 292 singleton 78–90, 95–104, 112–114, 115–126, 136, 159, 176–184, 242, 275, 276, 279, 281, 287, 299, 301, 303 definition 78, 100 singularity 1, 2, 49, 75, 261, 274; see also intelligence explosion social signaling 110 somatic gene therapy 42 sovereign AI 148–158, 187, 226, 285 speech recognition 15–16, 46 speed superintelligence 52–58, 75, 270, 271 definition 53 Strategic Defense Initiative (“Star Wars”) 86 strong AI 18 stunting 135–137, 143 sub-symbolic processing, see connectionism superintelligence; see also collective superintelligence, quality superintelligence and speed superintelligence definition 22, 52 forms 52, 59 paths to 22, 50 predicting the behavior of 108, 155, 302 superorganisms 178–180 superpowers 52–56, 80, 86–87, 91–104, 119, 133, 148, 277, 279, 296 types 94 surveillance 15, 49, 64, 82–85, 94, 117, 132, 181, 232, 253, 276, 294, 299 Szilárd, Leó 85 T TD-Gammon 12 Technological Completion Conjecture 112–113, 229 technology race 80–82, 86–90 203–205, 231, 246–252, 302 teleological threads 110 Tesauro, Gerry 12 TextRunner (system) 71 theorem prover 15, 266 three laws of robotics 139, 284 Thrun, Sebastian 19 tool-AI 151–158 definition 151 treacherous turn 116–119, 128 Tribolium castaneum 154 tripwires 137–143 Truman, Harry 85 Turing, Alan 4, 23, 29, 44, 225, 265, 271, 272 U unemployment 65, 159–180, 287 United Nations 87–89, 252–253 universal accelerator 233 unmanned vehicle, see drone uploading, see whole brain emulation (WBE) utility function 10–11, 88, 100, 110, 119, 124–125, 133–134, 172, 185–187, 192–208, 290, 292, 293, 303 V value learning 191–198, 208, 293 value-accretion 189–190, 207 value-loading 185–208, 293, 294 veil of ignorance 150, 156, 253, 285 Vinge, Vernor 2, 49, 270 virtual reality 30, 31, 53, 113, 166, 171, 198, 204, 300 von Neumann probe 100–101, 113 von Neumann, John 44, 87, 114, 261, 277, 281 W wages 65, 69, 160–169 Watson (IBM) 13, 71 WBE, see whole brain emulation (WBE) Whitehead, Alfred N.6 whole brain emulation (WBE) 28–36, 50, 60, 68–73, 77, 84–85, 108, 172, 198, 201–202, 236–245, 252, 266, 267, 274, 299, 300, 301 Wigner, Eugene 85 windfall clause 254, 303 Winston, Patrick 18 wire-heading 122–123, 133, 189, 194, 207, 282, 291 wise-singleton sustainability threshold 100–104, 279 world economy 2–3, 63, 74, 83, 159–184, 274, 277, 285 Y Yudkowsky, Eliezer 70, 92, 98, 106, 197, 211–216, 266, 273, 282, 286, 291, 299


pages: 511 words: 111,423

Learning SPARQL by Bob Ducharme

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, en.wikipedia.org, G4S, hypertext link, linked data, place-making, semantic web, SPARQL, web application

p "two"^^mt:potrzebies . } It’s an interesting case because it has the ^^ in it to indicate that the value has a specific type, but it’s not an xsd type. RDF lets you define custom datatypes for your own needs, and as this query demonstrates, SPARQL lets you query for them. (We’ll learn how to query for d:item2d, which has the @en tag to show that it’s in English, in Checking, Adding, and Removing Spoken Language Tags.) Note The Potrzebie System of Weights and Measures was developed by noted computer scientist Donald Knuth. He published it as a teenager in Mad Magazine in 1957, so it is not considered normative. A single potrzebie is the thickness of Mad magazine issue number 26. The use of non-XSD types in RDF is currently most common in data using the SKOS standard for controlled vocabularies. In SKOS, the skos:notation property names an identifier for a concept that is often a legacy value from a different thesaurus expressed as a cryptic numeric sequence (for example, “920” to represent biographies in the library world’s Dewey Decimal System), unlike the concept’s skos:prefLabel property that provides a more human-readable name.

., Adding Data to a Dataset integer datatype, Datatypes and Queries IRI, Glossary IRI(), Node Type Conversion Functions, Solution isBlank(), Node Type and Datatype Checking Functions isIRI(), Node Type and Datatype Checking Functions isLiteral(), Node Type and Datatype Checking Functions isNumeric(), Node Type and Datatype Checking Functions isURI(), FILTERing Data Based on Conditions, Node Type and Datatype Checking Functions J Java, SPARQL and Web Application Development JavaScript, SPARQL Query Results JSON Format, SPARQL and Web Application Development Jena, Defining Rules with SPARQL, Getting Started with Fuseki, Getting Started with Fuseki, Standalone Processors join (SPARQL equivalent), Searching Further in the Data JSON, The SPARQL Specifications, SPARQL and Web Application Development ARQ and, Working with SPARQL Query Result Formats, Standalone Processors defined, SPARQL Query Results JSON Format query results, SPARQL Query Results JSON Format results from a SPARQL engine, SPARQL Query Results JSON Format K Knuth, Donald, Datatypes and Queries L lang(), Checking, Adding, and Removing Spoken Language Tags langMatches() vs., Checking, Adding, and Removing Spoken Language Tags langMatches(), Checking, Adding, and Removing Spoken Language Tags language codes, Making RDF More Readable with Language Tags and Labels, Checking, Adding, and Removing Spoken Language Tags–Checking, Adding, and Removing Spoken Language Tags adding, Checking, Adding, and Removing Spoken Language Tags checking, Checking, Adding, and Removing Spoken Language Tags filtering on, Using the Labels Provided by DBpedia removing, Checking, Adding, and Removing Spoken Language Tags LCASE(), String Functions, Discussion LIMIT, Retrieving a Specific Number of Results, Federated Queries: Searching Multiple Datasets with One Query Linked Data, What Exactly Is the “Semantic Web”?


pages: 792 words: 48,468

Tcl/Tk, Second Edition: A Developer's Guide by Clif Flynt

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, hypertext link, revision control, Silicon Valley, web application

The kitchen in an automated restaurant might receive orders as patrons select items from a menu via a format such as the following: {{Table 2} {{Table {{Table {{Table {{Table {{Table {{Table {burger} {ketchup mustard}} 3} {drink} {medium}} 2} {fries} {large}} 1} {BLT} {no mayo}} 3} {Complete} {} } 1} {drink} {small}} 1} {Complete} {} } Write a script that will accept data in a format such as this, collecting the items ordered at a table and reporting a table’s order when the Complete message is received. After reporting an order, it should be ready to start assembling a new order for that table. 301. Write a script that will accept multiple lines in the form “author, title, and so on.” Clif Flynt, Tcl/Tk: A Developer’s Guide Richard Stevens, TCP/IP Illustrated Donald Knuth, The Art of Computer Programming: Vol 1 Donald Knuth, The Art of Computer Programming: Vol 2 Donald Knuth, The Art of Computer Programming: Vol 3 John Ousterhout, Tcl and the Tk Toolkit Richard Stevens, Unix Network Programming Place this data in an associative array that would allow you to get lists of books by an author. 177 178 Chapter 6 Building Complex Data Structures with Lists and Arrays 302. A tree data structure can be implemented as nested lists.


pages: 828 words: 205,338

Write Great Code, Volume 2 by Randall Hyde

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

complexity theory, Donald Knuth, locality of reference, NP-complete, premature optimization

But unfortunately, if no thought is put into the performance of the application until the optimization phase, it’s unlikely that optimization will prove practical. The time to ensure that an application has reasonable performance characteristics is at the beginning, during the design and implementation phases. Optimization can fine-tune the performance of a system, but it can rarely deliver a miracle. Although the quote is often attributed to Donald Knuth, who popularized it, it was Tony Hoare who originally said, “Premature optimization is the root of all evil.” This statement has long been the rallying cry of software engineers who avoid any thought of application performance until the very end of the software-development cycle—at which point the optimization phase is typically ignored for economic or time-to-market reasons. However, Hoare did not say, “Concern about application performance during the early stages of an application’s development is the root of all evil.”

The Art of Assembly Language (No Starch Press, 2003) is a good place to begin that journey. Higher-level data structure information is available in just about any decent college textbook on data structures and algorithm design. There are, literally, hundreds of these books available covering a wide range of subjects. For those interested in a combination of low-level and high-level concepts, a good choice is Donald Knuth’s The Art of Computer Programming, Volume 1 (Third Edition, Addison-Wesley Professional, 1997) This text is available in almost every bookstore that carries technical books. As noted in the previous chapter, textbooks on programming language design and compiler design and implementation are good sources of information about the low-level implementation of data types, including composite data types.

The Art of Assembly Language (No Starch Press, 2003) is a good place to begin that journey. If you want to learn high-level implementations, you can find a wealth of information. Higher-level data structure information is available in just about any decent college textbook on data structures and algorithm design. There are, literally, hundreds of these books available covering a wide range of subjects. If you are interested in a combination of low-level and high-level concepts, Donald Knuth’s The Art of Computer Programming, Volume I (Addison-Wesley Professional, 1997) is a good choice. This text is available in nearly every bookstore that carries technical books. As noted in the previous chapter, textbooks on programming language design and compiler design and implementation are another good source of information about the low-level implementation of data types, including composite data types such as records, unions, and classes.


pages: 230

Purely Functional Data Structures by Chris Okasaki

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, reversible computing, Turing machine, type inference

(p. 118) David J. King. Functional binomial queues. In Glasgow Workshop on Functional Programming, pages 141-150, September 1994. (pp. 29, 82) Chan Meng Khoong and Hon Wai Leong. Double-ended binomial queues. In International Symposium on Algorithms and Computation, volume 762 of LNCS, pages 128-137. SpringerVerlag, December 1993. (p. 169) Donald E. Knuth. Searching and Sorting, volume 3 of The Art of Computer Programming. Addison-Wesley, 1973. (pp. 18, 29) Donald E. Knuth. Seminumerical Algorithms, volume 2 of The Art of Computer Programming. Addison-Wesley, 1973. (p. 116) Haim Kaplan and Robert E. Tarjan. Persistent lists with catenation via recursive slow-down. In ACM Symposium on Theory of 212 Bibliography Computing, pages 93-102, May 1995. (pp. 5,130,169,170,171, 184,212) [KT96a] Haim Kaplan and Robert E.


pages: 203 words: 14,242

Ship It!: A Practical Guide to Successful Software Projects by Jared R. Richardson, William A. Gwaltney

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

continuous integration, David Heinemeier Hansson, Donald Knuth, index card, MVC pattern, place-making, Ruby on Rails, web application

Regular expressions are the most powerful way to process text we’ve ever come across, but the “Here Be Dragons” factor is extremely high. This book handily slays the little beasties. The Mythical Man-Month by Frederick Brooks. Will realized after reading this book (the first edition, in college no less!) how much more there is to software development than simply coding up a program. The Art of Computer Programming by Donald Knuth. There are multiple volumes in this set. They are a comprehensive introduction to classical computer science. Death March: The Complete Software Developer’s Guide to Surviving “Mission Impossible” Projects by Edward Youdon. Death March projects are famous in the software industry. Understand them so you don’t get swept along by them. A PPENDIX G. S UGGESTED R EADING L IST Refactoring: Improving the Design of Existing Code by Martin Fowler.


pages: 292 words: 62,575

97 Things Every Programmer Should Know by Kevlin Henney

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

A Pattern Language, active measures, business intelligence, commoditize, continuous integration, crowdsourcing, database schema, deliberate practice, domain-specific language, don't repeat yourself, Donald Knuth, fixed income, general-purpose programming language, Grace Hopper, index card, inventory management, job satisfaction, loose coupling, Silicon Valley, sorting algorithm, The Wisdom of Crowds

A good programmer should also know when to use an abominable algorithm. For example, if the problem domain dictates that there can never be more than five items (like the number of dice in a Yahtzee game), you know that you always have to sort at most five items. In that case, bubble sort might actually be the most efficient way to sort the items. Every dog has its day. So, read some good books—and make sure you understand them. And if you really read Donald Knuth's The Art of Computer Programming (Addison-Wesley Professional), well, you might even be lucky: find a mistake by the author, and you'll earn one of Don Knuth's hexadecimal dollar ($2.56) checks. Chapter 90. Verbose Logging Will Disturb Your Sleep Johannes Brodwall WHEN I ENCOUNTER A SYSTEM that has already been in development or production for a while, the first sign of real trouble is always a dirty log.


pages: 1,387 words: 202,295

Structure and Interpretation of Computer Programs, Second Edition by Harold Abelson, Gerald Jay Sussman, Julie Sussman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Andrew Wiles, conceptual framework, Donald Knuth, Douglas Hofstadter, Eratosthenes, Gödel, Escher, Bach, industrial robot, information retrieval, iterative process, loose coupling, probability theory / Blaise Pascal / Pierre de Fermat, Richard Stallman, Turing machine, wikimedia commons

Ingerman, Peter, Edgar Irons, Kirk Sattley, and Wallace Feurzeig; assisted by M. Lind, Herbert Kanner, and Robert Floyd. 1960. THUNKS: A way of compiling procedure statements, with some comments on procedure declarations. Unpublished manuscript. (Also, private communication from Wallace Feurzeig.) Kaldewaij, Anne. 1990. Programming: The Derivation of Algorithms. New York: Prentice-Hall. Knuth, Donald E. 1973. Fundamental Algorithms. Volume 1 of The Art of Computer Programming. 2nd edition. Reading, MA: Addison-Wesley. Knuth, Donald E. 1981. Seminumerical Algorithms. Volume 2 of The Art of Computer Programming. 2nd edition. Reading, MA: Addison-Wesley. Kohlbecker, Eugene Edmund, Jr. 1986. Syntactic extensions in the programming language Lisp. Ph.D. thesis, Indiana University. –› Konopasek, Milos, and Sundaresan Jayaraman. 1984. The TK!Solver Book: A Guide to Problem-Solving in Science, Engineering, Business, and Education.

Next: Exercises, Prev: 5.5, Up: Top [Contents] Next: Figures, Prev: References, Up: Top [Contents] List of Exercises Chapter 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 1.44 1.45 1.46 Chapter 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 2.35 2.36 2.37 2.38 2.39 2.40 2.41 2.42 2.43 2.44 2.45 2.46 2.47 2.48 2.49 2.50 2.51 2.52 2.53 2.54 2.55 2.56 2.57 2.58 2.59 2.60 2.61 2.62 2.63 2.64 2.65 2.66 2.67 2.68 2.69 2.70 2.71 2.72 2.73 2.74 2.75 2.76 2.77 2.78 2.79 2.80 2.81 2.82 2.83 2.84 2.85 2.86 2.87 2.88 2.89 2.90 2.91 2.92 2.93 2.94 2.95 2.96 2.97 Chapter 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36 3.37 3.38 3.39 3.40 3.41 3.42 3.43 3.44 3.45 3.46 3.47 3.48 3.49 3.50 3.51 3.52 3.53 3.54 3.55 3.56 3.57 3.58 3.59 3.60 3.61 3.62 3.63 3.64 3.65 3.66 3.67 3.68 3.69 3.70 3.71 3.72 3.73 3.74 3.75 3.76 3.77 3.78 3.79 3.80 3.81 3.82 Chapter 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 4.32 4.33 4.34 4.35 4.36 4.37 4.38 4.39 4.40 4.41 4.42 4.43 4.44 4.45 4.46 4.47 4.48 4.49 4.50 4.51 4.52 4.53 4.54 4.55 4.56 4.57 4.58 4.59 4.60 4.61 4.62 4.63 4.64 4.65 4.66 4.67 4.68 4.69 4.70 4.71 4.72 4.73 4.74 4.75 4.76 4.77 4.78 4.79 Chapter 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39 5.40 5.41 5.42 5.43 5.44 5.45 5.46 5.47 5.48 5.49 5.50 5.51 5.52 Next: Figures, Prev: References, Up: Top [Contents] Next: Term Index, Prev: Exercises, Up: Top [Contents] List of Figures Chapter 1 1.1 1.2 1.3 1.4 1.5 Chapter 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 Chapter 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 3.29 3.30 3.31 3.32 3.33 3.34 3.35 3.36 3.37 3.38 Chapter 4 4.1 4.2 4.3 4.4 4.5 4.6 Chapter 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 Next: Term Index, Prev: Exercises, Up: Top [Contents] Next: Colophon, Prev: Figures, Up: Top [Contents] Term Index Any inaccuracies in this index may be explained by the fact that it has been prepared with the help of a computer. —Donald E. Knuth, Fundamental Algorithms (Volume 1 of The Art of Computer Programming) Jump to: A B C D E F G H I K L M N O P Q R S T U V W Z Index Entry Section A abstract models: 2.1.3 abstract syntax: 4.1.1 abstraction barriers: Chapter 2 abstraction barriers: 2.1.2 accumulator: 2.2.3 accumulator: 3.1.1 acquired: 3.4.2 action: 5.1.1 additive: 2.4.3 additively: Chapter 2 additively: 2.4 address: 5.3.1 address arithmetic: 5.3.1 agenda: 3.3.4 algebraic specification: 2.1.3 aliasing: 3.1.3 and-gate: 3.3.4 applicative-order: 4.2.1 applicative-order evaluation: 1.1.5 arbiter: 3.4.2 arguments: 1.1.1 assembler: 5.2.1 assertions: 4.4.1 assignment operator: 3.1 atomically: 3.4.2 automatic storage allocation: 5.3 average damping: 1.3.3 B B-trees: 2.3.3 backbone: 3.3.3 backquote: 5.5.2 backtracks: 4.3.1 balanced: 2.2.2 barrier synchronization: 3.4.2 base address: 5.3.1 Bertrand’s hypothesis: 3.5.2 bignum: 5.3.1 bindings: 3.2 binds: 1.1.8 binomial coefficients: 1.2.2 block structure: 1.1.8 bound variable: 1.1.8 box-and-pointer notation: 2.2 breakpoint: 5.2.4 broken heart: 5.3.2 bugs: Chapter 1 C cache-coherence: 3.4.1 call-by-name: 3.5.1 call-by-name: 4.2.2 call-by-name thunks: 3.5.1 call-by-need: 3.5.1 call-by-need: 4.2.2 call-by-need thunks: 3.5.1 capturing: 1.1.8 Carmichael numbers: 1.2.6 case analysis: 1.1.6 cell: 3.4.2 chronological backtracking: 4.3.1 Church numerals: 2.1.3 Church-Turing thesis: 4.1.5 clauses: 1.1.6 closed world assumption: 4.4.3 closure: Chapter 2 closure property: 2.2 code generator: 5.5.1 coerce: 2.5.2 coercion: 2.5.2 combinations: 1.1.1 comments: 2.2.3 compacting: 5.3.2 compilation: 5.5 compile-time environment: 5.5.6 composition: 1.3.4 compound data: Chapter 2 compound data object: Chapter 2 compound procedure: 1.1.4 computability: 4.1.5 computational process: Chapter 1 concurrently: 3.4 congruent modulo: 1.2.6 connectors: 3.3.5 consequent expression: 1.1.6 constraint networks: 3.3.5 constructors: 2.1 continuation procedures: 4.3.3 continued fraction: 1.3.3 control structure: 4.4.3 controller: 5.1 conventional interfaces: Chapter 2 conventional interfaces: 2.2.3 current time: 3.3.4 D data: Chapter 1 data: 2.1.3 data abstraction: Chapter 2 data abstraction: 2.1 data paths: 5.1 data-directed: 2.4 data-directed programming: Chapter 2 data-directed programming: 2.4.3 deadlock: 3.4.2 deadlock-recovery: 3.4.2 debug: Chapter 1 deep binding: 4.1.3 deferred operations: 1.2.1 delayed argument: 3.5.4 delayed evaluation: Chapter 3 delayed evaluation: 3.5 delayed object: 3.5.1 dense: 2.5.3 dependency-directed backtracking: 4.3.1 depth-first search: 4.3.1 deque: 3.3.2 derived expressions: 4.1.2 digital signals: 3.3.4 dispatching on type: 2.4.3 displacement number: 5.5.6 dotted-tail notation: 2.2.1 driver loop: 4.1.4 E empty list: 2.2.1 encapsulated: 3.1.1 enclosing environment: 3.2 entry points: 5.1.1 enumerator: 2.2.3 environment: 1.1.2 environment model: Chapter 3 environments: 3.2 Euclid’s Algorithm: 1.2.5 Euclidean ring: 2.5.3 evaluating: 1.1.1 evaluator: Chapter 4 event-driven simulation: 3.3.4 evlis tail recursion: 5.4.1 execution procedure: 4.1.7 explicit-control evaluator: 5.4 expression: 1.1.1 F failure continuation: 4.3.3 FIFO: 3.3.2 filter: 1.3.1 filter: 2.2.3 first-class: 1.3.4 fixed point: 1.3.3 fixed-length: 2.3.4 forcing: 4.2.2 forwarding address: 5.3.2 frame: 4.4.2 frame coordinate map: 2.2.4 frame number: 5.5.6 framed-stack: 5.4.1 frames: 3.2 free: 1.1.8 free list: 5.3.1 front: 3.3.2 full-adder: 3.3.4 function boxes: 3.3.4 functional programming: 3.1.3 functional programming languages: 3.5.5 G garbage: 5.3.2 garbage collection: 5.3 garbage collection: 5.3.2 garbage collector: 3.3.1 garbage-collected: 4.2.2 generic operations: Chapter 2 generic procedures: 2.3.4 generic procedures: 2.4 glitches: Chapter 1 global: 1.2 global: 3.2 global environment: 1.1.2 golden ratio: 1.2.2 grammar: 4.3.2 H half-adder: 3.3.4 half-interval method: 1.3.3 Halting Theorem: 4.1.5 headed list: 3.3.3 hiding principle: 3.1.1 hierarchical: 2.2 hierarchy of types: 2.5.2 higher-order procedures: 1.3 Horner’s rule: 2.2.3 I imperative programming: 3.1.3 indeterminates: 2.5.3 index: 5.3.1 indexing: 4.4.2 instantiated with: 4.4.1 instruction counting: 5.2.4 instruction execution procedure: 5.2.1 instruction sequence: 5.5.1 instruction tracing: 5.2.4 instructions: Chapter 5 instructions: 5.1.1 integerizing factor: 2.5.3 integers: 1.1 integrator: 3.5.3 interning: 5.3.1 interpreter: Chapter 1 interpreter: Chapter 4 invariant quantity: 1.2.4 inverter: 3.3.4 iterative improvement: 1.3.4 iterative process: 1.2.1 K k-term: 1.3.3 key: 2.3.3 L labels: 5.1.1 lazy evaluation: 4.2.1 lexical address: 5.5.6 lexical addressing: 4.1.3 lexical scoping: 1.1.8 linear iterative process: 1.2.1 linear recursive process: 1.2.1 linkage descriptor: 5.5.1 list: 2.2.1 list: 2.2.1 list: 2.2.1 list structure: 2.2.1 list-structured: 2.1.1 list-structured memory: 5.3 local evolution: 1.2 local state variables: 3.1 location: 5.3.1 logic-programming: Chapter 4 logical and: 3.3.4 logical deductions: 4.4.1 logical or: 3.3.4 M machine language: 5.5 macro: 4.1.2 map: 2.2.3 mark-sweep: 5.3.2 memoization: 1.2.2 Memoization: 3.3.3 memoize: 4.2.2 merge: 3.5.5 message passing: 2.1.3 message passing: 2.4.3 message-passing: 3.1.1 metacircular: 4.1 Metalinguistic abstraction: Chapter 4 Miller-Rabin test: 1.2.6 modular: Chapter 3 modulo: 1.2.6 modulo: 1.2.6 modus ponens: 4.4.3 moments in time: 3.4 Monte Carlo integration: 3.1.2 Monte Carlo simulation: 3.1.2 mutable data objects: 3.3 mutators: 3.3 mutex: 3.4.2 mutual exclusion: 3.4.2 N n-fold smoothed function: 1.3.4 native language: 5.5 needed: 5.5.1 networks: Chapter 4 Newton’s method: 1.3.4 nil: 2.2.1 non-computable: 4.1.5 non-strict: 4.2.1 nondeterministic: 3.4.1 nondeterministic choice point: 4.3.1 nondeterministic computing: Chapter 4 nondeterministic computing: 4.3 normal-order: 4.2.1 normal-order evaluation: 1.1.5 normal-order evaluation: Chapter 4 O obarray: 5.3.1 object program: 5.5 objects: Chapter 3 open-code: 5.5.5 operands: 1.1.1 operator: 1.1.1 operator: 4.1.6 or-gate: 3.3.4 order of growth: 1.2.3 ordinary: 2.5.1 output prompt: 4.1.4 P package: 2.4.3 painter: 2.2.4 pair: 2.1.1 pair: 2.1.1 parse: 4.3.2 Pascal’s triangle: 1.2.2 pattern: 4.4.1 pattern matcher: 4.4.2 pattern matching: 4.4.2 pattern variable: 4.4.1 pipelining: 3.4 pointer: 2.2 poly: 2.5.3 power series: 3.5.2 predicate: 1.1.6 predicate: 1.1.6 prefix: 2.3.4 prefix code: 2.3.4 prefix notation: 1.1.1 pretty-printing: 1.1.1 primitive constraints: 3.3.5 probabilistic algorithms: 1.2.6 procedural abstraction: 1.1.8 procedural epistemology: Preface 1e procedure: 1.2.1 procedure definitions: 1.1.4 procedures: Chapter 1 process: 1.2.1 program: Chapter 1 programming languages: Chapter 1 prompt: 4.1.4 pseudo-random: 3.1.2 pseudodivision: 2.5.3 pseudoremainder: 2.5.3 Q quasiquote: 5.5.2 queries: 4.4 query language: 4.4 queue: 3.3.2 quote: 2.3.1 R Ramanujan numbers: 3.5.3 rational functions: 2.5.3 RC circuit: 3.5.3 read-eval-print loop: 1.1.1 reader macro characters: 4.4.4.7 real numbers: 1.1 rear: 3.3.2 recursion equations: Chapter 1 Recursion theory: 4.1.5 recursive: 1.1.3 recursive: 1.1.8 recursive process: 1.2.1 red-black trees: 2.3.3 referentially transparent: 3.1.3 register machine: Chapter 5 register table: 5.2.1 registers: Chapter 5 released: 3.4.2 remainder of: 1.2.6 resolution principle: 4.4 ripple-carry adder: 3.3.4 robust: 2.2.4 RSA algorithm: 1.2.6 rules: 4.4 rules: 4.4.1 S satisfy: 4.4.1 scope: 1.1.8 selectors: 2.1 semaphore: 3.4.2 separator code: 2.3.4 sequence: 2.2.1 sequence accelerator: 3.5.3 sequences: 1.3.1 serializer: 3.4.2 serializers: 3.4.2 series RLC circuit: 3.5.4 shadow: 3.2 shared: 3.3.1 side-effect bugs: 3.1.3 sieve of Eratosthenes: 3.5.2 smoothing: 1.3.4 source language: 5.5 source program: 5.5 sparse: 2.5.3 special forms: 1.1.3 stack: 1.2.1 stack: 5.1.4 state variables: 1.2.1 state variables: 3.1 statements: 5.5.1 stop-and-copy: 5.3.2 stratified design: 2.2.4 stream processing: 1.1.5 streams: Chapter 3 streams: 3.5 streams: 3.5 strict: 4.2.1 subroutine: 5.1.3 substitution: 1.1.5 substitution model: 1.1.5 subtype: 2.5.2 success continuation: 4.3.3 summation of a series: 1.3.1 summer: 3.5.3 supertype: 2.5.2 symbolic expressions: Chapter 2 syntactic sugar: 1.1.3 syntax: 4.1 systematically search: 4.3.1 systems: Chapter 4 T tableau: 3.5.3 tabulation: 1.2.2 tabulation: 3.3.3 tagged architectures: 5.3.1 tail-recursive: 1.2.1 tail-recursive: 5.4.2 target: 5.5.1 thrashing: UTF thunk: 4.2.2 thunks: 4.2.2 time: 3.4 time segments: 3.3.4 tower: 2.5.2 tree accumulation: 1.1.3 tree recursion: 1.2.2 trees: 2.2.2 truth maintenance: 4.3.1 Turing machine: 4.1.5 type field: 5.3.1 type tag: 2.4.2 type tags: 2.4 type-inferencing: 3.5.4 typed pointers: 5.3.1 U unbound: 3.2 unification: 4.4 unification: 4.4.2 unification: 4.4.2 unification algorithm: 4.4 univariate polynomials: 2.5.3 universal machine: 4.1.5 upward-compatible extension: 4.2.2 V value: 1.1.2 value of a variable: 3.2 values: 2.3.1 variable: 1.1.2 variable-length: 2.3.4 vector: 5.3.1 W width: 2.1.4 wires: 3.3.4 wishful thinking: 2.1.1 Z zero crossings: 3.5.3 Jump to: A B C D E F G H I K L M N O P Q R S T U V W Z Next: Colophon, Prev: Figures, Up: Top [Contents] Prev: Term Index, Up: Top [Contents] Colophon On the cover page is Agostino Ramelli’s bookwheel mechanism from 1588.

The Art of Computer Programming: Fundamental Algorithms by Donald E. Knuth

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

discrete time, distributed generation, Donald Knuth, fear of failure, Fermat's Last Theorem, Gerard Salton, Isaac Newton, Jacquard loom, Jacquard loom, John von Neumann, linear programming, linked data, Menlo Park, probability theory / Blaise Pascal / Pierre de Fermat, Richard Feynman, sorting algorithm, stochastic process, Turing machine

DONALD E. KNUTH Stanford University :']¦ ADDISON-WESLEY An Imprint of Addison Wesley Longman, Inc. Volume 1 / Fundamental Algorithms THE ART OF COMPUTER PROGRAMMING THIRD EDITION Reading, Massachusetts • Harlow, England • Menlo Park, California Berkeley, California • Don Mills, Ontario • Sydney Bonn • Amsterdam • Tokyo • Mexico City is a trademark of the American Mathematical Society METflFONT is a trademark of Addison-Wesley Library of Congress Cataloging-in-Publication Data Knuth, Donald Ervin, 1938- The art of computer programming : fundamental algorithms / Donald Ervin Knuth. — 3rd ed. xx,650 p. 24 cm. Includes bibliographical references and index. ISBN 0-201-89683-4 1. Electronic digital computers—Programming. 2. Computer algorithms. I. Title. QA76.6.K64 1997 005.1—dc21 97-2147 CIP Internet page http://www-cs-faculty.stanford.edu/~knuth/taocp.html contains current information about this book and related books.

Kepler, Johann, 80, 81. Kilmer, Alfred Joyce, 232. King, James Cornelius, 20. Kirchhoff, Gustav Robert, 406, 583. law of conservation of flow, 97, 170-171, 268, 278, 364-370, 380. Kirkman, Thomas Penyngton, 408. Kirschenhofer, Peter, 506. Klarner, David Anthony, 86. Kleitman, Daniel J (Isaiah Solomon), 547, 596. Knopp, Konrad Hermann Theodor, 48, 498. Knotted lists, 459. Knowlton, Kenneth Charles, 462. Knuth, Donald Ervin (]^^^), ii, iv, xi, 11, 33, 66, 120, 193, 201, 202, 296, 297, 395, 457, 461, 471, 484, 499, 504, 523, 525, 565, 579, 580, 584, 592, 596, 631, 650. Knuth, Nancy Jill Carter (Tti^jf B Kolmogorov, Andrei Nikolaevich (KojiMoropoB, AHflpe 104, 105, 464. Konig, Denes, 382, 406, 588. Koster, Cornelis (= Kees) Hermanus Antonius, 461. Kozelka, Robert Marvin, 544. Kramp, Christian, 49. Krattenthaler, Christian, 39.


pages: 923 words: 516,602

The C++ Programming Language by Bjarne Stroustrup

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

combinatorial explosion, conceptual framework, database schema, distributed generation, Donald Knuth, fault tolerance, general-purpose programming language, index card, iterative process, job-hopping, locality of reference, Menlo Park, Parkinson's law, premature optimization, sorting algorithm

Brian W. Kernighan and Dennis M. Ritchie: The C Programming Language (Second Edition). Prentice-Hall. Englewood Cliffs, New Jersey. 1988. ISBN 0-13-110362-8. Andrew Koenig and Bjarne Stroustrup: C++: As close to C as possible – but no closer. The C++ Report. Vol. 1 No. 7. July 1989. Andrew Koenig and Barbara Moo: Ruminations on C++. Addison Wesley Longman. Reading, Mass. 1997. ISBN 1-201-42339-1. Donald Knuth: The Art of Computer Programming. Addison-Wesley. Reading, Mass. Barbara Liskov et al.: Clu Reference Manual. MIT/LCS/TR-225. MIT Cambridge. Mass. 1979. Robert C. Martin: Designing Object-Oriented C++ Applications Using the Booch Method. Prentice-Hall. Englewood Cliffs, New Jersey. 1995. ISBN 0-13-203837-4. George Orwell: 1984. Secker and Warburg. London. 1949. Graham Parrington et al.: The Design and Implementation of Arjuna.

If a ‘‘maintenance crew’’ is left guessing about the architecture of the system or must deduce the purpose of system components from their implementation, the structure of a system can deteriorate rapidly under the impact of local patches. Documentation is typically much better at conveying details than in helping new people to understand key ideas and principles. 23.4.7 Efficiency [design.efficiency] Donald Knuth observed that ‘‘premature optimization is the root of all evil.’’ Some people have learned that lesson all too well and consider all concern for efficiency evil. On the contrary, efficiency must be kept in mind throughout the design and implementation effort. However, that does not mean the designer should be concerned with micro-efficiencies, but that first-order efficiency issues must be considered.

ISBN 0-201-88954-4. All rights reserved. – D– #, preprocessing 813 template instantiation 866 discrimination of exception 188 disguised pointer 844 dispatch, double 326 distance() and - 551, 554 distribution exponential 685 uniform 685 div() 661 divide and conquer, complexity 693 divides / 517 div_t 661 do statement 114, 137 documentation 714– 715 do_it() example 777 domain error 661 dominance 401 Donald Knuth 713 dot product 684 double dispatch 326 quote 830 double 74 output 626 double-ended queue deque 474 doubly-linked list 470 down cast 408 draw_all() example 520 Duff’s device 141 dynamic memory 127, 576, 843 store 34 type checking 727 type checking, mis-use of 439 dynamic_cast 407– 408 and ambiguity 412 and polymorphism 409 and static_cast 413 bad_cast and 384 implementation of 409 to reference 410 use of 774 E eatwhite() 620 eback() 645 EDOM 661 efficiency 8, 713 and coupling 768 and generality 431 of operation 464 egptr() 645 element access 445 Index access, list 472 access, map 482 address of 454 constructor for array 250 first 445 from sequence, delete 529, 534 last 445 object, array 244 requirements for 466 to sequence, add 529 eliminate_duplicates() example 534 eliminating programmers 730 elimination of copying 675 of temporary 675 ellipse, circle and 703 ellipsis ... 154 else 134 emphasis, examples and 5 Employee example 302 empty string 585 empty() 455, 489 string 598 encapsulation 754 complete 283 end, seekdir and end() 54, 481 basicstring 584 iterator 444 #endif 162 endl 634 ends 634 engineering, viewgraph 704 enum 76 and integer 77 bitset and 492 conversion, undefined 77 difference from C 817 member 249 sizeof 78 user-defined operator and 265 enumeration 76 switch on 77 enumerator 76 EOF 620, 653 eof() 616 char_traits 581 eofbit 617 epptr() 645 epsilon() 659 eq(), char_traits 581 eq_int_type(), char_traits 581 equal() 527 equality and comparison 457 hash_map 497 The C++ Programming Language, Third Edition by Bjarne Stroustrup.


pages: 462 words: 172,671

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

continuous integration, database schema, domain-specific language, don't repeat yourself, Donald Knuth, en.wikipedia.org, Eratosthenes, finite state, Ignaz Semmelweis: hand washing, iterative process, place-making, Rubik’s Cube, web application, WebSocket

After that, it’s up to you. Remember the old joke about the concert violinist who got lost on his way to a performance? He stopped an old man on the corner and asked him how to get to Carnegie Hall. The old man looked at the violinist and the violin tucked under his arm, and said: “Practice, son. Practice!” Bibliography [Beck07]: Implementation Patterns, Kent Beck, Addison-Wesley, 2007. [Knuth92]: Literate Programming, Donald E. Knuth, Center for the Study of Language and Information, Leland Stanford Junior University, 1992. 2 Meaningful Names by Tim Ottinger Introduction Names are everywhere in software. We name our variables, our functions, our arguments, classes, and packages. We name our source files and the directories that contain them. We name our jar files and war files and ear files.

This abstraction isolates all of the specific details of obtaining such a price, including from where that price is obtained. Bibliography [RDD]: Object Design: Roles, Responsibilities, and Collaborations, Rebecca Wirfs-Brock et al., Addison-Wesley, 2002. [PPP]: Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin, Prentice Hall, 2002. [Knuth92]: Literate Programming, Donald E. Knuth, Center for the Study of language and Information, Leland Stanford Junior University, 1992. 11 Systems by Dr. Kevin Dean Wampler “Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and test.” —Ray Ozzie, CTO, Microsoft Corporation How Would You Build a City? Could you manage all the details yourself?


pages: 262 words: 65,959

The Simpsons and Their Mathematical Secrets by Simon Singh

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, Andrew Wiles, Benoit Mandelbrot, cognitive dissonance, Donald Knuth, Erdős number, Georg Cantor, Grace Hopper, Isaac Newton, John Nash: game theory, mandelbrot fractal, Menlo Park, Norbert Wiener, Norman Mailer, P = NP, Paul Erdős, probability theory / Blaise Pascal / Pierre de Fermat, Richard Feynman, Richard Feynman, Rubik’s Cube, Schrödinger's Cat, Simon Singh, Stephen Hawking, Wolfskehl Prize, women in the workforce

Sometimes it will require two random numbers, usually three, and occasionally four or more numbers to reach a total bigger than 1. However, on average, the number of random numbers required to exceed 1 is 2.71828..., which, of course, is e. There are numerous other examples demonstrating that e plays a diverse and fundamental role in several areas of mathematics. This explains why so many number lovers have a particularly emotional attachment to it. For example, Donald Knuth, professor emeritus at Stanford University and a godlike figure in the world of computing, is an e enthusiast. After authoring Metafont, his font-creation software, he decided to release updates with version numbers that relate to e. This means that the first version was Metafont 2, then Metafont 2.7, then Metafont 2.71, and so on up to the current Metafont 2.718281. Each new version number is a closer approximation to the true value of e.


pages: 525 words: 149,886

Higher-Order Perl: A Guide to Program Transformation by Mark Jason Dominus

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

always be closing, Defenestration of Prague, Donald Knuth, Isaac Newton, Larry Wall, P = NP, Paul Graham, Perl 6, slashdot, SpamAssassin

, however, will generate an “Argument isn’t numeric” warning if warnings are enabled. One string commonly used when a zero-but-true value is desired is "0 but true". Perl’s warning system has a special case in it that suppresses the usual “isn’t numeric” warning for this string. (back) Chapter 4 1 The Perl Journal, Vol 1, #2 (Summer 1996) pp. 5–9. (back) 2 The Art of Computer Programming, Volume II: Seminumerical Algorithms, Donald E. Knuth, Addison–Wesley. (back) 3 There are, unfortunately, very few good robots. (back) Chapter 5 1 Stay away from the windows if you’re ever in Prague; the city is famous for its defenestrations. Probably the most important was on 23 March, 1618, when Bohemian nobles flung two imperial governors out the window into a ditch, touching off the Thirty Years’ War. Other notable defenestrations have occurred in 1419 and 1948.

(back) 5 Isaac Newton discovered and wrote about the method first, but his write-up wasn’t published until 1736. Joseph Raphson discovered the technique independently and published it in 1671. (back) 6 Actually they’re alternating between 1.414213562373094923430016933708 and 1.414213562373095145474621858739, but who’s counting? (back) 7 It may not be obvious that the hare will necessarily catch the tortoise, but it is true. For details, see Donald Knuth, The Art of Computer Programming: Volume 2, Seminumerical Algorithms, exercise 3.1.6. (back) 8 It also requires a bit of a trick. Say S = 1 + k + k2 + ··· + kn − 1. Multiplying both sides by k gives Sk = k + k2 + ··· + kn − 1 + kn. These two equations are almost the same, and if we subtract one from the other almost everything cancels out, leaving only Sk − S = kn − 1 and so S = (kn − 1) / (k − 1).


pages: 504 words: 89,238

Natural language processing with Python by Steven Bird, Ewan Klein, Edward Loper

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

bioinformatics, business intelligence, conceptual framework, Donald Knuth, elephant in my pajamas, en.wikipedia.org, finite state, Firefox, Guido van Rossum, information retrieval, Menlo Park, natural language processing, P = NP, search inside the book, speech recognition, statistical model, text mining, Turing test

[Kiss and Strunk, 2006] Tibor Kiss and Jan Strunk. Unsupervised multilingual sentence boundary detection. Computational Linguistics, 32: 485–525, 2006. [Kiusalaas, 2005] Jaan Kiusalaas. Numerical Methods in Engineering with Python. Cambridge University Press, 2005. [Klein and Manning, 2003] Dan Klein and Christopher D. Manning. A* parsing: Fast exact viterbi parse selection. In Proceedings of HLT-NAACL 03, 2003. [Knuth, 2006] Donald E. Knuth. The Art of Computer Programming, Volume 4: Generating All Trees. Addison Wesley, 2006. [Lappin, 1996] Shalom Lappin, editor. The Handbook of Contemporary Semantic Theory. Blackwell Publishers, Oxford, 1996. [Larson and Segal, 1995] Richard Larson and Gabriel Segal. Knowledge of Meaning: An Introduction to Semantic Theory. MIT Press, Cambridge, MA, 1995. [Levin, 1993] Beth Levin. English Verb Classes and Alternations.

In , the data is streamed to the calling function. Since the calling function simply has to find the maximum value—the word that comes latest in lexicographic sort order—it can process the stream of data without having to store anything more than the maximum value seen so far. 4.3 Questions of Style Programming is as much an art as a science. The undisputed “bible” of programming, a 2,500 page multivolume work by Donald Knuth, is called The Art of Computer Programming. Many books have been written on Literate Programming, recognizing that humans, not just computers, must read and understand programs. Here we pick up on some issues of programming style that have important ramifications for the readability of your code, including code layout, procedural versus declarative style, and the use of loop variables. Python Coding Style When writing programs you make many subtle choices about names, spacing, comments, and so on.


pages: 728 words: 182,850

Cooking for Geeks by Jeff Potter

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

3D printing, A Pattern Language, carbon footprint, centre right, Community Supported Agriculture, Computer Numeric Control, crowdsourcing, Donald Knuth, double helix, en.wikipedia.org, European colonialism, fear of failure, food miles, functional fixedness, hacker house, haute cuisine, helicopter parent, Internet Archive, iterative process, Parkinson's law, placebo effect, random walk, Rubik’s Cube, slashdot, stochastic process, the scientific method

Take time to taste things, both to adjust seasoning and to learn how the taste changes during cooking. Don’t be afraid to burn dinner! Have fun! I was talking with a friend of mine, a fellow geek who was just starting to learn to cook, when he said: I was never that curious about cooking, so I thought that buying The Joy of Cooking and going through it would be the right approach. That’s probably like sitting down with Donald Knuth’s The Art of Computer Programming in order to learn to program, when really all you should be doing at first is trying to make something you like. He’s right: make something you like, give yourself enough time to enjoy the process, and have fun doing it. Slaving through the Joy or Knuth will work, but it’s not the way most people learn to cook or write code. It’d be like picking up a dictionary to learn how to write.

kitchen organization, Kitchen Organization calibrating instruments, Approaching the Kitchen cleanability considerations, Counter Layout counter layout, Uniform Storage Containers functional grouping, 0(1) Retrieval importance of, 356°F / 180°C: Sugar Begins to Caramelize Visibly kitchen equipment, Prepping Ingredients kitchen pruning, Kitchen Pruning prepping ingredients, Calibrating Your Instruments retrieval and, Kitchen Organization Ried on, Kitchen Pruning storage containers, 0(1) Retrieval kitchen scales, Measuring cups and scales kitchen shears, Spoons & co. kneading (mechanical agitation), Gluten, Mozzarella spheres knives, Kitchen Equipment "failure mode", Knives alloyed steels, Knives bacteria and, Knives basic skills, Knives forged blades, Kitchen Equipment heat treatment, Knives holding, Knives Raper on, Knives repurposing, Knives sharpening, Knives stamped blades, Kitchen Equipment types of, Kitchen Equipment Knuth, Donald, Tips for Newbies Kurti, Nicholas, Sugar L lactic acid, Salty, Yeast in breads lactisole, Combinations of Tastes and Smells, Anti-Sugar: Lactisole Lahey, Jim, Yeast in breads Laiskonis, Michael, 356°F / 180°C: Sugar Begins to Caramelize Visibly Latin American cuisine, Regional/Traditional Method Le Creuset, Pots and pans leaveners, Biological Leaveners biological, Biological Leaveners chemical, Kitchen Pruning, Chemical Leaveners mechanical, Mechanical Leaveners multiple, Egg Yolks Lebovitz, David, Whipped Cream lecithin, Playing with Chemicals, Making Foams: Lecithin Lego ice cream maker, Smell (Olfactory Sense) Lemon Lentil Soup, Reading Between the Lines Lemon Meringue Pie, Making gels: Starches Lemony Quinoa and Asparagus with Shrimp Scampi, Kitchen Pruning Lersch, Martin, Gluten, Yeast in breads Leucippus, Smell + Taste = Flavor Lime Marmalade, Sugar limonin, Sugar lipase (enzyme), Acids and Bases liquid nitrogen "cooking" with, Fun with Hardware, "Cooking" with Cold: Liquid Nitrogen and Dry Ice experimenting with, 158°F / 70°C: Vegetable Starches Break Down parasites and, How to Prevent Foodborne Illness Caused by Parasites liquid smoke, Liquid Smoke: Distilled Smoke Vapor listeria, How to Prevent Foodborne Illness Caused by Parasites, Foodborne Illness and Sous Vide Cooking Listeria monocytogenes, How to Prevent Foodborne Illness Caused by Bacteria listeriosis, How to Prevent Foodborne Illness Caused by Bacteria locus coeruleus, Taste == Feedback lye (sodium hydroxide), Acids and Bases lysine, Meat Glue: Transglutaminase M Mac ‘n Cheese, Adapt and Experiment Method macronutrients, A Few Words on Nutrition Maillard reaction defined, Time and Temperature: Cooking’s Primary Variables grilled meat and, Heat Transfer and Doneness temperature for, Reading Between the Lines, Pots and pans, Cooked = Time * Temperature, 310°F / 154°C: Maillard Reactions Become Noticeable Maillard, Louis Camille, 310°F / 154°C: Maillard Reactions Become Noticeable main dishes Bacon-Wrapped Scallops, Meat Glue: Transglutaminase Beef Steak Tips, Beef and other red meats Beef Stew, Unitaskers Brisket, 48-Hour, Beef and other red meats Cheeseburger, How to Prevent Foodborne Illness Caused by Bacteria Chicken, Broiled and Roasted, 310°F / 154°C: Maillard Reactions Become Noticeable Crepes, Unitaskers Duck Confit, 154°F / 68°C: Collagen (Type I) Denatures Duck Confit Sugo, Reading Between the Lines Grilled Fish with Bayou Sauce or Mustard Sauce, Adapt and Experiment Method Hot Dog, Electrocuted, Making ice cream Lemony Quinoa and Asparagus with Shrimp Scampi, Kitchen Pruning Mac ‘n Cheese, Adapt and Experiment Method Oven-Cooked Barbeque Ribs, Liquid Smoke: Distilled Smoke Vapor Pork Chops Stuffed with Cheddar Cheese and Poblano Peppers, Wet brining Salmon Poached in Olive Oil, 104°F / 40°C and 122°F / 50°C: Proteins in Fish and Meat Begin to Denature Salt-Roasted Fish, Wet brining Scallop Ceviche, Acids and Bases Seared Scallops, 310°F / 154°C: Maillard Reactions Become Noticeable Seared Steak, Temperature gradients Seared Tuna with Cumin and Salt, 104°F / 40°C and 122°F / 50°C: Proteins in Fish and Meat Begin to Denature Seitan, Gluten Shrimp Roll-up, Liquid Smoke: Distilled Smoke Vapor Slow-Cooked Short Ribs, 154°F / 68°C: Collagen (Type I) Denatures Squid Bruschetta, 154°F / 68°C: Collagen (Type I) Denatures maltodextrin, "Melts" in your mouth: Maltodextrin mandolins, Mixers & co.


pages: 666 words: 181,495

In the Plex: How Google Thinks, Works, and Shapes Our Lives by Steven Levy

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

23andMe, AltaVista, Anne Wojcicki, Apple's 1984 Super Bowl advert, autonomous vehicles, book scanning, Brewster Kahle, Burning Man, business process, clean water, cloud computing, crowdsourcing, Dean Kamen, discounted cash flows, don't be evil, Donald Knuth, Douglas Engelbart, Douglas Engelbart, El Camino Real, fault tolerance, Firefox, Gerard Salton, Gerard Salton, Google bus, Google Chrome, Google Earth, Googley, HyperCard, hypertext link, IBM and the Holocaust, informal economy, information retrieval, Internet Archive, Jeff Bezos, John Markoff, Kevin Kelly, Mark Zuckerberg, Menlo Park, one-China policy, optical character recognition, PageRank, Paul Buchheit, Potemkin village, prediction markets, recommendation engine, risk tolerance, Rubik’s Cube, Sand Hill Road, Saturday Night Live, search inside the book, second-price auction, selection bias, Silicon Valley, skunkworks, Skype, slashdot, social graph, social software, social web, spectrum auction, speech recognition, statistical model, Steve Ballmer, Steve Jobs, Steven Levy, Ted Nelson, telemarketer, trade route, traveling salesman, turn-by-turn navigation, Vannevar Bush, web application, WikiLeaks, Y Combinator

But the professors understood that behind the goofiness was a formidable mathematical mind. Soon after arriving at Stanford, he knocked off all the required tests for a doctorate and was free to sample the courses until he found a suitable entree for a thesis. He supplemented his academics with swimming, gymnastics, and sailing. (When his father asked him in frustration whether he planned to take advanced courses, he said that he might take advanced swimming.) Donald Knuth, a Stanford professor whose magisterial series of books on the art of computer programming made him the Proust of computer code, recalls driving down the Pacific coast to a conference with Sergey one afternoon and being impressed at his grasp of complicated issues. His adviser, Hector Garcia-Molina, had seen a lot of bright kids go through Stanford, but Brin stood out. “He was brilliant,” Garcia-Molina says.

., 236, 331, 344–47, 364, 365–66 Kahle, Brewster, 362, 365 Kamangar, Salar, 71–72, 74, 233, 235 and advertising, 86, 89, 91–92, 109, 113 and business plan, 72, 75, 201 and Google motto, 143–44 and YouTube, 248, 260–65 Karen, Alana, 97–98 Karim, Jawed, 243, 247, 250 Kay, Erik, 207 Keyhole, 239–40, 340 Keyword Pricing Index, 118 Khosla, Vinod, 28, 29 Kim, Jini, 166 Klau, Rick, 312, 318 Kleinberg, Jon, 24–26, 34, 38, 292 Knol, 240 Knuth, Donald, 14 Kohl, Herb, 332 Koogle, Timothy, 44 Kordestani, Omid, 75–76, 78, 81, 96, 97, 130, 155, 242 Krane, David, 69–70, 143, 144–45, 150, 156 Kraus, Joe, 28, 136, 201, 374–75 Kundra, Vivek, 322, 326 Kurzweil, Raymond, 66 language, translations, 55, 62–65 Lantos, Tom, 285–87 Larson, Mark, 208 Leach, Jim, 286 Lee, Kai-Fu: and China office, 4, 281–83, 289–90, 291, 292, 293, 294, 296, 298, 302, 303, 305, 307–8, 313 departure of, 307–8, 312 Lee, Steve, 338–39 Lenat, Douglas, 47 Leonard, Herman, 117 Lessig, Lawrence, 359, 360, 363 Levick, Jeff, 96, 110–11, 112–13 Levinson, Arthur, 218, 237 Li, Mark, 293, 298–99 Li, Robin (Yanhong), 26–27, 278, 292, 293, 298 Library of Congress, 352, 361 Liebman, Jason, 103–5 LinkAds, 102–3 Linux, 78, 182, 210 Litvack, Sanford “Sandy,” 345, 347 Liu, John, 296 Liu, Jun, 294, 303–4 long-tail businesses, 85, 105, 107, 118, 243, 334 Lu, Qi, 380 Lucovsky, Mark, 283 Luk, Ben, 290, 302 Maarek, Yoelle, 272 MacDonald, Brian, 380 Macgillivray, Alex “AMac,” 353–55 machine learning, 64–66, 100–101, 385 Malone, Kim (Scott), 107–8, 135 Manber, Udi, 44, 45, 57–58, 68, 240, 355, 380 MapReduce, 199–200 Marconi International Fellowship Award, 278 Markoff, John, 193 Matias, Yossi, 272 Mayer, Marissa, 36, 41, 381 and advertising, 78–79 and APM program, 1, 4, 5, 161–62, 259 and books, 348–50, 358, 365 and Gmail, 170–71 and Google culture, 121, 122, 126–27, 141, 142, 163, 164, 365 and Google motto, 143–44 and Google’s look, 206–7 and management structure, 160, 235 and social networking, 371–73, 375 and stock price, 155, 156–57 McCaffrey, Cindy, 3, 76, 77, 145, 150, 153, 164 McCarthy, John, 127 McLaughlin, Andrew: and China, 276–79, 283–84, 303, 304 and Obama administration, 316, 321, 322–23, 325–26, 327 and privacy, 176–78, 379 memex, 15, 44 Merrill, Douglas, 183 Mi, James, 276 Microsoft: and antitrust issues, 331–32, 344–45 and aQuantive, 331 Bing search engine, 186, 380–81 and books, 361, 363 and browser wars, 206, 283 and China, 281, 282, 283, 284, 285, 304 and competition, 70, 191, 197, 200–212, 218, 220, 266, 282–83, 331, 344–47, 363, 380–81 and Danger, 214 data centers of, 190 and disclosure, 108 and email, 168, 169, 179–80 Excel, 200 and Facebook, 370 Hotmail, 30, 168, 172, 180, 209 IE 7, 209 Internet Explorer, 204–7 and mapping, 342 monopolies of, 200, 331–32, 364 Office, 200, 202, 203 Outlook, 169 PowerPoint, 200, 203 and user data, 335 and values, 144 WebTV, 217 Windows, 200, 210, 212, 219, 331 Windows Mobile, 220 Word, 200 and Yahoo, 343–44, 346, 380 of yesterday, 369 MIDAS (Mining Data at Stanford), 16 Milgrom, Paul, 90 Miner, Rich, 215, 216 Mobile Accord, 325 mobile phones, 214–17, 219–22, 251 Moderator, 323–24 Mohan, Neal, 332, 336 Monier, Louis, 19, 20, 37 Montessori, Maria, 121, 124, 166 Montessori schools, 121–25, 129, 138, 149 Moonves, Leslie, 246 Moore’s Law, 169, 180, 261 Morgan Stanley, 149, 157 Moritz, Mike, 32, 73–74, 80, 147, 247–48, 249 Morozov, Evgeny, 379 Morris, Doug, 261 Mossberg, Walt, 94 Mowani, Rajeev, 38 Mozilla Firefox, 204, 206, 207–8, 209 Murdoch, Rupert, 249, 370 MySpace, 243, 375 name detection system, 50–52 Napier’s constant, 149 National Federation of the Blind, 365–66 National Institute of Standards and Technology (NIST), 65 National Science Digital Library, 347 National Security Agency (NSA), 310 Native Client, 212 navigation, 229, 232, 338 Nelson, Ted, 15 net neutrality, 222, 326–27, 330, 383–84 Netscape, 30, 75, 78, 147, 204, 206 Nevill-Manning, Craig, 129 Newsweek, 2, 3, 20, 179 New York Public Library, 354, 357 Nexus One, 230, 231–32 95th Percentile Rule, 187 Nokia, 341, 374 Norman, Donald, 12, 106 Norvig, Peter, 47, 62, 63, 138, 142, 316 Novell, 70 Obama, Barack, 315–21, 322, 323–24, 329, 346 Obama administration, 320–28 Ocean, 350–55 Och, Franz, 63–65 Oh, Sunny, 283, 297, 298 OKR (Objectives and Key Results), 163–64, 165, 186, 209, 325 Open Book Alliance, 362 Open Handset Alliance, 221–22 OpenSocial, 375–76 operating systems, 210–12 optical character recognition (OCR), 53, 349–50 Oracle, 220 Orkut, 371–73, 375 Otellini, Paul, 218 Overture, 89, 90, 91, 95, 96, 98–99, 103, 150 Oxford University Press, 354, 357 Page, Larry, 3, 5 achievements of, 53, 383 and advertising, 84, 86–87, 90, 92, 94, 95–97, 114, 334, 336–37 ambition of, 12, 39, 73, 127–28, 139, 198, 215, 238, 362, 386–87 and applications, 205, 206, 207, 208, 210, 240–42, 340 and artificial intelligence, 62, 100, 246, 385–86 and BackRub/PageRank, 17, 18, 21–24, 26 and birth of Google, 31–34 and Book Search, 11, 347–52, 355, 357, 359, 361, 362, 364 on capturing all the web, 22–24, 52, 58, 63 on changing the world, 6, 13, 33, 39, 97, 120, 125, 146, 173, 232, 279, 316, 327, 361, 384–85 childhood and early years of, 11–13 and China, 267, 276, 277–78, 279–80, 283, 284, 305, 311 and data centers, 182–83 and eco-activism, 241 and email, 169–72, 174, 179 and Excite, 28–29 and funding, 32, 33–34, 73–75 and hiring practices, 139–40, 142, 182, 271, 386 imagination of, 14, 271 and IPO, 146–47, 149–54, 157 and machine learning, 66, 67 and management, 74, 75–77, 79–82, 110, 143, 158–60, 162–66, 228, 231, 235, 252–53, 254, 255, 260, 272, 273, 386–87 marriage of, 254 as Montessori kid, 121–25, 127–28, 149, 331, 387 and Obama, 315–16 and philanthropy, 257–58 and privacy, 174, 176–77, 337 and robots, 246, 385 and secrecy, 31–32, 70, 72–73, 106, 218 and smart phones, 214–16, 224, 225, 226–30, 234 and social networking, 372 and speed, 184–85, 207 and Stanford, 12–13, 14, 16–17, 28, 29, 34 and trust, 221, 237 values of, 127–28, 130, 132, 135, 139–40, 146, 196, 361, 364 and wealth, 157 and web links, 51 and YouTube, 248 PageRank, 3, 17, 18, 21–24, 27, 34, 38, 48–49, 53, 55, 56, 294 Palm, 216, 221 Park, Lori, 235, 258 Pashupathy, Kannan, 270–72, 277, 282 Passion Device, 230 Patel, Amit, 45–46, 82 and Google motto, 143–44, 146 patents, 27, 39, 89, 102, 221, 235, 237, 350 PayPal, 242, 243 peer-to-peer protocols, 234–35 Peters, Marybeth, 352 Phil, 99–103 Philip, Prince, 122 Picasa, 185–86, 187, 239 Pichai, Sundar, 205–6, 207–8, 209–12 Pichette, Patrick, 120, 150, 254–56 Pike, Rob, 241 Pittman, R.

The Art of Computer Programming by Donald Ervin Knuth

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Brownian motion, complexity theory, correlation coefficient, Donald Knuth, Eratosthenes, Georg Cantor, information retrieval, Isaac Newton, iterative process, John von Neumann, Louis Pasteur, mandelbrot fractal, Menlo Park, NP-complete, P = NP, Paul Erdős, probability theory / Blaise Pascal / Pierre de Fermat, RAND corporation, random walk, sorting algorithm, Turing machine, Y2K

DONALD E. KNUTH Stanford University TT ADDISON-WESLEY An Imprint of Addison Wesley Longman, Inc. Volume 2 / Seminumerical Algorithms THE ART OF COMPUTER PROGRAMMING THIRD EDITION Reading, Massachusetts • Harlow, England • Menlo Park, California Berkeley, California ¦ Don Mills, Ontario • Sydney Bonn • Amsterdam • Tokyo ¦ Mexico City is a trademark of the American Mathematical Society METRFONT is a trademark of Addison-Wesley The quotation on page 61 is reprinted by permission of Grove Press, Inc. Library of Congress Cataloging-in-Publication Data Knuth, Donald Ervin, 1938- The art of computer programming / Donald Ervin Knuth. — 3rd ed. xiv,762 p. 24 cm. Includes bibliographical references and index. Contents: v. 1. Fundamental algorithms. — v. 2. Seminumerical algorithms. ISBN 0-201-89683-4 (v. 1) ISBN 0-201-89684-2 (v. 2) 1.

Kermack, William Ogilvy, 74. Kerr, Leslie Robert, 699. Kesner, Oliver, 226. Khinchin, Alexander Yakovlevich (Xhhhhh, AjieKcaH^p ^KOBJieBHH), 356, 652. Kinderman, Albert John, 130-131, 135. Klarner, David Anthony, 213. Klem, Laura, 27. Knop, Robert Edward, 136. Knopfmacher, Arnold, 345, 686. Knopfmacher, John Peter Louis, 345. Knopp, Konrad Hermann Theodor, 364. Knorr, Wilbur Richard, 335. Knott, Cargill Gilston, 627. Knuth, Donald Ervin (ifi) fi^}), ii, iv, vii, 2, 4, 30, 89, 138, 145, 159, 196, 205, 226, 242, 316, 335, 372, 378, 384, 435, 491, 584, 595, 599, 606, 636, 659, 661, 686, 694, 697, 722, 739, 762. Knuth, Jennifer Sierra (M'h^), xiy- Knuth, John Martin tS Kohavi, Zvi (viTQ >33), 498. Koksma, Jurjen Ferdinand, 161. Kolmogorov, Andrei Nikolaevich (KoJiMoropoB, AH 56, 169, 178, 183. Kolmogorov-Smirnov distribution, 57-60. table, 51.


pages: 598 words: 183,531

Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition by Steven Levy

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

air freight, Apple II, Bill Gates: Altair 8800, Buckminster Fuller, Byte Shop, computer age, computer vision, corporate governance, Donald Knuth, El Camino Real, game design, Hacker Ethic, hacker house, Haight Ashbury, John Conway, John Markoff, Mark Zuckerberg, Menlo Park, non-fiction novel, Norman Mailer, Paul Graham, popular electronics, RAND corporation, reversible computing, Richard Stallman, Silicon Valley, software patent, speech recognition, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, Whole Earth Catalog, Y Combinator

For instance, Woods’ vision of a mist-covered toll bridge protected by a stubborn troll came during a break in hacking one night, when Woods and some other hackers decided to watch the sun rise at a mist-shrouded Mount Diablo, a substantial drive away. They didn’t make it in time, and Woods remembered what that misty dawn looked like and wrote it into the description of that scene in the game, which he conceived of over breakfast that morning. It was at Stanford that gurus were as likely to be faculty people as systems hackers (among Stanford professors was the noted computer scientist Donald Knuth, author of the multivolume classic The Art of Computer Programming). It was at Stanford that, before the Adventure craze, the casual pleasures of Spacewar were honed to a high art (Slug Russell had come out with McCarthy, but it was younger hackers who developed five-player versions and options for reincarnation, and ran extensive all-night tournaments). It was at Stanford that hackers would actually leave their terminals for a daily game of volleyball.

The AI lab began to look for teachers as well as researchers, and the hackers were seldom interested in the bureaucratic hassles, social demands, and lack of hands-on machine time that came with teaching courses. Greenblatt was still hacking away, as was Knight, and a few newer hackers were proving themselves masters at systems work . . . but others were leaving, or gone. Now, Bill Gosper headed West. He arranged to stay on the AI lab payroll, hacking on the ninth-floor PDP-6 via the ARPAnet, but he moved to California to study the art of computer programming with Professor Donald Knuth at Stanford. He became a fixture at Louie’s, the best Chinese restaurant in Palo Alto, but was missing in action at Tech Square. He was a mercurial presence on computer terminals there but no longer a physical center of attention, draped over a chair, whispering, “Look at that,” while the 340 terminal pulsed insanely with new forms of LIFE. He was in California, and he had bought a car. With all these changes, some of the hackers sensed that an era was ending.


pages: 313 words: 101,403

My Life as a Quant: Reflections on Physics and Finance by Emanuel Derman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Berlin Wall, bioinformatics, Black-Scholes formula, Brownian motion, capital asset pricing model, Claude Shannon: information theory, Donald Knuth, Emanuel Derman, fixed income, Gödel, Escher, Bach, haute couture, hiring and firing, implied volatility, interest rate derivative, Jeff Bezos, John Meriwether, John von Neumann, law of one price, linked data, Long Term Capital Management, moral hazard, Murray Gell-Mann, Myron Scholes, Paul Samuelson, pre–internet, publish or perish, quantitative trading / quantitative finance, Richard Feynman, Sharpe ratio, statistical arbitrage, statistical model, Stephen Hawking, Steve Jobs, stochastic volatility, technology bubble, the new new thing, transaction costs, value at risk, volatility smile, Y2K, yield curve, zero-coupon bond, zero-sum game

Stimulated by the courses on computer science I had taken at the Labs, I realized that I could represent each variable in the set of equations by a node in a directed graph, and that reordering the equations was equivalent to decomposing the graph into its strongly connected components. I was naively proud to be doing real math. There were helpful resources wherever I turned. I found that Chris Van Wyk, an MTS in Computer Science in Area 10, had written a set of UNIX tools for solving simultaneous equations. He had started this project while working on his PhD thesis at Stanford under Donald Knuth, the famous author of the four-volume The Art of Computer Programming and the inventor of TeX, a widely used language for mathematical typesetting and word processing that has become standard among scientists. Steve Blaha, my particle-physicist friend at the Labs, told me that Knuth had been his college roommate. As we worked together I was impressed by Chris's professional programming skills; I was an amateur, living by my wits, while Chris was the real thing, a researcher working in his area of expertise.


pages: 377 words: 110,427

The Boy Who Could Change the World: The Writings of Aaron Swartz by Aaron Swartz, Lawrence Lessig

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

affirmative action, Alfred Russel Wallace, American Legislative Exchange Council, Benjamin Mako Hill, bitcoin, Bonfire of the Vanities, Brewster Kahle, Cass Sunstein, deliberate practice, Donald Knuth, Donald Trump, failed state, fear of failure, Firefox, full employment, Howard Zinn, index card, invisible hand, John Gruber, Lean Startup, More Guns, Less Crime, peer-to-peer, post scarcity, Richard Feynman, Richard Feynman, Richard Stallman, Ronald Reagan, school vouchers, semantic web, single-payer health, SpamAssassin, SPARQL, telemarketer, The Bell Curve by Richard Herrnstein and Charles Murray, the scientific method, Toyota Production System, unbiased observer, wage slave, Washington Consensus, web application, WikiLeaks, working poor, zero-sum game

They accomplish all sorts of complicated functions, work under incredibly high loads, and confront no end of unusual situations. And they both run pretty much exactly as Bernstein first wrote them. One bug—one bug!—was found in qmail. A second bug was recently found in djbdns, but you can get a sense of how important it is by the fact that it took people nearly a decade to find it. No other programmer has this kind of track record. Donald Knuth probably comes closest, but his diary about writing TeX (printed in Literate Programming) shows how he kept finding bugs for years and never expected to be finished, only to get closer and closer (thus the odd version numbering scheme). Not only does no one else have djb’s track record, no one else even comes close. But far more important are the subjective factors. djb’s programs are some of the greatest works of beauty to be comprehended by the human mind.

The Art of Readable Code by Dustin Boswell, Trevor Foucher

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, don't repeat yourself, Donald Knuth, web application

Smalltalk Best Practice Patterns, by Kent Beck (Prentice Hall, 1996) Although the examples are in Smalltalk, the book has many good programming principles. The Elements of Programming Style, by Brian Kernighan and P.J. Plauger (Computing McGraw-Hill, 1978) One of the oldest books dealing with the issue of “the clearest way to write things.” Most of the examples are in Fortran and PL1. Literate Programming, by Donald E. Knuth (Center for the Study of Language and Information, 1992) We agree wholeheartedly with Knuth’s statement, “Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do” (p. 99). But be warned: the bulk of the book is about Knuth’s WEB programming environment for documentation. WEB is effectively a language for writing your programs as works of literature, with code on the sidelines.


pages: 834 words: 180,700

The Architecture of Open Source Applications by Amy Brown, Greg Wilson

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

8-hour work day, anti-pattern, bioinformatics, c2.com, cloud computing, collaborative editing, combinatorial explosion, computer vision, continuous integration, create, read, update, delete, David Heinemeier Hansson, Debian, domain-specific language, Donald Knuth, en.wikipedia.org, fault tolerance, finite state, Firefox, friendly fire, Guido van Rossum, linked data, load shedding, locality of reference, loose coupling, Mars Rover, MVC pattern, peer-to-peer, Perl 6, premature optimization, recommendation engine, revision control, Ruby on Rails, side project, Skype, slashdot, social web, speech recognition, the scientific method, The Wisdom of Crowds, web application, WebSocket

[Gra81] Jim Gray: "The Transaction Concept: Virtues and Limitations". Proc. Seventh International Conference on Very Large Data Bases, pages 144–154, 1981. [Hor05] Cay Horstmann: Object-Oriented Design and Patterns. Wiley, 2 edition, 2005. [HR83] Theo Haerder and Andreas Reuter: "Principles of Transaction-Oriented Database Recovery". ACM Computing Surveys, 15, December 1983. [Kit10] Kitware: VTK User's Guide. Kitware, Inc., 11th edition, 2010. [Knu74] Donald E. Knuth: "Structured Programming with Go To Statements". ACM Computing Surveys, 6(4), 1974. [LA04] Chris Lattner and Vikram Adve: "LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation". Proc. 2004 International Symposium on Code Generation and Optimization (CGO'04), Mar 2004. [LCWB+11] H. Andrées Lagar-Cavilla, Joseph A. Whitney, Roy Bryant, Philip Patchin, Michael Brudno, Eyal de Lara, Stephen M.

Design Reflections My experience in working on Graphite has reaffirmed a belief of mine that scalability has very little to do with low-level performance but instead is a product of overall design. I have run into many bottlenecks along the way but each time I look for improvements in design rather than speed-ups in performance. I have been asked many times why I wrote Graphite in Python rather than Java or C++, and my response is always that I have yet to come across a true need for the performance that another language could offer. In [Knu74], Donald Knuth famously said that premature optimization is the root of all evil. As long as we assume that our code will continue to evolve in non-trivial ways then all optimization6 is in some sense premature. One of Graphite's greatest strengths and greatest weaknesses is the fact that very little of it was actually "designed" in the traditional sense. By and large Graphite evolved gradually, hurdle by hurdle, as problems arose.


pages: 423 words: 21,637

On Lisp: Advanced Techniques for Common Lisp by Paul Graham

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, Paul Graham, sorting algorithm, Turing machine

I feel fortunate to have worked with Alan Apt, a good editor and a good guy. Thanks also to Mona Pompili, Shirley Michaels, and Shirley McGuire for their organization and good humor. The incomparable Gino Lee of the Bow and Arrow Press, Cambridge, did the cover. The tree on the cover alludes specifically to the point made on page 27. This book was typeset using LaTeX, a language written by Leslie Lamport atop Donald Knuth's TeX, with additional macros by L. A. Carr, Van Jacobson, and Guy Steele. The diagrams were done with Idraw, by John Vlissides and Scott Stanton. The whole was previewed with Ghostview, by Tim Theisen, which is built on Ghostscript, by L. Peter Deutsch. Gary Bisbee of Chiron Inc. produced the camera-ready copy. I owe thanks to many others, including Paul Becker, Phil Chapnick, Alice Hartley, Glenn Holloway, Meichun Hsu, Krzysztof Lenk, Arman Maghbouleh, Howard Mullings, NancyParmet, Robert Penny, Gary Sabot, Patrick Slaney, Steve Strassman, Dave Watkins, the Weickers, and Bill Woods.


pages: 404 words: 43,442

The Art of R Programming by Norman Matloff

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Debian, discrete time, Donald Knuth, general-purpose programming language, linked data, sorting algorithm, statistical model

For more information, refer to the books cited in footnote 1 at the beginning of this chapter. Graphics 283 13 D EBUGGING Programmers often find that they spend more time debugging a program than actually writing it. Good debugging skills are invaluable. In this chapter, we’ll discuss debugging in R. 13.1 Fundamental Principles of Debugging Beware of bugs in the above code; I have only proved it correct, not tried it. —Donald Knuth, pioneer of computer science Though debugging is an art rather than a science, it involves some fundamental principles. Here, we’ll look at some debugging best practices. 13.1.1 The Essence of Debugging: The Principle of Confirmation As Pete Salzman and I said in our book on debugging, The Art of Debugging, with GDB, DDD, and Eclipse (No Starch Press, 2008), the principle of confirmation is the essence of debugging.


pages: 706 words: 120,784

The Joy of Clojure by Michael Fogus, Chris Houser

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

cloud computing, domain-specific language, Donald Knuth, Douglas Hofstadter, en.wikipedia.org, finite state, Gödel, Escher, Bach, haute couture, Larry Wall, Paul Graham, rolodex, traveling salesman

Kahan, William, and Joseph Darcy. 1998. “How Java’s Floating-Point Hurts Everyone Everywhere.” Presented at the ACM Workshop on Java for High-Performance Network Computing. This paper provides more information on the cyclopian nightmares awaiting you in Java floating point. Keene, Sonya. 1989. Object-Oriented Programming in Common Lisp: A Programmer’s Guide to CLOS. Boston: Addison-Wesley. The best book on CLOS ever written. Knuth, Donald. 1997. The Art of Computer Programming: Volume 1 - Fundamental Algorithms. Reading, MA: Addison-Wesley. This book goes into exquisite detail about the primary characteristics of FIFO queues and is highly recommended reading. _____. 1998. The Art of Computer Programming, Vol. 3: Sorting and Searching. Reading, MA: Addison-Wesley. Running quick-sort on a sorted sequence is an O(n2) operation, which for our implementation in chapter 6 completely defeats its laziness.


pages: 566 words: 122,184

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Bill Gates: Altair 8800, Claude Shannon: information theory, computer age, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Dynabook, Eratosthenes, Grace Hopper, invention of the telegraph, Isaac Newton, Jacquard loom, Jacquard loom, James Watt: steam engine, John von Neumann, Joseph-Marie Jacquard, Louis Daguerre, millennium bug, Norbert Wiener, optical character recognition, popular electronics, Richard Feynman, Richard Feynman, Richard Stallman, Silicon Valley, Steve Jobs, Turing machine, Turing test, Vannevar Bush, Von Neumann architecture

If the number is prime, which means that a[i] is true, another for loop sets all the multiples of that number to false. Those numbers aren't prime. The final for loop prints out all the prime numbers, which are the values of i where a[i] is true. Sometimes people squabble over whether programming is an art or a science. On the one hand, you have college curricula in Computer Science, and on the other hand, you have books such as Donald Knuth's famous The Art of Computer Programming series. "Rather," wrote physicist Richard Feynman, "computer science is like engineering—it is all about getting something to do something." If you ask 100 different people to write a program that prints out prime numbers, you'll get 100 different solutions. Even those programmers who use the Sieve of Eratosthenes won't implement it in precisely the same way that I did.

How I Became a Quant: Insights From 25 of Wall Street's Elite by Richard R. Lindsey, Barry Schachter

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, algorithmic trading, Andrew Wiles, Antoine Gombaud: Chevalier de Méré, asset allocation, asset-backed security, backtesting, bank run, banking crisis, Black-Scholes formula, Bonfire of the Vanities, Bretton Woods, Brownian motion, business process, buy low sell high, capital asset pricing model, centre right, collateralized debt obligation, commoditize, computerized markets, corporate governance, correlation coefficient, creative destruction, Credit Default Swap, credit default swaps / collateralized debt obligations, currency manipulation / currency intervention, discounted cash flows, disintermediation, diversification, Donald Knuth, Edward Thorp, Emanuel Derman, en.wikipedia.org, Eugene Fama: efficient market hypothesis, financial innovation, fixed income, full employment, George Akerlof, Gordon Gekko, hiring and firing, implied volatility, index fund, interest rate derivative, interest rate swap, John von Neumann, linear programming, Loma Prieta earthquake, Long Term Capital Management, margin call, market friction, market microstructure, martingale, merger arbitrage, Myron Scholes, Nick Leeson, P = NP, pattern recognition, Paul Samuelson, pensions crisis, performance metric, prediction markets, profit maximization, purchasing power parity, quantitative trading / quantitative finance, QWERTY keyboard, RAND corporation, random walk, Ray Kurzweil, Richard Feynman, Richard Feynman, Richard Stallman, risk-adjusted returns, risk/return, shareholder value, Sharpe ratio, short selling, Silicon Valley, six sigma, sorting algorithm, statistical arbitrage, statistical model, stem cell, Steven Levy, stochastic process, systematic trading, technology bubble, The Great Moderation, the scientific method, too big to fail, trade route, transaction costs, transfer pricing, value at risk, volatility smile, Wiener process, yield curve, young professional

., 29–47, 308 Kalman filter, usage, 188, 239 Kani, Iraj, 123–124 Kapner, Ken, 333 Katz, Gary, 336–337 Kazhdan, David, 119–120 Kazhdan-Lusztig result, 120 Kealhofer, Stephen, 211–225 Kelvin, Lord, 67 Kennecott Copper-Carborundum merger, 290 reporting system, design (foresight), 72–73 risk-controlled stock/bond funds, offering, 71 Kieschnick, Michael, 213 P1: OTE/PGN JWPR007-Lindsey P2: OTE January 1, 1904 6:33 384 KMV Corporation, 218 Knuth, Donald, 171 Kohn, Robert, 132 Kottwitz, Robert, 120 Krail, Bob, 202 Krell, David, 336–337 Kritzman, Mark, 251–261 Kurzweil, Ray, 27–28 Kusuda, Yasuo, 168, 170 Kyle, Peter, 214 Landlands, Robert, 119 Landlands Program, 119–120 Lang, Serge, 287 Lanstein, Ron, 307 Large-cap securities, comparison, 267 Large-scale data analysis, 218 Large-scale matrix inversion, 257 Lattice Trading, 75–76 sale, 79–81 “Law of One Alpha, The,” 274 Lawrence, Colin, 232 LECG, litigation counseling, 218 LeClair, Ray, 82 Leeson, Nick, 194 Lefevre, Edwin, 321 Leinweber, David, 9–28 Leinweber & Co., 9 Leland, Hayne, 158 Leland O’Brien Rubinstein Associates, 278 Leptokurtosis, 193–194 Levy, Kenneth N., 263–283 Levy processes, 169 Lewis, Harry, 13 Lexis database, 146–148 Li, David, 240 Liability Driven Investment (LDI), 148 Liew, John, 201, 202 Lindsey, Rich, 157, 162 Lintner, John, 34 Linux, 18 LISP-based trading systems, flaw, 20 LISP Machines, Inc.


pages: 624 words: 127,987

The Personal MBA: A World-Class Business Education in a Single Volume by Josh Kaufman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, Atul Gawande, Black Swan, business process, buy low sell high, capital asset pricing model, Checklist Manifesto, cognitive bias, correlation does not imply causation, Credit Default Swap, Daniel Kahneman / Amos Tversky, David Heinemeier Hansson, David Ricardo: comparative advantage, Dean Kamen, delayed gratification, discounted cash flows, Donald Knuth, double entry bookkeeping, Douglas Hofstadter, en.wikipedia.org, Frederick Winslow Taylor, George Santayana, Gödel, Escher, Bach, high net worth, hindsight bias, index card, inventory management, iterative process, job satisfaction, Johann Wolfgang von Goethe, Kevin Kelly, Lao Tzu, loose coupling, loss aversion, Marc Andreessen, market bubble, Network effects, Parkinson's law, Paul Buchheit, Paul Graham, place-making, premature optimization, Ralph Waldo Emerson, rent control, side project, statistical model, stealth mode startup, Steve Jobs, Steve Wozniak, subscription business, telemarketer, the scientific method, time value of money, Toyota Production System, tulip mania, Upton Sinclair, Vilfredo Pareto, Walter Mischel, Y Combinator, Yogi Berra

The purpose of understanding and analyzing systems is to improve them, which is often tricky—changing systems can often create unintended consequences. In this chapter, you’ll learn the secrets of Optimization, how to remove unnecessary Friction from critical processes, and how to build Systems that can handle Uncertainty and Change. SHARE THIS CONCEPT: http://book.personalmba.com/improving-systems/ Optimization Premature optimization is the root of all evil. —DONALD KNUTH, COMPUTER SCIENTIST AND FORMER PROFESSOR AT STANFORD UNIVERSITY Optimization is the process of maximizing the output of a System or minimizing a specific input the system requires to operate. Optimization typically revolves around the systems and processes behind your Key Performance Indicators , which measure the critical elements of the system as a whole. Improve your KPIs, and your system will perform better.


pages: 968 words: 224,513

The Art of Assembly Language by Randall Hyde

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Donald Knuth, p-value, sorting algorithm, Von Neumann architecture, Y2K

See Write Great Code, Volume 1 (No Starch Press) or the electronic version of The Art of Assembly Language at http://webster.cs.ucr.edu/ or http://www.artofasm.com/ for details concerning the operation of cache memory and how you can optimize your use of cache memory. 8.5 For More Information The HLA Standard Library reference manual contains lots of information about the HLA Standard Library's extended-precision arithmetic capabilities. You'll also want to check out the source code for several of the HLA Standard Library routines to see how to do various extended-precision operations (that properly set the flags once the computation is complete). The HLA Standard Library source code also covers the extended-precision I/O operations that do not appear in this chapter. Donald Knuth's The Art of Computer Programming, Volume Two: Seminumerical Algorithms contains a lot of useful information about decimal arithmetic and extended-precision arithmetic, though that text is generic and doesn't describe how to do this in x86 assembly language. Chapter 9. MACROS AND THE HLA COMPILE-TIME LANGUAGE This chapter discusses the HLA compile-time language. This discussion includes what is perhaps the most important component of the HLA compile-time language, macros.


pages: 348 words: 39,850

Data Scientists at Work by Sebastian Gutierrez

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Albert Einstein, algorithmic trading, Bayesian statistics, bioinformatics, bitcoin, business intelligence, chief data officer, clean water, cloud computing, commoditize, computer vision, continuous integration, correlation does not imply causation, creative destruction, crowdsourcing, data is the new oil, DevOps, domain-specific language, Donald Knuth, follow your passion, full text search, informal economy, information retrieval, Infrastructure as a Service, Intergovernmental Panel on Climate Change (IPCC), inventory management, iterative process, lifelogging, linked data, Mark Zuckerberg, microbiome, Moneyball by Michael Lewis explains big data, move fast and break things, move fast and break things, natural language processing, Network effects, nuclear winter, optical character recognition, pattern recognition, Paul Graham, personalized medicine, Peter Thiel, pre–internet, quantitative hedge fund, quantitative trading / quantitative finance, recommendation engine, Renaissance Technologies, Richard Feynman, Richard Feynman, self-driving car, side project, Silicon Valley, Skype, software as a service, speech recognition, statistical model, Steve Jobs, stochastic process, technology bubble, text mining, the scientific method, web application

SEXY SCIENTISTS WRANGLING DATA AND BEGETTING NEW INDUSTRIES Jamie Zawinski Chris Wiggins (The New York Times) Guy AmySteele Heineike Caitlin Smallwood (Netflix) Douglas Crockford Jonathan Lenaghan L (PlaceIQ) Peter Deutsch Brad Fitzpatrick (Quid) Dan Ingalls Data Scientists at Work Roger Ehrenberg Brendan Eich (IA Ventures) Joshua Bloch Erin Shellman (Nordstrom) Joe Armstrong Victor Hu (Next Big Sound) Simon Peyton Jones John Foreman Peter Norvig (MailChimp) Claudia Perlich (Dstillery) Daniel Tunkelang (LinkedIn) S e b a s t i a n Kira Radinsky Ken Thompson (SalesPredict) Fran EricAllen Jonas (Independent Scientist) Bernie Cosell Yann LeCun (Facebook) Donald Knuth Anna Smith (Rent the Runway) Jake Porway (DataKind) André Karpištšenko (Planet OS) G u t i e r r e z f o r e w o r d b ywww.it-ebooks.info peter norvig (Google) For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. www.it-ebooks.info Contents Foreword by Peter Norvig, Google����������������������������������������������������������������� vii About the Author������������������������������������������������������������������������������������������xi Acknowledgments���������������������������������������������������������������������������������������� xiii Introduction���������������������������������������������������������������������������������������������������xv Chapter 1: Chris Wiggins, The New York Times�������������������������������������������������� 1 Chapter 2: Caitlin Smallwood, Netflix ���������������������������������������������������������19 Chapter 3: Yann LeCun, Facebook�����������������������������������������������������������������45 Chapter 4: Erin Shellman, Nordstrom �����������������������������������������������������������67 Chapter 5: Daniel Tunkelang, LinkedIn ���������������������������������������������������������83 Chapter 6: John Foreman, MailChimp ���������������������������������������������������������107 Chapter 7: Roger Ehrenberg, IA Ventures�����������������������������������������������������131 Chapter 8: Claudia Perlich, Dstillery�����������������������������������������������������������151 Chapter 9: Jonathan Lenaghan, PlaceIQ�����������������������������������������������������179 Chapter 10: Anna Smith, Rent the Runway �����������������������������������������������������199 Chapter 11: André Karpištšenko, Planet OS �������������������������������������������������221 Chapter 12: Amy Heineike, Quid�����������������������������������������������������������������239 Chapter 13: Victor Hu, Next Big Sound�����������������������������������������������������������259 Chapter 14: Kira Radinsky, SalesPredict ���������������������������������������������������������273 Chapter 15: Eric Jonas, Neuroscience Research �������������������������������������������������293 Chapter 16: Jake Porway, DataKind ���������������������������������������������������������������319 Index�������������������������������������������������������������������������������������������������������������335 www.it-ebooks.info Introduction Data is the new oil!


Martin Kleppmann-Designing Data-Intensive Applications. The Big Ideas Behind Reliable, Scalable and Maintainable Systems-O’Reilly (2017) by Unknown

active measures, Amazon Web Services, bitcoin, blockchain, business intelligence, business process, c2.com, cloud computing, collaborative editing, commoditize, conceptual framework, cryptocurrency, database schema, DevOps, distributed ledger, Donald Knuth, Edward Snowden, ethereum blockchain, fault tolerance, finite state, Flash crash, full text search, general-purpose programming language, informal economy, information retrieval, Internet of things, iterative process, John von Neumann, loose coupling, Marc Andreessen, natural language processing, Network effects, packet switching, peer-to-peer, performance metric, place-making, premature optimization, recommendation engine, Richard Feynman, Richard Feynman, self-driving car, semantic web, Shoshana Zuboff, social graph, social web, software as a service, software is eating the world, sorting algorithm, source of truth, SPARQL, speech recognition, statistical model, web application, WebSocket, wikimedia commons

Chapter 12 concludes the book by exploring ideas about how we might use these tools to build reliable, scalable, and maintainable applications in the future. CHAPTER 10 Batch Processing A system cannot be successful if it is too strongly influenced by a single person. Once the initial design is complete and fairly robust, the real test begins as people with many different viewpoints undertake their own experiments. —Donald Knuth In the first two parts of this book we talked a lot about requests and queries, and the corresponding responses or results. This style of data processing is assumed in many modern data systems: you ask for something, or you send an instruction, and some time later the system (hopefully) gives you an answer. Databases, caches, search indexes, web servers, and many other systems work this way.

From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry by Martin Campbell-Kelly

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Apple II, Apple's 1984 Super Bowl advert, barriers to entry, Bill Gates: Altair 8800, business process, card file, computer age, computer vision, continuous integration, deskilling, Donald Knuth, Grace Hopper, information asymmetry, inventory management, John Markoff, John von Neumann, linear programming, Menlo Park, Network effects, popular electronics, RAND corporation, Robert X Cringely, Ronald Reagan, Silicon Valley, software patent, Steve Jobs, Steve Wozniak, Steven Levy, Thomas Kuhn: the structure of scientific revolutions

Blair Smith, “The IBM 701—Marketing and Customer Relations,” Annals of the History of Computing 5 (1983): 170–172. 13. Ibid. Notes to pp. 33–39 317 14. Armer, “SHARE—A Eulogy to Cooperative Effort,” p. 122. 15. Akera, “The IBM User Group, Share,” p. 725. 16. The best general account of early programming systems is Paul E. Ceruzzi, A History of Modern Computing (MIT Press), especially chapter 3. 17. Donald E. Knuth and Luis Trabb Pardo, “The Early Development of Programming Languages,” in A History of Computing in the Twentieth Century, ed. N. Metropolis, J. Howlett, and G.-C. Rota (Academic Press, 1980). 18. The best historical account of FORTRAN is Annals of the History of Computing 6 (1984), no. 1 (25th-anniversary special issue). 19. John Backus, “The History of FORTRAN I, II, and III,” Annals of the History of Computing 1 (1979): 21–37. 20.