The Daily Parker

Politics, Weather, Photography, and the Dog

Down to a Sunless Sea

Someone forwarded me a year-old short story by Neil Gaiman the Guardian published last spring. It begins:

The Thames is a filthy beast: it winds through London like a snake, or a sea serpent. All the rivers flow into it, the Fleet and the Tyburn and the Neckinger, carrying all the filth and scum and waste, the bodies of cats and dogs and the bones of sheep and pigs down into the brown water of the Thames, which carries them east into the estuary and from there into the North Sea and oblivion.

It is raining in London. The rain washes the dirt into the gutters, and it swells streams into rivers, rivers into powerful things. The rain is a noisy thing, splashing and pattering and rattling the rooftops. If it is clean water as it falls from the skies it only needs to touch London to become dirt, to stir dust and make it mud.

Read the rest here.

Snowy hell, day 69

Yesterday Chicago got warm enough to melt almost all the snow. We had just 50 mm on the ground at O'Hare (not including the waist-high drifts along all our major streets) when the cold front hit overnight. We woke up this morning to another "dusting" covering every surface of the city, just enough below freezing to make us ask "why?"

The Weather Service promises 12°C on Monday, which should end our 10-week ordeal of boots and salty paws temporarily. But I won't believe we're through winter until we have a solid week of warm weather. And I have no illusions this will happen before the end of May.

No, that wasn't it at all

The test configuration earlier today wasn't the problem. It turned out that MSBuild simply didn't know it had to pull in the System.Web.Providers assembly. Fortunately, this guy suggested a way to do it. I created a new file called AssemblyInit that looks like this:

using System.Diagnostics;
using System.Web.Providers;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MyApp
{
   public class AssemblyInit
   {
      [AssemblyInitialize]
      public void Initialize()
      {
         Trace.WriteLine("Initializing System.Web.Providers");
         var dummy = new DefaultMembershipProvider();
         Trace.WriteLine(string.Format("Instantiated {0}", dummy));
      }
   }
}

That does nothing more than create a hard reference to System.Web.Providers, causing MSBuild to affirmatively import it.

Now all my CI build works, the unit tests work, and I can go have a weekend.

Could not find assembly in command-line MSTest execution

One of my tasks at my day job today is to get continuous integration running on a Jenkins server. It didn't take too long to wrestle MSBuild to the ground and get the build working properly, but when I added an MSTest task, a bunch of unit tests failed with this error:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

The System.Web.Providers assembly is properly referenced in the unit test project (it's part of a NuGet package), and the assembly's Copy Local property is set to True.

When the unit tests run from inside Visual Studio 2013, they all work. When ReSharper runs them, they all work. But when I execute the command line:

MSTest.exe /resultsfile:MSTestResults.trx /testcontainer:My.Stupid.Test\bin\My.Stupid.Test.dll /test:MyFailingTest

...it fails with the error I noted above.

I'll spare you the detective work, because I have to get back to work, but I did find the solution. I marked the failing test with a DeploymentItemAttribute:

[TestMethod]
[DeploymentItem("System.Web.Providers.dll")]
public void MyFailingTest()
{
	try
	{
		DoSomeTestyThings();
	}
	finally
	{
		CleanUp();
	}
}

Now, suddenly, everything works.

And people wonder why I hate command line crap.

Day 67 of snowy hell

We still have snow on the ground, and now we've got a "hostage situation" counter up in our office about it. Sixty eight days ago, Chicago was snow-free. Since December 29th, we've worn boots every day, wiped our dogs' feet every day, squished across streets every day, and squelched down sidewalks every day.

There's a glimmer of hope. The temperature is up to -0.6°C, very nearly freezing. It might even get up to 7°C tomorrow and even stay above freezing for two days early next week.

And yet, we'll still have snow on the ground, possibly until April. Or May.

Enough already.

Chicago city council voting today to ban puppy mills

First-term Chicago City Clerk Susana Mendoza introduced an ordinance last month that would require pet stores to get dogs and cats from city pounds and shelters. The council will vote on it today:

“This ordinance cuts off the pipeline of animals coming into our city from the horrendous puppy mill industry and opens up a new opportunity for animals already in shelters who need a loving home to be adopted into,” Mendoza said.

It would, however, affect 16 businesses across the city, including Pocket Puppies in Lincoln Park, which sells small dogs at $850 to $4,000 a pup. Store owner Lane Boron said the ordinance would put him out of business or force him into the suburbs, but not curtail the operation of inhumane puppy mills.

“I opened my business, because I knew there were abuses in my business, eight years ago,” said Boron, who said he has sold puppies to celebrities and aldermen. “I wanted to make sure that my dogs were humanely sourced.”

In one of life's coincidences, I went to high school and college with Lane, and we served on the Student Judiciary Board together. I don't wish him ill, and I sympathize that the ordinance would affect his business negatively, to say the least.

That said, I fully support the ordinance. I generally oppose dog breeding, especially for designer dogs like Lane sells, when so many mutts need homes. The ordinance may not be the way to fix the problem of unwanted dogs and cats, either. But it might help.

Update: The ordinance passed 49-1.

Wow, we needed this

Just because we've had snow on the ground for 66 days (since December 29th) doesn't mean we didn't all want to see this on our morning commutes today:

We got another 50 mm overnight, on top of the piles already on the ground, and it's not forecast to get above freezing until late tomorrow.

We'd better have a cool frickin' summer or I'm going to write a very strongly-worded letter to the climate.

Update: Today is our 45th measurable snowfall this season—a new record. Yay.

The <strike>silver</strike> frozen lining to the polar vortex

It's killing invasive insects:

"This winter has been a godsend for the hemlock. Overnight temperatures dipped to minus 15 [Fahrenheit, or -26°C] here in Amherst [Massachusetts], and that’s cold enough to guarantee almost complete adelgid die-off," Joseph Elkington, a professor at the University of Massachusetts, Amherst, told the Worcester Telegram.

Elkington says that in some parts of North Carolina, subzero temperatures have killed 100 percent of the adelgids. In Massachusetts, around 80 percent of the population should die, according to a state official. Gypsy moths and emerald ash borers are similarly vulnerable to extreme cold; the U.S. Forest Service estimates that 80 percent of Minnesota’s emerald ash borers died in January. Other invasive insects, such as the southern pine beetle, which has been ravaging New Jersey, and the Asian stinkbug, may be dying off as well.

In fact, this nearly tops the reasons I like living in a temperate climate. Malaria? Not in Chicago, ever. Kudzu? Nope. Emerald ash borers? Die, you green vermin, die.

There's a problem, though:

The cold may also kill off predator insects that forest officials have been releasing to take out invasive insects. For instance, parasitoid wasps that are supposed to control the emerald ash borer population in Michigan and other states are even more vulnerable to the cold than their prey, whose populations might recover more quickly as a result.

Plus, we've had snow on the ground for 65 days now.

So it's not all perfect. But at least the cold has done something useful for us.

Morning link round-up

If I have time, I'll read these articles today:

Now, to work.

Dawn in Crimea

The sun rises in the Crimean Peninsula in just over an hour, at 6:16 local time. A rumor circulating earlier today was that Russian commanders occupying the region had threatened to attack unless the Ukrainian military surrendered by 0300 UTC this evening—20 minutes ago. The Russian navy has denied this. We'll see.

Russia, of course, has the power to take and hold the peninsula, and it seems to have support from a sizable portion of Crimean residents. But at what cost? Again, we'll see.

One thing is certain: Ukrainians are terrified. Ukrainians are in shock. But also, Ukrainians are Ukrainians, from Donetsk to Lviv.

Ask anyone we've invaded. Nothing brings a country together like an occupying army.