What an extraordinary read. The shortest way of summarizing Bowles’s book is that it was a synthesis, and a deepening, of every behavioral-economics work I’ve read before now, with substantially more theoretical support; it supersedes all those earlier works. It embeds all of them in a rich economic structure that nearly takes institutions as a given and works within that structure; it only avoids completely taking institutions as given because it knows that so many of its readers are used to an economic framework that ignores them.
I’ve already said most of what I want to say about this book. I’ll just reiterate that it should be required reading for anyone steeped in the standard economic orthodoxy. In particular, Bowles should write a version of this book aimed at Econ 101 students, to keep their minds more open than those classes tend to. College students with an introductory econ education are frightfully likely to become Objectivists; avoiding this outcome would start us down the road to a social optimum.
slaniel | Uncategorized | Tuesday, May 22nd, 2007
Some people call it kill -9, but I think it’s substantially more fun to call it by its more-symbolic name: kill -KILL.
slaniel | Uncategorized | Tuesday, May 22nd, 2007
Python often dumps out distinctly unhelpful error messages; see below the fold for the example that’s bugging me at the moment. Unless I’m missing something obvious, this doesn’t tell me what I need to change in my code to make the problem go away. It says that somewhere in the stack, there is a constructor that takes two arguments which has only been fed one. Both of the init() functions defined in my code take two arguments, so they’re not the problem.
I suppose implementors could write their exception code better, so that we’d get helpful error messages everywhere. We can’t rely on developers to do that, though. Seems like a compiler flag to force developers to handle all exceptions would be nice, and would prevent at least some of these unhelpful stack dumps.
(more…)
slaniel | Uncategorized | Tuesday, May 22nd, 2007
Holy cow! Illustrious stevereads.com reader mrz — known to the wider world as Mike Zucca — and his wife Allison Macy-Zucca, welcomed their daughter Madeleine Irene Zucca into the world at 11:17 a.m. today. She weighed 7 lbs., 10 oz. Much love for the newly enlarged Macy-Zuccas.
slaniel | Uncategorized | Monday, May 21st, 2007
If you’re looking for the paper with that title, by Dean Foster and Peyton Young, Google gives fairly limited results. However, “Stochastic Evolutionary Game Dynamics” is available on Foster’s website, and is linked from his Research page.
There. I have done my Googling duty for the day.
Comments Off
Bowles’s Microeconomics has hit me like a revelation. It deeply and grandly reconnects economics with political science and with moral theory, and gives a sound mathematical and empirical basis to both. It steadfastly resists dogma, even while arguing persuasively for behavioral economics and a realistic socialism. It is a work that could only have come from someone who’s studied the issues and listened patiently to his opponents for many years.
Bowles’s fundamental contention is that it doesn’t make sense to study economic interactions in isolation; such an interaction cannot be understood outside of the institutions that make it possible. The simplest example here would be the free market: markets exist because the government will defend your private property with guns; because the government will enforce contracts; because private property is freely exchangeable by such contracts; etc. Without those protections, there would be no free market.
So Bowles zooms in. Consider economic actors behaving inside of the market. They are participating in a game that evolves over time by rules that the institution sets. But at the same time, an institution can be viewed as the endpoint — equilibrium — of a game; institutions themselves change over time, for at least a few reasons that would be valuable to study:
- Invaders from outside the institution. Consider, for instance, a nomadic bartering society which has just been attacked by a Western capitalist power, and consider what effect the invasion will have on the bartering society’s existing institutions. Will barter survive, or will it be supplanted by the market? (Of course we’d need to consider that the invader may have more guns. This may or may not be a part of the economic model itself.) Under what conditions could barter be expected to continue?
- Technological change within the existing institution. Consider the effect of the printing press within a pre-industrial society.
Bowles makes the case strongly — if implicitly — that ignoring institutions, or more specifically treating them as a settled affair, has left the most interesting problems beyond the reach of economics. Why do institutions change at all? Under what conditions will an institution resist invasion by novel institutions? By asking questions like these, we can turn economics into the quantitative study of problems that interest all humans — not just the very limited problem of how a market with alienable property and complete contracting will evolve.
To address these problems, Bowles has a number of tools at his disposal, but two important ones are worth calling out:
Evolutionary game theory, particularly the Evolutionarily Stable Strategy. An ESS is a strategy that will successfully fight off invading strategies. ‘Belief in a supernatural being,’ for instance, may be a strategy, with atheism viewed as an ‘invader’. (Without thinking too hard about it, it seems that we’d have to explain the empirically observable fact that theism is an ESS. I don’t quite know whether a strategy is an ESS if it will survive as time goes to infinity, or whether finite time is what we need.)
Bowles gets tremendous power out of the simplest models. Imagine we’re divvying up some shared resource, like a large animal that we’ve all just felled in a group hunt. Suppose there are three kinds of people in our society: Grabbers, Sharers, and Punishers. Sharers will try to share any resource before us. Grabbers will always try to steal it, and we can state some conditions under which they’ll tend to dominate Sharers. Punishers, when faced with a Grabber, will team up and try to fend him off, with a probability of success that increases with the number of Punishers in the group; when there are no Grabbers around, Punishers act like Sharers. If they succeed in Punishing the Grabber, they will split his stolen goods evenly amongst themselves.
Now, with those stipulations, under what conditions will the society fill with Punishers? Under what conditions will Grabbers come to dominate? The answer clearly depends on how many of each type we start with, though it may be that Punishers will always dominate Grabbers, and that over time the proportion of Punishers in the population will rise. The initial intuition is that Punishing dominates Sharing if there are enough Punishers in the population, because Punishers get just as much as Sharers do when faced with Sharers, and also have the potential to get resources from Grabbers. The answer, though, depends on the exact numbers.
What does any of this have to do with anything? The great beauty of it is that in just a few pages Bowles has sketched out a quantitative reply to the debate between Hobbes and Rousseau. Under appropriate conditions, a culture based on mutual punishment for theft can, in fact, persist and remain stable against invading strategies — a reply to Hobbes. Of course any realistic model would have to factor in far more variables than this, and would have to consider far more types of people than the three we’ve listed here. But it’s a start. And it’s empirical, which is an improvement over mere thought (‘The method of “postulating” what we want has many advantages; they are the same as the advantages of theft over honest toil’). And it extends economics far beyond the interaction of homogeneous actors in financial markets.
Incomplete contracting. It has been known since at least Herbert Simon’s paper “A Formal Theory of the Employment Relationship” that employment agreements cannot be treated like contracts for the exchange of commodities: in the latter case, the contract can completely specify what I will get out of the trade, and what I will give you in exchange. Employers, by contrast, cannot perfectly monitor your or my work; the contract is incomplete in that sense. Incomplete contracting, in Bowles’s analysis, gives rise to a great range of institutions; all are based in some way or another on trust, and how we respond when trust is missing. The most straightforward modification of the complete-contracting model to employment is the contingent-renewal model, in which I incompletely contract with you for a job, I hold that job for a while, and at the end of a period of time you renew the contract if you think I’m doing a good job — or fire me if you don’t. This seems to be a much more realistic model of how employment works, and Bowles uses it to good effect.
I should mention, in the employment-contract context, that Bowles is gifted at telling me things that I should have thought of on my own. E.g., if employment could be completely contracted, then why would a boss be necessary at all? And he praises the Fundamental Theorem of Welfare Economics — namely that under certain precise conditions, the free market implements an economic optimum — but thoroughly refutes its application beyond those conditions. For instance, the Theorem requires that economic actors be price-takers (i.e., they exist in a large, undifferentiated market, and do not have the power to set prices). He then notes the standard question that every Econ 101 student should have (but I’m not sure that I did have): if no one has the power to set prices, then how do prices change?
Bowles’s book is invaluable for
- Studying the growth and change of markets, where Econ 101 would tend to depict markets as settled problems with static equilibria;
- Introducing the reader to a host of tools that are valuable well beyond economics, particularly those of evolutionary game theory;
- Extending the scope of economics to moral and political theory, where its roots lay.
It is an absolute masterpiece, which I would recommend to anyone who prefers to think concretely.
Comments Off
slaniel | Uncategorized | Monday, May 21st, 2007
It seems pretty clear that the expected number of offspring an animal has will be larger if the animal’s lifespan is shorter. But can someone point me to good quantitative models that estimate the number of offspring as a function of lifespan? The simplest way would be to just gather average offspring statistics, and average lifespan ones, from a large number of species, then do some graphing and see if any pattern emerges; maybe we’d see that the graph looks linear or quadratic or something. But is there any more sophisticated model for this sort of thing?
Comments Off
slaniel | Uncategorized | Sunday, May 20th, 2007
I put enough links in my delicious feed (RSS) that I thought it would be a good idea to mention it here. I use it either
- when I want to bookmark things for my own use,
- when I find a link that I’d like to pass along without commentary, or
- when I have enough commentary to fill up a text message, but not much more.
So it’s good for toss-offs. The activation energy for links from this blog is somewhat higher, so I guess the signal-to-noise ratio on the delicious feed will be somewhat low []. Still might be interesting.
One nice thing about delicious is that it built tags, RSS, and sensible URLs into everything it did from the beginning. So for instance, if you want to get an RSS feed of just those items I’ve tagged “python”, the URL for that feed is delicious/rss/slaniel/python. One might like to search for all items tagged ‘python’ AND ‘twisted’ using “delicious/rss/slaniel/python/twisted”, but it was not meant to be. And that style of URL construction wouldn’t naturally suggest what to do with logical-OR, so it may not be the right design.
One of the features on this here blog (i.e., not the delicious feed) is that you can view all posts except those from a given topic by appending ‘?exclude=keyword’ to the URL. (E.g., all posts except those whose URL contains ‘free software’ — a popular exclusion among my friend Jon Sung.) Delicious says they hope they can do that in the future.
Two final notes about delicious:
- The Firefox delicious plugin is radtastic (a word that I’m pretty sure I got from Jon).
- Thanks go to Adam Rosi-Kessel for getting me on the delicious bandwagon to begin with.
[]: Yes, that was a somewhat confusing mixed metaphor.
Comments Off
I am intriguèd:
A recent rant of mine mentioned cities, which led to a meandering discussion about cities and rural areas on my board, and led me to realize that not enough people have read Jane Jacobs.
Many have; her The Death and Life of Great American Cities (1961), a celebration of city neighborhoods and a warning that they were being destroyed by the czars of urban renewal, has gone in forty years from iconoclasm to curriculum.
But even better are the less read The Economy of Cities (1970) and Cities and the Wealth of Nations (1984), twin volumes which do nothing less than demolish and rebuild macroeconomics. Economics went wrong, she explains, with the work her titles allude to, Adam Smith’s The Wealth of Nations. Nations aren’t the proper unit of macroeconomic analysis; cities are.
I kind of don’t know if I should read any further than that. I loved Death and Life of Great American Cities, and I’ve just been waiting for the appropriate recommendation to drive me on to her other work. Mark Rosenfelder’s Zompist site is erudite, eclectic and articulate (witness “What’s Wrong With Libertarianism” and “The last century — what went wrong”), so his recommendations carry a lot of weight with me.
I realized today that the recommendations of near-strangers on the Internet carry outsize weight with me. E.g., a dude recommending that I get “Tehillim / The Desert Music” by Steve Reich. I think it’s the other entries on that blog (as well as Chicken Chicken and the corresponding video) that convince me the guy is cool, which then gives his recommendations the same weight I might attach to any cool person I meet at a party. I’d be interested in seeing studies on
- How people attach reputation to strangers on the net.
- What support they need from other sources before they’ll attach that reputation.
- How closely Google’s PageRank approximates that reputation.
- Which of the real-life mechanisms for reputation-attachment carry over onto the Net.
Relatedly, I don’t feel much of a pull to buy stuff on Amazon based on Amazon recommenders, perhaps because I’m normally not reading the recommenders’ other suggestions; if someone recommends a particular novel on Amazon, I know no other background about the reviewer that would encourage me to follow his recommendation. If I’m right, it seems like Amazon could make more money by treating their users’ recommendations like they treat their books — i.e., “Joe Smith’s tastes are a lot like yours; why don’t you take a look at his reviews?” In effect, they’d be turning individual reviewers into brands — “microbrands,” if you will.
Comments Off
slaniel | Uncategorized | Saturday, May 19th, 2007
Talking Points Memo is doing a great service to journalism and to the world at large, but sometimes it suffers from Liberal Blogger Disease, whereby stories that it links with great fanfare as proof of the other side’s illegitimacy turn out not to be. See today, for instance. The intro leads you to expect that you will find evidence of Mitt Romney’s flip-floppery, and some more damning he-is-not-a-Republican video. As it turns out, the video is highly uninteresting. It’s Romney basically arguing that people should work together more, and not try to latch onto actual principles which might make other people feel bad about themselves. It’s perfectly non-controversial. It will score us no political points at all; it won’t even continue the work of painting Romney as a serial flip-flopper.
One thing our side needs to learn is that the country suffers from outrage fatigue. We need to pick and choose wisely when we point out things that we think people should care about.
Comments Off
slaniel | Uncategorized | Saturday, May 19th, 2007
I keep forgetting that screen rocks. I need to remember to use it more. I’ve never got into the habit of using it, so I have all these niggling little questions about it. I’ll write down any little discoveries here as they arise.
Questions left to answer:
- screen seems to break ‘less’.
- Shift+PageUp and +PageDown don’t work.
- I didn’t realize how much I use Ctrl+A in bash (to go to the beginning of the line) until screen took it over. I need to use some other key there.
Comments Off
slaniel | Uncategorized | Saturday, May 19th, 2007
Every time I’m in the South Station bus terminal — which is often — I hear this announcement:
Due to security reasons, the use of cameras and video equipment is prohibited in the bus area.
Leaving aside the spurious reference to security . . . okay, let’s not leave that aside: what kind of security do they think they’re buying by not letting people bring in cameras? If I intended to blow up the terminal, and I wanted to write down the complicated architecture of the place, couldn’t I make drawings of it from memory, immediately upon leaving the station?
But let’s leave that aside, finally. What gets me about that is the grammar. “Due to security reasons”? Who says that? “For” security reasons, you bastards.
Then there’s the bureaucratic word “prohibited,” which sounds too much like “permitted.” To me, “forbidden” is a much less ambiguous word.
And why not de-bureaucratize it even more? Why not turn it active and just say, “You may not use cameras or video equipment in the bus area”? And drop the reference to security, since I’m sure they have some other reason for which security makes good cover.
(Likewise, elsewhere in the terminal they tell us that our “cooperation is greatly appreciated.” I always wonder: by whom is it greatly appreciated? But then I’m pedantic.)
P.S. (23 May 2007): this grammar train has, it seems, long since left the station.
slaniel | Uncategorized | Saturday, May 19th, 2007
Bowles’s microeconomics textbook reminds me that I want to read up on monopolistic competition (e.g., Coca-Cola is monopolistically competing with Pepsi; if you try to market something under Coke’s name, you will lose badly). What should I read? Should I just go back to Edward Chamberlin and Joan Robinson?
Comments Off
slaniel | Uncategorized | Saturday, May 19th, 2007
I’m seeing a bunch of Python code at work that looks like this:
def myfunc(): #{ function body #}
I wonder if these are vim users trying to make use of brace matching with the % command.
Comments Off
slaniel | Uncategorized | Friday, May 18th, 2007
Look! Big new progress on immigration!
Some thoughts:
For every $1 million in money that goes to Mexico — for concreteness, let’s say that’s $1 million in new maquiladoras just over the border — how much does Mexican immigration into the U.S. decrease?
For every $1 million spent on border patrol, fences, etc., how much does Mexican immigration decrease?
Why do none of the immigration discussions ever seem to compare items 1 and 2?
Inasmuch as item 1 leads to jobs leaving the United States, it’s amusing that no one ever tells the American public, “One of the best ways to reduce immigration into the U.S. is to trash our economy. People like to come here because there are good jobs. If you want to reduce illegal immigration, probably the best way to do it would be to make the U.S. a bad place to work.”
Most discussion of immigration in the mass media ignores the issues of demand from items 1 through 4. Likewise the drug-policy discussion. Likewise — but less so — the discussion of how to reduce our dependence on foreign oil. It’s a straightforward mathematical fact that slowing the increase in demand lengthens the life of a finite resource more than increasing supply.
Just some thoughts. My mood this morning is “smile at the foolish media and get back to Twisted Python.” And so I will.
Comments Off
slaniel | Uncategorized | Thursday, May 17th, 2007
Dear Python: suppose I wanted to write a signal handler that, when invoked, iterates over every pid in my process group and kills it. Your signal-handling documentation, and worse yet your signal-handling example, are not much help in that direction. Please make your documentation unsuck.
P.S.: I guess the best idea is just to wrap everything inside of a class, and make sure that the argument I want to pass — in this case it’s just getpid() — is something that the class already knows about. So then do something like
class MyClass: def init(): self.pid = getpid() def siginthandler( signum, frame ): self.killtreerootedatpid( self._pid )
This would obviate the need for passing the pid as an argument, because that pid is the only one that would ever be relevant in that class. Or something.
slaniel | Uncategorized | Thursday, May 17th, 2007
Write a GreaseMonkey extension that moves the form-field focus to the topmost field in the topmost table in the document, if
- the focus hasn’t already been set elsewhere
- there’s actually a form in the document and
- that form has any kind of text box in it.
I keep finding web pages — login forms, in particular — where the focus really ought to be on the form, but isn’t. Actually, mentioning login forms suggests to me that I maybe ought to move the focus to any field called ‘password’ or ‘username’ or &c., if there is one.
slaniel | Uncategorized | Thursday, May 17th, 2007
If I’m not mistaken, there was a time when you weren’t allowed to declare and initialize a variable in C at the same time. I.e., this was not allowed:
int myVar = 1;
and instead you had to use
int myVar; myVar = 1;
Is that right? If so, why was that necessary?
slaniel | Uncategorized | Wednesday, May 16th, 2007

“When We Ask You For Your Mother’s Maiden Name, Your Favorite Cat Growing Up, The Name Of Your First Car If You Gave It A Name, Your Opinion Of The Brown v. Board Decision, Whether You Think Simon From American Idol Is A Total Git Or A Lovable Curmudgeon, And Your Passwords On Rival Bank Sites, We Are Protecting Your Child From Cocaine Pornography Rapists Let Us Know If We Missed Any Bogeymen K Thx Bye”
Comments Off
slaniel | Uncategorized | Tuesday, May 15th, 2007
Just now, walking to lunch near MIT, I passed a bus stop — one of many around here that has advertisements for my employer. The ad read,
We’re hiring ops engineers. Experience as a programmer, sys-admin, negotiator, juggler and firefighter a plus.
A couple other guys were passing by that ad at the same time. One of them said to the other, “I bet that company has no idea what the [bleep] it’s doing. What does ‘ops’ even mean?”
As it happens, “ops engineer” is my job title. So I told them, “I’m sorry, but I have to interject. That’s the company I work for, and that’s the job I do.” One of them asked me what “ops engineer” means. I explained that an “engineer” (without the qualifier) is the person who writes the code that QPX (for instance) runs, whereas an “ops” engineer is the one who keeps the code running 24 by 7. I explained that we’re the company that wrote the code behind Orbitz. One of them asked me what Orbitz is. I explained that Orbitz helps you find the cheapest flight from point A to point B. One of them explained that he’s probably from a different generation than I am — by which I assume he means that he predates the web. I thanked him, and on we went.
Teachable moment. At least I have my elevator pitch together.