Appendix A. Notes

Chapter 1

  1. Alberti, Leon Battista, The Use and Abuse of Books, translated by Renée Watkins, Waveland Press, 1999.

  2. So how do you fix schools? The key to the answer may be college. When you go to (a good) college, most of the problems I describe get fixed. So the solution may come from asking, how do you make life for teenage nerds more like college life?

    Home-schooling offers an immediate solution, but it probably isn’t the optimal one. Why don’t parents home-school their kids all the way through college? Because college offers opportunities home-schooling can’t duplicate? So could high school if it were done right.

Chapter 2

  1. Johnson wrote in the preface to his Shakespeare:

    “He has long outlived his century, the term commonly fixed as the test of literary merit. Whatever advantages he might once derive from personal allusions, local customs, or temporary opinions, have for many years been lost; and every topick of merriment or motive of sorrow, which the modes of artificial life afforded him, now only obscure the scenes which they once illuminated. The effects of favour and competition are at an end; the tradition of his friendships and his enmities has perished; his works support no opinion with arguments, nor supply any faction with invectives; they can neither indulge vanity nor gratify malignity, but are read without any other reason than the desire of pleasure, and are therefore praised only as pleasure is obtained....”

  2. The worst thing photography did to painting may have been to kill the best day job. Most of the great painters in history supported themselves by painting portraits. Soon after the invention of photography they were undercut by hacks who worked from photographs. (This method is also easier on the sitter.) The class of technically skilled painters then more or less disappeared, and the role of skill in the price of painting was superseded by brand (which also depends greatly on photography, or, more precisely, on photographs reproduced in books and magazines).

  3. Microsoft discourages employees from contributing to open source projects, even in their spare time. But so many of the best hackers work on open source projects now that the main effect of this policy may be to make it hard for them to hire first-rate programmers.

  4. What you learn about programming in college is like what you learn about books or clothes: what bad taste you had in high school.

  5. Here’s an example of applied empathy. At Viaweb, if we couldn’t decide between two alternatives, we’d ask, what would our competitors hate most? At one point a competitor added a feature to their software that was basically useless, but since it was one of few they had that we didn’t, they made much of it in the trade press. We could have tried to explain that the feature was useless, but we decided it would annoy our competitor more if we just implemented it ourselves, so we hacked together our own version that afternoon.

  6. Except text editors and compilers. Hackers don’t need empathy to design these, because they are themselves typical users.

  7. Well, almost. They overshot the available RAM somewhat, causing much disk swapping, but this could be fixed by buying an additional disk drive.

  8. Abelson, Harold, and Gerald Sussman, Structure and Interpretation of Computer Programs, MIT Press, 1985.

  9. The way to make programs easy to read is not to stuff them with comments. I would take Abelson and Sussman’s rule a step further. Programming languages should be designed to express algorithms, and only incidentally to tell computers how to execute them. A good programming language ought to be better for explaining software than English. You should only need comments when there is some kind of kludge you need to warn readers about, just as on a road there are only arrows on parts with unexpectedly sharp curves.

Chapter 3

  1. The Inquisition probably never intended to carry out their threat of torture. But that was because Galileo made it clear he would do whatever they asked. If he had refused, they would not simply have backed down. Not long before they had burnt the philosopher Giordano Bruno when he proved intransigent.

  2. Many organizations obligingly publish lists of what you can’t say within them. Unfortunately these lists are usually both incomplete, because there are things so shocking they don’t even anticipate anyone saying them, and at the same time so general that they couldn’t possibly be enforced literally. It’s a rare university speech code that would not, taken literally, forbid Shakespeare.

  3. Kundel, H. L., C. F. Nodine, and E. A. Krupinski, “Searching for lung nodules: Visual dwell indicates locations of false-positive and false-negative decisions,” Investigative Radiology, 24 (1989), 472-478.

  4. The verb “diff " is computer jargon, but it’s the only word with exactly the sense I want. See Glossary.

  5. It may seem from this that I am some kind of moral relativist. Far from it. I think that “judgmental” is one of the labels used in our time to suppress discussion, and that our attempts to be “non-judgmental” will seem to future eras one of the most comical things about us.

  6. This makes the world confusing to kids, since what they see disagrees with what they’re told. I could never understand why, for example, Portuguese “explorers” had started to work their way along the coast of Africa. In fact, they were after slaves.

    De Azurara, Gomes Eannes, Chronicle of the Discovery of Guinea, in Almeida (ed.), Conquests and Discoveries of Henry the Navigator, George Allen & Unwin, 1936.

  7. The kids soon learn these words from their friends, but they know they’re not supposed to use them. So for a while you have a state of affairs like something from a musical comedy, where the parents use these words among their peers, but never in front of the children, and the children use the words among their peers, but never in front of their parents.

  8. Viaweb’s logo was a solid red circle with a white V in the middle. After we’d been using it for a while, I remember thinking, you know, this is a really powerful symbol, a red circle. Red is arguably the most basic color, and the circle the most basic shape. Together they had such visual punch. Why didn’t more American companies have a red circle as their logo? Ahh, yes....

  9. The fear is far the stronger of the two forces. Sometimes when I hear someone use the word “gyp” I tell them, with a serious expression, that one can’t use that word anymore because it’s considered disparaging to Romani (aka Gypsies). In fact dictionaries disagree about its etymology. But the reaction to this joke is nearly always one of slightly terrified compliance. There is something about fashion, in clothing or ideas, that takes away people’s confidence: when they learn something new, they feel it was something they should have known already.

  10. This is the one overt example in this essay of something you can’t say. It violates the principal taboo of university life. Within universities it’s an unspoken axiom that all areas of study are intellectually equal. No doubt this axiom helps things run more smoothly. But when you consider what an astonishing coincidence it would require for it to be true, and how convenient it would be for everyone to treat it as true even if it weren’t, how can you not question it?

    Particularly when you consider some of the corollaries it forces you to accept. For example, it would mean that there could not be ups and downs within an individual field. Unless all fields were oscillating in sync. (You really have to stretch to save this one.)

    And then, what do you do about universities that have departments like Culinary Arts or Sports Management? If you accept this axiom, how far does it extend? Do you really want to find yourself defending the position that differential geometry is no harder than cooking?

  11. Presumably, within the industry, such thoughts would be considered “negative.” Another label, much like “defeatist.” Never mind that, one should ask, are they true or not? Indeed, the measure of a healthy organization is probably the degree to which negative thoughts are allowed. In places where great work is being done, the attitude usually seems to be critical and sarcastic rather than “positive” and “supportive.” The people I know who do great work think that they suck, but that everyone else sucks more.

  12. Behar, Richard, “The Thriving Cult of Greed and Power,” Time, 6 May 1991.

  13. Healy, Patrick, “Summers hits ‘anti-Semitic’ actions,” Boston Globe, 20 September 2002.

  14. “Tinkerers’ champion,” The Economist, 20 June 2002.

  15. By this I mean you’d have to become a professional controversialist, not that Noam Chomsky’s opinions = what you can’t say. If you actually said the things you can’t say, you’d shock conservatives and liberals about equally—just as, if you went back to Victorian England in a time machine, your ideas would shock Whigs and Tories about equally.

  16. Traub, James, “Harvard Radical,” New York Times Magazine, 24 August 2003.

  17. Miller, Arthur, The Crucible in History and Other Essays, Methuen, 2000.

  18. Some tribes avoid “wrong” as judgmental, and instead use more neutral-sounding euphemisms like “negative” or “destructive.”

Chapter 4

  1. I planned to learn how to pick locks too. But not just out of intellectual curiosity. When I was about halfway through grad school, the clever but truculent corps of undergrad hackers who used to administer all the computers were replaced by a professional system administrator who used to go home at 5 o’clock and leave the machine room door locked. If a computer got wedged, one was expected to wait till morning to reboot it. A completely impractical plan, since at that time we often didn’t even start working till 5 PM. Fortunately, in Aiken Lab (since demolished) there was a gap between the floors, and a trapdoor right over the system administrator’s office. When we needed the machine room key, we’d drop in through the ceiling and get it out of his desk drawer.

    One night at about 3 AM as I was climbing down onto the sysadmin’s desk, earsplitting alarms went off all through the building. “Fuck,” I thought (sorry for the profanity, but I clearly remember thinking that), “they’ve wired the place.” I was out of that building in about thirty seconds. I scurried home (through a drenching rainstorm), trying to look nonchalant, but to my guilty conscience every car looked like a Crown Victoria. When I showed up at the Lab the next day I was already rehearsing my defense, but there was no ominous email waiting for me. It turned out the alarms had been set off by lightning during the storm.

  2. It’s not just the content of products that’s increasingly software. As manufacturing becomes more automated, designs become software too.

  3. I would gladly volunteer my name for this curve. Calling it something will make the idea stick better.

Chapter 5

  1. Realizing that much of the money is in the services, companies building lightweight clients have usually tried to combine the hardware with an online service. This approach has not worked well, partly because you need two different kinds of companies to build consumer electronics and to run an online service, and partly because users hate the idea. Giving away the handle and making money on the blades may work for Gillette, but a razor is a smaller commitment than a web terminal.

    Cell phone handset makers are satisfied to sell hardware without trying to capture the service revenue as well. That should probably be the model for Internet clients too. If someone just sold a nice-looking little box with a web browser that you could use to connect through any ISP, every technophobe in the country would buy one.

  2. Security always depends more on not screwing up than any design decision, but the nature of server-based software will make developers pay more attention to not screwing up. Compromising a server could cause such damage that ASPs (who want to stay in business) are likely to be careful about security.

  3. In 1995, when we started Viaweb, Java applets were supposed to be the technology everyone was going to use to develop server-based applications. Applets seemed to us an old-fashioned idea. Download programs to run on the client? Simpler just to go all the way and run the programs on the server. We wasted little time on applets, but countless other startups must have been lured into this tar pit. Few seem to have escaped alive.

  4. This point is due to Trevor Blackwell, who adds, “The cost of writing software goes up more than linearly with its size. Perhaps this is mainly due to fixing old bugs, and the cost can be more linear if all bugs are found quickly.”

  5. The hardest kind of bug to find may be a variant of compound bug where one bug happens to compensate for another. When you fix one bug, the other becomes visible. But it will seem as if the fix is at fault, since that was the last thing you changed.

  6. Within Viaweb we once had a contest to describe the worst thing about our software. Two customer support people tied for first prize with entries I still shiver to recall. We fixed both problems immediately.

  7. Robert Morris wrote the ordering system, which shoppers used to place orders. Trevor Blackwell wrote the image generator and the manager, which merchants used to retrieve orders, view statistics, configure domain names, etc. I wrote the editor, which merchants used to build their sites. The ordering system and image generator were written in C and C++, the manager mostly in Perl, and the editor in Common Lisp.

  8. I’m using “exponentially” in the colloquial sense here. Properly it should be “polynomially.”

  9. Price discrimination is so pervasive that I was surprised to find it was outlawed in the US by the Robinson-Patman Act of 1936. This law does not appear to be vigorously enforced.

  10. In No Logo, Naomi Klein says that clothing brands favored by “urban youth” do not try too hard to prevent shoplifting because in their target market the shoplifters are also the fashion leaders.

  11. Companies often wonder what to outsource and what not to. One possible answer: outsource any job that’s not directly exposed to competitive pressure, because outsourcing it will thereby expose it to competitive pressure. (I mean “outsource” in the sense of hiring another company to do it, not the more specific sense of hiring an overseas company.)

  12. The two guys were Dan Bricklin and Bob Frankston. Dan wrote a prototype in Basic in a couple days, then over the course of the next year they worked together (mostly at night) to make a more powerful version written in 6502 machine language. Dan was at Harvard Business School at the time and Bob nominally had a day job writing software. “There was no great risk in doing a business,” Bob told me. “If it failed it failed. No big deal.”

  13. It’s not quite as easy as I make it sound. It took a long time for word of mouth to get going, and we didn’t get a lot of press coverage until we hired Schwartz Communications, probably the best high-tech PR firm in the business, for $16,000/month (plus some warrants). However, it was true that the only significant channel was our own web site.

  14. If the Mac was so great, why did it lose? Cost, again. Microsoft concentrated on the software business and unleashed a swarm of cheap component suppliers on Apple hardware. It did not help, either, that suits took over during a critical period. (And it hasn’t lost yet. If Apple were to grow the iPod into a cell phone with a web browser, Microsoft would be in big trouble.)

  15. One thing that would help web-based applications, and help keep the next generation of software from being overshadowed by Microsoft, would be a good open source browser. A small, fast browser would be a great thing in itself, and would encourage companies to build little web appliances.

    Best of all, a good open source browser could cause HTTP and HTML to continue to evolve (as e.g. Perl has). Remember when every release of Netscape added new features to HTML? Why did that have to stop?

    It would help web-based applications greatly to be able to distinguish between selecting a link and following it; all you’d need to do this would be a trivial enhancement of HTTP, to allow multiple URLs in a request. Cascading menus would also be good.

    If you want to change the world, write a new Mosaic. Think it’s too late? In 1998 a lot of people thought it was too late to launch a new search engine, but Google proved them wrong. There is always room for something new if it is significantly better.

  16. Trevor Blackwell, who probably knows more about this from personal experience than anyone, writes:

    “I would go farther in saying that because server-based software is so hard on the programmers, it causes a fundamental economic shift away from large companies. It requires the kind of intensity and dedication from programmers that they will only be willing to provide when it’s their own company. Software companies can hire skilled people to work in a not-too-demanding environment, and can hire unskilled people to endure hardships, but they can’t hire highly skilled people to bust their asses. Since capital is no longer needed, big companies have little to bring to the table.”

  17. I would not even use Javascript, if I were you; Viaweb didn’t. Most of the Javascript I see on the Web isn’t necessary, and much of it breaks. And when you start to be able to browse actual web pages on your cell phone or PDA (or toaster), who knows if they’ll even support it?

Chapter 6

  1. One valuable thing you tend to get only in startups is uninterruptability. Different kinds of work have different time quanta. Someone proofreading a manuscript could probably be interrupted every fifteen minutes with little loss of productivity. But the time quantum for hacking is very long: it might take an hour just to load a problem into your head. So the cost of having someone from personnel call you about a form you forgot to fill out can be huge.

    This is why hackers give you such a baleful stare as they turn from their screen to answer your question. Inside their heads a giant house of cards is tottering.

    The mere possibility of being interrupted deters hackers from starting hard projects. This is why they tend to work late at night, and why it’s next to impossible to write great software in a cubicle (except late at night).

    One great advantage of startups is that they don’t yet have any of the people who interrupt you. There is no personnel department, and thus no form nor anyone to call you about it.

  2. Faced with the idea that people working for startups might be 20 or 30 times as productive as those working for large companies, executives at large companies will naturally wonder, how could I get the people working for me to do that? The answer is simple: pay them to.

    Internally most companies are run like Communist states. If you believe in free markets, why not turn your company into one?

    Hypothesis: A company will be maximally profitable when each employee is paid in proportion to the wealth they generate.

  3. Until recently even governments sometimes didn’t grasp the distinction between money and wealth. Adam Smith (Wealth of Nations, v:i) mentions several that tried to preserve their “wealth” by forbidding the export of gold or silver. But having more of the medium of exchange would not make a country richer; if you have more money chasing the same amount of material wealth, the only result is higher prices.

  4. There are many senses of the word “wealth,” not all of them material. I’m not trying to make a deep philosophical point here about which is the true kind. I’m writing about one specific, rather technical sense of the word “wealth.” What people will give you money for. This is an interesting sort of wealth to study, because it is the kind that prevents you from starving. And what people will give you money for depends on them, not you.

    When you’re starting a business, it’s easy to slide into thinking that customers want what you do. During the Internet Bubble I talked to a woman who, because she liked the outdoors, was starting an “outdoor portal.” You know what kind of business you should start if you like the outdoors? One to recover data from crashed hard disks.

    What’s the connection? None at all. Which is precisely my point. If you want to create wealth (in the narrow technical sense of not starving) then you should be especially skeptical about any plan that centers on things you like doing.

    That is where your idea of what’s valuable is least likely to coincide with other people’s.

  5. In the average car restoration you probably do make everyone else microscopically poorer, by doing a small amount of damage to the environment. While environmental costs should be taken into account, they don’t make wealth a zero-sum game. For example, if you repair a machine that’s broken because a part has come unscrewed, you create wealth with no environmental cost.

  6. Many people feel confused and depressed in their early twenties. Life seemed so much more fun in college. Well, of course it was. Don’t be fooled by the surface similarities. You’ve gone from guest to servant. It’s possible to have fun in this new world. Among other things, you now get to go behind the doors that say “authorized personnel only.” But the change is a shock at first, and all the worse if you’re not consciously aware of it.

  7. When VCs asked us how long it would take another startup to duplicate our software, we used to reply that they probably wouldn’t be able to at all. I think this made us seem naive, or liars.

  8. Few technologies have one clear inventor. So as a rule, if you know the “inventor” of something (the telephone, the assembly line, the airplane, the light bulb, the transistor) it is because their company made money from it, and the company’s PR people worked hard to spread the story. If you don’t know who invented something (the automobile, the television, the computer, the jet engine, the laser), it’s because other companies made all the money.

  9. This is a good plan for life in general. If you have two choices, choose the harder. If you’re trying to decide whether to go out running or sit home and watch TV, go running. Probably the reason this trick works so well is that when you have two choices and one is harder, the only reason you’re even considering the other is laziness. You know in the back of your mind what’s the right thing to do, and this trick merely forces you to acknowledge it.

  10. It is probably no accident that the middle class first appeared in northern Italy and the low countries, where there were no strong central governments. These two regions were the richest of their time and became the twin centers from which Renaissance civilization radiated. If they no longer play that role, it is because other places, like the United States, have been truer to the principles they discovered.

  11. It may indeed be a sufficient condition. But if so, why didn’t the Industrial Revolution happen earlier? Two possible (and not incompatible) answers: (a) It did. The Industrial Revolution was one in a series. (b) Because in medieval towns, monopolies and guild regulations initially slowed the development of new means of production.

Chapter 7

  1. Part of the reason this subject is so contentious is that some of those most vocal on the subject of wealth—university students, heirs, professors, politicians, and journalists—have the least experience creating it. (This phenomenon will be familiar to anyone who has overheard conversations about sports in a bar.)

    Students are mostly still on the parental dole, and have not stopped to think about where that money comes from. Heirs will be on the parental dole for life. Professors and politicians live within socialist eddies of the economy, at one remove from the creation of wealth, and are paid a flat rate regardless of how hard they work. And journalists as part of their professional code segregate themselves from the revenue-collecting half of the businesses they work for (the ad sales department). Many of these people never come face to face with the fact that the money they receive represents wealth—wealth that, except in the case of journalists, someone else created earlier. They live in a world in which income is doled out by a central authority according to some abstract notion of fairness (or randomly, in the case of heirs), rather than given by other people in return for something they wanted, so it may seem to them unfair that things don’t work the same in the rest of the economy.

    (Some professors do create a great deal of wealth for society. But the money they’re paid isn’t a quid pro quo. It’s more in the nature of an investment.)

  2. When one reads about the origins of the Fabian Society, it sounds like something cooked up by the high-minded Edwardian child-heroes of Edith Nesbit’s The Wouldbegoods.

  3. According to a study by the Corporate Library, the median total compensation, including salary, bonus, stock grants, and the exercise of stock options, of S&P 500 CEOs in 2002 was $3.65 million. According to Sports Illustrated, the average NBA player’s salary during the 2002-03 season was $4.54 million, and the Average major league baseball player’s salary at the start of the 2003 season was $2.56 million. According to the Bureau of Labor Statistics, the mean annual wage in the US in 2002 was $35,560.

  4. In the early empire the price of an ordinary adult slave seems to have been about 2,000 sestertii (e.g. Horace, Sat. ii.7.43). A servant girl cost 600 (Martial vi.66), while Columella (iii.3.8) says that a skilled vine-dresser was worth 8,000. A doctor, P. Decimus Eros Merula, paid 50,000 sestertii for his freedom ( Dessau, Inscriptiones 7812). Seneca (Ep. xxvii.7) reports that one Calvisius Sabinus paid 100,000 sestertii apiece for slaves learned in the Greek classics. Pliny (Hist. Nat. vii.39) says that the highest price paid for a slave up to his time was 700,000 sestertii, for the linguist (and presumably teacher) Daphnis, but that this had since been exceeded by actors buying their own freedom.

    Classical Athens saw a similar variation in prices. An ordinary laborer was worth about 125 to 150 drachmae. Xenophon (Mem. ii.5) mentions prices ranging from 50 to 6,000 drachmae (for the manager of a silver mine).

    For more on the economics of ancient slavery see:

    Jones, A. H. M., “Slavery in the Ancient World,” Economic History Review, 2:9 (1956), 185-199, reprinted in Finley, M. I. (ed.), Slavery in Classical Antiquity, Heffer, 1964.

  5. Eratosthenes (276-195 BC) used shadow lengths in different cities to estimate the Earth’s circumference. He was off by only about 2%.

  6. No, and Windows, respectively.

  7. One of the biggest divergences between the Daddy Model and reality is the valuation of hard work. In the Daddy Model, hard work is in itself deserving. In reality, wealth is measured by what one delivers, not how much effort it costs. If I paint someone’s house, the owner shouldn’t pay me extra for doing it with a toothbrush.

    It will seem to someone still implicitly operating on the Daddy Model that it is unfair when someone works hard and doesn’t get paid much. To help clarify the matter, get rid of everyone else and put our worker on a desert island, hunting and gathering fruit. If he’s bad at it he’ll work very hard and not end up with much food. Is this unfair? Who is being unfair to him?

  8. Part of the reason for the tenacity of the Daddy Model may be the dual meaning of “distribution.” When economists talk about “distribution of income,” they mean statistical distribution. But when you use the phrase frequently, you can’t help associating it with the other sense of the word (as in e.g. “distribution of alms”), and thereby subconsciously seeing wealth as something that flows from some central tap. The word “regressive” as applied to tax rates has a similar effect, at least on me; how can anything regressive be good?

  9. “From the beginning of the reign Thomas Lord Roos was an assiduous courtier of the young Henry VIII and was soon to reap the rewards. In 1525 he was made a Knight of the Garter and given the Earldom of Rutland. In the thirties his support of the breach with Rome, his zeal in crushing the Pilgrimage of Grace, and his readiness to vote the death-penalty in the succession of spectacular treason trials that punctuated Henry’s erratic matrimonial progress made him an obvious candidate for grants of monastic property.”

    Stone, Lawrence, Family and Fortune: Studies in Aristocratic Finance in the Sixteenth and Seventeenth Centuries, Oxford University Press, 1973, p. 166.

  10. There is archaeological evidence for large settlements earlier, but it’s hard to say what was happening in them.

    Hodges, Richard and David Whitehouse, Mohammed, Charlemagne and the Origins of Europe, Cornell University Press, 1983.

  11. William Cecil and his son Robert were each in turn the most powerful minister of the crown, and both used their position to amass fortunes among the largest of their times. Robert in particular took bribery to the point of treason. “As Secretary of State and the leading advisor to King James on foreign policy, [he] was a special recipient of favour, being offered large bribes by the Dutch not to make peace with Spain, and large bribes by Spain to make peace.” (Stone, op. cit., p. 17.)

  12. Though Balzac made a lot of money from writing, he was notoriously improvident and was troubled by debts all his life.

  13. A Timex will gain or lose about .5 seconds per day. The most accurate mechanical watch, the Patek Philippe 10 Day Tourbillon, is rated at -1.5 to +2 seconds. Its retail price is about $220,000.

  14. If asked to choose which was more expensive, a well-preserved 1989 Lincoln Town Car ten-passenger limousine ($5,000) or a 2004 Mercedes S600 sedan ($122,000), the average Edwardian might well guess wrong.

  15. To say anything meaningful about income trends, you have to talk about real income, or income as measured in what it can buy. But the usual way of calculating real income ignores much of the growth in wealth over time, because it depends on a consumer price index created by bolting end to end a series of numbers that are only locally accurate, and that don’t include the prices of new inventions until they become so common that their prices stabilize.

    So while we might think it was very much better to live in a world with antibiotics or air travel or an electric power grid than without, real income statistics calculated in the usual way will prove to us that we are only slightly richer for having these things.

    Another approach would be to ask, if you were going back to the year x in a time machine, how much would you have to spend on trade goods to make your fortune? For example, if you were going back to 1970 it would certainly be less than $500, because the processing power you can get for $500 today would have been worth at least $150 million in 1970. The function goes asymptotic fairly quickly, because for times over a hundred years or so you could get all you needed in present-day trash. In 1800 an empty plastic drink bottle with a screw top would have seemed a miracle of workmanship.

  16. Some will say this amounts to the same thing, because the rich have better opportunities for education. That’s a valid point. It is still possible, to a degree, to buy your kids’ way into top colleges by sending them to private schools that in effect hack the college admissions process.

    According to a 2002 report by the National Center for Education Statistics, about 1.7% of American kids attend private, non-sectarian schools. At Princeton, 36% of the class of 2007 came from such schools. (Interestingly, the number At Harvard is significantly lower, about 28%.) Obviously this is a huge loophole. It does at least seem to be closing, not widening.

    Perhaps the designers of admissions processes should take a lesson from the example of computer security, and instead of just assuming that their system can’t be hacked, measure the degree to which it is.

Chapter 8

  1. Some of the essays in this book have been rewritten, but except for translating the probability calculations from Lisp code into mathematical notation, I left this one alone. So a few things in it are no longer true. Few spams contain the word “click” now. But the algorithm still works. A slightly improved version catches about 99.6% of current spam. For more on filtering see paulgraham.com.

  2. In 2002 the lowest rate seemed to be about $200 to send a million spams. That’s very cheap, 1/50th of a cent per spam. But filtering out 95% of spam, for example, would increase the spammers’ cost to reach a given audience by a factor of 20. Few can have margins big enough to absorb that.

Chapter 9

  1. Sullivan actually said “form ever follows function,” but I think the usual misquotation is closer to what modernist architects meant.

  2. The engine of the Wright Flyer weighed 152 lbs. and generated 12 hp. The F414-GE-400 jet engine used in the F-18 weighs 2,445 lbs. and generates 22,000 lbs. of thrust. Assuming 1 lb. thrust = 1 hp., it delivers about 114 times as much power per weight.

    Current Intel processors, meanwhile, deliver about 1700 times the processing power of those available 30 years ago.

  3. Brush, Stephen G., “Why was Relativity Accepted?” Physics in Perspective, 1 (1999), 184-214.

Chapter 10

  1. The most common way of breaking into computers takes advantage of some idiosyncrasies of C. In C, when you set aside a chunk of memory (a buffer) for some input you’re expecting, it gets allocated next to the memory containing the return address of the currently running code. The return address is the location in memory of the code that’s going to be executed when the current code is done. It is, in effect, the next thing on the computer’s to-do list.

    So if someone wants to break into your computer, and they guess you’re using a 256-byte buffer to store some kind of input, then by sending just over 256 bytes they can overwrite the return address. When the current code is done, control will pass to whatever location in memory they’ve specified. And the location they’ll usually specify will be the beginning of the buffer, which they’ve just filled up with the machine language program of their choice. Bingo: their program is now running on your computer.

    In higher-level languages this would be impossible, but in C, whenever you take input from outside and don’t check the length, you’ve created a security hole. An attack that exploits such a hole is called a buffer overflow attack. There are other ways to get control of a computer in a buffer overflow attack, but overwriting the return address is the classic method.

    Curiously, airline hijackings are also buffer overflow attacks. In an ordinary airliner, passengers and cockpit are adjacent, just as data and code are adjacent in a C program. By overflowing into the cockpit, hijackers in effect promote themselves from data to code.

  2. Note to hackers: this is merely a metaphor. Do not attempt to drive a Yugo with a jet engine bolted to the roof.

    Arguably, the Yugojet phenomenon is not new. Fortran also owes its popularity largely to its libraries.

  3. Cipolla, Carlo, Guns, Sails, and Empires: Technological Innovation and the Early Phases of European Expansion 1400-1700, Pantheon, 1965.

Chapter 11

  1. I believe Lisp Machine Lisp was the first language to embody the principle that declarations (except those of dynamic variables) were merely optimization advice, and would not change the meaning of a correct program. Common Lisp seems to have been the first to state this explicitly.

Chapter 12

  1. Viaweb at first had two parts: the editor, written in Common Lisp, which people used to build their sites, and the ordering system, written in C, which handled orders. The first version was mostly Lisp, because the ordering system was small.

    In January 2003, Yahoo released a new version of the editor written in C++ and Perl. But to translate this program into C++ they literally had to write a Lisp interpreter: the source files of all the page-generating templates are still, as far as I know, Lisp code. (See Green spun’s Tenth Rule, Section 13.7.)

  2. Robert says I didn’t need to be secretive, because even if our competitors had known we were using Lisp, they wouldn’t have understood why: “If they were that smart they’d already be programming in Lisp.”

  3. All languages are equally powerful in the sense of being Turing-equivalent, but that’s not the sense of the word programmers care about. (No one wants to program a Turing machine.) The kind of power programmers care about may not be formally definable, but one way to explain it would be to say that it refers to features you could only get in the less powerful language by writing an interpreter for the more powerful language in it. If language A has an operator for removing spaces from strings and language B doesn’t, that probably doesn’t make A more powerful, because you can probably write a subroutine to do it in B. But if A supports, say, recursion, and B doesn’t, that’s not likely to be something you can fix by writing library functions.

  4. Or possibly a lattice, narrowing toward the top. It’s not the shape that matters here but the idea that there is at least a partial order.

  5. It is a bit misleading to treat macros as a separate feature. In practice their usefulness is greatly enhanced by other Lisp features like lexical closures and rest parameters.

  6. As a result, comparisons of programming languages either take the form of Religious wars or undergraduate textbooks so determinedly neutral that they’re really works of anthropology. People who value their peace, or want tenure, avoid the topic. But the question is only half a religious one; there is something there worth studying, especially if you want to design new languages.

Chapter 13

  1. After putting this essay online I got an apparently genuine email beginning:

    Pointy haired? Aren’t all hairs pointed? If this is the best
    insulting term for a boss that you can come up with it’s easy to see
    how deservedly you guys have earned the nickname “nerd”.

  2. The IBM 704 CPU was about the size of a refrigerator, but a lot heavier. The CPU weighed 3150 pounds, and the 4K of RAM was in a separate box weighing another 4000 pounds. The Sub-Zero 690, one of the largest household refrigerators, weighs 656 pounds.

  3. Steve Russell also wrote the first (digital) computer game, Spacewar, in 1962.

  4. A number of Lisp features, including programs expressed as lists and a form of recursion, were implemented in IPL-V. But it was more of an assembly language; a program consisted of a sequence of opcode/address pairs.

    Newell, Allen (ed.), Information Processing Language-V Manual, Prentice-Hall, 1961.

  5. If you want to trick a pointy-haired boss into letting you write software in Lisp, you could try telling him it’s XML.

  6. Muehlbauer, Jen, “Orbitz Reaches New Heights,” New Architect, April 2002.

  7. Here is the accumulator generator in other Lisp dialects:

    Scheme: (define (foo n)
              (lambda (i) (set! n (+ n i)) n))
    Goo: (df foo (n) (op incf n _)))
    Arc: (def foo (n) [++ n _])

  8. Peter Norvig found that 16 of the 23 patterns in Design Patterns were “invisible or simpler” in Lisp (www.norvig.com/design-patterns).

Chapter 14

  1. A hello-world program is a program that does nothing but print the words “Hello, world!” In Java you’d write:

    public class Hello {
        public static void main(String[] args) {
            System.out.println(“Hello, world!”);
        }
    }

    Someone who has never written a program probably looks at this and wonders, why do you need to say so much to get the the computer to print a message? Curiously, the reaction of experienced programmers is identical.

  2. In When the Air Hits Your Brain, neurosurgeon Frank Vertosick recounts a conversation in which his chief resident, Gary, talks about the difference between surgeons and internists (“fleas”):

    Gary and I ordered a large pizza and found an open booth. The chief lit a cigarette. “Look at those goddamn fleas, jabbering about some disease they’ll see once in their lifetimes. That’s the trouble with fleas, they only like the bizarre stuff. They hate their bread and butter cases. That’s the difference between us and the fucking fleas. See, we love big juicy lumbar disc herniations, but they hate hypertension. . . . "

    It’s hard to think of a lumbar disc herniation as juicy (except literally). But I think I know what they mean. I’ve often had a juicy bug to track down. Someone who’s not a programmer would find it hard to imagine that there could be pleasure in a bug. Surely it’s better if everything just works. And yet there is undeniably a grim satisfaction in hunting down certain sorts of bugs.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.20.57