The Affordable Care Act and 2014

We’ve all been hearing that the Affordable Care Act will come online in 2014, so I thought I’d take a moment and read the bill text to see where ’2014′ shows up. Turns out it shows up in a lot of places, actually: 164 different pages in the 906-page bill, by my count. But this, on a quick scan, seems like where 2014 rubber hits the 2014 road:

PART II—CONSUMER CHOICES AND INSURANCE COMPETITION THROUGH HEALTH BENEFIT EXCHANGES
SEC. 1311. AFFORDABLE CHOICES OF HEALTH BENEFIT PLANS.
[...]
    (b) AMERICAN HEALTH BENEFIT EXCHANGES.—
        (1) IN GENERAL.—Each State shall, not later than January 1, 2014, establish an American Health Benefit Exchange (referred to in this title as an "Exchange") for the State that—
            (A) facilitates the purchase of qualified health plans;
            (B) provides for the establishment of a Small Business Health Options Program (in this title referred to as a "SHOP Exchange") that is designed to assist qualified employers in the State who are small employers in facilitating the enrollment of their employees in qualified health plans offered in the small group market in the State [...]

Then there’s the dreaded “mandate” — section 1501, starting on p. 124. It amends Chapter 48 of the Internal Revenue Code, in part, as follows:

(b) SHARED RESPONSIBILITY PAYMENT.—
    (1) IN GENERAL.—If an applicable individual fails to meet the requirement of subsection (a) for 1 or more months during any calendar year beginning after 2013, then, except as provided in subsection (d), there is hereby imposed a penalty with respect to the individual in the amount determined under subsection (c).

I read that to say that you need to have coverage (“minimum essential coverage,” as it happens — a term defined starting about halfway down on page 130 and extending for about a page) for every month of every year after 2013 — which would be 2014 and after, if I have my math right.

So that’s where 2014 comes from. When January 1, 2014 rolls around, Obamacare will be here to stay. By the time the midterm elections happen in November of that year, Obamacare will have spent 10 months rectifying one of our great national tragedies: that there are about 48 million uninsured Americans.

Mitt Romney on privatization, devolution to the states, and insurance

A fellow with whom I used to work tweeted today,

Watch Mitt Romney say federal disaster relief for tornado and flood victims is “immoral” http://youtu.be/OhXyJeKaj8E

That’s not actually what Romney says in the linked video; Judd is being disingenuous. But I think Romney is wrong in there for some reasons that bear elucidating.

First he says that we need to move programs from the Federal government to the states or to the private sector when possible. He goes on to say that racking up giant debts and passing them on to our kids is immoral, as though the debt piece were connected with the privatization/devolution-to-the-states (just “privatization” from here on in) piece.

The only way this argument makes sense is if you believe that the private sector or state governments are likely to do things more efficiently than the Federal government. If you don’t believe that they will, and if you believe that the thing the Federal government is doing needs to be done — for instance, if you believe that someone needs to be handling disaster relief — then transferring this job to the states is just shifting a bucket of money from one place to the other. If states are no more efficient than the Feds at this, then you’re replacing one source of debt (the Federal government’s) with another. Most states are required to maintain balanced budgets, so shifting this burden to the states would result in an immediate tax increase for all state taxpayers.

Privatizing disaster relief has its own problems. If we’re lucky, it would be privatized such that everyone who needed it could afford it. If we as a society believe that people shouldn’t be devastated when natural disasters strike, then we’d probably have to impose some kind of regulation to ensure that everyone who wants it can get it. This starts to look like the act of pantomime that a friend has done for many years: “capitalism picks its nose like this” (right arm reached around behind the left side of the head to pick the left nostril). Rather than simply have the Federal government do what needs doing, we privatize it and then impose a lot of regulations to achieve the outcome that we as a society want. Seems wasteful. Though by all means: if it happens that society can achieve what it wants to achieve using fewer resources in the private sector than it would through government — including the costs of the necessary regulation, and including all the efforts that private industry will then go through to evade regulation and get a leg up on its regulated competitors — then that’s a strong argument for privatizing.

Another direction this disaster-relief argument might go is to privatize disaster insurance, rather than disaster relief. I don’t know how disaster insurance works offhand. With insurance in general, we want to prevent two bad outcomes: adverse selection (only the riskiest cases bother to get insured) and moral hazard (the insured take more socially harmful risks than the uninsured). The way to prevent adverse selection is to require that everyone get insurance; that way the riskiest cases and the least-risky cases are buying in together, and the market doesn’t completely unravel. So if we want flood insurance to work at all, we’re going to have to require everyone to carry it, for some value of ‘everyone’ (maybe only ‘everyone’ in flood-prone areas, for instance). So again, government regulation to make the market work properly seems unavoidable.

Federal-government involvement seems unavoidable, in particular, because you want to spread risk over as many people as possible. This is one of the virtues of living in a country as large as the United States: when one group of flood-insurance beneficiaries is cashing in because, say, there’s flooding in the Southeast, another group in the Midwest is doing just fine, and the insurer doesn’t go broke. So having separate state-by-state insurers doesn’t seem like a stable equilibrium: risks are too concentrated in one state to make this work, and we’d likely end up with national insurers. These could either be private national insurers or the government itself. If it were a private insurer, it would have to be regulated: the insurer would have to hold onto enough of a cash buffer so that it wouldn’t be bankrupted by the “storm of the century”. And we as a society want insurance to really be there when it’s needed, so there would be a government backstop of some sort to make beneficiaries whole in case the insurer goes out of business. In exchange for providing this backstop, insurers would have to subject their books to regular auditing, would have to hold sufficient reserves, etc. Again, government involvement is unavoidable.

As for the moral-hazard piece: maybe there’s an argument that people with insurance are more likely to build on flood plains, and maybe we want to discourage this. One way the private market might do this is by setting the premium on flood-prone homes very high. There would then be at least a couple possible responses: either people continue building on those spots, even though they’re not insured, or they don’t build there. Without any regulation at all, maybe a lot of people would continue planting homes on uninsurable spots; when they get wiped out by floods, they’re bankrupted, and maybe we as a society are okay with that. Alternately, maybe we just forbid people from building on spots that no one is willing to insure; the only way to do this is through law or regulation, which — again — means that government involvement is unavoidable.

I’ll give the benefit of the doubt to Romney on this: it’s hard to describe real-world privatization in a 30-second soundbite. Here’s my 30-second soundbite: if we have reason to believe that something is better done by the states or by private industry, by all means let’s consider privatizing it. But privatization is not a magic potion that makes industries efficient — particularly when you consider the government involvement that necessarily has to accompany a lot of industries. Regulation is there for a reason; it’s because we as a society believe that certain things need to be accomplished, and for whatever reason we’ve left those things up to the private market.

Of course, from there you could also ask, “Well, do we actually need to do these things?” Do we actually need flood insurance or disaster relief? The really infuriating thing about watching Romney and his Republican brethren during this interminable election has been watching them try to walk the line: on one side, they want to say that principles of good government require us to drop things like universal health insurance (Ron Paul’s uncomfortable answer when asked whether to let an uninsured patient die) and flood insurance; but on the other side, they know that the public finds these positions morally vile, which they are. Which is why the Republican approach has been to answer a different question: Romney lectures us on the evils of Federal debt rather than say whether the Federal government has a role to play in disaster relief, and Ron Paul just says that the patient should exercise personal responsibility.

I strongly suspect, without having gathered the data on this, that people are liberals when they’re not asked to self-identify that way. Ask people the same question that Wolf Blitzer asked Ron Paul: should society let him die? I suspect most people would say, no, of course not. But in return for not allowing him to die, and for picking up the tab when he falls ill, we should expect him to pay for his own insurance while he’s healthy. And what if he can’t afford to pay that insurance? Should we help him out, in exchange for his subsidizing poorer folks when he gets back on his feet?

Whether or not most people would answer yes to that, that’s the question. The debate over these big moral questions has been hidden behind a technocratic or legal shroud of late. Maybe there was actually an urgent legal question about whether the government can ‘compel you to buy broccoli’, and whether that is meaningfully different from just giving you broccoli and including that in your tax bill. I don’t think so, though. The real root of the issue is whether you believe that society has a responsibility to protect its weakest members. Having decided that the answer is yes, we can set about deciding the best way to achieve that goal. When Republicans make a stink about requiring people to buy broccoli, they’re actually saying that the answer is no, and that society needn’t serve that protective role. They should be honest and just say so.

"The poor"

I had a realization today: when we talk about ‘the poor’, we have a labeling problem. I think people are inclined, when they envision ‘the poor’, to envision a permanent underclass — the perennially helpless. The mental picture that a lot of people have is of people who were born to poor parents, will be poor and uneducated throughout their lives, and will raise children who are stuck in the same class as well for all their lives.

There may be some of that. Who knows, it may be the case that most of those who fall on hard times will spend their entire lives there. But the point is that, by envisioning the poor this way, we envision them as ‘the other’. And by envisioning them as the other, we don’t picture ourselves as people who could be poor by a stroke of fortune tomorrow. Consequently, we imagine a program like Medicaid as a program for ‘the poor’, rather than as a program that we ourselves could benefit from. We envision food stamps as something for other people. That makes it hard for us to defend food stamps as a thing for all of us. If the society is lucky, most of us will be altruistic enough to defend social programs for others, but I wouldn’t count on it.

Seems to me that if we really want to sell these things, we need to convince Americans that any of us could fall into the social safety net at any time. That turns Medicaid into a middle-class benefit, which the middle class should defend purely out of self-interest. (1 in 7 Americans is on food stamps. Medicaid and CHIP provide coverage to 1 in 5 Americans. There is no state, among those from which records are available, in which Medicaid pays for less than 1 in 4 births. Etc.)

As it happens, right now I’m reading a book (Frank J. Thompson’s Medicaid Politics: Federalism, Policy Durability, and Health Reform) that tries to understand whether Medicaid has the political clout to survive; and if it does, why it does. The maxim has always been that “a program for the poor becomes a poor program”; so why does Medicaid, the classic program for the poor, not become a poor program? Why does it seem to be thriving?

I recall some Jacob Hacker data showing that income variability is quite high: the probability that your income will drop by half next year is rather high; you might need that safety net after all.

Then of course there are the second-order effects of making middle-class life more predictable: if your future is more predictable, you can do more planning and long-range thinking. You can choose to stay in the community you want to live in, knowing that a layoff won’t force you to pack up and find work elsewhere. If you know your children will have health insurance regardless of whether you’re employed, you can go off and start a small business — you can take the sort of risks that society is supposed to encourage. Now that you and your neighbors are more stable, the guy running the bakery down the street knows that he can rely on a steadier stream of business; so he can plan further ahead in his future; and so forth. The benefits of a middle-class safety net radiate out far beyond the immediate beneficiary.

More on all of this soon. Hopefully more data, in particular.

Is there any rational reason to buy books locally?

There’s a good argument against buying books locally. Consider my beloved local bookstore, the Harvard Book Store. I buy books from them, and I pay a premium to do so — happily, I might add. But a large part of my brain knows that this is irrational. If I want a book, why not buy it where it’s cheapest? It’s one thing to buy something local that is legitimately local and can’t be made by anyone else — for instance, cocktails from Drink or food from Craigie On Main or produce from a CSA that supports local farmers or ice cream from Toscanini’s. Books aren’t at all like that; they’re not local, and a large chunk of my book dollar is going to publishers in New York City. Why not take every penny that I spend at the Harvard Book Store and instead donate it to my local library? Or buy the books on Amazon?

Three answers come to mind:

  1. Local bookstores support new authors in a way that Amazon does not. I don’t think there’s much evidence for this, though I’d be glad to hear it if there were. And come to think of it: if you spend less on a given book by buying it where it’s cheapest, you can then buy more books, including books by upstart authors. So buying from Amazon might, in this sense, be better for new authors.

  2. The Harvard Book Store brings speakers to the local community, and in general runs author events locally that Amazon does not. True. But in the absence of local bookstores, wouldn’t this happen anyway? Those authors aren’t coming to the HBS out of community altruism; they’re promoting a book. I assume that they’d continue promoting their books even if HBS weren’t there. Authors like Paul Krugman come to Cambridge because they think that the audience here would buy their books. Krugman would likely continue to do so.

  3. A general love of local commerce. Sure, no doubt. But that’s not really what we’re arguing. Hollywood Express had a local video store in Central Square in Cambridge, which went out of business because of (among other things) Netflix and YouTube and Hulu and Vimeo. It was an outmoded business model. The Hollywood Express was replaced by Life Alive, a delightful restaurant whose first outpost was in Lowell. An outmoded business was replaced with a business that still makes sense. If local bookstores don’t make sense, replace them with local businesses that do. It’s not as though the alternative to the Harvard Book Store is the Wal-Martization of Cambridge.

But as I said, I spend a good chunk of money at HBS, and I intend to continue to do so, irrationally or not. Anyone want to convince me that it’s actually rational to spend my dollars at HBS rather than spend less money at Amazon and redirect the surplus to other worthy local businesses?

P.S.: Writing this out has really made me question whether I want to continue spending money at HBS.

P.P.S.: My friend Josh, on Facebook, made a good argument in local bookstores’ favor: they, and local cafés, are places where like like-minded people congregate. If you really love books, you’re likely to buy from a local bookstore rather than, say, from a grocery store. And if you love coffee, you’ll go to a place where others who love coffee go. Josh prefers to support the places that support real lovers of the book (and of the cup). I do, too. This seems like an excellent argument in HBS’s favor.

One counterargument is that this is a temporary state of the world, and that the market always wins. People will increasingly be buying their books on e-readers like Kindles, or from Amazon, so as time goes on fewer and fewer book lovers will buy books from places that self-identify as “book lovers’ retailers”. As the community moves elsewhere, these places lose their character.

But of course that’s a ways off, and in the meantime we should support homes for that kind of community.

A SQL question!

Suppose you have

SELECT a+b AS some_sum, a-b AS some_diff
FROM some_table

It would be syntactically invalid, as far as I understand it, to have

SELECT a+b AS some_sum, a-b AS some_diff,
    some_sum + some_diff AS something_else
FROM some_table

, because some_sum and some_diff aren’t names that yet exist in the scope of that SELECT statement. To use some_sum and some_diff, you need an outer scope that has access to all the names created in the inner scope — so you need either

SELECT some_sum + some_diff AS something_else
FROM
(
    SELECT a+b AS some_sum, a-b AS some_diff
    FROM some_table
)

or, if you don’t need to attach a name to some_sum + some_diff, you can just do

SELECT a+b AS some_sum, a-b AS some_diff
FROM some_table
HAVING some_sum + some_diff >= 0

(or whatever it is that you might want to do with some_sum + some_diff)

So … are there some nightmare scenarios that would result from allowing the names ‘some_sum’ and ‘some_diff’ to be visible in the inner scope? Does anyone know the SQL spec well enough to understand the problem?

P.S.: Oh, I think I can answer the question a moment after asking it: the problem is that you can create a name in the inner scope that’s the same as the name of a field in the base table. That is, you can do something like

SELECT 2*a AS a, 3*a AS triple_a
FROM some_table

, and that 3*a statement is ambiguous: are you referring to triple the derived a, or triple the base a?

Even still, I can imagine allowing one scope to refer to a name created within that scope, but then making it a syntax error to introduce a name in a given scope that’s the same as a name in a base table. The way to resolve the ambiguity in this case would be to do

SELECT 2*a AS double_a, 3*(double_a) AS sextuple_a
FROM some_table

I wonder if a Sufficiently Smart Compiler (“a classic argument often pulled out in a LanguagePissingMatch”) could find all ambiguous uses of names, or whether there’s some logical reason why it just couldn’t.

Then again, forbidding the creation of a name in a given scope that is the same as the name of a name in an inner scope or base table would make a lot of common usage impossible. I routinely do

SELECT one_thing, sum(something) something_else
FROM some_table
GROUP BY one_thing

I.e., I’m reusing something_else in this scope, even though it also exists in the base table. If I had to constantly use new names for derived fields, just because the derived fields might be referred to in the outer scope, I think I’d find that annoying.

Then, of course, there’s the ever-available argument that it’s just simpler to implement a compiler which imposes certain mild aesthetic constraints on its users.

Remembering Managerial Dilemmas

A conversation with a friend over brunch reminded me of a really thought-provoking book I reviewed a few years back, namely Gary Miller’s Managerial Dilemmas: The Political Economy of Hierarchy.

The basic idea in Miller is that, if your organization (company, team, university, whatever) is judged on the basis of how it performs overall, then everyone has an incentive to slack and let everyone else do the work. But since everyone is subject to the same incentives, everyone slacks and the whole thing goes to shit (technically speaking).

Likewise, your company has every incentive to screw you and not, say, invest in educating you; after all, why pay for you to get a master’s degree if you’re just going to take their investment to another job?

Somehow both sides need to agree to disarm: the company needs to credibly (and in a certain sense irrationally) signal that it’s going to support its employees, even though it has no guarantee that they’ll reciprocate; and employees need to credibly (and in a certain sense irrationally) signal that they won’t slack, even though they have no guarantee that the company will reward them.

Turns out it’s a hard problem. I don’t recall Miller talking about this at all, but it seems clear to me that government has a role to play here: since companies can’t be trusted to supply me with a pension that will help me in my old age, let’s make Social Security really good. And since companies can’t be trusted to pay for my master’s degree, let’s have the government subsidize advanced degrees. There are obvious problems with this, but it’s not clear that they’re worse than the economy as she already works.

Affordable Care Act silence is deafening

Does it seem to anyone else like Democrats — including the President — passed the Affordable Care Act and then promptly stopped talking about it altogether? If my read on the situation is right, that’s because they perceived the law polls very poorly. But

  1. If you’re going to lose an election, lose with your back straight. Either voters dislike your voting for the law or they don’t. If they don’t care how you voted, there’s no need for you to be silent about it. On the other hand, if they dislike it, and you believed in the law when you passed it, then stand up for it. You didn’t run for office just to win re-election; presumably you ran because you wanted to achieve something positive, and you thought the law was positive. If the voters do care and you didn’t believe in it when it was passed, your opponent is still going to hound you for your vote when you run for re-election. So what’s the point in hiding from it?

  2. Whether something polls well or poorly isn’t an objective fact ‘out there’ in the universe; whether it polls well depends a lot on whether people whom Americans like — such as President Obama — are out there selling it. Which they aren’t.

  3. The ACA as such polls poorly, because it’s been demonized as ‘Obamacare’. But some of the individual provisions — no discrimination against pre-existing conditions, lengthened coverage under one’s parents’ health insurance — poll well. In many cases I think it’s just that people don’t know what’s in Obamacare. In other cases, like the mandate, people genuinely seem to hate it. That seems like a failure of education: people need to understand that there are only a few ways to make health coverage universal without the market unraveling. Democrats have been terrible about selling the mandate.

  4. Do you care about ensuring that everyone has health insurance, or don’t you? We really need to make clear that that’s what this comes down to: we believe in universal coverage; they don’t. If you believe in universal coverage, something like a mandate is unavoidable. (Expanding Medicare to everyone would have been another option, but insurers never would have stood for it.) Lately Republicans seem to be facing up to this, and at least admitting that they don’t care about universal coverage. If nothing else, that has the virtue of consistency. But it’s morally repugnant.

Tools for making the impossible possible

I’ve been thinking a lot lately about tools that help make the difficult easy, which has got me thinking again about probably my favorite quote of all time, by A.N. Whitehead:

It is a profoundly erroneous truism, repeated by all copy-books and by eminent people when they are making speeches, that we should cultivate the habit of thinking of what we are doing. The precise opposite is the case. Civilisation advances by extending the number of operations we can perform without thinking about them.

I think about this at work all the time, because our use of SQL makes possible a lot of data-gathering and -analysis tasks which really would have been impossible without it. Answering some question about many thousands of servers (100,770 as of the end of September, 2011) would be unimaginable. Certainly getting many quick answers to many quick queries would be absolutely unimaginable. Without some tool that allows quick aggregation across many different datasets, we’d have to resort to home-brewed scripts that, say, ssh to thousands of machines in parallel and ask them questions. Or we’d have to reinvent Query, more likely.

There are two aspects to SQL that I think about constantly at work: first this trick of turning an impossible problem into a triviality, and second the sense of playfulness that it enables. It takes only a tiny bit more effort to turn from the question you were trying to answer into something unexpected, something more general, or something more nuanced. Often answering questions that you didn’t know you had involves finding a table you didn’t know the company published, which in turn involves asking around to see who would know best about a given kind of data. Finding answers to questions you didn’t know you had seems to me part and parcel of what SQL is all about.

The term “generative technology” gets at this. I would link to the first Google search result for this, except that I don’t really like how Jonathan Zittrain — who is, in fairness, most associated with this term — runs with it. iPhones versus non-iPhones isn’t really at all related to what I have in mind here, and I don’t think the definition he has there gets at what even he means by it. The term “generative” comes ultimately from generative grammar, which my non-linguistically-trained self understands to mean “a set of simple rules for the formation of sentences, which rules can be combined in infinitely many ways to construct infinitely many distinct sentences.” In mathematics, think of axioms and rules for their combination: there aren’t that many axioms defining the integers, but they can be combined with only a few more rules (about ordered pairs and what, exactly, multiplication of two ordered pairs means) to build rational numbers, and thence real numbers, and thence complex numbers. The simple axioms, and simple rules for their combination, lead to infinitely complex objects.

(Because I cannot resist a filthy quote when given the opportunity, it’s here that I’ll quote Stephen King’s advice on writing: ‘When asked, “How do you write?” I invariably answer, “One word at a time,” and the answer is invariably dismissed. But that is all it is. It sounds too simple to be true, but consider the Great Wall of China, if you will: one stone at a time, man. That’s all. One stone at a time. But I’ve read you can see that motherfucker from space without a telescope.’)

And so it is with SQL and other generative technologies. They don’t give you a single product that you use in the 10 or 20 or 100 ways that you’ve been told to use it; in this sense, I view Facebook as non-generative. A generative technology, like Unix or SQL, might have a steep learning curve, but once you’ve learned it you can do infinitely many things.

There are lots of complexities once you’ve learned the atoms, and even once you’ve learned how to combine the atoms. In Unix, for instance, your first task is learning to string together programs with pipes. Once you’ve done that, you’ll soon enough be writing your own programs. but you have to write them in the Unix Way, which often involves allowing them to sit with a pipe on their left side and a pipe on their right; in this way, they themselves become part of the generative toolkit. Again, invoking Whitehead, the point is to make complicated action reflexive and doable without thinking. Take a common Unix pattern:

[some commands] | sort | uniq | sort -nr

This takes the output of [some commands] — assumed to contain one interesting pattern per line — and displays it in descending order of frequency, with the frequency in the left column and the pattern on the right. This isn’t many characters, so typing it out becomes second nature; the smart thing to do, though, would be to put this Unix fragment in its own script, which we might call sortbypop (or really ‘popsort’, which would save you some keystrokes: there’s already a command that starts with ‘sort’, but no commands that start with ‘pops’, so ‘popsort’ would be easier to get from tab-completion; Unix people think this way):

(19:44 -0500) slaniel@example.com~$ cat sort_by_pop
#!/bin/bash
sort |uniq -c |sort -nr

Now you can just pipe things through sortbypop if you want to sort them by popularity:

(19:44 -0500) slaniel@example.com:~$ grep -o '^[^ ]+' access.log |sort_by_pop  |head
    607 46.165.197.141
    520 173.242.125.206
    309 199.21.99.67
    229 130.195.253.1
    169 66.249.71.18
    162 72.14.199.102
     83 72.246.0.10
     37 142.167.21.94
     34 198.228.223.217
     33 80.58.205.47

Hm, what’s that grep(1) bit? Looks like that bit of script could be usefully abstracted into something called ‘get_ip’:

(19:48 -0500) slaniel@example.com:~$ cat get_ip
#!/bin/bash
grep -o '^[^ ]+'

whence we simplify to “cat access.log | getip | sortbypop”. Now you don’t need to understand the nuances of how sort(1) and uniq(1) work if you don’t want to; in fact, you may never need to know that those atomic tools are sitting underneath your molecular abstractions. If you trust the person who wrote the tools, you can assume that getip gets an IP address from a suitably formatted Apache access log, and that sortbypop sorts a file containing one pattern per line in descending order of popularity.

And so forth. The idea is to constantly combine the atoms of your knowledge into larger and larger molecules, which allows you to forget about the individual atoms unless you really need them. (Where you often need to remember the atoms is for performance reasons.)

In SQL, one way of combining atoms into higher-order molecules is by means of views. A view is a new table (“relation” for the relational-calculus purists in the room) constructed from lower-order “base tables”. There may be some very clever way to get by without views, but I don’t know what it might be. Often you’ll end up with a query that requires you to join one complicated sub-query to itself; without views, you’d be repeating the sub-query, which would probably involve copying and pasting a bunch of text. This would make editing one of the sub-queries a hassle, because you’d have to repeat your edits once for every sub-query. With views, you create the view once, give it some shorthand name, then use the shorthand on every subsequent reference. Any edit only has to happen once, in the view. Again, the point is to make higher-order thought effortless.

(Java, by contrast, requires so much boilerplate that it gets in the way of quickly scanning a piece of code and understanding what it’s trying to do. Either that, or it requires the developer to carefully shunt his boilerplate off into a little boilerplate area of his code. Or it requires the code reader to develop a finely honed skill of skipping over boilerplate. One organizing principle for writing code of any sort ought to be that it puts the least possible distance between the task you’re envisioning and the code you write for it.)

Having developed such a love for SQL, and having long ago learned how to build high-order castles in Unix, I’m now on the hunt for other generative technologies that will make difficult tasks possible. My goal for 2012 is to discover such a set of technologies for time series. It’s not just a matter of writing formulas that allow me to manipulate time series in any way I see fit, though that’s hard enough (it will probably involve R, and may also involve Data Analysis with Open Source Tools, recommended in the highest terms by my awesome friend Dan Milstein). And it’s not just a matter of manipulating them in a way that makes exploring them, combining them, and being surprised possible, though that’s part and parcel of the generative idea.

Rather, the difficulty with making these things work right starts, it seems to me, way down in the guts. Akamai’s Query system is brilliant — one of the most brilliant technologies I’ve ever seen at a company, central to everything I do at every minute of every day — and works so well because there’s a lot of stuff going on under the hood which, again, I mostly don’t need to think about. The low levels do break, just as they do in any software system (all abstractions are leaky); and when they break, I’m forcibly reminded that all my simplifying abstractions rest very tentatively on a lot of lower-level foundations. Without someone doing a lot of low-level grunt work, Whitehead’s dictum doesn’t hold. (Perhaps the grandest abstractions of all in the modern world are “the market economy” and “industrial democracy” — abstractions that we forget are based on very concrete things like cheap fossil fuels or policemen who will enforce contracts at the point of a gun.) In the case of SQL, someone has to build a backend data-storage method that allows quick lookups. In the case of time series, what will the backend storage system look like? Will we need something like MapReduce? Do we need a different high-level language to concisely encapsulate high-level time-series concepts like “the trend component” or “the spectrum”?

Here is the place to note a lesson that I find I have to repeat to myself over and over: don’t think any harder than you need to. My interest in time series is very non-abstract; I have some specific questions I want to answer about some specific datasets at work. And yes, I want to make sure that I can combine them in new and interesting ways in a reasonable amount of time. But until I’ve asked a single specific question of a single specific dataset, I shouldn’t think too hard about making an apple pie from scratch.

So anyway, there’s a general point in here, and a specific one. The general point is to hunt for abstractions that make it possible to get a lot done without thinking, and make it possible to explore areas you didn’t even know you could explore. The specific point is that in 2012, I want to see what I can do with Akamai’s time-series data. I imagine one of these points will be interesting to you, the other less so.

Because Backbar, in Somerville's Union Square, is remarkably un-webbable, I give the world this

Backbar, in the Union Square neighborhood of Somerville, is on Facebook, but I’ll be danged if I can find their website through any combination of reasonable search terms. So let’s try this:

Perhaps this will do some good. I see that the indispensable Boston Restaurant Talk included Backbar’s URL, but for some reason didn’t actually provide the link.

College is really, really worth your money

A discussion flared up on Facebook based around this article by Michael Ellsberg in the New York Times whose premise is that college isn’t worth the money, and that we’d be better off encouraging entrepreneurship.

I happen to have been looking recently at the data on this. Let me give you a spoiler: it’s not even close. It’s worth the debt load. Here are the numbers:

  • Median income for males with bachelor’s degrees, 2010: $55,038 (does not count those with more than a bachelor’s degree, like doctors or lawyers)

  • Median for males with associates degrees: $40,918

  • Median for males with some college, no degree: $36,082

  • Median for males who graduated from high school or got a GED: $30,232

(I could obviously include numbers for women in here, too. I’m leaving them out only for brevity’s sake.)

The mean incomes are similar, but even more striking:

  • College degree, 2010, male: $70,567
  • High-school degree or equivalent, 2010, male: $36,755

To dramatize this a bit, imagine I grabbed two men at random and asked them their incomes. The probability that the randomly selected college-educated male is earning more than the randomly selected high-school-educated male is about 74%. [1]. I imagine that if I ran a similar simulation — whereby I simulate our two graduates after each has worked for 40 years, and add up their accumulated earnings — that the results would be even more stark.

Fortunately, the Census Bureau has already done that work for me. On a quick scan, I can’t find “work-life earnings” for all males, so I’ll just compare white males. Over the course of his working life, a college-educated white male (specifically one with a bachelor’s degree, not a master’s degree, a professional degree, or a Ph.D.) will have earned about $2.3 million. His high-school-educated white-male partner will have earned $1.2 million.

I repeat: it’s not even close. It’s so not even close that I consider it irresponsible in the extreme for Ellsberg to cherry-pick some success stories (Steve Jobs, Bill Gates) and imply that students should strive to be like them, rather than encouraging them to take a rather more sure route to success. Had Ellsberg encouraged students, instead, to skip college and aim to be professional sports players, I hope we’d all be deeply offended. The piece he actually did write is no less offensive.

P.S. (25 October 2011): as various commenters have pointed out, this only shows correlation; it doesn’t show causation. It could well be that the people who have the drive to get a college degree are the same as those who have the drive to earn a lot of income — and that they’d earn a high income even without the college degree. It would be interesting to compare the lifetime earnings of those who got into college but chose not to go with those who got into college and went. I’ll see if I can find any interesting data in this direction later.

[1] — This is just an estimate. It’s based on a simplifying assumption, namely that the probability distribution of incomes is approximately lognormal (i.e., that the logarithm of income follows a Gaussian [bell-shaped] distribution). That assumption, combined with the estimated means and medians from the links above, gives the 74% number.

Thanks to Cosma Shalizi for pointing me to a simple approximation to the true income distribution, and noting how I could go from the estimated means and medians to an estimated probability.