Politics, Weather, Photography, and the Dog
Saturday 1 December 2012

I've just spent three hours debugging something caused by a single missing line in a configuration file.

At 10th Magnitude, we've recently upgraded our framework and reference applications to the latest Windows Azure SDK. Since I'd already done it once, it didn't take too desperately long to create the new versions of our stuff.

However, the fact that something works in an emulator does not mean it will actually work in production. So, last night, our CTO attempted to deploy the first application we built with the new stuff out to Azure. It failed.

First, all we got was a HttpException, which is what ASP.NET MVC throws when something fails on a Razor view. The offending line was this:

@{ 
   ViewBag.Title = Html.Resource("PageTitle");
}

This extension method indirectly calls our custom resource provider, cleverly obfuscated as SqlResourceProvider, which then looks up the string resource in a SQL database.

My first problem was to get to the actual exception being thrown. That required me to RDP into the running Web role, open a view (I chose About.cshtml because it was essentially empty), and replace the code above with this:

@using System.Globalization
@{
  try
  {
    var provider = new SqlResourceProvider("/Views/Home/About.cshtml");
    var title = provider.GetObject("PageTitle", CultureInfo.CurrentUICulture);
    ViewBag.Title = title;
  }
  catch (Exception ex)
  {
    ViewBag.Error = ex + Environment.NewLine + "Base:" + Environment.NewLine + ex.GetBaseException();
  }
}
<pre>@ViewBag.Error</pre>

That got me the real error stack, whose relevant lines were right at the top:

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.WindowsAzure.ServiceRuntime, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at XM.UI.ResourceProviders.ResourceCache.LogDebug(String message)

Flash forward an hour of reading and testing things. I'll spare you. The solution is to add a second binding redirect in web.config:

<dependentAssembly>
  <assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime" 
    publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
  <bindingRedirect oldVersion="1.1.0.0-1.8.0.0" newVersion="1.8.0.0" />
</dependentAssembly>

Notice the second line? That tells .NET to refer all requests for the service runtime to the 1.8 version.

Also, in the Web application, you have to set the assembly references for Microsoft.WindowsAzure.Configuration and Microsoft.WindowsAzure.Storage to avoid using specific versions. In Solution Explorer, under the References folder for the web app, find the assemblies in question, view Properties, and set Specific Version to false.

I hope I have saved you three hours of your life. I will now go back to my deployment, already in progress...

Update, an hour and a half later: It turns out, there's a difference in behavior between <compilation debug="true"> and <compilation> on Azure Guest OS 3 (Windows Server 2012) that did not exist in previous guest OS versions. When an application is in debug mode on Azure Guest OS 3, it ignores some errors. Specifically, it ignores the FileNotFoundException thrown when Bundle.JavaScript().Add() has the wrong version number for the script it's trying to add. In Release mode, it just barfs up a 500 response. That is maddening—especially when you're trying to debug something else. At least it let our app log the error, eventually.

Saturday 1 December 2012 15:36:31 CST (UTC-06:00)  |  | Cloud | Windows Azure | Work#
Friday 30 November 2012

Via Sullivan, a stunning and beautiful video comprising hundreds of still photos taken last fall:

Friday 30 November 2012 09:13:09 CST (UTC-06:00)  |  | Kitchen Sink#

A French appeals court has ruled that neither Continental nor mechanic John Taylor bears criminal responsibility for the 2000 Air France Concorde crash outside Paris:

According to the original ruling, mechanic John Taylor fitted the wrong metal strip on a Continental DC-10. The piece ultimately fell off on the runway in Paris, puncturing the Concorde's tire. The burst tire sent bits of rubber flying, puncturing the fuel tanks, which started the fire that brought down the plane.

On Thursday, Judge Michele Luga overturned the 2010 manslaughter conviction of Continental and the mechanic, saying their mistakes didn't make them criminally responsible for the deaths.

Even if Taylor knew that the metal strip could become detached, "he could never have imagined a scenario where this simple titanium blade could cause such a disaster," Luga said in court.

The French court that convicted Continental and the mechanic in 2010 for the crash imposed about €2 m in damages and fines on the carrier. The appeals court upheld Continental's civil responsibility and ordered it to pay Air France €1 m in damages and interests.

I'm not sure I understand how the trial court came to convict Taylor in the first place. One small piece of debris on a runway should not cause a transport-class airplane to burst into flames. I don't know enough about French law to speculate about the trial judge, however. I do know that in the French system the trial judge has a much more active role than in the Anglo-American system, and can even act as prosecutor.

Anyway, this has to be a relief for Taylor, and for United Continental. It also marks the end of the Concorde's story.

Friday 30 November 2012 09:11:08 CST (UTC-06:00)  |  | Aviation#
Wednesday 28 November 2012

Yes, another link round-up:

Back to designing software...

Wednesday 28 November 2012 14:04:12 CST (UTC-06:00)  |  | Chicago | Kitchen Sink | Business#
Tuesday 27 November 2012

Via Bruce Schneier, apparently some of the confetti thrown at the Macy's Thanksgiving Day Parade last weekend came from the Nassau County Police:

A closer look shows that the documents are from the Nassau County Police Department. The papers were shredded, but clearly not well enough.

They even contain information about Mitt Romney's motorcade, apparently from the final presidential debate, which took place at Hofstra University in Nassau County last month.

Most significant, the confetti strips identified Nassau County detectives by name. Some of them are apparently undercover. Their social security numbers, dates of birth and other highly sensitive personal information was also printed on the confetti strips.

I expect the follow-up story to describe how a document destruction company now faces a massive lawsuit...

Tuesday 27 November 2012 12:54:16 CST (UTC-06:00)  |  | Security#

10th Magnitude's CTO, Steve Harshbarger, explains how the cloud makes economics better by giving us more options:

We know we could build every feature of a custom application from the ground up. We get ultimate control of the result, but often the cost or timeframe to do so is prohibitive. So as developers, we look to incorporate pre-built components to speed things along. Not only that, we strive for better functionality by incorporating specialized components that others have already invested far more resources in than we ever could for a single application. As a simple example, who would ever write a graphing engine from scratch with so many great ones out there? So, build is rarely the whole story.

What about buy? I think of “buy” not in a strict monetary sense, but as a moniker for code or components that get pulled into the physical boundary of your application. This includes both open source components and commercial products, in the form of source code you pull into your project, or binaries you install and run with your applications’ infrastructure. We all do this all the time.

But the cloud brings a third option to the table: rent. I define this as a service you integrate with via some API, which runs outside your application’s physical boundary. This is where smart developers see an opportunity to shave more time and cost off of projects while maintaining—or even increasing—the quality of functionality.

He also lists our top-10 third-party "rental" services, including Postmark, Pingdom, and Arrow Payments. (I'm using a couple of them as well.)

Tuesday 27 November 2012 09:52:37 CST (UTC-06:00)  |  | Business | Windows Azure#
Monday 26 November 2012

Just now:

The Supreme Court has rejected an appeal from the Cook County state's attorney to allow enforcement of a law prohibiting people from recording police officers on the job.

The justices on Monday left in place a lower court ruling that found that the state's anti-eavesdropping law violates free speech rights when used against people who tape law enforcement officers.

The law set out a maximum prison term of 15 years.

Last May, a federal appeals court in Chicago ruled that the law “likely violates” the First Amendment and ordered that authorities be banned from enforcing it.

Good. Since it only takes four justices to grant certiorari, this means that at least six of them agreed with the 7th Circuit. It was a bad law, and shame on Anita Alvarez for attempting prosecutions based on it.

Monday 26 November 2012 11:49:30 CST (UTC-06:00)  |  | US#
Sunday 25 November 2012

Via Sullivan, a new variety of bear has appeared in Canada because of climate change:

One such sign [of environmental pressure on bears] is the emergence of a new creature in the polar bear’s range, first spotted in the wild in 2006 near Sachs Harbour, Northwest Territories. It’s got a long neck like a polar bear, but it’s smaller. It lies and behaves like a polar bear, but it has shoulder humps. The new creature has hairy paw soles like a polar bear, but its hair is mostly solid, with only patches of hollow hair.

As caribou migration routes have moved North, grizzlies have followed and started mating with polar bears. Not only have they produced hybrid young, but those young are fertile. Polar bears and grizzlies only diverged about 150,000 years ago and haven’t developed many genetic differences, despite quite dramatic visual dissimilarities. Second-generation hybrids have now been confirmed in the wild.

This kind of thing isn't new, but we don't often see it with large predators. On the other hand, about 30,000 years ago, another large predator moved into a cousin species' territory as the earth warmed up, and interbred, and went on to invent blogs.

Sunday 25 November 2012 12:55:10 CST (UTC-06:00)  |  | Kitchen Sink | World | Weather#

The long-time aviation blogger thinks the movie was a disservice:

I’ll be told, perhaps, that I need to relax, and that the movie ought be judged beyond its technical shortcomings. Normally I would agree, and for the average lay viewer it will hardly matter at all. I’m happy to allow a little artistic license. We should expect it, and some light fudging of the facts can be necessary, to a degree, for a film like this to work. Honestly, I’m not that much of a fussbudget. The trouble with Flight is that the filmmakers seem to have hardly tried.

I’m not sure who gets the bigger screw job here: viewers, who are being lied to, but who may or may not care; airline pilots, whose profession is unrealistically portrayed; or nervous flyers, whose fears this movie will only compound.

The entire piece gets into specifics.

Sunday 25 November 2012 09:59:22 CST (UTC-06:00)  |  | Aviation#

Via Krugman, economist Adam Davidson explains why businesses can't find the right people:

And yet, even as classes like Goldenberg’s are filled to capacity all over America, hundreds of thousands of U.S. factories are starving for skilled workers. Throughout the campaign, President Obama lamented the so-called skills gap and referenced a study claiming that nearly 80 percent of manufacturers have jobs they can’t fill. Mitt Romney made similar claims. The National Association of Manufacturers estimates that there are roughly 600,000 jobs available for whoever has the right set of advanced skills.

Eric Isbister, the C.E.O. of GenMet, a metal-fabricating manufacturer outside Milwaukee, told me that he would hire as many skilled workers as show up at his door. Last year, he received 1,051 applications and found only 25 people who were qualified. He hired all of them, but soon had to fire 15. Part of Isbister’s pickiness, he says, comes from an avoidance of workers with experience in a “union-type job.” Isbister, after all, doesn’t abide by strict work rules and $30-an-hour salaries. At GenMet, the starting pay is $10 an hour. Those with an associate degree can make $15, which can rise to $18 an hour after several years of good performance. From what I understand, a new shift manager at a nearby McDonald’s can earn around $14 an hour.

The secret behind this skills gap is that it’s not a skills gap at all. I spoke to several other factory managers who also confessed that they had a hard time recruiting in-demand workers for $10-an-hour jobs.

Krugman summarizes:

Almost always, it turns out that what said business person really wants is highly (and expensively) educated workers at a manual-labor wage. No wonder they come up short.

[T]his dovetails perfectly with one of the key arguments against the claim that much of our unemployment is “structural”, due to a mismatch between skills and labor demand. If that were true, you should see soaring wages for those workers who do have the right skills; in fact, with rare exceptions you don’t.

Or as my dad has always said, "You get what you pay for."

Sunday 25 November 2012 08:46:28 CST (UTC-06:00)  |  | US#
Friday 23 November 2012

Yesterday got up to 17°C, making it the warmest Chicago Thanksgiving since 1966. And then this happened, as predicted:

It's now -1°C with 40 km/h wind gusts and a wind chill of -8°C. Even Parker looked annoyed this morning on his first walk, squinting into the wind with his ears flopping behind his head. It's amazing how little time he wastes in this kind of weather, compared with his need to sniff every square centimeter of Lincoln Park when it's nice out. (Or raining, for some reason. Must be nice, having a fur coat.)

Friday 23 November 2012 09:47:29 CST (UTC-06:00)  |  | Chicago | Weather#
Thursday 22 November 2012

We probably won't hit the record November 22 temperature (21°C, set in 1913), but we'll get awfully close. It's already 15°C at O'Hare, with a forecast of 18°C—followed by a cold front and 0°C by morning.

Parker and I will therefore now go for a long walk.

Thursday 22 November 2012 11:11:49 CST (UTC-06:00)  |  | Chicago | Parker | Weather#

Last night, my other sibling had a baby:

That's Brendan Michael, aged one hour.

Update, from the exhausted but happy dad: Brendan emerged at 2:53 PST weighing 3540 g and stretching out to 508 mm.

Thursday 22 November 2012 10:35:09 CST (UTC-06:00)  |  | Kitchen Sink#
Search
On this page....
Debugging our first Azure 1.8 deployment
Fall in Central Park
French court ends Concorde lawsuit
Stuff to read later
Document disposal mishap in New York
Build, buy, or rent?
Illinois ban on taping police is unconstitutional
New variety of northern bear?
Pilot Patrick Smith does not like "Flight"
It's not a skills gap; it's a wage gap
Warm Thanksgiving and cold front
Warm Thanksgiving
Brendan Michael
Countdowns
The Daily Parker +3214d 12h 36m
My next birthday 2d 22h 54m
To London 44d 09h 42m
Parker's 9th birthday 287d 00h 37m
Categories
Aviation (327) Baseball (110) Best Bars (5) Biking (44) Chicago (872) Cubs (197) Duke (132) Geography (316) Higher Ground (5) Jokes (282) Kitchen Sink (626) London (41) Parker (186) Daily (204) Photography (139) Politics (302) US (1069) World (245) Raleigh (20) Readings (8) Religion (62) San Francisco (86) Software (196) Blogs (72) Business (223) Cloud (89) Cool links (130) Security (98) Travel (180) Weather (678) Astronomy (79) Windows Azure (59) Work (45) Writing (8)
Links
Archive
<December 2012>
SunMonTueWedThuFriSat
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Full archive
Blogroll
About
David Braverman and Parker
David Braverman is a software developer in Chicago, and the creator of Weather Now. Parker is the most adorable dog on the planet, 80% of the time.
Legal
All content Copyright ©2014 David Braverman.
Creative Commons License
The Daily Parker by David Braverman is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License, excluding photographs, which may not be republished unless otherwise noted.
Admin Login
Sign In
Blog Stats
Total Posts: 4449
This Year: 347
This Month: 2
This Week: 3
Comments: 0