The Daily Parker

Politics, Weather, Photography, and the Dog

Can true love last in Dallas?

The Cranky Flier gives American and USAirways advice following their Valentines Day announcement of corporate nuptials:

Get Rid of the Old American
Sure, technically everyone who works at American today is part of the old American, but that’s not what I mean. There are key people – and processes – that epitomize the old American and those need to be swept out quickly. If these folks don’t see the writing on the wall, then the new management team needs to act. Number one on that list is, of course, Tom Horton, but they can’t officially sweep him out because he had to stay on as part of the deal as Non-Executive Chairman. But really, he needs to become Non-Existent Chairman. From the looks of this deal, he won’t be around much and it won’t be for very long.

But it’s not just Horton. There are others at the top who will remain nameless that need to go. At the same time, there are some really great VPs that the new management team needs to woo to keep them onboard. The culture of the new American will start at the top, so the people up there need to be in place sooner rather than later and they need to really focus on solidifying the new combined culture.

Protect the Brand Assets
As things churn forward, American needs to be sure to protect its brand assets. None is bigger than AAdvantage, one of the best frequent flier programs out there. The temptation is always there to devalue it, but American as a brand has been devalued for years, and people are going to be tempted to flee during the prospect of another tough merger. So if you’re American, you need to focus on the things that really have strong value, and AAdvantage is one of them. Use the program to bring people back to the airline.

I'll be watching this closely, of course. Over the next five days I have three American flight segments; you can bet I'll be talking to the FAs and pilots.

Also worth a look: Crain's analyzes how the deal affects Chicago.

Love affairs and wedding bells, with airplanes

It's official:

The boards of American Airlines parent AMR Corp. and US Airways Group late Wednesday separately voted to approve a merger that would create the world's largest airline, The Wall Street Journal reports.

"The merger will be formally announced early Thursday morning. Under the all-stock deal's terms, American's creditors would own 72% of the combined airline, and US Airways shareholders the balance," the Journal writes.

"Under the all-stock deal's terms, American's creditors would own 72% of the combined airline, and US Airways shareholders the balance. US Airways Chief Executive Doug Parker will run the combined company as chief executive. AMR CEO Tom Horton will serve as nonexecutive board chairman, likely until the spring or summer of 2014, the time of the new company's first annual meeting after American emerges from bankruptcy protection . . . The airline will likely have a market capitalization exceeding $10 billion, and the value could approach $11 billion."

Yay! My frequent flier miles are saved! Oh, and so are jobs, and revenue in Chicago.

More on Rubio's "government policies did this" distortion

Paul Krugman has a more considered view of Rubio's blame-game:

Look, this is one of the most thoroughly researched topics out there, and every piece of the government-did-it thesis has been refuted; see Mike Konczal for a summary. No, the CRA wasn’t responsible for the epidemic of bad lending; no, Fannie and Freddie didn’t cause the housing bubble; no, the “high-risk” loans of the GSEs weren’t remotely as risky as subprime.

This strikes me as a bigger deal than whether Rubio slurped his water; he and his party are now committed to the belief that their pre-crisis doctrine was perfect, that there are no lessons from the worst financial crisis in three generations except that we should have even less regulation. And given another shot at power, they’ll test that thesis by giving the bankers a chance to do it all over again.

Oh my ears

For several practical reasons, not least of which that I needed to finish some work I didn't have time to do in Vancouver, I listened to Sen. Marco Rubio's State of the Union response instead of watching it. Missing, I suppose, a good helping of his personal charisma, and going solely on the content of his speech, I have to conclude he and I live in different countries.

Where do I begin?

How about where Senator Rubio began: his first four sentences. I have no objection to "Good evening" or "I'm Marco Rubio" (though I did hear, in my mind's ear, "Polo"). Sentence three: "I'm blessed to represent Florida in the United States Senate." That, to me, is a curious reading of the first and seventeenth amendments. But I'll overlook it for now.

Sentence four: "Let me begin by congratulating President Obama on the start of his second term."

Oh, wait. That sentence is only in the prepared remarks. He didn't actually read it out loud. Why? one wonders.

Look, I'm tired, I woke up today in a foreign country, and I only have one Loonie in my pocket to spend right now against the 277 loonies in Congress. So let me jump ahead to the part of Rubio's speech that made me shout obscenities:

This idea – that our problems were caused by a government that was too small – it’s just not true. In fact, a major cause of our recent downturn was a housing crisis created by reckless government policies.

Which policies in particular? Two unfunded wars? The dissipation of a $500 billion budget surplus in four years? The draconian immigration laws—which he, as the child of Cubans, never had to experience because of our anti-Castro policies—that have dissuaded millions of able bodies and minds from coming to the U.S.? Or maybe, more pointedly, the small-government fantasies of a senile Federal Reserve chairman who admitted, two years after the disaster he created had put tens of millions of people out of work, had caused the organization he chaired to fail completely to meet its mandate for managing unemployment?

The three most-likely possibilities why Rubio's speech had no connection with reality are these: first, he believes he has to win over the dead-end, right-wing faction of his party (who constitute a compelling majority of it) in order to run for president; second, because he truly believes what he said, which bodes ill for his understanding of the reality-based community most people inhabit; or third, because his time machine malfunctioned, and he read his party's 1976 convention speech by mistake.

"[A] housing crisis created by reckless government policies." I'm agog. I'm out of analogies. What analogy could possibly encompass the chutzpah—mendacity?—of that line? "Mom, I crashed the car, so I blame you for not getting me to school on time." "Doctor, I shot myself in the liver, so I'll blame you if I die."

And that's just one line, near the beginning.

I'm done for the day, though. Tomorrow, after I've slept on it, I'll comment on the best State of the Union address a Republican has given in my lifetime.

LA Times thinks USAirways-AMR merger imminent

As I mentioned this morning, news agencies have picked up the little signs that tell them a 1000-airplane airline will happen this week:

The boards of the two airlines are expected to meet in the next few days to vote on the proposed merger, sources have told Los Angeles Times and other news outlets. A meeting to vote on the merger was scheduled for Monday, according to some reports, but was postponed to give those involved more time to work out final details.

According to sources, a decision has now been reached to name US Airways Group Inc. Chief Executive Doug Parker as CEO of the new carrier, while Tom Horton, CEO of American Airlines' parent, AMR Corp., would serve as nonexecutive chairman of the board until next year.

Analysts have estimated that the two companies could generate as much as $1 billion in savings and added revenue by combining forces.

In perhaps a modest bit of irony, I'm writing this aboard an American Airlines airplane over New Mexico Colorado. I do love technology...

US Airways and AMR: tying the knot this week? Yay!

The Economist's Gulliver blog thinks so:

THE merger of US Airways and AMR, the parent company of American Airlines, looks set to be concluded this week. The new company, which will be called American Airlines, would be one of the world’s largest airlines by capacity and become the third full-service carrier in America. We wrote about this a month ago, when AMR's board met to examine US Airways’ proposal. (Tom Horton, AMR’s boss, had promised a decision in “a matter of weeks”.)

The airlines are seen as a perfect fit by analysts. There is little overlap between their routes and hubs, which makes it likely that the new alliance will be approved by anti-trust regulators. The benefits for fliers, however, may not be so great...

Oh yes they will. I've said for years that getting American's management out of American would make it a much better airline. And I've said for years, right here on this blog, that US Airways is the right choice. Hell, even American's pilots, flight attendants, and mechanics agree. As an elite American flier, I expect to keep—yes, even to increase—the benefits I have of sticking with the carrier after the merger.

I've got five American flight segments between now and next Tuesday. I hope that I can congratulate the FAs on one of them for seeing this thing through.

Slow start on the West Coast

I always prefer heading west for business trips and east for fun trips because the time shifts work better that way. Sometimes I go to London for a long weekend and stay on Chicago time, meaning I go to sleep at 4am (10pm in Chicago) and sleep until noon (6am). (On any trip longer than 3 days I shift to local time.) Similarly, coming to the West Coast—I'm in Vancouver at the moment—lets me sleep in a bit (5:30 here is 7:30 at home) and get adequate caffeine before starting my business meetings.

Today I've encountered two complications. First, British Columbia and a few other provinces have declared today a provincial holiday, so nothing opened before 7am. Nothing, as in "coffee shops." Second, this early in February and this far west, the sun doesn't rise until 7:28.

Oh, and it's raining. Not a lot. Just enough.

Of course, here in Canada, everything is clean, efficient, and polite. It's not the Canadians' faults that it's cold, dark, and decaffeinated.

Holy shit

The Pope has announced his resignation:

Pope Benedict XVI announced Monday that he would resign on Feb. 28 because he was simply too infirm to carry on — the first pontiff to do so in nearly 600 years. The decision sets the stage for a conclave to elect a new pope before the end of March.

"After having repeatedly examined my conscience before God, I have come to the certainty that my strengths due to an advanced age are no longer suited to an adequate exercise of the Petrine ministry," he told the cardinals. "I am well aware that this ministry, due to its essential spiritual nature, must be carried out not only by words and deeds but no less with prayer and suffering.

Ratzinger is the person most directly responsible for the office accused of covering up priests abusing children for decades. I cannot wait to read Sullivan...

Update: I was not wrong about Sullivan.

LA-LA-LAyover

Did you know that Los Angeles is on the way from Chicago to Vancouver? I didn't either. I forgot that, when you have hubs in Chicago and Los Angeles, and no flights at all into the actual destination airport, layovers happen.

Good view from the Admirals Club though:

As much as I like flying, I'm not wild about the seven flight segments in 10 days—none of them less than 3 hours. (Next week, apparently, Dallas is on the way from Chicago to San Francisco. Same hub-and-spoke problem.) I also don't like having to scrunch my laptop between the seat to my front and my lap just to get some work done. Waah, waah, waah.

Next report from the Land Above.

When the Azure emulator is more forgiving than real life

Last night I made the mistake of testing a deployment to Azure right before going to bed. Everything had worked beautifully in development, I'd fixed all the bugs, and I had a virgin Windows Azure affinity group complete with a pre-populated test database ready for the Weather Now worker role's first trip up to the Big Time.

The first complete and total failure of the worker role I should have predicted. Just as I do in the brick-and-mortar development world, I create low-privilege SQL accounts for applications to use. So immediately I had a bunch of SQL exceptions that I resolved with a few GRANT EXEC commands. No big deal.

Once I restarted the worker role, it connected to the database, loaded its settings, downloaded a file from NOAA and...crashed:

Inner Drive Weather threw System.Data.Services.Client.DataServiceRequestException
...
OutOfRangeInput

One of the request inputs is out of range.
RequestId:572bcfee-9e0b-4a02-9163-1c6163798d60
Time:2013-02-10T06:05:41.5664525Z

at System.Data.Services.Client.DataServiceContext.SaveResult.d__1e.MoveNext()

Oh no. The dreaded Azure Storage exception that tells you absolutely nothing.

Flash forward fifteen minutes (now past midnight; and for context, I'm writing this on the 9am flight to Los Angeles), with Fiddler running on a local instance connecting to production Azure storage, and I found the XML block on which real Azure Storage barfed but the Azure storage emulator passed without a second thought. The offending table entity is metadata that the NOAA downloader worker task stores to let the weather parsing worker task know it has work to do:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
   <entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
   xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
   xmlns="http://www.w3.org/2005/Atom">
  <title />
  <author>
    <name />
  </author>
  <updated>2013-02-10T05:55:49.3316301Z</updated>
  <id />
  <content type="application/xml">
    <m:properties>
      <d:BlobName>20130209-0535-sn.0034.txt</d:BlobName>
      <d:FileName>sn.0034.txt</d:FileName>
      <d:FileTime m:type="Edm.DateTime">2013-02-09T05:35:00Z</d:FileTime>
      <d:IsParsed m:type="Edm.Boolean">false</d:IsParsed>
      <d:ParseTime m:type="Edm.DateTime">0001-01-01T00:00:00</d:ParseTime>
      <d:PartitionKey>201302</d:PartitionKey>
      <d:RetrieveTime m:type="Edm.DateTime">2013-02-10T05:55:29.1084794Z</d:RetrieveTime>
      <d:RowKey>20130209-0535-41d536ff-2e70-4564-84bd-7559a0a71d4d</d:RowKey>
      <d:Size m:type="Edm.Int32">68202</d:Size>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
    </m:properties>
  </content>
</entry>

Notice that the ParseTime and Timestamp values are equal to System.DateTimeOffset.MinValue, which, it turns out, is not a legal Azure table value. Wow, would it have helped me if the emulator horked on those values during development.

The fix was simply to make sure that neither System.DateTimeOffset.MinValue nor System.DateTime.MinValue ever got into an outbound table entity, which took me about five minutes to implement. Also, it turned out that even though my table entity inherited from TableServiceEntity, I still had to set the Timestamp property when using real Azure storage. (The emulator sets it for you.)

By this point it was 12:30 and I needed to get some sleep, however. So my plan to run an overnight test will have to wait until this evening at my hotel. Then I'll find the other bits of code that work fine against the emulator but, for reasons that pass understanding, the emulator gets completely wrong.