People are Finally Noticing the Vapidity of Popular Science Books

Joel Spolsky has it right: the nonfiction popular science books of recent years are really not that good.

The formula is to resemble a book by, say, Jared Diamond, but to have no actual intellectual content. Come to surprising conclusions based on anecdotal evidence. Give catchy names to your ideas (alliteration is a must).

I first noticed this when reading The Long Tail, a book written by a Wired magazine editor who decided to turn a poorly reasoned article into a whole book. It amazed me that someone could write a whole book about economics without betraying any actual knowledge of economics.

It’s sort of like the string theorists who keep writing the same book over and over about how great string theory is. In Malcolm Gladwell’s case, however, it’s like a string theorist writing a cookbook. Yeah, he’s probably smart in his own field, but why should you listen to him about anything else?

It’s a symptom of intellectual laziness. We want to think we’re reading some intelligent nonfiction book, when it’s really just pure entertainment.

What’s worse is that it makes the author look like he takes himself too seriously. The world can’t be packaged up into neat little theories with clever names. Moreover, the parts of it that can be simply aren’t that interesting!

Why Are CEOs On a Different Pay Scale?

CEOs make a lot more money than I do. I think I understand why. It’s because CEOs are the kind of people who really want to make lots of money.

It’s sort of like investment banking. The reason people at investment banks got such ridiculous bonuses was because the companies were full of people who really, really wanted to be rich.

The job of a CEO is so difficult to quantify or evaluate that it’s tough to say who actually deserves the pay. At a good company, the CEO should have very little effect on profits or strategy. At a bad company, there’s nothing the CEO can do to fix things. The salaries and bonuses are difficult to justify. They persist because executives more or less set their own salaries.

Engineers think of this differently. We all want to be in the lab working on cool stuff as much as possible. If we can hire someone to manage the business so that we can go back to the lab, we don’t really care how much it costs (as long as the company can afford it). In small companies, the major job of the CEO is to deal with investors, and being freed of that hassle is priceless to engineers trying to work.

This is Why People Don’t Like the Police

Hayward had a problem: someone crossing the street was almost hit by a car. The intersection was too close to other stoplights to put in another light, so somebody came up with another solution: the police hold quarterly crosswalk stings.

This would be okay if they had just been warning people, but no, plainclothes police officers crossed the street in front of cars, and if they didn’t stop, the drivers got a $300 ticket. The Hayward police ticketed 153 people in 90 minutes, netting the city about $45,000.

Ticketing people would acceptable if it solved the problem, but it doesn’t. Most of the drivers are paying attention when they don’t stop for the pedestrians. It’s the infrequent few who aren’t paying attention that cause all the trouble. A better solution would be to redesign the street crossing so that drivers can’t ignore the pedestrians. Make the crossing at sidewalk level and grade the street up to it. Add blinking lights with motion detectors.

The job of the police is to promote public safety, but they have to consider the tradeoffs involved. A $45,000 tax on unlucky drivers that provides at most a temporary safety benefit isn’t a good tradeoff.

Videos From PyCon 2008

YouTube has videos from PyCon 2008. There’s some potentially good stuff there. It’s nice to see some of the faces behind the software I use.

What Do These Science Museums Do?

Someone at work recommended that I check out The Tech Museum of Innovation. It reminded me a lot of Chicago’s Museum of Science and Industry. I guess it’s really a museum about what all the large corporations around here do, since they provide much of the funding.

Museums like this puzzle me. They’re really just collections of stuff, like the old fab equipment in the microprocessor exhibit, with little interactive toys to make things less boring. Sometimes the toys are meaningful, but frequently, they’re just toys.

People don’t go to these museums to learn. They go to be entertained while they pretend to learn. It’s like watching a wildlife documentary where unrelated footage is spliced together to make it look like there’s an epic chase going on. Yeah, you’re probably learning a little bit, but you’re really just getting the highlight reel. It takes a lot longer to understand the nuances.

I think these museums would do much better by focusing on classes. It’d be like going to school on the weekend, but it would be at a really, really awesome school. Adults could watch the kids in the class or go get a tour led by somebody who actually knew what he or she was talking about. For example, right now, Applied Materials gives money and old equipment to the museum for the semiconductor fabrication exhibit. Maybe in addition to that, they should pay retired fab engineers to go give tours part time. Meanwhile, the kids would be doing a lithography lab class, making masks with magic markers on transparency paper or something.

The silly computer-based exhibits are probably the dumbest things museums do. For one, the computers are broken half the time. Secondly, I have a computer at home! Why not put this on the web site? Thirdly, they never turn out to be that interesting anyway.

Maybe next weekend I can go to The Exploratorium. I think they understand most of this stuff to a large degree. I get the feeling that most museums are probably run by professional educators, but the Exploratorium (at least, historically) has been run by scientists and science educators. Also, I think their funding has fewer strings attached than most museums.

I Think I Understand Diesel Price Variability

One of the weird things about driving a car that runs on diesel these days is finding the lowest fuel price. When prices are stable, there are generally a few places that consistently charge the least for diesel. But when prices are volatile, everybody’s price is different, and you can never predict who will be cheap. Given that diesel is the same everywhere, why would any gas station think it could charge 30% more than everyone else?

I’ve got a theory about this. The independent gas stations are probably buying fuel on the spot market. They fill up their tanks at whatever price they have to pay. Once they’ve bought the fuel, they can raise their price if the spot price goes up. If the spot price goes down, though, they don’t want to sell it at a loss. So they leave their price a little above what they paid for it and hope the spot price goes back up to match it.

This kind of reasoning would explain why diesel prices vary by almost $1/gallon around the Bay Area right now. I’m sure something similar happens for gasoline, but with fewer diesel cars, I think the fuel inventory turnover is probably slower.

Anecdotal evidence on the web suggests that gas stations don’t make much money selling gas anyway. I’ll bet they make more money off cigarettes, booze, and lotto tickets than diesel.

Before You Write Something in C++…

Before writing thousands of lines of beautiful, highly factored C++ code for a project, I wish programmers would ask themselves, “is this the best way to solve the problem?”

For example, say you have a robot, and you want him to move across the room to the fridge and get you a soda. You could write a program that looks like this:

goToFridge()
openFridge()
getCoke()

and then write those functions based on what the room looked like and where the soda was in the fridge.

That’s no fun, of course, because the program would only be a few hundred lines long and you’d have to get back to doing real work.

An alternative approach would be writing an abstract base class called Robot, then a BipedalRobot derived class, then a RedBipedalRobot class derived from that. A fridge is just a particular kind of object with a door, so you’d want to derive it from RealWorldObject and CoolingApparatus (itself a subclass of Apparatus). Of course, Coke is a type of Soda, which is a Beverage, which is a Liquid, which is Matter.

All this abstraction is nice, because if you ever get a blue bipedal robot, you can just create a new derived class for it without having to reimplement functionality common to all robots. For example, you can keep checkActionAgainstThreeLaws() in the base class.

To keep things generic, the robot’s actual path should be stored in an XML file. This means you’ll have to write a custom XML parser with its own object hierarchy for representing the data. That way, if the fridge ever moves, you’ll just have to rewrite the 1500-line XML file instead of the 100-line goToFridge() function.

I guess the point of this rant is that whatever your problem is, C++ is probably not the solution to it. Very few programs need to run so fast that C++ is necessary. Also, complicated object hierarchies save a little bit of code by adding potentially tremendous complexity. Before you use these tools, make sure the benefit is worth the cost.

Ski Bus?

Has anybody done a ski bus to Tahoe? A 4am bus to Tahoe sounds pretty good compared to the 4am drives to Colorado I used to do. They even do weekday trips. The only potential problem I see is that you have to make advance reservations, and the bus only goes to one resort per day, so it’s impossible to plan around the snow!

Book Buying Binge Continues

I remain on a textbook buying binge. Today I got the works of Steven M. Kay: a book on estimation theory, one on detection theory, and one on modeling random processes in Matlab. They all seem to be pretty well-regarded, and all map pretty well onto my current job (or at least what I want to be doing at work).

The fact that my last 5 or so book purchases have been senior/grad level EE textbooks is a bit disturbing. I’m taking it as a sign that I miss school. People at work have been pointing out that I only miss the agreeable parts of school, and that I’m really better off where I am.

The problem is forcing myself to actually benefit from the books. I guess the ideal thing would be to get work to pay me for self-study time. I’m not sure why this isn’t a common, advertised benefit around here. Also, a buddy to work through these books would be nice. Signing up for a course at SCU might be good, or it might just be frustrating like half my classes at UIUC were.

Surely other people in Silicon Valley have had this problem and solved it.

Forcing Competition Is a Punt

Competition is a means to achieve optimization. There’s nothing sacred or special about it, except that it aligns with our sense of fairness.

Free markets, for example, are just a way to optimize resource allocation. Ideally, the people who do the best job at allocating resources make the most money. This works better than central planning for many reasons, but mostly because a lot more ideas are tried.

Deming is clear on this point, however: if people cannot control their success or failure, asking them to compete does not solve the problem.

Schools and teachers are in this category. Teachers cannot get kids better test scores by teaching harder. Schools stretching budgets to the limit can’t get more money by working harder. Competition can’t solve structural problems.

Whenever a politician says, “I support competition,” what he’s really saying is, “this is not my problem.”

In Defense of the Fractional Reserve Banking System…

I’ve been hearing conspiracy theories about the fractional reserve banking system. The argument is fascinating, but seems unsound to me.

The idea starts with the fact that banks create money through loans. They take your $100 and are allowed to lend out something like $90 of it. This means that there’s now $190 of money. If the $90 gets spent and then deposited somewhere else, that bank can lend out $81, so now there’s $271 of money in various people’s accounts. This is the fractional reserve system creating money.

The conspiracy theory is a simple observation: most of the money floating around in the world originally came from a bank loan, and somebody is paying interest on it. The loan plus interest get paid back to the bank, and now the bank has more money than it started with. Eventually, some hypothesize, the banks will have all the money, and we will have none. This is how Scrooge McDuck ended up with a giant vault full of money to swim around in.

There are lots of reasons why this doesn’t make sense. For example, bankers don’t horde all this money! A bank pays the employees, the government, and the depositors, with a little bit left over for profit. Because the banking market is competitive, the profit is more or less based on supply and demand.

Imagine a world where bankers did horde all the money. What good would it do them? A giant pile of money is only worth something because you can buy things with it. If the bankers horded all the money, we’d end up looking like medieval Europe, with all the bankers living in castles. There would be nothing to buy except weapons to defend against peasant uprisings. Unfortunately, they’d have to buy them from an economy where bankers weren’t hording all the money.

Another Sunday, Another California State Park

Today it was time to hike in Castle Rock State Park in the Santa Cruz Mountains. It’s really more of a rock-climbing destination, but somebody suggested that it’s one of the few parks in the Santa Cruz Mountains with good views, so I went to see them.

The park’s main attractions are its large sandstone formations. About 5 miles of trails meander around these rocks, and you can see all the way to the ocean about half the time.

Being 20 miles from San Jose, however, the park is right next to a gun range, and close enough to Highway 9 that you can hear the motorcycle racing. The views are nice, but the park isn’t exactly a wilderness experience. As I left, I passed three groups of about a dozen rock climbers each making their way to the sandstone. In the parking lot was a giant van labeled “REI Adventures” or something like that.

Weekends in the Santa Cruz Mountains: it’s like being in the city, but with trees instead of houses everywhere.

Level of Discourse

Wikipedia says that only 27% of Americans have completed any education beyond high school. I wonder if this is the reason that national politics reminds me so much of high school.

Software Complexity Increases

Somebody at work made an interesting point yesterday: the problem with complex systems is that you can no longer reason about them effectively. You want to build systems so that you can make definite statements about the things you care about, such as latency or memory usage. Complexity denies you this.

Low-level programming is tedious and difficult, but you can reason about it. You know that malloc() has the potential to be slow, so you avoid calling it in your inner loop. As you add more and more layers of abstraction, the system seems much less deterministic. You have no idea when a garbage collector might interrupt you, or when Windows might start downloading updates, or when the disk defragmenter might start up.

This is a huge reason why my 2.5-GHz computer doesn’t seem much faster than my 100-MHz computer a lot of times. We’ve added abstraction, making the system more complex. This has forced us to add code to deal with all that complexity.

Software engineering has to be the only field where people assume additional complexity is the answer.

Cookies Successful

People at work loved the cookies. I guess the New York Times knows what they’re talking about.

Cookies: The Conclusion

Tonight I baked my ultimate cookies.

They’re interesting. A little bit of everything. There’s a soft, chewy center. There’s the slightly crispy outside. Then there are the little bits of salt on the top. Every bite is different.

I’m taking these guys to work tomorrow. We’ll see what other people have to say.

These Cookies are Hard Work!

I’ve been wanting to try a new cookie recipe for awhile: The perfect chocolate chip cookie. It uses equal parts cake and bread flour, asks you to cream the butter with the sugar with a real mixer “until very light,” requires chocolate with 60% cacao or higher, and insists that you age the dough in the fridge for at least 24 hours.

My food book says that cake flour is chlorinated to enhance its ability to absorb water and disperse fats in the batter. It also says that it’s banned in Europe because the chlorinated starch accumulates in body fat.

I went a bit overboard—for example, buying a scale to measure the flour by weight instead of by volume. This is something I’ve been wanting to do for awhile with my pizza dough. I’ve heard that bakers do everything by weight because it’s much more consistent.

The dough is aging at the moment. It looks very different from the cookie dough I’m used to—very light and fluffy instead of the usual dense stuff.

I figure these cookies cost something like $1 apiece just for the ingredients. I hope they turn out well, because I’m going to have to make a lot of them to use up all the cake flour I just bought.

Better to Be Lucky Than Good

I love this phrase: “better to be lucky than good.” To me, it succinctly states the issues of correlation not implying causality.

Think about it. Until this year, CEOs of investment banks could have done virtually anything and still made money. If they had been good at their jobs, they would probably have made less money (well, until this year).

Think of the worst manager you’ve ever had. That guy succeeded at some point and got promoted. Was it hard work or luck? Both pay the same.

Competition Doesn’t Always Work

I’m reading more W. Edwards Deming. He constantly asserts that incentive pay systems do more harm than good. There are many reasons, but the main point is that paying people more to work harder assumes they aren’t working as hard as possible in the first place.

It seems like competition is usually used to solve an optimization problem. You want to make more widgets, so you pay people based on the number of widgets they produce. People want to earn more money, so they’ll do whatever they can to increase their own widget count. You, the manager, are freed from the chore of finding problems with the widget-making process, and you can think about golf instead.

Unfortunately, people can only change what they can control. If you’re making people use crummy materials, cheap tools, or a broken process, there’s nothing they can do to fix it.

It’s worse than that, though. In a competitive atmosphere, cooperation is forgotten. There’s a strong incentive to hoard the good tools and finish one’s own work before helping a new guy. Overall productivity could go down.

The same thing happens when you pay managers by how their group performs. It’s a prisoner’s dilemma. Mutual distrust wins. The company loses. Proof: every IT department, ever.

What’s a better solution? Deming suggests leadership. Upper management should be constantly studying the business, fixing what’s broken. There’s no substitute for studying and understanding the business. This implies that applying half-baked business fads because they worked somewhere else doesn’t cut it.

There are tons of great examples in Out of the Crisis. A woman performed abysmally compared to her peers in some manual task. Managers discovered that she merely needed glasses and didn’t know it. Another made too many defects. Someone asked her why, and she explained that nobody had ever trained her. This was remedied, and she no longer made mistakes.

Competition between employees wouldn’t fix these problems.

Portola Redwoods

Today I hiked up in Portola Redwoods State Park, to Peters Creek Grove. It was wonderful and relaxing. In 6 hours, I only saw three people.

The downside: I finally know what poison oak looks like. It helpfully turns bright red this time of year so it was easy to avoid. One section of the trail (just past the rusted-out old car) was pretty overgrown, however, so I guess I’ll see if I was careful enough pretty soon now.

Driving back on Skyline Boulevard and Highway 9 was an adventure, as always. There are no speed limit signs on Skyline between Alpine/Page Mill Road and Highway 9. Judging from other traffic, I’d say the limit is somewhere between 5 and 100 mph, depending mostly on what kind of car, motorcycle, or bicycle you have.

Highway 9 is the road that motorcycle racers come to the Bay Area to ride up and down. They ride it enough to know where it’s dangerous, but it’s still scary to share the road with them and the much, much slower bicyclists. What’s particularly insane is that these guys actually expect 1 in 100 riders to hit a car, yet they keep racing.

Engineering Philosophy and Lifestyle