Pages

.

I shall now debunk the "Great Vacation" in one sentence.


"I refute it thus!"
- Bishop Berkeley

Chad Stone explains the "Great Vacation" hypothesis:
The “Great Vacation” narrative holds that unemployment insurance (UI) benefits...have dissuaded millions of unemployed workers from taking a job.  If...jobless workers would get off their duff (or if we would give them a good swift kick there), unemployment would plummet.
Some "neoclassical" economists (e.g. Casey Mulligan) have adopted the "Great Vacation" as their favored explanation for the recession we are in. The story has also made its way into the political discourse, where it is now a regular Republican talking point.

I shall now debunk the "Great Vacation" in a single sentence:

If the labor demand curve slopes down, then a fall in labor supply should be accompanied by an increase in wages; since wages fell or stagnated in the Great Recession and have grown only slowly ever since, unemployment is not being caused by a decrease in labor supply.

OK, OK, I used a semicolon. Sue me.

Really, this is incredibly simple. Our intuition says that when a commodity becomes more scarce, the price goes up. Duh, right? Labor is a commodity. If people suddenly decide to take a vacation - whether because of a spike in laziness or an increase in unemployment insurance - employers will raise wages in order to keep some (though not all) of those workers at their desks.

This is just a way of saying that the demand curve for labor slopes down. If the demand curve slopes up, then a negative shock to labor supply (a Great Vacation) will make wages fall (as we observe in reality). That would make labor a Giffen good. It would mean that a rise in wages makes companies want to hire more workers. It would mean, among other things, that union power, by increasing wages, also increases employment. If Casey Mulligan and other Great Vacation proponents want to argue that labor demand curves slope up, well, be my guest, but the burden of proof is on them, and I doubt they will like the implications of the result.

Look, if price goes down and quantity goes down, chances are that there has been a leftward shift in the demand curve, not the supply curve. That is Econ 101 common sense. It's also a specific instance of a general principle of science: when an external influence acts on a stable system, the system will react so as to partially counteract the external influence. In physics this manifests as Lenz's Law, in psychology as opponent-process theory. If you want to see what kind of shock happened to a system, look at how the system reacted.

We are not on a Great Vacation.
reade more... Résuméabuiyad

Delusions of helplessness, monetarist edition


I'm very sorry to do this, but today I must hit Scott Sumner with the Bat Boy pic. Bat Boy is deployed whenever an econ blogger makes a claim that is truly batty. Which, to be honest, we do fairly frequently, since we have no editors and we often write while under the influence of various (legal) drugs such as iced tea, Ambien, and YouTube.

But anyway, via Brad DeLong, I find Scott Sumner making this batty claim:
Keynesian economists have never been able to accept my assertion that the fiscal multiplier is roughly zero because the Fed steers the (nominal) economy.
Translated roughly from Monetarese into English, this means: "If Congress tries to boost output by spending money, the Fed will counteract this effort by enacting tighter monetary policy. Thus, stimulus can never work."

Why is this a batty claim? Well, to see why, we must first identify the assumptions that would have to be true for the claim to hold. These are:

Assumption 1: The Fed can control the path of nominal spending (NGDP).

Assumption 2: The Fed does choose to control the path of nominal spending in a way that will cancel out any stimulus.

I admit to being dubious of the first assumption. I think that the Fed probably observes the factors that affect future nominal spending only with a lag, and that there is also a substantial unpredictable component of the effect of the Fed's actions, making it difficult for the Fed to steer nominal spending with precision. But this is not why I think that Sumner's claim is batty. Assumption 1 - that NGDP targeting could work - is something that is not obviously false. It's also something that Scott Sumner and many other smart bloggers say all the time.

The batty part is Assumption 2. This is an assumption about the Fed's "reaction function" - the way that the Fed actually does respond to changes in the economy. For stimulus to be ineffective, the reaction function has to cancel out any and all output changes that result from fiscal policy changes.

What kind of Fed policy would do this? Well, the Fed could target the growth rate of NGDP. Suppose that the Fed decides that NGDP should grow at 4% a year. Then a fiscal stimulus that tried to push NGDP growth up to 6% a year in the wake of a recession would cause the Fed to tighten (i.e. print less money), frustrating Congress and holding NGDP growth at 4%.

Alternatively, the Fed might target the level of NGDP. In this scenario, the Fed might not counteract fiscal stimulus, because stimulus after a recession might work to bring NGDP back to where the Fed wants it to be. However, in this world, the stimulus turns out to be completely unnecessary, because it's only doing what the Fed would do anyway; in the absence of stimulus, the Fed would print money and buy stuff until NGDP went back to pre-recession levels.

But now notice that there is one huge huge huge problem with either of these stories: If the Fed controls either the level or the growth rate of NGDP, where the heck did the recession come from in the first place?! If the Fed both can and does counteract shocks to the NGDP path, then recessions should never happen. In other words, if the positive demand shock of a stimulus must be canceled out by the Fed, then the negative demand shock of a recession should be canceled out as well!

But it isn't. Via DeLong, here is a graph of the recent path of nominal GDP:


As you can see, both the level and the growth rate experienced a massive swing in 2008. That swing was the Great Recession. It was not counteracted by the Fed.

So to believe Scott Sumner's claim about the powerlessness of fiscal stimulus, you must believe that the Fed can and does counteract stimulus, but either can't or chooses not to counteract recessions. Essentially, you must either believe that the Fed's powers of stabilization are severely limited (which Scott Sumner probably does not believe, given everything he writes), or that the Fed wants to torpedo the U.S. economy.

(Update/Aside: This last item deserves more explanation. It is theoretically possible that the Fed targets the NGDP growth rate, but occasionally makes mistakes, and never tries to correct its past mistakes. So when there are big recessions, the Fed simply lets them happen, and then actively prevents recoveries from returning us to our previous NGDP trend line. Since recessions are more abrupt than booms, this means the Fed is actively out to torpedo the U.S. economy. Now maybe this is true - if the Fed has a bizarre nonlinear hard-money bias that manifests more in recessions than booms, it could be true! - but it would mean that past recessions would have manifested as unit-root drops in output...in other words, a bunch of L-shaped recessions in the past. Most people think that that isn't what we've seen; that after past recessions, output has returned to trend, and that drops in output were not "frozen in" by a deranged Fed. Anyway, now back to your regularly scheduled ranting...)

That is why the claim is a bit batty. If the Fed is truly omnipotent, then we shouldn't see any recessions, or any calls for fiscal stimulus in the first place. The fact that we're even having this debate makes the "helplessness" position untenable.

Incidentally, this is not the first time I've seen Sumner make this claim. In a post on trade policy back in October, he wrote:
If the Fed follows its announced policy of inflation targeting, the contractionary effect of China’s [decision to float its currency] on world output will not be offset by any expansionary effects on the US.  
This is exactly the same idea. If the Fed both can and does control output, no (demand-side) policy other than a change in the Fed's policy rule can ever have an effect on output. It doesn't square with the very real fact of recessions.

But here's something else I've noticed - this "helplessness" perspective kind of clashes with Scott Sumner's usual line. Sumner spends a lot of time arguing that the economy would be OK if the Fed would just target NGDP. But if the Fed already effectively steers the path of nominal output - so effectively that stimulus and trade policy are ineffectual - then what is Sumner complaining about?

So anyway, I'm sorry Bat Boy had to be trotted out. I am sure it will be me making a batty claim sometime soon, and I hope someone out there cares enough to point it out. Speaking of which, I need some more iced tea...


Update: I wrote this in a comment and thought I should move it up to the main post:

Really what it comes down to is this: If you believe that the Fed can move around the NGDP path at will, it is possible to postulate a reaction function such that the Fed will always cancel out any fiscal stimulus. But to assert that such a reaction function does exist is a claim that has little or no evidence to back it up. And to assert that such a reaction function logically must exist, simply because it can, is nonsense. Hence, Bat Boy.

I'm not sure if this last, strongest, and most preposterous claim is the claim that Scott Sumner is making...it sounds like it might be. But even if it's simply an empirical claim that in practice the Fed does try to counteract stimulus, then I want to see the evidence.

Update: I may have overinterpreted Sumner's claim. If so, the Bat Boy is hereby revoked. This is important, since Bat Boy is only used when theoretical claims are made that are clearly false, and hence is not to be summoned lightly...
reade more... Résuméabuiyad

How to tell if a corporation is evil

I made up this checklist as a quick way to gauge whether a company is (or might be considered) evil. It's not a definitive list, by any means, and there is no right or wrong way to score a company against this list. In the end, you have to decide whether you think a given company is evil or not. This list is meant only as a guide, a starting point for discussion.

1. Does your company value profits over people? This is easy to check. When earnings are threatened, does the company simply lay off workers? Most companies follow this kneejerk policy, since "people costs" (salaries and benefits) constitute the single biggest cost for most companies.

2. Does your company engage in deceptive, monopolistic, or anti-competitive business practices?

3. Does your company routinely lie to customers in its advertising?

4. Does your company engage in unfair or deceptive HR practices, such as billing a 50-hr/week job as being 40 hours per week, or hiring two part-time workers (without benefits) in lieu of one full-time worker with benefits, or failing to promote women or minorities? (E.g., are executives mostly men?)

5. Does your company pay zero taxes? Many large companies (e.g., General Electric) manage to escape paying taxes altogether even in profitable years (http://www.reuters.com/article/2011/11/03/us-usa-tax-corporate-idUSTRE7A261C20111103). Whether this is done legally or illegally doesn't matter: If (as some say) corporations are "persons," not paying your fair share in taxes makes you a bad "person" regardless of what the law says.

6. Does your company accept corporate welfare (subsidies or bailout money from government)? According to the Cato Institute, the U.S. federal government spent $92 billion on corporate welfare during fiscal year 2006 (a year in which there was no recession). Recipients that year included Boeing, Xerox, IBM, Motorola, Dow Chemical, and General Electric.

7. Does your company spend money on lobbying? Check your company's lobbying track record at http://www.opensecrets.org/. Lobbying, by definition, is an attempt to exert influence on lawmakers by circumvention of normal democractic processes. Which is inherently unethical.

8. Does your company endorse political candidates or contribute to their campaigns? It should be obvious that corporations have no legitimate role in politics. They should not tell workers how to vote and shouldn't spend shareholder money on politicians' (re))election campaigns.

9. Does your company pollute the environment? (What is your company's green agenda? Does it even have one?) Does your company have overseas subsidiaries or contractors who pollute the environment?

10. Does your company routinely outsource jobs to countries where labor is cheap and labor laws are lax? Suppose your company hires workers from North America, Europe, and Asia during good times but tends to lay off workers in North America or Europe preferentially during bad times (allowing Asians to remain on the payroll). This is the same as exporting jobs to Asia. It's a very common tactic, and it escapes notice because in good times, the company does not appear to be favoring any one geo.

11. Does your company use layoffs as a way to tailor HR ratios? This is a very common tactic. For example, in technology, companies often go out of their way to try to obtain more female employees since women traditionally have not been drawn to technology, and the ratio of male to female workers in tech is (consequently) high. Big companies like to beef up their female-to-male percentages as much as possible to avoid lawsuits (so that when a woman is fired, she can't claim sexual discrimination). When layoffs occur, many companies will preferentially lay off male workers to "balance the ratios." I have personally seen this practice in action, at one large company, where layoffs were viewed as an opportunity to balance all kinds of HR ratios. I believe it is one reason (but certainly not the only reason) why the most recent recession was particularly hard on men (see for example http://www.spiegel.de/international/germany/0,1518,622373,00.html, and http://mjperry.blogspot.com/2008/12/2008-male-recession-gender-jobs-gap.html, and http://healthland.time.com/2011/03/01/why-the-recession-may-trigger-more-depression-among-men/).

12. Do the company's top people earn more than 20 times the median of all workers? The Economic Policy Institute and the Institute for Policy Studies have both studied CEO pay ratios across a variety of industries in a variety of countries. In most of the industrialized world, the CEO pay ratio is 20 or less. In the U.S., it tends to be well over 100:1 (and in some years it has been 250:1 or higher; see http://articles.moneycentral.msn.com/Investing/Extra/CEOsNearRecordPayRatios.aspx and http://www.aflcio.org/corporatewatch/paywatch/). There is no reason for any one human being in any one company to make 100 times what another human being makes, and in fact most companies could find talented volunteers to fill CxO positions for far less money than 20:1. Certainly anything in excess of 20:1 is just that -- needless excess. Steve Jobs paid himself a dollar a year at Apple. (He did own a lot of stock, of course.) More CEOs should follow his example.
reade more... Résuméabuiyad

Firefox adoption just keeps going down


Browser usage data from Q4 2008 to Q4 2011, for visitors of this blog.

I was somewhat surprised (as many people were) to learn, earlier this month, that in terms of market share, Google's Chrome browser has recently surpassed Firefox in overall adoption. I shouldn't have been surprised at all: If I had taken the time to look carefully at my own blog's analytics, I would've seen this very result nine months ago.

Readers of my blog tend to be developers, techies, and early adopters, and so Internet Explorer usage has never been high for people who visit this blog, whereas Firefox usage has always been high (68% in Q4 of 2008, for example). Trends like Chrome overtaking Firefox tend to show up early in my analytics; my readers are trendsetters. I completely didn't see the Firefox death spiral coming, however.

I decided, finally, to sit down and sift through my analytics to find out exactly how browser usage has varied over time for visitors to this blog. In the graph above, I've plotted browser statistics quarter-by-quarter for the 13 quarters going back to Q4 2008 (the earliest date for which analytics were available). Note that data for the most recent quarter run only to mid-December (obviously). For the total data set going back to Q4 2008, we're talking slightly more than half a million total visits.

The vertical scale tops out at 100 percent. Firefox (in blue) starts at 68 percent and ends, most recently, at 32 percent. Chrome starts at 8 percent and finishes at an impressive 38 percent. The curves crossed, for visitors to this blog, around nine months ago (in early 2011).

What can I say? I don't think these sorts of trends bode well for Firefox. In fact I think the future is looking pretty bad for Firefox (for a variety of reasons), and there's probably not time to reinvent the product at this point.

In the meantime, if you work for a software (or other) company that currently supports Firefox but not Chrome, you've got your priorities backwards! Get to work supporting Chrome, ASAP, lest the market leave you behind.
reade more... Résuméabuiyad

6 Tips for Beginning Canvas Programmers

Lately I've spent some time programming against the <canvas> API. Predictably, I encountered all the common beginner's mistakes, and had to work through them. Along the way, I learned a number of useful things about canvas programming, some basic, some not-so-basic. Here's a quick summary:

1. To avoid security errors, always serve your HTML (and scripts) from the same server as any images you're going to be working with. (Corollary: Don't "serve" your HTML and images from the local filesystem. That's a sure way to get security errors.) Install a local instance of Apache web server (or some other web server) and serve content to your browser from localhost, if need be.

2. If you're modifying pixels using context.getImageData( ), use putImageData( ) to draw back to the image, and be sure to supply all 3 arguments to putImageData( )! Here is a common pattern:

function doSomething() {

var canvasData =
context.getImageData(0, 0, imageObj.width, imageObj.height);

for (var x = 0; x < w; x++) {
for (var y = 0; y < h; y++) {
var idx = (x + y * w) * 4;
var r = canvasData.data[idx + 0];
var g = canvasData.data[idx + 1];
var b = canvasData.data[idx + 2];

// do something to r,g,b here

canvasData.data[idx + 0] = r;
canvasData.data[idx + 1] = g;
canvasData.data[idx + 2] = b;
}
}

// draw it back out to the screen:
context.putImageData(canvasData, 0, 0);
}

Notice the three arguments to putImageData(). The final two args are the x and y position at which to draw the image. If you forget those two args, expect errors.


3. You can draw offscreen by simply creating a canvas element programmatically. Like this:
    imageObj = new Image();
imageObj.src = "http://localhost:4502/content/lena.png";

function getOffscreenContext(imageObj) {
var offscreenCanvas = document.createElement("canvas");
offscreenCanvas.width = imageObj.width;
offscreenCanvas.height = imageObj.height;
return offscreenCanvas.getContext("2d");
}

If you use this function (or one like it), you can keep an offscreen copy of your image around, which can be extremely handy.

4. You can save programmatically created/modified images offline. The trick is to slurp the canvas into a data URL and then open or display that URL in a new frame or window where you can right-click it to get the usual image-save options from the browser. Something like this:

myImage = canvas.toDataURL("image/png"); 
window.open( myImage ); // opens in new window as a PNG

This serializes the image as a (big, huge) data URL, then opens the image in a new window. The new window contains a PNG image, plain and simple.

5. Any time you assign a value to canvas.width or canvas.height, you will wipe the canvas clean! This is both weird and handy. Just doing canvas.width = canvas.width will instantly erase the canvas.


6. When all else fails, consult the HTML 5 Canvas Cheatsheet.
reade more... Résuméabuiyad

A hideous anti-immigrant attack

Dhammika Dharmapala is a law professor at the University of Illinois. My friend David Agrawal at UMich (one of our strongest job candidates this year) says that Professor Dharmapala is "the reason I'm an economist."

So I'm sad and disgusted to report that Professor Dharmapala was slashed in the throat yesterday, in what is pretty clearly a hate crime. Fortunately, and somewhat miraculously, Professor Dharmapala will live, and is making a faster-than-expected recovery. But that does nothing to diminish the awfulness of the attempted murder.

Here are the details:

Joshua Scaggs, 23...has been charged with attempted murder and two counts of aggravated battery, alleging he slashed the throat of Anurudha Udeni Dhammika Dharmapala, 41, of Champaign at the Illinois Terminal on Wednesday morning...
A male witness told police the men were both seated in the waiting area when one man suddenly jumped up and shouted that this was his country and attacked Dharmapala.
The attacker, later identified as Scaggs, then grabbed Dharmapala around the neck and appeared to be choking him. He then forced the victim to the floor. 
The witness intervened by pulling the attacker off Dharmapala. The witness then noticed that the attacker was holding a utility knife and the victim was bleeding. 
Ziegler said Dharmapala was waiting to take a train to Chicago. He had no information on why Scaggs may have been there. Police recovered the box cutter believed used to injure Dharmapala. He said Scaggs had another folding knife in his pocket.
So this guy Scaggs went out with a box-cutter and a folding knife, obviously intending to attack someone. He sees a random non-white guy in a train, jumps up, screams "I want my country back," and cuts the guy's throat. Bizarrely, the crime is not being prosecuted as a hate crime. If that's not a hate crime, what is?!

Hate crime or no, Scaggs will certainly rot in jail, as he deserves. But I hope I'm not alone in thinking that this kind of attack is a very bad sign for America in general. For two reasons.

First of all, as I've written before, I believe that racial animosity is wreaking havoc on this country's political process. Tribal animosity makes people paranoid that any government policy represents an attack on their group by another group. And so you hear people blaming "those lazy [insert nonwhite race here]" for the financial crisis and the recession, which reduces our ability to fight the recession with government policy. And you hear people saying that government spending is racial redistribution...so our roads and bridges and research institutions crumble and decay.

But taking a longer view, I believe that immigration - particularly from Asia - is key to our nation's economic success. In a globalized world where companies choose their locations based on access to large domestic markets, having a dense population will be important. Also, high immigrant fertility is the only reason why our country is managing to avoid the demographic disaster looming over East Asia and Europe. Finally, immigrants are a tremendous source of entrepreneurship.

So the idea that non-white immigrants are "taking America away" from whites is by far the most pernicious force in America today. This idea is slowly but steadily making itself an unwelcome fixture in our public discourse.

Now the reason I am saying this is not to make political hay, or to lay blame for this attack on anyone but the perpetrator. It is simply to point out that the murderous hate crimes of a few isolated psychos are not simply isolated and independent random events. They are warning signs of larger forces of hate lurking within our society, corrosively eating away at the foundations of our national polity.

Anyway, best wishes to Professor Dharmapala for a speedy recovery.
reade more... Résuméabuiyad

How Google is quietly killing Firefox



After a certain period of time spent programming, you develop a kind of sixth sense about what programs are doing. Surprisingly often, this sixth sense turns out to be right. I don't know if what I'm about to say is right. I do know that my sixth sense is telling me something.

I've been a Firefox user for years, and I still like Firefox, the way I still like my 1998 Jeep Grand Cherokee (with the cast-iron six-cylinder engine) even though it's not the latest-and-greatest model. Lately, though, Firefox has been freezing and/or quitting unexpectedly with greater and greater frequency, even though my browsing habits haven't changed.

What's changed over the past couple of years? The Web. Web content has become more and more dynamic, more AJAX-driven, more JavaScript-intensive.

JavaScript is a great language, but like a lot of languages these days it relies on programmers being careful about how they manage runtime objects. It's surprisingly easy, if you manipulate the DOM a lot, to generate code that leaks memory. See this nice writeup for more info (also see https://developer.mozilla.org/en/Debugging_memory_leaks).

My contention is that most AJAX code leaks memory like a sieve, and this is why more and more users are seeing their browsers (not just Firefox, but IE, Safari, and Chrome as well) freeze up and die in normal operation these days. The various browsers differ in how they manage memory and how they do garbage collection. Chrome, in particular, has undergone significant changes recently in how it handles garbage collection. This is no accident. It's in response to the greater challenges imposed on all browsers today by dynamic web pages.

When I leave AJAX-intensive web pages open all day in Firefox, I eventually find that Firefox is using 1.3 gigabytes or more of RAM. Usually, by the time it reaches 1.4 gigabytes, the browser freezes (goes white) and then either dies outright, or unfreezes again after 30 or 40 seconds. If it manages to unfreeze, usually about 60 megabytes of RAM have been freed up (according to Task Manager). But then memory usage marches upwards again and it freezes (goes white) again, within seconds. The freeze/unfreeze cycle continues until Firefox unceremoniously crashes.

My programmer's sixth sense tells me that when memory usage exceeds a certain level, Firefox lacks sufficient headroom to carry out a proper garbage collection cycle. Partway through the cycle, it runs out of memory and initiates another GC cycle. This repeats until the program is in what one might call a GC panic. Uncommanded program termination is the inevitable result.

Firefox is often roundly criticized for its tendency to "leak memory," but I would caution that it is not really the core program that is leaking memory. It's really the AJAX code running in JavaScript-intensive pages that's causing the memory leakage.

So ironically, Firefox's reputation is suffering not because of anything Mozilla's programmers are doing, but because of web developers who are using jQuery and tons of other popular libraries indiscriminately, without regard to memory leakage. (Be sure to have a look at this blog post about jQuery's role in memory leakage.)

I haven't done careful testing, but I can tell you (from daily experience) that if I leave Gmail open in Firefox all night, Firefox will run out of memory by morning. If I leave Facebook and Twitter open as well, I can count on running out of memory in just a few hours.

Now here's where it starts to get really troubling.

Mozilla's greatest revenue source today (accounting for more than 80 percent of annual income) is Google. Mozilla is deeply dependent on Google for operating revenue. And yet, it is in direct competition with Google for browser market-share. Recently, the Firefox and Chrome adoption curves crossed, with Firefox now lagging behind Chrome for the first time.

There's a huge conflict of interest here. If you buy the theory that most people who abandon Firefox do so because it crashes (runs out of memory) unpredictably, it stands to reason that all Google has to do to pick up market share in the browser world is publish AJAX-intensive web pages (Google Search, Gmail, Google Maps, etc.) of a kind that Firefox's garbage-collection algorithms choke on — and in the meantime, improve Chrome's own GC algorithms to better handle just those sorts of pages.

That's exactly what seems to be going on. Or at least that's what my gut says.

And my gut is sometimes right.
reade more... Résuméabuiyad