The 2011 Review of BooksPreviously: 2010, 2009, 2008, 2007, 2006 2011 was a stressful year, in many ways, and so for large parts of it I did not really read. Instead, I tracked how many books I started and how many pages I got through each, for a total of 112 books started, 70 finished, and over 20,000 pages read. Not up to my usual standards. Nonetheless… Key: Books in bold are those that were so great my heart leaps at the chance to tell you about them even now. If you only have time to read some of this, read those.
How Python 3 Should Have WorkedAs a workaday Python developer, it’s hard to shake the feeling that the Python 2 to 3 transition isn’t working. I get occasional requests to make my libraries work in 3 but it’s far from clear how to and when I try to look it up I find all sorts of conflicting advice, none of which sounds very practical. Indeed, when you see new 3.x versions rolling off the line and no one using them, it’s hard to shake the feeling that Python might die in this transition. How will we ever make it across the chasm? It seems to me that in all the talk about Python 3000 being a new, radical, blue-sky vision of the future, we neglected the proven methods of getting there. In the Python 2 era, we had a clear method for adding language changes:
It seems to me this process worked pretty well. And I don’t see why it couldn’t work for the Python 3 transition. This would mean mainly just:
Putting this at the top of a file would declare it to be a Python3 file and allow the interpreter to parse it accordingly. (I realize behind the scenes this would mean a lot of work to merge tr 2 and 3 interpreters, but honestly it would always have been better to have a unified codebase to maintain.) Then if I wanted my Python 2 program to use some 3 modules, I just need to make sure those modules have the import line at the top. If I want to do a new release of my module that works on Python 3, I just need to declare that it only works in Python 2.x and higher and release a version that’s been run through 2to3 (with the new import statement). If my project is big, I can even port files to 3 one at a time, leaving the rest as 2 until someone gets around to fixing the rest. Most importantly, I can start porting to Puhon 3 without waiting for all my dependencies to do the same, parallelizing what until now has been a rather serial process. Users know they can safely upgrade to 2.x since it won’t break any existing code. Developers know everyone will eventually upgrade to 2.x so they can drop support for earlier versions. But since 2.x supports code that also runs in 3, they can start writing and releasing code that’s future-compatible as well. Eventually the vast major code will work in 3 and users can upgrade to 3. (2.x will issue warnings to the remaining stragglers.) Finally, we can drop support for 2.x and all live happily having crossed the bridge together. This isn’t a radical idea. It’s how Python upgrades have always worked. And unless we use it again, I don’t see how we’re ever going to cross this chasm. When will experiences replace movie theaters?When I was a kid, I remember my school putting on a production of Peter Pan. For the dramatic flying scenes, they rigged a special harness that would go under Pan’s costume and hoist him around the stage. But what I remember most is sitting outside the theater, desperately wishing it was me who got to fly. I knew I had a long life ahead of me, but when do grownups get to fly as if by magic? The world is weirdly disappointing that way. Billions of dollars are spent making and watching people explore mysterious tunnels, chase down alleys, and fly as if by magic, but there’s hardly a single opportunity to actually do any of these things. I know of two exceptions. In Boston, there is a company called 5 Wits. The experience is something like this: you enter an unassuming rug shop and when the salesman asks if he can help you, you tell him the secret pass code. He gets a funny look on his face, locks the door and pulls down the blinds. He pulls back the rug to reveal a television screen that briefs you on your secret mission. Once briefed, he shows you a concealed door where you tiptoe down to an underground passage way, only to find one of those arrays of laser-triggers, where you have to crawl underneath the lasers without setting them off. This leads to a whole underground lair, where you have to solve various puzzles to find the stolen plans, erase evidence of your intrusion, and disarm a bomb. It’s enormous fun. It’s hard not to think this will be the future of in-person entertainment in the era of the Internet. Sure, movie companies are loading up on gimmicks like 3D to force people into theaters, but it’s hard to see that working in the long-term. No, we should embrace the trend — let the Internet distribute every movie ever made and free up these physical spaces to provide the kind of experience that you can only provide in an actual physical space. I feel (have always felt) the same way about museums. Go to a local museum and look around — how much do you see that actually couldn’t be provided by a website or a book? That’s why I was so excited to visit the City Museum in St. Louis. In the dark days of St. Louis, when everyone with money had fled to the suburbs, an artist named Bob Cassilly bought a large abandoned shoe factory downtown. He and his friends begun using scraps and bargains to turn the place into a giant sculpture park. As you walk in, you enter the mouth of a giant whale, inside there are dozens of passage ways to crawl through and climb on, each filled with its own surprises and sculptures. Crawl down and you’re led through a network of caves which spiral upward and upward until you find yourself atop a giant eight-story slide. As you slide down, picking up speed, you literally ride through a giant classical organ, playing music so loud it shakes you to your bones. And that’s just the beginning. The City Museum has been so successful, its led a renaissance of downtown St. Louis. Part of the building has been turned into offices and trendy lofts and the neighborhood now has some trendy restaurants and a shuttle. I flew to St. Louis just to visit it and I don’t regret it one bit. But I am mystified by why there aren’t more places like these. There’s definitely a universe where I work on building more. Instead we get bland amusement parks, pretentious performances like Punchdrunk, and dull museums and galleries. New York City worked itself into a tizzy when artist Carsten Holler exhibited a slide a quarter of the size of the one at the City Museum. Surely a city of that size can support a place like this of its own. What am I missing? On Intellectual DishonestyDishonesty has two parts: 1) saying something that is untrue, and 2) saying it with the intent to mislead the other person. You can have each without the other: you can be genuinely mistaken and thereby say something false without intending to mislead, and you can intentionally mislead someone without ever saying anything that’s untrue. (The second is generally considered deceit, but not dishonesty.) However, you can be intellectually dishonest without doing either of these things. Imagine that you’re conducting an experiment and most of the time it comes out exactly the way you expect but one time it goes wrong (you probably just screwed up the measurements). Telling someone about your work, you say: “Oh, it works just the way I expected — seven times it came out exactly right.” This isn’t untrue and it isn’t intentionally misleading — you really do believe it works the way you expected. But it is intellectually dishonest: intellectual honesty requires bending-over-backwards to provide any evidence that you might be wrong, even if you’re convinced that you are right. This is an impractical standard to apply to everyday life. A prospective employer asks you in a job interview if you can get to work on time. You say “Yes”, not “I think so, but one time in 2003 the power went out and so my alarm didn’t go off and I overslept”. I don’t think anyone considers this dishonesty; indeed, if you were intellectually honest all the time people would think you were pretty weird. Science has a higher standard. It’s not just between you and your employer, it’s a claim to posterity. And you might be wrong, but what if you’re not around for posterity to call you up and ask you to show your work? That’s why intellectual honesty requires you show your work in advance, so that others can see if you’re missing something. Election Ballot 2011It’s like 2009 all over again. Everyone seems to have moved to the middle since last time — the decent candidates have descended into vague blandness; the terrible have begun spouting the same rhetoric. But, fortunately, this time there’s a candidate I actually quite like: Matt Nelson sounds awesome. Vote Matt Nelson.
School issues are inevitably depressing. Everyone says they oppose the achievement gap and so on, so, again, my first test was to see how people felt about standardized tests (ordered from opposition to support):
Happy Election Day! Steve Jobs and the Founder’s PainAfter reading the new biography Steve Jobs, the person I most identify with is Jony Ive. Ive and Jobs became close friends and collaborators, but Ive, “so instinctively nice,” found himself puzzled about how his good friend could be so mean:
Steve’s fits are legendary. “He would shout at a meeting, ‘You asshole, you never do anything right,’” recalls his director of finance, Debi Coleman. “It was like an hourly occurrence.” (124) “This is shit!” he yelled after seeing the first draft of the “Here’s to the crazy ones” ad. “It’s advertising agency shit and I hate it.” (329)
One way of reading this is that Steve Jobs is just a sociopath, someone who knows exactly where people’s weaknesses are and plays on them masterfully until they do exactly, precisely what he wants, without little concern about human consequences. But there’s another, more sympathetic reading. I think Jobs really did feel this way. He had such an intense aesthetic sense that even something as minor as the curve on the head of the screw could cause him enormous pain. And, like anyone in pain, he responded by lashing out at the people around him. There are some people who, when they’re insulted, can’t resist punching the person who insulted them. Steve wasn’t much for physical violence, but when something looked off to him, he couldn’t help screaming. I sympathize because I can see this in myself. Something that’s perfect just feels much, much better than something that’s almost right. When I’m doing something myself, I can just sit there and work at it until it’s exactly right. It’s embarrassing to launch a product with a bug in it! It physically hurts when I realize that’s what I’ve done. But as projects and companies grow, there are more and more people in between me and those tiny details. And then I face a choice: do I keep complaining until something’s perfect or do I just let go and consider it somebody else’s problem? Steve never let go. He continued to feel that founder’s pain about everything in his life. When it was his project, he’d make people stay late until they got it right. When it was his company, he’d go right to the person responsible, even if they were 5 levels down in the org chart, and make them fix it. (“After looking at a bunch of screenshots, Jobs jumped up, grabbed a marker, and drew a simple rectangle on a whiteboard. ‘Here’s the new application,’ he said. ‘It’s got one window. You drag your video into the window. Then you click the button that says “Burn.” That’s it.’” (382)) In fact, it didn’t matter whose company it was. He once sent his fresh-squeezed juice back to the kitchen three times in a row until they got it right (527); when his cable box was frustrating him, he called the CEO of Comcast. (“I thought he was calling to say something nice about it,” the CEO recalled. “Instead, he told me ‘It sucks.’” (489)) And that’s why I like Jony Ive. He too clearly feels that pain (he once insisted they hold up an entire product launch because he didn’t like the polish on the screws) but he doesn’t lash out at people about it. Instead, he sits down with the people involved and works to fix the problem until they get it just right. Ask Jobs about his viciousness and he insisted it was all for the best: “I’ve learned over the years that when you have really good people you don’t have to baby them…A-plus players like to work together, and they don’t like it if you tolerate B work. Ask any member of that Mac team. They will tell you it was worth the pain.” Even Debi Coleman agreed: “I consider myself the absolute luckiest person in the world to have worked with him.” But does it require so much pain? My hope is that I can be just as exacting, demand work just as good, without emotionally destroying people in the process. I want to be a perfectionist and a nice guy. I want to be Jony Ive. I hope it works — for my sake, and Apple’s. Thanks to Ben Wikler for suggesting this post. Apple and the KindleThe Amazon Kindle is full of all sorts of amazing, delightful touches — the sort of thing you’d expect from an Apple product. For example, when you first take your Kindle out of its (gorgeous!) box, it boots right up knowing your name and logged into your account. This is actually out-Apple-ing Apple: it’s possible because Amazon not only controls the hardware and the software, but the entire distribution channel; they know exactly who is going to get each Kindle. And think about how the original Kindle came with a lifetime unlimited worldwide data plan. Imagine how much that must have cost! All so that you never had to think about syncing again: your Kindle was automatically synced, no matter where it was in the world. Bezos must have spent tons of energy getting this stuff right. And he must be sitting there, pissed, that Steve Jobs gets all these laurels while no one ever recognizes the stuff he’s done. But I don’t think that’s because Jobs is a better marketer and showman than Bezos (that’s the easy way out); it’s because the small details that delight get buried under small details that annoy. For example, if you download a sample of a book and get to the end and decide to purchase the whole thing, the sample doesn’t expand to download the remainder of the book — instead the full book downloads completely separately and you have to manually copy over all your highlights and annotations to the full one. (You can’t just keep them in the sample because sample’s don’t even sync; you have to download a sample manually to each of your devices and hand-synchronize the page numbers.) Or (and this is incredibly aggravating) when you select a word in the Kindle, depending on how common a word it is, the option that comes up highlighted by default is either “full definition” or “start highlight”. Since e-ink’s refresh rate is so slow, you typically don’t see what’s actually come up until you’ve pressed the button for the second time. So I often “double click” on words to highlight them, but some percentage of the time this kicks me over into the dictionary and I have to hit back twice to get out. And this is all before I’ve even got to the disastrous incompatibilities between the Kindle device, the Kindle for Mac app, the Kindle for iOS app, the Kindle Online Reader (read.amazon.com), and the kindle.amazon.com social network — all of which are full of gruesome interface annoyances of their own. That’s the thing about delightful details: they’re not just another thing you can add on top. Unless you sweat the details all the way through the user experience, the ones that delight quickly get drowned out by the ones that constantly annoy. I hope someone at Amazon will take that to heart. Revolutions on the InternetI hate to wade into such a sterile debate as whether social media helps revolutions, but I made a point about it recently at a conference and people seemed to like it, so I thought I’d put it up here for posterity. Jon Elster has a four-phase theory of revolutions:1
It seems pretty clear that the Internet helps with 1 — after all, it’s brought together groups of crazy committed people about every other topic, from Smallville slash fiction to high-energy astrophysics. It’d be very surprising if it didn’t bring committed activists together too. It’s clearly helped with 2 — YouTube videos of protestors being mistreated by police have been a staple of the #occupy movement, even though they haven’t gotten much coverage on traditional TV; We are all Khaled Said presumably reached some people in Egypt. 3 and 4 are when the cable news and satellite television stations start joining in and when people support the protest just because it’s such a huge physical presence in their lives. Here, I agree, the Internet probably has less effect. The problem is that you never get to 3 and 4 without 1 and 2 — I don’t think it’s a total accident that all of these protests are happening now. I think they’re happening because 1 and 2 have been made much easier thanks to the Internet. It’s just that most people don’t hear about them until steps 3 and 4, which are carried much more by traditional media. They suffer from the understandable fallacy that just because they heard about it on TV, that must be how everyone else did.
A Better Travel Guide for GeeksPretty much anywhere you go, you can find some pretty scenery, a charming hotel, some decent restaurants, a couple of interesting museums. And the goal of most travel guides seems to be to tell you about these things. The result is a rather boring sort of tourism in which everywhere feels pretty much like everywhere else. What I want is a travel guide that highlights the things that are absolutely different about this place than anywhere else you might go — the things you can’t see anywhere else. For my hometown of Cambridge, it might be the window displays on Main St. that explain how to sequence DNA, or the architectural marvels of Stata, BCS, and Simmons. In Boston, maybe it’s the Athenæum or the Globe factory tour. In West Virginia, maybe it’s going to see mountaintop removal or some back-to-the-land communes. And maybe the right thing to do is to head somewhere else. Normal guidebooks are separated out by city and state, so if the coolest thing in Boston is actually to commute up to Providence, you’d never hear about it. But you’d put this guidebook on the Internet, so you’d give it your location and it’d tell you what was awesome nearby no matter what political jurisdiction it happened to be in. Anyone know anything like that? Related things: Ben Goldacre’s list of Nerdy Day Trips in the UK. jgc’s Geek Atlas lists cool science and technology places. Atlas Obscura lists curiosities. WikiTravel lets you add places of your own. I’m told Lonely Planet has some stuff like this. Smile When You’re Lying is an amusing account of the distortionary forces on the average travel guide. What Does Google Mean by “Evil”?Pretty much ever since Paul Buchheit suggested “Don’t be evil” as a corporate values statement (and Amit Patel begun writing it on whiteboards around the office), any time Google does something people don’t like, they begin calling it “evil” and complaining that Google is violating its prime directive. But surely “evil” means something more than just “wrong” or “bad”. If the girl across the street peers through your window to watch you undress, we might say that was bad and wrong and awful, but I don’t think anyone would try to claim it was evil. Evil is a really strong term! Now part of the joke is that Google seems to be using it rather loosely. If you look at their examples of evil deeds, they seem rather mundane compared to cackling supervillains and mass murderers. They specifically name three: showing irrelevant ads, using pop-ups or other annoying gimmicks, and selling off actual search results. Hardly the stuff of comic books. But what do these three have in common? They’re all instances of refusing to make things worse for your users in order to make more money. Perhaps that still seems like a mundane conception of evil, but I think it gets at something important. Evil isn’t just about doing terrible things — it’s about doing terrible things for bad reasons. The evil villain cackles and brags about how they’re on the side of evil — they explicitly oppose doing good. And this definition of evil is all about that: if you’re working against your own users, you must have crossed the line and joined the other side. When you stop to think about it, it’s wild how many companies have done just that: Printer manufacturers who put chips on their ink cartridges, so you can’t refill or recycle them but instead have to buy a new full-price cartridge. Apple preventing the Kindle app from having any sort of ebook buying functionality. Web publishers who break articles up into 20 pages so that you have to load 20 different ads just to read one article. These are pretty banal evils, but it’s striking that I can’t think of any example where Google has done anything like that. (Perhaps someone will name one I’ve missed in the comments.) There are lots of things I disagree with Google about — the most recent being their refusal to let my friends with chosen names use Google+ — but those things aren’t evil by this definition. For example, Google defends their real names policy by saying it’ll lead to better conversations. They still claim to be fighting for the user. So if you want to argue with Google, that’s the way to do it: don’t say that they’re hurting someone out there in the world or violating some rule or principle, say that what they’re doing isn’t serving their users. Because that’s the line Google’s afraid to cross. Thanks to Kragen Sitaker for discussions that inspired this post. UPDATE: Chris Soghoian observes Google refuses to add Do-Not-Track support to its browsers or servers in order to maximize ad profits. Scott Teresi suggests Google’s refusal to provide customer support (in order to save money) qualifies. Tom Slee reminds me of their infamous net neutrality deal with Verizon. John Gruber argues that having ads at all is evil in this sense. Mark Heath points to those infuriating YouTube ads. Understanding Groupon Means Understanding ACSOIImagine you started a business that delivered people a box of cereal each week. Each week they pay you, you take their money and buy a box of cereal and some shipping, and keep what’s left over. You learn that the average new customer brings in $50 in profit over their lifetime, so you decide to spend some of that money to get new customers — say, by buying web ads. With web ads, you can say exactly how much you want to spend for each new customer. Now the future isn’t necessarily like the past — things could go wrong — but it seems safe to, say, spend $5 to get a new customer. If the future is like the past, you’ll make $45 each time you do this. And even if future customers are only half as good as current ones, you’ll still be making $20 each time you do this! How much money should you spend on marketing? Well, others have started to notice you making money hand-over-fist and have decided to start competing. Best to get people hooked on your service than on theirs, right? And each dollar you spend now is going to bring in ten times later, so it’d be crazy not to spend everything you could, right? You’re only making $10 million a year right now o you get your investors to put in another $100 million and quickly spend it all on marketing. Now by traditional accounting standards, you’re $90 million in the red. But that seems like a misleading way to count. After all, if you stopped marketing tomorrow you’d have a nice, profitable $10 million a year business. Instead it makes sense to look at the $10 million dollars a year you’re making on the one hand and your aggressive expansion plan (in particular, how much it costs to get a new customer and the lifetime value expected from a new customer) on the other. This, as best as I can tell, was the story of Groupon. They called that first number (the business you have now, aside from the expansion attempt) ACSOI. But the press didn’t seem to understand any of this. Groupon was pilloried for playing accounting games that turned a huge loss into a moderate profit. And when, in response, Groupon took the ACSOI numbers out of their prospectus, it was hailed as a victory over fraudulent accounting. Which all strikes me as ridiculous. Groupon didn’t hide the fact that they were losing money by traditional accounting standards. They said so up front, but then provided the additional data that they use internally. Just some additional information, no pressure: “While we track this management metric internally to gauge our performance, we encourage you to base your investment decision on whatever metrics make you comfortable,” they said. How does taking this information out of the prospectus help anyone? Now there are valid questions about this model. Perhaps the future won’t be like the past, perhaps Groupon’s cost-per-acquisition is way too high, perhaps trying to grow so fast is risky. Or maybe Groupon is presenting misleading ACSOI numbers and even if they stopped all marketing today they’d still be losing money. I’d genuinely like to know. But the discussion needs to start with understanding what they’re saying, not just pretending they’re making stuff up. How Apple WorksWho takes over for Steve Jobs?1 John Gruber recently posted his argument for thinking it will be COO Tim Cook. The biggest point in Cook’s favor is simple: “He’s already run the company while Jobs has been on leave.” That’s true, but it’s less meaningful than it sounds. But to understand why, you need to understand how Apple works. In the same way that Google is a company driven by engineering or Amazon is driven by operations, Apple is driven by taste. Here’s how Apple products are created: a team of designers decide exactly what a product should do and how it should look and feel, their work is ruthlessly edited by Steve until he approves, and then the entire rest of the company is given the task of moving mountains to make that dream real. Tim Cook is in charge of that third step. And he’s done a masterful job of it, accomplishing endless miracles never been seen by the public. Apple engineers have invented entirely new chips to fit the specified processing power into the tiny cases required by the spec; they build entirely new factories with entirely new production processes just to perfectly match the shade of pink in the original design; they’ve created a revolution in logistics to ensure these amazing products get into customers’ hands on launch day. Cook runs this process, and there’s no doubt he’s brilliant at it. But it’s about fulfilling Jobs’ dreams, not forging new ones. He can continue to run the company while Jobs is away because he’s continuing to ensure the execution of designs that Jobs has already approved. But Apple can’t run indefinitely on old plans. The only reason it works for Cook to be in charge while Steve is away is because Steve is still around, doing ruthless critiques of yet-to-be-invented products from his sickbed. The only person with the credibility to helm Apple in the long run is a person who can do those critiques. And for all Cook’s brilliance, I’ve seen no evidence he’s a master of great taste. His creativity is at achieving a predetermined goal, not about deciding what goal to achieve. As Gruber says, whoever takes Steve’s place will be someone already at Apple. Not just because all the other options are absurd, but because Steve has spent the past decade or so carefully training his top lieutenants about how to do every aspect of his job. It makes no sense to hire from outside that elite group. But within that group, there’s only one person who makes any sense as tastemaker-in-chief: Jony Ive. This becomes obvious if you just watch the keynotes. Steve Jobs is well known for raising the product keynote to an art form. But the others who have taken over the speaking job in recent years — Scott Forstall, Phil Schiller, Tim Cook — seem like clumsy kids trying to fill the shoes of the master. There’s only one person at Apple who gives talks with the elegance and style of Steve: Jony Ive. Now the big criticism of Ive is that while he is clearly one of the most brilliant industrial designers in the world, he’s shown no aptitude for software design. It’s hard to know whether this is true. The Mobile Design Awards credited Ive with the iPhone’s user interface, but the patent credits Jobs and Forstall and a dozen others, but not Ive. But even if Ive never designed a piece of software in his life, it’d be beside the point. I can’t imagine Jobs has either. What’s needed atop Apple is not creative brilliance — they have a design department full of that — but editorial taste. Like the director of a film, Apple’s CEO needs to go through the thousands of creative ideas developed within Apple and decide which ones should be approved for production and which ones need to sent back for more work. It’s impossible to imagine Apple functioning without this role. (Would Apple splinter and start developing all sorts of random unapproved products like Google under Eric Schmidt?) It’s impossible to imagine Tim Cook filling this role. (How can he be tastemaker for the whole company if he can’t even pull off a decent keynote?) And it’s impossible to imagine this role being anywhere but at the top of the org chart. (It’d be like crediting a film to the producer instead of the director.) No, if Apple is to continue, it will be with a tastemaker at the top. And there are no serious candidates besides Ive.
Want more? Check the archives. |